|
|
| version 1.7, 2004/05/07 11:42:29 | version 1.10, 2005/03/19 18:54:58 |
|---|---|
| Line 13 | Line 13 |
| int diskdrv_delay[4]; | int diskdrv_delay[4]; |
| int diskdrv_ro[4]; | int diskdrv_ro[4]; |
| char diskdrv_fname[4][MAX_PATH]; | OEMCHAR diskdrv_fname[4][MAX_PATH]; |
| void diskdrv_sethdd(REG8 drv, const char *fname) { | void diskdrv_sethdd(REG8 drv, const OEMCHAR *fname) { |
| UINT num; | UINT num; |
| char *p; | OEMCHAR *p; |
| int leng; | int leng; |
| num = drv & 0x0f; | num = drv & 0x0f; |
| Line 28 void diskdrv_sethdd(REG8 drv, const char | Line 28 void diskdrv_sethdd(REG8 drv, const char |
| if (!(drv & 0x20)) { // SASI or IDE | if (!(drv & 0x20)) { // SASI or IDE |
| if (num < 2) { | if (num < 2) { |
| p = np2cfg.sasihdd[num]; | p = np2cfg.sasihdd[num]; |
| leng = sizeof(np2cfg.sasihdd[0]); | leng = NELEMENTS(np2cfg.sasihdd[0]); |
| } | } |
| } | } |
| #if defined(SUPPORT_SCSI) | #if defined(SUPPORT_SCSI) |
| else { // SCSI | else { // SCSI |
| if (num < 4) { | if (num < 4) { |
| p = np2cfg.scsihdd[num]; | p = np2cfg.scsihdd[num]; |
| leng = sizeof(np2cfg.scsihdd[0]); | leng = NELEMENTS(np2cfg.scsihdd[0]); |
| } | } |
| } | } |
| #endif | #endif |
| Line 50 void diskdrv_sethdd(REG8 drv, const char | Line 50 void diskdrv_sethdd(REG8 drv, const char |
| } | } |
| } | } |
| void diskdrv_setfdd(REG8 drv, const char *fname, int readonly) { | void diskdrv_readyfdd(REG8 drv, const OEMCHAR *fname, int readonly) { |
| if ((drv < 4) && (fdc.equip & (1 << drv))) { | |
| if ((fname != NULL) && (fname[0] != '\0')) { | |
| fdd_set(drv, fname, FTYPE_NONE, readonly); | |
| fdc.stat[drv] = FDCRLT_AI | drv; | |
| fdc_interrupt(); | |
| sysmng_update(SYS_UPDATEFDD); | |
| } | |
| } | |
| } | |
| void diskdrv_setfdd(REG8 drv, const OEMCHAR *fname, int readonly) { | |
| if ((drv < 4) && (fdc.equip & (1 << drv))) { | if ((drv < 4) && (fdc.equip & (1 << drv))) { |
| fdd_eject(drv); | fdd_eject(drv); |
| Line 62 void diskdrv_setfdd(REG8 drv, const char | Line 74 void diskdrv_setfdd(REG8 drv, const char |
| if (fname) { | if (fname) { |
| diskdrv_delay[drv] = DISK_DELAY; | diskdrv_delay[drv] = DISK_DELAY; |
| diskdrv_ro[drv] = readonly; | diskdrv_ro[drv] = readonly; |
| file_cpyname(diskdrv_fname[drv], fname, sizeof(diskdrv_fname[0])); | file_cpyname(diskdrv_fname[drv], fname, |
| NELEMENTS(diskdrv_fname[0])); | |
| } | } |
| sysmng_update(SYS_UPDATEFDD); | sysmng_update(SYS_UPDATEFDD); |
| } | } |
| Line 75 void diskdrv_callback(void) { | Line 88 void diskdrv_callback(void) { |
| for (drv=0; drv<4; drv++) { | for (drv=0; drv<4; drv++) { |
| if (diskdrv_delay[drv]) { | if (diskdrv_delay[drv]) { |
| diskdrv_delay[drv]--; | diskdrv_delay[drv]--; |
| if ((!diskdrv_delay[drv]) && (diskdrv_fname[drv][0])) { | if (!diskdrv_delay[drv]) { |
| fdd_set(drv, diskdrv_fname[drv], FTYPE_NONE, diskdrv_ro[drv]); | diskdrv_readyfdd(drv, diskdrv_fname[drv], diskdrv_ro[drv]); |
| diskdrv_fname[drv][0] = '\0'; | diskdrv_fname[drv][0] = '\0'; |
| fdc.stat[drv] = FDCRLT_AI | drv; | |
| fdc_interrupt(); | |
| sysmng_update(SYS_UPDATEFDD); | |
| } | } |
| } | } |
| } | } |