diff --git a/src/Makefile.am b/src/Makefile.am index 6ac4289..65aeb3b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -31,7 +31,7 @@ vid_ati68860_ramdac.c vid_cga.c vid_cl5429.c vid_colorplus.c vid_ega.c vid_et400 vid_icd2061.c vid_ics2595.c vid_incolor.c vid_mda.c vid_olivetti_m24.c vid_oti067.c vid_paradise.c vid_pc200.c \ 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_stg_ramdac.c vid_svga.c vid_svga_render.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_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 xtide.c sound_dbopl.cc sound_resid.cc dosbox/dbopl.cpp \ dosbox/vid_cga_comp.c resid-fp/convolve.cc resid-fp/convolve-sse.cc resid-fp/envelope.cc \ resid-fp/extfilt.cc resid-fp/filter.cc resid-fp/pot.cc resid-fp/sid.cc \ diff --git a/src/Makefile.linux32 b/src/Makefile.linux32 index 645cc02..259f52b 100644 --- a/src/Makefile.linux32 +++ b/src/Makefile.linux32 @@ -20,7 +20,7 @@ vid_ati68860_ramdac.o vid_cga.o vid_cl5429.o vid_colorplus.o vid_ega.o vid_et400 vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc200.o \ 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_stg_ramdac.o vid_svga.o vid_svga_render.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 video.o wd76c10.o \ +vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o vid_vga.o vid_wy700.o vid_voodoo.o video.o wd76c10.o \ x86seg.o x87.o xtide.o sound_dbopl.o sound_resid.o DBOBJ = dbopl.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 diff --git a/src/Makefile.linux64 b/src/Makefile.linux64 index 8ba25a0..1ff211a 100644 --- a/src/Makefile.linux64 +++ b/src/Makefile.linux64 @@ -19,7 +19,7 @@ vid_ati68860_ramdac.o vid_cga.o vid_cl5429.o vid_colorplus.o vid_ega.o vid_et400 vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc200.o \ 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_stg_ramdac.o vid_svga.o vid_svga_render.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 video.o wd76c10.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 xtide.o sound_dbopl.o sound_resid.o DBOBJ = dbopl.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 diff --git a/src/Makefile.mingw b/src/Makefile.mingw index 0b2d341..09328bb 100644 --- a/src/Makefile.mingw +++ b/src/Makefile.mingw @@ -18,7 +18,7 @@ OBJ = 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acer386sx.o ali1429.o amstrad vid_olivetti_m24.o 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_stg_ramdac.o vid_svga.o \ vid_svga_render.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 video.o wd76c10.o win.o win-config.o win-d3d.o win-d3d-fs.o win-ddraw.o \ + vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o win.o win-config.o win-d3d.o win-d3d-fs.o win-ddraw.o \ win-ddraw-fs.o win-deviceconfig.o win-hdconf.o win-joystick.o win-joystickconfig.o win-keyboard.o win-midi.o win-mouse.o \ win-status.o win-video.o x86seg.o x87.o xtide.o pc.res DBOBJ = dbopl.o vid_cga_comp.o diff --git a/src/Makefile.mingw64 b/src/Makefile.mingw64 index 43299d7..21e4caf 100644 --- a/src/Makefile.mingw64 +++ b/src/Makefile.mingw64 @@ -18,7 +18,7 @@ OBJ = 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acer386sx.o ali1429.o amstrad vid_olivetti_m24.o 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_stg_ramdac.o vid_svga.o \ vid_svga_render.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 video.o wd76c10.o win.o win-config.o win-d3d.o win-d3d-fs.o win-ddraw.o \ + vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o win.o win-config.o win-d3d.o win-d3d-fs.o win-ddraw.o \ win-ddraw-fs.o win-deviceconfig.o win-hdconf.o win-joystick.o win-joystickconfig.o win-keyboard.o win-midi.o win-mouse.o \ win-status.o win-video.o x86seg.o x87.o xtide.o pc.res DBOBJ = dbopl.o vid_cga_comp.o diff --git a/src/ibm.h b/src/ibm.h index b15cb86..5bf9f4c 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -333,7 +333,7 @@ char discfns[2][256]; int driveempty[2]; #define MDA ((gfxcard==GFX_MDA || gfxcard==GFX_HERCULES || gfxcard==GFX_INCOLOR) && (romset=ROM_IBMAT)) -#define VGA ((gfxcard>=GFX_TVGA || romset==ROM_ACER386) && gfxcard!=GFX_COLORPLUS && gfxcard!=GFX_INCOLOR && romset!=ROM_PC1640 && romset!=ROM_PC1512 && romset!=ROM_TANDY && romset!=ROM_PC200) +#define VGA ((gfxcard>=GFX_TVGA || romset==ROM_ACER386) && gfxcard!=GFX_COLORPLUS && gfxcard!=GFX_INCOLOR && gfxcard!=GFX_WY700 && romset!=ROM_PC1640 && romset!=ROM_PC1512 && romset!=ROM_TANDY && romset!=ROM_PC200) #define PCJR (romset == ROM_IBMPCJR) #define AMIBIOS (romset==ROM_AMI386SX || romset==ROM_AMI486 || romset == ROM_WIN486) @@ -419,6 +419,7 @@ enum GFX_PHOENIX_TRIO64, /*S3 764/Trio64 (Phoenix)*/ GFX_INCOLOR, /* Hercules InColor */ GFX_COLORPLUS, /* Plantronics ColorPlus */ + GFX_WY700, /* Wyse 700 */ GFX_MAX }; diff --git a/src/mem.c b/src/mem.c index 7ba4b37..372225e 100644 --- a/src/mem.c +++ b/src/mem.c @@ -100,8 +100,9 @@ int loadbios() { FILE *f=NULL,*ff=NULL; int c; - + loadfont("roms/mda.rom", 0); + loadfont("roms/wy700.rom", 3); biosmask = 0xffff; diff --git a/src/video.c b/src/video.c index 642044b..b072ed2 100644 --- a/src/video.c +++ b/src/video.c @@ -39,6 +39,7 @@ #include "vid_tgui9440.h" #include "vid_tvga.h" #include "vid_vga.h" +#include "vid_wy700.h" typedef struct { @@ -71,6 +72,7 @@ static VIDEO_CARD video_cards[] = {"Tseng ET4000AX", &et4000_device, GFX_ET4000}, {"Trident TGUI9440", &tgui9440_device, GFX_TGUI9440}, {"VGA", &vga_device, GFX_VGA}, + {"Wyse 700", &wy700_device, GFX_WY700}, {"", NULL, 0} }; @@ -286,6 +288,7 @@ BITMAP *buffer, *buffer32; uint8_t fontdat[256][8]; uint8_t fontdatm[256][16]; +uint8_t fontdatw[512][32]; /* Wyse700 font */ int xsize=1,ysize=1; @@ -296,10 +299,12 @@ void loadfont(char *s, int format) FILE *f=romfopen(s,"rb"); int c,d; if (!f) - return; - - if (!format) + { + return; + } + switch (format) { + case 0: /* MDA */ for (c=0;c<256;c++) { for (d=0;d<8;d++) @@ -322,9 +327,8 @@ void loadfont(char *s, int format) fontdat[c][d]=getc(f); } } - } - else if (format == 1) - { + break; + case 1: /* PC200 */ for (c=0;c<256;c++) { for (d=0;d<8;d++) @@ -334,7 +338,7 @@ void loadfont(char *s, int format) } for (c=0;c<256;c++) { - for (d=0;d<8;d++) + for (d=0;d<8;d++) { fontdatm[c][d+8]=getc(f); } @@ -348,16 +352,26 @@ void loadfont(char *s, int format) } for (d=0;d<8;d++) getc(f); } - } - else - { + break; + default: + case 2: /* CGA */ for (c=0;c<256;c++) { - for (d=0;d<8;d++) + for (d=0;d<8;d++) { fontdat[c][d]=getc(f); } } + break; + case 3: /* Wyse 700 */ + for (c=0;c<512;c++) + { + for (d=0;d<32;d++) + { + fontdatw[c][d]=getc(f); + } + } + break; } fclose(f); } diff --git a/src/video.h b/src/video.h index 9c8dd77..bcbb281 100644 --- a/src/video.h +++ b/src/video.h @@ -82,3 +82,4 @@ extern int vid_resize; void video_wait_for_blit(); void video_wait_for_buffer(); +void loadfont(char *s, int format);