|
|
| version 1.9, 2005/02/08 09:57:26 | version 1.11, 2005/03/03 06:59:41 |
|---|---|
| Line 11 | Line 11 |
| #include "i286x.mcr" | #include "i286x.mcr" |
| #include "i286xea.mcr" | #include "i286xea.mcr" |
| #include "dmax86.h" | #include "dmax86.h" |
| #if defined(ENABLE_TRAP) | |
| #include "steptrap.h" | |
| #endif | |
| typedef struct { | typedef struct { |
| Line 25 static I286TBL v30ope0xf6_xtable[8]; | Line 28 static I286TBL v30ope0xf6_xtable[8]; |
| static I286TBL v30ope0xf7_xtable[8]; | static I286TBL v30ope0xf7_xtable[8]; |
| static const BYTE shiftbase16[256] = | static const UINT8 shiftbase16[256] = |
| {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, | {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, |
| 16, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, | 16, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, |
| 16, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, | 16, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, |
| Line 43 static const BYTE shiftbase16[256] = | Line 46 static const BYTE shiftbase16[256] = |
| 16, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, | 16, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, |
| 16, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15}; | 16, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15}; |
| static const BYTE shiftbase09[256] = | static const UINT8 shiftbase09[256] = |
| {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, | {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, |
| 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, | 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, |
| 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, | 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, |
| Line 61 static const BYTE shiftbase09[256] = | Line 64 static const BYTE shiftbase09[256] = |
| 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, | 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, |
| 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3}; | 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3}; |
| static const BYTE shiftbase17[256] = | static const UINT8 shiftbase17[256] = |
| {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, | {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, |
| 16,17, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, | 16,17, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, |
| 15,16,17, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13, | 15,16,17, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13, |
| Line 1184 LABEL void v30x(void) { | Line 1187 LABEL void v30x(void) { |
| jne short v30_dma_mnlp | jne short v30_dma_mnlp |
| align 4 | align 4 |
| v30_mnlp: movzx eax, bl | v30_mnlp: |
| #if defined(ENABLE_TRAP) | |
| mov edx, esi | |
| movzx ecx, I286_CS | |
| call steptrap | |
| #endif | |
| movzx eax, bl | |
| call v30op[eax*4] | call v30op[eax*4] |
| cmp I286_REMCLOCK, 0 | cmp I286_REMCLOCK, 0 |
| jg v30_mnlp | jg v30_mnlp |
| Line 1194 v30_mnlp: movzx eax, bl | Line 1203 v30_mnlp: movzx eax, bl |
| ret | ret |
| align 4 | align 4 |
| v30_dma_mnlp: movzx eax, bl | v30_dma_mnlp: |
| #if defined(ENABLE_TRAP) | |
| mov edx, esi | |
| movzx ecx, I286_CS | |
| call steptrap | |
| #endif | |
| movzx eax, bl | |
| call v30op[eax*4] | call v30op[eax*4] |
| call dmax86 | call dmax86 |
| cmp I286_REMCLOCK, 0 | cmp I286_REMCLOCK, 0 |
| Line 1205 v30_dma_mnlp: movzx eax, bl | Line 1220 v30_dma_mnlp: movzx eax, bl |
| ret | ret |
| align 4 | align 4 |
| v30_trapping: movzx eax, bl | v30_trapping: |
| #if defined(ENABLE_TRAP) | |
| mov edx, esi | |
| movzx ecx, I286_CS | |
| call steptrap | |
| #endif | |
| movzx eax, bl | |
| call v30op[eax*4] | call v30op[eax*4] |
| cmp I286_TRAP, 0 | cmp I286_TRAP, 0 |
| je v30notrap | je v30notrap |