refactoring z80 if code for sms preparation
[picodrive.git] / cpu / cz80 / cz80macro.h
index 7118dcc..16f3a70 100644 (file)
 #define WRITE_MEM8(A, D) { \\r
        unsigned short a = A; \\r
        unsigned char d = D; \\r
-       if (a < 0x4000) Pico.zram[a&0x1fff] = d; \\r
-       else z80_write(a, d); \\r
+       unsigned long v = z80_write_map[a >> Z80_MEM_SHIFT]; \\r
+       if (v & 0x80000000) \\r
+               ((z80_write_f *)(v << 1))(a, d); \\r
+       else \\r
+               *(unsigned char *)((v << 1) + a) = d; \\r
 }\r
 #else\r
 #define WRITE_MEM8(A, D)       CPU->Write_Byte(A, D);\r