Merge branch 'master' into master

This commit is contained in:
Lili Kurek
2025-07-30 09:45:24 +02:00
committed by GitHub
109 changed files with 24308 additions and 19684 deletions

View File

@@ -1489,9 +1489,6 @@ pc_reset_hard_init(void)
fdd_reset();
/* Reset the CD-ROM Controller module. */
cdrom_interface_reset();
/* Reset and reconfigure the SCSI layer. */
scsi_card_init();
@@ -1499,6 +1496,9 @@ pc_reset_hard_init(void)
cdrom_hard_reset();
/* Reset the CD-ROM Controller module. */
cdrom_interface_reset();
mo_hard_reset();
rdisk_hard_reset();

View File

@@ -23,6 +23,7 @@ add_library(cdrom OBJECT
cdrom.c
cdrom_image.c
cdrom_image_viso.c
cdrom_mke.c
)
target_link_libraries(86Box PkgConfig::SNDFILE)

View File

@@ -32,6 +32,7 @@
#ifdef USE_CDROM_MITSUMI
#include <86box/cdrom_mitsumi.h>
#endif
#include <86box/cdrom_mke.h>
#include <86box/log.h>
#include <86box/plat.h>
#include <86box/plat_cdrom_ioctl.h>
@@ -121,8 +122,10 @@ static const struct {
// clang-format off
{ &cdrom_interface_none_device },
#ifdef USE_CDROM_MITSUMI
{ &mitsumi_cdrom_device },
{ &mitsumi_cdrom_device },
#endif
{ &mke_cdrom_noncreative_device },
{ &mke_cdrom_device },
{ NULL }
// clang-format on
};
@@ -1246,6 +1249,26 @@ cdrom_get_type_count(void)
return count;
}
void
cdrom_generate_name_mke(const int type, char *name)
{
char elements[2][512] = { 0 };
memcpy(elements[0], cdrom_drive_types[type].model,
strlen(cdrom_drive_types[type].model) + 1);
char *s = strstr(elements[0], " ");
if (s != NULL)
s[0] = 0x00;
memcpy(elements[1], cdrom_drive_types[type].revision,
strlen(cdrom_drive_types[type].revision) + 1);
s = strstr(elements[1], " ");
if (s != NULL)
s[0] = 0x00;
sprintf(name, "%s%s", elements[0], elements[1]);
}
void
cdrom_get_identify_model(const int type, char *name, const int id)
{
@@ -1684,7 +1707,7 @@ cdrom_audio_track_search(cdrom_t *dev, const uint32_t pos,
dev->seek_pos = MSFtoLBA(ti.m, ti.s, ti.f) - 150;
else {
cdrom_log(dev->log, "Unable to get the starting position for "
"track %08X\n", ismsf & 0xff);
"track %08X\n", pos2 & 0xff);
cdrom_stop(dev);
}
break;
@@ -1802,7 +1825,7 @@ cdrom_audio_play_toshiba(cdrom_t *dev, const uint32_t pos, const int type)
dev->cd_end = MSFtoLBA(ti.m, ti.s, ti.f) - 150;
else {
cdrom_log(dev->log, "Unable to get the starting position for "
"track %08X\n", ismsf & 0xff);
"track %08X\n", pos2 & 0xff);
cdrom_stop(dev);
}
break;
@@ -1835,7 +1858,7 @@ cdrom_audio_scan(cdrom_t *dev, const uint32_t pos)
uint8_t ret = 0;
if (dev->cd_status & CD_STATUS_HAS_AUDIO) {
cdrom_log(dev->log, "Audio Scan: MSF = %06x, type = %02x\n", pos, type);
cdrom_log(dev->log, "Audio Scan: MSF = %06x\n", pos);
if (pos == 0xffffffff) {
cdrom_log(dev->log, "(Type 0) Search from current position\n");

1002
src/cdrom/cdrom_mke.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -840,7 +840,7 @@ recalc_sltptr(scamp_t *dev)
recalc_ems(dev);
}
} else {
for (uint8_t i = 0; i < (sltptr / EMS_PGSIZE); i++)
for (uint32_t i = 0; i < (sltptr / EMS_PGSIZE); i++)
scamp_mem_update_state(dev, i * EMS_PGSIZE, EMS_PGSIZE, 0x00, MEM_FMASK_SLOTBUS);
for (uint8_t i = (sltptr / EMS_PGSIZE); i < 40; i++)

View File

@@ -841,7 +841,7 @@ wd76c10_pf_loc_recalc(wd76c10_t *dev)
uint8_t ems_page;
uint32_t base;
for (uint8_t i = (0x031 + pf_loc); i <= (0x037 + pf_loc); i++) {
for (uint16_t i = (0x031 + pf_loc); i <= (0x037 + pf_loc); i++) {
ems_page = (i - 0x10) & 0xf7;
dev->mem_pages[i] = ems_page;
base = ((uint32_t) i) << 14;

View File

@@ -56,6 +56,7 @@
#include <86box/fdd.h>
#include <86box/fdc_ext.h>
#include <86box/gameport.h>
#include <86box/keyboard.h>
#include <86box/serial_passthrough.h>
#include <86box/machine.h>
#include <86box/mouse.h>
@@ -453,9 +454,6 @@ load_video(void)
if (((gfxcard[0] == VID_INTERNAL) && machine_has_flags(machine, MACHINE_VIDEO_8514A)) ||
video_card_get_flags(gfxcard[0]) == VIDEO_FLAG_TYPE_8514)
ini_section_delete_var(cat, "8514a");
if (((gfxcard[0] == VID_INTERNAL) && machine_has_flags(machine, MACHINE_VIDEO_XGA)) ||
video_card_get_flags(gfxcard[0]) == VIDEO_FLAG_TYPE_XGA)
ini_section_delete_var(cat, "xga");
voodoo_enabled = !!ini_section_get_int(cat, "voodoo", 0);
ibm8514_standalone_enabled = !!ini_section_get_int(cat, "8514a", 0);
@@ -483,6 +481,23 @@ load_input_devices(void)
char temp[512];
char *p;
p = ini_section_get_string(cat, "keyboard_type", NULL);
if (p != NULL)
keyboard_type = keyboard_get_from_internal_name(p);
else if (machine_has_bus(machine, MACHINE_BUS_PS2_PORTS)) {
if (machine_has_flags(machine, MACHINE_KEYBOARD_JIS))
keyboard_type = KEYBOARD_TYPE_PS55;
else
keyboard_type = KEYBOARD_TYPE_PS2;
} else if (machine_has_bus(machine, MACHINE_BUS_ISA16) ||
machine_has_bus(machine, MACHINE_BUS_PCI)) {
if (machine_has_flags(machine, MACHINE_KEYBOARD_JIS))
keyboard_type = KEYBOARD_TYPE_AX;
else
keyboard_type = KEYBOARD_TYPE_AT;
} else
keyboard_type = KEYBOARD_TYPE_PC_XT;
p = ini_section_get_string(cat, "mouse_type", NULL);
if (p != NULL)
mouse_type = mouse_get_from_internal_name(p);
@@ -810,12 +825,16 @@ load_image_file(char *dest, char *p, uint8_t *ui_wp)
prefix = "wp://";
if (path_abs(p)) {
if (strlen(p) > (MAX_IMAGE_PATH_LEN - 1))
if ((strlen(prefix) + strlen(p)) > (MAX_IMAGE_PATH_LEN - 1))
ret = 1;
else
snprintf(dest, MAX_IMAGE_PATH_LEN, "%s%s", prefix, p);
} else
snprintf(dest, MAX_IMAGE_PATH_LEN, "%s%s%s%s", prefix, usr_path, path_get_slash(usr_path), p);
} else {
if ((strlen(prefix) + strlen(usr_path) + strlen(path_get_slash(usr_path)) + strlen(p)) > (MAX_IMAGE_PATH_LEN - 1))
ret = 1;
else
snprintf(dest, MAX_IMAGE_PATH_LEN, "%s%s%s%s", prefix, usr_path, path_get_slash(usr_path), p);
}
path_normalize(dest);
@@ -933,6 +952,7 @@ load_storage_controllers(void)
p = NULL;
}
free_p = 0;
p = ini_section_get_string(cat, "cdrom_interface", NULL);
if (p != NULL)
cdrom_interface_current = cdrom_interface_get_from_internal_name(p);
@@ -1367,11 +1387,17 @@ load_floppy_and_cdrom_drives(void)
ini_section_delete_var(cat, temp);
/* Default values, needed for proper operation of the Settings dialog. */
cdrom[c].ide_channel = cdrom[c].scsi_device_id = c + 2;
cdrom[c].mke_channel = cdrom[c].ide_channel = cdrom[c].scsi_device_id = c & 3;
if (cdrom[c].bus_type == CDROM_BUS_ATAPI) {
if (cdrom[c].bus_type == CDROM_BUS_MKE) {
sprintf(temp, "cdrom_%02i_mke_channel", c + 1);
cdrom[c].mke_channel = !!ini_section_get_int(cat, temp, c & 3);
if (cdrom[c].mke_channel > 3)
cdrom[c].mke_channel = 3;
} else if (cdrom[c].bus_type == CDROM_BUS_ATAPI) {
sprintf(temp, "cdrom_%02i_ide_channel", c + 1);
sprintf(tmp2, "%01u:%01u", (c + 2) >> 1, (c + 2) & 1);
sprintf(tmp2, "%01u:%01u", (c & 3) >> 1, (c & 3) & 1);
p = ini_section_get_string(cat, temp, tmp2);
sscanf(p, "%01u:%01u", &board, &dev);
board &= 3;
@@ -1382,13 +1408,13 @@ load_floppy_and_cdrom_drives(void)
cdrom[c].ide_channel = 7;
} else if (cdrom[c].bus_type == CDROM_BUS_SCSI) {
sprintf(temp, "cdrom_%02i_scsi_location", c + 1);
sprintf(tmp2, "%01u:%02u", SCSI_BUS_MAX, c + 2);
sprintf(tmp2, "%01u:%02u", SCSI_BUS_MAX, c & 3);
p = ini_section_get_string(cat, temp, tmp2);
sscanf(p, "%01u:%02u", &board, &dev);
if (board >= SCSI_BUS_MAX) {
/* Invalid bus - check legacy ID */
sprintf(temp, "cdrom_%02i_scsi_id", c + 1);
cdrom[c].scsi_device_id = ini_section_get_int(cat, temp, c + 2);
cdrom[c].scsi_device_id = ini_section_get_int(cat, temp, c & 3);
if (cdrom[c].scsi_device_id > 15)
cdrom[c].scsi_device_id = 15;
@@ -1399,6 +1425,11 @@ load_floppy_and_cdrom_drives(void)
}
}
if (cdrom[c].bus_type != CDROM_BUS_MKE) {
sprintf(temp, "cdrom_%02i_mke_channel", c + 1);
ini_section_delete_var(cat, temp);
}
if (cdrom[c].bus_type != CDROM_BUS_ATAPI) {
sprintf(temp, "cdrom_%02i_ide_channel", c + 1);
ini_section_delete_var(cat, temp);
@@ -1988,6 +2019,8 @@ config_load(void)
video_fullscreen_scale = 1;
time_sync = TIME_SYNC_ENABLED;
keyboard_type = KEYBOARD_TYPE_PC_XT;
for (int i = 0; i < HDC_MAX; i++)
hdc_current[i] = hdc_get_from_internal_name("none");
@@ -2414,6 +2447,8 @@ save_input_devices(void)
char temp[512];
char tmp2[512];
ini_section_set_string(cat, "keyboard_type", keyboard_get_internal_name(keyboard_type));
ini_section_set_string(cat, "mouse_type", mouse_get_internal_name(mouse_type));
if (!joystick_type) {
@@ -3108,8 +3143,7 @@ save_floppy_and_cdrom_drives(void)
sprintf(temp, "cdrom_%02i_type", c + 1);
char *tn = cdrom_get_internal_name(cdrom_get_type(c));
if ((cdrom[c].bus_type == 0) || (cdrom[c].bus_type == CDROM_BUS_MITSUMI) ||
!strcmp(tn, "86cd"))
if ((cdrom[c].bus_type == 0) || (cdrom[c].bus_type == CDROM_BUS_MITSUMI) || !strcmp(tn, "86cd"))
ini_section_delete_var(cat, temp);
else
ini_section_set_string(cat, temp, tn);
@@ -3128,6 +3162,13 @@ save_floppy_and_cdrom_drives(void)
ini_section_set_string(cat, temp, tmp2);
}
sprintf(temp, "cdrom_%02i_mke_channel", c + 1);
if (cdrom[c].bus_type != CDROM_BUS_MKE)
ini_section_delete_var(cat, temp);
else {
ini_section_set_int(cat, temp, cdrom[c].mke_channel);
}
sprintf(temp, "cdrom_%02i_ide_channel", c + 1);
if (cdrom[c].bus_type != CDROM_BUS_ATAPI)
ini_section_delete_var(cat, temp);

View File

@@ -539,10 +539,9 @@ pfq_write(void)
static uint8_t
pfq_read(void)
{
uint8_t temp, i;
uint8_t temp = pfq[0];
temp = pfq[0];
for (i = 0; i < (pfq_size - 1); i++)
for (int i = 0; i < (pfq_size - 1); i++)
pfq[i] = pfq[i + 1];
pfq_pos--;
cpu_state.pc = (cpu_state.pc + 1) & 0xffff;

View File

@@ -38,6 +38,7 @@ add_library(dev OBJECT
isapnp.c
kbc_at.c
kbc_at_dev.c
kbc_xt.c
keyboard.c
keyboard_at.c
keyboard_xt.c

View File

@@ -2668,7 +2668,15 @@ kbc_at_init(const device_t *info)
dev->ports[1] = kbc_at_ports[1];
/* The actual keyboard. */
device_add(&keyboard_at_generic_device);
if (keyboard_type == KEYBOARD_TYPE_INTERNAL) {
if (machine_has_flags(machine, MACHINE_KEYBOARD_JIS))
device_add(((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? &keyboard_ps55_device :
&keyboard_ax_device);
else
device_add_params(&keyboard_at_generic_device, (void *) (uintptr_t)
(((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? FLAG_PS2_KBD : 0x00));
} else
keyboard_add_device();
fast_reset = 0x00;
@@ -2677,9 +2685,9 @@ kbc_at_init(const device_t *info)
return dev;
}
const device_t keyboard_at_device = {
.name = "PC/AT Keyboard",
.internal_name = "keyboard_at",
const device_t kbc_at_device = {
.name = "PC/AT Keyboard Controller",
.internal_name = "kbc_at",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_GENERIC,
.init = kbc_at_init,
@@ -2691,9 +2699,9 @@ const device_t keyboard_at_device = {
.config = NULL
};
const device_t keyboard_at_siemens_device = {
.name = "PC/AT Keyboard",
.internal_name = "keyboard_at",
const device_t kbc_at_siemens_device = {
.name = "PC/AT Keyboard Controller",
.internal_name = "kbc_at",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_SIEMENS,
.init = kbc_at_init,
@@ -2705,9 +2713,9 @@ const device_t keyboard_at_siemens_device = {
.config = NULL
};
const device_t keyboard_at_ami_device = {
.name = "PC/AT Keyboard (AMI)",
.internal_name = "keyboard_at_ami",
const device_t kbc_at_ami_device = {
.name = "PC/AT Keyboard Controller (AMI)",
.internal_name = "kbc_at_ami",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_AMI,
.init = kbc_at_init,
@@ -2719,9 +2727,9 @@ const device_t keyboard_at_ami_device = {
.config = NULL
};
const device_t keyboard_at_tg_ami_device = {
.name = "PC/AT Keyboard (TriGem AMI)",
.internal_name = "keyboard_at_tg_ami",
const device_t kbc_at_tg_ami_device = {
.name = "PC/AT Keyboard Controller (TriGem AMI)",
.internal_name = "kbc_at_tg_ami",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_TRIGEM_AMI,
.init = kbc_at_init,
@@ -2733,9 +2741,9 @@ const device_t keyboard_at_tg_ami_device = {
.config = NULL
};
const device_t keyboard_at_toshiba_device = {
.name = "PC/AT Keyboard (Toshiba)",
.internal_name = "keyboard_at_toshiba",
const device_t kbc_at_toshiba_device = {
.name = "PC/AT Keyboard Controller (Toshiba)",
.internal_name = "kbc_at_toshiba",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_TOSHIBA,
.init = kbc_at_init,
@@ -2747,9 +2755,9 @@ const device_t keyboard_at_toshiba_device = {
.config = NULL
};
const device_t keyboard_at_olivetti_device = {
.name = "PC/AT Keyboard (Olivetti)",
.internal_name = "keyboard_at_olivetti",
const device_t kbc_at_olivetti_device = {
.name = "PC/AT Keyboard Controller (Olivetti)",
.internal_name = "kbc_at_olivetti",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_OLIVETTI,
.init = kbc_at_init,
@@ -2761,9 +2769,9 @@ const device_t keyboard_at_olivetti_device = {
.config = NULL
};
const device_t keyboard_at_ncr_device = {
.name = "PC/AT Keyboard (NCR)",
.internal_name = "keyboard_at_ncr",
const device_t kbc_at_ncr_device = {
.name = "PC/AT Keyboard Controller (NCR)",
.internal_name = "kbc_at_ncr",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_NCR,
.init = kbc_at_init,
@@ -2775,9 +2783,9 @@ const device_t keyboard_at_ncr_device = {
.config = NULL
};
const device_t keyboard_at_compaq_device = {
.name = "PC/AT Keyboard (Compaq)",
.internal_name = "keyboard_at_compaq",
const device_t kbc_at_compaq_device = {
.name = "PC/AT Keyboard Controller (Compaq)",
.internal_name = "kbc_at_compaq",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_COMPAQ,
.init = kbc_at_init,
@@ -2789,9 +2797,9 @@ const device_t keyboard_at_compaq_device = {
.config = NULL
};
const device_t keyboard_at_phoenix_device = {
.name = "PC/AT Keyboard (Phoenix)",
.internal_name = "keyboard_at_phoenix",
const device_t kbc_at_phoenix_device = {
.name = "PC/AT Keyboard Controller (Phoenix)",
.internal_name = "kbc_at_phoenix",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_PHOENIX,
.init = kbc_at_init,
@@ -2803,9 +2811,9 @@ const device_t keyboard_at_phoenix_device = {
.config = NULL
};
const device_t keyboard_ps2_device = {
.name = "PS/2 Keyboard",
.internal_name = "keyboard_ps2",
const device_t kbc_ps2_device = {
.name = "PS/2 Keyboard Controller",
.internal_name = "kbc_ps2",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC,
.init = kbc_at_init,
@@ -2817,9 +2825,9 @@ const device_t keyboard_ps2_device = {
.config = NULL
};
const device_t keyboard_ps2_ps1_device = {
.name = "PS/2 Keyboard (IBM PS/1)",
.internal_name = "keyboard_ps2_ps1",
const device_t kbc_ps2_ps1_device = {
.name = "PS/2 Keyboard Controller (IBM PS/1)",
.internal_name = "kbc_ps2_ps1",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_IBM_PS1,
.init = kbc_at_init,
@@ -2831,9 +2839,9 @@ const device_t keyboard_ps2_ps1_device = {
.config = NULL
};
const device_t keyboard_ps2_ps1_pci_device = {
.name = "PS/2 Keyboard (IBM PS/1)",
.internal_name = "keyboard_ps2_ps1_pci",
const device_t kbc_ps2_ps1_pci_device = {
.name = "PS/2 Keyboard Controller (IBM PS/1)",
.internal_name = "kbc_ps2_ps1_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_IBM_PS1,
.init = kbc_at_init,
@@ -2845,9 +2853,9 @@ const device_t keyboard_ps2_ps1_pci_device = {
.config = NULL
};
const device_t keyboard_ps2_xi8088_device = {
.name = "PS/2 Keyboard (Xi8088)",
.internal_name = "keyboard_ps2_xi8088",
const device_t kbc_ps2_xi8088_device = {
.name = "PS/2 Keyboard Controller (Xi8088)",
.internal_name = "kbc_ps2_xi8088",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC,
.init = kbc_at_init,
@@ -2859,9 +2867,9 @@ const device_t keyboard_ps2_xi8088_device = {
.config = NULL
};
const device_t keyboard_ps2_ami_device = {
.name = "PS/2 Keyboard (AMI)",
.internal_name = "keyboard_ps2_ami",
const device_t kbc_ps2_ami_device = {
.name = "PS/2 Keyboard Controller (AMI)",
.internal_name = "kbc_ps2_ami",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_AMI,
.init = kbc_at_init,
@@ -2873,9 +2881,9 @@ const device_t keyboard_ps2_ami_device = {
.config = NULL
};
const device_t keyboard_ps2_compaq_device = {
.name = "PS/2 Keyboard (Compaq)",
.internal_name = "keyboard_at_compaq",
const device_t kbc_ps2_compaq_device = {
.name = "PS/2 Keyboard Controller (Compaq)",
.internal_name = "kbc_at_compaq",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_COMPAQ,
.init = kbc_at_init,
@@ -2887,9 +2895,9 @@ const device_t keyboard_ps2_compaq_device = {
.config = NULL
};
const device_t keyboard_ps2_holtek_device = {
.name = "PS/2 Keyboard (Holtek)",
.internal_name = "keyboard_ps2_holtek",
const device_t kbc_ps2_holtek_device = {
.name = "PS/2 Keyboard Controller (Holtek)",
.internal_name = "kbc_ps2_holtek",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_AMI | KBC_FLAG_IS_ASIC,
.init = kbc_at_init,
@@ -2901,9 +2909,9 @@ const device_t keyboard_ps2_holtek_device = {
.config = NULL
};
const device_t keyboard_ps2_phoenix_device = {
.name = "PS/2 Keyboard (Phoenix)",
.internal_name = "keyboard_ps2_phoenix",
const device_t kbc_ps2_phoenix_device = {
.name = "PS/2 Keyboard Controller (Phoenix)",
.internal_name = "kbc_ps2_phoenix",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_PHOENIX,
.init = kbc_at_init,
@@ -2915,9 +2923,9 @@ const device_t keyboard_ps2_phoenix_device = {
.config = NULL
};
const device_t keyboard_ps2_tg_ami_device = {
.name = "PS/2 Keyboard (TriGem AMI)",
.internal_name = "keyboard_ps2_tg_ami",
const device_t kbc_ps2_tg_ami_device = {
.name = "PS/2 Keyboard Controller (TriGem AMI)",
.internal_name = "kbc_ps2_tg_ami",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_TRIGEM_AMI,
.init = kbc_at_init,
@@ -2929,9 +2937,9 @@ const device_t keyboard_ps2_tg_ami_device = {
.config = NULL
};
const device_t keyboard_ps2_mca_1_device = {
.name = "PS/2 Keyboard (IBM PS/2 MCA Type 1)",
.internal_name = "keyboard_ps2_mca_1",
const device_t kbc_ps2_mca_1_device = {
.name = "PS/2 Keyboard Controller (IBM PS/2 MCA Type 1)",
.internal_name = "kbc_ps2_mca_1",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_IBM,
.init = kbc_at_init,
@@ -2943,9 +2951,9 @@ const device_t keyboard_ps2_mca_1_device = {
.config = NULL
};
const device_t keyboard_ps2_mca_2_device = {
.name = "PS/2 Keyboard (IBM PS/2 MCA Type 2)",
.internal_name = "keyboard_ps2_mca_2",
const device_t kbc_ps2_mca_2_device = {
.name = "PS/2 Keyboard Controller (IBM PS/2 MCA Type 2)",
.internal_name = "kbc_ps2_mca_2",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_2 | KBC_VEN_IBM,
.init = kbc_at_init,
@@ -2957,9 +2965,9 @@ const device_t keyboard_ps2_mca_2_device = {
.config = NULL
};
const device_t keyboard_ps2_quadtel_device = {
.name = "PS/2 Keyboard (Quadtel/MegaPC)",
.internal_name = "keyboard_ps2_quadtel",
const device_t kbc_ps2_quadtel_device = {
.name = "PS/2 Keyboard Controller (Quadtel/MegaPC)",
.internal_name = "kbc_ps2_quadtel",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_QUADTEL,
.init = kbc_at_init,
@@ -2971,9 +2979,9 @@ const device_t keyboard_ps2_quadtel_device = {
.config = NULL
};
const device_t keyboard_ps2_pci_device = {
.name = "PS/2 Keyboard",
.internal_name = "keyboard_ps2_pci",
const device_t kbc_ps2_pci_device = {
.name = "PS/2 Keyboard Controller (PCI)",
.internal_name = "kbc_ps2_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC,
.init = kbc_at_init,
@@ -2985,9 +2993,9 @@ const device_t keyboard_ps2_pci_device = {
.config = NULL
};
const device_t keyboard_ps2_ami_pci_device = {
.name = "PS/2 Keyboard (AMI)",
.internal_name = "keyboard_ps2_ami_pci",
const device_t kbc_ps2_ami_pci_device = {
.name = "PS/2 Keyboard Controller (PCI) (AMI)",
.internal_name = "kbc_ps2_ami_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_AMI,
.init = kbc_at_init,
@@ -2999,9 +3007,9 @@ const device_t keyboard_ps2_ami_pci_device = {
.config = NULL
};
const device_t keyboard_ps2_ali_pci_device = {
.name = "PS/2 Keyboard (ALi M5123/M1543C)",
.internal_name = "keyboard_ps2_ali_pci",
const device_t kbc_ps2_ali_pci_device = {
.name = "PS/2 Keyboard Controller (PCI) (ALi M5123/M1543C)",
.internal_name = "kbc_ps2_ali_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_ALI,
.init = kbc_at_init,
@@ -3013,9 +3021,9 @@ const device_t keyboard_ps2_ali_pci_device = {
.config = NULL
};
const device_t keyboard_ps2_intel_ami_pci_device = {
.name = "PS/2 Keyboard (AMI)",
.internal_name = "keyboard_ps2_intel_ami_pci",
const device_t kbc_ps2_intel_ami_pci_device = {
.name = "PS/2 Keyboard Controller (PCI) (AMI)",
.internal_name = "kbc_ps2_intel_ami_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_GREEN | KBC_VEN_AMI,
.init = kbc_at_init,
@@ -3027,9 +3035,9 @@ const device_t keyboard_ps2_intel_ami_pci_device = {
.config = NULL
};
const device_t keyboard_ps2_tg_ami_pci_device = {
.name = "PS/2 Keyboard (TriGem AMI)",
.internal_name = "keyboard_ps2_tg_ami_pci",
const device_t kbc_ps2_tg_ami_pci_device = {
.name = "PS/2 Keyboard Controller (PCI) (TriGem AMI)",
.internal_name = "kbc_ps2_tg_ami_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_TRIGEM_AMI,
.init = kbc_at_init,
@@ -3041,9 +3049,9 @@ const device_t keyboard_ps2_tg_ami_pci_device = {
.config = NULL
};
const device_t keyboard_ps2_acer_pci_device = {
.name = "PS/2 Keyboard (Acer 90M002A)",
.internal_name = "keyboard_ps2_acer_pci",
const device_t kbc_ps2_acer_pci_device = {
.name = "PS/2 Keyboard Controller (PCI) (Acer 90M002A)",
.internal_name = "kbc_ps2_acer_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_ACER,
.init = kbc_at_init,
@@ -3055,9 +3063,9 @@ const device_t keyboard_ps2_acer_pci_device = {
.config = NULL
};
const device_t keyboard_ps2_phoenix_pci_device = {
.name = "PS/2 Keyboard (Phoenix)",
.internal_name = "keyboard_ps2_phoenix_pci",
const device_t kbc_ps2_phoenix_pci_device = {
.name = "PS/2 Keyboard Controller (PCI) (Phoenix)",
.internal_name = "kbc_ps2_phoenix_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_PHOENIX,
.init = kbc_at_init,

903
src/device/kbc_xt.c Normal file
View File

@@ -0,0 +1,903 @@
/*
* 86Box A hypervisor and IBM PC system emulator that specializes in
* running old operating systems and software designed for IBM
* PC systems and compatibles from 1981 through fairly recent
* system designs based on the PCI bus.
*
* This file is part of the 86Box distribution.
*
* Implementation of the XT-style keyboard.
*
*
*
* Authors: Sarah Walker, <https://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
* EngiNerd, <webmaster.crrc@yahoo.it>
*
* Copyright 2008-2019 Sarah Walker.
* Copyright 2016-2019 Miran Grca.
* Copyright 2017-2019 Fred N. van kempen.
* Copyright 2020 EngiNerd.
*/
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#define HAVE_STDARG_H
#include <wchar.h>
#include <86box/86box.h>
#include <86box/device.h>
#include "cpu.h"
#include <86box/timer.h>
#include <86box/fdd.h>
#include <86box/machine.h>
#include <86box/m_xt_t1000.h>
#include <86box/cassette.h>
#include <86box/io.h>
#include <86box/pic.h>
#include <86box/pit.h>
#include <86box/ppi.h>
#include <86box/mem.h>
#include <86box/rom.h>
#include <86box/sound.h>
#include <86box/snd_speaker.h>
#include <86box/video.h>
#include <86box/keyboard.h>
#define STAT_PARITY 0x80
#define STAT_RTIMEOUT 0x40
#define STAT_TTIMEOUT 0x20
#define STAT_LOCK 0x10
#define STAT_CD 0x08
#define STAT_SYSFLAG 0x04
#define STAT_IFULL 0x02
#define STAT_OFULL 0x01
/* Keyboard Types */
enum {
KBD_TYPE_PC81 = 0,
KBD_TYPE_PC82,
KBD_TYPE_XT82,
KBD_TYPE_XT86,
KBD_TYPE_COMPAQ,
KBD_TYPE_TANDY,
KBD_TYPE_TOSHIBA,
KBD_TYPE_VTECH,
KBD_TYPE_OLIVETTI,
KBD_TYPE_ZENITH,
KBD_TYPE_PRAVETZ,
KBD_TYPE_HYUNDAI,
KBD_TYPE_FE2010,
KBD_TYPE_XTCLONE
};
typedef struct xtkbd_t {
int want_irq;
int blocked;
int tandy;
uint8_t pa;
uint8_t pb;
uint8_t pd;
uint8_t cfg;
uint8_t clock;
uint8_t key_waiting;
uint8_t type;
uint8_t pravetz_flags;
uint8_t cpu_speed;
pc_timer_t send_delay_timer;
} xtkbd_t;
static uint8_t key_queue[16];
static int key_queue_start = 0;
static int key_queue_end = 0;
static int is_tandy = 0;
static int is_t1x00 = 0;
static int is_amstrad = 0;
#ifdef ENABLE_KEYBOARD_XT_LOG
int keyboard_xt_do_log = ENABLE_KEYBOARD_XT_LOG;
static void
kbd_log(const char *fmt, ...)
{
va_list ap;
if (keyboard_xt_do_log) {
va_start(ap, fmt);
pclog_ex(fmt, ap);
va_end(ap);
}
}
#else
# define kbd_log(fmt, ...)
#endif
static uint8_t
get_fdd_switch_settings(void)
{
uint8_t fdd_count = 0;
for (uint8_t i = 0; i < FDD_NUM; i++) {
if (fdd_get_flags(i))
fdd_count++;
}
if (!fdd_count)
return 0x00;
else
return ((fdd_count - 1) << 6) | 0x01;
}
static uint8_t
get_videomode_switch_settings(void)
{
if (video_is_mda())
return 0x30;
else if (video_is_cga())
return 0x20; /* 0x10 would be 40x25 */
else
return 0x00;
}
static void
kbd_poll(void *priv)
{
xtkbd_t *kbd = (xtkbd_t *) priv;
timer_advance_u64(&kbd->send_delay_timer, 1000 * TIMER_USEC);
if (!(kbd->pb & 0x40) && (kbd->type != KBD_TYPE_TANDY))
return;
if (kbd->want_irq) {
kbd->want_irq = 0;
kbd->pa = kbd->key_waiting;
kbd->blocked = 1;
picint(2);
#ifdef ENABLE_KEYBOARD_XT_LOG
kbd_log("XTkbd: kbd_poll(): keyboard_xt : take IRQ\n");
#endif
}
if ((key_queue_start != key_queue_end) && !kbd->blocked) {
kbd->key_waiting = key_queue[key_queue_start];
kbd_log("XTkbd: reading %02X from the key queue at %i\n",
kbd->key_waiting, key_queue_start);
key_queue_start = (key_queue_start + 1) & 0x0f;
kbd->want_irq = 1;
}
}
static void
kbd_adddata(uint16_t val)
{
/* Test for T1000 'Fn' key (Right Alt / Right Ctrl) */
if (is_t1x00) {
if (keyboard_recv(0x138) || keyboard_recv(0x11d)) { /* 'Fn' pressed */
t1000_syskey(0x00, 0x04, 0x00); /* Set 'Fn' indicator */
switch (val) {
case 0x45: /* Num Lock => toggle numpad */
t1000_syskey(0x00, 0x00, 0x10);
break;
case 0x47: /* Home => internal display */
t1000_syskey(0x40, 0x00, 0x00);
break;
case 0x49: /* PgDn => turbo on */
t1000_syskey(0x80, 0x00, 0x00);
break;
case 0x4D: /* Right => toggle LCD font */
t1000_syskey(0x00, 0x00, 0x20);
break;
case 0x4F: /* End => external display */
t1000_syskey(0x00, 0x40, 0x00);
break;
case 0x51: /* PgDn => turbo off */
t1000_syskey(0x00, 0x80, 0x00);
break;
case 0x54: /* SysRQ => toggle window */
t1000_syskey(0x00, 0x00, 0x08);
break;
default:
break;
}
} else
t1000_syskey(0x04, 0x00, 0x00); /* Reset 'Fn' indicator */
}
key_queue[key_queue_end] = val;
kbd_log("XTkbd: %02X added to key queue at %i\n",
val, key_queue_end);
key_queue_end = (key_queue_end + 1) & 0x0f;
}
void
kbd_adddata_process(uint16_t val, void (*adddata)(uint16_t val))
{
uint8_t num_lock = 0;
uint8_t shift_states = 0;
if (!adddata)
return;
keyboard_get_states(NULL, &num_lock, NULL, NULL);
shift_states = keyboard_get_shift() & STATE_LSHIFT;
if (is_amstrad)
num_lock = !num_lock;
/* If NumLock is on, invert the left shift state so we can always check for
the the same way flag being set (and with NumLock on that then means it
is actually *NOT* set). */
if (num_lock)
shift_states ^= STATE_LSHIFT;
switch (val) {
case FAKE_LSHIFT_ON:
/* If NumLock is on, fake shifts are sent when shift is *NOT* presed,
if NumLock is off, fake shifts are sent when shift is pressed. */
if (shift_states) {
/* Send fake shift. */
adddata(num_lock ? 0x2a : 0xaa);
}
break;
case FAKE_LSHIFT_OFF:
if (shift_states) {
/* Send fake shift. */
adddata(num_lock ? 0xaa : 0x2a);
}
break;
default:
adddata(val);
break;
}
}
static void
kbd_adddata_ex(uint16_t val)
{
kbd_adddata_process(val, kbd_adddata);
}
static void
kbd_write(uint16_t port, uint8_t val, void *priv)
{
xtkbd_t *kbd = (xtkbd_t *) priv;
uint8_t bit;
uint8_t set;
uint8_t new_clock;
switch (port) {
case 0x61: /* Keyboard Control Register (aka Port B) */
if (!(val & 0x80) || (kbd->type == KBD_TYPE_HYUNDAI)) {
new_clock = !!(val & 0x40);
if (!kbd->clock && new_clock) {
key_queue_start = key_queue_end = 0;
kbd->want_irq = 0;
kbd->blocked = 0;
kbd_adddata(0xaa);
}
}
kbd->pb = val;
if (!(kbd->pb & 0x80) || (kbd->type == KBD_TYPE_HYUNDAI))
kbd->clock = !!(kbd->pb & 0x40);
ppi.pb = val;
timer_process();
if (((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ)) && (cassette != NULL))
pc_cas_set_motor(cassette, (kbd->pb & 0x08) == 0);
speaker_update();
speaker_gated = val & 1;
speaker_enable = val & 2;
if (speaker_enable)
was_speaker_enable = 1;
pit_devs[0].set_gate(pit_devs[0].data, 2, val & 1);
if (val & 0x80) {
kbd->pa = 0;
kbd->blocked = 0;
picintc(2);
}
#ifdef ENABLE_KEYBOARD_XT_LOG
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ))
kbd_log("XTkbd: Cassette motor is %s\n", !(val & 0x08) ? "ON" : "OFF");
#endif
break;
case 0x62: /* Switch Register (aka Port C) */
#ifdef ENABLE_KEYBOARD_XT_LOG
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ))
kbd_log("XTkbd: Cassette IN is %i\n", !!(val & 0x10));
#endif
if (kbd->type == KBD_TYPE_FE2010) {
kbd_log("XTkbd: Switch register in is %02X\n", val);
if (!(kbd->cfg & 0x08))
kbd->pd = (kbd->pd & 0x30) | (val & 0xcf);
}
break;
case 0x63:
if (kbd->type == KBD_TYPE_FE2010) {
kbd_log("XTkbd: Configuration register in is %02X\n", val);
if (!(kbd->cfg & 0x08))
kbd->cfg = val;
}
break;
case 0xc0 ... 0xcf: /* Pravetz Flags */
kbd_log("XTkbd: Port %02X out: %02X\n", port, val);
if (kbd->type == KBD_TYPE_PRAVETZ) {
bit = (port >> 1) & 0x07;
set = (port & 0x01) << bit;
kbd->pravetz_flags = (kbd->pravetz_flags & ~(1 << bit)) | set;
}
break;
case 0x1f0:
kbd_log("XTkbd: Port %04X out: %02X\n", port, val);
if (kbd->type == KBD_TYPE_VTECH) {
kbd->cpu_speed = val;
cpu_dynamic_switch(kbd->cpu_speed >> 7);
}
break;
default:
break;
}
}
static uint8_t
kbd_read(uint16_t port, void *priv)
{
const xtkbd_t *kbd = (xtkbd_t *) priv;
uint8_t ret = 0xff;
switch (port) {
case 0x60: /* Keyboard Data Register (aka Port A) */
if ((kbd->pb & 0x80) && ((kbd->type == KBD_TYPE_PC81) ||
(kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ) ||
(kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
(kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
(kbd->type == KBD_TYPE_ZENITH) || (kbd->type == KBD_TYPE_HYUNDAI) ||
(kbd->type == KBD_TYPE_VTECH))) {
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
(kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_HYUNDAI))
ret = (kbd->pd & ~0x02) | (hasfpu ? 0x02 : 0x00);
else if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
(kbd->type == KBD_TYPE_VTECH))
/* According to Ruud on the PCem forum, this is supposed to
return 0xFF on the XT. */
ret = 0xff;
else if (kbd->type == KBD_TYPE_ZENITH) {
/* Zenith Data Systems Z-151
* SW1 switch settings:
* bits 6-7: floppy drive number
* bits 4-5: video mode
* bit 2-3: base memory size
* bit 1: fpu enable
* bit 0: fdc enable
*/
ret = get_fdd_switch_settings();
ret |= get_videomode_switch_settings();
/* Base memory size should always be 64k */
ret |= 0x0c;
if (hasfpu)
ret |= 0x02;
}
} else
ret = kbd->pa;
break;
case 0x61: /* Keyboard Control Register (aka Port B) */
ret = kbd->pb;
break;
case 0x62: /* Switch Register (aka Port C) */
if (kbd->type == KBD_TYPE_FE2010) {
if (kbd->pb & 0x04) /* PB2 */
ret = (kbd->pd & 0x0d) | (hasfpu ? 0x02 : 0x00);
else
ret = kbd->pd >> 4;
} else if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ)) {
if (kbd->pb & 0x04) /* PB2 */
switch (mem_size + isa_mem_size) {
case 64:
case 48:
case 32:
case 16:
ret = 0x00;
break;
default:
ret = (((mem_size + isa_mem_size) - 64) / 32) & 0x0f;
break;
}
else
ret = (((mem_size + isa_mem_size) - 64) / 32) >> 4;
} else if ((kbd->type == KBD_TYPE_OLIVETTI) ||
(kbd->type == KBD_TYPE_ZENITH)) {
/* Olivetti M19 or Zenith Data Systems Z-151 */
if (kbd->pb & 0x04) /* PB2 */
ret = kbd->pd & 0xbf;
else
ret = kbd->pd >> 4;
} else {
if (kbd->pb & 0x08) /* PB3 */
ret = kbd->pd >> 4;
else
ret = (kbd->pd & 0x0d) | (hasfpu ? 0x02 : 0x00);
}
ret |= (ppispeakon ? 0x20 : 0);
/* This is needed to avoid error 131 (cassette error).
This is serial read: bit 5 = clock, bit 4 = data, cassette header is 256 x 0xff. */
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ)) {
if (cassette == NULL)
ret |= (ppispeakon ? 0x10 : 0);
else
ret |= (pc_cas_get_inp(cassette) ? 0x10 : 0);
}
if (kbd->type == KBD_TYPE_TANDY)
ret |= (tandy1k_eeprom_read() ? 0x10 : 0);
break;
case 0x63: /* Keyboard Configuration Register (aka Port D) */
if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
(kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
(kbd->type == KBD_TYPE_TOSHIBA) || (kbd->type == KBD_TYPE_HYUNDAI) ||
(kbd->type == KBD_TYPE_VTECH))
ret = kbd->pd;
break;
case 0xc0: /* Pravetz Flags */
if (kbd->type == KBD_TYPE_PRAVETZ)
ret = kbd->pravetz_flags;
kbd_log("XTkbd: Port %02X in : %02X\n", port, ret);
break;
case 0x1f0:
if (kbd->type == KBD_TYPE_VTECH)
ret = kbd->cpu_speed;
kbd_log("XTkbd: Port %04X in : %02X\n", port, ret);
break;
default:
break;
}
return ret;
}
static void
kbd_reset(void *priv)
{
xtkbd_t *kbd = (xtkbd_t *) priv;
kbd->want_irq = 0;
kbd->blocked = 0;
kbd->pa = 0x00;
kbd->pb = 0x00;
kbd->pravetz_flags = 0x00;
keyboard_scan = 1;
key_queue_start = 0;
key_queue_end = 0;
}
void
keyboard_set_is_amstrad(int ams)
{
is_amstrad = ams;
}
static void *
kbd_init(const device_t *info)
{
xtkbd_t *kbd;
kbd = (xtkbd_t *) calloc(1, sizeof(xtkbd_t));
io_sethandler(0x0060, 4,
kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
keyboard_send = kbd_adddata_ex;
kbd->type = info->local;
if (kbd->type == KBD_TYPE_VTECH)
kbd->cpu_speed = (!!cpu) << 2;
kbd_reset(kbd);
if (kbd->type == KBD_TYPE_PRAVETZ)
io_sethandler(0x00c0, 16,
kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
if (kbd->type == KBD_TYPE_VTECH)
io_sethandler(0x01f0, 1,
kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
key_queue_start = key_queue_end = 0;
video_reset(gfxcard[0]);
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_XT82) ||
(kbd->type <= KBD_TYPE_XT86) || (kbd->type == KBD_TYPE_XTCLONE) ||
(kbd->type == KBD_TYPE_COMPAQ) || (kbd->type == KBD_TYPE_TOSHIBA) ||
(kbd->type == KBD_TYPE_OLIVETTI) || (kbd->type == KBD_TYPE_HYUNDAI) ||
(kbd->type == KBD_TYPE_VTECH) || (kbd->type == KBD_TYPE_FE2010)) {
/* DIP switch readout: bit set = OFF, clear = ON. */
if (kbd->type == KBD_TYPE_OLIVETTI)
/* Olivetti M19
* Jumpers J1, J2 - monitor type.
* 01 - mono (high-res)
* 10 - color (low-res, disables 640x400x2 mode)
* 00 - autoswitching
*/
kbd->pd |= 0x00;
else
/* Switches 7, 8 - floppy drives. */
kbd->pd = get_fdd_switch_settings();
/* Switches 5, 6 - video card type */
kbd->pd |= get_videomode_switch_settings();
/* Switches 3, 4 - memory size. */
if ((kbd->type == KBD_TYPE_XT86) || (kbd->type == KBD_TYPE_XTCLONE) ||
(kbd->type == KBD_TYPE_HYUNDAI) || (kbd->type == KBD_TYPE_COMPAQ) ||
(kbd->type == KBD_TYPE_TOSHIBA) || (kbd->type == KBD_TYPE_FE2010)) {
switch (mem_size) {
case 256:
kbd->pd |= 0x00;
break;
case 512:
kbd->pd |= 0x04;
break;
case 576:
kbd->pd |= 0x08;
break;
case 640:
default:
kbd->pd |= 0x0c;
break;
}
} else if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_VTECH)) {
switch (mem_size) {
case 64: /* 1x64k */
kbd->pd |= 0x00;
break;
case 128: /* 2x64k */
kbd->pd |= 0x04;
break;
case 192: /* 3x64k */
kbd->pd |= 0x08;
break;
case 256: /* 4x64k */
default:
kbd->pd |= 0x0c;
break;
}
} else if (kbd->type == KBD_TYPE_PC82) {
switch (mem_size) {
#ifdef PC82_192K_3BANK
case 192: /* 3x64k, not supported by stock BIOS due to bugs */
kbd->pd |= 0x08;
break;
#else
case 192: /* 2x64k + 2x32k */
#endif
case 64: /* 4x16k */
case 96: /* 2x32k + 2x16k */
case 128: /* 4x32k */
case 160: /* 2x64k + 2x16k */
case 224: /* 3x64k + 1x32k */
case 256: /* 4x64k */
default:
kbd->pd |= 0x0c;
break;
}
} else { /* really just the PC '81 */
switch (mem_size) {
case 16: /* 1x16k */
kbd->pd |= 0x00;
break;
case 32: /* 2x16k */
kbd->pd |= 0x04;
break;
case 48: /* 3x16k */
kbd->pd |= 0x08;
break;
case 64: /* 4x16k */
default:
kbd->pd |= 0x0c;
break;
}
}
/* Switch 2 - 8087 FPU. */
if (hasfpu)
kbd->pd |= 0x02;
} else if (kbd->type == KBD_TYPE_ZENITH) {
/* Zenith Data Systems Z-151
* SW2 switch settings:
* bit 7: monitor frequency
* bits 5-6: autoboot (00-11 resident monitor, 10 hdd, 01 fdd)
* bits 0-4: installed memory
*/
kbd->pd = 0x20;
switch (mem_size) {
case 128:
kbd->pd |= 0x02;
break;
case 192:
kbd->pd |= 0x04;
break;
case 256:
kbd->pd |= 0x06;
break;
case 320:
kbd->pd |= 0x08;
break;
case 384:
kbd->pd |= 0x0a;
break;
case 448:
kbd->pd |= 0x0c;
break;
case 512:
kbd->pd |= 0x0e;
break;
case 576:
kbd->pd |= 0x10;
break;
case 640:
default:
kbd->pd |= 0x12;
break;
}
}
timer_add(&kbd->send_delay_timer, kbd_poll, kbd, 1);
is_tandy = (kbd->type == KBD_TYPE_TANDY);
is_t1x00 = (kbd->type == KBD_TYPE_TOSHIBA);
if (keyboard_type == KEYBOARD_TYPE_INTERNAL)
keyboard_set_table(scancode_xt);
else
keyboard_add_device();
is_amstrad = 0;
return kbd;
}
static void
kbd_close(void *priv)
{
xtkbd_t *kbd = (xtkbd_t *) priv;
/* Stop the timer. */
timer_disable(&kbd->send_delay_timer);
/* Disable scanning. */
keyboard_scan = 0;
keyboard_send = NULL;
io_removehandler(0x0060, 4,
kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
free(kbd);
}
const device_t kbc_pc_device = {
.name = "IBM PC Keyboard Controller (1981)",
.internal_name = "kbc_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 kbc_pc82_device = {
.name = "IBM PC Keyboard Controller (1982)",
.internal_name = "kbc_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 kbc_pravetz_device = {
.name = "Pravetz Keyboard Controller",
.internal_name = "kbc_pravetz",
.flags = 0,
.local = KBD_TYPE_PRAVETZ,
.init = kbd_init,
.close = kbd_close,
.reset = kbd_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_xt_device = {
.name = "XT (1982) Keyboard Controller",
.internal_name = "kbc_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 kbc_xt86_device = {
.name = "XT (1986) Keyboard Controller",
.internal_name = "kbc_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 kbc_xt_compaq_device = {
.name = "Compaq Portable Keyboard Controller",
.internal_name = "kbc_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 kbc_tandy_device = {
.name = "Tandy 1000 Keyboard Controller",
.internal_name = "kbc_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 kbc_xt_t1x00_device = {
.name = "Toshiba T1x00 Keyboard Controller",
.internal_name = "kbc_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
};
const device_t kbc_xt_lxt3_device = {
.name = "VTech Laser Turbo XT Keyboard Controller",
.internal_name = "kbc_xt_lxt",
.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
};
const device_t kbc_xt_olivetti_device = {
.name = "Olivetti XT Keyboard Controller",
.internal_name = "kbc_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 kbc_xt_zenith_device = {
.name = "Zenith XT Keyboard Controller",
.internal_name = "kbc_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
};
const device_t kbc_xt_hyundai_device = {
.name = "Hyundai XT Keyboard Controller",
.internal_name = "kbc_xt_hyundai",
.flags = 0,
.local = KBD_TYPE_HYUNDAI,
.init = kbd_init,
.close = kbd_close,
.reset = kbd_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_xt_fe2010_device = {
.name = "Faraday FE2010 XT Keyboard Controller",
.internal_name = "kbc_xt_fe2010",
.flags = 0,
.local = KBD_TYPE_FE2010,
.init = kbd_init,
.close = kbd_close,
.reset = kbd_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_xtclone_device = {
.name = "XT (Clone) Keyboard Controller",
.internal_name = "kbc_xtclone",
.flags = 0,
.local = KBD_TYPE_XTCLONE,
.init = kbd_init,
.close = kbd_close,
.reset = kbd_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};

View File

@@ -27,6 +27,7 @@
#define HAVE_STDARG_H
#include <86box/86box.h>
#include <86box/machine.h>
#include <86box/device.h>
#include <86box/keyboard.h>
#include <86box/plat.h>
@@ -36,6 +37,38 @@ uint16_t scancode_map[768] = { 0 };
int keyboard_scan;
typedef struct keyboard_t {
const device_t *device;
} keyboard_t;
int keyboard_type = 0;
static const device_t keyboard_internal_device = {
.name = "Internal",
.internal_name = "internal",
.flags = 0,
.local = KEYBOARD_TYPE_INTERNAL,
.init = NULL,
.close = NULL,
.reset = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
static keyboard_t keyboard_devices[] = {
// clang-format off
{ &keyboard_internal_device },
{ &keyboard_pc_xt_device },
{ &keyboard_at_device },
{ &keyboard_ax_device },
{ &keyboard_ps2_device },
{ &keyboard_ps55_device },
{ NULL }
// clang-format on
};
#ifdef ENABLE_KBC_AT_LOG
int kbc_at_do_log = ENABLE_KBC_AT_LOG;
@@ -516,3 +549,57 @@ convert_scan_code(uint16_t scan_code)
return scan_code;
}
const char *
keyboard_get_name(int keyboard)
{
return (keyboard_devices[keyboard].device->name);
}
const char *
keyboard_get_internal_name(int keyboard)
{
return device_get_internal_name(keyboard_devices[keyboard].device);
}
int
keyboard_get_from_internal_name(char *s)
{
int c = 0;
while (keyboard_devices[c].device != NULL) {
if (!strcmp((char *) keyboard_devices[c].device->internal_name, s))
return c;
c++;
}
return 0;
}
int
keyboard_has_config(int keyboard)
{
if (keyboard_devices[keyboard].device == NULL)
return 0;
return (keyboard_devices[keyboard].device->config ? 1 : 0);
}
const device_t *
keyboard_get_device(int keyboard)
{
return (keyboard_devices[keyboard].device);
}
/* Return number of MOUSE types we know about. */
int
keyboard_get_ndev(void)
{
return ((sizeof(keyboard_devices) / sizeof(keyboard_t)) - 1);
}
void
keyboard_add_device(void)
{
device_add(keyboard_devices[keyboard_type].device);
}

File diff suppressed because it is too large Load Diff

View File

@@ -35,62 +35,8 @@
#include <86box/machine.h>
#include <86box/m_xt_t1000.h>
#include <86box/cassette.h>
#include <86box/io.h>
#include <86box/pic.h>
#include <86box/pit.h>
#include <86box/ppi.h>
#include <86box/mem.h>
#include <86box/rom.h>
#include <86box/sound.h>
#include <86box/snd_speaker.h>
#include <86box/video.h>
#include <86box/keyboard.h>
#define STAT_PARITY 0x80
#define STAT_RTIMEOUT 0x40
#define STAT_TTIMEOUT 0x20
#define STAT_LOCK 0x10
#define STAT_CD 0x08
#define STAT_SYSFLAG 0x04
#define STAT_IFULL 0x02
#define STAT_OFULL 0x01
/* Keyboard Types */
enum {
KBD_TYPE_PC81 = 0,
KBD_TYPE_PC82,
KBD_TYPE_XT82,
KBD_TYPE_XT86,
KBD_TYPE_COMPAQ,
KBD_TYPE_TANDY,
KBD_TYPE_TOSHIBA,
KBD_TYPE_VTECH,
KBD_TYPE_OLIVETTI,
KBD_TYPE_ZENITH,
KBD_TYPE_PRAVETZ,
KBD_TYPE_HYUNDAI,
KBD_TYPE_FE2010,
KBD_TYPE_XTCLONE
};
typedef struct xtkbd_t {
int want_irq;
int blocked;
int tandy;
uint8_t pa;
uint8_t pb;
uint8_t pd;
uint8_t cfg;
uint8_t clock;
uint8_t key_waiting;
uint8_t type;
uint8_t pravetz_flags;
uint8_t cpu_speed;
pc_timer_t send_delay_timer;
} xtkbd_t;
/*XT keyboard has no escape scancodes, and no scancodes beyond 53*/
const scancode scancode_xt[512] = {
// clang-format off
@@ -609,810 +555,66 @@ const scancode scancode_xt[512] = {
// clang-format on
};
static uint8_t key_queue[16];
static int key_queue_start = 0;
static int key_queue_end = 0;
static int is_tandy = 0;
static int is_t1x00 = 0;
static int is_amstrad = 0;
#ifdef ENABLE_KEYBOARD_XT_LOG
int keyboard_xt_do_log = ENABLE_KEYBOARD_XT_LOG;
static void
kbd_log(const char *fmt, ...)
{
va_list ap;
if (keyboard_xt_do_log) {
va_start(ap, fmt);
pclog_ex(fmt, ap);
va_end(ap);
}
}
#else
# define kbd_log(fmt, ...)
#endif
static uint8_t
get_fdd_switch_settings(void)
{
uint8_t fdd_count = 0;
for (uint8_t i = 0; i < FDD_NUM; i++) {
if (fdd_get_flags(i))
fdd_count++;
}
if (!fdd_count)
return 0x00;
else
return ((fdd_count - 1) << 6) | 0x01;
}
static uint8_t
get_videomode_switch_settings(void)
{
if (video_is_mda())
return 0x30;
else if (video_is_cga())
return 0x20; /* 0x10 would be 40x25 */
else
return 0x00;
}
static void
kbd_poll(void *priv)
{
xtkbd_t *kbd = (xtkbd_t *) priv;
timer_advance_u64(&kbd->send_delay_timer, 1000 * TIMER_USEC);
if (!(kbd->pb & 0x40) && (kbd->type != KBD_TYPE_TANDY))
return;
if (kbd->want_irq) {
kbd->want_irq = 0;
kbd->pa = kbd->key_waiting;
kbd->blocked = 1;
picint(2);
#ifdef ENABLE_KEYBOARD_XT_LOG
kbd_log("XTkbd: kbd_poll(): keyboard_xt : take IRQ\n");
#endif
}
if ((key_queue_start != key_queue_end) && !kbd->blocked) {
kbd->key_waiting = key_queue[key_queue_start];
kbd_log("XTkbd: reading %02X from the key queue at %i\n",
kbd->key_waiting, key_queue_start);
key_queue_start = (key_queue_start + 1) & 0x0f;
kbd->want_irq = 1;
}
}
static void
kbd_adddata(uint16_t val)
{
/* Test for T1000 'Fn' key (Right Alt / Right Ctrl) */
if (is_t1x00) {
if (keyboard_recv(0x138) || keyboard_recv(0x11d)) { /* 'Fn' pressed */
t1000_syskey(0x00, 0x04, 0x00); /* Set 'Fn' indicator */
switch (val) {
case 0x45: /* Num Lock => toggle numpad */
t1000_syskey(0x00, 0x00, 0x10);
break;
case 0x47: /* Home => internal display */
t1000_syskey(0x40, 0x00, 0x00);
break;
case 0x49: /* PgDn => turbo on */
t1000_syskey(0x80, 0x00, 0x00);
break;
case 0x4D: /* Right => toggle LCD font */
t1000_syskey(0x00, 0x00, 0x20);
break;
case 0x4F: /* End => external display */
t1000_syskey(0x00, 0x40, 0x00);
break;
case 0x51: /* PgDn => turbo off */
t1000_syskey(0x00, 0x80, 0x00);
break;
case 0x54: /* SysRQ => toggle window */
t1000_syskey(0x00, 0x00, 0x08);
break;
default:
break;
}
} else
t1000_syskey(0x04, 0x00, 0x00); /* Reset 'Fn' indicator */
}
key_queue[key_queue_end] = val;
kbd_log("XTkbd: %02X added to key queue at %i\n",
val, key_queue_end);
key_queue_end = (key_queue_end + 1) & 0x0f;
}
void
kbd_adddata_process(uint16_t val, void (*adddata)(uint16_t val))
{
uint8_t num_lock = 0;
uint8_t shift_states = 0;
if (!adddata)
return;
keyboard_get_states(NULL, &num_lock, NULL, NULL);
shift_states = keyboard_get_shift() & STATE_LSHIFT;
if (is_amstrad)
num_lock = !num_lock;
/* If NumLock is on, invert the left shift state so we can always check for
the the same way flag being set (and with NumLock on that then means it
is actually *NOT* set). */
if (num_lock)
shift_states ^= STATE_LSHIFT;
switch (val) {
case FAKE_LSHIFT_ON:
/* If NumLock is on, fake shifts are sent when shift is *NOT* presed,
if NumLock is off, fake shifts are sent when shift is pressed. */
if (shift_states) {
/* Send fake shift. */
adddata(num_lock ? 0x2a : 0xaa);
}
break;
case FAKE_LSHIFT_OFF:
if (shift_states) {
/* Send fake shift. */
adddata(num_lock ? 0xaa : 0x2a);
}
break;
default:
adddata(val);
break;
}
}
static void
kbd_adddata_ex(uint16_t val)
{
kbd_adddata_process(val, kbd_adddata);
}
static void
kbd_write(uint16_t port, uint8_t val, void *priv)
{
xtkbd_t *kbd = (xtkbd_t *) priv;
uint8_t bit;
uint8_t set;
uint8_t new_clock;
switch (port) {
case 0x61: /* Keyboard Control Register (aka Port B) */
if (!(val & 0x80) || (kbd->type == KBD_TYPE_HYUNDAI)) {
new_clock = !!(val & 0x40);
if (!kbd->clock && new_clock) {
key_queue_start = key_queue_end = 0;
kbd->want_irq = 0;
kbd->blocked = 0;
kbd_adddata(0xaa);
}
}
kbd->pb = val;
if (!(kbd->pb & 0x80) || (kbd->type == KBD_TYPE_HYUNDAI))
kbd->clock = !!(kbd->pb & 0x40);
ppi.pb = val;
timer_process();
if (((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ)) && (cassette != NULL))
pc_cas_set_motor(cassette, (kbd->pb & 0x08) == 0);
speaker_update();
speaker_gated = val & 1;
speaker_enable = val & 2;
if (speaker_enable)
was_speaker_enable = 1;
pit_devs[0].set_gate(pit_devs[0].data, 2, val & 1);
if (val & 0x80) {
kbd->pa = 0;
kbd->blocked = 0;
picintc(2);
}
#ifdef ENABLE_KEYBOARD_XT_LOG
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ))
kbd_log("XTkbd: Cassette motor is %s\n", !(val & 0x08) ? "ON" : "OFF");
#endif
break;
case 0x62: /* Switch Register (aka Port C) */
#ifdef ENABLE_KEYBOARD_XT_LOG
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ))
kbd_log("XTkbd: Cassette IN is %i\n", !!(val & 0x10));
#endif
if (kbd->type == KBD_TYPE_FE2010) {
kbd_log("XTkbd: Switch register in is %02X\n", val);
if (!(kbd->cfg & 0x08))
kbd->pd = (kbd->pd & 0x30) | (val & 0xcf);
}
break;
case 0x63:
if (kbd->type == KBD_TYPE_FE2010) {
kbd_log("XTkbd: Configuration register in is %02X\n", val);
if (!(kbd->cfg & 0x08))
kbd->cfg = val;
}
break;
case 0xc0 ... 0xcf: /* Pravetz Flags */
kbd_log("XTkbd: Port %02X out: %02X\n", port, val);
if (kbd->type == KBD_TYPE_PRAVETZ) {
bit = (port >> 1) & 0x07;
set = (port & 0x01) << bit;
kbd->pravetz_flags = (kbd->pravetz_flags & ~(1 << bit)) | set;
}
break;
case 0x1f0:
kbd_log("XTkbd: Port %04X out: %02X\n", port, val);
if (kbd->type == KBD_TYPE_VTECH) {
kbd->cpu_speed = val;
cpu_dynamic_switch(kbd->cpu_speed >> 7);
}
break;
default:
break;
}
}
static uint8_t
kbd_read(uint16_t port, void *priv)
{
const xtkbd_t *kbd = (xtkbd_t *) priv;
uint8_t ret = 0xff;
switch (port) {
case 0x60: /* Keyboard Data Register (aka Port A) */
if ((kbd->pb & 0x80) && ((kbd->type == KBD_TYPE_PC81) ||
(kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ) ||
(kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
(kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
(kbd->type == KBD_TYPE_ZENITH) || (kbd->type == KBD_TYPE_HYUNDAI) ||
(kbd->type == KBD_TYPE_VTECH))) {
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
(kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_HYUNDAI))
ret = (kbd->pd & ~0x02) | (hasfpu ? 0x02 : 0x00);
else if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
(kbd->type == KBD_TYPE_VTECH))
/* According to Ruud on the PCem forum, this is supposed to
return 0xFF on the XT. */
ret = 0xff;
else if (kbd->type == KBD_TYPE_ZENITH) {
/* Zenith Data Systems Z-151
* SW1 switch settings:
* bits 6-7: floppy drive number
* bits 4-5: video mode
* bit 2-3: base memory size
* bit 1: fpu enable
* bit 0: fdc enable
*/
ret = get_fdd_switch_settings();
ret |= get_videomode_switch_settings();
/* Base memory size should always be 64k */
ret |= 0x0c;
if (hasfpu)
ret |= 0x02;
}
} else
ret = kbd->pa;
break;
case 0x61: /* Keyboard Control Register (aka Port B) */
ret = kbd->pb;
break;
case 0x62: /* Switch Register (aka Port C) */
if (kbd->type == KBD_TYPE_FE2010) {
if (kbd->pb & 0x04) /* PB2 */
ret = (kbd->pd & 0x0d) | (hasfpu ? 0x02 : 0x00);
else
ret = kbd->pd >> 4;
} else if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ)) {
if (kbd->pb & 0x04) /* PB2 */
switch (mem_size + isa_mem_size) {
case 64:
case 48:
case 32:
case 16:
ret = 0x00;
break;
default:
ret = (((mem_size + isa_mem_size) - 64) / 32) & 0x0f;
break;
}
else
ret = (((mem_size + isa_mem_size) - 64) / 32) >> 4;
} else if ((kbd->type == KBD_TYPE_OLIVETTI) ||
(kbd->type == KBD_TYPE_ZENITH)) {
/* Olivetti M19 or Zenith Data Systems Z-151 */
if (kbd->pb & 0x04) /* PB2 */
ret = kbd->pd & 0xbf;
else
ret = kbd->pd >> 4;
} else {
if (kbd->pb & 0x08) /* PB3 */
ret = kbd->pd >> 4;
else
ret = (kbd->pd & 0x0d) | (hasfpu ? 0x02 : 0x00);
}
ret |= (ppispeakon ? 0x20 : 0);
/* This is needed to avoid error 131 (cassette error).
This is serial read: bit 5 = clock, bit 4 = data, cassette header is 256 x 0xff. */
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ)) {
if (cassette == NULL)
ret |= (ppispeakon ? 0x10 : 0);
else
ret |= (pc_cas_get_inp(cassette) ? 0x10 : 0);
}
if (kbd->type == KBD_TYPE_TANDY)
ret |= (tandy1k_eeprom_read() ? 0x10 : 0);
break;
case 0x63: /* Keyboard Configuration Register (aka Port D) */
if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
(kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
(kbd->type == KBD_TYPE_TOSHIBA) || (kbd->type == KBD_TYPE_HYUNDAI) ||
(kbd->type == KBD_TYPE_VTECH))
ret = kbd->pd;
break;
case 0xc0: /* Pravetz Flags */
if (kbd->type == KBD_TYPE_PRAVETZ)
ret = kbd->pravetz_flags;
kbd_log("XTkbd: Port %02X in : %02X\n", port, ret);
break;
case 0x1f0:
if (kbd->type == KBD_TYPE_VTECH)
ret = kbd->cpu_speed;
kbd_log("XTkbd: Port %04X in : %02X\n", port, ret);
break;
default:
break;
}
return ret;
}
static void
kbd_reset(void *priv)
{
xtkbd_t *kbd = (xtkbd_t *) priv;
kbd->want_irq = 0;
kbd->blocked = 0;
kbd->pa = 0x00;
kbd->pb = 0x00;
kbd->pravetz_flags = 0x00;
keyboard_scan = 1;
key_queue_start = 0;
key_queue_end = 0;
}
void
keyboard_set_is_amstrad(int ams)
{
is_amstrad = ams;
}
typedef struct {
int type;
} kbd_t;
static void *
kbd_init(const device_t *info)
{
xtkbd_t *kbd;
kbd_t *dev = (kbd_t *) calloc(1, sizeof(kbd_t));
kbd = (xtkbd_t *) calloc(1, sizeof(xtkbd_t));
dev->type = info->local;
io_sethandler(0x0060, 4,
kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
keyboard_send = kbd_adddata_ex;
kbd->type = info->local;
if (kbd->type == KBD_TYPE_VTECH)
kbd->cpu_speed = (!!cpu) << 2;
kbd_reset(kbd);
if (kbd->type == KBD_TYPE_PRAVETZ)
io_sethandler(0x00c0, 16,
kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
if (kbd->type == KBD_TYPE_VTECH)
io_sethandler(0x01f0, 1,
kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
if (dev->type == KBD_83_KEY)
keyboard_set_table(scancode_xt);
else
keyboard_set_table(scancode_set1);
key_queue_start = key_queue_end = 0;
video_reset(gfxcard[0]);
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_XT82) ||
(kbd->type <= KBD_TYPE_XT86) || (kbd->type == KBD_TYPE_XTCLONE) ||
(kbd->type == KBD_TYPE_COMPAQ) || (kbd->type == KBD_TYPE_TOSHIBA) ||
(kbd->type == KBD_TYPE_OLIVETTI) || (kbd->type == KBD_TYPE_HYUNDAI) ||
(kbd->type == KBD_TYPE_VTECH) || (kbd->type == KBD_TYPE_FE2010)) {
/* DIP switch readout: bit set = OFF, clear = ON. */
if (kbd->type == KBD_TYPE_OLIVETTI)
/* Olivetti M19
* Jumpers J1, J2 - monitor type.
* 01 - mono (high-res)
* 10 - color (low-res, disables 640x400x2 mode)
* 00 - autoswitching
*/
kbd->pd |= 0x00;
else
/* Switches 7, 8 - floppy drives. */
kbd->pd = get_fdd_switch_settings();
/* Switches 5, 6 - video card type */
kbd->pd |= get_videomode_switch_settings();
/* Switches 3, 4 - memory size. */
if ((kbd->type == KBD_TYPE_XT86) || (kbd->type == KBD_TYPE_XTCLONE) ||
(kbd->type == KBD_TYPE_HYUNDAI) || (kbd->type == KBD_TYPE_COMPAQ) ||
(kbd->type == KBD_TYPE_TOSHIBA) || (kbd->type == KBD_TYPE_FE2010)) {
switch (mem_size) {
case 256:
kbd->pd |= 0x00;
break;
case 512:
kbd->pd |= 0x04;
break;
case 576:
kbd->pd |= 0x08;
break;
case 640:
default:
kbd->pd |= 0x0c;
break;
}
} else if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_VTECH)) {
switch (mem_size) {
case 64: /* 1x64k */
kbd->pd |= 0x00;
break;
case 128: /* 2x64k */
kbd->pd |= 0x04;
break;
case 192: /* 3x64k */
kbd->pd |= 0x08;
break;
case 256: /* 4x64k */
default:
kbd->pd |= 0x0c;
break;
}
} else if (kbd->type == KBD_TYPE_PC82) {
switch (mem_size) {
#ifdef PC82_192K_3BANK
case 192: /* 3x64k, not supported by stock BIOS due to bugs */
kbd->pd |= 0x08;
break;
#else
case 192: /* 2x64k + 2x32k */
#endif
case 64: /* 4x16k */
case 96: /* 2x32k + 2x16k */
case 128: /* 4x32k */
case 160: /* 2x64k + 2x16k */
case 224: /* 3x64k + 1x32k */
case 256: /* 4x64k */
default:
kbd->pd |= 0x0c;
break;
}
} else { /* really just the PC '81 */
switch (mem_size) {
case 16: /* 1x16k */
kbd->pd |= 0x00;
break;
case 32: /* 2x16k */
kbd->pd |= 0x04;
break;
case 48: /* 3x16k */
kbd->pd |= 0x08;
break;
case 64: /* 4x16k */
default:
kbd->pd |= 0x0c;
break;
}
}
/* Switch 2 - 8087 FPU. */
if (hasfpu)
kbd->pd |= 0x02;
} else if (kbd->type == KBD_TYPE_ZENITH) {
/* Zenith Data Systems Z-151
* SW2 switch settings:
* bit 7: monitor frequency
* bits 5-6: autoboot (00-11 resident monitor, 10 hdd, 01 fdd)
* bits 0-4: installed memory
*/
kbd->pd = 0x20;
switch (mem_size) {
case 128:
kbd->pd |= 0x02;
break;
case 192:
kbd->pd |= 0x04;
break;
case 256:
kbd->pd |= 0x06;
break;
case 320:
kbd->pd |= 0x08;
break;
case 384:
kbd->pd |= 0x0a;
break;
case 448:
kbd->pd |= 0x0c;
break;
case 512:
kbd->pd |= 0x0e;
break;
case 576:
kbd->pd |= 0x10;
break;
case 640:
default:
kbd->pd |= 0x12;
break;
}
}
timer_add(&kbd->send_delay_timer, kbd_poll, kbd, 1);
keyboard_set_table(scancode_xt);
is_tandy = (kbd->type == KBD_TYPE_TANDY);
is_t1x00 = (kbd->type == KBD_TYPE_TOSHIBA);
is_amstrad = 0;
return kbd;
return dev;
}
static void
kbd_close(void *priv)
{
xtkbd_t *kbd = (xtkbd_t *) priv;
/* Stop the timer. */
timer_disable(&kbd->send_delay_timer);
/* Disable scanning. */
keyboard_scan = 0;
keyboard_send = NULL;
io_removehandler(0x0060, 4,
kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
kbd_t *kbd = (kbd_t *) priv;
free(kbd);
}
const device_t keyboard_pc_device = {
.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
static const device_config_t keyboard_pc_xt_config[] = {
// clang-format off
{
.name = "keys",
.description = "Keys",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = KBD_83_KEY,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
{ .description = "83", .value = KBD_83_KEY },
{ .description = "101 (ANSI)", .value = KBD_101_KEY },
{ .description = "102 (ISO)", .value = KBD_102_KEY }
},
.bios = { { 0 } }
},
{
.name = "", .description = "", .type = CONFIG_END
}
// clang-format on
};
const device_t keyboard_pc82_device = {
.name = "IBM PC Keyboard (1982)",
.internal_name = "keyboard_pc82",
.flags = 0,
.local = KBD_TYPE_PC82,
const device_t keyboard_pc_xt_device = {
.name = "PC/XT Keyboard",
.internal_name = "keyboard_pc_xt",
.flags = DEVICE_XT_KBC,
.local = 0,
.init = kbd_init,
.close = kbd_close,
.reset = kbd_reset,
.reset = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t keyboard_pravetz_device = {
.name = "Pravetz Keyboard",
.internal_name = "keyboard_pravetz",
.flags = 0,
.local = KBD_TYPE_PRAVETZ,
.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 = {
.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 = {
.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 = {
.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 = {
.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 = {
.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
};
const device_t keyboard_xt_lxt3_device = {
.name = "VTech Laser Turbo XT Keyboard",
.internal_name = "keyboard_xt_lxt",
.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
};
const device_t keyboard_xt_olivetti_device = {
.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 = {
.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
};
const device_t keyboard_xt_hyundai_device = {
.name = "Hyundai XT Keyboard",
.internal_name = "keyboard_xt_hyundai",
.flags = 0,
.local = KBD_TYPE_HYUNDAI,
.init = kbd_init,
.close = kbd_close,
.reset = kbd_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t keyboard_xt_fe2010_device = {
.name = "Faraday FE2010 XT Keyboard",
.internal_name = "keyboard_xt_fe2010",
.flags = 0,
.local = KBD_TYPE_FE2010,
.init = kbd_init,
.close = kbd_close,
.reset = kbd_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t keyboard_xtclone_device = {
.name = "XT (Clone) Keyboard",
.internal_name = "keyboard_xtclone",
.flags = 0,
.local = KBD_TYPE_XTCLONE,
.init = kbd_init,
.close = kbd_close,
.reset = kbd_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
.config = keyboard_pc_xt_config
};

View File

@@ -78,6 +78,12 @@ no_cdrom:
if (!strcmp(str, "scsi"))
return HDD_BUS_SCSI;
if (!strcmp(str, "mitsumi"))
return CDROM_BUS_MITSUMI;
if (!strcmp(str, "mke"))
return CDROM_BUS_MKE;
return 0;
}
@@ -89,6 +95,17 @@ hdd_bus_to_string(int bus, UNUSED(int cdrom))
switch (bus) {
default:
if (cdrom) {
switch (bus) {
case CDROM_BUS_MITSUMI:
s = "mitsumi";
break;
case CDROM_BUS_MKE:
s = "mke";
break;
}
break;
}
case HDD_BUS_DISABLED:
break;

View File

@@ -94,13 +94,19 @@ extern "C" {
#endif
enum {
CDROM_BUS_DISABLED = 0,
CDROM_BUS_ATAPI = 5,
CDROM_BUS_SCSI = 6,
CDROM_BUS_MITSUMI = 7,
CDROM_BUS_USB = 8
CDROM_BUS_DISABLED = 0,
CDROM_BUS_PHILIPS = 1,
CDROM_BUS_SONY = 2,
CDROM_BUS_HITACHI = 3,
CDROM_BUS_MKE = 4,
CDROM_BUS_MITSUMI = 5,
CDROM_BUS_LPT = 6,
CDROM_BUS_ATAPI = 8,
CDROM_BUS_SCSI = 9,
CDROM_BUS_USB = 10
};
#define BUS_TYPE_MKE CDROM_BUS_MKE
#define BUS_TYPE_IDE CDROM_BUS_ATAPI
#define BUS_TYPE_SCSI CDROM_BUS_SCSI
#define BUS_TYPE_BOTH -2
@@ -220,6 +226,10 @@ static const struct cdrom_drive_types_s {
{ "TOSHIBA", "CD-ROM XM-3301TA", "0272", "toshiba_3301ta", BUS_TYPE_SCSI, 2, 2, 96, 0, 0, { -1, -1, -1, -1 } }, /* Tray. */
{ "TOSHIBA", "CD-ROM XM-5701TA", "3136", "toshiba_5701a", BUS_TYPE_SCSI, 2, 12, 96, 0, 0, { -1, -1, -1, -1 } }, /* Tray. */
{ "TOSHIBA", "DVD-ROM SD-M1401", "1008", "toshiba_m1401", BUS_TYPE_SCSI, 2, 40, 96, 0, 1, { -1, -1, -1, -1 } }, /* Tray. */
{ "MATSHITA", "CR-562", "0.75", "cr562", BUS_TYPE_MKE , 0, 2, 0, 0, 0, { -1, -1, -1, -1 } },
{ "MATSHITA", "CR-562", "0.80", "cr562_080", BUS_TYPE_MKE , 0, 2, 0, 0, 0, { -1, -1, -1, -1 } },
{ "MATSHITA", "CR-563", "0.75", "cr563", BUS_TYPE_MKE , 0, 2, 0, 0, 0, { -1, -1, -1, -1 } },
{ "MATSHITA", "CR-563", "0.80", "cr563_080", BUS_TYPE_MKE , 0, 2, 0, 0, 0, { -1, -1, -1, -1 } },
{ "", "", "", "", BUS_TYPE_NONE, 0, -1, 0, 0, 0, { -1, -1, -1, -1 } }
};
@@ -287,7 +297,7 @@ typedef struct cdrom {
union {
uint8_t res;
uint8_t res0; /* Reserved for other ID's. */
uint8_t res1;
uint8_t mke_channel;
uint8_t ide_channel;
uint8_t scsi_device_id;
};
@@ -393,6 +403,7 @@ extern int cdrom_get_inquiry_len(const int type);
extern int cdrom_has_dma(const int type);
extern int cdrom_get_transfer_max(const int type, const int mode);
extern int cdrom_get_type_count(void);
extern void cdrom_generate_name_mke(const int type, char *name);
extern void cdrom_get_identify_model(const int type, char *name, const int id);
extern void cdrom_get_name(const int type, char *name);
extern char *cdrom_get_internal_name(const int type);

View File

@@ -0,0 +1,24 @@
/*
* 86Box A hypervisor and IBM PC system emulator that specializes in
* running old operating systems and software designed for IBM
* PC systems and compatibles from 1981 through fairly recent
* system designs based on the PCI bus.
*
* This file is part of the 86Box distribution.
*
* Panasonic/MKE CD-ROM emulation for the ISA bus.
*
* Authors: Miran Grca, <mgrca8@gmail.com>
* Cacodemon345
*
* Copyright 2022-2025 Miran Grca.
* Copyright 2025 Cacodemon345.
*/
#ifndef CDROM_MKE_H
#define CDROM_MKE_H
extern const device_t mke_cdrom_device;
extern const device_t mke_cdrom_noncreative_device;
#endif /*CDROM_MKE_H*/

View File

@@ -67,14 +67,15 @@ enum {
};
#else
enum {
HDD_BUS_DISABLED = 0,
HDD_BUS_MFM = 1,
HDD_BUS_XTA = 2,
HDD_BUS_ESDI = 3,
HDD_BUS_IDE = 4,
HDD_BUS_ATAPI = 5,
HDD_BUS_SCSI = 6,
HDD_BUS_USB = 7
HDD_BUS_DISABLED = 0,
HDD_BUS_MFM = 1,
HDD_BUS_XTA = 2,
HDD_BUS_ESDI = 3,
HDD_BUS_LPT = 6,
HDD_BUS_IDE = 7,
HDD_BUS_ATAPI = 8,
HDD_BUS_SCSI = 9,
HDD_BUS_USB = 10
};
#endif

View File

@@ -22,6 +22,21 @@
#ifndef EMU_KEYBOARD_H
#define EMU_KEYBOARD_H
#define FLAG_AT 0x00 /* dev is AT */
#define FLAG_PS2_KBD 0x10 /* dev is AT or PS/2 */
#define FLAG_AX 0x08 /* dev is AX */
#define FLAG_TYPE_MASK 0x07 /* mask for type */
enum {
KBD_83_KEY = 0,
KBD_84_KEY,
KBD_101_KEY,
KBD_102_KEY,
KBD_JIS,
KBD_KSC,
KBD_ABNT2
};
enum {
DEV_KBD = 0,
DEV_AUX = 1
@@ -38,6 +53,15 @@ enum {
DEV_STATE_MAIN_WANT_EXECUTE_BAT = 7
};
enum {
KEYBOARD_TYPE_INTERNAL = 0,
KEYBOARD_TYPE_PC_XT,
KEYBOARD_TYPE_AT,
KEYBOARD_TYPE_AX,
KEYBOARD_TYPE_PS2,
KEYBOARD_TYPE_PS55
};
/* Used by the AT / PS/2 keyboard controller, common device, keyboard, and mouse. */
typedef struct kbc_at_port_t {
uint8_t wantcmd;
@@ -194,6 +218,8 @@ typedef struct scancode {
extern "C" {
#endif
extern int keyboard_type;
extern uint8_t keyboard_mode;
extern int keyboard_scan;
@@ -216,51 +242,56 @@ extern int mouse_scan;
extern kbc_at_port_t *kbc_at_ports[2];
#ifdef EMU_DEVICE_H
extern const device_t keyboard_pc_device;
extern const device_t keyboard_pc82_device;
extern const device_t keyboard_pravetz_device;
extern const device_t keyboard_xt_device;
extern const device_t keyboard_xt86_device;
extern const device_t keyboard_xt_compaq_device;
extern const device_t keyboard_xt_t1x00_device;
extern const device_t keyboard_tandy_device;
extern const device_t keyboard_xt_lxt3_device;
extern const device_t keyboard_xt_olivetti_device;
extern const device_t keyboard_xt_zenith_device;
extern const device_t keyboard_xt_hyundai_device;
extern const device_t keyboard_xt_fe2010_device;
extern const device_t keyboard_xtclone_device;
extern const device_t keyboard_at_device;
extern const device_t keyboard_at_ami_device;
extern const device_t keyboard_at_compaq_device;
extern const device_t keyboard_at_phoenix_device;
extern const device_t keyboard_at_ncr_device;
extern const device_t keyboard_at_olivetti_device;
extern const device_t keyboard_at_siemens_device;
extern const device_t keyboard_at_tg_ami_device;
extern const device_t keyboard_at_toshiba_device;
extern const device_t keyboard_ps2_device;
extern const device_t keyboard_ps2_ps1_device;
extern const device_t keyboard_ps2_ps1_pci_device;
extern const device_t keyboard_ps2_xi8088_device;
extern const device_t keyboard_ps2_ami_device;
extern const device_t keyboard_ps2_compaq_device;
extern const device_t keyboard_ps2_holtek_device;
extern const device_t keyboard_ps2_mca_1_device;
extern const device_t keyboard_ps2_mca_2_device;
extern const device_t keyboard_ps2_olivetti_device;
extern const device_t keyboard_ps2_phoenix_device;
extern const device_t keyboard_ps2_quadtel_device;
extern const device_t keyboard_ps2_tg_ami_device;
extern const device_t keyboard_ps2_tg_ami_green_device;
extern const device_t keyboard_ps2_pci_device;
extern const device_t keyboard_ps2_ami_pci_device;
extern const device_t keyboard_ps2_intel_ami_pci_device;
extern const device_t keyboard_ps2_acer_pci_device;
extern const device_t keyboard_ps2_ali_pci_device;
extern const device_t keyboard_ps2_phoenix_pci_device;
extern const device_t keyboard_ps2_tg_ami_pci_device;
extern const device_t kbc_pc_device;
extern const device_t kbc_pc82_device;
extern const device_t kbc_pravetz_device;
extern const device_t kbc_xt_device;
extern const device_t kbc_xt86_device;
extern const device_t kbc_xt_compaq_device;
extern const device_t kbc_xt_t1x00_device;
extern const device_t kbc_tandy_device;
extern const device_t kbc_xt_lxt3_device;
extern const device_t kbc_xt_olivetti_device;
extern const device_t kbc_xt_zenith_device;
extern const device_t kbc_xt_hyundai_device;
extern const device_t kbc_xt_fe2010_device;
extern const device_t kbc_xtclone_device;
extern const device_t kbc_at_device;
extern const device_t kbc_at_ami_device;
extern const device_t kbc_at_compaq_device;
extern const device_t kbc_at_phoenix_device;
extern const device_t kbc_at_ncr_device;
extern const device_t kbc_at_olivetti_device;
extern const device_t kbc_at_siemens_device;
extern const device_t kbc_at_tg_ami_device;
extern const device_t kbc_at_toshiba_device;
extern const device_t kbc_ps2_device;
extern const device_t kbc_ps2_ps1_device;
extern const device_t kbc_ps2_ps1_pci_device;
extern const device_t kbc_ps2_xi8088_device;
extern const device_t kbc_ps2_ami_device;
extern const device_t kbc_ps2_compaq_device;
extern const device_t kbc_ps2_holtek_device;
extern const device_t kbc_ps2_mca_1_device;
extern const device_t kbc_ps2_mca_2_device;
extern const device_t kbc_ps2_olivetti_device;
extern const device_t kbc_ps2_phoenix_device;
extern const device_t kbc_ps2_quadtel_device;
extern const device_t kbc_ps2_tg_ami_device;
extern const device_t kbc_ps2_tg_ami_green_device;
extern const device_t kbc_ps2_pci_device;
extern const device_t kbc_ps2_ami_pci_device;
extern const device_t kbc_ps2_intel_ami_pci_device;
extern const device_t kbc_ps2_acer_pci_device;
extern const device_t kbc_ps2_ali_pci_device;
extern const device_t kbc_ps2_phoenix_pci_device;
extern const device_t kbc_ps2_tg_ami_pci_device;
extern const device_t keyboard_pc_xt_device;
extern const device_t keyboard_at_device;
extern const device_t keyboard_ax_device;
extern const device_t keyboard_ps2_device;
extern const device_t keyboard_ps55_device;
extern const device_t keyboard_at_generic_device;
#endif /*EMU_DEVICE_H*/
@@ -303,6 +334,18 @@ extern atkbc_dev_t *kbc_at_dev_init(uint8_t inst);
passed on incorrectly. */
extern uint16_t convert_scan_code(uint16_t scan_code);
extern const char * keyboard_get_name(int mouse);
extern const char * keyboard_get_internal_name(int mouse);
extern int keyboard_get_from_internal_name(char *s);
extern int keyboard_has_config(int mouse);
#ifdef EMU_DEVICE_H
extern const device_t *keyboard_get_device(int mouse);
#endif
extern int keyboard_get_ndev(void);
extern void keyboard_add_device(void);
extern const scancode scancode_set1[512];
#ifdef __cplusplus
}
#endif

View File

@@ -85,23 +85,24 @@
#define MACHINE_SOFTFLOAT_ONLY 0x00000001 /* sys requires SoftFloat FPU */
#define MACHINE_VIDEO 0x00000002 /* sys has int video */
#define MACHINE_VIDEO_8514A 0x00000004 /* sys has int video */
#define MACHINE_VIDEO_XGA 0x00000008 /* sys has int video */
#define MACHINE_VIDEO_ONLY 0x00000010 /* sys has fixed video */
#define MACHINE_MOUSE 0x00000020 /* sys has int mouse */
#define MACHINE_FDC 0x00000040 /* sys has int FDC */
#define MACHINE_LPT_PRI 0x00000080 /* sys has int pri LPT */
#define MACHINE_LPT_SEC 0x00000100 /* sys has int sec LPT */
#define MACHINE_LPT_TER 0x00000200 /* sys has int ter LPT */
#define MACHINE_PS2_KBC 0x00000400 /* sys has a PS/2 keyboard controller */
#define MACHINE_VIDEO_ONLY 0x00000008 /* sys has fixed video */
#define MACHINE_KEYBOARD 0x00000010 /* sys has int keyboard */
#define MACHINE_AX 0x00000020 /* sys adheres to Japanese AX standard */
#define MACHINE_KEYBOARD_JIS 0x00000020 /* sys has int keyboard which is Japanese (AX or PS/55) */
#define MACHINE_MOUSE 0x00000040 /* sys has int mouse */
#define MACHINE_FDC 0x00000080 /* sys has int FDC */
#define MACHINE_LPT_PRI 0x00000100 /* sys has int pri LPT */
#define MACHINE_LPT_SEC 0x00000200 /* sys has int sec LPT */
#define MACHINE_LPT_TER 0x00000400 /* sys has int ter LPT */
#define MACHINE_PS2_KBC 0x00000800 /* sys has a PS/2 keyboard controller */
/* this is separate from having PS/2 ports */
#define MACHINE_UART_PRI 0x00000800 /* sys has int pri UART */
#define MACHINE_UART_SEC 0x00001000 /* sys has int sec UART */
#define MACHINE_UART_TER 0x00002000 /* sys has int ter UART */
#define MACHINE_UART_QUA 0x00004000 /* sys has int qua UART */
#define MACHINE_GAMEPORT 0x00008000 /* sys has int game port */
#define MACHINE_SOUND 0x00010000 /* sys has int sound */
#define MACHINE_NIC 0x00020000 /* sys has int NIC */
#define MACHINE_AX 0x00040000 /* sys adheres to Japanese AX standard */
#define MACHINE_UART_PRI 0x00010800 /* sys has int pri UART */
#define MACHINE_UART_SEC 0x00002000 /* sys has int sec UART */
#define MACHINE_UART_TER 0x00004000 /* sys has int ter UART */
#define MACHINE_UART_QUA 0x00008000 /* sys has int qua UART */
#define MACHINE_GAMEPORT 0x00010000 /* sys has int game port */
#define MACHINE_SOUND 0x00020000 /* sys has int sound */
#define MACHINE_NIC 0x00040000 /* sys has int NIC */
/* Feature flags for advanced devices. */
#define MACHINE_APM 0x00080000 /* sys has APM */
#define MACHINE_ACPI 0x00100000 /* sys has ACPI */
@@ -338,6 +339,7 @@ typedef struct _machine_ {
uint32_t gpio_acpi;
#ifdef EMU_DEVICE_H
const device_t *device;
const device_t *kbd_device;
const device_t *fdc_device;
const device_t *sio_device;
const device_t *vid_device;
@@ -345,6 +347,7 @@ typedef struct _machine_ {
const device_t *net_device;
#else
void *device;
void *kbd_device;
void *fdc_device;
void *sio_device;
void *vid_device;

View File

@@ -84,10 +84,11 @@ static const mo_drive_type_t mo_drive_types[KNOWN_MO_DRIVE_TYPES] = {
};
enum {
MO_BUS_DISABLED = 0,
MO_BUS_ATAPI = 5,
MO_BUS_SCSI = 6,
MO_BUS_USB = 7
MO_BUS_DISABLED = 0,
MO_BUS_LPT = 6,
MO_BUS_ATAPI = 8,
MO_BUS_SCSI = 9,
MO_BUS_USB = 10
};
typedef struct mo_drive_t {

View File

@@ -26,7 +26,7 @@
#endif
#define MOUSE_TYPE_NONE 0 /* no mouse configured */
#define MOUSE_TYPE_INTERNAL 1 /* achine has internal mouse */
#define MOUSE_TYPE_INTERNAL 1 /* machine has internal mouse */
#define MOUSE_TYPE_LOGIBUS 2 /* Logitech/ATI Bus Mouse */
#define MOUSE_TYPE_INPORT 3 /* Microsoft InPort Mouse */
#if 0

View File

@@ -63,10 +63,12 @@ static const rdisk_drive_type_t rdisk_drive_types[KNOWN_RDISK_DRIVE_TYPES] = {
};
enum {
RDISK_BUS_DISABLED = 0,
RDISK_BUS_ATAPI = 5,
RDISK_BUS_SCSI = 6,
RDISK_BUS_USB = 7
RDISK_BUS_DISABLED = 0,
RDISK_BUS_LPT = 6,
RDISK_BUS_IDE = 7,
RDISK_BUS_ATAPI = 8,
RDISK_BUS_SCSI = 9,
RDISK_BUS_USB = 10
};
typedef struct rdisk_drive_t {

View File

@@ -138,7 +138,6 @@ typedef struct svga_t {
int ps_bit_bug;
int ati_4color;
int vblankend;
int panning_blank;
int render_line_offset;
int start_retrace_latch;

View File

@@ -60,6 +60,7 @@ int initialized = 0;
io_t *io[NPORTS];
io_t *io_last[NPORTS];
// #define ENABLE_IO_LOG 1
#ifdef ENABLE_IO_LOG
int io_do_log = ENABLE_IO_LOG;
@@ -396,7 +397,9 @@ inb(uint16_t port)
ret = 0xfe;
#endif
io_log("[%04X:%08X] (%i, %i, %04i) in b(%04X) = %02X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
if (!found && (CS > 0x007c) && (CS < 0xa000)) {
io_log("[%04X:%08X] (%i, %i, %04i) in b(%04X) = %02X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
}
return ret;
}
@@ -453,7 +456,9 @@ outb(uint16_t port, uint8_t val)
#endif
}
io_log("[%04X:%08X] (%i, %i, %04i) outb(%04X, %02X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
if (!found && (CS > 0x007c) && (CS < 0xa000)) {
io_log("[%04X:%08X] (%i, %i, %04i) outb(%04X, %02X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
}
return;
}
@@ -533,7 +538,7 @@ inw(uint16_t port)
if (!found)
cycles -= io_delay;
io_log("[%04X:%08X] (%i, %i, %04i) in w(%04X) = %04X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
// io_log("[%04X:%08X] (%i, %i, %04i) in w(%04X) = %04X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
return ret;
}
@@ -605,7 +610,7 @@ outw(uint16_t port, uint16_t val)
#endif
}
io_log("[%04X:%08X] (%i, %i, %04i) outw(%04X, %04X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
// io_log("[%04X:%08X] (%i, %i, %04i) outw(%04X, %04X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
return;
}
@@ -717,7 +722,7 @@ inl(uint16_t port)
if (!found)
cycles -= io_delay;
io_log("[%04X:%08X] (%i, %i, %04i) in l(%04X) = %08X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
// io_log("[%04X:%08X] (%i, %i, %04i) in l(%04X) = %08X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
return ret;
}
@@ -807,7 +812,7 @@ outl(uint16_t port, uint32_t val)
#endif
}
io_log("[%04X:%08X] (%i, %i, %04i) outl(%04X, %08X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
// io_log("[%04X:%08X] (%i, %i, %04i) outl(%04X, %08X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
return;
}

View File

@@ -95,7 +95,7 @@ machine_at_init(const machine_t *model)
{
machine_at_common_init(model);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
}
static void
@@ -103,7 +103,7 @@ machine_at_ibm_common_init(const machine_t *model)
{
machine_at_common_init_ex(model, 1);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
mem_remap_top(384);
@@ -116,7 +116,7 @@ machine_at_ps2_init(const machine_t *model)
{
machine_at_common_init(model);
device_add(&keyboard_ps2_device);
device_add(&kbc_ps2_device);
}
void
@@ -398,7 +398,7 @@ machine_at_siemens_init(const machine_t *model)
machine_at_common_init_ex(model, 1);
device_add(&keyboard_at_siemens_device);
device_add(&kbc_at_siemens_device);
mem_remap_top(384);

View File

@@ -58,7 +58,7 @@ machine_at_mr286_init(const machine_t *model)
return ret;
machine_at_common_ide_init(model);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -69,7 +69,7 @@ machine_at_mr286_init(const machine_t *model)
static void
machine_at_headland_common_init(const machine_t *model, int type)
{
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if ((type != 2) && (fdc_current[0] == FDC_INTERNAL))
device_add(&fdc_at_device);
@@ -136,7 +136,7 @@ machine_at_quadt286_init(const machine_t *model)
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -159,7 +159,7 @@ machine_at_quadt386sx_init(const machine_t *model)
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -226,7 +226,7 @@ machine_at_pbl300sx_init(const machine_t *model)
machine_at_common_init(model);
device_add(&acc2036_device);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&um82c862f_ide_device);
if (gfxcard[0] == VID_INTERNAL)
@@ -274,7 +274,7 @@ machine_at_neat_ami_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -301,7 +301,7 @@ machine_at_ataripc4_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -318,7 +318,7 @@ machine_at_px286_init(const machine_t *model)
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -338,7 +338,7 @@ machine_at_ctat_common_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_at_phoenix_device);
device_add(&kbc_at_phoenix_device);
}
int
@@ -398,14 +398,14 @@ machine_at_scat_init(const machine_t *model, int is_v4, int is_ami)
if (machines[machine].bus_flags & MACHINE_BUS_PS2) {
if (is_ami)
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
else
device_add(&keyboard_ps2_device);
device_add(&kbc_ps2_device);
} else {
if (is_ami)
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
else
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
}
if (is_v4)
@@ -419,7 +419,7 @@ machine_at_scatsx_init(const machine_t *model)
{
machine_at_common_init(model);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -543,7 +543,7 @@ machine_at_super286c_init(const machine_t *model)
machine_at_common_init(model);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -690,7 +690,7 @@ machine_at_shuttle386sx_init(const machine_t *model)
machine_at_common_init(model);
device_add(&intel_82335_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -714,7 +714,7 @@ machine_at_adi386sx_init(const machine_t *model)
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
device_add(&intel_82335_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -739,7 +739,7 @@ machine_at_wd76c10_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&paradise_wd90c11_megapc_device);
device_add(&keyboard_ps2_quadtel_device);
device_add(&kbc_ps2_quadtel_device);
device_add(&wd76c10_device);
@@ -760,7 +760,7 @@ machine_at_cmdsl386sx16_init(const machine_t *model)
machine_at_common_init(model);
device_add(&keyboard_ps2_device);
device_add(&kbc_ps2_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -788,7 +788,7 @@ machine_at_if386sx_init(const machine_t *model)
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
device_add(&keyboard_at_phoenix_device);
device_add(&kbc_at_phoenix_device);
device_add(&neat_sx_device);
@@ -812,9 +812,9 @@ machine_at_scamp_common_init(const machine_t *model, int is_ps2)
machine_at_common_ide_init(model);
if (is_ps2)
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
else
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -1011,7 +1011,7 @@ machine_at_arb1374_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&w83787f_ide_en_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -1032,7 +1032,7 @@ machine_at_sbc350a_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&ide_isa_device);
device_add(&fdc37c665_ide_pri_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -1056,7 +1056,7 @@ machine_at_flytech386_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&tvga8900d_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -1076,7 +1076,7 @@ machine_at_325ax_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&fdc_at_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -1096,7 +1096,7 @@ machine_at_mr1217_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&fdc_at_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -1116,7 +1116,7 @@ machine_at_pja511m_init(const machine_t *model)
device_add_inst(&fdc37c669_device, 1);
device_add_inst(&fdc37c669_device, 2);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&ali6117d_device);
device_add(&sst_flash_29ee010_device);
@@ -1137,7 +1137,7 @@ machine_at_prox1332_init(const machine_t *model)
machine_at_common_init(model);
device_add(&fdc37c669_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&ali6117d_device);
device_add(&sst_flash_29ee010_device);
@@ -1161,7 +1161,7 @@ machine_at_pc8_init(const machine_t *model)
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_ncr_device);
device_add(&kbc_at_ncr_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -1194,7 +1194,7 @@ machine_at_3302_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
device_add(&keyboard_at_ncr_device);
device_add(&kbc_at_ncr_device);
return ret;
}
@@ -1217,7 +1217,7 @@ machine_at_pc916sx_init(const machine_t *model)
machine_at_common_init(model);
device_add(&keyboard_at_ncr_device);
device_add(&kbc_at_ncr_device);
mem_remap_top(384);
if (fdc_current[0] == FDC_INTERNAL)
@@ -1246,7 +1246,7 @@ machine_at_m290_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_at_olivetti_device);
device_add(&kbc_at_olivetti_device);
return ret;
}

View File

@@ -64,7 +64,7 @@ machine_at_acc386_init(const machine_t *model)
machine_at_common_init(model);
device_add(&acc2168_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -85,7 +85,7 @@ machine_at_asus3863364k_init(const machine_t *model)
machine_at_common_init(model);
device_add(&rabbit_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -106,7 +106,7 @@ machine_at_asus386_init(const machine_t *model)
machine_at_common_init(model);
device_add(&rabbit_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -126,7 +126,7 @@ machine_at_tandy4000_init(const machine_t *model)
return ret;
machine_at_common_init(model);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -147,7 +147,7 @@ machine_at_dtk461_init(const machine_t *model)
machine_at_common_init(model);
device_add(&sl82c461_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -160,7 +160,7 @@ machine_at_sis401_common_init(const machine_t *model)
{
machine_at_common_init(model);
device_add(&sis_85c401_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -211,7 +211,7 @@ machine_at_av4_init(const machine_t *model)
machine_at_common_init(model);
device_add(&sis_85c460_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -235,7 +235,7 @@ machine_at_valuepoint433_init(const machine_t *model) // hangs without the PS/2
if (gfxcard[0] == VID_INTERNAL)
device_add(&et4000w32_onboard_device);
device_add(&keyboard_ps2_device);
device_add(&kbc_ps2_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -261,7 +261,7 @@ machine_at_ecs386_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -284,7 +284,7 @@ machine_at_spc6000a_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -302,7 +302,7 @@ machine_at_ecs386v_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -324,7 +324,7 @@ machine_at_rycleopardlx_init(const machine_t *model)
machine_at_common_init(model);
device_add(&opti283_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -346,7 +346,7 @@ machine_at_486vchd_init(const machine_t *model)
machine_at_common_init(model);
device_add(&via_vt82c49x_device);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -367,7 +367,7 @@ machine_at_cs4031_init(const machine_t *model)
machine_at_common_init(model);
device_add(&cs4031_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -388,7 +388,7 @@ machine_at_pb410a_init(const machine_t *model)
machine_at_ibm_common_ide_init(model);
device_add(&keyboard_ps2_device);
device_add(&kbc_ps2_device);
device_add(&acc3221_device);
device_add(&acc2168_device);
@@ -533,7 +533,7 @@ machine_at_acera1g_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5428_onboard_device);
device_add(&keyboard_ps2_acer_pci_device);
device_add(&kbc_ps2_acer_pci_device);
device_add_params(&pc87310_device, (void *) (PC87310_ALI));
device_add(&ide_ali5213_device);
@@ -555,7 +555,7 @@ machine_at_acerv10_init(const machine_t *model)
machine_at_common_init(model);
device_add(&sis_85c461_device);
device_add(&keyboard_ps2_acer_pci_device);
device_add(&kbc_ps2_acer_pci_device);
device_add(&ide_isa_device);
if (fdc_current[0] == FDC_INTERNAL)
@@ -582,7 +582,7 @@ machine_at_decpclpv_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
device_add(&keyboard_ps2_phoenix_pci_device);
device_add(&kbc_ps2_phoenix_pci_device);
device_add(&ide_isa_2ch_device);
device_add(&fdc37c663_ide_device);
@@ -613,7 +613,7 @@ machine_at_dell466np_init(const machine_t *model)
mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000);
mem_mapping_set_exec(&bios_mapping, rom);
device_add(&keyboard_ps2_phoenix_pci_device);
device_add(&kbc_ps2_phoenix_pci_device);
device_add(&ide_isa_device);
device_add(&fdc37c661_ide_device);
@@ -631,7 +631,7 @@ machine_at_ali1429_common_init(const machine_t *model, int is_green)
else
device_add(&ali1429_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -684,7 +684,7 @@ machine_at_opti495_init(const machine_t *model)
device_add(&opti495slc_device);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -699,7 +699,7 @@ machine_at_opti495_ami_common_init(const machine_t *model)
device_add(&opti495sx_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -757,7 +757,7 @@ machine_at_c747_init(const machine_t *model)
No idea what KBC it actually has but this produces the
desired behavior: command A9 does absolutely nothing.
*/
device_add(&keyboard_at_siemens_device);
device_add(&kbc_at_siemens_device);
device_add(&um82c862f_ide_device);
return ret;
@@ -777,7 +777,7 @@ machine_at_exp4349_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429g_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -795,7 +795,7 @@ machine_at_403tg_common_init(const machine_t *model, int nvr_hack)
device_add(&opti895_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -919,7 +919,7 @@ machine_at_pb450_init(const machine_t *model)
device_add(&opti895_device);
device_add(&opti602_device);
device_add(&opti822_device);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&fdc37c665_ide_device);
device_add(&ide_opti611_vlb_sec_device);
device_add(&intel_flash_bxt_device);
@@ -950,7 +950,7 @@ machine_at_pc330_6573_common_init(const machine_t *model)
device_add(&opti602_device);
device_add(&opti802g_device);
device_add(&opti822_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
device_add(&fdc37c665_ide_device);
device_add(&ide_opti611_vlb_device);
device_add(&intel_flash_bxt_device);
@@ -1003,7 +1003,7 @@ machine_at_mvi486_init(const machine_t *model)
device_add(&opti498_device);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
device_add(&pc87311_ide_device);
return ret;
@@ -1032,7 +1032,7 @@ machine_at_ami471_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -1054,7 +1054,7 @@ machine_at_advantage40xxd_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&um82c863f_ide_device);
device_add(&intel_flash_bxt_device);
@@ -1074,7 +1074,7 @@ machine_at_vli486sv2g_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -1091,7 +1091,7 @@ machine_at_dtk486_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
return ret;
}
@@ -1109,7 +1109,7 @@ machine_at_px471_init(const machine_t *model)
machine_at_sis_85c471_common_init(model);
device_add(&ide_vlb_device);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
return ret;
}
@@ -1126,7 +1126,7 @@ machine_at_win471_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -1151,7 +1151,7 @@ machine_at_pci400ca_init(const machine_t *model)
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
device_add(&sio_device);
device_add(&intel_flash_bxt_ami_device);
@@ -1176,7 +1176,7 @@ machine_at_vi15g_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -1199,7 +1199,7 @@ machine_at_greenb_init(const machine_t *model)
device_add(&contaq_82c597_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -1222,7 +1222,7 @@ machine_at_4gpv5_init(const machine_t *model)
device_add(&contaq_82c596a_device);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
return ret;
}
@@ -1262,7 +1262,7 @@ machine_at_r418_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&fdc37c665_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
return ret;
}
@@ -1288,7 +1288,7 @@ machine_at_m4li_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&fdc37c665_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
return ret;
}
@@ -1314,7 +1314,7 @@ machine_at_ls486e_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&fdc37c665_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
return ret;
}
@@ -1340,7 +1340,7 @@ machine_at_4dps_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&w83787f_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
device_add(&intel_flash_bxt_device);
@@ -1367,7 +1367,7 @@ machine_at_ms4144_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&w83787f_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
device_add(&sst_flash_29ee010_device);
@@ -1396,7 +1396,7 @@ machine_at_acerp3_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&fdc37c665_ide_device);
device_add(&keyboard_ps2_acer_pci_device);
device_add(&kbc_ps2_acer_pci_device);
device_add(&ide_cmd640_pci_legacy_only_device);
if (gfxcard[0] == VID_INTERNAL)
@@ -1427,7 +1427,7 @@ machine_at_486sp3c_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&fdc37c665_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
@@ -1455,7 +1455,7 @@ machine_at_4saw2_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&w83787f_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&intel_flash_bxt_device);
@@ -1485,7 +1485,7 @@ machine_at_alfredo_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&sio_device);
device_add(&fdc37c663_device);
device_add(&intel_flash_bxt_ami_device);
@@ -1514,7 +1514,7 @@ machine_at_ninja_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 1, 2, 1);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&intel_flash_bxt_ami_device);
device_add(&i420ex_device);
@@ -1544,7 +1544,7 @@ machine_at_bat4ip3e_init(const machine_t *model)
pci_register_slot(0x0a, PCI_CARD_NORMAL, 1, 2, 1, 2);
device_add(&phoenix_486_jumper_pci_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&i420ex_device);
device_add(&ide_cmd640_pci_device);
device_add(&fdc37c665_device);
@@ -1571,7 +1571,7 @@ machine_at_486pi_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 1, 2);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&i420ex_device);
@@ -1596,7 +1596,7 @@ machine_at_sb486p_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&i82091aa_device);
device_add(&i420ex_device);
@@ -1625,7 +1625,7 @@ machine_at_486sp3_init(const machine_t *model)
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 05 = Slot 3 */
pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 06 = Slot 4 */
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_at_ami_device); /* Uses the AMIKEY KBC */
device_add(&kbc_at_ami_device); /* Uses the AMIKEY KBC */
device_add(&sio_device);
device_add(&fdc37c663_ide_device);
device_add(&sst_flash_29ee010_device);
@@ -1654,7 +1654,7 @@ machine_at_amis76_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sio_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_ami_device);
@@ -1686,7 +1686,7 @@ machine_at_pci400cb_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 0E = Slot 2 */
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 0D = Slot 3 */
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 0C = Slot 4 */
device_add(&keyboard_ps2_ami_pci_device); /* Assume AMI Megakey 1993 standalone ('P')
device_add(&kbc_ps2_ami_pci_device); /* Assume AMI Megakey 1993 standalone ('P')
because of the Tekram machine below. */
device_add(&ims8848_device);
@@ -1716,7 +1716,7 @@ machine_at_g486ip_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 1 */
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 04 = Slot 2 */
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 05 = Slot 3 */
device_add(&keyboard_ps2_ami_pci_device); /* AMI Megakey 1993 stanalone ('P') */
device_add(&kbc_ps2_ami_pci_device); /* AMI Megakey 1993 stanalone ('P') */
device_add(&ims8848_device);
@@ -1747,7 +1747,7 @@ machine_at_486sp3g_init(const machine_t *model)
pci_register_slot(0x05, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 05 = Slot 2 */
pci_register_slot(0x04, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 04 = Slot 3 */
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_ami_pci_device); /* Uses the AMIKEY KBC */
device_add(&kbc_ps2_ami_pci_device); /* Uses the AMIKEY KBC */
device_add(&sio_zb_device);
device_add(&pc87332_398_ide_device);
device_add(&sst_flash_29ee010_device);
@@ -1825,7 +1825,7 @@ machine_at_sb486pv_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sio_zb_device);
device_add(&ide_rz1000_pci_single_channel_device);
device_add(&i82091aa_26e_device);
@@ -1859,7 +1859,7 @@ machine_at_486ap4_init(const machine_t *model)
pci_register_slot(0x0a, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 0a = Slot 2 */
pci_register_slot(0x0b, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 0b = Slot 3 */
pci_register_slot(0x0c, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 0c = Slot 4 */
device_add(&keyboard_ps2_ami_pci_device); /* Uses the AMIKEY KBC */
device_add(&kbc_ps2_ami_pci_device); /* Uses the AMIKEY KBC */
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -1892,7 +1892,7 @@ machine_at_g486vpa_init(const machine_t *model)
device_add(&via_vt82c49x_pci_ide_device);
device_add(&via_vt82c505_device);
device_add(&pc87332_398_ide_sec_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1921,7 +1921,7 @@ machine_at_486vipio2_init(const machine_t *model)
device_add(&via_vt82c49x_pci_ide_device);
device_add(&via_vt82c505_device);
device_add(&w83787f_ide_sec_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1948,7 +1948,7 @@ machine_at_abpb4_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&w83787f_device);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
#if 0
device_add(&intel_flash_bxt_device);
#endif
@@ -1978,7 +1978,7 @@ machine_at_win486pci_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&prime3b_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -2005,7 +2005,7 @@ machine_at_ms4145_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&w83787f_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -2037,7 +2037,7 @@ machine_at_sbc490_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&fdc37c665_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -2062,7 +2062,7 @@ machine_at_tf486_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&w83977ef_device);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -2085,7 +2085,7 @@ machine_at_arb1476_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&fdc37c669_device);
device_add(&keyboard_ps2_device);
device_add(&kbc_ps2_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -2109,7 +2109,7 @@ machine_at_itoxstar_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x1F, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&w83977f_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_client_device);
device_add(&sst_flash_29ee020_device);
device_add(&w83781d_device); /* fans: Chassis, CPU, unused; temperatures: Chassis, CPU, unused */
@@ -2140,7 +2140,7 @@ machine_at_arb1423c_init(const machine_t *model)
pci_register_slot(0x1E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x1D, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&w83977f_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_consumer2_device);
device_add(&winbond_flash_w29c020_device);
@@ -2167,7 +2167,7 @@ machine_at_arb1479_init(const machine_t *model)
pci_register_slot(0x1E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x1D, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&w83977f_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_consumer2_device);
device_add(&winbond_flash_w29c020_device);
@@ -2191,7 +2191,7 @@ machine_at_iach488_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0C, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&w83977f_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_consumer2_device);
device_add(&sst_flash_29ee020_device);
@@ -2219,7 +2219,7 @@ machine_at_pcm9340_init(const machine_t *model)
pci_register_slot(0x1F, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add_inst(&w83977f_device, 1);
device_add_inst(&w83977f_device, 2);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_elite_device);
device_add(&sst_flash_29ee020_device);
@@ -2247,7 +2247,7 @@ machine_at_pcm5330_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&stpc_serial_device);
device_add(&w83977f_370_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_atlas_device);
device_add(&sst_flash_29ee020_device);
@@ -2280,7 +2280,7 @@ machine_at_ecs486_init(const machine_t *model)
device_add(&ide_cmd640_pci_legacy_only_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -2362,9 +2362,9 @@ machine_at_hot433a_init(const machine_t *model)
device_add(&um8669f_device);
device_add(&winbond_flash_w29c010_device);
if (is_award)
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
else
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
pic_toggle_latch(is_award);
@@ -2395,7 +2395,7 @@ machine_at_84xxuuda_init(const machine_t *model)
device_add(&umc_8886bf_device);
device_add(&um8663bf_device);
device_add(&winbond_flash_w29c010_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -2426,7 +2426,7 @@ machine_at_pl4600c_init(const machine_t *model)
device_add(&umc_8886af_device);
device_add(&um8663af_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5430_onboard_pci_device);
@@ -2465,7 +2465,7 @@ machine_at_atc1415_init(const machine_t *model)
device_add(&umc_hb4_device);
device_add(&umc_8886bf_device);
device_add(&intel_flash_bxt_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2497,7 +2497,7 @@ machine_at_actionpc2600_init(const machine_t *model)
device_add(&umc_8886bf_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
device_add(&keyboard_ps2_tg_ami_device);
device_add(&kbc_ps2_tg_ami_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -2530,7 +2530,7 @@ machine_at_actiontower8400_init(const machine_t *model)
device_add(&fdc37c665_device);
device_add(&ide_cmd640_pci_device);
device_add(&intel_flash_bxt_device); // The ActionPC 2600 has this so I'm gonna assume this does too.
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -2561,7 +2561,7 @@ machine_at_m919_init(const machine_t *model)
device_add(&umc_8886af_device); /* AF is correct - the BIOS does IDE writes to ports 108h and 109h. */
device_add(&um8663bf_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
return ret;
}
@@ -2590,7 +2590,7 @@ machine_at_spc7700plw_init(const machine_t *model)
device_add(&umc_8886af_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -2624,7 +2624,7 @@ machine_at_ms4134_init(const machine_t *model)
device_add(&ali1435_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -2657,7 +2657,7 @@ machine_at_tg486gp_init(const machine_t *model)
device_add(&ali1435_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_ps2_tg_ami_device);
device_add(&kbc_ps2_tg_ami_device);
return ret;
}
@@ -2678,7 +2678,7 @@ machine_at_tg486g_init(const machine_t *model)
device_add(&sis_85c471_device);
device_add(&ide_isa_device);
device_add(&fdc37c651_ide_device);
device_add(&keyboard_ps2_tg_ami_pci_device);
device_add(&kbc_ps2_tg_ami_pci_device);
if (gfxcard[0] != VID_INTERNAL) {
for (uint16_t i = 0; i < 32768; i++)
@@ -2705,7 +2705,7 @@ machine_at_dvent4xx_init(const machine_t *model)
device_add(&sis_85c471_device);
device_add(&ide_cmd640_vlb_pri_device);
device_add(&fdc37c665_ide_device);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -2727,7 +2727,7 @@ machine_at_ecsal486_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429g_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2750,7 +2750,7 @@ machine_at_ap4100aa_init(const machine_t *model)
device_add(&ami_1994_nvr_device);
device_add(&ali1429g_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&ide_vlb_device);
device_add(&um8663bf_device);
@@ -2770,7 +2770,7 @@ machine_at_atc1762_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429g_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2792,7 +2792,7 @@ machine_at_dataexpert386wb_init(const machine_t *model)
machine_at_common_init(model);
device_add(&opti391_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2816,7 +2816,7 @@ machine_at_isa486c_init(const machine_t *model)
device_add(&isa486c_device);
device_add(&port_92_key_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2840,7 +2840,7 @@ machine_at_genoa486_init(const machine_t *model)
device_add(&compaq_genoa_device);
device_add(&port_92_key_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2861,7 +2861,7 @@ machine_at_ga486l_init(const machine_t *model)
machine_at_common_init(model);
device_add(&opti381_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2887,7 +2887,7 @@ machine_at_cobalt_init(const machine_t *model)
device_add(&ide_isa_sec_device);
device_add(&fdc37c665_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -2912,7 +2912,7 @@ machine_at_cougar_init(const machine_t *model)
device_add(&opti499_device);
device_add(&fdc37c665_ide_pri_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);

View File

@@ -133,7 +133,7 @@ machine_at_compaq_init(const machine_t *model, int type)
switch (type) {
case COMPAQ_PORTABLEII:
machine_at_common_init(model);
device_add(&keyboard_at_compaq_device);
device_add(&kbc_at_compaq_device);
break;
case COMPAQ_PORTABLEIII:
@@ -143,7 +143,7 @@ machine_at_compaq_init(const machine_t *model, int type)
device_add(&compaq_plasma_device);
machine_at_common_init(model);
device_add(&keyboard_at_compaq_device);
device_add(&kbc_at_compaq_device);
break;
case COMPAQ_PORTABLEIII386:
@@ -153,14 +153,14 @@ machine_at_compaq_init(const machine_t *model, int type)
device_add(&compaq_plasma_device);
device_add(&compaq_386_device);
machine_at_common_init(model);
device_add(&keyboard_at_compaq_device);
device_add(&kbc_at_compaq_device);
break;
case COMPAQ_DESKPRO386:
case COMPAQ_DESKPRO386_05_1988:
device_add(&compaq_386_device);
machine_at_common_init(model);
device_add(&keyboard_at_compaq_device);
device_add(&kbc_at_compaq_device);
break;
default:

View File

@@ -342,7 +342,7 @@ int machine_at_grid1520_init(const machine_t *model) {
machine_at_common_ide_init(model);
mem_remap_top(384);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
// for now just select CGA with amber monitor
//device_add(&cga_device);

View File

@@ -66,7 +66,7 @@ machine_at_vpc2007_init(const machine_t *model)
device_add(&i440bx_no_agp_device);
device_add(&piix4e_device);
device_add(&w83977f_370_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256); /* real VPC provides invalid SPD data */

View File

@@ -109,7 +109,7 @@ machine_at_kn97_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add(&intel_flash_bxt_device);
device_add(&lm78_device); /* fans: Chassis, CPU, Power; temperature: MB */
@@ -142,7 +142,7 @@ machine_at_lx6_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
@@ -244,7 +244,7 @@ machine_at_ma30d_init(const machine_t *model)
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add(&nec_mate_unk_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c67x_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -273,7 +273,7 @@ machine_at_p6i440e2_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440ex_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x03, 256);
@@ -309,7 +309,7 @@ machine_at_p2bls_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
#if 0
device_add(ics9xxx_get(ICS9150_08)); /* setting proper speeds requires some interaction with the AS97127F ASIC */
@@ -346,7 +346,7 @@ machine_at_lgibmx7g_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&winbond_flash_w29c020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -379,7 +379,7 @@ machine_at_p3bf_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(ics9xxx_get(ICS9250_08));
device_add(&sst_flash_39sf020_device);
@@ -416,7 +416,7 @@ machine_at_bf6_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -447,7 +447,7 @@ machine_at_bx6_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83977f_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
@@ -479,7 +479,7 @@ machine_at_ax6bc_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&sst_flash_29ee020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -511,7 +511,7 @@ machine_at_atc6310bxii_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -542,7 +542,7 @@ machine_at_686bx_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
@@ -582,7 +582,7 @@ machine_at_p6sba_init(const machine_t *model)
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&w83977tf_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&w83781d_device); /* fans: CPU1, CPU2, Thermal Control; temperatures: unused, CPU1, CPU2? */
@@ -655,7 +655,7 @@ machine_at_ficka6130_init(const machine_t *model)
device_add(&via_apro_device);
device_add(&via_vt82c596a_device);
device_add(&w83877tf_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_29ee020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -688,7 +688,7 @@ machine_at_p3v133_init(const machine_t *model)
device_add(&via_apro133_device);
device_add(&via_vt82c596b_device);
device_add(&w83977ef_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9248_39));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
@@ -725,7 +725,7 @@ machine_at_p3v4x_init(const machine_t *model)
device_add(&via_apro133a_device);
device_add(&via_vt82c596b_device);
device_add(&w83977ef_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9250_18));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);
@@ -758,7 +758,7 @@ machine_at_gt694va_init(const machine_t *model)
device_add(&via_apro133a_device);
device_add(&via_vt82c596b_device);
device_add(&w83977ef_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 1024);
device_add(&w83782d_device); /* fans: CPU, unused, unused; temperatures: System, CPU1, unused */
@@ -799,7 +799,7 @@ machine_at_vei8_init(const machine_t *model)
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&fdc37m60x_370_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9250_08));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 512);
@@ -828,7 +828,7 @@ machine_at_ms6168_common_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&voodoo_3_2000_agp_onboard_8m_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -924,7 +924,7 @@ machine_at_p6f99_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5600_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&it8661f_device);
device_add(&winbond_flash_w29c020_device);
@@ -957,7 +957,7 @@ machine_at_m747_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5600_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&it8661f_device);
device_add(&winbond_flash_w29c020_device);

View File

@@ -65,7 +65,7 @@ machine_at_6gxu_init(const machine_t *model)
device_add(&i440gx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);
@@ -102,7 +102,7 @@ machine_at_s2dge_init(const machine_t *model)
device_add(&i440gx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);

View File

@@ -64,7 +64,7 @@ machine_at_s370slm_init(const machine_t *model)
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add(&w83977tf_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&w83781d_device); /* fans: CPU, Fan 2, Chassis; temperatures: unused, CPU, unused */
@@ -99,7 +99,7 @@ machine_at_prosignias31x_bx_init(const machine_t *model)
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&w83977ef_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&winbond_flash_w29c020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&gl520sm_2d_device); /* fans: CPU, Chassis; temperature: System */
@@ -139,7 +139,7 @@ machine_at_s1857_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -177,7 +177,7 @@ machine_at_p6bap_init(const machine_t *model)
device_add(&via_apro133a_device); /* Rebranded as ET82C693A */
device_add(&via_vt82c596b_device); /* Rebranded as ET82C696B */
device_add(&w83977ef_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -212,7 +212,7 @@ machine_at_p6bat_init(const machine_t *model)
device_add(&via_apro133_device);
device_add(&via_vt82c596b_device);
device_add(&w83977ef_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -248,7 +248,7 @@ machine_at_cubx_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(&ide_cmd648_ter_qua_onboard_device);
device_add(ics9xxx_get(ICS9250_08));
@@ -283,7 +283,7 @@ machine_at_atc7020bxii_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
@@ -315,7 +315,7 @@ machine_at_m773_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&it8671f_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -356,7 +356,7 @@ machine_at_ambx133_init(const machine_t *model)
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&w83977ef_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&gl518sm_2d_device); /* fans: CPUFAN1, CPUFAN2; temperature: CPU */
@@ -393,7 +393,7 @@ machine_at_awo671r_init(const machine_t *model)
device_add(&piix4e_device);
device_add_inst(&w83977ef_device, 1);
device_add_inst(&w83977ef_device, 2);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&sst_flash_39sf020_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -427,7 +427,7 @@ machine_at_63a1_init(const machine_t *model)
device_add(&i440zx_device);
device_add(&piix4e_device);
device_add(&w83977tf_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -458,7 +458,7 @@ machine_at_apas3_init(const machine_t *model)
device_add(&via_apro_device);
device_add(&via_vt82c586b_device);
device_add(&fdc37c669_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -492,7 +492,7 @@ machine_at_cuv4xls_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device);
device_add(&via_vt82c686b_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9250_18));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 1024);
@@ -528,7 +528,7 @@ machine_at_6via90ap_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device);
device_add(&via_vt82c686b_device); /* fans: CPU1, CPU2; temperatures: CPU, System, unused */
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9250_18));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 1024);
@@ -563,7 +563,7 @@ machine_at_7sbb_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&sis_5600_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&it8661f_device);
device_add(&sst_flash_29ee020_device); /* assumed */

View File

@@ -68,7 +68,7 @@ machine_at_v12p_init(const machine_t *model)
pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 0, 0, 0);
pci_register_slot(0x05, PCI_CARD_NORMAL, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add(&keyboard_ps2_acer_pci_device);
device_add(&kbc_ps2_acer_pci_device);
device_add(&sio_zb_device);
device_add_params(&pc87310_device, (void *) (PC87310_ALI));
device_add(&amd_am28f010_flash_device);
@@ -127,7 +127,7 @@ machine_at_premiere_common_init(const machine_t *model, int pci_switch)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&sio_zb_device);
device_add(&ide_rz1000_pci_single_channel_device);
device_add(&fdc37c665_ide_sec_device);
@@ -152,7 +152,7 @@ machine_at_sp4_common_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add(&ide_cmd640_pci_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
}
@@ -178,7 +178,7 @@ machine_at_excaliburpci_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&fdc37c665_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&ide_cmd640_pci_legacy_only_device);
device_add(&i430lx_device);
@@ -208,7 +208,7 @@ machine_at_p5mp3_init(const machine_t *model)
pci_register_slot(0x03, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 3 */
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&fdc_at_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&sio_zb_device);
device_add(&catalyst_flash_device);
@@ -243,7 +243,7 @@ machine_at_dellxp60_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&sio_zb_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_ami_device);
@@ -274,7 +274,7 @@ machine_at_opti560l_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&sio_zb_device);
device_add(&i82091aa_device);
device_add(&intel_flash_bxt_ami_device);
@@ -306,7 +306,7 @@ machine_at_ambradp60_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&sio_zb_device);
device_add(&fdc37c665_ide_pri_device);
device_add(&intel_flash_bxt_ami_device);
@@ -339,7 +339,7 @@ machine_at_valuepointp60_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_ps1_pci_device);
device_add(&kbc_ps2_ps1_pci_device);
device_add(&sio_device);
device_add(&fdc37c665_ide_device);
device_add(&intel_flash_bxt_ami_device);
@@ -388,7 +388,7 @@ machine_at_award_common_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
device_add(&sio_zb_device);
device_add(&intel_flash_bxt_device);
}
@@ -439,7 +439,7 @@ machine_at_pb520r_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5434_onboard_pci_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&sio_zb_device);
device_add(&i82091aa_ide_device);
device_add(&intel_flash_bxt_ami_device);
@@ -469,7 +469,7 @@ machine_at_m5pi_init(const machine_t *model)
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add(&sio_zb_device);
device_add(&keyboard_ps2_phoenix_device);
device_add(&kbc_ps2_phoenix_device);
device_add(&ide_w83769f_pci_single_channel_device);
device_add(&fdc37c665_ide_sec_device);
device_add(&intel_flash_bxt_ami_device);
@@ -500,7 +500,7 @@ machine_at_globalyst330_p5_init(const machine_t *model)
device_add(&opti5x7_pci_device);
device_add(&opti822_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -524,7 +524,7 @@ machine_at_excalibur_init(const machine_t *model)
device_add(&opti5x7_device);
device_add(&ide_opti611_vlb_device);
device_add(&fdc37c661_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
return ret;
}
@@ -553,7 +553,7 @@ machine_at_p5vl_init(const machine_t *model)
device_add(&opti5x7_pci_device);
device_add(&opti822_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -584,7 +584,7 @@ machine_at_excaliburpci2_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&fdc37c665_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&ide_cmd640_pci_legacy_only_device);
device_add(&sis_85c50x_device);

View File

@@ -106,7 +106,7 @@ machine_at_d842_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); /* Slot 01 */
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); /* Slot 02 */
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&i430nx_device);
device_add(&sio_zb_device);
device_add(&fdc37c665_device);
@@ -201,7 +201,7 @@ machine_at_p54np4_init(const machine_t *model)
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430nx_device);
device_add(&sio_zb_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_ide_pri_device);
device_add(&intel_flash_bxt_device);
@@ -246,7 +246,7 @@ machine_at_tek932_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i430nx_device);
device_add(&sio_zb_device);
device_add(&ide_vlb_device);
@@ -278,7 +278,7 @@ machine_at_acerv30_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&keyboard_ps2_acer_pci_device);
device_add(&kbc_ps2_acer_pci_device);
device_add(&fdc37c665_device);
device_add(&sst_flash_29ee010_device);
@@ -307,7 +307,7 @@ machine_at_apollo_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87332_398_device);
@@ -343,7 +343,7 @@ machine_at_optiplexgxl_init(const machine_t *model)
if (sound_card_current[0] == SOUND_INTERNAL)
machine_snd = device_add(machine_get_snd_device(machine));
device_add(&keyboard_ps2_phoenix_pci_device);
device_add(&kbc_ps2_phoenix_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87332_device);
@@ -407,7 +407,7 @@ machine_at_zappa_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87306_device);
@@ -435,7 +435,7 @@ machine_at_powermatev_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 0, 0, 0, 0);
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&fdc37c665_device);
@@ -464,7 +464,7 @@ machine_at_hawk_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_tg_ami_pci_device);
device_add(&kbc_ps2_tg_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&fdc37c665_device);
@@ -495,7 +495,7 @@ machine_at_pt2000_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
/* Should be VIA, but we do not emulate that yet. */
device_add(&keyboard_ps2_holtek_device);
device_add(&kbc_ps2_holtek_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87332_398_device);
@@ -518,7 +518,7 @@ machine_at_pat54pv_init(const machine_t *model)
machine_at_common_init(model);
device_add(&opti5x7_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -548,7 +548,7 @@ machine_at_hot543_init(const machine_t *model)
device_add(&opti5x7_pci_device);
device_add(&opti822_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_at_device);
device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -578,7 +578,7 @@ machine_at_ncselp90_init(const machine_t *model)
device_add(&opti5x7_pci_device);
device_add(&opti822_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&ide_opti611_vlb_device);
device_add(&fdc37c665_ide_sec_device);
device_add(&ide_vlb_2ch_device);
@@ -626,7 +626,7 @@ machine_at_sq588_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add(&ide_cmd640_pci_single_channel_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_ide_device);
device_add(&sst_flash_29ee010_device);
@@ -655,7 +655,7 @@ machine_at_p54sps_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add(&ide_pci_2ch_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
device_add(&w83787f_device);
device_add(&sst_flash_29ee010_device);
@@ -686,7 +686,7 @@ machine_at_ms5109_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_550x_85c503_device);
device_add(&ide_w83769f_pci_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
device_add(&w83787f_device);
device_add(&sst_flash_29ee010_device);
@@ -720,7 +720,7 @@ machine_at_torino_init(const machine_t *model)
device_add(&sis_550x_85c503_device);
device_add(&ide_um8673f_device);
device_add(&keyboard_ps2_tg_ami_device);
device_add(&kbc_ps2_tg_ami_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_ami_device);
@@ -752,7 +752,7 @@ machine_at_hot539_init(const machine_t *model)
device_add(&umc_8890_device);
device_add(&umc_8886af_device);
device_add(&sst_flash_29ee010_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&um8663af_device);
return ret;

View File

@@ -111,7 +111,7 @@ machine_at_ap5vm_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&ncr53c810_onboard_pci_device);
device_add(&intel_flash_bxt_device);
@@ -141,7 +141,7 @@ machine_at_p55t2p4_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add(&intel_flash_bxt_device);
@@ -244,7 +244,7 @@ machine_at_tc430hx_init(const machine_t *model)
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -283,7 +283,7 @@ machine_at_infinia7200_init(const machine_t *model)
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -342,7 +342,7 @@ machine_at_cu430hx_common_init(const machine_t *model)
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
}
@@ -415,7 +415,7 @@ machine_at_pcv90_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -461,7 +461,7 @@ machine_at_epc2102_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i82091aa_device);
device_add(&sst_flash_39sf010_device);
@@ -490,7 +490,7 @@ machine_at_p55tvp4_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device); // It uses the AMIKEY KBC
device_add(&kbc_ps2_ami_pci_device); // It uses the AMIKEY KBC
device_add(&w83877f_device);
device_add(&intel_flash_bxt_device);
@@ -518,7 +518,7 @@ machine_at_5ivg_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&prime3c_device);
device_add(&intel_flash_bxt_device);
@@ -547,7 +547,7 @@ machine_at_8500tvxa_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 3, 2, 1);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&um8669f_device);
device_add(&sst_flash_29ee010_device);
@@ -734,7 +734,7 @@ machine_at_pb680_init(const machine_t *model)
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -794,7 +794,7 @@ machine_at_mb520n_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
@@ -823,7 +823,7 @@ machine_at_i430vx_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&um8669f_device);
device_add(&intel_flash_bxt_device);
@@ -890,7 +890,7 @@ machine_at_ma23c_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&nec_mate_unk_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c67x_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -926,7 +926,7 @@ machine_at_nupro592_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -963,7 +963,7 @@ machine_at_tx97_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_acorp_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1079,7 +1079,7 @@ machine_at_ym430tx_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1109,7 +1109,7 @@ machine_at_mb540n_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&um8669f_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1140,7 +1140,7 @@ machine_at_56a5_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1170,7 +1170,7 @@ machine_at_p5mms98_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1202,7 +1202,7 @@ machine_at_richmond_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&it8671f_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1235,7 +1235,7 @@ machine_at_tomahawk_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&fdc37c67x_device);
device_add(&amd_flash_29f020a_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1276,7 +1276,7 @@ machine_at_ficva502_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
device_add(&via_vpx_device);
device_add(&via_vt82c586b_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&fdc37c669_370_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -1308,7 +1308,7 @@ machine_at_ficpa2012_init(const machine_t *model)
device_add(&via_vp3_device);
device_add(&via_vt82c586b_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
@@ -1340,7 +1340,7 @@ machine_at_via809ds_init(const machine_t *model)
device_add(&via_vp3_device);
device_add(&via_vt82c586b_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
@@ -1370,7 +1370,7 @@ machine_at_r534f_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5571_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
@@ -1399,7 +1399,7 @@ machine_at_ms5146_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5571_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
@@ -1428,7 +1428,7 @@ machine_at_cb52xsi_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5571_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_370_device);
device_add(&sst_flash_29ee010_device);
@@ -1457,7 +1457,7 @@ machine_at_sp97xv_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x13, PCI_CARD_VIDEO, 1, 2, 3, 4); /* On-chip SiS graphics, absent here. */
device_add(&sis_5581_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
@@ -1484,7 +1484,7 @@ machine_at_sq578_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&sis_5581_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_29ee010_device);
@@ -1512,7 +1512,7 @@ machine_at_ms5172_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&sis_5591_1997_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_29ee010_device);

View File

@@ -106,7 +106,7 @@ machine_at_thor_common_init(const machine_t *model, int has_video)
if (has_video && (gfxcard[0] == VID_INTERNAL))
device_add(machine_get_vid_device(machine));
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87306_device);
@@ -125,7 +125,7 @@ machine_at_p54tp4xe_common_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&fdc37c665_device);
@@ -184,7 +184,7 @@ machine_at_exp8551_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&w83787f_device);
@@ -359,7 +359,7 @@ machine_at_endeavor_init(const machine_t *model)
if (sound_card_current[0] == SOUND_INTERNAL)
machine_snd = device_add(machine_get_snd_device(machine));
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87306_device);
@@ -390,7 +390,7 @@ machine_at_ms5119_init(const machine_t *model)
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83787f_device);
device_add(&sst_flash_29ee010_device);
@@ -457,7 +457,7 @@ machine_at_pb640_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -484,7 +484,7 @@ machine_at_mb500n_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&i430fx_device);
device_add(&piix_no_mirq_device);
device_add(&fdc37c665_device);
@@ -516,7 +516,7 @@ machine_at_fmb_init(const machine_t *model)
device_add(&i430fx_device);
device_add(&piix_no_mirq_device);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
device_add(&w83787f_device);
device_add(&intel_flash_bxt_device);
@@ -576,7 +576,7 @@ machine_at_ap53_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_VIDEO, 1, 2, 3, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
@@ -605,7 +605,7 @@ machine_at_8500tuc_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&um8669f_device);
device_add(&intel_flash_bxt_device);
@@ -640,7 +640,7 @@ machine_at_d943_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 3, 2, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_EDO, 0x7, 256);
@@ -718,7 +718,7 @@ machine_at_p55t2s_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_device);
@@ -747,7 +747,7 @@ machine_at_p5vxb_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
@@ -854,7 +854,7 @@ machine_at_ap5s_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5511_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
device_add(&fdc37c665_device);
device_add(&sst_flash_29ee010_device);
@@ -883,7 +883,7 @@ machine_at_ms5124_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add(&sis_5511_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
device_add(&w83787f_88h_device);
device_add(&sst_flash_29ee010_device);
@@ -912,7 +912,7 @@ machine_at_amis727_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5511_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
@@ -1016,7 +1016,7 @@ machine_at_5sbm2_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&keyboard_at_ami_device);
device_add(&kbc_at_ami_device);
device_add(&sis_550x_device);
device_add(&um8663af_device);
device_add(&sst_flash_29ee010_device);
@@ -1048,7 +1048,7 @@ machine_at_pc140_6260_init(const machine_t *model)
device_add(&gd5436_onboard_pci_device);
device_add(&sis_5511_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&sst_flash_29ee010_device);

View File

@@ -65,7 +65,7 @@ machine_at_ap61_init(const machine_t *model)
device_add(&i450kx_device);
device_add(&sio_zb_device);
device_add(&ide_cmd646_device);
device_add(&keyboard_ps2_acer_pci_device);
device_add(&kbc_ps2_acer_pci_device);
device_add(&fdc37c665_device);
device_add(&sst_flash_29ee010_device);
// device_add(&intel_flash_bxt_device);
@@ -100,7 +100,7 @@ machine_at_p6rp4_init(const machine_t *model)
device_add(&sio_zb_device);
device_add(&ide_cmd646_device);
/* Input port bit 2 must be 1 or CMOS Setup is disabled. */
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
@@ -129,7 +129,7 @@ machine_at_686nx_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device); // Uses the AMIKEY keyboard controller
device_add(&kbc_ps2_ami_pci_device); // Uses the AMIKEY keyboard controller
device_add(&um8669f_device);
device_add(&intel_flash_bxt_device);
@@ -158,7 +158,7 @@ machine_at_mb600n_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
@@ -217,7 +217,7 @@ machine_at_lgibmx61_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_device);
device_add(&kbc_ps2_ami_device);
device_add(&w83877f_president_device);
device_add(&sst_flash_29ee010_device);
@@ -392,7 +392,7 @@ machine_at_8600ttc_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
@@ -442,7 +442,7 @@ machine_at_p65up5_common_init(const machine_t *model, const device_t *northbridg
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(northbridge);
device_add(&piix3_ioapic_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
device_add(&ioapic_device);

View File

@@ -231,7 +231,7 @@ machine_at_ax59pro_init(const machine_t *model)
device_add(&via_mvp3_device);
device_add(&via_vt82c586b_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -262,7 +262,7 @@ machine_at_mvp3_init(const machine_t *model)
device_add(&via_mvp3_device);
device_add(&via_vt82c586b_device);
device_add(&keyboard_ps2_pci_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877tf_acorp_device);
device_add(&sst_flash_39sf010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -294,7 +294,7 @@ machine_at_ficva503a_init(const machine_t *model)
device_add(&via_mvp3_device);
device_add(&via_vt82c686a_device); /* fans: CPU1, Chassis; temperatures: CPU, System, unused */
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
hwm_values.temperatures[0] += 2; /* CPU offset */
@@ -332,7 +332,7 @@ machine_at_5emapro_init(const machine_t *model)
device_add(&via_mvp3_device); /* Rebranded as EQ82C6638 */
device_add(&via_vt82c686a_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&via_vt82c686_hwm_device); /* fans: CPU1, Chassis; temperatures: CPU, System, unused */
@@ -364,7 +364,7 @@ machine_at_delhi3_init(const machine_t *model)
device_add(&via_mvp3_device);
device_add(&via_vt82c596a_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -397,7 +397,7 @@ machine_at_5sg100_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5591_1997_device);
device_add(&keyboard_ps2_ami_pci_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_29ee010_device);

View File

@@ -813,7 +813,7 @@ machine_at_t3100e_init(const machine_t *model)
machine_at_common_ide_init(model);
device_add(&keyboard_at_toshiba_device);
device_add(&kbc_at_toshiba_device);
if (fdc_current[0] == FDC_INTERNAL) {
device_add(&fdc_at_device);

View File

@@ -190,7 +190,7 @@ machine_elt_init(const machine_t *model)
/* Keyboard goes after the video, because on XT compatibles it's dealt
* with by the same PPI as the config switches and we need them to
* indicate the correct display type */
device_add(&keyboard_xt_device);
device_add(&kbc_xt_device);
device_add(&elt_nvr_device);

View File

@@ -651,7 +651,7 @@ europc_boot(UNUSED(const device_t *info))
jim_read, NULL, NULL, jim_write, NULL, NULL, sys);
/* Only after JIM has been initialized. */
(void) device_add(&keyboard_xt_device);
(void) device_add(&kbc_xt_device);
/* Enable and set up the FDC. */
(void) device_add(&fdc_xt_device);

View File

@@ -394,7 +394,7 @@ ps1_common_init(const machine_t *model)
dma16_init();
pic2_init();
device_add(&keyboard_ps2_ps1_device);
device_add(&kbc_ps2_ps1_device);
device_add(&port_6x_device);
/* Audio uses ports 200h and 202-207h, so only initialize gameport on 201h. */

View File

@@ -197,7 +197,7 @@ ps2_isa_common_init(const machine_t *model)
dma16_init();
pic2_init();
device_add(&keyboard_ps2_device);
device_add(&kbc_ps2_device);
device_add(&port_6x_ps2_device);
}

View File

@@ -1159,7 +1159,7 @@ ps2_mca_board_model_50_init(void)
mem_remap_top(384);
mca_init(4);
device_add(&keyboard_ps2_mca_2_device);
device_add(&kbc_ps2_mca_2_device);
ps2.planar_read = model_50_read;
ps2.planar_write = model_50_write;
@@ -1180,7 +1180,7 @@ ps2_mca_board_model_60_init(void)
mem_remap_top(384);
mca_init(8);
device_add(&keyboard_ps2_mca_2_device);
device_add(&kbc_ps2_mca_2_device);
ps2.planar_read = model_50_read;
ps2.planar_write = model_50_write;
@@ -1240,7 +1240,7 @@ ps2_mca_board_model_55sx_init(int has_sec_nvram, int slots)
}
mca_init(slots);
device_add(&keyboard_ps2_mca_1_device);
device_add(&kbc_ps2_mca_1_device);
if (has_sec_nvram)
device_add(&ps2_nvr_55ls_device);
@@ -1419,7 +1419,7 @@ ps2_mca_board_model_70_type34_init(int is_type4, int slots)
ps2.split_addr = mem_size * 1024;
mca_init(slots);
device_add(&keyboard_ps2_mca_1_device);
device_add(&kbc_ps2_mca_1_device);
ps2.planar_read = model_70_type3_read;
ps2.planar_write = model_70_type3_write;
@@ -1512,7 +1512,7 @@ ps2_mca_board_model_80_type2_init(void)
ps2.split_addr = mem_size * 1024;
mca_init(8);
device_add(&keyboard_ps2_mca_1_device);
device_add(&kbc_ps2_mca_1_device);
ps2.planar_read = model_80_read;
ps2.planar_write = model_80_write;
@@ -1778,7 +1778,7 @@ ps55_mca_board_model_50t_init(void)
ps2.split_addr = mem_size * 1024;
/* The slot 5 is reserved for the Integrated Fixed Disk II (an internal ESDI hard drive). */
mca_init(5);
device_add(&keyboard_ps2_mca_1_device);
device_add(&kbc_ps2_mca_1_device);
ps2.planar_read = ps55_model_50t_read;
ps2.planar_write = ps55_model_50tv_write;
@@ -1822,7 +1822,7 @@ ps55_mca_board_model_50v_init(void)
ps2.split_addr = mem_size * 1024;
/* The slot 5 is reserved for the Integrated Fixed Disk II (an internal ESDI hard drive). */
mca_init(5);
device_add(&keyboard_ps2_mca_1_device);
device_add(&kbc_ps2_mca_1_device);
ps2.planar_read = ps55_model_50v_read;
ps2.planar_write = ps55_model_50tv_write;

View File

@@ -945,7 +945,7 @@ machine_tandy1k_init(const machine_t *model, int type)
MEM_MAPPING_INTERNAL, dev);
mem_mapping_set_addr(&ram_low_mapping, 0, dev->base);
device_add(&keyboard_tandy_device);
device_add(&kbc_tandy_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_xt_tandy_device);

View File

@@ -86,7 +86,7 @@ machine_v86p_init(const machine_t *model)
device_add(&ct_82c100_device);
device_add(&f82c606_device);
device_add(&keyboard_xt_device);
device_add(&kbc_xt_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_xt_device);

View File

@@ -160,7 +160,7 @@ machine_pc_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_pc_device);
device_add(&kbc_pc_device);
machine_xt_common_init(model, 0);
@@ -270,7 +270,7 @@ machine_pc82_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_pc82_device);
device_add(&kbc_pc82_device);
machine_xt_common_init(model, 0);
@@ -441,7 +441,7 @@ machine_xt_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_xt_device);
device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -462,7 +462,7 @@ machine_genxt_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_xt_device);
device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -619,7 +619,7 @@ machine_xt86_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_xt86_device);
device_add(&kbc_xt86_device);
machine_xt_common_init(model, 0);
@@ -632,7 +632,7 @@ machine_xt86_init(const machine_t *model)
static void
machine_xt_clone_init(const machine_t *model, int fixed_floppy)
{
device_add(&keyboard_xtclone_device);
device_add(&kbc_xtclone_device);
machine_xt_common_init(model, fixed_floppy);
}
@@ -680,7 +680,7 @@ machine_xt_tuliptc8_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_xt_fe2010_device);
device_add(&kbc_xt_fe2010_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -863,7 +863,7 @@ machine_xt_pxxt_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_xt_device);
device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -943,7 +943,7 @@ machine_xt_pravetz16_imko4_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_pravetz_device);
device_add(&kbc_pravetz_device);
machine_xt_common_init(model, 0);
@@ -961,7 +961,7 @@ machine_xt_pravetz16s_cpu12p_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_xt_device);
device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -979,7 +979,7 @@ machine_xt_micoms_xl7turbo_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_xt_device);
device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -1013,7 +1013,7 @@ machine_xt_mpc1600_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_pc82_device);
device_add(&kbc_pc82_device);
machine_xt_common_init(model, 0);
@@ -1036,7 +1036,7 @@ machine_xt_pcspirit_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_pc82_device);
device_add(&kbc_pc82_device);
machine_xt_common_init(model, 0);
@@ -1054,7 +1054,7 @@ machine_xt_pc700_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_pc_device);
device_add(&kbc_pc_device);
machine_xt_common_init(model, 0);
@@ -1072,7 +1072,7 @@ machine_xt_pc500_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_pc_device);
device_add(&kbc_pc_device);
machine_xt_common_init(model, 0);
@@ -1146,7 +1146,7 @@ machine_xt_vendex_init(const machine_t *model)
static void
machine_xt_hyundai_common_init(const machine_t *model, int fixed_floppy)
{
device_add(&keyboard_xt_hyundai_device);
device_add(&kbc_xt_hyundai_device);
machine_xt_common_init(model, fixed_floppy);
}
@@ -1294,7 +1294,7 @@ machine_xt_glabios_init(const machine_t *model)
if (bios_only || !ret)
return ret;
device_add(&keyboard_xt_device);
device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);

View File

@@ -52,7 +52,7 @@ machine_xt_compaq_deskpro_init(const machine_t *model)
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
device_add(&keyboard_xt_compaq_device);
device_add(&kbc_xt_compaq_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_xt_device);
nmi_init();
@@ -79,7 +79,7 @@ machine_xt_compaq_portable_init(const machine_t *model)
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
device_add(&keyboard_xt_compaq_device);
device_add(&kbc_xt_compaq_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_xt_device);
nmi_init();

View File

@@ -468,7 +468,7 @@ machine_xt_laserxt_common_init(const machine_t *model,int is_lxt3)
device_add(is_lxt3 ? &lxt3_device : &laserxt_device);
device_add(&keyboard_xt_lxt3_device);
device_add(&kbc_xt_lxt3_device);
}
int

View File

@@ -2451,7 +2451,7 @@ machine_xt_m19_init(const machine_t *model)
m19_vid_init(vid);
device_add_ex(&m19_vid_device, vid);
device_add(&keyboard_xt_olivetti_device);
device_add(&kbc_xt_olivetti_device);
pit_set_clock((uint32_t) 14318184.0);

View File

@@ -160,7 +160,7 @@ machine_xt_philips_common_init(const machine_t *model)
standalone_gameport_type = &gameport_200_device;
device_add(&keyboard_pc_device);
device_add(&kbc_pc_device);
device_add(&philips_device);

View File

@@ -899,7 +899,7 @@ machine_xt_t1000_init(const machine_t *model)
machine_common_init(model);
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
device_add(&keyboard_xt_t1x00_device);
device_add(&kbc_xt_t1x00_device);
t1000.fdc = device_add(&fdc_xt_device);
nmi_init();
@@ -957,7 +957,7 @@ machine_xt_t1200_init(const machine_t *model)
NULL, MEM_MAPPING_EXTERNAL, &t1000);
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
device_add(&keyboard_xt_t1x00_device);
device_add(&kbc_xt_t1x00_device);
t1000.fdc = device_add(&fdc_xt_t1x00_device);
nmi_init();

View File

@@ -204,7 +204,7 @@ machine_xt_xi8088_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
device_add(&keyboard_ps2_xi8088_device);
device_add(&kbc_ps2_xi8088_device);
device_add(&port_6x_xi8088_device);
nmi_init();
device_add(&ibmat_nvr_device);

View File

@@ -117,7 +117,7 @@ machine_zenith_init(const machine_t *model)
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
device_add(&keyboard_xt_zenith_device);
device_add(&kbc_xt_zenith_device);
nmi_init();
}

File diff suppressed because it is too large Load Diff

View File

@@ -519,6 +519,9 @@ msgstr ""
msgid "FD Controller:"
msgstr ""
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr ""
@@ -549,6 +552,9 @@ msgstr ""
msgid "Hard disks:"
msgstr ""
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr ""
@@ -1440,12 +1446,18 @@ msgstr ""
msgid "Renderer options..."
msgstr ""
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr ""

View File

@@ -519,6 +519,9 @@ msgstr "Port paral·lel 4"
msgid "FD Controller:"
msgstr "Controlador de FD:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Controlador IDE terciari"
@@ -549,6 +552,9 @@ msgstr "Casset"
msgid "Hard disks:"
msgstr "Discs durs:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Nou ..."
@@ -1440,12 +1446,18 @@ msgstr "Pas del port sèrie 4"
msgid "Renderer options..."
msgstr "Opcions del renderitzador ..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Ratolí bus Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Povolit port LPT4"
msgid "FD Controller:"
msgstr "Disketový řadič:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Třetí řadič IDE"
@@ -549,6 +552,9 @@ msgstr "Kazeta"
msgid "Hard disks:"
msgstr "Pevné disky:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Nový..."
@@ -1440,12 +1446,18 @@ msgstr "Průchod sériového portu 4"
msgid "Renderer options..."
msgstr "Možnosti vykreslovače..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Sběrnicová myš Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Parallelport 4"
msgid "FD Controller:"
msgstr "FD-Controller:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Tertiärer IDE-Controller"
@@ -549,6 +552,9 @@ msgstr "Kassette"
msgid "Hard disks:"
msgstr "Festplatten:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Neu..."
@@ -1440,12 +1446,18 @@ msgstr "Durchreichung der Serielle Schnittstelle 4"
msgid "Renderer options..."
msgstr "Renderer-Optionen..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft Bus-Maus"

View File

@@ -519,6 +519,9 @@ msgstr "Puerto paralelo 4"
msgid "FD Controller:"
msgstr "Controladora FD:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Tercera controladora IDE"
@@ -549,6 +552,9 @@ msgstr "Cassette"
msgid "Hard disks:"
msgstr "Discos duros:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Nuevo..."
@@ -1440,12 +1446,18 @@ msgstr "Paso de puerto serie 4"
msgid "Renderer options..."
msgstr "Opciones del renderizador..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Ratón de bus Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Rinnakkaisportti 4"
msgid "FD Controller:"
msgstr "Levykeohjain:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Kolmas IDE-ohjain"
@@ -549,6 +552,9 @@ msgstr "Kasettiasema"
msgid "Hard disks:"
msgstr "Kiintolevyt:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Uusi..."
@@ -1440,12 +1446,18 @@ msgstr "Sarjaportin läpivienti 4"
msgid "Renderer options..."
msgstr "Alustusasetukset..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft-väylähiiri"

View File

@@ -519,6 +519,9 @@ msgstr "Port parallèle 4"
msgid "FD Controller:"
msgstr "Contrôleur FD:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Troisième contrôleur IDE"
@@ -549,6 +552,9 @@ msgstr "Cassette"
msgid "Hard disks:"
msgstr "Disques durs:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Nouveau..."
@@ -1440,12 +1446,18 @@ msgstr "Transfert du port série 4"
msgid "Renderer options..."
msgstr "Options du rendu..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Souris bus Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Paralelna vrata 4"
msgid "FD Controller:"
msgstr "Kontroler diskete:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Tercijarni IDE kontroler"
@@ -549,6 +552,9 @@ msgstr "Audio kaseta"
msgid "Hard disks:"
msgstr "Tvrdi diskovi:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Novi..."
@@ -1440,12 +1446,18 @@ msgstr "Prolaz serijskih vrata 4"
msgid "Renderer options..."
msgstr "Opcije rendera..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Sabirnički miš Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Párhuzamos port 4"
msgid "FD Controller:"
msgstr "Floppy-vezérlő:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Harmadlagos IDE-vezérlő"
@@ -549,6 +552,9 @@ msgstr "Magnókazetta"
msgid "Hard disks:"
msgstr "Merevlemezek:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Új..."
@@ -1440,12 +1446,18 @@ msgstr "Soros port áthaladás 4"
msgid "Renderer options..."
msgstr "Renderer opciók..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft busz egér"

View File

@@ -519,6 +519,9 @@ msgstr "Porta parallela 4"
msgid "FD Controller:"
msgstr "Controller FD:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Controller IDE terziario"
@@ -549,6 +552,9 @@ msgstr "Cassetta"
msgid "Hard disks:"
msgstr "Hard disk:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Nuovo..."
@@ -1440,12 +1446,18 @@ msgstr "Passaggio della porta seriale 4"
msgid "Renderer options..."
msgstr "Opzioni del renderer..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Mouse bus Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "パラレルポート4"
msgid "FD Controller:"
msgstr "FDDコントローラー:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "第三IDEコントローラー"
@@ -549,6 +552,9 @@ msgstr "カセット"
msgid "Hard disks:"
msgstr "ハード ディスク:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "新規(&N)..."
@@ -1440,12 +1446,18 @@ msgstr "シリアル・ポート・パススルー 4"
msgid "Renderer options..."
msgstr "レンダラー設定..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft バスマウス"

View File

@@ -519,6 +519,9 @@ msgstr "병렬 포트 4"
msgid "FD Controller:"
msgstr "FD 컨트롤러:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "제3의 IDE 컨트롤러"
@@ -549,6 +552,9 @@ msgstr "카세트 테이프"
msgid "Hard disks:"
msgstr "하드 디스크:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "새로 만들기(&N)..."
@@ -1440,12 +1446,18 @@ msgstr "직렬 포트 패스스루 4"
msgid "Renderer options..."
msgstr "렌더러 옵션..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "로지텍/마이크로소프트 버스 마우스"

View File

@@ -519,6 +519,9 @@ msgstr "Parallelle poort 4"
msgid "FD Controller:"
msgstr "FD-Controller:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Tertiaire IDE-controller"
@@ -549,6 +552,9 @@ msgstr "Cassette"
msgid "Hard disks:"
msgstr "Harde schijven:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Nieuw..."
@@ -1440,12 +1446,18 @@ msgstr "Seriële poort doorvoer 4"
msgid "Renderer options..."
msgstr "Renderer-opties..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft busmuis"

View File

@@ -1458,6 +1458,9 @@ msgstr "Klawiatura AX"
msgid "PS/2 Keyboard"
msgstr "Klawiatura PS/2"
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr "Klawiatura PS/2 (ANSI)"
@@ -1476,6 +1479,12 @@ msgstr "Klawiatura PS/55"
msgid "Keys"
msgstr "Klawisze"
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Mysz magistralowa Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Porta paralela 4"
msgid "FD Controller:"
msgstr "Controlador FD:"
msgid "CD-ROM Controller:"
msgstr "Controlador de CD-ROM:"
msgid "Tertiary IDE Controller"
msgstr "Controlador IDE terciário"
@@ -549,6 +552,9 @@ msgstr "Cassete"
msgid "Hard disks:"
msgstr "Discos rígidos:"
msgid "Firmware Version"
msgstr "Versão de Firmware"
msgid "&New..."
msgstr "&Novo..."
@@ -1440,12 +1446,18 @@ msgstr "Passagem de porta serial 4"
msgid "Renderer options..."
msgstr "Opções do renderizador..."
msgid "PC/XT Keyboard"
msgstr "Teclado PC/XT"
msgid "AT Keyboard"
msgstr "Teclado AT"
msgid "AX Keyboard"
msgstr "Teclado AX"
msgid "PS/2 Keyboard"
msgstr "Teclado PS/2"
msgid "PS/2 Keyboard (US)"
msgstr "Teclado PS/2 (Estados Unidos)"
@@ -1458,6 +1470,12 @@ msgstr "Teclado PS/2 (Japonês)"
msgid "PS/55 Keyboard"
msgstr "Teclado PS/55"
msgid "AT/PS/2 Keyboard"
msgstr "Teclado AT/PS/2"
msgid "Keys"
msgstr "Teclas"
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Mouse de barramento Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Porta paralela 4"
msgid "FD Controller:"
msgstr "Controlador FD:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Controlador IDE terciário"
@@ -549,6 +552,9 @@ msgstr "Cassete"
msgid "Hard disks:"
msgstr "Discos rígidos:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Novo..."
@@ -1440,12 +1446,18 @@ msgstr "Passagem da porta de série 4"
msgid "Renderer options..."
msgstr "Opções do renderizador..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Rato Logitech/Microsoft Bus"

View File

@@ -519,6 +519,9 @@ msgstr "Параллельный порт LPT4"
msgid "FD Controller:"
msgstr "Контроллер FD:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Третичный IDE контроллер"
@@ -549,6 +552,9 @@ msgstr "Кассета"
msgid "Hard disks:"
msgstr "Жёсткие диски:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Создать..."
@@ -1440,12 +1446,18 @@ msgstr "Сквозной последовательный порт COM4"
msgid "Renderer options..."
msgstr "Параметры рендеринга..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Bus-мышь Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Povoliť port LPT4"
msgid "FD Controller:"
msgstr "Disketový radič:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Tretí radič IDE"
@@ -549,6 +552,9 @@ msgstr "Kazeta"
msgid "Hard disks:"
msgstr "Pevné disky:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Nový..."
@@ -1440,12 +1446,18 @@ msgstr "Priechod cez sériový port 4"
msgid "Renderer options..."
msgstr "Možnosti vykresľovača..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Zbernicová myš Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Vzporedna vrata 4"
msgid "FD Controller:"
msgstr "Disketni krmilnik:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Terciarni krmilnik IDE"
@@ -549,6 +552,9 @@ msgstr "Kasetnik"
msgid "Hard disks:"
msgstr "Trdi diski:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "Nov..."
@@ -1440,12 +1446,18 @@ msgstr "Prepust za serijska vrata 4"
msgid "Renderer options..."
msgstr "Možnosti sistema za upodabljanje..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Miška na vodilu Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Parallellport 4"
msgid "FD Controller:"
msgstr "Styrenhet för diskett:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Tertiär IDE-kontroller"
@@ -549,6 +552,9 @@ msgstr "Kassettband"
msgid "Hard disks:"
msgstr "Hårddiskar:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Ny..."
@@ -1440,12 +1446,18 @@ msgstr "Serieport passthrough 4"
msgid "Renderer options..."
msgstr "Renderingsalternativ..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft-buss-mus"

View File

@@ -519,6 +519,9 @@ msgstr "4. Paralel Port"
msgid "FD Controller:"
msgstr "Disket Denetleyicisi:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Üçlü IDE Denetleyici"
@@ -549,6 +552,9 @@ msgstr "Kaset"
msgid "Hard disks:"
msgstr "Hard diskler:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Yeni imaj oluştur"
@@ -685,7 +691,7 @@ msgid "Image %1"
msgstr ""
msgid "86Box could not find any usable ROM images.\n\nPlease <a href=\"https://github.com/86Box/roms/releases/latest\">download</a> a ROM set and extract it into the \"roms\" directory."
msgstr ""
msgstr "86Box kullanılabilir hiçbir ROM dosyası bulamadı.\n\nLütfen bir ROM seti <a href=\"https://github.com/86Box/roms/releases/latest\">indirip</a> \"roms\" klasörüne çıkarın."
msgid "(empty)"
msgstr "(boş)"
@@ -916,7 +922,7 @@ msgid "86Box v"
msgstr "86Box v"
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
msgstr ""
msgstr "Bir eski bilgisayar emülatörü\n\nYapımcılar: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne ve diğerleri.\n\nSarah Walker, leilei, JohnElliott, greatpsycho, ve diğerlerinin önceki katkılarıyla birlikte.\n\nGNU Genel Kamu Lisansı versiyon 2 veya sonrası altında yayınlanmıştır. Daha fazla bilgi için LICENSE kısmını gözden geçirin."
msgid "Hardware not available"
msgstr "Cihaz mevcut değil"
@@ -928,10 +934,10 @@ msgid "Invalid configuration"
msgstr "Geçersiz yapılandırma"
msgid "%1 is required for automatic conversion of PostScript files to PDF.\n\nAny documents sent to the generic PostScript printer will be saved as PostScript (.ps) files."
msgstr ""
msgstr "%1 PostScript dosyalarının otomatik olarak PDF dosyasına çevirilmesi için gereklidir.\n\nGenel PostScript yazıcısına gönderilen tüm dökümanlar PostScript (.ps) dosyası olarak kaydedilecektir."
msgid "%1 is required for automatic conversion of PCL files to PDF.\n\nAny documents sent to the generic PCL printer will be saved as Printer Command Language (.pcl) files."
msgstr ""
msgstr "%1 PCL dosyalarının otomatik olarak PDF dosyasına çevirilmesi için gereklidir.\n\nGenel PostScript yazıcısına gönderilen tüm dökümanlar Printer Command Language (.pcl) dosyası olarak kaydedilecektir."
msgid "Don't show this message again"
msgstr "Bu mesajı bir daha gösterme"
@@ -961,7 +967,7 @@ msgid "You are loading an unsupported configuration"
msgstr "Desteklenmeyen bir yapılandırma kullanıyorsunuz"
msgid "CPU type filtering based on selected machine is disabled for this emulated machine.\n\nThis makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n\nEnabling this setting is not officially supported and any bug reports filed may be closed as invalid."
msgstr ""
msgstr "Seçtiğiniz makineyle uygun işlemci filtresi bu yapılandırma için devre dışı bırakıldı.\n\nBu durum seçili makine ile uyumsuz bir işlemci kullanmanızı mümkün kılmaktadır. Ancak bundan dolayı makinenin BIOS'unda veya çalıştırılan diğer yazılımlarda uyumsuzluk sorunları meydana gelebilir.\n\nİşlemci filtresinin devre dışı bırakılması resmi olarak desteklenmemektedir ve bu esnada açtığınız hata raporları geçersiz sayılabilir."
msgid "Continue"
msgstr "Devam et"
@@ -1117,7 +1123,7 @@ msgid "Select the parent VHD"
msgstr "Ana VHD dosyasını seçin"
msgid "This could mean that the parent image was modified after the differencing image was created.\n\nIt can also happen if the image files were moved or copied, or by a bug in the program that created this disk.\n\nDo you want to fix the timestamps?"
msgstr ""
msgstr "Bu, farklandırmış imaj dosyası oluşturulduktan sonra ana imaj dosyasında bir değişiklik yapıldığı anlamına geliyor olabilir.\n\nBu durum ayrıca imaj dosyalarının kopyalanmasından, yerlerinin değiştirilmesinden veya dosyaları oluşturan programdaki bir hatadan dolayı da meydana gelmiş olabilir.\n\nZaman damgalarını düzeltmek ister misiniz?"
msgid "Parent and child disk timestamps do not match"
msgstr "Ana ve ek disklerin zaman damgaları uyuşmuyor"
@@ -1258,7 +1264,7 @@ msgid "WinBox is no longer supported"
msgstr "WinBox artık desteklenmemektedir"
msgid "Development of the WinBox manager stopped in 2022 due to a lack of maintainers. As we direct our efforts towards making 86Box even better, we have made the decision to no longer support WinBox as a manager.\n\nNo further updates will be provided through WinBox, and you may encounter incorrect behavior should you continue using it with newer versions of 86Box. Any bug reports related to WinBox behavior will be closed as invalid.\n\nGo to 86box.net for a list of other managers you can use."
msgstr ""
msgstr "WinBox yöneticisinin geliştirilmesi geliştirici eksikliği nedeniyle 2022 yılında durduruldu. 86Box'ı daha iyi hale getirmeye odaklanmak amacıyla bu yöneticiyi artık desteklememe kararı aldık.\n\nArtık WinBox aracılığıyla güncellemeler yayınlanmayacaktır ve bu yöneticiyi 86Box'ın yeni sürümleriyle kullanmanız halinde hatalarla karşılaşabilirsiniz. WinBox'ın kullanımıyla ilgili tüm hata raporları geçersiz sayılacaktır.\n\nKullanabileceğiniz diğer yöneticilerin bir listesi için lütfen 86box.net adresini ziyaret edin."
msgid "Generate"
msgstr "Oluştur"
@@ -1378,7 +1384,7 @@ msgid "This machine might have been moved or copied."
msgstr "Bu makine taşınmış veya kopyalanmış olabilir."
msgid "In order to ensure proper networking functionality, 86Box needs to know if this machine was moved or copied.\n\nSelect \"I Copied It\" if you are not sure."
msgstr ""
msgstr "Ağ bağlantısı özelliğinin doğru bir şekilde çalışması için 86Box'ın bu makinenin başka bir konuma taşındığını mı yoksa kopyalandığını mı belirlemesi gerekmektedir.\n\nBundan emin değilseniz \"Kopyalandı\" seçeneğini seçin."
msgid "I Moved It"
msgstr "Taşındı"
@@ -1440,12 +1446,18 @@ msgstr "4. Seri Port geçişi"
msgid "Renderer options..."
msgstr "Derleyici seçenekleri..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft Bus Fare"
@@ -2227,7 +2245,7 @@ msgid "Generic Text Printer"
msgstr "Genel Metin Yazıcı"
msgid "Generic ESC/P Dot-Matrix Printer"
msgstr ""
msgstr "Genel ESC/P Dot-Matrix"
msgid "Generic PostScript Printer"
msgstr "Genel PostScript Yazıcı"
@@ -2368,10 +2386,10 @@ msgid "Could not load texture: %1"
msgstr "%1 dokusu yüklenemedi"
msgid "Could not compile shader:\n\n%1"
msgstr ""
msgstr "%1 gölgelendiricisi derlenemedi"
msgid "Program not linked:\n\n%1"
msgstr ""
msgstr "%1 programı bağlanamadı"
msgid "Shader Manager"
msgstr "Gölgelendirici Yöneticisi"
@@ -2453,113 +2471,3 @@ msgstr ""
#~ msgid "ZIP images"
#~ msgstr "ZIP imajları"
#~ msgid ""
#~ "86Box could not find any usable ROM images.\n"
#~ "\n"
#~ "Please <a href=\"https://github.com/86Box/roms/releases/latest\">download</a> a ROM set and extract it into the \"roms\" directory."
#~ msgstr ""
#~ "86Box kullanılabilir hiçbir ROM dosyası bulamadı.\n"
#~ "\n"
#~ "Lütfen bir ROM seti <a href=\"https://github.com/86Box/roms/releases/latest\">indirip</a> \"roms\" klasörüne çıkarın."
#~ msgid ""
#~ "An emulator of old computers\n"
#~ "\n"
#~ "Authors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n"
#~ "\n"
#~ "With previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n"
#~ "\n"
#~ "Released under the GNU General Public License version 2 or later. See LICENSE for more information."
#~ msgstr ""
#~ "Bir eski bilgisayar emülatörü\n"
#~ "\n"
#~ "Yapımcılar: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne ve diğerleri.\n"
#~ "\n"
#~ "Sarah Walker, leilei, JohnElliott, greatpsycho, ve diğerlerinin önceki katkılarıyla birlikte.\n"
#~ "\n"
#~ "GNU Genel Kamu Lisansı versiyon 2 veya sonrası altında yayınlanmıştır. Daha fazla bilgi için LICENSE kısmını gözden geçirin."
#~ msgid "Make sure %1 is installed and that you are on a libpcap-compatible network connection."
#~ msgstr "%1 kurulu olduğundan ve libpcap uyumlu bir internet ağı kullandığınızdan emin olun."
#~ msgid ""
#~ "%1 is required for automatic conversion of PostScript files to PDF.\n"
#~ "\n"
#~ "Any documents sent to the generic PostScript printer will be saved as PostScript (.ps) files."
#~ msgstr ""
#~ "%1 PostScript dosyalarının otomatik olarak PDF dosyasına çevirilmesi için gereklidir.\n"
#~ "\n"
#~ "Genel PostScript yazıcısına gönderilen tüm dökümanlar PostScript (.ps) dosyası olarak kaydedilecektir."
#~ msgid ""
#~ "%1 is required for automatic conversion of PCL files to PDF.\n"
#~ "\n"
#~ "Any documents sent to the generic PostScript printer will be saved as Printer Command Language (.pcl) files."
#~ msgstr ""
#~ "%1 PCL dosyalarının otomatik olarak PDF dosyasına çevirilmesi için gereklidir.\n"
#~ "\n"
#~ "Genel PostScript yazıcısına gönderilen tüm dökümanlar Printer Command Language (.pcl) dosyası olarak kaydedilecektir."
#~ msgid ""
#~ "CPU type filtering based on selected machine is disabled for this emulated machine.\n"
#~ "\n"
#~ "This makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n"
#~ "\n"
#~ "Enabling this setting is not officially supported and any bug reports filed may be closed as invalid."
#~ msgstr ""
#~ "Seçtiğiniz makineyle uygun işlemci filtresi bu yapılandırma için devre dışı bırakıldı.\n"
#~ "\n"
#~ "Bu durum seçili makine ile uyumsuz bir işlemci kullanmanızı mümkün kılmaktadır. Ancak bundan dolayı makinenin BIOS'unda veya çalıştırılan diğer yazılımlarda uyumsuzluk sorunları meydana gelebilir.\n"
#~ "\n"
#~ "İşlemci filtresinin devre dışı bırakılması resmi olarak desteklenmemektedir ve bu esnada açtığınız hata raporları geçersiz sayılabilir."
#~ msgid ""
#~ "This could mean that the parent image was modified after the differencing image was created.\n"
#~ "\n"
#~ "It can also happen if the image files were moved or copied, or by a bug in the program that created this disk.\n"
#~ "\n"
#~ "Do you want to fix the timestamps?"
#~ msgstr ""
#~ "Bu, farklandırmış imaj dosyası oluşturulduktan sonra ana imaj dosyasında bir değişiklik yapıldığı anlamına geliyor olabilir.\n"
#~ "\n"
#~ "Bu durum ayrıca imaj dosyalarının kopyalanmasından, yerlerinin değiştirilmesinden veya dosyaları oluşturan programdaki bir hatadan dolayı da meydana gelmiş olabilir.\n"
#~ "\n"
#~ "Zaman damgalarını düzeltmek ister misiniz?"
#~ msgid ""
#~ "Development of the WinBox manager stopped in 2022 due to a lack of maintainers. As we direct our efforts towards making 86Box even better, we have made the decision to no longer support WinBox as a manager.\n"
#~ "\n"
#~ "No further updates will be provided through WinBox, and you may encounter incorrect behavior should you continue using it with newer versions of 86Box. Any bug reports related to WinBox behavior will be closed as invalid.\n"
#~ "\n"
#~ "Go to 86box.net for a list of other managers you can use."
#~ msgstr ""
#~ "WinBox yöneticisinin geliştirilmesi geliştirici eksikliği nedeniyle 2022 yılında durduruldu. 86Box'ı daha iyi hale getirmeye odaklanmak amacıyla bu yöneticiyi artık desteklememe kararı aldık.\n"
#~ "\n"
#~ "Artık WinBox aracılığıyla güncellemeler yayınlanmayacaktır ve bu yöneticiyi 86Box'ın yeni sürümleriyle kullanmanız halinde hatalarla karşılaşabilirsiniz. WinBox'ın kullanımıyla ilgili tüm hata raporları geçersiz sayılacaktır.\n"
#~ "\n"
#~ "Kullanabileceğiniz diğer yöneticilerin bir listesi için lütfen 86box.net adresini ziyaret edin."
#~ msgid ""
#~ "In order to ensure proper networking functionality, 86Box needs to know if this machine was moved or copied.\n"
#~ "\n"
#~ "Select \"I Copied It\" if you are not sure."
#~ msgstr ""
#~ "Ağ bağlantısı özelliğinin doğru bir şekilde çalışması için 86Box'ın bu makinenin başka bir konuma taşındığını mı yoksa kopyalandığını mı belirlemesi gerekmektedir.\n"
#~ "\n"
#~ "Bundan emin değilseniz \"Kopyalandı\" seçeneğini seçin."
#~ msgid "Generic ESC/P Dot-Matrix"
#~ msgstr "Genel ESC/P Dot-Matrix"
#~ msgid ""
#~ "Could not compile shader:\n"
#~ "\n"
#~ "%1"
#~ msgstr "%1 gölgelendiricisi derlenemedi"
#~ msgid ""
#~ "Program not linked:\n"
#~ "\n"
#~ "%1"
#~ msgstr "%1 programı bağlanamadı"

View File

@@ -519,6 +519,9 @@ msgstr "Паралельний порт LPT4"
msgid "FD Controller:"
msgstr "Контролер FD:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Третинний IDE контролер"
@@ -549,6 +552,9 @@ msgstr "Касета"
msgid "Hard disks:"
msgstr "Жорсткі диски:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "&Створити..."
@@ -1443,12 +1449,18 @@ msgstr "Пропуск послідовного порту 4"
msgid "Renderer options..."
msgstr "Параметри рендерингу..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1461,6 +1473,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Шинна миша Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "Cổng parallel 4"
msgid "FD Controller:"
msgstr "Bộ điều khiển ổ mềm:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "Bộ điều khiển IDE thứ ba"
@@ -549,6 +552,9 @@ msgstr "Cassette"
msgid "Hard disks:"
msgstr "Đĩa cứng:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "Tạ&o mới..."
@@ -1440,12 +1446,18 @@ msgstr "Thông qua cổng serial 4"
msgid "Renderer options..."
msgstr "Tùy chọn kết xuất ..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Chuột bus Logitech/Microsoft"

View File

@@ -519,6 +519,9 @@ msgstr "并口 4"
msgid "FD Controller:"
msgstr "软盘控制器:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "第三 IDE 控制器"
@@ -549,6 +552,9 @@ msgstr "磁带"
msgid "Hard disks:"
msgstr "硬盘:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "新建(&N)..."
@@ -1440,12 +1446,18 @@ msgstr "串行端口直通 4"
msgid "Renderer options..."
msgstr "渲染器选项..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft 总线鼠标"

View File

@@ -519,6 +519,9 @@ msgstr "並列埠 4"
msgid "FD Controller:"
msgstr "軟碟控制器:"
msgid "CD-ROM Controller:"
msgstr ""
msgid "Tertiary IDE Controller"
msgstr "第三 IDE 控制器"
@@ -549,6 +552,9 @@ msgstr "磁帶"
msgid "Hard disks:"
msgstr "硬碟:"
msgid "Firmware Version"
msgstr ""
msgid "&New..."
msgstr "新增(&N)..."
@@ -1440,12 +1446,18 @@ msgstr "序列埠的直通 4"
msgid "Renderer options..."
msgstr "渲染器選項..."
msgid "PC/XT Keyboard"
msgstr ""
msgid "AT Keyboard"
msgstr ""
msgid "AX Keyboard"
msgstr ""
msgid "PS/2 Keyboard"
msgstr ""
msgid "PS/2 Keyboard (US)"
msgstr ""
@@ -1458,6 +1470,12 @@ msgstr ""
msgid "PS/55 Keyboard"
msgstr ""
msgid "AT/PS/2 Keyboard"
msgstr ""
msgid "Keys"
msgstr ""
msgid "Logitech/Microsoft Bus Mouse"
msgstr "Logitech/Microsoft 匯流排滑鼠"

View File

@@ -32,6 +32,7 @@ Harddrives::populateBuses(QAbstractItemModel *model)
{
model->removeRows(0, model->rowCount());
model->insertRows(0, 6);
model->setData(model->index(0, 0), "MFM/RLL");
model->setData(model->index(1, 0), "XTA");
model->setData(model->index(2, 0), "ESDI");
@@ -48,19 +49,23 @@ Harddrives::populateBuses(QAbstractItemModel *model)
}
void
Harddrives::populateRemovableBuses(QAbstractItemModel *model)
Harddrives::populateCDROMBuses(QAbstractItemModel *model)
{
model->removeRows(0, model->rowCount());
#ifdef USE_CDROM_MITSUMI
model->insertRows(0, 4);
model->insertRows(0, 5);
#else
model->insertRows(0, 3);
model->insertRows(0, 4);
#endif
model->setData(model->index(0, 0), QObject::tr("Disabled"));
model->setData(model->index(1, 0), QObject::tr("ATAPI"));
model->setData(model->index(2, 0), QObject::tr("SCSI"));
#ifdef USE_CDROM_MITSUMI
model->setData(model->index(3, 0), QObject::tr("Mitsumi"));
model->setData(model->index(4, 0), QObject::tr("Panasonic/MKE"));
#else
model->setData(model->index(3, 0), QObject::tr("Panasonic/MKE"));
#endif
model->setData(model->index(0, 0), HDD_BUS_DISABLED, Qt::UserRole);
@@ -68,9 +73,27 @@ Harddrives::populateRemovableBuses(QAbstractItemModel *model)
model->setData(model->index(2, 0), HDD_BUS_SCSI, Qt::UserRole);
#ifdef USE_CDROM_MITSUMI
model->setData(model->index(3, 0), CDROM_BUS_MITSUMI, Qt::UserRole);
model->setData(model->index(4, 0), CDROM_BUS_MKE, Qt::UserRole);
#else
model->setData(model->index(3, 0), CDROM_BUS_MKE, Qt::UserRole);
#endif
}
void
Harddrives::populateRemovableBuses(QAbstractItemModel *model)
{
model->removeRows(0, model->rowCount());
model->insertRows(0, 3);
model->setData(model->index(0, 0), QObject::tr("Disabled"));
model->setData(model->index(1, 0), QObject::tr("ATAPI"));
model->setData(model->index(2, 0), QObject::tr("SCSI"));
model->setData(model->index(0, 0), HDD_BUS_DISABLED, Qt::UserRole);
model->setData(model->index(1, 0), HDD_BUS_ATAPI, Qt::UserRole);
model->setData(model->index(2, 0), HDD_BUS_SCSI, Qt::UserRole);
}
void
Harddrives::populateSpeeds(QAbstractItemModel *model, int bus)
{
@@ -138,6 +161,12 @@ Harddrives::populateBusChannels(QAbstractItemModel *model, int bus, SettingsBusT
subChannelWidth = 2;
busesToCheck.append(HDD_BUS_SCSI);
break;
case CDROM_BUS_MKE:
shifter = 2;
orer = 3;
busRows = 4;
busesToCheck.append(CDROM_BUS_MKE);
break;
default:
break;
}
@@ -186,9 +215,12 @@ Harddrives::BusChannelName(uint8_t bus, uint8_t channel)
case HDD_BUS_SCSI:
busName = QString("SCSI (%1:%2)").arg(channel >> 4).arg(channel & 15, 2, 10, QChar('0'));
break;
case CDROM_BUS_MITSUMI:
busName = QString("Mitsumi");
break;
case CDROM_BUS_MITSUMI:
busName = QString("Mitsumi");
break;
case CDROM_BUS_MKE:
busName = QString("Panasonic/MKE (%1:%2)").arg(channel >> 2).arg(channel & 3);
break;
}
return busName;

View File

@@ -9,6 +9,7 @@ class SettingsBusTracking;
namespace Harddrives {
void populateBuses(QAbstractItemModel *model);
void populateCDROMBuses(QAbstractItemModel *model);
void populateRemovableBuses(QAbstractItemModel *model);
void populateBusChannels(QAbstractItemModel *model, int bus, SettingsBusTracking *sbt = nullptr);
void populateSpeeds(QAbstractItemModel *model, int bus);

View File

@@ -388,7 +388,7 @@ MachineStatus::iterateCDROM(const std::function<void(int)> &cb)
(scsi_card_current[0] == 0) && (scsi_card_current[1] == 0) &&
(scsi_card_current[2] == 0) && (scsi_card_current[3] == 0))
continue;
if ((cdrom[i].bus_type == CDROM_BUS_MITSUMI) && (cdrom_interface_current == 0))
if ((cdrom[i].bus_type == CDROM_BUS_MITSUMI || cdrom[i].bus_type == CDROM_BUS_MKE) && (cdrom_interface_current == 0))
continue;
if (cdrom[i].bus_type != 0) {
cb(i);

View File

@@ -268,9 +268,11 @@ MainWindow::MainWindow(QWidget *parent)
num_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
scroll_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
caps_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
/* TODO: Base this on keyboard type instead when that's done. */
kana_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
machine_has_flags(machine, MACHINE_AX));
int ext_ax_kbd = machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
(keyboard_type == KEYBOARD_TYPE_AX);
int int_ax_kbd = machine_has_flags(machine, MACHINE_KEYBOARD_JIS) &&
!machine_has_bus(machine, MACHINE_BUS_PS2_PORTS);
kana_label->setVisible(ext_ax_kbd || int_ax_kbd);
while (QApplication::overrideCursor())
QApplication::restoreOverrideCursor();
#ifdef USE_WACOM
@@ -1484,8 +1486,11 @@ MainWindow::refreshMediaMenu()
caps_label->setToolTip(QShortcut::tr("Caps Lock"));
caps_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
kana_label->setToolTip(QShortcut::tr("Kana Lock"));
kana_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
machine_has_flags(machine, MACHINE_AX));
int ext_ax_kbd = machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
(keyboard_type == KEYBOARD_TYPE_AX);
int int_ax_kbd = machine_has_flags(machine, MACHINE_KEYBOARD_JIS) &&
!machine_has_bus(machine, MACHINE_BUS_PS2_PORTS);
kana_label->setVisible(ext_ax_kbd || int_ax_kbd);
}
void

View File

@@ -834,8 +834,11 @@ MediaMenu::cdromUpdateMenu(int i)
busName = "SCSI";
break;
case CDROM_BUS_MITSUMI:
busName = "Mitsumi";
break;
busName = "Mitsumi";
break;
case CDROM_BUS_MKE:
busName = "Panasonic/MKE";
break;
}
menu->setTitle(tr("CD-ROM %1 (%2): %3").arg(QString::number(i+1), busName, name.isEmpty() ? tr("(empty)") : name2));

View File

@@ -595,7 +595,7 @@ load_texture(const char *f, struct shader_texture *tex)
int bpp = 4;
GLubyte *data = (GLubyte *) malloc(width * height * bpp);
GLubyte *data = (GLubyte *) malloc((size_t) width * height * bpp);
int x, y, Y;
for (y = 0; y < height; ++y) {
@@ -1709,7 +1709,7 @@ OpenGLRenderer::render()
plat_tempfile(fn, NULL, (char*)".png");
strcat(path, fn);
unsigned char *rgba = (unsigned char *)calloc(1, width * height * 4);
unsigned char *rgba = (unsigned char *) calloc(1, (size_t) width * height * 4);
glw.glFinish();
glw.glReadPixels(window_rect.x, window_rect.y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, rgba);

View File

@@ -23,10 +23,14 @@
#include "86box/hdd.h"
#include "86box/scsi.h"
#include "86box/cdrom.h"
#include "qt_settings_bus_tracking.hpp"
SettingsBusTracking::SettingsBusTracking()
{
mitsumi_tracking = false;
mke_tracking = 0x0000000000000000ULL;
mfm_tracking = 0x0000000000000000ULL;
esdi_tracking = 0x0000000000000000ULL;
xta_tracking = 0x0000000000000000ULL;
@@ -38,40 +42,76 @@ SettingsBusTracking::SettingsBusTracking()
scsi_tracking[i] = 0x0000000000000000ULL;
}
uint8_t
SettingsBusTracking::next_free_mke_channel()
{
uint64_t mask;
uint8_t ret = CHANNEL_NONE;
for (uint8_t i = 0; i < 4; i++) {
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
if (!(mke_tracking & mask)) {
ret = (uint8_t) i;
break;
}
}
return ret;
}
uint8_t
SettingsBusTracking::next_free_mfm_channel()
{
if ((mfm_tracking & 0xff00ULL) && !(mfm_tracking & 0x00ffULL))
return 1;
uint64_t mask;
uint8_t ret = CHANNEL_NONE;
if (!(mfm_tracking & 0xff00ULL) && (mfm_tracking & 0x00ffULL))
return 0;
for (uint8_t i = 0; i < 2; i++) {
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
return CHANNEL_NONE;
if (!(mfm_tracking & mask)) {
ret = (uint8_t) i;
break;
}
}
return ret;
}
uint8_t
SettingsBusTracking::next_free_esdi_channel()
{
if ((esdi_tracking & 0xff00ULL) && !(esdi_tracking & 0x00ffULL))
return 1;
uint64_t mask;
uint8_t ret = CHANNEL_NONE;
if (!(esdi_tracking & 0xff00ULL) && (esdi_tracking & 0x00ffULL))
return 0;
for (uint8_t i = 0; i < 2; i++) {
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
return CHANNEL_NONE;
if (!(esdi_tracking & mask)) {
ret = (uint8_t) i;
break;
}
}
return ret;
}
uint8_t
SettingsBusTracking::next_free_xta_channel()
{
if ((xta_tracking & 0xff00ULL) && !(xta_tracking & 0x00ffULL))
return 1;
uint64_t mask;
uint8_t ret = CHANNEL_NONE;
if (!(xta_tracking & 0xff00ULL) && (xta_tracking & 0x00ffULL))
return 0;
for (uint8_t i = 0; i < 2; i++) {
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
return CHANNEL_NONE;
if (!(xta_tracking & mask)) {
ret = (uint8_t) i;
break;
}
}
return ret;
}
uint8_t
@@ -204,22 +244,33 @@ QList<int> SettingsBusTracking::busChannelsInUse(const int bus) {
int element;
uint64_t mask;
switch (bus) {
case CDROM_BUS_MKE:
for (uint8_t i = 0; i < 4; i++) {
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
if (mke_tracking & mask)
channelsInUse.append(i);
}
break;
case CDROM_BUS_MITSUMI:
if (mitsumi_tracking)
channelsInUse.append(0);
break;
case HDD_BUS_MFM:
for (uint8_t i = 0; i < 32; i++) {
for (uint8_t i = 0; i < 2; i++) {
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
if (mfm_tracking & mask)
channelsInUse.append(i);
}
break;
case HDD_BUS_ESDI:
for (uint8_t i = 0; i < 32; i++) {
for (uint8_t i = 0; i < 2; i++) {
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
if (esdi_tracking & mask)
channelsInUse.append(i);
}
break;
case HDD_BUS_XTA:
for (uint8_t i = 0; i < 32; i++) {
for (uint8_t i = 0; i < 2; i++) {
mask = 0xffULL << ((uint64_t) ((i << 3) & 0x3f));
if (xta_tracking & mask)
channelsInUse.append(i);
@@ -263,6 +314,17 @@ SettingsBusTracking::device_track(int set, uint8_t dev_type, int bus, int channe
uint64_t mask;
switch (bus) {
case CDROM_BUS_MKE:
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));
if (set)
mke_tracking |= mask;
else
mke_tracking &= ~mask;
break;
case CDROM_BUS_MITSUMI:
mitsumi_tracking = set;
break;
case HDD_BUS_MFM:
mask = ((uint64_t) dev_type) << ((uint64_t) ((channel << 3) & 0x3f));

View File

@@ -31,12 +31,14 @@ public:
QList<int> busChannelsInUse(int bus);
/* These return 0xff is none is free. */
uint8_t next_free_mke_channel();
uint8_t next_free_mfm_channel();
uint8_t next_free_esdi_channel();
uint8_t next_free_xta_channel();
uint8_t next_free_ide_channel();
uint8_t next_free_scsi_id();
int mke_bus_full();
int mfm_bus_full();
int esdi_bus_full();
int xta_bus_full();
@@ -49,6 +51,8 @@ public:
void device_track(int set, uint8_t dev_type, int bus, int channel);
private:
/* 1 channel, 2 devices per channel, 8 bits per device = 16 bits. */
uint64_t mke_tracking { 0 };
/* 1 channel, 2 devices per channel, 8 bits per device = 16 bits. */
uint64_t mfm_tracking { 0 };
/* 1 channel, 2 devices per channel, 8 bits per device = 16 bits. */
@@ -61,6 +65,8 @@ private:
8 bits per device (future-proofing) = 2048 bits. */
uint64_t scsi_tracking[32] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
bool mitsumi_tracking;
};
#endif // QT_SETTINGS_BUS_TRACKING_HPP

View File

@@ -183,7 +183,7 @@ SettingsDisplay::on_comboBoxVideo_currentIndexChanged(int index)
bool machineHasMca = machine_has_bus(machineId, MACHINE_BUS_MCA) > 0;
bool videoCardHas8514 = ((videoCard[0] == VID_INTERNAL) ? machine_has_flags(machineId, MACHINE_VIDEO_8514A) : (video_card_get_flags(videoCard[0]) == VIDEO_FLAG_TYPE_8514));
bool videoCardHasXga = ((videoCard[0] == VID_INTERNAL) ? machine_has_flags(machineId, MACHINE_VIDEO_XGA) : (video_card_get_flags(videoCard[0]) == VIDEO_FLAG_TYPE_XGA));
bool videoCardHasXga = ((videoCard[0] == VID_INTERNAL) ? 0 : (video_card_get_flags(videoCard[0]) == VIDEO_FLAG_TYPE_XGA));
bool machineSupports8514 = ((machineHasIsa16 || machineHasMca) && !videoCardHas8514);
bool machineSupportsXga = ((machineHasMca && device_available(&xga_device)) && !videoCardHasXga);

View File

@@ -69,6 +69,7 @@ setCDROMBus(QAbstractItemModel *model, const QModelIndex &idx, uint8_t bus, uint
case CDROM_BUS_ATAPI:
case CDROM_BUS_SCSI:
case CDROM_BUS_MITSUMI:
case CDROM_BUS_MKE:
icon = QIcon(":/settings/qt/icons/cdrom.ico");
break;
}
@@ -149,7 +150,7 @@ SettingsFloppyCDROM::SettingsFloppyCDROM(QWidget *parent)
this, &SettingsFloppyCDROM::onFloppyRowChanged);
ui->tableViewFloppy->setCurrentIndex(model->index(0, 0));
Harddrives::populateRemovableBuses(ui->comboBoxBus->model());
Harddrives::populateCDROMBuses(ui->comboBoxBus->model());
model = ui->comboBoxSpeed->model();
for (int i = 0; i < 72; i++)
Models::AddEntry(model, QString("%1x").arg(i + 1), i + 1);
@@ -170,11 +171,12 @@ SettingsFloppyCDROM::SettingsFloppyCDROM(QWidget *parent)
setCDROMSpeed(model, idx.siblingAtColumn(1), cdrom[i].speed);
else
setCDROMSpeed(model, idx.siblingAtColumn(1), speed);
if (cdrom[i].bus_type == CDROM_BUS_ATAPI)
if (cdrom[i].bus_type == CDROM_BUS_MKE)
Harddrives::busTrackClass->device_track(1, DEV_CDROM, cdrom[i].bus_type, cdrom[i].mke_channel);
else if (cdrom[i].bus_type == CDROM_BUS_ATAPI)
Harddrives::busTrackClass->device_track(1, DEV_CDROM, cdrom[i].bus_type, cdrom[i].ide_channel);
else if (cdrom[i].bus_type == CDROM_BUS_SCSI)
Harddrives::busTrackClass->device_track(1, DEV_CDROM, cdrom[i].bus_type,
cdrom[i].scsi_device_id);
Harddrives::busTrackClass->device_track(1, DEV_CDROM, cdrom[i].bus_type, cdrom[i].scsi_device_id);
else if (cdrom[i].bus_type == CDROM_BUS_MITSUMI)
Harddrives::busTrackClass->device_track(1, DEV_CDROM, cdrom[i].bus_type, 0);
}
@@ -195,9 +197,10 @@ SettingsFloppyCDROM::SettingsFloppyCDROM(QWidget *parent)
int selectedTypeRow = 0;
int eligibleRows = 0;
while (cdrom_drive_types[j].bus_type != BUS_TYPE_NONE) {
if (((bus_type == CDROM_BUS_ATAPI) || (bus_type == CDROM_BUS_SCSI)) &&
if (((bus_type == CDROM_BUS_MKE) || (bus_type == CDROM_BUS_ATAPI) ||
(bus_type == CDROM_BUS_SCSI)) &&
((cdrom_drive_types[j].bus_type == bus_type) ||
(cdrom_drive_types[j].bus_type == BUS_TYPE_BOTH))) {
((cdrom_drive_types[j].bus_type == BUS_TYPE_BOTH) && (bus_type != BUS_TYPE_MKE)))) {
QString name = CDROMName(j);
Models::AddEntry(modelType, name, j);
if (cdrom[cdromIdx].type == j)
@@ -286,9 +289,10 @@ SettingsFloppyCDROM::onCDROMRowChanged(const QModelIndex &current)
int selectedTypeRow = 0;
int eligibleRows = 0;
while (cdrom_drive_types[j].bus_type != BUS_TYPE_NONE) {
if (((bus == CDROM_BUS_ATAPI) || (bus == CDROM_BUS_SCSI)) &&
if (((bus == CDROM_BUS_MKE) || (bus == CDROM_BUS_ATAPI) ||
(bus == CDROM_BUS_SCSI)) &&
((cdrom_drive_types[j].bus_type == bus) ||
(cdrom_drive_types[j].bus_type == BUS_TYPE_BOTH))) {
((cdrom_drive_types[j].bus_type == BUS_TYPE_BOTH) && (bus != BUS_TYPE_MKE)))) {
QString name = CDROMName(j);
Models::AddEntry(modelType, name, j);
if (type == j)
@@ -366,7 +370,9 @@ SettingsFloppyCDROM::on_comboBoxBus_activated(int)
Harddrives::busTrackClass->device_track(0, DEV_CDROM, ui->tableViewCDROM->model()->data(i,
Qt::UserRole).toInt(), ui->tableViewCDROM->model()->data(i,
Qt::UserRole + 1).toInt());
if (bus_type == CDROM_BUS_ATAPI)
if (bus_type == CDROM_BUS_MKE)
ui->comboBoxChannel->setCurrentIndex(Harddrives::busTrackClass->next_free_mke_channel());
else if (bus_type == CDROM_BUS_ATAPI)
ui->comboBoxChannel->setCurrentIndex(Harddrives::busTrackClass->next_free_ide_channel());
else if (bus_type == CDROM_BUS_SCSI)
ui->comboBoxChannel->setCurrentIndex(Harddrives::busTrackClass->next_free_scsi_id());
@@ -388,9 +394,10 @@ SettingsFloppyCDROM::on_comboBoxBus_activated(int)
int selectedTypeRow = 0;
int eligibleRows = 0;
while (cdrom_drive_types[j].bus_type != BUS_TYPE_NONE) {
if (((bus_type == CDROM_BUS_ATAPI) || (bus_type == CDROM_BUS_SCSI)) &&
if (((bus_type == CDROM_BUS_MKE) || (bus_type == CDROM_BUS_ATAPI) ||
(bus_type == CDROM_BUS_SCSI)) &&
((cdrom_drive_types[j].bus_type == bus_type) ||
(cdrom_drive_types[j].bus_type == BUS_TYPE_BOTH))) {
((cdrom_drive_types[j].bus_type == BUS_TYPE_BOTH) && (bus_type != BUS_TYPE_MKE)))) {
QString name = CDROMName(j);
Models::AddEntry(modelType, name, j);
if (cdrom[cdromIdx].type == j)

View File

@@ -27,6 +27,7 @@ extern "C" {
#include <86box/86box.h>
#include <86box/device.h>
#include <86box/machine.h>
#include <86box/keyboard.h>
#include <86box/mouse.h>
#include <86box/gameport.h>
#include <86box/ui.h>
@@ -90,7 +91,9 @@ SettingsInput::~SettingsInput()
void
SettingsInput::save()
{
keyboard_type = ui->comboBoxKeyboard->currentData().toInt();
mouse_type = ui->comboBoxMouse->currentData().toInt();
joystick_type = ui->comboBoxJoystick->currentData().toInt();
// Copy accelerators from working set to global set
@@ -108,10 +111,46 @@ SettingsInput::onCurrentMachineChanged(int machineId)
// win_settings_video_proc, WM_INITDIALOG
this->machineId = machineId;
auto *mouseModel = ui->comboBoxMouse->model();
auto removeRows = mouseModel->rowCount();
auto *keyboardModel = ui->comboBoxKeyboard->model();
auto removeRows = keyboardModel->rowCount();
int selectedRow = 0;
int c = 0;
int has_int_kbd = !!machine_has_flags(machineId, MACHINE_KEYBOARD);
for (int i = 0; i < keyboard_get_ndev(); ++i) {
const auto *dev = keyboard_get_device(i);
int ikbd = (i == KEYBOARD_TYPE_INTERNAL);
if ((ikbd != has_int_kbd) || !device_is_valid(dev, machineId))
continue;
QString name = DeviceConfig::DeviceName(dev, keyboard_get_internal_name(i), 0);
int row = keyboardModel->rowCount();
keyboardModel->insertRow(row);
auto idx = keyboardModel->index(row, 0);
keyboardModel->setData(idx, name, Qt::DisplayRole);
keyboardModel->setData(idx, i, Qt::UserRole);
if (i == keyboard_type)
selectedRow = row - removeRows;
c++;
}
keyboardModel->removeRows(0, removeRows);
ui->comboBoxKeyboard->setCurrentIndex(selectedRow);
if ((c == 1) || has_int_kbd)
ui->comboBoxKeyboard->setEnabled(false);
else
ui->comboBoxKeyboard->setEnabled(true);
auto *mouseModel = ui->comboBoxMouse->model();
removeRows = mouseModel->rowCount();
selectedRow = 0;
for (int i = 0; i < mouse_get_ndev(); ++i) {
const auto *dev = mouse_get_device(i);
if ((i == MOUSE_TYPE_INTERNAL) && (machine_has_flags(machineId, MACHINE_MOUSE) == 0))
@@ -245,6 +284,13 @@ SettingsInput::on_pushButtonClearBind_clicked()
strcpy(acc_keys_t[accKeyID].seq, "");
}
void
SettingsInput::on_comboBoxKeyboard_currentIndexChanged(int index)
{
int keyboardId = ui->comboBoxKeyboard->currentData().toInt();
ui->pushButtonConfigureKeyboard->setEnabled(keyboard_has_config(keyboardId) > 0);
}
void
SettingsInput::on_comboBoxMouse_currentIndexChanged(int index)
{
@@ -265,6 +311,13 @@ SettingsInput::on_comboBoxJoystick_currentIndexChanged(int index)
}
}
void
SettingsInput::on_pushButtonConfigureKeyboard_clicked()
{
int keyboardId = ui->comboBoxKeyboard->currentData().toInt();
DeviceConfig::ConfigureDevice(keyboard_get_device(keyboardId));
}
void
SettingsInput::on_pushButtonConfigureMouse_clicked()
{

View File

@@ -26,6 +26,9 @@ public slots:
void onCurrentMachineChanged(int machineId);
private slots:
void on_comboBoxKeyboard_currentIndexChanged(int index);
void on_pushButtonConfigureKeyboard_clicked();
void on_comboBoxMouse_currentIndexChanged(int index);
void on_pushButtonConfigureMouse_clicked();

View File

@@ -24,14 +24,14 @@
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="labelMouse">
<widget class="QLabel" name="labelKeyboard">
<property name="text">
<string>Mouse:</string>
<string>Keyboard:</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QComboBox" name="comboBoxMouse">
<widget class="QComboBox" name="comboBoxKeyboard">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -44,7 +44,7 @@
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButtonConfigureMouse">
<widget class="QPushButton" name="pushButtonConfigureKeyboard">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -57,55 +57,88 @@
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="labelMouse">
<property name="text">
<string>Mouse:</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QComboBox" name="comboBoxMouse">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maxVisibleItems">
<number>30</number>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="pushButtonConfigureMouse">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="labelJoystick">
<property name="text">
<string>Joystick:</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<item row="2" column="1" colspan="2">
<widget class="QComboBox" name="comboBoxJoystick">
<property name="maxVisibleItems">
<number>30</number>
</property>
</widget>
</item>
<item row="2" column="0">
<item row="3" column="0">
<widget class="QPushButton" name="pushButtonJoystick1">
<property name="text">
<string>Joystick 1...</string>
</property>
</widget>
</item>
<item row="2" column="1">
<item row="3" column="1">
<widget class="QPushButton" name="pushButtonJoystick2">
<property name="text">
<string>Joystick 2...</string>
</property>
</widget>
</item>
<item row="2" column="2">
<item row="3" column="2">
<widget class="QPushButton" name="pushButtonJoystick3">
<property name="text">
<string>Joystick 3...</string>
</property>
</widget>
</item>
<item row="2" column="3">
<item row="3" column="3">
<widget class="QPushButton" name="pushButtonJoystick4">
<property name="text">
<string>Joystick 4...</string>
</property>
</widget>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="labelKeys">
<property name="text">
<string>Key Bindings:</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="4">
<item row="5" column="0" colspan="4">
<widget class="QTableWidget" name="tableKeys">
<property name="editTriggers">
<set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
@@ -124,7 +157,7 @@
</property>
</widget>
</item>
<item row="5" column="2">
<item row="6" column="2">
<widget class="QPushButton" name="pushButtonClearBind">
<property name="enabled">
<bool>false</bool>
@@ -134,7 +167,7 @@
</property>
</widget>
</item>
<item row="5" column="3">
<item row="6" column="3">
<widget class="QPushButton" name="pushButtonBind">
<property name="enabled">
<bool>false</bool>

View File

@@ -124,6 +124,7 @@ SettingsOtherRemovable::SettingsOtherRemovable(QWidget *parent)
ui->setupUi(this);
Harddrives::populateRemovableBuses(ui->comboBoxMOBus->model());
ui->comboBoxMOBus->model()->removeRows(3, ui->comboBoxMOBus->model()->rowCount() - 3);
auto *model = ui->comboBoxMOType->model();
for (uint32_t i = 0; i < KNOWN_MO_DRIVE_TYPES; i++) {
Models::AddEntry(model, moDriveTypeName(i), i);
@@ -147,6 +148,8 @@ SettingsOtherRemovable::SettingsOtherRemovable(QWidget *parent)
ui->tableViewMO->setCurrentIndex(model->index(0, 0));
Harddrives::populateRemovableBuses(ui->comboBoxRDiskBus->model());
if ((ui->comboBoxRDiskBus->model()->rowCount() - 3) > 0)
ui->comboBoxRDiskBus->model()->removeRows(3, ui->comboBoxRDiskBus->model()->rowCount() - 3);
model = ui->comboBoxRDiskType->model();
for (uint32_t i = 0; i < KNOWN_RDISK_DRIVE_TYPES; i++) {
Models::AddEntry(model, rdiskDriveTypeName(i), i);

View File

@@ -108,15 +108,10 @@ SettingsStorageControllers::onCurrentMachineChanged(int machineId)
ui->comboBoxFD->setCurrentIndex(selectedRow);
/*CD interface controller config*/
#ifdef USE_CDROM_MITSUMI
ui->labelCDInterface->setVisible(true);
ui->comboBoxCDInterface->setVisible(true);
ui->pushButtonCDInterface->setVisible(true);
#else
ui->labelCDInterface->setVisible(false);
ui->comboBoxCDInterface->setVisible(false);
ui->pushButtonCDInterface->setVisible(false);
#endif
c = 0;
model = ui->comboBoxCDInterface->model();
removeRows = model->rowCount();

View File

@@ -46,6 +46,7 @@
#include <86box/scsi_pcscsi.h>
#include <86box/vid_ati_eeprom.h>
#include <86box/fifo8.h>
#include "cpu.h"
#define DC390_ROM "roms/scsi/esp_pci/INT13.BIN"
#define AM53C974_ROM "roms/scsi/esp_pci/harom.bin"
@@ -632,7 +633,10 @@ esp_dma_enable(esp_t *dev, int level)
dev->dma_enabled = 1;
timer_stop(&dev->timer);
if (((dev->rregs[ESP_CMD] & CMD_CMD) != CMD_TI) && ((dev->rregs[ESP_CMD] & CMD_CMD) != CMD_PAD)) {
timer_on_auto(&dev->timer, 40.0);
if (dev->wregs[ESP_WCCF] & 0x07)
timer_on_auto(&dev->timer, ((double)(dev->wregs[ESP_WCCF] & 0x07)) * 5.0);
else
timer_on_auto(&dev->timer, 40.0);
} else {
esp_log("Period = %lf\n", dev->period);
timer_on_auto(&dev->timer, dev->period);
@@ -702,13 +706,14 @@ esp_do_dma(esp_t *dev)
uint8_t buf[ESP_CMDFIFO_SZ];
uint32_t len;
esp_log("ESP SCSI Actual DMA len = %d\n", esp_get_tc(dev));
len = esp_get_tc(dev);
esp_log("ESP SCSI Actual DMA len=%d, cfg3=%02x.\n", len, dev->rregs[ESP_CFG3]);
switch (esp_get_phase(dev)) {
case STAT_MO:
len = MIN(len, fifo8_num_free(&dev->cmdfifo));
esp_log("ESP SCSI Message Out len=%d.\n", len);
if (len) {
if (dev->mca) {
dma_set_drq(dev->DmaChannel, 1);
@@ -1030,6 +1035,7 @@ esp_do_nodma(esp_t *dev)
/* Copy FIFO into cmdfifo */
len = esp_fifo_pop_buf(dev, buf, fifo8_num_used(&dev->fifo));
len = MIN(fifo8_num_free(&dev->cmdfifo), len);
esp_log("ESP Message Out CMD SelAtn len=%d.\n", len);
fifo8_push_all(&dev->cmdfifo, buf, len);
if (fifo8_num_used(&dev->cmdfifo) >= 1) {
@@ -1243,15 +1249,18 @@ esp_command_complete(void *priv, uint32_t status)
static void
esp_timer_on(esp_t *dev, scsi_device_t *sd, double p)
{
if (dev->mca) {
/* Normal SCSI: 5000000 bytes per second */
dev->period = (p > 0.0) ? p : (((double) sd->buffer_length) * 0.2);
} else {
if ((dev->rregs[ESP_CFG3] & 0x18) == 0x18) {
/* Fast SCSI: 10000000 bytes per second */
dev->period = (p > 0.0) ? p : (((double) sd->buffer_length) * 0.1);
} else {
/* Normal SCSI: 5000000 bytes per second */
dev->period = (p > 0.0) ? p : (((double) sd->buffer_length) * 0.2);
}
timer_on_auto(&dev->timer, dev->period + 40.0);
if ((dev->wregs[ESP_WCCF] & 0x07) == 0x00)
timer_on_auto(&dev->timer, dev->period + 40.0);
else
timer_on_auto(&dev->timer, dev->period + (((double)(dev->wregs[ESP_WCCF] & 0x07)) * 5.0));
}
static void
@@ -1407,9 +1416,9 @@ esp_reg_read(esp_t *dev, uint32_t saddr)
esp_log("ESP RINTR read old val = %02x\n", ret);
break;
case ESP_TCHI: /* Return the unique id if the value has never been written */
if (dev->mca) {
if (dev->mca)
ret = dev->rregs[ESP_TCHI];
} else {
else {
if (!dev->tchi_written)
ret = TCHI_AM53C974;
else
@@ -1437,7 +1446,7 @@ esp_reg_write(esp_t *dev, uint32_t saddr, uint32_t val)
fallthrough;
case ESP_TCLO:
case ESP_TCMID:
esp_log("ESP TCW reg%02x = %02x.\n", saddr, val);
esp_log("%04X:%08X: ESP TCW reg%02x = %02x.\n", CS, cpu_state.pc, saddr, val);
dev->rregs[ESP_RSTAT] &= ~STAT_TC;
break;
case ESP_FIFO:
@@ -1448,7 +1457,7 @@ esp_reg_write(esp_t *dev, uint32_t saddr, uint32_t val)
break;
case ESP_CMD:
dev->rregs[ESP_CMD] = val;
if (!esp_cmd_is_valid(dev, dev->rregs[saddr])) {
if (!esp_cmd_is_valid(dev, dev->rregs[ESP_CMD])) {
dev->rregs[ESP_RSTAT] |= INTR_IL;
esp_raise_irq(dev);
break;
@@ -1460,9 +1469,9 @@ esp_reg_write(esp_t *dev, uint32_t saddr, uint32_t val)
esp_set_tc(dev, esp_get_stc(dev));
if (!esp_get_stc(dev)) {
if (dev->rregs[ESP_CFG2] & 0x40)
esp_set_tc(dev, 0x1000000);
esp_set_tc(dev, 0x1000000 - 1);
else
esp_set_tc(dev, 0x10000);
esp_set_tc(dev, 0x10000 - 1);
}
} else {
dev->dma = 0;
@@ -1532,7 +1541,7 @@ esp_reg_write(esp_t *dev, uint32_t saddr, uint32_t val)
break;
case CMD_ENSEL:
dev->rregs[ESP_RINTR] = 0;
esp_log("ESP Enable Selection, do cmd = %d\n", dev->do_cmd);
esp_log("ESP Enable Selection.\n");
break;
case CMD_DISSEL:
dev->rregs[ESP_RINTR] = 0;
@@ -1571,9 +1580,12 @@ esp_reg_write(esp_t *dev, uint32_t saddr, uint32_t val)
static void
esp_pci_dma_memory_rw(esp_t *dev, uint8_t *buf, uint32_t len, int dir)
{
uint32_t sg_pos = 0;
uint32_t addr;
int expected_dir;
int sg_pos = 0;
uint32_t DMALen;
uint32_t DMAPtr;
uint32_t WAC = 0;
if (dev->dma_regs[DMA_CMD] & DMA_CMD_DIR)
expected_dir = READ_FROM_DEVICE;
@@ -1586,34 +1598,58 @@ esp_pci_dma_memory_rw(esp_t *dev, uint8_t *buf, uint32_t len, int dir)
}
if (dev->dma_regs[DMA_CMD] & DMA_CMD_MDL) {
if (dev->dma_regs[DMA_STC]) {
if (dev->dma_regs[DMA_WBC] > len)
dev->dma_regs[DMA_WBC] = len;
if (dev->dma_regs[DMA_WBC] < len)
len = dev->dma_regs[DMA_WBC];
if (len) {
dma_bm_read(dev->dma_regs[DMA_WMAC], (uint8_t *)&DMAPtr, 4, 4);
dev->dma_regs[DMA_WAC] = DMAPtr | dev->dma_regs[DMA_SPA];
DMALen = len;
WAC = dev->dma_regs[DMA_SPA];
for (uint32_t i = 0; i < len; i += 4) {
if (WAC == 0) {
dma_bm_read(dev->dma_regs[DMA_WMAC], (uint8_t *)&DMAPtr, 4, 4);
dev->dma_regs[DMA_WAC] = DMAPtr;
}
esp_log("WAC MDL=%08x, STC=%d, ID=%d.\n", dev->dma_regs[DMA_WAC] | (dev->dma_regs[DMA_WMAC] & 0xff000), dev->dma_regs[DMA_STC], dev->id);
for (uint32_t i = 0; i < len; i++) {
addr = dev->dma_regs[DMA_WAC];
if (expected_dir)
dma_bm_write(addr | (dev->dma_regs[DMA_WMAC] & 0xff000), &buf[sg_pos], len, 4);
else
dma_bm_read(addr | (dev->dma_regs[DMA_WMAC] & 0xff000), &buf[sg_pos], len, 4);
esp_log("Data Buffer %s: length %d (%u), pointer 0x%04X\n",
expected_dir ? "read" : "write", len, len, addr);
sg_pos++;
dev->dma_regs[DMA_WBC]--;
dev->dma_regs[DMA_WAC]++;
if (dev->dma_regs[DMA_WAC] & 0x1000) {
dev->dma_regs[DMA_WAC] = 0;
dev->dma_regs[DMA_WMAC] += 0x1000;
if (addr && DMALen) {
if (expected_dir)
dma_bm_write(addr, &buf[sg_pos], DMALen, 4);
else
dma_bm_read(addr, &buf[sg_pos], DMALen, 4);
}
sg_pos += 4;
DMALen -= 4;
/* update status registers */
dev->dma_regs[DMA_WBC] -= 4;
dev->dma_regs[DMA_WAC] += 4;
WAC += 4;
if (WAC >= 0x1000) {
WAC = 0;
dev->dma_regs[DMA_WMAC] += 4;
}
if (DMALen < 0)
DMALen = 0;
if (dev->dma_regs[DMA_WBC] <= 0) {
dev->dma_regs[DMA_WBC] = 0;
dev->dma_regs[DMA_STAT] |= DMA_STAT_DONE;
break;
}
}
}
esp_log("Finished count=%d.\n", dev->dma_regs[DMA_WBC]);
if (dev->dma_regs[DMA_WBC] == 0) {
esp_log("DMA transfer finished.\n");
dev->dma_regs[DMA_STAT] |= DMA_STAT_DONE;
}
} else {
if (dev->dma_regs[DMA_WBC] < len)
len = dev->dma_regs[DMA_WBC];
@@ -1629,8 +1665,11 @@ esp_pci_dma_memory_rw(esp_t *dev, uint8_t *buf, uint32_t len, int dir)
dev->dma_regs[DMA_WBC] -= len;
dev->dma_regs[DMA_WAC] += len;
if (dev->dma_regs[DMA_WBC] == 0)
esp_log("Finished count=%d.\n", dev->dma_regs[DMA_WBC]);
if (dev->dma_regs[DMA_WBC] == 0) {
esp_log("DMA transfer finished.\n");
dev->dma_regs[DMA_STAT] |= DMA_STAT_DONE;
}
}
}
@@ -1674,12 +1713,12 @@ esp_pci_dma_write(esp_t *dev, uint16_t saddr, uint32_t val)
scsi_device_command_stop(&scsi_devices[dev->bus][dev->id]);
break;
case 3: /*START*/
dev->dma_regs[DMA_WBC] = dev->dma_regs[DMA_STC];
dev->dma_regs[DMA_WAC] = dev->dma_regs[DMA_SPA];
dev->dma_regs[DMA_WMAC] = dev->dma_regs[DMA_SMDLA] & 0xfffffffc;
if (!dev->dma_regs[DMA_STC])
dev->dma_regs[DMA_STC] = 0x1000000;
dev->dma_regs[DMA_WBC] = dev->dma_regs[DMA_STC];
if (val & DMA_CMD_MDL)
dev->dma_regs[DMA_WMAC] = dev->dma_regs[DMA_SMDLA] & 0xfffffffc;
dev->dma_regs[DMA_STAT] &= ~(DMA_STAT_BCMBLT | DMA_STAT_SCSIINT | DMA_STAT_DONE | DMA_STAT_ABORT | DMA_STAT_ERROR | DMA_STAT_PWDN);
esp_dma_enable(dev, 1);
esp_log("PCI DMA enable, MDL bit=%02x, SPA=%08x, SMDLA=%08x, STC=%d, ID=%d, SCSICMD=%02x.\n", val & DMA_CMD_MDL, dev->dma_regs[DMA_SPA], dev->dma_regs[DMA_SMDLA], dev->dma_regs[DMA_STC], dev->id, dev->cmdfifo.data[1]);
@@ -2505,7 +2544,7 @@ ncr53c9x_mca_init(const device_t *info)
timer_add(&dev->timer, esp_callback, dev, 0);
scsi_bus_set_speed(dev->bus, 5000000.0);
scsi_bus_set_speed(dev->bus, 10000000.0);
return dev;
}

View File

@@ -523,7 +523,7 @@ ali5123_init(const device_t *info)
io_sethandler(FDC_PRIMARY_ADDR, 0x0002,
ali5123_read, NULL, NULL, ali5123_write, NULL, NULL, dev);
device_add(&keyboard_ps2_ali_pci_device);
device_add(&kbc_ps2_ali_pci_device);
return dev;
}

View File

@@ -1835,20 +1835,20 @@ fdc37c93x_init(const device_t *info)
switch (dev->kbc_type) {
case FDC37C931:
dev->kbc = device_add(&keyboard_ps2_compaq_device);
dev->kbc = device_add(&kbc_ps2_compaq_device);
break;
case FDC37C932:
dev->kbc = device_add(&keyboard_ps2_intel_ami_pci_device);
dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device);
break;
case FDC37C933:
default:
dev->kbc = device_add(&keyboard_ps2_pci_device);
dev->kbc = device_add(&kbc_ps2_pci_device);
break;
case FDC37C935:
dev->kbc = device_add(&keyboard_ps2_phoenix_device);
dev->kbc = device_add(&kbc_ps2_phoenix_device);
break;
case FDC37C937:
dev->kbc = device_add(&keyboard_ps2_phoenix_pci_device);
dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
break;
}

Some files were not shown because too many files have changed in this diff Show More