Diff for /np2/fdd/fdd_xdf.c between versions 1.5 and 1.8

version 1.5, 2004/02/13 14:52:21 version 1.8, 2005/02/07 14:46:09
Line 13  static const _XDFINFO supportxdf[] = { Line 13  static const _XDFINFO supportxdf[] = {
                         // 512                          // 512
                         {0, 154, 15, 2, DISKTYPE_2HD, 0},                          {0, 154, 15, 2, DISKTYPE_2HD, 0},
 #endif  #endif
   #if 1
                           // 512
                           {0, 160, 15, 2, DISKTYPE_2HD, 0},
   #endif
                         // 1024                          // 1024
                         {0, 154,  8, 3, DISKTYPE_2HD, 0},                          {0, 154,  8, 3, DISKTYPE_2HD, 0},
                         // 1.44MB                          // 1.44MB
Line 20  static const _XDFINFO supportxdf[] = { Line 24  static const _XDFINFO supportxdf[] = {
 };  };
   
 typedef struct {  typedef struct {
         BYTE    dummy[4];          UINT8   dummy[4];
         BYTE    fddtype[4];          UINT8   fddtype[4];
         BYTE    headersize[4];          UINT8   headersize[4];
         BYTE    fddsize[4];          UINT8   fddsize[4];
         BYTE    sectorsize[4];          UINT8   sectorsize[4];
         BYTE    sectors[4];          UINT8   sectors[4];
         BYTE    surfaces[4];          UINT8   surfaces[4];
         BYTE    cylinders[4];          UINT8   cylinders[4];
 } FDIHDR;  } FDIHDR;
   
   
Line 51  const _XDFINFO *xdf; Line 55  const _XDFINFO *xdf;
         file_close(fh);          file_close(fh);
   
         xdf = supportxdf;          xdf = supportxdf;
         while(xdf < (supportxdf + (sizeof(supportxdf)/sizeof(_XDFINFO)))) {          while(xdf < (supportxdf + NELEMENTS(supportxdf))) {
                 size = xdf->tracks;                  size = xdf->tracks;
                 size *= xdf->sectors;                  size *= xdf->sectors;
                 size <<= (7 + xdf->n);                  size <<= (7 + xdf->n);
Line 212  BOOL fddxdf_read(FDDFILE fdd) { Line 216  BOOL fddxdf_read(FDDFILE fdd) {
         long    seekp;          long    seekp;
         UINT    secsize;          UINT    secsize;
   
         fddlasterror = 0x00;                                                                            // ver0.28          fddlasterror = 0x00;
         if (fddxdf_seeksector(fdd)) {          if (fddxdf_seeksector(fdd)) {
                 return(FAILURE);                  return(FAILURE);
         }          }
         if (fdc.N != fdd->inf.xdf.n) {          if (fdc.N != fdd->inf.xdf.n) {
                 fddlasterror = 0xc0;                                                                    // ver0.28                  fddlasterror = 0xc0;
                 return(FAILURE);                  return(FAILURE);
         }          }
   
Line 230  BOOL fddxdf_read(FDDFILE fdd) { Line 234  BOOL fddxdf_read(FDDFILE fdd) {
   
         hdl = file_open_rb(fdd->fname);          hdl = file_open_rb(fdd->fname);
         if (hdl == FILEH_INVALID) {          if (hdl == FILEH_INVALID) {
                 fddlasterror = 0xe0;                                                                    // ver0.28                  fddlasterror = 0xe0;
                 return(FAILURE);                  return(FAILURE);
         }          }
         if ((file_seek(hdl, seekp, FSEEK_SET) != seekp) ||          if ((file_seek(hdl, seekp, FSEEK_SET) != seekp) ||
                 (file_read(hdl, fdc.buf, secsize) != secsize)) {                  (file_read(hdl, fdc.buf, secsize) != secsize)) {
                 file_close(hdl);                  file_close(hdl);
                 fddlasterror = 0xe0;                                                                    // ver0.28                  fddlasterror = 0xe0;
                 return(FAILURE);                  return(FAILURE);
         }          }
         file_close(hdl);          file_close(hdl);
         fdc.bufcnt = secsize;          fdc.bufcnt = secsize;
         fddlasterror = 0x00;                                                                            // ver0.28          fddlasterror = 0x00;
         return(SUCCESS);          return(SUCCESS);
 }  }
   
Line 251  BOOL fddxdf_write(FDDFILE fdd) { Line 255  BOOL fddxdf_write(FDDFILE fdd) {
         long    seekp;          long    seekp;
         UINT    secsize;          UINT    secsize;
   
         fddlasterror = 0x00;                                                                            // ver0.28          fddlasterror = 0x00;
         if (fddxdf_seeksector(fdd)) {          if (fddxdf_seeksector(fdd)) {
                 fddlasterror = 0xe0;                                                                    // ver0.28                  fddlasterror = 0xe0;
                 return(FAILURE);                  return(FAILURE);
         }          }
         if (fdd->protect) {          if (fdd->protect) {
                 fddlasterror = 0x70;                                                                    // ver0.28                  fddlasterror = 0x70;
                 return(FAILURE);                  return(FAILURE);
         }          }
         if (fdc.N != fdd->inf.xdf.n) {          if (fdc.N != fdd->inf.xdf.n) {
                 fddlasterror = 0xc0;                                                                    // ver0.28                  fddlasterror = 0xc0;
                 return(FAILURE);                  return(FAILURE);
         }          }
   
Line 274  BOOL fddxdf_write(FDDFILE fdd) { Line 278  BOOL fddxdf_write(FDDFILE fdd) {
   
         hdl = file_open(fdd->fname);          hdl = file_open(fdd->fname);
         if (hdl == FILEH_INVALID) {          if (hdl == FILEH_INVALID) {
                 fddlasterror = 0xc0;                                                                    // ver0.28                  fddlasterror = 0xc0;
                 return(FAILURE);                  return(FAILURE);
         }          }
         if ((file_seek(hdl, seekp, FSEEK_SET) != seekp) ||          if ((file_seek(hdl, seekp, FSEEK_SET) != seekp) ||
                 (file_write(hdl, fdc.buf, secsize) != secsize)) {                  (file_write(hdl, fdc.buf, secsize) != secsize)) {
                 file_close(hdl);                  file_close(hdl);
                 fddlasterror = 0xc0;                                                                    // ver0.28                  fddlasterror = 0xc0;
                 return(FAILURE);                  return(FAILURE);
         }          }
         file_close(hdl);          file_close(hdl);
         fdc.bufcnt = secsize;          fdc.bufcnt = secsize;
         fddlasterror = 0x00;                                                                            // ver0.28          fddlasterror = 0x00;
         return(SUCCESS);          return(SUCCESS);
 }  }
   

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


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