|
|
| version 1.15, 2004/03/22 05:38:47 | version 1.17, 2005/03/05 06:02:28 |
|---|---|
| Line 51 static REG8 sxsibios_write(UINT type, SX | Line 51 static REG8 sxsibios_write(UINT type, SX |
| long pos; | long pos; |
| UINT32 addr; | UINT32 addr; |
| UINT r; | UINT r; |
| BYTE work[1024]; | UINT8 work[1024]; |
| size = CPU_BX; | size = CPU_BX; |
| if (!size) { | if (!size) { |
| Line 82 static REG8 sxsibios_read(UINT type, SXS | Line 82 static REG8 sxsibios_read(UINT type, SXS |
| long pos; | long pos; |
| UINT32 addr; | UINT32 addr; |
| UINT r; | UINT r; |
| BYTE work[1024]; | UINT8 work[1024]; |
| size = CPU_BX; | size = CPU_BX; |
| if (!size) { | if (!size) { |
| Line 174 static REG8 sasibios_init(UINT type, SXS | Line 174 static REG8 sasibios_init(UINT type, SXS |
| diskequip &= 0xf0ff; | diskequip &= 0xf0ff; |
| for (i=0x00, bit=0x0100; i<0x02; i++, bit<<=1) { | for (i=0x00, bit=0x0100; i<0x02; i++, bit<<=1) { |
| sxsi = sxsi_getptr(i); | sxsi = sxsi_getptr(i); |
| if ((sxsi) && (sxsi->fname[0])) { | if ((sxsi) && (sxsi->flag & SXSIFLAG_READY)) { |
| diskequip |= bit; | diskequip |= bit; |
| } | } |
| } | } |
| Line 187 static REG8 sasibios_init(UINT type, SXS | Line 187 static REG8 sasibios_init(UINT type, SXS |
| static REG8 sasibios_sense(UINT type, SXSIDEV sxsi) { | static REG8 sasibios_sense(UINT type, SXSIDEV sxsi) { |
| if (type == SXSIBIOS_SASI) { | if (type == SXSIBIOS_SASI) { |
| return((REG8)((sxsi->type >> 8) & 7)); | return((REG8)(sxsi->mediatype & 7)); |
| } | } |
| else { | else { |
| if (CPU_AH == 0x84) { | if (CPU_AH == 0x84) { |
| Line 249 REG8 sasibios_operate(void) { | Line 249 REG8 sasibios_operate(void) { |
| static void scsibios_set(REG8 drv, REG8 sectors, REG8 surfaces, | static void scsibios_set(REG8 drv, REG8 sectors, REG8 surfaces, |
| REG16 cylinders, REG16 size, BOOL hwsec) { | REG16 cylinders, REG16 size, BOOL hwsec) { |
| BYTE *scsiinf; | UINT8 *scsiinf; |
| UINT16 inf; | UINT16 inf; |
| scsiinf = mem + 0x00460 + ((drv & 7) * 4); | scsiinf = mem + 0x00460 + ((drv & 7) * 4); |
| Line 283 static REG8 scsibios_init(UINT type, SXS | Line 283 static REG8 scsibios_init(UINT type, SXS |
| ZeroMemory(&mem[0x00460], 0x20); | ZeroMemory(&mem[0x00460], 0x20); |
| for (i=0, bit=1; i<4; i++, bit<<=1) { | for (i=0, bit=1; i<4; i++, bit<<=1) { |
| sxsi = sxsi_getptr((REG8)(0x20 + i)); | sxsi = sxsi_getptr((REG8)(0x20 + i)); |
| if ((sxsi) && (sxsi->fname[0])) { | if ((sxsi) && (sxsi->flag & SXSIFLAG_READY)) { |
| mem[MEMB_DISK_EQUIPS] |= bit; | mem[MEMB_DISK_EQUIPS] |= bit; |
| scsibios_set(i, sxsi->sectors, sxsi->surfaces, | scsibios_set(i, sxsi->sectors, sxsi->surfaces, |
| sxsi->cylinders, sxsi->size, TRUE); | sxsi->cylinders, sxsi->size, TRUE); |
| Line 295 static REG8 scsibios_init(UINT type, SXS | Line 295 static REG8 scsibios_init(UINT type, SXS |
| static REG8 scsibios_sense(UINT type, SXSIDEV sxsi) { | static REG8 scsibios_sense(UINT type, SXSIDEV sxsi) { |
| BYTE *scsiinf; | UINT8 *scsiinf; |
| scsiinf = mem + 0x00460 + ((CPU_AL & 7) * 4); | scsiinf = mem + 0x00460 + ((CPU_AL & 7) * 4); |
| if (CPU_AH == 0x24) { | if (CPU_AH == 0x24) { |
| Line 417 static void reg_pop(const REGBAK *r) { | Line 417 static void reg_pop(const REGBAK *r) { |
| } | } |
| typedef struct { | typedef struct { |
| BYTE r_ax[2]; | UINT8 r_ax[2]; |
| BYTE r_bx[2]; | UINT8 r_bx[2]; |
| BYTE r_cx[2]; | UINT8 r_cx[2]; |
| BYTE r_dx[2]; | UINT8 r_dx[2]; |
| BYTE r_bp[2]; | UINT8 r_bp[2]; |
| BYTE r_es[2]; | UINT8 r_es[2]; |
| BYTE r_di[2]; | UINT8 r_di[2]; |
| BYTE r_si[2]; | UINT8 r_si[2]; |
| BYTE r_ds[2]; | UINT8 r_ds[2]; |
| } B1BREG; | } B1BREG; |
| static void reg_load(UINT seg, UINT off) { | static void reg_load(UINT seg, UINT off) { |