X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=Pico%2Fcarthw%2Fsvp%2Fssp16.h;h=2ae06d6bc2cbe147f60089ef615d18c6e130ced2;hb=a12b1b29cc7e394128da59614c2efe8f5d182741;hp=4f4dfa0098e8aaaa3276910af1eb9449bb09bc81;hpb=726bbb3e08e3d4e7ed086a3c98dec0e21a386d75;p=picodrive.git diff --git a/Pico/carthw/svp/ssp16.h b/Pico/carthw/svp/ssp16.h index 4f4dfa0..2ae06d6 100644 --- a/Pico/carthw/svp/ssp16.h +++ b/Pico/carthw/svp/ssp16.h @@ -26,39 +26,44 @@ typedef union typedef struct { union { - unsigned short RAM[256*2]; // 2 internal RAM banks + unsigned short RAM[256*2]; // 000 2 internal RAM banks struct { unsigned short RAM0[256]; unsigned short RAM1[256]; }; }; - ssp_reg_t gr[16]; // general registers + ssp_reg_t gr[16]; // 400 general registers union { - unsigned char r[8]; // BANK pointers + unsigned char r[8]; // 440 BANK pointers struct { unsigned char r0[4]; unsigned char r1[4]; }; }; - unsigned short stack[6]; - unsigned int pmac_read[6]; // read modes/addrs for PM0-PM5 - unsigned int pmac_write[6]; // write ... + unsigned short stack[6]; // 448 + unsigned int pmac_read[6]; // 454 read modes/addrs for PM0-PM5 + unsigned int pmac_write[6]; // 46c write ... // #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_30FE06 0x4000 // ssp tight loops on 30FE06 to become non-zero + #define SSP_WAIT_30FE08 0x8000 // same for 30FE08 #define SSP_WAIT_MASK 0xe000 - unsigned int emu_status; - unsigned int pad[30]; + unsigned int emu_status; // 484 + /* used by recompiler only: */ + unsigned int ptr_rom; // 488 + unsigned int ptr_iram_rom; // 48c + unsigned int ptr_dram; // 490 +/* +unsigned int blocktab; +unsigned int blocktab_iram; +unsigned int iram_context; +*/ + unsigned int pad[27]; } ssp1601_t; void ssp1601_reset(ssp1601_t *ssp); void ssp1601_run(int cycles); -int ssp1601_dyn_init(void); -void ssp1601_dyn_reset(ssp1601_t *ssp); -void ssp1601_dyn_run(int cycles); -