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:
OBattler
2017-05-27 03:53:32 +02:00
parent 94680da416
commit a36720f174
56 changed files with 4736 additions and 2682 deletions

View File

@@ -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;