From 46725ef6024c6e5e14fc6e7de5023c3eacd03893 Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 5 Aug 2025 01:35:05 +0200 Subject: [PATCH 1/6] Amstrad machines: Clean up all the left-overs of the old LPT code, fixes #5887. --- src/machine/m_amstrad.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/machine/m_amstrad.c b/src/machine/m_amstrad.c index d3ea20c6e..17bcb62bd 100644 --- a/src/machine/m_amstrad.c +++ b/src/machine/m_amstrad.c @@ -2247,7 +2247,7 @@ ams_write(uint16_t port, uint8_t val, void *priv) case 0x0378: case 0x0379: case 0x037a: - lpt_write(port, val, &lpt_ports[0]); + lpt_write(port, val, ams->lpt); break; case 0xdead: @@ -2267,7 +2267,7 @@ ams_read(uint16_t port, void *priv) switch (port) { case 0x0378: - ret = lpt_read(port, &lpt_ports[0]); + ret = lpt_read(port, ams->lpt); break; case 0x0379: /* printer control, also set LK1-3. @@ -2281,11 +2281,11 @@ ams_read(uint16_t port, void *priv) * 1 Italian Language. * 0 Diagnostic Mode. */ - ret = (lpt_read(port, &lpt_ports[0]) & 0xf8) | ams->language; + ret = (lpt_read(port, ams->lpt) & 0xf8) | ams->language; break; case 0x037a: /* printer status */ - ret = lpt_read(port, &lpt_ports[0]) & 0x1f; + ret = lpt_read(port, ams->lpt) & 0x1f; switch (ams->type) { case AMS_PC1512: From caf44716c4cbd86b8fd627970d9cfded2b0e6b23 Mon Sep 17 00:00:00 2001 From: MaxwellS04 Date: Tue, 5 Aug 2025 14:20:38 +0700 Subject: [PATCH 2/6] Memory Table Fixes for Four Machines According to their official manuals (except for AP-4100AA, which is assumed and does not have a manual on The Retro Web). --- src/machine/machine_table.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 5ed16fed3..88a8527fb 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -6458,7 +6458,7 @@ const machine_t machines[] = { .flags = MACHINE_APM, .ram = { .min = 1024, - .max = 49152, + .max = 65536, .step = 1024 }, .nvrmask = 127, @@ -8324,7 +8324,7 @@ const machine_t machines[] = { .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM, .ram = { .min = 1024, - .max = 32768, + .max = 131072, .step = 1024 }, .nvrmask = 127, @@ -8365,7 +8365,7 @@ const machine_t machines[] = { .flags = MACHINE_APM, .ram = { .min = 1024, - .max = 40960, + .max = 131072, .step = 1024 }, .nvrmask = 127, @@ -8704,8 +8704,8 @@ const machine_t machines[] = { .bus_flags = MACHINE_PS2, .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM, /* Has onboard video: C&T F65545 */ .ram = { - .min = 1024, - .max = 32768, + .min = 8192, + .max = 73728, .step = 1024 }, .nvrmask = 255, From 069708d49c14e1b6292dc3ff86c420ac597cbb24 Mon Sep 17 00:00:00 2001 From: linear cannon Date: Tue, 5 Aug 2025 08:02:16 -0400 Subject: [PATCH 3/6] Fix building on Haiku Various build issues on Haiku, mostly involving system headers having fields clobbered by cpu-related defines, can be fixed simply by including stdlib.h at the top of 86box.h. --- src/include/86box/86box.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h index 4494290d6..a8b0df1ee 100644 --- a/src/include/86box/86box.h +++ b/src/include/86box/86box.h @@ -25,6 +25,11 @@ #include #endif +#if defined(__HAIKU__) +/* Doesn't compile on Haiku without this include */ +#include +#endif + /* Configuration values. */ #define GFXCARD_MAX 2 #define SERIAL_MAX 8 From cfd311f0f136d404c86a138f934e996f5b1d4ecd Mon Sep 17 00:00:00 2001 From: 640KB <640kb@glabios.org> Date: Mon, 4 Aug 2025 20:26:31 -0400 Subject: [PATCH 4/6] MM58167 register index 0x0 and 0x5 are also half-registers Related to https://github.com/86Box/86Box/issues/3347 0x0 and 0x8 low nibbles are always 0 0x5 and 0xd high nibbles are always 0 --- src/device/isartc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/device/isartc.c b/src/device/isartc.c index 2eaf4c5bd..3e488f8db 100644 --- a/src/device/isartc.c +++ b/src/device/isartc.c @@ -410,6 +410,7 @@ mm67_read(uint16_t port, void *priv) break; case MM67_AL_MSEC: + case MM67_MSEC: ret = dev->nvr.regs[reg] & 0xf0; break; @@ -417,6 +418,10 @@ mm67_read(uint16_t port, void *priv) ret = dev->nvr.regs[reg] & 0x0f; break; + case MM67_DOW: + ret = dev->nvr.regs[reg] & 0x07; + break; + default: ret = dev->nvr.regs[reg]; break; From 5eb4e9ed5a6e15f32e609b576b157b5c153171da Mon Sep 17 00:00:00 2001 From: 640KB <640kb@glabios.org> Date: Tue, 5 Aug 2025 14:11:49 -0400 Subject: [PATCH 5/6] Update GLaTICK ROM links Updates GLaTICK 0.8.8 to 86B version that correctly sync's year with 86Box time synchronization. --- src/device/isartc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/device/isartc.c b/src/device/isartc.c index 3e488f8db..664793db3 100644 --- a/src/device/isartc.c +++ b/src/device/isartc.c @@ -92,8 +92,8 @@ #define ISARTC_MPLUS2 5 #define ISARTC_MM58167 10 -#define ISARTC_ROM_MM58167_1 "roms/rtc/glatick/GLaTICK_0.8.5_NS_RP.ROM" -#define ISARTC_ROM_MM58167_2 "roms/rtc/glatick/GLaTICK_0.8.5_86B.ROM" +#define ISARTC_ROM_MM58167_1 "roms/rtc/glatick/GLaTICK_0.8.8_NS_86B.ROM" /* Generic 58167, AST or EV-170 */ +#define ISARTC_ROM_MM58167_2 "roms/rtc/glatick/GLaTICK_0.8.8_NS_86B2.ROM" /* PII-147 */ #define ISARTC_DEBUG 0 From 57266e7eef15c61d9b204cda533c20d614456792 Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 5 Aug 2025 21:13:28 +0200 Subject: [PATCH 6/6] Network Switch: Changed a += to + where it was probably intended to be +. --- src/network/netswitch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/netswitch.c b/src/network/netswitch.c index 2ca9ec454..54815a682 100644 --- a/src/network/netswitch.c +++ b/src/network/netswitch.c @@ -454,7 +454,7 @@ ns_send_pb(NSCONN *conn, const netpkt_t *packet,int flags) { conn->stats.max_tx_packet = nc; } if(nc > MAX_FRAME_SEND_SIZE) { - conn->stats.total_fragments = fragment_count > 1 ? conn->stats.total_fragments += fragment_count : conn->stats.total_fragments; + conn->stats.total_fragments = fragment_count > 1 ? conn->stats.total_fragments + fragment_count : conn->stats.total_fragments; } conn->stats.total_tx_packets++; memcpy(conn->stats.last_tx_ethertype, &packet->data[12], 2);