diff --git a/src/ibm.h b/src/ibm.h index ed3aac2..45bf831 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -469,6 +469,7 @@ enum ROM_ZD_SUPERS, /* [8088] Zenith Data Systems SupersPort */ ROM_PB410A, ROM_PPC512, + ROM_BULL_MICRAL_45, ROM_MAX }; diff --git a/src/mem_bios.c b/src/mem_bios.c index 0f04f5f..2f0c8da 100644 --- a/src/mem_bios.c +++ b/src/mem_bios.c @@ -986,6 +986,19 @@ int loadbios() fclose(f); biosmask = 0x1ffff; return 1; + + case ROM_BULL_MICRAL_45: + f = romfopen("bull_micral_45/even.fil", "rb"); + ff = romfopen("bull_micral_45/odd.fil", "rb"); + if (!f || !ff) break; + for (c = 0x0000; c < 0x10000; c += 2) + { + rom[c] = getc(f); + rom[c+1] = getc(ff); + } + fclose(ff); + fclose(f); + return 1; } printf("Failed to load ROM!\n"); if (f) fclose(f); diff --git a/src/model.c b/src/model.c index 75c17fa..c2e225b 100644 --- a/src/model.c +++ b/src/model.c @@ -155,6 +155,7 @@ MODEL models[] = {"[286] AMI 286 clone", ROM_AMI286, "ami286", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_HAS_IDE, 512,16384, 128, at_neat_init, NULL}, {"[286] Award 286 clone", ROM_AWARD286, "award286", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_HAS_IDE, 512,16384, 128, at_scat_init, NULL}, + {"[286] Bull Micral 45", ROM_BULL_MICRAL_45, "bull_micral_45", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_HAS_IDE, 1024, 6144, 128, ibm_at_init, NULL}, {"[286] Commodore PC 30 III", ROM_CMDPC30, "cmdpc30", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_HAS_IDE, 640,16384, 128, at_cbm_init, NULL}, {"[286] Compaq Portable II", ROM_COMPAQ_PII, "compaq_pii", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_HAS_IDE, 256,15872, 128, ibm_at_init, NULL}, {"[286] DELL System 200", ROM_DELL200, "dells200", { {"", cpus_286}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT, 640,16384, 128, dells200_init, NULL}, diff --git a/src/nvr.c b/src/nvr.c index a09cb4d..f675742 100644 --- a/src/nvr.c +++ b/src/nvr.c @@ -323,6 +323,7 @@ void loadnvr() case ROM_IBMPS2_M70_TYPE4: f = nvrfopen("ibmps2_m70_type4.nvr","rb"); break; case ROM_TULIP_TC7: f = nvrfopen("tulip_tc7.nvr", "rb"); break; case ROM_PB410A: f = nvrfopen("pb410a.nvr", "rb"); nvrmask = 127; break; + case ROM_BULL_MICRAL_45: f = nvrfopen("bull_micral_45.nvr", "rb"); break; default: return; } @@ -421,6 +422,7 @@ void savenvr() case ROM_IBMPS2_M70_TYPE4: f = nvrfopen("ibmps2_m70_type4.nvr","wb"); break; case ROM_TULIP_TC7: f = nvrfopen("tulip_tc7.nvr", "wb"); break; case ROM_PB410A: f = nvrfopen("pb410a.nvr", "wb"); break; + case ROM_BULL_MICRAL_45: f = nvrfopen("bull_micral_45.nvr", "wb"); break; default: return; }