mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
30 lines
1.8 KiB
C
30 lines
1.8 KiB
C
#ifndef PMDSKY_MAIN_0207B848_H
|
|
#define PMDSKY_MAIN_0207B848_H
|
|
|
|
// Enables processor interrupts by clearing the i flag in the program status register (cpsr).
|
|
// return: Old value of cpsr & 0x80 (0x80 if interrupts were disabled, 0x0 if they were already enabled)
|
|
u8 ClearIrqFlag();
|
|
// Disables processor interrupts by setting the i flag in the program status register (cpsr).
|
|
// return: Old value of cpsr & 0x80 (0x80 if interrupts were already disabled, 0x0 if they were enabled)
|
|
u8 EnableIrqFlag();
|
|
// Sets the value of the processor's interrupt flag according to the specified parameter.
|
|
// flag: Value to set the flag to (0x80 to set it, which disables interrupts; 0x0 to unset it, which enables interrupts)
|
|
// return: Old value of cpsr & 0x80 (0x80 if interrupts were disabled, 0x0 if they were enabled)
|
|
u8 SetIrqFlag(u8 flag);
|
|
// Disables processor all interrupts (both standard and fast) by setting the i and f flags in the program status register (cpsr).
|
|
// return: Old value of cpsr & 0xC0 (contains the previous values of the i and f flags)
|
|
u8 EnableIrqFiqFlags(void);
|
|
// Sets the value of the processor's interrupt flags (i and f) according to the specified parameter.
|
|
// flags: Value to set the flags to (0xC0 to set both flags, 0x80 to set the i flag and clear the f flag, 0x40 to set the f flag and clear the i flag and 0x0 to clear both flags)
|
|
// return: Old value of cpsr & 0xC0 (contains the previous values of the i and f flags)
|
|
u8 SetIrqFiqFlags(u8 flags);
|
|
// Gets the current value of the processor's interrupt request (i) flag
|
|
// return: cpsr & 0x80 (0x80 if interrupts are disabled, 0x0 if they are enabled)
|
|
u8 GetIrqFlag();
|
|
// Gets the processor's current operating mode.
|
|
// See https://problemkaputt.de/gbatek.htm#armcpuflagsconditionfieldcond
|
|
// return: cpsr & 0x1f (the cpsr mode bits M4-M0)
|
|
u8 GetProcessorMode();
|
|
|
|
#endif //PMDSKY_MAIN_0207B848_H
|