mirror of
https://github.com/86Box/86Box.git
synced 2026-02-22 09:35:32 -07:00
Merge branch 'master' of ssh://github.com/86Box/86Box into cleanup30
# Conflicts: # .ci/build.sh # .ci/dependencies_msys.txt # src/sound/snd_audiopci.c
This commit is contained in:
@@ -938,7 +938,9 @@ pc_reset_hard_close(void)
|
||||
|
||||
scsi_device_close_all();
|
||||
|
||||
midi_close();
|
||||
midi_out_close();
|
||||
|
||||
midi_in_close();
|
||||
|
||||
cdrom_close();
|
||||
|
||||
@@ -1161,7 +1163,9 @@ pc_close(thread_t *ptr)
|
||||
|
||||
scsi_device_close_all();
|
||||
|
||||
midi_close();
|
||||
midi_out_close();
|
||||
|
||||
midi_in_close();
|
||||
|
||||
network_close();
|
||||
|
||||
|
||||
@@ -105,20 +105,6 @@ find_package(PNG REQUIRED)
|
||||
include_directories(${PNG_INCLUDE_DIRS})
|
||||
target_link_libraries(86Box PNG::PNG)
|
||||
|
||||
if(VCPKG_TOOLCHAIN)
|
||||
# vcpkg includes a config file for rtmidi
|
||||
find_package(RtMidi REQUIRED)
|
||||
target_link_libraries(86Box RtMidi::rtmidi)
|
||||
else()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(RTMIDI REQUIRED IMPORTED_TARGET rtmidi)
|
||||
target_link_libraries(86Box PkgConfig::RTMIDI)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(PkgConfig::RTMIDI INTERFACE winmm)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
configure_file(include/86box/version.h.in include/86box/version.h @ONLY)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||
|
||||
@@ -193,6 +179,7 @@ elseif(WIN32)
|
||||
OPTIONAL)
|
||||
endif()
|
||||
|
||||
|
||||
add_subdirectory(device)
|
||||
add_subdirectory(disk)
|
||||
add_subdirectory(floppy)
|
||||
|
||||
127
src/acpi.c
127
src/acpi.c
@@ -1613,79 +1613,72 @@ acpi_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
const device_t acpi_ali_device =
|
||||
{
|
||||
"ALi M7101 ACPI",
|
||||
"acpi_ali",
|
||||
DEVICE_PCI,
|
||||
VEN_ALI,
|
||||
acpi_init,
|
||||
acpi_close,
|
||||
acpi_reset,
|
||||
{ NULL },
|
||||
acpi_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t acpi_ali_device = {
|
||||
.name = "ALi M7101 ACPI",
|
||||
.internal_name = "acpi_ali",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VEN_ALI,
|
||||
.init = acpi_init,
|
||||
.close = acpi_close,
|
||||
.reset = acpi_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = acpi_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t acpi_intel_device =
|
||||
{
|
||||
"Intel ACPI",
|
||||
"acpi_intel",
|
||||
DEVICE_PCI,
|
||||
VEN_INTEL,
|
||||
acpi_init,
|
||||
acpi_close,
|
||||
acpi_reset,
|
||||
{ NULL },
|
||||
acpi_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t acpi_intel_device = {
|
||||
.name = "Intel ACPI",
|
||||
.internal_name = "acpi_intel",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VEN_INTEL,
|
||||
.init = acpi_init,
|
||||
.close = acpi_close,
|
||||
.reset = acpi_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = acpi_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t acpi_via_device =
|
||||
{
|
||||
"VIA ACPI",
|
||||
"acpi_via",
|
||||
DEVICE_PCI,
|
||||
VEN_VIA,
|
||||
acpi_init,
|
||||
acpi_close,
|
||||
acpi_reset,
|
||||
{ NULL },
|
||||
acpi_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t acpi_via_device = {
|
||||
.name = "VIA ACPI",
|
||||
.internal_name = "acpi_via",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VEN_VIA,
|
||||
.init = acpi_init,
|
||||
.close = acpi_close,
|
||||
.reset = acpi_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = acpi_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t acpi_via_596b_device =
|
||||
{
|
||||
"VIA VT82C596 ACPI",
|
||||
"acpi_via_596b",
|
||||
DEVICE_PCI,
|
||||
VEN_VIA_596B,
|
||||
acpi_init,
|
||||
acpi_close,
|
||||
acpi_reset,
|
||||
{ NULL },
|
||||
acpi_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t acpi_via_596b_device = {
|
||||
.name = "VIA VT82C596 ACPI",
|
||||
.internal_name = "acpi_via_596b",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VEN_VIA_596B,
|
||||
.init = acpi_init,
|
||||
.close = acpi_close,
|
||||
.reset = acpi_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = acpi_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t acpi_smc_device =
|
||||
{
|
||||
"SMC FDC73C931APM ACPI",
|
||||
"acpi_smc",
|
||||
DEVICE_PCI,
|
||||
VEN_SMC,
|
||||
acpi_init,
|
||||
acpi_close,
|
||||
acpi_reset,
|
||||
{ NULL },
|
||||
acpi_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t acpi_smc_device = {
|
||||
.name = "SMC FDC73C931APM ACPI",
|
||||
.internal_name = "acpi_smc",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VEN_SMC,
|
||||
.init = acpi_init,
|
||||
.close = acpi_close,
|
||||
.reset = acpi_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = acpi_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
77
src/apm.c
77
src/apm.c
@@ -123,49 +123,44 @@ static void
|
||||
}
|
||||
|
||||
|
||||
const device_t apm_device =
|
||||
{
|
||||
"Advanced Power Management",
|
||||
"apm",
|
||||
0,
|
||||
0,
|
||||
apm_init,
|
||||
apm_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t apm_device = {
|
||||
.name = "Advanced Power Management",
|
||||
.internal_name = "apm",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = apm_init,
|
||||
.close = apm_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t apm_pci_device =
|
||||
{
|
||||
"Advanced Power Management (PCI)",
|
||||
"apm_pci",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
apm_init,
|
||||
apm_close,
|
||||
apm_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t apm_pci_device = {
|
||||
.name = "Advanced Power Management (PCI)",
|
||||
.internal_name = "apm_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = apm_init,
|
||||
.close = apm_close,
|
||||
.reset = apm_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t apm_pci_acpi_device =
|
||||
{
|
||||
"Advanced Power Management (PCI)",
|
||||
"apm_pci_acpi",
|
||||
DEVICE_PCI,
|
||||
1,
|
||||
apm_init,
|
||||
apm_close,
|
||||
apm_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t apm_pci_acpi_device = {
|
||||
.name = "Advanced Power Management (PCI)",
|
||||
.internal_name = "apm_pci_acpi",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 1,
|
||||
.init = apm_init,
|
||||
.close = apm_close,
|
||||
.reset = apm_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -397,11 +397,15 @@ ct_82c100_init(const device_t *info)
|
||||
|
||||
|
||||
const device_t ct_82c100_device = {
|
||||
"C&T 82C100",
|
||||
"ct_82c100",
|
||||
0,
|
||||
0,
|
||||
ct_82c100_init, ct_82c100_close, ct_82c100_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "C&T 82C100",
|
||||
.internal_name = "ct_82c100",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = ct_82c100_init,
|
||||
.close = ct_82c100_close,
|
||||
.reset = ct_82c100_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -193,14 +193,15 @@ acc2168_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t acc2168_device = {
|
||||
"ACC 2046/2168",
|
||||
"acc2168",
|
||||
0,
|
||||
0,
|
||||
acc2168_init,
|
||||
acc2168_close,
|
||||
NULL,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "ACC 2046/2168",
|
||||
.internal_name = "acc2168",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = acc2168_init,
|
||||
.close = acc2168_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -339,21 +339,29 @@ ali1429_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t ali1429_device = {
|
||||
"ALi M1429",
|
||||
"ali1429",
|
||||
0,
|
||||
0,
|
||||
ali1429_init, ali1429_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "ALi M1429",
|
||||
.internal_name = "ali1429",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = ali1429_init,
|
||||
.close = ali1429_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ali1429g_device = {
|
||||
"ALi M1429G",
|
||||
"ali1429g",
|
||||
0,
|
||||
1,
|
||||
ali1429_init, ali1429_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "ALi M1429G",
|
||||
.internal_name = "ali1429g",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = ali1429_init,
|
||||
.close = ali1429_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -626,16 +626,16 @@ ali1489_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ali1489_device = {
|
||||
"ALi M1489",
|
||||
"ali1489",
|
||||
0,
|
||||
0,
|
||||
ali1489_init,
|
||||
ali1489_close,
|
||||
ali1489_reset,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "ALi M1489",
|
||||
.internal_name = "ali1489",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = ali1489_init,
|
||||
.close = ali1489_close,
|
||||
.reset = ali1489_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -376,17 +376,16 @@ ali1531_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ali1531_device = {
|
||||
"ALi M1531 CPU-to-PCI Bridge",
|
||||
"ali1531",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
ali1531_init,
|
||||
ali1531_close,
|
||||
ali1531_reset,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "ALi M1531 CPU-to-PCI Bridge",
|
||||
.internal_name = "ali1531",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = ali1531_init,
|
||||
.close = ali1531_close,
|
||||
.reset = ali1531_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -641,17 +641,16 @@ ali1541_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ali1541_device = {
|
||||
"ALi M1541 CPU-to-PCI Bridge",
|
||||
"ali1541",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
ali1541_init,
|
||||
ali1541_close,
|
||||
ali1541_reset,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "ALi M1541 CPU-to-PCI Bridge",
|
||||
.internal_name = "ali1541",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = ali1541_init,
|
||||
.close = ali1541_close,
|
||||
.reset = ali1541_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1465,7 +1465,7 @@ ali1533_sio_write(uint16_t addr, uint8_t val, void *priv)
|
||||
ali1543_t *dev = (ali1543_t *)priv;
|
||||
|
||||
switch (addr) {
|
||||
case 0x3f0:
|
||||
case FDC_PRIMARY_ADDR:
|
||||
dev->sio_index = val;
|
||||
if (dev->sio_index == 0x51)
|
||||
dev->in_configuration_mode = 1;
|
||||
@@ -1501,7 +1501,7 @@ ali1533_sio_write(uint16_t addr, uint8_t val, void *priv)
|
||||
break;
|
||||
}
|
||||
|
||||
if ((!dev->in_configuration_mode) && (dev->sio_regs[0x07] <= 7) && (addr == 0x03f0))
|
||||
if ((!dev->in_configuration_mode) && (dev->sio_regs[0x07] <= 7) && (addr == FDC_PRIMARY_ADDR))
|
||||
ali1533_sio_ldn(dev->sio_regs[0x07], dev);
|
||||
}
|
||||
|
||||
@@ -1686,7 +1686,7 @@ ali1543_init(const device_t *info)
|
||||
dev->usb_slot = pci_add_card(PCI_ADD_SOUTHBRIDGE, ali5237_read, ali5237_write, dev);
|
||||
|
||||
/* Ports 3F0-1h: M1543 Super I/O */
|
||||
io_sethandler(0x03f0, 0x0002, ali1533_sio_read, NULL, NULL, ali1533_sio_write, NULL, NULL, dev);
|
||||
io_sethandler(FDC_PRIMARY_ADDR, 0x0002, ali1533_sio_read, NULL, NULL, ali1533_sio_write, NULL, NULL, dev);
|
||||
|
||||
/* ACPI */
|
||||
dev->acpi = device_add(&acpi_ali_device);
|
||||
@@ -1741,31 +1741,30 @@ ali1543_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ali1543_device = {
|
||||
"ALi M1543 Desktop South Bridge",
|
||||
"ali1543",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
ali1543_init,
|
||||
ali1543_close,
|
||||
ali1543_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "ALi M1543 Desktop South Bridge",
|
||||
.internal_name = "ali1543",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = ali1543_init,
|
||||
.close = ali1543_close,
|
||||
.reset = ali1543_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ali1543c_device = {
|
||||
"ALi M1543C Desktop South Bridge",
|
||||
"ali1543c",
|
||||
DEVICE_PCI,
|
||||
1,
|
||||
ali1543_init,
|
||||
ali1543_close,
|
||||
ali1543_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "ALi M1543C Desktop South Bridge",
|
||||
.internal_name = "ali1543c",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 1,
|
||||
.init = ali1543_init,
|
||||
.close = ali1543_close,
|
||||
.reset = ali1543_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -670,17 +670,16 @@ ali1621_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ali1621_device = {
|
||||
"ALi M1621 CPU-to-PCI Bridge",
|
||||
"ali1621",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
ali1621_init,
|
||||
ali1621_close,
|
||||
ali1621_reset,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "ALi M1621 CPU-to-PCI Bridge",
|
||||
.internal_name = "ali1621",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = ali1621_init,
|
||||
.close = ali1621_close,
|
||||
.reset = ali1621_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -375,34 +375,30 @@ ali6117_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ali1217_device =
|
||||
{
|
||||
"ALi M1217",
|
||||
"ali1217",
|
||||
DEVICE_AT,
|
||||
0x8,
|
||||
ali6117_init,
|
||||
ali6117_close,
|
||||
ali6117_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t ali1217_device = {
|
||||
.name = "ALi M1217",
|
||||
.internal_name = "ali1217",
|
||||
.flags = DEVICE_AT,
|
||||
.local = 0x8,
|
||||
.init = ali6117_init,
|
||||
.close = ali6117_close,
|
||||
.reset = ali6117_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t ali6117d_device =
|
||||
{
|
||||
"ALi M6117D",
|
||||
"ali6117d",
|
||||
DEVICE_AT,
|
||||
0x2,
|
||||
ali6117_init,
|
||||
ali6117_close,
|
||||
ali6117_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t ali6117d_device = {
|
||||
.name = "ALi M6117D",
|
||||
.internal_name = "ali6117d",
|
||||
.flags = DEVICE_AT,
|
||||
.local = 0x2,
|
||||
.init = ali6117_init,
|
||||
.close = ali6117_close,
|
||||
.reset = ali6117_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -346,32 +346,30 @@ contaq_82c59x_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t contaq_82c596a_device = {
|
||||
"Contaq 82C596A",
|
||||
"contaq_82c596a",
|
||||
0,
|
||||
0,
|
||||
contaq_82c59x_init,
|
||||
contaq_82c59x_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "Contaq 82C596A",
|
||||
.internal_name = "contaq_82c596a",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = contaq_82c59x_init,
|
||||
.close = contaq_82c59x_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t contaq_82c597_device = {
|
||||
"Contaq 82C597",
|
||||
"contaq_82c597",
|
||||
0,
|
||||
1,
|
||||
contaq_82c59x_init,
|
||||
contaq_82c59x_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "Contaq 82C597",
|
||||
.internal_name = "contaq_82c597",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = contaq_82c59x_init,
|
||||
.close = contaq_82c59x_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -176,14 +176,15 @@ cs4031_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t cs4031_device = {
|
||||
"Chips & Technogies CS4031",
|
||||
"cs4031",
|
||||
0,
|
||||
0,
|
||||
cs4031_init,
|
||||
cs4031_close,
|
||||
NULL,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "Chips & Technogies CS4031",
|
||||
.internal_name = "cs4031",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = cs4031_init,
|
||||
.close = cs4031_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -156,13 +156,16 @@ static void
|
||||
return cs8230;
|
||||
}
|
||||
|
||||
|
||||
const device_t cs8230_device = {
|
||||
"C&T CS8230 (386/AT)",
|
||||
"cs8230",
|
||||
0,
|
||||
0,
|
||||
cs8230_init, cs8230_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "C&T CS8230 (386/AT)",
|
||||
.internal_name = "cs8230",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = cs8230_init,
|
||||
.close = cs8230_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -149,14 +149,15 @@ et6000_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t et6000_device = {
|
||||
"ETEQ Cheetah ET6000",
|
||||
"et6000",
|
||||
0,
|
||||
0,
|
||||
et6000_init,
|
||||
et6000_close,
|
||||
NULL,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "ETEQ Cheetah ET6000",
|
||||
.internal_name = "et6000",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = et6000_init,
|
||||
.close = et6000_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -230,23 +230,30 @@ gc100_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t gc100_device = {
|
||||
"G2 GC100",
|
||||
"gc100",
|
||||
0,
|
||||
0,
|
||||
gc100_init, gc100_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "G2 GC100",
|
||||
.internal_name = "gc100",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = gc100_init,
|
||||
.close = gc100_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gc100a_device = {
|
||||
"G2 GC100A",
|
||||
"gc100a",
|
||||
0,
|
||||
1,
|
||||
gc100_init, gc100_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "G2 GC100A",
|
||||
.internal_name = "gc100a",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = gc100_init,
|
||||
.close = gc100_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -684,43 +684,58 @@ headland_init(const device_t *info)
|
||||
return(dev);
|
||||
}
|
||||
|
||||
|
||||
const device_t headland_gc10x_device = {
|
||||
"Headland GC101/102/103",
|
||||
"headland_gc10x",
|
||||
0,
|
||||
0,
|
||||
headland_init, headland_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Headland GC101/102/103",
|
||||
.internal_name = "headland_gc10x",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = headland_init,
|
||||
.close = headland_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t headland_ht18a_device = {
|
||||
"Headland HT18 Rev. A",
|
||||
"headland_ht18a",
|
||||
0,
|
||||
1,
|
||||
headland_init, headland_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Headland HT18 Rev. A",
|
||||
.internal_name = "headland_ht18a",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = headland_init,
|
||||
.close = headland_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t headland_ht18b_device = {
|
||||
"Headland HT18 Rev. B",
|
||||
"headland_ht18b",
|
||||
0,
|
||||
2,
|
||||
headland_init, headland_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Headland HT18 Rev. B",
|
||||
.internal_name = "headland_ht18b",
|
||||
.flags = 0,
|
||||
.local = 2,
|
||||
.init = headland_init,
|
||||
.close = headland_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t headland_ht18c_device = {
|
||||
"Headland HT18 Rev. C",
|
||||
"headland_ht18c",
|
||||
0,
|
||||
8,
|
||||
headland_init, headland_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Headland HT18 Rev. C",
|
||||
.internal_name = "headland_ht18c",
|
||||
.flags = 0,
|
||||
.local = 8,
|
||||
.init = headland_init,
|
||||
.close = headland_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -400,13 +400,16 @@ ims8848_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ims8848_device = {
|
||||
"IMS 8848/8849",
|
||||
"ims8848",
|
||||
0,
|
||||
0,
|
||||
ims8848_init, ims8848_close, ims8848_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "IMS 8848/8849",
|
||||
.internal_name = "ims8848",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = ims8848_init,
|
||||
.close = ims8848_close,
|
||||
.reset = ims8848_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -528,34 +528,30 @@ i420ex_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t i420ex_device =
|
||||
{
|
||||
"Intel 82420EX",
|
||||
"i420ex",
|
||||
DEVICE_PCI,
|
||||
0x00,
|
||||
i420ex_init,
|
||||
i420ex_close,
|
||||
i420ex_reset,
|
||||
{ NULL },
|
||||
i420ex_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i420ex_device = {
|
||||
.name = "Intel 82420EX",
|
||||
.internal_name = "i420ex",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x00,
|
||||
.init = i420ex_init,
|
||||
.close = i420ex_close,
|
||||
.reset = i420ex_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = i420ex_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i420ex_ide_device =
|
||||
{
|
||||
"Intel 82420EX (With IDE)",
|
||||
"i420ex_ide",
|
||||
DEVICE_PCI,
|
||||
0x01,
|
||||
i420ex_init,
|
||||
i420ex_close,
|
||||
i420ex_reset,
|
||||
{ NULL },
|
||||
i420ex_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i420ex_ide_device = {
|
||||
.name = "Intel 82420EX (With IDE)",
|
||||
.internal_name = "i420ex_ide",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x01,
|
||||
.init = i420ex_init,
|
||||
.close = i420ex_close,
|
||||
.reset = i420ex_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = i420ex_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1633,252 +1633,226 @@ static void
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t i420tx_device =
|
||||
{
|
||||
"Intel 82424TX",
|
||||
"i420tx",
|
||||
DEVICE_PCI,
|
||||
INTEL_420TX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i420tx_device = {
|
||||
.name = "Intel 82424TX",
|
||||
.internal_name = "i420tx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_420TX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i420zx_device =
|
||||
{
|
||||
"Intel 82424ZX",
|
||||
"i420zx",
|
||||
DEVICE_PCI,
|
||||
INTEL_420ZX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i420zx_device = {
|
||||
.name = "Intel 82424ZX",
|
||||
.internal_name = "i420zx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_420ZX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i430lx_device =
|
||||
{
|
||||
"Intel 82434LX",
|
||||
"i430lx",
|
||||
DEVICE_PCI,
|
||||
INTEL_430LX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i430lx_device = {
|
||||
.name = "Intel 82434LX",
|
||||
.internal_name = "i430lx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_430LX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i430nx_device =
|
||||
{
|
||||
"Intel 82434NX",
|
||||
"i430nx",
|
||||
DEVICE_PCI,
|
||||
INTEL_430NX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i430nx_device = {
|
||||
.name = "Intel 82434NX",
|
||||
.internal_name = "i430nx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_430NX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i430fx_device =
|
||||
{
|
||||
"Intel SB82437FX-66",
|
||||
"i430fx",
|
||||
DEVICE_PCI,
|
||||
INTEL_430FX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i430fx_device = {
|
||||
.name = "Intel SB82437FX-66",
|
||||
.internal_name = "i430fx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_430FX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i430fx_rev02_device =
|
||||
{
|
||||
"Intel SB82437FX-66 (Rev. 02)",
|
||||
"i430fx_rev02",
|
||||
DEVICE_PCI,
|
||||
0x0200 | INTEL_430FX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i430fx_rev02_device = {
|
||||
.name = "Intel SB82437FX-66 (Rev. 02)",
|
||||
.internal_name = "i430fx_rev02",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x0200 | INTEL_430FX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i430hx_device =
|
||||
{
|
||||
"Intel 82439HX",
|
||||
"i430hx",
|
||||
DEVICE_PCI,
|
||||
INTEL_430HX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i430hx_device = {
|
||||
.name = "Intel 82439HX",
|
||||
.internal_name = "i430hx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_430HX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i430vx_device =
|
||||
{
|
||||
"Intel 82437VX",
|
||||
"i430vx",
|
||||
DEVICE_PCI,
|
||||
INTEL_430VX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i430vx_device = {
|
||||
.name = "Intel 82437VX",
|
||||
.internal_name = "i430vx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_430VX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i430tx_device =
|
||||
{
|
||||
"Intel 82439TX",
|
||||
"i430tx",
|
||||
DEVICE_PCI,
|
||||
INTEL_430TX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i430tx_device = {
|
||||
.name = "Intel 82439TX",
|
||||
.internal_name = "i430tx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_430TX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t i440fx_device =
|
||||
{
|
||||
"Intel 82441FX",
|
||||
"i440fx",
|
||||
DEVICE_PCI,
|
||||
INTEL_440FX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440fx_device = {
|
||||
.name = "Intel 82441FX",
|
||||
.internal_name = "i440fx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_440FX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440lx_device =
|
||||
{
|
||||
"Intel 82443LX",
|
||||
"i440lx",
|
||||
DEVICE_PCI,
|
||||
INTEL_440LX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440lx_device = {
|
||||
.name = "Intel 82443LX",
|
||||
.internal_name = "i440lx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_440LX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440ex_device =
|
||||
{
|
||||
"Intel 82443EX",
|
||||
"i440ex",
|
||||
DEVICE_PCI,
|
||||
INTEL_440EX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440ex_device = {
|
||||
.name = "Intel 82443EX",
|
||||
.internal_name = "i440ex",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = INTEL_440EX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440bx_device =
|
||||
{
|
||||
"Intel 82443BX",
|
||||
"i440bx",
|
||||
DEVICE_PCI,
|
||||
0x8000 | INTEL_440BX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440bx_device = {
|
||||
.name = "Intel 82443BX",
|
||||
.internal_name = "i440bx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x8000 | INTEL_440BX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440bx_no_agp_device =
|
||||
{
|
||||
"Intel 82443BX",
|
||||
"i440bx_no_agp",
|
||||
DEVICE_PCI,
|
||||
0x8200 | INTEL_440BX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440bx_no_agp_device = {
|
||||
.name = "Intel 82443BX",
|
||||
.internal_name = "i440bx_no_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x8200 | INTEL_440BX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440gx_device =
|
||||
{
|
||||
"Intel 82443GX",
|
||||
"i440gx",
|
||||
DEVICE_PCI,
|
||||
0x8000 | INTEL_440GX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440gx_device = {
|
||||
.name = "Intel 82443GX",
|
||||
.internal_name = "i440gx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x8000 | INTEL_440GX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440zx_device =
|
||||
{
|
||||
"Intel 82443ZX",
|
||||
"i440zx",
|
||||
DEVICE_PCI,
|
||||
0x8000 | INTEL_440ZX,
|
||||
i4x0_init,
|
||||
i4x0_close,
|
||||
i4x0_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440zx_device = {
|
||||
.name = "Intel 82443ZX",
|
||||
.internal_name = "i440zx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x8000 | INTEL_440ZX,
|
||||
.init = i4x0_init,
|
||||
.close = i4x0_close,
|
||||
.reset = i4x0_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -197,14 +197,15 @@ intel_82335_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t intel_82335_device = {
|
||||
"Intel 82335",
|
||||
"intel_82335",
|
||||
0,
|
||||
0,
|
||||
intel_82335_init,
|
||||
intel_82335_close,
|
||||
NULL,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "Intel 82335",
|
||||
.internal_name = "intel_82335",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = intel_82335_init,
|
||||
.close = intel_82335_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -806,17 +806,16 @@ i450kx_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t i450kx_device = {
|
||||
"Intel 450KX (Mars)",
|
||||
"i450kx",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
i450kx_init,
|
||||
i450kx_close,
|
||||
i450kx_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "Intel 450KX (Mars)",
|
||||
.internal_name = "i450kx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = i450kx_init,
|
||||
.close = i450kx_close,
|
||||
.reset = i450kx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1599,108 +1599,100 @@ static void
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t piix_device =
|
||||
{
|
||||
"Intel 82371FB (PIIX)",
|
||||
"piix",
|
||||
DEVICE_PCI,
|
||||
0x122e0101,
|
||||
piix_init,
|
||||
piix_close,
|
||||
piix_reset,
|
||||
{ NULL },
|
||||
piix_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t piix_device = {
|
||||
.name = "Intel 82371FB (PIIX)",
|
||||
.internal_name = "piix",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x122e0101,
|
||||
.init = piix_init,
|
||||
.close = piix_close,
|
||||
.reset = piix_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = piix_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t piix_rev02_device =
|
||||
{
|
||||
"Intel 82371FB (PIIX) (Faulty BusMastering!!)",
|
||||
"piix_rev02",
|
||||
DEVICE_PCI,
|
||||
0x122e0121,
|
||||
piix_init,
|
||||
piix_close,
|
||||
piix_reset,
|
||||
{ NULL },
|
||||
piix_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t piix_rev02_device = {
|
||||
.name = "Intel 82371FB (PIIX) (Faulty BusMastering!!)",
|
||||
.internal_name = "piix_rev02",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x122e0121,
|
||||
.init = piix_init,
|
||||
.close = piix_close,
|
||||
.reset = piix_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = piix_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t piix3_device =
|
||||
{
|
||||
"Intel 82371SB (PIIX3)",
|
||||
"piix3",
|
||||
DEVICE_PCI,
|
||||
0x70000403,
|
||||
piix_init,
|
||||
piix_close,
|
||||
piix_reset,
|
||||
{ NULL },
|
||||
piix_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t piix3_device = {
|
||||
.name = "Intel 82371SB (PIIX3)",
|
||||
.internal_name = "piix3",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x70000403,
|
||||
.init = piix_init,
|
||||
.close = piix_close,
|
||||
.reset = piix_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = piix_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t piix3_ioapic_device =
|
||||
{
|
||||
"Intel 82371SB (PIIX3) (Boards with I/O APIC)",
|
||||
"piix3_ioapic",
|
||||
DEVICE_PCI,
|
||||
0x70001403,
|
||||
piix_init,
|
||||
piix_close,
|
||||
piix_reset,
|
||||
{ NULL },
|
||||
piix_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t piix3_ioapic_device = {
|
||||
.name = "Intel 82371SB (PIIX3) (Boards with I/O APIC)",
|
||||
.internal_name = "piix3_ioapic",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x70001403,
|
||||
.init = piix_init,
|
||||
.close = piix_close,
|
||||
.reset = piix_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = piix_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t piix4_device =
|
||||
{
|
||||
"Intel 82371AB/EB (PIIX4/PIIX4E)",
|
||||
"piix4",
|
||||
DEVICE_PCI,
|
||||
0x71100004,
|
||||
piix_init,
|
||||
piix_close,
|
||||
piix_reset,
|
||||
{ NULL },
|
||||
piix_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t piix4_device = {
|
||||
.name = "Intel 82371AB/EB (PIIX4/PIIX4E)",
|
||||
.internal_name = "piix4",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x71100004,
|
||||
.init = piix_init,
|
||||
.close = piix_close,
|
||||
.reset = piix_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = piix_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t piix4e_device =
|
||||
{
|
||||
"Intel 82371EB (PIIX4E)",
|
||||
"piix4e",
|
||||
DEVICE_PCI,
|
||||
0x71100094,
|
||||
piix_init,
|
||||
piix_close,
|
||||
piix_reset,
|
||||
{ NULL },
|
||||
piix_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t piix4e_device = {
|
||||
.name = "Intel 82371EB (PIIX4E)",
|
||||
.internal_name = "piix4e",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x71100094,
|
||||
.init = piix_init,
|
||||
.close = piix_close,
|
||||
.reset = piix_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = piix_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t slc90e66_device =
|
||||
{
|
||||
"SMSC SLC90E66 (Victory66)",
|
||||
"slc90e66",
|
||||
DEVICE_PCI,
|
||||
0x94600005,
|
||||
piix_init,
|
||||
piix_close,
|
||||
piix_reset,
|
||||
{ NULL },
|
||||
piix_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t slc90e66_device = {
|
||||
.name = "SMSC SLC90E66 (Victory66)",
|
||||
.internal_name = "slc90e66",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x94600005,
|
||||
.init = piix_init,
|
||||
.close = piix_close,
|
||||
.reset = piix_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = piix_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -545,33 +545,31 @@ sio_init(const device_t *info)
|
||||
}
|
||||
|
||||
|
||||
const device_t sio_device =
|
||||
{
|
||||
"Intel 82378IB (SIO)",
|
||||
"sio",
|
||||
DEVICE_PCI,
|
||||
0x00,
|
||||
sio_init,
|
||||
sio_close,
|
||||
sio_reset,
|
||||
{ NULL },
|
||||
sio_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t sio_device = {
|
||||
.name = "Intel 82378IB (SIO)",
|
||||
.internal_name = "sio",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x00,
|
||||
.init = sio_init,
|
||||
.close = sio_close,
|
||||
.reset = sio_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = sio_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t sio_zb_device =
|
||||
{
|
||||
"Intel 82378ZB (SIO)",
|
||||
"sio_zb",
|
||||
DEVICE_PCI,
|
||||
0x03,
|
||||
sio_init,
|
||||
sio_close,
|
||||
sio_reset,
|
||||
{ NULL },
|
||||
sio_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t sio_zb_device = {
|
||||
.name = "Intel 82378ZB (SIO)",
|
||||
.internal_name = "sio_zb",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x03,
|
||||
.init = sio_init,
|
||||
.close = sio_close,
|
||||
.reset = sio_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = sio_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -824,13 +824,16 @@ neat_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t neat_device = {
|
||||
"C&T CS8121 (NEAT)",
|
||||
"neat",
|
||||
0,
|
||||
0,
|
||||
neat_init, neat_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "C&T CS8121 (NEAT)",
|
||||
.internal_name = "neat",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = neat_init,
|
||||
.close = neat_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -157,11 +157,15 @@ olivetti_eva_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t olivetti_eva_device = {
|
||||
"Olivetti EVA Gate Array",
|
||||
"olivetta_eva",
|
||||
0,
|
||||
0,
|
||||
olivetti_eva_init, olivetti_eva_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Olivetti EVA Gate Array",
|
||||
.internal_name = "olivetta_eva",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = olivetti_eva_init,
|
||||
.close = olivetti_eva_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -302,17 +302,16 @@ opti283_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t opti283_device = {
|
||||
"OPTi 82C283",
|
||||
"opti283",
|
||||
0,
|
||||
0,
|
||||
opti283_init,
|
||||
opti283_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "OPTi 82C283",
|
||||
.internal_name = "opti283",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = opti283_init,
|
||||
.close = opti283_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -147,14 +147,15 @@ opti291_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t opti291_device = {
|
||||
"OPTi 82C291",
|
||||
"opti291",
|
||||
0,
|
||||
0,
|
||||
opti291_init,
|
||||
opti291_close,
|
||||
NULL,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "OPTi 82C291",
|
||||
.internal_name = "opti291",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = opti291_init,
|
||||
.close = opti291_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -211,17 +211,16 @@ opti391_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t opti391_device = {
|
||||
"OPTi 82C391",
|
||||
"opti391",
|
||||
0,
|
||||
0,
|
||||
opti391_init,
|
||||
opti391_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "OPTi 82C391",
|
||||
.internal_name = "opti391",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = opti391_init,
|
||||
.close = opti391_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -236,24 +236,30 @@ opti495_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t opti493_device = {
|
||||
"OPTi 82C493",
|
||||
"opti493",
|
||||
0,
|
||||
0,
|
||||
opti495_init, opti495_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "OPTi 82C493",
|
||||
.internal_name = "opti493",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = opti495_init,
|
||||
.close = opti495_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t opti495_device = {
|
||||
"OPTi 82C495",
|
||||
"opti495",
|
||||
0,
|
||||
1,
|
||||
opti495_init, opti495_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "OPTi 82C495",
|
||||
.internal_name = "opti495",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = opti495_init,
|
||||
.close = opti495_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -253,13 +253,16 @@ opti499_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t opti499_device = {
|
||||
"OPTi 82C499",
|
||||
"opti499",
|
||||
0,
|
||||
1,
|
||||
opti499_init, opti499_close, opti499_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "OPTi 82C499",
|
||||
.internal_name = "opti499",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = opti499_init,
|
||||
.close = opti499_close,
|
||||
.reset = opti499_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -176,14 +176,15 @@ opti5x7_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t opti5x7_device = {
|
||||
"OPTi 82C5x6/82C5x7",
|
||||
"opti5x7",
|
||||
0,
|
||||
0,
|
||||
opti5x7_init,
|
||||
opti5x7_close,
|
||||
NULL,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "OPTi 82C5x6/82C5x7",
|
||||
.internal_name = "opti5x7",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = opti5x7_init,
|
||||
.close = opti5x7_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -310,14 +310,15 @@ opti822_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t opti822_device = {
|
||||
"OPTi 82C822 PCIB",
|
||||
"opti822",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
opti822_init,
|
||||
opti822_close,
|
||||
opti822_reset,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "OPTi 82C822 PCIB",
|
||||
.internal_name = "opti822",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = opti822_init,
|
||||
.close = opti822_close,
|
||||
.reset = opti822_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -273,24 +273,30 @@ opti895_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t opti802g_device = {
|
||||
"OPTi 82C802G",
|
||||
"opti802g",
|
||||
0,
|
||||
0,
|
||||
opti895_init, opti895_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "OPTi 82C802G",
|
||||
.internal_name = "opti802g",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = opti895_init,
|
||||
.close = opti895_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t opti895_device = {
|
||||
"OPTi 82C895",
|
||||
"opti895",
|
||||
0,
|
||||
0,
|
||||
opti895_init, opti895_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "OPTi 82C895",
|
||||
.internal_name = "opti895",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = opti895_init,
|
||||
.close = opti895_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -955,13 +955,16 @@ scamp_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t vlsi_scamp_device = {
|
||||
"VLSI SCAMP",
|
||||
"vlsi_scamp",
|
||||
0,
|
||||
0,
|
||||
scamp_init, scamp_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VLSI SCAMP",
|
||||
.internal_name = "vlsi_scamp",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = scamp_init,
|
||||
.close = scamp_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1542,33 +1542,44 @@ scat_init(const device_t *info)
|
||||
return(dev);
|
||||
}
|
||||
|
||||
|
||||
const device_t scat_device = {
|
||||
"C&T SCAT (v1)",
|
||||
"scat",
|
||||
0,
|
||||
0,
|
||||
scat_init, scat_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "C&T SCAT (v1)",
|
||||
.internal_name = "scat",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = scat_init,
|
||||
.close = scat_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t scat_4_device = {
|
||||
"C&T SCAT (v4)",
|
||||
"scat_4",
|
||||
0,
|
||||
4,
|
||||
scat_init, scat_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "C&T SCAT (v4)",
|
||||
.internal_name = "scat_4",
|
||||
.flags = 0,
|
||||
.local = 4,
|
||||
.init = scat_init,
|
||||
.close = scat_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t scat_sx_device = {
|
||||
"C&T SCATsx",
|
||||
"scat_sx",
|
||||
0,
|
||||
32,
|
||||
scat_init, scat_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "C&T SCATsx",
|
||||
.internal_name = "scat_sx",
|
||||
.flags = 0,
|
||||
.local = 32,
|
||||
.init = scat_init,
|
||||
.close = scat_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -740,14 +740,15 @@ sis_5511_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t sis_5511_device = {
|
||||
"SiS 5511",
|
||||
"sis_5511",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
sis_5511_init,
|
||||
sis_5511_close,
|
||||
sis_5511_reset,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "SiS 5511",
|
||||
.internal_name = "sis_5511",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = sis_5511_init,
|
||||
.close = sis_5511_close,
|
||||
.reset = sis_5511_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -742,14 +742,15 @@ sis_5571_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t sis_5571_device = {
|
||||
"SiS 5571",
|
||||
"sis_5571",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
sis_5571_init,
|
||||
sis_5571_close,
|
||||
sis_5571_reset,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "SiS 5571",
|
||||
.internal_name = "sis_5571",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = sis_5571_init,
|
||||
.close = sis_5571_close,
|
||||
.reset = sis_5571_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -135,13 +135,16 @@ rabbit_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t rabbit_device = {
|
||||
"SiS Rabbit",
|
||||
"rabbit",
|
||||
0,
|
||||
0,
|
||||
rabbit_init, rabbit_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "SiS Rabbit",
|
||||
.internal_name = "rabbit",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = rabbit_init,
|
||||
.close = rabbit_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -618,34 +618,30 @@ static void
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t sis_85c496_device =
|
||||
{
|
||||
"SiS 85c496/85c497",
|
||||
"sis_85c496",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
sis_85c496_init,
|
||||
sis_85c496_close,
|
||||
sis_85c496_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t sis_85c496_device = {
|
||||
.name = "SiS 85c496/85c497",
|
||||
.internal_name = "sis_85c496",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = sis_85c496_init,
|
||||
.close = sis_85c496_close,
|
||||
.reset = sis_85c496_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t sis_85c496_ls486e_device =
|
||||
{
|
||||
"SiS 85c496/85c497 (Lucky Star LS-486E)",
|
||||
"sis_85c496_ls486e",
|
||||
DEVICE_PCI,
|
||||
1,
|
||||
sis_85c496_init,
|
||||
sis_85c496_close,
|
||||
sis_85c496_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t sis_85c496_ls486e_device = {
|
||||
.name = "SiS 85c496/85c497 (Lucky Star LS-486E)",
|
||||
.internal_name = "sis_85c496_ls486e",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 1,
|
||||
.init = sis_85c496_init,
|
||||
.close = sis_85c496_close,
|
||||
.reset = sis_85c496_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -358,44 +358,59 @@ sis_85c4xx_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t sis_85c401_device = {
|
||||
"SiS 85c401/85c402",
|
||||
"sis_85c401",
|
||||
0,
|
||||
0x060,
|
||||
sis_85c4xx_init, sis_85c4xx_close, sis_85c4xx_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "SiS 85c401/85c402",
|
||||
.internal_name = "sis_85c401",
|
||||
.flags = 0,
|
||||
.local = 0x060,
|
||||
.init = sis_85c4xx_init,
|
||||
.close = sis_85c4xx_close,
|
||||
.reset = sis_85c4xx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t sis_85c460_device = {
|
||||
"SiS 85c460",
|
||||
"sis_85c460",
|
||||
0,
|
||||
0x050,
|
||||
sis_85c4xx_init, sis_85c4xx_close, sis_85c4xx_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "SiS 85c460",
|
||||
.internal_name = "sis_85c460",
|
||||
.flags = 0,
|
||||
.local = 0x050,
|
||||
.init = sis_85c4xx_init,
|
||||
.close = sis_85c4xx_close,
|
||||
.reset = sis_85c4xx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
/* TODO: Log to make sure the registers are correct. */
|
||||
const device_t sis_85c461_device = {
|
||||
"SiS 85c461",
|
||||
"sis_85c461",
|
||||
0,
|
||||
0x050,
|
||||
sis_85c4xx_init, sis_85c4xx_close, sis_85c4xx_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "SiS 85c461",
|
||||
.internal_name = "sis_85c461",
|
||||
.flags = 0,
|
||||
.local = 0x050,
|
||||
.init = sis_85c4xx_init,
|
||||
.close = sis_85c4xx_close,
|
||||
.reset = sis_85c4xx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t sis_85c471_device = {
|
||||
"SiS 85c407/85c471",
|
||||
"sis_85c471",
|
||||
0,
|
||||
0x150,
|
||||
sis_85c4xx_init, sis_85c4xx_close, sis_85c4xx_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "SiS 85c407/85c471",
|
||||
.internal_name = "sis_85c471",
|
||||
.flags = 0,
|
||||
.local = 0x150,
|
||||
.init = sis_85c4xx_init,
|
||||
.close = sis_85c4xx_close,
|
||||
.reset = sis_85c4xx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -390,14 +390,16 @@ sis_85c50x_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t sis_85c50x_device = {
|
||||
"SiS 85C50x",
|
||||
"sis_85c50x",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
sis_85c50x_init, sis_85c50x_close,
|
||||
sis_85c50x_reset, { NULL },
|
||||
NULL, NULL,
|
||||
NULL
|
||||
.name = "SiS 85C50x",
|
||||
.internal_name = "sis_85c50x",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = sis_85c50x_init,
|
||||
.close = sis_85c50x_close,
|
||||
.reset = sis_85c50x_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1055,95 +1055,88 @@ stpc_lpt_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
/* STPC SoCs */
|
||||
const device_t stpc_client_device =
|
||||
{
|
||||
"STPC Client",
|
||||
"stpc_client",
|
||||
DEVICE_PCI,
|
||||
STPC_CLIENT,
|
||||
stpc_init,
|
||||
stpc_close,
|
||||
stpc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t stpc_client_device = {
|
||||
.name = "STPC Client",
|
||||
.internal_name = "stpc_client",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = STPC_CLIENT,
|
||||
.init = stpc_init,
|
||||
.close = stpc_close,
|
||||
.reset = stpc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t stpc_consumer2_device =
|
||||
{
|
||||
"STPC Consumer-II",
|
||||
"stpc_consumer2",
|
||||
DEVICE_PCI,
|
||||
STPC_CONSUMER2,
|
||||
stpc_init,
|
||||
stpc_close,
|
||||
stpc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t stpc_consumer2_device = {
|
||||
.name = "STPC Consumer-II",
|
||||
.internal_name = "stpc_consumer2",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = STPC_CONSUMER2,
|
||||
.init = stpc_init,
|
||||
.close = stpc_close,
|
||||
.reset = stpc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t stpc_elite_device =
|
||||
{
|
||||
"STPC Elite",
|
||||
"stpc_elite",
|
||||
DEVICE_PCI,
|
||||
STPC_ELITE,
|
||||
stpc_init,
|
||||
stpc_close,
|
||||
stpc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t stpc_elite_device = {
|
||||
.name = "STPC Elite",
|
||||
.internal_name = "stpc_elite",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = STPC_ELITE,
|
||||
.init = stpc_init,
|
||||
.close = stpc_close,
|
||||
.reset = stpc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t stpc_atlas_device =
|
||||
{
|
||||
"STPC Atlas",
|
||||
"stpc_atlas",
|
||||
DEVICE_PCI,
|
||||
STPC_ATLAS,
|
||||
stpc_init,
|
||||
stpc_close,
|
||||
stpc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t stpc_atlas_device = {
|
||||
.name = "STPC Atlas",
|
||||
.internal_name = "stpc_atlas",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = STPC_ATLAS,
|
||||
.init = stpc_init,
|
||||
.close = stpc_close,
|
||||
.reset = stpc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
/* Auxiliary devices */
|
||||
const device_t stpc_serial_device =
|
||||
{
|
||||
"STPC Serial UARTs",
|
||||
"stpc_serial",
|
||||
0,
|
||||
0,
|
||||
stpc_serial_init,
|
||||
stpc_serial_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t stpc_serial_device = {
|
||||
.name = "STPC Serial UARTs",
|
||||
.internal_name = "stpc_serial",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = stpc_serial_init,
|
||||
.close = stpc_serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t stpc_lpt_device =
|
||||
{
|
||||
"STPC Parallel Port",
|
||||
"stpc_lpt",
|
||||
0,
|
||||
0,
|
||||
stpc_lpt_init,
|
||||
stpc_lpt_close,
|
||||
stpc_lpt_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t stpc_lpt_device = {
|
||||
.name = "STPC Parallel Port",
|
||||
.internal_name = "stpc_lpt",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = stpc_lpt_init,
|
||||
.close = stpc_lpt_close,
|
||||
.reset = stpc_lpt_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -377,23 +377,30 @@ umc_8886_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t umc_8886f_device = {
|
||||
"UMC 8886F",
|
||||
"umc_8886f",
|
||||
DEVICE_PCI,
|
||||
0x8886,
|
||||
umc_8886_init, umc_8886_close, umc_8886_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "UMC 8886F",
|
||||
.internal_name = "umc_8886f",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x8886,
|
||||
.init = umc_8886_init,
|
||||
.close = umc_8886_close,
|
||||
.reset = umc_8886_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t umc_8886af_device = {
|
||||
"UMC 8886AF/8886BF",
|
||||
"umc_8886af",
|
||||
DEVICE_PCI,
|
||||
0x886a,
|
||||
umc_8886_init, umc_8886_close, umc_8886_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "UMC 8886AF/8886BF",
|
||||
.internal_name = "umc_8886af",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x886a,
|
||||
.init = umc_8886_init,
|
||||
.close = umc_8886_close,
|
||||
.reset = umc_8886_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -416,13 +416,16 @@ hb4_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t umc_hb4_device = {
|
||||
"UMC HB4(8881F)",
|
||||
"umc_hb4",
|
||||
DEVICE_PCI,
|
||||
0x886a,
|
||||
hb4_init, hb4_close, hb4_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "UMC HB4(8881F)",
|
||||
.internal_name = "umc_hb4",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x886a,
|
||||
.init = hb4_init,
|
||||
.close = hb4_close,
|
||||
.reset = hb4_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -760,118 +760,114 @@ via_apollo_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
const device_t via_vpx_device =
|
||||
{
|
||||
"VIA Apollo VPX",
|
||||
"via_vpx",
|
||||
DEVICE_PCI,
|
||||
VIA_585, /*VT82C585*/
|
||||
via_apollo_init,
|
||||
via_apollo_close,
|
||||
via_apollo_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vpx_device = {
|
||||
.name = "VIA Apollo VPX",
|
||||
.internal_name = "via_vpx",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_585, /*VT82C585*/
|
||||
.init = via_apollo_init,
|
||||
.close = via_apollo_close,
|
||||
.reset = via_apollo_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t amd640_device =
|
||||
{
|
||||
"AMD 640 System Controller",
|
||||
"amd640",
|
||||
DEVICE_PCI,
|
||||
VIA_595, /*VT82C595*/
|
||||
via_apollo_init,
|
||||
via_apollo_close,
|
||||
via_apollo_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t amd640_device = {
|
||||
.name = "AMD 640 System Controller",
|
||||
.internal_name = "amd640",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_595, /*VT82C595*/
|
||||
.init = via_apollo_init,
|
||||
.close = via_apollo_close,
|
||||
.reset = via_apollo_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_vp3_device =
|
||||
{
|
||||
"VIA Apollo VP3",
|
||||
"via_vp3",
|
||||
DEVICE_PCI,
|
||||
VIA_597, /*VT82C597*/
|
||||
via_apollo_init,
|
||||
via_apollo_close,
|
||||
via_apollo_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vp3_device = {
|
||||
.name = "VIA Apollo VP3",
|
||||
.internal_name = "via_vp3",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_597, /*VT82C597*/
|
||||
.init = via_apollo_init,
|
||||
.close = via_apollo_close,
|
||||
.reset = via_apollo_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_mvp3_device =
|
||||
{
|
||||
"VIA Apollo MVP3",
|
||||
"via_mvp3",
|
||||
DEVICE_PCI,
|
||||
VIA_598, /*VT82C598MVP*/
|
||||
via_apollo_init,
|
||||
via_apollo_close,
|
||||
via_apollo_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_mvp3_device = {
|
||||
.name = "VIA Apollo MVP3",
|
||||
.internal_name = "via_mvp3",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_598, /*VT82C598MVP*/
|
||||
.init = via_apollo_init,
|
||||
.close = via_apollo_close,
|
||||
.reset = via_apollo_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_apro_device = {
|
||||
"VIA Apollo Pro",
|
||||
"via_apro",
|
||||
DEVICE_PCI,
|
||||
VIA_691, /*VT82C691*/
|
||||
via_apollo_init,
|
||||
via_apollo_close,
|
||||
via_apollo_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "VIA Apollo Pro",
|
||||
.internal_name = "via_apro",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_691, /*VT82C691*/
|
||||
.init = via_apollo_init,
|
||||
.close = via_apollo_close,
|
||||
.reset = via_apollo_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_apro133_device = {
|
||||
"VIA Apollo Pro133",
|
||||
"via_apro133",
|
||||
DEVICE_PCI,
|
||||
VIA_693A, /*VT82C693A*/
|
||||
via_apollo_init,
|
||||
via_apollo_close,
|
||||
via_apollo_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "VIA Apollo Pro133",
|
||||
.internal_name = "via_apro133",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_693A, /*VT82C693A*/
|
||||
.init = via_apollo_init,
|
||||
.close = via_apollo_close,
|
||||
.reset = via_apollo_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_apro133a_device = {
|
||||
"VIA Apollo Pro133A",
|
||||
"via_apro_133a",
|
||||
DEVICE_PCI,
|
||||
VIA_694, /*VT82C694X*/
|
||||
via_apollo_init,
|
||||
via_apollo_close,
|
||||
via_apollo_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "VIA Apollo Pro133A",
|
||||
.internal_name = "via_apro_133a",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_694, /*VT82C694X*/
|
||||
.init = via_apollo_init,
|
||||
.close = via_apollo_close,
|
||||
.reset = via_apollo_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_vt8601_device = {
|
||||
"VIA Apollo ProMedia",
|
||||
"via_vt8601",
|
||||
DEVICE_PCI,
|
||||
VIA_8601, /*VT8601*/
|
||||
via_apollo_init,
|
||||
via_apollo_close,
|
||||
via_apollo_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "VIA Apollo ProMedia",
|
||||
.internal_name = "via_vt8601",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_8601, /*VT8601*/
|
||||
.init = via_apollo_init,
|
||||
.close = via_apollo_close,
|
||||
.reset = via_apollo_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1631,97 +1631,86 @@ pipc_close(void *p)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
const device_t via_vt82c586b_device =
|
||||
{
|
||||
"VIA VT82C586B",
|
||||
"via_vt82c586b",
|
||||
DEVICE_PCI,
|
||||
VIA_PIPC_586B,
|
||||
pipc_init,
|
||||
pipc_close,
|
||||
pipc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vt82c586b_device = {
|
||||
.name = "VIA VT82C586B",
|
||||
.internal_name = "via_vt82c586b",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_PIPC_586B,
|
||||
.init = pipc_init,
|
||||
.close = pipc_close,
|
||||
.reset = pipc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_vt82c596a_device =
|
||||
{
|
||||
"VIA VT82C596A",
|
||||
"via_vt82c596a",
|
||||
DEVICE_PCI,
|
||||
VIA_PIPC_596A,
|
||||
pipc_init,
|
||||
pipc_close,
|
||||
pipc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vt82c596a_device = {
|
||||
.name = "VIA VT82C596A",
|
||||
.internal_name = "via_vt82c596a",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_PIPC_596A,
|
||||
.init = pipc_init,
|
||||
.close = pipc_close,
|
||||
.reset = pipc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t via_vt82c596b_device =
|
||||
{
|
||||
"VIA VT82C596B",
|
||||
"via_vt82c596b",
|
||||
DEVICE_PCI,
|
||||
VIA_PIPC_596B,
|
||||
pipc_init,
|
||||
pipc_close,
|
||||
pipc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vt82c596b_device = {
|
||||
.name = "VIA VT82C596B",
|
||||
.internal_name = "via_vt82c596b",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_PIPC_596B,
|
||||
.init = pipc_init,
|
||||
.close = pipc_close,
|
||||
.reset = pipc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t via_vt82c686a_device =
|
||||
{
|
||||
"VIA VT82C686A",
|
||||
"via_vt82c686a",
|
||||
DEVICE_PCI,
|
||||
VIA_PIPC_686A,
|
||||
pipc_init,
|
||||
pipc_close,
|
||||
pipc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vt82c686a_device = {
|
||||
.name = "VIA VT82C686A",
|
||||
.internal_name = "via_vt82c686a",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_PIPC_686A,
|
||||
.init = pipc_init,
|
||||
.close = pipc_close,
|
||||
.reset = pipc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t via_vt82c686b_device =
|
||||
{
|
||||
"VIA VT82C686B",
|
||||
"via_vt82c686b",
|
||||
DEVICE_PCI,
|
||||
VIA_PIPC_686B,
|
||||
pipc_init,
|
||||
pipc_close,
|
||||
pipc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vt82c686b_device = {
|
||||
.name = "VIA VT82C686B",
|
||||
.internal_name = "via_vt82c686b",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_PIPC_686B,
|
||||
.init = pipc_init,
|
||||
.close = pipc_close,
|
||||
.reset = pipc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t via_vt8231_device =
|
||||
{
|
||||
"VIA VT8231",
|
||||
"via_vt8231",
|
||||
DEVICE_PCI,
|
||||
VIA_PIPC_8231,
|
||||
pipc_init,
|
||||
pipc_close,
|
||||
pipc_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vt8231_device = {
|
||||
.name = "VIA VT8231",
|
||||
.internal_name = "via_vt8231",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = VIA_PIPC_8231,
|
||||
.init = pipc_init,
|
||||
.close = pipc_close,
|
||||
.reset = pipc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -358,46 +358,58 @@ vt82c49x_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t via_vt82c49x_device = {
|
||||
"VIA VT82C49X",
|
||||
"via_vt82c49x",
|
||||
0,
|
||||
0,
|
||||
vt82c49x_init, vt82c49x_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VIA VT82C49X",
|
||||
.internal_name = "via_vt82c49x",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = vt82c49x_init,
|
||||
.close = vt82c49x_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t via_vt82c49x_pci_device = {
|
||||
"VIA VT82C49X PCI",
|
||||
"via_vt82c49x_pci",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
vt82c49x_init, vt82c49x_close, vt82c49x_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VIA VT82C49X PCI",
|
||||
.internal_name = "via_vt82c49x_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = vt82c49x_init,
|
||||
.close = vt82c49x_close,
|
||||
.reset = vt82c49x_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t via_vt82c49x_ide_device = {
|
||||
"VIA VT82C49X (With IDE)",
|
||||
"via_vt82c49x_ide",
|
||||
0,
|
||||
1,
|
||||
vt82c49x_init, vt82c49x_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VIA VT82C49X (With IDE)",
|
||||
.internal_name = "via_vt82c49x_ide",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = vt82c49x_init,
|
||||
.close = vt82c49x_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t via_vt82c49x_pci_ide_device = {
|
||||
"VIA VT82C49X PCI (With IDE)",
|
||||
"via_vt82c49x_pci_ide",
|
||||
DEVICE_PCI,
|
||||
1,
|
||||
vt82c49x_init, vt82c49x_close, vt82c49x_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VIA VT82C49X PCI (With IDE)",
|
||||
.internal_name = "via_vt82c49x_pci_ide",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 1,
|
||||
.init = vt82c49x_init,
|
||||
.close = vt82c49x_close,
|
||||
.reset = vt82c49x_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -216,17 +216,16 @@ vt82c505_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t via_vt82c505_device = {
|
||||
"VIA VT82C505",
|
||||
"via_vt82c505",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
vt82c505_init,
|
||||
vt82c505_close,
|
||||
vt82c505_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "VIA VT82C505",
|
||||
.internal_name = "via_vt82c505",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = vt82c505_init,
|
||||
.close = vt82c505_close,
|
||||
.reset = vt82c505_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -188,24 +188,30 @@ vl82c480_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t vl82c480_device = {
|
||||
"VLSI VL82c480",
|
||||
"vl82c480",
|
||||
0,
|
||||
0x90,
|
||||
vl82c480_init, vl82c480_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VLSI VL82c480",
|
||||
.internal_name = "vl82c480",
|
||||
.flags = 0,
|
||||
.local = 0x90,
|
||||
.init = vl82c480_init,
|
||||
.close = vl82c480_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t vl82c486_device = {
|
||||
"VLSI VL82c486",
|
||||
"vl82c486",
|
||||
0,
|
||||
0x98,
|
||||
vl82c480_init, vl82c480_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VLSI VL82c486",
|
||||
.internal_name = "vl82c486",
|
||||
.flags = 0,
|
||||
.local = 0x98,
|
||||
.init = vl82c480_init,
|
||||
.close = vl82c480_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -172,7 +172,7 @@ static void wd76c10_disk_chip_select(wd76c10_t *dev)
|
||||
|
||||
fdc_remove(dev->fdc_controller);
|
||||
if (!(dev->disk_chip_select & 2))
|
||||
fdc_set_base(dev->fdc_controller, !(dev->disk_chip_select & 0x0010) ? 0x3f0 : 0x370);
|
||||
fdc_set_base(dev->fdc_controller, !(dev->disk_chip_select & 0x0010) ? FDC_PRIMARY_ADDR : FDC_SECONDARY_ADDR);
|
||||
}
|
||||
|
||||
static void wd76c10_shadow_recalc(wd76c10_t *dev)
|
||||
@@ -538,14 +538,15 @@ wd76c10_init(const device_t *info)
|
||||
}
|
||||
|
||||
const device_t wd76c10_device = {
|
||||
"Western Digital WD76C10",
|
||||
"wd76c10",
|
||||
0,
|
||||
0,
|
||||
wd76c10_init,
|
||||
wd76c10_close,
|
||||
NULL,
|
||||
{NULL},
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
.name = "Western Digital WD76C10",
|
||||
.internal_name = "wd76c10",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = wd76c10_init,
|
||||
.close = wd76c10_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "codegen_ops.h"
|
||||
#include "codegen_ops_x86-64.h"
|
||||
|
||||
#if defined(__unix__) || defined(__APPLE__)
|
||||
#if defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__)
|
||||
#include <sys/mman.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -66,7 +66,7 @@ void codegen_init()
|
||||
|
||||
#if _WIN64
|
||||
codeblock = VirtualAlloc(NULL, BLOCK_SIZE * sizeof(codeblock_t), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
#elif defined(__unix__) || defined(__APPLE__)
|
||||
#elif defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__)
|
||||
codeblock = mmap(NULL, BLOCK_SIZE * sizeof(codeblock_t), PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||
#else
|
||||
codeblock = malloc(BLOCK_SIZE * sizeof(codeblock_t));
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#if defined(__linux__) || defined(__APPLE__)
|
||||
#if defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__)
|
||||
#include <sys/mman.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
45
src/config.c
45
src/config.c
@@ -300,6 +300,27 @@ config_detect_bom(char *fn)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef __HAIKU__
|
||||
/* Local version of fgetws to avoid a crash */
|
||||
static wchar_t*
|
||||
config_fgetws(wchar_t *str, int count, FILE* stream)
|
||||
{
|
||||
int i = 0;
|
||||
if (feof(stream)) return NULL;
|
||||
for (i = 0; i < count; i++) {
|
||||
wint_t curChar = fgetwc(stream);
|
||||
if (curChar == WEOF) {
|
||||
if (i + 1 < count) str[i + 1] = 0;
|
||||
return feof(stream) ? str : NULL;
|
||||
}
|
||||
str[i] = curChar;
|
||||
if (curChar == '\n') break;
|
||||
}
|
||||
if (i + 1 < count) str[i + 1] = 0;
|
||||
return str;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Read and parse the configuration file into memory. */
|
||||
static int
|
||||
config_read(char *fn)
|
||||
@@ -328,7 +349,11 @@ config_read(char *fn)
|
||||
|
||||
while (1) {
|
||||
memset(buff, 0x00, sizeof(buff));
|
||||
#ifdef __HAIKU__
|
||||
config_fgetws(buff, sizeof_w(buff), f);
|
||||
#else
|
||||
fgetws(buff, sizeof_w(buff), f);
|
||||
#endif
|
||||
if (feof(f)) break;
|
||||
|
||||
/* Make sure there are no stray newlines or hard-returns in there. */
|
||||
@@ -1011,9 +1036,9 @@ load_sound(void)
|
||||
|
||||
p = config_get_string(cat, "midi_device", NULL);
|
||||
if (p != NULL)
|
||||
midi_device_current = midi_device_get_from_internal_name(p);
|
||||
midi_output_device_current = midi_out_device_get_from_internal_name(p);
|
||||
else
|
||||
midi_device_current = 0;
|
||||
midi_output_device_current = 0;
|
||||
|
||||
p = config_get_string(cat, "midi_in_device", NULL);
|
||||
if (p != NULL)
|
||||
@@ -2081,13 +2106,17 @@ config_load(void)
|
||||
video_fullscreen_first = 1;
|
||||
time_sync = TIME_SYNC_ENABLED;
|
||||
hdc_current = hdc_get_from_internal_name("none");
|
||||
|
||||
serial_enabled[0] = 1;
|
||||
serial_enabled[1] = 1;
|
||||
serial_enabled[2] = 0;
|
||||
serial_enabled[3] = 0;
|
||||
for (i = 2 ; i < SERIAL_MAX; i++)
|
||||
serial_enabled[i] = 0;
|
||||
|
||||
lpt_ports[0].enabled = 1;
|
||||
lpt_ports[1].enabled = 0;
|
||||
lpt_ports[2].enabled = 0;
|
||||
|
||||
for (i = 1 ; i < PARALLEL_MAX; i++)
|
||||
lpt_ports[i].enabled = 0;
|
||||
|
||||
for (i = 0; i < FDD_NUM; i++) {
|
||||
if (i < 2)
|
||||
fdd_set_type(i, 2);
|
||||
@@ -2501,10 +2530,10 @@ save_sound(void)
|
||||
else
|
||||
config_set_string(cat, "sndcard", sound_card_get_internal_name(sound_card_current));
|
||||
|
||||
if (!strcmp(midi_device_get_internal_name(midi_device_current), "none"))
|
||||
if (!strcmp(midi_out_device_get_internal_name(midi_output_device_current), "none"))
|
||||
config_delete_var(cat, "midi_device");
|
||||
else
|
||||
config_set_string(cat, "midi_device", midi_device_get_internal_name(midi_device_current));
|
||||
config_set_string(cat, "midi_device", midi_out_device_get_internal_name(midi_output_device_current));
|
||||
|
||||
if (!strcmp(midi_in_device_get_internal_name(midi_input_device_current), "none"))
|
||||
config_delete_var(cat, "midi_in_device");
|
||||
|
||||
26
src/ddma.c
26
src/ddma.c
@@ -184,18 +184,16 @@ ddma_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ddma_device =
|
||||
{
|
||||
"Distributed DMA",
|
||||
"ddma",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
ddma_init,
|
||||
ddma_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t ddma_device = {
|
||||
.name = "Distributed DMA",
|
||||
.internal_name = "ddma",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = ddma_init,
|
||||
.close = ddma_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -354,13 +354,16 @@ bug_close(UNUSED(void *priv))
|
||||
bug_read, NULL, NULL, bug_write, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
|
||||
const device_t bugger_device = {
|
||||
"ISA/PCI Bus Bugger",
|
||||
"bugger",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0,
|
||||
bug_init, bug_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "ISA/PCI Bus Bugger",
|
||||
.internal_name = "bugger",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = bug_init,
|
||||
.close = bug_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -714,11 +714,15 @@ cassette_init(const device_t *info)
|
||||
|
||||
|
||||
const device_t cassette_device = {
|
||||
"IBM PC/PCjr Cassette Device",
|
||||
"cassette",
|
||||
0,
|
||||
0,
|
||||
cassette_init, cassette_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "IBM PC/PCjr Cassette Device",
|
||||
.internal_name = "cassette",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = cassette_init,
|
||||
.close = cassette_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -301,6 +301,7 @@ hasp_close(void *priv)
|
||||
|
||||
const lpt_device_t lpt_hasp_savquest_device = {
|
||||
.name = "Protection Dongle for Savage Quest",
|
||||
.internal_name = "dongle_savquest",
|
||||
.init = hasp_init_savquest,
|
||||
.close = hasp_close,
|
||||
.write_data = hasp_write_data,
|
||||
|
||||
@@ -296,25 +296,32 @@ gl518sm_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
/* GL518SM on SMBus address 2Ch */
|
||||
const device_t gl518sm_2c_device = {
|
||||
"Genesys Logic GL518SM Hardware Monitor",
|
||||
"gl518sm_2c",
|
||||
DEVICE_ISA,
|
||||
0x2c,
|
||||
gl518sm_init, gl518sm_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Genesys Logic GL518SM Hardware Monitor",
|
||||
.internal_name = "gl518sm_2c",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x2c,
|
||||
.init = gl518sm_init,
|
||||
.close = gl518sm_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
/* GL518SM on SMBus address 2Dh */
|
||||
const device_t gl518sm_2d_device = {
|
||||
"Genesys Logic GL518SM Hardware Monitor",
|
||||
"gl518sm_2d",
|
||||
DEVICE_ISA,
|
||||
0x2d,
|
||||
gl518sm_init, gl518sm_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Genesys Logic GL518SM Hardware Monitor",
|
||||
.internal_name = "gl518sm_2d",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x2d,
|
||||
.init = gl518sm_init,
|
||||
.close = gl518sm_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -243,24 +243,32 @@ lm75_init(const device_t *info)
|
||||
|
||||
/* LM75 on SMBus address 4Ah, reporting temperatures[1]. */
|
||||
const device_t lm75_1_4a_device = {
|
||||
"National Semiconductor LM75 Temperature Sensor",
|
||||
"lm75_1_4a",
|
||||
DEVICE_ISA,
|
||||
0x14a,
|
||||
lm75_init, lm75_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "National Semiconductor LM75 Temperature Sensor",
|
||||
.internal_name = "lm75_1_4a",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x14a,
|
||||
.init = lm75_init,
|
||||
.close = lm75_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
/* LM75 secondary/tertiary temperature sensors built into
|
||||
the Winbond W83781D family. Not to be used stand-alone. */
|
||||
const device_t lm75_w83781d_device = {
|
||||
"Winbond W83781D Secondary Temperature Sensor",
|
||||
"lm75_w83781d",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
lm75_init, lm75_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Winbond W83781D Secondary Temperature Sensor",
|
||||
.internal_name = "lm75_w83781d",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = lm75_init,
|
||||
.close = lm75_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -783,75 +783,93 @@ lm78_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
/* National Semiconductor LM78 on ISA and SMBus. */
|
||||
const device_t lm78_device = {
|
||||
"National Semiconductor LM78 Hardware Monitor",
|
||||
"lm78",
|
||||
DEVICE_ISA,
|
||||
0x290 | LM78_I2C,
|
||||
lm78_init, lm78_close, lm78_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "National Semiconductor LM78 Hardware Monitor",
|
||||
.internal_name = "lm78",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x290 | LM78_I2C,
|
||||
.init = lm78_init,
|
||||
.close = lm78_close,
|
||||
.reset = lm78_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
/* Winbond W83781D on ISA and SMBus. */
|
||||
const device_t w83781d_device = {
|
||||
"Winbond W83781D Hardware Monitor",
|
||||
"w83781d",
|
||||
DEVICE_ISA,
|
||||
0x290 | LM78_I2C | LM78_W83781D,
|
||||
lm78_init, lm78_close, lm78_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Winbond W83781D Hardware Monitor",
|
||||
.internal_name = "w83781d",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x290 | LM78_I2C | LM78_W83781D,
|
||||
.init = lm78_init,
|
||||
.close = lm78_close,
|
||||
.reset = lm78_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
/* Winbond W83781D on ISA and SMBus. */
|
||||
const device_t w83781d_p5a_device = {
|
||||
"Winbond W83781D Hardware Monitor (ASUS P5A)",
|
||||
"w83781d_p5a",
|
||||
DEVICE_ISA,
|
||||
0x290 | LM78_I2C | LM78_W83781D | LM78_P5A,
|
||||
lm78_init, lm78_close, lm78_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Winbond W83781D Hardware Monitor (ASUS P5A)",
|
||||
.internal_name = "w83781d_p5a",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x290 | LM78_I2C | LM78_W83781D | LM78_P5A,
|
||||
.init = lm78_init,
|
||||
.close = lm78_close,
|
||||
.reset = lm78_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
/* The AS99127F is an ASIC manufactured by Holtek for ASUS, containing an
|
||||
I2C-only W83781D clone with additional voltages, GPIOs and fan control. */
|
||||
const device_t as99127f_device = {
|
||||
"ASUS AS99127F Rev. 1 Hardware Monitor",
|
||||
"as99137f",
|
||||
DEVICE_ISA,
|
||||
LM78_I2C | LM78_AS99127F_REV1,
|
||||
lm78_init, lm78_close, lm78_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "ASUS AS99127F Rev. 1 Hardware Monitor",
|
||||
.internal_name = "as99137f",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = LM78_I2C | LM78_AS99127F_REV1,
|
||||
.init = lm78_init,
|
||||
.close = lm78_close,
|
||||
.reset = lm78_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
/* Rev. 2 is manufactured by Winbond and differs only in GPI registers. */
|
||||
const device_t as99127f_rev2_device = {
|
||||
"ASUS AS99127F Rev. 2 Hardware Monitor",
|
||||
"as99127f_rev2",
|
||||
DEVICE_ISA,
|
||||
LM78_I2C | LM78_AS99127F_REV2,
|
||||
lm78_init, lm78_close, lm78_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "ASUS AS99127F Rev. 2 Hardware Monitor",
|
||||
.internal_name = "as99127f_rev2",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = LM78_I2C | LM78_AS99127F_REV2,
|
||||
.init = lm78_init,
|
||||
.close = lm78_close,
|
||||
.reset = lm78_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
/* Winbond W83782D on ISA and SMBus. */
|
||||
const device_t w83782d_device = {
|
||||
"Winbond W83782D Hardware Monitor",
|
||||
"w83783d",
|
||||
DEVICE_ISA,
|
||||
0x290 | LM78_I2C | LM78_W83782D,
|
||||
lm78_init, lm78_close, lm78_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Winbond W83782D Hardware Monitor",
|
||||
.internal_name = "w83783d",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x290 | LM78_I2C | LM78_W83782D,
|
||||
.init = lm78_init,
|
||||
.close = lm78_close,
|
||||
.reset = lm78_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -204,13 +204,16 @@ vt82c686_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t via_vt82c686_hwm_device = {
|
||||
"VIA VT82C686 Integrated Hardware Monitor",
|
||||
"via_vt82c686_hwm",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
vt82c686_init, vt82c686_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VIA VT82C686 Integrated Hardware Monitor",
|
||||
.internal_name = "via_vt82c686_hwm",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = vt82c686_init,
|
||||
.close = vt82c686_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -111,18 +111,16 @@ ibm_5161_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t ibm_5161_device =
|
||||
{
|
||||
"IBM Expansion Unit (5161)",
|
||||
"ibm_5161",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ibm_5161_init,
|
||||
ibm_5161_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t ibm_5161_device = {
|
||||
.name = "IBM Expansion Unit (5161)",
|
||||
.internal_name = "ibm_5161",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = ibm_5161_init,
|
||||
.close = ibm_5161_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -693,13 +693,17 @@ static const device_config_t ibmxt_config[] = {
|
||||
};
|
||||
|
||||
static const device_t ibmxt_device = {
|
||||
"IBM PC/XT Memory Expansion",
|
||||
"ibmxt",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_IBMXT_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
ibmxt_config
|
||||
.name = "IBM PC/XT Memory Expansion",
|
||||
.internal_name = "ibmxt",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_IBMXT_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ibmxt_config
|
||||
};
|
||||
|
||||
static const device_config_t genericxt_config[] = {
|
||||
@@ -719,16 +723,19 @@ static const device_config_t genericxt_config[] = {
|
||||
};
|
||||
|
||||
static const device_t genericxt_device = {
|
||||
"Generic PC/XT Memory Expansion",
|
||||
"genericxt",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_GENXT_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
genericxt_config
|
||||
.name = "Generic PC/XT Memory Expansion",
|
||||
.internal_name = "genericxt",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_GENXT_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = genericxt_config
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t ibmat_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -746,16 +753,19 @@ static const device_config_t ibmat_config[] = {
|
||||
};
|
||||
|
||||
static const device_t ibmat_device = {
|
||||
"IBM PC/AT Memory Expansion",
|
||||
"ibmat",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_IBMAT_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
ibmat_config
|
||||
.name = "IBM PC/AT Memory Expansion",
|
||||
.internal_name = "ibmat",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_IBMAT_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ibmat_config
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t genericat_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -773,16 +783,19 @@ static const device_config_t genericat_config[] = {
|
||||
};
|
||||
|
||||
static const device_t genericat_device = {
|
||||
"Generic PC/AT Memory Expansion",
|
||||
"genericat",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_GENAT_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
genericat_config
|
||||
.name = "Generic PC/AT Memory Expansion",
|
||||
.internal_name = "genericat",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_GENAT_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = genericat_config
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t p5pak_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -800,13 +813,17 @@ static const device_config_t p5pak_config[] = {
|
||||
};
|
||||
|
||||
static const device_t p5pak_device = {
|
||||
"Paradise Systems 5-PAK",
|
||||
"p5pak",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_P5PAK_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
p5pak_config
|
||||
.name = "Paradise Systems 5-PAK",
|
||||
.internal_name = "p5pak",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_P5PAK_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = p5pak_config
|
||||
};
|
||||
|
||||
|
||||
@@ -827,16 +844,19 @@ static const device_config_t a6pak_config[] = {
|
||||
};
|
||||
|
||||
static const device_t a6pak_device = {
|
||||
"AST SixPakPlus",
|
||||
"a6pak",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_A6PAK_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
a6pak_config
|
||||
.name = "AST SixPakPlus",
|
||||
.internal_name = "a6pak",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_A6PAK_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = a6pak_config
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t ems5150_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -860,13 +880,17 @@ static const device_config_t ems5150_config[] = {
|
||||
};
|
||||
|
||||
static const device_t ems5150_device = {
|
||||
"Micro Mainframe EMS-5150(T)",
|
||||
"ems5150",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_EMS5150_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
ems5150_config
|
||||
.name = "Micro Mainframe EMS-5150(T)",
|
||||
.internal_name = "ems5150",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_EMS5150_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ems5150_config
|
||||
};
|
||||
|
||||
static const device_config_t ev159_config[] = {
|
||||
@@ -928,13 +952,17 @@ static const device_config_t ev159_config[] = {
|
||||
};
|
||||
|
||||
static const device_t ev159_device = {
|
||||
"Everex EV-159 RAM 3000 Deluxe",
|
||||
"ev159",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_EV159_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
ev159_config
|
||||
.name = "Everex EV-159 RAM 3000 Deluxe",
|
||||
.internal_name = "ev159",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_EV159_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ev159_config
|
||||
};
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_ISAMEM_BRAT)
|
||||
@@ -986,13 +1014,17 @@ static const device_config_t brat_config[] = {
|
||||
};
|
||||
|
||||
static const device_t brat_device = {
|
||||
"BocaRAM/AT",
|
||||
"brat",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_BRAT_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
brat_config
|
||||
.name = "BocaRAM/AT",
|
||||
.internal_name = "brat",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_BRAT_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = brat_config
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -1048,17 +1080,20 @@ static const device_config_t rampage_config[] = {
|
||||
};
|
||||
|
||||
static const device_t rampage_device = {
|
||||
"AST RAMpage/XT",
|
||||
"rampage",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_RAMPAGEXT_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
rampage_config
|
||||
.name = "AST RAMpage/XT",
|
||||
.internal_name = "rampage",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_RAMPAGEXT_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = rampage_config
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_ISAMEM_IAB)
|
||||
static const device_config_t iab_config[] = {
|
||||
// clang-format off
|
||||
@@ -1111,23 +1146,32 @@ static const device_config_t iab_config[] = {
|
||||
};
|
||||
|
||||
static const device_t iab_device = {
|
||||
"Intel AboveBoard",
|
||||
"iab",
|
||||
DEVICE_ISA,
|
||||
ISAMEM_ABOVEBOARD_CARD,
|
||||
isamem_init, isamem_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
iab_config
|
||||
.name = "Intel AboveBoard",
|
||||
.internal_name = "iab",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_ABOVEBOARD_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = iab_config
|
||||
};
|
||||
#endif
|
||||
|
||||
static const device_t isa_none_device = {
|
||||
"None",
|
||||
"none",
|
||||
0, 0,
|
||||
NULL, NULL, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "None",
|
||||
.internal_name = "none",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const struct {
|
||||
|
||||
@@ -592,7 +592,6 @@ isartc_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t ev170_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -618,16 +617,19 @@ static const device_config_t ev170_config[] = {
|
||||
};
|
||||
|
||||
static const device_t ev170_device = {
|
||||
"Everex EV-170 Magic I/O",
|
||||
"ev170",
|
||||
DEVICE_ISA,
|
||||
ISARTC_EV170,
|
||||
isartc_init, isartc_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
ev170_config
|
||||
.name = "Everex EV-170 Magic I/O",
|
||||
.internal_name = "ev170",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISARTC_EV170,
|
||||
.init = isartc_init,
|
||||
.close = isartc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ev170_config
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t pii147_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -643,16 +645,19 @@ static const device_config_t pii147_config[] = {
|
||||
};
|
||||
|
||||
static const device_t pii147_device = {
|
||||
"DTK PII-147 Hexa I/O Plus",
|
||||
"pii147",
|
||||
DEVICE_ISA,
|
||||
ISARTC_DTK,
|
||||
isartc_init, isartc_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
pii147_config
|
||||
.name = "DTK PII-147 Hexa I/O Plus",
|
||||
.internal_name = "pii147",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISARTC_DTK,
|
||||
.init = isartc_init,
|
||||
.close = isartc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = pii147_config
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t p5pak_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -670,16 +675,19 @@ static const device_config_t p5pak_config[] = {
|
||||
};
|
||||
|
||||
static const device_t p5pak_device = {
|
||||
"Paradise Systems 5-PAK",
|
||||
"p5pak",
|
||||
DEVICE_ISA,
|
||||
ISARTC_P5PAK,
|
||||
isartc_init, isartc_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
p5pak_config
|
||||
.name = "Paradise Systems 5-PAK",
|
||||
.internal_name = "p5pak",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISARTC_P5PAK,
|
||||
.init = isartc_init,
|
||||
.close = isartc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = p5pak_config
|
||||
};
|
||||
|
||||
|
||||
static const device_config_t a6pak_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -697,22 +705,31 @@ static const device_config_t a6pak_config[] = {
|
||||
};
|
||||
|
||||
static const device_t a6pak_device = {
|
||||
"AST SixPakPlus",
|
||||
"a6pak",
|
||||
DEVICE_ISA,
|
||||
ISARTC_A6PAK,
|
||||
isartc_init, isartc_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
a6pak_config
|
||||
.name = "AST SixPakPlus",
|
||||
.internal_name = "a6pak",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISARTC_A6PAK,
|
||||
.init = isartc_init,
|
||||
.close = isartc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = a6pak_config
|
||||
};
|
||||
|
||||
static const device_t isartc_none_device = {
|
||||
"None",
|
||||
"none",
|
||||
0, 0,
|
||||
NULL, NULL, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "None",
|
||||
.internal_name = "none",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const struct {
|
||||
|
||||
@@ -2340,228 +2340,286 @@ kbd_init(const device_t *info)
|
||||
return(dev);
|
||||
}
|
||||
|
||||
|
||||
const device_t keyboard_at_device = {
|
||||
"PC/AT Keyboard",
|
||||
"keyboard_at",
|
||||
0,
|
||||
KBC_TYPE_ISA | KBC_VEN_GENERIC,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PC/AT Keyboard",
|
||||
.internal_name = "keyboard_at",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_ISA | KBC_VEN_GENERIC,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_at_ami_device = {
|
||||
"PC/AT Keyboard (AMI)",
|
||||
"keyboard_at_ami",
|
||||
0,
|
||||
KBC_TYPE_ISA | KBC_VEN_AMI,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PC/AT Keyboard (AMI)",
|
||||
.internal_name = "keyboard_at_ami",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_ISA | KBC_VEN_AMI,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_at_samsung_device = {
|
||||
"PC/AT Keyboard (Samsung)",
|
||||
"keyboard_at_samsung",
|
||||
0,
|
||||
KBC_TYPE_ISA | KBC_VEN_SAMSUNG,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PC/AT Keyboard (Samsung)",
|
||||
.internal_name = "keyboard_at_samsung",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_ISA | KBC_VEN_SAMSUNG,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_at_toshiba_device = {
|
||||
"PC/AT Keyboard (Toshiba)",
|
||||
"keyboard_at_toshiba",
|
||||
0,
|
||||
KBC_TYPE_ISA | KBC_VEN_TOSHIBA,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PC/AT Keyboard (Toshiba)",
|
||||
.internal_name = "keyboard_at_toshiba",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_ISA | KBC_VEN_TOSHIBA,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_at_olivetti_device = {
|
||||
"PC/AT Keyboard (Olivetti)",
|
||||
"keyboard_at_olivetti",
|
||||
0,
|
||||
KBC_TYPE_ISA | KBC_VEN_OLIVETTI,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PC/AT Keyboard (Olivetti)",
|
||||
.internal_name = "keyboard_at_olivetti",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_ISA | KBC_VEN_OLIVETTI,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_at_ncr_device = {
|
||||
"PC/AT Keyboard (NCR)",
|
||||
"keyboard_at_ncr",
|
||||
0,
|
||||
KBC_TYPE_ISA | KBC_VEN_NCR,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PC/AT Keyboard (NCR)",
|
||||
.internal_name = "keyboard_at_ncr",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_ISA | KBC_VEN_NCR,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_device = {
|
||||
"PS/2 Keyboard",
|
||||
"keyboard_ps2",
|
||||
0,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_GENERIC,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard",
|
||||
.internal_name = "keyboard_ps2",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_GENERIC,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_ps2_device = {
|
||||
"PS/2 Keyboard",
|
||||
"keyboard_ps2_ps2",
|
||||
0,
|
||||
KBC_TYPE_PS2_1 | KBC_VEN_GENERIC,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard",
|
||||
.internal_name = "keyboard_ps2_ps2",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_ps1_device = {
|
||||
"PS/2 Keyboard (IBM PS/1)",
|
||||
"keyboard_ps2_ps1",
|
||||
0,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_IBM_PS1,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (IBM PS/1)",
|
||||
.internal_name = "keyboard_ps2_ps1",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_IBM_PS1,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_ps1_pci_device = {
|
||||
"PS/2 Keyboard (IBM PS/1)",
|
||||
"keyboard_ps2_ps1_pci",
|
||||
DEVICE_PCI,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_IBM_PS1,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (IBM PS/1)",
|
||||
.internal_name = "keyboard_ps2_ps1_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_IBM_PS1,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_xi8088_device = {
|
||||
"PS/2 Keyboard (Xi8088)",
|
||||
"keyboard_ps2_xi8088",
|
||||
0,
|
||||
KBC_TYPE_PS2_1 | KBC_VEN_XI8088,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (Xi8088)",
|
||||
.internal_name = "keyboard_ps2_xi8088",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_1 | KBC_VEN_XI8088,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_ami_device = {
|
||||
"PS/2 Keyboard (AMI)",
|
||||
"keyboard_ps2_ami",
|
||||
0,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_AMI,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (AMI)",
|
||||
.internal_name = "keyboard_ps2_ami",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_AMI,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_olivetti_device = {
|
||||
"PS/2 Keyboard (Olivetti)",
|
||||
"keyboard_ps2_olivetti",
|
||||
0,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_OLIVETTI,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (Olivetti)",
|
||||
.internal_name = "keyboard_ps2_olivetti",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_OLIVETTI,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_mca_device = {
|
||||
"PS/2 Keyboard",
|
||||
"keyboard_ps2_mca",
|
||||
0,
|
||||
KBC_TYPE_PS2_1 | KBC_VEN_IBM_MCA,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard",
|
||||
.internal_name = "keyboard_ps2_mca",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_1 | KBC_VEN_IBM_MCA,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_mca_2_device = {
|
||||
"PS/2 Keyboard",
|
||||
"keyboard_ps2_mca_2",
|
||||
0,
|
||||
KBC_TYPE_PS2_2 | KBC_VEN_IBM_MCA,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard",
|
||||
.internal_name = "keyboard_ps2_mca_2",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_2 | KBC_VEN_IBM_MCA,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_quadtel_device = {
|
||||
"PS/2 Keyboard (Quadtel/MegaPC)",
|
||||
"keyboard_ps2_quadtel",
|
||||
0,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_QUADTEL,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (Quadtel/MegaPC)",
|
||||
.internal_name = "keyboard_ps2_quadtel",
|
||||
.flags = 0,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_QUADTEL,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_pci_device = {
|
||||
"PS/2 Keyboard",
|
||||
"keyboard_ps2_pci",
|
||||
DEVICE_PCI,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_GENERIC,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard",
|
||||
.internal_name = "keyboard_ps2_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_GENERIC,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_ami_pci_device = {
|
||||
"PS/2 Keyboard (AMI)",
|
||||
"keyboard_ps2_ami_pci",
|
||||
DEVICE_PCI,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_AMI,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (AMI)",
|
||||
.internal_name = "keyboard_ps2_ami_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_AMI,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_intel_ami_pci_device = {
|
||||
"PS/2 Keyboard (AMI)",
|
||||
"keyboard_ps2_intel_ami_pci",
|
||||
DEVICE_PCI,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_INTEL_AMI,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (AMI)",
|
||||
.internal_name = "keyboard_ps2_intel_ami_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_INTEL_AMI,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_ps2_acer_pci_device = {
|
||||
"PS/2 Keyboard (Acer 90M002A)",
|
||||
"keyboard_ps2_acer_pci",
|
||||
DEVICE_PCI,
|
||||
KBC_TYPE_PS2_NOREF | KBC_VEN_ACER,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PS/2 Keyboard (Acer 90M002A)",
|
||||
.internal_name = "keyboard_ps2_acer_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = KBC_TYPE_PS2_NOREF | KBC_VEN_ACER,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
keyboard_at_set_mouse(void (*func)(uint8_t val, void *priv), void *priv)
|
||||
{
|
||||
|
||||
@@ -871,115 +871,144 @@ kbd_close(void *priv)
|
||||
free(kbd);
|
||||
}
|
||||
|
||||
|
||||
const device_t keyboard_pc_device = {
|
||||
"IBM PC Keyboard (1981)",
|
||||
"keyboard_pc",
|
||||
0,
|
||||
KBD_TYPE_PC81,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "IBM PC Keyboard (1981)",
|
||||
.internal_name = "keyboard_pc",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_PC81,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_pc82_device = {
|
||||
"IBM PC Keyboard (1982)",
|
||||
"keyboard_pc82",
|
||||
0,
|
||||
KBD_TYPE_PC82,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "IBM PC Keyboard (1982)",
|
||||
.internal_name = "keyboard_pc82",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_PC82,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_xt_device = {
|
||||
"XT (1982) Keyboard",
|
||||
"keyboard_xt",
|
||||
0,
|
||||
KBD_TYPE_XT82,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "XT (1982) Keyboard",
|
||||
.internal_name = "keyboard_xt",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_XT82,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_xt86_device = {
|
||||
"XT (1986) Keyboard",
|
||||
"keyboard_xt86",
|
||||
0,
|
||||
KBD_TYPE_XT86,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "XT (1986) Keyboard",
|
||||
.internal_name = "keyboard_xt86",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_XT86,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_xt_compaq_device = {
|
||||
"Compaq Portable Keyboard",
|
||||
"keyboard_xt_compaq",
|
||||
0,
|
||||
KBD_TYPE_COMPAQ,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "Compaq Portable Keyboard",
|
||||
.internal_name = "keyboard_xt_compaq",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_COMPAQ,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_tandy_device = {
|
||||
"Tandy 1000 Keyboard",
|
||||
"keyboard_tandy",
|
||||
0,
|
||||
KBD_TYPE_TANDY,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "Tandy 1000 Keyboard",
|
||||
.internal_name = "keyboard_tandy",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_TANDY,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_xt_t1x00_device = {
|
||||
"Toshiba T1x00 Keyboard",
|
||||
"keyboard_xt_t1x00",
|
||||
0,
|
||||
KBD_TYPE_TOSHIBA,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "Toshiba T1x00 Keyboard",
|
||||
.internal_name = "keyboard_xt_t1x00",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_TOSHIBA,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_LASERXT)
|
||||
const device_t keyboard_xt_lxt3_device = {
|
||||
"VTech Laser XT3 Keyboard",
|
||||
"keyboard_xt_lxt3",
|
||||
0,
|
||||
KBD_TYPE_VTECH,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "VTech Laser XT3 Keyboard",
|
||||
.internal_name = "keyboard_xt_lxt3",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_VTECH,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
#endif
|
||||
|
||||
const device_t keyboard_xt_olivetti_device = {
|
||||
"Olivetti XT Keyboard",
|
||||
"keyboard_xt_olivetti",
|
||||
0,
|
||||
KBD_TYPE_OLIVETTI,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "Olivetti XT Keyboard",
|
||||
.internal_name = "keyboard_xt_olivetti",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_OLIVETTI,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t keyboard_xt_zenith_device = {
|
||||
"Zenith XT Keyboard",
|
||||
"keyboard_xt_zenith",
|
||||
0,
|
||||
KBD_TYPE_ZENITH,
|
||||
kbd_init,
|
||||
kbd_close,
|
||||
kbd_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "Zenith XT Keyboard",
|
||||
.internal_name = "keyboard_xt_zenith",
|
||||
.flags = 0,
|
||||
.local = KBD_TYPE_ZENITH,
|
||||
.init = kbd_init,
|
||||
.close = kbd_close,
|
||||
.reset = kbd_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -41,24 +41,33 @@ int mouse_x,
|
||||
mouse_z,
|
||||
mouse_buttons;
|
||||
|
||||
|
||||
static const device_t mouse_none_device = {
|
||||
"None",
|
||||
"none",
|
||||
0, MOUSE_TYPE_NONE,
|
||||
NULL, NULL, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
};
|
||||
static const device_t mouse_internal_device = {
|
||||
"Internal",
|
||||
"internal",
|
||||
0, MOUSE_TYPE_INTERNAL,
|
||||
NULL, NULL, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "None",
|
||||
.internal_name = "none",
|
||||
.flags = 0,
|
||||
.local = MOUSE_TYPE_NONE,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .poll = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const device_t mouse_internal_device = {
|
||||
.name = "Internal",
|
||||
.internal_name = "internal",
|
||||
.flags = 0,
|
||||
.local = MOUSE_TYPE_INTERNAL,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .poll = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static mouse_t mouse_devices[] = {
|
||||
// clang-format off
|
||||
|
||||
@@ -765,30 +765,43 @@ static const device_config_t ms_config[] = {
|
||||
};
|
||||
|
||||
const device_t mouse_logibus_device = {
|
||||
"Logitech/Microsoft Bus Mouse",
|
||||
"logibus",
|
||||
DEVICE_ISA,
|
||||
MOUSE_TYPE_LOGIBUS,
|
||||
bm_init, bm_close, NULL,
|
||||
{ .poll = bm_poll }, NULL, NULL,
|
||||
lt_config
|
||||
.name = "Logitech/Microsoft Bus Mouse",
|
||||
.internal_name = "logibus",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = MOUSE_TYPE_LOGIBUS,
|
||||
.init = bm_init,
|
||||
.close = bm_close,
|
||||
.reset = NULL,
|
||||
{ .poll = bm_poll },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = lt_config
|
||||
};
|
||||
|
||||
const device_t mouse_logibus_onboard_device = {
|
||||
"Logitech Bus Mouse (On-Board)",
|
||||
"logibus_onboard",
|
||||
DEVICE_ISA,
|
||||
MOUSE_TYPE_LOGIBUS | MOUSE_TYPE_ONBOARD,
|
||||
bm_init, bm_close, NULL,
|
||||
{ .poll = bm_poll }, NULL, NULL
|
||||
.name = "Logitech Bus Mouse (On-Board)",
|
||||
.internal_name = "logibus_onboard",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = MOUSE_TYPE_LOGIBUS | MOUSE_TYPE_ONBOARD,
|
||||
.init = bm_init,
|
||||
.close = bm_close,
|
||||
.reset = NULL,
|
||||
{ .poll = bm_poll },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t mouse_msinport_device = {
|
||||
"Microsoft Bus Mouse (InPort)",
|
||||
"msbus",
|
||||
DEVICE_ISA,
|
||||
MOUSE_TYPE_INPORT,
|
||||
bm_init, bm_close, NULL,
|
||||
{ .poll = bm_poll }, NULL, NULL,
|
||||
ms_config
|
||||
.name = "Microsoft Bus Mouse (InPort)",
|
||||
.internal_name = "msbus",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = MOUSE_TYPE_INPORT,
|
||||
.init = bm_init,
|
||||
.close = bm_close,
|
||||
.reset = NULL,
|
||||
{ .poll = bm_poll },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ms_config
|
||||
};
|
||||
|
||||
@@ -329,7 +329,6 @@ ps2_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t ps2_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -347,11 +346,15 @@ static const device_config_t ps2_config[] = {
|
||||
};
|
||||
|
||||
const device_t mouse_ps2_device = {
|
||||
"Standard PS/2 Mouse",
|
||||
"ps2",
|
||||
DEVICE_PS2,
|
||||
MOUSE_TYPE_PS2,
|
||||
mouse_ps2_init, ps2_close, NULL,
|
||||
{ .poll = ps2_poll }, NULL, NULL,
|
||||
ps2_config
|
||||
.name = "Standard PS/2 Mouse",
|
||||
.internal_name = "ps2",
|
||||
.flags = DEVICE_PS2,
|
||||
.local = MOUSE_TYPE_PS2,
|
||||
.init = mouse_ps2_init,
|
||||
.close = ps2_close,
|
||||
.reset = NULL,
|
||||
{ .poll = ps2_poll },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ps2_config
|
||||
};
|
||||
|
||||
@@ -876,31 +876,43 @@ static const device_config_t ltsermouse_config[] = {
|
||||
};
|
||||
|
||||
const device_t mouse_mssystems_device = {
|
||||
"Mouse Systems Serial Mouse",
|
||||
"mssystems",
|
||||
0,
|
||||
MOUSE_TYPE_MSYSTEMS,
|
||||
sermouse_init, sermouse_close, NULL,
|
||||
{ .poll = sermouse_poll }, sermouse_speed_changed, NULL,
|
||||
mssermouse_config
|
||||
.name = "Mouse Systems Serial Mouse",
|
||||
.internal_name = "mssystems",
|
||||
.flags = DEVICE_COM,
|
||||
.local = MOUSE_TYPE_MSYSTEMS,
|
||||
.init = sermouse_init,
|
||||
.close = sermouse_close,
|
||||
.reset = NULL,
|
||||
{ .poll = sermouse_poll },
|
||||
.speed_changed = sermouse_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = mssermouse_config
|
||||
};
|
||||
|
||||
const device_t mouse_msserial_device = {
|
||||
"Microsoft Serial Mouse",
|
||||
"msserial",
|
||||
0,
|
||||
0,
|
||||
sermouse_init, sermouse_close, NULL,
|
||||
{ .poll = sermouse_poll }, sermouse_speed_changed, NULL,
|
||||
mssermouse_config
|
||||
.name = "Microsoft Serial Mouse",
|
||||
.internal_name = "msserial",
|
||||
.flags = DEVICE_COM,
|
||||
.local = 0,
|
||||
.init = sermouse_init,
|
||||
.close = sermouse_close,
|
||||
.reset = NULL,
|
||||
{ .poll = sermouse_poll },
|
||||
.speed_changed = sermouse_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = mssermouse_config
|
||||
};
|
||||
|
||||
const device_t mouse_ltserial_device = {
|
||||
"Logitech Serial Mouse",
|
||||
"ltserial",
|
||||
0,
|
||||
1,
|
||||
sermouse_init, sermouse_close, NULL,
|
||||
{ .poll = sermouse_poll }, sermouse_speed_changed, NULL,
|
||||
ltsermouse_config
|
||||
.name = "Logitech Serial Mouse",
|
||||
.internal_name = "ltserial",
|
||||
.flags = DEVICE_COM,
|
||||
.local = 1,
|
||||
.init = sermouse_init,
|
||||
.close = sermouse_close,
|
||||
.reset = NULL,
|
||||
{ .poll = sermouse_poll },
|
||||
.speed_changed = sermouse_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = ltsermouse_config
|
||||
};
|
||||
|
||||
@@ -497,156 +497,145 @@ pci_bridge_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
/* PCI bridges */
|
||||
const device_t dec21150_device =
|
||||
{
|
||||
"DEC 21150 PCI Bridge",
|
||||
"dec21150",
|
||||
DEVICE_PCI,
|
||||
PCI_BRIDGE_DEC_21150,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t dec21150_device = {
|
||||
.name = "DEC 21150 PCI Bridge",
|
||||
.internal_name = "dec21150",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = PCI_BRIDGE_DEC_21150,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
/* AGP bridges */
|
||||
const device_t ali5243_agp_device =
|
||||
{
|
||||
"ALi M5243 AGP Bridge",
|
||||
"ali5243_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_ALI_M5243,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t ali5243_agp_device = {
|
||||
.name = "ALi M5243 AGP Bridge",
|
||||
.internal_name = "ali5243_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_ALI_M5243,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
/* AGP bridges */
|
||||
const device_t ali5247_agp_device =
|
||||
{
|
||||
"ALi M5247 AGP Bridge",
|
||||
"ali5247_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_ALI_M5247,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t ali5247_agp_device = {
|
||||
.name = "ALi M5247 AGP Bridge",
|
||||
.internal_name = "ali5247_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_ALI_M5247,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440lx_agp_device =
|
||||
{
|
||||
"Intel 82443LX/EX AGP Bridge",
|
||||
"i440lx_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_INTEL_440LX,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440lx_agp_device = {
|
||||
.name = "Intel 82443LX/EX AGP Bridge",
|
||||
.internal_name = "i440lx_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_INTEL_440LX,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440bx_agp_device =
|
||||
{
|
||||
"Intel 82443BX/ZX AGP Bridge",
|
||||
"i440bx_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_INTEL_440BX,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440bx_agp_device = {
|
||||
.name = "Intel 82443BX/ZX AGP Bridge",
|
||||
.internal_name = "i440bx_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_INTEL_440BX,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t i440gx_agp_device =
|
||||
{
|
||||
"Intel 82443GX AGP Bridge",
|
||||
"i440gx_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_INTEL_440GX,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t i440gx_agp_device = {
|
||||
.name = "Intel 82443GX AGP Bridge",
|
||||
.internal_name = "i440gx_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_INTEL_440GX,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_vp3_agp_device =
|
||||
{
|
||||
"VIA Apollo VP3 AGP Bridge",
|
||||
"via_vp3_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_VIA_597,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vp3_agp_device = {
|
||||
.name = "VIA Apollo VP3 AGP Bridge",
|
||||
.internal_name = "via_vp3_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_VIA_597,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_mvp3_agp_device =
|
||||
{
|
||||
"VIA Apollo MVP3 AGP Bridge",
|
||||
"via_mvp3_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_VIA_598,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_mvp3_agp_device = {
|
||||
.name = "VIA Apollo MVP3 AGP Bridge",
|
||||
.internal_name = "via_mvp3_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_VIA_598,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_apro_agp_device =
|
||||
{
|
||||
"VIA Apollo Pro AGP Bridge",
|
||||
"via_apro_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_VIA_691,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_apro_agp_device = {
|
||||
.name = "VIA Apollo Pro AGP Bridge",
|
||||
.internal_name = "via_apro_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_VIA_691,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_vt8601_agp_device =
|
||||
{
|
||||
"VIA Apollo ProMedia AGP Bridge",
|
||||
"via_vt8601_agp",
|
||||
DEVICE_PCI,
|
||||
AGP_BRIDGE_VIA_8601,
|
||||
pci_bridge_init,
|
||||
NULL,
|
||||
pci_bridge_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t via_vt8601_agp_device = {
|
||||
.name = "VIA Apollo ProMedia AGP Bridge",
|
||||
.internal_name = "via_vt8601_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_VIA_8601,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -123,24 +123,30 @@ phoenix_486_jumper_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
||||
const device_t phoenix_486_jumper_device = {
|
||||
"Phoenix 486 Jumper Readout",
|
||||
"phoenix_486_jumper",
|
||||
0,
|
||||
0,
|
||||
phoenix_486_jumper_init, phoenix_486_jumper_close, phoenix_486_jumper_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Phoenix 486 Jumper Readout",
|
||||
.internal_name = "phoenix_486_jumper",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = phoenix_486_jumper_init,
|
||||
.close = phoenix_486_jumper_close,
|
||||
.reset = phoenix_486_jumper_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t phoenix_486_jumper_pci_device = {
|
||||
"Phoenix 486 Jumper Readout (PCI machines)",
|
||||
"phoenix_486_jumper_pci",
|
||||
0,
|
||||
1,
|
||||
phoenix_486_jumper_init, phoenix_486_jumper_close, phoenix_486_jumper_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Phoenix 486 Jumper Readout (PCI machines)",
|
||||
.internal_name = "phoenix_486_jumper_pci",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = phoenix_486_jumper_init,
|
||||
.close = phoenix_486_jumper_close,
|
||||
.reset = phoenix_486_jumper_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -141,11 +141,15 @@ postcard_close(UNUSED(void *priv))
|
||||
|
||||
|
||||
const device_t postcard_device = {
|
||||
"POST Card",
|
||||
"postcard",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
postcard_init, postcard_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "POST Card",
|
||||
.internal_name = "postcard",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = postcard_init,
|
||||
.close = postcard_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -685,13 +685,13 @@ serial_init(const device_t *info)
|
||||
dev->sd->serial = dev;
|
||||
serial_reset_port(dev);
|
||||
if (next_inst == 3)
|
||||
serial_setup(dev, SERIAL4_ADDR, SERIAL4_IRQ);
|
||||
serial_setup(dev, COM4_ADDR, COM4_IRQ);
|
||||
else if (next_inst == 2)
|
||||
serial_setup(dev, SERIAL3_ADDR, SERIAL3_IRQ);
|
||||
serial_setup(dev, COM3_ADDR, COM3_IRQ);
|
||||
else if ((next_inst == 1) || (info->flags & DEVICE_PCJR))
|
||||
serial_setup(dev, SERIAL2_ADDR, SERIAL2_IRQ);
|
||||
serial_setup(dev, COM2_ADDR, COM2_IRQ);
|
||||
else if (next_inst == 0)
|
||||
serial_setup(dev, SERIAL1_ADDR, SERIAL1_IRQ);
|
||||
serial_setup(dev, COM1_ADDR, COM1_IRQ);
|
||||
|
||||
/* Default to 1200,N,7. */
|
||||
dev->dlab = 96;
|
||||
@@ -717,87 +717,118 @@ serial_set_next_inst(int ni)
|
||||
|
||||
void
|
||||
serial_standalone_init(void) {
|
||||
for ( ; next_inst < 4; )
|
||||
for ( ; next_inst < SERIAL_MAX; )
|
||||
device_add_inst(&ns8250_device, next_inst + 1);
|
||||
};
|
||||
|
||||
|
||||
const device_t ns8250_device = {
|
||||
"National Semiconductor 8250(-compatible) UART",
|
||||
"ns8250",
|
||||
0,
|
||||
SERIAL_8250,
|
||||
serial_init, serial_close, NULL,
|
||||
{ NULL }, serial_speed_changed, NULL,
|
||||
NULL
|
||||
.name = "National Semiconductor 8250(-compatible) UART",
|
||||
.internal_name = "ns8250",
|
||||
.flags = 0,
|
||||
.local = SERIAL_8250,
|
||||
.init = serial_init,
|
||||
.close = serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = serial_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ns8250_pcjr_device = {
|
||||
"National Semiconductor 8250(-compatible) UART for PCjr",
|
||||
"ns8250_pcjr",
|
||||
DEVICE_PCJR,
|
||||
SERIAL_8250_PCJR,
|
||||
serial_init, serial_close, NULL,
|
||||
{ NULL }, serial_speed_changed, NULL,
|
||||
NULL
|
||||
.name = "National Semiconductor 8250(-compatible) UART for PCjr",
|
||||
.internal_name = "ns8250_pcjr",
|
||||
.flags = DEVICE_PCJR,
|
||||
.local = SERIAL_8250_PCJR,
|
||||
.init = serial_init,
|
||||
.close = serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = serial_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ns16450_device = {
|
||||
"National Semiconductor NS16450(-compatible) UART",
|
||||
"ns16450",
|
||||
0,
|
||||
SERIAL_16450,
|
||||
serial_init, serial_close, NULL,
|
||||
{ NULL }, serial_speed_changed, NULL,
|
||||
NULL
|
||||
.name = "National Semiconductor NS16450(-compatible) UART",
|
||||
.internal_name = "ns16450",
|
||||
.flags = 0,
|
||||
.local = SERIAL_16450,
|
||||
.init = serial_init,
|
||||
.close = serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = serial_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ns16550_device = {
|
||||
"National Semiconductor NS16550(-compatible) UART",
|
||||
"ns16550",
|
||||
0,
|
||||
SERIAL_16550,
|
||||
serial_init, serial_close, NULL,
|
||||
{ NULL }, serial_speed_changed, NULL,
|
||||
NULL
|
||||
.name = "National Semiconductor NS16550(-compatible) UART",
|
||||
.internal_name = "ns16550",
|
||||
.flags = 0,
|
||||
.local = SERIAL_16550,
|
||||
.init = serial_init,
|
||||
.close = serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = serial_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ns16650_device = {
|
||||
"Startech Semiconductor 16650(-compatible) UART",
|
||||
"ns16650",
|
||||
0,
|
||||
SERIAL_16650,
|
||||
serial_init, serial_close, NULL,
|
||||
{ NULL }, serial_speed_changed, NULL,
|
||||
NULL
|
||||
.name = "Startech Semiconductor 16650(-compatible) UART",
|
||||
.internal_name = "ns16650",
|
||||
.flags = 0,
|
||||
.local = SERIAL_16650,
|
||||
.init = serial_init,
|
||||
.close = serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = serial_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ns16750_device = {
|
||||
"Texas Instruments 16750(-compatible) UART",
|
||||
"ns16750",
|
||||
0,
|
||||
SERIAL_16750,
|
||||
serial_init, serial_close, NULL,
|
||||
{ NULL }, serial_speed_changed, NULL,
|
||||
NULL
|
||||
.name = "Texas Instruments 16750(-compatible) UART",
|
||||
.internal_name = "ns16750",
|
||||
.flags = 0,
|
||||
.local = SERIAL_16750,
|
||||
.init = serial_init,
|
||||
.close = serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = serial_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ns16850_device = {
|
||||
"Exar Corporation NS16850(-compatible) UART",
|
||||
"ns16850",
|
||||
0,
|
||||
SERIAL_16850,
|
||||
serial_init, serial_close, NULL,
|
||||
{ NULL }, serial_speed_changed, NULL,
|
||||
NULL
|
||||
.name = "Exar Corporation NS16850(-compatible) UART",
|
||||
.internal_name = "ns16850",
|
||||
.flags = 0,
|
||||
.local = SERIAL_16850,
|
||||
.init = serial_init,
|
||||
.close = serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = serial_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ns16950_device = {
|
||||
"Oxford Semiconductor NS16950(-compatible) UART",
|
||||
"ns16950",
|
||||
0,
|
||||
SERIAL_16950,
|
||||
serial_init, serial_close, NULL,
|
||||
{ NULL }, serial_speed_changed, NULL,
|
||||
NULL
|
||||
.name = "Oxford Semiconductor NS16950(-compatible) UART",
|
||||
.internal_name = "ns16950",
|
||||
.flags = 0,
|
||||
.local = SERIAL_16950,
|
||||
.init = serial_init,
|
||||
.close = serial_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = serial_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -299,13 +299,16 @@ smbus_ali7101_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
const device_t ali7101_smbus_device = {
|
||||
"ALi M7101-compatible SMBus Host Controller",
|
||||
"ali7101_smbus",
|
||||
DEVICE_AT,
|
||||
0,
|
||||
smbus_ali7101_init, smbus_ali7101_close, smbus_ali7101_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "ALi M7101-compatible SMBus Host Controller",
|
||||
.internal_name = "ali7101_smbus",
|
||||
.flags = DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = smbus_ali7101_init,
|
||||
.close = smbus_ali7101_close,
|
||||
.reset = smbus_ali7101_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -384,23 +384,30 @@ smbus_piix4_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
const device_t piix4_smbus_device = {
|
||||
"PIIX4-compatible SMBus Host Controller",
|
||||
"piix4_smbus",
|
||||
DEVICE_AT,
|
||||
SMBUS_PIIX4,
|
||||
smbus_piix4_init, smbus_piix4_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "PIIX4-compatible SMBus Host Controller",
|
||||
.internal_name = "piix4_smbus",
|
||||
.flags = DEVICE_AT,
|
||||
.local = SMBUS_PIIX4,
|
||||
.init = smbus_piix4_init,
|
||||
.close = smbus_piix4_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_smbus_device = {
|
||||
"VIA VT82C686B SMBus Host Controller",
|
||||
"via_smbus",
|
||||
DEVICE_AT,
|
||||
SMBUS_VIA,
|
||||
smbus_piix4_init, smbus_piix4_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "VIA VT82C686B SMBus Host Controller",
|
||||
.internal_name = "via_smbus",
|
||||
.flags = DEVICE_AT,
|
||||
.local = SMBUS_VIA,
|
||||
.init = smbus_piix4_init,
|
||||
.close = smbus_piix4_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -52,58 +52,72 @@ hdc_log(const char *fmt, ...)
|
||||
#define hdc_log(fmt, ...)
|
||||
#endif
|
||||
|
||||
|
||||
static void *
|
||||
null_init(const device_t *info)
|
||||
nullhdc_init(const device_t *info)
|
||||
{
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
null_close(void *priv)
|
||||
nullhdc_close(void *priv)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static void *
|
||||
inthdc_init(const device_t *info)
|
||||
{
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
inthdc_close(void *priv)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static const device_t hdc_none_device = {
|
||||
"None", "none", 0, 0,
|
||||
null_init, null_close, NULL,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
};
|
||||
static const device_t hdc_internal_device = {
|
||||
"Internal", "internal", 0, 0,
|
||||
inthdc_init, inthdc_close, NULL,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "None",
|
||||
.internal_name = "none",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = nullhdc_init,
|
||||
.close = nullhdc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const device_t hdc_internal_device = {
|
||||
.name = "Internal",
|
||||
.internal_name = "internal",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = inthdc_init,
|
||||
.close = inthdc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const struct {
|
||||
// clang-format off
|
||||
const device_t *device;
|
||||
} controllers[] = {
|
||||
// clang-format off
|
||||
{ &hdc_none_device },
|
||||
{ &hdc_internal_device },
|
||||
{ &st506_xt_xebec_device },
|
||||
{ &st506_xt_dtc5150x_device },
|
||||
{ &st506_xt_st11_m_device },
|
||||
{ &st506_xt_wd1002a_wx1_device },
|
||||
{ &st506_xt_wd1004a_wx1_device },
|
||||
{ &st506_at_wd1003_device },
|
||||
{ &st506_xt_st11_r_device },
|
||||
{ &st506_xt_wd1002a_27x_device },
|
||||
{ &st506_xt_wd1004_27x_device },
|
||||
{ &st506_xt_wd1004a_27x_device },
|
||||
{ &esdi_at_wd1007vse1_device },
|
||||
{ &ide_isa_device },
|
||||
{ &ide_isa_2ch_device },
|
||||
@@ -118,7 +132,7 @@ static const struct {
|
||||
{ &ide_pci_2ch_device },
|
||||
{ &ide_vlb_device },
|
||||
{ &ide_vlb_2ch_device },
|
||||
{ NULL }
|
||||
{ NULL }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -845,12 +845,15 @@ wd1007vse1_available(void)
|
||||
|
||||
|
||||
const device_t esdi_at_wd1007vse1_device = {
|
||||
"Western Digital WD1007V-SE1 (ESDI)",
|
||||
"esdi_at",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0,
|
||||
wd1007vse1_init, wd1007vse1_close, NULL,
|
||||
{ wd1007vse1_available },
|
||||
NULL, NULL,
|
||||
NULL
|
||||
.name = "Western Digital WD1007V-SE1 (ESDI)",
|
||||
.internal_name = "esdi_at",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = wd1007vse1_init,
|
||||
.close = wd1007vse1_close,
|
||||
.reset = NULL,
|
||||
{ .available = wd1007vse1_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1180,9 +1180,15 @@ esdi_available(void)
|
||||
|
||||
|
||||
const device_t esdi_ps2_device = {
|
||||
"IBM PS/2 ESDI Fixed Disk Adapter (MCA)",
|
||||
"esdi_mca",
|
||||
DEVICE_MCA, 0,
|
||||
esdi_init, esdi_close, NULL,
|
||||
{ esdi_available }, NULL, NULL, NULL
|
||||
.name = "IBM PS/2 ESDI Fixed Disk Adapter (MCA)",
|
||||
.internal_name = "esdi_mca",
|
||||
.flags = DEVICE_MCA,
|
||||
.local = 0,
|
||||
.init = esdi_init,
|
||||
.close = esdi_close,
|
||||
.reset = NULL,
|
||||
{ .available = esdi_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -3064,57 +3064,87 @@ ide_close(void *priv)
|
||||
|
||||
|
||||
const device_t ide_isa_device = {
|
||||
"ISA PC/AT IDE Controller",
|
||||
"ide_isa",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0,
|
||||
ide_init, ide_close, ide_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "ISA PC/AT IDE Controller",
|
||||
.internal_name = "ide_isa",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = ide_init,
|
||||
.close = ide_close,
|
||||
.reset = ide_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_isa_2ch_device = {
|
||||
"ISA PC/AT IDE Controller (Dual-Channel)",
|
||||
"ide_isa_2ch",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
1,
|
||||
ide_init, ide_close, ide_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "ISA PC/AT IDE Controller (Dual-Channel)",
|
||||
.internal_name = "ide_isa_2ch",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 1,
|
||||
.init = ide_init,
|
||||
.close = ide_close,
|
||||
.reset = ide_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_vlb_device = {
|
||||
"VLB IDE Controller",
|
||||
"ide_vlb",
|
||||
DEVICE_VLB | DEVICE_AT,
|
||||
2,
|
||||
ide_init, ide_close, ide_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "VLB IDE Controller",
|
||||
.internal_name = "ide_vlb",
|
||||
.flags = DEVICE_VLB | DEVICE_AT,
|
||||
.local = 2,
|
||||
.init = ide_init,
|
||||
.close = ide_close,
|
||||
.reset = ide_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_vlb_2ch_device = {
|
||||
"VLB IDE Controller (Dual-Channel)",
|
||||
"ide_vlb_2ch",
|
||||
DEVICE_VLB | DEVICE_AT,
|
||||
3,
|
||||
ide_init, ide_close, ide_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "VLB IDE Controller (Dual-Channel)",
|
||||
.internal_name = "ide_vlb_2ch",
|
||||
.flags = DEVICE_VLB | DEVICE_AT,
|
||||
.local = 3,
|
||||
.init = ide_init,
|
||||
.close = ide_close,
|
||||
.reset = ide_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_pci_device = {
|
||||
"PCI IDE Controller",
|
||||
"ide_pci",
|
||||
DEVICE_PCI | DEVICE_AT,
|
||||
4,
|
||||
ide_init, ide_close, ide_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PCI IDE Controller",
|
||||
.internal_name = "ide_pci",
|
||||
.flags = DEVICE_PCI | DEVICE_AT,
|
||||
.local = 4,
|
||||
.init = ide_init,
|
||||
.close = ide_close,
|
||||
.reset = ide_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_pci_2ch_device = {
|
||||
"PCI IDE Controller (Dual-Channel)",
|
||||
"ide_pci_2ch",
|
||||
DEVICE_PCI | DEVICE_AT,
|
||||
5,
|
||||
ide_init, ide_close, ide_reset,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "PCI IDE Controller (Dual-Channel)",
|
||||
.internal_name = "ide_pci_2ch",
|
||||
.flags = DEVICE_PCI | DEVICE_AT,
|
||||
.local = 5,
|
||||
.init = ide_init,
|
||||
.close = ide_close,
|
||||
.reset = ide_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
@@ -3160,41 +3190,57 @@ static const device_config_t ide_qua_config[] = {
|
||||
// clang-format on
|
||||
|
||||
const device_t ide_ter_device = {
|
||||
"Tertiary IDE Controller",
|
||||
"ide_ter",
|
||||
DEVICE_AT,
|
||||
0,
|
||||
ide_ter_init, ide_ter_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
ide_ter_config
|
||||
.name = "Tertiary IDE Controller",
|
||||
.internal_name = "ide_ter",
|
||||
.flags = DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = ide_ter_init,
|
||||
.close = ide_ter_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ide_ter_config
|
||||
};
|
||||
|
||||
const device_t ide_ter_pnp_device = {
|
||||
"Tertiary IDE Controller (Plug and Play only)",
|
||||
"ide_ter_pnp",
|
||||
DEVICE_AT,
|
||||
1,
|
||||
ide_ter_init, ide_ter_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Tertiary IDE Controller (Plug and Play only)",
|
||||
.internal_name = "ide_ter_pnp",
|
||||
.flags = DEVICE_AT,
|
||||
.local = 1,
|
||||
.init = ide_ter_init,
|
||||
.close = ide_ter_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_qua_device = {
|
||||
"Quaternary IDE Controller",
|
||||
"ide_qua",
|
||||
DEVICE_AT,
|
||||
0,
|
||||
ide_qua_init, ide_qua_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
ide_qua_config
|
||||
.name = "Quaternary IDE Controller",
|
||||
.internal_name = "ide_qua",
|
||||
.flags = DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = ide_qua_init,
|
||||
.close = ide_qua_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ide_qua_config
|
||||
};
|
||||
|
||||
const device_t ide_qua_pnp_device = {
|
||||
"Quaternary IDE Controller (Plug and Play only)",
|
||||
"ide_qua_pnp",
|
||||
DEVICE_AT,
|
||||
1,
|
||||
ide_qua_init, ide_qua_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
ide_qua_config
|
||||
.name = "Quaternary IDE Controller (Plug and Play only)",
|
||||
.internal_name = "ide_qua_pnp",
|
||||
.flags = DEVICE_AT,
|
||||
.local = 1,
|
||||
.init = ide_qua_init,
|
||||
.close = ide_qua_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = ide_qua_config
|
||||
};
|
||||
|
||||
@@ -493,51 +493,71 @@ cmd640_init(const device_t *info)
|
||||
|
||||
|
||||
const device_t ide_cmd640_vlb_device = {
|
||||
"CMD PCI-0640B VLB",
|
||||
"ide_cmd640_vlb",
|
||||
DEVICE_VLB,
|
||||
0x0078,
|
||||
cmd640_init, cmd640_close, cmd640_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "CMD PCI-0640B VLB",
|
||||
.internal_name = "ide_cmd640_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = 0x0078,
|
||||
.init = cmd640_init,
|
||||
.close = cmd640_close,
|
||||
.reset = cmd640_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_cmd640_vlb_178_device = {
|
||||
"CMD PCI-0640B VLB (Port 178h)",
|
||||
"ide_cmd640_vlb_178",
|
||||
DEVICE_VLB,
|
||||
0x0178,
|
||||
cmd640_init, cmd640_close, cmd640_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "CMD PCI-0640B VLB (Port 178h)",
|
||||
.internal_name = "ide_cmd640_vlb_178",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = 0x0178,
|
||||
.init = cmd640_init,
|
||||
.close = cmd640_close,
|
||||
.reset = cmd640_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_cmd640_pci_device = {
|
||||
"CMD PCI-0640B PCI",
|
||||
"ide_cmd640_pci",
|
||||
DEVICE_PCI,
|
||||
0x0a,
|
||||
cmd640_init, cmd640_close, cmd640_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "CMD PCI-0640B PCI",
|
||||
.internal_name = "ide_cmd640_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x0a,
|
||||
.init = cmd640_init,
|
||||
.close = cmd640_close,
|
||||
.reset = cmd640_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_cmd640_pci_legacy_only_device = {
|
||||
"CMD PCI-0640B PCI (Legacy Mode Only)",
|
||||
"ide_cmd640_pci_legacy_only",
|
||||
DEVICE_PCI,
|
||||
0x00,
|
||||
cmd640_init, cmd640_close, cmd640_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "CMD PCI-0640B PCI (Legacy Mode Only)",
|
||||
.internal_name = "ide_cmd640_pci_legacy_only",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x00,
|
||||
.init = cmd640_init,
|
||||
.close = cmd640_close,
|
||||
.reset = cmd640_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_cmd640_pci_single_channel_device = {
|
||||
"CMD PCI-0640B PCI",
|
||||
"ide_cmd640_pci_single_channel",
|
||||
DEVICE_PCI,
|
||||
0x2000a,
|
||||
cmd640_init, cmd640_close, cmd640_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "CMD PCI-0640B PCI",
|
||||
.internal_name = "ide_cmd640_pci_single_channel",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x2000a,
|
||||
.init = cmd640_init,
|
||||
.close = cmd640_close,
|
||||
.reset = cmd640_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -408,31 +408,43 @@ cmd646_init(const device_t *info)
|
||||
|
||||
|
||||
const device_t ide_cmd646_device = {
|
||||
"CMD PCI-0646",
|
||||
"ide_cmd646",
|
||||
DEVICE_PCI,
|
||||
0x8a,
|
||||
cmd646_init, cmd646_close, cmd646_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "CMD PCI-0646",
|
||||
.internal_name = "ide_cmd646",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x8a,
|
||||
.init = cmd646_init,
|
||||
.close = cmd646_close,
|
||||
.reset = cmd646_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_cmd646_legacy_only_device = {
|
||||
"CMD PCI-0646 (Legacy Mode Only)",
|
||||
"ide_cmd646_legacy_only",
|
||||
DEVICE_PCI,
|
||||
0x80,
|
||||
cmd646_init, cmd646_close, cmd646_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "CMD PCI-0646 (Legacy Mode Only)",
|
||||
.internal_name = "ide_cmd646_legacy_only",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x80,
|
||||
.init = cmd646_init,
|
||||
.close = cmd646_close,
|
||||
.reset = cmd646_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ide_cmd646_single_channel_device = {
|
||||
"CMD PCI-0646",
|
||||
"ide_cmd646_single_channel",
|
||||
DEVICE_PCI,
|
||||
0x2008a,
|
||||
cmd646_init, cmd646_close, cmd646_reset,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "CMD PCI-0646",
|
||||
.internal_name = "ide_cmd646_single_channel",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0x2008a,
|
||||
.init = cmd646_init,
|
||||
.close = cmd646_close,
|
||||
.reset = cmd646_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -313,11 +313,15 @@ opti611_init(const device_t *info)
|
||||
|
||||
|
||||
const device_t ide_opti611_vlb_device = {
|
||||
"OPTi 82C611/82C611A VLB",
|
||||
"ide_opti611_vlb",
|
||||
0,
|
||||
0,
|
||||
opti611_init, opti611_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "OPTi 82C611/82C611A VLB",
|
||||
.internal_name = "ide_opti611_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = 0,
|
||||
.init = opti611_init,
|
||||
.close = opti611_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -587,15 +587,15 @@ static void
|
||||
|
||||
const device_t sff8038i_device =
|
||||
{
|
||||
"SFF-8038i IDE Bus Master",
|
||||
"sff8038i",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
sff_init,
|
||||
sff_close,
|
||||
sff_reset,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "SFF-8038i IDE Bus Master",
|
||||
.internal_name = "sff8038i",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = sff_init,
|
||||
.close = sff_close,
|
||||
.reset = sff_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -769,10 +769,15 @@ mfm_close(void *priv)
|
||||
|
||||
|
||||
const device_t st506_at_wd1003_device = {
|
||||
"WD1003 AT MFM/RLL Controller",
|
||||
"st506_at",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0,
|
||||
mfm_init, mfm_close, NULL,
|
||||
{ NULL }, NULL, NULL, NULL
|
||||
.name = "WD1003 AT MFM/RLL Controller",
|
||||
.internal_name = "st506_at",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = mfm_init,
|
||||
.close = mfm_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -96,10 +96,13 @@
|
||||
#define ST11_BIOS_FILE_OLD "roms/hdd/st506/st11_bios_vers_1.7.bin"
|
||||
#define ST11_BIOS_FILE_NEW "roms/hdd/st506/st11_bios_vers_2.0.bin"
|
||||
#define WD1002A_WX1_BIOS_FILE "roms/hdd/st506/wd1002a_wx1-62-000094-032.bin"
|
||||
#define WD1004A_WX1_BIOS_FILE "roms/hdd/st506/wd1002a_wx1-62-000094-032.bin"
|
||||
/* SuperBIOS was for both the WX1 and 27X, users jumpers readout to determine
|
||||
if to use 26 sectors per track, 26 -> 17 sectors per track translation, or
|
||||
17 sectors per track. */
|
||||
#define WD1002A_27X_BIOS_FILE "roms/hdd/st506/wd1002a_27x-62-000094-032.bin"
|
||||
#define WD1004_27X_BIOS_FILE "roms/hdd/st506/western_digital_WD1004A-27X.bin"
|
||||
#define WD1004A_27X_BIOS_FILE "roms/hdd/st506/western_digital_WD1004A-27X.bin"
|
||||
|
||||
|
||||
#define ST506_TIME (250 * TIMER_USEC)
|
||||
@@ -1614,6 +1617,24 @@ wd1002a_27x_available(void)
|
||||
return(rom_present(WD1002A_27X_BIOS_FILE));
|
||||
}
|
||||
|
||||
static int
|
||||
wd1004a_wx1_available(void)
|
||||
{
|
||||
return(rom_present(WD1004A_WX1_BIOS_FILE));
|
||||
}
|
||||
|
||||
static int
|
||||
wd1004_27x_available(void)
|
||||
{
|
||||
return(rom_present(WD1004_27X_BIOS_FILE));
|
||||
}
|
||||
|
||||
static int
|
||||
wd1004a_27x_available(void)
|
||||
{
|
||||
return(rom_present(WD1004A_27X_BIOS_FILE));
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
static const device_config_t dtc_config[] = {
|
||||
{
|
||||
@@ -1734,70 +1755,242 @@ static const device_config_t wd_rll_config[] = {
|
||||
},
|
||||
{ "", "", -1 }
|
||||
};
|
||||
|
||||
static const device_config_t wd1004a_config[] = {
|
||||
{
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xc8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0320,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "320H", .value = 0x0320 },
|
||||
{ .description = "324H", .value = 0x0324 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
};
|
||||
|
||||
static const device_config_t wd1004_rll_config[] = {
|
||||
{
|
||||
.name = "bios_addr",
|
||||
.description = "BIOS address",
|
||||
.type = CONFIG_HEX20,
|
||||
.default_string = "",
|
||||
.default_int = 0xc8000,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Disabled", .value = 0x00000 },
|
||||
{ .description = "C800H", .value = 0xc8000 },
|
||||
{ .description = "CA00H", .value = 0xca000 },
|
||||
{ .description = "CC00H", .value = 0xcc000 },
|
||||
{ .description = "CE00H", .value = 0xce000 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.name = "base",
|
||||
.description = "Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0320,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "320H", .value = 0x0320 },
|
||||
{ .description = "324H", .value = 0x0324 },
|
||||
{ .description = "328H", .value = 0x0328 },
|
||||
{ .description = "32CH", .value = 0x032c },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.name = "irq",
|
||||
.description = "IRQ",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 5,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "IRQ 2", .value = 2 },
|
||||
{ .description = "IRQ 5", .value = 5 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.name = "translate",
|
||||
.description = "Translate 26 -> 17",
|
||||
.type = CONFIG_SELECTION,
|
||||
.default_string = "",
|
||||
.default_int = 0,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "Off", .value = 0 },
|
||||
{ .description = "On", .value = 1 },
|
||||
{ .description = "" }
|
||||
}
|
||||
},
|
||||
{ .name = "", .description = "", .type = -1 }
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
const device_t st506_xt_xebec_device = {
|
||||
"IBM PC Fixed Disk Adapter (MFM)",
|
||||
"st506_xt",
|
||||
DEVICE_ISA,
|
||||
(HDD_BUS_MFM << 8) | 0,
|
||||
st506_init, st506_close, NULL,
|
||||
{ xebec_available },
|
||||
NULL, NULL,
|
||||
NULL
|
||||
.name = "IBM PC Fixed Disk Adapter (MFM)",
|
||||
.internal_name = "st506_xt",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 0,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ .available = xebec_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t st506_xt_dtc5150x_device = {
|
||||
"DTC 5150X MFM Fixed Disk Adapter",
|
||||
"st506_xt_dtc5150x",
|
||||
DEVICE_ISA,
|
||||
(HDD_BUS_MFM << 8) | 1,
|
||||
st506_init, st506_close, NULL,
|
||||
{ dtc5150x_available },
|
||||
NULL, NULL,
|
||||
dtc_config
|
||||
.name = "DTC 5150X MFM Fixed Disk Adapter",
|
||||
.internal_name = "st506_xt_dtc5150x",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 1,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ .available = dtc5150x_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = dtc_config
|
||||
};
|
||||
|
||||
const device_t st506_xt_st11_m_device = {
|
||||
"ST-11M MFM Fixed Disk Adapter",
|
||||
"st506_xt_st11_m",
|
||||
DEVICE_ISA,
|
||||
(HDD_BUS_MFM << 8) | 11,
|
||||
st506_init, st506_close, NULL,
|
||||
{ st11_m_available },
|
||||
NULL, NULL,
|
||||
st11_config
|
||||
.name = "ST-11M MFM Fixed Disk Adapter",
|
||||
.internal_name = "st506_xt_st11_m",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 11,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ .available = st11_m_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = st11_config
|
||||
};
|
||||
|
||||
const device_t st506_xt_st11_r_device = {
|
||||
"ST-11R RLL Fixed Disk Adapter",
|
||||
"st506_xt_st11_r",
|
||||
DEVICE_ISA,
|
||||
(HDD_BUS_MFM << 8) | 12,
|
||||
st506_init, st506_close, NULL,
|
||||
{ st11_r_available },
|
||||
NULL, NULL,
|
||||
st11_config
|
||||
.name = "ST-11R RLL Fixed Disk Adapter",
|
||||
.internal_name = "st506_xt_st11_r",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 12,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ .available = st11_r_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = st11_config
|
||||
};
|
||||
|
||||
const device_t st506_xt_wd1002a_wx1_device = {
|
||||
"WD1002A-WX1 MFM Fixed Disk Adapter",
|
||||
"st506_xt_wd1002a_wx1",
|
||||
DEVICE_ISA,
|
||||
(HDD_BUS_MFM << 8) | 21,
|
||||
st506_init, st506_close, NULL,
|
||||
{ wd1002a_wx1_available },
|
||||
NULL, NULL,
|
||||
wd_config
|
||||
.name = "WD1002A-WX1 MFM Fixed Disk Adapter",
|
||||
.internal_name = "st506_xt_wd1002a_wx1",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 21,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ .available = wd1002a_wx1_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = wd_config
|
||||
};
|
||||
|
||||
const device_t st506_xt_wd1002a_27x_device = {
|
||||
"WD1002A-27X RLL Fixed Disk Adapter",
|
||||
"st506_xt_wd1002a_27x",
|
||||
DEVICE_ISA,
|
||||
(HDD_BUS_MFM << 8) | 22,
|
||||
st506_init, st506_close, NULL,
|
||||
{ wd1002a_27x_available },
|
||||
NULL, NULL,
|
||||
wd_rll_config
|
||||
.name = "WD1002A-27X RLL Fixed Disk Adapter",
|
||||
.internal_name = "st506_xt_wd1002a_27x",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 22,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ .available = wd1002a_27x_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = wd_rll_config
|
||||
};
|
||||
|
||||
const device_t st506_xt_wd1004a_wx1_device = {
|
||||
.name = "WD1004A-WX1 MFM Fixed Disk Adapter",
|
||||
.internal_name = "st506_xt_wd1004a_wx1",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 21,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ wd1004a_wx1_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = wd1004a_config
|
||||
};
|
||||
|
||||
const device_t st506_xt_wd1004_27x_device = {
|
||||
.name = "WD1004-27X RLL Fixed Disk Adapter",
|
||||
.internal_name = "st506_xt_wd1004_27x",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 22,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ .available = wd1004_27x_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = wd1004_rll_config
|
||||
};
|
||||
|
||||
const device_t st506_xt_wd1004a_27x_device = {
|
||||
.name = "WD1004a-27X RLL Fixed Disk Adapter",
|
||||
.internal_name = "st506_xt_wd1004a_27x",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = (HDD_BUS_MFM << 8) | 22,
|
||||
.init = st506_init,
|
||||
.close = st506_close,
|
||||
.reset = NULL,
|
||||
{ .available = wd1004a_27x_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = wd_rll_config
|
||||
};
|
||||
|
||||
@@ -1134,21 +1134,29 @@ static const device_config_t wdxt150_config[] = {
|
||||
};
|
||||
|
||||
const device_t xta_wdxt150_device = {
|
||||
"WDXT-150 XTA Fixed Disk Controller",
|
||||
"xta_wdxt150",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
xta_init, xta_close, NULL,
|
||||
{ xta_available }, NULL, NULL,
|
||||
wdxt150_config
|
||||
.name = "WDXT-150 XTA Fixed Disk Controller",
|
||||
.internal_name = "xta_wdxt150",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = xta_init,
|
||||
.close = xta_close,
|
||||
.reset = NULL,
|
||||
{ .available = xta_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = wdxt150_config
|
||||
};
|
||||
|
||||
const device_t xta_hd20_device = {
|
||||
"EuroPC HD20 Fixed Disk Controller",
|
||||
"xta_hd20",
|
||||
DEVICE_ISA,
|
||||
1,
|
||||
xta_init, xta_close, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "EuroPC HD20 Fixed Disk Controller",
|
||||
.internal_name = "xta_hd20",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 1,
|
||||
.init = xta_init,
|
||||
.close = xta_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -261,51 +261,71 @@ xtide_at_close(void *priv)
|
||||
|
||||
|
||||
const device_t xtide_device = {
|
||||
"PC/XT XTIDE",
|
||||
"xtide",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
xtide_init, xtide_close, NULL,
|
||||
{ xtide_available }, NULL, NULL,
|
||||
NULL
|
||||
.name = "PC/XT XTIDE",
|
||||
.internal_name = "xtide",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = xtide_init,
|
||||
.close = xtide_close,
|
||||
.reset = NULL,
|
||||
{ .available = xtide_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t xtide_at_device = {
|
||||
"PC/AT XTIDE",
|
||||
"xtide_at",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0,
|
||||
xtide_at_init, xtide_at_close, NULL,
|
||||
{ xtide_at_available }, NULL, NULL,
|
||||
NULL
|
||||
.name = "PC/AT XTIDE",
|
||||
.internal_name = "xtide_at",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = xtide_at_init,
|
||||
.close = xtide_at_close,
|
||||
.reset = NULL,
|
||||
{ .available = xtide_at_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t xtide_at_386_device = {
|
||||
"PC/AT XTIDE (386)",
|
||||
"xtide_at_386",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
1,
|
||||
xtide_at_init, xtide_at_close, NULL,
|
||||
{ xtide_at_386_available }, NULL, NULL,
|
||||
NULL
|
||||
.name = "PC/AT XTIDE (386)",
|
||||
.internal_name = "xtide_at_386",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 1,
|
||||
.init = xtide_at_init,
|
||||
.close = xtide_at_close,
|
||||
.reset = NULL,
|
||||
{ .available = xtide_at_386_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t xtide_acculogic_device = {
|
||||
"Acculogic XT IDE",
|
||||
"xtide_acculogic",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
xtide_acculogic_init, xtide_close, NULL,
|
||||
{ xtide_acculogic_available }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Acculogic XT IDE",
|
||||
.internal_name = "xtide_acculogic",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = xtide_acculogic_init,
|
||||
.close = xtide_close,
|
||||
.reset = NULL,
|
||||
{ .available = xtide_acculogic_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t xtide_at_ps2_device = {
|
||||
"PS/2 AT XTIDE (1.1.5)",
|
||||
"xtide_at_ps2",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0,
|
||||
xtide_at_ps2_init, xtide_at_close, NULL,
|
||||
{ xtide_at_ps2_available }, NULL, NULL,
|
||||
NULL
|
||||
.name = "PS/2 AT XTIDE (1.1.5)",
|
||||
.internal_name = "xtide_at_ps2",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = xtide_at_ps2_init,
|
||||
.close = xtide_at_close,
|
||||
.reset = NULL,
|
||||
{ .available = xtide_at_ps2_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
277
src/floppy/fdc.c
277
src/floppy/fdc.c
@@ -102,12 +102,17 @@ fdc_log(const char *fmt, ...)
|
||||
|
||||
|
||||
const device_t fdc_internal_device = {
|
||||
"Internal",
|
||||
"internal",
|
||||
0, 0,
|
||||
NULL, NULL, NULL,
|
||||
{ NULL }, NULL, NULL,
|
||||
NULL
|
||||
.name = "Internal",
|
||||
.internal_name = "internal",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
@@ -117,11 +122,13 @@ typedef const struct {
|
||||
|
||||
/* All emulated machines have at least one integrated FDC controller */
|
||||
static fdc_cards_t fdc_cards[] = {
|
||||
{ &fdc_internal_device },
|
||||
{ &fdc_b215_device },
|
||||
{ &fdc_pii151b_device },
|
||||
{ &fdc_pii158b_device },
|
||||
{ NULL }
|
||||
// clang-format off
|
||||
{ &fdc_internal_device },
|
||||
{ &fdc_b215_device },
|
||||
{ &fdc_pii151b_device },
|
||||
{ &fdc_pii158b_device },
|
||||
{ NULL }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -2382,145 +2389,183 @@ fdc_3f1_enable(fdc_t *fdc, int enable)
|
||||
}
|
||||
|
||||
const device_t fdc_xt_device = {
|
||||
"PC/XT Floppy Drive Controller",
|
||||
"fdc_xt",
|
||||
0,
|
||||
0,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/XT Floppy Drive Controller",
|
||||
.internal_name = "fdc_xt",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_xt_t1x00_device = {
|
||||
"PC/XT Floppy Drive Controller (Toshiba)",
|
||||
"fdc_xt_t1x00",
|
||||
0,
|
||||
FDC_FLAG_TOSHIBA,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/XT Floppy Drive Controller (Toshiba)",
|
||||
.internal_name = "fdc_xt_t1x00",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_TOSHIBA,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_xt_amstrad_device = {
|
||||
"PC/XT Floppy Drive Controller (Amstrad)",
|
||||
"fdc_xt_amstrad",
|
||||
0,
|
||||
FDC_FLAG_DISKCHG_ACTLOW | FDC_FLAG_AMSTRAD,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/XT Floppy Drive Controller (Amstrad)",
|
||||
.internal_name = "fdc_xt_amstrad",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_DISKCHG_ACTLOW | FDC_FLAG_AMSTRAD,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_xt_tandy_device = {
|
||||
"PC/XT Floppy Drive Controller (Tandy)",
|
||||
"fdc_xt_tandy",
|
||||
0,
|
||||
FDC_FLAG_AMSTRAD,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/XT Floppy Drive Controller (Tandy)",
|
||||
.internal_name = "fdc_xt_tandy",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_AMSTRAD,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t fdc_pcjr_device = {
|
||||
"PCjr Floppy Drive Controller",
|
||||
"fdc_pcjr",
|
||||
0,
|
||||
FDC_FLAG_PCJR,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PCjr Floppy Drive Controller",
|
||||
.internal_name = "fdc_pcjr",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_PCJR,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_at_device = {
|
||||
"PC/AT Floppy Drive Controller",
|
||||
"fdc_at",
|
||||
0,
|
||||
FDC_FLAG_AT,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/AT Floppy Drive Controller",
|
||||
.internal_name = "fdc_at",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_AT,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_at_actlow_device = {
|
||||
"PC/AT Floppy Drive Controller (Active low)",
|
||||
"fdc_at_actlow",
|
||||
0,
|
||||
FDC_FLAG_DISKCHG_ACTLOW | FDC_FLAG_AT,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/AT Floppy Drive Controller (Active low)",
|
||||
.internal_name = "fdc_at_actlow",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_DISKCHG_ACTLOW | FDC_FLAG_AT,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_at_ps1_device = {
|
||||
"PC/AT Floppy Drive Controller (PS/1, PS/2 ISA)",
|
||||
"fdc_at_ps1",
|
||||
0,
|
||||
FDC_FLAG_DISKCHG_ACTLOW | FDC_FLAG_AT | FDC_FLAG_PS1,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/AT Floppy Drive Controller (PS/1, PS/2 ISA)",
|
||||
.internal_name = "fdc_at_ps1",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_DISKCHG_ACTLOW | FDC_FLAG_AT | FDC_FLAG_PS1,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_at_smc_device = {
|
||||
"PC/AT Floppy Drive Controller (SM(s)C FDC37Cxxx)",
|
||||
"fdc_at_smc",
|
||||
0,
|
||||
FDC_FLAG_AT | FDC_FLAG_SUPERIO,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/AT Floppy Drive Controller (SM(s)C FDC37Cxxx)",
|
||||
.internal_name = "fdc_at_smc",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_AT | FDC_FLAG_SUPERIO,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_at_winbond_device = {
|
||||
"PC/AT Floppy Drive Controller (Winbond W83x77F)",
|
||||
"fdc_at_winbond",
|
||||
0,
|
||||
FDC_FLAG_AT | FDC_FLAG_SUPERIO | FDC_FLAG_START_RWC_1 | FDC_FLAG_MORE_TRACKS,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/AT Floppy Drive Controller (Winbond W83x77F)",
|
||||
.internal_name = "fdc_at_winbond",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_AT | FDC_FLAG_SUPERIO | FDC_FLAG_START_RWC_1 | FDC_FLAG_MORE_TRACKS,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_at_nsc_device = {
|
||||
"PC/AT Floppy Drive Controller (NSC PC8730x)",
|
||||
"fdc_at_nsc",
|
||||
0,
|
||||
FDC_FLAG_AT | FDC_FLAG_MORE_TRACKS | FDC_FLAG_NSC,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "PC/AT Floppy Drive Controller (NSC PC8730x)",
|
||||
.internal_name = "fdc_at_nsc",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_AT | FDC_FLAG_MORE_TRACKS | FDC_FLAG_NSC,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_dp8473_device = {
|
||||
"NS DP8473 Floppy Drive Controller",
|
||||
"fdc_dp8473",
|
||||
0,
|
||||
FDC_FLAG_AT | FDC_FLAG_NSC,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "NS DP8473 Floppy Drive Controller",
|
||||
.internal_name = "fdc_dp8473",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_AT | FDC_FLAG_NSC,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t fdc_um8398_device = {
|
||||
"UMC UM8398 Floppy Drive Controller",
|
||||
"fdc_um8398",
|
||||
0,
|
||||
FDC_FLAG_UMC,
|
||||
fdc_init,
|
||||
fdc_close,
|
||||
fdc_reset,
|
||||
{ NULL }, NULL, NULL
|
||||
.name = "UMC UM8398 Floppy Drive Controller",
|
||||
.internal_name = "fdc_um8398",
|
||||
.flags = 0,
|
||||
.local = FDC_FLAG_UMC,
|
||||
.init = fdc_init,
|
||||
.close = fdc_close,
|
||||
.reset = fdc_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -126,14 +126,16 @@ static const device_config_t b215_config[] = {
|
||||
};
|
||||
|
||||
const device_t fdc_b215_device = {
|
||||
"Magitronic B215",
|
||||
"b215",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
b215_init,
|
||||
b215_close,
|
||||
NULL,
|
||||
{b215_available},
|
||||
NULL,
|
||||
NULL,
|
||||
b215_config};
|
||||
.name = "Magitronic B215",
|
||||
.internal_name = "b215",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = b215_init,
|
||||
.close = b215_close,
|
||||
.reset = NULL,
|
||||
{ .available = b215_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = b215_config
|
||||
};
|
||||
|
||||
|
||||
@@ -138,27 +138,29 @@ static const device_config_t pii_config[] = {
|
||||
};
|
||||
|
||||
const device_t fdc_pii151b_device = {
|
||||
"DTK PII-151B (MiniMicro) Floppy Drive Controller",
|
||||
"dtk_pii151b",
|
||||
DEVICE_ISA,
|
||||
151,
|
||||
pii_init,
|
||||
pii_close,
|
||||
NULL,
|
||||
{pii_151b_available},
|
||||
NULL,
|
||||
NULL,
|
||||
pii_config};
|
||||
.name = "DTK PII-151B (MiniMicro) Floppy Drive Controller",
|
||||
.internal_name = "dtk_pii151b",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 151,
|
||||
.init = pii_init,
|
||||
.close = pii_close,
|
||||
.reset = NULL,
|
||||
{ .available = pii_151b_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = pii_config
|
||||
};
|
||||
|
||||
const device_t fdc_pii158b_device = {
|
||||
"DTK PII-158B (MiniMicro4) Floppy Drive Controller",
|
||||
"dtk_pii158b",
|
||||
DEVICE_ISA,
|
||||
158,
|
||||
pii_init,
|
||||
pii_close,
|
||||
NULL,
|
||||
{pii_158_available},
|
||||
NULL,
|
||||
NULL,
|
||||
pii_config};
|
||||
.name = "DTK PII-158B (MiniMicro4) Floppy Drive Controller",
|
||||
.internal_name = "dtk_pii158b",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 158,
|
||||
.init = pii_init,
|
||||
.close = pii_close,
|
||||
.reset = NULL,
|
||||
{ .available = pii_158_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = pii_config
|
||||
};
|
||||
|
||||
@@ -313,7 +313,7 @@ fdd_set_densel(int densel)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
for (i = 0; i < FDD_NUM; i++) {
|
||||
if (drive_types[fdd[i].type].flags & FLAG_INVERT_DENSEL)
|
||||
fdd[i].densel = densel ^ 1;
|
||||
else
|
||||
@@ -627,7 +627,7 @@ fdd_reset(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
for (i = 0; i < FDD_NUM; i++) {
|
||||
drives[i].id = i;
|
||||
timer_add(&(fdd_poll_time[i]), fdd_poll, &drives[i], 0);
|
||||
}
|
||||
@@ -702,7 +702,7 @@ fdd_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
for (i = 0; i < FDD_NUM; i++) {
|
||||
drives[i].poll = 0;
|
||||
drives[i].seek = 0;
|
||||
drives[i].readsector = 0;
|
||||
@@ -714,10 +714,9 @@ fdd_init(void)
|
||||
imd_init();
|
||||
json_init();
|
||||
|
||||
fdd_load(0, floppyfns[0]);
|
||||
fdd_load(1, floppyfns[1]);
|
||||
fdd_load(2, floppyfns[2]);
|
||||
fdd_load(3, floppyfns[3]);
|
||||
for (i = 0; i < FDD_NUM; i++) {
|
||||
fdd_load(i, floppyfns[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#include <86box/joystick_sw_pad.h>
|
||||
#include <86box/joystick_tm_fcs.h>
|
||||
|
||||
|
||||
typedef struct {
|
||||
pc_timer_t timer;
|
||||
int axis_nr;
|
||||
@@ -58,43 +57,44 @@ typedef struct _joystick_instance_ {
|
||||
void *dat;
|
||||
} joystick_instance_t;
|
||||
|
||||
|
||||
int joystick_type = 0;
|
||||
|
||||
|
||||
static const joystick_if_t joystick_none = {
|
||||
"None",
|
||||
"none",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
.name = "None",
|
||||
.internal_name = "none",
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.read = NULL,
|
||||
.write = NULL,
|
||||
.read_axis = NULL,
|
||||
.a0_over = NULL,
|
||||
.axis_count = 0,
|
||||
.button_count = 0,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 0,
|
||||
.axis_names = { NULL },
|
||||
.button_names = { NULL },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
|
||||
|
||||
static const struct {
|
||||
const joystick_if_t *joystick;
|
||||
} joysticks[] = {
|
||||
{ &joystick_none },
|
||||
{ &joystick_2axis_2button },
|
||||
{ &joystick_2axis_4button },
|
||||
{ &joystick_2axis_6button },
|
||||
{ &joystick_2axis_8button },
|
||||
{ &joystick_3axis_2button },
|
||||
{ &joystick_3axis_4button },
|
||||
{ &joystick_4axis_4button },
|
||||
{ &joystick_ch_flightstick_pro },
|
||||
{ &joystick_sw_pad },
|
||||
{ &joystick_tm_fcs },
|
||||
{ NULL }
|
||||
{ &joystick_none },
|
||||
{ &joystick_2axis_2button },
|
||||
{ &joystick_2axis_4button },
|
||||
{ &joystick_2axis_6button },
|
||||
{ &joystick_2axis_8button },
|
||||
{ &joystick_3axis_2button },
|
||||
{ &joystick_3axis_4button },
|
||||
{ &joystick_4axis_4button },
|
||||
{ &joystick_ch_flightstick_pro },
|
||||
{ &joystick_sw_pad },
|
||||
{ &joystick_tm_fcs },
|
||||
{ NULL }
|
||||
};
|
||||
static joystick_instance_t *joystick_instance = NULL;
|
||||
|
||||
static joystick_instance_t *joystick_instance = NULL;
|
||||
|
||||
static uint8_t gameport_pnp_rom[] = {
|
||||
0x09, 0xf8, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, /* BOX0002, dummy checksum (filled in by isapnp_add_card) */
|
||||
@@ -120,14 +120,12 @@ static const isapnp_device_config_t gameport_pnp_defaults[] = {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const device_t *standalone_gameport_type;
|
||||
int gameport_instance_id = 0;
|
||||
/* Linked list of active game ports. Only the top port responds to reads
|
||||
or writes, and ports at the standard 200h location are prioritized. */
|
||||
static gameport_t *active_gameports = NULL;
|
||||
|
||||
|
||||
char *
|
||||
joystick_get_name(int js)
|
||||
{
|
||||
@@ -136,7 +134,6 @@ joystick_get_name(int js)
|
||||
return (char *) joysticks[js].joystick->name;
|
||||
}
|
||||
|
||||
|
||||
char *
|
||||
joystick_get_internal_name(int js)
|
||||
{
|
||||
@@ -146,7 +143,6 @@ joystick_get_internal_name(int js)
|
||||
return (char *) joysticks[js].joystick->internal_name;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
joystick_get_from_internal_name(char *s)
|
||||
{
|
||||
@@ -161,56 +157,48 @@ joystick_get_from_internal_name(char *s)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
joystick_get_max_joysticks(int js)
|
||||
{
|
||||
return joysticks[js].joystick->max_joysticks;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
joystick_get_axis_count(int js)
|
||||
{
|
||||
return joysticks[js].joystick->axis_count;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
joystick_get_button_count(int js)
|
||||
{
|
||||
return joysticks[js].joystick->button_count;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
joystick_get_pov_count(int js)
|
||||
{
|
||||
return joysticks[js].joystick->pov_count;
|
||||
}
|
||||
|
||||
|
||||
char *
|
||||
joystick_get_axis_name(int js, int id)
|
||||
{
|
||||
return (char *) joysticks[js].joystick->axis_names[id];
|
||||
}
|
||||
|
||||
|
||||
char *
|
||||
joystick_get_button_name(int js, int id)
|
||||
{
|
||||
return (char *) joysticks[js].joystick->button_names[id];
|
||||
}
|
||||
|
||||
|
||||
char *
|
||||
joystick_get_pov_name(int js, int id)
|
||||
{
|
||||
return (char *) joysticks[js].joystick->pov_names[id];
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gameport_time(joystick_instance_t *joystick, int nr, int axis)
|
||||
{
|
||||
@@ -225,7 +213,6 @@ gameport_time(joystick_instance_t *joystick, int nr, int axis)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gameport_write(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
@@ -250,7 +237,6 @@ gameport_write(uint16_t addr, uint8_t val, void *priv)
|
||||
cycles -= ISA_CYCLES(8);
|
||||
}
|
||||
|
||||
|
||||
static uint8_t
|
||||
gameport_read(uint16_t addr, void *priv)
|
||||
{
|
||||
@@ -269,7 +255,6 @@ gameport_read(uint16_t addr, void *priv)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
timer_over(void *priv)
|
||||
{
|
||||
@@ -282,7 +267,6 @@ timer_over(void *priv)
|
||||
axis->joystick->intf->a0_over(axis->joystick->dat);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gameport_update_joystick_type(void)
|
||||
{
|
||||
@@ -298,7 +282,6 @@ gameport_update_joystick_type(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gameport_remap(void *priv, uint16_t address)
|
||||
{
|
||||
@@ -346,7 +329,6 @@ gameport_remap(void *priv, uint16_t address)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gameport_pnp_config_changed(uint8_t ld, isapnp_device_config_t *config, void *priv)
|
||||
{
|
||||
@@ -359,7 +341,6 @@ gameport_pnp_config_changed(uint8_t ld, isapnp_device_config_t *config, void *pr
|
||||
gameport_remap(dev, (config->activate && (config->io[0].base != ISAPNP_IO_DISABLED)) ? config->io[0].base : 0);
|
||||
}
|
||||
|
||||
|
||||
void *
|
||||
gameport_add(const device_t *gameport_type)
|
||||
{
|
||||
@@ -372,7 +353,6 @@ gameport_add(const device_t *gameport_type)
|
||||
return device_add_inst(gameport_type, gameport_instance_id++);
|
||||
}
|
||||
|
||||
|
||||
static void *
|
||||
gameport_init(const device_t *info)
|
||||
{
|
||||
@@ -418,6 +398,53 @@ gameport_init(const device_t *info)
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void *
|
||||
tmacm_init(const device_t *info)
|
||||
{
|
||||
uint16_t port = 0x0000;
|
||||
gameport_t *dev = NULL;
|
||||
|
||||
dev = malloc(sizeof(gameport_t));
|
||||
memset(dev, 0x00, sizeof(gameport_t));
|
||||
|
||||
port = device_get_config_hex16("port1_addr");
|
||||
switch(port) {
|
||||
case 0x201:
|
||||
dev = gameport_add(&gameport_201_device);
|
||||
break;
|
||||
case 0x203:
|
||||
dev = gameport_add(&gameport_203_device);
|
||||
break;
|
||||
case 0x205:
|
||||
dev = gameport_add(&gameport_205_device);
|
||||
break;
|
||||
case 0x207:
|
||||
dev = gameport_add(&gameport_207_device);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
port = device_get_config_hex16("port2_addr");
|
||||
switch(port) {
|
||||
case 0x201:
|
||||
dev = gameport_add(&gameport_209_device);
|
||||
break;
|
||||
case 0x203:
|
||||
dev = gameport_add(&gameport_20b_device);
|
||||
break;
|
||||
case 0x205:
|
||||
dev = gameport_add(&gameport_20d_device);
|
||||
break;
|
||||
case 0x207:
|
||||
dev = gameport_add(&gameport_20f_device);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return dev;
|
||||
}
|
||||
|
||||
static void
|
||||
gameport_close(void *priv)
|
||||
@@ -439,71 +466,235 @@ gameport_close(void *priv)
|
||||
}
|
||||
|
||||
const device_t gameport_device = {
|
||||
"Game port",
|
||||
"gameport",
|
||||
0, 0x080200,
|
||||
gameport_init,
|
||||
gameport_close,
|
||||
NULL, { NULL }, NULL,
|
||||
NULL
|
||||
.name = "Game port",
|
||||
.internal_name = "gameport",
|
||||
.flags = 0,
|
||||
.local = 0x080200,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_201_device = {
|
||||
"Game port (Port 201h only)",
|
||||
"gameport_201",
|
||||
0, 0x010201,
|
||||
gameport_init,
|
||||
gameport_close,
|
||||
NULL, { NULL }, NULL,
|
||||
NULL
|
||||
.name = "Game port (Port 201h only)",
|
||||
.internal_name = "gameport_201",
|
||||
.flags = 0,
|
||||
.local = 0x010201,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_203_device = {
|
||||
.name = "Game port (Port 203h only)",
|
||||
.internal_name = "gameport_203",
|
||||
.flags = 0,
|
||||
.local = 0x010203,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_205_device = {
|
||||
.name = "Game port (Port 205h only)",
|
||||
.internal_name = "gameport_205",
|
||||
.flags = 0,
|
||||
.local = 0x010205,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_207_device = {
|
||||
.name = "Game port (Port 207h only)",
|
||||
.internal_name = "gameport_207",
|
||||
.flags = 0,
|
||||
.local = 0x010207,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_208_device = {
|
||||
"Game port (Port 208h-20fh)",
|
||||
"gameport_208",
|
||||
0, 0x080208,
|
||||
gameport_init,
|
||||
gameport_close,
|
||||
NULL, { NULL }, NULL,
|
||||
NULL
|
||||
.name = "Game port (Port 208h-20fh)",
|
||||
.internal_name = "gameport_208",
|
||||
.flags = 0,
|
||||
.local = 0x080208,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_209_device = {
|
||||
"Game port (Port 209h only)",
|
||||
"gameport_209",
|
||||
0, 0x010209,
|
||||
gameport_init,
|
||||
gameport_close,
|
||||
NULL, { NULL }, NULL,
|
||||
NULL
|
||||
.name = "Game port (Port 209h only)",
|
||||
.internal_name = "gameport_209",
|
||||
.flags = 0,
|
||||
.local = 0x010209,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_20b_device = {
|
||||
.name = "Game port (Port 20Bh only)",
|
||||
.internal_name = "gameport_20b",
|
||||
.flags = 0,
|
||||
.local = 0x01020B,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_20d_device = {
|
||||
.name = "Game port (Port 20Dh only)",
|
||||
.internal_name = "gameport_20d",
|
||||
.flags = 0,
|
||||
.local = 0x01020D,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_20f_device = {
|
||||
.name = "Game port (Port 20Fh only)",
|
||||
.internal_name = "gameport_20f",
|
||||
.flags = 0,
|
||||
.local = 0x01020F,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
static const device_config_t tmacm_config[] = {
|
||||
{
|
||||
.name = "port1_addr",
|
||||
.description = "Port 1 Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0201,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "201h", .value = 0x0201 },
|
||||
{ .description = "203h", .value = 0x0203 },
|
||||
{ .description = "205h", .value = 0x0205 },
|
||||
{ .description = "207h", .value = 0x0207 },
|
||||
{ .description = "Disabled", .value = 0x0000 },
|
||||
{ "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.name = "port2_addr",
|
||||
.description = "Port 2 Address",
|
||||
.type = CONFIG_HEX16,
|
||||
.default_string = "",
|
||||
.default_int = 0x0209,
|
||||
.file_filter = "",
|
||||
.spinner = { 0 },
|
||||
.selection = {
|
||||
{ .description = "209h", .value = 0x0209 },
|
||||
{ .description = "20Bh", .value = 0x020B },
|
||||
{ .description = "20Dh", .value = 0x020D },
|
||||
{ .description = "20Fh", .value = 0x020F },
|
||||
{ .description = "Disabled", .value = 0x0000 },
|
||||
{ "" }
|
||||
}
|
||||
},
|
||||
{ "", "", -1 }
|
||||
};
|
||||
|
||||
const device_t gameport_tm_acm_device = {
|
||||
.name = "Game port (ThrustMaster ACM)",
|
||||
.internal_name = "gameport_tmacm",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = tmacm_init,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = tmacm_config
|
||||
};
|
||||
|
||||
const device_t gameport_pnp_device = {
|
||||
"Game port (Plug and Play only)",
|
||||
"gameport_pnp",
|
||||
0, 0x080000,
|
||||
gameport_init,
|
||||
gameport_close,
|
||||
NULL, { NULL }, NULL,
|
||||
NULL
|
||||
.name = "Game port (Plug and Play only)",
|
||||
.internal_name = "gameport_pnp",
|
||||
.flags = 0,
|
||||
.local = 0x080000,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_pnp_6io_device = {
|
||||
"Game port (Plug and Play only, 6 I/O ports)",
|
||||
"gameport_pnp_6io",
|
||||
0, 0x060000,
|
||||
gameport_init,
|
||||
gameport_close,
|
||||
NULL, { NULL }, NULL,
|
||||
NULL
|
||||
.name = "Game port (Plug and Play only, 6 I/O ports)",
|
||||
.internal_name = "gameport_pnp_6io",
|
||||
.flags = 0,
|
||||
.local = 0x060000,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gameport_sio_device = {
|
||||
"Game port (Super I/O)",
|
||||
"gameport_sio",
|
||||
0, 0x1080000,
|
||||
gameport_init,
|
||||
gameport_close,
|
||||
NULL, { NULL }, NULL,
|
||||
NULL
|
||||
.name = "Game port (Super I/O)",
|
||||
.internal_name = "gameport_sio",
|
||||
.flags = 0,
|
||||
.local = 0x1080000,
|
||||
.init = gameport_init,
|
||||
.close = gameport_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -115,19 +115,19 @@ static void ch_flightstick_pro_a0_over(void *p)
|
||||
|
||||
const joystick_if_t joystick_ch_flightstick_pro =
|
||||
{
|
||||
"CH Flightstick Pro",
|
||||
"ch_flightstick_pro",
|
||||
ch_flightstick_pro_init,
|
||||
ch_flightstick_pro_close,
|
||||
ch_flightstick_pro_read,
|
||||
ch_flightstick_pro_write,
|
||||
ch_flightstick_pro_read_axis,
|
||||
ch_flightstick_pro_a0_over,
|
||||
3,
|
||||
4,
|
||||
1,
|
||||
1,
|
||||
{"X axis", "Y axis", "Throttle"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4"},
|
||||
{"POV"}
|
||||
.name = "CH Flightstick Pro",
|
||||
.internal_name = "ch_flightstick_pro",
|
||||
.init = ch_flightstick_pro_init,
|
||||
.close = ch_flightstick_pro_close,
|
||||
.read = ch_flightstick_pro_read,
|
||||
.write = ch_flightstick_pro_write,
|
||||
.read_axis = ch_flightstick_pro_read_axis,
|
||||
.a0_over = ch_flightstick_pro_a0_over,
|
||||
.axis_count = 3,
|
||||
.button_count = 4,
|
||||
.pov_count = 1,
|
||||
.max_joysticks = 1,
|
||||
.axis_names = { "X axis", "Y axis", "Throttle" },
|
||||
.button_names = { "Button 1", "Button 2", "Button 3", "Button 4" },
|
||||
.pov_names = { "POV" }
|
||||
};
|
||||
|
||||
@@ -236,122 +236,128 @@ static void joystick_standard_a0_over(void *p)
|
||||
{
|
||||
}
|
||||
|
||||
const joystick_if_t joystick_2axis_2button =
|
||||
{
|
||||
"2-axis, 2-button joystick(s)",
|
||||
"2axis_2button",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis,
|
||||
joystick_standard_a0_over,
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
2,
|
||||
{"X axis", "Y axis"},
|
||||
{"Button 1", "Button 2"}
|
||||
const joystick_if_t joystick_2axis_2button = {
|
||||
.name = "2-axis, 2-button joystick(s)",
|
||||
.internal_name = "2axis_2button",
|
||||
.init = joystick_standard_init,
|
||||
.close = joystick_standard_close,
|
||||
.read = joystick_standard_read,
|
||||
.write = joystick_standard_write,
|
||||
.read_axis = joystick_standard_read_axis,
|
||||
.a0_over = joystick_standard_a0_over,
|
||||
.axis_count = 2,
|
||||
.button_count = 2,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 2,
|
||||
.axis_names = { "X axis", "Y axis" },
|
||||
.button_names = { "Button 1", "Button 2" },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
const joystick_if_t joystick_2axis_4button =
|
||||
{
|
||||
"2-axis, 4-button joystick",
|
||||
"2axis_4button",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis_4button,
|
||||
joystick_standard_a0_over,
|
||||
2,
|
||||
4,
|
||||
0,
|
||||
1,
|
||||
{"X axis", "Y axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4"}
|
||||
|
||||
const joystick_if_t joystick_2axis_4button = {
|
||||
.name = "2-axis, 4-button joystick",
|
||||
.internal_name = "2axis_4button",
|
||||
.init = joystick_standard_init,
|
||||
.close = joystick_standard_close,
|
||||
.read = joystick_standard_read_4button,
|
||||
.write = joystick_standard_write,
|
||||
.read_axis = joystick_standard_read_axis_4button,
|
||||
.a0_over = joystick_standard_a0_over,
|
||||
.axis_count = 2,
|
||||
.button_count = 4,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 1,
|
||||
.axis_names = { "X axis", "Y axis" },
|
||||
.button_names = { "Button 1", "Button 2", "Button 3", "Button 4" },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
const joystick_if_t joystick_3axis_2button =
|
||||
{
|
||||
"3-axis, 2-button joystick",
|
||||
"3axis_2button",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis_3axis,
|
||||
joystick_standard_a0_over,
|
||||
3,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
{"X axis", "Y axis", "Z axis"},
|
||||
{"Button 1", "Button 2"}
|
||||
|
||||
const joystick_if_t joystick_3axis_2button = {
|
||||
.name = "3-axis, 2-button joystick",
|
||||
.internal_name = "3axis_2button",
|
||||
.init = joystick_standard_init,
|
||||
.close = joystick_standard_close,
|
||||
.read = joystick_standard_read,
|
||||
.write = joystick_standard_write,
|
||||
.read_axis = joystick_standard_read_axis_3axis,
|
||||
.a0_over = joystick_standard_a0_over,
|
||||
.axis_count = 3,
|
||||
.button_count = 2,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 1,
|
||||
.axis_names = { "X axis", "Y axis", "Z axis" },
|
||||
.button_names = { "Button 1", "Button 2" },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
const joystick_if_t joystick_3axis_4button =
|
||||
{
|
||||
"3-axis, 4-button joystick",
|
||||
"3axis_4button",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis_3axis,
|
||||
joystick_standard_a0_over,
|
||||
3,
|
||||
4,
|
||||
0,
|
||||
1,
|
||||
{"X axis", "Y axis", "Z axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4"}
|
||||
|
||||
const joystick_if_t joystick_3axis_4button = {
|
||||
.name = "3-axis, 4-button joystick",
|
||||
.internal_name = "3axis_4button",
|
||||
.init = joystick_standard_init,
|
||||
.close = joystick_standard_close,
|
||||
.read = joystick_standard_read_4button,
|
||||
.write = joystick_standard_write,
|
||||
.read_axis = joystick_standard_read_axis_3axis,
|
||||
.a0_over = joystick_standard_a0_over,
|
||||
.axis_count = 3,
|
||||
.button_count = 4,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 1,
|
||||
.axis_names = { "X axis", "Y axis", "Z axis" },
|
||||
.button_names = { "Button 1", "Button 2", "Button 3", "Button 4" },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
const joystick_if_t joystick_4axis_4button =
|
||||
{
|
||||
"4-axis, 4-button joystick",
|
||||
"4axis_4button",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis_4axis,
|
||||
joystick_standard_a0_over,
|
||||
4,
|
||||
4,
|
||||
0,
|
||||
1,
|
||||
{"X axis", "Y axis", "Z axis", "zX axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4"}
|
||||
|
||||
const joystick_if_t joystick_4axis_4button = {
|
||||
.name = "4-axis, 4-button joystick",
|
||||
.internal_name = "4axis_4button",
|
||||
.init = joystick_standard_init,
|
||||
.close = joystick_standard_close,
|
||||
.read = joystick_standard_read_4button,
|
||||
.write = joystick_standard_write,
|
||||
.read_axis = joystick_standard_read_axis_4axis,
|
||||
.a0_over = joystick_standard_a0_over,
|
||||
.axis_count = 4,
|
||||
.button_count = 4,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 1,
|
||||
.axis_names = { "X axis", "Y axis", "Z axis", "zX axis" },
|
||||
.button_names = { "Button 1", "Button 2", "Button 3", "Button 4" },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
const joystick_if_t joystick_2axis_6button =
|
||||
{
|
||||
"2-axis, 6-button joystick",
|
||||
"2axis_6button",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis_6button,
|
||||
joystick_standard_a0_over,
|
||||
2,
|
||||
6,
|
||||
0,
|
||||
1,
|
||||
{"X axis", "Y axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6"}
|
||||
|
||||
const joystick_if_t joystick_2axis_6button = {
|
||||
.name = "2-axis, 6-button joystick",
|
||||
.internal_name = "2axis_6button",
|
||||
.init = joystick_standard_init,
|
||||
.close = joystick_standard_close,
|
||||
.read = joystick_standard_read_4button,
|
||||
.write = joystick_standard_write,
|
||||
.read_axis = joystick_standard_read_axis_6button,
|
||||
.a0_over = joystick_standard_a0_over,
|
||||
.axis_count = 2,
|
||||
.button_count = 6,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 1,
|
||||
.axis_names = { "X axis", "Y axis" },
|
||||
.button_names = { "Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6" },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
const joystick_if_t joystick_2axis_8button =
|
||||
{
|
||||
"2-axis, 8-button joystick",
|
||||
"2axis_8button",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis_8button,
|
||||
joystick_standard_a0_over,
|
||||
2,
|
||||
8,
|
||||
0,
|
||||
1,
|
||||
{"X axis", "Y axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6", "Button 7", "Button 8"}
|
||||
|
||||
const joystick_if_t joystick_2axis_8button = {
|
||||
.name = "2-axis, 8-button joystick",
|
||||
.internal_name = "2axis_8button",
|
||||
.init = joystick_standard_init,
|
||||
.close = joystick_standard_close,
|
||||
.read = joystick_standard_read_4button,
|
||||
.write = joystick_standard_write,
|
||||
.read_axis = joystick_standard_read_axis_8button,
|
||||
.a0_over = joystick_standard_a0_over,
|
||||
.axis_count = 2,
|
||||
.button_count = 8,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 1,
|
||||
.axis_names = { "X axis", "Y axis" },
|
||||
.button_names = { "Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6", "Button 7", "Button 8" },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
|
||||
@@ -262,20 +262,20 @@ static void sw_a0_over(void *p)
|
||||
timer_set_delay_u64(&sw->trigger_timer, TIMER_USEC * 10000);
|
||||
}
|
||||
|
||||
const joystick_if_t joystick_sw_pad =
|
||||
{
|
||||
"Microsoft SideWinder Pad",
|
||||
"sidewinder_pad",
|
||||
sw_init,
|
||||
sw_close,
|
||||
sw_read,
|
||||
sw_write,
|
||||
sw_read_axis,
|
||||
sw_a0_over,
|
||||
2,
|
||||
10,
|
||||
0,
|
||||
4,
|
||||
{"X axis", "Y axis"},
|
||||
{"A", "B", "C", "X", "Y", "Z", "L", "R", "Start", "M"}
|
||||
const joystick_if_t joystick_sw_pad = {
|
||||
.name = "Microsoft SideWinder Pad",
|
||||
.internal_name = "sidewinder_pad",
|
||||
.init = sw_init,
|
||||
.close = sw_close,
|
||||
.read = sw_read,
|
||||
.write = sw_write,
|
||||
.read_axis = sw_read_axis,
|
||||
.a0_over = sw_a0_over,
|
||||
.axis_count = 2,
|
||||
.button_count = 10,
|
||||
.pov_count = 0,
|
||||
.max_joysticks = 4,
|
||||
.axis_names = { "X axis", "Y axis" },
|
||||
.button_names = { "A", "B", "C", "X", "Y", "Z", "L", "R", "Start", "M" },
|
||||
.pov_names = { NULL }
|
||||
};
|
||||
|
||||
@@ -114,19 +114,19 @@ static void tm_fcs_a0_over(void *p)
|
||||
|
||||
const joystick_if_t joystick_tm_fcs =
|
||||
{
|
||||
"Thrustmaster Flight Control System",
|
||||
"thrustmaster_fcs",
|
||||
tm_fcs_init,
|
||||
tm_fcs_close,
|
||||
tm_fcs_read,
|
||||
tm_fcs_write,
|
||||
tm_fcs_read_axis,
|
||||
tm_fcs_a0_over,
|
||||
2,
|
||||
4,
|
||||
1,
|
||||
1,
|
||||
{"X axis", "Y axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4"},
|
||||
{"POV"}
|
||||
.name = "Thrustmaster Flight Control System",
|
||||
.internal_name = "thrustmaster_fcs",
|
||||
.init = tm_fcs_init,
|
||||
.close = tm_fcs_close,
|
||||
.read = tm_fcs_read,
|
||||
.write = tm_fcs_write,
|
||||
.read_axis = tm_fcs_read_axis,
|
||||
.a0_over = tm_fcs_a0_over,
|
||||
.axis_count = 2,
|
||||
.button_count = 4,
|
||||
.pov_count = 1,
|
||||
.max_joysticks = 1,
|
||||
.axis_names = { "X axis", "Y axis" },
|
||||
.button_names = { "Button 1", "Button 2", "Button 3", "Button 4" },
|
||||
.pov_names = { "POV" }
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user