From 9b92305913f205ddea44cc297e96468688bb37be Mon Sep 17 00:00:00 2001 From: SarahW Date: Thu, 12 Mar 2020 18:14:41 +0000 Subject: [PATCH] Added Itautec Infoway Multim?dia emulation. Patch from EluanCM. --- src/ibm.h | 1 + src/intel_flash.c | 3 +++ src/mem_bios.c | 18 ++++++++++++++++++ src/model.c | 1 + src/nvr.c | 2 ++ 5 files changed, 25 insertions(+) diff --git a/src/ibm.h b/src/ibm.h index 54e1634..68cd837 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -259,6 +259,7 @@ enum ROM_ECS_386_32, ROM_LEDGE_MODELM, ROM_HYUNDAI_SUPER286TR, + ROM_ITAUTEC_INFOWAYM, ROM_MAX }; diff --git a/src/intel_flash.c b/src/intel_flash.c index 526d6f0..95285ee 100644 --- a/src/intel_flash.c +++ b/src/intel_flash.c @@ -188,6 +188,9 @@ void *intel_flash_init(uint8_t type) case ROM_P55T2P4: strcpy(flash_path, "p55t2p4/"); break; + case ROM_ITAUTEC_INFOWAYM: + strcpy(flash_path, "infowaym/"); + break; default: fatal("intel_flash_init on unsupported ROM set %i\n", romset); } diff --git a/src/mem_bios.c b/src/mem_bios.c index 6b44a01..c0e776e 100644 --- a/src/mem_bios.c +++ b/src/mem_bios.c @@ -921,6 +921,24 @@ int loadbios() biosmask = 0x1ffff; return 1; + // keep separate from generic Zappa because there is a BIOS logo + // in flash.bin + case ROM_ITAUTEC_INFOWAYM: + if (!rom_present("infowaym/gd5434.bin")) + break; + f = romfopen("infowaym/1006bs0_.bio", "rb"); + if (!f) break; + fseek(f, 0x80, SEEK_SET); + romfread(rom + 0x10000, 0x10000, 1, f); + fclose(f); + f = romfopen("infowaym/1006bs0_.bi1", "rb"); + if (!f) break; + fseek(f, 0x80, SEEK_SET); + romfread(rom, 0xd000, 1, f); + fclose(f); + biosmask = 0x1ffff; + return 1; + case ROM_PB520R: if (!rom_present("pb520r/gd5434.bin")) break; diff --git a/src/model.c b/src/model.c index 2a85479..a347159 100644 --- a/src/model.c +++ b/src/model.c @@ -223,6 +223,7 @@ MODEL models[] = {"[Socket 5] Intel Advanced/EV", ROM_ENDEAVOR, "endeavor", { {"Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_NONE|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}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 128, 1, at_zappa_init, NULL}, + {"[Socket 5] Itautec Infoway Multimidia", ROM_ITAUTEC_INFOWAYM, "infowaym",{ {"Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 8, 128, 1, at_zappa_init, NULL}, {"[Socket 5] Packard Bell PB570", ROM_PB570, "pb570", { {"Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_DISABLE_SW|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 128, 1, at_pb570_init, NULL}, {"[Socket 7] ASUS P/I-P55TVP4", ROM_P55TVP4, "p55tvp4", { {"Intel", cpus_Pentium}, {"AMD", cpus_K6_S7}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 8, 128, 1, at_p55tvp4_init, NULL}, diff --git a/src/nvr.c b/src/nvr.c index c5dbe9f..452937d 100644 --- a/src/nvr.c +++ b/src/nvr.c @@ -342,6 +342,7 @@ void loadnvr() 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; + case ROM_ITAUTEC_INFOWAYM: f = nvrfopen("infowaym.nvr", "rb"); nvrmask = 127; break; case ROM_PB520R: f = nvrfopen("pb520r.nvr", "rb"); nvrmask = 127; break; case ROM_XI8088: f = nvrfopen("xi8088.nvr", "rb"); nvrmask = 127; break; case ROM_IBMPS2_M70_TYPE3: f = nvrfopen("ibmps2_m70_type3.nvr","rb"); break; @@ -446,6 +447,7 @@ void savenvr() 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; + case ROM_ITAUTEC_INFOWAYM: f = nvrfopen("infowaym.nvr", "wb"); break; case ROM_PB520R: f = nvrfopen("pb520r.nvr", "wb"); break; case ROM_XI8088: f = nvrfopen("xi8088.nvr", "wb"); break; case ROM_IBMPS2_M70_TYPE3: f = nvrfopen("ibmps2_m70_type3.nvr","wb"); break;