From ad44c454c99a4f31aff04740b47be0e7c64fee35 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Sun, 30 Apr 2023 21:52:58 +0200 Subject: [PATCH] Re-added the IBM PS/2 model 70 type 4 (Softfloat is always used in this machine). --- src/include/86box/machine.h | 1 + src/machine/m_ps2_mca.c | 21 +++++++++++++++++++ src/machine/machine_table.c | 42 +++++++++++++++++++++++++++++++++++-- 3 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index 4d1effe9a..4477c4781 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -770,6 +770,7 @@ extern int machine_ps2_model_65sx_init(const machine_t *); extern int machine_ps2_model_70_type3_init(const machine_t *); extern int machine_ps2_model_80_init(const machine_t *); extern int machine_ps2_model_80_axx_init(const machine_t *); +extern int machine_ps2_model_70_type4_init(const machine_t *); /* m_tandy.c */ extern int tandy1k_eeprom_read(void); diff --git a/src/machine/m_ps2_mca.c b/src/machine/m_ps2_mca.c index 328de216b..d867ddb24 100644 --- a/src/machine/m_ps2_mca.c +++ b/src/machine/m_ps2_mca.c @@ -1495,3 +1495,24 @@ machine_ps2_model_80_axx_init(const machine_t *model) return ret; } + +int +machine_ps2_model_70_type4_init(const machine_t *model) +{ + int ret; + + ret = bios_load_interleaved("roms/machines/ibmps2_m70_type4/64F3126.BIN", + "roms/machines/ibmps2_m70_type4/64F3125.BIN", + 0x000e0000, 131072, 0); + + if (bios_only || !ret) + return ret; + + machine_ps2_common_init(model); + + ps2.planar_id = 0xf9ff; + + ps2_mca_board_model_70_type34_init(1, 4); + + return ret; +} diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 244af7623..f089fe93e 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -5470,7 +5470,45 @@ const machine_t machines[] = { .snd_device = NULL, .net_device = NULL }, - + /* Has IBM PS/2 Type 1 KBC firmware. */ + { + .name = "[MCA] IBM PS/2 model 70 (type 4)", + .internal_name = "ibmps2_m70_type4", + .type = MACHINE_TYPE_486, + .chipset = MACHINE_CHIPSET_PROPRIETARY, + .init = machine_ps2_model_70_type4_init, + .pad = 0, + .pad0 = 0, + .pad1 = MACHINE_AVAILABLE, + .pad2 = 0, + .cpu = { + .package = CPU_PKG_SOCKET1, + .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_MCA, + .flags = MACHINE_VIDEO, + .ram = { + .min = 2048, + .max = 65536, + .step = 2048 + }, + .nvrmask = 63, + .kbc_device = NULL, + .kbc_p1 = 0, + .gpio = 0, + .device = NULL, + .fdc_device = NULL, + .sio_device = NULL, + .vid_device = NULL, + .snd_device = NULL, + .net_device = NULL + }, /* 486 machines - Socket 2 */ /* 486 machines with just the ISA slot */ /* Uses some variant of Phoenix MultiKey/42 as the BIOS sends keyboard controller @@ -12517,7 +12555,7 @@ const machine_t machines[] = { .min_voltage = 1300, .max_voltage = 3500, .min_multi = 1.5, - .max_multi = 8.0 /* limits assumed */ + .max_multi = 8.0 /* limits assumed */ }, .bus_flags = MACHINE_PS2_AGP, .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI,