Add machine=vesa_oldvbe10 to emulate the original VBE 1.0 standard

This commit is contained in:
Jonathan Campbell
2021-07-21 11:13:33 -07:00
parent a39b9f0288
commit 3bad47d5d5
3 changed files with 6 additions and 2 deletions

View File

@@ -998,6 +998,7 @@ void DOSBOX_RealInit() {
jp_ega = false;
int10.vesa_nolfb = false;
int10.vesa_oldvbe = false;
int10.vesa_oldvbe10 = false;
if (mtype == "cga") { machine = MCH_CGA; mono_cga = false; }
else if (mtype == "cga_mono") { machine = MCH_CGA; mono_cga = true; }
else if (mtype == "cga_rgb") { machine = MCH_CGA; mono_cga = false; cga_comp = 2; }
@@ -1021,6 +1022,7 @@ void DOSBOX_RealInit() {
else if (mtype == "svga_s3virgevx"){ svgaCard = SVGA_S3Trio; s3Card = S3_ViRGEVX; }
else if (mtype == "vesa_nolfb") { svgaCard = SVGA_S3Trio; s3Card = S3_Trio32; int10.vesa_nolfb = true;}
else if (mtype == "vesa_oldvbe") { svgaCard = SVGA_S3Trio; s3Card = S3_Trio32; int10.vesa_oldvbe = true;}
else if (mtype == "vesa_oldvbe10") { svgaCard = SVGA_S3Trio; s3Card = S3_Trio32; int10.vesa_oldvbe = true; int10.vesa_oldvbe10 = true;}
else if (mtype == "svga_et4000") { svgaCard = SVGA_TsengET4K; }
else if (mtype == "svga_et3000") { svgaCard = SVGA_TsengET3K; }
else if (mtype == "svga_paradise") { svgaCard = SVGA_ParadisePVGA1A; }
@@ -1228,7 +1230,7 @@ void DOSBOX_SetupConfigSections(void) {
const char* machines[] = {
"hercules", "cga", "cga_mono", "cga_rgb", "cga_composite", "cga_composite2", "tandy", "pcjr", "ega", "jega",
"vgaonly", "svga_s3", "svga_s386c928", "svga_s3vision864", "svga_s3vision868", "svga_s3trio32", "svga_s3trio64", "svga_s3trio64v+", "svga_s3virge", "svga_s3virgevx", "svga_et3000", "svga_et4000",
"svga_paradise", "vesa_nolfb", "vesa_oldvbe", "amstrad", "pc98", "pc9801", "pc9821",
"svga_paradise", "vesa_nolfb", "vesa_oldvbe", "vesa_oldvbe10", "amstrad", "pc98", "pc9801", "pc9821",
"fm_towns", // STUB

View File

@@ -153,6 +153,7 @@ typedef struct {
uint16_t vesa_setmode;
bool vesa_nolfb;
bool vesa_oldvbe;
bool vesa_oldvbe10;
uint8_t text_row;
} Int10Data;

View File

@@ -161,7 +161,8 @@ uint8_t VESA_GetSVGAInformation(uint16_t seg,uint16_t off) {
/* Fill common data */
MEM_BlockWrite(buffer,(void *)"VESA",4); //Identification
if (!int10.vesa_oldvbe) mem_writew(buffer+0x04,0x200); //Vesa version 2.0
else mem_writew(buffer+0x04,0x102); //Vesa version 1.2
else if (!int10.vesa_oldvbe10) mem_writew(buffer+0x04,0x102); //Vesa version 1.2
else mem_writew(buffer+0x04,0x100); //Vesa version 1.0
if (vbe2) {
vbe2_pos=256+off;