Diff for /np2/bios/bios13.c between versions 1.1.1.1 and 1.6

version 1.1.1.1, 2003/10/16 17:58:20 version 1.6, 2011/01/15 18:04:42
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "i286.h"  #include        "cpucore.h"
 #include        "memory.h"  
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "bios.h"  #include        "bios.h"
   #include        "biosmem.h"
   
   
 #define baseport 0x0090  #define baseport 0x0090
   
 void bios0x13(void) {  void bios0x13(void) {
   
         BYTE    stat;          UINT8   status;
         BYTE    result;          UINT8   result;
         BYTE    *p;          UINT8   *p;
         BYTE    drv;          UINT8   drv;
         BYTE    drvbit;          UINT8   drvbit;
   
 //      TRACE_("BIOS", 0x13);  //      TRACE_("BIOS", 0x13);
         iocore_out8(0x08, 0x20);          iocore_out8(0x08, 0x20);
Line 22  void bios0x13(void) { Line 22  void bios0x13(void) {
                 iocore_out8(0x00, 0x20);                  iocore_out8(0x00, 0x20);
         }          }
   
         stat = iocore_inp8(baseport);          status = iocore_inp8(baseport);
         while(1) {          while(1) {
                 if (!(stat & FDCSTAT_CB)) {                  if (!(status & FDCSTAT_CB)) {
                         if ((stat & (FDCSTAT_RQM | FDCSTAT_DIO)) != FDCSTAT_RQM) {                          if ((status & (FDCSTAT_RQM | FDCSTAT_DIO)) != FDCSTAT_RQM) {
                                 break;                                  break;
                         }                          }
                         iocore_out8(baseport+2, 0x08);                          iocore_out8(baseport+2, 0x08);
                         stat = iocore_inp8(baseport);                          status = iocore_inp8(baseport);
                 }                  }
                 if ((stat & (FDCSTAT_RQM | FDCSTAT_DIO | FDCSTAT_CB))                  if ((status & (FDCSTAT_RQM | FDCSTAT_DIO | FDCSTAT_CB))
                                                         != (FDCSTAT_RQM | FDCSTAT_DIO | FDCSTAT_CB)) {                                                          != (FDCSTAT_RQM | FDCSTAT_DIO | FDCSTAT_CB)) {
                         break;                          break;
                 }                  }
Line 43  void bios0x13(void) { Line 43  void bios0x13(void) {
                 drvbit = 1 << drv;                  drvbit = 1 << drv;
 #if 0  #if 0
                 if (result & FDCRLT_IC1) {                  if (result & FDCRLT_IC1) {
                         if (mem[0x0055e] & drvbit) {                          if (mem[MEMB_DISK_INTL] & drvbit) {
                                 continue;                                  continue;
                         }                          }
                         drvbit = 0;                          drvbit = 0;
                 }                  }
 #endif  #endif
                 p = &mem[0x00564 + (drv * 8)];                  p = mem + MEMX_DISK_RESULT + (drv * 8);
                 while(1) {                  while(1) {
                         *p++ = result;                          *p++ = result;
                         stat = iocore_inp8(baseport);                          status = iocore_inp8(baseport);
                         if ((stat & (FDCSTAT_RQM | FDCSTAT_DIO | FDCSTAT_CB))                          if ((status & (FDCSTAT_RQM | FDCSTAT_DIO | FDCSTAT_CB))
                                                         != (FDCSTAT_RQM | FDCSTAT_DIO | FDCSTAT_CB)) {                                                          != (FDCSTAT_RQM | FDCSTAT_DIO | FDCSTAT_CB)) {
                                 break;                                  break;
                         }                          }
                         result = iocore_inp8(baseport+2);                          result = iocore_inp8(baseport+2);
                 }                  }
                 mem[0x0055e] |= drvbit;                  mem[MEMB_DISK_INTL] |= drvbit;
         }          }
         if (mem[0x00480] & 0x10) {          if (mem[MEMB_SYS_TYPE] & 0x10) {
                 if (mem[0x00485]) {                  if (mem[0x00485]) {
                         if (!(--mem[0x00485])) {                          if (!(--mem[0x00485])) {
                                 mem[0x005a4] |= 0x0f;                                  mem[0x005a4] |= 0x0f;

Removed from v.1.1.1.1  
changed lines
  Added in v.1.6


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