started working on interrupts
[psx_test1] / src / psxregs.h
index d3042c3..44be478 100644 (file)
@@ -1,9 +1,13 @@
 #ifndef PSXREGS_H_
 #define PSXREGS_H_
 
+#include <stdint.h>
+
+#define INTR_VEC               (*(volatile uint32_t*)0x80000080)
+
 #define REG_BASE               0x1f800000
-#define REGPTR32(x)            (*(volatile unsigned long*)(REG_BASE | (x)))
-#define REGPTR16(x)            (*(volatile unsigned short*)(REG_BASE | (x)))
+#define REGPTR32(x)            (*(volatile uint32_t*)(REG_BASE | (x)))
+#define REGPTR16(x)            (*(volatile uint16_t*)(REG_BASE | (x)))
 
 /* --- GPU --- */
 #define REGN_GP0               0x1810
 #define REG_IMASK              REGPTR32(REGN_IMASK)
 
 enum {
-       IRQ_VBLANK      = 0x0001,
-       IRQ_GPU         = 0x0002,
-       IRQ_CDROM       = 0x0004,
-       IRQ_DMA         = 0x0008,
-       IRQ_TIMER0      = 0x0010,
-       IRQ_TIMER1      = 0x0020,
-       IRQ_TIMER2      = 0x0040,
-       IRQ_JOYMC       = 0x0080,
-       IRQ_SIO         = 0x0100,
-       IRQ_SPU         = 0x0200,
-       IRQ_LPEN        = 0x0400
+       IRQ_VBLANK,
+       IRQ_GPU,
+       IRQ_CDROM,
+       IRQ_DMA,
+       IRQ_TIMER0, IRQ_TIMER1, IRQ_TIMER2,
+       IRQ_JOYMC,
+       IRQ_SIO,
+       IRQ_SPU,
+       IRQ_LPEN
 };
 
 #define GPCMD(cmd)     ((cmd) << 24)