diff --git a/src/ibm.h b/src/ibm.h index dd2d556..136f740 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -455,6 +455,7 @@ enum ROM_PB570, ROM_ZAPPA, ROM_PB520R, + ROM_COMPAQ_PIP, ROM_MAX }; diff --git a/src/mem.c b/src/mem.c index c9a9eb2..c3bcdb2 100644 --- a/src/mem.c +++ b/src/mem.c @@ -890,6 +890,14 @@ int loadbios() fclose(f); biosmask = 0x1ffff; return 1; + + case ROM_COMPAQ_PIP: + f=romfopen("compaq_pip/Compaq Portable Plus 100666-001 Rev C.bin","rb"); + if (!f) break; + romfread(rom + 0xE000, 8192, 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 27be47d..3981744 100644 --- a/src/model.c +++ b/src/model.c @@ -102,6 +102,7 @@ void at_sl82c460_init(); void at_zappa_init(); void at_pb520r_init(); void at_pb570_init(); +void compaq_pip_init(); int model; int AMSTRAD, AT, PCI, TANDY; @@ -110,6 +111,7 @@ MODEL models[] = { {"[8088] AMI XT clone", ROM_AMIXT, "amixt", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, xt_init, NULL}, {"[8088] Atari PC3", ROM_ATARIPC3, "ataripc3", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, xt_init, NULL}, + {"[8088] Compaq Portable Plus", ROM_COMPAQ_PIP, "compaq_pip", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, 0, 0, 128, 640, 64, compaq_pip_init, NULL}, {"[8088] DTK XT clone", ROM_DTKXT, "dtk", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, xt_init, NULL}, {"[8088] Generic XT clone", ROM_GENXT, "genxt", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 64, xt_init, NULL}, {"[8088] IBM PC", ROM_IBMPC, "ibmpc", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, 0, 0, 64, 640, 32, xt_init, NULL}, @@ -258,6 +260,14 @@ void xt_init() device_add(&gameport_device); } +void compaq_pip_init() +{ + xt_init(); + lpt1_remove(); + lpt2_remove(); + lpt1_init(0x3bc); +} + void pcjr_init() { mem_add_bios();