Diff for /np2/fdd/diskdrv.c between versions 1.1.1.1 and 1.8

version 1.1.1.1, 2003/10/16 17:58:27 version 1.8, 2005/02/09 20:11:34
Line 5 Line 5
 #include        "sysmng.h"  #include        "sysmng.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "fddfile.h"  
 #include        "diskdrv.h"  #include        "diskdrv.h"
   #include        "fddfile.h"
   
   
 #define DISK_DELAY      20                      // (0.4sec)  #define DISK_DELAY      20                      // (0.4sec)
   
         int             diskdrv_delay[4];                                                       // ver0.26          int             diskdrv_delay[4];
         int             diskdrv_ro[4];                                                          // ver0.26          int             diskdrv_ro[4];
         char    diskdrv_fname[4][MAX_PATH];                                     // ver0.26          OEMCHAR diskdrv_fname[4][MAX_PATH];
   
   
 void diskdrv_sethdd(BYTE drv, const char *fname) {  void diskdrv_sethdd(REG8 drv, const OEMCHAR *fname) {
   
         char    *p;          UINT    num;
           OEMCHAR *p;
         if (drv < 2) {          int             leng;
                 p = np2cfg.hddfile[drv];  
           num = drv & 0x0f;
           p = NULL;
           leng = 0;
           if (!(drv & 0x20)) {                    // SASI or IDE
                   if (num < 2) {
                           p = np2cfg.sasihdd[num];
                           leng = NELEMENTS(np2cfg.sasihdd[0]);
                   }
           }
   #if defined(SUPPORT_SCSI)
           else {                                                  // SCSI
                   if (num < 4) {
                           p = np2cfg.scsihdd[num];
                           leng = NELEMENTS(np2cfg.scsihdd[0]);
                   }
           }
   #endif
           if (p) {
                 if (fname) {                  if (fname) {
                         file_cpyname(p, fname, sizeof(np2cfg.hddfile[0]));                          file_cpyname(p, fname, leng);
                 }                  }
                 else {                  else {
                         p[0] = '\0';                          p[0] = '\0';
Line 32  void diskdrv_sethdd(BYTE drv, const char Line 50  void diskdrv_sethdd(BYTE drv, const char
         }          }
 }  }
   
 void diskdrv_setfdd(BYTE drv, const char *fname, int readonly) {  void diskdrv_setfdd(REG8 drv, const OEMCHAR *fname, int readonly) {
   
         if (drv < 4) {          if ((drv < 4) && (fdc.equip & (1 << drv))) {
                 fdd_eject(drv);                  fdd_eject(drv);
                 diskdrv_delay[drv] = 0;                  diskdrv_delay[drv] = 0;
                 diskdrv_fname[drv][0] = '\0';                  diskdrv_fname[drv][0] = '\0';
                 fdc.stat[drv] = FDCRLT_IC0 | FDCRLT_IC1 | FDCRLT_NR | drv;                  fdc.stat[drv] = FDCRLT_AI | FDCRLT_NR | drv;
                 fdc_interrupt();                  fdc_interrupt();
   
                 if (fname) {                  if (fname) {
                         diskdrv_delay[drv] = DISK_DELAY;                          diskdrv_delay[drv] = DISK_DELAY;
                         diskdrv_ro[drv] = readonly;                          diskdrv_ro[drv] = readonly;
                         file_cpyname(diskdrv_fname[drv], fname, sizeof(diskdrv_fname[0]));                          file_cpyname(diskdrv_fname[drv], fname, NELEMENTS(diskdrv_fname[0]));
                 }                  }
                 sysmng_update(SYS_UPDATEFDD);                  sysmng_update(SYS_UPDATEFDD);
         }          }
Line 52  void diskdrv_setfdd(BYTE drv, const char Line 70  void diskdrv_setfdd(BYTE drv, const char
   
 void diskdrv_callback(void) {  void diskdrv_callback(void) {
   
         BYTE    drv;          REG8    drv;
   
         for (drv=0; drv<4; drv++) {          for (drv=0; drv<4; drv++) {
                 if (diskdrv_delay[drv]) {                  if (diskdrv_delay[drv]) {
Line 60  void diskdrv_callback(void) { Line 78  void diskdrv_callback(void) {
                         if ((!diskdrv_delay[drv]) && (diskdrv_fname[drv][0])) {                          if ((!diskdrv_delay[drv]) && (diskdrv_fname[drv][0])) {
                                 fdd_set(drv, diskdrv_fname[drv], FTYPE_NONE, diskdrv_ro[drv]);                                  fdd_set(drv, diskdrv_fname[drv], FTYPE_NONE, diskdrv_ro[drv]);
                                 diskdrv_fname[drv][0] = '\0';                                  diskdrv_fname[drv][0] = '\0';
                                 fdc.stat[drv] = FDCRLT_IC0 | FDCRLT_IC1 | drv;                                  fdc.stat[drv] = FDCRLT_AI | drv;
                                 fdc_interrupt();                                  fdc_interrupt();
                                 sysmng_update(SYS_UPDATEFDD);                                  sysmng_update(SYS_UPDATEFDD);
                         }                          }

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


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