svp minor adjustments, copyright
[picodrive.git] / Pico / carthw / svp / ssp16.h
index c2a4060..ec363f0 100644 (file)
@@ -1,3 +1,10 @@
+// basic, incomplete SSP160x (SSP1601?) interpreter
+
+// (c) Copyright 2008, Grazvydas "notaz" Ignotas
+// Free for non-commercial use.
+
+// For commercial use, separate licencing terms must be obtained.
+
 
 // register names
 enum {
@@ -34,13 +41,20 @@ typedef struct
                };
        };
        unsigned short stack[6];
+       unsigned int pmac_read[6];      // read modes/addrs for PM0-PM5
+       unsigned int pmac_write[6];     // write ...
        //
-       #define SSP_PMC_HAVE_ADDR 1     // address written to PMAC, waiting for mode
+       #define SSP_PMC_HAVE_ADDR       0x0001  // address written to PMAC, waiting for mode
+       #define SSP_PMC_SET             0x0002  // PMAC is set
+       #define SSP_WAIT_PM0            0x2000  // bit1 in PM0
+       #define SSP_WAIT_30FE06         0x4000  // ssp tight loops on 30FE08 to become non-zero
+       #define SSP_WAIT_30FE08         0x8000  // same for 30FE06
+       #define SSP_WAIT_MASK           0xe000
        unsigned int emu_status;
-       unsigned int pad[10];
+       unsigned int pad[30];
 } ssp1601_t;
 
 
 void ssp1601_reset(ssp1601_t *ssp);
-void ssp1601_run(ssp1601_t *ssp, int cycles);
+void ssp1601_run(int cycles);