| 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 | 
 |  |  |