|
|
| version 1.21, 2004/02/18 20:11:36 | version 1.24, 2005/02/12 12:13:58 |
|---|---|
| Line 11 | Line 11 |
| #include "i286xea.mcr" | #include "i286xea.mcr" |
| #include "v30patch.h" | #include "v30patch.h" |
| #include "bios.h" | #include "bios.h" |
| #include "dmap.h" | #include "dmax86.h" |
| I286CORE i286core; | I286CORE i286core; |
| const BYTE iflags[256] = { // Z_FLAG, S_FLAG, P_FLAG | const UINT8 iflags[256] = { // Z_FLAG, S_FLAG, P_FLAG |
| 0x44, 0x00, 0x00, 0x04, 0x00, 0x04, 0x04, 0x00, | 0x44, 0x00, 0x00, 0x04, 0x00, 0x04, 0x04, 0x00, |
| 0x00, 0x04, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, | 0x00, 0x04, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, |
| 0x00, 0x04, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, | 0x00, 0x04, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, |
| Line 95 void i286x_setextsize(UINT32 size) { | Line 95 void i286x_setextsize(UINT32 size) { |
| CPU_EXTMEM = NULL; | CPU_EXTMEM = NULL; |
| } | } |
| if (size) { | if (size) { |
| CPU_EXTMEM = (BYTE *)_MALLOC(size + 16, "EXTMEM"); | CPU_EXTMEM = (UINT8 *)_MALLOC(size + 16, "EXTMEM"); |
| if (CPU_EXTMEM == NULL) { | if (CPU_EXTMEM == NULL) { |
| size = 0; | size = 0; |
| } | } |
| Line 110 void i286x_setextsize(UINT32 size) { | Line 110 void i286x_setextsize(UINT32 size) { |
| void i286x_setemm(UINT frame, UINT32 addr) { | void i286x_setemm(UINT frame, UINT32 addr) { |
| BYTE *ptr; | UINT8 *ptr; |
| frame &= 3; | frame &= 3; |
| if (addr < USE_HIMEM) { | if (addr < USE_HIMEM) { |
| Line 138 LABEL void i286x_resetprefetch(void) { | Line 138 LABEL void i286x_resetprefetch(void) { |
| } | } |
| } | } |
| LABEL void __fastcall i286x_interrupt(BYTE vect) { | LABEL void __fastcall i286x_interrupt(UINT8 vect) { |
| __asm { | __asm { |
| pushad | pushad |
| Line 276 i286_mnlp: movzx eax, bl | Line 276 i286_mnlp: movzx eax, bl |
| align 16 | align 16 |
| i286_dma_mnlp: movzx eax, bl | i286_dma_mnlp: movzx eax, bl |
| call i286op[eax*4] | call i286op[eax*4] |
| call dmap_i286 | call dmax86 |
| cmp I286_REMCLOCK, 0 | cmp I286_REMCLOCK, 0 |
| jg i286_dma_mnlp | jg i286_dma_mnlp |
| mov dword ptr (i286core.s.prefetchque), ebx | mov dword ptr (i286core.s.prefetchque), ebx |
| Line 318 nexts: | Line 318 nexts: |
| mov dword ptr (i286core.s.prefetchque), ebx | mov dword ptr (i286core.s.prefetchque), ebx |
| mov I286_IP, si | mov I286_IP, si |
| call dmap_i286 | call dmax86 |
| popad | popad |
| ret | ret |
| } | } |
| Line 343 LABEL void removeprefix(void) { | Line 343 LABEL void removeprefix(void) { |
| I286 _reserved(void) { | I286 _reserved(void) { |
| __asm { | __asm { |
| inc si // 01/08/31 | // inc si // 01/08/31 |
| INT_NUM(6) | INT_NUM(6) |
| } | } |
| } | } |
| Line 1695 I286 _arpl(void) { | Line 1695 I286 _arpl(void) { |
| xor eax, eax | xor eax, eax |
| cmp bh, 0c0h | cmp bh, 0c0h |
| setc al | setc al |
| add si, ax | // add si, ax |
| add eax, 10 | add eax, 10 |
| I286CLOCK(eax) | I286CLOCK(eax) |
| INT_NUM(6) | INT_NUM(6) |
| Line 3660 I286 _into(void) { // CE: into | Line 3660 I286 _into(void) { // CE: into |
| GET_NEXTPRE1 | GET_NEXTPRE1 |
| ret | ret |
| intovf: INT_NUM(4) | intovf: inc si // ver0.80 |
| INT_NUM(4) | |
| } | } |
| } | } |
| Line 4348 I286 _ope0xff(void) { // FF: | Line 4349 I286 _ope0xff(void) { // FF: |
| // ------------------------------------------------------------------------- | // ------------------------------------------------------------------------- |
| void (*i286op[])(void) = { | const I286TBL i286op[256] = { |
| add_ea_r8, // 00: add EA, REG8 | add_ea_r8, // 00: add EA, REG8 |
| add_ea_r16, // 01: add EA, REG16 | add_ea_r16, // 01: add EA, REG16 |
| add_r8_ea, // 02: add REG8, EA | add_r8_ea, // 02: add REG8, EA |
| Line 4672 I286 repe_segprefix_ds(void) { | Line 4673 I286 repe_segprefix_ds(void) { |
| } | } |
| } | } |
| void (*i286op_repe[])(void) = { | const I286TBL i286op_repe[256] = { |
| add_ea_r8, // 00: add EA, REG8 | add_ea_r8, // 00: add EA, REG8 |
| add_ea_r16, // 01: add EA, REG16 | add_ea_r16, // 01: add EA, REG16 |
| add_r8_ea, // 02: add REG8, EA | add_r8_ea, // 02: add REG8, EA |
| Line 4996 I286 repne_segprefix_ds(void) { | Line 4997 I286 repne_segprefix_ds(void) { |
| } | } |
| } | } |
| void (*i286op_repne[])(void) = { | const I286TBL i286op_repne[256] = { |
| add_ea_r8, // 00: add EA, REG8 | add_ea_r8, // 00: add EA, REG8 |
| add_ea_r16, // 01: add EA, REG16 | add_ea_r16, // 01: add EA, REG16 |
| add_r8_ea, // 02: add REG8, EA | add_r8_ea, // 02: add REG8, EA |