From 63419b0b29b06134fcd2ae603d32efbeccbc619e Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Wed, 14 Apr 2021 17:43:59 -0300 Subject: [PATCH 01/14] Add DPMS support to Trident TGUI --- src/video/vid_tgui9440.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/video/vid_tgui9440.c b/src/video/vid_tgui9440.c index a23fe789d..9dd5fe081 100644 --- a/src/video/vid_tgui9440.c +++ b/src/video/vid_tgui9440.c @@ -322,6 +322,11 @@ void tgui_out(uint16_t addr, uint8_t val, void *p) break; case 0x3CF: + if (svga->gdcaddr == 0x23) + { + svga->dpms = !!(val & 0x03); + svga_recalctimings(svga); + } if (tgui->type == TGUI_9400CXI && svga->gdcaddr >= 16 && svga->gdcaddr < 32) { old = tgui->ext_gdc_regs[svga->gdcaddr & 15]; From 023917f8c05a602b5e62a0fd65a968880b3ebedd Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Fri, 16 Apr 2021 16:20:46 -0300 Subject: [PATCH 02/14] Fix machine table indentation --- src/machine/machine_table.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 13f76feb2..a4a6b98c6 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -85,9 +85,9 @@ const machine_t machines[] = { { "[8088] VTech Laser Turbo XT", "ltxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 256, 0, machine_xt_laserxt_init, NULL }, #endif { "[8088] Xi8088", "xi8088", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2, 64, 1024, 128, 127, machine_xt_xi8088_init, xi8088_get_device }, - { "[8088] Zenith Data Systems Z-151/152/161", "zdsz151", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_z151_init, NULL }, + { "[8088] Zenith Data Systems Z-151/152/161","zdsz151", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_z151_init, NULL }, { "[8088] Zenith Data Systems Z-159", "zdsz159", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_z159_init, NULL }, - { "[8088] Zenith Data Systems SupersPort (Z-184)", "zdsupers", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 128, 640, 128, 0, machine_xt_z184_init, z184_get_device }, + { "[8088] Zenith Data Systems SupersPort (Z-184)","zdsupers", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 128, 640, 128, 0, machine_xt_z184_init, z184_get_device }, { "[GC100A] Philips P3120", "p3120", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_XTA, 256, 768, 256, 0, machine_xt_p3120_init, NULL }, /* 8086 Machines */ @@ -285,11 +285,11 @@ const machine_t machines[] = { { "[i430FX] PC Partner MB500N", "mb500n", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_mb500n_init, NULL }, /* OPTi 596/597 */ - { "[OPTi 597] TMC PAT54PV", "pat54pv", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, CPU_BLOCK(CPU_K5, CPU_5K86), 50000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_VLB, 2048, 65536, 2048, 127, machine_at_pat54pv_init, NULL }, + { "[OPTi 597] TMC PAT54PV", "pat54pv", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, CPU_BLOCK(CPU_K5, CPU_5K86), 50000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_VLB, 2048, 65536, 2048, 127, machine_at_pat54pv_init, NULL }, /* OPTi 596/597/822 */ - { "[OPTi 597] Shuttle HOT-543", "hot543", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_hot543_init, NULL }, - { "[OPTi 597] Supermicro P54VL-PCI", "p54vl", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_p54vl_init, NULL }, + { "[OPTi 597] Shuttle HOT-543", "hot543", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_hot543_init, NULL }, + { "[OPTi 597] Supermicro P54VL-PCI", "p54vl", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_p54vl_init, NULL }, /* SiS 85C50x */ { "[SiS 85C50x] ASUS PCI/I-P54SP4", "p54sp4", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, CPU_BLOCK(CPU_K5, CPU_5K86), 40000000, 66666667, 3380, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_p54sp4_init, NULL }, @@ -377,7 +377,7 @@ const machine_t machines[] = { /* Socket 8 machines */ /* 450KX */ #if defined(DEV_BRANCH) && defined(USE_I450KX) - { "[i450KX] ASUS P/I-P6RP4", "p6rp4", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.0, 4.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,524288, 8192, 127, machine_at_p6rp4_init, NULL }, + { "[i450KX] ASUS P/I-P6RP4", "p6rp4", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.0, 4.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_p6rp4_init, NULL }, #endif /* 440FX */ From 4c46d21924b1c05bb74eb240b8234589a2ee8a37 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 16:22:00 -0300 Subject: [PATCH 03/14] Clean up 450KX formatting --- src/chipset/intel_i450kx.c | 585 +++++++++++++++++++------------------ src/machine/m_at_socket8.c | 2 +- 2 files changed, 298 insertions(+), 289 deletions(-) diff --git a/src/chipset/intel_i450kx.c b/src/chipset/intel_i450kx.c index 3435dc8ae..5a89f2659 100644 --- a/src/chipset/intel_i450kx.c +++ b/src/chipset/intel_i450kx.c @@ -32,14 +32,13 @@ i450GX is way more popular of an option but needs more stuff. #include <86box/timer.h> #include <86box/io.h> #include <86box/device.h> - #include <86box/mem.h> #include <86box/pci.h> #include <86box/smram.h> #include <86box/spd.h> - #include <86box/chipset.h> + #ifdef ENABLE_450KX_LOG int i450kx_do_log = ENABLE_450KX_LOG; static void @@ -49,15 +48,16 @@ i450kx_log(const char *fmt, ...) if (i450kx_do_log) { - va_start(ap, fmt); - pclog_ex(fmt, ap); - va_end(ap); + va_start(ap, fmt); + pclog_ex(fmt, ap); + va_end(ap); } } #else #define i450kx_log(fmt, ...) #endif + /* Shadow RAM Flags */ #define LSB_DECISION (((shadow_value & 1) ? MEM_READ_EXTANY : MEM_READ_INTERNAL) | ((shadow_value & 2) ? MEM_WRITE_EXTANY : MEM_WRITE_INTERNAL)) #define MSB_DECISION (((shadow_value & 0x10) ? MEM_READ_EXTANY : MEM_READ_INTERNAL) | ((shadow_value & 0x20) ? MEM_WRITE_EXTANY : MEM_WRITE_INTERNAL)) @@ -74,220 +74,222 @@ i450kx_log(const char *fmt, ...) #define ENABLE_SEGMENT (MEM_READ_EXTANY | MEM_WRITE_EXTANY) #define DISABLE_SEGMENT (MEM_READ_DISABLED | MEM_WRITE_DISABLED) -typedef struct i450kx_t -{ + +typedef struct i450kx_t { smram_t *smram; uint8_t pb_pci_conf[256], mc_pci_conf[256]; } i450kx_t; -void i450kx_shadow(int is_mc, int cur_reg, uint8_t shadow_value, i450kx_t *dev) + +static void +i450kx_shadow(int is_mc, int cur_reg, uint8_t shadow_value, i450kx_t *dev) { - if (cur_reg == 0x59) - { - mem_set_mem_state_both(0x80000, 0x20000, (is_mc) ? LSB_DECISION_MC : LSB_DECISION); - mem_set_mem_state_both(0xf0000, 0x10000, (is_mc) ? MSB_DECISION_MC : MSB_DECISION); - } - else - { - mem_set_mem_state_both(0xc0000 + (((cur_reg & 7) - 2) * 0x8000), 0x4000, (is_mc) ? LSB_DECISION_MC : LSB_DECISION); - mem_set_mem_state_both(0xc4000 + (((cur_reg & 7) - 2) * 0x8000), 0x4000, (is_mc) ? MSB_DECISION_MC : MSB_DECISION); + if (cur_reg == 0x59) { + mem_set_mem_state_both(0x80000, 0x20000, (is_mc) ? LSB_DECISION_MC : LSB_DECISION); + mem_set_mem_state_both(0xf0000, 0x10000, (is_mc) ? MSB_DECISION_MC : MSB_DECISION); + } else { + mem_set_mem_state_both(0xc0000 + (((cur_reg & 7) - 2) * 0x8000), 0x4000, (is_mc) ? LSB_DECISION_MC : LSB_DECISION); + mem_set_mem_state_both(0xc4000 + (((cur_reg & 7) - 2) * 0x8000), 0x4000, (is_mc) ? MSB_DECISION_MC : MSB_DECISION); } flushmmucache_nopc(); } -void i450kx_smm(uint32_t smram_addr, uint32_t smram_size, i450kx_t *dev) + +static void +i450kx_smm(uint32_t smram_addr, uint32_t smram_size, i450kx_t *dev) { smram_disable_all(); if ((smram_addr != 0) && !!(dev->mc_pci_conf[0x57] & 8)) - smram_enable(dev->smram, smram_addr, smram_addr, smram_size, !!(dev->pb_pci_conf[0x57] & 8), 1); + smram_enable(dev->smram, smram_addr, smram_addr, smram_size, !!(dev->pb_pci_conf[0x57] & 8), 1); flushmmucache(); } + static void pb_write(int func, int addr, uint8_t val, void *priv) { i450kx_t *dev = (i450kx_t *)priv; - switch (addr) - { - case 0x04: - dev->pb_pci_conf[addr] &= val & 0xd7; - break; + switch (addr) { + case 0x04: + dev->pb_pci_conf[addr] &= val & 0xd7; + break; - case 0x06: - dev->pb_pci_conf[addr] = val & 0x80; - break; + case 0x06: + dev->pb_pci_conf[addr] = val & 0x80; + break; - case 0x07: - case 0x0d: - dev->pb_pci_conf[addr] = val; - break; + case 0x07: + case 0x0d: + dev->pb_pci_conf[addr] = val; + break; - case 0x0f: - dev->pb_pci_conf[addr] = val & 0xcf; - break; + case 0x0f: + dev->pb_pci_conf[addr] = val & 0xcf; + break; - case 0x40: - case 0x41: - dev->pb_pci_conf[addr] = val; - break; + case 0x40: + case 0x41: + dev->pb_pci_conf[addr] = val; + break; - case 0x43: - dev->pb_pci_conf[addr] = val & 0x80; - break; + case 0x43: + dev->pb_pci_conf[addr] = val & 0x80; + break; - case 0x48: - dev->pb_pci_conf[addr] = val & 6; - break; + case 0x48: + dev->pb_pci_conf[addr] = val & 6; + break; - case 0x4a: - case 0x4b: - dev->pb_pci_conf[addr] = val; - break; + case 0x4a: + case 0x4b: + dev->pb_pci_conf[addr] = val; + break; - case 0x4c: - dev->pb_pci_conf[addr] = val & 0xd8; - break; + case 0x4c: + dev->pb_pci_conf[addr] = val & 0xd8; + break; - case 0x53: - dev->pb_pci_conf[addr] = val & 2; - break; + case 0x53: + dev->pb_pci_conf[addr] = val & 2; + break; - case 0x54: - dev->pb_pci_conf[addr] = val & 0x7b; - break; + case 0x54: + dev->pb_pci_conf[addr] = val & 0x7b; + break; - case 0x55: - dev->pb_pci_conf[addr] = val & 2; - break; + case 0x55: + dev->pb_pci_conf[addr] = val & 2; + break; - case 0x57: - dev->pb_pci_conf[addr] = val & 8; - i450kx_smm(SMRAM_ADDR, SMRAM_SIZE, dev); - break; + case 0x57: + dev->pb_pci_conf[addr] = val & 8; + i450kx_smm(SMRAM_ADDR, SMRAM_SIZE, dev); + break; - case 0x58: - dev->pb_pci_conf[addr] = val & 2; - mem_set_mem_state_both(0xa0000, 0x20000, (val & 2) ? ENABLE_SEGMENT : DISABLE_SEGMENT); - break; + case 0x58: + dev->pb_pci_conf[addr] = val & 2; + mem_set_mem_state_both(0xa0000, 0x20000, (val & 2) ? ENABLE_SEGMENT : DISABLE_SEGMENT); + break; - case 0x59: - case 0x5a: - case 0x5b: - case 0x5c: - case 0x5d: - case 0x5e: - case 0x5f: - dev->pb_pci_conf[addr] = val & 0x33; - i450kx_shadow(0, addr, val, dev); - break; + case 0x59: + case 0x5a: + case 0x5b: + case 0x5c: + case 0x5d: + case 0x5e: + case 0x5f: + dev->pb_pci_conf[addr] = val & 0x33; + i450kx_shadow(0, addr, val, dev); + break; - case 0x70: - dev->pb_pci_conf[addr] = val & 0xfc; - break; + case 0x70: + dev->pb_pci_conf[addr] = val & 0xfc; + break; - case 0x71: - dev->pb_pci_conf[addr] = val & 0x71; - break; + case 0x71: + dev->pb_pci_conf[addr] = val & 0x71; + break; - case 0x78: - dev->pb_pci_conf[addr] = val & 0xf0; - break; + case 0x78: + dev->pb_pci_conf[addr] = val & 0xf0; + break; - case 0x79: - dev->pb_pci_conf[addr] = val & 0xfc; - break; + case 0x79: + dev->pb_pci_conf[addr] = val & 0xfc; + break; - case 0x7c: - dev->pb_pci_conf[addr] = val & 0x5f; - break; + case 0x7c: + dev->pb_pci_conf[addr] = val & 0x5f; + break; - case 0x7d: - dev->pb_pci_conf[addr] = val & 0x1a; - break; + case 0x7d: + dev->pb_pci_conf[addr] = val & 0x1a; + break; - case 0x7e: - dev->pb_pci_conf[addr] = val & 0xf0; - break; + case 0x7e: + dev->pb_pci_conf[addr] = val & 0xf0; + break; - case 0x7f: - case 0x88: - case 0x89: - case 0x8a: - dev->pb_pci_conf[addr] = val; - break; + case 0x7f: + case 0x88: + case 0x89: + case 0x8a: + dev->pb_pci_conf[addr] = val; + break; - case 0x8b: - dev->pb_pci_conf[addr] = val & 0x80; - break; + case 0x8b: + dev->pb_pci_conf[addr] = val & 0x80; + break; - case 0x9c: - dev->pb_pci_conf[addr] = val & 1; - break; + case 0x9c: + dev->pb_pci_conf[addr] = val & 1; + break; - case 0xa4: - dev->pb_pci_conf[addr] = val & 0xf9; - break; + case 0xa4: + dev->pb_pci_conf[addr] = val & 0xf9; + break; - case 0xa5: - case 0xa6: - dev->pb_pci_conf[addr] = val; - break; + case 0xa5: + case 0xa6: + dev->pb_pci_conf[addr] = val; + break; - case 0xa7: - dev->pb_pci_conf[addr] = val & 0x0f; - break; + case 0xa7: + dev->pb_pci_conf[addr] = val & 0x0f; + break; - case 0xb0: - dev->pb_pci_conf[addr] = val & 0xe0; - break; + case 0xb0: + dev->pb_pci_conf[addr] = val & 0xe0; + break; - case 0xb1: - dev->pb_pci_conf[addr] = val & 0x1f; - break; + case 0xb1: + dev->pb_pci_conf[addr] = val & 0x1f; + break; - case 0xb4: - dev->pb_pci_conf[addr] = val & 0xe8; - break; + case 0xb4: + dev->pb_pci_conf[addr] = val & 0xe8; + break; - case 0xb5: - dev->pb_pci_conf[addr] = val & 0x1f; - break; + case 0xb5: + dev->pb_pci_conf[addr] = val & 0x1f; + break; - case 0xb8: - case 0xb9: - case 0xbb: - dev->pb_pci_conf[addr] = !(addr == 0xbb) ? val : (val & 0xf0); - i450kx_smm(SMRAM_ADDR, SMRAM_SIZE, dev); - break; + case 0xb8: + case 0xb9: + case 0xbb: + dev->pb_pci_conf[addr] = !(addr == 0xbb) ? val : (val & 0xf0); + i450kx_smm(SMRAM_ADDR, SMRAM_SIZE, dev); + break; - case 0xc4: - dev->pb_pci_conf[addr] = val & 5; - break; + case 0xc4: + dev->pb_pci_conf[addr] = val & 5; + break; - case 0xc5: - dev->pb_pci_conf[addr] = val & 0x0a; - break; + case 0xc5: + dev->pb_pci_conf[addr] = val & 0x0a; + break; - case 0xc6: - dev->pb_pci_conf[addr] = val & 0x1d; - break; + case 0xc6: + dev->pb_pci_conf[addr] = val & 0x1d; + break; - case 0xc8: - dev->pb_pci_conf[addr] = val & 0x1f; - break; + case 0xc8: + dev->pb_pci_conf[addr] = val & 0x1f; + break; - case 0xca: - case 0xcb: - dev->pb_pci_conf[addr] = val; - break; + case 0xca: + case 0xcb: + dev->pb_pci_conf[addr] = val; + break; } i450kx_log("i450KX-PB: dev->regs[%02x] = %02x POST: %02x\n", addr, dev->pb_pci_conf[addr], inb(0x80)); } + static uint8_t pb_read(int func, int addr, void *priv) { @@ -295,6 +297,7 @@ pb_read(int func, int addr, void *priv) return dev->pb_pci_conf[addr]; } + static void mc_write(int func, int addr, uint8_t val, void *priv) { @@ -302,171 +305,172 @@ mc_write(int func, int addr, uint8_t val, void *priv) switch (addr) { - case 0x4c: - dev->mc_pci_conf[addr] = val & 0xdf; - break; + case 0x4c: + dev->mc_pci_conf[addr] = val & 0xdf; + break; - case 0x4d: - dev->mc_pci_conf[addr] = val & 0xdf; - break; + case 0x4d: + dev->mc_pci_conf[addr] = val & 0xdf; + break; - case 0x57: - dev->mc_pci_conf[addr] = val & 8; - i450kx_smm(SMRAM_ADDR, SMRAM_SIZE, dev); - break; + case 0x57: + dev->mc_pci_conf[addr] = val & 8; + i450kx_smm(SMRAM_ADDR, SMRAM_SIZE, dev); + break; - case 0x58: - dev->mc_pci_conf[addr] = val & 2; - break; + case 0x58: + dev->mc_pci_conf[addr] = val & 2; + break; - case 0x59: - case 0x5a: - case 0x5b: - case 0x5c: - case 0x5d: - case 0x5e: - case 0x5f: - dev->mc_pci_conf[addr] = val & 0x33; - i450kx_shadow(1, addr, val, dev); - break; + case 0x59: + case 0x5a: + case 0x5b: + case 0x5c: + case 0x5d: + case 0x5e: + case 0x5f: + dev->mc_pci_conf[addr] = val & 0x33; + i450kx_shadow(1, addr, val, dev); + break; - case 0x60: - case 0x61: - case 0x62: - case 0x63: - case 0x64: - case 0x65: - case 0x66: - case 0x67: - case 0x68: - case 0x69: - case 0x6a: - case 0x6b: - case 0x6c: - case 0x6d: - case 0x6e: - case 0x6f: - dev->mc_pci_conf[addr] = ((addr & 0x0f) % 2) ? 0 : (val & 0x7f); - spd_write_drbs(dev->mc_pci_conf, 0x60, 0x6f, 4); - break; + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6a: + case 0x6b: + case 0x6c: + case 0x6d: + case 0x6e: + case 0x6f: + dev->mc_pci_conf[addr] = ((addr & 0x0f) % 2) ? 0 : (val & 0x7f); + spd_write_drbs(dev->mc_pci_conf, 0x60, 0x6f, 4); + break; - case 0x74: - case 0x75: - case 0x76: - case 0x77: - dev->mc_pci_conf[addr] = val; - break; + case 0x74: + case 0x75: + case 0x76: + case 0x77: + dev->mc_pci_conf[addr] = val; + break; - case 0x78: - dev->mc_pci_conf[addr] = val & 0xf0; - break; + case 0x78: + dev->mc_pci_conf[addr] = val & 0xf0; + break; - case 0x79: - dev->mc_pci_conf[addr] = val & 0xfe; - break; + case 0x79: + dev->mc_pci_conf[addr] = val & 0xfe; + break; - case 0x7a: - dev->mc_pci_conf[addr] = val; - break; + case 0x7a: + dev->mc_pci_conf[addr] = val; + break; - case 0x7b: - dev->mc_pci_conf[addr] = val & 0x0f; - break; + case 0x7b: + dev->mc_pci_conf[addr] = val & 0x0f; + break; - case 0x7c: - dev->mc_pci_conf[addr] = val & 0x1f; - break; + case 0x7c: + dev->mc_pci_conf[addr] = val & 0x1f; + break; - case 0x7d: - dev->mc_pci_conf[addr] = val & 0x0c; - break; + case 0x7d: + dev->mc_pci_conf[addr] = val & 0x0c; + break; - case 0x7e: - dev->mc_pci_conf[addr] = val & 0xf0; - break; + case 0x7e: + dev->mc_pci_conf[addr] = val & 0xf0; + break; - case 0x7f: - dev->mc_pci_conf[addr] = val; - break; + case 0x7f: + dev->mc_pci_conf[addr] = val; + break; - case 0x88: - case 0x89: - dev->mc_pci_conf[addr] = val; - break; + case 0x88: + case 0x89: + dev->mc_pci_conf[addr] = val; + break; - case 0x8b: - dev->mc_pci_conf[addr] = val & 0x80; - break; + case 0x8b: + dev->mc_pci_conf[addr] = val & 0x80; + break; - case 0x8c: - case 0x8d: - dev->mc_pci_conf[addr] = val; - break; + case 0x8c: + case 0x8d: + dev->mc_pci_conf[addr] = val; + break; - case 0xa4: - dev->mc_pci_conf[addr] = val & 1; - break; + case 0xa4: + dev->mc_pci_conf[addr] = val & 1; + break; - case 0xa5: - dev->pb_pci_conf[addr] = val & 0xf0; - break; + case 0xa5: + dev->pb_pci_conf[addr] = val & 0xf0; + break; - case 0xa6: - dev->mc_pci_conf[addr] = val; - break; + case 0xa6: + dev->mc_pci_conf[addr] = val; + break; - case 0xa7: - dev->mc_pci_conf[addr] = val & 0x0f; - break; + case 0xa7: + dev->mc_pci_conf[addr] = val & 0x0f; + break; - case 0xa8: - dev->mc_pci_conf[addr] = val & 0xfe; - break; + case 0xa8: + dev->mc_pci_conf[addr] = val & 0xfe; + break; - case 0xa9: - case 0xaa: - case 0xab: - case 0xac: - case 0xad: - case 0xae: - dev->mc_pci_conf[addr] = val; - break; + case 0xa9: + case 0xaa: + case 0xab: + case 0xac: + case 0xad: + case 0xae: + dev->mc_pci_conf[addr] = val; + break; - case 0xaf: - dev->mc_pci_conf[addr] = val & 0x7f; - break; + case 0xaf: + dev->mc_pci_conf[addr] = val & 0x7f; + break; - case 0xb8: - case 0xb9: - case 0xbb: - dev->mc_pci_conf[addr] = !(addr == 0xbb) ? val : (val & 0xf0); + case 0xb8: + case 0xb9: + case 0xbb: + dev->mc_pci_conf[addr] = !(addr == 0xbb) ? val : (val & 0xf0); - i450kx_smm(SMRAM_ADDR_MC, SMRAM_SIZE_MC, dev); - break; + i450kx_smm(SMRAM_ADDR_MC, SMRAM_SIZE_MC, dev); + break; - case 0xbc: - dev->mc_pci_conf[addr] = val & 1; - break; + case 0xbc: + dev->mc_pci_conf[addr] = val & 1; + break; - case 0xc0: - dev->mc_pci_conf[addr] = val & 7; - break; + case 0xc0: + dev->mc_pci_conf[addr] = val & 7; + break; - case 0xc2: - dev->mc_pci_conf[addr] = val & 3; - break; + case 0xc2: + dev->mc_pci_conf[addr] = val & 3; + break; - case 0xc4: - dev->mc_pci_conf[addr] = val & 0x3f; - break; + case 0xc4: + dev->mc_pci_conf[addr] = val & 0x3f; + break; - case 0xc6: - dev->mc_pci_conf[addr] = val & 0x19; - break; + case 0xc6: + dev->mc_pci_conf[addr] = val & 0x19; + break; } i450kx_log("i450KX-MC: dev->regs[%02x] = %02x POST: %02x\n", addr, dev->mc_pci_conf[addr], inb(0x80)); } + static uint8_t mc_read(int func, int addr, void *priv) { @@ -474,6 +478,7 @@ mc_read(int func, int addr, void *priv) return dev->mc_pci_conf[addr]; } + static void i450kx_reset(void *priv) { @@ -531,6 +536,7 @@ i450kx_reset(void *priv) dev->mc_pci_conf[0xbc] = 1; } + static void i450kx_close(void *priv) { @@ -540,13 +546,14 @@ i450kx_close(void *priv) free(dev); } + static void * i450kx_init(const device_t *info) { i450kx_t *dev = (i450kx_t *)malloc(sizeof(i450kx_t)); memset(dev, 0, sizeof(i450kx_t)); pci_add_card(PCI_ADD_NORTHBRIDGE, pb_read, pb_write, dev); /* Device 19: Intel 450KX PCI Bridge PB */ - pci_add_card(PCI_ADD_SOUTHBRIDGE, mc_read, mc_write, dev); /* Device 14: Intel 450KX Memory Controller MC */ + pci_add_card(PCI_ADD_NORTHBRIDGE, mc_read, mc_write, dev); /* Device 14: Intel 450KX Memory Controller MC */ dev->smram = smram_add(); @@ -559,6 +566,7 @@ i450kx_init(const device_t *info) return dev; } + const device_t i450kx_device = { "Intel 450KX (Mars)", DEVICE_PCI, @@ -566,7 +574,8 @@ const device_t i450kx_device = { i450kx_init, i450kx_close, i450kx_reset, - {NULL}, + { NULL }, NULL, NULL, - NULL}; + NULL +}; diff --git a/src/machine/m_at_socket8.c b/src/machine/m_at_socket8.c index 2f48f29da..1aa892415 100644 --- a/src/machine/m_at_socket8.c +++ b/src/machine/m_at_socket8.c @@ -53,7 +53,7 @@ machine_at_p6rp4_init(const machine_t *model) pci_init(PCI_CONFIG_TYPE_1); pci_register_slot(0x19, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x12, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); + pci_register_slot(0x12, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); pci_register_slot(0x07, PCI_CARD_NORMAL, 1, 2, 3, 4); pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 3, 4, 1); From 841ac25297e288a1e99758c736ef829a342783f9 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 16:25:11 -0300 Subject: [PATCH 04/14] 3.5x multiplier on Socket 5/7 should always be equivalent to 1.5x --- src/cpu/cpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index c9c6692c5..f37d35e93 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -283,7 +283,7 @@ cpu_is_eligible(const cpu_family_t *cpu_family, int cpu, int machine) else if (multi == 1.75) /* K5 5k86 */ multi = 2.5; else if (multi == 2.0) { - if (cpu_s->cpu_type == CPU_5K86) /* K5 5k86 */ + if (cpu_s->cpu_type == CPU_5K86) /* K5 5k86 */ multi = 3.0; /* K6-2+ / K6-3+ */ else if ((cpu_s->cpu_type == CPU_K6_2P) || (cpu_s->cpu_type == CPU_K6_3P)) @@ -292,15 +292,15 @@ cpu_is_eligible(const cpu_family_t *cpu_family, int cpu, int machine) (machine_s->cpu_min_multi > 2.0)) /* WinChip (2) */ multi = 2.5; } - else if (multi == (7.0 / 3.0)) /* WinChip 2A - 2.33x */ + else if (multi == (7.0 / 3.0)) /* WinChip 2A - 2.33x */ multi = 5.0; - else if (multi == (8.0 / 3.0)) /* WinChip 2A - 2.66x */ + else if (multi == (8.0 / 3.0)) /* WinChip 2A - 2.66x */ multi = 5.5; else if ((multi == 3.0) && (cpu_s->cpu_type == CPU_Cx6x86 || cpu_s->cpu_type == CPU_Cx6x86L)) /* 6x86(L) */ multi = 1.5; - else if (multi == (10.0 / 3.0)) /* WinChip 2A - 3.33x */ + else if (multi == (10.0 / 3.0)) /* WinChip 2A - 3.33x */ multi = 2.0; - else if ((multi == 3.5) && (machine_s->cpu_min_multi < 3.5)) /* standard set by the Pentium MMX */ + else if (multi == 3.5) /* standard set by the Pentium MMX */ multi = 1.5; else if (multi == 4.0) { /* WinChip (2) */ From 8f92c6d6ccd633234b8ad60a35a4e302c6d494fe Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 16:27:38 -0300 Subject: [PATCH 05/14] Clean up SPD type handling with unions --- src/include/86box/spd.h | 24 ++++++++++++++---------- src/mem/spd.c | 6 ++---- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/include/86box/spd.h b/src/include/86box/spd.h index 3b716028f..53492d0e8 100644 --- a/src/include/86box/spd.h +++ b/src/include/86box/spd.h @@ -47,16 +47,6 @@ #define SPD_SDR_ATTR_VCC_HI_5 0x20 -typedef struct { - uint8_t slot; - uint16_t size; - uint16_t row1; - uint16_t row2; - - uint8_t data[SPD_DATA_SIZE]; - void *eeprom; -} spd_t; - typedef struct { uint8_t bytes_used, spd_size, mem_type, row_bits, col_bits, banks, @@ -99,6 +89,20 @@ typedef struct { checksum2; } spd_sdram_t; +typedef struct { + uint8_t slot; + uint16_t size; + uint16_t row1; + uint16_t row2; + + union { + uint8_t data[SPD_DATA_SIZE]; + spd_edo_t edo_data; + spd_sdram_t sdram_data; + }; + void *eeprom; +} spd_t; + extern void spd_register(uint8_t ram_type, uint8_t slot_mask, uint16_t max_module_size); extern void spd_write_drbs(uint8_t *regs, uint8_t reg_min, uint8_t reg_max, uint8_t drb_unit); diff --git a/src/mem/spd.c b/src/mem/spd.c index aeddbc06a..32b49a101 100644 --- a/src/mem/spd.c +++ b/src/mem/spd.c @@ -226,8 +226,7 @@ spd_register(uint8_t ram_type, uint8_t slot_mask, uint16_t max_module_size) switch (ram_type) { case SPD_TYPE_FPM: case SPD_TYPE_EDO: - edo_data = (spd_edo_t *) &spd_modules[slot]->data; - memset(edo_data, 0, sizeof(spd_edo_t)); + edo_data = &spd_modules[slot]->edo_data; /* EDO SPD is specified by JEDEC and present in some modules, but most utilities cannot interpret it correctly. SIV32 at least gets @@ -265,8 +264,7 @@ spd_register(uint8_t ram_type, uint8_t slot_mask, uint16_t max_module_size) break; case SPD_TYPE_SDRAM: - sdram_data = (spd_sdram_t *) &spd_modules[slot]->data; - memset(sdram_data, 0, sizeof(spd_sdram_t)); + sdram_data = &spd_modules[slot]->sdram_data; sdram_data->bytes_used = 0x80; sdram_data->spd_size = 0x08; From 644ba28e1814f86d7a9ea18a4a6757024f7c39e2 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 16:34:04 -0300 Subject: [PATCH 06/14] Remove another redundant Socket 7 multiplier check --- src/cpu/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index f37d35e93..a7c18f60b 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -316,7 +316,7 @@ cpu_is_eligible(const cpu_family_t *cpu_family, int cpu, int machine) } else if ((multi == 5.0) && ((cpu_s->cpu_type == CPU_WINCHIP) || (cpu_s->cpu_type == CPU_WINCHIP2)) && (machine_s->cpu_min_multi > 5.0)) /* WinChip (2) */ multi = 5.5; - else if ((multi == 6.0) && (machine_s->cpu_max_multi < 6.0)) /* K6-2(+) / K6-3(+) */ + else if (multi == 6.0) /* K6-2(+) / K6-3(+) */ multi = 2.0; } From d2ae0a6ec49672d7acb52c800bba5c8c65885cef Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 16:42:43 -0300 Subject: [PATCH 07/14] Fix base Eden speeds --- src/cpu/cpu_table.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/cpu/cpu_table.c b/src/cpu/cpu_table.c index cfba9080c..9f8d94ca4 100644 --- a/src/cpu/cpu_table.c +++ b/src/cpu/cpu_table.c @@ -1042,7 +1042,8 @@ const cpu_family_t cpu_families[] = { .name = "Eden Model 7", .internal_name = "c3_eden", .cpus = (const CPU[]) { - {"100", CPU_EDEN, fpus_internal, 100000000, 1.5, 2050, 0x673, 0x673, 0, CPU_SUPPORTS_DYNAREC | CPU_FIXED_MULTIPLIER, 9, 9, 4, 4, 12}, /* out of spec */ + {"66", CPU_EDEN, fpus_internal, 66666666, 1.0, 2050, 0x673, 0x673, 0, CPU_SUPPORTS_DYNAREC | CPU_FIXED_MULTIPLIER, 6, 6, 3, 3, 8}, /* out of spec */ + {"100", CPU_EDEN, fpus_internal, 100000000, 1.0, 2050, 0x673, 0x673, 0, CPU_SUPPORTS_DYNAREC | CPU_FIXED_MULTIPLIER, 9, 9, 4, 4, 12}, /* out of spec */ {"400", CPU_EDEN, fpus_internal, 400000000, 6.0, 2050, 0x673, 0x673, 0, CPU_SUPPORTS_DYNAREC | CPU_FIXED_MULTIPLIER, 36, 36, 17, 17, 48}, {"600", CPU_EDEN, fpus_internal, 600000000, 6.0, 2050, 0x673, 0x673, 0, CPU_SUPPORTS_DYNAREC | CPU_FIXED_MULTIPLIER, 54, 54, 18, 18, 72}, } @@ -1762,7 +1763,7 @@ const cpu_legacy_machine_t cpu_legacy_table[] = { {"pc200", cputables_8086}, {"ppc512", cputables_8086}, {"deskpro", cputables_8086}, - {"olivetti_m24", cputables_8086}, + {"m24", cputables_8086}, {"iskra3104", cputables_8086}, {"tandy1000sl2", cputables_8086}, {"t1200", cputables_8086}, @@ -1929,7 +1930,7 @@ const cpu_legacy_machine_t cpu_legacy_table[] = { {"bf6", cputables_PentiumII_Celeron_Cyrix3}, {"ax6bc", cputables_PentiumII_Celeron_Cyrix3}, {"atc6310bxii", cputables_PentiumII_Celeron_Cyrix3}, - {"ga686bx", cputables_PentiumII_Celeron_Cyrix3}, + {"686bx", cputables_PentiumII_Celeron_Cyrix3}, {"tsunamiatx", cputables_PentiumII_Celeron_Cyrix3}, {"p6sba", cputables_PentiumII_Celeron_Cyrix3}, {"ergox365", cputables_PentiumII_Celeron_Cyrix3}, From 120fc553b0fd46c63167f9ccee40f3588f7f52e6 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 16:43:25 -0300 Subject: [PATCH 08/14] Machine table limit cleanup, based on research into potentially undocumented jumper combinations --- src/machine/machine_table.c | 94 ++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index a4a6b98c6..c50eade4b 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -288,7 +288,7 @@ const machine_t machines[] = { { "[OPTi 597] TMC PAT54PV", "pat54pv", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, CPU_BLOCK(CPU_K5, CPU_5K86), 50000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_VLB, 2048, 65536, 2048, 127, machine_at_pat54pv_init, NULL }, /* OPTi 596/597/822 */ - { "[OPTi 597] Shuttle HOT-543", "hot543", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_hot543_init, NULL }, + { "[OPTi 597] Shuttle HOT-543", "hot543", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_hot543_init, NULL }, { "[OPTi 597] Supermicro P54VL-PCI", "p54vl", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_p54vl_init, NULL }, /* SiS 85C50x */ @@ -296,12 +296,12 @@ const machine_t machines[] = { { "[SiS 85C50x] BCM SQ-588", "sq588", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, CPU_BLOCK(CPU_PENTIUMMMX), 50000000, 66666667, 3520, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_sq588_init, NULL }, /* UMC 889x */ - { "[UMC 889x] Shuttle HOT-539", "hot539", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, CPU_BLOCK(CPU_K5, CPU_5K86), 40000000, 66666667, 3380, 3520, 1.5, 1.5, MACHINE_PCI | MACHINE_IDE_DUAL, 8192, 262144, 8192, 127, machine_at_hot539_init, NULL }, + { "[UMC 889x] Shuttle HOT-539", "hot539", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, CPU_BLOCK(CPU_K5, CPU_5K86), 40000000, 66666667, 3380, 3600, 1.5, 2.0, MACHINE_PCI | MACHINE_IDE_DUAL, 8192, 262144, 8192, 127, machine_at_hot539_init, NULL }, /* Socket 7 (Single Voltage) machines */ /* 430FX */ - { "[i430FX] ASUS P/I-P54TP4XE", "p54tp4xe", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3600, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_p54tp4xe_init, NULL }, - { "[i430FX] ASUS P/I-P54TP4XE (MR BIOS)", "mr586", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3600, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_mr586_init, NULL }, + { "[i430FX] ASUS P/I-P54TP4XE", "p54tp4xe", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3600, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_p54tp4xe_init, NULL }, + { "[i430FX] ASUS P/I-P54TP4XE (MR BIOS)", "mr586", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3600, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_mr586_init, NULL }, { "[i430FX] Gateway 2000 Thor", "gw2katx", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_VIDEO, 8192, 131072, 8192, 127, machine_at_gw2katx_init, NULL }, { "[i430FX] Intel Advanced/ATX", "thor", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_VIDEO, 8192, 131072, 8192, 127, machine_at_thor_init, NULL }, { "[i430FX] Intel Advanced/ATX (MR BIOS)", "mrthor", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_VIDEO, 8192, 131072, 8192, 127, machine_at_mrthor_init, NULL }, @@ -311,7 +311,7 @@ const machine_t machines[] = { /* 430HX */ { "[i430HX] Acer M3A", "acerm3a", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3300, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 196608, 8192, 127, machine_at_acerm3a_init, NULL }, - { "[i430HX] AOpen AP53", "ap53", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3450, 3520, 1.5, 2.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_ap53_init, NULL }, + { "[i430HX] AOpen AP53", "ap53", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3450, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_ap53_init, NULL }, { "[i430HX] Biostar MB-8500TUC", "8500tuc", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_8500tuc_init, NULL }, { "[i430HX] SuperMicro Super P55T2S", "p55t2s", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3300, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 127, machine_at_p55t2s_init, NULL }, @@ -341,7 +341,7 @@ const machine_t machines[] = { { "[i430VX] Shuttle HOT-557", "430vx", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 2500, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_i430vx_init, NULL }, /* 430TX */ - { "[i430TX] ADLink NuPRO-592", "nupro592", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 66666667, 66666667, 1900, 2800, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 262144, 8192, 255, machine_at_nupro592_init, NULL }, + { "[i430TX] ADLink NuPRO-592", "nupro592", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 66666667, 66666667, 1900, 2800, 1.5, 5.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 262144, 8192, 255, machine_at_nupro592_init, NULL }, { "[i430TX] ASUS TX97", "tx97", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 50000000, 75000000, 2500, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 262144, 8192, 255, machine_at_tx97_init, NULL }, #if defined(DEV_BRANCH) && defined(NO_SIO) { "[i430TX] Intel AN430TX", "an430tx", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 2800, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 262144, 8192, 255, machine_at_an430tx_init, NULL }, @@ -364,8 +364,8 @@ const machine_t machines[] = { /* ALi ALADDiN IV */ #if defined(DEV_BRANCH) && defined(USE_M154X) - { "[ALi ALADDiN IV] PC Chips M560", "m560", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 2800, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 262144, 8192, 255, machine_at_m560_init, NULL }, - { "[ALi ALADDiN IV] MSI MS-5164", "ms5164", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 2800, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 262144, 8192, 255, machine_at_ms5164_init, NULL }, + { "[ALi ALADDiN IV] PC Chips M560", "m560", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 50000000, 83333333, 2500, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 262144, 8192, 255, machine_at_m560_init, NULL }, + { "[ALi ALADDiN IV] MSI MS-5164", "ms5164", MACHINE_TYPE_SOCKET7, CPU_PKG_SOCKET5_7, 0, 60000000, 66666667, 2100, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 262144, 8192, 255, machine_at_ms5164_init, NULL }, #endif /* Super Socket 7 machines */ @@ -377,92 +377,92 @@ const machine_t machines[] = { /* Socket 8 machines */ /* 450KX */ #if defined(DEV_BRANCH) && defined(USE_I450KX) - { "[i450KX] ASUS P/I-P6RP4", "p6rp4", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.0, 4.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_p6rp4_init, NULL }, + { "[i450KX] ASUS P/I-P6RP4", "p6rp4", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 1.5, 8.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_p6rp4_init, NULL }, #endif /* 440FX */ - { "[i440FX] Acer V60N", "v60n", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2500, 3500, 2.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_v60n_init, NULL }, - { "[i440FX] ASUS P/I-P65UP5 (C-P6ND)", "p65up5_cp6nd", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.0, 4.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 127, machine_at_p65up5_cp6nd_init, NULL }, - { "[i440FX] Biostar MB-8600TTC", "8600ttc", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 50000000, 66666667, 2900, 3300, 2.0, 3.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 127, machine_at_8500ttc_init, NULL }, - { "[i440FX] Gigabyte GA-686NX", "686nx", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.5, 4.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_686nx_init, NULL }, - { "[i440FX] Intel AP440FX", "ap440fx", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_ap440fx_init, NULL }, - { "[i440FX] Intel VS440FX", "vs440fx", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_vs440fx_init, NULL }, - { "[i440FX] Micronics M6Mi", "m6mi", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2900, 3300, 2.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 127, machine_at_m6mi_init, NULL }, - { "[i440FX] PC Partner MB600N", "mb600n", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_mb600n_init, NULL }, + { "[i440FX] Acer V60N", "v60n", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2500, 3500, 1.5, 8.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_v60n_init, NULL }, + { "[i440FX] ASUS P/I-P65UP5 (C-P6ND)", "p65up5_cp6nd", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 1.5, 8.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 127, machine_at_p65up5_cp6nd_init, NULL }, + { "[i440FX] Biostar MB-8600TTC", "8600ttc", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 50000000, 66666667, 2900, 3300, 2.0, 5.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 127, machine_at_8500ttc_init, NULL }, + { "[i440FX] Gigabyte GA-686NX", "686nx", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.0, 5.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_686nx_init, NULL }, + { "[i440FX] Intel AP440FX", "ap440fx", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.0, 3.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_ap440fx_init, NULL }, + { "[i440FX] Intel VS440FX", "vs440fx", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 2.0, 3.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_vs440fx_init, NULL }, + { "[i440FX] Micronics M6Mi", "m6mi", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2900, 3300, 1.5, 8.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 127, machine_at_m6mi_init, NULL }, + { "[i440FX] PC Partner MB600N", "mb600n", MACHINE_TYPE_SOCKET8, CPU_PKG_SOCKET8, 0, 60000000, 66666667, 2100, 3500, 1.5, 8.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 127, machine_at_mb600n_init, NULL }, /* Slot 1 machines */ /* 440FX */ - { "[i440FX] ASUS P/I-P65UP5 (C-PKND)", "p65up5_cpknd", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 50000000, 66666667, 1800, 3500, 2.0, 5.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 127, machine_at_p65up5_cpknd_init, NULL }, - { "[i440FX] ASUS KN97", "kn97", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 60000000, 83333333, 1800, 3500, 2.0, 5.5, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 127, machine_at_kn97_init, NULL }, + { "[i440FX] ASUS P/I-P65UP5 (C-PKND)", "p65up5_cpknd", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 50000000, 66666667, 1800, 3500, 1.5, 8.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 127, machine_at_p65up5_cpknd_init, NULL }, + { "[i440FX] ASUS KN97", "kn97", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 60000000, 83333333, 1800, 3500, 1.5, 8.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 127, machine_at_kn97_init, NULL }, /* 440LX */ { "[i440LX] ABIT LX6", "lx6", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 60000000, 100000000, 1500, 3500, 2.0, 5.5, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_lx6_init, NULL }, - { "[i440LX] Micronics Spitfire", "spitfire", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 66666667, 1800, 3500, 3.5, 6.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_spitfire_init, NULL }, + { "[i440LX] Micronics Spitfire", "spitfire", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 66666667, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_spitfire_init, NULL }, /* 440EX */ { "[i440EX] QDI EXCELLENT II", "p6i440e2", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 83333333, 1800, 3500, 3.0, 8.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 255, machine_at_p6i440e2_init, NULL }, /* 440BX */ - { "[i440BX] ASUS P2B-LS", "p2bls", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 50000000, 112121212, 1300, 3500, 2.0, 6.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_p2bls_init, NULL }, - { "[i440BX] ASUS P3B-F", "p3bf", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 150000000, 1300, 3500, 2.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_p3bf_init, NULL }, + { "[i440BX] ASUS P2B-LS", "p2bls", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 50000000, 112121212, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_p2bls_init, NULL }, + { "[i440BX] ASUS P3B-F", "p3bf", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 150000000, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_p3bf_init, NULL }, { "[i440BX] ABIT BF6", "bf6", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 133333333, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_bf6_init, NULL }, { "[i440BX] AOpen AX6BC", "ax6bc", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 112121212, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_ax6bc_init, NULL }, - { "[i440BX] Gigabyte GA-686BX", "686bx", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 3.0, 5.5, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_686bx_init, NULL }, - { "[i440BX] HP Vectra VEi 8", "vei8", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 3.0, 5.5, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_vei8_init, NULL }, - { "[i440BX] Tyan Tsunami ATX", "tsunamiatx", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 112121212, 1800, 3500, 3.5, 5.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_SOUND, 8192,1048576, 8192, 255, machine_at_tsunamiatx_init, at_tsunamiatx_get_device }, - { "[i440BX] SuperMicro Super P6SBA", "p6sba", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 3.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_p6sba_init, NULL }, + { "[i440BX] Gigabyte GA-686BX", "686bx", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_686bx_init, NULL }, + { "[i440BX] HP Vectra VEi 8", "vei8", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_vei8_init, NULL }, + { "[i440BX] Tyan Tsunami ATX", "tsunamiatx", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 112121212, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_SOUND, 8192,1048576, 8192, 255, machine_at_tsunamiatx_init, at_tsunamiatx_get_device }, + { "[i440BX] SuperMicro Super P6SBA", "p6sba", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_p6sba_init, NULL }, #if defined(DEV_BRANCH) && defined(NO_SIO) - { "[i440BX] Fujitsu ErgoPro x365", "ergox365", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 3.5, 5.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 393216, 8192, 511, machine_at_ergox365_init, NULL }, + { "[i440BX] Fujitsu ErgoPro x365", "ergox365", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 393216, 8192, 511, machine_at_ergox365_init, NULL }, #endif /* 440GX */ { "[i440GX] Freeway FW-6400GX", "fw6400gx_s1", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 100000000, 150000000, 1800, 3500, 3.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 16384,2080768,16384, 511, machine_at_fw6400gx_init, NULL }, /* 440ZX */ - { "[i440ZX] MSI MS-6168", "ms6168", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 100000000, 150000000, 1800, 3500, 3.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND,8192, 524288, 8192, 255, machine_at_ms6168_init, NULL }, - { "[i440ZX] Packard Bell Bora Pro", "borapro", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 66666667, 1800, 3500, 3.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND,8192, 524288, 8192, 255, machine_at_borapro_init, NULL }, + { "[i440ZX] MSI MS-6168", "ms6168", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND,8192, 524288, 8192, 255, machine_at_ms6168_init, NULL }, + { "[i440ZX] Packard Bell Bora Pro", "borapro", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 66666667, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND,8192, 524288, 8192, 255, machine_at_borapro_init, NULL }, /* SMSC VictoryBX-66 */ - { "[SMSC VictoryBX-66] A-Trend ATC6310BXII","atc6310bxii", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 133333333, 1300, 3500, 3.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_atc6310bxii_init, NULL }, + { "[SMSC VictoryBX-66] A-Trend ATC6310BXII","atc6310bxii", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 133333333, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_atc6310bxii_init, NULL }, /* VIA Apollo Pro */ - { "[VIA Apollo Pro] FIC KA-6130", "ficka6130", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 3.5, 5.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 255, machine_at_ficka6130_init, NULL }, - { "[VIA Apollo Pro133] ASUS P3V133", "p3v133", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 150000000, 1300, 3500, 2.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1572864, 8192, 255, machine_at_p3v133_init, NULL }, - { "[VIA Apollo Pro133A] ASUS P3V4X", "p3v4x", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 150000000, 1300, 3500, 2.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,2097152, 8192, 255, machine_at_p3v4x_init, NULL }, + { "[VIA Apollo Pro] FIC KA-6130", "ficka6130", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 255, machine_at_ficka6130_init, NULL }, + { "[VIA Apollo Pro133] ASUS P3V133", "p3v133", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 150000000, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1572864, 8192, 255, machine_at_p3v133_init, NULL }, + { "[VIA Apollo Pro133A] ASUS P3V4X", "p3v4x", MACHINE_TYPE_SLOT1, CPU_PKG_SLOT1, 0, 66666667, 150000000, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,2097152, 8192, 255, machine_at_p3v4x_init, NULL }, /* Slot 2 machines */ /* 440GX */ - { "[i440GX] Gigabyte GA-6GXU", "6gxu", MACHINE_TYPE_SLOT2, CPU_PKG_SLOT2, 0, 100000000, 133333333, 1800, 3500, 4.0, 6.5, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 16384,2097152,16384, 511, machine_at_6gxu_init, NULL }, + { "[i440GX] Gigabyte GA-6GXU", "6gxu", MACHINE_TYPE_SLOT2, CPU_PKG_SLOT2, 0, 100000000, 133333333, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 16384,2097152,16384, 511, machine_at_6gxu_init, NULL }, { "[i440GX] Freeway FW-6400GX", "fw6400gx", MACHINE_TYPE_SLOT2, CPU_PKG_SLOT2, 0, 100000000, 150000000, 1800, 3500, 3.0, 8.0, (MACHINE_AGP & ~MACHINE_AT) | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 16384,2080768,16384, 511, machine_at_fw6400gx_init, NULL }, - { "[i440GX] SuperMicro Super S2DGE", "s2dge", MACHINE_TYPE_SLOT2, CPU_PKG_SLOT2, 0, 66666667, 100000000, 1800, 3500, 3.0, 7.5, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 16384,2097152,16384, 511, machine_at_s2dge_init, NULL }, + { "[i440GX] SuperMicro Super S2DGE", "s2dge", MACHINE_TYPE_SLOT2, CPU_PKG_SLOT2, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 16384,2097152,16384, 511, machine_at_s2dge_init, NULL }, /* PGA370 machines */ /* 440LX */ { "[i440LX] SuperMicro Super 370SLM", "s370slm", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 100000000, 1800, 3500, MACHINE_MULTIPLIER_FIXED, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_s370slm_init, NULL }, /* 440BX */ - { "[i440BX] AEWIN AW-O671R", "awo671r", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 2.0, 8.0, /* limits assumed */ MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 255, machine_at_awo671r_init, NULL }, - { "[i440BX] ASUS CUBX", "cubx", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, 2.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_cubx_init, NULL }, - { "[i440BX] AmazePC AM-BX133", "ambx133", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 2.0, 8.0, /* limits assumed */ MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_ambx133_init, NULL }, - { "[i440BX] Tyan Trinity 371", "trinity371", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 3.5, 7.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_trinity371_init, NULL }, + { "[i440BX] AEWIN AW-O671R", "awo671r", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 1.5, 8.0, /* limits assumed */ MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 255, machine_at_awo671r_init, NULL }, + { "[i440BX] ASUS CUBX", "cubx", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_cubx_init, NULL }, + { "[i440BX] AmazePC AM-BX133", "ambx133", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 1.5, 8.0, /* limits assumed */ MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_ambx133_init, NULL }, + { "[i440BX] Tyan Trinity 371", "trinity371", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_trinity371_init, NULL }, /* 440ZX */ - { "[i440ZX] Soltek SL-63A1", "63a", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 100000000, 1800, 3500, 2.0, 7.5, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 255, machine_at_63a_init, NULL }, + { "[i440ZX] Soltek SL-63A1", "63a", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 524288, 8192, 255, machine_at_63a_init, NULL }, /* SMSC VictoryBX-66 */ - { "[SMSC VictoryBX-66] A-Trend ATC7020BXII","atc7020bxii", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 3.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_atc7020bxii_init, NULL }, + { "[SMSC VictoryBX-66] A-Trend ATC7020BXII","atc7020bxii", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_atc7020bxii_init, NULL }, /* VIA Apollo Pro */ - { "[VIA Apollo Pro] PC Partner APAS3", "apas3", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 100000000, 1800, 3500, 3.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_apas3_init, NULL }, - { "[VIA Apollo Pro133] ECS P6BAP", "p6bap", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, 2.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1572864, 8192, 255, machine_at_p6bap_init, NULL }, - { "[VIA Apollo Pro133A] AEWIN WCF-681", "wcf681", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 2.0, 8.0, /* limits assumed */ MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_wcf681_init, NULL }, - { "[VIA Apollo Pro133A] ASUS CUV4X-LS", "cuv4xls", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, 2.0, 8.0, (MACHINE_AGP & ~MACHINE_AT) | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 16384,1572864, 8192, 255, machine_at_cuv4xls_init, NULL }, + { "[VIA Apollo Pro] PC Partner APAS3", "apas3", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 100000000, 1800, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 255, machine_at_apas3_init, NULL }, + { "[VIA Apollo Pro133] ECS P6BAP", "p6bap", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1572864, 8192, 255, machine_at_p6bap_init, NULL }, + { "[VIA Apollo Pro133A] AEWIN WCF-681", "wcf681", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 133333333, 1300, 3500, 1.5, 8.0, /* limits assumed */ MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_wcf681_init, NULL }, + { "[VIA Apollo Pro133A] ASUS CUV4X-LS", "cuv4xls", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, 1.5, 8.0, (MACHINE_AGP & ~MACHINE_AT) | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 16384,1572864, 8192, 255, machine_at_cuv4xls_init, NULL }, { "[VIA Apollo Pro133A] Acorp 6VIA90AP", "6via90ap", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, MACHINE_MULTIPLIER_FIXED, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1572864, 8192, 255, machine_at_6via90ap_init, NULL }, - { "[VIA Apollo ProMedia] Jetway 603TCF", "603tcf", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, 2.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_603tcf_init, NULL }, + { "[VIA Apollo ProMedia] Jetway 603TCF", "603tcf", MACHINE_TYPE_SOCKET370, CPU_PKG_SOCKET370, 0, 66666667, 150000000, 1300, 3500, 1.5, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_603tcf_init, NULL }, /* EBGA368 machines */ /* VIA Apollo Pro */ - { "[VIA Apollo ProMedia] Acrosser AR-B9673","arb9673", MACHINE_TYPE_EBGA368, CPU_PKG_EBGA368, 0, 66666667, 150000000, 1300, 3500, 2.0, 8.0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 131072, 131072, 0, 31, machine_at_arb9673_init, NULL }, + { "[VIA Apollo ProMedia] Acrosser AR-B9673","arb9673", MACHINE_TYPE_EBGA368, CPU_PKG_EBGA368, 0, 100000000, 133333333, 2050, 2050, MACHINE_MULTIPLIER_FIXED, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 131072, 131072, 0, 31, machine_at_arb9673_init, NULL }, /* Miscellaneous/Fake/Hypervisor machines */ { "[i440BX] Microsoft Virtual PC 2007", "vpc2007", MACHINE_TYPE_MISC, CPU_PKG_SLOT1, CPU_BLOCK(CPU_PENTIUM2, CPU_CYRIX3S), 0, 0, 0, 0, 0, 0, MACHINE_AGP | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192,1048576, 8192, 255, machine_at_vpc2007_init, NULL }, From d0d73b7ef549a965f417875ed8abf940d1717350 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 16:46:04 -0300 Subject: [PATCH 09/14] Revert "The IBM PCjr is now limited to 8088 4.77 MHz, closes #1379." This reverts commit d060a38d912aa520dc6da3f33059c9cd99f7b3b1. # Conflicts: # src/machine/machine_table.c --- src/cpu/cpu.h | 45 ++++++++++++++++++------------------- src/cpu/cpu_table.c | 9 -------- src/machine/machine_table.c | 2 +- 3 files changed, 23 insertions(+), 33 deletions(-) diff --git a/src/cpu/cpu.h b/src/cpu/cpu.h index 96942e9e5..177712fa7 100644 --- a/src/cpu/cpu.h +++ b/src/cpu/cpu.h @@ -84,29 +84,28 @@ enum { enum { CPU_PKG_8088 = (1 << 0), - CPU_PKG_8088_PCJR = (1 << 1), - CPU_PKG_8088_EUROPC = (1 << 2), - CPU_PKG_8086 = (1 << 3), - CPU_PKG_286 = (1 << 4), - CPU_PKG_386SX = (1 << 5), - CPU_PKG_386DX = (1 << 6), - CPU_PKG_M6117 = (1 << 7), - CPU_PKG_386SLC_IBM = (1 << 8), - CPU_PKG_486SLC = (1 << 9), - CPU_PKG_486SLC_IBM = (1 << 10), - CPU_PKG_486BL = (1 << 11), - CPU_PKG_486DLC = (1 << 12), - CPU_PKG_SOCKET1 = (1 << 13), - CPU_PKG_SOCKET3 = (1 << 14), - CPU_PKG_SOCKET3_PC330 = (1 << 15), - CPU_PKG_STPC = (1 << 16), - CPU_PKG_SOCKET4 = (1 << 17), - CPU_PKG_SOCKET5_7 = (1 << 18), - CPU_PKG_SOCKET8 = (1 << 19), - CPU_PKG_SLOT1 = (1 << 20), - CPU_PKG_SLOT2 = (1 << 21), - CPU_PKG_SOCKET370 = (1 << 22), - CPU_PKG_EBGA368 = (1 << 23) + CPU_PKG_8088_EUROPC = (1 << 1), + CPU_PKG_8086 = (1 << 2), + CPU_PKG_286 = (1 << 3), + CPU_PKG_386SX = (1 << 4), + CPU_PKG_386DX = (1 << 5), + CPU_PKG_M6117 = (1 << 6), + CPU_PKG_386SLC_IBM = (1 << 7), + CPU_PKG_486SLC = (1 << 8), + CPU_PKG_486SLC_IBM = (1 << 9), + CPU_PKG_486BL = (1 << 10), + CPU_PKG_486DLC = (1 << 11), + CPU_PKG_SOCKET1 = (1 << 12), + CPU_PKG_SOCKET3 = (1 << 13), + 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), + CPU_PKG_EBGA368 = (1 << 22) }; diff --git a/src/cpu/cpu_table.c b/src/cpu/cpu_table.c index 7b14140b5..9f8d94ca4 100644 --- a/src/cpu/cpu_table.c +++ b/src/cpu/cpu_table.c @@ -82,15 +82,6 @@ const cpu_family_t cpu_families[] = { {"16", CPU_8088, fpus_8088, 16000000, 1, 5000, 0, 0, 0, 0, 0,0,0,0, 1}, {"", 0} } - }, { - .package = CPU_PKG_8088_PCJR, - .manufacturer = "Intel", - .name = "8088", - .internal_name = "8088", - .cpus = (const CPU[]) { - {"4.77", CPU_8088, fpus_8088, 4772728, 1, 5000, 0, 0, 0, 0, 0,0,0,0, 1}, - {"", 0} - } }, { .package = CPU_PKG_8088_EUROPC, .manufacturer = "Intel", diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 083d68b7b..c50eade4b 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -59,7 +59,7 @@ const machine_t machines[] = { /* 8088 Machines */ { "[8088] IBM PC (1981)", "ibmpc", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 16, 64, 16, 0, machine_pc_init, NULL }, { "[8088] IBM PC (1982)", "ibmpc82", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 256, 256, 0, machine_pc82_init, NULL }, - { "[8088] IBM PCjr", "ibmpcjr", MACHINE_TYPE_8088, CPU_PKG_8088_PCJR, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 128, 640, 128, 0, machine_pcjr_init, pcjr_get_device }, + { "[8088] IBM PCjr", "ibmpcjr", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 128, 640, 128, 0, machine_pcjr_init, pcjr_get_device }, { "[8088] IBM XT (1982)", "ibmxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 256, 64, 0, machine_xt_init, NULL }, { "[8088] IBM XT (1986)", "ibmxt86", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 64, 0, machine_xt86_init, NULL }, { "[8088] American XT Computer", "americxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_americxt_init, NULL }, From 1e21629523a67efd0c5500608a3359a43e3aeca5 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 16:47:52 -0300 Subject: [PATCH 10/14] Limit PCjr to 4.77 MHz the proper way --- src/machine/machine_table.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index c50eade4b..ceaf3d297 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -59,7 +59,7 @@ const machine_t machines[] = { /* 8088 Machines */ { "[8088] IBM PC (1981)", "ibmpc", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 16, 64, 16, 0, machine_pc_init, NULL }, { "[8088] IBM PC (1982)", "ibmpc82", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 256, 256, 0, machine_pc82_init, NULL }, - { "[8088] IBM PCjr", "ibmpcjr", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 128, 640, 128, 0, machine_pcjr_init, pcjr_get_device }, + { "[8088] IBM PCjr", "ibmpcjr", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 4772728, 4772728, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 128, 640, 128, 0, machine_pcjr_init, pcjr_get_device }, { "[8088] IBM XT (1982)", "ibmxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 256, 64, 0, machine_xt_init, NULL }, { "[8088] IBM XT (1986)", "ibmxt86", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 64, 0, machine_xt86_init, NULL }, { "[8088] American XT Computer", "americxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_americxt_init, NULL }, From ec9b5cae73964f03e3d336e28143f248ef0a17d4 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 17:12:02 -0300 Subject: [PATCH 11/14] Part 2 of The De-Underscoring: function names, ROM paths and some indentation cleanups --- src/include/86box/machine.h | 32 +++++++------- src/machine/m_at_286_386sx.c | 68 +++++++++++++++--------------- src/machine/m_xt.c | 28 ++++++------ src/machine/m_xt_olivetti.c | 82 ++++++++++++++++++------------------ src/machine/m_xt_philips.c | 67 +++++++++++++++-------------- src/machine/machine_table.c | 28 ++++++------ 6 files changed, 152 insertions(+), 153 deletions(-) diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index 136663ff1..c1f9ea75e 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -256,17 +256,17 @@ extern int machine_at_spc4620p_init(const machine_t *); extern int machine_at_kmxc02_init(const machine_t *); extern int machine_at_deskmaster286_init(const machine_t *); -extern int machine_at_ncrpc8_init(const machine_t *); -extern int machine_at_ncr3302_init(const machine_t *); +extern int machine_at_pc8_init(const machine_t *); +extern int machine_at_3302_init(const machine_t *); #if defined(DEV_BRANCH) && defined(USE_OLIVETTI) -extern int machine_at_olim290_init(const machine_t *); +extern int machine_at_m290_init(const machine_t *); #endif extern int machine_at_shuttle386sx_init(const machine_t *); extern int machine_at_adi386sx_init(const machine_t *); -extern int machine_at_commodore_sl386sx16_init(const machine_t *); -extern int machine_at_commodore_sl386sx25_init(const machine_t *); +extern int machine_at_cmdsl386sx16_init(const machine_t *); +extern int machine_at_cmdsl386sx25_init(const machine_t *); extern int machine_at_spc6033p_init(const machine_t *); extern int machine_at_wd76c10_init(const machine_t *); extern int machine_at_flytech386_init(const machine_t *); @@ -277,18 +277,18 @@ extern int machine_at_arb1375_init(const machine_t *); extern int machine_at_pja511m_init(const machine_t *); #endif -extern int machine_at_ncrpc916sx_init(const machine_t *); +extern int machine_at_pc916sx_init(const machine_t *); -extern int machine_at_olim300_08_init(const machine_t *); -extern int machine_at_olim300_15_init(const machine_t *); +extern int machine_at_m30008_init(const machine_t *); +extern int machine_at_m30015_init(const machine_t *); #ifdef EMU_DEVICE_H extern const device_t *at_ama932j_get_device(void); extern const device_t *at_flytech386_get_device(void); -extern const device_t *at_commodore_sl386sx25_get_device(void); +extern const device_t *at_cmdsl386sx25_get_device(void); extern const device_t *at_spc4620p_get_device(void); extern const device_t *at_spc6033p_get_device(void); -extern const device_t *at_m300_08_get_device(void); +extern const device_t *at_m30008_get_device(void); #endif /* m_at_386dx_486.c */ @@ -573,12 +573,12 @@ extern const device_t europc_device; #endif /* m_xt_olivetti.c */ -extern int machine_xt_olim24_init(const machine_t *); +extern int machine_xt_m24_init(const machine_t *); #ifdef EMU_DEVICE_H extern const device_t *m24_get_device(void); #endif -extern int machine_xt_olim240_init(const machine_t *); -extern int machine_xt_olim19_init(const machine_t *); +extern int machine_xt_m240_init(const machine_t *); +extern int machine_xt_m19_init(const machine_t *); #ifdef EMU_DEVICE_H extern const device_t *m19_get_device(void); #endif @@ -645,10 +645,10 @@ extern int machine_xt_jukopc_init(const machine_t *); extern int machine_xt_open_xt_init(const machine_t *); extern int machine_xt_pcxt_init(const machine_t *); extern int machine_xt_pxxt_init(const machine_t *); -extern int machine_xt_ncrpc4i_init(const machine_t *); +extern int machine_xt_pc4i_init(const machine_t *); extern int machine_xt_mpc1600_init(const machine_t *); -extern int machine_xt_eaglepcspirit_init(const machine_t *); -extern int machine_xt_multitechpc700_init(const machine_t *); +extern int machine_xt_pcspirit_init(const machine_t *); +extern int machine_xt_pc700_init(const machine_t *); extern int machine_xt_iskra3104_init(const machine_t *); diff --git a/src/machine/m_at_286_386sx.c b/src/machine/m_at_286_386sx.c index 7141e0121..c9e45ece5 100644 --- a/src/machine/m_at_286_386sx.c +++ b/src/machine/m_at_286_386sx.c @@ -514,12 +514,12 @@ machine_at_wd76c10_init(const machine_t *model) int -machine_at_commodore_sl386sx16_init(const machine_t *model) +machine_at_cmdsl386sx16_init(const machine_t *model) { int ret; - ret = bios_load_interleaved("roms/machines/cbm_sl386sx16/cbm-sl386sx-bios-lo-v1.04-390914-04.bin", - "roms/machines/cbm_sl386sx16/cbm-sl386sx-bios-hi-v1.04-390915-04.bin", + ret = bios_load_interleaved("roms/machines/cmdsl386sx16/cbm-sl386sx-bios-lo-v1.04-390914-04.bin", + "roms/machines/cmdsl386sx16/cbm-sl386sx-bios-hi-v1.04-390915-04.bin", 0x000f0000, 65536, 0); if (bios_only || !ret) @@ -556,18 +556,18 @@ machine_at_scamp_common_init(const machine_t *model) const device_t * -at_commodore_sl386sx25_get_device(void) +at_cmdsl386sx25_get_device(void) { return &gd5402_onboard_device; } int -machine_at_commodore_sl386sx25_init(const machine_t *model) +machine_at_cmdsl386sx25_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/cbm_sl386sx25/f000.rom", + ret = bios_load_linear("roms/machines/cmdsl386sx25/f000.rom", 0x000f0000, 65536, 0); if (bios_only || !ret) @@ -710,22 +710,22 @@ machine_at_pja511m_init(const machine_t *model) * - ctrl-alt-del produces an 8042 error */ int -machine_at_ncrpc8_init(const machine_t *model) +machine_at_pc8_init(const machine_t *model) { int ret; - ret = bios_load_interleaved("roms/machines/ncr_pc8/ncr_35117_u127_vers.4-2.bin", - "roms/machines/ncr_pc8/ncr_35116_u113_vers.4-2.bin", - 0x000f0000, 65536, 0); + ret = bios_load_interleaved("roms/machines/pc8/ncr_35117_u127_vers.4-2.bin", + "roms/machines/pc8/ncr_35116_u113_vers.4-2.bin", + 0x000f0000, 65536, 0); if (bios_only || !ret) - return ret; + return ret; machine_at_common_init(model); device_add(&keyboard_at_ncr_device); if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); + device_add(&fdc_at_device); return ret; } @@ -735,30 +735,30 @@ machine_at_ncrpc8_init(const machine_t *model) * - ctrl-alt-del produces an 8042 error */ int -machine_at_ncr3302_init(const machine_t *model) +machine_at_3302_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/ncr_3302/f000-flex_drive_test.bin", + ret = bios_load_linear("roms/machines/3302/f000-flex_drive_test.bin", 0x000f0000, 65536, 0); if (ret) { - bios_load_aux_linear("roms/machines/ncr_3302/f800-setup_ncr3.5-013190.bin", + bios_load_aux_linear("roms/machines/3302/f800-setup_ncr3.5-013190.bin", 0x000f8000, 32768, 0); } if (bios_only || !ret) - return ret; + return ret; machine_at_common_ide_init(model); device_add(&neat_device); device_add(&keyboard_at_ncr_device); if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); + device_add(&fdc_at_device); if (gfxcard == VID_INTERNAL) - device_add(¶dise_pvga1a_ncr3302_device); + device_add(¶dise_pvga1a_ncr3302_device); return ret; } @@ -768,16 +768,16 @@ machine_at_ncr3302_init(const machine_t *model) * - soft-reboot after saving CMOS settings/pressing ctrl-alt-del produces an 8042 error */ int -machine_at_ncrpc916sx_init(const machine_t *model) +machine_at_pc916sx_init(const machine_t *model) { int ret; - ret = bios_load_interleaved("roms/machines/ncr_pc916sx/ncr_386sx_u46-17_7.3.bin", - "roms/machines/ncr_pc916sx/ncr_386sx_u12-19_7.3.bin", - 0x000f0000, 65536, 0); + ret = bios_load_interleaved("roms/machines/pc916sx/ncr_386sx_u46-17_7.3.bin", + "roms/machines/pc916sx/ncr_386sx_u12-19_7.3.bin", + 0x000f0000, 65536, 0); if (bios_only || !ret) - return ret; + return ret; machine_at_common_init(model); @@ -785,14 +785,14 @@ machine_at_ncrpc916sx_init(const machine_t *model) mem_remap_top(384); if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); + device_add(&fdc_at_device); return ret; } #if defined(DEV_BRANCH) && defined(USE_OLIVETTI) int -machine_at_olim290_init(const machine_t *model) +machine_at_m290_init(const machine_t *model) { int ret; @@ -800,12 +800,12 @@ machine_at_olim290_init(const machine_t *model) 0x000f0000, 65536, 0); if (bios_only || !ret) - return ret; + return ret; machine_at_common_init(model); device_add(&keyboard_at_olivetti_device); - if (fdc_type == FDC_INTERNAL) + if (fdc_type == FDC_INTERNAL) device_add(&fdc_at_device); device_add(&olivetti_eva_device); @@ -815,17 +815,17 @@ machine_at_olim290_init(const machine_t *model) #endif const device_t * -at_m300_08_get_device(void) +at_m30008_get_device(void) { return &oti067_m300_device; } int -machine_at_olim300_08_init(const machine_t *model) +machine_at_m30008_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/olivetti_m300_08/BIOS.ROM", + ret = bios_load_linear("roms/machines/m30008/BIOS.ROM", 0x000f0000, 65536, 0); if (bios_only || !ret) @@ -845,11 +845,11 @@ machine_at_olim300_08_init(const machine_t *model) /* Almost identical to M300-08, save for CPU speed, VRAM, and BIOS identification string */ int -machine_at_olim300_15_init(const machine_t *model) +machine_at_m30015_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/olivetti_m300_15/BIOS.ROM", + ret = bios_load_linear("roms/machines/m30015/BIOS.ROM", 0x000f0000, 65536, 0); if (bios_only || !ret) @@ -862,8 +862,8 @@ machine_at_olim300_15_init(const machine_t *model) device_add(&pc87310_ide_device); /* Stock VRAM is maxed out, so no need to expose video card config */ - if (gfxcard == VID_INTERNAL) - device_add(&oti067_m300_device); + if (gfxcard == VID_INTERNAL) + device_add(&oti067_m300_device); return ret; } diff --git a/src/machine/m_xt.c b/src/machine/m_xt.c index e2b82c2a6..ea022895c 100644 --- a/src/machine/m_xt.c +++ b/src/machine/m_xt.c @@ -336,8 +336,8 @@ machine_xt_iskra3104_init(const machine_t *model) int ret; ret = bios_load_interleaved("roms/machines/iskra3104/198.bin", - "roms/machines/iskra3104/199.bin", - 0x000fc000, 16384, 0); + "roms/machines/iskra3104/199.bin", + 0x000fc000, 16384, 0); if (bios_only || !ret) return ret; @@ -349,15 +349,15 @@ machine_xt_iskra3104_init(const machine_t *model) int -machine_xt_ncrpc4i_init(const machine_t *model) +machine_xt_pc4i_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/ncr_pc4i/NCR_PC4i_BIOSROM_1985.bin", + ret = bios_load_linear("roms/machines/pc4i/NCR_PC4i_BIOSROM_1985.bin", 0x000fc000, 16384, 0); if (bios_only || !ret) - return ret; + return ret; machine_xt_clone_init(model); @@ -374,7 +374,7 @@ machine_xt_mpc1600_init(const machine_t *model) 0x000fc000, 16384, 0); if (bios_only || !ret) - return ret; + return ret; device_add(&keyboard_pc82_device); @@ -385,20 +385,20 @@ machine_xt_mpc1600_init(const machine_t *model) int -machine_xt_eaglepcspirit_init(const machine_t *model) +machine_xt_pcspirit_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/eagle_pcspirit/u1101.bin", + ret = bios_load_linear("roms/machines/pcspirit/u1101.bin", 0x000fe000, 16384, 0); if (ret) { - bios_load_aux_linear("roms/machines/eagle_pcspirit/u1103.bin", + bios_load_aux_linear("roms/machines/pcspirit/u1103.bin", 0x000fc000, 8192, 0); } if (bios_only || !ret) - return ret; + return ret; device_add(&keyboard_pc82_device); @@ -409,15 +409,15 @@ machine_xt_eaglepcspirit_init(const machine_t *model) int -machine_xt_multitechpc700_init(const machine_t *model) +machine_xt_pc700_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/multitech_pc700/multitech pc-700 3.1.bin", + ret = bios_load_linear("roms/machines/pc700/multitech pc-700 3.1.bin", 0x000fe000, 8192, 0); - + if (bios_only || !ret) - return ret; + return ret; device_add(&keyboard_pc_device); diff --git a/src/machine/m_xt_olivetti.c b/src/machine/m_xt_olivetti.c index 44c13d32f..331ebdcac 100644 --- a/src/machine/m_xt_olivetti.c +++ b/src/machine/m_xt_olivetti.c @@ -84,13 +84,13 @@ typedef struct { int mouse_mode; int x, y, b; pc_timer_t send_delay_timer; -} olim24_kbd_t; +} m24_kbd_t; typedef struct { ogc_t ogc; colorplus_t colorplus; int mode; -} olim19_vid_t; +} m19_vid_t; static uint8_t key_queue[16]; static int key_queue_start = 0, @@ -122,7 +122,7 @@ m24_log(const char *fmt, ...) static void m24_kbd_poll(void *priv) { - olim24_kbd_t *m24_kbd = (olim24_kbd_t *)priv; + m24_kbd_t *m24_kbd = (m24_kbd_t *)priv; timer_advance_u64(&m24_kbd->send_delay_timer, 1000 * TIMER_USEC); if (m24_kbd->wantirq) { @@ -165,7 +165,7 @@ m24_kbd_adddata_ex(uint16_t val) static void m24_kbd_write(uint16_t port, uint8_t val, void *priv) { - olim24_kbd_t *m24_kbd = (olim24_kbd_t *)priv; + m24_kbd_t *m24_kbd = (m24_kbd_t *)priv; #if ENABLE_KEYBOARD_LOG m24_log("M24: write %04X %02X\n", port, val); @@ -246,7 +246,7 @@ m24_kbd_write(uint16_t port, uint8_t val, void *priv) static uint8_t m24_kbd_read(uint16_t port, void *priv) { - olim24_kbd_t *m24_kbd = (olim24_kbd_t *)priv; + m24_kbd_t *m24_kbd = (m24_kbd_t *)priv; uint8_t ret = 0xff; switch (port) { @@ -284,7 +284,7 @@ m24_kbd_read(uint16_t port, void *priv) static void m24_kbd_close(void *priv) { - olim24_kbd_t *kbd = (olim24_kbd_t *)priv; + m24_kbd_t *kbd = (m24_kbd_t *)priv; /* Stop the timer. */ timer_disable(&kbd->send_delay_timer); @@ -306,7 +306,7 @@ m24_kbd_close(void *priv) static void m24_kbd_reset(void *priv) { - olim24_kbd_t *m24_kbd = (olim24_kbd_t *)priv; + m24_kbd_t *m24_kbd = (m24_kbd_t *)priv; /* Initialize the keyboard. */ m24_kbd->status = STAT_LOCK | STAT_CD; @@ -327,7 +327,7 @@ m24_kbd_reset(void *priv) static int ms_poll(int x, int y, int z, int b, void *priv) { - olim24_kbd_t *m24_kbd = (olim24_kbd_t *)priv; + m24_kbd_t *m24_kbd = (m24_kbd_t *)priv; m24_kbd->x += x; m24_kbd->y += y; @@ -408,7 +408,7 @@ ms_poll(int x, int y, int z, int b, void *priv) static void -m24_kbd_init(olim24_kbd_t *kbd) +m24_kbd_init(m24_kbd_t *kbd) { /* Initialize the keyboard. */ @@ -432,7 +432,7 @@ m24_kbd_init(olim24_kbd_t *kbd) static void m19_vid_out(uint16_t addr, uint8_t val, void *priv) { - olim19_vid_t *vid = (olim19_vid_t *)priv; + m19_vid_t *vid = (m19_vid_t *)priv; int oldmode = vid->mode; /* activating plantronics mode */ @@ -473,7 +473,7 @@ m19_vid_out(uint16_t addr, uint8_t val, void *priv) static uint8_t m19_vid_in(uint16_t addr, void *priv) { - olim19_vid_t *vid = (olim19_vid_t *)priv; + m19_vid_t *vid = (m19_vid_t *)priv; if (vid->mode == PLANTRONICS_MODE) return colorplus_in(addr, &vid->colorplus); @@ -485,7 +485,7 @@ m19_vid_in(uint16_t addr, void *priv) static uint8_t m19_vid_read(uint32_t addr, void *priv) { - olim19_vid_t *vid = (olim19_vid_t *)priv; + m19_vid_t *vid = (m19_vid_t *)priv; vid->colorplus.cga.mapping = vid->ogc.cga.mapping; if (vid->mode == PLANTRONICS_MODE) @@ -498,7 +498,7 @@ m19_vid_read(uint32_t addr, void *priv) static void m19_vid_write(uint32_t addr, uint8_t val, void *priv) { - olim19_vid_t *vid = (olim19_vid_t *)priv; + m19_vid_t *vid = (m19_vid_t *)priv; colorplus_write(addr, val, &vid->colorplus); ogc_write(addr, val, &vid->ogc); @@ -508,7 +508,7 @@ m19_vid_write(uint32_t addr, uint8_t val, void *priv) static void m19_vid_close(void *priv) { - olim19_vid_t *vid = (olim19_vid_t *)priv; + m19_vid_t *vid = (m19_vid_t *)priv; free(vid->ogc.cga.vram); free(vid->colorplus.cga.vram); @@ -519,7 +519,7 @@ m19_vid_close(void *priv) static void m19_vid_speed_changed(void *priv) { - olim19_vid_t *vid = (olim19_vid_t *)priv; + m19_vid_t *vid = (m19_vid_t *)priv; colorplus_recalctimings(&vid->colorplus); ogc_recalctimings(&vid->ogc); @@ -527,7 +527,7 @@ m19_vid_speed_changed(void *priv) static void -m19_vid_init(olim19_vid_t *vid) +m19_vid_init(m19_vid_t *vid) { /* int display_type; */ vid->mode = OLIVETTI_OGC_MODE; @@ -537,7 +537,7 @@ m19_vid_init(olim19_vid_t *vid) /* display_type = device_get_config_int("display_type"); */ /* OGC emulation part begin */ - loadfont_ex("roms/machines/olivetti_m19/BIOS.BIN", 1, 90); + loadfont_ex("roms/machines/m19/BIOS.BIN", 1, 90); /* composite is not working yet */ vid->ogc.cga.composite = 0; // (display_type != CGA_RGB); /* vid->ogc.cga.snow_enabled = device_get_config_int("snow_enabled"); */ @@ -704,30 +704,30 @@ m24_get_device(void) int -machine_xt_olim24_init(const machine_t *model) +machine_xt_m24_init(const machine_t *model) { int ret; - ret = bios_load_interleaved("roms/machines/olivetti_m24/olivetti_m24_version_1.43_low.bin", - "roms/machines/olivetti_m24/olivetti_m24_version_1.43_high.bin", + ret = bios_load_interleaved("roms/machines/m24/olivetti_m24_version_1.43_low.bin", + "roms/machines/m24/olivetti_m24_version_1.43_high.bin", 0x000fc000, 16384, 0); if (bios_only || !ret) - return ret; + return ret; - if (gfxcard == VID_INTERNAL) + if (gfxcard == VID_INTERNAL) device_add(&ogc_m24_device); - olim24_kbd_t *m24_kbd; + m24_kbd_t *m24_kbd; - m24_kbd = (olim24_kbd_t *)malloc(sizeof(olim24_kbd_t)); - memset(m24_kbd, 0x00, sizeof(olim24_kbd_t)); + m24_kbd = (m24_kbd_t *) malloc(sizeof(m24_kbd_t)); + memset(m24_kbd, 0x00, sizeof(m24_kbd_t)); machine_common_init(model); - /* On-board FDC can be disabled only on M24SP */ + /* On-board FDC can be disabled only on M24SP */ if (fdc_type == FDC_INTERNAL) - device_add(&fdc_xt_device); + device_add(&fdc_xt_device); /* Address 66-67 = mainboard dip-switch settings */ io_sethandler(0x0066, 2, m24_read, NULL, NULL, NULL, NULL, NULL, NULL); @@ -751,20 +751,20 @@ machine_xt_olim24_init(const machine_t *model) * - handles only 360kb floppy drives (drive type and capacity selectable with jumpers mapped to unknown memory locations) */ int -machine_xt_olim240_init(const machine_t *model) +machine_xt_m240_init(const machine_t *model) { int ret; - ret = bios_load_interleaved("roms/machines/olivetti_m240/olivetti_m240_pch6_2.04_low.bin", - "roms/machines/olivetti_m240/olivetti_m240_pch5_2.04_high.bin", + ret = bios_load_interleaved("roms/machines/m240/olivetti_m240_pch6_2.04_low.bin", + "roms/machines/m240/olivetti_m240_pch5_2.04_high.bin", 0x000f8000, 32768, 0); if (bios_only || !ret) - return ret; + return ret; - machine_common_init(model); + machine_common_init(model); - pit_ctr_set_out_func(&pit->counters[1], pit_refresh_timer_xt); + pit_ctr_set_out_func(&pit->counters[1], pit_refresh_timer_xt); /* * port 60: should return jumper settings only under unknown conditions @@ -774,10 +774,10 @@ machine_xt_olim240_init(const machine_t *model) */ device_add(&keyboard_at_olivetti_device); - /* FIXME: make sure this is correct?? */ + /* FIXME: make sure this is correct?? */ device_add(&at_nvr_device); - if (fdc_type == FDC_INTERNAL) + if (fdc_type == FDC_INTERNAL) device_add(&fdc_xt_device); if (joystick_type) @@ -796,22 +796,22 @@ machine_xt_olim240_init(const machine_t *model) * - setting CPU speed at 4.77MHz sometimes throws a timer error. If the machine is hard-resetted, the error disappears. */ int -machine_xt_olim19_init(const machine_t *model) +machine_xt_m19_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/olivetti_m19/BIOS.BIN", + ret = bios_load_linear("roms/machines/m19/BIOS.BIN", 0x000fc000, 16384, 0); if (bios_only || !ret) return ret; - olim19_vid_t *vid; + m19_vid_t *vid; /* Do not move memory allocation elsewhere. */ - vid = (olim19_vid_t *)malloc(sizeof(olim19_vid_t)); - memset(vid, 0x00, sizeof(olim19_vid_t)); - + vid = (m19_vid_t *) malloc(sizeof(m19_vid_t)); + memset(vid, 0x00, sizeof(m19_vid_t)); + machine_common_init(model); /* On-board FDC cannot be disabled */ diff --git a/src/machine/m_xt_philips.c b/src/machine/m_xt_philips.c index b03dbf7ba..f9b205d4c 100644 --- a/src/machine/m_xt_philips.c +++ b/src/machine/m_xt_philips.c @@ -41,13 +41,15 @@ #include <86box/io.h> #include <86box/video.h> + typedef struct { uint8_t reg; } philips_t; -#ifdef ENABLE_philips_LOG -int philips_do_log = ENABLE_philips_LOG; + +#ifdef ENABLE_PHILIPS_LOG +int philips_do_log = ENABLE_PHILIPS_LOG; static void philips_log(const char *fmt, ...) { @@ -67,21 +69,20 @@ static void philips_write(uint16_t port, uint8_t val, void *priv) { philips_t *dev = (philips_t *) priv; - - switch (port) - { - /* port 0xc0 - * bit 7: turbo - * bits 4-5: rtc read/set (I2C Bus SDA/SCL?) - * bit 2: parity disabled - */ - case 0xc0: - dev->reg = val; - if (val & 0x80) - cpu_dynamic_switch(cpu); - else - cpu_dynamic_switch(0); - break; + + switch (port) { + /* port 0xc0 + * bit 7: turbo + * bits 4-5: rtc read/set (I2C Bus SDA/SCL?) + * bit 2: parity disabled + */ + case 0xc0: + dev->reg = val; + if (val & 0x80) + cpu_dynamic_switch(cpu); + else + cpu_dynamic_switch(0); + break; } philips_log("Philips XT Mainboard: Write %02x at %02x\n", val, port); @@ -94,17 +95,15 @@ philips_read(uint16_t port, void *priv) philips_t *dev = (philips_t *) priv; uint8_t ret = 0xff; - switch (port) - { - /* port 0xc0 - * bit 7: turbo - * bits 4-5: rtc read/set - * bit 2: parity disabled - */ - case 0xc0: - ret = dev->reg; - break; - + switch (port) { + /* port 0xc0 + * bit 7: turbo + * bits 4-5: rtc read/set + * bit 2: parity disabled + */ + case 0xc0: + ret = dev->reg; + break; } philips_log("Philips XT Mainboard: Read %02x at %02x\n", ret, port); @@ -128,7 +127,7 @@ philips_init(const device_t *info) memset(dev, 0, sizeof(philips_t)); dev->reg = 0x40; - + io_sethandler(0x0c0, 0x01, philips_read, NULL, NULL, philips_write, NULL, NULL, dev); return dev; @@ -152,7 +151,7 @@ machine_xt_philips_common_init(const machine_t *model) pit_ctr_set_out_func(&pit->counters[1], pit_refresh_timer_xt); /* On-board FDC cannot be disabled */ - device_add(&fdc_xt_device); + device_add(&fdc_xt_device); nmi_init(); @@ -172,11 +171,11 @@ machine_xt_p3105_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/philips_p3105/philipsnms9100.bin", + ret = bios_load_linear("roms/machines/p3105/philipsnms9100.bin", 0x000fc000, 16384, 0); if (bios_only || !ret) - return ret; + return ret; machine_xt_philips_common_init(model); @@ -188,11 +187,11 @@ machine_xt_p3120_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/philips_p3120/philips_p3120.bin", + ret = bios_load_linear("roms/machines/p3120/philips_p3120.bin", 0x000f8000, 32768, 0); if (bios_only || !ret) - return ret; + return ret; machine_xt_philips_common_init(model); diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index ceaf3d297..fe1d53fd3 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -67,12 +67,12 @@ const machine_t machines[] = { { "[8088] Columbia Data Products MPC-1600", "mpc1600", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 512, 64, 0, machine_xt_mpc1600_init, NULL }, { "[8088] Compaq Portable", "portable", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_compaq_portable_init, NULL }, { "[8088] DTK XT clone", "dtk", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_dtk_init, NULL }, - { "[8088] Eagle PC Spirit", "pcspirit", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_eaglepcspirit_init, NULL }, + { "[8088] Eagle PC Spirit", "pcspirit", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_pcspirit_init, NULL }, { "[8088] Generic XT clone", "genxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_genxt_init, NULL }, { "[8088] Juko XT clone", "jukopc", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_jukopc_init, NULL }, - { "[8088] Multitech PC-700", "pc700", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_multitechpc700_init, NULL }, - { "[8088] NCR PC4i", "pc4i", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 256, 0, machine_xt_ncrpc4i_init, NULL }, - { "[8088] Olivetti M19", "m19", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 256, 640, 256, 0, machine_xt_olim19_init, NULL }, + { "[8088] Multitech PC-700", "pc700", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_pc700_init, NULL }, + { "[8088] NCR PC4i", "pc4i", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 256, 0, machine_xt_pc4i_init, NULL }, + { "[8088] Olivetti M19", "m19", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 256, 640, 256, 0, machine_xt_m19_init, NULL }, { "[8088] OpenXT", "openxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_open_xt_init, NULL }, { "[8088] Philips P3105/NMS9100", "p3105", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_XTA, 256, 768, 256, 0, machine_xt_p3105_init, NULL }, { "[8088] Phoenix XT clone", "pxxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_pxxt_init, NULL }, @@ -98,8 +98,8 @@ const machine_t machines[] = { { "[8086] Amstrad PC20(0)", "pc200", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE | MACHINE_NONMI, 512, 640, 128, 63, machine_pc200_init, pc200_get_device }, { "[8086] Amstrad PPC512/640", "ppc512", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE | MACHINE_NONMI, 512, 640, 128, 63, machine_ppc512_init, ppc512_get_device }, { "[8086] Compaq Deskpro", "deskpro", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_compaq_deskpro_init, NULL }, - { "[8086] Olivetti M21/24/24SP", "m24", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE, 128, 640, 128, 0, machine_xt_olim24_init, m24_get_device }, - { "[8086] Olivetti M240", "m240", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_olim240_init, NULL }, + { "[8086] Olivetti M21/24/24SP", "m24", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO | MACHINE_MOUSE, 128, 640, 128, 0, machine_xt_m24_init, m24_get_device }, + { "[8086] Olivetti M240", "m240", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_m240_init, NULL }, { "[8086] Schetmash Iskra-3104", "iskra3104", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 128, 0, machine_xt_iskra3104_init, NULL }, { "[8086] Tandy 1000 SL/2", "tandy1000sl2", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 512, 768, 128, 0, machine_tandy1000sl2_init, tandy1k_sl_get_device }, { "[8086] Toshiba T1200", "t1200", MACHINE_TYPE_8086, CPU_PKG_8086, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO, 1024, 2048,1024, 63, machine_xt_t1200_init, t1200_get_device }, @@ -123,9 +123,9 @@ const machine_t machines[] = { { "[ISA] Compaq Portable II", "portableii", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 640, 16384, 128, 127, machine_at_portableii_init, NULL }, { "[ISA] Compaq Portable III", "portableiii", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_VIDEO, 640, 16384, 128, 127, machine_at_portableiii_init, at_cpqiii_get_device }, { "[ISA] MR 286 clone", "mr286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 512, 16384, 128, 127, machine_at_mr286_init, NULL }, - { "[ISA] NCR PC8/810/710/3390/3392", "pc8", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_ncrpc8_init, NULL }, + { "[ISA] NCR PC8/810/710/3390/3392", "pc8", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_pc8_init, NULL }, #if defined(DEV_BRANCH) && defined(USE_OLIVETTI) - { "[ISA] Olivetti M290", "m290", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 640, 16384, 128, 127, machine_at_olim290_init, NULL }, + { "[ISA] Olivetti M290", "m290", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 640, 16384, 128, 127, machine_at_m290_init, NULL }, #endif #if defined(DEV_BRANCH) && defined(USE_OPEN_AT) { "[ISA] OpenAT", "open_at", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 256, 15872, 128, 63, machine_at_open_at_init, NULL }, @@ -137,7 +137,7 @@ const machine_t machines[] = { { "[GC103] Quadtel 286 clone", "quadt286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_quadt286_init, NULL }, { "[GC103] Trigem 286M", "tg286m", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 512, 8192, 128, 127, machine_at_tg286m_init, NULL }, { "[NEAT] AMI 286 clone", "ami286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_neat_ami_init, NULL }, - { "[NEAT] NCR 3302", "3302", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_VIDEO, 512, 16384, 128, 127, machine_at_ncr3302_init, NULL }, + { "[NEAT] NCR 3302", "3302", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_VIDEO, 512, 16384, 128, 127, machine_at_3302_init, NULL }, { "[NEAT] Phoenix 286 clone", "px286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_px286_init, NULL }, { "[SCAT] Award 286 clone", "award286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_award286_init, NULL }, { "[SCAT] GW-286CT GEAR", "gw286ct", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 128, 127, machine_at_gw286ct_init, NULL }, @@ -154,7 +154,7 @@ const machine_t machines[] = { /* 386SX machines */ { "[ISA] IBM PS/1 model 2121", "ibmps1_2121", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO_FIXED, 2048, 6144,1024, 63, machine_ps1_m2121_init, NULL }, { "[ISA] IBM PS/1 m.2121+ISA", "ibmps1_2121_isa", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 6144,1024, 63, machine_ps1_m2121_init, NULL }, - { "[ISA] NCR PC916SX", "pc916sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 128, 127, machine_at_ncrpc916sx_init, NULL }, + { "[ISA] NCR PC916SX", "pc916sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 128, 127, machine_at_pc916sx_init, NULL }, #if defined(DEV_BRANCH) && defined(USE_M6117) { "[ALi M6117] Acrosser AR-B1375", "arb1375", MACHINE_TYPE_386SX, CPU_PKG_M6117, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 32768,1024, 127, machine_at_arb1375_init, NULL }, { "[ALi M6117] Acrosser PJ-A511M", "pja511m", MACHINE_TYPE_386SX, CPU_PKG_M6117, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 32768,1024, 127, machine_at_pja511m_init, NULL }, @@ -163,12 +163,12 @@ const machine_t machines[] = { { "[HT18] AMA-932J", "ama932j", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE | MACHINE_VIDEO, 512, 8192, 128, 127, machine_at_ama932j_init, at_ama932j_get_device }, { "[Intel 82335] ADI 386SX", "adi386sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_adi386sx_init, NULL }, { "[Intel 82335] Shuttle 386SX", "shuttle386sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_shuttle386sx_init, NULL }, - { "[NEAT] Commodore SL386SX-16", "cmdsl386sx16", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 8192, 512, 127, machine_at_commodore_sl386sx16_init, NULL }, + { "[NEAT] Commodore SL386SX-16", "cmdsl386sx16", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 8192, 512, 127, machine_at_cmdsl386sx16_init, NULL }, { "[NEAT] DTK 386SX clone", "dtk386", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_neat_init, NULL }, - { "[OPTi 283] Olivetti M300-08", "m30008", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 20000000, 20000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 16384, 2048, 127, machine_at_olim300_08_init, at_m300_08_get_device }, - { "[OPTi 283] Olivetti M300-15", "m30015", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 25000000, 25000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 16384, 2048, 127, machine_at_olim300_15_init, NULL }, + { "[OPTi 283] Olivetti M300-08", "m30008", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 20000000, 20000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 16384, 2048, 127, machine_at_m30008_init, at_m30008_get_device }, + { "[OPTi 283] Olivetti M300-15", "m30015", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 25000000, 25000000, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 16384, 2048, 127, machine_at_m30015_init, NULL }, { "[OPTi 291] DTK PPM-3333P", "awardsx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 1024, 127, machine_at_awardsx_init, NULL }, - { "[SCAMP] Commodore SL386SX-25", "cmdsl386sx25", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 8192, 512, 127, machine_at_commodore_sl386sx25_init, at_commodore_sl386sx25_get_device }, + { "[SCAMP] Commodore SL386SX-25", "cmdsl386sx25", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 8192, 512, 127, machine_at_cmdsl386sx25_init, at_cmdsl386sx25_get_device }, { "[SCAMP] Samsung SPC-6033P", "spc6033p", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 2048, 12288, 2048, 127, machine_at_spc6033p_init, at_spc6033p_get_device }, { "[SCAT] KMX-C-02", "kmxc02", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 16384, 512, 127, machine_at_kmxc02_init, NULL }, { "[WD76C10] Amstrad MegaPC", "megapc", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_BUS_PS2 | MACHINE_IDE | MACHINE_VIDEO, 1024, 32768, 1024, 127, machine_at_wd76c10_init, NULL }, From 2b552ea71ae49be5aaffcd6004bd7447de8502cd Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 19:07:16 -0300 Subject: [PATCH 12/14] Automatically copy NVR files from old machine names to the new names --- src/config.c | 101 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 74 insertions(+), 27 deletions(-) diff --git a/src/config.c b/src/config.c index 2b01cf8a5..5ddf6706d 100644 --- a/src/config.c +++ b/src/config.c @@ -32,6 +32,7 @@ #include #include #include +#include #define HAVE_STDARG_H #include <86box/86box.h> #include "cpu.h" @@ -535,71 +536,117 @@ static void load_machine(void) { char *cat = "Machine"; - char *p; - int c, i, speed, legacy_mfg, legacy_cpu; + char *p, *migrate_from = NULL; + int c, i, j, speed, legacy_mfg, legacy_cpu; double multi; p = config_get_string(cat, "machine", NULL); if (p != NULL) { - if (! strcmp(p, "8500ttc")) /* fix typo */ + migrate_from = p; + if (! strcmp(p, "8500ttc")) /* migrate typo... */ machine = machine_get_machine_from_internal_name("8600ttc"); - else if (! strcmp(p, "eagle_pcspirit")) /* migrate legacy name */ + else if (! strcmp(p, "eagle_pcspirit")) /* ...legacy names... */ machine = machine_get_machine_from_internal_name("pcspirit"); - else if (! strcmp(p, "multitech_pc700")) /*migrate legacy name */ + else if (! strcmp(p, "multitech_pc700")) machine = machine_get_machine_from_internal_name("pc700"); - else if (! strcmp(p, "ncr_pc4i")) /* migrate legacy name */ + else if (! strcmp(p, "ncr_pc4i")) machine = machine_get_machine_from_internal_name("pc4i"); - else if (! strcmp(p, "olivetti_m19")) /* migrate legacy name */ + else if (! strcmp(p, "olivetti_m19")) machine = machine_get_machine_from_internal_name("m19"); - else if (! strcmp(p, "open_xt")) /* migrate legacy name */ + else if (! strcmp(p, "open_xt")) machine = machine_get_machine_from_internal_name("openxt"); - else if (! strcmp(p, "philips_p3105")) /* migrate legacy name */ + else if (! strcmp(p, "philips_p3105")) machine = machine_get_machine_from_internal_name("p3105"); - else if (! strcmp(p, "philips_p3120")) /* migrate legacy name */ + else if (! strcmp(p, "philips_p3120")) machine = machine_get_machine_from_internal_name("p3120"); - else if (! strcmp(p, "olivetti_m24")) /* migrate legacy name */ + else if (! strcmp(p, "olivetti_m24")) machine = machine_get_machine_from_internal_name("m24"); - else if (! strcmp(p, "olivetti_m240")) /* migrate legacy name */ + else if (! strcmp(p, "olivetti_m240")) machine = machine_get_machine_from_internal_name("m240"); - else if (! strcmp(p, "ncr_pc8")) /* migrate legacy name */ + else if (! strcmp(p, "ncr_pc8")) machine = machine_get_machine_from_internal_name("pc8"); - else if (! strcmp(p, "olivetti_m290")) /* migrate legacy name */ + else if (! strcmp(p, "olivetti_m290")) machine = machine_get_machine_from_internal_name("m290"); - else if (! strcmp(p, "ncr_3302")) /* migrate legacy name */ + else if (! strcmp(p, "ncr_3302")) machine = machine_get_machine_from_internal_name("3302"); - else if (! strcmp(p, "ncr_pc916sx")) /* migrate legacy name */ + else if (! strcmp(p, "ncr_pc916sx")) machine = machine_get_machine_from_internal_name("pc916sx"); - else if (! strcmp(p, "cbm_sl386sx16")) /* migrate legacy name */ + else if (! strcmp(p, "cbm_sl386sx16")) machine = machine_get_machine_from_internal_name("cmdsl386sx16"); - else if (! strcmp(p, "olivetti_m300_08")) /* migrate legacy name */ + else if (! strcmp(p, "olivetti_m300_08")) machine = machine_get_machine_from_internal_name("m30008"); - else if (! strcmp(p, "olivetti_m300_15")) /* migrate legacy name */ + else if (! strcmp(p, "olivetti_m300_15")) machine = machine_get_machine_from_internal_name("m30015"); - else if (! strcmp(p, "cbm_sl386sx25")) /* migrate legacy name */ + else if (! strcmp(p, "cbm_sl386sx25")) machine = machine_get_machine_from_internal_name("cmdsl386sx25"); - else if (! strcmp(p, "president")) /* migrate removed machine */ + else if (! strcmp(p, "president")) { /* ...and removed machines */ machine = machine_get_machine_from_internal_name("mb500n"); - else if (! strcmp(p, "j656vxd")) /* migrate removed machine */ + migrate_from = NULL; + } else if (! strcmp(p, "j656vxd")) { machine = machine_get_machine_from_internal_name("p55va"); - else + migrate_from = NULL; + } else { machine = machine_get_machine_from_internal_name(p); + migrate_from = NULL; + } } else machine = 0; - if (machine >= machine_count()) - machine = machine_count() - 1; /* This is for backwards compatibility. */ p = config_get_string(cat, "model", NULL); if (p != NULL) { - if (! strcmp(p, "p55r2p4")) /* fix typo */ + migrate_from = p; + if (! strcmp(p, "p55r2p4")) /* migrate typo */ machine = machine_get_machine_from_internal_name("p55t2p4"); - else + else { machine = machine_get_machine_from_internal_name(p); + migrate_from = NULL; + } config_delete_var(cat, "model"); } if (machine >= machine_count()) machine = machine_count() - 1; + /* Copy NVR files when migrating a machine to a new internal name. */ + if (migrate_from) { + char old_fn[256]; + strcpy(old_fn, migrate_from); + strcat(old_fn, "."); + c = strlen(old_fn); + char new_fn[256]; + strcpy(new_fn, machines[machine].internal_name); + strcat(new_fn, "."); + i = strlen(new_fn); + + /* Iterate through NVR files. */ + DIR *dirp = opendir(nvr_path(".")); + if (dirp) { + struct dirent *entry; + while ((entry = readdir(dirp))) { + /* Check if this file corresponds to the old name. */ + if (strncmp(entry->d_name, old_fn, c)) + continue; + + /* Add extension to the new name. */ + strcpy(&new_fn[i], &entry->d_name[c]); + + /* Only copy if a file with the new name doesn't already exist. */ + FILE *g = nvr_fopen(new_fn, "rb"); + if (!g) { + FILE *f = nvr_fopen(entry->d_name, "rb"); + g = nvr_fopen(new_fn, "wb"); + + uint8_t buf[4096]; + while ((j = fread(buf, 1, sizeof(buf), f))) + fwrite(buf, 1, j, g); + + fclose(f); + } + fclose(g); + } + } + } + cpu_override = config_get_int(cat, "cpu_override", 0); cpu_f = NULL; p = config_get_string(cat, "cpu_family", NULL); From 4a41e4d4868e1fdefe6eea3dc772ca9d1216446f Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 19:23:22 -0300 Subject: [PATCH 13/14] De-underscore PowerMate V, OpenAT and OpenXT --- src/include/86box/machine.h | 6 +++--- src/machine/m_at.c | 4 ++-- src/machine/m_at_socket4_5.c | 4 ++-- src/machine/m_xt.c | 4 ++-- src/machine/machine_table.c | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index c1f9ea75e..aef77b213 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -233,7 +233,7 @@ extern int machine_at_ibmxt286_init(const machine_t *); extern int machine_at_siemens_init(const machine_t *); //Siemens PCD-2L. N82330 discrete machine. It segfaults in some places #if defined(DEV_BRANCH) && defined(USE_OPEN_AT) -extern int machine_at_open_at_init(const machine_t *); +extern int machine_at_openat_init(const machine_t *); #endif /* m_at_286_386sx.c */ @@ -405,7 +405,7 @@ extern int machine_at_zappa_init(const machine_t *); extern int machine_at_mb500n_init(const machine_t *); extern int machine_at_apollo_init(const machine_t *); extern int machine_at_vectra54_init(const machine_t *); -extern int machine_at_powermate_v_init(const machine_t *); +extern int machine_at_powermatev_init(const machine_t *); extern int machine_at_acerv30_init(const machine_t *); extern int machine_at_p5sp4_init(const machine_t *); @@ -642,7 +642,7 @@ extern int machine_xt_americxt_init(const machine_t *); extern int machine_xt_amixt_init(const machine_t *); extern int machine_xt_dtk_init(const machine_t *); extern int machine_xt_jukopc_init(const machine_t *); -extern int machine_xt_open_xt_init(const machine_t *); +extern int machine_xt_openxt_init(const machine_t *); extern int machine_xt_pcxt_init(const machine_t *); extern int machine_xt_pxxt_init(const machine_t *); extern int machine_xt_pc4i_init(const machine_t *); diff --git a/src/machine/m_at.c b/src/machine/m_at.c index ec55f1691..e10e1f549 100644 --- a/src/machine/m_at.c +++ b/src/machine/m_at.c @@ -263,11 +263,11 @@ machine_at_siemens_init(const machine_t *model) #if defined(DEV_BRANCH) && defined(USE_OPEN_AT) int -machine_at_open_at_init(const machine_t *model) +machine_at_openat_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/open_at/bios.bin", + ret = bios_load_linear("roms/machines/openat/bios.bin", 0x000f0000, 65536, 0); if (bios_only || !ret) diff --git a/src/machine/m_at_socket4_5.c b/src/machine/m_at_socket4_5.c index 8a96770c9..00dc7274e 100644 --- a/src/machine/m_at_socket4_5.c +++ b/src/machine/m_at_socket4_5.c @@ -666,11 +666,11 @@ machine_at_vectra54_init(const machine_t *model) int -machine_at_powermate_v_init(const machine_t *model) +machine_at_powermatev_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/powermate_v/BIOS.ROM", + ret = bios_load_linear("roms/machines/powermatev/BIOS.ROM", 0x000e0000, 131072, 0); if (bios_only || !ret) diff --git a/src/machine/m_xt.c b/src/machine/m_xt.c index ea022895c..581a5d7c9 100644 --- a/src/machine/m_xt.c +++ b/src/machine/m_xt.c @@ -254,11 +254,11 @@ machine_xt_jukopc_init(const machine_t *model) int -machine_xt_open_xt_init(const machine_t *model) +machine_xt_openxt_init(const machine_t *model) { int ret; - ret = bios_load_linear("roms/machines/open_xt/pcxt31.bin", + ret = bios_load_linear("roms/machines/openxt/pcxt31.bin", 0x000fe000, 8192, 0); if (bios_only || !ret) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index fe1d53fd3..ef9bacb5e 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -73,7 +73,7 @@ const machine_t machines[] = { { "[8088] Multitech PC-700", "pc700", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 128, 640, 64, 0, machine_xt_pc700_init, NULL }, { "[8088] NCR PC4i", "pc4i", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 256, 640, 256, 0, machine_xt_pc4i_init, NULL }, { "[8088] Olivetti M19", "m19", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_VIDEO_FIXED, 256, 640, 256, 0, machine_xt_m19_init, NULL }, - { "[8088] OpenXT", "openxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_open_xt_init, NULL }, + { "[8088] OpenXT", "openxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_openxt_init, NULL }, { "[8088] Philips P3105/NMS9100", "p3105", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_XTA, 256, 768, 256, 0, machine_xt_p3105_init, NULL }, { "[8088] Phoenix XT clone", "pxxt", MACHINE_TYPE_8088, CPU_PKG_8088, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC, 64, 640, 64, 0, machine_xt_pxxt_init, NULL }, { "[8088] Schneider EuroPC", "europc", MACHINE_TYPE_8088, CPU_PKG_8088_EUROPC, 0, 0, 0, 0, 0, 0, 0, MACHINE_PC | MACHINE_XTA | MACHINE_MOUSE, 512, 640, 128, 15, machine_europc_init, NULL }, @@ -128,7 +128,7 @@ const machine_t machines[] = { { "[ISA] Olivetti M290", "m290", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 640, 16384, 128, 127, machine_at_m290_init, NULL }, #endif #if defined(DEV_BRANCH) && defined(USE_OPEN_AT) - { "[ISA] OpenAT", "open_at", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 256, 15872, 128, 63, machine_at_open_at_init, NULL }, + { "[ISA] OpenAT", "openat", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 256, 15872, 128, 63, machine_at_openat_init, NULL }, #endif { "[ISA] Phoenix IBM AT", "ibmatpx", MACHINE_TYPE_286, CPU_PKG_286, 0, 6000000, 8000000, 0, 0, 0, 0, MACHINE_AT, 256, 15872, 128, 63, machine_at_ibmatpx_init, NULL }, { "[ISA] Quadtel IBM AT", "ibmatquadtel", MACHINE_TYPE_286, CPU_PKG_286, 0, 6000000, 8000000, 0, 0, 0, 0, MACHINE_AT, 256, 15872, 128, 63, machine_at_ibmatquadtel_init, NULL }, @@ -281,7 +281,7 @@ const machine_t machines[] = { { "[i430FX] AMI Apollo", "apollo", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_apollo_init, NULL }, { "[i430FX] HP Vectra VL 5 Series 4", "vectra54", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL | MACHINE_VIDEO, 8192, 131072, 8192, 511, machine_at_vectra54_init, at_vectra54_get_device }, { "[i430FX] Intel Advanced/ZP", "zappa", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_zappa_init, NULL }, - { "[i430FX] NEC PowerMate V", "powermate_v", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_powermate_v_init, NULL }, + { "[i430FX] NEC PowerMate V", "powermatev", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_powermatev_init, NULL }, { "[i430FX] PC Partner MB500N", "mb500n", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_mb500n_init, NULL }, /* OPTi 596/597 */ From 0051a5fbe60b3f5e5510b21c1cf1b66cec0a9002 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Sat, 17 Apr 2021 19:24:24 -0300 Subject: [PATCH 14/14] Forgot to migrate OpenAT name --- src/config.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/config.c b/src/config.c index 5ddf6706d..8a8512b64 100644 --- a/src/config.c +++ b/src/config.c @@ -555,6 +555,8 @@ load_machine(void) machine = machine_get_machine_from_internal_name("m19"); else if (! strcmp(p, "open_xt")) machine = machine_get_machine_from_internal_name("openxt"); + else if (! strcmp(p, "open_at")) + machine = machine_get_machine_from_internal_name("openat"); else if (! strcmp(p, "philips_p3105")) machine = machine_get_machine_from_internal_name("p3105"); else if (! strcmp(p, "philips_p3120"))