Diff for /np2/bios/sxsibios.c between versions 1.1 and 1.4

version 1.1, 2004/01/22 01:10:03 version 1.4, 2004/01/23 12:04:08
Line 130  static REG8 sxsibios_format(UINT type, S Line 130  static REG8 sxsibios_format(UINT type, S
   
 static REG8 sxsibios_succeed(UINT type, SXSIDEV sxsi) {  static REG8 sxsibios_succeed(UINT type, SXSIDEV sxsi) {
   
           (void)type;
         (void)sxsi;          (void)sxsi;
         return(0x00);          return(0x00);
 }  }
Line 200  static const SXSIFUNC sasifunc[16] = { Line 201  static const SXSIFUNC sasifunc[16] = {
   
 REG8 sasibios_operate(void) {  REG8 sasibios_operate(void) {
   
         SXSIDEV sxsi;  
         UINT    type;          UINT    type;
           SXSIDEV sxsi;
   
         sxsi = sxsi_getptr(CPU_AL);          if (pccore.hddif & PCHDD_IDE) {
         if (sxsi == NULL) {                  type = SXSIBIOS_IDE;
                 return(0x60);  
         }          }
         type = SXSIBIOS_IDE;  
 #if defined(SUPPORT_SASI)  #if defined(SUPPORT_SASI)
         if (pccore.hddif & PCHDD_SASI) {          else if (pccore.hddif & PCHDD_SASI) {
                 type = SXSIBIOS_SASI;                  type = SXSIBIOS_SASI;
         }          }
 #endif  #endif
           else {
                   return(0x60);
           }
           sxsi = sxsi_getptr(CPU_AL);
           if (sxsi == NULL) {
                   return(0x60);
           }
         return((*sasifunc[CPU_AH & 0x0f])(type, sxsi));          return((*sasifunc[CPU_AH & 0x0f])(type, sxsi));
 }  }
   
Line 224  static REG8 scsibios_init(UINT type, SXS Line 230  static REG8 scsibios_init(UINT type, SXS
   
         UINT8   i;          UINT8   i;
         UINT8   bit;          UINT8   bit;
         UINT16  w;          UINT32  dat;
   
         mem[MEMB_DISK_EQUIPS] = 0;          mem[MEMB_DISK_EQUIPS] = 0;
         ZeroMemory(&mem[0x00460], 0x20);          ZeroMemory(&mem[0x00460], 0x20);
Line 232  static REG8 scsibios_init(UINT type, SXS Line 238  static REG8 scsibios_init(UINT type, SXS
                 sxsi = sxsi_getptr((REG8)(0x20 + i));                  sxsi = sxsi_getptr((REG8)(0x20 + i));
                 if ((sxsi) && (sxsi->fname[0])) {                  if ((sxsi) && (sxsi->fname[0])) {
                         mem[MEMB_DISK_EQUIPS] |= bit;                          mem[MEMB_DISK_EQUIPS] |= bit;
                         mem[0x00460+i*4] = sxsi->sectors;                          dat = sxsi->sectors;
                         mem[0x00461+i*4] = sxsi->surfaces;                          dat |= (sxsi->surfaces << 8);
                           dat |= sxsi->cylinders & 0xf000;
                           dat |= (sxsi->cylinders & 0xfff) << 16;
                         switch(sxsi->size) {                          switch(sxsi->size) {
                                 case 256:                                  case 256:
                                         w = 0 << 12;                                  //      dat |= 0 << (12 + 16);
                                         break;                                          break;
   
                                 case 512:                                  case 512:
                                         w = 1 << 12;                                          dat |= 1 << (12 + 16);
                                         break;                                          break;
   
                                 default:                                  default:
                                         w = 2 << 12;                                          dat |= 2 << (12 + 16);
                                         break;                                          break;
                         }                          }
                         w |= 0xc000;                          dat |= 0xc0000000;
                         w |= sxsi->cylinders;                          SETBIOSMEM32(0x00460+i*4, dat);
                         SETBIOSMEM16(0x00462+i*4, w);  
                 }                  }
         }          }
         (void)type;          (void)type;
Line 267  static REG8 scsibios_sense(UINT type, SX Line 274  static REG8 scsibios_sense(UINT type, SX
                 CPU_DH = sxsi->surfaces;                  CPU_DH = sxsi->surfaces;
                 CPU_DL = sxsi->sectors;                  CPU_DL = sxsi->sectors;
         }          }
           (void)type;
         return(0x00);          return(0x00);
 }  }
   
Line 309  REG8 scsibios_operate(void) { Line 317  REG8 scsibios_operate(void) {
   
         SXSIDEV sxsi;          SXSIDEV sxsi;
   
           if (!(pccore.hddif & PCHDD_SCSI)) {
                   return(0x60);
           }
         sxsi = sxsi_getptr(CPU_AL);          sxsi = sxsi_getptr(CPU_AL);
         if (sxsi == NULL) {          if (sxsi == NULL) {
                 return(0x60);                  return(0x60);

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


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