|
|
| version 1.3, 2004/01/22 04:59:48 | version 1.10, 2005/03/05 06:02:28 |
|---|---|
| Line 43 enum { | Line 43 enum { |
| _SASIIO sasiio; | _SASIIO sasiio; |
| static BOOL sasiseek(void) { | static BRESULT sasiseek(void) { |
| SXSIDEV sxsi; | SXSIDEV sxsi; |
| Line 59 static BOOL sasiseek(void) { | Line 59 static BOOL sasiseek(void) { |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| static BOOL sasiflash(void) { | static BRESULT sasiflash(void) { |
| SXSIDEV sxsi; | SXSIDEV sxsi; |
| Line 145 static void checkcmd(void) { | Line 145 static void checkcmd(void) { |
| sasiio.phase = SASIPHASE_SENSE; | sasiio.phase = SASIPHASE_SENSE; |
| sasiio.senspos = 0; | sasiio.senspos = 0; |
| sasiio.sens[0] = sasiio.error; | sasiio.sens[0] = sasiio.error; |
| sasiio.sens[1] = (BYTE)((sasiio.unit << 5) + | sasiio.sens[1] = (UINT8)((sasiio.unit << 5) + |
| ((sasiio.sector >> 16) & 0x1f)); | ((sasiio.sector >> 16) & 0x1f)); |
| sasiio.sens[2] = (BYTE)(sasiio.sector >> 8); | sasiio.sens[2] = (UINT8)(sasiio.sector >> 8); |
| sasiio.sens[3] = (BYTE)sasiio.sector; | sasiio.sens[3] = (UINT8)sasiio.sector; |
| sasiio.error = 0x00; | sasiio.error = 0x00; |
| sasiio.stat = 0x00; | sasiio.stat = 0x00; |
| break; | break; |
| Line 311 static void IOOUTCALL sasiio_o80(UINT po | Line 311 static void IOOUTCALL sasiio_o80(UINT po |
| case SASIPHASE_CMD: | case SASIPHASE_CMD: |
| // TRACEOUT(("sasi cmd = %.2x", dat)); | // TRACEOUT(("sasi cmd = %.2x", dat)); |
| sasiio.cmd[sasiio.cmdpos] = (BYTE)dat; | sasiio.cmd[sasiio.cmdpos] = (UINT8)dat; |
| sasiio.cmdpos++; | sasiio.cmdpos++; |
| if (sasiio.cmdpos >= 6) { | if (sasiio.cmdpos >= 6) { |
| checkcmd(); | checkcmd(); |
| Line 337 static void IOOUTCALL sasiio_o82(UINT po | Line 337 static void IOOUTCALL sasiio_o82(UINT po |
| UINT8 oldocr; | UINT8 oldocr; |
| oldocr = sasiio.ocr; | oldocr = sasiio.ocr; |
| sasiio.ocr = (BYTE)dat; | sasiio.ocr = (UINT8)dat; |
| if ((oldocr & SASIOCR_RST) && (!(dat & SASIOCR_RST))) { | if ((oldocr & SASIOCR_RST) && (!(dat & SASIOCR_RST))) { |
| sasiio.phase = SASIPHASE_FREE; | sasiio.phase = SASIPHASE_FREE; |
| Line 388 static REG8 IOINPCALL sasiio_i80(UINT po | Line 388 static REG8 IOINPCALL sasiio_i80(UINT po |
| static REG8 IOINPCALL sasiio_i82(UINT port) { | static REG8 IOINPCALL sasiio_i82(UINT port) { |
| REG8 ret; | REG8 ret; |
| SXSIDEV sxsi; | |
| if (sasiio.ocr & SASIOCR_NRDSW) { | if (sasiio.ocr & SASIOCR_NRDSW) { |
| ret = sasiio.isrint; | ret = sasiio.isrint; |
| Line 414 static REG8 IOINPCALL sasiio_i82(UINT po | Line 415 static REG8 IOINPCALL sasiio_i82(UINT po |
| break; | break; |
| } | } |
| } | } |
| return(ret); | |
| } | } |
| else { | else { |
| return((6 << 3) + 6); // 256/256/40MB/40MB | ret = 0; |
| sxsi = sxsi_getptr(0x00); // SASI-1 | |
| if (sxsi) { | |
| ret |= (sxsi->mediatype & 7) << 3; | |
| } | |
| else { | |
| ret |= (7 << 3); | |
| } | |
| sxsi = sxsi_getptr(0x01); // SASI-2 | |
| if (sxsi) { | |
| ret |= (sxsi->mediatype & 7); | |
| } | |
| else { | |
| ret |= 7; | |
| } | |
| } | } |
| (void)port; | (void)port; |
| return(ret); | |
| } | } |
| Line 434 void sasiio_reset(void) { | Line 449 void sasiio_reset(void) { |
| if (pccore.hddif & PCHDD_SASI) { | if (pccore.hddif & PCHDD_SASI) { |
| dmac_attach(DMADEV_SASI, SASI_DMACH); | dmac_attach(DMADEV_SASI, SASI_DMACH); |
| fh = file_open_rb_c("sasi.rom"); | CPU_RAM_D000 &= ~(1 << 0); |
| fh = file_open_rb_c(OEMTEXT("sasi.rom")); | |
| r = 0; | r = 0; |
| if (fh != FILEH_INVALID) { | if (fh != FILEH_INVALID) { |
| r = file_read(fh, mem + 0xd0000, 0x1000); | r = file_read(fh, mem + 0xd0000, 0x1000); |
| Line 459 void sasiio_bind(void) { | Line 475 void sasiio_bind(void) { |
| iocore_attachinp(0x0082, sasiio_i82); | iocore_attachinp(0x0082, sasiio_i82); |
| } | } |
| } | } |
| #endif | #endif |