Diff for /np2/i286x/i286x.cpp between versions 1.21 and 1.24

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

Removed from v.1.21  
changed lines
  Added in v.1.24


RetroPC.NET-CVS <cvs@retropc.net>