bugfixes, cd/Memory.s
[picodrive.git] / Pico / PicoInt.h
index 47ba2c9..694952e 100644 (file)
@@ -160,11 +160,11 @@ struct Pico
 // sram\r
 struct PicoSRAM\r
 {\r
-  unsigned char *data; // actual data\r
-  unsigned int start;  // start address in 68k address space\r
+  unsigned char *data;         // actual data\r
+  unsigned int start;          // start address in 68k address space\r
   unsigned int end;\r
-  unsigned char resize; // 1=SRAM size changed and needs to be reallocated on PicoReset\r
-  unsigned char reg_back; // copy of Pico.m.sram_reg to set after reset\r
+  unsigned char resize;                // 0c: 1=SRAM size changed and needs to be reallocated on PicoReset\r
+  unsigned char reg_back;      // copy of Pico.m.sram_reg to set after reset\r
   unsigned char changed;\r
   unsigned char pad;\r
 };\r
@@ -182,10 +182,10 @@ struct mcd_pcm
        unsigned char bank;\r
        int pad1;\r
 \r
-       struct pcm_chan\r
+       struct pcm_chan                 // 08, size 0x10\r
        {\r
                unsigned char regs[8];\r
-               unsigned int  addr; // played sample address\r
+               unsigned int  addr;     // .08: played sample address\r
                int pad;\r
        } ch[8];\r
 };\r
@@ -195,24 +195,24 @@ struct mcd_misc
        unsigned short hint_vector;\r
        unsigned char  busreq;\r
        unsigned char  s68k_pend_ints;\r
-       unsigned int   state_flags;     // emu state: reset_pending,\r
+       unsigned int   state_flags;     // 04: emu state: reset_pending,\r
        unsigned int   counter75hz;\r
-       unsigned short audio_offset;    // for savestates: play pointer offset (0-1023)\r
+       unsigned short audio_offset;    // 0c: for savestates: play pointer offset (0-1023)\r
        unsigned char  audio_track;     // playing audio track # (zero based)\r
        char pad1;\r
-       int            timer_int3;\r
+       int            timer_int3;      // 10\r
        unsigned int   timer_stopwatch;\r
        int pad[10];\r
 };\r
 \r
 typedef struct\r
 {\r
-       unsigned char bios[0x20000];                    // 128K\r
-       union {                                         // 512K\r
+       unsigned char bios[0x20000];                    // 000000: 128K\r
+       union {                                         // 020000: 512K\r
                unsigned char prg_ram[0x80000];\r
                unsigned char prg_ram_b[4][0x20000];\r
        };\r
-       union {                                         // 256K\r
+       union {                                         // 0a0000: 256K\r
                struct {\r
                        unsigned char word_ram2M[0x40000];\r
                        unsigned char unused[0x20000];\r
@@ -222,19 +222,19 @@ typedef struct
                        unsigned char word_ram1M[2][0x20000];\r
                };\r
        };\r
-       union {                                         // 64K\r
+       union {                                         // 100000: 64K\r
                unsigned char pcm_ram[0x10000];\r
                unsigned char pcm_ram_b[0x10][0x1000];\r
        };\r
-       unsigned char bram[0x2000];                     // 8K\r
-       unsigned char s68k_regs[0x200];                 // GA, not CPU regs\r
-       struct mcd_pcm pcm;\r
+       unsigned char s68k_regs[0x200];                 // 110000: GA, not CPU regs\r
+       unsigned char bram[0x2000];                     // 110200: 8K\r
+       struct mcd_misc m;                              // 112200: misc\r
+       struct mcd_pcm pcm;                             // 112240:\r
        _scd_toc TOC;                                   // not to be saved\r
        CDD  cdd;\r
        CDC  cdc;\r
        _scd scd;\r
        Rot_Comp rot_comp;\r
-       struct mcd_misc m;\r
 } mcd_state;\r
 \r
 #define Pico_mcd ((mcd_state *)Pico.rom)\r
@@ -268,6 +268,7 @@ void z80_write16(unsigned short data, unsigned short a);
 \r
 // cd/Memory.c\r
 void PicoMemSetupCD(void);\r
+void PicoMemResetCD(int r3);\r
 unsigned char  PicoReadCD8 (unsigned int a);\r
 unsigned short PicoReadCD16(unsigned int a);\r
 unsigned int   PicoReadCD32(unsigned int a);\r