| version 1.1, 2004/08/01 05:31:30 | version 1.3, 2004/08/02 13:38:46 | 
| 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(DISKTYPE_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(DISKTYPE_D88); | 
 | } | } | 
| return(DRV_EMPTY); | return(DISKTYPE_NOTREADY); | 
 | } | } | 
 |  |  | 
 | 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; | 
|  |  | 
 | if (drv >= MAX_FDDFILE) { | if (drv >= MAX_FDDFILE) { | 
 | return(FAILURE); | return(FAILURE); | 
 | } | } | 
 |  | fdd_eject(drv); | 
 |  | fdd = fddfile + drv; | 
 | switch(getfdtype(fname)) { | switch(getfdtype(fname)) { | 
| case DRV_EMPTY: | case DISKTYPE_NOTREADY: | 
 | return(FAILURE); | return(FAILURE); | 
 |  |  | 
| case DRV_FMT2D: | case DISKTYPE_BETA: | 
| return(fdd_set_2d(drv, fname)); | return(fdd2d_set(fdd, drv, fname)); | 
 |  |  | 
 |  | case DISKTYPE_D88: | 
 | default: | default: | 
| return(fdd_set_d88(drv, fname)); | return(fddd88_set(fdd, drv, fname)); | 
 | } | } | 
 | return(FAILURE); | return(FAILURE); | 
 | } | } | 
| Line 80  BRESULT fdd_eject(REG8 drv) { | Line 79  BRESULT fdd_eject(REG8 drv) { | 
 | return(FAILURE); | return(FAILURE); | 
 | } | } | 
 | fdd = fddfile + drv; | fdd = fddfile + drv; | 
| switch(DISKNUM[drv]) { | switch(fdd->type) { | 
| case DRV_EMPTY: | case DISKTYPE_NOTREADY: | 
 | return(FAILURE); | return(FAILURE); | 
 |  |  | 
| case DRV_FMT2D: | case DISKTYPE_BETA: | 
| return(fdd_eject_2d(drv)); | return(fdd2d_eject(fdd, drv)); | 
 |  |  | 
 |  | case DISKTYPE_D88: | 
 | default: | default: | 
| return(fdd_eject_d88(drv)); | return(fddd88_eject(fdd, drv)); | 
 | } | } | 
 | return(FAILURE); | return(FAILURE); | 
 | } | } |