Added Intel Advanced/ZP emulation. Patch from EluanCM.
This commit is contained in:
parent
ce5ae22307
commit
84a0f0bacb
7 changed files with 54 additions and 1 deletions
|
|
@ -453,6 +453,7 @@ enum
|
||||||
ROM_COMPAQ_PII,
|
ROM_COMPAQ_PII,
|
||||||
ROM_ELX_PC425X,
|
ROM_ELX_PC425X,
|
||||||
ROM_PB570,
|
ROM_PB570,
|
||||||
|
ROM_ZAPPA,
|
||||||
|
|
||||||
ROM_MAX
|
ROM_MAX
|
||||||
};
|
};
|
||||||
|
|
|
||||||
16
src/intel.c
16
src/intel.c
|
|
@ -106,3 +106,19 @@ void intel_endeavor_init()
|
||||||
{
|
{
|
||||||
io_sethandler(0x0079, 0x0001, endeavor_brdconfig, NULL, NULL, NULL, NULL, NULL, NULL);
|
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);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
void intel_batman_init();
|
void intel_batman_init();
|
||||||
void intel_endeavor_init();
|
void intel_endeavor_init();
|
||||||
|
void intel_zappa_init();
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,9 @@ void *intel_flash_init(uint8_t type)
|
||||||
case ROM_PB570:
|
case ROM_PB570:
|
||||||
strcpy(flash_path, "pb570/");
|
strcpy(flash_path, "pb570/");
|
||||||
break;
|
break;
|
||||||
|
case ROM_ZAPPA:
|
||||||
|
strcpy(flash_path, "zappa/");
|
||||||
|
break;
|
||||||
case ROM_430VX:
|
case ROM_430VX:
|
||||||
strcpy(flash_path, "430vx/");
|
strcpy(flash_path, "430vx/");
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
14
src/mem.c
14
src/mem.c
|
|
@ -861,6 +861,20 @@ int loadbios()
|
||||||
fclose(f);
|
fclose(f);
|
||||||
biosmask = 0x1ffff;
|
biosmask = 0x1ffff;
|
||||||
return 1;
|
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");
|
printf("Failed to load ROM!\n");
|
||||||
if (f) fclose(f);
|
if (f) fclose(f);
|
||||||
|
|
|
||||||
16
src/model.c
16
src/model.c
|
|
@ -98,6 +98,7 @@ void at_t3100e_init();
|
||||||
void xt_t1000_init();
|
void xt_t1000_init();
|
||||||
void xt_t1200_init();
|
void xt_t1200_init();
|
||||||
void at_sl82c460_init();
|
void at_sl82c460_init();
|
||||||
|
void at_zappa_init();
|
||||||
int model;
|
int model;
|
||||||
|
|
||||||
int AMSTRAD, AT, PCI, TANDY;
|
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 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/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 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},
|
{"[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();
|
intel_endeavor_init();
|
||||||
device_add(&intel_flash_bxt_ami_device);
|
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()
|
void at_i430vx_init()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -299,6 +299,7 @@ void loadnvr()
|
||||||
return;
|
return;
|
||||||
case ROM_ELX_PC425X: f = nvrfopen("elx_pc425.nvr", "rb"); nvrmask = 127; break;
|
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_PB570: f = nvrfopen("pb570.nvr", "rb"); nvrmask = 127; break;
|
||||||
|
case ROM_ZAPPA: f = nvrfopen("zappa.nvr", "rb"); nvrmask = 127; break;
|
||||||
|
|
||||||
default: return;
|
default: return;
|
||||||
}
|
}
|
||||||
|
|
@ -383,6 +384,7 @@ void savenvr()
|
||||||
return;
|
return;
|
||||||
case ROM_ELX_PC425X: f = nvrfopen("elx_pc425.nvr", "wb"); break;
|
case ROM_ELX_PC425X: f = nvrfopen("elx_pc425.nvr", "wb"); break;
|
||||||
case ROM_PB570: f = nvrfopen("pb570.nvr", "wb"); break;
|
case ROM_PB570: f = nvrfopen("pb570.nvr", "wb"); break;
|
||||||
|
case ROM_ZAPPA: f = nvrfopen("zappa.nvr", "wb"); break;
|
||||||
|
|
||||||
default: return;
|
default: return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue