Diff for /np2/bios/bios1f.c between versions 1.1 and 1.5

version 1.1, 2004/03/19 00:32:31 version 1.5, 2005/05/20 13:59:46
Line 8 Line 8
   
 static REG8 bios0x1f_90(void) {  static REG8 bios0x1f_90(void) {
   
         BYTE    work[256];          UINT8   work[256];
         UINT    srclimit;          UINT    srclimit;
         UINT    srcaddr;          UINT    srcaddr;
         UINT    dstlimit;          UINT    dstlimit;
Line 18  static REG8 bios0x1f_90(void) { Line 18  static REG8 bios0x1f_90(void) {
         UINT    leng;          UINT    leng;
         UINT    l;          UINT    l;
   
         MEML_READSTR(CPU_ES, CPU_BX + 0x10, work, 0x10);          MEMR_READS(CPU_ES, CPU_BX + 0x10, work, 0x10);
         srclimit = work[0] + (work[1] << 8) + 1;          srclimit = work[0] + (work[1] << 8) + 1;
         srcaddr = CPU_SI;          srcaddr = CPU_SI;
         if (srclimit <= srcaddr) {          if (srclimit <= srcaddr) {
Line 30  static REG8 bios0x1f_90(void) { Line 30  static REG8 bios0x1f_90(void) {
                 goto p90_err;                  goto p90_err;
         }          }
   
           CPU_A20EN(TRUE);
         srcbase = work[2] + (work[3] << 8) + (work[4] << 16);          srcbase = work[2] + (work[3] << 8) + (work[4] << 16);
         dstbase = work[10] + (work[11] << 8) + (work[12] << 16) + dstaddr;          dstbase = work[10] + (work[11] << 8) + (work[12] << 16);
         leng = LOW16(CPU_CX - 1) + 1;          leng = LOW16(CPU_CX - 1) + 1;
   //      TRACEOUT(("move %.8x %.8x %.4x", srcbase + srcaddr, dstbase + dstaddr, leng));
         do {          do {
                 l = min(leng, sizeof(work));                  l = min(leng, sizeof(work));
                 l = min(l, srclimit - srcaddr);                  l = min(l, srclimit - srcaddr);
Line 40  static REG8 bios0x1f_90(void) { Line 42  static REG8 bios0x1f_90(void) {
                 if (!l) {                  if (!l) {
                         goto p90_err2;                          goto p90_err2;
                 }                  }
                 MEML_READ(srcbase + srcaddr, work, l);                  MEML_READS(srcbase + srcaddr, work, l);
                 MEML_WRITE(dstbase + dstaddr, work, l);                  MEML_WRITES(dstbase + dstaddr, work, l);
                 srcaddr = LOW16(srcaddr + l);                  srcaddr = LOW16(srcaddr + l);
                 dstaddr = LOW16(dstaddr + l);                  dstaddr = LOW16(dstaddr + l);
                 leng -= l;                  leng -= l;
         } while(leng);          } while(leng);
         TRACEOUT(("BIOS1F90 - success"));          TRACEOUT(("BIOS1F90 - success"));
           CPU_A20EN(FALSE);
         return(0);          return(0);
   
 p90_err2:  p90_err2:
Line 77  void bios0x1f(void) { Line 80  void bios0x1f(void) {
         else {          else {
                 return;                  return;
         }          }
         flag = MEML_READ8(CPU_SS, CPU_SP + 4) & (~C_FLAG);          flag = (REG8)(MEMR_READ8(CPU_SS, CPU_SP + 4) & (~C_FLAG));
         flag |= cflag;          flag |= cflag;
         MEML_WRITE8(CPU_SS, CPU_SP + 4, flag);          MEMR_WRITE8(CPU_SS, CPU_SP + 4, flag);
 }  }
   

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


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