This commit is contained in:
Wengier
2021-11-19 22:53:01 -05:00
parent 508c04170e
commit 88ac295380
4 changed files with 37 additions and 15 deletions

View File

@@ -1,19 +1,18 @@
0.83.20 0.83.20
- Add MSR register 0x0000001B to Pentium II - Add MSR register 0x0000001B to Pentium II
emulation. DOSBox-X does not emulate a local emulation. DOSBox-X does not emulate a local APIC
APIC but Windows Millenium Edition assumes that but Windows ME assumes that MSR is present and
MSR is present and reads/writes it on startup reads/writes it on startup if DOSBox-X reports
if DOSBox-X reports itself as a Pentium II. itself as a Pentium II. (joncampbell123)
(joncampbell123)
- While CPU "debug spew" is silenced by default, - While CPU "debug spew" is silenced by default,
remove silencing for RDMSR/WRMSR and remove silencing for RDMSR/WRMSR and
SYSENTER/SYSEXIT debug messages (joncampbell123). SYSENTER/SYSEXIT debug messages (joncampbell123).
- Added Pentium II SYSENTER/SYSEXIT instructions - Added Pentium II SYSENTER/SYSEXIT instructions
to normal core and debugger disassembler. The to normal core and debugger disassembler. The
instructions are stubs at this time to be added instructions are stubs at this time to be added
later. (joncampbell123). later. (joncampbell123)
- Added Pentium II cputype, to begin development - Added support for Pentium II cputype, to begin
of such emulation. (joncampbell123) development of such emulation. (joncampbell123)
- Added support for DCGA and Toshiba J-3100 emulation - Added support for DCGA and Toshiba J-3100 emulation
modes. The J-3100 emulation can be enabled with the modes. The J-3100 emulation can be enabled with the
options "dosv=jp" & "j3100=true" in [dosv] section. options "dosv=jp" & "j3100=true" in [dosv] section.
@@ -23,7 +22,7 @@
e.g. "IMGSWAP D" to swap C: drive to the next swap e.g. "IMGSWAP D" to swap C: drive to the next swap
position, and "IMGSWAP A 3" to swap A: drive to position, and "IMGSWAP A 3" to swap A: drive to
the 3nd swap position. (Wengier) the 3nd swap position. (Wengier)
- The CAPMOUSE command without a paramter now shows - The CAPMOUSE command without a parameter now shows
whether the mouse is captured/released. (Wengier) whether the mouse is captured/released. (Wengier)
- The command "config -set" is now case-insensitive - The command "config -set" is now case-insensitive
for property names. Also, if an option cannot be for property names. Also, if an option cannot be

View File

@@ -219,7 +219,7 @@ some things the design as implemented now cannot accommodate.
for hardware made before that point. for hardware made before that point.
Contributers are free to focus on emulating hardware within the Contributers are free to focus on emulating hardware within the
timeframe between 1980 and 2000/2001 of their choice. time frame between 1980 and 2000/2001 of their choice.
* Windows guest emulation, Windows XP or later. * Windows guest emulation, Windows XP or later.
@@ -227,7 +227,7 @@ some things the design as implemented now cannot accommodate.
focus primarily on Windows 1.0 through Windows ME (Millenium Edition), focus primarily on Windows 1.0 through Windows ME (Millenium Edition),
and then on Windows NT through Windows 2000. Windows XP and later and then on Windows NT through Windows 2000. Windows XP and later
versions are not a priority and will not be considered at this time. versions are not a priority and will not be considered at this time.
These Windows versions are not based on DOS. These versions of Windows are not based on DOS.
If you need to run Windows XP and later, please consider using If you need to run Windows XP and later, please consider using
QEMU, Bochs, VirtualBox, or VMware. QEMU, Bochs, VirtualBox, or VMware.

View File

@@ -395,7 +395,7 @@ end;
procedure CurStepChanged(CurrentStep: TSetupStep); procedure CurStepChanged(CurrentStep: TSetupStep);
var var
i, j, k, adv, res: Integer; i, j, k, adv, res: Integer;
tsection, vsection, dosvcn, dosvtw, dosvset, found1, found2, found3, found4: Boolean; tsection, vsection, addcp, dosvcn, dosvtw, dosvset, found1, found2, found3, found4: Boolean;
refname, section, line, linetmp, lineold, linenew, SetupType: String; refname, section, line, linetmp, lineold, linenew, SetupType: String;
FileLines, FileLinesold, FileLinesnew, FileLinesave: TStringList; FileLines, FileLinesold, FileLinesnew, FileLinesave: TStringList;
begin begin
@@ -663,6 +663,7 @@ begin
dosvcn := False; dosvcn := False;
dosvtw := False; dosvtw := False;
dosvset := False; dosvset := False;
addcp := True;
if not FileExists(ExpandConstant('{app}\SarasaGothicFixed.ttf')) then if not FileExists(ExpandConstant('{app}\SarasaGothicFixed.ttf')) then
dosvset:= True; dosvset:= True;
for j := 0 to FileLinesold.Count - 1 do for j := 0 to FileLinesold.Count - 1 do
@@ -695,9 +696,13 @@ begin
if ((CompareText(Trim(linetmp), 'cn') = 0) or (CompareText(Trim(linetmp), 'chs') = 0)) and (MsgBox(msg, mbConfirmation, MB_YESNO) = IDYES) then if ((CompareText(Trim(linetmp), 'cn') = 0) or (CompareText(Trim(linetmp), 'chs') = 0)) and (MsgBox(msg, mbConfirmation, MB_YESNO) = IDYES) then
begin begin
dosvcn := True; dosvcn := True;
addcp := False;
end end
else if ((CompareText(Trim(linetmp), 'tw') = 0) or (CompareText(Trim(linetmp), 'cht') = 0)) and (MsgBox(msg, mbConfirmation, MB_YESNO) = IDYES) then else if ((CompareText(Trim(linetmp), 'tw') = 0) or (CompareText(Trim(linetmp), 'cht') = 0)) and (MsgBox(msg, mbConfirmation, MB_YESNO) = IDYES) then
begin
dosvtw := True; dosvtw := True;
addcp := False;
end;
if (tsection and vsection) then if (tsection and vsection) then
break; break;
end end
@@ -733,10 +738,12 @@ begin
linetmp := Copy(FileLinesold[k], 1, Pos('=', FileLinesold[k]) - 1); linetmp := Copy(FileLinesold[k], 1, Pos('=', FileLinesold[k]) - 1);
if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvcn then if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvcn then
begin begin
addcp := True;
FileLinesold[k] := linetmp + '= 86,936'; FileLinesold[k] := linetmp + '= 86,936';
end end
else if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then else if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then
begin begin
addcp := True;
FileLinesold[k] := linetmp + '= 886,950'; FileLinesold[k] := linetmp + '= 886,950';
end; end;
FileLinesave.add(FileLinesold[k]); FileLinesave.add(FileLinesold[k]);
@@ -764,15 +771,17 @@ begin
end end
else if (CompareText(section, '4dos') = 0) or (CompareText(section, 'config') = 0) or (CompareText(section, 'autoexec') = 0) then else if (CompareText(section, '4dos') = 0) or (CompareText(section, 'config') = 0) or (CompareText(section, 'autoexec') = 0) then
begin begin
if (FileLines.Count=0) then linetmp := Copy(FileLinesnew[i], 1, Pos('=', FileLinesnew[i]) - 1);
if (FileLines.Count=0) or (not addcp and (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0)) then
begin begin
linetmp := Copy(FileLinesnew[i], 1, Pos('=', FileLinesnew[i]) - 1);
if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvcn then if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvcn then
begin begin
addcp := True;
FileLinesnew[i] := linetmp + '= 86,936'; FileLinesnew[i] := linetmp + '= 86,936';
end end
else if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then else if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then
begin begin
addcp := True;
FileLinesnew[i] := linetmp + '= 886,950'; FileLinesnew[i] := linetmp + '= 886,950';
end; end;
FileLinesave.add(FileLinesnew[i]); FileLinesave.add(FileLinesnew[i]);
@@ -839,6 +848,16 @@ begin
FileLinesave.add(linetmp + '= ttf'); FileLinesave.add(linetmp + '= ttf');
continue; continue;
end; end;
if (CompareText(section, 'dosbox') = 0) and (CompareText(Trim(linetmp), 'language') = 0) and (SetupType <> 'compact') and dosvcn then
begin
FileLinesave.add(linetmp + '= zh_CN');
continue;
end;
if (CompareText(section, 'dosbox') = 0) and (CompareText(Trim(linetmp), 'language') = 0) and (SetupType <> 'compact') and dosvtw then
begin
FileLinesave.add(linetmp + '= zh_TW');
continue;
end;
if (CompareText(section, 'dosv') = 0) and (CompareText(Trim(linetmp), 'dosv') = 0) and ((CompareText(Trim(Copy(lineold, Pos('=', lineold) + 1, Length(lineold))), 'cn') = 0) and dosvcn) or ((CompareText(Trim(Copy(lineold, Pos('=', lineold) + 1, Length(lineold))), 'tw') = 0) and dosvtw) then if (CompareText(section, 'dosv') = 0) and (CompareText(Trim(linetmp), 'dosv') = 0) and ((CompareText(Trim(Copy(lineold, Pos('=', lineold) + 1, Length(lineold))), 'cn') = 0) and dosvcn) or ((CompareText(Trim(Copy(lineold, Pos('=', lineold) + 1, Length(lineold))), 'tw') = 0) and dosvtw) then
begin begin
FileLinesave.add(linetmp + '= off'); FileLinesave.add(linetmp + '= off');
@@ -857,6 +876,10 @@ begin
linenew := linetmp + '= ttf'; linenew := linetmp + '= ttf';
if (CompareText(Trim(linetmp), 'dosv') = 0) and (dosvcn or dosvtw) then if (CompareText(Trim(linetmp), 'dosv') = 0) and (dosvcn or dosvtw) then
linenew := linetmp + '= off'; linenew := linetmp + '= off';
if (CompareText(Trim(linetmp), 'language') = 0) and (SetupType <> 'compact') and dosvcn then
linenew := linetmp + '= zh_CN';
if (CompareText(Trim(linetmp), 'language') = 0) and (SetupType <> 'compact') and dosvtw then
linenew := linetmp + '= zh_TW';
if (CompareText(Trim(linetmp), 'country') = 0) and dosvcn then if (CompareText(Trim(linetmp), 'country') = 0) and dosvcn then
linenew := linetmp + '= 86,936'; linenew := linetmp + '= 86,936';
if (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then if (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then

View File

@@ -1942,7 +1942,7 @@ static void INT10_TeletypeOutputAttr(uint8_t chr,uint8_t attr,bool useattr,uint8
cur_row++; cur_row++;
} }
// Do we need to scroll ? // Do we need to scroll ?
if(cur_row>=nrows) { if(cur_row==nrows) {
//Fill with black on non-text modes //Fill with black on non-text modes
uint8_t fill = 0; uint8_t fill = 0;
if (IS_PC98_ARCH && CurMode->type == M_TEXT) { if (IS_PC98_ARCH && CurMode->type == M_TEXT) {