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