|
|
| version 1.10, 2003/11/29 03:38:26 | version 1.20, 2005/02/07 14:46:10 |
|---|---|
| Line 1 | Line 1 |
| #if defined(X11) && (defined(i386) || defined(__i386__)) | |
| #define INHIBIT_WORDP(m) ((m) >= (I286_MEMWRITEMAX - 1)) | |
| #elif (defined(ARM) || defined(X11)) && defined(BYTESEX_LITTLE) | |
| #define INHIBIT_WORDP(m) (((m) & 1) || ((m) >= I286_MEMWRITEMAX)) | |
| #else | |
| #define INHIBIT_WORDP(m) (1) | #define INHIBIT_WORDP(m) (1) |
| #endif | |
| #define __CBW(src) (UINT16)((char)(src)) | #define __CBW(src) (UINT16)((SINT8)(src)) |
| #define __CBD(src) ((char)(src)) | #define __CBD(src) ((SINT8)(src)) |
| #define WORD2LONG(src) ((short)(src)) | #define WORD2LONG(src) ((SINT16)(src)) |
| #define SEGMENTPTR(s) (((UINT16 *)&I286_SEGREG) + (s)) | #define SEGMENTPTR(s) (((UINT16 *)&I286_SEGREG) + (s)) |
| Line 18 | Line 24 |
| #if defined(I286C_TEST) | #if defined(I286C_TEST) |
| extern BYTE BYTESZPF(UINT r); | extern UINT8 BYTESZPF(UINT r); |
| extern BYTE BYTESZPCF(UINT r); | extern UINT8 BYTESZPCF(UINT r); |
| #define BYTESZPCF2(a) BYTESZPCF((a) & 0x1ff) | #define BYTESZPCF2(a) BYTESZPCF((a) & 0x1ff) |
| extern BYTE WORDSZPF(UINT32 r); | extern UINT8 WORDSZPF(UINT32 r); |
| extern BYTE WORDSZPCF(UINT32 r); | extern UINT8 WORDSZPCF(UINT32 r); |
| #elif !defined(MEMOPTIMIZE) | #elif !defined(MEMOPTIMIZE) |
| extern BYTE _szpcflag8[0x200]; | extern UINT8 _szpflag16[0x10000]; |
| extern BYTE _szpflag16[0x10000]; | #define BYTESZPF(a) (iflags[(a)]) |
| #define BYTESZPF(a) (_szpcflag8[(a)]) | #define BYTESZPCF(a) (iflags[(a)]) |
| #define BYTESZPCF(a) (_szpcflag8[(a)]) | #define BYTESZPCF2(a) (iflags[(a) & 0x1ff]) |
| #define BYTESZPCF2(a) (_szpcflag8[(a) & 0x1ff]) | |
| #define WORDSZPF(a) (_szpflag16[(a)]) | #define WORDSZPF(a) (_szpflag16[(a)]) |
| #define WORDSZPCF(a) (_szpflag16[LOW16(a)] + (((a) >> 16) & 1)) | #define WORDSZPCF(a) (_szpflag16[LOW16(a)] + (((a) >> 16) & 1)) |
| #else | #else |
| extern BYTE _szpcflag8[0x200]; | #define BYTESZPF(a) (iflags[(a)]) |
| #define BYTESZPCF(a) (iflags[(a)]) | |
| #define BYTESZPF(a) (_szpcflag8[(a)]) | #define BYTESZPCF2(a) (iflags[(a) & 0x1ff]) |
| #define BYTESZPCF(a) (_szpcflag8[(a)]) | #define WORDSZPF(a) ((iflags[(a) & 0xff] & P_FLAG) + \ |
| #define BYTESZPCF2(a) (_szpcflag8[(a) & 0x1ff]) | |
| #define WORDSZPF(a) ((_szpcflag8[(a) & 0xff] & P_FLAG) + \ | |
| (((a))?0:Z_FLAG) + (((a) >> 8) & S_FLAG)) | (((a))?0:Z_FLAG) + (((a) >> 8) & S_FLAG)) |
| #define WORDSZPCF(a) ((_szpcflag8[(a) & 0xff] & P_FLAG) + \ | #define WORDSZPCF(a) ((iflags[(a) & 0xff] & P_FLAG) + \ |
| ((LOW16(a))?0:Z_FLAG) + (((a) >> 8) & S_FLAG) + \ | ((LOW16(a))?0:Z_FLAG) + (((a) >> 8) & S_FLAG) + \ |
| (((a) >> 16) & 1)) | (((a) >> 16) & 1)) |
| Line 53 extern BYTE _szpcflag8[0x200]; | Line 56 extern BYTE _szpcflag8[0x200]; |
| // ---- reg position | // ---- reg position |
| #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2) | #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2) |
| extern BYTE *_reg8_b53[256]; | extern UINT8 *_reg8_b53[256]; |
| extern BYTE *_reg8_b20[256]; | extern UINT8 *_reg8_b20[256]; |
| #define REG8_B53(op) _reg8_b53[(op)] | #define REG8_B53(op) _reg8_b53[(op)] |
| #define REG8_B20(op) _reg8_b20[(op)] | #define REG8_B20(op) _reg8_b20[(op)] |
| #else | #else |
| #if defined(BYTESEX_LITTLE) | #if defined(BYTESEX_LITTLE) |
| #define REG8_B53(op) \ | #define REG8_B53(op) \ |
| (((BYTE *)&I286_REG) + (((op) >> 2) & 6) + (((op) >> 5) & 1)) | (((UINT8 *)&I286_REG) + (((op) >> 2) & 6) + (((op) >> 5) & 1)) |
| #define REG8_B20(op) \ | #define REG8_B20(op) \ |
| (((BYTE *)&I286_REG) + (((op) & 3) * 2) + (((op) >> 2) & 1)) | (((UINT8 *)&I286_REG) + (((op) & 3) * 2) + (((op) >> 2) & 1)) |
| #else | #else |
| #define REG8_B53(op) (((BYTE *)&I286_REG) + (((op) >> 2) & 6) + \ | #define REG8_B53(op) (((UINT8 *)&I286_REG) + (((op) >> 2) & 6) + \ |
| ((((op) >> 5) & 1) ^ 1)) | ((((op) >> 5) & 1) ^ 1)) |
| #define REG8_B20(op) (((BYTE *)&I286_REG) + (((op) & 3) * 2) + \ | #define REG8_B20(op) (((UINT8 *)&I286_REG) + (((op) & 3) * 2) + \ |
| ((((op) >> 2) & 1) ^ 1)) | ((((op) >> 2) & 1) ^ 1)) |
| #endif | #endif |
| #endif | #endif |
| Line 105 extern UINT calc_a(UINT op, UINT32 *seg) | Line 108 extern UINT calc_a(UINT op, UINT32 *seg) |
| #define SWAPBYTE(p, q) { \ | #define SWAPBYTE(p, q) { \ |
| BYTE tmp = (p); \ | REG8 tmp; \ |
| tmp = (p); \ | |
| (p) = (q); \ | (p) = (q); \ |
| (q) = tmp; \ | (q) = tmp; \ |
| } | } |
| #define SWAPWORD(p, q) { \ | #define SWAPWORD(p, q) { \ |
| UINT16 tmp; \ | REG16 tmp; \ |
| tmp = (p); \ | tmp = (p); \ |
| (p) = (q); \ | (p) = (q); \ |
| (q) = tmp; \ | (q) = tmp; \ |
| Line 202 extern UINT calc_a(UINT op, UINT32 *seg) | Line 206 extern UINT calc_a(UINT op, UINT32 *seg) |
| #define ADDBYTE(r, d, s) \ | #define ADDBYTE(r, d, s) \ |
| (r) = (s) + (d); \ | (r) = (s) + (d); \ |
| I286_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x80; \ | I286_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x80; \ |
| I286_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((r) ^ (d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= BYTESZPCF(r); | I286_FLAGL |= BYTESZPCF(r); |
| #define ADDWORD(r, d, s) \ | #define ADDWORD(r, d, s) \ |
| (r) = (s) + (d); \ | (r) = (s) + (d); \ |
| I286_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x8000; \ | I286_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x8000; \ |
| I286_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((r) ^ (d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= WORDSZPCF(r); | I286_FLAGL |= WORDSZPCF(r); |
| Line 227 extern UINT calc_a(UINT op, UINT32 *seg) | Line 231 extern UINT calc_a(UINT op, UINT32 *seg) |
| #define ADCBYTE(r, d, s) \ | #define ADCBYTE(r, d, s) \ |
| (r) = (I286_FLAGL & 1) + (s) + (d); \ | (r) = (I286_FLAGL & 1) + (s) + (d); \ |
| I286_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x80; \ | I286_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x80; \ |
| I286_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((r) ^ (d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= BYTESZPCF(r); | I286_FLAGL |= BYTESZPCF(r); |
| #define ADCWORD(r, d, s) \ | #define ADCWORD(r, d, s) \ |
| (r) = (I286_FLAGL & 1) + (s) + (d); \ | (r) = (I286_FLAGL & 1) + (s) + (d); \ |
| I286_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x8000; \ | I286_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x8000; \ |
| I286_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((r) ^ (d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= WORDSZPCF(r); | I286_FLAGL |= WORDSZPCF(r); |
| Line 241 extern UINT calc_a(UINT op, UINT32 *seg) | Line 245 extern UINT calc_a(UINT op, UINT32 *seg) |
| #define SBBBYTE(r, d, s) \ | #define SBBBYTE(r, d, s) \ |
| (r) = (d) - (s) - (I286_FLAGL & 1); \ | (r) = (d) - (s) - (I286_FLAGL & 1); \ |
| I286_OV = ((d) ^ (r)) & ((d) ^ (s)) & 0x80; \ | I286_OV = ((d) ^ (r)) & ((d) ^ (s)) & 0x80; \ |
| I286_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((r) ^ (d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= BYTESZPCF2(r); | I286_FLAGL |= BYTESZPCF2(r); |
| #define SBBWORD(r, d, s) \ | #define SBBWORD(r, d, s) \ |
| (r) = (d) - (s) - (I286_FLAGL & 1); \ | (r) = (d) - (s) - (I286_FLAGL & 1); \ |
| I286_OV = ((d) ^ (r)) & ((d) ^ (s)) & 0x8000; \ | I286_OV = ((d) ^ (r)) & ((d) ^ (s)) & 0x8000; \ |
| I286_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((r) ^ (d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= WORDSZPCF(r); | I286_FLAGL |= WORDSZPCF(r); |
| Line 267 extern UINT calc_a(UINT op, UINT32 *seg) | Line 271 extern UINT calc_a(UINT op, UINT32 *seg) |
| #define SUBBYTE(r, d, s) \ | #define SUBBYTE(r, d, s) \ |
| (r) = (d) - (s); \ | (r) = (d) - (s); \ |
| I286_OV = ((d) ^ (r)) & ((d) ^ (s)) & 0x80; \ | I286_OV = ((d) ^ (r)) & ((d) ^ (s)) & 0x80; \ |
| I286_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((r) ^ (d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= BYTESZPCF2(r); | I286_FLAGL |= BYTESZPCF2(r); |
| #define SUBWORD(r, d, s) \ | #define SUBWORD(r, d, s) \ |
| Line 292 extern UINT calc_a(UINT op, UINT32 *seg) | Line 296 extern UINT calc_a(UINT op, UINT32 *seg) |
| #define NEGBYTE(d, s) \ | #define NEGBYTE(d, s) \ |
| (d) = 0 - (s); \ | (d) = 0 - (s); \ |
| I286_OV = ((d) & (s)) & 0x80; \ | I286_OV = ((d) & (s)) & 0x80; \ |
| I286_FLAGL = (BYTE)(((d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= BYTESZPCF2(d); | I286_FLAGL |= BYTESZPCF2(d); |
| #define NEGWORD(d, s) \ | #define NEGWORD(d, s) \ |
| (d) = 0 - (s); \ | (d) = 0 - (s); \ |
| I286_OV = ((d) & (s)) & 0x8000; \ | I286_OV = ((d) & (s)) & 0x8000; \ |
| I286_FLAGL = (BYTE)(((d) ^ (s)) & A_FLAG); \ | I286_FLAGL = (UINT8)(((d) ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= WORDSZPCF(d); | I286_FLAGL |= WORDSZPCF(d); |
| #define BYTE_MUL(r, d, s) \ | #define BYTE_MUL(r, d, s) \ |
| I286_FLAGL &= (Z_FLAG | S_FLAG | A_FLAG | P_FLAG); \ | I286_FLAGL &= (Z_FLAG | S_FLAG | A_FLAG | P_FLAG); \ |
| (r) = (BYTE)(d) * (BYTE)(s); \ | (r) = (UINT8)(d) * (UINT8)(s); \ |
| I286_OV = (r) >> 8; \ | I286_OV = (r) >> 8; \ |
| if (I286_OV) { \ | if (I286_OV) { \ |
| I286_FLAGL |= C_FLAG; \ | I286_FLAGL |= C_FLAG; \ |
| Line 321 extern UINT calc_a(UINT op, UINT32 *seg) | Line 325 extern UINT calc_a(UINT op, UINT32 *seg) |
| #define BYTE_IMUL(r, d, s) \ | #define BYTE_IMUL(r, d, s) \ |
| I286_FLAGL &= (Z_FLAG | S_FLAG | A_FLAG | P_FLAG); \ | I286_FLAGL &= (Z_FLAG | S_FLAG | A_FLAG | P_FLAG); \ |
| (r) = (char)(d) * (char)(s); \ | (r) = (SINT8)(d) * (SINT8)(s); \ |
| I286_OV = ((r) + 0x80) & 0xffffff00; \ | I286_OV = ((r) + 0x80) & 0xffffff00; \ |
| if (I286_OV) { \ | if (I286_OV) { \ |
| I286_FLAGL |= C_FLAG; \ | I286_FLAGL |= C_FLAG; \ |
| Line 329 extern UINT calc_a(UINT op, UINT32 *seg) | Line 333 extern UINT calc_a(UINT op, UINT32 *seg) |
| #define WORD_IMUL(r, d, s) \ | #define WORD_IMUL(r, d, s) \ |
| I286_FLAGL &= (Z_FLAG | S_FLAG | A_FLAG | P_FLAG); \ | I286_FLAGL &= (Z_FLAG | S_FLAG | A_FLAG | P_FLAG); \ |
| (r) = (short)(d) * (short)(s); \ | (r) = (SINT16)(d) * (SINT16)(s); \ |
| I286_OV = ((r) + 0x8000) & 0xffff0000; \ | I286_OV = ((r) + 0x8000) & 0xffff0000; \ |
| if (I286_OV) { \ | if (I286_OV) { \ |
| I286_FLAGL |= C_FLAG; \ | I286_FLAGL |= C_FLAG; \ |
| Line 342 extern UINT calc_a(UINT op, UINT32 *seg) | Line 346 extern UINT calc_a(UINT op, UINT32 *seg) |
| (s)++; \ | (s)++; \ |
| I286_OV = (s) & (b ^ (s)) & 0x80; \ | I286_OV = (s) & (b ^ (s)) & 0x80; \ |
| I286_FLAGL &= C_FLAG; \ | I286_FLAGL &= C_FLAG; \ |
| I286_FLAGL |= (BYTE)((b ^ (s)) & A_FLAG); \ | I286_FLAGL |= (UINT8)((b ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= BYTESZPF((BYTE)(s)); \ | I286_FLAGL |= BYTESZPF((UINT8)(s)); \ |
| } | } |
| #define INCWORD(s) { \ | #define INCWORD(s) { \ |
| Line 351 extern UINT calc_a(UINT op, UINT32 *seg) | Line 355 extern UINT calc_a(UINT op, UINT32 *seg) |
| (s)++; \ | (s)++; \ |
| I286_OV = (s) & (b ^ (s)) & 0x8000; \ | I286_OV = (s) & (b ^ (s)) & 0x8000; \ |
| I286_FLAGL &= C_FLAG; \ | I286_FLAGL &= C_FLAG; \ |
| I286_FLAGL |= (BYTE)((b ^ (s)) & A_FLAG); \ | I286_FLAGL |= (UINT8)((b ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= WORDSZPF((UINT16)(s)); \ | I286_FLAGL |= WORDSZPF((UINT16)(s)); \ |
| } | } |
| Line 362 extern UINT calc_a(UINT op, UINT32 *seg) | Line 366 extern UINT calc_a(UINT op, UINT32 *seg) |
| b--; \ | b--; \ |
| I286_OV = (s) & (b ^ (s)) & 0x80; \ | I286_OV = (s) & (b ^ (s)) & 0x80; \ |
| I286_FLAGL &= C_FLAG; \ | I286_FLAGL &= C_FLAG; \ |
| I286_FLAGL |= (BYTE)((b ^ (s)) & A_FLAG); \ | I286_FLAGL |= (UINT8)((b ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= BYTESZPF((BYTE)b); \ | I286_FLAGL |= BYTESZPF((UINT8)b); \ |
| (s) = b; \ | (s) = b; \ |
| } | } |
| Line 372 extern UINT calc_a(UINT op, UINT32 *seg) | Line 376 extern UINT calc_a(UINT op, UINT32 *seg) |
| b--; \ | b--; \ |
| I286_OV = (s) & (b ^ (s)) & 0x8000; \ | I286_OV = (s) & (b ^ (s)) & 0x8000; \ |
| I286_FLAGL &= C_FLAG; \ | I286_FLAGL &= C_FLAG; \ |
| I286_FLAGL |= (BYTE)((b ^ (s)) & A_FLAG); \ | I286_FLAGL |= (UINT8)((b ^ (s)) & A_FLAG); \ |
| I286_FLAGL |= WORDSZPF((UINT16)b); \ | I286_FLAGL |= WORDSZPF((UINT16)b); \ |
| (s) = b; \ | (s) = b; \ |
| } | } |
| Line 386 extern UINT calc_a(UINT op, UINT32 *seg) | Line 390 extern UINT calc_a(UINT op, UINT32 *seg) |
| (r) = (UINT16)d; \ | (r) = (UINT16)d; \ |
| I286_OV = d & (d ^ s) & 0x8000; \ | I286_OV = d & (d ^ s) & 0x8000; \ |
| I286_FLAGL &= C_FLAG; \ | I286_FLAGL &= C_FLAG; \ |
| I286_FLAGL |= (BYTE)((d ^ s) & A_FLAG); \ | I286_FLAGL |= (UINT8)((d ^ s) & A_FLAG); \ |
| I286_FLAGL |= WORDSZPF((UINT16)d); \ | I286_FLAGL |= WORDSZPF((UINT16)d); \ |
| I286_WORKCLOCK(clock); \ | I286_WORKCLOCK(clock); \ |
| } | } |
| Line 398 extern UINT calc_a(UINT op, UINT32 *seg) | Line 402 extern UINT calc_a(UINT op, UINT32 *seg) |
| (r) = (UINT16)d; \ | (r) = (UINT16)d; \ |
| I286_OV = s & (d ^ s) & 0x8000; \ | I286_OV = s & (d ^ s) & 0x8000; \ |
| I286_FLAGL &= C_FLAG; \ | I286_FLAGL &= C_FLAG; \ |
| I286_FLAGL |= (BYTE)((d ^ s) & A_FLAG); \ | I286_FLAGL |= (UINT8)((d ^ s) & A_FLAG); \ |
| I286_FLAGL |= WORDSZPF((UINT16)d); \ | I286_FLAGL |= WORDSZPF((UINT16)d); \ |
| I286_WORKCLOCK(clock); \ | I286_WORKCLOCK(clock); \ |
| } | } |
| #define REGPUSH(reg, clock) { \ | // ---- stack |
| I286_WORKCLOCK(clock); \ | |
| I286_SP -= 2; \ | |
| i286_memorywrite_w(I286_SP + SS_BASE, reg); \ | |
| } | |
| #define REGPUSH0(reg) \ | #define REGPUSH0(reg) \ |
| I286_SP -= 2; \ | I286_SP -= 2; \ |
| i286_memorywrite_w(I286_SP + SS_BASE, reg); | i286_memorywrite_w(I286_SP + SS_BASE, reg); |
| #define REGPOP0(reg) \ | |
| reg = i286_memoryread_w(I286_SP + SS_BASE); \ | |
| I286_SP += 2; | |
| #define SP_PUSH(reg, clock) { \ | #if (defined(ARM) || defined(X11)) && defined(BYTESEX_LITTLE) |
| UINT16 sp = reg; \ | |
| #define REGPUSH(reg, clock) { \ | |
| UINT32 addr; \ | |
| I286_WORKCLOCK(clock); \ | |
| I286_SP -= 2; \ | I286_SP -= 2; \ |
| i286_memorywrite_w(I286_SP + SS_BASE, sp); \ | addr = I286_SP + SS_BASE; \ |
| if (INHIBIT_WORDP(addr)) { \ | |
| i286_memorywrite_w(addr, reg); \ | |
| } \ | |
| else { \ | |
| *(UINT16 *)(mem + addr) = (reg); \ | |
| } \ | |
| } | |
| #define REGPOP(reg, clock) { \ | |
| UINT32 addr; \ | |
| I286_WORKCLOCK(clock); \ | I286_WORKCLOCK(clock); \ |
| addr = I286_SP + SS_BASE; \ | |
| if (INHIBIT_WORDP(addr)) { \ | |
| (reg) = i286_memoryread_w(addr); \ | |
| } \ | |
| else { \ | |
| (reg) = *(UINT16 *)(mem + addr); \ | |
| } \ | |
| I286_SP += 2; \ | |
| } | } |
| #else | |
| #define REGPUSH(reg, clock) { \ | |
| I286_WORKCLOCK(clock); \ | |
| I286_SP -= 2; \ | |
| i286_memorywrite_w(I286_SP + SS_BASE, reg); \ | |
| } | |
| #define REGPOP(reg, clock) { \ | #define REGPOP(reg, clock) { \ |
| I286_WORKCLOCK(clock); \ | I286_WORKCLOCK(clock); \ |
| Line 430 extern UINT calc_a(UINT op, UINT32 *seg) | Line 460 extern UINT calc_a(UINT op, UINT32 *seg) |
| I286_SP += 2; \ | I286_SP += 2; \ |
| } | } |
| #define SP_POP(reg, clock) { \ | #endif |
| #define SP_PUSH(reg, clock) { \ | |
| REG16 sp = (reg); \ | |
| I286_SP -= 2; \ | |
| i286_memorywrite_w(I286_SP + SS_BASE, sp); \ | |
| I286_WORKCLOCK(clock); \ | I286_WORKCLOCK(clock); \ |
| reg = i286_memoryread_w(I286_SP + SS_BASE); \ | |
| } | } |
| #define SP_POP(reg, clock) { \ | |
| #define REGPOP0(reg) \ | I286_WORKCLOCK(clock); \ |
| reg = i286_memoryread_w(I286_SP + SS_BASE); \ | reg = i286_memoryread_w(I286_SP + SS_BASE); \ |
| I286_SP += 2; | } |
| #define JMPSHORT(clock) { \ | #define JMPSHORT(clock) { \ |
| Line 467 extern UINT calc_a(UINT op, UINT32 *seg) | Line 500 extern UINT calc_a(UINT op, UINT32 *seg) |
| } | } |
| #define INT_NUM(a, b) i286_intnum(a, b) | #define SEGSELECT(c) ((I286_MSW & MSW_PE)?i286c_selector(c):((c) << 4)) |
| #define INT_NUM(a, b) i286c_intnum((a), (REG16)(b)) | |