Diff for /xmil/fdd/fddfile.c between versions 1.4 and 1.5

version 1.4, 2004/08/09 04:47:53 version 1.5, 2004/08/10 08:28:48
Line 12 Line 12
         _FDDFILE        fddfile[MAX_FDDFILE];          _FDDFILE        fddfile[MAX_FDDFILE];
   
   
   static REG8 dummyseek(FDDFILE fdd, REG8 media, UINT track) {
   
           (void)fdd;
           (void)media;
           (void)track;
           return(FDDSTAT_SEEKERR);
   }
   
   static REG8 dummyread(FDDFILE fdd, REG8 media, UINT track, REG8 sc,
                                                                                                   UINT8 *ptr, UINT *size) {
   
           (void)fdd;
           (void)media;
           (void)track;
           (void)sc;
           (void)ptr;
           (void)size;
           return(FDDSTAT_RECNFND);
   }
   
   static REG8 dummywrite(FDDFILE fdd, REG8 media, UINT track, REG8 sc,
                                                                                                   const UINT8 *ptr, UINT size) {
   
           (void)fdd;
           (void)media;
           (void)track;
           (void)sc;
           (void)ptr;
           (void)size;
           return(FDDSTAT_RECNFND | FDDSTAT_WRITEFAULT);
   }
   
   static REG8 dummycrc(FDDFILE fdd, REG8 media, UINT track, UINT num,
                                                                                                   UINT8 *ptr) {
   
           (void)fdd;
           (void)media;
           (void)track;
           (void)num;
           (void)ptr;
           return(FDDSTAT_RECNFND);
   }
   
   static REG8 getfdtype(const OEMCHAR *fname) {
   
   const OEMCHAR   *ext;
   
           ext = file_getext(fname);
           if (!milstr_cmp(ext, str_e2d)) {
                   return(FTYPE_BETA);
           }
           if ((!milstr_cmp(ext, str_d88)) || (!milstr_cmp(ext, str_88d))) {
                   return(FTYPE_D88);
           }
           return(FTYPE_NONE);
   }
   
   static void setempty(FDDFILE fdd) {
   
           ZeroMemory(fdd, sizeof(_FDDFILE));
           fdd->seek = dummyseek;
           fdd->read = dummyread;
           fdd->write = dummywrite;
           fdd->crc = dummycrc;
   }
   
   
   // ----
   
 void fddfile_initialize(void) {  void fddfile_initialize(void) {
   
           UINT    i;
   
           for (i=0; i<MAX_FDDFILE; i++) {
                   setempty(fddfile + i);
           }
 }  }
   
 const OEMCHAR *fdd_diskname(REG8 drv) {  const OEMCHAR *fddfile_diskname(REG8 drv) {
   
         if (drv >= MAX_FDDFILE) {          if (drv >= MAX_FDDFILE) {
                 return(str_null);                  return(str_null);
Line 23  const OEMCHAR *fdd_diskname(REG8 drv) { Line 98  const OEMCHAR *fdd_diskname(REG8 drv) {
         return(fddfile[drv].fname);          return(fddfile[drv].fname);
 }  }
   
 BRESULT fdd_diskready(REG8 drv) {  BRESULT fddfile_diskready(REG8 drv) {
   
         if ((drv >= MAX_FDDFILE) || (fddfile[drv].fname[0] == '\0')) {          if ((drv >= MAX_FDDFILE) || (fddfile[drv].type == DISKTYPE_NOTREADY)) {
                 return(FALSE);                  return(FALSE);
         }          }
         return(TRUE);          return(TRUE);
 }  }
   
   BRESULT fddfile_diskprotect(REG8 drv) {
   
 // ----          if ((drv >= MAX_FDDFILE) || (!fddfile[drv].protect)) {
                   return(FALSE);
 static REG8 getfdtype(const OEMCHAR *fname) {  
   
 const OEMCHAR   *ext;  
   
         ext = file_getext(fname);  
         if (!milstr_cmp(ext, str_e2d)) {  
                 return(FTYPE_BETA);  
         }  
         if ((!milstr_cmp(ext, str_d88)) || (!milstr_cmp(ext, str_88d))) {  
                 return(FTYPE_D88);  
         }          }
         return(FTYPE_NONE);          return(TRUE);
 }  }
   
 BRESULT fdd_set(REG8 drv, const OEMCHAR *fname, UINT ftype, int ro) {  BRESULT fddfile_set(REG8 drv, const OEMCHAR *fname, UINT ftype, int ro) {
   
         FDDFILE fdd;          FDDFILE fdd;
         BRESULT r;          BRESULT r;
Line 56  BRESULT fdd_set(REG8 drv, const OEMCHAR  Line 122  BRESULT fdd_set(REG8 drv, const OEMCHAR 
         if (drv >= MAX_FDDFILE) {          if (drv >= MAX_FDDFILE) {
                 return(FAILURE);                  return(FAILURE);
         }          }
         fdd_eject(drv);          fddfile_eject(drv);
         fdd = fddfile + drv;          fdd = fddfile + drv;
         if (ftype == FTYPE_NONE) {          if (ftype == FTYPE_NONE) {
                 ftype = getfdtype(fname);                  ftype = getfdtype(fname);
         }          }
         switch(ftype) {          switch(ftype) {
                 case FTYPE_BETA:                  case FTYPE_BETA:
                         r = fdd2d_set(fdd, drv, fname);                          r = fdd2d_set(fdd, fname);
                         break;                          break;
   
                 case FTYPE_D88:                  case FTYPE_D88:
                         r = fddd88_set(fdd, drv, fname);                          r = fddd88_set(fdd, fname);
                         break;                          break;
   
                 default:                  default:
Line 83  BRESULT fdd_set(REG8 drv, const OEMCHAR  Line 149  BRESULT fdd_set(REG8 drv, const OEMCHAR 
         return(r);          return(r);
 }  }
   
 BRESULT fdd_eject(REG8 drv) {  void fddfile_eject(REG8 drv) {
   
         FDDFILE fdd;          FDDFILE fdd;
   
         if (drv >= MAX_FDDFILE) {          if (drv >= MAX_FDDFILE) {
                 return(FAILURE);                  return;
         }          }
         fdd = fddfile + drv;          fdd = fddfile + drv;
         switch(fdd->type) {          switch(fdd->type) {
                 case DISKTYPE_BETA:                  case DISKTYPE_BETA:
                         return(fdd2d_eject(fdd, drv));                          fdd2d_eject(fdd);
   
                 case DISKTYPE_D88:                  case DISKTYPE_D88:
                         return(fddd88_eject(fdd, drv));                          fddd88_eject(fdd);
         }          }
         return(FAILURE);          setempty(fdd);
 }  }
   

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


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