Diff for /np2/i286c/i286c_mn.c between versions 1.13 and 1.14

version 1.13, 2003/11/28 08:01:32 version 1.14, 2003/11/29 00:36:00
Line 51  I286FN _add_ea_r8(void) {      // 00: ad Line 51  I286FN _add_ea_r8(void) {      // 00: ad
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         dst = i286_memoryread(madr);                          dst = i286_memoryread(madr);
                         ADDBYTE(res, dst, src);                          ADDBYTE(res, dst, src);
                         i286_memorywrite(madr, (BYTE)res);                          i286_memorywrite(madr, (REG8)res);
                         return;                          return;
                 }                  }
                 out = mem + madr;                  out = mem + madr;
Line 81  I286FN _add_ea_r16(void) {      // 01: a Line 81  I286FN _add_ea_r16(void) {      // 01: a
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         dst = i286_memoryread_w(madr);                          dst = i286_memoryread_w(madr);
                         ADDWORD(res, dst, src);                          ADDWORD(res, dst, src);
                         i286_memorywrite_w(madr, (UINT16)res);                          i286_memorywrite_w(madr, (REG16)res);
                         return;                          return;
                 }                  }
                 out = (UINT16 *)(mem + madr);                  out = (UINT16 *)(mem + madr);
Line 171  I286FN _or_ea_r8(void) {      // 08: or  Line 171  I286FN _or_ea_r8(void) {      // 08: or 
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         dst = i286_memoryread(madr);                          dst = i286_memoryread(madr);
                         ORBYTE(dst, src);                          ORBYTE(dst, src);
                         i286_memorywrite(madr, (BYTE)dst);                          i286_memorywrite(madr, (REG8)dst);
                         return;                          return;
                 }                  }
                 out = mem + madr;                  out = mem + madr;
Line 198  I286FN _or_ea_r16(void) {       // 09: o Line 198  I286FN _or_ea_r16(void) {       // 09: o
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         dst = i286_memoryread_w(madr);                          dst = i286_memoryread_w(madr);
                         ORWORD(dst, src);                          ORWORD(dst, src);
                         i286_memorywrite_w(madr, (UINT16)dst);                          i286_memorywrite_w(madr, (REG16)dst);
                         return;                          return;
                 }                  }
                 out = (UINT16 *)(mem + madr);                  out = (UINT16 *)(mem + madr);
Line 269  I286FN _adc_ea_r8(void) {      // 10: ad Line 269  I286FN _adc_ea_r8(void) {      // 10: ad
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         dst = i286_memoryread(madr);                          dst = i286_memoryread(madr);
                         ADCBYTE(res, dst, src);                          ADCBYTE(res, dst, src);
                         i286_memorywrite(madr, (BYTE)res);                          i286_memorywrite(madr, (REG8)res);
                         return;                          return;
                 }                  }
                 out = mem + madr;                  out = mem + madr;
Line 299  I286FN _adc_ea_r16(void) {      // 11: a Line 299  I286FN _adc_ea_r16(void) {      // 11: a
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         dst = i286_memoryread_w(madr);                          dst = i286_memoryread_w(madr);
                         ADCWORD(res, dst, src);                          ADCWORD(res, dst, src);
                         i286_memorywrite_w(madr, (UINT16)res);                          i286_memorywrite_w(madr, (REG16)res);
                         return;                          return;
                 }                  }
                 out = (UINT16 *)(mem + madr);                  out = (UINT16 *)(mem + madr);
Line 392  I286FN _sbb_ea_r8(void) {      // 18: sb Line 392  I286FN _sbb_ea_r8(void) {      // 18: sb
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         dst = i286_memoryread(madr);                          dst = i286_memoryread(madr);
                         SBBBYTE(res, dst, src);                          SBBBYTE(res, dst, src);
                         i286_memorywrite(madr, (BYTE)res);                          i286_memorywrite(madr, (REG8)res);
                         return;                          return;
                 }                  }
                 out = mem + madr;                  out = mem + madr;
Line 422  I286FN _sbb_ea_r16(void) {      // 19: s Line 422  I286FN _sbb_ea_r16(void) {      // 19: s
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         dst = i286_memoryread_w(madr);                          dst = i286_memoryread_w(madr);
                         SBBWORD(res, dst, src);                          SBBWORD(res, dst, src);
                         i286_memorywrite_w(madr, (UINT16)res);                          i286_memorywrite_w(madr, (REG16)res);
                         return;                          return;
                 }                  }
                 out = (UINT16 *)(mem + madr);                  out = (UINT16 *)(mem + madr);
Line 513  I286FN _and_ea_r8(void) {      // 20: an Line 513  I286FN _and_ea_r8(void) {      // 20: an
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         dst = i286_memoryread(madr);                          dst = i286_memoryread(madr);
                         ANDBYTE(dst, src);                          ANDBYTE(dst, src);
                         i286_memorywrite(madr, (BYTE)dst);                          i286_memorywrite(madr, (REG8)dst);
                         return;                          return;
                 }                  }
                 out = mem + madr;                  out = mem + madr;
Line 540  I286FN _and_ea_r16(void) {      // 21: a Line 540  I286FN _and_ea_r16(void) {      // 21: a
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         dst = i286_memoryread_w(madr);                          dst = i286_memoryread_w(madr);
                         ANDWORD(dst, src);                          ANDWORD(dst, src);
                         i286_memorywrite_w(madr, (UINT16)dst);                          i286_memorywrite_w(madr, (REG16)dst);
                         return;                          return;
                 }                  }
                 out = (UINT16 *)(mem + madr);                  out = (UINT16 *)(mem + madr);
Line 642  I286FN _sub_ea_r8(void) {      // 28: su Line 642  I286FN _sub_ea_r8(void) {      // 28: su
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         dst = i286_memoryread(madr);                          dst = i286_memoryread(madr);
                         BYTE_SUB(res, dst, src);                          BYTE_SUB(res, dst, src);
                         i286_memorywrite(madr, (BYTE)res);                          i286_memorywrite(madr, (REG8)res);
                         return;                          return;
                 }                  }
                 out = mem + madr;                  out = mem + madr;
Line 672  I286FN _sub_ea_r16(void) {      // 29: s Line 672  I286FN _sub_ea_r16(void) {      // 29: s
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         dst = i286_memoryread_w(madr);                          dst = i286_memoryread_w(madr);
                         WORD_SUB(res, dst, src);                          WORD_SUB(res, dst, src);
                         i286_memorywrite_w(madr, (UINT16)res);                          i286_memorywrite_w(madr, (REG16)res);
                         return;                          return;
                 }                  }
                 out = (UINT16 *)(mem + madr);                  out = (UINT16 *)(mem + madr);
Line 784  I286FN _xor_ea_r8(void) {      // 30: xo Line 784  I286FN _xor_ea_r8(void) {      // 30: xo
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         dst = i286_memoryread(madr);                          dst = i286_memoryread(madr);
                         BYTE_XOR(dst, src);                          BYTE_XOR(dst, src);
                         i286_memorywrite(madr, (BYTE)dst);                          i286_memorywrite(madr, (REG8)dst);
                         return;                          return;
                 }                  }
                 out = mem + madr;                  out = mem + madr;
Line 811  I286FN _xor_ea_r16(void) {      // 31: x Line 811  I286FN _xor_ea_r16(void) {      // 31: x
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         dst = i286_memoryread_w(madr);                          dst = i286_memoryread_w(madr);
                         WORD_XOR(dst, src);                          WORD_XOR(dst, src);
                         i286_memorywrite_w(madr, (UINT16)dst);                          i286_memorywrite_w(madr, (REG16)dst);
                         return;                          return;
                 }                  }
                 out = (UINT16 *)(mem + madr);                  out = (UINT16 *)(mem + madr);
Line 1071  I286FN _bound(void) {      // 62: bound Line 1071  I286FN _bound(void) {      // 62: bound
         UINT    vect = 0;          UINT    vect = 0;
         UINT    op;          UINT    op;
         UINT32  madr;          UINT32  madr;
         UINT16  reg;          REG16   reg;
   
         I286_WORKCLOCK(13);                                                                             // ToDo          I286_WORKCLOCK(13);                                                                             // ToDo
         GET_PCBYTE(op);          GET_PCBYTE(op);
Line 1079  I286FN _bound(void) {      // 62: bound Line 1079  I286FN _bound(void) {      // 62: bound
                 reg = *(REG16_B53(op));                  reg = *(REG16_B53(op));
                 madr = CALC_EA(op);                  madr = CALC_EA(op);
                 if (reg >= i286_memoryread_w(madr)) {                  if (reg >= i286_memoryread_w(madr)) {
                         madr += 2;                                                                      // ToDo                          madr += 2;                                                                              // ToDo
                         if (reg <= i286_memoryread_w(madr)) {                          if (reg <= i286_memoryread_w(madr)) {
                                 return;                                  return;
                         }                          }
Line 1150  I286FN _imul_reg_ea_data8(void) {  // 6B Line 1150  I286FN _imul_reg_ea_data8(void) {  // 6B
   
 I286FN _insb(void) {                                            // 6C:  insb  I286FN _insb(void) {                                            // 6C:  insb
   
         BYTE    dat;          REG8    dat;
   
         I286_WORKCLOCK(5);          I286_WORKCLOCK(5);
         dat = iocore_inp8(I286_DX);          dat = iocore_inp8(I286_DX);
Line 1160  I286FN _insb(void) {      // 6C: insb Line 1160  I286FN _insb(void) {      // 6C: insb
   
 I286FN _insw(void) {                                            // 6D:  insw  I286FN _insw(void) {                                            // 6D:  insw
   
         UINT16  dat;          REG16   dat;
   
         I286_WORKCLOCK(5);          I286_WORKCLOCK(5);
         dat = iocore_inp16(I286_DX);          dat = iocore_inp16(I286_DX);
Line 1170  I286FN _insw(void) {      // 6D: insw Line 1170  I286FN _insw(void) {      // 6D: insw
   
 I286FN _outsb(void) {                                           // 6E:  outsb  I286FN _outsb(void) {                                           // 6E:  outsb
   
         BYTE    dat;          REG8    dat;
   
         I286_WORKCLOCK(3);          I286_WORKCLOCK(3);
         dat = i286_memoryread(I286_SI + DS_FIX);          dat = i286_memoryread(I286_SI + DS_FIX);
         I286_SI += STRING_DIR;          I286_SI += STRING_DIR;
         iocore_out8(I286_DX, dat);          iocore_out8(I286_DX, (BYTE)dat);
 }  }
   
 I286FN _outsw(void) {                                           // 6F:  outsw  I286FN _outsw(void) {                                           // 6F:  outsw
   
         UINT16  dat;          REG16   dat;
   
         I286_WORKCLOCK(3);          I286_WORKCLOCK(3);
         dat = i286_memoryread_w(I286_SI + DS_FIX);          dat = i286_memoryread_w(I286_SI + DS_FIX);
         I286_SI += STRING_DIRx2;          I286_SI += STRING_DIRx2;
         iocore_out16(I286_DX, dat);          iocore_out16(I286_DX, (UINT16)dat);
 }  }
   
 I286FN _jo_short(void) {                                        // 70:  jo short  I286FN _jo_short(void) {                                        // 70:  jo short
Line 2074  I286FN _enter(void) {      // C8: enter  Line 2074  I286FN _enter(void) {      // C8: enter 
                         I286_BP = I286_SP;                          I286_BP = I286_SP;
                         while(level--) {                          while(level--) {
 #if 1                                                                                   // なにやってんだヲレ  #if 1                                                                                   // なにやってんだヲレ
                                 UINT16 val;                                  REG16 val;
                                 bp -= 2;                                  bp -= 2;
                                 I286_SP -= 2;                                  I286_SP -= 2;
                                 val = i286_memoryread_w(bp + SS_BASE);                                  val = i286_memoryread_w(bp + SS_BASE);

Removed from v.1.13  
changed lines
  Added in v.1.14


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