Added Zenith Data SupersPort. Based on patch from Tux.
This commit is contained in:
parent
9efd6705ae
commit
f4f9695ca9
11 changed files with 84 additions and 6 deletions
|
|
@ -40,7 +40,7 @@ vid_icd2061.c vid_ics2595.c vid_incolor.c vid_mda.c vid_olivetti_m24.c vid_oti03
|
|||
vid_pc1512.c vid_pc1640.c vid_pcjr.c vid_ps1_svga.c vid_s3.c vid_s3_virge.c vid_sdac_ramdac.c vid_sigma.c \
|
||||
vid_stg_ramdac.c vid_svga.c vid_svga_render.c vid_t1000.c vid_t3100e.c vid_tandy.c vid_tandysl.c vid_tgui9440.c \
|
||||
vid_tkd8001_ramdac.c vid_tvga.c vid_unk_ramdac.c vid_vga.c vid_voodoo.c video.c wd76c10.c vid_wy700.c \
|
||||
x86seg.c x87.c xi8088.c xtide.c sound_dbopl.cc sound_resid.cc
|
||||
x86seg.c x87.c xi8088.c xtide.c zenith.c sound_dbopl.cc sound_resid.cc
|
||||
|
||||
# DOSBox
|
||||
pcem_SOURCES += dosbox/cdrom_image.cpp dosbox/dbopl.cpp dosbox/nukedopl.cpp dosbox/vid_cga_comp.c
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o vid_olivetti_m24.o vid_oti03
|
|||
vid_pc1512.o vid_pc1640.o vid_pcjr.o vid_ps1_svga.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_sigma.o \
|
||||
vid_stg_ramdac.o vid_svga.o vid_svga_render.o vid_t1000.o vid_t3100e.o vid_tandy.o vid_tandysl.o vid_tgui9440.o \
|
||||
vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o \
|
||||
x86seg.o x87.o xi8088.c xtide.o sound_dbopl.o sound_resid.o \
|
||||
x86seg.o x87.o xi8088.c xtide.o zenith.o sound_dbopl.o sound_resid.o \
|
||||
wx-main.o wx-config_sel.o wx-dialogbox.o wx-utils.o wx-app.o wx-sdl2-joystick.o wx-sdl2-mouse.o wx-sdl2-keyboard.o wx-sdl2-video.o wx-sdl2-midi.o \
|
||||
wx-sdl2.o wx-config.o wx-deviceconfig.o wx-status.o wx-sdl2-status.o wx-resources.o wx-thread.o wx-common.o wx-sdl2-display.o \
|
||||
wx-sdl2-video-renderer.o wx-sdl2-video-gl3.o wx-glslp-parser.o wx-shader_man.o wx-shaderconfig.o wx-joystickconfig.o wx-createdisc.o
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o vid_olivetti_m24.o vid_oti03
|
|||
vid_pc1512.o vid_pc1640.o vid_pcjr.o vid_ps1_svga.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_sigma.o \
|
||||
vid_stg_ramdac.o vid_svga.o vid_svga_render.o vid_t1000.o vid_t3100e.o vid_tandy.o vid_tandysl.o vid_tgui9440.o \
|
||||
vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o \
|
||||
x86seg.o x87.o xi8088.c xtide.o sound_dbopl.o sound_resid.o \
|
||||
x86seg.o x87.o xi8088.c xtide.o zenith.o sound_dbopl.o sound_resid.o \
|
||||
wx-main.o wx-config_sel.o wx-dialogbox.o wx-utils.o wx-app.o wx-sdl2-joystick.o wx-sdl2-mouse.o wx-sdl2-keyboard.o wx-sdl2-video.o wx-sdl2-midi.o \
|
||||
wx-sdl2.o wx-config.o wx-deviceconfig.o wx-status.o wx-sdl2-status.o wx-resources.o wx-thread.o wx-common.o wx-sdl2-display.o \
|
||||
wx-sdl2-video-renderer.o wx-sdl2-video-gl3.o wx-glslp-parser.o wx-shader_man.o wx-shaderconfig.o wx-joystickconfig.o wx-createdisc.o
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ OBJ = 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acc2036.o acer386sx.o ali1429
|
|||
vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o x86seg.o x87.o xi8088.c xtide.o win-midi.o \
|
||||
wx-main.o wx-config_sel.o wx-dialogbox.o wx-utils.o wx-app.o wx-sdl2-joystick.o wx-sdl2-mouse.o wx-sdl2-keyboard.o wx-sdl2-video.o \
|
||||
wx-sdl2.o wx-config.o wx-deviceconfig.o wx-status.o wx-sdl2-status.o wx-resources.o wx-thread.o wx-common.o wx-sdl2-display-win.o \
|
||||
wx-sdl2-video-renderer.o wx-sdl2-video-gl3.o wx-glslp-parser.o wx-shader_man.o wx-shaderconfig.o wx-joystickconfig.o wx-createdisc.o wx.res
|
||||
wx-sdl2-video-renderer.o wx-sdl2-video-gl3.o wx-glslp-parser.o wx-shader_man.o wx-shaderconfig.o wx-joystickconfig.o wx-createdisc.o zenith.o wx.res
|
||||
DBOBJ = cdrom_image.o dbopl.o nukedopl.o vid_cga_comp.o
|
||||
SIDOBJ = convolve.o convolve-sse.o envelope.o extfilt.o filter.o pot.o sid.o voice.o wave6581__ST.o wave6581_P_T.o wave6581_PS_.o wave6581_PST.o wave8580__ST.o wave8580_P_T.o wave8580_PS_.o wave8580_PST.o wave.o
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ OBJ = 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acc2036.o acer386sx.o ali1429
|
|||
vid_olivetti_m24.o vid_oti037.c vid_oti067.o vid_paradise.o vid_pc1512.o vid_pc1640.o vid_pc200.o \
|
||||
vid_pcjr.o vid_ps1_svga.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_sigma.o vid_stg_ramdac.o vid_svga.o \
|
||||
vid_svga_render.o vid_t1000.o vid_t3100e.o vid_tandy.o vid_tandysl.o vid_tgui9440.o vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o \
|
||||
vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o x86seg.o x87.o xi8088.c xtide.o win-midi.o \
|
||||
vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o x86seg.o x87.o xi8088.c xtide.o zenith.o win-midi.o \
|
||||
wx-main.o wx-config_sel.o wx-dialogbox.o wx-utils.o wx-app.o wx-sdl2-joystick.o wx-sdl2-mouse.o wx-sdl2-keyboard.o wx-sdl2-video.o \
|
||||
wx-sdl2.o wx-config.o wx-deviceconfig.o wx-hostconfig.o wx-status.o wx-sdl2-status.o wx-resources.o wx-thread.o wx-common.o wx-sdl2-display-win.o \
|
||||
wx-sdl2-video-renderer.o wx-sdl2-video-gl3.o wx-glslp-parser.o wx-shader_man.o wx-shaderconfig.o wx-joystickconfig.o wx-createdisc.o wx.res
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o vid_olivetti_m24.o vid_oti03
|
|||
vid_pc1512.o vid_pc1640.o vid_pcjr.o vid_ps1_svga.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_sigma.o \
|
||||
vid_stg_ramdac.o vid_svga.o vid_svga_render.o vid_t1000.o vid_t3100e.o vid_tandy.o vid_tandysl.o vid_tgui9440.o \
|
||||
vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o \
|
||||
x86seg.o x87.o xi8088.c xtide.o sound_dbopl.o sound_resid.o \
|
||||
x86seg.o x87.o xi8088.c xtide.o zenith.o sound_dbopl.o sound_resid.o \
|
||||
wx-main.o wx-config_sel.o wx-dialogbox.o wx-utils.o wx-app.o wx-sdl2-joystick.o wx-sdl2-mouse.o wx-sdl2-keyboard.o wx-sdl2-video.o wx-sdl2-midi.o \
|
||||
wx-sdl2.o wx-config.o wx-deviceconfig.o wx-status.o wx-sdl2-status.o wx-resources.o wx-thread.o wx-common.o wx-sdl2-display.o \
|
||||
wx-sdl2-video-renderer.o wx-sdl2-video-gl3.o wx-glslp-parser.o wx-shader_man.o wx-shaderconfig.o wx-joystickconfig.o wx-createdisc.o
|
||||
|
|
|
|||
|
|
@ -465,6 +465,7 @@ enum
|
|||
ROM_IBMPS2_M70_TYPE3,
|
||||
ROM_IBMPS2_M70_TYPE4,
|
||||
ROM_TULIP_TC7,
|
||||
ROM_ZD_SUPERS, /* [8088] Zenith Data Systems SupersPort */
|
||||
|
||||
ROM_MAX
|
||||
};
|
||||
|
|
|
|||
|
|
@ -950,6 +950,13 @@ int loadbios()
|
|||
biosmask = 0x7fff;
|
||||
return 1;
|
||||
|
||||
case ROM_ZD_SUPERS: /* [8088] Zenith Data Systems SupersPort */
|
||||
f=romfopen("zdsupers/z184m v3.1d.10d","rb");
|
||||
if (!f) break;
|
||||
romfread(rom, 32768, 1, f);
|
||||
fclose(f);
|
||||
biosmask = 0x7fff;
|
||||
return 1;
|
||||
}
|
||||
printf("Failed to load ROM!\n");
|
||||
if (f) fclose(f);
|
||||
|
|
|
|||
19
src/model.c
19
src/model.c
|
|
@ -63,6 +63,7 @@
|
|||
#include "vid_t1000.h"
|
||||
#include "wd76c10.h"
|
||||
#include "xi8088.h"
|
||||
#include "zenith.h"
|
||||
|
||||
void xt_init();
|
||||
void pcjr_init();
|
||||
|
|
@ -108,6 +109,7 @@ void at_pb520r_init();
|
|||
void at_pb570_init();
|
||||
void compaq_pip_init();
|
||||
void xt_xi8088_init();
|
||||
void xt_zenith_init();
|
||||
int model;
|
||||
|
||||
int AMSTRAD, AT, PCI, TANDY;
|
||||
|
|
@ -131,6 +133,7 @@ MODEL models[] =
|
|||
{"[8088] Thomson TO16 PC", ROM_TO16_PC, "to16_pc", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE, 512, 640, 128, xt_init, NULL},
|
||||
{"[8088] Toshiba T1000", ROM_T1000, "t1000", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, MODEL_GFX_FIXED, 512, 1280, 768, xt_t1000_init, &t1000_device},
|
||||
{"[8088] VTech Laser Turbo XT", ROM_LTXT, "ltxt", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE, 64, 1152, 64, xt_laserxt_init, NULL},
|
||||
{"[8088] Zenith Data SupersPort", ROM_ZD_SUPERS, "zdsupers", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE, 128, 640, 128, xt_zenith_init, NULL},
|
||||
{"[8088] Xi8088", ROM_XI8088, "xi8088", { {"", cpus_8088}, {"", NULL}, {"", NULL}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PS2, 64, 1024, 128, xt_xi8088_init, &xi8088_device},
|
||||
|
||||
{"[8086] Amstrad PC1512", ROM_PC1512, "pc1512", { {"", cpus_pc1512}, {"", NULL}, {"", NULL}}, MODEL_GFX_FIXED|MODEL_AMSTRAD, 512, 640, 128, ams_init, NULL},
|
||||
|
|
@ -377,6 +380,22 @@ void xt_laserxt_init()
|
|||
laserxt_init();
|
||||
}
|
||||
|
||||
void xt_zenith_init() /* [8088] Zenith Data Systems SupersPort */
|
||||
{
|
||||
dma_init();
|
||||
fdc_add();
|
||||
lpt_init();
|
||||
lpt2_remove(); /* only one parallel port */
|
||||
pic_init();
|
||||
pit_init();
|
||||
serial1_init(0x3f8, 4); /* only one serial port */
|
||||
mem_add_bios();
|
||||
device_add(&zenith_scratchpad_device);
|
||||
pit_set_out_func(&pit, 1, pit_refresh_timer_xt);
|
||||
keyboard_xt_init();
|
||||
nmi_init();
|
||||
}
|
||||
|
||||
void xt_xi8088_init()
|
||||
{
|
||||
/* TODO: set UMBs? See if PCem always sets when we have > 640KB ram and avoids conflicts when a peripheral uses the same memory space */
|
||||
|
|
|
|||
50
src/zenith.c
Normal file
50
src/zenith.c
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#include <stdlib.h>
|
||||
#include "ibm.h"
|
||||
#include "device.h"
|
||||
#include "mem.h"
|
||||
#include "zenith.h"
|
||||
|
||||
static uint8_t *zenith_scratchpad_ram;
|
||||
static mem_mapping_t zenith_scratchpad_mapping;
|
||||
|
||||
static uint8_t zenith_scratchpad_read(uint32_t addr, void *p)
|
||||
{
|
||||
return zenith_scratchpad_ram[addr & 0x3fff];
|
||||
}
|
||||
static void zenith_scratchpad_write(uint32_t addr, uint8_t val, void *p)
|
||||
{
|
||||
zenith_scratchpad_ram[addr & 0x3fff] = val;
|
||||
}
|
||||
|
||||
static void *zenith_scratchpad_init()
|
||||
{
|
||||
zenith_scratchpad_ram = malloc(0x4000);
|
||||
|
||||
mem_mapping_disable(&bios_mapping[4]);
|
||||
mem_mapping_disable(&bios_mapping[5]);
|
||||
|
||||
mem_mapping_add(&zenith_scratchpad_mapping, 0xf0000, 0x4000,
|
||||
zenith_scratchpad_read, NULL, NULL,
|
||||
zenith_scratchpad_write, NULL, NULL,
|
||||
zenith_scratchpad_ram, MEM_MAPPING_EXTERNAL, NULL);
|
||||
|
||||
return zenith_scratchpad_ram;
|
||||
}
|
||||
|
||||
static void zenith_scratchpad_close(void *p)
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
|
||||
device_t zenith_scratchpad_device =
|
||||
{
|
||||
"Zenith scratchpad RAM",
|
||||
0,
|
||||
zenith_scratchpad_init,
|
||||
zenith_scratchpad_close,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
1
src/zenith.h
Normal file
1
src/zenith.h
Normal file
|
|
@ -0,0 +1 @@
|
|||
device_t zenith_scratchpad_device;
|
||||
Loading…
Reference in a new issue