SaturnRingLibrary 0.9.2
SGL wrapper
Loading...
Searching...
No Matches

◆ SetInterruptPriorities()

void SRL::System::SetInterruptPriorities ( const InterruptPriorityTable & priorityTable)
inlinestatic

Program the SCU interrupt routine priority table.

Parameters
priorityTable32-entry table of packed SR | mask values

Calls the BIOS entry at 0x6000280. Requires SCU revision 2.1+ (version register at 0x25FE00C4 >= 3). The table is copied into the BIOS work area and remains active until overwritten or reset.

Warning
This is a dangerous operation. If the table contains inconsistent priority settings the system will crash. No validation is performed on the table content.
Example:
priorities[0] = 0x00f0ffff; // V-Blank In
priorities[1] = 0x00e0fffe; // V-Blank Out
priorities[9] = 0x0060ffff; // DMA2 (highest priority)
priorities[10] = 0x0050fdff; // DMA1
priorities[11] = 0x0050f9ff; // DMA0
static void SetInterruptPriorities(const InterruptPriorityTable &priorityTable)
Program the SCU interrupt routine priority table.
Definition srl_system.hpp:430
SCU interrupt priority table (32 longword entries).
Definition srl_system.hpp:357
See also
InterruptPriorityTable for the entry format