1 /****************************************************************************/ 2 /* real mode i286 emulator by Fabrice Frances */ 3 /* (initial work based on David Hedley's pcemu) */ 4 /* */ 5 /****************************************************************************/ 6 7 #include "i86.h" 8 9 void i286_set_address_mask(offs_t mask); 10 11 #undef GetMemB 12 #undef GetMemW 13 #undef PutMemB 14 #undef PutMemW 15 16 /* ASG 971005 -- changed to cpu_readmem20/cpu_writemem20 */ 17 #define GetMemB(Seg,Off) ( (BYTE)cpu_readmem24((DefaultBase(Seg)+(Off))&AMASK)) 18 #define GetMemW(Seg,Off) ( (WORD)GetMemB(Seg,Off)+(WORD)(GetMemB(Seg,(Off)+1)<<8)) 19 #define PutMemB(Seg,Off,x) { cpu_writemem24((DefaultBase(Seg)+(Off))&AMASK,(x)); } 20 #define PutMemW(Seg,Off,x) { PutMemB(Seg,Off,(BYTE)(x)); PutMemB(Seg,(Off)+1,(BYTE)((x)>>8)); } 21 22 #undef PEEKBYTE 23 #define PEEKBYTE(ea) ((BYTE)cpu_readmem24((ea)&AMASK)) 24 25 #undef ReadByte 26 #undef ReadWord 27 #undef WriteByte 28 #undef WriteWord 29 30 #define ReadByte(ea) ((BYTE)cpu_readmem24((ea)&AMASK)) 31 #define ReadWord(ea) (cpu_readmem24((ea)&AMASK)+(cpu_readmem24(((ea)+1)&AMASK)<<8)) 32 #define WriteByte(ea,val) { cpu_writemem24((ea)&AMASK,val); } 33 #define WriteWord(ea,val) { cpu_writemem24((ea)&AMASK,(BYTE)(val)); cpu_writemem24(((ea)+1)&AMASK,(val)>>8); } 34 35 #undef CHANGE_PC 36 #define CHANGE_PC(addr) change_pc24(addr) 37