refactoring z80 if code for sms preparation
[picodrive.git] / cpu / cz80 / cz80.c
index 374325e..091e2a5 100644 (file)
@@ -219,7 +219,10 @@ void Cz80_Reset(cz80_struc *CPU)
 #if PICODRIVE_HACKS\r
 static inline unsigned char picodrive_read(unsigned short a)\r
 {\r
-       return (a < 0x4000) ? Pico.zram[a&0x1fff] : z80_read(a);\r
+       unsigned long v = z80_read_map[a >> Z80_MEM_SHIFT];\r
+       if (v & 0x80000000)\r
+               return ((z80_read_f *)(v << 1))(a);\r
+       return *(unsigned char *)((v << 1) + a);\r
 }\r
 #endif\r
 \r