From 82a1f2908d56fdff211cad1a9b9c51dfccf16ca3 Mon Sep 17 00:00:00 2001 From: kotochi98 <185547947+kotochi98@users.noreply.github.com> Date: Sun, 18 Jan 2026 14:27:05 +0300 Subject: [PATCH] Add the Intel Classic R/R Plus (Monsoon) machine --- src/include/86box/machine.h | 1 + src/machine/m_at_socket2.c | 27 +++++++++++++++++++++++ src/machine/machine_table.c | 44 +++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index a7920bad0..92b448eeb 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -734,6 +734,7 @@ extern int machine_at_dell466np_init(const machine_t *); extern int machine_at_valuepoint433_init(const machine_t *); /* VLSI 82C480 */ +extern int machine_at_monsoon_init(const machine_t *); extern int machine_at_martin_init(const machine_t *); /* m_at_socket3.c */ diff --git a/src/machine/m_at_socket2.c b/src/machine/m_at_socket2.c index d338eddaf..d8fdd79f1 100644 --- a/src/machine/m_at_socket2.c +++ b/src/machine/m_at_socket2.c @@ -365,6 +365,33 @@ machine_at_valuepoint433_init(const machine_t *model) // hangs without the PS/2 } /* VLSI 82C480 */ +int +machine_at_monsoon_init(const machine_t *model) +{ + int ret; + + ret = bios_load_linear_combined("roms/machines/monsoon/1009AC0_.BIO", + "roms/machines/monsoon/1009AC0_.BI1", 0x1c000, 128); + + if (bios_only || !ret) + return ret; + + machine_at_common_init_ex(model, 2); + + device_add(&vl82c480_device); + device_add(&vl82c113_device); + + device_add(&ide_vlb_device); + device_add_params(&fdc37c6xx_device, (void *) (FDC37C651 | FDC37C6XX_IDE_PRI)); + + device_add(&intel_flash_bxt_device); + + if (gfxcard[0] == VID_INTERNAL) + device_add(machine_get_vid_device(machine)); + + return ret; +} + int machine_at_martin_init(const machine_t *model) { diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 9b7211d8c..b0048fef2 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -8450,6 +8450,50 @@ const machine_t machines[] = { .net_device = NULL }, /* Has a VLSI VL82C113A SCAMP Combination I/O which holds the KBC. */ + { + .name = "[VLSI 82C480] Intel Classic R/R Plus (Monsoon)", + .internal_name = "monsoon", + .type = MACHINE_TYPE_486_S2, + .chipset = MACHINE_CHIPSET_VLSI_VL82C480, + .init = machine_at_monsoon_init, + .p1_handler = machine_generic_p1_handler, + .gpio_handler = NULL, + .available_flag = MACHINE_AVAILABLE, + .gpio_acpi_handler = NULL, + .cpu = { + .package = CPU_PKG_SOCKET3, + .block = CPU_BLOCK_NONE, + .min_bus = 0, + .max_bus = 0, + .min_voltage = 0, + .max_voltage = 0, + .min_multi = 0, + .max_multi = 0 + }, + .bus_flags = MACHINE_PS2_VLB, + .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM, + .ram = { + .min = 2048, + .max = 32768, + .step = 2048 + }, + .nvrmask = 127, + .jumpered_ecp_dma = 0, + .default_jumpered_ecp_dma = -1, + .kbc_device = NULL, + .kbc_params = 0x00000000, + .kbc_p1 = 0x000004f0, + .gpio = 0xffffffff, + .gpio_acpi = 0xffffffff, + .device = NULL, + .kbd_device = NULL, + .fdc_device = NULL, + .sio_device = NULL, + .vid_device = &gd5428_vlb_onboard_device, + .snd_device = NULL, + .net_device = NULL + }, + /* Has a VLSI VL82C113A SCAMP Combination I/O which holds the KBC. */ { .name = "[VLSI 82C480] ZEOS Martin", .internal_name = "martin",