From 90c8d0939c81e934afd6270987d16a908be236f4 Mon Sep 17 00:00:00 2001 From: SarahW Date: Mon, 12 Feb 2018 12:37:21 +0000 Subject: [PATCH] Added Packard Bell Legend 300SX. Patch from dns2kv2. --- src/ibm.h | 1 + src/mem.c | 8 ++++++++ src/model.c | 7 +++++++ src/model.h | 2 +- src/nvr.c | 2 ++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/ibm.h b/src/ibm.h index 70990a9..adea934 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -447,6 +447,7 @@ enum ROM_T3100E, ROM_T1000, ROM_T1200, + ROM_PB_L300SX, ROM_MAX }; diff --git a/src/mem.c b/src/mem.c index dcf4cdc..960370b 100644 --- a/src/mem.c +++ b/src/mem.c @@ -791,6 +791,14 @@ int loadbios() biosmask = 0x7fff; fclose(f); return 1; + + case ROM_PB_L300SX: + f = romfopen("pb_l300sx/pb_l300sx.bin", "rb"); + if (!f) break; + romfread(rom, 65536, 1, f); + 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 e2504f1..6f2e63d 100644 --- a/src/model.c +++ b/src/model.c @@ -71,6 +71,7 @@ void ibm_at_init(); void at_cbm_init(); void dells200_init(); void deskpro386_init(); +void pb_l300sx_init(); void ps1_m2011_init(); void ps1_m2121_init(); void ps2_m30_286_init(); @@ -148,6 +149,7 @@ MODEL models[] = {"[386SX] IBM PS/1 model 2121", ROM_IBMPS1_2121, "ibmps1_2121", { {"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}}, 1, MODEL_AT|MODEL_PS2|MODEL_HAS_IDE, 1, 16, 1, ps1_m2121_init, NULL}, {"[386SX] IBM PS/2 Model 55SX", ROM_IBMPS2_M55SX, "ibmps2_m55sx", { {"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}}, 1, MODEL_AT|MODEL_PS2|MODEL_MCA, 1, 8, 1, ps2_model_55sx_init, NULL}, {"[386SX] KMX-C-02", ROM_KMXC02, "kmxc02", { {"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}}, 0, MODEL_AT , 512,16384,512, at_scatsx_init, NULL}, + {"[386SX] Packard Bell Legend 300SX", ROM_PB_L300SX, "pb_l300sx", { {"Intel", cpus_i386SX}, {"AMD", cpus_Am386SX}, {"Cyrix", cpus_486SLC}}, 0, MODEL_AT|MODEL_PS2|MODEL_HAS_IDE, 1, 16, 1, pb_l300sx_init, NULL}, {"[386DX] AMI 386DX clone", ROM_AMI386DX_OPTI495, "ami386dx", { {"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}}, 0, MODEL_AT|MODEL_HAS_IDE, 1, 256, 1, at_opti495_init, NULL}, {"[386DX] Compaq Deskpro 386", ROM_DESKPRO_386, "deskpro386", { {"Intel", cpus_i386DX}, {"AMD", cpus_Am386DX}, {"Cyrix", cpus_486DLC}}, 0, MODEL_AT, 1, 15, 1, deskpro386_init, NULL}, @@ -490,6 +492,11 @@ void at_ali1429_init() ali1429_init(); } +void pb_l300sx_init() +{ + at_init(); +} + void at_sis496_init() { at_init(); diff --git a/src/model.h b/src/model.h index 4c23cb1..6c94345 100644 --- a/src/model.h +++ b/src/model.h @@ -8,7 +8,7 @@ typedef struct { - char name[32]; + char name[64]; int id; char internal_name[24]; struct diff --git a/src/nvr.c b/src/nvr.c index 25dd137..847cebf 100644 --- a/src/nvr.c +++ b/src/nvr.c @@ -286,6 +286,7 @@ void loadnvr() case ROM_AMI386DX_OPTI495: f = nvrfopen("ami386dx_opti495.nvr", "rb"); nvrmask = 127; break; case ROM_EPSON_PCAX: f = nvrfopen("epson_pcax.nvr", "rb"); nvrmask = 127; break; case ROM_EPSON_PCAX2E: f = nvrfopen("epson_pcax2e.nvr", "rb"); nvrmask = 127; break; + case ROM_PB_L300SX: f = nvrfopen("pb_l300sx.nvr", "rb"); nvrmask = 127; break; case ROM_EPSON_PCAX3: f = nvrfopen("epson_pcax3.nvr", "rb"); nvrmask = 127; break; case ROM_T3100E: f = nvrfopen("t3100e.nvr", "rb"); break; case ROM_T1000: tc8521_loadnvr(); @@ -367,6 +368,7 @@ void savenvr() case ROM_EPSON_PCAX: f = nvrfopen("epson_pcax.nvr", "wb"); break; case ROM_EPSON_PCAX2E: f = nvrfopen("epson_pcax2e.nvr", "wb"); break; case ROM_EPSON_PCAX3: f = nvrfopen("epson_pcax3.nvr", "wb"); break; + case ROM_PB_L300SX: f = nvrfopen("pb_l300sx.nvr", "wb"); break; case ROM_T3100E: f = nvrfopen("t3100e.nvr", "wb"); break; case ROM_T1000: tc8521_savenvr(); t1000_configsys_savenvr();