Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DosBox-X 0.84.1 is not recognized as a valid operating system by Microsoft QuickBasic 7.1 (alias PDS 7.1) #3626

Closed
2 tasks done
michael-koch opened this issue Jul 13, 2022 · 6 comments
Labels

Comments

@michael-koch
Copy link

Describe the bug

Each time you start, the following error message appears:

WARNING: THIS MICROSOFT PRODUCT HAS BEEN TESTED AND CERTIFIED FOR USE ONLY WITH THE MS-DOS AND PC-DOS OPERATING SYSTEMS. YOUR USE OF THIS PRODUC WITH ANOTHER OPERATING SYSTEM MAY VOID VALUABLE WARRANTY PROTECTION PROVIDED BY MICROSOFT ON THIS PRODUCT.

Under DosBox 0.74-3, no error message is displayed.
If you execute the command ver under DosBox or DosBox-X, a string is displayed in both cases, which differs from the original operating system MS-DOS. Nevertheless, it works under DosBox, but not under DosBox-X. So, the program seems to resort to some other function to determine the validity of the operating system. This function, unknown to me, seems to be implemented under DosBox, but not under DosBox-X.
It could be the folling function from the logfile: ERROR INT10:Function EF00 not supported

Steps to reproduce the behaviour

  1. Open DosBox-X
  2. Install Microsoft QuickBasic 7.1 (Alias PDS 7.1)
  3. Execute the QBX.EXE from the installation folder > bin

Expected behavior

The program runs without an error message.

What operating system(s) this bug have occurred on?

Windows 10 21H2

What version(s) of DOSBox-X have this bug?

0.84.1 (VSBuild) and before

Used configuration

initial (no changes were made after installation except enabling the error log)

Output log

Logging: opened logfile 'error.log' successfully. All further logging will go to this file.
Win32 EnumDisplayDevices #0: name=\\.\DISPLAY1 string=Intel(R) Iris(R) Graphics 540
Win32 EnumDisplayDevices #1: name=\\.\DISPLAY2 string=Intel(R) Iris(R) Graphics 540
Win32 EnumDisplayDevices #2: name=\\.\DISPLAY3 string=Intel(R) Iris(R) Graphics 540
DOSBox-X version 0.84.1 (Windows SDL1)
         0       MISC:Copyright 2011-2022 The DOSBox-X Team. Project maintainer: joncampbell123 (The Great Codeholio). DOSBox-X published under GNU GPL.
         0       GUI:Press Ctrl-F10 to capture/release mouse, Alt-F10 for configuration.
Windows keyboard layout ID is 0x0407
Host keyboard layout is now ger (German)
Mapper keyboard layout is now ger (German)
Windows DPI/blurry apps scaling detected as it might be a large screen.
Please see the DOSBox-X documentation for more details.
SDL: TTF activated 
Configured windowposition: 
Screen report: Method 'Win98base' (1368.000 x 912.000 pixels) at (0.000 x 0.000) (361.950 x 241.300 mm) (14.250 x 9.500 in) (96.000 x 96.000 DPI)
ISA BCLK: 8333333.333Hz (25000000/3)
monopal: green, 
Active save slot: 1 [Empty]
USING AVI+ZMBV
Max 3670016 sz 16384
Final 16384
MIDI:Opened device:win32
Pentium CMPXCHG8B emulation is enabled
         0       FPU:FPU core: double FPU (caution: possible precision errors)

Printer Device List
-------------------------------------------------------------
01 Microsoft XPS Document Writer
02 Microsoft Print to PDF
03 Fax
04 Adobe PDF

         0 WARN  MISC:Can't find matching event for key_jp_ro
VOODOO LFB now at d0000000
Serial1: BASE 3f8h
Serial2: BASE 2f8h
Parallel1: BASE 378h
MPU-401 Registering I/O ports as if IBM PC MPU-401 at base 330h
         0       MISC:MPU IRQ 9
         0       VGA:Video RAM: 2048KB
Screen report: Method 'Win98base' (1368.000 x 912.000 pixels) at (0.000 x 0.000) (361.950 x 241.300 mm) (14.250 x 9.500 in) (96.000 x 96.000 DPI)
Allocated APM BIOS pm entry point at f000:ce40
Writing code to fce40
Writing code to fce60
         0       KEYBOARD:Keyboard AUX emulation enabled
         0       SBLASTER:DSP:Reset
Screen report: Method 'Win98base' (1368.000 x 912.000 pixels) at (0.000 x 0.000) (361.950 x 241.300 mm) (14.250 x 9.500 in) (96.000 x 96.000 DPI)
Windows: IID_ITaskbarList3 is available
         3       INT10:Set Video Mode 3
         3       VGA:Blinking 8
         3       VGA:Blinking 0
         3       MOUSE:INT 15H PS/2 emulation enabled
ISA Plug & Play BIOS enabled
VGA ROM BIOS init callback
         8       INT10:Set Video Mode 3
         8       VGA:Blinking 8
        13 WARN  MISC:MEM_SlowPath called within system RAM at page c4
        13 WARN  MISC:MEM_SlowPath called within system RAM at page c5
        13 WARN  MISC:MEM_SlowPath called within system RAM at page c6
        13 WARN  MISC:MEM_SlowPath called within system RAM at page c7
        13 WARN  MISC:MEM_SlowPath called within system RAM at page c8
        13 WARN  MISC:MEM_SlowPath called within system RAM at page c9
        13 WARN  MISC:MEM_SlowPath called within system RAM at page ca
        13 WARN  MISC:MEM_SlowPath called within system RAM at page cb
        13 WARN  MISC:MEM_SlowPath called within system RAM at page cc
        13 WARN  MISC:MEM_SlowPath called within system RAM at page cd
        13 WARN  MISC:MEM_SlowPath called within system RAM at page ce
        13 WARN  MISC:MEM_SlowPath called within system RAM at page cf
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d0
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d1
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d2
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d3
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d4
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d5
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d6
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d7
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d8
        13 WARN  MISC:MEM_SlowPath called within system RAM at page d9
        13 WARN  MISC:MEM_SlowPath called within system RAM at page da
        13 WARN  MISC:MEM_SlowPath called within system RAM at page db
        13 WARN  MISC:MEM_SlowPath called within system RAM at page dc
        13 WARN  MISC:MEM_SlowPath called within system RAM at page dd
        13 WARN  MISC:MEM_SlowPath called within system RAM at page de
        13 WARN  MISC:MEM_SlowPath called within system RAM at page df
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e0
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e1
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e2
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e3
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e4
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e5
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e6
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e7
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e8
        13 WARN  MISC:MEM_SlowPath called within system RAM at page e9
        13 WARN  MISC:MEM_SlowPath called within system RAM at page ea
        13 WARN  MISC:MEM_SlowPath called within system RAM at page eb
        13 WARN  MISC:MEM_SlowPath called within system RAM at page ec
        13 WARN  MISC:MEM_SlowPath called within system RAM at page ed
        13 WARN  MISC:MEM_SlowPath called within system RAM at page ee
        13 WARN  MISC:MEM_SlowPath called within system RAM at page ef
        17       INT10:Set Video Mode 3
        17       MOUSE:New video mode is the same as the old
Screen report: Method 'Win98base' (1368.000 x 912.000 pixels) at (0.000 x 0.000) (361.950 x 241.300 mm) (14.250 x 9.500 in) (96.000 x 96.000 DPI)
Screen report: Method 'Win98base' (1368.000 x 912.000 pixels) at (0.000 x 0.000) (361.950 x 241.300 mm) (14.250 x 9.500 in) (96.000 x 96.000 DPI)
     14999       VGA:h total 100 end  80 blank ( 80/ 98) retrace ( 85/ 97)
     14999       VGA:v total 449 end 400 blank (407/442) retrace (412/414)
     14999       VGA:VGA refresh rate is now, 70.087
     14999       VGA:screen: 1.333, scanfield: 1.312, scan: 1.016, vratio: 1.800
     14999       VGA:h total 0.03178 (31.47kHz) blank(0.02542/0.03114) retrace(0.02701/0.03082)
     14999       VGA:v total 0.00000 (infHz) blank(12.93341/14.04562) retrace(13.09230/13.15585)
     14999       VGA:video clock: 28.32MHz mode M_TEXT
     14999       VGA:720x400, 70.09Hz, 32bpp, screen 1.333
pixratio 1.350, dw false, dh false
Aspect ratio: 720 x 540  xToY=1.333 yToX=0.750
Screen report: Method 'Win98base' (1368.000 x 912.000 pixels) at (0.000 x 0.000) (361.950 x 241.300 mm) (14.250 x 9.500 in) (96.000 x 96.000 DPI)
   3053892       INT10:Set Video Mode 3
SDL: TTF activated 
   3053892       MOUSE:New video mode is the same as the old
   3053895       DOSMISC:DOS clipboard device (dummy access) is enabled with the name CLIP$
WARNING: No translation support (to host) for code page 0
Loaded system codepage: 437
   3053927       BIOS:Keyboard layout gr successfully loaded
DOS keyboard layout loaded with main language code GR for layout gr
XMS: 50 handles allocated for use by the DOS environment
   3053927       MISC:UMB assigned region is 0xcc00-0xdfff
EMS page frame at 0xe000-0xefff
COMMAND.COM env size:             720 bytes
COMMAND.COM environment block:    0x0701 sz=0x002d
COMMAND.COM main body (PSP):      0x072f sz=0x009a
COMMAND.COM stack:                0x0749
   3053927       FILES:file open command 2 file CON
   3053932       FILES:file open command 2 file CON
   3053937       FILES:file open command 2 file CON
   3053942       FILES:file open command 2 file PRN
   3053942       MOUSE:INT 33H emulation enabled
   3056885       VGA:h total 100 end  80 blank ( 80/ 98) retrace ( 85/ 97)
   3056885       VGA:v total 449 end 400 blank (407/442) retrace (412/414)
   3056885       VGA:VGA refresh rate is now, 70.087
   3056885       VGA:screen: 1.333, scanfield: 1.312, scan: 1.016, vratio: 1.800
   3056885       VGA:h total 0.03178 (31.47kHz) blank(0.02542/0.03114) retrace(0.02701/0.03082)
   3056885       VGA:v total 14.26806 (70.09Hz) blank(12.93341/14.04562) retrace(13.09230/13.15585)
   3056885       VGA:video clock: 28.32MHz mode M_TEXT
   3080488       FILES:Special file open command 80 file Z:\AUTOEXEC.BAT
   3080488       FILES:Closing file AUTOEXEC.BAT
   3080488       FILES:Special file open command 80 file Z:\AUTOEXEC.BAT
   3080488       FILES:Closing file AUTOEXEC.BAT
   3080488       FILES:Special file open command 80 file Z:\AUTOEXEC.BAT
   3080488       FILES:Closing file AUTOEXEC.BAT
  19051303       DOSMISC:DIRCACHE: Set volume label to xyz
GUI: Drive C is mounted as local directory
  19051303       DOSMISC:DIRCACHE: Set volume label to C_DRIVE
  22526780 WARN  MISC:Can't find matching event for key_jp_ro
  41089317       FILES:file search attributes FFF7 name "C:\QB71"
  52874038       FILES:file search attributes 10 name "C:\QB71"
  52874038       FILES:file search attributes FFF7 name "C:\QB71\BIN"
  61750105       EXEC:Execute qbx.EXE 0
  61750105       FILES:file open command 0 file qbx.EXE
  61750105       FILES:Closing file QB71\BIN\QBX.EXE
  61762724       DOSMISC:Call is made for list of lists - let's hope for the best
  65077419       FILES:file open command 0 file C:\QB71\BIN\QBX.EXE
  65109994       FILES:Closing file QB71\BIN\QBX.EXE
  65126740 ERROR INT10:Function EF00 not supported
  65151848       FILES:file open command 0 file C:\QB71\BIN\qbx.ini
  65151860       FILES:Closing file QB71\BIN\QBX.INI
  65151888       FILES:file open command 0 file C:\QB71\BIN\qbx.ini
  65152407       FILES:Closing file QB71\BIN\QBX.INI
  65155797       VGA:Blinking 0
  65156079       MOUSE:INT 33h reset
  65156088       KEYBOARD:PS/2 mouse emulation: Program is using INT 33h, disabling direct AUX emulation
  65156088       MOUSE:INT 33h reset
  65156153       MOUSE:Define Horizontal range min:3 max:635
  65156180       MOUSE:Define Vertical range min:4 max:196
  65156706       KEYBOARD:PS/2 mouse emulation: Program is using INT 33h, disabling direct AUX emulation
  65156706       MOUSE:INT 33h reset
  65156732       KEYBOARD:PS/2 mouse emulation: Program is using INT 33h, disabling direct AUX emulation
  65156732       MOUSE:INT 33h reset
  65156799       MOUSE:Define Horizontal range min:3 max:635
  65156826       MOUSE:Define Vertical range min:4 max:196
  65167448       KEYBOARD:PS/2 mouse emulation: Program is using INT 33h, disabling direct AUX emulation
  65167448       MOUSE:INT 33h reset
  65167474       KEYBOARD:PS/2 mouse emulation: Program is using INT 33h, disabling direct AUX emulation
  65167474       MOUSE:INT 33h reset
  65167541       MOUSE:Define Horizontal range min:3 max:635
  65167568       MOUSE:Define Vertical range min:4 max:196
  77078662       KEYBOARD:PS/2 mouse emulation: Program is using INT 33h, disabling direct AUX emulation
  77078662       MOUSE:INT 33h reset
  77098863       VGA:Blinking 8
  77098904 WARN  INT10:Function 12:Call 30 (select vertical resolution)
  77113791       FILES:Closing file CON
  77113791       FILES:Closing file CON
  77113791       FILES:Closing file CON
  77113791       FILES:Closing file CON
  77113791       FILES:Closing file LPT1
  83226689       SBLASTER:DSP:Reset
--END OF LOG--

Additional information

No response

Have you checked that no similar bug report(s) exist?

  • I have searched and didn't find any similar bug report.

Code of Conduct & Contributing Guidelines

  • I agree to follow the code of conduct and the contributing guidelines.
@grapeli
Copy link

grapeli commented Jul 14, 2022

Behavior under very early versions of dosbox-x is identical to dosbox-svn.

I ran a git bisect.
This commit is to blame.
9fbbb52 Looking at include/dos_inc.h, we need to allocate 0x80 bytes for the DOS info block.

Starting from this, a warning appears about the not recognized DOS version as MS-DOS or PC-DOS.

@grapeli
Copy link

grapeli commented Jul 15, 2022

Withdrawing this commit, i.e. returning to the previous state, QuickBasic 7.1 starts without this unnecessary warning.
https://github.com/joncampbell123/dosbox-x/blob/master/src/dos/dos.cpp#L4126
DOS_INFOBLOCK_SEG = DOS_GetMemory(0x20,"DOS_INFOBLOCK_SEG"); // was 0x80

@Jookia
Copy link
Contributor

Jookia commented Jul 25, 2022

@joncampbell123 Could you explain 9fbbb52 in a bit more detail?

@joncampbell123
Copy link
Owner

@joncampbell123 Could you explain 9fbbb52 in a bit more detail?

The intent was to allocate in sequence instead of hardcoding segment offsets. Does QuickBasic require that at segment_base+0x80?

@rderooy
Copy link
Contributor

rderooy commented Apr 14, 2023

See https://www.os2museum.com/wp/how-to-void-your-valuable-warranty/ for an explenation of what is happening...

This was a MS trick to get people to buy MS DOS rather than DR DOS.

Apparently NTVDM has the same issue.
https://www.os2museum.com/wp/about-that-warranty/

@joncampbell123
Copy link
Owner

Fixed. Those specific DOS kernel structures are allocated properly and line up to satisfy any Microsoft software that checks the DOS kernel in this manner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants