From 9047bd48784191920d8fccdb53ac1040ea0461b4 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Wed, 12 Feb 2025 05:44:59 -0500 Subject: [PATCH 1/3] Corrections to PCjr --- src/include/86box/machine.h | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index 78f4902eb..52af90581 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -48,7 +48,7 @@ #define MACHINE_BUS_AGP 0x00080000 /* sys has AGP bus */ #define MACHINE_BUS_AC97 0x00100000 /* sys has AC97 bus (ACR/AMR/CNR slot) */ /* Aliases. */ -#define MACHINE_CASSETTE (MACHINE_BUS_CASSETTE) /* sys has cassette port */ +#define MACHINE_CASSETTE (MACHINE_BUS_CASSETTE) /* sys has cassette port */ /* Combined flags. */ #define MACHINE_PC (MACHINE_BUS_ISA) /* sys is PC/XT-compatible (ISA) */ #define MACHINE_AT (MACHINE_BUS_ISA | MACHINE_BUS_ISA16) /* sys is AT-compatible (ISA + ISA16) */ @@ -67,18 +67,19 @@ #define MACHINE_AGP (MACHINE_BUS_AGP | MACHINE_PCI) /* sys is AT-compatible with AGP */ #define MACHINE_AGP98 (MACHINE_BUS_AGP | MACHINE_PCI98) /* sys is NEC PC-98x1 series with AGP (did that even exist?) */ -#define MACHINE_PC5150 (MACHINE_PC | MACHINE_CASSETTE) /* sys is IBM PC 5150 */ -#define MACHINE_PCJR (MACHINE_PC | MACHINE_CASSETTE | MACHINE_BUS_SIDECAR) /* sys is PCjr */ -#define MACHINE_PS2 (MACHINE_AT | MACHINE_BUS_PS2) /* sys is PS/2 */ -#define MACHINE_PS2_MCA (MACHINE_MCA | MACHINE_BUS_PS2) /* sys is MCA PS/2 */ -#define MACHINE_PS2_VLB (MACHINE_VLB | MACHINE_BUS_PS2) /* sys is VLB PS/2 */ -#define MACHINE_PS2_PCI (MACHINE_PCI | MACHINE_BUS_PS2) /* sys is PCI PS/2 */ -#define MACHINE_PS2_PCIV (MACHINE_PCIV | MACHINE_BUS_PS2) /* sys is VLB/PCI PS/2 */ -#define MACHINE_PS2_AGP (MACHINE_AGP | MACHINE_BUS_PS2) /* sys is AGP PS/2 */ -#define MACHINE_PS2_A97 (MACHINE_PS2_AGP | MACHINE_BUS_AC97) /* sys is AGP/AC97 PS/2 */ -#define MACHINE_PS2_NOISA (MACHINE_PS2_AGP & ~MACHINE_AT) /* sys is AGP PS/2 without ISA */ -#define MACHINE_PS2_PCIONLY (MACHINE_PS2_NOISA & ~MACHINE_BUS_AGP) /* sys is PCI PS/2 without ISA */ -#define MACHINE_PS2_NOI97 (MACHINE_PS2_A97 & ~MACHINE_AT) /* sys is AGP/AC97 PS/2 without ISA */ +#define MACHINE_PC5150 (MACHINE_PC | MACHINE_CASSETTE) /* sys is IBM PC 5150 */ +#define MACHINE_PCJR (MACHINE_CASSETTE | MACHINE_BUS_SIDECAR) /* sys is PCjr */ +#define MACHINE_PS2 (MACHINE_AT | MACHINE_BUS_PS2) /* sys is PS/2 */ +#define MACHINE_PS2_MCA (MACHINE_MCA | MACHINE_BUS_PS2) /* sys is MCA PS/2 */ +#define MACHINE_PS2_VLB (MACHINE_VLB | MACHINE_BUS_PS2) /* sys is VLB PS/2 */ +#define MACHINE_PS2_PCI (MACHINE_PCI | MACHINE_BUS_PS2) /* sys is PCI PS/2 */ +#define MACHINE_PS2_PCIV (MACHINE_PCIV | MACHINE_BUS_PS2) /* sys is VLB/PCI PS/2 */ +#define MACHINE_PS2_AGP (MACHINE_AGP | MACHINE_BUS_PS2) /* sys is AGP PS/2 */ +#define MACHINE_PS2_A97 (MACHINE_PS2_AGP | MACHINE_BUS_AC97) /* sys is AGP/AC97 PS/2 */ +#define MACHINE_PS2_NOISA (MACHINE_PS2_AGP & ~MACHINE_AT) /* sys is AGP PS/2 without ISA */ +#define MACHINE_PS2_PCIONLY (MACHINE_PS2_NOISA & ~MACHINE_BUS_AGP) /* sys is PCI PS/2 without ISA */ +#define MACHINE_PS2_NOI97 (MACHINE_PS2_A97 & ~MACHINE_AT) /* sys is AGP/AC97 PS/2 without ISA */ + /* Feature flags for miscellaneous internal devices. */ #define MACHINE_FLAGS_NONE 0x00000000 /* sys has no int devices */ #define MACHINE_SOFTFLOAT_ONLY 0x00000001 /* sys requires SoftFloat FPU */ From 62444f3da0189caeb065e9b77013011c63eec0d8 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Wed, 12 Feb 2025 06:01:18 -0500 Subject: [PATCH 2/3] Devices supported on PCjr PC Enterprises GameMaster, Resound jr (adlib) MS Booster/PC Enterprises jrBus-Mouse, PC Enterprises GameMaster (bus mouse) Various (generic) RTC Corel LS2000 SCSI --- src/device/isartc.c | 2 +- src/device/mouse_bus.c | 4 ++-- src/scsi/scsi_ncr53c400.c | 2 +- src/sound/snd_adlib.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/device/isartc.c b/src/device/isartc.c index 63ce0b065..5d6b4aea4 100644 --- a/src/device/isartc.c +++ b/src/device/isartc.c @@ -862,7 +862,7 @@ static const device_config_t mm58167_config[] = { static const device_t mm58167_device = { .name = "Generic MM58167 RTC", .internal_name = "rtc_mm58167", - .flags = DEVICE_ISA, + .flags = DEVICE_ISA | DEVICE_SIDECAR, .local = ISARTC_MM58167, .init = isartc_init, .close = isartc_close, diff --git a/src/device/mouse_bus.c b/src/device/mouse_bus.c index 7074a71ac..c81bc6aba 100644 --- a/src/device/mouse_bus.c +++ b/src/device/mouse_bus.c @@ -815,7 +815,7 @@ static const device_config_t ms_config[] = { const device_t mouse_logibus_device = { .name = "Logitech/Microsoft Bus Mouse", .internal_name = "logibus", - .flags = DEVICE_ISA, + .flags = DEVICE_ISA | DEVICE_SIDECAR, .local = MOUSE_TYPE_LOGIBUS, .init = bm_init, .close = bm_close, @@ -843,7 +843,7 @@ const device_t mouse_logibus_onboard_device = { const device_t mouse_msinport_device = { .name = "Microsoft Bus Mouse (InPort)", .internal_name = "msbus", - .flags = DEVICE_ISA, + .flags = DEVICE_ISA | DEVICE_SIDECAR, .local = MOUSE_TYPE_INPORT, .init = bm_init, .close = bm_close, diff --git a/src/scsi/scsi_ncr53c400.c b/src/scsi/scsi_ncr53c400.c index 10934880f..c83e75442 100644 --- a/src/scsi/scsi_ncr53c400.c +++ b/src/scsi/scsi_ncr53c400.c @@ -1024,7 +1024,7 @@ const device_t scsi_t130b_device = { const device_t scsi_ls2000_device = { .name = "Corel LS2000", .internal_name = "ls2000", - .flags = DEVICE_ISA, + .flags = DEVICE_ISA | DEVICE_SIDECAR, .local = ROM_LS2000, .init = ncr53c400_init, .close = ncr53c400_close, diff --git a/src/sound/snd_adlib.c b/src/sound/snd_adlib.c index 1f307596c..17990e842 100644 --- a/src/sound/snd_adlib.c +++ b/src/sound/snd_adlib.c @@ -145,7 +145,7 @@ adlib_close(void *priv) const device_t adlib_device = { .name = "AdLib", .internal_name = "adlib", - .flags = DEVICE_ISA, + .flags = DEVICE_ISA | DEVICE_SIDECAR, .local = 0, .init = adlib_init, .close = adlib_close, From 457601330d169c911d80fb2b18becbba4949a3d7 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Fri, 21 Feb 2025 20:15:26 -0500 Subject: [PATCH 3/3] Tag cassette_device correctly --- src/device/cassette.c | 2 +- src/include/86box/device.h | 1 + src/include/86box/machine.h | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/device/cassette.c b/src/device/cassette.c index ac79edff2..5cde2fbd0 100644 --- a/src/device/cassette.c +++ b/src/device/cassette.c @@ -715,7 +715,7 @@ cassette_init(UNUSED(const device_t *info)) const device_t cassette_device = { .name = "IBM PC/PCjr Cassette Device", .internal_name = "cassette", - .flags = 0, + .flags = DEVICE_CASETTE, .local = 0, .init = cassette_init, .close = cassette_close, diff --git a/src/include/86box/device.h b/src/include/86box/device.h index 1c3ef1ef3..4cc283a25 100644 --- a/src/include/86box/device.h +++ b/src/include/86box/device.h @@ -79,6 +79,7 @@ // #define CONFIG_STANDALONE 257 /* not available on the on-board variant */ enum { + DEVICE_CASETTE = 1, /* requires a Casette Port */ DEVICE_SIDECAR = 2, /* requires an IBM PCjr */ DEVICE_ISA = 4, /* requires the ISA bus */ DEVICE_XT_KBC = 8, /* requires an XT-compatible keyboard controller */ diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index 52af90581..b2e4c01f2 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -67,7 +67,7 @@ #define MACHINE_AGP (MACHINE_BUS_AGP | MACHINE_PCI) /* sys is AT-compatible with AGP */ #define MACHINE_AGP98 (MACHINE_BUS_AGP | MACHINE_PCI98) /* sys is NEC PC-98x1 series with AGP (did that even exist?) */ -#define MACHINE_PC5150 (MACHINE_PC | MACHINE_CASSETTE) /* sys is IBM PC 5150 */ +#define MACHINE_PC5150 (MACHINE_CASSETTE | MACHINE_PC) /* sys is IBM PC 5150 */ #define MACHINE_PCJR (MACHINE_CASSETTE | MACHINE_BUS_SIDECAR) /* sys is PCjr */ #define MACHINE_PS2 (MACHINE_AT | MACHINE_BUS_PS2) /* sys is PS/2 */ #define MACHINE_PS2_MCA (MACHINE_MCA | MACHINE_BUS_PS2) /* sys is MCA PS/2 */