1
0
Fork 0

hercules updates from hal (fixes jet)

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3273
This commit is contained in:
Sebastian Strohhäcker 2009-01-25 12:00:52 +00:00
parent d25f384276
commit 70a150c2d6
5 changed files with 63 additions and 71 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2002-2008 The DOSBox Team
* Copyright (C) 2002-2009 The DOSBox Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: int10.cpp,v 1.53 2008-10-05 14:44:52 qbix79 Exp $ */
/* $Id: int10.cpp,v 1.54 2009-01-25 12:00:52 c2woody Exp $ */
#include "dosbox.h"
#include "mem.h"
@ -442,7 +442,7 @@ graphics_chars:
for (ct=0; ct<entries; ct++) {
Bit16u dccentry=real_readw(RealSeg(dcctable),RealOff(dcctable)+0x04+ct*2);
if ((dccentry==reg_bx) || (dccentry==swpidx)) {
newidx=ct;
newidx=(Bit8u)ct;
break;
}
}
@ -473,7 +473,7 @@ graphics_chars:
Bitu ret=INT10_VideoState_GetSize(reg_cx);
if (ret) {
reg_al=0x1c;
reg_bx=ret;
reg_bx=(Bit16u)ret;
} else reg_al=0;
}
break;
@ -517,7 +517,7 @@ graphics_chars:
Bitu ret=INT10_VideoState_GetSize(reg_cx);
if (ret) {
reg_ah=0;
reg_bx=ret;
reg_bx=(Bit16u)ret;
} else reg_ah=1;
}
break;
@ -707,7 +707,7 @@ static void SetupTandyBios(void) {
}
}
void INT10_Init(Section* sec) {
void INT10_Init(Section* /*sec*/) {
INT10_InitVGA();
if (IS_TANDY_ARCH) SetupTandyBios();
/* Setup the INT 10 vector */
@ -719,5 +719,5 @@ void INT10_Init(Section* sec) {
INT10_Seg40Init();
INT10_SetupVESA();
INT10_SetupRomMemoryChecksum();//SetupVesa modifies the rom as well.
INT10_SetVideoMode(machine==MCH_HERC ? 0x7 : 0x3);
INT10_SetVideoMode(0x3);
}

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: int10_modes.cpp,v 1.84 2009-01-11 18:22:59 c2woody Exp $ */
/* $Id: int10_modes.cpp,v 1.85 2009-01-25 12:00:52 c2woody Exp $ */
#include <string.h>
@ -432,11 +432,6 @@ bool INT10_SetVideoMode_OTHER(Bitu mode,bool clearmem) {
}
break;
case MCH_HERC:
if (mode!=7) {
//Just the text memory, most games seem to use any random mode to clear the screen
for (i=0;i<16*1024;i++) real_writew(0xb000,i*2,0x0720);
return false;
}
CurMode=&Hercules_Mode;
break;
}
@ -504,11 +499,9 @@ bool INT10_SetVideoMode_OTHER(Bitu mode,bool clearmem) {
IO_WriteB(0x3b8,0x28); // TEXT mode and blinking characters
VGA_DAC_CombineColor(0,0);
VGA_DAC_CombineColor(8,0);
for ( i = 1; i < 8;i++) {
VGA_DAC_CombineColor(i,0x7);
VGA_DAC_CombineColor(i+8,0xf);
}
VGA_DAC_CombineColor(1,7);
real_writeb(BIOSMEM_SEG,BIOSMEM_CURRENT_MSR,0x29); // attribute controls blinking
break;
case MCH_CGA:
mode_control=mode_control_list[CurMode->mode];
@ -1210,7 +1203,8 @@ dac_text16:
case 0:real_writeb(BIOSMEM_SEG,BIOSMEM_CURRENT_MSR,0x2c);break;
case 1:real_writeb(BIOSMEM_SEG,BIOSMEM_CURRENT_MSR,0x28);break;
case 2:real_writeb(BIOSMEM_SEG,BIOSMEM_CURRENT_MSR,0x2d);break;
case 3:real_writeb(BIOSMEM_SEG,BIOSMEM_CURRENT_MSR,0x29);break;
case 3:
case 7:real_writeb(BIOSMEM_SEG,BIOSMEM_CURRENT_MSR,0x29);break;
}
break;
case M_LIN4: