|
|
| version 1.5, 2003/12/08 00:55:32 | version 1.7, 2004/01/22 01:10:04 |
|---|---|
| Line 8 | Line 8 |
| #include "iocore.h" | #include "iocore.h" |
| #include "fddfile.h" | #include "fddfile.h" |
| enum { | |
| FDC_DMACH2HD = 2, | |
| FDC_DMACH2DD = 3 | |
| }; | |
| static const UINT8 FDCCMD_TABLE[32] = { | static const UINT8 FDCCMD_TABLE[32] = { |
| 0, 0, 8, 2, 1, 8, 8, 1, 0, 8, 1, 0, 8, 5, 0, 2, | 0, 0, 8, 2, 1, 8, 8, 1, 0, 8, 1, 0, 8, 5, 0, 2, |
| Line 56 REG8 DMACCALL fdc_dmafunc(REG8 func) { | Line 60 REG8 DMACCALL fdc_dmafunc(REG8 func) { |
| static void fdc_dmaready(REG8 enable) { | static void fdc_dmaready(REG8 enable) { |
| if (CTRL_FDMEDIA == DISKTYPE_2HD) { | if (CTRL_FDMEDIA == DISKTYPE_2HD) { |
| dmac.dmach[DMA_2HD].ready = enable; | dmac.dmach[FDC_DMACH2HD].ready = enable; |
| } | } |
| else { | else { |
| dmac.dmach[DMA_2DD].ready = enable; | dmac.dmach[FDC_DMACH2DD].ready = enable; |
| } | } |
| } | } |
| Line 628 static void fdcstatusreset(void) { | Line 632 static void fdcstatusreset(void) { |
| fdc.status = FDCSTAT_RQM; | fdc.status = FDCSTAT_RQM; |
| } | } |
| void DMACCALL fdc_DataRegWrite(REG8 data) { | void DMACCALL fdc_datawrite(REG8 data) { |
| // if ((fdc.status & (FDCSTAT_RQM | FDCSTAT_DIO)) == FDCSTAT_RQM) { | // if ((fdc.status & (FDCSTAT_RQM | FDCSTAT_DIO)) == FDCSTAT_RQM) { |
| switch(fdc.event) { | switch(fdc.event) { |
| Line 667 void DMACCALL fdc_DataRegWrite(REG8 data | Line 671 void DMACCALL fdc_DataRegWrite(REG8 data |
| // } | // } |
| } | } |
| REG8 DMACCALL fdc_DataRegRead(void) { | REG8 DMACCALL fdc_dataread(void) { |
| // if ((fdc.status & (FDCSTAT_RQM | FDCSTAT_DIO)) | // if ((fdc.status & (FDCSTAT_RQM | FDCSTAT_DIO)) |
| // == (FDCSTAT_RQM | FDCSTAT_DIO)) { | // == (FDCSTAT_RQM | FDCSTAT_DIO)) { |
| Line 716 static void IOOUTCALL fdc_o92(UINT port, | Line 720 static void IOOUTCALL fdc_o92(UINT port, |
| // TRACEOUT(("fdc out %x %x", port, dat)); | // TRACEOUT(("fdc out %x %x", port, dat)); |
| CTRL_FDMEDIA = DISKTYPE_2HD; | CTRL_FDMEDIA = DISKTYPE_2HD; |
| if ((fdc.status & (FDCSTAT_RQM | FDCSTAT_DIO)) == FDCSTAT_RQM) { | if ((fdc.status & (FDCSTAT_RQM | FDCSTAT_DIO)) == FDCSTAT_RQM) { |
| fdc_DataRegWrite(dat); | fdc_datawrite(dat); |
| } | } |
| (void)port; | (void)port; |
| } | } |
| Line 750 static REG8 IOINPCALL fdc_i92(UINT port) | Line 754 static REG8 IOINPCALL fdc_i92(UINT port) |
| CTRL_FDMEDIA = DISKTYPE_2HD; | CTRL_FDMEDIA = DISKTYPE_2HD; |
| if ((fdc.status & (FDCSTAT_RQM | FDCSTAT_DIO)) | if ((fdc.status & (FDCSTAT_RQM | FDCSTAT_DIO)) |
| == (FDCSTAT_RQM | FDCSTAT_DIO)) { | == (FDCSTAT_RQM | FDCSTAT_DIO)) { |
| ret = fdc_DataRegRead(); | ret = fdc_dataread(); |
| } | } |
| else { | else { |
| ret = fdc.lastdata; | ret = fdc.lastdata; |
| Line 772 static REG8 IOINPCALL fdc_i94(UINT port) | Line 776 static REG8 IOINPCALL fdc_i94(UINT port) |
| static void IOOUTCALL fdc_oca(UINT port, REG8 dat) { | static void IOOUTCALL fdc_oca(UINT port, REG8 dat) { |
| CTRL_FDMEDIA = DISKTYPE_2DD; | CTRL_FDMEDIA = DISKTYPE_2DD; |
| fdc_DataRegWrite(dat); | fdc_datawrite(dat); |
| (void)port; | (void)port; |
| } | } |
| Line 796 static REG8 IOINPCALL fdc_ica(UINT port) | Line 800 static REG8 IOINPCALL fdc_ica(UINT port) |
| REG8 ret; | REG8 ret; |
| CTRL_FDMEDIA = DISKTYPE_2DD; | CTRL_FDMEDIA = DISKTYPE_2DD; |
| ret = fdc_DataRegRead(); | ret = fdc_dataread(); |
| (void)port; | (void)port; |
| return(ret); | return(ret); |
| Line 843 void fdc_reset(void) { | Line 847 void fdc_reset(void) { |
| ZeroMemory(&fdc, sizeof(fdc)); | ZeroMemory(&fdc, sizeof(fdc)); |
| fdcstatusreset(); | fdcstatusreset(); |
| CTRL_FDMEDIA = DISKTYPE_2HD; | CTRL_FDMEDIA = DISKTYPE_2HD; |
| dmac_attach(DMADEV_FDD, FDC_DMACH2HD); | |
| dmac_attach(DMADEV_FDD, FDC_DMACH2DD); | |
| } | } |
| void fdc_bind(void) { | void fdc_bind(void) { |