PR for 86Box

This commit is contained in:
luennix
2023-01-09 16:31:36 +03:00
parent 9b8182706e
commit 4085e4c928
12 changed files with 372 additions and 3 deletions

View File

@@ -0,0 +1 @@
{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1}]}

View File

@@ -0,0 +1,69 @@
# This file will be configured to contain variables for CPack. These variables
# should be set in the CMake list file of the project before CPack module is
# included. The list of available CPACK_xxx variables and their associated
# documentation may be obtained using
# cpack --help-variable-list
#
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
# and some are specific to a generator
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
# usually begin with CPACK_<GENNAME>_xxxx.
set(CPACK_BINARY_7Z "OFF")
set(CPACK_BINARY_IFW "OFF")
set(CPACK_BINARY_NSIS "ON")
set(CPACK_BINARY_NUGET "OFF")
set(CPACK_BINARY_WIX "OFF")
set(CPACK_BINARY_ZIP "OFF")
set(CPACK_BUILD_SOURCE_DIRS "C:/Users/rue/source/repos/86Box-luennix;C:/Users/rue/source/repos/86Box-luennix/out/build/regular")
set(CPACK_CMAKE_GENERATOR "Ninja")
set(CPACK_COMPONENTS_ALL "")
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericDescription.txt")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "86Box built using CMake")
set(CPACK_GENERATOR "NSIS")
set(CPACK_INSTALL_CMAKE_PROJECTS "C:/Users/rue/source/repos/86Box-luennix/out/build/regular;86Box;ALL;/")
set(CPACK_INSTALL_PREFIX "C:/Program Files (x86)/86Box")
set(CPACK_MODULE_PATH "")
set(CPACK_NSIS_DISPLAY_NAME "86Box 3.11")
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
set(CPACK_NSIS_PACKAGE_NAME "86Box 3.11")
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
set(CPACK_OUTPUT_CONFIG_FILE "C:/Users/rue/source/repos/86Box-luennix/out/build/regular/CPackConfig.cmake")
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
set(CPACK_PACKAGE_DESCRIPTION_FILE "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericDescription.txt")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Emulator of x86-based systems")
set(CPACK_PACKAGE_FILE_NAME "86Box-3.11-win64")
set(CPACK_PACKAGE_HOMEPAGE_URL "https://86box.net")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "86Box 3.11")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "86Box 3.11")
set(CPACK_PACKAGE_NAME "86Box")
set(CPACK_PACKAGE_RELOCATABLE "true")
set(CPACK_PACKAGE_VENDOR "Humanity")
set(CPACK_PACKAGE_VERSION "3.11")
set(CPACK_PACKAGE_VERSION_MAJOR "3")
set(CPACK_PACKAGE_VERSION_MINOR "11")
set(CPACK_RESOURCE_FILE_LICENSE "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericLicense.txt")
set(CPACK_RESOURCE_FILE_README "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericDescription.txt")
set(CPACK_RESOURCE_FILE_WELCOME "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericWelcome.txt")
set(CPACK_SET_DESTDIR "OFF")
set(CPACK_SOURCE_7Z "ON")
set(CPACK_SOURCE_GENERATOR "7Z;ZIP")
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "C:/Users/rue/source/repos/86Box-luennix/out/build/regular/CPackSourceConfig.cmake")
set(CPACK_SOURCE_ZIP "ON")
set(CPACK_SYSTEM_NAME "win64")
set(CPACK_THREADS "1")
set(CPACK_TOPLEVEL_TAG "win64")
set(CPACK_WIX_SIZEOF_VOID_P "8")
if(NOT CPACK_PROPERTIES_FILE)
set(CPACK_PROPERTIES_FILE "C:/Users/rue/source/repos/86Box-luennix/out/build/regular/CPackProperties.cmake")
endif()
if(EXISTS ${CPACK_PROPERTIES_FILE})
include(${CPACK_PROPERTIES_FILE})
endif()

View File

@@ -0,0 +1,77 @@
# This file will be configured to contain variables for CPack. These variables
# should be set in the CMake list file of the project before CPack module is
# included. The list of available CPACK_xxx variables and their associated
# documentation may be obtained using
# cpack --help-variable-list
#
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
# and some are specific to a generator
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
# usually begin with CPACK_<GENNAME>_xxxx.
set(CPACK_BINARY_7Z "OFF")
set(CPACK_BINARY_IFW "OFF")
set(CPACK_BINARY_NSIS "ON")
set(CPACK_BINARY_NUGET "OFF")
set(CPACK_BINARY_WIX "OFF")
set(CPACK_BINARY_ZIP "OFF")
set(CPACK_BUILD_SOURCE_DIRS "C:/Users/rue/source/repos/86Box-luennix;C:/Users/rue/source/repos/86Box-luennix/out/build/regular")
set(CPACK_CMAKE_GENERATOR "Ninja")
set(CPACK_COMPONENTS_ALL "")
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericDescription.txt")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "86Box built using CMake")
set(CPACK_GENERATOR "7Z;ZIP")
set(CPACK_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
set(CPACK_INSTALLED_DIRECTORIES "C:/Users/rue/source/repos/86Box-luennix;/")
set(CPACK_INSTALL_CMAKE_PROJECTS "")
set(CPACK_INSTALL_PREFIX "C:/Program Files (x86)/86Box")
set(CPACK_MODULE_PATH "")
set(CPACK_NSIS_DISPLAY_NAME "86Box 3.11")
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
set(CPACK_NSIS_PACKAGE_NAME "86Box 3.11")
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
set(CPACK_OUTPUT_CONFIG_FILE "C:/Users/rue/source/repos/86Box-luennix/out/build/regular/CPackConfig.cmake")
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
set(CPACK_PACKAGE_DESCRIPTION_FILE "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericDescription.txt")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Emulator of x86-based systems")
set(CPACK_PACKAGE_FILE_NAME "86Box-3.11-Source")
set(CPACK_PACKAGE_HOMEPAGE_URL "https://86box.net")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "86Box 3.11")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "86Box 3.11")
set(CPACK_PACKAGE_NAME "86Box")
set(CPACK_PACKAGE_RELOCATABLE "true")
set(CPACK_PACKAGE_VENDOR "Humanity")
set(CPACK_PACKAGE_VERSION "3.11")
set(CPACK_PACKAGE_VERSION_MAJOR "3")
set(CPACK_PACKAGE_VERSION_MINOR "11")
set(CPACK_RESOURCE_FILE_LICENSE "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericLicense.txt")
set(CPACK_RESOURCE_FILE_README "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericDescription.txt")
set(CPACK_RESOURCE_FILE_WELCOME "E:/Programs/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.24/Templates/CPack.GenericWelcome.txt")
set(CPACK_RPM_PACKAGE_SOURCES "ON")
set(CPACK_SET_DESTDIR "OFF")
set(CPACK_SOURCE_7Z "ON")
set(CPACK_SOURCE_GENERATOR "7Z;ZIP")
set(CPACK_SOURCE_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
set(CPACK_SOURCE_INSTALLED_DIRECTORIES "C:/Users/rue/source/repos/86Box-luennix;/")
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "C:/Users/rue/source/repos/86Box-luennix/out/build/regular/CPackSourceConfig.cmake")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "86Box-3.11-Source")
set(CPACK_SOURCE_TOPLEVEL_TAG "win64-Source")
set(CPACK_SOURCE_ZIP "ON")
set(CPACK_STRIP_FILES "")
set(CPACK_SYSTEM_NAME "win64")
set(CPACK_THREADS "1")
set(CPACK_TOPLEVEL_TAG "win64-Source")
set(CPACK_WIX_SIZEOF_VOID_P "8")
if(NOT CPACK_PROPERTIES_FILE)
set(CPACK_PROPERTIES_FILE "C:/Users/rue/source/repos/86Box-luennix/out/build/regular/CPackProperties.cmake")
endif()
if(EXISTS ${CPACK_PROPERTIES_FILE})
include(${CPACK_PROPERTIES_FILE})
endif()

View File

@@ -0,0 +1 @@
msvc_x64_x64

View File

@@ -13,7 +13,7 @@
# Copyright 2020-2021 David Hrdlička. # Copyright 2020-2021 David Hrdlička.
# #
add_library(chipset OBJECT 82c100.c acc2168.c cs8230.c ali1429.c ali1489.c ali1531.c ali1541.c ali1543.c add_library(chipset OBJECT 82c100.c acc2168.c cs8230.c ali1429.c ali1435.c ali1489.c ali1531.c ali1541.c ali1543.c
ali1621.c ali6117.c headland.c ims8848.c intel_82335.c contaq_82c59x.c cs4031.c intel_420ex.c ali1621.c ali6117.c headland.c ims8848.c intel_82335.c contaq_82c59x.c cs4031.c intel_420ex.c
intel_4x0.c intel_i450kx.c intel_sio.c intel_piix.c ../ioapic.c neat.c opti283.c opti291.c opti391.c intel_4x0.c intel_i450kx.c intel_sio.c intel_piix.c ../ioapic.c neat.c opti283.c opti291.c opti391.c
opti495.c opti822.c opti895.c opti5x7.c scamp.c scat.c sis_85c310.c sis_85c4xx.c opti495.c opti822.c opti895.c opti5x7.c scamp.c scat.c sis_85c310.c sis_85c4xx.c

View File

@@ -1947,7 +1947,7 @@ kbd_write(uint16_t port, uint8_t val, void *priv)
val &= ~0x0c; val &= ~0x0c;
val |= (dev->output_port & 0x0c); val |= (dev->output_port & 0x0c);
} }
write_output(dev, val); write_output(dev, val | 0x01);
break; break;
case 0xd2: /* write to keyboard output buffer */ case 0xd2: /* write to keyboard output buffer */

View File

@@ -24,6 +24,7 @@ extern const device_t acc2168_device;
extern const device_t ali1217_device; extern const device_t ali1217_device;
extern const device_t ali1429_device; extern const device_t ali1429_device;
extern const device_t ali1429g_device; extern const device_t ali1429g_device;
extern const device_t ali1435_device;
extern const device_t ali1489_device; extern const device_t ali1489_device;
extern const device_t ali1531_device; extern const device_t ali1531_device;
extern const device_t ali1541_device; extern const device_t ali1541_device;

View File

@@ -513,6 +513,9 @@ extern int machine_at_atc1415_init(const machine_t *);
extern int machine_at_actionpc2600_init(const machine_t *); extern int machine_at_actionpc2600_init(const machine_t *);
extern int machine_at_m919_init(const machine_t *); extern int machine_at_m919_init(const machine_t *);
extern int machine_at_spc7700plw_init(const machine_t *); extern int machine_at_spc7700plw_init(const machine_t *);
extern int machine_at_ms4134_init(const machine_t *);
extern int machine_at_tg486gp_init(const machine_t *);
extern int machine_at_tg486g_init(const machine_t *);
/* m_at_commodore.c */ /* m_at_commodore.c */
extern int machine_at_cmdpc_init(const machine_t *); extern int machine_at_cmdpc_init(const machine_t *);

View File

@@ -29,6 +29,7 @@ extern const device_t fdc37c663_device;
extern const device_t fdc37c663_ide_device; extern const device_t fdc37c663_ide_device;
extern const device_t fdc37c665_device; extern const device_t fdc37c665_device;
extern const device_t fdc37c665_ide_device; extern const device_t fdc37c665_ide_device;
extern const device_t fdc37c665_ide_pri_device;
extern const device_t fdc37c666_device; extern const device_t fdc37c666_device;
extern const device_t fdc37c67x_device; extern const device_t fdc37c67x_device;
extern const device_t fdc37c669_device; extern const device_t fdc37c669_device;

View File

@@ -1719,3 +1719,94 @@ machine_at_spc7700plw_init(const machine_t *model)
return ret; return ret;
} }
int
machine_at_ms4134_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/ms4134/4alm001.bin",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_ide_init(model);
device_add(&ali1429g_device);
device_add(&fdc37c665_ide_pri_device);
pci_init(PCI_CAN_SWITCH_TYPE | PCI_ALWAYS_EXPOSE_DEV0);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0B, PCI_CARD_SCSI, 4, 1, 2, 3);
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(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&ali1435_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_ps2_ami_device);
return ret;
}
int
machine_at_tg486gp_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/tg486gp/tg486gp.bin",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_ide_init(model);
device_add(&ali1429g_device);
device_add(&fdc37c665_ide_pri_device);
pci_init(PCI_CAN_SWITCH_TYPE | PCI_ALWAYS_EXPOSE_DEV0);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&ali1435_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_ps2_ami_device);
return ret;
}
int
machine_at_tg486g_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/tg486g/tg486g.bin",
0x000c0000, 262144, 0);
if (bios_only || !ret)
return ret;
else {
mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000);
mem_mapping_set_exec(&bios_mapping, rom);
}
machine_at_common_init(model);
device_add(&sis_85c471_device);
device_add(&ide_isa_device);
device_add(&fdc37c651_ide_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
return ret;
}

View File

@@ -5765,8 +5765,119 @@ const machine_t machines[] = {
.snd_device = NULL, .snd_device = NULL,
.net_device = NULL .net_device = NULL
}, },
/* TriGem AMIBIOS Pre-Color with TriGem AMI 'Z' keyboard controller */
{
.name = "[SiS 471] TriGem 486G",
.internal_name = "tg486g",
.type = MACHINE_TYPE_486_S3,
.chipset = MACHINE_CHIPSET_SIS_471,
.init = machine_at_tg486g_init,
.pad = 0,
.pad0 = 0,
.pad1 = MACHINE_AVAILABLE,
.pad2 = 0,
.cpu = {
.package = CPU_PKG_SOCKET3,
.block = CPU_BLOCK_NONE,
.min_bus = 0,
.max_bus = 0,
.min_voltage = 0,
.max_voltage = 0,
.min_multi = 0,
.max_multi = 0
},
.bus_flags = MACHINE_VLB,
.flags = MACHINE_IDE,
.ram = {
.min = 1024,
.max = 65536,
.step = 1024
},
.nvrmask = 127,
.kbc = KBC_UNKNOWN,
.kbc_p1 = 0,
.gpio = 0,
.device = NULL,
.vid_device = NULL,
.snd_device = NULL,
.net_device = NULL
},
/* 486 machines which utilize the PCI bus */ /* 486 machines which utilize the PCI bus */
/* Machine with ALi M1429G chipset and M1435 southbridge */
{
.name = "[ALi M1429G] MSI MS-4134",
.internal_name = "ms4134",
.type = MACHINE_TYPE_486_S3,
.chipset = MACHINE_CHIPSET_ALI_M1429G,
.init = machine_at_ms4134_init,
.pad = 0,
.pad0 = 0,
.pad1 = MACHINE_AVAILABLE,
.pad2 = 0,
.cpu = {
.package = CPU_PKG_SOCKET3,
.block = CPU_BLOCK_NONE,
.min_bus = 0,
.max_bus = 0,
.min_voltage = 0,
.max_voltage = 0,
.min_multi = 0,
.max_multi = 0
},
.bus_flags = MACHINE_PS2_PCIV,
.flags = MACHINE_IDE_DUAL,
.ram = {
.min = 1024,
.max = 131072,
.step = 1024
},
.nvrmask = 255,
.kbc = KBC_UNKNOWN,
.kbc_p1 = 0,
.gpio = 0,
.device = NULL,
.vid_device = NULL,
.snd_device = NULL,
.net_device = NULL
},
/* TriGem machine with M1429G and PhoenixBIOS */
{
.name = "[ALi M1429G] TriGem 486GP",
.internal_name = "tg486gp",
.type = MACHINE_TYPE_486_S3,
.chipset = MACHINE_CHIPSET_ALI_M1429G,
.init = machine_at_tg486gp_init,
.pad = 0,
.pad0 = 0,
.pad1 = MACHINE_AVAILABLE,
.pad2 = 0,
.cpu = {
.package = CPU_PKG_SOCKET3,
.block = CPU_BLOCK_NONE,
.min_bus = 0,
.max_bus = 0,
.min_voltage = 0,
.max_voltage = 0,
.min_multi = 0,
.max_multi = 0
},
.bus_flags = MACHINE_PS2_PCIV,
.flags = MACHINE_IDE_DUAL,
.ram = {
.min = 1024,
.max = 131072,
.step = 1024
},
.nvrmask = 255,
.kbc = KBC_UNKNOWN,
.kbc_p1 = 0,
.gpio = 0,
.device = NULL,
.vid_device = NULL,
.snd_device = NULL,
.net_device = NULL
},
/* This has an AMIKey-2, which is an updated version of type 'H'. */ /* This has an AMIKey-2, which is an updated version of type 'H'. */
{ {
.name = "[ALi M1489] AAEON SBC-490", .name = "[ALi M1489] AAEON SBC-490",

View File

@@ -216,7 +216,7 @@ static uint8_t
fdc37c6xx_read(uint16_t port, void *priv) fdc37c6xx_read(uint16_t port, void *priv)
{ {
fdc37c6xx_t *dev = (fdc37c6xx_t *) priv; fdc37c6xx_t *dev = (fdc37c6xx_t *) priv;
uint8_t ret = 0x00; uint8_t ret = 0xff;
if (dev->tries == 2) { if (dev->tries == 2) {
if (port == 0x3f1) if (port == 0x3f1)
@@ -437,6 +437,20 @@ const device_t fdc37c665_ide_device = {
.config = NULL .config = NULL
}; };
const device_t fdc37c665_ide_pri_device = {
.name = "SMC FDC37C665 Super I/O (With Primary IDE)",
.internal_name = "fdc37c665_ide_pri",
.flags = 0,
.local = 0x165,
.init = fdc37c6xx_init,
.close = fdc37c6xx_close,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t fdc37c666_device = { const device_t fdc37c666_device = {
.name = "SMC FDC37C666 Super I/O", .name = "SMC FDC37C666 Super I/O",
.internal_name = "fdc37c666", .internal_name = "fdc37c666",