|
|
| version 1.3, 2004/08/02 13:38:46 | version 1.4, 2004/08/09 04:47:53 |
|---|---|
| Line 40 const OEMCHAR *ext; | Line 40 const OEMCHAR *ext; |
| ext = file_getext(fname); | ext = file_getext(fname); |
| if (!milstr_cmp(ext, str_e2d)) { | if (!milstr_cmp(ext, str_e2d)) { |
| return(DISKTYPE_BETA); | return(FTYPE_BETA); |
| } | } |
| if ((!milstr_cmp(ext, str_d88)) || (!milstr_cmp(ext, str_88d))) { | if ((!milstr_cmp(ext, str_d88)) || (!milstr_cmp(ext, str_88d))) { |
| return(DISKTYPE_D88); | return(FTYPE_D88); |
| } | } |
| return(DISKTYPE_NOTREADY); | return(FTYPE_NONE); |
| } | } |
| BRESULT fdd_set(REG8 drv, const OEMCHAR *fname, UINT ftype, int ro) { | BRESULT fdd_set(REG8 drv, const OEMCHAR *fname, UINT ftype, int ro) { |
| FDDFILE fdd; | FDDFILE fdd; |
| BRESULT r; | |
| if (drv >= MAX_FDDFILE) { | if (drv >= MAX_FDDFILE) { |
| return(FAILURE); | return(FAILURE); |
| } | } |
| fdd_eject(drv); | fdd_eject(drv); |
| fdd = fddfile + drv; | fdd = fddfile + drv; |
| switch(getfdtype(fname)) { | if (ftype == FTYPE_NONE) { |
| case DISKTYPE_NOTREADY: | ftype = getfdtype(fname); |
| return(FAILURE); | } |
| switch(ftype) { | |
| case DISKTYPE_BETA: | case FTYPE_BETA: |
| return(fdd2d_set(fdd, drv, fname)); | r = fdd2d_set(fdd, drv, fname); |
| break; | |
| case FTYPE_D88: | |
| r = fddd88_set(fdd, drv, fname); | |
| break; | |
| case DISKTYPE_D88: | |
| default: | default: |
| return(fddd88_set(fdd, drv, fname)); | r = FAILURE; |
| break; | |
| } | } |
| return(FAILURE); | if (r == SUCCESS) { |
| milstr_ncpy(fdd->fname, fname, NELEMENTS(fdd->fname)); | |
| if (ro) { | |
| fdd->protect = TRUE; | |
| } | |
| } | |
| return(r); | |
| } | } |
| BRESULT fdd_eject(REG8 drv) { | BRESULT fdd_eject(REG8 drv) { |
| FDDFILE fdd; | FDDFILE fdd; |
| if (drv >= MAX_FDDFILE) { | if (drv >= MAX_FDDFILE) { |
| return(FAILURE); | return(FAILURE); |
| } | } |
| fdd = fddfile + drv; | fdd = fddfile + drv; |
| switch(fdd->type) { | switch(fdd->type) { |
| case DISKTYPE_NOTREADY: | |
| return(FAILURE); | |
| case DISKTYPE_BETA: | case DISKTYPE_BETA: |
| return(fdd2d_eject(fdd, drv)); | return(fdd2d_eject(fdd, drv)); |
| case DISKTYPE_D88: | case DISKTYPE_D88: |
| default: | |
| return(fddd88_eject(fdd, drv)); | return(fddd88_eject(fdd, drv)); |
| } | } |
| return(FAILURE); | return(FAILURE); |