From 10732f6f026a3f7e8e71cfbe5172fecb6cd76f4a Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Wed, 18 Nov 2020 13:49:55 -0300 Subject: [PATCH] Restore special i486DX2 CPUs for the IBM PC 330 --- src/cpu/cpu.h | 15 ++++++++------- src/cpu/cpu_table.c | 18 ++++++++++++++---- src/machine/machine_table.c | 3 ++- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/cpu/cpu.h b/src/cpu/cpu.h index 2b8395be0..35850debb 100644 --- a/src/cpu/cpu.h +++ b/src/cpu/cpu.h @@ -101,13 +101,14 @@ enum { CPU_PKG_486DLC = (1 << 11), CPU_PKG_SOCKET1 = (1 << 12), CPU_PKG_SOCKET3 = (1 << 13), - CPU_PKG_STPC = (1 << 14), - CPU_PKG_SOCKET4 = (1 << 15), - CPU_PKG_SOCKET5_7 = (1 << 16), - CPU_PKG_SOCKET8 = (1 << 17), - CPU_PKG_SLOT1 = (1 << 18), - CPU_PKG_SLOT2 = (1 << 19), - CPU_PKG_SOCKET370 = (1 << 20) + CPU_PKG_SOCKET3_PC330 = (1 << 14), + CPU_PKG_STPC = (1 << 15), + CPU_PKG_SOCKET4 = (1 << 16), + CPU_PKG_SOCKET5_7 = (1 << 17), + CPU_PKG_SOCKET8 = (1 << 18), + CPU_PKG_SLOT1 = (1 << 19), + CPU_PKG_SLOT2 = (1 << 20), + CPU_PKG_SOCKET370 = (1 << 21) }; diff --git a/src/cpu/cpu_table.c b/src/cpu/cpu_table.c index cf0e4cd20..fc047d2a2 100644 --- a/src/cpu/cpu_table.c +++ b/src/cpu/cpu_table.c @@ -349,7 +349,17 @@ cpu_family_t cpu_families[] = { {"", 0} } }, { - .package = CPU_PKG_SOCKET3, + .package = CPU_PKG_SOCKET3_PC330, + .manufacturer = "Intel", + .name = "i486DX2", + .internal_name = "i486dx2_pc330", + .cpus = { + {"50", CPU_i486DX2, fpus_internal, 50000000, 2, 5000, 0x470, 0x470, 0, CPU_SUPPORTS_DYNAREC, 8, 8,6,6, 6}, + {"66", CPU_i486DX2, fpus_internal, 66666666, 2, 5000, 0x470, 0x470, 0, CPU_SUPPORTS_DYNAREC, 12,12,6,6, 8}, + {"", 0} + } + }, { + .package = CPU_PKG_SOCKET3 | CPU_PKG_SOCKET3_PC330, .manufacturer = "Intel", .name = "iDX4", .internal_name = "idx4", @@ -369,7 +379,7 @@ cpu_family_t cpu_families[] = { {"", 0} } }, { - .package = CPU_PKG_SOCKET3, /* PC330 = only DX2/50, DX2/66, DX4/75, DX4/100, POD63 and POD83 */ + .package = CPU_PKG_SOCKET3 | CPU_PKG_SOCKET3_PC330, .manufacturer = "Intel", .name = "Pentium OverDrive", .internal_name = "pentium_od_s3", @@ -971,7 +981,7 @@ static cpu_legacy_table_t cpus_i486S1[] = {{"idx4_od", 12, 0}, {"i486dx2", 9, 0} static cpu_legacy_table_t cpus_Am486S1[] = {{"am486dx2", 6, 0}, {"am486dx", 4, 0}, {"am486sx2", 2, 0}, {"am486sx", 0, 0}}; static cpu_legacy_table_t cpus_Cx486S1[] = {{"cx486dx2", 5, 0}, {"cx486dx", 3, 0}, {"cx486s", 0, 0}}; static cpu_legacy_table_t cpus_i486[] = {{"pentium_od_s3", 16, 0}, {"idx4_od", 14, 0}, {"idx4", 12, 0}, {"i486dx2", 9, 0}, {"i486dx", 6, 0}, {"i486sx2", 4, 0}, {"i486sx", 0, 0}}; -static cpu_legacy_table_t cpus_i486_PC330[] = {{"pentium_od_s3", 4, 0}, {"idx4", 2, 0}, {"i486dx2", 0, 1}}; +static cpu_legacy_table_t cpus_i486_PC330[] = {{"pentium_od_s3", 4, 0}, {"idx4", 2, 0}, {"i486dx2_pc330", 0, 0}}; static cpu_legacy_table_t cpus_Am486[] = {{"am5x86", 13, 0}, {"am486dx4", 9, 0}, {"am486dx2", 6, 0}, {"am486dx", 4, 0}, {"am486sx2", 2, 0}, {"am486sx", 0, 0}}; static cpu_legacy_table_t cpus_Cx486[] = {{"cx5x86", 10, 0}, {"cx486dx4", 8, 0}, {"cx486dx2", 5, 0}, {"cx486dx", 3, 0}, {"cx486s", 0, 0}}; static cpu_legacy_table_t cpus_STPCDX[] = {{"stpc_dx", 0, 0}}; @@ -1215,5 +1225,5 @@ cpu_legacy_machine_t cpu_legacy_table[] = { {"p6bap", {cpus_Celeron, cpus_Cyrix3}}, {"603tcf", {cpus_Celeron, cpus_Cyrix3}}, {"vpc2007", {cpus_PentiumIID, cpus_Celeron}}, - {NULL, NULL} + {NULL, {NULL}} }; diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 92bf58822..d7ea6d401 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -181,7 +181,8 @@ const machine_t machines[] = { { "[OPTi 495] Award 486 clone", "award486", MACHINE_TYPE_486, CPU_PKG_SOCKET1, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1, 32, 1, 127, machine_at_opti495_init, NULL }, { "[OPTi 495] Dataexpert SX495 (486)", "ami486", MACHINE_TYPE_486, CPU_PKG_SOCKET1, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1, 32, 1, 127, machine_at_opti495_ami_init, NULL }, { "[OPTi 495] MR 486 clone", "mr486", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1, 32, 1, 127, machine_at_opti495_mr_init, NULL }, - { "[OPTi 802G] IBM PC 330 (type 6571)", "pc330_6571", MACHINE_TYPE_486, CPU_PKG_SOCKET3, CPU_i486SX2|CPU_Am486SX2|CPU_Am486DX2|CPU_Cx486DX2|CPU_Am486DX4|CPU_Am5x86|CPU_Cx486DX4|CPU_Cx5x86, 25000000, 0, 0, 0, 2.0, 0, MACHINE_VLB | MACHINE_BUS_PS2 | MACHINE_IDE, 1, 64, 1, 127, machine_at_pc330_6571_init, NULL }, { "[OPTi 895] Jetway J-403TG", "403tg", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB, 1, 64, 1, 127, machine_at_403tg_init, NULL }, + { "[OPTi 802G] IBM PC 330 (type 6571)", "pc330_6571", MACHINE_TYPE_486, CPU_PKG_SOCKET3_PC330, 0, 25000000, 33333333, 0, 0, 2.0, 3.0, MACHINE_VLB | MACHINE_BUS_PS2 | MACHINE_IDE, 1, 64, 1, 127, machine_at_pc330_6571_init, NULL }, + { "[OPTi 895] Jetway J-403TG", "403tg", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB, 1, 64, 1, 127, machine_at_403tg_init, NULL }, { "[SiS 401] AMI 486 Clone", "sis401", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 1, 64, 1, 127, machine_at_sis401_init, NULL }, { "[SiS 461] IBM PS/ValuePoint 433DX/Si", "valuepoint433", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1, 64, 1, 127, machine_at_valuepoint433_init, NULL }, { "[SiS 471] AMI 486 Clone", "ami471", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1, 64, 1, 127, machine_at_ami471_init, NULL },