Merge remote-tracking branch 'origin/master' into feature/recompiler_improvements
33
src/86box.c
@@ -1871,6 +1871,27 @@ update_mouse_msg(void)
|
||||
(mouse_get_buttons() > 2) ? plat_get_string(STRING_MOUSE_RELEASE) : plat_get_string(STRING_MOUSE_RELEASE_MMB));
|
||||
swprintf(mouse_msg[2], sizeof_w(mouse_msg[2]), L"%ls v%ls - %%i%%%% - %ls - %ls/%ls",
|
||||
EMU_NAME_W, EMU_VERSION_FULL_W, wmachine, wcpufamily, wcpu);
|
||||
#else
|
||||
#ifdef __APPLE__
|
||||
/*
|
||||
* On macOS, BSD swprintf fails (returns -1) when the format string
|
||||
* or a %ls argument contains non-ASCII wide characters (e.g. the
|
||||
* native key symbols ⌘ U+2318, ⌫ U+232B) and the C locale is
|
||||
* active. Store just the message suffixes here; the title update
|
||||
* path in pc_render_monitor_dispatch() builds the full string
|
||||
* without swprintf.
|
||||
*/
|
||||
wcsncpy(mouse_msg[0], plat_get_string(STRING_MOUSE_CAPTURE), sizeof_w(mouse_msg[0]) - 1);
|
||||
mouse_msg[0][sizeof_w(mouse_msg[0]) - 1] = L'\0';
|
||||
|
||||
{
|
||||
wchar_t *rel = (mouse_get_buttons() > 2) ? plat_get_string(STRING_MOUSE_RELEASE)
|
||||
: plat_get_string(STRING_MOUSE_RELEASE_MMB);
|
||||
wcsncpy(mouse_msg[1], rel, sizeof_w(mouse_msg[1]) - 1);
|
||||
mouse_msg[1][sizeof_w(mouse_msg[1]) - 1] = L'\0';
|
||||
}
|
||||
|
||||
mouse_msg[2][0] = L'\0';
|
||||
#else
|
||||
swprintf(mouse_msg[0], sizeof_w(mouse_msg[0]), L"%%i%%%% - %ls",
|
||||
plat_get_string(STRING_MOUSE_CAPTURE));
|
||||
@@ -1878,6 +1899,7 @@ update_mouse_msg(void)
|
||||
(mouse_get_buttons() > 2) ? plat_get_string(STRING_MOUSE_RELEASE) : plat_get_string(STRING_MOUSE_RELEASE_MMB));
|
||||
wcsncpy(mouse_msg[2], L"%i%%", sizeof_w(mouse_msg[2]));
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
@@ -2010,11 +2032,20 @@ pc_run(void)
|
||||
else
|
||||
fps = ((fps + 20) / 50) * 50;
|
||||
#endif
|
||||
swprintf(temp, sizeof_w(temp), mouse_msg[mouse_msg_idx], fps / (force_10ms ? 1 : 10));
|
||||
#ifdef __APPLE__
|
||||
/*
|
||||
* mouse_msg[] stores suffixes only on macOS (see update_mouse_msg).
|
||||
* Build the title without passing non-ASCII chars through swprintf.
|
||||
*/
|
||||
swprintf(temp, sizeof_w(temp), L"%i%%", fps / (force_10ms ? 1 : 10));
|
||||
if (mouse_msg[mouse_msg_idx][0]) {
|
||||
wcsncat(temp, L" - ", sizeof_w(temp) - wcslen(temp) - 1);
|
||||
wcsncat(temp, mouse_msg[mouse_msg_idx], sizeof_w(temp) - wcslen(temp) - 1);
|
||||
}
|
||||
/* Needed due to modifying the UI on the non-main thread is a big no-no. */
|
||||
dispatch_async_f(dispatch_get_main_queue(), wcsdup((const wchar_t *) temp), _ui_window_title);
|
||||
#else
|
||||
swprintf(temp, sizeof_w(temp), mouse_msg[mouse_msg_idx], fps / (force_10ms ? 1 : 10));
|
||||
ui_window_title(temp);
|
||||
#endif
|
||||
title_update = 0;
|
||||
|
||||
@@ -1614,7 +1614,7 @@ ali1543_init(const device_t *info)
|
||||
|
||||
/* ACPI */
|
||||
dev->acpi = device_add(&acpi_ali_device);
|
||||
dev->nvr = device_add(&piix4_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_PIIX4);
|
||||
|
||||
/* DMA */
|
||||
dma_alias_set();
|
||||
|
||||
@@ -1581,11 +1581,11 @@ piix_init(const device_t *info)
|
||||
|
||||
if (dev->type > 3) {
|
||||
if (info->local & PIIX4_NVR_AMI_1995J)
|
||||
dev->nvr = device_add(&piix4_ami_1995j_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_PIIX4_AMI_1995J);
|
||||
else if (info->local & PIIX4_NVR_AMI_1995)
|
||||
dev->nvr = device_add(&piix4_ami_1995_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_PIIX4_AMI_1995);
|
||||
else
|
||||
dev->nvr = device_add(&piix4_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_PIIX4);
|
||||
dev->smbus = device_add(&piix4_smbus_device);
|
||||
|
||||
dev->acpi = device_add(&acpi_intel_device);
|
||||
|
||||
@@ -84,7 +84,10 @@ opti499_recalc(opti499_t *dev)
|
||||
base = 0xd0000 + (i << 14);
|
||||
|
||||
if ((dev->regs[0x22] & ((base >= 0xe0000) ? 0x20 : 0x40)) && (dev->regs[0x23] & (1 << i))) {
|
||||
shflags = MEM_READ_INTERNAL;
|
||||
if (dev->regs[0x2d] & (1 << ((i >> 1) + 2)))
|
||||
shflags = MEM_READ_EXTANY;
|
||||
else
|
||||
shflags = MEM_READ_INTERNAL;
|
||||
shflags |= (dev->regs[0x22] & ((base >= 0xe0000) ? 0x08 : 0x10)) ? MEM_WRITE_DISABLED : MEM_WRITE_INTERNAL;
|
||||
} else {
|
||||
if (dev->regs[0x2d] & (1 << ((i >> 1) + 2)))
|
||||
|
||||
@@ -203,7 +203,7 @@ opti602_init(UNUSED(const device_t *info))
|
||||
io_sethandler(0x0022, 0x0001, opti602_read, NULL, NULL, opti602_write, NULL, NULL, dev);
|
||||
io_sethandler(0x0024, 0x0001, opti602_read, NULL, NULL, opti602_write, NULL, NULL, dev);
|
||||
|
||||
dev->nvr = device_add(&at_mb_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_MB);
|
||||
|
||||
opti602_reset(dev);
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ typedef struct opti895_t {
|
||||
static uint8_t masks[0x10] = { 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
|
||||
0xe3, 0xff, 0xe3, 0xff, 0x00, 0xff, 0xff, 0xff };
|
||||
|
||||
#define ENABLE_OPTI895_LOG 1
|
||||
#ifdef ENABLE_OPTI895_LOG
|
||||
int opti895_do_log = ENABLE_OPTI895_LOG;
|
||||
|
||||
@@ -159,6 +160,8 @@ opti895_write(uint16_t addr, uint8_t val, void *priv)
|
||||
((dev->idx >= 0xe0) && (dev->idx <= 0xef))) {
|
||||
if (dev->idx > 0x2f)
|
||||
dev->regs[dev->idx] = val;
|
||||
else if (dev->idx == 0x28)
|
||||
dev->regs[dev->idx] = (val & masks[dev->idx - 0x20]) | 0x18;
|
||||
else
|
||||
dev->regs[dev->idx] = val & masks[dev->idx - 0x20];
|
||||
opti895_log("dev->regs[%04x] = %08x\n", dev->idx, val);
|
||||
@@ -247,7 +250,11 @@ opti895_read(uint16_t addr, void *priv)
|
||||
if (((dev->idx >= 0x20) && (dev->idx <= 0x2f) && (dev->idx != 0x2c)) ||
|
||||
((dev->idx >= 0xe0) && (dev->idx <= 0xef))) {
|
||||
ret = dev->regs[dev->idx];
|
||||
if (dev->idx == 0xe0)
|
||||
if (dev->idx == 0x21)
|
||||
ret |= 0x1c;
|
||||
else if (dev->idx == 0x28)
|
||||
ret |= 0x18;
|
||||
else if (dev->idx == 0xe0)
|
||||
ret = (ret & 0xf6) | (in_smm ? 0x00 : 0x08) | !!dev->forced_green;
|
||||
}
|
||||
break;
|
||||
@@ -291,7 +298,7 @@ opti895_init(const device_t *info)
|
||||
|
||||
dev->regs[0x01] = 0xc0;
|
||||
|
||||
dev->regs[0x22] = 0xc4;
|
||||
dev->regs[0x22] = 0xe4;
|
||||
dev->regs[0x25] = 0x7c;
|
||||
dev->regs[0x26] = 0x10;
|
||||
dev->regs[0x27] = 0xde;
|
||||
@@ -304,7 +311,7 @@ opti895_init(const device_t *info)
|
||||
dev->regs[0xe8] = 0x08;
|
||||
dev->regs[0xe9] = 0x08;
|
||||
dev->regs[0xeb] = 0xff;
|
||||
dev->regs[0xef] = 0x40;
|
||||
dev->regs[0xef] = 0x41;
|
||||
|
||||
opti895_recalc(dev);
|
||||
|
||||
|
||||
@@ -1238,7 +1238,7 @@ sis_5513_pci_to_isa_init(UNUSED(const device_t *info))
|
||||
dev->pit_read_reg = pit_is_fast ? pitf_read_reg : pit_read_reg;
|
||||
|
||||
/* NVR */
|
||||
dev->nvr = device_add(&at_mb_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_MB);
|
||||
|
||||
switch (dev->rev) {
|
||||
case 0x00:
|
||||
|
||||
@@ -673,9 +673,9 @@ static void
|
||||
ide_sec_disable();
|
||||
|
||||
if (info->local)
|
||||
dev->nvr = device_add(&ami_1994_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AMI_1994);
|
||||
else
|
||||
dev->nvr = device_add(&at_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT);
|
||||
|
||||
dma_high_page_init();
|
||||
|
||||
|
||||
@@ -667,7 +667,7 @@ sis_85c50x_init(UNUSED(const device_t *info))
|
||||
dev->pit_read_reg = pit_is_fast ? pitf_read_reg : pit_read_reg;
|
||||
|
||||
/* NVR */
|
||||
dev->nvr = device_add(&at_mb_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_MB);
|
||||
|
||||
device_add(&ide_pci_2ch_device);
|
||||
}
|
||||
|
||||
@@ -1722,7 +1722,7 @@ pipc_init(const device_t *info)
|
||||
else if (dev->local >= VIA_PIPC_596A)
|
||||
dev->smbus = device_add(&piix4_smbus_device);
|
||||
|
||||
dev->nvr = device_add(&via_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_VIA);
|
||||
|
||||
if (dev->local >= VIA_PIPC_596A) {
|
||||
dev->acpi = device_add(&acpi_via_596b_device);
|
||||
|
||||
@@ -12,11 +12,17 @@
|
||||
*
|
||||
* Copyright 2020 Miran Grca.
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_VL82C48X_LOG
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
#define HAVE_STDARG_H
|
||||
#include <86box/86box.h>
|
||||
#include "cpu.h"
|
||||
#include <86box/timer.h>
|
||||
@@ -27,11 +33,31 @@
|
||||
#include <86box/nmi.h>
|
||||
#include <86box/port_92.h>
|
||||
#include <86box/chipset.h>
|
||||
#include <86box/log.h>
|
||||
|
||||
#ifdef ENABLE_VL82C48X_LOG
|
||||
int vl82c48x_do_log = ENABLE_VL82C48X_LOG;
|
||||
|
||||
static void
|
||||
vl82c48x_log(void *priv, const char *fmt, ...)
|
||||
{
|
||||
if (vl82c48x_do_log) {
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
log_out(priv, fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
}
|
||||
#else
|
||||
# define vl82c48x_log(fmt, ...)
|
||||
#endif
|
||||
|
||||
typedef struct vl82c480_t {
|
||||
uint8_t idx;
|
||||
uint8_t regs[256];
|
||||
uint32_t banks[4];
|
||||
|
||||
void * log; // New logging system
|
||||
} vl82c480_t;
|
||||
|
||||
static int
|
||||
@@ -77,6 +103,14 @@ vl82c480_recalc_shadow(vl82c480_t *dev)
|
||||
}
|
||||
}
|
||||
|
||||
/* Implement ROMCS# disable portion of ROMMOV behavior */
|
||||
if ((dev->regs[0x11] == 0x00) && ((dev->regs[0x0c] & 0x20) || (dev->regs[0x0c] & 0x10)))
|
||||
mem_set_mem_state(0xe0000, 0x10000, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL);
|
||||
if (!(dev->regs[0x0f] & 0x0f) && !(dev->regs[0x0c] & 0x20))
|
||||
mem_set_mem_state(0xc0000, 0x8000, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL);
|
||||
if (!(dev->regs[0x0f] & 0xf0) && !((dev->regs[0x0c] & 0x30) == 0x30))
|
||||
mem_set_mem_state(0xc8000, 0x8000, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL);
|
||||
|
||||
flushmmucache();
|
||||
}
|
||||
|
||||
@@ -116,6 +150,8 @@ vl82c480_write(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
vl82c480_t *dev = (vl82c480_t *) priv;
|
||||
|
||||
vl82c48x_log(dev->log, "[%04X:%08X] VL82c48x: [W] %04X = %02X\n", CS, cpu_state.pc, addr, val);
|
||||
|
||||
switch (addr) {
|
||||
case 0xec:
|
||||
dev->idx = val;
|
||||
@@ -146,6 +182,10 @@ vl82c480_write(uint16_t addr, uint8_t val, void *priv)
|
||||
case 0x07:
|
||||
dev->regs[dev->idx] = (dev->regs[dev->idx] & 0x40) | (val & 0xbf);
|
||||
break;
|
||||
case 0x0c:
|
||||
dev->regs[dev->idx] = val;
|
||||
vl82c480_recalc_shadow(dev);
|
||||
break;
|
||||
case 0x0d ... 0x12:
|
||||
dev->regs[dev->idx] = val;
|
||||
vl82c480_recalc_shadow(dev);
|
||||
@@ -195,6 +235,8 @@ vl82c480_read(uint16_t addr, void *priv)
|
||||
break;
|
||||
}
|
||||
|
||||
vl82c48x_log(dev->log, "[%04X:%08X] VL82c48x: [R] %04X = %02X\n", CS, cpu_state.pc, addr, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -203,6 +245,11 @@ vl82c480_close(void *priv)
|
||||
{
|
||||
vl82c480_t *dev = (vl82c480_t *) priv;
|
||||
|
||||
if (dev->log != NULL) {
|
||||
log_close(dev->log);
|
||||
dev->log = NULL;
|
||||
}
|
||||
|
||||
free(dev);
|
||||
}
|
||||
|
||||
@@ -217,6 +264,8 @@ vl82c480_init(const device_t *info)
|
||||
uint8_t min_j = (machines[machine].init == machine_at_monsoon_init) ? 2 : 2;
|
||||
uint8_t max_j = (machines[machine].init == machine_at_monsoon_init) ? 7 : 7;
|
||||
|
||||
dev->log = log_open("VL82c48x");
|
||||
|
||||
dev->regs[0x00] = info->local;
|
||||
dev->regs[0x01] = 0xff;
|
||||
dev->regs[0x02] = 0x8a;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* win2kgamer
|
||||
*
|
||||
* Copyright 2020-2025 Miran Grca.
|
||||
* Copyright 2025 win2kgamer
|
||||
* Copyright 2025-2026 win2kgamer
|
||||
*/
|
||||
#ifdef ENABLE_VL82C59X_LOG
|
||||
#include <stdarg.h>
|
||||
@@ -80,6 +80,9 @@ typedef struct vl82c59x_t {
|
||||
port_92_t *port_92;
|
||||
nvr_t *nvr;
|
||||
|
||||
uint32_t banks[4];
|
||||
uint8_t bankcfg[4];
|
||||
|
||||
void * log; /* New logging system */
|
||||
} vl82c59x_t;
|
||||
|
||||
@@ -207,6 +210,52 @@ vl82c59x_set_pm_io(void *priv)
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
vl82c59x_recalc_banks(vl82c59x_t *dev)
|
||||
{
|
||||
uint32_t sizes[8] = { 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144 };
|
||||
uint8_t shifts[4] = { 0, 4, 0, 4 };
|
||||
uint8_t regs[4] = { 0x58, 0x58, 0x59, 0x59 };
|
||||
uint32_t total = 0;
|
||||
|
||||
for (uint8_t i = 0; i < 4; i++) {
|
||||
uint8_t shift = shifts[i];
|
||||
uint8_t reg = regs[i];
|
||||
uint8_t cfg = (dev->pci_conf[reg] >> shift) & 0x03; /* Module types */
|
||||
uint8_t dbl = ((dev->pci_conf[reg] >> shift) & 0x08) ? 1 : 0; /* Single/double sided */
|
||||
uint8_t conf = (cfg << 1) | (dbl & 0x01);
|
||||
uint32_t size = sizes[conf];
|
||||
|
||||
vl82c59x_log(dev->log, "VL82c59x DRAM recalc: bank %i, cfg = %02X, dbl = %i, conf = %02X, size = %i, RAMCTL0 = %02X\n", i, cfg, dbl, conf, size, dev->pci_conf[0x5c]);
|
||||
vl82c59x_log(dev->log, "VL82c59x DRAM recalc: bank %i size = %i\n", i, dev->banks[i]);
|
||||
|
||||
/* Handle case where the BIOS programs RAMCFGx for dual-sided/ranked memory when single-sided memory is installed */
|
||||
if (((dev->bankcfg[i] & 0x08) == 0x00) && dbl == 1) {
|
||||
size = sizes[conf - 1];
|
||||
vl82c59x_log(dev->log, "VL82c59x DRAM recalc: bank %i mismatch, bankcfg = %02X, reg = %02X\n", dev->bankcfg[i], dev->pci_conf[reg]);
|
||||
}
|
||||
|
||||
if (!(dev->pci_conf[0x5c] & (1 << i)))
|
||||
size = 0;
|
||||
|
||||
total += MIN(dev->banks[i], size);
|
||||
vl82c59x_log(dev->log, "VL82c59x DRAM recalc: bank %i, total = %i\n", i, total);
|
||||
}
|
||||
|
||||
if (total > 1024) {
|
||||
mem_mapping_set_addr(&ram_low_mapping, 0x00000000, 0x000a0000);
|
||||
mem_mapping_set_addr(&ram_high_mapping, 0x00100000, (total - 1024) << 10);
|
||||
} else {
|
||||
if (total >= 1024)
|
||||
mem_mapping_set_addr(&ram_low_mapping, 0x00000000, 0x000a0000);
|
||||
else
|
||||
mem_mapping_disable(&ram_low_mapping);
|
||||
mem_mapping_disable(&ram_high_mapping);
|
||||
}
|
||||
|
||||
flushmmucache();
|
||||
}
|
||||
|
||||
static void
|
||||
vl82c59x_write(int func, int addr, UNUSED(int len), uint8_t val, void *priv)
|
||||
{
|
||||
@@ -231,12 +280,21 @@ vl82c59x_write(int func, int addr, UNUSED(int len), uint8_t val, void *priv)
|
||||
case 0x58: /* RAMCFG0 */
|
||||
case 0x59: /* RAMCFG1 */
|
||||
dev->pci_conf[addr] = val;
|
||||
vl82c59x_log(dev->log, "VL82c59x: RAMCFGx write, RAMCFG0 = %02X, RAMCFG1 = %02X\n", dev->pci_conf[0x58], dev->pci_conf[0x59]);
|
||||
if (machines[machine].init == machine_at_bravoms586_init)
|
||||
vl82c59x_recalc_banks(dev);
|
||||
break;
|
||||
case 0x5a: /* Wildcat EDO RAM control */
|
||||
if (dev->type == 0x01)
|
||||
dev->pci_conf[addr] = val;
|
||||
break;
|
||||
case 0x5c ... 0x5e: /* RAMCTL0-RAMCTL2 */
|
||||
case 0x5c: /* RAMCTL0 */
|
||||
vl82c59x_log(dev->log, "VL82c59x: RAMCTL0 write\n");
|
||||
dev->pci_conf[addr] = val;
|
||||
if (machines[machine].init == machine_at_bravoms586_init)
|
||||
vl82c59x_recalc_banks(dev);
|
||||
break;
|
||||
case 0x5d ... 0x5e: /* RAMCTL1-RAMCTL2 */
|
||||
case 0x5f ... 0x60:
|
||||
case 0x62:
|
||||
/* Apricot XEN-PC Ruby/Jade BIOS requires bit 2 to be set or */
|
||||
@@ -483,6 +541,47 @@ vl82c59x_reset(void *priv)
|
||||
cpu_cache_int_enabled = 1;
|
||||
cpu_cache_ext_enabled = 1;
|
||||
cpu_update_waitstates();
|
||||
|
||||
/* Init DRAM bank registers */
|
||||
uint32_t sizes[8] = { 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144 };
|
||||
uint8_t reg_vals[8] = { 0x00, 0x08, 0x01, 0x09, 0x02, 0x0a, 0x03, 0x0b };
|
||||
uint32_t ms = mem_size;
|
||||
|
||||
dev->pci_conf[0x58] = 0x00; /* RAMCFG0 */
|
||||
dev->pci_conf[0x59] = 0x00; /* RAMCFG1 */
|
||||
dev->pci_conf[0x5c] = 0x00; /* RAMCTL0 */
|
||||
|
||||
|
||||
if (ms > 0) for (uint8_t i = 0; i < 4; i++ ) {
|
||||
for (uint8_t j = 0; j < 8; j++ ) {
|
||||
if (ms >= sizes[j] ) {
|
||||
dev->banks[i] = sizes[j];
|
||||
dev->bankcfg[i] = reg_vals[j];
|
||||
dev->pci_conf[0x5c] |= (1 << i);
|
||||
} else
|
||||
break;
|
||||
}
|
||||
|
||||
ms -= dev->banks[i];
|
||||
|
||||
if ((ms == 0 || dev->banks[i] == 0))
|
||||
break;
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < 4; i++ ) {
|
||||
if (dev->banks[0] != 0)
|
||||
dev->pci_conf[0x58] = (dev->bankcfg[0] & 0x0f);
|
||||
if (dev->banks[1] != 0)
|
||||
dev->pci_conf[0x58] |= ((dev->bankcfg[1] & 0x0f) << 4);
|
||||
if (dev->banks[2] != 0)
|
||||
dev->pci_conf[0x59] = (dev->bankcfg[2] & 0x0f);
|
||||
if (dev->banks[3] != 0)
|
||||
dev->pci_conf[0x59] |= ((dev->bankcfg[3] & 0x0f) << 4);
|
||||
}
|
||||
|
||||
vl82c59x_log(dev->log, "VL82c59x: DRAM bank init, RAMCFG0 = %02X, RAMCFG1 = %02X, RAMCTL0 = %02X\n", dev->pci_conf[0x58], dev->pci_conf[0x59], dev->pci_conf[0x5c]);
|
||||
vl82c59x_log(dev->log, "VL82c59x: DRAM bank vals: %i, %i, %i, %i\n", dev->banks[0], dev->banks[1], dev->banks[2], dev->banks[3]);
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -523,7 +622,7 @@ vl82c59x_init(UNUSED(const device_t *info))
|
||||
dev->port_92 = device_add(&port_92_device);
|
||||
|
||||
/* NVR */
|
||||
dev->nvr = device_add(&at_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT);
|
||||
|
||||
dev->smram[0] = smram_add();
|
||||
dev->smram[1] = smram_add();
|
||||
|
||||
@@ -1393,7 +1393,7 @@ wd76c10_init(UNUSED(const device_t *info))
|
||||
dev->mem_pages[i] = i - 0x20;
|
||||
|
||||
device_add(&port_92_inv_device);
|
||||
dev->nvr = device_add(&amstrad_megapc_nvr_device);
|
||||
dev->nvr = device_add_params(&nvr_at_device, (void *) (uintptr_t) NVR_AT_ZERO_DEFAULT);
|
||||
dev->uart[0] = device_add_inst(&ns16450_device, 1);
|
||||
dev->uart[1] = device_add_inst(&ns16450_device, 2);
|
||||
dev->lpt = device_add_inst(&lpt_port_device, 1);
|
||||
|
||||
64
src/config.c
@@ -1016,27 +1016,37 @@ load_image_file(char *dest, char *p, uint8_t *ui_wp)
|
||||
int ret = 0;
|
||||
char *slash = NULL;
|
||||
char *above = NULL;
|
||||
char *above2 = NULL;
|
||||
char *use = NULL;
|
||||
|
||||
if ((slash = memrmem(usr_path + strlen(usr_path) - 2, usr_path, "/")) != NULL) {
|
||||
slash++;
|
||||
above = (char *) calloc(1, slash - usr_path + 1);
|
||||
memcpy(above, usr_path, slash - usr_path);
|
||||
|
||||
if ((slash = memrmem(above + strlen(above) - 2, above, "/")) != NULL) {
|
||||
slash++;
|
||||
above2 = (char *) calloc(1, slash - above + 1);
|
||||
memcpy(above2, above, slash - above);
|
||||
}
|
||||
}
|
||||
|
||||
if (strstr(p, "wp://") == p) {
|
||||
p += 5;
|
||||
prefix = "wp://";
|
||||
if (ui_wp != NULL)
|
||||
*ui_wp = 1;
|
||||
p += 5;
|
||||
prefix = "wp://";
|
||||
if (ui_wp != NULL)
|
||||
*ui_wp = 1;
|
||||
} else if ((ui_wp != NULL) && *ui_wp)
|
||||
prefix = "wp://";
|
||||
prefix = "wp://";
|
||||
|
||||
if (strstr(p, "ioctl://") == p) {
|
||||
if (strlen(p) > (MAX_IMAGE_PATH_LEN - 11))
|
||||
ret = 1;
|
||||
else
|
||||
snprintf(dest, MAX_IMAGE_PATH_LEN, "%s", p);
|
||||
if (strlen(p) > (MAX_IMAGE_PATH_LEN - 11))
|
||||
ret = 1;
|
||||
else
|
||||
snprintf(dest, MAX_IMAGE_PATH_LEN, "%s", p);
|
||||
|
||||
if (above2 != NULL)
|
||||
free(above2);
|
||||
|
||||
if (above != NULL)
|
||||
free(above);
|
||||
@@ -1051,6 +1061,13 @@ load_image_file(char *dest, char *p, uint8_t *ui_wp)
|
||||
else
|
||||
snprintf(dest, MAX_IMAGE_PATH_LEN, "%s%s%s%s", prefix, exe_path, path_get_slash(exe_path),
|
||||
p + strlen("<exe_path>/"));
|
||||
} else if (memcmp(p, "../../", strlen("../../")) == 0) {
|
||||
use = (above2 == NULL) ? usr_path : above2;
|
||||
if ((strlen(prefix) + strlen(use) + strlen(path_get_slash(use)) + strlen(p + strlen("../../"))) >
|
||||
(MAX_IMAGE_PATH_LEN - 11))
|
||||
ret = 1;
|
||||
else
|
||||
snprintf(dest, MAX_IMAGE_PATH_LEN, "%s%s%s%s", prefix, use, path_get_slash(use), p + strlen("../../"));
|
||||
} else if (memcmp(p, "../", strlen("../")) == 0) {
|
||||
use = (above == NULL) ? usr_path : above;
|
||||
if ((strlen(prefix) + strlen(use) + strlen(path_get_slash(use)) + strlen(p + strlen("../"))) >
|
||||
@@ -1072,6 +1089,9 @@ load_image_file(char *dest, char *p, uint8_t *ui_wp)
|
||||
|
||||
path_normalize(dest);
|
||||
|
||||
if (above2 != NULL)
|
||||
free(above2);
|
||||
|
||||
if (above != NULL)
|
||||
free(above);
|
||||
|
||||
@@ -3146,11 +3166,25 @@ save_image_file(char *cat, char *var, char *src)
|
||||
char *prefix = "";
|
||||
char *slash = NULL;
|
||||
char *above = NULL;
|
||||
char *above2 = NULL;
|
||||
char *above3 = NULL;
|
||||
|
||||
if ((slash = memrmem(usr_path + strlen(usr_path) - 2, usr_path, "/")) != NULL) {
|
||||
slash++;
|
||||
above = (char *) calloc(1, slash - usr_path + 1);
|
||||
memcpy(above, usr_path, slash - usr_path);
|
||||
|
||||
if ((slash = memrmem(above + strlen(above) - 2, above, "/")) != NULL) {
|
||||
slash++;
|
||||
above2 = (char *) calloc(1, slash - above + 1);
|
||||
memcpy(above2, above, slash - above);
|
||||
|
||||
if ((slash = memrmem(above2 + strlen(above2) - 2, above2, "/")) != NULL) {
|
||||
slash++;
|
||||
above3 = (char *) calloc(1, slash - above2 + 1);
|
||||
memcpy(above3, above2, slash - above2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
path_normalize(src);
|
||||
@@ -3164,7 +3198,11 @@ save_image_file(char *cat, char *var, char *src)
|
||||
sprintf(temp, "%s", src);
|
||||
else if (!strnicmp(src, usr_path, strlen(usr_path)))
|
||||
sprintf(temp, "%s%s", prefix, &src[strlen(usr_path)]);
|
||||
else if ((above != NULL) && !strnicmp(src, above, strlen(above)))
|
||||
/* Do not relativize to root. */
|
||||
else if ((above2 != NULL) && (above3 != NULL) && !strnicmp(src, above2, strlen(above2)))
|
||||
sprintf(temp, "../../%s%s", prefix, &src[strlen(above2)]);
|
||||
/* Do not relativize to root. */
|
||||
else if ((above != NULL) && (above2 != NULL) && !strnicmp(src, above, strlen(above)))
|
||||
sprintf(temp, "../%s%s", prefix, &src[strlen(above)]);
|
||||
else if (!strnicmp(src, exe_path, strlen(exe_path)))
|
||||
sprintf(temp, "<exe_path>/%s%s", prefix, &src[strlen(exe_path)]);
|
||||
@@ -3173,6 +3211,12 @@ save_image_file(char *cat, char *var, char *src)
|
||||
|
||||
ini_section_set_string(cat, var, temp);
|
||||
|
||||
if (above3 != NULL)
|
||||
free(above3);
|
||||
|
||||
if (above2 != NULL)
|
||||
free(above2);
|
||||
|
||||
if (above != NULL)
|
||||
free(above);
|
||||
}
|
||||
|
||||
@@ -2184,7 +2184,7 @@ read_p1(atkbc_t *dev)
|
||||
-----------------
|
||||
IBM PS/1: xxxxxxxx
|
||||
IBM PS/2 MCA: xxxxx1xx
|
||||
IBM PS/2 Model 30-286: xxxxx1xx
|
||||
IBM PS/2 Model 30-286: x0xxx1xx
|
||||
Intel AMI Pentium BIOS'es with AMI MegaKey KB-5 keyboard controller: x1x1xxxx
|
||||
Acer: xxxxx0xx
|
||||
Packard Bell PB450: xxxxx1xx
|
||||
@@ -2199,7 +2199,8 @@ read_p1(atkbc_t *dev)
|
||||
Acer: Pull down bit 6 if primary display is MDA.
|
||||
Pull down bit 2 always (must be so to enable CMOS Setup).
|
||||
IBM PS/1: Pull down bit 6 if current floppy drive is 3.5".
|
||||
IBM PS/2 Model 30-286: Pull down bits 5 and 4 based on planar memory size.
|
||||
IBM PS/2 Model 30-286: Pull down bit 6 always (for 1.44M floppy).
|
||||
Pull down bits 5 and 4 based on planar memory size.
|
||||
Epson Action Tower 2600: Pull down bit 3 always (for Epson logo).
|
||||
NCR: Pull down bit 5 always (power-on default speed = high).
|
||||
Pull down bit 3 if there is no FPU.
|
||||
@@ -2215,6 +2216,7 @@ read_p1(atkbc_t *dev)
|
||||
Bit 6: Mostly, display: 0 = CGA, 1 = MDA, inverted on Xi8088 and Acer KBC's;
|
||||
Intel AMI MegaKey KB-5: Used for green features, SMM handler expects it to be set;
|
||||
IBM PS/1 Model 2011: 0 = current FDD is 3.5", 1 = current FDD is 5.25";
|
||||
IBM PS/2 Model 30-286: 0 = drive A is 1.44M, 1 = drive A is 720k;
|
||||
Compaq: 0 = Compaq dual-scan display, 1 = non-Compaq display.
|
||||
Bit 5: Mostly, manufacturing jumper: 0 = installed (infinite loop at POST), 1 = not installed;
|
||||
NCR: power-on default speed: 0 = high, 1 = low;
|
||||
|
||||
@@ -216,22 +216,24 @@ key_process(uint16_t scan, int down)
|
||||
*/
|
||||
if (key5576mode) {
|
||||
int i = 0;
|
||||
if (!down) {
|
||||
/* Do and exit the 5576-001 emulation when a key is pressed other than trigger keys. */
|
||||
if (scan != 0x1d && scan != 0x2a && scan != 0x138)
|
||||
{
|
||||
if (down) {
|
||||
while (scconv55_8a[i].sc != 0) {
|
||||
if (scconv55_8a[i].sc == scan) {
|
||||
while (scconv55_8a[i].mk[c] != 0)
|
||||
keyboard_send(scconv55_8a[i].mk[c++]);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
/* Do and exit the 5576-001 emulation when a key is pressed other than trigger keys. */
|
||||
if (scan != 0x1d && scan != 0x2a && scan != 0x138) {
|
||||
if (!down) {
|
||||
key5576mode = 0;
|
||||
kbc_at_log("5576-001 key emulation disabled.\n");
|
||||
}
|
||||
}
|
||||
while (scconv55_8a[i].sc != 0)
|
||||
{
|
||||
if (scconv55_8a[i].sc == scan) {
|
||||
while (scconv55_8a[i].mk[c] != 0)
|
||||
keyboard_send(scconv55_8a[i].mk[c++]);
|
||||
return;
|
||||
}
|
||||
i++;
|
||||
/* If the key is found in the table, the scancode has been sent.
|
||||
Or else, do nothing. */
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,6 +52,14 @@
|
||||
Bit 0 = ????
|
||||
*/
|
||||
|
||||
/*
|
||||
Intel Monsoon bit meanings:
|
||||
Bit 5 = Password enable
|
||||
Bit 4 = Onboard video: 1 = disabled, 0 = enabled
|
||||
Bit 3 = CMOS Setup enable
|
||||
Bit 2 = CMOS clear: 1 = normal, 0 = clear CMOS
|
||||
*/
|
||||
|
||||
typedef struct phoenix_486_jumper_t {
|
||||
uint8_t type;
|
||||
uint8_t jumper;
|
||||
@@ -84,7 +92,11 @@ phoenix_486_jumper_write(UNUSED(uint16_t addr), uint8_t val, void *priv)
|
||||
dev->jumper = val & 0xbf;
|
||||
else if (dev->type == 2) /* PB600 */
|
||||
dev->jumper = ((val & 0xbf) | 0x02);
|
||||
else
|
||||
else if (dev->type == 3) { /* Intel Monsoon */
|
||||
dev->jumper = ((val & 0xef) | 0x2c);
|
||||
if (gfxcard[0] != 0x01)
|
||||
dev->jumper |= 0x10;
|
||||
} else
|
||||
dev->jumper = val;
|
||||
}
|
||||
|
||||
@@ -106,7 +118,11 @@ phoenix_486_jumper_reset(void *priv)
|
||||
dev->jumper = 0x00;
|
||||
else if (dev->type == 2) /* PB600 */
|
||||
dev->jumper = 0x02;
|
||||
else {
|
||||
else if (dev->type == 3) { /* Intel Monsoon */
|
||||
dev->jumper = 0x2c;
|
||||
if (gfxcard[0] != 0x01)
|
||||
dev->jumper |= 0x10;
|
||||
} else {
|
||||
dev->jumper = 0x9f;
|
||||
if (gfxcard[0] != 0x01)
|
||||
dev->jumper |= 0x40;
|
||||
@@ -176,3 +192,18 @@ const device_t phoenix_486_jumper_pci_pb600_device = {
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t phoenix_486_jumper_monsoon_device = {
|
||||
.name = "Phoenix 486 Jumper Readout (Monsoon)",
|
||||
.internal_name = "phoenix_486_jumper_monsoon",
|
||||
.flags = 0,
|
||||
.local = 3,
|
||||
.init = phoenix_486_jumper_init,
|
||||
.close = phoenix_486_jumper_close,
|
||||
.reset = phoenix_486_jumper_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
@@ -381,6 +381,7 @@ typedef struct hdc_t {
|
||||
pc_timer_t timer;
|
||||
int8_t state; /* controller state */
|
||||
int8_t reset; /* reset state counter */
|
||||
int8_t ready; /* ready state counter */
|
||||
|
||||
/* Data transfer. */
|
||||
int16_t buf_idx; /* buffer index and pointer */
|
||||
@@ -723,6 +724,15 @@ hdc_callback(void *priv)
|
||||
uint8_t cmd = ccb->cmd & 0x0f;
|
||||
#endif
|
||||
|
||||
/* If we are returning from a RESET, handle this first. */
|
||||
if (dev->reset) {
|
||||
ps1_hdc_log("XTA reset.\n");
|
||||
dev->status &= ~ASR_BUSY;
|
||||
dev->reset = 0;
|
||||
do_finish(dev);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Clear the SSB error bits. */
|
||||
dev->ssb.track_0 = 0;
|
||||
dev->ssb.cylinder_err = 0;
|
||||
@@ -754,6 +764,12 @@ hdc_callback(void *priv)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(dev->ready | no_data)) {
|
||||
/* Delay a bit, transfer not ready. */
|
||||
timer_advance_u64(&dev->timer, HDC_TIME);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (dev->state) {
|
||||
case STATE_IDLE:
|
||||
/* Seek to cylinder if requested. */
|
||||
@@ -937,9 +953,6 @@ do_send:
|
||||
break;
|
||||
|
||||
case CMD_WRITE_VERIFY:
|
||||
no_data = 1;
|
||||
fallthrough;
|
||||
|
||||
case CMD_WRITE_SECTORS:
|
||||
if (!drive->present) {
|
||||
dev->ssb.not_ready = 1;
|
||||
@@ -947,6 +960,12 @@ do_send:
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(dev->ready | no_data)) {
|
||||
/* Delay a bit, transfer not ready. */
|
||||
timer_advance_u64(&dev->timer, HDC_TIME);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (dev->state) {
|
||||
case STATE_IDLE:
|
||||
/* Seek to cylinder if requested. */
|
||||
@@ -1231,24 +1250,21 @@ hdc_write(uint16_t port, uint8_t val, void *priv)
|
||||
if (val & ACR_INT_EN)
|
||||
set_intr(dev, 0); /* clear IRQ */
|
||||
|
||||
if (dev->reset != 0) {
|
||||
if (++dev->reset == 3) {
|
||||
dev->reset = 0;
|
||||
|
||||
set_intr(dev, 1);
|
||||
}
|
||||
break;
|
||||
if (val & ACR_RESET) {
|
||||
dev->reset = 1;
|
||||
dev->status |= ASR_BUSY;
|
||||
/* Schedule command execution. */
|
||||
timer_set_delay_u64(&dev->timer, HDC_TIME);
|
||||
}
|
||||
|
||||
if (val & ACR_RESET)
|
||||
dev->reset = 1;
|
||||
break;
|
||||
|
||||
case 4: /* ATTN */
|
||||
dev->status &= ~ASR_INT_REQ;
|
||||
if (val & ATT_DATA) {
|
||||
/* Dunno. Start PIO/DMA now? */
|
||||
}
|
||||
if (val & ATT_DATA)
|
||||
dev->ready = 1;
|
||||
else
|
||||
dev->ready = 0;
|
||||
|
||||
if (val & ATT_SSB) {
|
||||
if (dev->attn & ATT_CCB) {
|
||||
|
||||
@@ -234,6 +234,7 @@ extern const device_t nec_mate_unk_device;
|
||||
extern const device_t phoenix_486_jumper_device;
|
||||
extern const device_t phoenix_486_jumper_pci_device;
|
||||
extern const device_t phoenix_486_jumper_pci_pb600_device;
|
||||
extern const device_t phoenix_486_jumper_monsoon_device;
|
||||
|
||||
extern const device_t ast_readout_device;
|
||||
extern const device_t ast_nvr_device;
|
||||
|
||||
@@ -245,6 +245,7 @@ enum {
|
||||
MACHINE_CHIPSET_INTEL_430VX,
|
||||
MACHINE_CHIPSET_INTEL_430TX,
|
||||
MACHINE_CHIPSET_INTEL_450KX,
|
||||
MACHINE_CHIPSET_INTEL_450GX,
|
||||
MACHINE_CHIPSET_INTEL_440FX,
|
||||
MACHINE_CHIPSET_INTEL_440EX,
|
||||
MACHINE_CHIPSET_INTEL_440LX,
|
||||
@@ -353,6 +354,18 @@ typedef struct _machine_ {
|
||||
void *kbc_device;
|
||||
#endif /* EMU_DEVICE_H */
|
||||
uintptr_t kbc_params;
|
||||
#ifdef EMU_DEVICE_H
|
||||
const device_t *nvr_device;
|
||||
#else
|
||||
void *nvr_device;
|
||||
#endif /* EMU_DEVICE_H */
|
||||
uintptr_t nvr_params;
|
||||
#ifdef EMU_DEVICE_H
|
||||
const device_t *sio_device;
|
||||
#else
|
||||
void *sio_device;
|
||||
#endif /* EMU_DEVICE_H */
|
||||
uintptr_t sio_params;
|
||||
/* Bits 23-16: XOR mask, bits 15-8: OR mask, bits 7-0: AND mask. */
|
||||
uint32_t kbc_p1;
|
||||
uint32_t gpio;
|
||||
@@ -361,7 +374,6 @@ typedef struct _machine_ {
|
||||
const device_t *device;
|
||||
const device_t *kbd_device;
|
||||
const device_t *fdc_device;
|
||||
const device_t *sio_device;
|
||||
const device_t *vid_device;
|
||||
const device_t *snd_device;
|
||||
const device_t *net_device;
|
||||
@@ -369,7 +381,6 @@ typedef struct _machine_ {
|
||||
void *device;
|
||||
void *kbd_device;
|
||||
void *fdc_device;
|
||||
void *sio_device;
|
||||
void *vid_device;
|
||||
void *snd_device;
|
||||
void *net_device;
|
||||
@@ -394,9 +405,10 @@ extern int machine_get_machine_from_internal_name(const char *s);
|
||||
extern void machine_init(void);
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t *machine_get_kbc_device(int m);
|
||||
extern const device_t *machine_get_nvr_device(int m);
|
||||
extern const device_t *machine_get_sio_device(int m);
|
||||
extern const device_t *machine_get_device(int m);
|
||||
extern const device_t *machine_get_fdc_device(int m);
|
||||
extern const device_t *machine_get_sio_device(int m);
|
||||
extern const device_t *machine_get_vid_device(int m);
|
||||
extern const device_t *machine_get_snd_device(int m);
|
||||
extern const device_t *machine_get_net_device(int m);
|
||||
@@ -528,6 +540,7 @@ extern int machine_at_px286_init(const machine_t *);
|
||||
extern int machine_at_ataripc4_init(const machine_t *);
|
||||
extern int machine_at_neat_ami_init(const machine_t *);
|
||||
extern int machine_at_3302_init(const machine_t *);
|
||||
extern int machine_at_n8810m30_init(const machine_t *);
|
||||
|
||||
/* SCAMP */
|
||||
extern int machine_at_pc7286_init(const machine_t *);
|
||||
@@ -579,6 +592,7 @@ extern int machine_at_shuttle386sx_init(const machine_t *);
|
||||
/* NEAT */
|
||||
extern int machine_at_cmdsl386sx16_init(const machine_t *);
|
||||
extern int machine_at_neat_init(const machine_t *);
|
||||
extern int machine_at_p3345_init(const machine_t *);
|
||||
|
||||
/* NEATsx */
|
||||
extern int machine_at_if386sx_init(const machine_t *);
|
||||
@@ -659,12 +673,10 @@ extern const device_t opti495_ami_device;
|
||||
extern int machine_at_opti495_ami_init(const machine_t *);
|
||||
|
||||
/* m_at_common.c */
|
||||
extern void machine_at_common_init_ex(const machine_t *, int type);
|
||||
extern void machine_at_common_init(const machine_t *);
|
||||
extern void machine_at_init(const machine_t *);
|
||||
extern void machine_at_ps2_init(const machine_t *);
|
||||
extern void machine_at_common_ide_init(const machine_t *);
|
||||
extern void machine_at_ibm_common_ide_init(const machine_t *);
|
||||
extern void machine_at_ide_init(const machine_t *);
|
||||
extern void machine_at_ps2_ide_init(const machine_t *);
|
||||
|
||||
@@ -965,12 +977,12 @@ extern int machine_at_hot539_init(const machine_t *);
|
||||
|
||||
/* VLSI SuperCore */
|
||||
extern int machine_at_bravoms586_init(const machine_t *);
|
||||
extern int machine_at_g586vpmc_init(const machine_t *);
|
||||
extern int machine_at_m54si_init(const machine_t *);
|
||||
extern int machine_at_pb600_init(const machine_t *);
|
||||
|
||||
/* VLSI Wildcat */
|
||||
extern int machine_at_globalyst620_init(const machine_t *);
|
||||
extern int machine_at_g586vpmc_init(const machine_t *);
|
||||
|
||||
/* m_at_socket7_3v.c */
|
||||
/* i430FX */
|
||||
@@ -986,6 +998,7 @@ extern const device_t vectra52_device;
|
||||
extern int machine_at_vectra52_init(const machine_t *);
|
||||
extern int machine_at_vectra500mt_init(const machine_t *);
|
||||
extern int machine_at_vectra54_init(const machine_t *);
|
||||
extern int machine_at_atlantis_init(const machine_t *);
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t thor_device;
|
||||
#endif
|
||||
@@ -994,7 +1007,6 @@ extern uint32_t machine_at_monaco_gpio_handler(uint8_t write, uint32_t va
|
||||
extern int machine_at_monaco_init(const machine_t *);
|
||||
extern uint32_t machine_at_endeavor_gpio_handler(uint8_t write, uint32_t val);
|
||||
extern int machine_at_endeavor_init(const machine_t *);
|
||||
extern int machine_at_atlantis_init(const machine_t *);
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t monaco_device;
|
||||
#endif
|
||||
@@ -1177,6 +1189,8 @@ extern int machine_at_5sg100_init(const machine_t *);
|
||||
/* m_at_socket8.c */
|
||||
/* i450KX */
|
||||
extern int machine_at_ap61_init(const machine_t *);
|
||||
|
||||
/* i450GX */
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t ficpo6000_device;
|
||||
#endif
|
||||
@@ -1521,7 +1535,9 @@ extern int machine_xt_lxt3_init(const machine_t *);
|
||||
extern int machine_xt_compaq_deskpro_init(const machine_t *);
|
||||
|
||||
/* m_xt_ibm5550.c */
|
||||
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t ibm5550_device;
|
||||
#endif
|
||||
extern int machine_xt_ibm5550_init(const machine_t *);
|
||||
|
||||
/* m_xt_t1000.c */
|
||||
|
||||
@@ -57,6 +57,76 @@
|
||||
#define TIME_SYNC_ENABLED 1
|
||||
#define TIME_SYNC_UTC 2
|
||||
|
||||
/* Century register for the AT, etc. */
|
||||
#define RTC_CENTURY_AT 0x32
|
||||
/* Century register for the PS/1 and the PS/2. */
|
||||
#define RTC_CENTURY_PS 0x37
|
||||
/* Century register for the Epson Equity LT. */
|
||||
#define RTC_CENTURY_ELT 0x1a
|
||||
/* century register for VIA VT82C586B. */
|
||||
#define RTC_CENTURY_VIA 0x7f
|
||||
/* No century register. */
|
||||
#define RTC_CENTURY_NONE 0xff
|
||||
|
||||
#define FLAG_ZERO_DEFAULT 0x0001
|
||||
#define FLAG_NO_NMI 0x0002
|
||||
#define FLAG_MULTI_ADDRESS 0x0004
|
||||
#define FLAG_MULTI_BANK 0x0008
|
||||
#define FLAG_PIIX4 0x0010
|
||||
#define FLAG_FIXED_SIZE 0x0020
|
||||
#define FLAG_MARTIN_HACK 0x0040
|
||||
#define FLAG_AMI_1992_HACK 0x0080
|
||||
#define FLAG_AMI_1994_HACK 0x0100
|
||||
#define FLAG_P6RP4_HACK 0x0200
|
||||
#define FLAG_AMI_1995_HACK 0x0400
|
||||
#define FLAG_AMI_1999_HACK 0x0800
|
||||
#define FLAG_AMI_1999J_HACK 0x1000
|
||||
#define FLAG_SPITFIRE_HACK 0x2000
|
||||
#define FLAG_BX6_HACK 0x4000
|
||||
|
||||
#define NVR_CENTURY_AT (RTC_CENTURY_AT << 16)
|
||||
#define NVR_CENTURY_PS (RTC_CENTURY_PS << 16)
|
||||
#define NVR_CENTURY_VIA (RTC_CENTURY_VIA << 16)
|
||||
#define NVR_CENTURY_ELT (RTC_CENTURY_ELT << 16)
|
||||
#define NVR_CENTURY_NONE (0xff << 16)
|
||||
|
||||
#define NVR_ADDR_STANDARD (0x0070ULL << 24)
|
||||
#define NVR_ADDR_ELT (0x11b4ULL << 24)
|
||||
#define NVR_ADDR_CONFIG (0xfffeULL << 24)
|
||||
#define NVR_ADDR_NONE (0xffffULL << 24)
|
||||
|
||||
#define NVR_IRQ_STANDARD (0x0008ULL << 40)
|
||||
#define NVR_IRQ_AMSTRAD (0x0001ULL << 40)
|
||||
#define NVR_IRQ_CONFIG (0xfffeULL << 40)
|
||||
#define NVR_IRQ_NONE (0xffffULL << 40)
|
||||
|
||||
#define NVR_AT_STANDARD NVR_IRQ_STANDARD | NVR_ADDR_STANDARD
|
||||
#define NVR_AT_STANDARD_MA NVR_AT_STANDARD | FLAG_MULTI_ADDRESS
|
||||
#define NVR_AT_STANDARD_ZERO NVR_AT_STANDARD | FLAG_ZERO_DEFAULT
|
||||
|
||||
#define NVR_AT_OLD (NVR_AT_STANDARD | NVR_CENTURY_NONE)
|
||||
#define NVR_AT (NVR_AT_STANDARD | NVR_CENTURY_AT)
|
||||
#define NVR_AT_ZERO_DEFAULT (NVR_AT_STANDARD_ZERO | NVR_CENTURY_AT)
|
||||
#define NVR_AT_MA (NVR_AT | FLAG_MULTI_ADDRESS)
|
||||
#define NVR_AT_MA_ZERO (NVR_AT_ZERO_DEFAULT | FLAG_MULTI_ADDRESS)
|
||||
#define NVR_AT_MB (NVR_AT_ZERO_DEFAULT | FLAG_MULTI_BANK)
|
||||
#define NVR_PS (NVR_AT_STANDARD_ZERO | NVR_CENTURY_PS)
|
||||
#define NVR_PS_NO_NMI (NVR_PS | FLAG_NO_NMI)
|
||||
#define NVR_AMSTRAD (NVR_IRQ_AMSTRAD | NVR_ADDR_STANDARD | NVR_CENTURY_AT)
|
||||
#define NVR_AMSTRAD_NO_NMI (NVR_AMSTRAD | FLAG_NO_NMI)
|
||||
#define NVR_PIIX4 (NVR_AT_MA_ZERO | FLAG_PIIX4)
|
||||
#define NVR_AMI_1992 (NVR_AT_ZERO_DEFAULT | FLAG_AMI_1992_HACK)
|
||||
#define NVR_AMI_1994 (NVR_AT_ZERO_DEFAULT | FLAG_AMI_1994_HACK)
|
||||
#define NVR_AMI_1995 (NVR_AT_ZERO_DEFAULT | FLAG_AMI_1995_HACK)
|
||||
#define NVR_P6RP4 (NVR_AT_MA_ZERO | FLAG_P6RP4_HACK)
|
||||
#define NVR_PIIX4_AMI_1995 (NVR_PIIX4 | FLAG_AMI_1999_HACK)
|
||||
#define NVR_PIIX4_AMI_1995J (NVR_PIIX4 | FLAG_AMI_1999J_HACK)
|
||||
#define NVR_VIA (NVR_AT_STANDARD_MA | NVR_CENTURY_VIA)
|
||||
#define NVR_MARTIN (NVR_AT_MB | FLAG_MARTIN_HACK)
|
||||
#define NVR_ELT (NVR_IRQ_NONE | NVR_ADDR_ELT | NVR_CENTURY_ELT)
|
||||
#define NVR_RTC8088 (NVR_IRQ_CONFIG | NVR_ADDR_CONFIG | \
|
||||
NVR_CENTURY_ALT | FLAG_NO_NMI | FLAG_FIXED_SIZE)
|
||||
|
||||
#ifdef _TIMER_H_
|
||||
/* Define a generic RTC/NVRAM device. */
|
||||
typedef struct _nvr_ {
|
||||
@@ -80,26 +150,9 @@ typedef struct _nvr_ {
|
||||
} nvr_t;
|
||||
|
||||
extern int nvr_dosave;
|
||||
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t at_nvr_old_device;
|
||||
extern const device_t at_nvr_device;
|
||||
extern const device_t at_mb_nvr_device;
|
||||
extern const device_t ps_nvr_device;
|
||||
extern const device_t amstrad_nvr_device;
|
||||
extern const device_t amstrad_megapc_nvr_device;
|
||||
extern const device_t ibmat_nvr_device;
|
||||
extern const device_t piix4_nvr_device;
|
||||
extern const device_t ps_no_nmi_nvr_device;
|
||||
extern const device_t amstrad_no_nmi_nvr_device;
|
||||
extern const device_t ami_1992_nvr_device;
|
||||
extern const device_t ami_1994_nvr_device;
|
||||
extern const device_t ami_1995_nvr_device;
|
||||
extern const device_t via_nvr_device;
|
||||
extern const device_t piix4_ami_1995_nvr_device;
|
||||
extern const device_t piix4_ami_1995j_nvr_device;
|
||||
extern const device_t p6rp4_nvr_device;
|
||||
extern const device_t martin_nvr_device;
|
||||
extern const device_t elt_nvr_device;
|
||||
extern const device_t nvr_at_device;
|
||||
#endif
|
||||
|
||||
extern void rtc_tick(void);
|
||||
|
||||
@@ -31,6 +31,43 @@
|
||||
#define PCI_REG_LATENCY_TIMER 0x0d
|
||||
#define PCI_REG_HEADER_TYPE 0x0e
|
||||
#define PCI_REG_BIST 0x0f
|
||||
#define PCI_REG_BAR0_BYTE0 0x10
|
||||
#define PCI_REG_BAR0_BYTE1 0x11
|
||||
#define PCI_REG_BAR0_BYTE2 0x12
|
||||
#define PCI_REG_BAR0_BYTE3 0x13
|
||||
#define PCI_REG_BAR1_BYTE0 0x14
|
||||
#define PCI_REG_BAR1_BYTE1 0x15
|
||||
#define PCI_REG_BAR1_BYTE2 0x16
|
||||
#define PCI_REG_BAR1_BYTE3 0x17
|
||||
#define PCI_REG_BAR2_BYTE0 0x18
|
||||
#define PCI_REG_BAR2_BYTE1 0x19
|
||||
#define PCI_REG_BAR2_BYTE2 0x1a
|
||||
#define PCI_REG_BAR2_BYTE3 0x1b
|
||||
#define PCI_REG_BAR3_BYTE0 0x1c
|
||||
#define PCI_REG_BAR3_BYTE1 0x1d
|
||||
#define PCI_REG_BAR3_BYTE2 0x1e
|
||||
#define PCI_REG_BAR3_BYTE3 0x1e
|
||||
#define PCI_REG_BAR4_BYTE0 0x20
|
||||
#define PCI_REG_BAR4_BYTE1 0x21
|
||||
#define PCI_REG_BAR4_BYTE2 0x22
|
||||
#define PCI_REG_BAR4_BYTE3 0x23
|
||||
#define PCI_REG_BAR5_BYTE0 0x24
|
||||
#define PCI_REG_BAR5_BYTE1 0x25
|
||||
#define PCI_REG_BAR5_BYTE2 0x26
|
||||
#define PCI_REG_BAR5_BYTE3 0x27
|
||||
#define PCI_REG_SUBVEN_ID_L 0x2c
|
||||
#define PCI_REG_SUBVEN_ID_H 0x2d
|
||||
#define PCI_REG_SUBSYS_ID_L 0x2e
|
||||
#define PCI_REG_SUBSYS_ID_H 0x2f
|
||||
#define PCI_REG_ROM_BAR_BYTE0 0x30
|
||||
#define PCI_REG_ROM_BAR_BYTE1 0x31
|
||||
#define PCI_REG_ROM_BAR_BYTE2 0x32
|
||||
#define PCI_REG_ROM_BAR_BYTE3 0x33
|
||||
#define PCI_REG_CAPS_PTR 0x34
|
||||
#define PCI_REG_INT_LINE 0x3c
|
||||
#define PCI_REG_INT_PIN 0x3d
|
||||
#define PCI_REG_MIN_GRANT 0x3e
|
||||
#define PCI_REG_MAX_LAT 0x3f
|
||||
|
||||
#define PCI_COMMAND_L_IO 0x01
|
||||
#define PCI_COMMAND_L_MEM 0x02
|
||||
|
||||
@@ -84,6 +84,7 @@ typedef struct ncr_t {
|
||||
int (*dma_send_ext)(void *priv, void *ext_priv);
|
||||
int (*dma_initiator_receive_ext)(void *priv, void *ext_priv);
|
||||
void (*timer)(void *ext_priv, double period);
|
||||
int (*irq_ena)(void *priv, void *ext_priv, int state);
|
||||
|
||||
scsi_bus_t scsibus;
|
||||
} ncr_t;
|
||||
|
||||
19
src/include/86box/scsi_qlogic.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
* running old operating systems and software designed for IBM
|
||||
* PC systems and compatibles from 1981 through fairly recent
|
||||
* system designs based on the PCI bus.
|
||||
*
|
||||
* Emulation of QLogic QLA1x40/QLA1x80/QLA1x160 SCSI HBA.
|
||||
*
|
||||
* Authors: Dmitry Borisov, <di.sean@protonmail.com>
|
||||
*
|
||||
* Copyright 2026 Dmitry Borisov
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
extern const device_t qla1040b_device;
|
||||
extern const device_t qla1080_device;
|
||||
extern const device_t qla1240_device;
|
||||
extern const device_t qla1280_device;
|
||||
extern const device_t qla12160a_device;
|
||||
@@ -15,7 +15,7 @@
|
||||
*
|
||||
* Copyright 2008-2018 Sarah Walker.
|
||||
* Copyright 2016-2018 Miran Grca.
|
||||
* Copyright 2024-2025 Jasmine Iwanek.
|
||||
* Copyright 2024-2026 Jasmine Iwanek.
|
||||
*/
|
||||
#ifndef SOUND_SND_SB_H
|
||||
#define SOUND_SND_SB_H
|
||||
@@ -28,12 +28,14 @@
|
||||
|
||||
enum {
|
||||
SADLIB = 1, /* No DSP */
|
||||
SB_DSP_105, /* DSP v1.05, Original CT1320 (Also known as CT1310) */
|
||||
SB_DSP_103, /* DSP v1.03, "killer card" prototype (Also known as CT1310) */
|
||||
SB_DSP_105, /* DSP v1.05, Original CT1320 */
|
||||
SB_DSP_200, /* DSP v2.00 */
|
||||
SB_DSP_201, /* DSP v2.01 - needed for high-speed DMA, Seen on CT1350B with CT1336 */
|
||||
SB_DSP_202, /* DSP v2.02 - Seen on CT1350B with CT1336A */
|
||||
SBPRO_DSP_300, /* DSP v3.00 */
|
||||
SBPRO2_DSP_302, /* DSP v3.02 + OPL3 */
|
||||
SBPRO_DSP_301, /* DSP v3.01 */
|
||||
SBPRO_DSP_302, /* DSP v3.02 */
|
||||
SB16_DSP_404, /* DSP v4.05 + OPL3 */
|
||||
SB16_DSP_405, /* DSP v4.05 + OPL3 */
|
||||
SB16_DSP_406, /* DSP v4.06 + OPL3 */
|
||||
|
||||
@@ -9,8 +9,9 @@
|
||||
#define SB_SUBTYPE_CLONE_AZT1605_0X0C 2 /* Aztech Sound Galaxy Nova 16 Extra /
|
||||
Packard Bell Forte 16, DSP 2.1 - SBPRO2 clone */
|
||||
#define SB_SUBTYPE_CLONE_AZTPR16_0X09 3 /* Aztech Sound Galaxy Pro 16 Extra */
|
||||
#define SB_SUBTYPE_ESS_ES688 4 /* ESS Technology ES688 */
|
||||
#define SB_SUBTYPE_ESS_ES1688 5 /* ESS Technology ES1688 */
|
||||
#define SB_SUBTYPE_MVD201 4 /* Mediavision MVD201, found on the thunderboard and PAS16 */
|
||||
#define SB_SUBTYPE_ESS_ES688 5 /* ESS Technology ES688 */
|
||||
#define SB_SUBTYPE_ESS_ES1688 6 /* ESS Technology ES1688 */
|
||||
|
||||
/* ESS-related */
|
||||
#define IS_ESS(dsp) ((dsp)->sb_subtype >= SB_SUBTYPE_ESS_ES688) /* Check for future ESS cards here */
|
||||
@@ -20,6 +21,9 @@
|
||||
#define IS_AZTECH(dsp) ((dsp)->sb_subtype == SB_SUBTYPE_CLONE_AZT2316A_0X11 || (dsp)->sb_subtype == SB_SUBTYPE_CLONE_AZT1605_0X0C || (dsp)->sb_subtype == SB_SUBTYPE_CLONE_AZTPR16_0X09) /* check for future AZT cards here */
|
||||
#define AZTECH_EEPROM_SIZE 36
|
||||
|
||||
/* MediaVision related */
|
||||
#define IS_MV201(dsp) ((dsp)->sb_subtype >= SB_SUBTYPE_MVD201)
|
||||
|
||||
typedef struct sb_dsp_t {
|
||||
int sb_type;
|
||||
int sb_subtype; /* which clone */
|
||||
@@ -102,6 +106,7 @@ typedef struct sb_dsp_t {
|
||||
int sbreset;
|
||||
uint8_t sbreaddat;
|
||||
uint8_t sb_command;
|
||||
uint8_t sb_last_command;
|
||||
uint8_t sb_test;
|
||||
int sb_timei;
|
||||
int sb_timeo;
|
||||
|
||||
@@ -228,6 +228,9 @@ extern const device_t entertainer_device;
|
||||
/* Mindscape Music Board */
|
||||
extern const device_t mmb_device;
|
||||
|
||||
/* MediaVision ThunderBoard */
|
||||
extern const device_t thunderboard_device;
|
||||
|
||||
/* OPTi 82c93x */
|
||||
extern const device_t acermagic_s20_device;
|
||||
extern const device_t mirosound_pcm10_device;
|
||||
|
||||
@@ -65,6 +65,7 @@ typedef union {
|
||||
|
||||
typedef struct ibm8514_t {
|
||||
rom_t bios_rom;
|
||||
rom_t bios_rom2;
|
||||
uint8_t *rom1;
|
||||
uint8_t *rom2;
|
||||
hwcursor8514_t hwcursor;
|
||||
@@ -187,6 +188,7 @@ typedef struct ibm8514_t {
|
||||
uint32_t dst_ge_offset;
|
||||
uint16_t src_pitch;
|
||||
uint16_t dst_pitch;
|
||||
uint16_t read_pixel;
|
||||
int64_t cur_x_24bpp;
|
||||
int64_t cur_y_24bpp;
|
||||
int64_t dest_x_24bpp;
|
||||
|
||||
@@ -1300,7 +1300,7 @@ voodoo_generate(uint8_t *code_block, voodoo_t *voodoo, voodoo_params_t *params,
|
||||
addbyte(0x35); /*XOR EAX, 0xff*/
|
||||
addlong(0xff);
|
||||
}
|
||||
addbyte(0x8e); /*ADD EAX, 1*/
|
||||
addbyte(0x83); /*ADD EAX, 1*/
|
||||
addbyte(0xc0);
|
||||
addbyte(1);
|
||||
addbyte(0x0f); /*IMUL EAX, EBX*/
|
||||
@@ -2327,7 +2327,7 @@ voodoo_generate(uint8_t *code_block, voodoo_t *voodoo, voodoo_params_t *params,
|
||||
addlong(offsetof(voodoo_state_t, z));
|
||||
addbyte(0xc1); /*SHR EAX, 12*/
|
||||
addbyte(0xe8);
|
||||
addbyte(12);
|
||||
addbyte(20);
|
||||
addbyte(0x25); /*AND EAX, 0xff*/
|
||||
addlong(0xff);
|
||||
#if 0
|
||||
|
||||
@@ -375,6 +375,7 @@ extern const device_t gd5401_isa_device;
|
||||
extern const device_t gd5401_onboard_device;
|
||||
extern const device_t gd5402_isa_device;
|
||||
extern const device_t gd5402_onboard_device;
|
||||
extern const device_t gd5402_onboard_commodore_device;
|
||||
extern const device_t gd5420_isa_device;
|
||||
extern const device_t gd5420_onboard_device;
|
||||
extern const device_t gd5422_isa_device;
|
||||
@@ -383,9 +384,11 @@ extern const device_t gd5424_onboard_device;
|
||||
extern const device_t gd5426_isa_device;
|
||||
extern const device_t gd5426_diamond_speedstar_pro_a1_isa_device;
|
||||
extern const device_t gd5426_vlb_device;
|
||||
extern const device_t gd5426_onboard_isa_device;
|
||||
extern const device_t gd5426_onboard_device;
|
||||
extern const device_t gd5428_isa_device;
|
||||
extern const device_t gd5428_vlb_onboard_device;
|
||||
extern const device_t gd5428_vlb_onboard_tandy_device;
|
||||
extern const device_t gd5428_vlb_device;
|
||||
extern const device_t gd5428_diamond_speedstar_pro_b1_vlb_device;
|
||||
extern const device_t gd5428_boca_isa_device;
|
||||
|
||||
@@ -2971,17 +2971,6 @@ machine_amstrad_init(const machine_t *model, int type)
|
||||
ams->type = type;
|
||||
amstrad_latch = 0x80000000;
|
||||
|
||||
switch (type) {
|
||||
case AMS_PC200:
|
||||
case AMS_PPC512:
|
||||
device_add(&amstrad_no_nmi_nvr_device);
|
||||
break;
|
||||
|
||||
default:
|
||||
device_add(&amstrad_nvr_device);
|
||||
break;
|
||||
}
|
||||
|
||||
machine_common_init(model);
|
||||
|
||||
nmi_init();
|
||||
|
||||
@@ -140,7 +140,7 @@ const device_t ibmat_device = {
|
||||
static void
|
||||
machine_at_ibm_common_init(const machine_t *model)
|
||||
{
|
||||
machine_at_common_init_ex(model, 1);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
|
||||
@@ -510,8 +510,7 @@ machine_at_m290_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 6);
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&olivetti_eva_device);
|
||||
device_add(&port_6x_olivetti_device);
|
||||
@@ -630,7 +629,7 @@ machine_at_siemens_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 1);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
|
||||
@@ -923,6 +922,29 @@ machine_at_3302_init(const machine_t *model)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_n8810m30_init(const machine_t *model) /* Onboard SCSI not yet emulated */
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/n8810m30/at286bios_53889.00.0.17jr.BIN",
|
||||
0x000e0000, 131072, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&neat_device);
|
||||
|
||||
if (fdc_current[0] == FDC_INTERNAL)
|
||||
device_add(&fdc_at_device);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* SCAMP */
|
||||
int
|
||||
machine_at_pc7286_init(const machine_t *model)
|
||||
@@ -935,7 +957,7 @@ machine_at_pc7286_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
@@ -272,7 +272,7 @@ machine_at_spc6000a_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 1);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&cs8230_device);
|
||||
|
||||
|
||||
@@ -409,8 +409,7 @@ machine_at_adi386sx_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&intel_82335_device);
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
@@ -494,6 +493,31 @@ machine_at_neat_init(const machine_t *model)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_p3345_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_interleaved("roms/machines/p3345/BIOS_EVEN.BIN",
|
||||
"roms/machines/p3345/BIOS_ODD.BIN",
|
||||
0x000f0000, 65536, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
|
||||
device_add(&neat_device);
|
||||
device_add(&ide_isa_device);
|
||||
|
||||
if (fdc_current[0] == FDC_INTERNAL)
|
||||
device_add(&fdc_at_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* NEATsx */
|
||||
int
|
||||
machine_at_if386sx_init(const machine_t *model)
|
||||
@@ -507,8 +531,7 @@ machine_at_if386sx_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
|
||||
@@ -586,9 +609,9 @@ machine_at_cmdsl386sx25_init(const machine_t *model)
|
||||
return ret;
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(&gd5402_onboard_device);
|
||||
device_add(&gd5402_onboard_commodore_device);
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&ide_isa_device);
|
||||
|
||||
@@ -700,7 +723,7 @@ machine_at_dells333sl_init(const machine_t *model)
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&ide_isa_device);
|
||||
|
||||
@@ -774,7 +797,7 @@ machine_at_wd76c10_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
@@ -60,7 +60,7 @@ machine_at_itoxstar_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -90,7 +90,7 @@ machine_at_arb1423c_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -117,7 +117,7 @@ machine_at_arb1479_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -144,7 +144,7 @@ machine_at_iach488_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -169,7 +169,7 @@ machine_at_pcm9340_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -198,7 +198,7 @@ machine_at_pcm5330_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
#include <86box/machine.h>
|
||||
|
||||
void
|
||||
machine_at_common_init_ex(const machine_t *model, int type)
|
||||
machine_at_common_init(const machine_t *model)
|
||||
{
|
||||
machine_common_init(model);
|
||||
|
||||
@@ -70,24 +70,12 @@ machine_at_common_init_ex(const machine_t *model, int type)
|
||||
pic2_init();
|
||||
dma16_init();
|
||||
|
||||
if (!(type & 4))
|
||||
if (model->init != machine_at_m290_init)
|
||||
device_add(&port_6x_device);
|
||||
type &= 3;
|
||||
|
||||
if (type == 1)
|
||||
device_add(&ibmat_nvr_device);
|
||||
else if (type == 0)
|
||||
device_add(&at_nvr_device);
|
||||
|
||||
standalone_gameport_type = &gameport_device;
|
||||
}
|
||||
|
||||
void
|
||||
machine_at_common_init(const machine_t *model)
|
||||
{
|
||||
machine_at_common_init_ex(model, 0);
|
||||
}
|
||||
|
||||
void
|
||||
machine_at_init(const machine_t *model)
|
||||
{
|
||||
@@ -112,14 +100,6 @@ machine_at_common_ide_init(const machine_t *model)
|
||||
device_add(&ide_isa_device);
|
||||
}
|
||||
|
||||
void
|
||||
machine_at_ibm_common_ide_init(const machine_t *model)
|
||||
{
|
||||
machine_at_common_init_ex(model, 1);
|
||||
|
||||
device_add(&ide_isa_device);
|
||||
}
|
||||
|
||||
void
|
||||
machine_at_ide_init(const machine_t *model)
|
||||
{
|
||||
|
||||
@@ -47,7 +47,7 @@ machine_at_vpc2007_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
is_vpc = 1;
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
|
||||
@@ -50,7 +50,7 @@ machine_at_m729_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -83,7 +83,7 @@ machine_at_acerv62x_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -220,7 +220,7 @@ machine_at_lx6_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -251,7 +251,7 @@ machine_at_optiplexgxa_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
|
||||
@@ -442,7 +442,7 @@ machine_at_ms6117_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -479,7 +479,7 @@ machine_at_ma30d_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -516,7 +516,7 @@ machine_at_brio83xx_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
// Actual settings!
|
||||
@@ -610,7 +610,7 @@ machine_at_como_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -643,7 +643,7 @@ machine_at_p6i440e2_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -676,7 +676,7 @@ machine_at_bf6_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -792,7 +792,7 @@ machine_at_bx6_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -823,7 +823,7 @@ machine_at_p2bls_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -862,7 +862,7 @@ machine_at_p3bf_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -962,7 +962,7 @@ machine_at_ax6bc_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1059,7 +1059,7 @@ machine_at_ga686_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1178,7 +1178,7 @@ machine_at_ms6119_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1273,7 +1273,7 @@ machine_at_ms6147_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1363,7 +1363,7 @@ machine_at_p6sba_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1453,7 +1453,7 @@ machine_at_s1846_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1556,7 +1556,7 @@ machine_at_vei8_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1580,7 +1580,7 @@ machine_at_vei8_init(const machine_t *model)
|
||||
static void
|
||||
machine_at_ms6168_common_init(const machine_t *model)
|
||||
{
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1651,7 +1651,7 @@ machine_at_atc6310bxii_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1683,7 +1683,7 @@ machine_at_ficka6130_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1715,7 +1715,7 @@ machine_at_p3v133_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1825,7 +1825,7 @@ machine_at_ms6199va_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1866,7 +1866,7 @@ machine_at_p3v4x_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1901,7 +1901,7 @@ machine_at_gt694va_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1944,7 +1944,7 @@ machine_at_p6f99_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1979,7 +1979,7 @@ machine_at_m747_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -51,7 +51,7 @@ machine_at_fw6400gx_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -114,7 +114,7 @@ machine_at_prosignias31x_bx_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -154,7 +154,7 @@ machine_at_s1857_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -193,7 +193,7 @@ machine_at_p6bat_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -50,7 +50,7 @@ machine_at_6gxu_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -85,7 +85,7 @@ machine_at_s2dge_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -294,15 +294,17 @@ machine_at_vect486vl_init(const machine_t *model) // has HDC problems
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/vect486vl/aa0500.ami",
|
||||
0x000e0000, 131072, 0);
|
||||
0x000c0000, 262144, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
memcpy(&rom[0x00020000], rom, 131072);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&vl82c480_device);
|
||||
|
||||
@@ -311,6 +313,15 @@ machine_at_vect486vl_init(const machine_t *model) // has HDC problems
|
||||
device_add(&ide_isa_device);
|
||||
device_add_params(&fdc37c6xx_device, (void *) (FDC37C651 | FDC37C6XX_IDE_PRI));
|
||||
|
||||
video_reset(gfxcard[0]);
|
||||
|
||||
if (gfxcard[0] != VID_INTERNAL) {
|
||||
for (uint16_t i = 0; i < 32768; i++)
|
||||
rom[i] = mem_readb_phys(0x000c0000 + i);
|
||||
}
|
||||
mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000);
|
||||
mem_mapping_set_exec(&bios_mapping, rom);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -321,15 +332,17 @@ machine_at_d824_init(const machine_t *model)
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/d824/fts-biosupdated824noflashbiosepromv320-320334-160.bin",
|
||||
0x000e0000, 131072, 0);
|
||||
0x000c0000, 262144, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
memcpy(&rom[0x00020000], rom, 131072);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&vl82c480_device);
|
||||
|
||||
@@ -342,6 +355,15 @@ machine_at_d824_init(const machine_t *model)
|
||||
device_add(&ide_isa_device);
|
||||
device_add_params(&fdc37c6xx_device, (void *) FDC37C651);
|
||||
|
||||
video_reset(gfxcard[0]);
|
||||
|
||||
if (gfxcard[0] != VID_INTERNAL) {
|
||||
for (uint16_t i = 0; i < 32768; i++)
|
||||
rom[i] = mem_readb_phys(0x000c0000 + i);
|
||||
}
|
||||
mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000);
|
||||
mem_mapping_set_exec(&bios_mapping, rom);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -357,7 +379,7 @@ machine_at_pcs44c_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&vl82c486_device);
|
||||
device_add(&tulip_jumper_device);
|
||||
@@ -415,7 +437,7 @@ machine_at_tuliptc38_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&vl82c486_device);
|
||||
device_add(&tulip_jumper_device);
|
||||
|
||||
@@ -61,7 +61,7 @@ machine_at_pb410a_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_ibm_common_ide_init(model);
|
||||
machine_at_common_ide_init(model);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
|
||||
@@ -199,8 +199,7 @@ machine_at_g486ip_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&ami_1992_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -380,7 +379,7 @@ machine_at_monsoon_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&vl82c480_device);
|
||||
device_add(&vl82c113_device);
|
||||
@@ -389,6 +388,7 @@ machine_at_monsoon_init(const machine_t *model)
|
||||
device_add_params(&fdc37c6xx_device, (void *) (FDC37C651 | FDC37C6XX_IDE_PRI));
|
||||
|
||||
device_add(&intel_flash_bxt_device);
|
||||
device_add(&phoenix_486_jumper_monsoon_device);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
@@ -407,7 +407,7 @@ machine_at_martin_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&vl82c480_device);
|
||||
device_add(&vl82c113_device);
|
||||
|
||||
@@ -105,15 +105,14 @@ machine_at_ap4100aa_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&ami_1994_nvr_device);
|
||||
device_add(&ali1429g_device);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
|
||||
device_add(&ide_vlb_device);
|
||||
device_add_params(&um866x_device, (void *) UM8663BF);
|
||||
device_add_params(&um866x_device, (void *) (uintptr_t) UM8663BF);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -265,11 +264,8 @@ machine_at_403tg_init(const machine_t *model)
|
||||
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
|
||||
ret = bios_load_linear(fn, 0x000f0000, 65536, 0);
|
||||
|
||||
if (nvr_hack) {
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&ami_1994_nvr_device);
|
||||
} else
|
||||
machine_at_common_init(model);
|
||||
machine_at_common_init(model);
|
||||
device_add_params(&nvr_at_device, (void *) (uintptr_t) (nvr_hack ? (NVR_AMI_1994) : (NVR_AT)));
|
||||
|
||||
device_add(&opti895_device);
|
||||
|
||||
@@ -482,8 +478,7 @@ machine_at_tg486g_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
device_add(&sis_85c471_device);
|
||||
device_add(&ide_isa_device);
|
||||
device_add_params(&fdc37c6xx_device, (void *) (FDC37C651 | FDC37C6XX_IDE_PRI));
|
||||
|
||||
@@ -50,7 +50,7 @@ machine_at_s370slm_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -85,7 +85,7 @@ machine_at_awo671r_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -120,7 +120,7 @@ machine_at_ambx133_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -156,7 +156,7 @@ machine_at_cubx_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -194,7 +194,7 @@ machine_at_63a1_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -227,7 +227,7 @@ machine_at_7sbb_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -256,7 +256,7 @@ machine_at_atc7020bxii_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -288,7 +288,7 @@ machine_at_m773_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -329,7 +329,7 @@ machine_at_apas3_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -361,7 +361,7 @@ machine_at_p6bap_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -397,7 +397,7 @@ machine_at_6via90ap_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -435,7 +435,7 @@ machine_at_cuv4xls_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -565,7 +565,7 @@ machine_at_ms6318_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -602,7 +602,7 @@ machine_at_cairo5_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -350,7 +350,7 @@ machine_at_pc330_6573_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
device_add(&ide_vlb_2ch_device);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -458,7 +458,7 @@ machine_at_pb450_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
device_add(&ide_vlb_2ch_device);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -582,8 +582,7 @@ machine_at_ninja_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x05, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -707,9 +706,8 @@ machine_at_alfredo_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
device_add(&ide_pci_device);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING);
|
||||
@@ -881,8 +879,7 @@ machine_at_pci400cb_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&ami_1994_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -929,7 +926,7 @@ machine_at_acerp3_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
machine_at_sis_85c496_common_init(model);
|
||||
device_add(&sis_85c496_device);
|
||||
@@ -963,7 +960,7 @@ machine_at_486sp3c_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
machine_at_sis_85c496_common_init(model);
|
||||
device_add(&sis_85c496_device);
|
||||
@@ -991,7 +988,7 @@ machine_at_ls486e_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
machine_at_sis_85c496_common_init(model);
|
||||
device_add(&sis_85c496_ls486e_device);
|
||||
@@ -1018,7 +1015,7 @@ machine_at_m4li_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
machine_at_sis_85c496_common_init(model);
|
||||
device_add(&sis_85c496_device);
|
||||
@@ -1045,7 +1042,7 @@ machine_at_ms4144_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
machine_at_sis_85c496_common_init(model);
|
||||
device_add(&sis_85c496_ls486e_device);
|
||||
@@ -1073,7 +1070,7 @@ machine_at_r418_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
machine_at_sis_85c496_common_init(model);
|
||||
device_add(&sis_85c496_device);
|
||||
@@ -1100,7 +1097,7 @@ machine_at_4saw2_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
machine_at_sis_85c496_common_init(model);
|
||||
device_add(&sis_85c496_device);
|
||||
@@ -1129,7 +1126,7 @@ machine_at_4dps_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
machine_at_sis_85c496_common_init(model);
|
||||
device_add(&sis_85c496_device);
|
||||
@@ -1471,11 +1468,8 @@ machine_at_hot433a_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
if (is_award)
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
else
|
||||
device_add(&ami_1994_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
device_add_params(&nvr_at_device, (void *) (uintptr_t) (is_award ? (NVR_AT_ZERO_DEFAULT) : (NVR_AMI_1994)));
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x10, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -254,9 +254,8 @@ machine_at_opti560l_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
device_add(&ide_pci_device);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_2);
|
||||
@@ -434,9 +433,8 @@ machine_at_batman_init(const machine_t *model)
|
||||
}
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
device_add(&ide_pci_device);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_2);
|
||||
@@ -466,9 +464,8 @@ machine_at_batman_init(const machine_t *model)
|
||||
void
|
||||
machine_at_premiere_common_init(const machine_t *model, int pci_switch)
|
||||
{
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
device_add(&ide_pci_2ch_device);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_2 | pci_switch);
|
||||
@@ -669,8 +666,7 @@ machine_at_excaliburpci2_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&ami_1994_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -83,7 +83,7 @@ machine_at_celebris5xx_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -371,8 +371,7 @@ machine_at_apollo_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&ami_1995_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -402,8 +401,7 @@ machine_at_optiplexgxl_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
|
||||
@@ -428,6 +426,91 @@ machine_at_optiplexgxl_init(const machine_t *model)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const device_config_t pt2000_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
.name = "bios",
|
||||
.description = "BIOS Version",
|
||||
.type = CONFIG_BIOS,
|
||||
.default_string = "pt2000",
|
||||
.default_int = 0,
|
||||
.file_filter = NULL,
|
||||
.spinner = { 0 },
|
||||
.selection = { { 0 } },
|
||||
.bios = {
|
||||
{
|
||||
.name = "Award Modular BIOS v4.50GP - Revision T1.01",
|
||||
.internal_name = "pt2000",
|
||||
.bios_type = BIOS_NORMAL,
|
||||
.files_no = 1,
|
||||
.local = 0,
|
||||
.size = 131072,
|
||||
.files = { "roms/machines/ficpt2000/PT2000_v1.01.BIN", "" }
|
||||
},
|
||||
{
|
||||
.name = "Award Modular BIOS v4.51PG - Revision 3.072C806",
|
||||
.internal_name = "pt2000_451pg",
|
||||
.bios_type = BIOS_NORMAL,
|
||||
.files_no = 1,
|
||||
.local = 0,
|
||||
.size = 131072,
|
||||
.files = { "roms/machines/ficpt2000/3072c806.bin", "" }
|
||||
},
|
||||
{ .files_no = 0 }
|
||||
},
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
const device_t pt2000_device = {
|
||||
.name = "FIC PT-2000",
|
||||
.internal_name = "pt2000_device",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
.available = NULL,
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = pt2000_config
|
||||
};
|
||||
|
||||
int
|
||||
machine_at_pt2000_init(const machine_t *model)
|
||||
{
|
||||
int ret = 0;
|
||||
const char *fn;
|
||||
|
||||
/* No ROMs available */
|
||||
if (!device_available(model->device))
|
||||
return ret;
|
||||
|
||||
device_context(model->device);
|
||||
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x09, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
device_add(&i430fx_device);
|
||||
device_add(&piix_device);
|
||||
device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398));
|
||||
device_add(&intel_flash_bxt_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
machine_at_morrison32_gpio_init(void)
|
||||
{
|
||||
@@ -476,7 +559,7 @@ machine_at_morrison32_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_morrison32_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -571,7 +654,7 @@ machine_at_pc330_65x6_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_morrison64_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -625,91 +708,6 @@ machine_at_zappa_gpio_init(void)
|
||||
machine_set_gpio_default(gpio);
|
||||
}
|
||||
|
||||
static const device_config_t pt2000_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
.name = "bios",
|
||||
.description = "BIOS Version",
|
||||
.type = CONFIG_BIOS,
|
||||
.default_string = "pt2000",
|
||||
.default_int = 0,
|
||||
.file_filter = NULL,
|
||||
.spinner = { 0 },
|
||||
.selection = { { 0 } },
|
||||
.bios = {
|
||||
{
|
||||
.name = "Award Modular BIOS v4.50GP - Revision T1.01",
|
||||
.internal_name = "pt2000",
|
||||
.bios_type = BIOS_NORMAL,
|
||||
.files_no = 1,
|
||||
.local = 0,
|
||||
.size = 131072,
|
||||
.files = { "roms/machines/ficpt2000/PT2000_v1.01.BIN", "" }
|
||||
},
|
||||
{
|
||||
.name = "Award Modular BIOS v4.51PG - Revision 3.072C806",
|
||||
.internal_name = "pt2000_451pg",
|
||||
.bios_type = BIOS_NORMAL,
|
||||
.files_no = 1,
|
||||
.local = 0,
|
||||
.size = 131072,
|
||||
.files = { "roms/machines/ficpt2000/3072c806.bin", "" }
|
||||
},
|
||||
{ .files_no = 0 }
|
||||
},
|
||||
},
|
||||
{ .name = "", .description = "", .type = CONFIG_END }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
const device_t pt2000_device = {
|
||||
.name = "FIC PT-2000",
|
||||
.internal_name = "pt2000_device",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = NULL,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
.available = NULL,
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = pt2000_config
|
||||
};
|
||||
|
||||
int
|
||||
machine_at_pt2000_init(const machine_t *model)
|
||||
{
|
||||
int ret = 0;
|
||||
const char *fn;
|
||||
|
||||
/* No ROMs available */
|
||||
if (!device_available(model->device))
|
||||
return ret;
|
||||
|
||||
device_context(model->device);
|
||||
fn = device_get_bios_file(machine_get_device(machine), device_get_config_bios("bios"), 0);
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x09, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
device_add(&i430fx_device);
|
||||
device_add(&piix_device);
|
||||
device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398));
|
||||
device_add(&intel_flash_bxt_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const device_config_t zappa_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -778,7 +776,7 @@ machine_at_zappa_init(const machine_t *model)
|
||||
ret = bios_load_linear_combined(fn, fn2, 0x20000, 128);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_zappa_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -894,8 +892,7 @@ machine_at_hawk_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&ami_1994_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1088,8 +1085,7 @@ machine_at_ms5109_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&ami_1994_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1121,8 +1117,7 @@ machine_at_torino_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&ami_1994_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1189,7 +1184,7 @@ machine_at_bravoms586_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1216,36 +1211,6 @@ machine_at_bravoms586_init(const machine_t *model)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_g586vpmc_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/g586vpmc/Vpm_c3.bin",
|
||||
0x000e0000, 131072, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x02, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x08, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x0A, PCI_CARD_IDE, 0, 0, 0, 0);
|
||||
|
||||
device_add(&vl82c59x_device);
|
||||
device_add(&sst_flash_29ee010_device);
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398));
|
||||
device_add(&ide_cmd646_device);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_m54si_init(const machine_t *model)
|
||||
{
|
||||
@@ -1257,7 +1222,7 @@ machine_at_m54si_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1288,7 +1253,7 @@ machine_at_pb600_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1324,7 +1289,7 @@ machine_at_globalyst620_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1346,3 +1311,33 @@ machine_at_globalyst620_init(const machine_t *model)
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_g586vpmc_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/g586vpmc/Vpm_c3.bin",
|
||||
0x000e0000, 131072, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x02, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x08, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x0A, PCI_CARD_IDE, 0, 0, 0, 0);
|
||||
|
||||
device_add(&vl82c59x_wildcat_device);
|
||||
device_add(&sst_flash_29ee010_device);
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
device_add_params(&pc873xx_device, (void *) (PC87332 | PCX730X_398));
|
||||
device_add(&ide_cmd646_device);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ machine_at_acerm3a_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -190,7 +190,7 @@ machine_at_rubyusb_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_rubyusb_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -326,7 +326,7 @@ machine_at_cu430hx_init(const machine_t *model)
|
||||
ret = bios_load_linear_combined2(fn[0], fn[1], fn[2], fn[3], fn[4], 0x3a000, 128);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_cu430hx_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -452,7 +452,7 @@ machine_at_tc430hx_init(const machine_t *model)
|
||||
ret = bios_load_linear_combined2(fn[0], fn[1], fn[2], fn[3], fn[4], 0x3a000, 128);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_tc430hx_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -544,7 +544,7 @@ machine_at_m7shi_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -573,8 +573,7 @@ machine_at_epc2102_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add_params(&at_nvr_device, (void *) 0x20);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -613,7 +612,7 @@ machine_at_pcv90_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_ag430hx_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -647,7 +646,7 @@ machine_at_p55t2s_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -801,7 +800,7 @@ machine_at_presario2240_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_NO_BRIDGES);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -831,7 +830,7 @@ machine_at_presario4500_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_NO_BRIDGES);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -865,7 +864,7 @@ machine_at_dellhannibalp_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -980,7 +979,7 @@ machine_at_p55va_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1013,7 +1012,7 @@ machine_at_gw2kte_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1046,7 +1045,7 @@ machine_at_brio80xx_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1168,7 +1167,7 @@ machine_at_pb680_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_nv430vx_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -1201,7 +1200,7 @@ machine_at_pb810_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1293,7 +1292,7 @@ machine_at_nupro592_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1333,7 +1332,7 @@ machine_at_tx97_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1383,7 +1382,7 @@ machine_at_optiplexgn_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
|
||||
@@ -1421,7 +1420,7 @@ machine_at_tomahawk_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1463,7 +1462,7 @@ machine_at_ym430tx_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1495,7 +1494,7 @@ machine_at_tx97xv_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
|
||||
@@ -1648,7 +1647,7 @@ machine_at_ms5156_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1684,7 +1683,7 @@ machine_at_ma23c_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1775,7 +1774,7 @@ machine_at_an430tx_init(const machine_t *model)
|
||||
ret = bios_load_linear_combined2(fn[0], fn[1], fn[2], fn[3], fn[4], 0x3a000, 160);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1814,7 +1813,7 @@ machine_at_mb540n_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1845,7 +1844,7 @@ machine_at_56a5_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1877,7 +1876,7 @@ machine_at_p5mms98_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1910,7 +1909,7 @@ machine_at_richmond_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1944,7 +1943,7 @@ machine_at_ficva502_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1975,7 +1974,7 @@ machine_at_ficpa2012_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2006,7 +2005,7 @@ machine_at_via809ds_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2038,7 +2037,7 @@ machine_at_cb52xsi_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2121,7 +2120,7 @@ machine_at_ms5146_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2204,7 +2203,7 @@ machine_at_r534f_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2233,7 +2232,7 @@ machine_at_sp97xv_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2262,7 +2261,7 @@ machine_at_sq578_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2290,7 +2289,7 @@ machine_at_ms5172_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2374,7 +2373,7 @@ machine_at_m5ata_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
|
||||
@@ -2403,7 +2402,7 @@ machine_at_ms5164_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -2436,7 +2435,7 @@ machine_at_m560_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -204,7 +204,7 @@ machine_at_holly_init(const machine_t *model) /* HP Pavilion Holly, 7070/7090/51
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_holly_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -228,6 +228,38 @@ machine_at_holly_init(const machine_t *model) /* HP Pavilion Holly, 7070/7090/51
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_vectra500mt_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/vectra500mt/GJ0718.FUL",
|
||||
0x000e0000, 131072, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x0D, PCI_CARD_VIDEO, 0, 0, 0, 0);
|
||||
pci_register_slot(0x06, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x07, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
device_add(&i430fx_device);
|
||||
device_add(&piix_device);
|
||||
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX2 | FDC37C93X_NORMAL));
|
||||
device_add(&sst_flash_29ee010_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
machine_at_vectra52_gpio_init(void)
|
||||
{
|
||||
@@ -308,7 +340,7 @@ const device_t vectra52_device = {
|
||||
int
|
||||
machine_at_vectra52_init(const machine_t *model)
|
||||
{
|
||||
int ret = 0;
|
||||
int ret = 0;
|
||||
const char *fn;
|
||||
|
||||
/* No ROMs available */
|
||||
@@ -320,8 +352,8 @@ machine_at_vectra52_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_vectra52_gpio_init();
|
||||
machine_at_common_init(model);
|
||||
machine_at_vectra52_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -335,40 +367,9 @@ machine_at_vectra52_init(const machine_t *model)
|
||||
device_add_params(&pc87306_device, (void *) PCX730X_PHOENIX_42);
|
||||
device_add(&intel_flash_bxt_device);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
return ret;
|
||||
}
|
||||
int
|
||||
machine_at_vectra500mt_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/vectra500mt/GJ0718.FUL",
|
||||
0x000e0000, 131072, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x0D, PCI_CARD_VIDEO, 0, 0, 0, 0);
|
||||
pci_register_slot(0x06, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x07, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
device_add(&i430fx_device);
|
||||
device_add(&piix_device);
|
||||
device_add_params(&fdc37c93x_device, (void *) (FDC37XXX2 | FDC37C93X_NORMAL));
|
||||
device_add(&sst_flash_29ee010_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -383,7 +384,7 @@ machine_at_vectra54_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -404,6 +405,80 @@ machine_at_vectra54_init(const machine_t *model)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
machine_at_atlantis_gpio_init(void)
|
||||
{
|
||||
uint32_t gpio = 0xffffe0cf;
|
||||
|
||||
/* Register 0x0079: */
|
||||
/* Bit 7: 0 = Clear password, 1 = Keep password. */
|
||||
/* Bit 6: 0 = NVRAM cleared by jumper, 1 = NVRAM normal. */
|
||||
/* Bit 5: 0 = CMOS Setup disabled, 1 = CMOS Setup enabled. */
|
||||
/* Bit 4: External CPU clock (Switch 8). */
|
||||
/* Bit 3: External CPU clock (Switch 7). */
|
||||
/* 50 MHz: Switch 7 = Off, Switch 8 = Off. */
|
||||
/* 60 MHz: Switch 7 = On, Switch 8 = Off. */
|
||||
/* 66 MHz: Switch 7 = Off, Switch 8 = On. */
|
||||
/* Bit 2: 0 = On-board audio absent, 1 = On-board audio present. */
|
||||
/* Bit 1: 0 = Soft-off capable power supply present, 1 = Soft-off capable power supply absent. */
|
||||
/* Bit 0: 0 = 2x multiplier, 1 = 1.5x multiplier (Switch 6). */
|
||||
/* NOTE: A bit is read as 1 if switch is off, and as 0 if switch is on. */
|
||||
if (cpu_busspeed <= 50000000)
|
||||
gpio |= 0xffff0000;
|
||||
else if ((cpu_busspeed > 50000000) && (cpu_busspeed <= 60000000))
|
||||
gpio |= 0xffff0800;
|
||||
else if (cpu_busspeed > 60000000)
|
||||
gpio |= 0xffff1000;
|
||||
|
||||
if (sound_card_current[0] == SOUND_INTERNAL)
|
||||
gpio |= 0xffff0400;
|
||||
|
||||
if (cpu_dmulti <= 1.5)
|
||||
gpio |= 0xffff0100;
|
||||
else
|
||||
gpio |= 0xffff0000;
|
||||
|
||||
machine_set_gpio_default(gpio);
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_atlantis_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear_combined("roms/machines/atlantis/1007CL0_.BIO",
|
||||
"roms/machines/atlantis/1007CL0_.BI1",
|
||||
0x20000, 128);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init(model);
|
||||
machine_at_atlantis_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0);
|
||||
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
if (sound_card_current[0] == SOUND_INTERNAL)
|
||||
machine_snd = device_add(machine_get_snd_device(machine));
|
||||
|
||||
device_add(&i430fx_device);
|
||||
device_add(&piix_device);
|
||||
device_add_params(&pc87306_device, (void *) PCX730X_AMI);
|
||||
device_add(&intel_flash_bxt_ami_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const device_config_t thor_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -535,7 +610,7 @@ machine_at_thor_init(const machine_t *model)
|
||||
}
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_thor_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -648,58 +723,6 @@ machine_at_endeavor_gpio_handler(uint8_t write, uint32_t val)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
machine_at_monaco_gpio_init(void)
|
||||
{
|
||||
uint32_t gpio = 0xffffe0cf;
|
||||
|
||||
/* Register 0x0079: */
|
||||
/* Bit 7: 0 = Clear password, 1 = Keep password. */
|
||||
/* Bit 6: 0 = NVRAM cleared by jumper, 1 = NVRAM normal. */
|
||||
/* Bit 5: 0 = CMOS Setup disabled, 1 = CMOS Setup enabled. */
|
||||
/* Bit 4: External CPU clock (Switch 8). */
|
||||
/* Bit 3: External CPU clock (Switch 7). */
|
||||
/* 50 MHz: Switch 7 = Off, Switch 8 = Off. */
|
||||
/* 60 MHz: Switch 7 = On, Switch 8 = Off. */
|
||||
/* 66 MHz: Switch 7 = Off, Switch 8 = On. */
|
||||
/* Bit 2: 0 = On-board audio absent, 1 = On-board audio present. */
|
||||
/* Bit 1: 0 = Soft-off capable power supply present, 1 = Soft-off capable power supply absent. */
|
||||
/* Bit 0: 0 = 2x multiplier, 1 = 1.5x multiplier (Switch 6). */
|
||||
/* NOTE: A bit is read as 1 if switch is off, and as 0 if switch is on. */
|
||||
if (cpu_busspeed <= 50000000)
|
||||
gpio |= 0xffff0000;
|
||||
else if ((cpu_busspeed > 50000000) && (cpu_busspeed <= 60000000))
|
||||
gpio |= 0xffff0800;
|
||||
else if (cpu_busspeed > 60000000)
|
||||
gpio |= 0xffff1000;
|
||||
|
||||
if (sound_card_current[0] == SOUND_INTERNAL)
|
||||
gpio |= 0xffff0400;
|
||||
|
||||
if (cpu_dmulti <= 1.5)
|
||||
gpio |= 0xffff0100;
|
||||
else
|
||||
gpio |= 0xffff0000;
|
||||
|
||||
machine_set_gpio_default(gpio);
|
||||
}
|
||||
|
||||
uint32_t
|
||||
machine_at_monaco_gpio_handler(uint8_t write, uint32_t val)
|
||||
{
|
||||
uint32_t ret = machine_get_gpio_default();
|
||||
|
||||
if (write) {
|
||||
ret &= ((val & 0xffffffcf) | 0xffff0000);
|
||||
ret |= (val & 0x00000030);
|
||||
|
||||
machine_set_gpio(ret);
|
||||
} else
|
||||
ret = machine_get_gpio();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_endeavor_init(const machine_t *model)
|
||||
{
|
||||
@@ -712,7 +735,7 @@ machine_at_endeavor_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_endeavor_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -739,45 +762,7 @@ machine_at_endeavor_init(const machine_t *model)
|
||||
}
|
||||
|
||||
/* The Monaco and Atlantis share the same GPIO config */
|
||||
#define machine_at_atlantis_gpio_init machine_at_monaco_gpio_init
|
||||
|
||||
int
|
||||
machine_at_atlantis_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear_combined("roms/machines/atlantis/1007CL0_.BIO",
|
||||
"roms/machines/atlantis/1007CL0_.BI1",
|
||||
0x20000, 128);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_atlantis_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0);
|
||||
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
|
||||
if (gfxcard[0] == VID_INTERNAL)
|
||||
device_add(machine_get_vid_device(machine));
|
||||
|
||||
if (sound_card_current[0] == SOUND_INTERNAL)
|
||||
machine_snd = device_add(machine_get_snd_device(machine));
|
||||
|
||||
device_add(&i430fx_device);
|
||||
device_add(&piix_device);
|
||||
device_add_params(&pc87306_device, (void *) PCX730X_AMI);
|
||||
device_add(&intel_flash_bxt_ami_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
#define machine_at_monaco_gpio_init machine_at_atlantis_gpio_init
|
||||
|
||||
static const device_config_t monaco_config[] = {
|
||||
// clang-format off
|
||||
@@ -830,6 +815,22 @@ const device_t monaco_device = {
|
||||
.config = monaco_config
|
||||
};
|
||||
|
||||
uint32_t
|
||||
machine_at_monaco_gpio_handler(uint8_t write, uint32_t val)
|
||||
{
|
||||
uint32_t ret = machine_get_gpio_default();
|
||||
|
||||
if (write) {
|
||||
ret &= ((val & 0xffffffcf) | 0xffff0000);
|
||||
ret |= (val & 0x00000030);
|
||||
|
||||
machine_set_gpio(ret);
|
||||
} else
|
||||
ret = machine_get_gpio();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_monaco_init(const machine_t *model)
|
||||
{
|
||||
@@ -847,7 +848,7 @@ machine_at_monaco_init(const machine_t *model)
|
||||
ret = bios_load_linear_combined(fn, fn2, 0x20000, 128);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_monaco_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -999,7 +1000,7 @@ machine_at_pb640_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
machine_at_pb640_gpio_init();
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
@@ -1148,7 +1149,7 @@ machine_at_acerv35n_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1313,8 +1314,7 @@ machine_at_d943_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1356,7 +1356,7 @@ machine_at_gw2kma_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1456,7 +1456,7 @@ machine_at_5sbm2_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1485,7 +1485,7 @@ machine_at_amis727_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1578,7 +1578,7 @@ machine_at_ap5s_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1607,7 +1607,7 @@ machine_at_fm562_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
|
||||
@@ -1638,7 +1638,7 @@ machine_at_pc140_6260_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 4);
|
||||
@@ -1724,7 +1724,7 @@ machine_at_ms5124_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1 | FLAG_TRC_CONTROLS_CPURST);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -1754,7 +1754,7 @@ machine_at_zeoswildcat_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -72,6 +72,7 @@ machine_at_ap61_init(const machine_t *model)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* i450GX */
|
||||
int
|
||||
machine_at_p6rp4_init(const machine_t *model)
|
||||
{
|
||||
@@ -83,8 +84,7 @@ machine_at_p6rp4_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
device_add(&p6rp4_nvr_device);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x19, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -173,7 +173,7 @@ machine_at_ficpo6000_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x19, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -207,7 +207,7 @@ machine_at_acerv60n_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -496,7 +496,7 @@ machine_at_m6mi_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -50,7 +50,7 @@ machine_at_p5a_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -59,12 +59,12 @@ machine_at_p5a_init(const machine_t *model)
|
||||
pci_register_slot(0x0F, PCI_CARD_SOUTHBRIDGE_IDE, 1, 2, 3, 4);
|
||||
pci_register_slot(0x03, PCI_CARD_SOUTHBRIDGE_PMU, 1, 2, 3, 4);
|
||||
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE_USB, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x06, PCI_CARD_SOUND, 3, 4, 1, 2);
|
||||
|
||||
device_add(&ali1541_device);
|
||||
device_add(&ali1543c_device); /* +0 */
|
||||
@@ -86,7 +86,7 @@ machine_at_m579_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -118,7 +118,7 @@ machine_at_gwlucas_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -156,7 +156,7 @@ machine_at_5aa_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -243,7 +243,7 @@ machine_at_g5x_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000e0000, 131072, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -278,7 +278,7 @@ machine_at_ax59pro_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -364,7 +364,7 @@ machine_at_delhi3_init(const machine_t *model)
|
||||
ret = bios_load_linear(fn, 0x000c0000, 262144, 0);
|
||||
device_context_restore();
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -395,7 +395,7 @@ machine_at_mvp3_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -425,7 +425,7 @@ machine_at_ficva503a_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -461,7 +461,7 @@ machine_at_5emapro_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
@@ -496,7 +496,7 @@ machine_at_k6bv3p_a_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 1, 2, 3, 5);
|
||||
@@ -528,7 +528,7 @@ machine_at_5sg100_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init_ex(model, 2);
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
||||
@@ -191,7 +191,7 @@ machine_elt_init(const machine_t *model)
|
||||
* indicate the correct display type */
|
||||
device_add(&kbc_xt_device);
|
||||
|
||||
device_add(&elt_nvr_device);
|
||||
device_add_params(model->nvr_device, (void *) model->nvr_params);
|
||||
|
||||
io_sethandler(0x11b8, 1, sysstat_in, NULL, NULL, sysstat_out, NULL, NULL, cga);
|
||||
|
||||
|
||||
@@ -444,8 +444,6 @@ ps1_setup(int model)
|
||||
|
||||
device_add(&ps1snd_device);
|
||||
}
|
||||
|
||||
device_add(&ps_nvr_device);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -229,8 +229,6 @@ ps2_isa_setup(int model, int cpu_type)
|
||||
|
||||
mem_remap_top(384);
|
||||
|
||||
device_add(&ps_nvr_device);
|
||||
|
||||
device_add(&fdc_ps2_device);
|
||||
|
||||
/* Enable the builtin HDC. */
|
||||
@@ -264,18 +262,18 @@ machine_ps2_isa_p1_handler(void)
|
||||
|
||||
switch (mem_size / 1024) {
|
||||
case 0: /*256Kx2*/
|
||||
mem_p1 = 0xf0;
|
||||
mem_p1 = 0xb0;
|
||||
break;
|
||||
case 1: /*256Kx4*/
|
||||
mem_p1 = 0xe0;
|
||||
mem_p1 = 0xa0;
|
||||
break;
|
||||
case 2: /*1Mx2*/
|
||||
case 3:
|
||||
mem_p1 = 0xd0;
|
||||
mem_p1 = 0x90;
|
||||
break;
|
||||
case 4: /*1Mx4*/
|
||||
default:
|
||||
mem_p1 = 0xc0;
|
||||
mem_p1 = 0x80;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -1636,7 +1636,6 @@ machine_ps2_common_init(const machine_t *model)
|
||||
|
||||
dma16_init();
|
||||
ps2_dma_init();
|
||||
device_add(&ps_no_nmi_nvr_device);
|
||||
pic2_init();
|
||||
|
||||
int pit_type = ((pit_mode == -1 && is486) || pit_mode == 1) ? PIT_8254_FAST : PIT_8254;
|
||||
|
||||
@@ -2082,8 +2082,6 @@ machine_xt_tuliptc8_init(const machine_t *model)
|
||||
nmi_init();
|
||||
standalone_gameport_type = &gameport_200_device;
|
||||
|
||||
device_add(&amstrad_megapc_nvr_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -2134,8 +2132,6 @@ machine_xt_pc5086_init(const machine_t *model)
|
||||
|
||||
device_add(&kbc_xt_device);
|
||||
|
||||
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -207,7 +207,6 @@ machine_xt_xi8088_init(const machine_t *model)
|
||||
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
|
||||
device_add(&port_6x_xi8088_device);
|
||||
nmi_init();
|
||||
device_add(&ibmat_nvr_device);
|
||||
pic2_init();
|
||||
standalone_gameport_type = &gameport_200_device;
|
||||
device_add(&sst_flash_39sf010_device);
|
||||
|
||||
@@ -117,6 +117,9 @@ machine_init_ex(int m)
|
||||
cpu_fast_off_reset();
|
||||
|
||||
pci_flags = 0x00000000;
|
||||
|
||||
if (machines[m].nvr_device)
|
||||
device_add_params(machines[m].nvr_device, (void *) (uintptr_t) machines[m].nvr_params);
|
||||
}
|
||||
|
||||
is_pcjr = 0;
|
||||
|
||||
@@ -505,7 +505,7 @@ net_switch_init(const netcard_t *card, const uint8_t *mac_addr, void *priv, char
|
||||
|
||||
if (netcard->secret[0] != '\0') {
|
||||
uint8_t temp[32];
|
||||
net_switch_secret_hash((const uint8_t *)netcard->secret, (uint8_t *) temp);
|
||||
net_switch_secret_hash((const char *) netcard->secret, (uint8_t *) temp);
|
||||
memcpy(netswitch->secret_hash, temp, 32);
|
||||
netswitch->secret_enabled = 1;
|
||||
} else {
|
||||
|
||||
503
src/nvr_at.c
@@ -238,67 +238,59 @@
|
||||
#include <86box/nvr.h>
|
||||
|
||||
/* RTC registers and bit definitions. */
|
||||
#define RTC_SECONDS 0
|
||||
#define RTC_ALSECONDS 1
|
||||
#define AL_DONTCARE 0xc0 /* Alarm time is not set */
|
||||
#define RTC_MINUTES 2
|
||||
#define RTC_ALMINUTES 3
|
||||
#define RTC_HOURS 4
|
||||
#define RTC_AMPM 0x80 /* PM flag if 12h format in use */
|
||||
#define RTC_ALHOURS 5
|
||||
#define RTC_DOW 6
|
||||
#define RTC_DOM 7
|
||||
#define RTC_MONTH 8
|
||||
#define RTC_YEAR 9
|
||||
#define RTC_REGA 10
|
||||
#define REGA_UIP 0x80
|
||||
#define REGA_DV2 0x40
|
||||
#define REGA_DV1 0x20
|
||||
#define REGA_DV0 0x10
|
||||
#define REGA_DV 0x70
|
||||
#define REGA_RS3 0x08
|
||||
#define REGA_RS2 0x04
|
||||
#define REGA_RS1 0x02
|
||||
#define REGA_RS0 0x01
|
||||
#define REGA_RS 0x0f
|
||||
#define RTC_REGB 11
|
||||
#define REGB_SET 0x80
|
||||
#define REGB_PIE 0x40
|
||||
#define REGB_AIE 0x20
|
||||
#define REGB_UIE 0x10
|
||||
#define REGB_SQWE 0x08
|
||||
#define REGB_DM 0x04
|
||||
#define REGB_2412 0x02
|
||||
#define REGB_DSE 0x01
|
||||
#define RTC_REGC 12
|
||||
#define REGC_IRQF 0x80
|
||||
#define REGC_PF 0x40
|
||||
#define REGC_AF 0x20
|
||||
#define REGC_UF 0x10
|
||||
#define RTC_REGD 13
|
||||
#define REGD_VRT 0x80
|
||||
#define RTC_CENTURY_AT 0x32 /* century register for AT etc */
|
||||
#define RTC_CENTURY_PS 0x37 /* century register for PS/1 PS/2 */
|
||||
#define RTC_CENTURY_ELT 0x1A /* century register for Epson Equity LT */
|
||||
#define RTC_ALDAY 0x7D /* VIA VT82C586B - alarm day */
|
||||
#define RTC_ALMONTH 0x7E /* VIA VT82C586B - alarm month */
|
||||
#define RTC_CENTURY_VIA 0x7F /* century register for VIA VT82C586B */
|
||||
#define RTC_SECONDS 0
|
||||
#define RTC_ALSECONDS 1
|
||||
/* Alarm time is not set. */
|
||||
#define AL_DONTCARE 0xc0
|
||||
#define RTC_MINUTES 2
|
||||
#define RTC_ALMINUTES 3
|
||||
#define RTC_HOURS 4
|
||||
/* PM flag if 12h format in use. */
|
||||
#define RTC_AMPM 0x80
|
||||
#define RTC_ALHOURS 5
|
||||
#define RTC_DOW 6
|
||||
#define RTC_DOM 7
|
||||
#define RTC_MONTH 8
|
||||
#define RTC_YEAR 9
|
||||
#define RTC_REGA 10
|
||||
#define REGA_UIP 0x80
|
||||
#define REGA_DV2 0x40
|
||||
#define REGA_DV1 0x20
|
||||
#define REGA_DV0 0x10
|
||||
#define REGA_DV 0x70
|
||||
#define REGA_RS3 0x08
|
||||
#define REGA_RS2 0x04
|
||||
#define REGA_RS1 0x02
|
||||
#define REGA_RS0 0x01
|
||||
#define REGA_RS 0x0f
|
||||
#define RTC_REGB 11
|
||||
#define REGB_SET 0x80
|
||||
#define REGB_PIE 0x40
|
||||
#define REGB_AIE 0x20
|
||||
#define REGB_UIE 0x10
|
||||
#define REGB_SQWE 0x08
|
||||
#define REGB_DM 0x04
|
||||
#define REGB_2412 0x02
|
||||
#define REGB_DSE 0x01
|
||||
#define RTC_REGC 12
|
||||
#define REGC_IRQF 0x80
|
||||
#define REGC_PF 0x40
|
||||
#define REGC_AF 0x20
|
||||
#define REGC_UF 0x10
|
||||
#define RTC_REGD 13
|
||||
#define REGD_VRT 0x80
|
||||
/* VIA VT82C586B - alarm day. */
|
||||
#define RTC_ALDAY 0x7d
|
||||
/* VIA VT82C586B - alarm month. */
|
||||
#define RTC_ALMONTH 0x7e
|
||||
|
||||
#define RTC_ALDAY_SIS 0x7E /* Day of Month Alarm for SiS */
|
||||
#define RTC_ALMONT_SIS 0x7F /* Month Alarm for SiS */
|
||||
/* Day of Month Alarm for SiS. */
|
||||
#define RTC_ALDAY_SIS 0x7e
|
||||
/* Month Alarm for SiS. */
|
||||
#define RTC_ALMONTH_SIS 0x7f
|
||||
|
||||
#define RTC_REGS 14 /* number of registers */
|
||||
|
||||
#define FLAG_NO_NMI 0x001
|
||||
#define FLAG_AMI_1992_HACK 0x002
|
||||
#define FLAG_AMI_1994_HACK 0x004
|
||||
#define FLAG_AMI_1995_HACK 0x008
|
||||
#define FLAG_AMI_1999_HACK 0x010
|
||||
#define FLAG_AMI_1999J_HACK 0x020
|
||||
#define FLAG_P6RP4_HACK 0x040
|
||||
#define FLAG_PIIX4 0x080
|
||||
#define FLAG_MULTI_BANK 0x100
|
||||
#define FLAG_MARTIN_HACK 0x200
|
||||
/* Number of registers. */
|
||||
#define RTC_REGS 14
|
||||
|
||||
typedef struct local_t {
|
||||
int8_t stat;
|
||||
@@ -319,6 +311,7 @@ typedef struct local_t {
|
||||
int16_t state;
|
||||
|
||||
uint16_t flags;
|
||||
uint16_t default_addr;
|
||||
|
||||
uint16_t addr[8];
|
||||
|
||||
@@ -482,7 +475,7 @@ timer_update(void *priv)
|
||||
/* Check for any alarms we need to handle. */
|
||||
if (check_alarm(nvr, RTC_SECONDS) && check_alarm(nvr, RTC_MINUTES) && check_alarm(nvr, RTC_HOURS) &&
|
||||
check_alarm_via(nvr, RTC_DOM, RTC_ALDAY) && check_alarm_via(nvr, RTC_MONTH, RTC_ALMONTH) /* &&
|
||||
check_alarm_via(nvr, RTC_DOM, RTC_ALDAY_SIS) && check_alarm_via(nvr, RTC_MONTH, RTC_ALMONT_SIS) */) {
|
||||
check_alarm_via(nvr, RTC_DOM, RTC_ALDAY_SIS) && check_alarm_via(nvr, RTC_MONTH, RTC_ALMONTH_SIS) */) {
|
||||
nvr->regs[RTC_REGC] |= REGC_AF;
|
||||
timer_update_irq(nvr);
|
||||
}
|
||||
@@ -1148,108 +1141,34 @@ nvr_at_init(const device_t *info)
|
||||
|
||||
local = (local_t *) malloc(sizeof(local_t));
|
||||
memset(local, 0x00, sizeof(local_t));
|
||||
nvr->data = local;
|
||||
|
||||
nvr->data = local;
|
||||
|
||||
/* This is machine specific. */
|
||||
nvr->size = machines[machine].nvrmask + 1;
|
||||
local->lock = (uint8_t *) malloc(nvr->size);
|
||||
nvr->size = (info->local & FLAG_FIXED_SIZE) ? 128 :
|
||||
(machines[machine].nvrmask + 1);
|
||||
local->lock = (uint8_t *) malloc(nvr->size);
|
||||
memset(local->lock, 0x00, nvr->size);
|
||||
local->def = 0xff /*0x00*/;
|
||||
local->flags = 0x00;
|
||||
switch (info->local & 0x0f) {
|
||||
case 0: /* standard AT, no century register */
|
||||
if (info->local == 32) {
|
||||
local->flags |= FLAG_P6RP4_HACK;
|
||||
nvr->irq = 8;
|
||||
local->cent = RTC_CENTURY_AT;
|
||||
} else {
|
||||
nvr->irq = 8;
|
||||
local->cent = 0xff;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1: /* standard AT */
|
||||
case 5: /* AMI WinBIOS 1994 */
|
||||
case 6: /* AMI BIOS 1995 */
|
||||
if ((info->local & 0x1f) == 0x11) {
|
||||
local->flags |= FLAG_PIIX4;
|
||||
local->def = 0x00;
|
||||
} else {
|
||||
local->def = 0x00;
|
||||
if ((info->local & 0x1f) == 0x15)
|
||||
local->flags |= FLAG_AMI_1994_HACK;
|
||||
else if ((info->local & 0x1f) == 0x16)
|
||||
local->flags |= FLAG_AMI_1995_HACK;
|
||||
else
|
||||
local->def = 0xff;
|
||||
}
|
||||
nvr->irq = 8;
|
||||
local->cent = RTC_CENTURY_AT;
|
||||
break;
|
||||
local->flags = info->local & 0xffff;
|
||||
local->cent = (info->local >> 16) & 0xff;
|
||||
local->default_addr = (info->local >> 24) & 0xffff;
|
||||
local->def = (local->flags & FLAG_ZERO_DEFAULT) ? 0x00 : 0xff;
|
||||
nvr->irq = (info->local >> 40) & 0xff;
|
||||
|
||||
case 2: /* PS/1 or PS/2 */
|
||||
nvr->irq = 8;
|
||||
local->cent = RTC_CENTURY_PS;
|
||||
local->def = 0x00;
|
||||
if (info->local & 0x10)
|
||||
local->flags |= FLAG_NO_NMI;
|
||||
break;
|
||||
if (nvr->irq == 0xff)
|
||||
nvr->irq = -1;
|
||||
else if (nvr->irq == 0xfe)
|
||||
nvr->irq = device_get_config_int("irq");
|
||||
|
||||
case 3: /* Amstrad PC's */
|
||||
nvr->irq = 1;
|
||||
local->cent = RTC_CENTURY_AT;
|
||||
local->def = 0xff;
|
||||
if (info->local & 0x10)
|
||||
local->flags |= FLAG_NO_NMI;
|
||||
break;
|
||||
if (local->default_addr == 0xfffe)
|
||||
local->default_addr = device_get_config_hex16("base");
|
||||
|
||||
case 4: /* IBM AT */
|
||||
if (info->local & 0x10) {
|
||||
local->def = 0x00;
|
||||
local->flags |= FLAG_AMI_1992_HACK;
|
||||
} else if ((info->local == 36) || (info->local == 68)) {
|
||||
local->def = 0x00;
|
||||
if (info->local == 68)
|
||||
local->flags |= FLAG_MARTIN_HACK;
|
||||
} else
|
||||
local->def = 0xff;
|
||||
nvr->irq = 8;
|
||||
local->cent = RTC_CENTURY_AT;
|
||||
break;
|
||||
if (nvr->is_new && (machines[machine].init == machine_at_spitfire_init))
|
||||
local->flags |= FLAG_SPITFIRE_HACK;
|
||||
|
||||
case 7: /* VIA VT82C586B */
|
||||
nvr->irq = 8;
|
||||
local->cent = RTC_CENTURY_VIA;
|
||||
break;
|
||||
case 8: /* Epson Equity LT */
|
||||
nvr->irq = -1;
|
||||
local->cent = RTC_CENTURY_ELT;
|
||||
break;
|
||||
case 9: /* Intel PIIX4 + AMI 1999 hack */
|
||||
local->flags |= (FLAG_PIIX4 | FLAG_AMI_1999_HACK);
|
||||
local->def = 0x00;
|
||||
nvr->irq = 8;
|
||||
local->cent = RTC_CENTURY_AT;
|
||||
break;
|
||||
case 0x0a: /* Intel PIIX4 + AMI 1999J hack */
|
||||
local->flags |= (FLAG_PIIX4 | FLAG_AMI_1999J_HACK);
|
||||
local->def = 0x00;
|
||||
nvr->irq = 8;
|
||||
local->cent = RTC_CENTURY_AT;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (info->local & 0x20)
|
||||
local->def = 0x00;
|
||||
|
||||
if (machines[machine].init == machine_at_monsoon_init)
|
||||
local->def = 0xff;
|
||||
|
||||
if (info->local & 0x40)
|
||||
local->flags |= FLAG_MULTI_BANK;
|
||||
if (nvr->is_new && (machines[machine].init == machine_at_bx6_init))
|
||||
local->flags |= FLAG_BX6_HACK;
|
||||
|
||||
local->read_addr = 1;
|
||||
|
||||
@@ -1276,27 +1195,21 @@ nvr_at_init(const device_t *info)
|
||||
timer_load_count(nvr);
|
||||
|
||||
/* Set up the I/O handler for this device. */
|
||||
if (info->local == 8) {
|
||||
io_sethandler(0x11b4, 2,
|
||||
io_sethandler(local->default_addr, 2,
|
||||
nvr_read, NULL, NULL, nvr_write, NULL, NULL, nvr);
|
||||
|
||||
if (local->flags & FLAG_MULTI_ADDRESS)
|
||||
io_sethandler(local->default_addr + 2, 2,
|
||||
nvr_read, NULL, NULL, nvr_write, NULL, NULL, nvr);
|
||||
} else {
|
||||
io_sethandler(0x0070, 2,
|
||||
nvr_read, NULL, NULL, nvr_write, NULL, NULL, nvr);
|
||||
}
|
||||
if (((info->local & 0x1f) == 0x11) || ((info->local & 0x1f) == 0x17) ||
|
||||
((info->local & 0x1f) == 0x18)) {
|
||||
io_sethandler(0x0072, 2,
|
||||
nvr_read, NULL, NULL, nvr_write, NULL, NULL, nvr);
|
||||
}
|
||||
|
||||
nvr_at_inited = 1;
|
||||
}
|
||||
|
||||
/* This is a hack but it is required for the machine to boot properly, no idea why. */
|
||||
if (nvr->is_new && (machines[machine].init == machine_at_spitfire_init))
|
||||
if (nvr->is_new && (local->flags & FLAG_SPITFIRE_HACK))
|
||||
nvr->regs[0x33] = nvr->regs[0x34] = 0xff;
|
||||
|
||||
if (nvr->is_new && (machines[machine].init == machine_at_bx6_init))
|
||||
if (nvr->is_new && (local->flags & FLAG_BX6_HACK))
|
||||
nvr->regs[0x39] = 0x09;
|
||||
|
||||
return nvr;
|
||||
@@ -1328,8 +1241,8 @@ nvr_at_close(void *priv)
|
||||
nvr_at_inited = 0;
|
||||
}
|
||||
|
||||
const device_t at_nvr_old_device = {
|
||||
.name = "PC/AT NVRAM (No century)",
|
||||
const device_t nvr_at_device = {
|
||||
.name = "PC/AT NVRAM",
|
||||
.internal_name = "at_nvr_old",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0,
|
||||
@@ -1341,255 +1254,3 @@ const device_t at_nvr_old_device = {
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t at_nvr_device = {
|
||||
.name = "PC/AT NVRAM",
|
||||
.internal_name = "at_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 1,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t at_mb_nvr_device = {
|
||||
.name = "PC/AT NVRAM",
|
||||
.internal_name = "at_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x40 | 0x20 | 1,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ps_nvr_device = {
|
||||
.name = "PS/1 or PS/2 NVRAM",
|
||||
.internal_name = "ps_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 2,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t amstrad_nvr_device = {
|
||||
.name = "Amstrad NVRAM",
|
||||
.internal_name = "amstrad_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 3,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ibmat_nvr_device = {
|
||||
.name = "IBM AT NVRAM",
|
||||
.internal_name = "ibmat_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 4,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t piix4_nvr_device = {
|
||||
.name = "Intel PIIX4 PC/AT NVRAM",
|
||||
.internal_name = "piix4_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 1,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ps_no_nmi_nvr_device = {
|
||||
.name = "PS/1 or PS/2 NVRAM (No NMI)",
|
||||
.internal_name = "ps1_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 2,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t amstrad_no_nmi_nvr_device = {
|
||||
.name = "Amstrad NVRAM (No NMI)",
|
||||
.internal_name = "amstrad_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 3,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ami_1992_nvr_device = {
|
||||
.name = "AMI Color 1992 PC/AT NVRAM",
|
||||
.internal_name = "ami_1992_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 4,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ami_1994_nvr_device = {
|
||||
.name = "AMI WinBIOS 1994 PC/AT NVRAM",
|
||||
.internal_name = "ami_1994_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 5,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ami_1995_nvr_device = {
|
||||
.name = "AMI WinBIOS 1995 PC/AT NVRAM",
|
||||
.internal_name = "ami_1995_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 6,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t via_nvr_device = {
|
||||
.name = "VIA PC/AT NVRAM",
|
||||
.internal_name = "via_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 7,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t piix4_ami_1995_nvr_device = {
|
||||
.name = "Intel PIIX4 AMI WinBIOS 1995 PC/AT NVRAM",
|
||||
.internal_name = "piix4_ami_1995_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 9,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t piix4_ami_1995j_nvr_device = {
|
||||
.name = "Intel PIIX4 AMI WinBIOS 1995J PC/AT NVRAM",
|
||||
.internal_name = "piix4_ami_1995j_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 0x10 | 10,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t p6rp4_nvr_device = {
|
||||
.name = "ASUS P/I-P6RP4 PC/AT NVRAM",
|
||||
.internal_name = "p6rp4_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 32,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t amstrad_megapc_nvr_device = {
|
||||
.name = "Amstrad MegaPC NVRAM",
|
||||
.internal_name = "amstrad_megapc_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 36,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t martin_nvr_device = {
|
||||
.name = "Zeos Martin NVRAM",
|
||||
.internal_name = "martin_nvr",
|
||||
.flags = DEVICE_ISA16,
|
||||
.local = 68,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t elt_nvr_device = {
|
||||
.name = "Epson Equity LT NVRAM",
|
||||
.internal_name = "elt_nvr",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 8,
|
||||
.init = nvr_at_init,
|
||||
.close = nvr_at_close,
|
||||
.reset = nvr_at_reset,
|
||||
.available = NULL,
|
||||
.speed_changed = nvr_at_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -348,8 +348,9 @@ endif()
|
||||
|
||||
if(WIN32)
|
||||
target_sources(plat PRIVATE win_cdrom_ioctl.c)
|
||||
elseif(UNIX AND NOT APPLE)
|
||||
target_sources(plat PRIVATE ../unix/linux_cdrom_ioctl.c)
|
||||
else()
|
||||
# Replace with proper *nix and mac handler files once they are done.
|
||||
target_sources(plat PRIVATE dummy_cdrom_ioctl.c)
|
||||
endif()
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
BIN
src/qt/icons/zip.ico
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
src/qt/icons/zip_image.ico
Normal file
|
After Width: | Height: | Size: 9.4 KiB |