Large changes to configuration files again (the old ones might break, be careful);
Applied the mainline PCem slight CPU emulation speedup commit; Added emulation of removable SCSI hard disks; CD-ROM image handler now uses C FILE's (with the 64-bit size calls) instead of C++ iostreams, ISO images bigger than 2 GB should work properly again; Split RLL/ESDI and XT IDE disks to their own bus types; Turned status bar pane meaning and hard disks and CD-ROM BUS numbers to #define's; Other miscellaneous cleanups.
This commit is contained in:
20
src/xtide.c
20
src/xtide.c
@@ -22,12 +22,12 @@ static void xtide_write(uint16_t port, uint8_t val, void *p)
|
||||
switch (port & 0xf)
|
||||
{
|
||||
case 0x0:
|
||||
writeidew(0, val | (xtide->data_high << 8));
|
||||
writeidew(8, val | (xtide->data_high << 8));
|
||||
return;
|
||||
|
||||
case 0x1: case 0x2: case 0x3:
|
||||
case 0x4: case 0x5: case 0x6: case 0x7:
|
||||
writeide(0, (port & 0xf) | 0x1f0, val);
|
||||
writeide(8, (port & 0xf) | 0x1f0, val);
|
||||
return;
|
||||
|
||||
case 0x8:
|
||||
@@ -35,7 +35,7 @@ static void xtide_write(uint16_t port, uint8_t val, void *p)
|
||||
return;
|
||||
|
||||
case 0xe:
|
||||
writeide(0, 0x3f6, val);
|
||||
writeide(8, 0x3f6, val);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -49,19 +49,19 @@ static uint8_t xtide_read(uint16_t port, void *p)
|
||||
switch (port & 0xf)
|
||||
{
|
||||
case 0x0:
|
||||
tempw = readidew(0);
|
||||
tempw = readidew(8);
|
||||
xtide->data_high = tempw >> 8;
|
||||
return tempw & 0xff;
|
||||
|
||||
case 0x1: case 0x2: case 0x3:
|
||||
case 0x4: case 0x5: case 0x6: case 0x7:
|
||||
return readide(0, (port & 0xf) | 0x1f0);
|
||||
return readide(8, (port & 0xf) | 0x1f0);
|
||||
|
||||
case 0x8:
|
||||
return xtide->data_high;
|
||||
|
||||
case 0xe:
|
||||
return readide(0, 0x3f6);
|
||||
return readide(8, 0x3f6);
|
||||
|
||||
default:
|
||||
return 0xff;
|
||||
@@ -75,9 +75,7 @@ static void *xtide_init(void)
|
||||
memset(xtide, 0, sizeof(xtide_t));
|
||||
|
||||
rom_init(&xtide->bios_rom, L"roms/ide_xt.bin", 0xc8000, 0x4000, 0x3fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
ide_init();
|
||||
ide_pri_disable();
|
||||
ide_sec_disable();
|
||||
ide_xtide_init();
|
||||
io_sethandler(0x0300, 0x0010, xtide_read, NULL, NULL, xtide_write, NULL, NULL, xtide);
|
||||
|
||||
return xtide;
|
||||
@@ -102,9 +100,7 @@ static void *xtide_ps2_init(void)
|
||||
memset(xtide, 0, sizeof(xtide_t));
|
||||
|
||||
rom_init(&xtide->bios_rom, L"roms/SIDE1V12.BIN", 0xc8000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
ide_init();
|
||||
ide_pri_disable();
|
||||
ide_sec_disable();
|
||||
ide_xtide_init();
|
||||
io_sethandler(0x0360, 0x0010, xtide_read, NULL, NULL, xtide_write, NULL, NULL, xtide);
|
||||
|
||||
return xtide;
|
||||
|
||||
Reference in New Issue
Block a user