From 88ac295380b53f51822eab4c844f4249c33af076 Mon Sep 17 00:00:00 2001 From: Wengier Date: Fri, 19 Nov 2021 22:53:01 -0500 Subject: [PATCH] update --- CHANGELOG | 17 ++++++------ README.md | 4 +-- contrib/windows/installer/DOSBox-X-setup.iss | 29 ++++++++++++++++++-- src/ints/int10_char.cpp | 2 +- 4 files changed, 37 insertions(+), 15 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 91a46e0c5..afb7689ae 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,19 +1,18 @@ 0.83.20 - Add MSR register 0x0000001B to Pentium II - emulation. DOSBox-X does not emulate a local - APIC but Windows Millenium Edition assumes that - MSR is present and reads/writes it on startup - if DOSBox-X reports itself as a Pentium II. - (joncampbell123) + emulation. DOSBox-X does not emulate a local APIC + but Windows ME assumes that MSR is present and + reads/writes it on startup if DOSBox-X reports + itself as a Pentium II. (joncampbell123) - While CPU "debug spew" is silenced by default, remove silencing for RDMSR/WRMSR and SYSENTER/SYSEXIT debug messages (joncampbell123). - Added Pentium II SYSENTER/SYSEXIT instructions to normal core and debugger disassembler. The instructions are stubs at this time to be added - later. (joncampbell123). - - Added Pentium II cputype, to begin development - of such emulation. (joncampbell123) + later. (joncampbell123) + - Added support for Pentium II cputype, to begin + development of such emulation. (joncampbell123) - Added support for DCGA and Toshiba J-3100 emulation modes. The J-3100 emulation can be enabled with the options "dosv=jp" & "j3100=true" in [dosv] section. @@ -23,7 +22,7 @@ e.g. "IMGSWAP D" to swap C: drive to the next swap position, and "IMGSWAP A 3" to swap A: drive to 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) - The command "config -set" is now case-insensitive for property names. Also, if an option cannot be diff --git a/README.md b/README.md index acc7c4abd..761d9b1ef 100644 --- a/README.md +++ b/README.md @@ -219,7 +219,7 @@ some things the design as implemented now cannot accommodate. for hardware made before that point. 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. @@ -227,7 +227,7 @@ some things the design as implemented now cannot accommodate. focus primarily on Windows 1.0 through Windows ME (Millenium Edition), 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. - 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 QEMU, Bochs, VirtualBox, or VMware. diff --git a/contrib/windows/installer/DOSBox-X-setup.iss b/contrib/windows/installer/DOSBox-X-setup.iss index 8f87d02e3..9493104f8 100644 --- a/contrib/windows/installer/DOSBox-X-setup.iss +++ b/contrib/windows/installer/DOSBox-X-setup.iss @@ -395,7 +395,7 @@ end; procedure CurStepChanged(CurrentStep: TSetupStep); var 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; FileLines, FileLinesold, FileLinesnew, FileLinesave: TStringList; begin @@ -663,6 +663,7 @@ begin dosvcn := False; dosvtw := False; dosvset := False; + addcp := True; if not FileExists(ExpandConstant('{app}\SarasaGothicFixed.ttf')) then dosvset:= True; 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 begin dosvcn := True; + addcp := False; end else if ((CompareText(Trim(linetmp), 'tw') = 0) or (CompareText(Trim(linetmp), 'cht') = 0)) and (MsgBox(msg, mbConfirmation, MB_YESNO) = IDYES) then + begin dosvtw := True; + addcp := False; + end; if (tsection and vsection) then break; end @@ -733,10 +738,12 @@ begin linetmp := Copy(FileLinesold[k], 1, Pos('=', FileLinesold[k]) - 1); if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvcn then begin + addcp := True; FileLinesold[k] := linetmp + '= 86,936'; end else if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then begin + addcp := True; FileLinesold[k] := linetmp + '= 886,950'; end; FileLinesave.add(FileLinesold[k]); @@ -764,15 +771,17 @@ begin end else if (CompareText(section, '4dos') = 0) or (CompareText(section, 'config') = 0) or (CompareText(section, 'autoexec') = 0) then 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 - linetmp := Copy(FileLinesnew[i], 1, Pos('=', FileLinesnew[i]) - 1); if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvcn then begin + addcp := True; FileLinesnew[i] := linetmp + '= 86,936'; end else if (CompareText(section, 'config') = 0) and (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then begin + addcp := True; FileLinesnew[i] := linetmp + '= 886,950'; end; FileLinesave.add(FileLinesnew[i]); @@ -839,6 +848,16 @@ begin FileLinesave.add(linetmp + '= ttf'); continue; 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 begin FileLinesave.add(linetmp + '= off'); @@ -857,6 +876,10 @@ begin linenew := linetmp + '= ttf'; if (CompareText(Trim(linetmp), 'dosv') = 0) and (dosvcn or dosvtw) then 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 linenew := linetmp + '= 86,936'; if (CompareText(Trim(linetmp), 'country') = 0) and dosvtw then diff --git a/src/ints/int10_char.cpp b/src/ints/int10_char.cpp index f0190e400..c1696c0e4 100644 --- a/src/ints/int10_char.cpp +++ b/src/ints/int10_char.cpp @@ -1942,7 +1942,7 @@ static void INT10_TeletypeOutputAttr(uint8_t chr,uint8_t attr,bool useattr,uint8 cur_row++; } // Do we need to scroll ? - if(cur_row>=nrows) { + if(cur_row==nrows) { //Fill with black on non-text modes uint8_t fill = 0; if (IS_PC98_ARCH && CurMode->type == M_TEXT) {