Diff for /np2/bios/bios0c.c between versions 1.4 and 1.5

version 1.4, 2003/12/12 01:04:39 version 1.5, 2004/03/07 23:04:50
Line 20  void bios0x0c(void) { Line 20  void bios0x0c(void) {
         doff = GETBIOSMEM16(MEMW_RS_CH0_OFST);          doff = GETBIOSMEM16(MEMW_RS_CH0_OFST);
         dseg = GETBIOSMEM16(MEMW_RS_CH0_SEG);          dseg = GETBIOSMEM16(MEMW_RS_CH0_SEG);
   
         flag = i286_membyte_read(dseg, doff + R_FLAG);          flag = MEML_READ8(dseg, doff + R_FLAG);
         data = iocore_inp8(0x30);                                                       // データ引き取り          data = iocore_inp8(0x30);                                                       // データ引き取り
         stat = iocore_inp8(0x32) & 0xfc;                                        // ステータス          stat = iocore_inp8(0x32) & 0xfc;                                        // ステータス
         stat |= (iocore_inp8(0x33) & 3);          stat |= (iocore_inp8(0x33) & 3);
Line 61  void bios0x0c(void) { Line 61  void bios0x0c(void) {
                         }                          }
                 }                  }
                 // データ投棄                  // データ投棄
                 pos = i286_memword_read(dseg, doff + R_PUTP);                  pos = MEML_READ16(dseg, doff + R_PUTP);
                 i286_memword_write(dseg, pos, (UINT16)((data << 8) | stat));                  MEML_WRITE16(dseg, pos, (UINT16)((data << 8) | stat));
   
                 // 次のポインタをストア                  // 次のポインタをストア
                 pos = (UINT16)(pos + 2);                  pos = (UINT16)(pos + 2);
                 if (pos >= i286_memword_read(dseg, doff + R_TAILP)) {                  if (pos >= MEML_READ16(dseg, doff + R_TAILP)) {
                         pos = i286_memword_read(dseg, doff + R_HEADP);                          pos = MEML_READ16(dseg, doff + R_HEADP);
                 }                  }
                 i286_memword_write(dseg, doff + R_PUTP, pos);                  MEML_WRITE16(dseg, doff + R_PUTP, pos);
   
                 // カウンタのインクリメント                  // カウンタのインクリメント
                 cnt = (UINT16)(i286_memword_read(dseg, doff + R_CNT) + 1);                  cnt = (UINT16)(MEML_READ16(dseg, doff + R_CNT) + 1);
                 i286_memword_write(dseg, doff + R_CNT, cnt);                  MEML_WRITE16(dseg, doff + R_CNT, cnt);
   
                 // オーバーフローを見張る                  // オーバーフローを見張る
                 if (pos == i286_memword_read(dseg, doff + R_GETP)) {                  if (pos == MEML_READ16(dseg, doff + R_GETP)) {
                         flag |= RFLAG_BFULL;                          flag |= RFLAG_BFULL;
                 }                  }
   
                 // XOFFを送信?                  // XOFFを送信?
                 if (((flag & (RFLAG_XON | RFLAG_XOFF)) == RFLAG_XON) &&                  if (((flag & (RFLAG_XON | RFLAG_XOFF)) == RFLAG_XON) &&
                         (cnt >= i286_memword_read(dseg, doff + R_XON))) {                          (cnt >= MEML_READ16(dseg, doff + R_XON))) {
                         iocore_out8(0x30, RSCODE_XOFF);                          iocore_out8(0x30, RSCODE_XOFF);
                         flag |= RFLAG_XOFF;                          flag |= RFLAG_XOFF;
                 }                  }
         }          }
         else {          else {
                 i286_membyte_write(dseg, doff + R_CMD,                  MEML_WRITE8(dseg, doff + R_CMD,
                                 (REG8)(i286_membyte_read(dseg, doff + R_CMD) | RFLAG_BOVF));                                                  (REG8)(MEML_READ8(dseg, doff + R_CMD) | RFLAG_BOVF));
         }          }
         i286_membyte_write(dseg, doff + R_INT,          MEML_WRITE8(dseg, doff + R_INT,
                                 (REG8)(i286_membyte_read(dseg, doff + R_INT) | RINT_INT));                                                  (REG8)(MEML_READ8(dseg, doff + R_INT) | RINT_INT));
         i286_membyte_write(dseg, doff + R_FLAG, flag);          MEML_WRITE8(dseg, doff + R_FLAG, flag);
         iocore_out8(0x00, 0x20);          iocore_out8(0x00, 0x20);
 }  }
   

Removed from v.1.4  
changed lines
  Added in v.1.5


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