| version 1.1, 2003/10/16 17:57:43 | version 1.3, 2003/10/21 11:22:05 | 
| Line 1 | Line 1 | 
 | #include        "compiler.h" | #include        "compiler.h" | 
 | #include        "i286.h" | #include        "i286.h" | 
 | #include        "i286c.h" | #include        "i286c.h" | 
 | #include        "i286c.mcr" |  | 
 | #include        "memory.h" | #include        "memory.h" | 
 |  | #include        "i286c.mcr" | 
 |  |  | 
 |  |  | 
 | // --------------------------------------------------------------------------- | // --------------------------------------------------------------------------- | 
 |  |  | 
| static DWORD ea_bx_si(void) { | static UINT32 ea_bx_si(void) { | 
 |  |  | 
 | return(((I286_BX + I286_SI) & 0x0000ffff) + DS_FIX); | return(((I286_BX + I286_SI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bx_si_disp8(void) { | static UINT32 ea_bx_si_disp8(void) { | 
 |  |  | 
| long    adrs; | SINT32  adrs; | 
 |  |  | 
 | GET_PCBYTESD(adrs); | GET_PCBYTESD(adrs); | 
 | return(((adrs + I286_BX + I286_SI) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_BX + I286_SI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bx_si_disp16(void) { | static UINT32 ea_bx_si_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(((adrs + I286_BX + I286_SI) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_BX + I286_SI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bx_di(void) { | static UINT32 ea_bx_di(void) { | 
 |  |  | 
 | return(((I286_BX + I286_DI) & 0x0000ffff) + DS_FIX); | return(((I286_BX + I286_DI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bx_di_disp8(void) { | static UINT32 ea_bx_di_disp8(void) { | 
 |  |  | 
| long    adrs; | SINT32  adrs; | 
 |  |  | 
 | GET_PCBYTESD(adrs); | GET_PCBYTESD(adrs); | 
 | return(((adrs + I286_BX + I286_DI) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_BX + I286_DI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bx_di_disp16(void) { | static UINT32 ea_bx_di_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(((adrs + I286_BX + I286_DI) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_BX + I286_DI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bp_si(void) { | static UINT32 ea_bp_si(void) { | 
 |  |  | 
 | return(((I286_BP + I286_SI) & 0x0000ffff) + SS_FIX); | return(((I286_BP + I286_SI) & 0x0000ffff) + SS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bp_si_disp8(void) { | static UINT32 ea_bp_si_disp8(void) { | 
 |  |  | 
| long    adrs; | SINT32  adrs; | 
 |  |  | 
 | GET_PCBYTESD(adrs); | GET_PCBYTESD(adrs); | 
 | return(((adrs + I286_BP + I286_SI) & 0x0000ffff) + SS_FIX); | return(((adrs + I286_BP + I286_SI) & 0x0000ffff) + SS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bp_si_disp16(void) { | static UINT32 ea_bp_si_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(((adrs + I286_BP + I286_SI) & 0x0000ffff) + SS_FIX); | return(((adrs + I286_BP + I286_SI) & 0x0000ffff) + SS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bp_di(void) { | static UINT32 ea_bp_di(void) { | 
 |  |  | 
 | return(((I286_BP + I286_DI) & 0x0000ffff) + SS_FIX); | return(((I286_BP + I286_DI) & 0x0000ffff) + SS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bp_di_disp8(void) { | static UINT32 ea_bp_di_disp8(void) { | 
 |  |  | 
| long    adrs; | SINT32  adrs; | 
 |  |  | 
 | GET_PCBYTESD(adrs); | GET_PCBYTESD(adrs); | 
 | return(((adrs + I286_BP + I286_DI) & 0x0000ffff) + SS_FIX); | return(((adrs + I286_BP + I286_DI) & 0x0000ffff) + SS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bp_di_disp16(void) { | static UINT32 ea_bp_di_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(((adrs + I286_BP + I286_DI) & 0x0000ffff) + SS_FIX); | return(((adrs + I286_BP + I286_DI) & 0x0000ffff) + SS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_si(void) { | static UINT32 ea_si(void) { | 
 |  |  | 
 | return(I286_SI + DS_FIX); | return(I286_SI + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_si_disp8(void) { | static UINT32 ea_si_disp8(void) { | 
 |  |  | 
| long    adrs; | SINT32  adrs; | 
 |  |  | 
 | GET_PCBYTESD(adrs); | GET_PCBYTESD(adrs); | 
 | return(((adrs + I286_SI) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_SI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_si_disp16(void) { | static UINT32 ea_si_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(((adrs + I286_SI) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_SI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_di(void) { | static UINT32 ea_di(void) { | 
 |  |  | 
 | return(I286_DI + DS_FIX); | return(I286_DI + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_di_disp8(void) { | static UINT32 ea_di_disp8(void) { | 
 |  |  | 
| long    adrs; | SINT32  adrs; | 
 |  |  | 
 | GET_PCBYTESD(adrs); | GET_PCBYTESD(adrs); | 
 | return(((adrs + I286_DI) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_DI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_di_disp16(void) { | static UINT32 ea_di_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(((adrs + I286_DI) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_DI) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_disp16(void) { | static UINT32 ea_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return((adrs & 0x0000ffff) + DS_FIX); | return((adrs & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bp_disp8(void) { | static UINT32 ea_bp_disp8(void) { | 
 |  |  | 
| long    adrs; | SINT32  adrs; | 
 |  |  | 
 | GET_PCBYTESD(adrs); | GET_PCBYTESD(adrs); | 
 | return(((adrs + I286_BP) & 0x0000ffff) + SS_FIX); | return(((adrs + I286_BP) & 0x0000ffff) + SS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bp_disp16(void) { | static UINT32 ea_bp_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(((adrs + I286_BP) & 0x0000ffff) + SS_FIX); | return(((adrs + I286_BP) & 0x0000ffff) + SS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bx(void) { | static UINT32 ea_bx(void) { | 
 |  |  | 
 | return(I286_BX + DS_FIX); | return(I286_BX + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bx_disp8(void) { | static UINT32 ea_bx_disp8(void) { | 
 |  |  | 
| long    adrs; | SINT32  adrs; | 
 |  |  | 
 | GET_PCBYTESD(adrs); | GET_PCBYTESD(adrs); | 
 | return(((adrs + I286_BX) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_BX) & 0x0000ffff) + DS_FIX); | 
 | } | } | 
 |  |  | 
| static DWORD ea_bx_disp16(void) { | static UINT32 ea_bx_disp16(void) { | 
 |  |  | 
| DWORD   adrs; | UINT32  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(((adrs + I286_BX) & 0x0000ffff) + DS_FIX); | return(((adrs + I286_BX) & 0x0000ffff) + DS_FIX); | 
| Line 195  const CALCEA i286c_ea_dst_tbl[] = { | Line 195  const CALCEA i286c_ea_dst_tbl[] = { | 
 |  |  | 
 | // -------------------------------------------------------------------------- | // -------------------------------------------------------------------------- | 
 |  |  | 
| static WORD lea_bx_si(void) { | static UINT16 lea_bx_si(void) { | 
 |  |  | 
 | return(I286_BX + I286_SI); | return(I286_BX + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bx_si_disp8(void) { | static UINT16 lea_bx_si_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BX + I286_SI); | return(adrs + I286_BX + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bx_si_disp16(void) { | static UINT16 lea_bx_si_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BX + I286_SI); | return(adrs + I286_BX + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bx_di(void) { | static UINT16 lea_bx_di(void) { | 
 |  |  | 
 | return(I286_BX + I286_DI); | return(I286_BX + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bx_di_disp8(void) { | static UINT16 lea_bx_di_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BX + I286_DI); | return(adrs + I286_BX + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bx_di_disp16(void) { | static UINT16 lea_bx_di_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BX + I286_DI); | return(adrs + I286_BX + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bp_si(void) { | static UINT16 lea_bp_si(void) { | 
 |  |  | 
 | return(I286_BP + I286_SI); | return(I286_BP + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bp_si_disp8(void) { | static UINT16 lea_bp_si_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BP + I286_SI); | return(adrs + I286_BP + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bp_si_disp16(void) { | static UINT16 lea_bp_si_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BP + I286_SI); | return(adrs + I286_BP + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bp_di(void) { | static UINT16 lea_bp_di(void) { | 
 |  |  | 
 | return(I286_BP + I286_DI); | return(I286_BP + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bp_di_disp8(void) { | static UINT16 lea_bp_di_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BP + I286_DI); | return(adrs + I286_BP + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_bp_di_disp16(void) { | static UINT16 lea_bp_di_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BP + I286_DI); | return(adrs + I286_BP + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_si(void) { | static UINT16 lea_si(void) { | 
 |  |  | 
 | return(I286_SI); | return(I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_si_disp8(void) { | static UINT16 lea_si_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_SI); | return(adrs + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_si_disp16(void) { | static UINT16 lea_si_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_SI); | return(adrs + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD lea_di(void) { | static UINT16 lea_di(void) { | 
 |  |  | 
 | return(I286_DI); | return(I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_di_disp8(void) { | static UINT16 lea_di_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_DI); | return(adrs + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_di_disp16(void) { | static UINT16 lea_di_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_DI); | return(adrs + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD lea_disp16(void) { | static UINT16 lea_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs); | return(adrs); | 
 | } | } | 
 |  |  | 
| static WORD lea_bp_disp8(void) { | static UINT16 lea_bp_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BP); | return(adrs + I286_BP); | 
 | } | } | 
 |  |  | 
| static WORD lea_bp_disp16(void) { | static UINT16 lea_bp_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BP); | return(adrs + I286_BP); | 
 | } | } | 
 |  |  | 
| static WORD lea_bx(void) { | static UINT16 lea_bx(void) { | 
 |  |  | 
 | return(I286_BX); | return(I286_BX); | 
 | } | } | 
 |  |  | 
| static WORD lea_bx_disp8(void) { | static UINT16 lea_bx_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BX); | return(adrs + I286_BX); | 
 | } | } | 
 |  |  | 
| static WORD lea_bx_disp16(void) { | static UINT16 lea_bx_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BX); | return(adrs + I286_BX); | 
| Line 382  const CALCLEA i286c_lea_tbl[] = { | Line 382  const CALCLEA i286c_lea_tbl[] = { | 
 |  |  | 
 | // -------------------------------------------------------------------------- | // -------------------------------------------------------------------------- | 
 |  |  | 
| static WORD a_bx_si(void) { | static UINT16 a_bx_si(void) { | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | return(I286_BX + I286_SI); | return(I286_BX + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_bx_si_disp8(void) { | static UINT16 a_bx_si_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BX + I286_SI); | return(adrs + I286_BX + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_bx_si_disp16(void) { | static UINT16 a_bx_si_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BX + I286_SI); | return(adrs + I286_BX + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_bx_di(void) { | static UINT16 a_bx_di(void) { | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | return(I286_BX + I286_DI); | return(I286_BX + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_bx_di_disp8(void) { | static UINT16 a_bx_di_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BX + I286_DI); | return(adrs + I286_BX + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_bx_di_disp16(void) { | static UINT16 a_bx_di_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BX + I286_DI); | return(adrs + I286_BX + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_bp_si(void) { | static UINT16 a_bp_si(void) { | 
 |  |  | 
 | EA_FIX = SS_FIX; | EA_FIX = SS_FIX; | 
 | return(I286_BP + I286_SI); | return(I286_BP + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_bp_si_disp8(void) { | static UINT16 a_bp_si_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = SS_FIX; | EA_FIX = SS_FIX; | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BP + I286_SI); | return(adrs + I286_BP + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_bp_si_disp16(void) { | static UINT16 a_bp_si_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = SS_FIX; | EA_FIX = SS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BP + I286_SI); | return(adrs + I286_BP + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_bp_di(void) { | static UINT16 a_bp_di(void) { | 
 |  |  | 
 | EA_FIX = SS_FIX; | EA_FIX = SS_FIX; | 
 | return(I286_BP + I286_DI); | return(I286_BP + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_bp_di_disp8(void) { | static UINT16 a_bp_di_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = SS_FIX; | EA_FIX = SS_FIX; | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BP + I286_DI); | return(adrs + I286_BP + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_bp_di_disp16(void) { | static UINT16 a_bp_di_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = SS_FIX; | EA_FIX = SS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BP + I286_DI); | return(adrs + I286_BP + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_si(void) { | static UINT16 a_si(void) { | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | return(I286_SI); | return(I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_si_disp8(void) { | static UINT16 a_si_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_SI); | return(adrs + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_si_disp16(void) { | static UINT16 a_si_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_SI); | return(adrs + I286_SI); | 
 | } | } | 
 |  |  | 
| static WORD a_di(void) { | static UINT16 a_di(void) { | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | return(I286_DI); | return(I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_di_disp8(void) { | static UINT16 a_di_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_DI); | return(adrs + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_di_disp16(void) { | static UINT16 a_di_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_DI); | return(adrs + I286_DI); | 
 | } | } | 
 |  |  | 
| static WORD a_disp16(void) { | static UINT16 a_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs); | return(adrs); | 
 | } | } | 
 |  |  | 
| static WORD a_bp_disp8(void) { | static UINT16 a_bp_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = SS_FIX; | EA_FIX = SS_FIX; | 
| GET_PCBYTESD(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BP); | return(adrs + I286_BP); | 
 | } | } | 
 |  |  | 
| static WORD a_bp_disp16(void) { | static UINT16 a_bp_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = SS_FIX; | EA_FIX = SS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); | 
 | return(adrs + I286_BP); | return(adrs + I286_BP); | 
 | } | } | 
 |  |  | 
| static WORD a_bx(void) { | static UINT16 a_bx(void) { | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | return(I286_BX); | return(I286_BX); | 
 | } | } | 
 |  |  | 
| static WORD a_bx_disp8(void) { | static UINT16 a_bx_disp8(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCBYTES(adrs); | GET_PCBYTES(adrs); | 
 | return(adrs + I286_BX); | return(adrs + I286_BX); | 
 | } | } | 
 |  |  | 
| static WORD a_bx_disp16(void) { | static UINT16 a_bx_disp16(void) { | 
 |  |  | 
| WORD    adrs; | UINT16  adrs; | 
 |  |  | 
 | EA_FIX = DS_FIX; | EA_FIX = DS_FIX; | 
 | GET_PCWORD(adrs); | GET_PCWORD(adrs); |