bluewaysw / pcgeos

#FreeGEOS source codes. The offical home of the PC/GEOS operating system technology. For personal computing fans. For all developers and assembly lovers. For YOU!
Apache License 2.0
762 stars 88 forks source link

Issues when running Ensemble 4.13 in VirtualBox with FreeDOS #83

Open danielnez1 opened 4 years ago

danielnez1 commented 4 years ago

Hello,

Over the years I have noticed persistent issues when running Ensemble under VirtualBox with various flavours of DOS.

The main issues seem to be screen corruption and/or the VM resetting or KR-07 errors when opening/creating archives in GeoZip and system freezes when playing Solitaire (which seems to happen when cards are drawn/moved). This seems to effect Ensamble 4.13 on various versions of DOS, though I can verify that it is still an issue with FreeDOS 1.2 with all updates applied and running this on VirtualBox 6.0.10 with no CPU cap.

I have also tested Ensemble 4.13 on a Thinkpad X41 running FreeDOS 1.2 + updates and while Solitaire runs fine, it runs into the same issues with GeoZip.

I don't have much experience with DOS debugging etc. but my guess that VirtualBox has some issues with providing authentic PC emulation for DOS especially with upper memory and that JEMMEX is causing conflicts (I did try the older Emm386 driver on VirtualBox and the X41 but it did not resolve the issues).

For reference, my abridged config for FreeDOS on VirtualBox is: Files = 120 Buffers = 20 JEMMEX with the parameters NOEMS X=TEST I=B000-B7FF I=C800-EFFF NOVME NOINVLPG

Any insights would be appreciated :)

Dan

lproven commented 4 years ago

Hello,

Over the years I have noticed persistent issues when running Ensemble under VirtualBox with various flavours of DOS. [...] Any insights would be appreciated :)

Which flavours of DOS?

I have not tried Ensemble in VBox (yet) but I have done quite a bit of experimentation with DOS and it generally works well for me.

If you want something FOSS, well, there's DR OpenDOS -- I have blogged about how to get that here: https://liam-on-linux.livejournal.com/58013.html

It's not FOSS but IBM has made PC DOS 7.1 available for free download in the ServerGuide Scripting Toolkit.. Only some core files are present -- you must take the rest from a copy of PC-DOS 7.01, AKA PC DOS 2000. It was included free with VirtualPC, which is a free download from Microsoft now. You can find it in many places online. https://liam-on-linux.livejournal.com/59703.html

This would help isolate if the problems were with FreeDOS or with VirtualBox.

danielnez1 commented 4 years ago

Hello, Over the years I have noticed persistent issues when running Ensemble under VirtualBox with various flavours of DOS. [...] Any insights would be appreciated :)

Which flavours of DOS?

I have not tried Ensemble in VBox (yet) but I have done quite a bit of experimentation with DOS and it generally works well for me.

If you want something FOSS, well, there's DR OpenDOS -- I have blogged about how to get that here: https://liam-on-linux.livejournal.com/58013.html

It's not FOSS but IBM has made PC DOS 7.1 available for free download in the ServerGuide Scripting Toolkit.. Only some core files are present -- you must take the rest from a copy of PC-DOS 7.01, AKA PC DOS 2000. It was included free with VirtualPC, which is a free download from Microsoft now. You can find it in many places online. https://liam-on-linux.livejournal.com/59703.html

This would help isolate if the problems were with FreeDOS or with VirtualBox.

Thanks for the reply, I have tried PC DOS 2000, MS-DOS 6.22, the unofficial MS-DOS 7.1 (it doesn't seem to work with that at all, it hangs after the splash screen), and DR-DOS 7.03. On all versions those it has the same issues with Solitaire and GeoZip. That is what lead me to suspect there is something up with how VirtualBox handles conventional memory and UMB in the VM. IIRC with DR-DOS 7.03 the issue with GeoZip would occasionally cause EMM386 to produce an error. On my X41 I have only tried it with FreeDOS, mainly due to that supporting FAT32 out of the box.

Cheers,

Dan

lproven commented 4 years ago

Oh my! OK, that's a pretty comprehensive selection. :-)

I will try to reproduce this but my diary is quite busy at the moment...

danielnez1 commented 4 years ago

Yes I suppose it is :-D

Just for clarity, I should point out that the install is from my old Ensemble 4.12 CD from Breadbox with the geos.geo patch for 4.13. I haven't tried to compile the FreeGEOS version on here with Watcom to see if that makes a difference.

Also, Rainer Bettsteller's version of GeoZip works fine.

danielnez1 commented 4 years ago

Hi,

Just a quick update, I built and installed a non-EC version of Ensemble from the code on here on the 14th. Using FreeDOS 1.2 with the latest online updates and Virtualbox 6.1.12 r139181 on KDE Neon produced the same crashes when using GeoZip (occasionally showing KR-09.

For referance, below is the output form SYSINFO if that is any use:

Ensemble System Information

This information is for troubleshooting only. It does not affect the configuration or operation of Ensemble.

Date: 8/14/2020 Time: 22:36:35 Kernel release: 4.1.0.1 Kernel protocol: 654.66 Second interrupt controller: YES Real time clock: YES Math co-processor: YES Micro channel: NO CPU type: 80486 Machine type: PC AT Tony index: 6553.5 DOS version: 7.10 Conventional memory: 639K Heap size: 929K Unclaimed extended memory: 0K Segment of kernel code: 0x16a0

DRIVES: A: removable, type: 3.5", default media: 1.44M C: type: FIXED, default media: FIXED, free space 3520K D: type: FIXED, default media: FIXED, free space 0K E: removable, type: CD ROM, default media: CUSTOM

SWAP DRIVERS: xms drvr, 16383 pages of 1024 bytes each, 16383 pages free disk drvr, 2048 pages of 2048 bytes each, 2025 pages free

STREAM DRIVERS: serial drvr, COM1 paralleldrvr, LPT4

First part of BIOS1 (f800h:0): 0000: 89 7c 18 8b 56 f6 26 89 54 1a 8b 56 f8 26 89 54 ".|..V.&.T..V.&.T" 0010: 1c 0f b6 c4 8d 66 fc 5f 5e 5d c2 04 00 55 89 e5 ".....f.^]...U.." 0020: 56 57 83 ec 16 8b 76 04 8e 46 06 26 8a 44 0c 2c "VW....v..F.&.D.," 0030: 08 88 46 fa 3c 04 76 13 0f b6 46 fa 50 68 99 0b "..F.<.v...F.Ph.." 0040: 68 7a 0b 6a 07 e8 db 99 83 c4 08 8e 46 06 26 8b "hz.j........F.&." 0050: 7c 0e c7 46 e6 8a 00 26 8b 44 06 26 8b 5c 04 26 "|..F...&.D.&..&" 0060: 8b 4c 02 26 8b 14 86 c4 86 df 86 cd 86 d6 92 87 ".L.&............" 0070: cb 89 46 ee 89 5e ec 89 4e ea 89 56 e8 c6 46 f4 "..F..^..N..V..F." 0080: 00 89 f8 31 d2 86 c4 86 d6 92 89 46 f0 89 56 f2 "...1.......F..V." 0090: c6 46 f5 00 0f b6 46 fa c1 e0 02 89 f3 01 c3 26 ".F....F........&" 00a0: 8b 87 94 02 26 8a 97 96 02 89 7e f6 c7 46 f8 00 "....&.....~..F.." 00b0: 00 b9 09 00 d1 66 f6 d1 56 f8 e2 f8 66 ff 76 f6 ".....f..V...f.v." 00c0: 66 26 ff 74 08 6a 10 30 f6 8c d1 8d 5e e6 e8 9c "f&.t.j.0....^..." 00d0: fd 88 c4 84 c0 75 15 8e 46 06 26 89 7c 18 8b 56 ".....u..F.&.|..V" 00e0: f6 26 89 54 1a 8b 56 f8 26 89 54 1c 0f b6 c4 8d ".&.T..V.&.T....." 00f0: 66 fc 5f 5e 5d c2 04 00 55 89 e5 56 57 83 ec 0c "f.^]...U..VW..." 0100: 88 56 fa 89 5e f2 89 4e f4 bb 0e 00 ba 40 00 8e ".V..^..N.....@.." 0110: c2 26 8b 17 be 5e 00 89 56 f6 80 7e 0a 02 75 1f ".&...^..V..~..u." 0120: bb 24 0f 8c d9 b8 04 00 e8 b7 98 68 ac 0b 68 bc ".$.........h..h." 0130: 0b 6a 04 e8 ed 98 83 c4 06 ba 01 00 e9 16 01 2d ".j.............-" 0140: 08 00 c1 e0 02 80 6e fa 02 8e 46 f6 89 f7 01 c7 "......n...F....." 0150: 26 8b 9d 94 02 26 8a 85 96 02 88 46 f8 89 da ec "&....&.....F...." 0160: 2a e4 a8 01 75 f7 31 da 8b 46 06 03 46 04 8b 4e "...u.1..F..F..N" 0170: 08 11 d1 8e 46 f6 26 8b 54 20 31 ff 01 d0 89 46 "....F.&.T 1....F" 0180: f0 11 cf 89 fa b9 0c 00 d1 ea d1 d8 e2 fa 25 f0 "..............%." 0190: 00 0f b6 4e fa 09 c1 8a 46 f8 89 da ee 30 c0 ee "...N....F....0.." 01a0: 88 c8 ee 8a 46 f0 ee 8b 46 f0 89 fa b9 08 00 d1 "....F...F......." 01b0: ea d1 d8 e2 fa 89 da ee 31 c9 0f b6 46 fa 39 c1 "........1...F.9." 01c0: 73 0e c4 7e f2 01 cf 26 8a 05 89 da ee 41 eb ea "s..~...&.....A.." 01d0: 89 da ec 2a e4 a8 01 75 f7 a8 02 74 0e 8d 57 03 "......u...t..W." 01e0: 30 c0 ee ec 2a e4 ba 03 00 eb 6a 8b 46 04 85 c0 "0...*.....j.F..." 01f0: 74 08 8d 57 01 89 c1 ec e2 fd 8b 46 06 8e 46 f6 "t..W.......F..F."

First part of BIOS2 (f000h:0): 0000: df 02 25 02 09 2a ff 50 f6 0f 08 27 80 df 02 25 "..%...P...'...%" 0010: 02 09 2a ff 50 f6 0f 08 27 40 df 02 25 02 0f 1b "...P...'@..%..." 0020: ff 54 f6 0f 08 4f 00 df 02 25 02 09 2a ff 50 f6 ".T...O...%..*.P." 0030: 0f 08 4f 80 af 02 25 02 12 1b ff 6c f6 0f 08 4f "..O...%....l...O" 0040: 00 af 02 25 02 24 1b ff 54 f6 0f 08 4f c0 af 02 "...%.$..T...O..." 0050: 25 02 ff 1b ff 54 f6 0f 08 ff 00 01 00 02 02 03 "%....T.........." 0060: 03 04 04 05 05 0e 06 0f 06 00 00 00 00 00 00 00 "................" 0070: 79 2c f8 80 6b 90 0b a2 00 00 00 00 00 00 58 2f "y,..k.........X/" 0080: c3 3c c3 3c 00 00 00 00 00 00 00 00 00 00 69 2b ".<.<..........i+" 0090: 1e 2c 00 00 00 00 42 7f 1d 80 41 8f e7 8f 00 a0 ".,....B...A....." 00a0: 07 a1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "................" 00b0: 5f 33 32 5f 00 da 0f 00 00 01 f3 00 00 00 00 00 "32............" 00c0: 43 50 55 49 44 20 45 44 58 3a 20 30 78 25 6c 78 "CPUID EDX: 0x%lx" 00d0: 0a 00 4e 4d 49 20 48 61 6e 64 6c 65 72 20 63 61 "..NMI Handler ca" 00e0: 6c 6c 65 64 0a 00 49 4e 54 31 38 3a 20 42 4f 4f "lled..INT18: BOO" 00f0: 54 20 46 41 49 4c 55 52 45 0a 00 25 73 0a 00 00 "T FAILURE..%s..." 0100: 46 41 54 41 4c 3a 20 00 62 69 6f 73 5f 70 72 69 "FATAL: .bios_pri" 0110: 6e 74 66 3a 20 75 6e 6b 6e 6f 77 6e 20 25 6c 6c "ntf: unknown %ll" 0120: 20 66 6f 72 6d 61 74 0a 00 62 69 6f 73 5f 70 72 " format..bios_pr" 0130: 69 6e 74 66 3a 20 75 6e 6b 6e 6f 77 6e 20 66 6f "intf: unknown fo" 0140: 72 6d 61 74 0a 00 4e 6f 20 50 43 49 20 49 44 45 "rmat..No PCI IDE" 0150: 20 63 6f 6e 74 72 6f 6c 6c 65 72 2c 20 6e 6f 74 " controller, not" 0160: 20 70 72 6f 62 69 6e 67 20 49 44 45 0a 00 61 74 " probing IDE..at" 0170: 61 2d 64 65 74 65 63 74 3a 20 46 61 69 6c 65 64 "a-detect: Failed" 0180: 20 74 6f 20 64 65 74 65 63 74 20 41 54 41 20 64 " to detect ATA d" 0190: 65 76 69 63 65 0a 00 61 74 61 25 64 2d 25 64 3a "evice..ata%d-%d:" 01a0: 20 50 43 48 53 3d 25 75 2f 25 75 2f 25 75 20 4c " PCHS=%u/%u/%u L" 01b0: 43 48 53 3d 25 75 2f 25 75 2f 25 75 0a 00 61 74 "CHS=%u/%u/%u..at" 01c0: 61 2d 64 65 74 65 63 74 3a 20 46 61 69 6c 65 64 "a-detect: Failed" 01d0: 20 74 6f 20 64 65 74 65 63 74 20 41 54 41 50 49 " to detect ATAPI" 01e0: 20 64 65 76 69 63 65 0a 00 20 73 6c 61 76 65 00 " device.. slave." 01f0: 6d 61 73 74 65 72 00 61 74 61 25 64 20 25 73 3a "master.ata%d %s:"

First part of video ROM (c000h:0): 0000: 55 aa 40 e9 e2 09 00 00 00 00 00 00 00 00 00 00 "U.@............." 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49 42 "..............IB" 0020: 4d 00 9c 80 fc 0f 75 06 e8 4c 01 e9 b9 00 80 fc "M.....u..L......" 0030: 1a 75 06 e8 f6 04 e9 ae 00 80 fc 0b 75 06 e8 a8 ".u..........u..." 0040: 00 e9 a3 00 3d 03 11 75 06 e8 d7 03 e9 98 00 80 "....=..u........" 0050: fc 12 75 3d 80 fb 10 75 06 e8 d4 03 e9 88 00 80 "..u=...u........" 0060: fb 30 75 05 e8 ec 03 eb 7e 80 fb 31 75 05 e8 35 ".0u.....~..1u..5" 0070: 04 eb 74 80 fb 32 75 05 e8 4d 04 eb 6a 80 fb 33 "..t..2u..M..j..3" 0080: 75 05 e8 61 04 eb 60 80 fb 34 75 4f e8 7b 04 eb "u..a....4uO.{.." 0090: 56 3d 1b 10 74 45 80 fc 10 75 05 e8 00 01 eb 47 "V=..tE...u.....G" 00a0: 80 fc 4f 75 36 3c 03 75 05 e8 16 07 eb 39 3c 05 "..Ou6<.u.....9<." 00b0: 75 05 e8 32 07 eb 30 3c 07 75 05 e8 56 07 eb 27 "u..2..0<.u..V..'" 00c0: 3c 08 75 05 e8 81 07 eb 1e 3c 09 75 05 e8 af 07 "<.u......<.u...." 00d0: eb 15 3c 0a 75 05 e8 0a 08 eb 0c 06 1e 60 0e 1f "..<.u.........." 00e0: fc e8 79 33 61 1f 07 9d cf 80 ff 00 74 06 80 ff "..y3a.......t..." 00f0: 01 74 52 c3 50 53 51 52 1e ba 40 00 8e da ba da ".tR.PSQR..@....." 0100: 03 ec 80 3e 49 00 03 76 2f ba c0 03 b0 00 ee 8a "...>I..v/......." 0110: c3 24 0f a8 08 74 02 04 08 ee b1 01 80 e3 10 ba ".$...t.........." 0120: c0 03 8a c1 ee ba c1 03 ec 24 ef 0a c3 ba c0 03 ".........$......" 0130: ee fe c1 80 f9 04 75 e7 b0 20 ee ba da 03 ec 1f "......u.. ......" 0140: 5a 59 5b 58 c3 50 53 51 52 ba da 03 ec b1 01 80 "ZY[X.PSQR......." 0150: e3 01 ba c0 03 8a c1 ee ba c1 03 ec 24 fe 0a c3 "............$..." 0160: ba c0 03 ee fe c1 80 f9 04 75 e7 b0 20 ee ba da ".........u.. ..." 0170: 03 ec 5a 59 5b 58 c3 1e b8 40 00 8e d8 53 bb 62 "..ZY[X...@...S.b" 0180: 00 8a 07 5b 8a f8 53 bb 87 00 8a 27 80 e4 80 bb "...[..S....'...." 0190: 49 00 8a 07 0a c4 bb 4a 00 8a 27 5b 1f c3 3c 00 "I......J..'[..<." 01a0: 75 02 eb 61 3c 01 75 02 eb 79 3c 02 75 02 eb 7b "u..a<.u..y<.u..{" 01b0: 3c 03 75 03 e9 a5 00 3c 07 75 03 e9 c8 00 3c 08 "<.u....<.u....<." 01c0: 75 03 e9 e9 00 3c 09 75 03 e9 f0 00 3c 10 75 03 "u....<.u....<.u." 01d0: e9 2e 01 3c 12 75 03 e9 40 01 3c 13 75 03 e9 61 "...<.u..@.<.u..a" 01e0: 01 3c 15 75 03 e9 a1 01 3c 17 75 03 e9 b5 01 3c ".<.u....<.u....<" 01f0: 18 75 03 e9 d6 01 3c 19 75 03 e9 da 01 3c 1a 75 ".u....<.u....<.u"

Bios data area (0040h:0): 0000: f8 03 00 00 00 00 00 00 00 00 00 00 00 00 c0 9f "................" 0010: 2f 02 00 7f 02 00 00 00 00 00 3c 00 3c 00 63 2e "/.........<.<.c." 0020: 64 20 20 39 2e 34 2e 34 0d 1c 65 12 6e 31 73 1f "d 9.4.4..e.n1s." 0030: 65 12 6d 32 62 30 6c 26 65 12 0d 1c 0d 1c 81 00 "e.m2b0l&e......." 0040: 00 20 48 04 00 00 00 01 02 12 50 00 00 a0 00 00 ". H.......P....." 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "................" 0060: 07 06 00 d4 03 29 30 00 00 00 00 00 f2 9c 16 00 ".....)0........." 0070: 00 00 00 00 00 01 c0 00 00 00 00 20 0a 00 00 00 "........... ...." 0080: 1e 00 3e 00 1d 10 00 60 f9 51 08 80 00 00 00 07 "..>....`.Q......" 0090: 07 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 "................" 00a0: 00 00 00 00 00 00 00 00 51 55 00 c0 00 00 00 00 "........QU......" 00b0: 00 00 00 00 00 00 00 00 00 01 18 01 00 00 00 00 "................" 00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "................" 00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "................" 00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "................" 00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "................"

** CONFIG.SYS **

<<< FILE NOT PRESENT >>>

** AUTOEXEC.BAT **

@ECHO OFF SET DOSDIR=C:\FDOS SET LANG=EN SET TZ=UTC SET PATH=%dosdir%\BIN if exist %dosdir%\LINKS\NUL SET PATH=%path%;%dosdir%\LINKS SET NLSPATH=%dosdir%\NLS SET HELPPATH=%dosdir%\HELP SET TEMP=%dosdir%\TEMP SET TMP=%TEMP% SET BLASTER=A220 I5 D1 H5 P330 SET DIRCMD=/P /OGN /Y SET COPYCMD=/-Y

IF "%config%"=="4" GOTO END DEVLOAD /H /Q %dosdir%\BIN\UDVD2.SYS /D:FDCD0001

LH FDAPM APMDOS IF "%config%"=="2" LH SHARE rem IF EXIST %DOSDIR%\BIN\DOSLFN.COM LH DOSLFN REM NLSFUNC %dosdir%\BIN\COUNTRY.SYS REM DISPLAY CON=(EGA),858,2) REM MODE CON CP PREP=((858) %dosdir%\CPI\EGA.CPX) REM KEYB US,858,%dosdir%\bin\keyboard.sys REM CHCP 858 REM MKEYB UK

mkeyb UK

REM MOUSE CTMOUSE

SHSUCDX /QQ /D3 REM LH SHSUCDHD /QQ /F:FDBOOTCD.ISO REM DEVLOAD /H /Q %dosdir%\BIN\UIDE.SYS /H /D:FDCD0001 /S5 SHSUCDX /QQ /~ /D:?SHSU-CDR,D /D:?SHSU-CDH,D /D:?FDCD0001,D /D:?FDCD0002,D /D:?FDCD0003,D

MEM /C /N SHSUCDX /D

:END SET AUTOFILE=%0 SET CFGFILE=C:\FDCONFIG.SYS alias reboot=fdapm warmboot alias reset=fdisk /reboot alias halt=fdapm poweroff alias shutdown=fdapm poweroff alias cfg=edit %cfgfile% alias auto=edit %0

set OS_NAME=FreeDOS set OS_VERSION=1.2

if exist %dosdir%\bin\fdnet.bat call %dosdir%\bin\fdnet.bat start if exist %dosdir%\bin\welcome.bat call %dosdir%\bin\welcome.bat

** OLD CONFIG.SYS **

<<< FILE NOT PRESENT >>>

** OLD AUTOEXEC.BAT **

<<< FILE NOT PRESENT >>>

bluewaysw commented 3 years ago

With #125 we fixed an issue with using code page 858 setups as some of the latest DOS distributions use. Please try CI-latest release packages to double check if this helps with your stability issue.