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

version 1.1, 2004/08/01 05:31:30 version 1.4, 2004/08/09 04:47:53
Line 5 Line 5
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "fddfile.h"  #include        "fddfile.h"
 #include        "x1_io.h"  
 #include        "x1_fdc.h"  
 #include        "fdd_2d.h"  #include        "fdd_2d.h"
 #include        "fdd_d88.h"  #include        "fdd_d88.h"
   
   
         _FDDFILE        fddfile[MAX_FDDFILE];          _FDDFILE        fddfile[MAX_FDDFILE];
   
 extern  BYTE            WRITEPT[];  
 extern  BYTE            DISKNUM[];  
   
   
 void fddfile_initialize(void) {  void fddfile_initialize(void) {
 }  }
Line 41  BRESULT fdd_diskready(REG8 drv) { Line 36  BRESULT fdd_diskready(REG8 drv) {
   
 static REG8 getfdtype(const OEMCHAR *fname) {  static REG8 getfdtype(const OEMCHAR *fname) {
   
 const char      *ext;  const OEMCHAR   *ext;
   
         ext = file_getext(fname);          ext = file_getext(fname);
         if (!milstr_cmp(ext, str_e2d)) {          if (!milstr_cmp(ext, str_e2d)) {
                 return(DRV_FMT2D);                  return(FTYPE_BETA);
         }          }
         if ((!milstr_cmp(ext, str_d88)) || (!milstr_cmp(ext, str_88d))) {          if ((!milstr_cmp(ext, str_d88)) || (!milstr_cmp(ext, str_88d))) {
                 return(DRV_FMT88);                  return(FTYPE_D88);
         }          }
         return(DRV_EMPTY);          return(FTYPE_NONE);
 }  }
   
 BRESULT fdd_set(REG8 drv, const OEMCHAR *fname, UINT ftype, int ro) {  BRESULT fdd_set(REG8 drv, const OEMCHAR *fname, UINT ftype, int ro) {
   
         fdd_eject(drv);          FDDFILE fdd;
           BRESULT r;
   
         if (drv >= MAX_FDDFILE) {          if (drv >= MAX_FDDFILE) {
                 return(FAILURE);                  return(FAILURE);
         }          }
         switch(getfdtype(fname)) {          fdd_eject(drv);
                 case DRV_EMPTY:          fdd = fddfile + drv;
                         return(FAILURE);          if (ftype == FTYPE_NONE) {
                   ftype = getfdtype(fname);
                 case DRV_FMT2D:          }
                         return(fdd_set_2d(drv, fname));          switch(ftype) {
                   case FTYPE_BETA:
                           r = fdd2d_set(fdd, drv, fname);
                           break;
   
                   case FTYPE_D88:
                           r = fddd88_set(fdd, drv, fname);
                           break;
   
                 default:                  default:
                         return(fdd_set_d88(drv, fname));                          r = FAILURE;
                           break;
         }          }
         return(FAILURE);          if (r == SUCCESS) {
                   milstr_ncpy(fdd->fname, fname, NELEMENTS(fdd->fname));
                   if (ro) {
                           fdd->protect = TRUE;
                   }
           }
           return(r);
 }  }
   
 BRESULT fdd_eject(REG8 drv) {  BRESULT fdd_eject(REG8 drv) {
   
         FDDFILE         fdd;          FDDFILE fdd;
   
         if (drv >= MAX_FDDFILE) {          if (drv >= MAX_FDDFILE) {
                 return(FAILURE);                  return(FAILURE);
         }          }
         fdd = fddfile + drv;          fdd = fddfile + drv;
         switch(DISKNUM[drv]) {          switch(fdd->type) {
                 case DRV_EMPTY:                  case DISKTYPE_BETA:
                         return(FAILURE);                          return(fdd2d_eject(fdd, drv));
   
                 case DRV_FMT2D:                  case DISKTYPE_D88:
                         return(fdd_eject_2d(drv));                          return(fddd88_eject(fdd, drv));
   
                 default:  
                         return(fdd_eject_d88(drv));  
         }          }
         return(FAILURE);          return(FAILURE);
 }  }

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


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