|
|
| version 1.7, 2004/08/07 19:06:59 | version 1.10, 2005/03/05 06:02:28 |
|---|---|
| Line 49 static const char serial[] = "8249193411 | Line 49 static const char serial[] = "8249193411 |
| static const char firm[] = "A5U.1200"; | static const char firm[] = "A5U.1200"; |
| static const char model[] = "QUANTUM FIREBALL CR "; | static const char model[] = "QUANTUM FIREBALL CR "; |
| static BOOL setidentify(IDEDRV drv) { | static BRESULT setidentify(IDEDRV drv) { |
| SXSIDEV sxsi; | SXSIDEV sxsi; |
| UINT16 tmp[256]; | UINT16 tmp[256]; |
| BYTE *p; | UINT8 *p; |
| UINT i; | UINT i; |
| UINT32 size; | UINT32 size; |
| sxsi = sxsi_getptr(drv->sxsidrv); | sxsi = sxsi_getptr(drv->sxsidrv); |
| if ((sxsi == NULL) || (sxsi->fname[0] == '\0')) { | if ((sxsi == NULL) || (!(sxsi->flag & SXSIFLAG_READY))) { |
| return(FAILURE); | return(FAILURE); |
| } | } |
| Line 104 static BOOL setidentify(IDEDRV drv) { | Line 104 static BOOL setidentify(IDEDRV drv) { |
| p = drv->buf; | p = drv->buf; |
| for (i=0; i<256; i++) { | for (i=0; i<256; i++) { |
| p[0] = (BYTE)tmp[i]; | p[0] = (UINT8)tmp[i]; |
| p[1] = (BYTE)(tmp[i] >> 8); | p[1] = (UINT8)(tmp[i] >> 8); |
| p += 2; | p += 2; |
| } | } |
| drv->bufdir = IDEDIR_IN; | drv->bufdir = IDEDIR_IN; |
| Line 721 static REG8 IOINPCALL ideio_i74c(UINT po | Line 721 static REG8 IOINPCALL ideio_i74c(UINT po |
| void IOOUTCALL ideio_w16(UINT port, REG16 value) { | void IOOUTCALL ideio_w16(UINT port, REG16 value) { |
| IDEDRV drv; | IDEDRV drv; |
| BYTE *p; | UINT8 *p; |
| drv = getidedrv(); | drv = getidedrv(); |
| if ((drv != NULL) && | if ((drv != NULL) && |
| (drv->status & IDESTAT_DRQ) && (drv->bufdir == IDEDIR_OUT)) { | (drv->status & IDESTAT_DRQ) && (drv->bufdir == IDEDIR_OUT)) { |
| p = drv->buf + drv->bufpos; | p = drv->buf + drv->bufpos; |
| p[0] = (BYTE)value; | p[0] = (UINT8)value; |
| p[1] = (BYTE)(value >> 8); | p[1] = (UINT8)(value >> 8); |
| TRACEOUT(("ide-data send %4x (%.4x) [%.4x:%.8x]", | TRACEOUT(("ide-data send %4x (%.4x) [%.4x:%.8x]", |
| value, drv->bufpos, CPU_CS, CPU_EIP)); | value, drv->bufpos, CPU_CS, CPU_EIP)); |
| drv->bufpos += 2; | drv->bufpos += 2; |
| Line 748 REG16 IOINPCALL ideio_r16(UINT port) { | Line 748 REG16 IOINPCALL ideio_r16(UINT port) { |
| IDEDRV drv; | IDEDRV drv; |
| REG16 ret; | REG16 ret; |
| BYTE *p; | UINT8 *p; |
| (void)port; | (void)port; |
| Line 797 static void devinit(IDEDRV drv, REG8 sxs | Line 797 static void devinit(IDEDRV drv, REG8 sxs |
| SXSIDEV sxsi; | SXSIDEV sxsi; |
| ZeroMemory(drv, sizeof(_IDEDRV)); | ZeroMemory(drv, sizeof(_IDEDRV)); |
| drv->sxsidrv = sxsidrv; | |
| sxsi = sxsi_getptr(sxsidrv); | sxsi = sxsi_getptr(sxsidrv); |
| if ((sxsi != NULL) && (sxsi->fname[0] != '\0')) { | if ((sxsi != NULL) && |
| drv->sxsidrv = sxsidrv; | (sxsi->devtype == SXSIDEV_HDD) && (sxsi->flag & SXSIFLAG_READY)) { |
| drv->status = IDESTAT_DRDY | IDESTAT_DSC; | drv->status = IDESTAT_DRDY | IDESTAT_DSC; |
| drv->error = IDEERR_AMNF; | drv->error = IDEERR_AMNF; |
| drv->device = IDETYPE_HDD; | drv->device = IDETYPE_HDD; |
| Line 836 void ideio_reset(void) { | Line 837 void ideio_reset(void) { |
| drv->device = IDETYPE_CDROM; | drv->device = IDETYPE_CDROM; |
| #endif | #endif |
| #if 0 | |
| ideio.dev[0].drv[0].status = IDE_READY | IDE_SEEKCOMPLETE; | |
| ideio.dev[0].drv[0].error = 1; | |
| ideio.dev[1].drv[0].status = IDE_READY | IDE_SEEKCOMPLETE; | |
| ideio.dev[1].drv[0].error = 1; | |
| ideio.dev[0].drv[0].sxsidrv = 0x00; | |
| ideio.dev[0].drv[1].sxsidrv = 0x01; | |
| ideio.dev[1].drv[0].sxsidrv = 0x02; | |
| ideio.dev[1].drv[1].sxsidrv = 0x03; | |
| #endif | |
| CopyMemory(mem + 0xd0000, idebios, sizeof(idebios)); | CopyMemory(mem + 0xd0000, idebios, sizeof(idebios)); |
| TRACEOUT(("use simulate ide.rom")); | TRACEOUT(("use simulate ide.rom")); |
| } | } |
| Line 881 void ideio_bind(void) { | Line 870 void ideio_bind(void) { |
| } | } |
| } | } |
| void ideio_notify(REG8 sxsidrv, UINT action) { | |
| (void)sxsidrv; | |
| (void)action; | |
| } | |
| #endif /* SUPPORT_IDEIO */ | #endif /* SUPPORT_IDEIO */ |