Built-in Routines
The mikroBasic PRO for PIC32 compiler provides a set of useful built-in utility functions. Built-in functions do not have any special requirements. You can use them in any part of your project.
The Delay_us and Delay_ms routines are implemented as “inline”; i.e. code is generated in the place of a call, so the call doesn’t count against the nested call limit.
The Vdelay_ms, Vdelay_advanced_ms, Delay_Cyc, Delay_Cyc_Long, Get_Fosc_kHz and Get_Fosc_Per_Cyc are actual Basic routines. Their sources can be found in the __Lib_Delays.mbas file located in the Uses folder of the compiler.
Lo
| Prototype |
sub function Lo(dim Argument as byte..float) as byte |
|---|---|
| Description |
Function returns the lowest byte of This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit. |
| Parameters |
|
| Returns |
Lowest 8 bits (byte) of |
| Requires |
Arguments must be variable of scalar type (i.e. Arithmetic Types and Pointers). |
| Example |
d = 0x12345678 tmp = Lo(d) ' Equals 0x78 Lo(d) = 0xAA ' d equals 0x123456AA |
| Notes |
None. |
Hi
| Prototype |
sub function Hi(dim Argument as as word..float) as byte |
|---|---|
| Description |
Function returns next to the lowest byte of This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit. |
| Parameters |
|
| Returns |
Returns next to the lowest byte of |
| Requires |
Arguments must be variable of scalar type (i.e. Arithmetic Types and Pointers). |
| Example |
d = 0x12345678 tmp = Hi(d) ' Equals 0x56 Hi(d) = 0xAA ' d equals 0x1234AA78 |
| Notes |
None. |
Higher
| Prototype |
sub function Higher(dim Argument as as longword..float) as byte |
|---|---|
| Description |
Function returns next to the highest byte of This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit. |
| Parameters |
|
| Returns |
Returns next to the highest byte of |
| Requires |
Arguments must be variable of scalar type (i.e. Arithmetic Types and Pointers). |
| Example |
d = 0x12345678 tmp = Higher(d) ' Equals 0x34 Higher(d) = 0xAA ' d equals 0x12AA5678 |
| Notes |
None. |
Highest
| Prototype |
sub function Highest(dim Argument as longword..float) as byte |
|---|---|
| Description |
Function returns the highest byte of This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit. |
| Parameters |
|
| Returns |
Returns the highest byte of |
| Requires |
Arguments must be variable of scalar type (i.e. Arithmetic Types and Pointers). |
| Example |
d = 0x12345678 tmp = Highest(d) ' Equals 0x12 Highest(d) = 0xAA ' d equals 0xAA345678 |
| Notes |
None. |
LoWord
| Prototype |
sub function LoWord(dim Argument as word..float) as word |
|---|---|
| Description |
The function returns low word of |
| Parameters |
|
| Returns |
Low word of |
| Requires |
Nothing. |
| Example |
d = 0x12345678 tmp = LoWord(d) ' Equals 0x5678 LoWord(d) = 0xAAAA ' d equals 0x1234AAAA |
| Notes |
None. |
HiWord
| Prototype |
sub function HiWord(dim Argument as longword..float) as word |
|---|---|
| Description |
The function returns high word of |
| Parameters |
|
| Returns |
High word of |
| Requires |
Nothing. |
| Example |
d = 0x12345678 tmp = HiWord(d) ' Equals 0x1234 HiWord(d) = 0xAAAA ' d equals 0xAAAA5678 |
| Notes |
None. |
HigherWord
| Prototype |
sub function HigherWord(dim Argument as uint64..extended) as word |
|---|---|
| Description |
The function returns higher word of |
| Parameters |
|
| Returns |
Higher word of |
| Requires |
Nothing. |
| Example |
d = 0x1122334455667788 tmp = HigherWord(d) ' Equals 0x33344 HigherWord(d) = 0xAAAA ' d equals 0x1122AAAA55667788 |
| Notes |
None. |
HighestWord
| Prototype |
sub function HighestWord(dim Argument as uint64..extended) as word |
|---|---|
| Description |
The function returns highest word of |
| Parameters |
|
| Returns |
Highest word of |
| Requires |
Nothing. |
| Example |
d = 0x1122334455667788 tmp = HighestWord(d) ' Equals 0x1122 HighestWord(d) = 0xAAAA ' d equals 0xAAAA334455667788 |
| Notes |
None. |
LoDword
| Prototype |
sub function LoDword(dim Argument as longword..extended) as dword |
|---|---|
| Description |
The function returns low longword of |
| Parameters |
|
| Returns |
Low longword of |
| Requires |
Nothing. |
| Example |
d = 0x1122334455667788 tmp = LoDword(d) ' Equals 0x55667788 LoDword(d) = 0xAAAAAAAA ' d equals 0x11223344AAAAAAAA |
| Notes |
None. |
HiDword
| Prototype |
sub function HiDword(dim Argument as uint64..extended) as dword |
|---|---|
| Description |
The function returns high longword of |
| Parameters |
|
| Returns |
High longword of |
| Requires |
Nothing. |
| Example |
d = 0x1122334455667788 tmp = HiDword(d) ' Equals 0x11223344 HiDword(d) = 0xAAAAAAAA; ' d equals 0xAAAAAAAA55667788 |
| Notes |
None. |
Inc
| Prototype |
sub procedure Inc(dim byref par as longint) |
|---|---|
| Description |
Increases parameter |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
p = 4 Inc(p) ' p is now 5 |
| Notes |
None. |
Dec
| Prototype |
sub procedure Dec(dim byref par as longint) |
|---|---|
| Description |
Decreases parameter |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
p = 4 Dec(p) ' p is now 3 |
| Notes |
None. |
Chr
| Prototype |
sub function Chr(dim code_ as byte) as char |
|---|---|
| Description |
Function returns a character associated with the specified character This is an “inline” routine; the code is generated in the place of the call. |
| Parameters |
|
| Returns |
Returns a character associated with the specified character |
| Requires |
Nothing. |
| Example |
c = Chr(10) ' returns the linefeed character |
| Notes |
None. |
Ord
| Prototype |
sub function Ord(dim character as char) as byte |
|---|---|
| Description |
Function returns ASCII code of the This is an “inline” routine; the code is generated in the place of the call. |
| Parameters |
|
| Returns |
ASCII code of the |
| Requires |
Nothing. |
| Example |
c = Ord("A") ' returns 65
|
| Notes |
None. |
SetBit
| Prototype |
sub procedure SetBit(dim byref register_ as word, dim rbit as byte) |
|---|---|
| Description |
Function sets the bit This is an “inline” routine; the code is generated in the place of the call. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
SetBit(PORTB, 2) ' Set RB2 |
| Notes |
None. |
ClearBit
| Prototype |
sub procedure ClearBit(dim byref register_ as word, dim rbit as byte) |
|---|---|
| Description |
Function clears the bit This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
ClearBit(PORTC, 7) ' Clear RC7 |
| Notes |
None. |
TestBit
| Prototype |
sub function TestBit(dim register_, rbit as byte) as byte |
|---|---|
| Description |
Function tests if the bit This is an “inline” routine; code is generated in the place of the call, so the call doesn’t count against the nested call limit. |
| Parameters |
|
| Returns |
If the bit is set, returns 1, otherwise returns 0. |
| Requires |
Nothing. |
| Example |
flag = TestBit(PORTE, 2) ' 1 if RE2 is set, otherwise 0 |
| Notes |
None. |
Delay_us
| Prototype |
sub procedure Delay_us(const time_in_us as longword) |
|---|---|
| Description |
Creates a software delay in duration of This is an “inline” routine; the code is generated in the place of the call, so the call doesn’t count against the nested call limit. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
Delay_us(1000) ' One millisecond pause |
| Notes |
None. |
Delay_ms
| Prototype |
sub procedure Delay_ms(const time_in_ms as longword) |
|---|---|
| Description |
Creates a software delay in duration of This is an “inline” routine; the code is generated in the place of the call, so the call doesn’t count against the nested call limit. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
Delay_ms(1000) ' One second pause |
| Notes |
For generating delays with variable as input parameter use the Vdelay_ms routine. |
VDelay_ms
| Prototype |
sub procedure Vdelay_ms(dim time_in_ms as word) |
|---|---|
| Description |
Creates a software delay in duration of |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
pause = 1000 ' ... Vdelay_ms(pause) ' ~ one second pause |
| Notes |
None. |
VDelay_advanced_ms
| Prototype |
sub procedure VDelay_advanced_ms(dim time_ms, Current_Fosc_kHz as word) |
|---|---|
| Description |
Creates a software delay in duration of Note that |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
pause = 1000 fosc = 10000 VDelay_advanced_ms(pause, fosc) ' Generates approximately one second pause, for a oscillator frequency of 10 MHz |
| Notes |
None. |
Delay_Cyc
| Prototype |
sub procedure Delay_Cyc(dim x, y as word) |
|---|---|
| Description |
Creates a delay based on MCU clock. Delay lasts for |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
Delay_Cyc(1, 10) ' 1x16384 + 10 = 16394 cycles pause |
| Notes |
|
Delay_Cyc_Long
| Prototype |
sub procedure Delay_Cyc_Long(dim CycNo as word) |
|---|---|
| Description |
Creates a delay based on MCU clock. Delay lasts for |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
Delay_Cyc_Long(16384) ' 16384 cycles pause |
| Notes |
|
Clock_kHz
| Prototype |
sub function Clock_kHz() as longint |
|---|---|
| Description |
Returns device clock in kHz, rounded to the nearest integer. This is an “inline” routine; the code is generated in the place of the call. |
| Parameters |
None. |
| Returns |
Device clock in kHz, rounded to the nearest integer. |
| Requires |
Nothing. |
| Example |
clk = Clock_kHz() |
| Notes |
None. |
Clock_MHz
| Prototype |
sub function Clock_MHz() as word |
|---|---|
| Description |
Returns device clock in MHz, rounded to the nearest integer. This is an “inline” routine; the code is generated in the place of the call. |
| Parameters |
None. |
| Returns |
Device clock in MHz, rounded to the nearest integer. |
| Requires |
Nothing. |
| Example |
clk = Clock_MHz() |
| Notes |
None. |
Get_Fosc_kHz
| Prototype |
sub function Get_Fosc_kHz() as longint |
|---|---|
| Description |
Function returns device clock in kHz, rounded to the nearest integer. |
| Parameters |
None. |
| Returns |
Device clock in kHz. |
| Requires |
Nothing. |
| Example |
clk = Get_Fosc_kHz() |
| Notes |
|
Get_Fosc_Per_Cyc
| Prototype |
sub function Get_Fosc_Per_Cyc() as word |
|---|---|
| Description |
Function returns device's clock per cycle, rounded to the nearest integer. Note that |
| Parameters |
None. |
| Returns |
Device's clock per cycle, rounded to the nearest integer. |
| Requires |
Nothing. |
| Example |
dim clk_per_cyc as word ... clk_per_cyc = Get_Fosc_Per_Cyc() |
| Notes |
None. |
Reset
| Prototype |
sub procedure Reset() |
|---|---|
| Description |
This procedure is equal to assembler instruction reset. |
| Parameters |
None. |
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
Reset() ' Resets the MCU |
| Notes |
None. |
ClrWdt
| Prototype |
sub procedure ClrWdt() |
|---|---|
| Description |
This procedure is equal to assembler instruction |
| Parameters |
None. |
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
ClrWdt() ' Clears WDT |
| Notes |
None. |
DisableContextSaving
| Prototype |
sub procedure DisableContextSaving() |
|---|---|
| Description |
Use the |
| Parameters |
None. |
| Returns |
Nothing. |
| Requires |
This routine must be called from main. |
| Example |
DisableContextSaving() ' instruct the compiler not to automatically perform context-switching |
| Notes |
None. |
SetFuncCall
| Prototype |
sub procedure SetFuncCall(dim FuncName as string) |
|---|---|
| Description |
If the linker encounters an indirect function call (by a pointer to function), it assumes that any routine whose address was taken anywhere in the program can be called at that point if it's prototype matches the pointer declaration. Use the SetFuncCall directive within routine body to instruct the linker which routines can be called indirectly from that routine :
Routines specified in the Thus, placing |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example: |
sub procedure first(p, q as byte) ... SetFuncCall(second) ' let linker know that we will call the routine 'second' ... end sub |
| Notes |
The |
SetOrg
| Prototype |
sub procedure SetOrg(dim RoutineName as string, dim address as longint) |
|---|---|
| Description |
Use the |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
This routine must be called from main. |
| Example |
SetOrg(UART1_Write, 0x1234) |
| Notes |
None. |
GetDateTime
| Prototype |
sub function GetDateTime() as string |
|---|---|
| Description |
Use the |
| Parameters |
None. |
| Returns |
String with date and time when this routine is compiled. |
| Requires |
Nothing. |
| Example |
str = GetDateTime() |
| Notes |
None. |
DoGetDateTime
| Prototype |
sub function DoGetDateTime() as string |
|---|---|
| Description |
Use the |
| Parameters |
None. |
| Returns |
String with date and time when this routine is compiled. |
| Requires |
Nothing. |
| Example |
str = DoGetDateTime() |
| Notes |
None. |
GetVersion
| Prototype |
sub function GetVersion() as string |
|---|---|
| Description |
Use the |
| Parameters |
None. |
| Returns |
String with current compiler version. |
| Requires |
Nothing. |
| Example |
str = GetVersion() ' for example, str will take the value of '8.2.1.6' |
| Notes |
None. |
DoGetVersion
| Prototype |
sub function DoGetVersion() as string |
|---|---|
| Description |
Use the |
| Parameters |
None. |
| Returns |
String with current compiler version. |
| Requires |
Nothing. |
| Example |
str = DoGetVersion() ' for example, str will take the value of '8.2.1.6' |
| Notes |
None. |
KVA0_TO_KVA1
| Prototype |
sub function KVA0_TO_KVA1(dim Address as longword) as longword |
|---|---|
| Description |
Function converts virtual address from KSEG0 to the virtual address in the KSEG1. |
| Parameters |
Desired Virtual address in the KSEG0. |
| Returns |
Virtual address in the KSEG1. |
| Requires |
Nothing. |
| Example |
address = KVA0_TO_KVA1(0x9FC00000) |
| Notes |
None. |
KVA1_TO_KVA0
| Prototype |
sub function KVA1_TO_KVA0(dim Address as longword) as longword |
|---|---|
| Description |
Function converts virtual address from KSEG1 to the virtual address in the KSEG0. |
| Parameters |
Desired Virtual address in the KSEG1. |
| Returns |
Virtual address in the KSEG0. |
| Requires |
Nothing. |
| Example |
address = KVA1_TO_KVA0(0xBFC00000) |
| Notes |
None. |
KVA_TO_PA
| Prototype |
sub function KVA_TO_PA(dim Address as longword) as longword |
|---|---|
| Description |
Function converts virtual address from any Kernel segment to the appropriate physical address. |
| Parameters |
Desired Virtual Address. |
| Returns |
Appropriate physical address. |
| Requires |
Nothing. |
| Example |
address = KVA_TO_PA(0xBFC00000) |
| Notes |
None. |
PA_TO_KVA0
| Prototype |
sub function PA_TO_KVA0(dim Address as longword) as longword |
|---|---|
| Description |
Function converts physical address to the virtual address in the KSEG0. |
| Parameters |
Desired physical address. |
| Returns |
Appropriate virtual address in the KSEG0. |
| Requires |
Nothing. |
| Example |
address = PA_TO_KVA0(0x1D000000) |
| Notes |
None. |
PA_TO_KVA1
| Prototype |
sub function PA_TO_KVA1(dim Address as longword) as longword |
|---|---|
| Description |
Function converts physical address to the virtual address in the KSEG1. |
| Parameters |
Appropriate virtual address in the KSEG1. |
| Returns |
Virtual address in the KSEG1. |
| Requires |
Nothing. |
| Example |
address = PA_TO_KVA1(0x1D000000) |
| Notes |
None. |
CP0_GET
| Prototype |
sub function CP0_GET(dim const register as TCP0REG) as longword |
|---|---|
| Description |
Function returns the value of the coprocessor register or part of the register, based upon the argument entered. |
| Parameters |
Parameter must be a constant from the enumerated built-in constants list, which can be found at the bottom of this page. |
| Returns |
Value of the coprocessor register or part of the register. |
| Requires |
Nothing. |
| Example |
dim register_value as longword register_value = CP0_GET(CP0_CONFIG) |
| Notes |
None. |
CP0_SET
| Prototype |
sub procedure CP0_SET(dim const register as TCP0REG, dim Value as longword) |
|---|---|
| Description |
Function sets the value of the coprocessor register or part of the register, based upon the |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
CP0_SET(CP0_CONFIG, 0x1A2C0000) |
| Notes |
None. |
RestoreInterrupts
| Prototype |
sub procedure RestoreInterrupts(dim status as longword) |
|---|---|
| Description |
Restores (enables or disables) interrupt flag based on the last STATUS register value given as a routine parametar. If the STATUS.B0 = 1 interrupts are enabled, if not, interrupts are disabled. |
| Parameters |
None. |
| Returns |
Returns the value stored in the STATUS register before the interrupts were enabled/disabled. |
| Requires |
Nothing. |
| Example |
|
| Notes |
None. |
EI
| Prototype |
sub function EI() as longword |
|---|---|
| Description |
Function enables interrupts. |
| Parameters |
None. |
| Returns |
Returns the value stored in the STATUS register before the interrupts were enabled/disabled. |
| Requires |
Nothing. |
| Example |
status_value = EI() |
| Notes |
None. |
EnableInterrupts
| Prototype |
sub function EnableInterrupts() as longword |
|---|---|
| Description |
Function enables interrupts. |
| Parameters |
None. |
| Returns |
Returns the value stored in the STATUS register before the interrupts were enabled/disabled. |
| Requires |
Nothing. |
| Example |
status_value = EnableInterrupts() |
| Notes |
None. |
DI
| Prototype |
sub function DI() as longword |
|---|---|
| Description |
Function disables interrupts. |
| Parameters |
None. |
| Returns |
Returns the value stored in the STATUS register before the interrupts were enabled/disabled. |
| Requires |
Nothing. |
| Example |
status_value = DI() |
| Notes |
None. |
DisableInterrupts
| Prototype |
sub function DisableInterrupts() as longword |
|---|---|
| Description |
Function disables interrupts. |
| Parameters |
Returns the value stored in the STATUS register before the interrupts were enabled/disabled. |
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
status_value = DisableInterrupts() |
| Notes |
None. |
DmaSuspend
| Prototype |
sub function DmaSuspend() as longword |
|---|---|
| Description |
Function suspends the DMA controller. |
| Parameters |
None. |
| Returns |
|
| Requires |
Nothing. |
| Example |
|
| Notes |
This routine is used only if the MCU possesses the DMA controller. |
DmaResume
| Prototype |
sub function DmaResume(dim susp as longword) as longword |
|---|---|
| Description |
Restores the DMA controller activity to the previous, suspended state. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
|
| Notes |
This routine is used only if the MCU possesses the DMA controller. |
SystemUnlock
| Prototype |
sub procedure SystemUnlock(dim byref intStat, dmaSusp as longword) |
|---|---|
| Description |
Procedure unlocks the system, setting the interrupts disabled and the DMA operation suspended. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
|
| Notes |
If the DMA controller is not present, the |
SystemLock
| Prototype |
sub procedure SystemLock(dim intStat, dmaSusp as longword) |
|---|---|
| Description |
Procedure locks the system, setting the interrupts and the DMA controller from the passed parameters. |
| Parameters |
|
| Returns |
Nothing. |
| Requires |
Nothing. |
| Example |
|
| Notes |
If the DMA controller is not present, the |
New
| Prototype |
sub procedure New(dim byref Ptr as pointer); |
|---|---|
| Description |
Allocates a block of memory from the memory Heap, taking care of the alignment. It is recommended to use this routine instead of GetMem. |
| Parameters |
|
| Returns |
Returns a pointer to the memory block allocated by the function; Otherwise 0 (no free blocks of memory are large enough). |
| Requires |
Nothing. |
| Example |
|
| Notes |
None. |
Dispose
| Prototype |
sub procedure Dispose(dim byref Ptr as pointer) |
|---|---|
| Description |
Disposes a block of memory from the memory Heap, referenced by Ptr and returns its memory to the Heap. |
| Parameters |
|
| Returns | |
| Requires |
Nothing. |
| Example |
|
| Notes |
After calling this routine, the value of Ptr is nil (0) (not assigned pointer). |
| Coprocessor Registers | ||||
|---|---|---|---|---|
| CP0_HWRENA | CP0_BADVADDR | CP0_COUNT | CP0_COMPARE | CP0_STATUS |
| CP0_INTCTL | CP0_SRSCTL | CP0_SRSMAP | CP0_CAUSE | CP0_EPC |
| CP0_PRID | CP0_EBASE | CP0_CONFIG | CP0_CONFIG1 | CP0_CONFIG2 |
| CP0_CONFIG3 | CP0_DEBUG | CP0_TRACECONTROL | CP0_TRACECONTROL2 | CP0_USERTRACEDATA |
| CP0_TRACEBPC | CP0_DEBUG2 | CP0_DEPC | CP0_ERROREPC | CP0_DESAVE |
| Coprocessor Register Fields | ||||
|---|---|---|---|---|
| CP0_HWRENA_MASK | CP0_STATUS_IE | CP0_STATUS_EXL | CP0_STATUS_ERL | CP0_STATUS_UM |
| CP0_STATUS_IM0 | CP0_STATUS_IM1 | CP0_STATUS_IPL | CP0_STATUS_IM2 | CP0_STATUS_IM3 |
| CP0_STATUS_IM4 | CP0_STATUS_IM5 | CP0_STATUS_IM6 | CP0_STATUS_IM7 | CP0_STATUS_CEE |
| CP0_STATUS_NMI | _CPO_STATUS_SR | CP0_STATUS_TS | CP0_STATUS_BEV | CP0_STATUS_RE |
| CP0_STATUS_FR | CP0_STATUS_RP | CP0_STATUS_CU0 | CP0_STATUS_CU1 | CP0_STATUS_CU2 |
| CP0_STATUS_CU3 | CP0_INTCTL_VS | CP0_INTCTL_IPPCI | CP0_INTCTL_IPTI | CP0_SRSCTL_CSS |
| CP0_SRSCTL_PSS | CP0_SRSCTL_ESS | CP0_SRSCTL_EICSS | CP0_SRSCTL_HSS | CP0_SRSMAP_SSV0 |
| CP0_SRSMAP_SSV1 | CP0_SRSMAP_SSV2 | CP0_SRSMAP_SSV3 | CP0_SRSMAP_SSV4 | CP0_SRSMAP_SSV5 |
| CP0_SRSMAP_SSV6 | CP0_SRSMAP_SSV7 | CP0_CAUSE_EXCCODE | CP0_CAUSE_IP0 | CP0_CAUSE_IP1 |
| CP0_CAUSE_RIPL | CP0_CAUSE_IP2 | CP0_CAUSE_IP3 | CP0_CAUSE_IP4 | CP0_CAUSE_IP5 |
| CP0_CAUSE_IP6 | CP0_CAUSE_IP7 | CP0_CAUSE_WP | CP0_CAUSE_IV | CP0_CAUSE_PCI |
| CP0_CAUSE_DC | CP0_CAUSE_CE | CP0_CAUSE_TI | CP0_CAUSE_BD | CP0_PRID_REVISION |
| CP0_PRID_PATCHREV | CP0_PRID_MINORREV | CP0_PRID_MAJORREV | CP0_PRID_PROCESSORID | CP0_PRID_COMPANYID |
| CP0_EBASE_CPUNUM | CP0_EBASE_EBASE | CP0_CONFIG_K0 | CP0_CONFIG_MT | CP0_CONFIG_AR |
| CP0_CONFIG_AT | CP0_CONFIG_BE | CP0_CONFIG_DS | CP0_CONFIG_MDU | CP0_CONFIG_SB |
| CP0_CONFIG_UDI | CP0_CONFIG_KU | CP0_CONFIG_M | CP0_CONFIG1_FP | CP0_CONFIG1_EP |
| CP0_CONFIG1_CA | CP0_CONFIG1_WR | CP0_CONFIG1_PC | CP0_CONFIG1_MD | CP0_CONFIG1_C2 |
| CP0_CONFIG1_DA | CP0_CONFIG1_DL | CP0_CONFIG1_DS | CP0_CONFIG1_IA | CP0_CONFIG1_IL |
| CP0_CONFIG1_IS | CP0_CONFIG1_MMUSIZE | CP0_CONFIG1_M | CP0_CONFIG2_M | CP0_CONFIG3_TL |
| CP0_CONFIG3_SM | CP0_CONFIG3_SP | CP0_CONFIG3_VINT | CP0_CONFIG3_VEIC | CP0_CONFIG3_ITL |
| CP0_CONFIG3_M | CP0_DEBUG_DSS | CP0_DEBUG_DBP | CP0_DEBUG_DDBL | CP0_DEBUG_DDBS |
| CP0_DEBUG_DIB | CP0_DEBUG_DINT | CP0_DEBUG_DIBIMPR | CP0_DEBUG_R | CP0_DEBUG_SST |
| CP0_DEBUG_NOSST | CP0_DEBUG_DEXCCODE | CP0_DEBUG_VER | CP0_DEBUG_DDBLIMPR | CP0_DEBUG_DDBSIMPR |
| CP0_DEBUG_IEXI | CP0_DEBUG_DBUSEP | CP0_DEBUG_CACHEEP | CP0_DEBUG_MCHECKP | CP0_DEBUG_IBUSEP |
| CP0_DEBUG_COUNTDM | CP0_DEBUG_HALT | CP0_DEBUG_DOZE | CP0_DEBUG_LSNM | CP0_DEBUG_NODCR |
| CP0_DEBUG_DM | CP0_DEBUG_DBD | CP0_TRACECONTROL_ON | CP0_TRACECONTROL_MODE | CP0_TRACECONTROL_G |
| CP0_TRACECONTROL_ASID | CP0_TRACECONTROL_U | CP0_TRACECONTROL_0 | CP0_TRACECONTROL_K | CP0_TRACECONTROL_E |
| CP0_TRACECONTROL_D | CP0_TRACECONTROL_IO | CP0_TRACECONTROL_TB | CP0_TRACECONTROL_UT | CP0_TRACECONTROL_TS |
| CP0_TRACECONTROL2_SYP | CP0_TRACECONTROL2_TBU | CP0_TRACECONTROL2_TBI | CP0_TRACECONTROL2_VALIDMODES | CP0_USERTRACEDATA_DATA |
| CP0_TRACEBPC_IBPON | CP0_TRACEBPC_IE | CP0_TRACEBPC_DBPON | CP0_TRACEBPC_DE | CP0_DEBUG2_PACO |
| CP0_DEBUG2_TUP | CP0_DEBUG2_DQ | CP0_DEBUG2_PRM | ||
What do you think about this topic ? Send us feedback!



