--- np2/fdd/fddfile.c 2003/10/16 17:58:28 1.1.1.1 +++ np2/fdd/fddfile.c 2004/01/27 10:55:47 1.4 @@ -1,6 +1,7 @@ #include "compiler.h" #include "strres.h" #include "dosio.h" +#include "sysmng.h" #include "pccore.h" #include "iocore.h" #include "fddfile.h" @@ -33,7 +34,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); @@ -41,7 +42,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); @@ -49,7 +50,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); @@ -60,7 +61,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; @@ -74,6 +75,9 @@ 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; } @@ -83,13 +87,16 @@ const char *p; case FTYPE_BETA: return(fddxdf_set(fdd, fname, ro)); + case FTYPE_FDI: + return(fddxdf_setfdi(fdd, fname, ro)); + case FTYPE_D88: return(fddd88_set(fdd, fname, ro)); } return(FAILURE); } -BOOL fdd_eject(BYTE drv) { +BOOL fdd_eject(REG8 drv) { FDDFILE fdd; @@ -164,6 +171,7 @@ BOOL fdd_read(void) { FDDFILE fdd; + sysmng_fddaccess(fdc.us); fdd = fddfile + fdc.us; switch(fdd->type) { case DISKTYPE_BETA: @@ -179,6 +187,7 @@ BOOL fdd_write(void) { FDDFILE fdd; + sysmng_fddaccess(fdc.us); fdd = fddfile + fdc.us; switch(fdd->type) { case DISKTYPE_BETA: @@ -194,6 +203,7 @@ BOOL fdd_readid(void) { FDDFILE fdd; + sysmng_fddaccess(fdc.us); fdd = fddfile + fdc.us; switch(fdd->type) { case DISKTYPE_BETA: @@ -215,6 +225,7 @@ BOOL fdd_formatinit(void) { BOOL fdd_formating(const BYTE *ID) { + sysmng_fddaccess(fdc.us); if (fddfile[fdc.us].type == DISKTYPE_D88) { return(fdd_formating_d88(ID)); }