Added Intel Advanced/ZP emulation. Patch from EluanCM.

This commit is contained in:
SarahW 2018-02-20 10:34:46 +00:00
commit 84a0f0bacb
7 changed files with 54 additions and 1 deletions

View file

@ -453,6 +453,7 @@ enum
ROM_COMPAQ_PII,
ROM_ELX_PC425X,
ROM_PB570,
ROM_ZAPPA,
ROM_MAX
};

View file

@ -106,3 +106,19 @@ void intel_endeavor_init()
{
io_sethandler(0x0079, 0x0001, endeavor_brdconfig, NULL, NULL, NULL, NULL, NULL, NULL);
}
static uint8_t zappa_brdconfig(uint16_t port, void *p)
{
// pclog("zappa_brdconfig read port=%04x\n", port);
switch (port)
{
case 0x79:
return 0xff;
}
return 0;
}
void intel_zappa_init()
{
io_sethandler(0x0079, 0x0001, zappa_brdconfig, NULL, NULL, NULL, NULL, NULL, NULL);
}

View file

@ -1,2 +1,3 @@
void intel_batman_init();
void intel_endeavor_init();
void intel_zappa_init();

View file

@ -170,6 +170,9 @@ void *intel_flash_init(uint8_t type)
case ROM_PB570:
strcpy(flash_path, "pb570/");
break;
case ROM_ZAPPA:
strcpy(flash_path, "zappa/");
break;
case ROM_430VX:
strcpy(flash_path, "430vx/");
break;

View file

@ -861,6 +861,20 @@ int loadbios()
fclose(f);
biosmask = 0x1ffff;
return 1;
case ROM_ZAPPA:
f = romfopen("zappa/1006bs0_.bio", "rb");
if (!f) break;
fseek(f, 0x80, SEEK_SET);
fread(rom + 0x10000, 0x10000, 1, f);
fclose(f);
f = romfopen("zappa/1006bs0_.bi1", "rb");
if (!f) break;
fseek(f, 0x80, SEEK_SET);
fread(rom, 0xd000, 1, f);
fclose(f);
biosmask = 0x1ffff;
return 1;
}
printf("Failed to load ROM!\n");
if (f) fclose(f);

View file

@ -98,6 +98,7 @@ void at_t3100e_init();
void xt_t1000_init();
void xt_t1200_init();
void at_sl82c460_init();
void at_zappa_init();
int model;
int AMSTRAD, AT, PCI, TANDY;
@ -171,6 +172,7 @@ MODEL models[] =
{"[Socket 4] Intel Premiere/PCI", ROM_REVENGE, "revenge", { {"Intel", cpus_Pentium5V}, {"", NULL}, {"", NULL}}, 0, MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 128, 1, at_batman_init, NULL},
{"[Socket 5] Intel Advanced/EV", ROM_ENDEAVOR, "endeavor", { {"Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, 0, MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 128, 1, at_endeavor_init, NULL},
{"[Socket 5] Intel Advanced/ZP", ROM_ZAPPA, "zappa", { {"Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, 0, MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 128, 1, at_zappa_init, NULL},
{"[Socket 5] Packard Bell PB570", ROM_PB570, "pb570", { {"Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, 1, MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 128, 1, at_endeavor_init, NULL},
{"[Socket 7] Award 430VX PCI", ROM_430VX, "430vx", { {"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, 0, MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 256, 1, at_i430vx_init, NULL},
@ -550,6 +552,20 @@ void at_endeavor_init()
intel_endeavor_init();
device_add(&intel_flash_bxt_ami_device);
}
void at_zappa_init()
{
at_init();
pci_init(PCI_CONFIG_TYPE_1);
pci_slot(0xd);
pci_slot(0xe);
pci_slot(0xf);
pci_slot(0x10);
i430fx_init();
piix_init(7, 0xd, 0xe, 0xf, 0x10);
pc87306_init(0x2e);
intel_zappa_init();
device_add(&intel_flash_bxt_ami_device);
}
void at_i430vx_init()
{

View file

@ -299,7 +299,8 @@ void loadnvr()
return;
case ROM_ELX_PC425X: f = nvrfopen("elx_pc425.nvr", "rb"); nvrmask = 127; break;
case ROM_PB570: f = nvrfopen("pb570.nvr", "rb"); nvrmask = 127; break;
case ROM_ZAPPA: f = nvrfopen("zappa.nvr", "rb"); nvrmask = 127; break;
default: return;
}
if (!f)
@ -383,6 +384,7 @@ void savenvr()
return;
case ROM_ELX_PC425X: f = nvrfopen("elx_pc425.nvr", "wb"); break;
case ROM_PB570: f = nvrfopen("pb570.nvr", "wb"); break;
case ROM_ZAPPA: f = nvrfopen("zappa.nvr", "wb"); break;
default: return;
}