From f935d9b1054cf3bc09be70c90824591b7cfa0ef2 Mon Sep 17 00:00:00 2001 From: "Andreas J. Reichel" Date: Wed, 17 Nov 2021 14:35:22 +0100 Subject: [PATCH 1/8] Unix: Make fullscreen command really toggle Help says that fullscreen TOGGLES fullscreen. Fix this. Signed-off-by: Andreas J. Reichel --- src/unix/unix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/unix.c b/src/unix/unix.c index ae786f8ad..3d20b3adf 100644 --- a/src/unix/unix.c +++ b/src/unix/unix.c @@ -833,7 +833,7 @@ void monitor_thread(void* param) } else if (strncasecmp(xargv[0], "fullscreen", 10) == 0) { - video_fullscreen = 1; + video_fullscreen = video_fullscreen ? 0 : 1; fullscreen_pending = 1; } else if (strncasecmp(xargv[0], "pause", 5) == 0) From faa1750c92005032a580fdb4dc5f2ebe16085722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Wed, 17 Nov 2021 18:28:00 +0100 Subject: [PATCH 2/8] Menu reloading fixes for Multilanguage UI --- src/86box.c | 7 +------ src/include/86box/win.h | 3 +++ src/win/win.c | 6 ++++-- src/win/win_ui.c | 22 +++++++++++++--------- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/86box.c b/src/86box.c index 9db0ecdb8..abd3fd8ef 100644 --- a/src/86box.c +++ b/src/86box.c @@ -713,12 +713,7 @@ usage: /* Load the desired language */ if (lang_init) lang_id = lang_init; - - lang_init = lang_id; - lang_id = 0; - if (lang_init) - set_language(lang_init); - + /* All good! */ return(1); } diff --git a/src/include/86box/win.h b/src/include/86box/win.h index 33e55f1d4..2fdddb56e 100644 --- a/src/include/86box/win.h +++ b/src/include/86box/win.h @@ -239,6 +239,9 @@ extern void media_menu_update_cdrom(int id); extern void media_menu_update_zip(int id); extern void media_menu_update_mo(int id); +/* Functions in win_ui.c */ +extern HMENU menuMain; +extern void ResetAllMenus(); #ifdef __cplusplus } diff --git a/src/win/win.c b/src/win/win.c index 1f6ab15af..2a1f1a714 100644 --- a/src/win/win.c +++ b/src/win/win.c @@ -269,9 +269,11 @@ set_language(uint32_t id) LoadCommonStrings(); /* Reload main menu */ - SetMenu(hwndMain, LoadMenu(hinstance, L"MainMenu")); + menuMain = LoadMenu(hinstance, L"MainMenu"); + SetMenu(hwndMain, menuMain); - /* Re-init media menu */ + /* Re-init all the menus */ + ResetAllMenus(); media_menu_init(); } } diff --git a/src/win/win_ui.c b/src/win/win_ui.c index 57ef417a2..b25ed5df1 100644 --- a/src/win/win_ui.c +++ b/src/win/win_ui.c @@ -203,22 +203,22 @@ delete_submenu(HMENU parent, HMENU target) } #endif +static int menu_vidapi = -1; +static HMENU cur_menu = NULL; + static void show_render_options_menu() { #if defined(DEV_BRANCH) && defined(USE_OPENGL) - static int menu_vidapi = -1; - static HMENU cur_menu = NULL; - if (vid_api == menu_vidapi) return; - + if (cur_menu != NULL) { if (delete_submenu(menuMain, cur_menu)) cur_menu = NULL; } - + if (cur_menu == NULL) { switch (IDM_VID_SDL_SW + vid_api) @@ -251,7 +251,7 @@ video_set_filter_menu(HMENU menu) EnableMenuItem(menu, IDM_VID_FILTER_LINEAR, vid_api == 0 ? MF_GRAYED : MF_ENABLED); } -static void +void ResetAllMenus(void) { CheckMenuItem(menuMain, IDM_ACTION_RCTRL_IS_LALT, MF_UNCHECKED); @@ -294,6 +294,9 @@ ResetAllMenus(void) CheckMenuItem(menuMain, IDM_VID_SDL_OPENGL, MF_UNCHECKED); #if defined(DEV_BRANCH) && defined(USE_OPENGL) CheckMenuItem(menuMain, IDM_VID_OPENGL_CORE, MF_UNCHECKED); + + menu_vidapi = -1; + cur_menu = NULL; show_render_options_menu(); #endif #ifdef USE_VNC @@ -1401,9 +1404,10 @@ ui_init(int nCmdShow) ResizeWindowByClientArea(hwndMain, scrnsz_x, scrnsz_y + sbar_height); } - /* Reset all menus to their defaults. */ - ResetAllMenus(); - media_menu_init(); + /* Load the desired language, and reset all menus to their defaults */ + uint32_t helper_lang = lang_id; + lang_id = 0; + set_language(helper_lang); /* Make the window visible on the screen. */ ShowWindow(hwnd, nCmdShow); From 9b0a052447b647f8893b43c47b3a9b3c1d5012ae Mon Sep 17 00:00:00 2001 From: ts-korhonen Date: Wed, 17 Nov 2021 22:45:22 +0200 Subject: [PATCH 3/8] Increase resource string max length 512 > 1024. Allocate with calloc. --- src/win/win.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/win/win.c b/src/win/win.c index 1f6ab15af..8f4d5e937 100644 --- a/src/win/win.c +++ b/src/win/win.c @@ -60,7 +60,7 @@ #endif typedef struct { - WCHAR str[512]; + WCHAR str[1024]; } rc_str_t; @@ -165,50 +165,50 @@ LoadCommonStrings(void) free_string(&lpRCstr4096); free_string(&lpRCstr2048); - lpRCstr2048 = (rc_str_t *)malloc(STR_NUM_2048*sizeof(rc_str_t)); - lpRCstr4096 = (rc_str_t *)malloc(STR_NUM_4096*sizeof(rc_str_t)); - lpRCstr4352 = (rc_str_t *)malloc(STR_NUM_4352*sizeof(rc_str_t)); - lpRCstr4608 = (rc_str_t *)malloc(STR_NUM_4608*sizeof(rc_str_t)); - lpRCstr5120 = (rc_str_t *)malloc(STR_NUM_5120*sizeof(rc_str_t)); - lpRCstr5376 = (rc_str_t *)malloc(STR_NUM_5376*sizeof(rc_str_t)); - lpRCstr5632 = (rc_str_t *)malloc(STR_NUM_5632*sizeof(rc_str_t)); - lpRCstr5888 = (rc_str_t *)malloc(STR_NUM_5888*sizeof(rc_str_t)); - lpRCstr6144 = (rc_str_t *)malloc(STR_NUM_6144*sizeof(rc_str_t)); - lpRCstr7168 = (rc_str_t *)malloc(STR_NUM_7168*sizeof(rc_str_t)); + lpRCstr2048 = calloc(STR_NUM_2048, sizeof(rc_str_t)); + lpRCstr4096 = calloc(STR_NUM_4096, sizeof(rc_str_t)); + lpRCstr4352 = calloc(STR_NUM_4352, sizeof(rc_str_t)); + lpRCstr4608 = calloc(STR_NUM_4608, sizeof(rc_str_t)); + lpRCstr5120 = calloc(STR_NUM_5120, sizeof(rc_str_t)); + lpRCstr5376 = calloc(STR_NUM_5376, sizeof(rc_str_t)); + lpRCstr5632 = calloc(STR_NUM_5632, sizeof(rc_str_t)); + lpRCstr5888 = calloc(STR_NUM_5888, sizeof(rc_str_t)); + lpRCstr6144 = calloc(STR_NUM_6144, sizeof(rc_str_t)); + lpRCstr7168 = calloc(STR_NUM_7168, sizeof(rc_str_t)); for (i=0; i 3)) - LoadString(hinstance, 5376+i, lpRCstr5376[i].str, 512); + LoadString(hinstance, 5376+i, lpRCstr5376[i].str, 1024); } for (i=0; i 3)) - LoadString(hinstance, 5632+i, lpRCstr5632[i].str, 512); + LoadString(hinstance, 5632+i, lpRCstr5632[i].str, 1024); } for (i=0; i Date: Wed, 17 Nov 2021 19:18:43 -0300 Subject: [PATCH 4/8] Update pt-BR.rc --- src/win/languages/pt-BR.rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index feb6ec02a..83bba8c56 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -371,7 +371,7 @@ END #define STR_CYLS "Cilindros:" #define STR_SIZE_MB "Tamanho (MB):" #define STR_TYPE "Tipo:" -#define STR_IMG_FORMAT "Formato da imagem:" +#define STR_IMG_FORMAT "Formato:" #define STR_BLOCK_SIZE "Tamanho do bloco:" #define STR_FLOPPY_DRIVES "Unidades de disquete:" From 30680c46edbab75483a40c506227a61b6fa66cd7 Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 17 Nov 2021 23:20:16 +0100 Subject: [PATCH 5/8] Removed the obsolete m_at_socket4_5.c. --- src/machine/m_at_socket4_5.c | 781 ----------------------------------- 1 file changed, 781 deletions(-) delete mode 100644 src/machine/m_at_socket4_5.c diff --git a/src/machine/m_at_socket4_5.c b/src/machine/m_at_socket4_5.c deleted file mode 100644 index c876844ad..000000000 --- a/src/machine/m_at_socket4_5.c +++ /dev/null @@ -1,781 +0,0 @@ -/* - * 86Box A hypervisor and IBM PC system emulator that specializes in - * running old operating systems and software designed for IBM - * PC systems and compatibles from 1981 through fairly recent - * system designs based on the PCI bus. - * - * This file is part of the 86Box distribution. - * - * Implementation of Socket 4 and 5 machines. - * - * - * - * Authors: Sarah Walker, - * Miran Grca, - * - * Copyright 2010-2019 Sarah Walker. - * Copyright 2016-2019 Miran Grca. - */ -#include -#include -#include -#include -#include -#include <86box/86box.h> -#include <86box/mem.h> -#include <86box/io.h> -#include <86box/rom.h> -#include <86box/pci.h> -#include <86box/device.h> -#include <86box/chipset.h> -#include <86box/fdc_ext.h> -#include <86box/hdc.h> -#include <86box/hdc_ide.h> -#include <86box/timer.h> -#include <86box/fdd.h> -#include <86box/fdc.h> -#include <86box/keyboard.h> -#include <86box/flash.h> -#include <86box/nvr.h> -#include <86box/scsi_ncr53c8xx.h> -#include <86box/sio.h> -#include <86box/video.h> -#include <86box/machine.h> - -int -machine_at_excalibur_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_inverted("roms/machines/excalibur/S75P.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - device_add(&opti5x7_device); - device_add(&ide_opti611_vlb_device); - device_add(&fdc37c661_device); - device_add(&keyboard_at_ami_device); - - return ret; -} -int -machine_at_pat54pv_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/pat54pv/pat54pv.bin", - 0x000f0000, 65536, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - device_add(&opti5x7_device); - device_add(&keyboard_at_ami_device); - - if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); - - return ret; -} -int -machine_at_hot543_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/hot543/543_R21.BIN", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x10, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2); - device_add(&opti5x7_device); - device_add(&opti822_device); - device_add(&sst_flash_29ee010_device); - device_add(&keyboard_at_device); - - if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); - - return ret; -} - -int -machine_at_p54vl_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/p54vl/SM507.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x10, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2); - device_add(&opti5x7_device); - device_add(&opti822_device); - device_add(&sst_flash_29ee010_device); - device_add(&keyboard_at_ami_device); - - if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); - - return ret; -} - -static void -machine_at_premiere_common_init(const machine_t *model, int pci_switch) -{ - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2 | pci_switch); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0); - pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 2, 1, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&sio_zb_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_ami_device); -} - - -static void -machine_at_award_common_init(const machine_t *model) -{ - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0); - pci_register_slot(0x03, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 03 = Slot 1 */ - pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 04 = Slot 2 */ - pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 05 = Slot 3 */ - pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 06 = Slot 4 */ - pci_register_slot(0x07, PCI_CARD_SCSI, 1, 2, 3, 4); /* 07 = SCSI */ - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - - if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); - - device_add(&keyboard_ps2_pci_device); -} - - -int -machine_at_batman_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/revenge/1009af2_.bio", - "roms/machines/revenge/1009af2_.bi1", 0x1c000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_premiere_common_init(model, 0); - - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_dellxp60_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_inverted("roms/machines/dellxp60/XP60-A08.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - /* Not: 00, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F. */ - /* Yes: 01, 10, 11, 12, 13, 14. */ - pci_register_slot(0x01, PCI_CARD_NORMAL, 1, 3, 2, 4); - pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 4, 3, 3); - pci_register_slot(0x05, PCI_CARD_NORMAL, 1, 4, 3, 2); - pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&i430lx_device); - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&sio_zb_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - - -int -machine_at_opti560l_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_inverted("roms/machines/opti560l/560L_A06.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x03, PCI_CARD_NORMAL, 4, 4, 3, 3); - pci_register_slot(0x07, PCI_CARD_NORMAL, 1, 4, 3, 2); - pci_register_slot(0x08, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&i430lx_device); - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&sio_zb_device); - device_add(&i82091aa_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - - -int -machine_at_ambradp60_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/ambradp60/1004AF1P.BIO", - "roms/machines/ambradp60/1004AF1P.BI1", 0x1c000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_premiere_common_init(model, 0); - - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_valuepointp60_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/valuepointp60/1006AV0M.BIO", - "roms/machines/valuepointp60/1006AV0M.BI1", 0x1d000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0); - pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 2, 1, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_ps1_pci_device); - device_add(&sio_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_ami_device); - - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_pb520r_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/pb520r/1009bc0r.bio", - "roms/machines/pb520r/1009bc0r.bi1", 0x1c000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_2); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0); - pci_register_slot(0x03, PCI_CARD_VIDEO, 3, 3, 3, 3); - pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 2, 1, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&i430lx_device); - device_add(&ide_cmd640_pci_single_channel_device); - - if (gfxcard == VID_INTERNAL) - device_add(&gd5434_onboard_pci_device); - - device_add(&keyboard_ps2_pci_device); - device_add(&sio_zb_device); - device_add(&i82091aa_ide_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - -const device_t * -at_pb520r_get_device(void) -{ - return &gd5434_onboard_pci_device; -} - - -int -machine_at_p5mp3_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/p5mp3/0205.bin", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - device_add(&ide_pci_device); - - pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x05, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 05 = Slot 1 */ - pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 04 = Slot 2 */ - pci_register_slot(0x03, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 3 */ - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&fdc_at_device); - device_add(&keyboard_ps2_pci_device); - - device_add(&sio_zb_device); - device_add(&catalyst_flash_device); - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_586mc1_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/586mc1/IS.34", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_award_common_init(model); - - device_add(&sio_device); - device_add(&intel_flash_bxt_device); - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_plato_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/plato/1016ax1_.bio", - "roms/machines/plato/1016ax1_.bi1", 0x1d000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_premiere_common_init(model, PCI_CAN_SWITCH_TYPE); - - device_add(&i430nx_device); - - return ret; -} - - -int -machine_at_ambradp90_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/ambradp90/1002AX1P.BIO", - "roms/machines/ambradp90/1002AX1P.BI1", 0x1d000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_premiere_common_init(model, PCI_CAN_SWITCH_TYPE); - - device_add(&i430nx_device); - - return ret; -} - - -int -machine_at_430nx_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/430nx/IP.20", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_award_common_init(model); - - device_add(&sio_device); - device_add(&intel_flash_bxt_device); - device_add(&i430nx_device); - - return ret; -} - - -int -machine_at_endeavor_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/endeavor/1006cb0_.bio", - "roms/machines/endeavor/1006cb0_.bi1", 0x1d000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0); - pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - - if (gfxcard == VID_INTERNAL) - device_add(&s3_phoenix_trio64_onboard_pci_device); - - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&pc87306_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - - -const device_t * -at_endeavor_get_device(void) -{ - return &s3_phoenix_trio64_onboard_pci_device; -} - - -int -machine_at_zappa_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/zappa/1006bs0_.bio", - "roms/machines/zappa/1006bs0_.bi1", 0x20000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&pc87306_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - - -int -machine_at_mb500n_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/mb500n/031396s.bin", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_device); - - return ret; -} - - -int -machine_at_apollo_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/apollo/S728P.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init_ex(model, 2); - device_add(&ami_apollo_nvr_device); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x09, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&pc87332_398_device); - device_add(&intel_flash_bxt_device); - - return ret; -} - - -int -machine_at_powermatev_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/powermatev/BIOS.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x08, PCI_CARD_NORMAL, 0, 0, 0, 0); - pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_device); - - return ret; -} - - -int -machine_at_acerv30_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/acerv30/V30R01N9.BIN", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x12, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x11, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x14, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&keyboard_ps2_acer_pci_device); - device_add(&fdc37c665_device); - - device_add(&sst_flash_29ee010_device); - - return ret; -} - - -static void -machine_at_sp4_common_init(const machine_t *model) -{ - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - /* Excluded: 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10, 11, 12, 13, 14 */ - pci_register_slot(0x0D, PCI_CARD_IDE, 1, 2, 3, 4); - /* Excluded: 02, 03*, 04*, 05*, 06*, 07*, 08* */ - /* Slots: 09 (04), 0A (03), 0B (02), 0C (07) */ - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3); - device_add(&sis_85c50x_device); - device_add(&ide_cmd640_pci_device); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_device); -} - - -int -machine_at_p5sp4_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/p5sp4/0106.001", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_sp4_common_init(model); - - return ret; -} - - -int -machine_at_p54sp4_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/p54sp4/SI5I0204.AWD", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_sp4_common_init(model); - - return ret; -} - - -int -machine_at_sq588_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/sq588/sq588b03.rom", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - /* Correct: 0D (01), 0F (02), 11 (03), 13 (04) */ - pci_register_slot(0x02, PCI_CARD_IDE, 1, 2, 3, 4); - pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3); - device_add(&sis_85c50x_device); - device_add(&ide_cmd640_pci_single_channel_device); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&fdc37c665_ide_device); - device_add(&sst_flash_29ee010_device); - - return ret; -} - -int -machine_at_hot539_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/hot539/539_R17.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x12, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x15, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x16, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3); - device_add(&umc_8890_device); - device_add(&umc_8886af_device); - device_add(&intel_flash_bxt_device); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&um8669f_device); - - return ret; -} \ No newline at end of file From 53cb0de504e86100a554a64db4e498d60bf4a11e Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Wed, 17 Nov 2021 17:54:36 -0500 Subject: [PATCH 6/8] Fix PS/2 on 4dps --- src/machine/m_at_386dx_486.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/machine/m_at_386dx_486.c b/src/machine/m_at_386dx_486.c index 50718475b..43d03c385 100644 --- a/src/machine/m_at_386dx_486.c +++ b/src/machine/m_at_386dx_486.c @@ -988,7 +988,7 @@ machine_at_4dps_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&w83787f_device); - device_add(&keyboard_at_ami_device); + device_add(&keyboard_ps2_ami_device); device_add(&intel_flash_bxt_device); From eed84b307dbc4bc4bfe3468946f7c57215f1d8d7 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Wed, 17 Nov 2021 17:56:31 -0500 Subject: [PATCH 7/8] Fix some typos --- src/machine/machine_table.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 8c79a5747..08cadb621 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -201,7 +201,7 @@ const machine_t machines[] = { /* Most likely has AMI 'F' KBC firmware. */ { "[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 }, /* This has "AMI KEYBOARD BIOS", most likely 'F'. */ - { "[NEAT] Dataexpert 286", "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] DataExpert 286", "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 }, /* Has IBM AT KBC firmware. */ { "[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 }, /* Has IBM AT KBC firmware. */ @@ -257,7 +257,7 @@ const machine_t machines[] = { /* Has an unknown KBC firmware with commands B8 and BB in the style of Phoenix MultiKey and AMIKey-3(!), but also commands E1 and EA with unknown functions. */ - { "[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] 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 }, /* Has an AMI Keyboard BIOS PLUS KBC firmware ('8'). */ { "[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 }, /* Uses Commodore (CBM) KBC firmware, to be implemented as identical to @@ -319,9 +319,9 @@ const machine_t machines[] = { Phoenix MultiKey commands. */ { "[OPTi 495] Award 486 clone", "award495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET1, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_init, NULL }, /* Has AMIKey F KBC firmware. */ - { "[OPTi 495] Dataexpert SX495", "ami495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET1, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_ami_init, NULL }, + { "[OPTi 495] DataExpert SX495", "ami495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET1, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_ami_init, NULL }, /* Has AMIKey F KBC firmware (it's just the MR BIOS for the above machine). */ - { "[OPTi 495] Dataexpert SX495 (MR BIOS)", "mr495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_mr_init, NULL }, + { "[OPTi 495] DataExpert SX495 (MR BIOS)", "mr495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_mr_init, NULL }, /* 486 machines - Socket 1 */ /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. @@ -545,7 +545,7 @@ const machine_t machines[] = { /* Has AMIKey F KBC firmware. */ { "[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 }, /* Has AMIKey H KBC firmware. */ - { "[i430FX] Dataexpert EXP8551", "exp8551", 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_exp8551_init, NULL }, + { "[i430FX] DataExpert EXP8551", "exp8551", 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_exp8551_init, NULL }, /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the PC87306 Super I/O chip, command 0xA1 returns '5'. Command 0xA0 copyright string: (C)1994 AMI . */ From afe6bb08b06813069f3a02f2ebef94359bb452d0 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 00:40:48 +0100 Subject: [PATCH 8/8] Updated the keyboard controller identification for the AMI Excalibur PCI-II. --- 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 08cadb621..3047b7958 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -524,7 +524,7 @@ const machine_t machines[] = { { "[OPTi 597] Supermicro P5VL-PCI", "p5vl", MACHINE_TYPE_SOCKET4, CPU_PKG_SOCKET4, 0, 60000000, 66666667, 5000, 5000, MACHINE_MULTIPLIER_FIXED, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_p5vl_init, NULL }, /* SiS 50x */ - /* This has an unknown AMI KBC firmware, most likely AMIKey / type 'F'. */ + /* This has some form of AMI MegaKey as it uses keyboard controller command 0xCC. */ { "[SiS 501] AMI Excalibur PCI-II Pentium ISA","excaliburpci2", MACHINE_TYPE_SOCKET4, CPU_PKG_SOCKET4, 0, 60000000, 66666667, 5000, 5000, MACHINE_MULTIPLIER_FIXED, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_excaliburpci2_init, NULL }, /* This has an AMIKey-2, which is an updated version of type 'H'. */ { "[SiS 501] ASUS PCI/I-P5SP4", "p5sp4", MACHINE_TYPE_SOCKET4, CPU_PKG_SOCKET4, 0, 60000000, 66666667, 5000, 5000, MACHINE_MULTIPLIER_FIXED, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_p5sp4_init, NULL },