--- np2/fdd/fddfile.c 2003/10/28 22:05:46 1.2 +++ np2/fdd/fddfile.c 2004/02/18 21:58:41 1.7 @@ -13,13 +13,9 @@ BYTE fddlasterror; -static const char str_88d[] = "88d"; -static const char str_98d[] = "98d"; - - // ---- -void fddfile_init(void) { +void fddfile_initialize(void) { ZeroMemory(fddfile, sizeof(fddfile)); } @@ -34,7 +30,7 @@ void fddfile_reset2dmode(void) { // v #endif } -const char *fdd_diskname(BYTE drv) { +const char *fdd_diskname(REG8 drv) { if (drv >= MAX_FDDFILE) { return(str_null); @@ -42,7 +38,7 @@ const char *fdd_diskname(BYTE drv) { return(fddfile[drv].fname); } -BOOL fdd_diskready(BYTE drv) { +BOOL fdd_diskready(REG8 drv) { if ((drv >= MAX_FDDFILE) || (!fddfile[drv].fname[0])) { return(FALSE); @@ -50,7 +46,7 @@ BOOL fdd_diskready(BYTE drv) { return(TRUE); } -BOOL fdd_diskprotect(BYTE drv) { +BOOL fdd_diskprotect(REG8 drv) { if ((drv >= MAX_FDDFILE) || (!fddfile[drv].protect)) { return(FALSE); @@ -61,7 +57,7 @@ BOOL fdd_diskprotect(BYTE drv) { // -------------------------------------------------------------------------- -BOOL fdd_set(BYTE drv, const char *fname, UINT ftype, int ro) { +BOOL fdd_set(REG8 drv, const char *fname, UINT ftype, int ro) { FDDFILE fdd; const char *p; @@ -75,12 +71,20 @@ const char *p; (!milstr_cmp(p, str_d98)) || (!milstr_cmp(p, str_98d))) { ftype = FTYPE_D88; } + else if (!milstr_cmp(p, str_fdi)) { + ftype = FTYPE_FDI; + } else { ftype = FTYPE_BETA; } } fdd = fddfile + drv; switch(ftype) { + case FTYPE_FDI: + if (fddxdf_setfdi(fdd, fname, ro) == SUCCESS) { + return(SUCCESS); + } + case FTYPE_BETA: return(fddxdf_set(fdd, fname, ro)); @@ -90,7 +94,7 @@ const char *p; return(FAILURE); } -BOOL fdd_eject(BYTE drv) { +BOOL fdd_eject(REG8 drv) { FDDFILE fdd;