--- np2/bios/sxsibios.c 2004/01/30 14:33:27 1.9 +++ np2/bios/sxsibios.c 2005/05/20 13:59:46 1.18 @@ -47,28 +47,28 @@ static REG8 sxsi_pos(UINT type, SXSIDEV static REG8 sxsibios_write(UINT type, SXSIDEV sxsi) { REG8 ret; - UINT32 addr; UINT size; long pos; + UINT32 addr; UINT r; - BYTE work[1024]; + UINT8 work[1024]; - addr = (CPU_ES << 4) + CPU_BP; size = CPU_BX; if (!size) { size = 0x10000; } ret = sxsi_pos(type, sxsi, &pos); if (!ret) { + addr = (CPU_ES << 4) + CPU_BP; while(size) { r = min(size, sxsi->size); - i286_memx_read(addr, work, r); + MEML_READS(addr, work, r); ret = sxsi_write(CPU_AL, pos, work, r); if (ret >= 0x20) { break; } - size -= r; addr += r; + size -= r; pos++; } } @@ -78,28 +78,28 @@ static REG8 sxsibios_write(UINT type, SX static REG8 sxsibios_read(UINT type, SXSIDEV sxsi) { REG8 ret; - UINT32 addr; UINT size; long pos; + UINT32 addr; UINT r; - BYTE work[1024]; + UINT8 work[1024]; - addr = (CPU_ES << 4) + CPU_BP; size = CPU_BX; if (!size) { size = 0x10000; } ret = sxsi_pos(type, sxsi, &pos); if (!ret) { + addr = (CPU_ES << 4) + CPU_BP; while(size) { r = min(size, sxsi->size); ret = sxsi_read(CPU_AL, pos, work, r); if (ret >= 0x20) { break; } - i286_memx_write(addr, work, r); - size -= r; + MEML_WRITES(addr, work, r); addr += r; + size -= r; pos++; } } @@ -174,7 +174,7 @@ static REG8 sasibios_init(UINT type, SXS diskequip &= 0xf0ff; for (i=0x00, bit=0x0100; i<0x02; i++, bit<<=1) { sxsi = sxsi_getptr(i); - if ((sxsi) && (sxsi->fname[0])) { + if ((sxsi) && (sxsi->flag & SXSIFLAG_READY)) { diskequip |= bit; } } @@ -187,7 +187,7 @@ static REG8 sasibios_init(UINT type, SXS static REG8 sasibios_sense(UINT type, SXSIDEV sxsi) { if (type == SXSIBIOS_SASI) { - return((REG8)((sxsi->type >> 8) & 7)); + return((REG8)(sxsi->mediatype & 7)); } else { if (CPU_AH == 0x84) { @@ -249,7 +249,7 @@ REG8 sasibios_operate(void) { static void scsibios_set(REG8 drv, REG8 sectors, REG8 surfaces, REG16 cylinders, REG16 size, BOOL hwsec) { - BYTE *scsiinf; + UINT8 *scsiinf; UINT16 inf; scsiinf = mem + 0x00460 + ((drv & 7) * 4); @@ -283,7 +283,7 @@ static REG8 scsibios_init(UINT type, SXS ZeroMemory(&mem[0x00460], 0x20); for (i=0, bit=1; i<4; i++, bit<<=1) { sxsi = sxsi_getptr((REG8)(0x20 + i)); - if ((sxsi) && (sxsi->fname[0])) { + if ((sxsi) && (sxsi->flag & SXSIFLAG_READY)) { mem[MEMB_DISK_EQUIPS] |= bit; scsibios_set(i, sxsi->sectors, sxsi->surfaces, sxsi->cylinders, sxsi->size, TRUE); @@ -295,7 +295,7 @@ static REG8 scsibios_init(UINT type, SXS static REG8 scsibios_sense(UINT type, SXSIDEV sxsi) { - BYTE *scsiinf; + UINT8 *scsiinf; scsiinf = mem + 0x00460 + ((CPU_AL & 7) * 4); if (CPU_AH == 0x24) { @@ -314,6 +314,7 @@ static REG8 scsibios_sense(UINT type, SX CPU_BX = 256 << ((scsiinf[3] >> 4) & 3); } (void)type; + (void)sxsi; return(0x00); } @@ -373,7 +374,7 @@ REG8 scsibios_operate(void) { // ---- np2sysp -#if defined(SUPPORT_SASI) || defined(SUPPORT_SCSI) +#if defined(SUPPORT_IDEIO) || defined(SUPPORT_SASI) || defined(SUPPORT_SCSI) typedef struct { UINT16 ax; UINT16 cx; @@ -416,23 +417,23 @@ static void reg_pop(const REGBAK *r) { } typedef struct { - BYTE r_ax[2]; - BYTE r_bx[2]; - BYTE r_cx[2]; - BYTE r_dx[2]; - BYTE r_bp[2]; - BYTE r_es[2]; - BYTE r_di[2]; - BYTE r_si[2]; - BYTE r_ds[2]; + UINT8 r_ax[2]; + UINT8 r_bx[2]; + UINT8 r_cx[2]; + UINT8 r_dx[2]; + UINT8 r_bp[2]; + UINT8 r_es[2]; + UINT8 r_di[2]; + UINT8 r_si[2]; + UINT8 r_ds[2]; } B1BREG; static void reg_load(UINT seg, UINT off) { B1BREG r; - i286_memstr_read(seg, off, &r, sizeof(r)); - CPU_FLAGL = i286_membyte_read(seg, off + 0x16); + MEMR_READS(seg, off, &r, sizeof(r)); + CPU_FLAGL = MEMR_READ8(seg, off + 0x16); CPU_AX = LOADINTELWORD(r.r_ax); CPU_BX = LOADINTELWORD(r.r_bx); CPU_CX = LOADINTELWORD(r.r_cx); @@ -457,12 +458,12 @@ static void reg_store(UINT seg, UINT off STOREINTELWORD(r.r_di, CPU_DI); STOREINTELWORD(r.r_si, CPU_SI); STOREINTELWORD(r.r_ds, CPU_DS); - i286_memstr_write(seg, off, &r, sizeof(r)); - i286_membyte_write(seg, off + 0x16, CPU_FLAGL); + MEMR_WRITES(seg, off, &r, sizeof(r)); + MEMR_WRITE8(seg, off + 0x16, CPU_FLAGL); } #endif -#if defined(SUPPORT_SASI) +#if defined(SUPPORT_IDEIO) || defined(SUPPORT_SASI) void np2sysp_sasi(const void *arg1, long arg2) { UINT seg;