|
|
| version 1.6, 2004/02/19 03:04:01 | version 1.11, 2005/03/22 04:03:15 |
|---|---|
| Line 13 static const _XDFINFO supportxdf[] = { | Line 13 static const _XDFINFO supportxdf[] = { |
| // 512 | // 512 |
| {0, 154, 15, 2, DISKTYPE_2HD, 0}, | {0, 154, 15, 2, DISKTYPE_2HD, 0}, |
| #endif | #endif |
| #if 1 | |
| // 512 | |
| {0, 160, 15, 2, DISKTYPE_2HD, 0}, | |
| #endif | |
| // 1024 | // 1024 |
| {0, 154, 8, 3, DISKTYPE_2HD, 0}, | {0, 154, 8, 3, DISKTYPE_2HD, 0}, |
| // 1.44MB | // 1.44MB |
| Line 20 static const _XDFINFO supportxdf[] = { | Line 24 static const _XDFINFO supportxdf[] = { |
| }; | }; |
| typedef struct { | typedef struct { |
| BYTE dummy[4]; | UINT8 dummy[4]; |
| BYTE fddtype[4]; | UINT8 fddtype[4]; |
| BYTE headersize[4]; | UINT8 headersize[4]; |
| BYTE fddsize[4]; | UINT8 fddsize[4]; |
| BYTE sectorsize[4]; | UINT8 sectorsize[4]; |
| BYTE sectors[4]; | UINT8 sectors[4]; |
| BYTE surfaces[4]; | UINT8 surfaces[4]; |
| BYTE cylinders[4]; | UINT8 cylinders[4]; |
| } FDIHDR; | } FDIHDR; |
| BOOL fddxdf_set(FDDFILE fdd, const char *fname, int ro) { | BRESULT fddxdf_set(FDDFILE fdd, const OEMCHAR *fname, int ro) { |
| const _XDFINFO *xdf; | const _XDFINFO *xdf; |
| short attr; | short attr; |
| Line 51 const _XDFINFO *xdf; | Line 55 const _XDFINFO *xdf; |
| file_close(fh); | file_close(fh); |
| xdf = supportxdf; | xdf = supportxdf; |
| while(xdf < (supportxdf + (sizeof(supportxdf)/sizeof(_XDFINFO)))) { | while(xdf < (supportxdf + NELEMENTS(supportxdf))) { |
| size = xdf->tracks; | size = xdf->tracks; |
| size *= xdf->sectors; | size *= xdf->sectors; |
| size <<= (7 + xdf->n); | size <<= (7 + xdf->n); |
| if (size == fdsize) { | if (size == fdsize) { |
| file_cpyname(fdd->fname, fname, sizeof(fdd->fname)); | |
| fdd->type = DISKTYPE_BETA; | fdd->type = DISKTYPE_BETA; |
| fdd->protect = ((attr & 1) || (ro))?TRUE:FALSE; | fdd->protect = ((attr & 1) || (ro))?TRUE:FALSE; |
| fdd->inf.xdf = *xdf; | fdd->inf.xdf = *xdf; |
| Line 68 const _XDFINFO *xdf; | Line 71 const _XDFINFO *xdf; |
| } | } |
| // こっそり対応したりして | // こっそり対応したりして |
| BOOL fddxdf_setfdi(FDDFILE fdd, const char *fname, int ro) { | BRESULT fddxdf_setfdi(FDDFILE fdd, const OEMCHAR *fname, int ro) { |
| short attr; | short attr; |
| FILEH fh; | FILEH fh; |
| Line 146 BOOL fddxdf_setfdi(FDDFILE fdd, const ch | Line 149 BOOL fddxdf_setfdi(FDDFILE fdd, const ch |
| default: | default: |
| return(FAILURE); | return(FAILURE); |
| } | } |
| file_cpyname(fdd->fname, fname, sizeof(fdd->fname)); | |
| fdd->type = DISKTYPE_BETA; | fdd->type = DISKTYPE_BETA; |
| fdd->protect = ((attr & 1) || (ro))?TRUE:FALSE; | fdd->protect = ((attr & 1) || (ro))?TRUE:FALSE; |
| fdd->inf.xdf.headersize = headersize; | fdd->inf.xdf.headersize = headersize; |
| Line 158 BOOL fddxdf_setfdi(FDDFILE fdd, const ch | Line 160 BOOL fddxdf_setfdi(FDDFILE fdd, const ch |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| BOOL fddxdf_eject(FDDFILE fdd) { | BRESULT fddxdf_eject(FDDFILE fdd) { |
| fdd->fname[0] = '\0'; | fdd->fname[0] = '\0'; |
| fdd->type = DISKTYPE_NOTREADY; | fdd->type = DISKTYPE_NOTREADY; |
| Line 166 BOOL fddxdf_eject(FDDFILE fdd) { | Line 168 BOOL fddxdf_eject(FDDFILE fdd) { |
| } | } |
| BOOL fddxdf_diskaccess(FDDFILE fdd) { | BRESULT fddxdf_diskaccess(FDDFILE fdd) { |
| if ((fdd->type != DISKTYPE_BETA) || | if ((fdd->type != DISKTYPE_BETA) || |
| (CTRL_FDMEDIA != fdd->inf.xdf.disktype)) { | (CTRL_FDMEDIA != fdd->inf.xdf.disktype)) { |
| Line 175 BOOL fddxdf_diskaccess(FDDFILE fdd) { | Line 177 BOOL fddxdf_diskaccess(FDDFILE fdd) { |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| BOOL fddxdf_seek(FDDFILE fdd) { | BRESULT fddxdf_seek(FDDFILE fdd) { |
| if ((fdd->type != DISKTYPE_BETA) || | if ((fdd->type != DISKTYPE_BETA) || |
| (CTRL_FDMEDIA != fdd->inf.xdf.disktype) || | (CTRL_FDMEDIA != fdd->inf.xdf.disktype) || |
| Line 186 BOOL fddxdf_seek(FDDFILE fdd) { | Line 188 BOOL fddxdf_seek(FDDFILE fdd) { |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| BOOL fddxdf_seeksector(FDDFILE fdd) { | BRESULT fddxdf_seeksector(FDDFILE fdd) { |
| if ((fdd->type != DISKTYPE_BETA) || | if ((fdd->type != DISKTYPE_BETA) || |
| (CTRL_FDMEDIA != fdd->inf.xdf.disktype) || | (CTRL_FDMEDIA != fdd->inf.xdf.disktype) || |
| Line 206 BOOL fddxdf_seeksector(FDDFILE fdd) { | Line 208 BOOL fddxdf_seeksector(FDDFILE fdd) { |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| BOOL fddxdf_read(FDDFILE fdd) { | BRESULT fddxdf_read(FDDFILE fdd) { |
| FILEH hdl; | FILEH hdl; |
| long seekp; | long seekp; |
| Line 245 BOOL fddxdf_read(FDDFILE fdd) { | Line 247 BOOL fddxdf_read(FDDFILE fdd) { |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| BOOL fddxdf_write(FDDFILE fdd) { | BRESULT fddxdf_write(FDDFILE fdd) { |
| FILEH hdl; | FILEH hdl; |
| long seekp; | long seekp; |
| Line 289 BOOL fddxdf_write(FDDFILE fdd) { | Line 291 BOOL fddxdf_write(FDDFILE fdd) { |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| BOOL fddxdf_readid(FDDFILE fdd) { | BRESULT fddxdf_readid(FDDFILE fdd) { |
| fddlasterror = 0x00; | fddlasterror = 0x00; |
| if ((!fdc.mf) || | if ((!fdc.mf) || |