|
|
| version 1.4, 2004/01/23 12:04:08 | version 1.7, 2004/01/27 03:24:19 |
|---|---|
| Line 6 | Line 6 |
| #include "sxsibios.h" | #include "sxsibios.h" |
| #include "scsicmd.h" | #include "scsicmd.h" |
| #include "sxsi.h" | #include "sxsi.h" |
| #include "timing.h" | |
| typedef REG8 (*SXSIFUNC)(UINT type, SXSIDEV sxsi); | typedef REG8 (*SXSIFUNC)(UINT type, SXSIDEV sxsi); |
| Line 111 static REG8 sxsibios_format(UINT type, S | Line 112 static REG8 sxsibios_format(UINT type, S |
| long pos; | long pos; |
| if (CPU_AH & 0x80) { | if (CPU_AH & 0x80) { |
| ret = 0xd0; | if (type == SXSIBIOS_SCSI) { // とりあえずSCSIのみ |
| UINT count; | |
| long posmax; | |
| count = timing_getcount(); // 時間を止める | |
| ret = 0; | |
| pos = 0; | |
| posmax = sxsi->surfaces * sxsi->cylinders; | |
| while(pos < posmax) { | |
| ret = sxsi_format(CPU_AL, pos * sxsi->sectors); | |
| if (ret) { | |
| break; | |
| } | |
| pos++; | |
| } | |
| timing_setcount(count); // 再開 | |
| } | |
| else { | |
| ret = 0xd0; | |
| } | |
| } | } |
| else { | else { |
| if (CPU_DL) { | if (CPU_DL) { |
| Line 167 static REG8 sasibios_init(UINT type, SXS | Line 186 static REG8 sasibios_init(UINT type, SXS |
| static REG8 sasibios_sense(UINT type, SXSIDEV sxsi) { | static REG8 sasibios_sense(UINT type, SXSIDEV sxsi) { |
| TRACEOUT(("sasibios_sense type=%d", type)); | |
| if (type == SXSIBIOS_SASI) { | if (type == SXSIBIOS_SASI) { |
| return((REG8)((sxsi->type >> 8) & 7)); | return((REG8)((sxsi->type >> 8) & 7)); |
| } | } |
| Line 177 static REG8 sasibios_sense(UINT type, SX | Line 197 static REG8 sasibios_sense(UINT type, SX |
| CPU_DH = sxsi->surfaces; | CPU_DH = sxsi->surfaces; |
| CPU_DL = sxsi->sectors; | CPU_DL = sxsi->sectors; |
| } | } |
| return(0x00); | return(0x0f); |
| } | } |
| } | } |