From 5167ba5b2dc4301e9d797f3ef57214d421313a2f Mon Sep 17 00:00:00 2001 From: SarahW Date: Mon, 12 Nov 2018 21:05:40 +0000 Subject: [PATCH] Added Tulip AT Compact. Patch from dns2kv2. --- src/ibm.h | 1 + src/mem_bios.c | 15 +++++++++++++++ src/model.c | 1 + src/nvr.c | 2 ++ 4 files changed, 19 insertions(+) diff --git a/src/ibm.h b/src/ibm.h index ccddb88..e24fe4a 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -462,6 +462,7 @@ enum ROM_XI8088, ROM_IBMPS2_M70_TYPE3, ROM_IBMPS2_M70_TYPE4, + ROM_TULIP_TC7, ROM_MAX }; diff --git a/src/mem_bios.c b/src/mem_bios.c index 26603e2..5e92146 100644 --- a/src/mem_bios.c +++ b/src/mem_bios.c @@ -919,6 +919,21 @@ int loadbios() fclose(f); biosmask = 0x1ffff; return 1; + + case ROM_TULIP_TC7: + f = romfopen("tulip_tc7/tc7be.bin", "rb"); + ff = romfopen("tulip_tc7/tc7bo.bin", "rb"); + if (!f || !ff) break; + for (c = 0x0000; c < 0x8000; c += 2) + { + rom[c] = getc(f); + rom[c + 1] = getc(ff); + } + fclose(ff); + fclose(f); + biosmask = 0x7fff; + return 1; + } printf("Failed to load ROM!\n"); if (f) fclose(f); diff --git a/src/model.c b/src/model.c index 3546d2d..36781a3 100644 --- a/src/model.c +++ b/src/model.c @@ -158,6 +158,7 @@ MODEL models[] = {"[286] Samsung SPC-4216P", ROM_SPC4216P, "spc4216p", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PS2|MODEL_HAS_IDE, 1, 5, 1, at_scat_init, NULL}, {"[286] Toshiba T3100e", ROM_T3100E, "t3100e", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_FIXED|MODEL_AT|MODEL_HAS_IDE, 1024, 5120, 256, at_t3100e_init, NULL}, {"[286] Trigem 286M", ROM_TG286M, "tg286m", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_HAS_IDE, 512, 8192, 128, at_headland_init, NULL}, + {"[286] Tulip AT Compact", ROM_TULIP_TC7, "tulip_tc7", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_HAS_IDE, 640,15872, 128, ibm_at_init, NULL}, {"[386SX] Acer 386SX25/N", ROM_ACER386, "acer386", { {"Intel", cpus_acer}, {"", NULL}, {"", NULL}}, MODEL_GFX_DISABLE_SW|MODEL_AT|MODEL_PS2|MODEL_HAS_IDE, 1, 16, 1, at_acer386sx_init, NULL}, {"[386SX] AMA-932J", ROM_AMA932J, "ama932j", { {"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}}, MODEL_GFX_FIXED|MODEL_AT|MODEL_HAS_IDE, 512, 8192, 128, at_headland_init, NULL}, diff --git a/src/nvr.c b/src/nvr.c index 045f373..843096f 100644 --- a/src/nvr.c +++ b/src/nvr.c @@ -310,6 +310,7 @@ void loadnvr() case ROM_XI8088: f = nvrfopen("xi8088.nvr", "rb"); nvrmask = 127; break; case ROM_IBMPS2_M70_TYPE3: f = nvrfopen("ibmps2_m70_type3.nvr","rb"); break; case ROM_IBMPS2_M70_TYPE4: f = nvrfopen("ibmps2_m70_type4.nvr","rb"); break; + case ROM_TULIP_TC7: f = nvrfopen("tulip_tc7.nvr", "rb"); break; default: return; } @@ -402,6 +403,7 @@ void savenvr() case ROM_XI8088: f = nvrfopen("xi8088.nvr", "wb"); break; case ROM_IBMPS2_M70_TYPE3: f = nvrfopen("ibmps2_m70_type3.nvr","wb"); break; case ROM_IBMPS2_M70_TYPE4: f = nvrfopen("ibmps2_m70_type4.nvr","wb"); break; + case ROM_TULIP_TC7: f = nvrfopen("tulip_tc7.nvr", "wb"); break; default: return; }