Merge pull request #1244 from EngiNerd89/EngiNerd
Added new NCR and Olivetti machines
This commit is contained in:
@@ -30,7 +30,9 @@
|
||||
#include <86box/vid_svga.h>
|
||||
|
||||
#define BIOS_037C_PATH L"roms/video/oti/bios.bin"
|
||||
#define BIOS_067_AMA932J_PATH L"roms/machines/ama932j/oti067.bin"
|
||||
#define BIOS_067_AMA932J_PATH L"roms/machines/ama932j/oti067.bin"
|
||||
#define BIOS_067_M300_08_PATH L"roms/machines/olivetti_m300_08/EVC_BIOS.ROM"
|
||||
#define BIOS_067_M300_15_PATH L"roms/machines/olivetti_m300_15/EVC_BIOS.ROM"
|
||||
#define BIOS_077_PATH L"roms/video/oti/oti077.vbi"
|
||||
|
||||
|
||||
@@ -38,6 +40,7 @@ enum {
|
||||
OTI_037C,
|
||||
OTI_067 = 2,
|
||||
OTI_067_AMA932J,
|
||||
OTI_067_M300 = 4,
|
||||
OTI_077 = 5
|
||||
};
|
||||
|
||||
@@ -362,6 +365,16 @@ oti_init(const device_t *info)
|
||||
io_sethandler(0x46e8, 1, oti_pos_in, NULL, NULL, oti_pos_out, NULL, NULL, oti);
|
||||
break;
|
||||
|
||||
case OTI_067_M300:
|
||||
if (rom_present(BIOS_067_M300_15_PATH))
|
||||
romfn = BIOS_067_M300_15_PATH;
|
||||
else
|
||||
romfn = BIOS_067_M300_08_PATH;
|
||||
oti->vram_size = device_get_config_int("memory");
|
||||
oti->pos = 0x08; /* Tell the BIOS the I/O ports are already enabled to avoid a double I/O handler mess. */
|
||||
io_sethandler(0x46e8, 1, oti_pos_in, NULL, NULL, oti_pos_out, NULL, NULL, oti);
|
||||
break;
|
||||
|
||||
case OTI_067:
|
||||
case OTI_077:
|
||||
romfn = BIOS_077_PATH;
|
||||
@@ -439,6 +452,15 @@ oti067_077_available(void)
|
||||
return(rom_present(BIOS_077_PATH));
|
||||
}
|
||||
|
||||
static int
|
||||
oti067_m300_available(void)
|
||||
{
|
||||
if (rom_present(BIOS_067_M300_15_PATH))
|
||||
return(rom_present(BIOS_067_M300_15_PATH));
|
||||
else
|
||||
return(rom_present(BIOS_067_M300_08_PATH));
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t oti067_config[] =
|
||||
{
|
||||
@@ -531,6 +553,18 @@ const device_t oti067_device =
|
||||
oti067_config
|
||||
};
|
||||
|
||||
const device_t oti067_m300_device =
|
||||
{
|
||||
"Oak OTI-067 (Olivetti M300-08/15)",
|
||||
DEVICE_ISA,
|
||||
4,
|
||||
oti_init, oti_close, NULL,
|
||||
{ oti067_m300_available },
|
||||
oti_speed_changed,
|
||||
oti_force_redraw,
|
||||
oti067_config
|
||||
};
|
||||
|
||||
const device_t oti067_ama932j_device =
|
||||
{
|
||||
"Oak OTI-067 (AMA-932J)",
|
||||
|
||||
@@ -352,6 +352,16 @@ void *paradise_init(const device_t *info, uint32_t memsize)
|
||||
return paradise;
|
||||
}
|
||||
|
||||
static void *paradise_pvga1a_ncr3302_init(const device_t *info)
|
||||
{
|
||||
paradise_t *paradise = paradise_init(info, 1 << 18);
|
||||
|
||||
if (paradise)
|
||||
rom_init(¶dise->bios_rom, L"roms/machines/ncr_3302/c000-wd_1987-1989-740011-003058-019c.bin", 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);
|
||||
|
||||
return paradise;
|
||||
}
|
||||
|
||||
static void *paradise_pvga1a_pc2086_init(const device_t *info)
|
||||
{
|
||||
paradise_t *paradise = paradise_init(info, 1 << 18);
|
||||
@@ -361,6 +371,7 @@ static void *paradise_pvga1a_pc2086_init(const device_t *info)
|
||||
|
||||
return paradise;
|
||||
}
|
||||
|
||||
static void *paradise_pvga1a_pc3086_init(const device_t *info)
|
||||
{
|
||||
paradise_t *paradise = paradise_init(info, 1 << 18);
|
||||
@@ -464,7 +475,6 @@ void paradise_force_redraw(void *p)
|
||||
paradise->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
|
||||
const device_t paradise_pvga1a_pc2086_device =
|
||||
{
|
||||
"Paradise PVGA1A (Amstrad PC2086)",
|
||||
@@ -478,6 +488,7 @@ const device_t paradise_pvga1a_pc2086_device =
|
||||
paradise_force_redraw,
|
||||
NULL
|
||||
};
|
||||
|
||||
const device_t paradise_pvga1a_pc3086_device =
|
||||
{
|
||||
"Paradise PVGA1A (Amstrad PC3086)",
|
||||
@@ -516,6 +527,20 @@ static const device_config_t paradise_pvga1a_config[] =
|
||||
}
|
||||
};
|
||||
|
||||
const device_t paradise_pvga1a_ncr3302_device =
|
||||
{
|
||||
"Paradise PVGA1A (NCR 3302)",
|
||||
0,
|
||||
PVGA1A,
|
||||
paradise_pvga1a_ncr3302_init,
|
||||
paradise_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
paradise_speed_changed,
|
||||
paradise_force_redraw,
|
||||
paradise_pvga1a_config
|
||||
};
|
||||
|
||||
const device_t paradise_pvga1a_device =
|
||||
{
|
||||
"Paradise PVGA1A",
|
||||
|
||||
Reference in New Issue
Block a user