Merge branch 'master' into pc98x1

This commit is contained in:
TC1995
2025-02-18 17:06:59 +01:00
103 changed files with 826 additions and 483 deletions

View File

@@ -542,11 +542,12 @@ then
sudo sed -i -e 's/configure.env-append MAKE=/configure.env-append VULKAN_SDK=${prefix} MAKE=/g' "$qt5_portfile"
fi
# Patch openal-soft to use 1.23.1 on all targets instead of 1.24.1 on >=10.15 only,
# Patch openal-soft to use 1.23.1 on all targets instead of 1.24.2 on >=10.13 only,
# to prevent a symlink mismatch from having different versions on x86_64 and arm64.
# See: https://github.com/macports/macports-ports/commit/9b4903fc9c76769d476079e404c9a3b8a225f8aa
# https://github.com/macports/macports-ports/commit/788deb64dc0695e8d04afb32ed904947f2a7591b
openal_portfile="$macports/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/audio/openal-soft/Portfile"
sudo sed -i -e 's/if {${os.platform} ne "darwin" || ${os.major} >= 19}/if {0}/g' "$openal_portfile"
sudo sed -i -e 's/if {${os.platform} ne "darwin" ||/if {0 \&\&/g' "$openal_portfile"
# Patch wget to remove libproxy support, as it depends on shared-mime-info which
# fails to build for a 10.13 target, which we have to do despite wget only being

View File

@@ -210,6 +210,7 @@ int video_fullscreen_scale_maximized = 0; /* (C) Whether
int do_auto_pause = 0; /* (C) Auto-pause the emulator on focus
loss */
int hook_enabled = 1; /* (C) Keyboard hook is enabled */
int test_mode = 0; /* (C) Test mode */
char uuid[MAX_UUID_LEN] = { '\0' }; /* (C) UUID or machine identifier */
int other_ide_present = 0; /* IDE controllers from non-IDE cards are
@@ -457,7 +458,7 @@ delete_nvr_file(uint8_t flash)
int c;
/* Set up the NVR file's name. */
c = strlen(machine_get_internal_name()) + 5;
c = strlen(machine_get_nvr_name()) + 5;
fn = (char *) malloc(c + 1);
if (fn == NULL)
@@ -465,9 +466,9 @@ delete_nvr_file(uint8_t flash)
flash ? "BIOS flash" : "CMOS");
if (flash)
sprintf(fn, "%s.bin", machine_get_internal_name());
sprintf(fn, "%s.bin", machine_get_nvr_name());
else
sprintf(fn, "%s.nvr", machine_get_internal_name());
sprintf(fn, "%s.nvr", machine_get_nvr_name());
remove(nvr_path(fn));
@@ -585,6 +586,7 @@ usage:
#ifndef USE_SDL_UI
printf("-S or --settings - show only the settings dialog\n");
#endif
printf("-T or --testmode - test mode: execute the test mode entry point on init/hard reset\n");
printf("-V or --vmname name - overrides the name of the running VM\n");
printf("-W or --nohook - disables keyboard hook (compatibility-only outside Windows)\n");
printf("-X or --clear what - clears the 'what' (cmos/flash/both)\n");
@@ -656,6 +658,8 @@ usage:
} else if (!strcasecmp(argv[c], "--settings") || !strcasecmp(argv[c], "-S")) {
settings_only = 1;
#endif
} else if (!strcasecmp(argv[c], "--testmode") || !strcasecmp(argv[c], "-T")) {
test_mode = 1;
} else if (!strcasecmp(argv[c], "--noconfirm") || !strcasecmp(argv[c], "-N")) {
confirm_exit_cmdl = 0;
} else if (!strcasecmp(argv[c], "--missing") || !strcasecmp(argv[c], "-M")) {
@@ -1112,6 +1116,27 @@ pc_send_cae(void)
pc_send_ca(1);
}
/*
Currently available API:
extern void resetx86(void);
extern void softresetx86(void);
extern void hardresetx86(void);
extern void prefetch_queue_set_pos(int pos);
extern void prefetch_queue_set_ip(uint16_t ip);
extern void prefetch_queue_set_prefetching(int p);
extern int prefetch_queue_get_pos(void);
extern uint16_t prefetch_queue_get_ip(void);
extern int prefetch_queue_get_prefetching(void);
extern int prefetch_queue_get_size(void);
*/
static void
pc_test_mode_entry_point(void)
{
pclog("Test mode entry point\n=====================\n");
}
void
pc_reset_hard_close(void)
{
@@ -1313,6 +1338,9 @@ pc_reset_hard_init(void)
update_mouse_msg();
if (test_mode)
pc_test_mode_entry_point();
ui_hard_reset_completed();
}

View File

@@ -103,7 +103,7 @@ static const device_t cdrom_interface_none_device = {
.init = NULL,
.close = NULL,
.reset = NULL,
{ .available = NULL },
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL

View File

@@ -459,7 +459,7 @@ mitsumi_cdrom_close(void *priv)
const device_t mitsumi_cdrom_device = {
.name = "Mitsumi CD-ROM interface",
.internal_name = "mcd",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = mitsumi_cdrom_init,
.close = mitsumi_cdrom_close,

View File

@@ -493,7 +493,7 @@ ali6117_init(const device_t *info)
const device_t ali1217_device = {
.name = "ALi M1217",
.internal_name = "ali1217",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x8,
.init = ali6117_init,
.close = ali6117_close,
@@ -507,7 +507,7 @@ const device_t ali1217_device = {
const device_t ali6117d_device = {
.name = "ALi M6117D",
.internal_name = "ali6117d",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x2,
.init = ali6117_init,
.close = ali6117_close,

View File

@@ -27,14 +27,13 @@
#include <wchar.h>
#define HAVE_STDARG_H
#include <86box/86box.h>
#include "cpu.h"
#include <86box/device.h>
#include <86box/io.h>
#include <86box/mem.h>
#include <86box/plat_unused.h>
#include <86box/chipset.h>
#define NEAT_DEBUG 0
#define EMS_MAXPAGE 4
#define EMS_PGSIZE 16384
#define EMS_PGMASK 16383
@@ -263,13 +262,71 @@ neat_log(const char *fmt, ...)
# define neat_log(fmt, ...)
#endif
static uint8_t
neat_read_ram(uint32_t addr, void *priv)
{
neat_t *dev = (neat_t *) priv;
if (dev->regs[REG_RB7] & RB7_EMSEN)
addr += (dev->ems_size << 10);
if (cpu_use_exec)
addreadlookup(mem_logical_addr, addr);
return ram[addr];
}
static uint16_t
neat_read_ramw(uint32_t addr, void *priv)
{
neat_t *dev = (neat_t *) priv;
if (dev->regs[REG_RB7] & RB7_EMSEN)
addr += (dev->ems_size << 10);
if (cpu_use_exec)
addreadlookup(mem_logical_addr, addr);
return *(uint16_t *) &ram[addr];
}
static void
neat_write_ram(uint32_t addr, uint8_t val, void *priv)
{
neat_t *dev = (neat_t *) priv;
if (dev->regs[REG_RB7] & RB7_EMSEN)
addr += (dev->ems_size << 10);
if (cpu_use_exec) {
addwritelookup(mem_logical_addr, addr);
mem_write_ramb_page(addr, val, &pages[addr >> 12]);
} else
ram[addr] = val;
}
static void
neat_write_ramw(uint32_t addr, uint16_t val, void *priv)
{
neat_t *dev = (neat_t *) priv;
if (dev->regs[REG_RB7] & RB7_EMSEN)
addr += (dev->ems_size << 10);
if (cpu_use_exec) {
addwritelookup(mem_logical_addr, addr);
mem_write_ramw_page(addr, val, &pages[addr >> 12]);
} else
*(uint16_t *) &ram[addr] = val;
}
/* Read one byte from paged RAM. */
static uint8_t
ems_readb(uint32_t addr, void *priv)
{
ram_page_t *dev = (ram_page_t *) priv;
uint8_t ret = 0xff;
#ifdef ENABLE_NEAT_LOG
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
uint32_t old = addr;
#endif
@@ -279,7 +336,9 @@ ems_readb(uint32_t addr, void *priv)
if (addr < (mem_size << 10))
ret = *(uint8_t *) &(ram[addr]);
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
neat_log("[R08] %08X -> %08X (%08X): ret = %02X\n", old, addr, (mem_size << 10), ret);
#endif
return ret;
}
@@ -289,7 +348,7 @@ ems_readw(uint32_t addr, void *priv)
{
ram_page_t *dev = (ram_page_t *) priv;
uint16_t ret = 0xffff;
#ifdef ENABLE_NEAT_LOG
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
uint32_t old = addr;
#endif
@@ -299,7 +358,9 @@ ems_readw(uint32_t addr, void *priv)
if (addr < (mem_size << 10))
ret = *(uint16_t *) &(ram[addr]);
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
neat_log("[R16] %08X -> %08X (%08X): ret = %04X\n", old, addr, (mem_size << 10), ret);
#endif
return ret;
}
@@ -308,13 +369,15 @@ static void
ems_writeb(uint32_t addr, uint8_t val, void *priv)
{
ram_page_t *dev = (ram_page_t *) priv;
#ifdef ENABLE_NEAT_LOG
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
uint32_t old = addr;
#endif
/* Write the data. */
addr = addr - dev->virt_base + dev->phys_base;
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
neat_log("[W08] %08X -> %08X (%08X): val = %02X\n", old, addr, (mem_size << 10), val);
#endif
if (addr < (mem_size << 10))
*(uint8_t *) &(ram[addr]) = val;
@@ -325,13 +388,15 @@ static void
ems_writew(uint32_t addr, uint16_t val, void *priv)
{
ram_page_t *dev = (ram_page_t *) priv;
#ifdef ENABLE_NEAT_LOG
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
uint32_t old = addr;
#endif
/* Write the data. */
addr = addr - dev->virt_base + dev->phys_base;
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
neat_log("[W16] %08X -> %08X (%08X): val = %04X\n", old, addr, (mem_size << 10), val);
#endif
if (addr < (mem_size << 10))
*(uint16_t *) &(ram[addr]) = val;
@@ -446,7 +511,7 @@ ems_recalc(neat_t *dev, ram_page_t *ems)
neat_mem_update_state(dev, ems->virt_base, EMS_PGSIZE, MEM_FLAG_EMS, MEM_FMASK_EMS);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT EMS: page %d set to %08lx, %sabled)\n",
ems->page, ems->addr - ram, ems->enabled ? "en" : "dis");
#endif
@@ -469,7 +534,7 @@ ems_write(uint16_t port, uint8_t val, void *priv)
int8_t new_enabled;
uint32_t new_phys_base;
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: ems_write(%04x, %02x)\n", port, val);
#endif
@@ -518,6 +583,7 @@ ems_read(uint16_t port, void *priv)
switch (port & 0x000f) {
case 0x0008: /* page number register */
case 0x0009:
ret = (dev->ems[vpage].phys_base / EMS_PGSIZE) & 0x7f;
if (dev->ems[vpage].enabled)
ret |= 0x80;
@@ -528,7 +594,7 @@ ems_read(uint16_t port, void *priv)
neat_log("Port: %04X, ret: %02X\n", port, ret);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: ems_read(%04x) = %02x\n", port, ret);
#endif
@@ -603,9 +669,11 @@ remap_update(neat_t *dev, uint8_t val)
else
mem_mapping_set_addr(&ram_low_mapping, 0x00000000, dev->remap_base << 10);
if (dev->remap_base > 1024)
if (dev->remap_base > 1024) {
mem_mapping_set_addr(&ram_high_mapping, 0x00100000, (dev->remap_base << 10) - 0x00100000);
else
mem_mapping_set_exec(&ram_high_mapping, &(ram[(val & RB7_EMSEN) ? 0x00100000 :
(0x00100000 + (dev->ems_size << 10))]));
} else
mem_mapping_disable(&ram_high_mapping);
if (val & RB7_UMAREL) {
@@ -625,7 +693,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
uint8_t *reg;
int i;
#if NEAT_DEBUG > 2
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: write(%04x, %02x)\n", port, val);
#endif
@@ -643,7 +711,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
*reg = (*reg & ~RA0_MASK) | val | (RA0_REV_ID << RA0_REV_SH);
if ((xval & 0x20) && (val & 0x20))
outb(0x64, 0xfe);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RA0=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -651,7 +719,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
case REG_RA1:
val &= RA1_MASK;
*reg = (*reg & ~RA1_MASK) | val;
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RA1=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -659,7 +727,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
case REG_RA2:
val &= RA2_MASK;
*reg = (*reg & ~RA2_MASK) | val;
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RA2=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -667,7 +735,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
case REG_RB0:
val &= RB0_MASK;
*reg = (*reg & ~RB0_MASK) | val | (RB0_REV_ID << RB0_REV_SH);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB0=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -676,7 +744,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
val &= RB1_MASK;
*reg = (*reg & ~RB1_MASK) | val;
shadow_recalc(dev);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB1=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -688,7 +756,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
neat_mem_update_state(dev, 0x00080000, 0x00020000, MEM_FLAG_READ | MEM_FLAG_WRITE, MEM_FMASK_SHADOW);
else
neat_mem_update_state(dev, 0x00080000, 0x00020000, 0x00, MEM_FMASK_SHADOW);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB2=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -697,7 +765,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
val &= RB3_MASK;
*reg = (*reg & ~RB3_MASK) | val;
shadow_recalc(dev);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB3=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -706,7 +774,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
val &= RB4_MASK;
*reg = (*reg & ~RB4_MASK) | val;
shadow_recalc(dev);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB4=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -715,7 +783,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
val &= RB5_MASK;
*reg = (*reg & ~RB5_MASK) | val;
shadow_recalc(dev);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB5=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -723,7 +791,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
case REG_RB6:
val &= RB6_MASK;
*reg = (*reg & ~RB6_MASK) | val;
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB6=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -742,7 +810,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
if ((xval & RB7_EMSEN) && (val & RB7_EMSEN))
ems_set_handlers(dev);
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB7=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -750,7 +818,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
case REG_RB8:
val &= RB8_MASK;
*reg = (*reg & ~RB8_MASK) | val;
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB8=%02x(%02x)\n", val, *reg);
#endif
break;
@@ -758,7 +826,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
case REG_RB9:
val &= RB9_MASK;
*reg = (*reg & ~RB9_MASK) | val;
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB9=%02x(%02x)\n", val, *reg);
#endif
@@ -781,7 +849,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
case REG_RB10:
val &= RB10_MASK;
*reg = (*reg & ~RB10_MASK) | val;
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB10=%02x(%02x)\n", val, *reg);
#endif
@@ -816,7 +884,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
case REG_RB12:
val &= RB12_MASK;
*reg = (*reg & ~RB12_MASK) | val;
#if NEAT_DEBUG > 1
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: RB12=%02x(%02x)\n", val, *reg);
#endif
i = (val & RB12_EMSLEN) >> RB12_EMSLEN_SH;
@@ -845,7 +913,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
dev->ems_size);
}
mem_a20_key = val & RB12_GA20;
mem_a20_key = !(val & RB12_GA20);
mem_a20_recalc();
break;
@@ -883,7 +951,7 @@ neat_read(uint16_t port, void *priv)
break;
}
#if NEAT_DEBUG > 2
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
neat_log("NEAT: read(%04x) = %02x\n", port, ret);
#endif
@@ -908,6 +976,12 @@ neat_init(UNUSED(const device_t *info))
/* Create an instance. */
dev = (neat_t *) calloc(1, sizeof(neat_t));
if (mem_size > 1024) {
mem_mapping_set_handler(&ram_high_mapping, neat_read_ram, neat_read_ramw, NULL,
neat_write_ram, neat_write_ramw, NULL);
mem_mapping_set_p(&ram_high_mapping, dev);
}
/* Get configured I/O address. */
j = (dev->regs[REG_RB9] & RB9_BASE) >> RB9_BASE_SH;
dev->ems_base = 0x0208 + (0x10 * j);

View File

@@ -1287,9 +1287,9 @@ sis_5513_pci_to_isa_init(UNUSED(const device_t *info))
acpi_set_nvr(dev->sis->acpi, dev->nvr);
/* Set up the NVR file's name. */
c = strlen(machine_get_internal_name()) + 9;
c = strlen(machine_get_nvr_name()) + 9;
dev->fn = (char *) malloc(c + 1);
sprintf(dev->fn, "%s_apc.nvr", machine_get_internal_name());
sprintf(dev->fn, "%s_apc.nvr", machine_get_nvr_name());
fp = nvr_fopen(dev->fn, "rb");

View File

@@ -154,6 +154,48 @@ x808x_log(const char *fmt, ...)
static void pfq_add(int c, int add);
static void set_pzs(int bits);
void
prefetch_queue_set_pos(int pos)
{
pfq_pos = pos;
}
void
prefetch_queue_set_ip(uint16_t ip)
{
pfq_ip = ip;
}
void
prefetch_queue_set_prefetching(int p)
{
prefetching = p;
}
int
prefetch_queue_get_pos(void)
{
return pfq_pos;
}
uint16_t
prefetch_queue_get_ip(void)
{
return pfq_ip;
}
int
prefetch_queue_get_prefetching(void)
{
return prefetching;
}
int
prefetch_queue_get_size(void)
{
return pfq_size;
}
uint16_t
get_last_addr(void)
{

View File

@@ -373,7 +373,7 @@ cpu_is_eligible(const cpu_family_t *cpu_family, int cpu, int machine)
if (packages & CPU_PKG_SOCKET3)
packages |= CPU_PKG_SOCKET1;
else if (packages & CPU_PKG_SLOT1)
packages |= CPU_PKG_SOCKET370;
packages |= CPU_PKG_SOCKET370 | CPU_PKG_SOCKET8;
/* Package type. */
if (!(cpu_family->package & packages))

View File

@@ -821,4 +821,15 @@ extern int cpu_override_interpreter;
extern int is_lock_legal(uint32_t fetchdat);
extern void prefetch_queue_set_pos(int pos);
extern void prefetch_queue_set_ip(uint16_t ip);
extern void prefetch_queue_set_prefetching(int p);
extern int prefetch_queue_get_pos(void);
extern uint16_t prefetch_queue_get_ip(void);
extern int prefetch_queue_get_prefetching(void);
extern int prefetch_queue_get_size(void);
#define prefetch_queue_set_suspended(s) prefetch_queue_set_prefetching(!s)
#define prefetch_queue_get_suspended !prefetch_queue_get_prefetching
#endif /*EMU_CPU_H*/

View File

@@ -484,28 +484,13 @@ device_has_config(const device_t *dev)
return (c > 0) ? 1 : 0;
}
int
device_poll(const device_t *dev)
{
for (uint16_t c = 0; c < DEVICE_MAX; c++) {
if (devices[c] != NULL) {
if (devices[c] == dev) {
if (devices[c]->poll)
return (devices[c]->poll(device_priv[c]));
}
}
}
return 0;
}
void
device_get_name(const device_t *dev, int bus, char *name)
{
const char *sbus = NULL;
const char *fbus;
char *tname;
char pbus[8] = { 0 };
char pbus[12] = { 0 };
if (dev == NULL)
return;
@@ -513,14 +498,29 @@ device_get_name(const device_t *dev, int bus, char *name)
name[0] = 0x00;
if (bus) {
if (dev->flags & DEVICE_ISA)
sbus = (dev->flags & DEVICE_AT) ? "ISA16" : "ISA";
if ((dev->flags & (DEVICE_SIDECAR | DEVICE_ISA)) ==
(DEVICE_SIDECAR | DEVICE_ISA))
sbus = "ISA/Sidecar";
else if (dev->flags & DEVICE_SIDECAR)
sbus = "Sidecar";
else if (dev->flags & DEVICE_XT_KBC)
sbus = "XT KBC";
else if (dev->flags & DEVICE_ISA16)
sbus = "ISA16";
else if (dev->flags & DEVICE_AT_KBC)
sbus = "AT KBC";
else if (dev->flags & DEVICE_PS2_KBC)
sbus = "PS/2 KBC";
else if (dev->flags & DEVICE_ISA)
sbus = "ISA";
else if (dev->flags & DEVICE_CBUS)
sbus = "C-BUS";
else if (dev->flags & DEVICE_PCMCIA)
sbus = "PCMCIA";
else if (dev->flags & DEVICE_MCA)
sbus = "MCA";
else if (dev->flags & DEVICE_MCA32)
sbus = "MCA32";
else if (dev->flags & DEVICE_HIL)
sbus = "HP HIL";
else if (dev->flags & DEVICE_EISA)
@@ -534,7 +534,7 @@ device_get_name(const device_t *dev, int bus, char *name)
else if (dev->flags & DEVICE_PCI)
sbus = "PCI";
else if (dev->flags & DEVICE_CARDBUS)
sbus = "CARDBUS";
sbus = "CardBus";
else if (dev->flags & DEVICE_USB)
sbus = "USB";
else if (dev->flags & DEVICE_AGP)
@@ -637,16 +637,24 @@ device_get_instance(void)
const char *
device_get_config_string(const char *str)
{
const device_config_t *cfg = device_current.dev->config;
const char *ret = "";
while (cfg && cfg->type != CONFIG_END) {
if (!strcmp(str, cfg->name))
return (config_get_string((char *) device_current.name, (char *) str, (char *) cfg->default_string));
if (device_current.dev != NULL) {
const device_config_t *cfg = device_current.dev->config;
cfg++;
while ((cfg != NULL) && (cfg->type != CONFIG_END)) {
if (!strcmp(str, cfg->name)) {
const char *s = (config_get_string((char *) device_current.name,
(char *) str, (char *) cfg->default_string));
ret = (s == NULL) ? "" : s;
break;
}
cfg++;
}
}
return (NULL);
return ret;
}
int
@@ -787,67 +795,12 @@ device_set_config_mac(const char *str, int val)
int
device_is_valid(const device_t *device, int mch)
{
if (device == NULL)
return 1;
int ret = 1;
if ((device->flags & DEVICE_PCJR) && !machine_has_bus(mch, MACHINE_BUS_PCJR))
return 0;
if ((device != NULL) && ((device->flags & DEVICE_BUS) != 0))
ret = machine_has_bus(mch, device->flags & DEVICE_BUS);
if ((device->flags & DEVICE_XTKBC) && machine_has_bus(mch, MACHINE_BUS_ISA16) && !machine_has_bus(mch, MACHINE_BUS_DM_KBC))
return 0;
if ((device->flags & DEVICE_AT) && !machine_has_bus(mch, MACHINE_BUS_ISA16))
return 0;
if ((device->flags & DEVICE_ATKBC) && !machine_has_bus(mch, MACHINE_BUS_ISA16) && !machine_has_bus(mch, MACHINE_BUS_DM_KBC))
return 0;
if ((device->flags & DEVICE_PS2) && !machine_has_bus(mch, MACHINE_BUS_PS2_PORTS))
return 0;
if ((device->flags & DEVICE_ISA) && !machine_has_bus(mch, MACHINE_BUS_ISA))
return 0;
if ((device->flags & DEVICE_CBUS) && !machine_has_bus(mch, MACHINE_BUS_CBUS))
return 0;
if ((device->flags & DEVICE_PCMCIA) && !machine_has_bus(mch, MACHINE_BUS_PCMCIA) && !machine_has_bus(mch, MACHINE_BUS_ISA))
return 0;
if ((device->flags & DEVICE_MCA) && !machine_has_bus(mch, MACHINE_BUS_MCA))
return 0;
if ((device->flags & DEVICE_HIL) && !machine_has_bus(mch, MACHINE_BUS_HIL))
return 0;
if ((device->flags & DEVICE_EISA) && !machine_has_bus(mch, MACHINE_BUS_EISA))
return 0;
if ((device->flags & DEVICE_AT32) && !machine_has_bus(mch, MACHINE_BUS_AT32))
return 0;
if ((device->flags & DEVICE_OLB) && !machine_has_bus(mch, MACHINE_BUS_OLB))
return 0;
if ((device->flags & DEVICE_VLB) && !machine_has_bus(mch, MACHINE_BUS_VLB))
return 0;
if ((device->flags & DEVICE_PCI) && !machine_has_bus(mch, MACHINE_BUS_PCI))
return 0;
if ((device->flags & DEVICE_CARDBUS) && !machine_has_bus(mch, MACHINE_BUS_CARDBUS) && !machine_has_bus(mch, MACHINE_BUS_PCI))
return 0;
if ((device->flags & DEVICE_USB) && !machine_has_bus(mch, MACHINE_BUS_USB))
return 0;
if ((device->flags & DEVICE_AGP) && !machine_has_bus(mch, MACHINE_BUS_AGP))
return 0;
if ((device->flags & DEVICE_AC97) && !machine_has_bus(mch, MACHINE_BUS_AC97))
return 0;
return 1;
return ret;
}
int
@@ -870,24 +823,29 @@ machine_get_config_int(char *str)
return 0;
}
char *
const char *
machine_get_config_string(char *str)
{
const device_t *dev = machine_get_device(machine);
const device_config_t *cfg;
const device_t *dev = machine_get_device(machine);
const char *ret = "";
if (dev == NULL)
return 0;
if (dev != NULL) {
const device_config_t *cfg;
cfg = dev->config;
while (cfg && cfg->type != CONFIG_END) {
if (!strcmp(str, cfg->name))
return (config_get_string((char *) dev->name, str, (char *) cfg->default_string));
cfg = dev->config;
while ((cfg != NULL) && (cfg->type != CONFIG_END)) {
if (!strcmp(str, cfg->name)) {
const char *s = config_get_string((char *) dev->name, str,
(char *) cfg->default_string);
ret = (s == NULL) ? "" : s;
break;
}
cfg++;
cfg++;
}
}
return NULL;
return ret;
}
const device_t *

View File

@@ -346,7 +346,7 @@ bug_close(UNUSED(void *priv))
const device_t bugger_device = {
.name = "ISA/PCI Bus Bugger",
.internal_name = "bugger",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = bug_init,
.close = bug_close,

View File

@@ -102,9 +102,9 @@ lm78_log(const char *fmt, ...)
void
lm78_nvram(lm78_t *dev, uint8_t save)
{
size_t l = strlen(machine_get_internal_name_ex(machine)) + 14;
size_t l = strlen(machine_get_nvr_name_ex(machine)) + 14;
char *nvr_path = (char *) malloc(l);
sprintf(nvr_path, "%s_as99127f.nvr", machine_get_internal_name_ex(machine));
sprintf(nvr_path, "%s_as99127f.nvr", machine_get_nvr_name_ex(machine));
FILE *fp = nvr_fopen(nvr_path, save ? "wb" : "rb");
if (fp) {

View File

@@ -1024,7 +1024,7 @@ static const device_config_t genericxt_config[] = {
.file_filter = NULL,
.spinner = {
.min = 0,
.max = 624,
.max = 640,
.step = 16
},
.selection = { { 0 } },

View File

@@ -810,27 +810,18 @@ write_p2(atkbc_t *dev, uint8_t val)
if (!(val & 0x01)) { /* Pin 0 selected. */
/* Pin 0 selected. */
kbc_at_log("write_p2(): Pulse reset!\n");
if (machines[machine].flags & MACHINE_COREBOOT) {
/* The SeaBIOS hard reset code attempts a KBC reset if ACPI RESET_REG
is not available. However, the KBC reset is normally a soft reset, so
SeaBIOS gets caught in a soft reset loop as it tries to hard reset the
machine. Hack around this by making the KBC reset a hard reset only on
coreboot machines. */
pc_reset_hard();
} else {
softresetx86(); /* Pulse reset! */
cpu_set_edx();
flushmmucache();
if ((kbc_ven == KBC_VEN_ALI) || !strcmp(machine_get_internal_name(), "spc7700plw"))
smbase = 0x00030000;
softresetx86(); /* Pulse reset! */
cpu_set_edx();
flushmmucache();
if ((kbc_ven == KBC_VEN_ALI) || !strcmp(machine_get_internal_name(), "spc7700plw"))
smbase = 0x00030000;
/* Yes, this is a hack, but until someone gets ahold of the real PCD-2L
and can find out what they actually did to make it boot from FFFFF0
correctly despite A20 being gated when the CPU is reset, this will
have to do. */
if ((kbc_ven == KBC_VEN_SIEMENS) || !strcmp(machine_get_internal_name(), "acera1g"))
is486 ? loadcs(0xf000) : loadcs_2386(0xf000);
}
/* Yes, this is a hack, but until someone gets ahold of the real PCD-2L
and can find out what they actually did to make it boot from FFFFF0
correctly despite A20 being gated when the CPU is reset, this will
have to do. */
if ((kbc_ven == KBC_VEN_SIEMENS) || !strcmp(machine_get_internal_name(), "acera1g"))
is486 ? loadcs(0xf000) : loadcs_2386(0xf000);
}
}

View File

@@ -2216,12 +2216,12 @@ static const device_config_t keyboard_at_config[] = {
const device_t keyboard_at_generic_device = {
.name = "Standard AT or PS/2 Keyboard",
.internal_name = "ps2",
.flags = DEVICE_PS2,
.flags = DEVICE_PS2_KBC,
.local = 0,
.init = keyboard_at_init,
.close = keyboard_at_close,
.reset = NULL,
.poll = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = keyboard_at_config

View File

@@ -61,7 +61,7 @@ static const device_t mouse_none_device = {
.init = NULL,
.close = NULL,
.reset = NULL,
{ .poll = NULL },
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
@@ -75,7 +75,7 @@ static const device_t mouse_internal_device = {
.init = NULL,
.close = NULL,
.reset = NULL,
{ .poll = NULL },
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
@@ -111,7 +111,6 @@ static atomic_int mouse_buttons;
static int mouse_delta_b;
static int mouse_old_b;
static const device_t *mouse_curr;
static void *mouse_priv;
static int mouse_nbut;
static int mouse_raw;
@@ -537,17 +536,10 @@ mouse_get_abs_coords(double *x_abs, double *y_abs)
void
mouse_process(void)
{
if (mouse_curr == NULL)
return;
if ((mouse_input_mode >= 1) && mouse_poll_ex)
mouse_poll_ex();
else if ((mouse_input_mode == 0) && ((mouse_dev_poll != NULL) || (mouse_curr->poll != NULL))) {
if (mouse_curr->poll != NULL)
mouse_curr->poll(mouse_priv);
else
mouse_dev_poll(mouse_priv);
}
else if ((mouse_input_mode == 0) && (mouse_dev_poll != NULL))
mouse_dev_poll(mouse_priv);
}
void
@@ -559,9 +551,6 @@ mouse_set_poll_ex(void (*poll_ex)(void))
void
mouse_set_poll(int (*func)(void *), void *arg)
{
if (mouse_type != MOUSE_TYPE_INTERNAL)
return;
mouse_dev_poll = func;
mouse_priv = arg;
}
@@ -629,7 +618,7 @@ mouse_set_raw(int raw)
void
mouse_reset(void)
{
if (mouse_curr != NULL)
if (mouse_priv != NULL)
return; /* Mouse already initialized. */
mouse_log("MOUSE: reset(type=%d, '%s')\n",
@@ -651,19 +640,13 @@ mouse_reset(void)
sample_rate = 100.0;
timer_on_auto(&mouse_timer, 1000000.0 / sample_rate);
mouse_curr = mouse_devices[mouse_type].device;
if ((mouse_type > 1) && (mouse_curr != NULL))
mouse_priv = device_add(mouse_curr);
if ((mouse_type > 1) && (mouse_devices[mouse_type].device != NULL))
mouse_priv = device_add(mouse_devices[mouse_type].device);
}
void
mouse_close(void)
{
if (mouse_curr == NULL)
return;
mouse_curr = NULL;
mouse_priv = NULL;
mouse_nbut = 0;
mouse_dev_poll = NULL;
@@ -680,7 +663,6 @@ mouse_init(void)
mouse_clear_buttons();
mouse_type = MOUSE_TYPE_NONE;
mouse_curr = NULL;
mouse_priv = NULL;
mouse_nbut = 0;
mouse_dev_poll = NULL;

View File

@@ -680,6 +680,8 @@ bm_init(const device_t *info)
mouse_set_sample_rate(0.0);
mouse_set_poll(bm_poll, dev);
return dev;
}
@@ -818,7 +820,7 @@ const device_t mouse_logibus_device = {
.init = bm_init,
.close = bm_close,
.reset = NULL,
.poll = bm_poll,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = lt_config
@@ -832,7 +834,7 @@ const device_t mouse_logibus_onboard_device = {
.init = bm_init,
.close = bm_close,
.reset = NULL,
.poll = bm_poll,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
@@ -846,7 +848,7 @@ const device_t mouse_msinport_device = {
.init = bm_init,
.close = bm_close,
.reset = NULL,
.poll = bm_poll,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = ms_config

View File

@@ -525,6 +525,7 @@ mtouch_init(UNUSED(const device_t *info))
mouse_input_mode = device_get_config_int("crosshair") + 1;
mouse_set_buttons(2);
mouse_set_poll(mtouch_poll, dev);
mouse_set_poll_ex(mtouch_poll_global);
mtouch_inst = dev;
@@ -605,7 +606,7 @@ const device_t mouse_mtouch_device = {
.init = mtouch_init,
.close = mtouch_close,
.reset = NULL,
.poll = mtouch_poll,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = mtouch_config

View File

@@ -352,6 +352,8 @@ mouse_ps2_init(const device_t *info)
if (dev->port != NULL)
kbc_at_dev_reset(dev, 0);
mouse_set_poll(ps2_poll, dev);
/* Return our private data to the I/O layer. */
return dev;
}
@@ -392,12 +394,12 @@ static const device_config_t ps2_config[] = {
const device_t mouse_ps2_device = {
.name = "PS/2 Mouse",
.internal_name = "ps2",
.flags = DEVICE_PS2,
.flags = DEVICE_PS2_KBC,
.local = MOUSE_TYPE_PS2,
.init = mouse_ps2_init,
.close = ps2_close,
.reset = NULL,
.poll = ps2_poll,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = ps2_config

View File

@@ -909,6 +909,8 @@ sermouse_init(const device_t *info)
/* Tell them how many buttons we have. */
mouse_set_buttons(dev->but);
mouse_set_poll(sermouse_poll, dev);
/* Return our private data to the I/O layer. */
return dev;
}
@@ -1075,7 +1077,7 @@ const device_t mouse_mssystems_device = {
.init = sermouse_init,
.close = sermouse_close,
.reset = NULL,
.poll = sermouse_poll,
.available = NULL,
.speed_changed = sermouse_speed_changed,
.force_redraw = NULL,
.config = msssermouse_config
@@ -1089,7 +1091,7 @@ const device_t mouse_msserial_device = {
.init = sermouse_init,
.close = sermouse_close,
.reset = NULL,
.poll = sermouse_poll,
.available = NULL,
.speed_changed = sermouse_speed_changed,
.force_redraw = NULL,
.config = mssermouse_config
@@ -1103,7 +1105,7 @@ const device_t mouse_ltserial_device = {
.init = sermouse_init,
.close = sermouse_close,
.reset = NULL,
.poll = sermouse_poll,
.available = NULL,
.speed_changed = sermouse_speed_changed,
.force_redraw = NULL,
.config = ltsermouse_config

View File

@@ -662,8 +662,10 @@ wacom_init(const device_t *info)
if (dev->tablet_type->type == WACOM_TYPE_IV) {
wacom_reset_artpad(dev);
wacom_process_settings_dword(dev, 0xE2018000);
}
else wacom_reset(dev);
} else
wacom_reset(dev);
mouse_set_poll(wacom_poll, dev);
return dev;
}
@@ -721,7 +723,7 @@ const device_t mouse_wacom_device = {
.init = wacom_init,
.close = wacom_close,
.reset = NULL,
.poll = wacom_poll,
.available = NULL,
.speed_changed = wacom_speed_changed,
.force_redraw = NULL,
.config = wacom_config
@@ -735,7 +737,7 @@ const device_t mouse_wacom_artpad_device = {
.init = wacom_init,
.close = wacom_close,
.reset = NULL,
.poll = wacom_poll,
.available = NULL,
.speed_changed = wacom_speed_changed,
.force_redraw = NULL,
.config = wacom_config

View File

@@ -948,7 +948,7 @@ serial_init(const device_t *info)
serial_setup(dev, COM4_ADDR, COM4_IRQ);
else if (next_inst == 2)
serial_setup(dev, COM3_ADDR, COM3_IRQ);
else if ((next_inst == 1) || (info->flags & DEVICE_PCJR))
else if ((next_inst == 1) || (info->local == SERIAL_8250_PCJR))
serial_setup(dev, COM2_ADDR, COM2_IRQ);
else if (next_inst == 0)
serial_setup(dev, COM1_ADDR, COM1_IRQ);
@@ -1018,7 +1018,7 @@ const device_t ns8250_device = {
const device_t ns8250_pcjr_device = {
.name = "National Semiconductor 8250(-compatible) UART for PCjr",
.internal_name = "ns8250_pcjr",
.flags = DEVICE_PCJR,
.flags = 0,
.local = SERIAL_8250_PCJR,
.init = serial_init,
.close = serial_close,

View File

@@ -366,7 +366,7 @@ const device_t serial_passthrough_device = {
.init = serial_passthrough_dev_init,
.close = serial_passthrough_dev_close,
.reset = NULL,
.poll = NULL,
.available = NULL,
.speed_changed = serial_passthrough_speed_changed,
.force_redraw = NULL,
.config = serial_passthrough_config

View File

@@ -302,7 +302,7 @@ smbus_ali7101_close(void *priv)
const device_t ali7101_smbus_device = {
.name = "ALi M7101-compatible SMBus Host Controller",
.internal_name = "ali7101_smbus",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = smbus_ali7101_init,
.close = smbus_ali7101_close,

View File

@@ -386,7 +386,7 @@ smbus_piix4_close(void *priv)
const device_t piix4_smbus_device = {
.name = "PIIX4-compatible SMBus Host Controller",
.internal_name = "piix4_smbus",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SMBUS_PIIX4,
.init = smbus_piix4_init,
.close = smbus_piix4_close,
@@ -400,7 +400,7 @@ const device_t piix4_smbus_device = {
const device_t via_smbus_device = {
.name = "VIA VT82C686B SMBus Host Controller",
.internal_name = "via_smbus",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SMBUS_VIA,
.init = smbus_piix4_init,
.close = smbus_piix4_close,

View File

@@ -373,7 +373,7 @@ smbus_sis5595_close(void *priv)
const device_t sis5595_smbus_device = {
.name = "SiS 5595-compatible SMBus Host Controller",
.internal_name = "sis5595_smbus",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = smbus_sis5595_init,
.close = smbus_sis5595_close,

View File

@@ -984,7 +984,7 @@ wd1007vse1_available(void)
const device_t esdi_at_wd1007vse1_device = {
.name = "Western Digital WD1007V-SE1 (ESDI)",
.internal_name = "esdi_at",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = wd1007vse1_init,
.close = wd1007vse1_close,

View File

@@ -3282,7 +3282,7 @@ mcide_close(void *priv)
const device_t ide_isa_device = {
.name = "ISA PC/AT IDE Controller",
.internal_name = "ide_isa",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = ide_init,
.close = ide_close,
@@ -3296,7 +3296,7 @@ const device_t ide_isa_device = {
const device_t ide_isa_sec_device = {
.name = "ISA PC/AT IDE Controller (Secondary)",
.internal_name = "ide_isa_sec",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = ide_sec_init,
.close = ide_sec_close,
@@ -3310,7 +3310,7 @@ const device_t ide_isa_sec_device = {
const device_t ide_isa_2ch_device = {
.name = "ISA PC/AT IDE Controller (Dual-Channel)",
.internal_name = "ide_isa_2ch",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 1,
.init = ide_init,
.close = ide_close,
@@ -3324,7 +3324,7 @@ const device_t ide_isa_2ch_device = {
const device_t ide_vlb_device = {
.name = "VLB IDE Controller",
.internal_name = "ide_vlb",
.flags = DEVICE_VLB | DEVICE_AT,
.flags = DEVICE_VLB,
.local = 2,
.init = ide_init,
.close = ide_close,
@@ -3338,7 +3338,7 @@ const device_t ide_vlb_device = {
const device_t ide_vlb_sec_device = {
.name = "VLB IDE Controller (Secondary)",
.internal_name = "ide_vlb_sec",
.flags = DEVICE_VLB | DEVICE_AT,
.flags = DEVICE_VLB,
.local = 2,
.init = ide_sec_init,
.close = ide_sec_close,
@@ -3352,7 +3352,7 @@ const device_t ide_vlb_sec_device = {
const device_t ide_vlb_2ch_device = {
.name = "VLB IDE Controller (Dual-Channel)",
.internal_name = "ide_vlb_2ch",
.flags = DEVICE_VLB | DEVICE_AT,
.flags = DEVICE_VLB,
.local = 3,
.init = ide_init,
.close = ide_close,
@@ -3366,7 +3366,7 @@ const device_t ide_vlb_2ch_device = {
const device_t ide_pci_device = {
.name = "PCI IDE Controller",
.internal_name = "ide_pci",
.flags = DEVICE_PCI | DEVICE_AT,
.flags = DEVICE_PCI,
.local = 4,
.init = ide_init,
.close = ide_close,
@@ -3380,7 +3380,7 @@ const device_t ide_pci_device = {
const device_t ide_pci_sec_device = {
.name = "PCI IDE Controller (Secondary)",
.internal_name = "ide_pci_sec",
.flags = DEVICE_PCI | DEVICE_AT,
.flags = DEVICE_PCI,
.local = 4,
.init = ide_sec_init,
.close = ide_sec_close,
@@ -3394,7 +3394,7 @@ const device_t ide_pci_sec_device = {
const device_t ide_pci_2ch_device = {
.name = "PCI IDE Controller (Dual-Channel)",
.internal_name = "ide_pci_2ch",
.flags = DEVICE_PCI | DEVICE_AT,
.flags = DEVICE_PCI,
.local = 5,
.init = ide_init,
.close = ide_close,
@@ -3478,7 +3478,7 @@ static const device_config_t ide_qua_config[] = {
const device_t ide_ter_device = {
.name = "Tertiary IDE Controller",
.internal_name = "ide_ter",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = ide_ter_init,
.close = ide_ter_close,
@@ -3492,7 +3492,7 @@ const device_t ide_ter_device = {
const device_t ide_ter_pnp_device = {
.name = "Tertiary IDE Controller (Plug and Play only)",
.internal_name = "ide_ter_pnp",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 1,
.init = ide_ter_init,
.close = ide_ter_close,
@@ -3506,7 +3506,7 @@ const device_t ide_ter_pnp_device = {
const device_t ide_qua_device = {
.name = "Quaternary IDE Controller",
.internal_name = "ide_qua",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = ide_qua_init,
.close = ide_qua_close,
@@ -3520,7 +3520,7 @@ const device_t ide_qua_device = {
const device_t ide_qua_pnp_device = {
.name = "Quaternary IDE Controller (Plug and Play only)",
.internal_name = "ide_qua_pnp",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 1,
.init = ide_qua_init,
.close = ide_qua_close,

View File

@@ -795,7 +795,7 @@ mfm_close(void *priv)
const device_t st506_at_wd1003_device = {
.name = "WD1003 AT MFM/RLL Controller",
.internal_name = "st506_at",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = mfm_init,
.close = mfm_close,

View File

@@ -312,7 +312,7 @@ const device_t xtide_device = {
const device_t xtide_at_device = {
.name = "PC/AT XTIDE",
.internal_name = "xtide_at",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = xtide_at_init,
.close = xtide_at_close,
@@ -340,7 +340,7 @@ const device_t xtide_acculogic_device = {
const device_t xtide_at_ps2_device = {
.name = "PS/2 AT XTIDE (1.1.5)",
.internal_name = "xtide_at_ps2",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = xtide_at_ps2_init,
.close = xtide_at_close,

View File

@@ -88,7 +88,7 @@ static const device_config_t lba_enhancer_config[] = {
const device_t lba_enhancer_device = {
.name = "Vision Systems LBA Enhancer",
.internal_name = "lba_enhancer",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = lba_enhancer_init,
.close = lba_enhancer_close,

View File

@@ -100,10 +100,10 @@ d86f_handler_t d86f_handler[FDD_NUM];
static const struct
{
char *ext;
void (*load)(int drive, char *fn);
void (*close)(int drive);
int size;
const char *ext;
void (*load)(int drive, char *fn);
void (*close)(int drive);
int size;
} loaders[] = {
{ "001", img_load, img_close, -1},
{ "002", img_load, img_close, -1},

View File

@@ -79,29 +79,33 @@
// #define CONFIG_STANDALONE 257 /* not available on the on-board variant */
enum {
DEVICE_PCJR = 2, /* requires an IBM PCjr */
DEVICE_XTKBC = 4, /* requires an XT-compatible keyboard controller */
DEVICE_AT = 8, /* requires an AT-compatible system */
DEVICE_ATKBC = 0x10, /* requires an AT-compatible keyboard controller */
DEVICE_PS2 = 0x20, /* requires a PS/1 or PS/2 system */
DEVICE_ISA = 0x40, /* requires the ISA bus */
DEVICE_CBUS = 0x80, /* requires the C-BUS bus */
DEVICE_PCMCIA = 0x100, /* requires the PCMCIA bus */
DEVICE_MCA = 0x200, /* requires the MCA bus */
DEVICE_HIL = 0x400, /* requires the HP HIL bus */
DEVICE_EISA = 0x800, /* requires the EISA bus */
DEVICE_AT32 = 0x1000, /* requires the Mylex AT/32 local bus */
DEVICE_OLB = 0x2000, /* requires the OPTi local bus */
DEVICE_VLB = 0x4000, /* requires the VLB bus */
DEVICE_PCI = 0x8000, /* requires the PCI bus */
DEVICE_CARDBUS = 0x10000, /* requires the CardBus bus */
DEVICE_USB = 0x20000, /* requires the USB bus */
DEVICE_AGP = 0x40000, /* requires the AGP bus */
DEVICE_AC97 = 0x80000, /* requires the AC'97 bus */
DEVICE_COM = 0x100000, /* requires a serial port */
DEVICE_LPT = 0x200000, /* requires a parallel port */
DEVICE_KBC = 0x400000, /* is a keyboard controller */
DEVICE_SOFTRESET = 0x800000, /* requires to be reset on soft reset */
DEVICE_SIDECAR = 2, /* requires an IBM PCjr */
DEVICE_ISA = 4, /* requires the ISA bus */
DEVICE_XT_KBC = 8, /* requires an XT-compatible keyboard controller */
DEVICE_CBUS = 0x10, /* requires the C-BUS bus */
DEVICE_ISA16 = 0x20, /* requires an AT-compatible system */
DEVICE_AT_KBC = 0x40, /* requires an AT-compatible keyboard controller */
DEVICE_MCA = 0x80, /* requires the MCA bus */
DEVICE_MCA32 = 0x100, /* requires the MCA bus */
DEVICE_PS2_KBC = 0x200, /* requires a PS/1 or PS/2 system */
DEVICE_PCMCIA = 0x400, /* requires the PCMCIA bus */
DEVICE_HIL = 0x800, /* requires the HP HIL bus */
DEVICE_EISA = 0x1000, /* requires the EISA bus */
DEVICE_AT32 = 0x2000, /* requires the Mylex AT/32 local bus */
DEVICE_OLB = 0x4000, /* requires the OPTi local bus */
DEVICE_VLB = 0x8000, /* requires the VLB bus */
DEVICE_PCI = 0x10000, /* requires the PCI bus */
DEVICE_CARDBUS = 0x20000, /* requires the CardBus bus */
DEVICE_USB = 0x40000, /* requires the USB bus */
DEVICE_AGP = 0x80000, /* requires the AGP bus */
DEVICE_AC97 = 0x100000, /* requires the AC'97 bus */
DEVICE_BUS = 0x1fffff, /* requires a machine bus */
DEVICE_COM = 0x200000, /* requires a serial port */
DEVICE_LPT = 0x400000, /* requires a parallel port */
DEVICE_KBC = 0x800000, /* is a keyboard controller */
DEVICE_SOFTRESET = 0x1000000, /* requires to be reset on soft reset */
DEVICE_ONBOARD = 0x40000000, /* is on-board */
DEVICE_PIT = 0x80000000, /* device is a PIT */
@@ -118,16 +122,6 @@ enum {
#define BIOS_INTERLEAVED_INVERT 8
#define BIOS_HIGH_BIT_INVERT 16
#define device_common_config_t \
const char *name; \
const char *description; \
int type; \
const char *default_string; \
int default_int; \
const char *file_filter; \
const device_config_spinner_t spinner; \
const device_config_selection_t selection[32]
typedef struct device_config_selection_t {
const char *description;
int value;
@@ -139,10 +133,6 @@ typedef struct device_config_spinner_t {
int16_t step;
} device_config_spinner_t;
typedef struct _device_dep_config_ {
device_common_config_t;
} device_dep_config_t;
typedef struct device_config_bios_t {
const char *name;
const char *internal_name;
@@ -153,15 +143,18 @@ typedef struct device_config_bios_t {
void *dev1;
void *dev2;
const char *files[9];
/* Configuration options that depend on the device variant.
To prevent excessive nesting, there is no CONFIG_BIOS
option a dep_config struct */
const device_dep_config_t *dep_config;
} device_config_bios_t;
typedef struct _device_config_ {
device_common_config_t;
const device_config_bios_t bios[32];
const char *name;
const char *description;
int type;
const char *default_string;
int default_int;
const char *file_filter;
const device_config_spinner_t spinner;
const device_config_selection_t selection[32];
const device_config_bios_t bios[32];
} device_config_t;
typedef struct _device_ {
@@ -176,10 +169,7 @@ typedef struct _device_ {
};
void (*close)(void *priv);
void (*reset)(void *priv);
union {
int (*available)(void);
int (*poll)(void *priv);
};
int (*available)(void);
void (*speed_changed)(void *priv);
void (*force_redraw)(void *priv);
@@ -216,7 +206,6 @@ extern void device_reset_all(uint32_t match_flags);
extern void *device_find_first_priv(uint32_t match_flags);
extern void *device_get_priv(const device_t *dev);
extern int device_available(const device_t *dev);
extern int device_poll(const device_t *dev);
extern void device_speed_changed(void);
extern void device_force_redraw(void);
extern void device_get_name(const device_t *dev, int bus, char *name);
@@ -242,8 +231,8 @@ extern int device_get_instance(void);
extern const char *device_get_internal_name(const device_t *dev);
extern int machine_get_config_int(char *str);
extern char *machine_get_config_string(char *str);
extern int machine_get_config_int(char *str);
extern const char *machine_get_config_string(char *str);
extern const device_t device_none;
extern const device_t device_internal;

View File

@@ -8,13 +8,11 @@
*
* Definitions for the 86F floppy image format.
*
*
*
* Authors: Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
*
* Copyright 2016-2019 Miran Grca.
* Copyright 2018-2019 Fred N. van Kempen.
* Copyright 2016-2025 Miran Grca.
* Copyright 2018-2025 Fred N. van Kempen.
*/
#ifndef EMU_FLOPPY_86F_H
#define EMU_FLOPPY_86F_H

View File

@@ -23,26 +23,25 @@
#define EMU_MACHINE_H
/* Machine feature flags. */
#define MACHINE_BUS_NONE 0x00000000 /* sys has no bus */
#define MACHINE_BUS_NONE 0x00000000 /* sys has no bus */
/* Feature flags for BUS'es. */
#define MACHINE_BUS_ISA 0x00000001 /* sys has ISA bus */
#define MACHINE_BUS_CASSETTE 0x00000002 /* sys has cassette port */
#define MACHINE_BUS_CARTRIDGE 0x00000004 /* sys has two cartridge bays */
#define MACHINE_BUS_PCJR 0x00000008 /* sys has PCjr sidecar bus */
#define MACHINE_BUS_DM_KBC 0x00000010 /* system has keyboard controller that supports
both XT and AT keyboards */
#define MACHINE_BUS_CASSETTE 0x00000001 /* sys has cassette port */
#define MACHINE_BUS_SIDECAR 0x00000002 /* sys has PCjr sidecar bus */
#define MACHINE_BUS_ISA 0x00000004 /* sys has ISA bus */
#define MACHINE_BUS_XT_KBD 0x00000008 /* sys has an XT keyboard port */
#define MACHINE_BUS_CBUS 0x00000010 /* sys has C-BUS bus */
#define MACHINE_BUS_ISA16 0x00000020 /* sys has ISA16 bus - PC/AT architecture */
#define MACHINE_BUS_CBUS 0x00000040 /* sys has C-BUS bus */
#define MACHINE_BUS_PCMCIA 0x00000080 /* sys has PCMCIA bus */
#define MACHINE_BUS_PS2_LATCH 0x00000100 /* system has PS/2 keyboard controller IRQ latch */
#define MACHINE_BUS_AT_KBD 0x00000040 /* sys has an AT keyboard port */
#define MACHINE_BUS_MCA 0x00000080 /* sys has MCA bus */
#define MACHINE_BUS_MCA32 0x00000100 /* sys has MCA32 bus */
#define MACHINE_BUS_PS2_PORTS 0x00000200 /* system has PS/2 keyboard and mouse ports */
#define MACHINE_BUS_PS2 (MACHINE_BUS_PS2_LATCH | MACHINE_BUS_PS2_PORTS)
#define MACHINE_BUS_HIL 0x00000400 /* system has HP HIL keyboard and mouse ports */
#define MACHINE_BUS_EISA 0x00000800 /* sys has EISA bus */
#define MACHINE_BUS_AT32 0x00001000 /* sys has Mylex AT/32 local bus */
#define MACHINE_BUS_OLB 0x00002000 /* sys has OPTi local bus */
#define MACHINE_BUS_VLB 0x00004000 /* sys has VL bus */
#define MACHINE_BUS_MCA 0x00008000 /* sys has MCA bus */
#define MACHINE_BUS_PS2 MACHINE_BUS_PS2_PORTS
#define MACHINE_BUS_PCMCIA 0x00000400 /* sys has PCMCIA bus */
#define MACHINE_BUS_HIL 0x00000800 /* system has HP HIL keyboard and mouse ports */
#define MACHINE_BUS_EISA 0x00001000 /* sys has EISA bus */
#define MACHINE_BUS_AT32 0x00002000 /* sys has Mylex AT/32 local bus */
#define MACHINE_BUS_OLB 0x00004000 /* sys has OPTi local bus */
#define MACHINE_BUS_VLB 0x00008000 /* sys has VL bus */
#define MACHINE_BUS_PCI 0x00010000 /* sys has PCI bus */
#define MACHINE_BUS_CARDBUS 0x00020000 /* sys has CardBus bus */
#define MACHINE_BUS_USB 0x00040000 /* sys has USB bus */
@@ -50,7 +49,6 @@
#define MACHINE_BUS_AC97 0x00100000 /* sys has AC97 bus (ACR/AMR/CNR slot) */
/* Aliases. */
#define MACHINE_CASSETTE (MACHINE_BUS_CASSETTE) /* sys has cassette port */
#define MACHINE_CARTRIDGE (MACHINE_BUS_CARTRIDGE) /* sys has two cartridge bays */
/* Combined flags. */
#define MACHINE_PC (MACHINE_BUS_ISA) /* sys is PC/XT-compatible (ISA) */
#define MACHINE_AT (MACHINE_BUS_ISA | MACHINE_BUS_ISA16) /* sys is AT-compatible (ISA + ISA16) */
@@ -69,18 +67,18 @@
#define MACHINE_AGP (MACHINE_BUS_AGP | MACHINE_PCI) /* sys is AT-compatible with AGP */
#define MACHINE_AGP98 (MACHINE_BUS_AGP | MACHINE_PCI98) /* sys is NEC PC-98x1 series with AGP (did that even exist?) */
#define MACHINE_PC5150 (MACHINE_PC | MACHINE_CASSETTE) /* sys is IBM PC 5150 */
#define MACHINE_PCJR (MACHINE_PC | MACHINE_CASSETTE | MACHINE_CARTRIDGE) /* sys is PCjr */
#define MACHINE_PS2 (MACHINE_AT | MACHINE_BUS_PS2) /* sys is PS/2 */
#define MACHINE_PS2_MCA (MACHINE_MCA | MACHINE_BUS_PS2) /* sys is MCA PS/2 */
#define MACHINE_PS2_VLB (MACHINE_VLB | MACHINE_BUS_PS2) /* sys is VLB PS/2 */
#define MACHINE_PS2_PCI (MACHINE_PCI | MACHINE_BUS_PS2) /* sys is PCI PS/2 */
#define MACHINE_PS2_PCIV (MACHINE_PCIV | MACHINE_BUS_PS2) /* sys is VLB/PCI PS/2 */
#define MACHINE_PS2_AGP (MACHINE_AGP | MACHINE_BUS_PS2) /* sys is AGP PS/2 */
#define MACHINE_PS2_A97 (MACHINE_PS2_AGP | MACHINE_BUS_AC97) /* sys is AGP/AC97 PS/2 */
#define MACHINE_PS2_NOISA (MACHINE_PS2_AGP & ~MACHINE_AT) /* sys is AGP PS/2 without ISA */
#define MACHINE_PS2_PCIONLY (MACHINE_PS2_NOISA & ~MACHINE_BUS_AGP) /* sys is PCI PS/2 without ISA */
#define MACHINE_PS2_NOI97 (MACHINE_PS2_A97 & ~MACHINE_AT) /* sys is AGP/AC97 PS/2 without ISA */
#define MACHINE_PC5150 (MACHINE_PC | MACHINE_CASSETTE) /* sys is IBM PC 5150 */
#define MACHINE_PCJR (MACHINE_PC | MACHINE_CASSETTE | MACHINE_BUS_SIDECAR) /* sys is PCjr */
#define MACHINE_PS2 (MACHINE_AT | MACHINE_BUS_PS2) /* sys is PS/2 */
#define MACHINE_PS2_MCA (MACHINE_MCA | MACHINE_BUS_PS2) /* sys is MCA PS/2 */
#define MACHINE_PS2_VLB (MACHINE_VLB | MACHINE_BUS_PS2) /* sys is VLB PS/2 */
#define MACHINE_PS2_PCI (MACHINE_PCI | MACHINE_BUS_PS2) /* sys is PCI PS/2 */
#define MACHINE_PS2_PCIV (MACHINE_PCIV | MACHINE_BUS_PS2) /* sys is VLB/PCI PS/2 */
#define MACHINE_PS2_AGP (MACHINE_AGP | MACHINE_BUS_PS2) /* sys is AGP PS/2 */
#define MACHINE_PS2_A97 (MACHINE_PS2_AGP | MACHINE_BUS_AC97) /* sys is AGP/AC97 PS/2 */
#define MACHINE_PS2_NOISA (MACHINE_PS2_AGP & ~MACHINE_AT) /* sys is AGP PS/2 without ISA */
#define MACHINE_PS2_PCIONLY (MACHINE_PS2_NOISA & ~MACHINE_BUS_AGP) /* sys is PCI PS/2 without ISA */
#define MACHINE_PS2_NOI97 (MACHINE_PS2_A97 & ~MACHINE_AT) /* sys is AGP/AC97 PS/2 without ISA */
/* Feature flags for miscellaneous internal devices. */
#define MACHINE_FLAGS_NONE 0x00000000 /* sys has no int devices */
#define MACHINE_SOFTFLOAT_ONLY 0x00000001 /* sys requires SoftFloat FPU */
@@ -93,7 +91,8 @@
#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_LPT_QUA 0x00000400 /* sys has int qua LPT */
#define MACHINE_PS2_KBC 0x00000400 /* 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 */
@@ -106,7 +105,7 @@
#define MACHINE_APM 0x00080000 /* sys has APM */
#define MACHINE_ACPI 0x00100000 /* sys has ACPI */
#define MACHINE_HWM 0x00200000 /* sys has hw monitor */
#define MACHINE_COREBOOT 0x00400000 /* sys has coreboot BIOS */
#define MACHINE_CARTRIDGE 0x00400000 /* sys has cartridge bays */
/* Feature flags for internal storage controllers. */
#define MACHINE_MFM 0x00800000 /* sys has int MFM/RLL */
#define MACHINE_XTA 0x01000000 /* sys has int XTA */
@@ -370,6 +369,7 @@ extern int machine_available(int m);
extern const char *machine_getname(void);
extern const char *machine_getname_ex(int m);
extern const char *machine_get_internal_name(void);
extern const char *machine_get_nvr_name(void);
extern int machine_get_machine_from_internal_name(const char *s);
extern void machine_init(void);
#ifdef EMU_DEVICE_H
@@ -382,6 +382,7 @@ extern const device_t *machine_get_snd_device(int m);
extern const device_t *machine_get_net_device(int m);
#endif
extern const char *machine_get_internal_name_ex(int m);
extern const char *machine_get_nvr_name_ex(int m);
extern int machine_get_nvrmask(int m);
extern int machine_has_flags(int m, int flags);
extern int machine_has_bus(int m, int bus_flags);

View File

@@ -50,7 +50,9 @@ enum {
STRING_HW_NOT_AVAILABLE_DEVICE, /* "Device \"%hs\" is not available..." */
STRING_MONITOR_SLEEP, /* "Monitor in sleep mode" */
STRING_GHOSTPCL_ERROR_TITLE, /* "Unable to initialize GhostPCL" */
STRING_GHOSTPCL_ERROR_DESC /* "gpcl6dll32.dll/gpcl6dll64.dll/libgpcl6 is required..." */
STRING_GHOSTPCL_ERROR_DESC, /* "gpcl6dll32.dll/gpcl6dll64.dll/libgpcl6 is required..." */
STRING_ESCP_ERROR_TITLE, /* "Unable to find Dot-Matrix fonts" */
STRING_ESCP_ERROR_DESC /* "TrueType fonts in the \"roms/printer/fonts\" directory..." */
};
/* The Win32 API uses _wcsicmp. */

View File

@@ -52,6 +52,7 @@ extern uint8_t rom_read(uint32_t addr, void *priv);
extern uint16_t rom_readw(uint32_t addr, void *priv);
extern uint32_t rom_readl(uint32_t addr, void *priv);
extern void rom_get_full_path(char *dest, const char *fn);
extern FILE *rom_fopen(const char *fn, char *mode);
extern int rom_getfile(char *fn, char *s, int size);
extern int rom_present(const char *fn);

View File

@@ -117,7 +117,7 @@ ioapic_init(UNUSED(const device_t *info))
const device_t ioapic_device = {
.name = "I/O Advanced Programmable Interrupt Controller",
.internal_name = "ioapic",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = ioapic_init,
.close = ioapic_close,

View File

@@ -626,9 +626,9 @@ machine_at_cmdsl386sx16_init(const machine_t *model)
if (bios_only || !ret)
return ret;
machine_at_common_ide_init(model);
machine_at_common_init(model);
device_add(&keyboard_at_device);
device_add(&keyboard_ps2_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);

View File

@@ -696,7 +696,7 @@ static const device_config_t pb450_config[] = {
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "PCI 1.0A", .internal_name = "pci10a", .bios_type = BIOS_NORMAL,
{ .name = "PCI 1.0A", .internal_name = "pb450" /*"pci10a"*/, .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pb450/OPTI802.bin", "" } },
{ .name = "PNP 1.1A", .internal_name = "pnp11a", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pb450/PNP11A.bin", "" } },

View File

@@ -845,6 +845,10 @@ machine_at_gw2kte_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
if ((sound_card_current[0] == SOUND_INTERNAL) && machine_get_snd_device(machine)->available())
machine_snd = device_add(machine_get_snd_device(machine));
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&fdc37c932fr_device);

View File

@@ -694,6 +694,10 @@ machine_at_gw2kma_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
if ((sound_card_current[0] == SOUND_INTERNAL) && machine_get_snd_device(machine)->available())
machine_snd = device_add(machine_get_snd_device(machine));
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&fdc37c932fr_device);

View File

@@ -1380,7 +1380,7 @@ ps1_hdc_close(void *priv)
const device_t ps1_hdc_device = {
.name = "PS/1 2011 Fixed Disk Controller",
.internal_name = "ps1_hdc",
.flags = DEVICE_ISA | DEVICE_PS2,
.flags = DEVICE_ISA,
.local = 0,
.init = ps1_hdc_init,
.close = ps1_hdc_close,

View File

@@ -4688,7 +4688,7 @@ const machine_t machines[] = {
.max_multi = 0
},
.bus_flags = MACHINE_PS2,
.flags = MACHINE_IDE,
.flags = MACHINE_FLAGS_NONE,
.ram = {
.min = 1024,
.max = 8192,
@@ -8257,8 +8257,8 @@ const machine_t machines[] = {
.min_multi = 0,
.max_multi = 0
},
.bus_flags = MACHINE_BUS_PS2_LATCH | MACHINE_PCI,
.flags = MACHINE_IDE_DUAL | MACHINE_APM,
.bus_flags = MACHINE_PCI,
.flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
.ram = {
.min = 1024,
.max = 131072,
@@ -8337,8 +8337,8 @@ const machine_t machines[] = {
.min_multi = 0,
.max_multi = 0
},
.bus_flags = MACHINE_BUS_PS2_LATCH | MACHINE_PCI,
.flags = MACHINE_IDE_DUAL | MACHINE_APM,
.bus_flags = MACHINE_PCI,
.flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
.ram = {
.min = 1024,
.max = 261120,
@@ -8539,8 +8539,8 @@ const machine_t machines[] = {
.min_multi = 0,
.max_multi = 0
},
.bus_flags = MACHINE_PCI | MACHINE_BUS_PS2_LATCH,
.flags = MACHINE_IDE_DUAL | MACHINE_APM,
.bus_flags = MACHINE_PCI,
.flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
.ram = {
.min = 1024,
.max = 131072,
@@ -9198,8 +9198,8 @@ const machine_t machines[] = {
.min_multi = MACHINE_MULTIPLIER_FIXED,
.max_multi = MACHINE_MULTIPLIER_FIXED
},
.bus_flags = MACHINE_BUS_PS2_LATCH | MACHINE_PCI,
.flags = MACHINE_APM,
.bus_flags = MACHINE_PCI,
.flags = MACHINE_PS2_KBC | MACHINE_APM,
.ram = {
.min = 2048,
.max = 196608,
@@ -9762,7 +9762,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3520,
@@ -9802,7 +9802,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3520,
@@ -9843,7 +9843,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3380,
@@ -10087,7 +10087,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3380,
@@ -10741,7 +10741,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3380,
@@ -10824,7 +10824,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3380,
@@ -10908,7 +10908,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3380,
@@ -10989,7 +10989,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3380,
@@ -11236,7 +11236,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 3380,
@@ -11245,7 +11245,7 @@ const machine_t machines[] = {
.max_multi = 3.0
},
.bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
.flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
.flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
.ram = {
.min = 8192,
.max = 131072,
@@ -11260,7 +11260,7 @@ const machine_t machines[] = {
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.snd_device = NULL,
.snd_device = &sb_vibra16c_onboard_device,
.net_device = NULL
},
@@ -11647,7 +11647,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 2800,
@@ -11687,7 +11688,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 2800,
@@ -11727,7 +11729,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 2800,
@@ -11767,7 +11770,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 2800,
@@ -11850,7 +11854,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 2800,
@@ -12177,7 +12182,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 2500,
@@ -12299,7 +12305,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 2200,
@@ -12308,7 +12315,7 @@ const machine_t machines[] = {
.max_multi = 3.0
},
.bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
.flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
.flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
.ram = {
.min = 8192,
.max = 131072,
@@ -12323,7 +12330,7 @@ const machine_t machines[] = {
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.snd_device = NULL,
.snd_device = &sb_vibra16c_onboard_device,
.net_device = NULL
},
/* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
@@ -12382,7 +12389,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 50000000,
.max_bus = 66666667,
.min_voltage = 2800,
@@ -12668,7 +12676,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 60000000,
.max_bus = 66666667,
.min_voltage = 2800,
@@ -12709,7 +12718,8 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SOCKET5_7,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
.min_bus = 60000000,
.max_bus = 66666667,
.min_voltage = 2800,
@@ -15268,7 +15278,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SLOT1,
.block = CPU_BLOCK_NONE,
.block = CPU_BLOCK(CPU_PENTIUMPRO),
.min_bus = 66666667,
.max_bus = 150000000,
.min_voltage = 1300,
@@ -16153,7 +16163,7 @@ const machine_t machines[] = {
.gpio_acpi_handler = NULL,
.cpu = {
.package = CPU_PKG_SLOT1,
.block = CPU_BLOCK(CPU_PENTIUM2, CPU_CYRIX3S),
.block = CPU_BLOCK(CPU_PENTIUMPRO, CPU_PENTIUM2, CPU_CYRIX3S),
.min_bus = 0,
.max_bus = 66666667,
.min_voltage = 0,
@@ -16497,19 +16507,39 @@ machine_get_nvrmask(int m)
int
machine_has_flags(int m, int flags)
{
return (machines[m].flags & flags);
int ret = machines[m].flags & flags;
/* Can't have PS/2 ports with an AT KBC. */
if ((flags & MACHINE_PS2_KBC) &&
(machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
ret |= MACHINE_PS2_KBC;
return ret;
}
int
machine_has_bus(int m, int bus_flags)
{
return (machines[m].bus_flags & bus_flags);
int ret = machines[m].bus_flags & bus_flags;
/* TODO: Move the KBD flags to the machine table! */
if ((bus_flags & MACHINE_BUS_XT_KBD) &&
!(machines[m].bus_flags & MACHINE_BUS_ISA16) &&
!(machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
ret |= MACHINE_BUS_XT_KBD;
if ((bus_flags & MACHINE_BUS_AT_KBD) &&
(IS_AT(m)) &&
!(machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
ret |= MACHINE_BUS_AT_KBD;
return ret;
}
int
machine_has_cartridge(int m)
{
return (machine_has_bus(m, MACHINE_CARTRIDGE) ? 1 : 0);
return (machine_has_flags(m, MACHINE_CARTRIDGE) ? 1 : 0);
}
int
@@ -16565,3 +16595,26 @@ machine_is_sony(void)
{
return (!strcmp(machines[machine].internal_name, "pcv90"));
}
const char *
machine_get_nvr_name_ex(int m)
{
const char *ret = machines[m].internal_name;
const device_t *dev = machine_get_device(m);
if (dev != NULL) {
device_context(dev);
const char *bios = device_get_config_string("bios");
if ((bios != NULL) && (strcmp(bios, "") != 0))
ret = bios;
device_context_restore();
}
return ret;
}
const char *
machine_get_nvr_name(void)
{
return machine_get_nvr_name_ex(machine);
}

View File

@@ -45,11 +45,13 @@ machine_status_init(void)
machine_status.mo[i].active = false;
}
for (size_t i = 0; i < 2; i++)
machine_status.cartridge[i].empty = (strlen(cart_fns[i]) == 0);
machine_status.cassette.empty = (strlen(cassette_fname) == 0);
for (size_t i = 0; i < HDD_BUS_USB; i++) {
for (size_t i = 0; i < HDD_BUS_USB; i++)
machine_status.hdd[i].active = false;
}
for (size_t i = 0; i < NET_CARD_MAX; i++) {
machine_status.net[i].active = false;

View File

@@ -194,7 +194,7 @@ catalyst_flash_init(UNUSED(const device_t *info))
dev = calloc(1, sizeof(flash_t));
sprintf(flash_path, "%s.bin", machine_get_internal_name_ex(machine));
sprintf(flash_path, "%s.bin", machine_get_nvr_name_ex(machine));
mem_mapping_disable(&bios_mapping);
mem_mapping_disable(&bios_high_mapping);

View File

@@ -353,7 +353,7 @@ intel_flash_init(const device_t *info)
dev = calloc(1, sizeof(flash_t));
sprintf(flash_path, "%s.bin", machine_get_internal_name_ex(machine));
sprintf(flash_path, "%s.bin", machine_get_nvr_name_ex(machine));
dev->flags = info->local & 0xff;

View File

@@ -86,6 +86,48 @@ rom_add_path(const char *path)
path_slash(rom_path->path);
}
static int
rom_check(const char *fn)
{
FILE *fp = NULL;
int ret = 0;
if ((fn[strlen(fn) - 1] == '/') || (fn[strlen(fn) - 1] == '\\'))
ret = plat_dir_check((char *) fn);
else {
fp = fopen(fn, "rb");
ret = (fp != NULL);
fclose(fp);
}
return ret;
}
void
rom_get_full_path(char *dest, const char *fn)
{
char temp[1024] = { 0 };
dest[0] = 0x00;
if (strstr(fn, "roms/") == fn) {
/* Relative path */
for (rom_path_t *rom_path = &rom_paths; rom_path != NULL; rom_path = rom_path->next) {
path_append_filename(temp, rom_path->path, fn + 5);
if (rom_check(temp)) {
strcpy(dest, temp);
return;
}
}
return;
} else {
/* Absolute path */
strcpy(dest, fn);
}
}
FILE *
rom_fopen(const char *fn, char *mode)
{

View File

@@ -336,7 +336,7 @@ row_init(const device_t *info)
device_t row_device = {
.name = "DRAM Rows",
.internal_name = "dram_rows",
.flags = DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x0000,
.init = row_init,
.close = row_close,

View File

@@ -507,7 +507,7 @@ sst_init(const device_t *info)
FILE *fp;
sst_t *dev = calloc(1, sizeof(sst_t));
sprintf(flash_path, "%s.bin", machine_get_internal_name_ex(machine));
sprintf(flash_path, "%s.bin", machine_get_nvr_name_ex(machine));
mem_mapping_disable(&bios_mapping);
mem_mapping_disable(&bios_high_mapping);

View File

@@ -1621,7 +1621,7 @@ const device_t modem_device = {
.init = modem_init,
.close = modem_close,
.reset = NULL,
.poll = NULL,
.available = NULL,
.speed_changed = modem_speed_changed,
.force_redraw = NULL,
.config = modem_config

View File

@@ -1714,7 +1714,7 @@ const device_t ne1000_compat_device = {
const device_t ne2000_device = {
.name = "Novell NE2000",
.internal_name = "novell_ne2k",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = NE2K_NE2000,
.init = nic_init,
.close = nic_close,
@@ -1728,7 +1728,7 @@ const device_t ne2000_device = {
const device_t ne2000_compat_device = {
.name = "NE2000 Compatible",
.internal_name = "ne2k",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = NE2K_NE2000_COMPAT,
.init = nic_init,
.close = nic_close,
@@ -1770,7 +1770,7 @@ const device_t ethernext_mc_device = {
const device_t rtl8019as_pnp_device = {
.name = "Realtek RTL8019AS",
.internal_name = "ne2kpnp",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = NE2K_RTL8019AS_PNP,
.init = nic_init,
.close = nic_close,
@@ -1784,7 +1784,7 @@ const device_t rtl8019as_pnp_device = {
const device_t de220p_device = {
.name = "D-Link DE-220P",
.internal_name = "de220p",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = NE2K_DE220P,
.init = nic_init,
.close = nic_close,

View File

@@ -2922,7 +2922,7 @@ pcnet_init(const device_t *info)
dev->is_pci = !!(info->flags & DEVICE_PCI);
dev->is_vlb = !!(info->flags & DEVICE_VLB);
dev->is_isa = !!(info->flags & (DEVICE_ISA | DEVICE_AT));
dev->is_isa = !!(info->flags & (DEVICE_ISA16));
if (dev->is_pci || dev->is_vlb)
dev->transfer_size = 4;
@@ -3231,7 +3231,7 @@ static const device_config_t pcnet_vlb_config[] = {
const device_t pcnet_am79c960_device = {
.name = "AMD PCnet-ISA",
.internal_name = "pcnetisa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = DEV_AM79C960,
.init = pcnet_init,
.close = pcnet_close,
@@ -3245,7 +3245,7 @@ const device_t pcnet_am79c960_device = {
const device_t pcnet_am79c960_eb_device = {
.name = "Racal Interlan EtherBlaster",
.internal_name = "pcnetracal",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = DEV_AM79C960_EB,
.init = pcnet_init,
.close = pcnet_close,
@@ -3273,7 +3273,7 @@ const device_t pcnet_am79c960_vlb_device = {
const device_t pcnet_am79c961_device = {
.name = "AMD PCnet-ISA+",
.internal_name = "pcnetisaplus",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = DEV_AM79C961,
.init = pcnet_init,
.close = pcnet_close,

View File

@@ -161,9 +161,9 @@ nvr_init(nvr_t *nvr)
int c;
/* Set up the NVR file's name. */
c = strlen(machine_get_internal_name()) + 5;
c = strlen(machine_get_nvr_name()) + 5;
nvr->fn = (char *) malloc(c + 1);
sprintf(nvr->fn, "%s.nvr", machine_get_internal_name());
sprintf(nvr->fn, "%s.nvr", machine_get_nvr_name());
/* Initialize the internal clock as needed. */
memset(&intclk, 0x00, sizeof(intclk));

View File

@@ -1219,7 +1219,7 @@ nvr_at_close(void *priv)
const device_t at_nvr_old_device = {
.name = "PC/AT NVRAM (No century)",
.internal_name = "at_nvr_old",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1233,7 +1233,7 @@ const device_t at_nvr_old_device = {
const device_t at_nvr_device = {
.name = "PC/AT NVRAM",
.internal_name = "at_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 1,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1247,7 +1247,7 @@ const device_t at_nvr_device = {
const device_t at_mb_nvr_device = {
.name = "PC/AT NVRAM",
.internal_name = "at_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x40 | 0x20 | 1,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1261,7 +1261,7 @@ const device_t at_mb_nvr_device = {
const device_t ps_nvr_device = {
.name = "PS/1 or PS/2 NVRAM",
.internal_name = "ps_nvr",
.flags = DEVICE_PS2,
.flags = DEVICE_ISA16,
.local = 2,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1275,7 +1275,7 @@ const device_t ps_nvr_device = {
const device_t amstrad_nvr_device = {
.name = "Amstrad NVRAM",
.internal_name = "amstrad_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 3,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1289,7 +1289,7 @@ const device_t amstrad_nvr_device = {
const device_t ibmat_nvr_device = {
.name = "IBM AT NVRAM",
.internal_name = "ibmat_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 4,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1303,7 +1303,7 @@ const device_t ibmat_nvr_device = {
const device_t piix4_nvr_device = {
.name = "Intel PIIX4 PC/AT NVRAM",
.internal_name = "piix4_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x10 | 1,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1317,7 +1317,7 @@ const device_t piix4_nvr_device = {
const device_t ps_no_nmi_nvr_device = {
.name = "PS/1 or PS/2 NVRAM (No NMI)",
.internal_name = "ps1_nvr",
.flags = DEVICE_PS2,
.flags = DEVICE_ISA16,
.local = 0x10 | 2,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1331,7 +1331,7 @@ const device_t ps_no_nmi_nvr_device = {
const device_t amstrad_no_nmi_nvr_device = {
.name = "Amstrad NVRAM (No NMI)",
.internal_name = "amstrad_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x10 | 3,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1345,7 +1345,7 @@ const device_t amstrad_no_nmi_nvr_device = {
const device_t ami_1992_nvr_device = {
.name = "AMI Color 1992 PC/AT NVRAM",
.internal_name = "ami_1992_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x10 | 4,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1359,7 +1359,7 @@ const device_t ami_1992_nvr_device = {
const device_t ami_1994_nvr_device = {
.name = "AMI WinBIOS 1994 PC/AT NVRAM",
.internal_name = "ami_1994_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x10 | 5,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1373,7 +1373,7 @@ const device_t ami_1994_nvr_device = {
const device_t ami_1995_nvr_device = {
.name = "AMI WinBIOS 1995 PC/AT NVRAM",
.internal_name = "ami_1995_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x10 | 6,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1387,7 +1387,7 @@ const device_t ami_1995_nvr_device = {
const device_t via_nvr_device = {
.name = "VIA PC/AT NVRAM",
.internal_name = "via_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x10 | 7,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1401,7 +1401,7 @@ const device_t via_nvr_device = {
const device_t p6rp4_nvr_device = {
.name = "ASUS P/I-P6RP4 PC/AT NVRAM",
.internal_name = "p6rp4_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 32,
.init = nvr_at_init,
.close = nvr_at_close,
@@ -1415,7 +1415,7 @@ const device_t p6rp4_nvr_device = {
const device_t amstrad_megapc_nvr_device = {
.name = "Amstrad MegaPC NVRAM",
.internal_name = "amstrad_megapc_nvr",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 36,
.init = nvr_at_init,
.close = nvr_at_close,

View File

@@ -122,9 +122,9 @@ ps2_nvr_init(const device_t *info)
nvr->size = 8192;
/* Set up the NVR file's name. */
c = strlen(machine_get_internal_name()) + 9;
c = strlen(machine_get_nvr_name()) + 9;
nvr->fn = (char *) malloc(c + 1);
sprintf(nvr->fn, "%s_sec.nvr", machine_get_internal_name());
sprintf(nvr->fn, "%s_sec.nvr", machine_get_nvr_name());
io_sethandler(0x0074, 3,
ps2_nvr_read, NULL, NULL, ps2_nvr_write, NULL, NULL, nvr);

View File

@@ -655,7 +655,7 @@ pic_reset_hard(void)
/* The situation is as follows: There is a giant mess when it comes to these latches on real hardware,
to the point that there's even boards with board-level latched that get used in place of the latches
on the chipset, therefore, I'm just doing this here for the sake of simplicity. */
if (machine_has_bus(machine, MACHINE_BUS_PS2_LATCH)) {
if (machine_has_flags(machine, MACHINE_PS2_KBC)) {
pic_kbd_latch(0x01);
pic_mouse_latch(0x01);
} else {

View File

@@ -1968,16 +1968,16 @@ escp_init(void *lpt)
dev->ctrl = 0x04;
dev->lpt = lpt;
rom_get_full_path(dev->fontpath, "roms/printer/fonts/");
/* Create a full pathname for the font files. */
if (strlen(exe_path) >= sizeof(dev->fontpath)) {
if (strlen(dev->fontpath) == 0) {
ui_msgbox_header(MBX_ERROR, plat_get_string(STRING_ESCP_ERROR_TITLE),
plat_get_string(STRING_ESCP_ERROR_DESC));
free(dev);
return (NULL);
}
strcpy(dev->fontpath, exe_path);
path_slash(dev->fontpath);
strcat(dev->fontpath, "roms/printer/fonts/");
/* Create the full path for the page images. */
path_append_filename(dev->pagepath, usr_path, "printer");
if (!plat_dir_check(dev->pagepath))

View File

@@ -2135,3 +2135,9 @@ msgstr ""
msgid "Generic PC/AT Memory Expansion"
msgstr ""
msgid "Unable to find Dot-Matrix fonts"
msgstr ""
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr ""

View File

@@ -2129,3 +2129,9 @@ msgstr "Expansió de memòria genèrica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansió de memòria genèrica PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "No es pot trobar tipus de lletra de matriu de punts"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Els tipus de lletra TrueType al directori \"roms/printer/fonts\" són necessaris per a l'emulació de la impressora de matriu de punts ESC/P genèrica."

View File

@@ -2129,3 +2129,9 @@ msgstr "Obecné rozšíření paměti PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Obecné rozšíření paměti PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Nastala chyba při nachození jehličkových písem"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Pro emulaci obecné jehličkové tiskárny ESC/P jsou vyžadována písma TrueType ve složce \"roms/printer/fonts\"."

View File

@@ -2132,3 +2132,9 @@ msgstr "Generische PC/XT-Speichererweiterung"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generische PC/AT-Speichererweiterung"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Nadel-Schriften konnten nicht gefunden werden"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "TrueType-Schriften in das \"roms/printer/fonts\"-Verzeichnis sind für die Allgemeines ESC/P Nadel-Druckers erforderlich."

View File

@@ -2128,3 +2128,9 @@ msgstr "Expansión de Memoria Generica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansión de Memoria Generica PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "No fué posible encontrar las fuentes matriciales"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Las fuentes TrueType en el directorio \"roms/printer/fonts\" son necesarias para la emulación de la impresora matricial ESC/P genérica."

View File

@@ -2129,3 +2129,9 @@ msgstr "Yleinen PC/XT-muistilaajennus"
msgid "Generic PC/AT Memory Expansion"
msgstr "Yleinen PC/AT-muistilaajennus"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Pistematriisifontteja ei löydy"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "TrueType-fontteja kansiossa \"roms/printer/fonts\"-hakemistoon yleinen ESC/P pistematriisitulostin emulointiin."

View File

@@ -2129,3 +2129,9 @@ msgstr "Expansion de la mémoire générique PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansion de la mémoire générique PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Impossible de trouver les polices à matrice à points"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Les polices TrueType dans le répertoire \"roms/printer/fonts\" sont nécessaires à l'émulation de l'imprimante générique ESC/P à matrice à points."

View File

@@ -655,7 +655,7 @@ msgid "ZIP images"
msgstr "ZIP slike"
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 "86Box nije mogao pronaći upotrebljive ROM datoteke.\n\nMolimte posjetite <a href=\"https://github.com/86Box/roms/releases/latest\"></a> sknite paket s ROM datotekama i ekstrahirajte paket u \"roms\" mapu."
msgstr "86Box nije mogao pronaći upotrebljive ROM datoteke.\n\nMolimte posjetite <a href=\"https://github.com/86Box/roms/releases/latest\"></a> sknite paket s ROM datotekama i ekstrahirajte paket u mapu \"roms\"."
msgid "(empty)"
msgstr "(prazno)"
@@ -2062,7 +2062,7 @@ msgid "Generic Text Printer"
msgstr "Generični tekstovni pisač"
msgid "Generic ESC/P Dot-Matrix Printer"
msgstr "Generični pisač matrični ESC/P"
msgstr "Generični matrični pisač ESC/P"
msgid "Generic PostScript Printer"
msgstr "Generični pisač PostScript"
@@ -2129,3 +2129,9 @@ msgstr "Generičko proširenje memorije PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generičko proširenje memorije PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Nije moguće pronaći matrične fontove"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "TrueType fontovi u mapi \"roms/printer/fonts\" potrebni su za emulaciju generičnog matričnog pisača ESC/P."

View File

@@ -2129,3 +2129,9 @@ msgstr "Általános PC/XT memóriabővítők"
msgid "Generic PC/AT Memory Expansion"
msgstr "Általános PC/AT memóriabővítők"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Nem találja a Dot-Matrix betűtípusokat"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Az általános ESC/P pontmátrixnyomtató emulációjához a \"roms/printer/fonts\" könyvtárban található TrueType betűtípusok szükségesek."

View File

@@ -655,7 +655,7 @@ msgid "ZIP images"
msgstr "Immagini ZIP"
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 "86Box non può trovare immagini ROM utilizzabili.\n\nPlease <a href=\"https://github.com/86Box/roms/releases/latest\">download</a> a ROM set and extract it into the \"roms\" directory."
msgstr "86Box non può trovare immagini ROM utilizzabili.\n\nSi prega di <a href=\"https://github.com/86Box/roms/releases/latest\">scaricare</a> un set di ROM ed estrarlo nella directory \"roms\"."
msgid "(empty)"
msgstr "(empty)"
@@ -2129,3 +2129,9 @@ msgstr "Espansione di memoria generica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Espansione di memoria generica PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Impossibile trovare i font a matrice di punti"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "I font TrueType presenti nella directory \"roms/printer/fonts\" sono necessari per l'emulazione della stampante a matrice di punti ESC/P generica."

View File

@@ -2129,3 +2129,9 @@ msgstr "汎用PC/XTメモリ拡張カード"
msgid "Generic PC/AT Memory Expansion"
msgstr "汎用PC/ATメモリ拡張カード"
msgid "Unable to find Dot-Matrix fonts"
msgstr "ドットマトリクスフォントが見つかりません"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "汎用ESC/Pドットマトリクスプリンタのエミュレーションには、roms/printer/fontsディレクトリ内のTrueTypeフォントが必要です。"

View File

@@ -2129,3 +2129,9 @@ msgstr "일반 PC/XT 메모리 확장 카드"
msgid "Generic PC/AT Memory Expansion"
msgstr "일반 PC/AT 메모리 확장 카드"
msgid "Unable to find Dot-Matrix fonts"
msgstr "도트 매트릭스 글꼴을 찾을 수 없습니다"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "일반 ESC/P 도트 매트릭스 프린터의 에뮬레이션을 사용하려면 \"roms/printer/fonts\" 디렉터리에 있는 트루타입 글꼴이 필요합니다."

View File

@@ -2129,3 +2129,9 @@ msgstr "Generieke PC/XT geheugenuitbreiding"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generieke PC/AT geheugenuitbreiding"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Dot-matrix-lettertypen niet gevonden"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "TrueType lettertypen in de map \"roms/printer/fonts\" zijn nodig voor de emulatie van de generieke ESC/P dot-matrix-printer."

View File

@@ -2129,3 +2129,9 @@ msgstr "Generyczne rozszerzenie pamięci PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generyczne rozszerzenie pamięci PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Nie można znaleźć czcionek igłowych"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Czcionki TrueType w katalogu \"roms/printer/fonts\" są wymagane do emulacji generyczniej drukarki igłowej ESC/P."

View File

@@ -2129,3 +2129,9 @@ msgstr "Expansão de memória genérica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansão de memória genérica PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Não foi possível localizar os fontes matriciais de pontos"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "As fontes TrueType no diretório \"roms/printer/fonts\" são necessárias para a emulação da impressora matricial de pontos ESC/P genérica."

View File

@@ -2129,3 +2129,9 @@ msgstr "Expansão de memória genérica PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Expansão de memória genérica PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Não foi possível encontrar os fontes matriciais de pontos"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "As fontes TrueType no diretório \"roms/printer/fonts\" são necessárias para a emulação da impressora matricial de pontos ESC/P genérica"

View File

@@ -2135,3 +2135,9 @@ msgstr "Стандартное расширение памяти PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Стандартное расширение памяти PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Невозможно найти матричные шрифты"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Шрифты TrueType в каталоге \"roms/printer/fonts\" необходимы для эмуляции стандартного матричного принтера ESC/P."

View File

@@ -2129,3 +2129,9 @@ msgstr "Všeobecné rozšírenie pamäte PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Všeobecné rozšírenie pamäte PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Nastala chyba pri hľadaní ihličkových písem"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Písma TrueType v adresári \"roms/printer/fonts\" sú potrebné na emuláciu generickej ihličkovej tlačiarne ESC/P."

View File

@@ -823,10 +823,10 @@ msgid "Are you sure you want to exit 86Box?"
msgstr "Ste prepričani, da želite zapreti 86Box?"
msgid "Unable to initialize Ghostscript"
msgstr "Ne morem inicializirati Ghostscript"
msgstr "Ghostscript-a ni bilo mogoče inicializirati"
msgid "Unable to initialize GhostPCL"
msgstr "Ne morem inicializirati GhostPCL"
msgstr "GhostPCL-ja ni bilo mogoče inicializirati"
msgid "MO %i (%ls): %ls"
msgstr "MO %i (%ls): %ls"
@@ -2129,3 +2129,9 @@ msgstr "Generična razširitev pomnilnika PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Generična razširitev pomnilnika PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Matričnih pisav ni bilo mogoče najti"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Matrične pisave v imeniku \"roms/printer/fonts\" so potrebne za emulacijo generičnega matričnega tiskalnika ESC/P."

View File

@@ -2129,3 +2129,9 @@ msgstr "Sıradan PC/XT bellek artırma"
msgid "Generic PC/AT Memory Expansion"
msgstr "Sıradan PC/AT bellek artırma"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Dot Matrix yazı tipleri bulunamıyor"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Sıradan ESC/P Dot Matrix Yazıcının emülasyonu için \"roms/printer/fonts\" dizinindeki TrueType yazı tipleri gereklidir."

View File

@@ -2135,3 +2135,9 @@ msgstr "Загальне розширення пам'яті PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Загальне розширення пам'яті PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Неможливо знайти матричні шрифти"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Шрифти TrueType у каталозі \"roms/printer/fonts\" потрібні для емуляції загального матричного принтера Generic ESC/P."

View File

@@ -2129,3 +2129,9 @@ msgstr "Chung mở rộng bộ nhớ qua PC/XT"
msgid "Generic PC/AT Memory Expansion"
msgstr "Chung mở rộng bộ nhớ qua PC/AT"
msgid "Unable to find Dot-Matrix fonts"
msgstr "Không tìm thấy phông chữ ma trận chấm"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "Cần có phông chữ TrueType trong thư mục \"roms/printer/fonts\" để mô phỏng máy in generic ESC/P ma trận chấm."

View File

@@ -2129,3 +2129,9 @@ msgstr "通用 PC/XT 内存扩展"
msgid "Generic PC/AT Memory Expansion"
msgstr "通用 PC/AT 内存扩展"
msgid "Unable to find Dot-Matrix fonts"
msgstr "无法找到点阵字体"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "仿真通用 ESC/P 点阵打印机需要使用 \"roms/printer/fonts\" 目录中的 TrueType 字体。"

View File

@@ -2062,7 +2062,7 @@ msgid "Generic Text Printer"
msgstr "通用文字印表機"
msgid "Generic ESC/P Dot-Matrix Printer"
msgstr "通用 ESC/P 點矩陣"
msgstr "通用 ESC/P 點矩陣印表機"
msgid "Generic PostScript Printer"
msgstr "通用 PostScript 印表機"
@@ -2129,3 +2129,9 @@ msgstr "通用 PC/XT 記憶體擴充"
msgid "Generic PC/AT Memory Expansion"
msgstr "通用 PC/AT 記憶體擴充"
msgid "Unable to find Dot-Matrix fonts"
msgstr "無法找到點矩陣字型"
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
msgstr "通用 ESC/P 點矩陣印表機的模擬需要 \"roms/printer/fonts\" 目錄中的 TrueType 字體。"

View File

@@ -639,6 +639,8 @@ ProgSettings::reloadStrings()
translatedstrings[STRING_MONITOR_SLEEP] = QCoreApplication::translate("", "Monitor in sleep mode").toStdWString();
translatedstrings[STRING_NET_ERROR] = QCoreApplication::translate("", "Failed to initialize network driver").toStdWString();
translatedstrings[STRING_NET_ERROR_DESC] = QCoreApplication::translate("", "The network configuration will be switched to the null driver").toStdWString();
translatedstrings[STRING_ESCP_ERROR_TITLE] = QCoreApplication::translate("", "Unable to find Dot-Matrix fonts").toStdWString();
translatedstrings[STRING_ESCP_ERROR_DESC] = QCoreApplication::translate("", "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulatio of the Generic ESC/P Dot-Matrix Printer.").toStdWString();
}
wchar_t *

View File

@@ -1473,7 +1473,7 @@ static const device_config_t aha_154xcp_config[] = {
const device_t aha154xa_device = {
.name = "Adaptec AHA-154xA",
.internal_name = "aha154xa",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = AHA_154xA,
.init = aha_init,
.close = x54x_close,
@@ -1487,7 +1487,7 @@ const device_t aha154xa_device = {
const device_t aha154xb_device = {
.name = "Adaptec AHA-154xB",
.internal_name = "aha154xb",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = AHA_154xB,
.init = aha_init,
.close = x54x_close,
@@ -1501,7 +1501,7 @@ const device_t aha154xb_device = {
const device_t aha154xc_device = {
.name = "Adaptec AHA-154xC",
.internal_name = "aha154xc",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = AHA_154xC,
.init = aha_init,
.close = x54x_close,
@@ -1515,7 +1515,7 @@ const device_t aha154xc_device = {
const device_t aha154xcf_device = {
.name = "Adaptec AHA-154xCF",
.internal_name = "aha154xcf",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = AHA_154xCF,
.init = aha_init,
.close = x54x_close,
@@ -1529,7 +1529,7 @@ const device_t aha154xcf_device = {
const device_t aha154xcp_device = {
.name = "Adaptec AHA-154xCP",
.internal_name = "aha154xcp",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = AHA_154xCP,
.init = aha_init,
.close = aha1542cp_close,

View File

@@ -1872,7 +1872,7 @@ static const device_config_t BT958D_Config[] = {
const device_t buslogic_542b_device = {
.name = "BusLogic BT-542B ISA",
.internal_name = "bt542b",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CHIP_BUSLOGIC_ISA_542B_1991_12_14,
.init = buslogic_init,
.close = x54x_close,
@@ -1886,7 +1886,7 @@ const device_t buslogic_542b_device = {
const device_t buslogic_545s_device = {
.name = "BusLogic BT-545S ISA",
.internal_name = "bt545s",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CHIP_BUSLOGIC_ISA_545S_1992_10_05,
.init = buslogic_init,
.close = x54x_close,
@@ -1900,7 +1900,7 @@ const device_t buslogic_545s_device = {
const device_t buslogic_542bh_device = {
.name = "BusLogic BT-542BH ISA",
.internal_name = "bt542bh",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CHIP_BUSLOGIC_ISA_542BH_1993_05_23,
.init = buslogic_init,
.close = x54x_close,
@@ -1914,7 +1914,7 @@ const device_t buslogic_542bh_device = {
const device_t buslogic_545c_device = {
.name = "BusLogic BT-545C ISA",
.internal_name = "bt545c",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CHIP_BUSLOGIC_ISA_545C_1994_12_01,
.init = buslogic_init,
.close = x54x_close,

View File

@@ -616,7 +616,6 @@ const device_t scsi_t128_device = {
.config = t128_config
};
const device_t scsi_t228_device = {
.name = "Trantor T228",
.internal_name = "t228",
@@ -624,7 +623,6 @@ const device_t scsi_t228_device = {
.local = 0,
.init = t128_init,
.close = t128_close,
.close = t128_close,
.reset = NULL,
.available = t128_available,
.speed_changed = NULL,

View File

@@ -1557,7 +1557,7 @@ static const device_config_t azt2316a_config[] = {
const device_t azt2316a_device = {
.name = "Aztech Sound Galaxy Pro 16 AB (Washington)",
.internal_name = "azt2316a",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_SUBTYPE_CLONE_AZT2316A_0X11,
.init = azt_init,
.close = azt_close,
@@ -1571,7 +1571,7 @@ const device_t azt2316a_device = {
const device_t azt1605_device = {
.name = "Aztech Sound Galaxy Nova 16 Extra (Clinton)",
.internal_name = "azt1605",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_SUBTYPE_CLONE_AZT1605_0X0C,
.init = azt_init,
.close = azt_close,

View File

@@ -1061,7 +1061,7 @@ cs423x_speed_changed(void *priv)
const device_t cs4235_device = {
.name = "Crystal CS4235",
.internal_name = "cs4235",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CRYSTAL_CS4235,
.init = cs423x_init,
.close = cs423x_close,
@@ -1075,7 +1075,7 @@ const device_t cs4235_device = {
const device_t cs4235_onboard_device = {
.name = "Crystal CS4235 (On-Board)",
.internal_name = "cs4235_onboard",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CRYSTAL_CS4235 | CRYSTAL_NOEEPROM,
.init = cs423x_init,
.close = cs423x_close,
@@ -1089,7 +1089,7 @@ const device_t cs4235_onboard_device = {
const device_t cs4236_onboard_device = {
.name = "Crystal CS4236 (On-Board)",
.internal_name = "cs4236_onboard",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CRYSTAL_CS4236 | CRYSTAL_NOEEPROM,
.init = cs423x_init,
.close = cs423x_close,
@@ -1103,7 +1103,7 @@ const device_t cs4236_onboard_device = {
const device_t cs4236b_device = {
.name = "Crystal CS4236B",
.internal_name = "cs4236b",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CRYSTAL_CS4236B,
.init = cs423x_init,
.close = cs423x_close,
@@ -1117,7 +1117,7 @@ const device_t cs4236b_device = {
const device_t cs4236b_onboard_device = {
.name = "Crystal CS4236B",
.internal_name = "cs4236b",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CRYSTAL_CS4236B | CRYSTAL_NOEEPROM,
.init = cs423x_init,
.close = cs423x_close,
@@ -1131,7 +1131,7 @@ const device_t cs4236b_onboard_device = {
const device_t cs4237b_device = {
.name = "Crystal CS4237B",
.internal_name = "cs4237b",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CRYSTAL_CS4237B,
.init = cs423x_init,
.close = cs423x_close,
@@ -1145,7 +1145,7 @@ const device_t cs4237b_device = {
const device_t cs4238b_device = {
.name = "Crystal CS4238B",
.internal_name = "cs4238b",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = CRYSTAL_CS4238B,
.init = cs423x_init,
.close = cs423x_close,

View File

@@ -1500,7 +1500,7 @@ static const device_config_t gus_config[] = {
const device_t gus_device = {
.name = "Gravis UltraSound",
.internal_name = "gus",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = gus_init,
.close = gus_close,

View File

@@ -484,7 +484,7 @@ static const device_config_t optimc_config[] = {
const device_t acermagic_s20_device = {
.name = "AcerMagic S20",
.internal_name = "acermagic_s20",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0xE3 | OPTIMC_CS4231,
.init = optimc_init,
.close = optimc_close,
@@ -498,7 +498,7 @@ const device_t acermagic_s20_device = {
const device_t mirosound_pcm10_device = {
.name = "miroSOUND PCM10",
.internal_name = "mirosound_pcm10",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0xE3 | OPTIMC_OPL4,
.init = optimc_init,
.close = optimc_close,

View File

@@ -2453,7 +2453,7 @@ const device_t pasplus_device = {
const device_t pas16_device = {
.name = "Pro Audio Spectrum 16",
.internal_name = "pas16",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x0f,
.init = pas16_init,
.close = pas16_close,
@@ -2467,7 +2467,7 @@ const device_t pas16_device = {
const device_t pas16d_device = {
.name = "Pro Audio Spectrum 16D",
.internal_name = "pas16d",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x0c,
.init = pas16_init,
.close = pas16_close,

View File

@@ -5476,7 +5476,7 @@ const device_t sb_pro_mcv_device = {
const device_t sb_pro_compat_device = {
.name = "Sound Blaster Pro (Compatibility)",
.internal_name = "sbpro_compat",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = sb_pro_compat_init,
.close = sb_close,
@@ -5490,7 +5490,7 @@ const device_t sb_pro_compat_device = {
const device_t sb_16_device = {
.name = "Sound Blaster 16",
.internal_name = "sb16",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = FM_YMF262,
.init = sb_16_init,
.close = sb_close,
@@ -5504,7 +5504,7 @@ const device_t sb_16_device = {
const device_t sb_vibra16c_onboard_device = {
.name = "Sound Blaster ViBRA 16C (On-Board)",
.internal_name = "sb_vibra16c_onboard",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_VIBRA16C,
.init = sb_vibra16_pnp_init,
.close = sb_close,
@@ -5518,7 +5518,7 @@ const device_t sb_vibra16c_onboard_device = {
const device_t sb_vibra16c_device = {
.name = "Sound Blaster ViBRA 16C",
.internal_name = "sb_vibra16c",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_VIBRA16C,
.init = sb_vibra16_pnp_init,
.close = sb_close,
@@ -5532,7 +5532,7 @@ const device_t sb_vibra16c_device = {
const device_t sb_vibra16cl_onboard_device = {
.name = "Sound Blaster ViBRA 16CL (On-Board)",
.internal_name = "sb_vibra16cl_onboard",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_VIBRA16CL,
.init = sb_vibra16_pnp_init,
.close = sb_close,
@@ -5546,7 +5546,7 @@ const device_t sb_vibra16cl_onboard_device = {
const device_t sb_vibra16cl_device = {
.name = "Sound Blaster ViBRA 16CL",
.internal_name = "sb_vibra16cl",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_VIBRA16CL,
.init = sb_vibra16_pnp_init,
.close = sb_close,
@@ -5560,7 +5560,7 @@ const device_t sb_vibra16cl_device = {
const device_t sb_vibra16s_onboard_device = {
.name = "Sound Blaster ViBRA 16S (On-Board)",
.internal_name = "sb_vibra16s_onboard",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = FM_YMF289B,
.init = sb_16_init,
.close = sb_close,
@@ -5574,7 +5574,7 @@ const device_t sb_vibra16s_onboard_device = {
const device_t sb_vibra16s_device = {
.name = "Sound Blaster ViBRA 16S",
.internal_name = "sb_vibra16s",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = FM_YMF289B,
.init = sb_16_init,
.close = sb_close,
@@ -5588,7 +5588,7 @@ const device_t sb_vibra16s_device = {
const device_t sb_vibra16xv_onboard_device = {
.name = "Sound Blaster ViBRA 16XV (On-Board)",
.internal_name = "sb_vibra16xv_onboard",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_VIBRA16XV,
.init = sb_vibra16_pnp_init,
.close = sb_close,
@@ -5602,7 +5602,7 @@ const device_t sb_vibra16xv_onboard_device = {
const device_t sb_vibra16xv_device = {
.name = "Sound Blaster ViBRA 16XV",
.internal_name = "sb_vibra16xv",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_VIBRA16XV,
.init = sb_vibra16_pnp_init,
.close = sb_close,
@@ -5630,7 +5630,7 @@ const device_t sb_16_reply_mca_device = {
const device_t sb_16_pnp_device = {
.name = "Sound Blaster 16 PnP",
.internal_name = "sb16_pnp",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_16_PNP_NOIDE,
.init = sb_16_pnp_init,
.close = sb_close,
@@ -5644,7 +5644,7 @@ const device_t sb_16_pnp_device = {
const device_t sb_16_pnp_ide_device = {
.name = "Sound Blaster 16 PnP (IDE)",
.internal_name = "sb16_pnp_ide",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_16_PNP_IDE,
.init = sb_16_pnp_init,
.close = sb_close,
@@ -5658,7 +5658,7 @@ const device_t sb_16_pnp_ide_device = {
const device_t sb_16_compat_device = {
.name = "Sound Blaster 16 (Compatibility)",
.internal_name = "sb16_compat",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 1,
.init = sb_16_compat_init,
.close = sb_close,
@@ -5672,7 +5672,7 @@ const device_t sb_16_compat_device = {
const device_t sb_16_compat_nompu_device = {
.name = "Sound Blaster 16 (Compatibility - MPU-401 Off)",
.internal_name = "sb16_compat",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = sb_16_compat_init,
.close = sb_close,
@@ -5686,7 +5686,7 @@ const device_t sb_16_compat_nompu_device = {
const device_t sb_goldfinch_device = {
.name = "Creative EMU8000 PnP (Goldfinch)",
.internal_name = "sb_goldfinch",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = sb_goldfinch_init,
.close = sb_goldfinch_close,
@@ -5700,7 +5700,7 @@ const device_t sb_goldfinch_device = {
const device_t sb_32_pnp_device = {
.name = "Sound Blaster 32 PnP",
.internal_name = "sb32_pnp",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_32_PNP,
.init = sb_awe32_pnp_init,
.close = sb_awe32_close,
@@ -5714,7 +5714,7 @@ const device_t sb_32_pnp_device = {
const device_t sb_awe32_device = {
.name = "Sound Blaster AWE32",
.internal_name = "sbawe32",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = sb_awe32_init,
.close = sb_awe32_close,
@@ -5728,7 +5728,7 @@ const device_t sb_awe32_device = {
const device_t sb_awe32_pnp_device = {
.name = "Sound Blaster AWE32 PnP",
.internal_name = "sbawe32_pnp",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_AWE32_PNP,
.init = sb_awe32_pnp_init,
.close = sb_awe32_close,
@@ -5742,7 +5742,7 @@ const device_t sb_awe32_pnp_device = {
const device_t sb_awe64_value_device = {
.name = "Sound Blaster AWE64 Value",
.internal_name = "sbawe64_value",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_AWE64_VALUE,
.init = sb_awe32_pnp_init,
.close = sb_awe32_close,
@@ -5756,7 +5756,7 @@ const device_t sb_awe64_value_device = {
const device_t sb_awe64_device = {
.name = "Sound Blaster AWE64",
.internal_name = "sbawe64",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_AWE64_NOIDE,
.init = sb_awe32_pnp_init,
.close = sb_awe32_close,
@@ -5770,7 +5770,7 @@ const device_t sb_awe64_device = {
const device_t sb_awe64_ide_device = {
.name = "Sound Blaster AWE64 (IDE)",
.internal_name = "sbawe64_ide",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_AWE64_IDE,
.init = sb_awe32_pnp_init,
.close = sb_awe32_close,
@@ -5784,7 +5784,7 @@ const device_t sb_awe64_ide_device = {
const device_t sb_awe64_gold_device = {
.name = "Sound Blaster AWE64 Gold",
.internal_name = "sbawe64_gold",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = SB_AWE64_GOLD,
.init = sb_awe32_pnp_init,
.close = sb_awe32_close,

View File

@@ -279,7 +279,7 @@ static const device_config_t wss_config[] = {
const device_t wss_device = {
.name = "Windows Sound System",
.internal_name = "wss",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0,
.init = wss_init,
.close = wss_close,

View File

@@ -4072,7 +4072,7 @@ static const device_config_t mca_ext8514_config[] = {
const device_t gen8514_isa_device = {
.name = "IBM 8514/A clone (ISA)",
.internal_name = "8514_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = 0,
.init = ibm8514_init,
.close = ibm8514_close,

View File

@@ -4595,7 +4595,7 @@ mach64gx_init(const device_t *info)
{
mach64_t *mach64 = mach64_common_init(info);
if (info->flags & DEVICE_ISA)
if (info->flags & DEVICE_ISA16)
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_mach64_isa);
else if (info->flags & DEVICE_PCI)
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_mach64_pci);
@@ -4617,7 +4617,7 @@ mach64gx_init(const device_t *info)
mach64->config_stat0 |= 6; /*VLB, 256Kx16 DRAM*/
ati_eeprom_load(&mach64->eeprom, "mach64_vlb.nvr", 1);
rom_init(&mach64->bios_rom, BIOS_VLB_ROM_PATH, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
} else if (info->flags & DEVICE_ISA) {
} else if (info->flags & DEVICE_ISA16) {
mach64->config_stat0 |= 0; /*ISA 16-bit, 256k16 DRAM*/
ati_eeprom_load(&mach64->eeprom, "mach64.nvr", 1);
rom_init(&mach64->bios_rom, BIOS_ISA_ROM_PATH, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
@@ -4752,7 +4752,7 @@ static const device_config_t mach64vt2_config[] = {
const device_t mach64gx_isa_device = {
.name = "ATI Mach64GX ISA",
.internal_name = "mach64gx_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = 0,
.init = mach64gx_init,
.close = mach64_close,

View File

@@ -4382,7 +4382,7 @@ gd54xx_init(const device_t *info)
rom_init_interleaved(&gd54xx->bios_rom, BIOS_GD5428_BOCA_ISA_PATH_1, BIOS_GD5428_BOCA_ISA_PATH_2, 0xc0000,
0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
if (info->flags & DEVICE_ISA)
if ((info->flags & DEVICE_ISA) || (info->flags & DEVICE_ISA16))
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_gd54xx_isa);
else if (info->flags & DEVICE_PCI)
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_gd54xx_pci);
@@ -4887,7 +4887,7 @@ const device_t gd5402_isa_device = {
const device_t gd5402_onboard_device = {
.name = "Cirrus Logic GD5402 (ISA) (ACUMOS AVGA2) (On-Board)",
.internal_name = "cl_gd5402_onboard",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5402 | 0x200,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -4901,7 +4901,7 @@ const device_t gd5402_onboard_device = {
const device_t gd5420_isa_device = {
.name = "Cirrus Logic GD5420 (ISA)",
.internal_name = "cl_gd5420_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5420,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -4915,7 +4915,7 @@ const device_t gd5420_isa_device = {
const device_t gd5422_isa_device = {
.name = "Cirrus Logic GD5422 (ISA)",
.internal_name = "cl_gd5422_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5422,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -4943,7 +4943,7 @@ const device_t gd5424_vlb_device = {
const device_t gd5426_isa_device = {
.name = "Cirrus Logic GD5426 (ISA)",
.internal_name = "cl_gd5426_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5426,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -4958,7 +4958,7 @@ const device_t gd5426_isa_device = {
const device_t gd5426_diamond_speedstar_pro_a1_isa_device = {
.name = "Cirrus Logic GD5426 (ISA) (Diamond SpeedStar Pro Rev. A1)",
.internal_name = "cl_gd5426_diamond_a1_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5426 | 0x100,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -5000,7 +5000,7 @@ const device_t gd5426_onboard_device = {
const device_t gd5428_isa_device = {
.name = "Cirrus Logic GD5428 (ISA)",
.internal_name = "cl_gd5428_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5428,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -5043,7 +5043,7 @@ const device_t gd5428_diamond_speedstar_pro_b1_vlb_device = {
const device_t gd5428_boca_isa_device = {
.name = "Cirrus Logic GD5428 (ISA) (BOCA Research 4610)",
.internal_name = "cl_gd5428_boca_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5428 | 0x100,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -5085,7 +5085,7 @@ const device_t gd5426_mca_device = {
const device_t gd5428_onboard_device = {
.name = "Cirrus Logic GD5428 (ISA) (On-Board)",
.internal_name = "cl_gd5428_onboard",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5428,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -5113,7 +5113,7 @@ const device_t gd5428_vlb_onboard_device = {
const device_t gd5429_isa_device = {
.name = "Cirrus Logic GD5429 (ISA)",
.internal_name = "cl_gd5429_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5429,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -5212,7 +5212,7 @@ const device_t gd5430_onboard_pci_device = {
const device_t gd5434_isa_device = {
.name = "Cirrus Logic GD5434 (ISA)",
.internal_name = "cl_gd5434_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5434,
.init = gd54xx_init,
.close = gd54xx_close,
@@ -5227,7 +5227,7 @@ const device_t gd5434_isa_device = {
const device_t gd5434_diamond_speedstar_64_a3_isa_device = {
.name = "Cirrus Logic GD5434 (ISA) (Diamond SpeedStar 64 Rev. A3)",
.internal_name = "cl_gd5434_diamond_a3_isa",
.flags = DEVICE_AT | DEVICE_ISA,
.flags = DEVICE_ISA16,
.local = CIRRUS_ID_CLGD5434 | 0x100,
.init = gd54xx_init,
.close = gd54xx_close,

View File

@@ -2964,7 +2964,7 @@ static const device_config_t et4000w32p_config[] = {
const device_t et4000w32_device = {
.name = "Tseng Labs ET4000/w32 ISA",
.internal_name = "et4000w32",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = ET4000W32,
.init = et4000w32p_init,
.close = et4000w32p_close,
@@ -2978,7 +2978,7 @@ const device_t et4000w32_device = {
const device_t et4000w32_onboard_device = {
.name = "Tseng Labs ET4000/w32 (ISA) (On-Board)",
.internal_name = "et4000w32_onboard",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = ET4000W32,
.init = et4000w32p_init,
.close = et4000w32p_close,
@@ -2992,7 +2992,7 @@ const device_t et4000w32_onboard_device = {
const device_t et4000w32i_isa_device = {
.name = "Tseng Labs ET4000/w32i Rev. B ISA",
.internal_name = "et4000w32i",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = ET4000W32I,
.init = et4000w32p_init,
.close = et4000w32p_close,

View File

@@ -1604,7 +1604,7 @@ ht216_init(const device_t *info, uint32_t mem_size, int has_rom)
mem_mapping_disable(&ht216->linear_mapping);
ht216->id = info->local;
ht216->isabus = (info->flags & DEVICE_ISA);
ht216->isabus = (info->flags & DEVICE_ISA) || (info->flags & DEVICE_ISA16);
ht216->mca = (info->flags & DEVICE_MCA);
io_sethandler(0x03c0, 0x0020, ht216_in, NULL, NULL, ht216_out, NULL, NULL, ht216);
@@ -1819,7 +1819,7 @@ const device_t ht216_32_standalone_device = {
const device_t radius_svga_multiview_isa_device = {
.name = "Radius SVGA Multiview ISA (HT209)",
.internal_name = "radius_isa",
.flags = DEVICE_ISA | DEVICE_AT,
.flags = DEVICE_ISA16,
.local = 0x7152, /*HT209*/
.init = radius_svga_multiview_init,
.close = ht216_close,

View File

@@ -571,6 +571,8 @@ paradise_init(const device_t *info, uint32_t memory)
paradise->type = info->local;
svga->hoverride = 1;
return paradise;
}

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