Diff for /np2/fdd/diskdrv.c between versions 1.10 and 1.12

version 1.10, 2005/03/19 18:54:58 version 1.12, 2005/03/23 08:07:48
Line 7 Line 7
 #include        "iocore.h"  #include        "iocore.h"
 #include        "diskdrv.h"  #include        "diskdrv.h"
 #include        "fddfile.h"  #include        "fddfile.h"
   #include        "sxsi.h"
   
   
 #define DISK_DELAY      20                      // (0.4sec)  #define DISK_DELAY      20                      // (0.4sec)
   
         int             diskdrv_delay[4];          int             diskdrv_delay[4];
         int             diskdrv_ro[4];  
         OEMCHAR diskdrv_fname[4][MAX_PATH];          OEMCHAR diskdrv_fname[4][MAX_PATH];
           UINT    diskdrv_ftype[4];
           int             diskdrv_ro[4];
   
   
   // ---- sxsi
   
 void diskdrv_sethdd(REG8 drv, const OEMCHAR *fname) {  void diskdrv_setsxsi(REG8 drv, const OEMCHAR *fname) {
   
         UINT    num;          UINT    num;
         OEMCHAR *p;          OEMCHAR *p;
Line 48  void diskdrv_sethdd(REG8 drv, const OEMC Line 52  void diskdrv_sethdd(REG8 drv, const OEMC
                 }                  }
                 sysmng_update(SYS_UPDATEHDD | SYS_UPDATECFG);                  sysmng_update(SYS_UPDATEHDD | SYS_UPDATECFG);
         }          }
           else {
                   sxsi_devopen(drv, fname);
           }
 }  }
   
 void diskdrv_readyfdd(REG8 drv, const OEMCHAR *fname, int readonly) {  OEMCHAR *diskdrv_getsxsi(REG8 drv) {
   
           UINT    num;
   
           num = drv & 0x0f;
           if (!(drv & 0x20)) {                    // SASI or IDE
                   if (num < 2) {
                           return(np2cfg.sasihdd[num]);
                   }
           }
   #if defined(SUPPORT_SCSI)
           else {                                                  // SCSI
                   if (num < 4) {
                           return(np2cfg.scsihdd[num]);
                   }
           }
   #endif
           return(sxsi_getfilename(drv));
   }
   
   
   void diskdrv_hddbind(void) {
   
           UINT    i;
           REG8    drv;
   
           drv = 0;
           for (i=0; i<2; i++) {
                   sxsi_devclose(drv);
                   sxsi_setdevtype(drv, SXSIDEV_HDD);
                   if (sxsi_devopen(drv, np2cfg.sasihdd[i]) == SUCCESS) {
                           drv++;
                   }
           }
   #if defined(SUPPORT_SCSI)
           drv = 0x20;
           for (i=0; i<4; i++) {
                   sxsi_devclose(drv);
                   sxsi_setdevtype(drv, SXSIDEV_HDD);
                   if (sxsi_devopen(drv, np2cfg.scsihdd[i]) == SUCCESS) {
                           drv++;
                   }
           }
   #endif
   }
   
   // ---- fdd
   
   void diskdrv_readyfddex(REG8 drv, const OEMCHAR *fname,
                                                                                                   UINT ftype, int readonly) {
   
         if ((drv < 4) && (fdc.equip & (1 << drv))) {          if ((drv < 4) && (fdc.equip & (1 << drv))) {
                 if ((fname != NULL) && (fname[0] != '\0')) {                  if ((fname != NULL) && (fname[0] != '\0')) {
                         fdd_set(drv, fname, FTYPE_NONE, readonly);                          fdd_set(drv, fname, ftype, readonly);
                         fdc.stat[drv] = FDCRLT_AI | drv;                          fdc.stat[drv] = FDCRLT_AI | drv;
                         fdc_interrupt();                          fdc_interrupt();
                         sysmng_update(SYS_UPDATEFDD);                          sysmng_update(SYS_UPDATEFDD);
Line 62  void diskdrv_readyfdd(REG8 drv, const OE Line 118  void diskdrv_readyfdd(REG8 drv, const OE
         }          }
 }  }
   
 void diskdrv_setfdd(REG8 drv, const OEMCHAR *fname, int readonly) {  void diskdrv_setfddex(REG8 drv, const OEMCHAR *fname,
                                                                                                   UINT ftype, int readonly) {
   
         if ((drv < 4) && (fdc.equip & (1 << drv))) {          if ((drv < 4) && (fdc.equip & (1 << drv))) {
                 fdd_eject(drv);                  fdd_eject(drv);
Line 73  void diskdrv_setfdd(REG8 drv, const OEMC Line 130  void diskdrv_setfdd(REG8 drv, const OEMC
   
                 if (fname) {                  if (fname) {
                         diskdrv_delay[drv] = DISK_DELAY;                          diskdrv_delay[drv] = DISK_DELAY;
                           diskdrv_ftype[drv] = ftype;
                         diskdrv_ro[drv] = readonly;                          diskdrv_ro[drv] = readonly;
                         file_cpyname(diskdrv_fname[drv], fname,                          file_cpyname(diskdrv_fname[drv], fname,
                                                                                                 NELEMENTS(diskdrv_fname[0]));                                                                                                  NELEMENTS(diskdrv_fname[0]));
Line 89  void diskdrv_callback(void) { Line 147  void diskdrv_callback(void) {
                 if (diskdrv_delay[drv]) {                  if (diskdrv_delay[drv]) {
                         diskdrv_delay[drv]--;                          diskdrv_delay[drv]--;
                         if (!diskdrv_delay[drv]) {                          if (!diskdrv_delay[drv]) {
                                 diskdrv_readyfdd(drv, diskdrv_fname[drv], diskdrv_ro[drv]);                                  diskdrv_readyfddex(drv, diskdrv_fname[drv],
                                                                                   diskdrv_ftype[drv], diskdrv_ro[drv]);
                                 diskdrv_fname[drv][0] = '\0';                                  diskdrv_fname[drv][0] = '\0';
                         }                          }
                 }                  }

Removed from v.1.10  
changed lines
  Added in v.1.12


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