mirror of
https://github.com/86Box/86Box.git
synced 2026-02-24 02:18:20 -07:00
Merge remote-tracking branch 'origin/master' into cdrom_changes
This commit is contained in:
@@ -27,14 +27,13 @@
|
||||
#include <wchar.h>
|
||||
#define HAVE_STDARG_H
|
||||
#include <86box/86box.h>
|
||||
#include "cpu.h"
|
||||
#include <86box/device.h>
|
||||
#include <86box/io.h>
|
||||
#include <86box/mem.h>
|
||||
#include <86box/plat_unused.h>
|
||||
#include <86box/chipset.h>
|
||||
|
||||
#define NEAT_DEBUG 0
|
||||
|
||||
#define EMS_MAXPAGE 4
|
||||
#define EMS_PGSIZE 16384
|
||||
#define EMS_PGMASK 16383
|
||||
@@ -263,13 +262,71 @@ neat_log(const char *fmt, ...)
|
||||
# define neat_log(fmt, ...)
|
||||
#endif
|
||||
|
||||
static uint8_t
|
||||
neat_read_ram(uint32_t addr, void *priv)
|
||||
{
|
||||
neat_t *dev = (neat_t *) priv;
|
||||
|
||||
if (dev->regs[REG_RB7] & RB7_EMSEN)
|
||||
addr += (dev->ems_size << 10);
|
||||
|
||||
if (cpu_use_exec)
|
||||
addreadlookup(mem_logical_addr, addr);
|
||||
|
||||
return ram[addr];
|
||||
}
|
||||
|
||||
static uint16_t
|
||||
neat_read_ramw(uint32_t addr, void *priv)
|
||||
{
|
||||
neat_t *dev = (neat_t *) priv;
|
||||
|
||||
if (dev->regs[REG_RB7] & RB7_EMSEN)
|
||||
addr += (dev->ems_size << 10);
|
||||
|
||||
if (cpu_use_exec)
|
||||
addreadlookup(mem_logical_addr, addr);
|
||||
|
||||
return *(uint16_t *) &ram[addr];
|
||||
}
|
||||
|
||||
static void
|
||||
neat_write_ram(uint32_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
neat_t *dev = (neat_t *) priv;
|
||||
|
||||
if (dev->regs[REG_RB7] & RB7_EMSEN)
|
||||
addr += (dev->ems_size << 10);
|
||||
|
||||
if (cpu_use_exec) {
|
||||
addwritelookup(mem_logical_addr, addr);
|
||||
mem_write_ramb_page(addr, val, &pages[addr >> 12]);
|
||||
} else
|
||||
ram[addr] = val;
|
||||
}
|
||||
|
||||
static void
|
||||
neat_write_ramw(uint32_t addr, uint16_t val, void *priv)
|
||||
{
|
||||
neat_t *dev = (neat_t *) priv;
|
||||
|
||||
if (dev->regs[REG_RB7] & RB7_EMSEN)
|
||||
addr += (dev->ems_size << 10);
|
||||
|
||||
if (cpu_use_exec) {
|
||||
addwritelookup(mem_logical_addr, addr);
|
||||
mem_write_ramw_page(addr, val, &pages[addr >> 12]);
|
||||
} else
|
||||
*(uint16_t *) &ram[addr] = val;
|
||||
}
|
||||
|
||||
/* Read one byte from paged RAM. */
|
||||
static uint8_t
|
||||
ems_readb(uint32_t addr, void *priv)
|
||||
{
|
||||
ram_page_t *dev = (ram_page_t *) priv;
|
||||
uint8_t ret = 0xff;
|
||||
#ifdef ENABLE_NEAT_LOG
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
|
||||
uint32_t old = addr;
|
||||
#endif
|
||||
|
||||
@@ -279,7 +336,9 @@ ems_readb(uint32_t addr, void *priv)
|
||||
if (addr < (mem_size << 10))
|
||||
ret = *(uint8_t *) &(ram[addr]);
|
||||
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
|
||||
neat_log("[R08] %08X -> %08X (%08X): ret = %02X\n", old, addr, (mem_size << 10), ret);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -289,7 +348,7 @@ ems_readw(uint32_t addr, void *priv)
|
||||
{
|
||||
ram_page_t *dev = (ram_page_t *) priv;
|
||||
uint16_t ret = 0xffff;
|
||||
#ifdef ENABLE_NEAT_LOG
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
|
||||
uint32_t old = addr;
|
||||
#endif
|
||||
|
||||
@@ -299,7 +358,9 @@ ems_readw(uint32_t addr, void *priv)
|
||||
if (addr < (mem_size << 10))
|
||||
ret = *(uint16_t *) &(ram[addr]);
|
||||
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
|
||||
neat_log("[R16] %08X -> %08X (%08X): ret = %04X\n", old, addr, (mem_size << 10), ret);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -308,13 +369,15 @@ static void
|
||||
ems_writeb(uint32_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
ram_page_t *dev = (ram_page_t *) priv;
|
||||
#ifdef ENABLE_NEAT_LOG
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
|
||||
uint32_t old = addr;
|
||||
#endif
|
||||
|
||||
/* Write the data. */
|
||||
addr = addr - dev->virt_base + dev->phys_base;
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
|
||||
neat_log("[W08] %08X -> %08X (%08X): val = %02X\n", old, addr, (mem_size << 10), val);
|
||||
#endif
|
||||
|
||||
if (addr < (mem_size << 10))
|
||||
*(uint8_t *) &(ram[addr]) = val;
|
||||
@@ -325,13 +388,15 @@ static void
|
||||
ems_writew(uint32_t addr, uint16_t val, void *priv)
|
||||
{
|
||||
ram_page_t *dev = (ram_page_t *) priv;
|
||||
#ifdef ENABLE_NEAT_LOG
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
|
||||
uint32_t old = addr;
|
||||
#endif
|
||||
|
||||
/* Write the data. */
|
||||
addr = addr - dev->virt_base + dev->phys_base;
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 3)
|
||||
neat_log("[W16] %08X -> %08X (%08X): val = %04X\n", old, addr, (mem_size << 10), val);
|
||||
#endif
|
||||
|
||||
if (addr < (mem_size << 10))
|
||||
*(uint16_t *) &(ram[addr]) = val;
|
||||
@@ -446,7 +511,7 @@ ems_recalc(neat_t *dev, ram_page_t *ems)
|
||||
|
||||
neat_mem_update_state(dev, ems->virt_base, EMS_PGSIZE, MEM_FLAG_EMS, MEM_FMASK_EMS);
|
||||
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT EMS: page %d set to %08lx, %sabled)\n",
|
||||
ems->page, ems->addr - ram, ems->enabled ? "en" : "dis");
|
||||
#endif
|
||||
@@ -469,7 +534,7 @@ ems_write(uint16_t port, uint8_t val, void *priv)
|
||||
int8_t new_enabled;
|
||||
uint32_t new_phys_base;
|
||||
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: ems_write(%04x, %02x)\n", port, val);
|
||||
#endif
|
||||
|
||||
@@ -518,6 +583,7 @@ ems_read(uint16_t port, void *priv)
|
||||
|
||||
switch (port & 0x000f) {
|
||||
case 0x0008: /* page number register */
|
||||
case 0x0009:
|
||||
ret = (dev->ems[vpage].phys_base / EMS_PGSIZE) & 0x7f;
|
||||
if (dev->ems[vpage].enabled)
|
||||
ret |= 0x80;
|
||||
@@ -528,7 +594,7 @@ ems_read(uint16_t port, void *priv)
|
||||
|
||||
neat_log("Port: %04X, ret: %02X\n", port, ret);
|
||||
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: ems_read(%04x) = %02x\n", port, ret);
|
||||
#endif
|
||||
|
||||
@@ -603,9 +669,11 @@ remap_update(neat_t *dev, uint8_t val)
|
||||
else
|
||||
mem_mapping_set_addr(&ram_low_mapping, 0x00000000, dev->remap_base << 10);
|
||||
|
||||
if (dev->remap_base > 1024)
|
||||
if (dev->remap_base > 1024) {
|
||||
mem_mapping_set_addr(&ram_high_mapping, 0x00100000, (dev->remap_base << 10) - 0x00100000);
|
||||
else
|
||||
mem_mapping_set_exec(&ram_high_mapping, &(ram[(val & RB7_EMSEN) ? 0x00100000 :
|
||||
(0x00100000 + (dev->ems_size << 10))]));
|
||||
} else
|
||||
mem_mapping_disable(&ram_high_mapping);
|
||||
|
||||
if (val & RB7_UMAREL) {
|
||||
@@ -625,7 +693,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
uint8_t *reg;
|
||||
int i;
|
||||
|
||||
#if NEAT_DEBUG > 2
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: write(%04x, %02x)\n", port, val);
|
||||
#endif
|
||||
|
||||
@@ -643,7 +711,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
*reg = (*reg & ~RA0_MASK) | val | (RA0_REV_ID << RA0_REV_SH);
|
||||
if ((xval & 0x20) && (val & 0x20))
|
||||
outb(0x64, 0xfe);
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RA0=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -651,7 +719,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
case REG_RA1:
|
||||
val &= RA1_MASK;
|
||||
*reg = (*reg & ~RA1_MASK) | val;
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RA1=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -659,7 +727,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
case REG_RA2:
|
||||
val &= RA2_MASK;
|
||||
*reg = (*reg & ~RA2_MASK) | val;
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RA2=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -667,7 +735,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
case REG_RB0:
|
||||
val &= RB0_MASK;
|
||||
*reg = (*reg & ~RB0_MASK) | val | (RB0_REV_ID << RB0_REV_SH);
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB0=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -676,7 +744,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
val &= RB1_MASK;
|
||||
*reg = (*reg & ~RB1_MASK) | val;
|
||||
shadow_recalc(dev);
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB1=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -688,7 +756,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
neat_mem_update_state(dev, 0x00080000, 0x00020000, MEM_FLAG_READ | MEM_FLAG_WRITE, MEM_FMASK_SHADOW);
|
||||
else
|
||||
neat_mem_update_state(dev, 0x00080000, 0x00020000, 0x00, MEM_FMASK_SHADOW);
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB2=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -697,7 +765,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
val &= RB3_MASK;
|
||||
*reg = (*reg & ~RB3_MASK) | val;
|
||||
shadow_recalc(dev);
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB3=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -706,7 +774,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
val &= RB4_MASK;
|
||||
*reg = (*reg & ~RB4_MASK) | val;
|
||||
shadow_recalc(dev);
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB4=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -715,7 +783,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
val &= RB5_MASK;
|
||||
*reg = (*reg & ~RB5_MASK) | val;
|
||||
shadow_recalc(dev);
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB5=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -723,7 +791,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
case REG_RB6:
|
||||
val &= RB6_MASK;
|
||||
*reg = (*reg & ~RB6_MASK) | val;
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB6=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -742,7 +810,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
if ((xval & RB7_EMSEN) && (val & RB7_EMSEN))
|
||||
ems_set_handlers(dev);
|
||||
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB7=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -750,7 +818,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
case REG_RB8:
|
||||
val &= RB8_MASK;
|
||||
*reg = (*reg & ~RB8_MASK) | val;
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB8=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
break;
|
||||
@@ -758,7 +826,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
case REG_RB9:
|
||||
val &= RB9_MASK;
|
||||
*reg = (*reg & ~RB9_MASK) | val;
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB9=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
|
||||
@@ -781,7 +849,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
case REG_RB10:
|
||||
val &= RB10_MASK;
|
||||
*reg = (*reg & ~RB10_MASK) | val;
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB10=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
|
||||
@@ -816,7 +884,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
case REG_RB12:
|
||||
val &= RB12_MASK;
|
||||
*reg = (*reg & ~RB12_MASK) | val;
|
||||
#if NEAT_DEBUG > 1
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: RB12=%02x(%02x)\n", val, *reg);
|
||||
#endif
|
||||
i = (val & RB12_EMSLEN) >> RB12_EMSLEN_SH;
|
||||
@@ -845,7 +913,7 @@ neat_write(uint16_t port, uint8_t val, void *priv)
|
||||
dev->ems_size);
|
||||
}
|
||||
|
||||
mem_a20_key = val & RB12_GA20;
|
||||
mem_a20_key = !(val & RB12_GA20);
|
||||
mem_a20_recalc();
|
||||
break;
|
||||
|
||||
@@ -883,7 +951,7 @@ neat_read(uint16_t port, void *priv)
|
||||
break;
|
||||
}
|
||||
|
||||
#if NEAT_DEBUG > 2
|
||||
#if defined(ENABLE_NEAT_LOG) && (ENABLE_NEAT_LOG == 2)
|
||||
neat_log("NEAT: read(%04x) = %02x\n", port, ret);
|
||||
#endif
|
||||
|
||||
@@ -908,6 +976,12 @@ neat_init(UNUSED(const device_t *info))
|
||||
/* Create an instance. */
|
||||
dev = (neat_t *) calloc(1, sizeof(neat_t));
|
||||
|
||||
if (mem_size > 1024) {
|
||||
mem_mapping_set_handler(&ram_high_mapping, neat_read_ram, neat_read_ramw, NULL,
|
||||
neat_write_ram, neat_write_ramw, NULL);
|
||||
mem_mapping_set_p(&ram_high_mapping, dev);
|
||||
}
|
||||
|
||||
/* Get configured I/O address. */
|
||||
j = (dev->regs[REG_RB9] & RB9_BASE) >> RB9_BASE_SH;
|
||||
dev->ems_base = 0x0208 + (0x10 * j);
|
||||
|
||||
@@ -50,7 +50,9 @@ enum {
|
||||
STRING_HW_NOT_AVAILABLE_DEVICE, /* "Device \"%hs\" is not available..." */
|
||||
STRING_MONITOR_SLEEP, /* "Monitor in sleep mode" */
|
||||
STRING_GHOSTPCL_ERROR_TITLE, /* "Unable to initialize GhostPCL" */
|
||||
STRING_GHOSTPCL_ERROR_DESC /* "gpcl6dll32.dll/gpcl6dll64.dll/libgpcl6 is required..." */
|
||||
STRING_GHOSTPCL_ERROR_DESC, /* "gpcl6dll32.dll/gpcl6dll64.dll/libgpcl6 is required..." */
|
||||
STRING_ESCP_ERROR_TITLE, /* "Unable to find Dot-Matrix fonts" */
|
||||
STRING_ESCP_ERROR_DESC /* "TrueType fonts in the \"roms/printer/fonts\" directory..." */
|
||||
};
|
||||
|
||||
/* The Win32 API uses _wcsicmp. */
|
||||
|
||||
@@ -52,6 +52,7 @@ extern uint8_t rom_read(uint32_t addr, void *priv);
|
||||
extern uint16_t rom_readw(uint32_t addr, void *priv);
|
||||
extern uint32_t rom_readl(uint32_t addr, void *priv);
|
||||
|
||||
extern void rom_get_full_path(char *dest, const char *fn);
|
||||
extern FILE *rom_fopen(const char *fn, char *mode);
|
||||
extern int rom_getfile(char *fn, char *s, int size);
|
||||
extern int rom_present(const char *fn);
|
||||
|
||||
104
src/io.c
104
src/io.c
@@ -30,6 +30,7 @@
|
||||
#include "cpu.h"
|
||||
#include <86box/m_amstrad.h>
|
||||
#include <86box/pci.h>
|
||||
#include <86box/mem.h>
|
||||
|
||||
#define NPORTS 65536 /* PC/AT supports 64K ports */
|
||||
|
||||
@@ -59,6 +60,7 @@ int initialized = 0;
|
||||
io_t *io[NPORTS];
|
||||
io_t *io_last[NPORTS];
|
||||
|
||||
// #define ENABLE_IO_LOG 1
|
||||
#ifdef ENABLE_IO_LOG
|
||||
int io_do_log = ENABLE_IO_LOG;
|
||||
|
||||
@@ -69,7 +71,8 @@ io_log(const char *fmt, ...)
|
||||
|
||||
if (io_do_log) {
|
||||
va_start(ap, fmt);
|
||||
pclog_ex(fmt, ap);
|
||||
if (CS == 0xf000)
|
||||
pclog_ex(fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
}
|
||||
@@ -77,6 +80,18 @@ io_log(const char *fmt, ...)
|
||||
# define io_log(fmt, ...)
|
||||
#endif
|
||||
|
||||
uint16_t last_port_read = 0xffff;
|
||||
|
||||
static void
|
||||
print_lpr(void)
|
||||
{
|
||||
FILE *f = fopen("d:\\86boxnew\\ndiags.dmp", "wb");
|
||||
fwrite(&(ram[0x24c30]), 1, 65536, f);
|
||||
fclose(f);
|
||||
|
||||
pclog("last_port_read = %04X\n", last_port_read);
|
||||
}
|
||||
|
||||
void
|
||||
io_init(void)
|
||||
{
|
||||
@@ -106,6 +121,8 @@ io_init(void)
|
||||
/* io[c] should be NULL. */
|
||||
io[c] = io_last[c] = NULL;
|
||||
}
|
||||
|
||||
atexit(print_lpr);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -333,6 +350,11 @@ io_debug_check_addr(uint16_t addr)
|
||||
}
|
||||
#endif
|
||||
|
||||
#include <86box/random.h>
|
||||
|
||||
uint8_t post_code = 0xc6;
|
||||
uint8_t action = 0x00;
|
||||
|
||||
uint8_t
|
||||
inb(uint16_t port)
|
||||
{
|
||||
@@ -393,7 +415,33 @@ inb(uint16_t port)
|
||||
ret = 0xfe;
|
||||
#endif
|
||||
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) in b(%04X) = %02X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
|
||||
#if 0
|
||||
if (port == 0x5f7)
|
||||
ret = 0xaf;
|
||||
#endif
|
||||
|
||||
if (port == 0x379)
|
||||
ret &= 0xf8;
|
||||
|
||||
// io_log("[%04X:%08X] (%i, %i, %04i) in b(%04X) = %02X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
|
||||
|
||||
// if (CS == 0xc000)
|
||||
// pclog("[%04X:%08X] [R] %04X = %02X\n", CS, cpu_state.pc, port, ret);
|
||||
|
||||
// if (port == 0x62)
|
||||
// ret = 0xf2;
|
||||
|
||||
// if (port == 0x62)
|
||||
// ret |= random_generate() & 0x80;
|
||||
|
||||
// if ((port >= 0x60) && (port <= 0x66))
|
||||
// pclog("[%04X:%04X] [R] %04X = %02X\n", CS, cpu_state.pc, port, ret);
|
||||
|
||||
if ((port != 0x0061) && (port != 0x0177) && (port != 0x01f7) && (port != 0x0376) && (port != 0x03c7) && (port != 0x03c8) && (port != 0x03c9) && (port != 0x03f6) && (port != 0x03da)) {
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) in b(%04X) = %02X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
|
||||
}
|
||||
|
||||
last_port_read = port;
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -447,7 +495,20 @@ outb(uint16_t port, uint8_t val)
|
||||
#endif
|
||||
}
|
||||
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) outb(%04X, %02X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
|
||||
// io_log("[%04X:%08X] (%i, %i, %04i) outb(%04X, %02X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
|
||||
|
||||
if (port == 0x0068)
|
||||
action = val;
|
||||
|
||||
if (port == 0x0080)
|
||||
post_code = val;
|
||||
|
||||
// if (port == 0x3db)
|
||||
// pclog("[%04X:%04X] [W] %04X = %02X\n", CS, cpu_state.pc, port, val);
|
||||
|
||||
if ((port != 0x0061) && (port != 0x00ed) && (port != 0x03c7) && (port != 0x03c8) && (port != 0x03c9)) {
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) outb(%04X, %02X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -525,7 +586,9 @@ inw(uint16_t port)
|
||||
if (!found)
|
||||
cycles -= io_delay;
|
||||
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) in w(%04X) = %04X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
|
||||
if (1) {
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) in w(%04X) = %04X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -594,7 +657,21 @@ outw(uint16_t port, uint16_t val)
|
||||
#endif
|
||||
}
|
||||
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) outw(%04X, %04X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
|
||||
if (port == 0x0080)
|
||||
post_code = val;
|
||||
|
||||
#if 0
|
||||
if (port == 0x0c02) {
|
||||
if (val)
|
||||
mem_set_mem_state(0x000e0000, 0x00020000, MEM_READ_EXTANY | MEM_WRITE_EXTANY);
|
||||
else
|
||||
mem_set_mem_state(0x000e0000, 0x00020000, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (1) {
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) outw(%04X, %04X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -704,7 +781,9 @@ inl(uint16_t port)
|
||||
if (!found)
|
||||
cycles -= io_delay;
|
||||
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) in l(%04X) = %08X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
|
||||
if (1) {
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) in l(%04X) = %08X\n", CS, cpu_state.pc, in_smm, found, qfound, port, ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -791,7 +870,9 @@ outl(uint16_t port, uint32_t val)
|
||||
#endif
|
||||
}
|
||||
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) outl(%04X, %08X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
|
||||
if (1) {
|
||||
io_log("[%04X:%08X] (%i, %i, %04i) outl(%04X, %08X)\n", CS, cpu_state.pc, in_smm, found, qfound, port, val);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -801,6 +882,7 @@ io_trap_readb(uint16_t addr, void *priv)
|
||||
{
|
||||
io_trap_t *trap = (io_trap_t *) priv;
|
||||
trap->func(1, addr, 0, 0, trap->priv);
|
||||
pclog("[%04X:%08X] io_trap_readb(%04X)\n", CS, cpu_state.pc, addr);
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
@@ -809,6 +891,7 @@ io_trap_readw(uint16_t addr, void *priv)
|
||||
{
|
||||
io_trap_t *trap = (io_trap_t *) priv;
|
||||
trap->func(2, addr, 0, 0, trap->priv);
|
||||
pclog("[%04X:%08X] io_trap_readw(%04X)\n", CS, cpu_state.pc, addr);
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
@@ -817,6 +900,7 @@ io_trap_readl(uint16_t addr, void *priv)
|
||||
{
|
||||
io_trap_t *trap = (io_trap_t *) priv;
|
||||
trap->func(4, addr, 0, 0, trap->priv);
|
||||
pclog("[%04X:%08X] io_trap_readl(%04X)\n", CS, cpu_state.pc, addr);
|
||||
return 0xffffffff;
|
||||
}
|
||||
|
||||
@@ -825,6 +909,7 @@ io_trap_writeb(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
io_trap_t *trap = (io_trap_t *) priv;
|
||||
trap->func(1, addr, 1, val, trap->priv);
|
||||
pclog("[%04X:%08X] io_trap_writeb(%04X)\n", CS, cpu_state.pc, addr);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -832,6 +917,7 @@ io_trap_writew(uint16_t addr, uint16_t val, void *priv)
|
||||
{
|
||||
io_trap_t *trap = (io_trap_t *) priv;
|
||||
trap->func(2, addr, 1, val, trap->priv);
|
||||
pclog("[%04X:%08X] io_trap_writew(%04X)\n", CS, cpu_state.pc, addr);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -839,6 +925,7 @@ io_trap_writel(uint16_t addr, uint32_t val, void *priv)
|
||||
{
|
||||
io_trap_t *trap = (io_trap_t *) priv;
|
||||
trap->func(4, addr, 1, val, trap->priv);
|
||||
pclog("[%04X:%08X] io_trap_writel(%04X)\n", CS, cpu_state.pc, addr);
|
||||
}
|
||||
|
||||
void *
|
||||
@@ -885,6 +972,9 @@ io_trap_remap(void *handle, int enable, uint16_t addr, uint16_t size)
|
||||
io_trap_writeb, io_trap_writew, io_trap_writel,
|
||||
trap);
|
||||
}
|
||||
|
||||
if ((addr == 0x0170) || (addr == 0x0376) || (addr == 0x01f0) || (addr == 0x03f6))
|
||||
pclog("io_trap_remape(%04X) = %i\n", addr, trap->enable);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -626,9 +626,9 @@ machine_at_cmdsl386sx16_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_ide_init(model);
|
||||
machine_at_common_init(model);
|
||||
|
||||
device_add(&keyboard_at_device);
|
||||
device_add(&keyboard_ps2_device);
|
||||
|
||||
if (fdc_current[0] == FDC_INTERNAL)
|
||||
device_add(&fdc_at_device);
|
||||
|
||||
@@ -845,6 +845,10 @@ machine_at_gw2kte_init(const machine_t *model)
|
||||
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
|
||||
|
||||
if ((sound_card_current[0] == SOUND_INTERNAL) && machine_get_snd_device(machine)->available())
|
||||
machine_snd = device_add(machine_get_snd_device(machine));
|
||||
|
||||
device_add(&i430vx_device);
|
||||
device_add(&piix3_device);
|
||||
device_add(&fdc37c932fr_device);
|
||||
|
||||
@@ -694,6 +694,10 @@ machine_at_gw2kma_init(const machine_t *model)
|
||||
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
|
||||
|
||||
if ((sound_card_current[0] == SOUND_INTERNAL) && machine_get_snd_device(machine)->available())
|
||||
machine_snd = device_add(machine_get_snd_device(machine));
|
||||
|
||||
device_add(&i430vx_device);
|
||||
device_add(&piix3_device);
|
||||
device_add(&fdc37c932fr_device);
|
||||
|
||||
@@ -4688,7 +4688,7 @@ const machine_t machines[] = {
|
||||
.max_multi = 0
|
||||
},
|
||||
.bus_flags = MACHINE_PS2,
|
||||
.flags = MACHINE_IDE,
|
||||
.flags = MACHINE_FLAGS_NONE,
|
||||
.ram = {
|
||||
.min = 1024,
|
||||
.max = 8192,
|
||||
@@ -11245,7 +11245,7 @@ const machine_t machines[] = {
|
||||
.max_multi = 3.0
|
||||
},
|
||||
.bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
|
||||
.flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
|
||||
.flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
|
||||
.ram = {
|
||||
.min = 8192,
|
||||
.max = 131072,
|
||||
@@ -11260,7 +11260,7 @@ const machine_t machines[] = {
|
||||
.fdc_device = NULL,
|
||||
.sio_device = NULL,
|
||||
.vid_device = NULL,
|
||||
.snd_device = NULL,
|
||||
.snd_device = &sb_vibra16c_onboard_device,
|
||||
.net_device = NULL
|
||||
},
|
||||
|
||||
@@ -12315,7 +12315,7 @@ const machine_t machines[] = {
|
||||
.max_multi = 3.0
|
||||
},
|
||||
.bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
|
||||
.flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
|
||||
.flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
|
||||
.ram = {
|
||||
.min = 8192,
|
||||
.max = 131072,
|
||||
@@ -12330,7 +12330,7 @@ const machine_t machines[] = {
|
||||
.fdc_device = NULL,
|
||||
.sio_device = NULL,
|
||||
.vid_device = NULL,
|
||||
.snd_device = NULL,
|
||||
.snd_device = &sb_vibra16c_onboard_device,
|
||||
.net_device = NULL
|
||||
},
|
||||
/* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
|
||||
|
||||
@@ -86,6 +86,48 @@ rom_add_path(const char *path)
|
||||
path_slash(rom_path->path);
|
||||
}
|
||||
|
||||
static int
|
||||
rom_check(const char *fn)
|
||||
{
|
||||
FILE *fp = NULL;
|
||||
int ret = 0;
|
||||
|
||||
if ((fn[strlen(fn) - 1] == '/') || (fn[strlen(fn) - 1] == '\\'))
|
||||
ret = plat_dir_check((char *) fn);
|
||||
else {
|
||||
fp = fopen(fn, "rb");
|
||||
ret = (fp != NULL);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
rom_get_full_path(char *dest, const char *fn)
|
||||
{
|
||||
char temp[1024] = { 0 };
|
||||
|
||||
dest[0] = 0x00;
|
||||
|
||||
if (strstr(fn, "roms/") == fn) {
|
||||
/* Relative path */
|
||||
for (rom_path_t *rom_path = &rom_paths; rom_path != NULL; rom_path = rom_path->next) {
|
||||
path_append_filename(temp, rom_path->path, fn + 5);
|
||||
|
||||
if (rom_check(temp)) {
|
||||
strcpy(dest, temp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
} else {
|
||||
/* Absolute path */
|
||||
strcpy(dest, fn);
|
||||
}
|
||||
}
|
||||
|
||||
FILE *
|
||||
rom_fopen(const char *fn, char *mode)
|
||||
{
|
||||
|
||||
@@ -1968,16 +1968,16 @@ escp_init(void *lpt)
|
||||
dev->ctrl = 0x04;
|
||||
dev->lpt = lpt;
|
||||
|
||||
rom_get_full_path(dev->fontpath, "roms/printer/fonts/");
|
||||
|
||||
/* Create a full pathname for the font files. */
|
||||
if (strlen(exe_path) >= sizeof(dev->fontpath)) {
|
||||
if (strlen(dev->fontpath) == 0) {
|
||||
ui_msgbox_header(MBX_ERROR, plat_get_string(STRING_ESCP_ERROR_TITLE),
|
||||
plat_get_string(STRING_ESCP_ERROR_DESC));
|
||||
free(dev);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
strcpy(dev->fontpath, exe_path);
|
||||
path_slash(dev->fontpath);
|
||||
strcat(dev->fontpath, "roms/printer/fonts/");
|
||||
|
||||
/* Create the full path for the page images. */
|
||||
path_append_filename(dev->pagepath, usr_path, "printer");
|
||||
if (!plat_dir_check(dev->pagepath))
|
||||
|
||||
@@ -2135,3 +2135,9 @@ msgstr ""
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr ""
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr ""
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Expansió de memòria genèrica PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Expansió de memòria genèrica PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "No es pot trobar tipus de lletra de matriu de punts"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Els tipus de lletra TrueType al directori \"roms/printer/fonts\" són necessaris per a l'emulació de la impressora de matriu de punts ESC/P genèrica."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Obecné rozšíření paměti PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Obecné rozšíření paměti PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Nastala chyba při nachození jehličkových písem"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Pro emulaci obecné jehličkové tiskárny ESC/P jsou vyžadována písma TrueType ve složce \"roms/printer/fonts\"."
|
||||
|
||||
@@ -2132,3 +2132,9 @@ msgstr "Generische PC/XT-Speichererweiterung"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Generische PC/AT-Speichererweiterung"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Nadel-Schriften konnten nicht gefunden werden"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "TrueType-Schriften in das \"roms/printer/fonts\"-Verzeichnis sind für die Allgemeines ESC/P Nadel-Druckers erforderlich."
|
||||
|
||||
@@ -2128,3 +2128,9 @@ msgstr "Expansión de Memoria Generica PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Expansión de Memoria Generica PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "No fué posible encontrar las fuentes matriciales"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Las fuentes TrueType en el directorio \"roms/printer/fonts\" son necesarias para la emulación de la impresora matricial ESC/P genérica."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Yleinen PC/XT-muistilaajennus"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Yleinen PC/AT-muistilaajennus"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Pistematriisifontteja ei löydy"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "TrueType-fontteja kansiossa \"roms/printer/fonts\"-hakemistoon yleinen ESC/P pistematriisitulostin emulointiin."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Expansion de la mémoire générique PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Expansion de la mémoire générique PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Impossible de trouver les polices à matrice à points"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Les polices TrueType dans le répertoire \"roms/printer/fonts\" sont nécessaires à l'émulation de l'imprimante générique ESC/P à matrice à points."
|
||||
|
||||
@@ -655,7 +655,7 @@ msgid "ZIP images"
|
||||
msgstr "ZIP slike"
|
||||
|
||||
msgid "86Box could not find any usable ROM images.\n\nPlease <a href=\"https://github.com/86Box/roms/releases/latest\">download</a> a ROM set and extract it into the \"roms\" directory."
|
||||
msgstr "86Box nije mogao pronaći upotrebljive ROM datoteke.\n\nMolimte posjetite <a href=\"https://github.com/86Box/roms/releases/latest\"></a> sknite paket s ROM datotekama i ekstrahirajte paket u \"roms\" mapu."
|
||||
msgstr "86Box nije mogao pronaći upotrebljive ROM datoteke.\n\nMolimte posjetite <a href=\"https://github.com/86Box/roms/releases/latest\"></a> sknite paket s ROM datotekama i ekstrahirajte paket u mapu \"roms\"."
|
||||
|
||||
msgid "(empty)"
|
||||
msgstr "(prazno)"
|
||||
@@ -2062,7 +2062,7 @@ msgid "Generic Text Printer"
|
||||
msgstr "Generični tekstovni pisač"
|
||||
|
||||
msgid "Generic ESC/P Dot-Matrix Printer"
|
||||
msgstr "Generični pisač matrični ESC/P"
|
||||
msgstr "Generični matrični pisač ESC/P"
|
||||
|
||||
msgid "Generic PostScript Printer"
|
||||
msgstr "Generični pisač PostScript"
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Generičko proširenje memorije PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Generičko proširenje memorije PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Nije moguće pronaći matrične fontove"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "TrueType fontovi u mapi \"roms/printer/fonts\" potrebni su za emulaciju generičnog matričnog pisača ESC/P."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Általános PC/XT memóriabővítők"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Általános PC/AT memóriabővítők"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Nem találja a Dot-Matrix betűtípusokat"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Az általános ESC/P pontmátrixnyomtató emulációjához a \"roms/printer/fonts\" könyvtárban található TrueType betűtípusok szükségesek."
|
||||
|
||||
@@ -655,7 +655,7 @@ msgid "ZIP images"
|
||||
msgstr "Immagini ZIP"
|
||||
|
||||
msgid "86Box could not find any usable ROM images.\n\nPlease <a href=\"https://github.com/86Box/roms/releases/latest\">download</a> a ROM set and extract it into the \"roms\" directory."
|
||||
msgstr "86Box non può trovare immagini ROM utilizzabili.\n\nPlease <a href=\"https://github.com/86Box/roms/releases/latest\">download</a> a ROM set and extract it into the \"roms\" directory."
|
||||
msgstr "86Box non può trovare immagini ROM utilizzabili.\n\nSi prega di <a href=\"https://github.com/86Box/roms/releases/latest\">scaricare</a> un set di ROM ed estrarlo nella directory \"roms\"."
|
||||
|
||||
msgid "(empty)"
|
||||
msgstr "(empty)"
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Espansione di memoria generica PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Espansione di memoria generica PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Impossibile trovare i font a matrice di punti"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "I font TrueType presenti nella directory \"roms/printer/fonts\" sono necessari per l'emulazione della stampante a matrice di punti ESC/P generica."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "汎用PC/XTメモリ拡張カード"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "汎用PC/ATメモリ拡張カード"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "ドットマトリクスフォントが見つかりません"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "汎用ESC/Pドットマトリクスプリンタのエミュレーションには、roms/printer/fontsディレクトリ内のTrueTypeフォントが必要です。"
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "일반 PC/XT 메모리 확장 카드"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "일반 PC/AT 메모리 확장 카드"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "도트 매트릭스 글꼴을 찾을 수 없습니다"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "일반 ESC/P 도트 매트릭스 프린터의 에뮬레이션을 사용하려면 \"roms/printer/fonts\" 디렉터리에 있는 트루타입 글꼴이 필요합니다."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Generieke PC/XT geheugenuitbreiding"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Generieke PC/AT geheugenuitbreiding"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Dot-matrix-lettertypen niet gevonden"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "TrueType lettertypen in de map \"roms/printer/fonts\" zijn nodig voor de emulatie van de generieke ESC/P dot-matrix-printer."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Generyczne rozszerzenie pamięci PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Generyczne rozszerzenie pamięci PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Nie można znaleźć czcionek igłowych"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Czcionki TrueType w katalogu \"roms/printer/fonts\" są wymagane do emulacji generyczniej drukarki igłowej ESC/P."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Expansão de memória genérica PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Expansão de memória genérica PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Não foi possível localizar os fontes matriciais de pontos"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "As fontes TrueType no diretório \"roms/printer/fonts\" são necessárias para a emulação da impressora matricial de pontos ESC/P genérica."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Expansão de memória genérica PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Expansão de memória genérica PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Não foi possível encontrar os fontes matriciais de pontos"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "As fontes TrueType no diretório \"roms/printer/fonts\" são necessárias para a emulação da impressora matricial de pontos ESC/P genérica"
|
||||
|
||||
@@ -2135,3 +2135,9 @@ msgstr "Стандартное расширение памяти PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Стандартное расширение памяти PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Невозможно найти матричные шрифты"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Шрифты TrueType в каталоге \"roms/printer/fonts\" необходимы для эмуляции стандартного матричного принтера ESC/P."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Všeobecné rozšírenie pamäte PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Všeobecné rozšírenie pamäte PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Nastala chyba pri hľadaní ihličkových písem"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Písma TrueType v adresári \"roms/printer/fonts\" sú potrebné na emuláciu generickej ihličkovej tlačiarne ESC/P."
|
||||
|
||||
@@ -823,10 +823,10 @@ msgid "Are you sure you want to exit 86Box?"
|
||||
msgstr "Ste prepričani, da želite zapreti 86Box?"
|
||||
|
||||
msgid "Unable to initialize Ghostscript"
|
||||
msgstr "Ne morem inicializirati Ghostscript"
|
||||
msgstr "Ghostscript-a ni bilo mogoče inicializirati"
|
||||
|
||||
msgid "Unable to initialize GhostPCL"
|
||||
msgstr "Ne morem inicializirati GhostPCL"
|
||||
msgstr "GhostPCL-ja ni bilo mogoče inicializirati"
|
||||
|
||||
msgid "MO %i (%ls): %ls"
|
||||
msgstr "MO %i (%ls): %ls"
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Generična razširitev pomnilnika PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Generična razširitev pomnilnika PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Matričnih pisav ni bilo mogoče najti"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Matrične pisave v imeniku \"roms/printer/fonts\" so potrebne za emulacijo generičnega matričnega tiskalnika ESC/P."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Sıradan PC/XT bellek artırma"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Sıradan PC/AT bellek artırma"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Dot Matrix yazı tipleri bulunamıyor"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Sıradan ESC/P Dot Matrix Yazıcının emülasyonu için \"roms/printer/fonts\" dizinindeki TrueType yazı tipleri gereklidir."
|
||||
|
||||
@@ -2135,3 +2135,9 @@ msgstr "Загальне розширення пам'яті PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Загальне розширення пам'яті PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Неможливо знайти матричні шрифти"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Шрифти TrueType у каталозі \"roms/printer/fonts\" потрібні для емуляції загального матричного принтера Generic ESC/P."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "Chung mở rộng bộ nhớ qua PC/XT"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "Chung mở rộng bộ nhớ qua PC/AT"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "Không tìm thấy phông chữ ma trận chấm"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "Cần có phông chữ TrueType trong thư mục \"roms/printer/fonts\" để mô phỏng máy in generic ESC/P ma trận chấm."
|
||||
|
||||
@@ -2129,3 +2129,9 @@ msgstr "通用 PC/XT 内存扩展"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "通用 PC/AT 内存扩展"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "无法找到点阵字体"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "仿真通用 ESC/P 点阵打印机需要使用 \"roms/printer/fonts\" 目录中的 TrueType 字体。"
|
||||
|
||||
@@ -2062,7 +2062,7 @@ msgid "Generic Text Printer"
|
||||
msgstr "通用文字印表機"
|
||||
|
||||
msgid "Generic ESC/P Dot-Matrix Printer"
|
||||
msgstr "通用 ESC/P 點矩陣"
|
||||
msgstr "通用 ESC/P 點矩陣印表機"
|
||||
|
||||
msgid "Generic PostScript Printer"
|
||||
msgstr "通用 PostScript 印表機"
|
||||
@@ -2129,3 +2129,9 @@ msgstr "通用 PC/XT 記憶體擴充"
|
||||
|
||||
msgid "Generic PC/AT Memory Expansion"
|
||||
msgstr "通用 PC/AT 記憶體擴充"
|
||||
|
||||
msgid "Unable to find Dot-Matrix fonts"
|
||||
msgstr "無法找到點矩陣字型"
|
||||
|
||||
msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer."
|
||||
msgstr "通用 ESC/P 點矩陣印表機的模擬需要 \"roms/printer/fonts\" 目錄中的 TrueType 字體。"
|
||||
|
||||
@@ -639,6 +639,8 @@ ProgSettings::reloadStrings()
|
||||
translatedstrings[STRING_MONITOR_SLEEP] = QCoreApplication::translate("", "Monitor in sleep mode").toStdWString();
|
||||
translatedstrings[STRING_NET_ERROR] = QCoreApplication::translate("", "Failed to initialize network driver").toStdWString();
|
||||
translatedstrings[STRING_NET_ERROR_DESC] = QCoreApplication::translate("", "The network configuration will be switched to the null driver").toStdWString();
|
||||
translatedstrings[STRING_ESCP_ERROR_TITLE] = QCoreApplication::translate("", "Unable to find Dot-Matrix fonts").toStdWString();
|
||||
translatedstrings[STRING_ESCP_ERROR_DESC] = QCoreApplication::translate("", "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulatio of the Generic ESC/P Dot-Matrix Printer.").toStdWString();
|
||||
}
|
||||
|
||||
wchar_t *
|
||||
|
||||
@@ -4595,7 +4595,7 @@ mach64gx_init(const device_t *info)
|
||||
{
|
||||
mach64_t *mach64 = mach64_common_init(info);
|
||||
|
||||
if (info->flags & DEVICE_ISA)
|
||||
if (info->flags & DEVICE_ISA16)
|
||||
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_mach64_isa);
|
||||
else if (info->flags & DEVICE_PCI)
|
||||
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_mach64_pci);
|
||||
@@ -4617,7 +4617,7 @@ mach64gx_init(const device_t *info)
|
||||
mach64->config_stat0 |= 6; /*VLB, 256Kx16 DRAM*/
|
||||
ati_eeprom_load(&mach64->eeprom, "mach64_vlb.nvr", 1);
|
||||
rom_init(&mach64->bios_rom, BIOS_VLB_ROM_PATH, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
} else if (info->flags & DEVICE_ISA) {
|
||||
} else if (info->flags & DEVICE_ISA16) {
|
||||
mach64->config_stat0 |= 0; /*ISA 16-bit, 256k16 DRAM*/
|
||||
ati_eeprom_load(&mach64->eeprom, "mach64.nvr", 1);
|
||||
rom_init(&mach64->bios_rom, BIOS_ISA_ROM_PATH, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
|
||||
@@ -4382,7 +4382,7 @@ gd54xx_init(const device_t *info)
|
||||
rom_init_interleaved(&gd54xx->bios_rom, BIOS_GD5428_BOCA_ISA_PATH_1, BIOS_GD5428_BOCA_ISA_PATH_2, 0xc0000,
|
||||
0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
|
||||
if (info->flags & DEVICE_ISA)
|
||||
if ((info->flags & DEVICE_ISA) || (info->flags & DEVICE_ISA16))
|
||||
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_gd54xx_isa);
|
||||
else if (info->flags & DEVICE_PCI)
|
||||
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_gd54xx_pci);
|
||||
|
||||
@@ -1604,7 +1604,7 @@ ht216_init(const device_t *info, uint32_t mem_size, int has_rom)
|
||||
mem_mapping_disable(&ht216->linear_mapping);
|
||||
|
||||
ht216->id = info->local;
|
||||
ht216->isabus = (info->flags & DEVICE_ISA);
|
||||
ht216->isabus = (info->flags & DEVICE_ISA) || (info->flags & DEVICE_ISA16);
|
||||
ht216->mca = (info->flags & DEVICE_MCA);
|
||||
|
||||
io_sethandler(0x03c0, 0x0020, ht216_in, NULL, NULL, ht216_out, NULL, NULL, ht216);
|
||||
|
||||
@@ -571,6 +571,8 @@ paradise_init(const device_t *info, uint32_t memory)
|
||||
|
||||
paradise->type = info->local;
|
||||
|
||||
svga->hoverride = 1;
|
||||
|
||||
return paradise;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user