refactoring z80 if code for sms preparation

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@752 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2009-08-14 15:02:54 +00:00
parent 4010330cc0
commit c8d1e9b662
10 changed files with 354 additions and 375 deletions

View file

@ -219,7 +219,10 @@ void Cz80_Reset(cz80_struc *CPU)
#if PICODRIVE_HACKS
static inline unsigned char picodrive_read(unsigned short a)
{
return (a < 0x4000) ? Pico.zram[a&0x1fff] : z80_read(a);
unsigned long v = z80_read_map[a >> Z80_MEM_SHIFT];
if (v & 0x80000000)
return ((z80_read_f *)(v << 1))(a);
return *(unsigned char *)((v << 1) + a);
}
#endif

View file

@ -73,8 +73,11 @@
#define WRITE_MEM8(A, D) { \
unsigned short a = A; \
unsigned char d = D; \
if (a < 0x4000) Pico.zram[a&0x1fff] = d; \
else z80_write(a, d); \
unsigned long v = z80_write_map[a >> Z80_MEM_SHIFT]; \
if (v & 0x80000000) \
((z80_write_f *)(v << 1))(a, d); \
else \
*(unsigned char *)((v << 1) + a) = d; \
}
#else
#define WRITE_MEM8(A, D) CPU->Write_Byte(A, D);