86Box / 86Box

Emulator of x86-based machines.
GNU General Public License v2.0
2.79k stars 345 forks source link

MS-DOS 6.22 crash problems when using a 119MB hard disk drive (build 5226/above) #3875

Closed ghost closed 10 months ago

ghost commented 11 months ago

What happened?

Hello there, and this is my 4th 86Box bug issue.

So I'm having a problem in 86Box (build 5226/above), when I was using MS-DOS 6.22 on a 119MB hard-disk drive, MS-DOS 6.22 crashes like a Windows 1.0 blue screen of death, when it passed and finished the (HIMEM is testing extended memory... done.), not the normal (C:>) screen. (NOTE: I tested that problem using some of these machines: AMI 386DX clone, Commodore PC 30 III, Phoenix IBM AT, and Siemens PCD-2L).

Configuration file

[General]
vid_renderer = qt_software
dpi_scale = 0
sound_gain = 18
confirm_exit = 0

[Machine]
machine = acc386
cpu_family = i386dx
cpu_speed = 40000000
cpu_multi = 1
cpu_use_dynarec = 0
fpu_softfloat = 1
time_sync = local
fpu_type = 387
pit_mode = 1
cpu_waitstates = 2
cpu = 4
mem_size = 8192

[Video]
gfxcard = rtg3106

[Input devices]
mouse_type = msserial

[Sound]
fm_driver = nuked
midi_device = cm32ln
mpu401_standalone = 1

[Network]
net_01_link = 0
net_02_link = 0
net_03_link = 0
net_04_link = 0

[Storage controllers]
hdc = xtide_at
cassette_mode = load

[Realtek RTG3106 (ISA)]
memory = 512

[Microsoft Serial Mouse]
port = 0
buttons = 3

[Roland CM-32LN Emulation]
output_gain = 100
reverb = 1
reverb_output_gain = 100
reversed_stereo = 1
nice_ramp = 1

[Ports (COM & LPT)]
lpt1_device = text_prt

[Hard disks]
hdd_01_parameters = 17, 14, 1024, 0, ide
hdd_01_fn = hard-disk/ms-dos_6.22.vhd
hdd_01_vhd_blocksize = 4096
hdd_01_speed = ramdisk
hdd_01_ide_channel = 0:0

[Floppy and CD-ROM drives]
fdd_01_type = 35_2hd
fdd_02_type = 525_2hd
fdd_01_image_history_01 = C:/Games/win98user 2/floppy-disk/Microsoft MS-DOS 6.22 Plus Enhanced Tools (3.5)/Disk2.img
fdd_01_image_history_02 = C:/Games/win98user 2/floppy-disk/Microsoft MS-DOS 6.22 Plus Enhanced Tools (3.5)/Disk1.img
fdd_01_image_history_03 = floppy-disk/Microsoft Windows 3.1 (3.10.103) (3.5)/Disk01.img
fdd_01_turbo = 1
fdd_01_fn = C:/Games/win98user 2/floppy-disk/Microsoft MS-DOS 6.22 Plus Enhanced Tools (3.5)/Disk3.img

[Other peripherals]
postcard_enabled = 1

Operating system

Windows 11

CPU

AMD 5600H

86Box version

Build 5226

Build architecture

Windows - x64 (64-bit)

Build type

Download source

Official website (Jenkins, GitHub)

Additional context

CFG/NVR/HDD/Screenshots ZIP file: files.zip

This is a result of running MS-DOS 6.22 on a 119MB hard-disk drive:

AMI 386DX clone: MS-DOS 6 22 (with drive name (MS-DOS_6)) MS-DOS 6 22 (without drive name (MS-DOS_6))

Commodore PC 30 III: MS-DOS 6 22 in Commodore PC 30 III (4096KB) MS-DOS 6 22 in Commodore PC 30 III (8192KB)

Phoenix IBM AT: MS-DOS 6 22 in Phoenix IBM AT (4096KB) MS-DOS 6 22 in Phoenix IBM AT (8192KB)

Siemens PCD-2L: MS-DOS 6 22 in Siemens PCD-2L (4096KB) MS-DOS 6 22 in Siemens PCD-2L (8192KB)

ghost commented 11 months ago

Only the Phoenix IBM AT only does the Windows 1.0 BSOD like crash, and this is how a Windows 1.0 BSOD may look like: windows1_0_bsod

Fenix770 commented 11 months ago

The Phoenix 286 AT works fine with XTIDE (using the AT variant), with HIMEM.SYS. On the setup BIOS you must put "none" on the hard disk 1 and 2 options, since the XTIDE has its own HDD BIOS.

Phoenix 286 AT

ghost commented 11 months ago

The Phoenix 286 AT works fine with XTIDE (using the AT variant), with HIMEM.SYS. On the setup BIOS you must put "none" on the hard disk 1 and 2 options, since the XTIDE has its own HDD BIOS.

Phoenix 286 AT

Oh okay, I'll try it now.

ghost commented 11 months ago

Also, have you tested it on Siemens PCD-2L, AMI 386DX clone, and Commodore PC 30 III?

ghost commented 11 months ago

Now I tried it now, I deleted the NVR file, and reconfigure the BIOS setup (without changing the hard disk 1/2 options), same issue happened, but it doesn't even show (C:>) Monitor_1_20231210-190653-670 Monitor_1_20231210-190749-139 Also, I used the old recompiler version of this build.

Fenix770 commented 11 months ago

Not, yet. Windows 1.0x won't work on DOS 4+. As workaround, on DOS 5+, you should add this file on SETVER utility: Type: "SETVER WIN100.BIN 3.40", and restart the VM. Then Win 1.0x will works. MS-DOS 6X+WIN 10

ghost commented 11 months ago

Not, yet. Windows 1.0x won't work on DOS 4+. As workaround, on DOS 5+, you should add this file on SETVER utility: Type: "SETVER WIN100.BIN 3.40", and restart the VM. Then Win 1.0x will works. MS-DOS 6X+WIN 10

Okay then...

ghost commented 11 months ago

Well, I'm still having this problem, when MS-DOS 6.22 loaded (HIMEM.SYS), it still hangs here: Monitor_1_20231210-191407-826

Fenix770 commented 11 months ago

The Siemens machine seems to have issues at boot time.

ghost commented 11 months ago

Yes, it clears the XTIDE boot selection screen, and the sound, it sounded like a Windows 1.0 BSOD.

Fenix770 commented 11 months ago

I found that the Siemens have issues with certain graphics cards. But works fine with the ISA VGA. By the way I'm using the x32 version on 86box. I think this bug maybe related to 64 bits version.

ghost commented 11 months ago

Oh okay then, I'll try it on the 32-bit version, on (old recompiler).

ghost commented 11 months ago

Again, I'm still having the same problem all over, I'm now using the 32-bit version of build 5226. Monitor_1_20231210-192516-576

Fenix770 commented 11 months ago

That is strange. Did you try to delete the NVR files?

ghost commented 11 months ago

Umm, yes, all of my previous NVR files.

ghost commented 11 months ago

Can you send me some of your BIOS setup configuration screenshots? This is my BIOS setup configuration at Phoenix IBM AT: Monitor_1_20231210-200008-982 Monitor_1_20231210-200011-653

ghost commented 11 months ago

Still, I'm having the same problem when deleting the NVR file, I tried disabling time synchronization, and having the same problem again. Monitor_1_20231210-200228-591 I changed things like: Changing the PIT from FAST to SLOW, changing the memory to 1024KB, changing the HDD speed from RAM disk to 7200 RPM, changing wait state to default, same problem all over.

Fenix770 commented 11 months ago

Siemens config

ghost commented 11 months ago

Okay, how about the Phoenix IBM AT one?

Fenix770 commented 11 months ago

IBM AT Phoenix 1

IBM AT Phoenix 2

Also, at which clock speed (Mhz) did you configure these machines. The IBM AT supports only 6/8 Mhz. The Siemens was launched around 1986, so it would have a 6-10Mhz limit. Only late 286 launched after 1988 can reach 16/20 Mhz.

ghost commented 11 months ago

IBM AT Phoenix 1

IBM AT Phoenix 2

Also, at which clock speed (Mhz) did you configure these machines. The IBM AT supports only 6/8 Mhz. The Siemens was launched around 1986, so it would have a 6-10Mhz limit. Only late 286 launched after 1988 can reach 16/20 Mhz.

Both configuration files in the ZIP file are set to 16MHz of CPU speed, but it still shows the same problem when I use 6/8MHz of CPU speed, this is the result of the Phoenix IBM AT: Phoenix IBM AT at 6MHz Phoenix IBM AT at 8MHz Also, only the Siemens PCD-2L maximum CPU clock speed is 8MHz, and it freezes here: Siemens PCD-2L on 8MHz (maximum CPU speed limit) Maybe most of them are having the same problem I guess...

ghost commented 11 months ago

Then, when the beep code error just finished, it gave me those kinds of CGA-looking underscores (on the Siemens PCD-2L): Monitor_1_20231210-212831-476 Monitor_1_20231210-212846-258 Monitor_1_20231210-212848-758 Monitor_1_20231210-212851-678

Fenix770 commented 11 months ago

I don't know what may cause this!. My host machine is a i5 4210U with 12GB DDR 3 1600 Mhz. At this point, I can only guess, 86box does not emulate the RAM speeds of the original machines. (For example, a 486 SX/16 maybe as fast as a real 486 SX/33.) So, I don't know which configuration do you have, but maybe if you have a modern machine with DDR 5 RAM. The HIMEM.SYS driver may crash, I'm only guessing.

PD: I configured the Phoenix IBM AT as 286/25 and booted fine even at that clock speed. I'm also, using Win 10x64 22H2

OBattler commented 11 months ago

I suspect it's XTIDE causing the problem. Clearly, whatever is being loaded after HIMEM.SYS, conflicts with it.

OBattler commented 11 months ago

You also can't just put in a hard disk image formatted on another machine and expect it to magically work.

Fenix770 commented 11 months ago

But works fine on my end. Also, the HDD in this case is managed by the XTIDE, not the BIOS of the machine.

ghost commented 11 months ago

I suspect it's XTIDE causing the problem. Clearly, whatever is being loaded after HIMEM.SYS, conflicts with it.

Okay, then I'll try it on PC/AT IDE Controller (Dual-Channel) to see if it still occurs the issue.

ghost commented 11 months ago

Well, I tried replicate the problem using the PC/AT IDE Controller (Dual-Channel) option, then it was stuck in here: Monitor_1_20231211-130900-506 But in the Siemens PCD-2L, it still shows these underscores: Monitor_1_20231211-131204-054 Monitor_1_20231211-131206-396

ghost commented 11 months ago

Next, I'll try installing MS-DOS 5.0 in the Siemens machine to see if it shows the problem too...

ghost commented 11 months ago

Well, I already installed MS-DOS 5.0 in the Siemens 286 machine, but the problem is, it wasn't even booting into the hard-disk, and I found out that WinImage cannot recognize the VHD hard-disk image. image Monitor_1_20231211-132253-024

ghost commented 11 months ago

And I tried to replicate the corrupted MS-DOS 5.0 hard-disk drive on Windows 98, and it said it was not functioning. Monitor_1_20231211-132728-477 Monitor_1_20231211-132733-445

ghost commented 11 months ago

Looks like I'm experiencing problems using the 119MB (1024 C, 14 H, 17 S) hard-disk type option, which causes MS-DOS 6.22 fail to load and crash, while my MS-DOS 5.0 hard-disk drive doesn't even recognize it on my Windows 98 machine.

ghost commented 11 months ago

And then I tried PC-DOS 2000 (PC-DOS 7.0), and the hard-disk drive wasn't even corrupted, but the problem is, it was stuck at this screen: Monitor_1_20231211-170155-805 Monitor_1_20231211-170209-447

And this is my optional tools configuration (in the setup): Monitor_1_20231211-164559-774

ghost commented 11 months ago

Alright, here is my VHD ZIP files, the top one is the (MS-DOS 5.0) VHD file, and the bottom one is the (PC-DOS 2000) VHD file. files_vhd.zip Also, I don't even need to send the floppy disk images, I just downloaded them via WinWorldPC, right here: https://winworldpc.com/product/ms-dos/50 (choose the (Microsoft MS-DOS 5.00 (3.5-720k)) option) https://winworldpc.com/product/pc-dos/2000 (choose the (IBM PC-DOS 2000 (3.5-1.44mb)) option)

ghost commented 11 months ago

Anyways, I'm back now, and I found out it should be these hard-disk head/sectors settings fault: (14 H, 17 S), which causes MS-DOS 6.22 failing to boot/load, and crashes, I guess so...

Screenshots: (1020 C, 14 H, 17 S type): Monitor_1_20231215-194516-520 (615 C, 14 H, 17 S type): Monitor_1_20231215-195533-565

TC1995 commented 11 months ago

More like LBA enabled on disks whose size don't exceed 504MB as I've encountered a nearly identical bug.

OBattler commented 11 months ago

@win98user Try creating an .IMG image instead of .VHD.

ghost commented 11 months ago

@win98user Try creating an .IMG image instead of .VHD.

Okay, then I'll try replicate the problem by creating a .IMG hard-disk file.

ghost commented 11 months ago

Now I successfully installed MS-DOS 6.22 on a .IMG hard-disk image but, it has the same problem when using a .IMG hard-disk drive.

Screenshots: ms-dos_6 22_img image

ghost commented 11 months ago

Then I'll try replicate the problem on PCem v17 to see if it still occurs.

EDIT: I tried replicate the problem now, but it halts here when I typed (COMMAND.COM): Screenshot from 2023-12-16 09-39-57 And it shows the (Divide overflow) error. But in 86Box (I'm using build 5228), it didn't even show the (Divide overflow) error, I'm using the (Award 286 clone) in PCem v17, and I'm using the (Phoenix IBM AT) machine option. Monitor_1_20231216-094252-903

OBattler commented 11 months ago

Try a different combination of heads and sectors.

ghost commented 11 months ago

Try a different combination of heads and sectors.

Okay, then I'll try this one, the combination of heads and sectors.

ghost commented 11 months ago

I tried 16 heads and 31 sectors by using these hard-disk type: (491, 16, 31), but MS-DOS 6.22 won't boot despite having this error: Monitor_1_20231216-181030-122 Monitor_1_20231216-181213-436

And this error still occurs on SLOW PIT mode, disabling time synchronization, and this is my CFG/NVR files: cfg_nvr_files.zip

EDIT: Here is the HDD file, right here: hdd_file.zip

ghost commented 11 months ago

While using MS-DOS 6.22 in a 61MB hard-disk drive (809, 6, 26), it boots fine. Monitor_1_20231216-182644-592 HDD file: hdd_file.zip

ghost commented 11 months ago

Back now again, the same problem happened on build 5253, I was using the TC430HX machine option, and making the hard-disk drive have a Standard CHS translation mode, and it wasn't booting from the (.IMG) hard-disk drive, it only says (Missing operating system) when it passed (OS load in progress) screen.

Screenshots: Monitor_1_20231219-105410-783 Monitor_1_20231219-105503-459 Monitor_1_20231219-105513-666 Monitor_1_20231219-105523-765 Monitor_1_20231219-110231-406 Plus, WinImage doesn't recognize the hard-disk drive and crashes the application. image

EDIT: My emulation speed drops from 100% to 43%, especially 30%. image

HanHeld commented 11 months ago

Me too?

I've been trying to use a type 46 hard drive (1224 cyl, 15 heads, 17 sectors per track) with different 486 models, but no dice; they seem to all hang, and I will have other odd behavior such as freezing when I try to run either dos 6.22's edit or scandisk (not chkdsk -it runs chkdsk fine). I deleted a machine and then tried doing it all over from scratch but ran into the same problem with different 486 boards and mother boards (I tried socket 1, socket 3 and so on).

However, when I made a larger hd image; 995 cyl, 16 heads, 63 sectors per track ...I was able to install and boot from it just fine (after telling the bios it was there and restoring a backup onto it).

ghost commented 11 months ago

Me too?

I've been trying to use a type 46 hard drive (1224 cyl, 15 heads, 17 sectors per track) with different 486 models, but no dice; they seem to all hang, and I will have other odd behavior such as freezing when I try to run either dos 6.22's edit or scandisk (not chkdsk -it runs chkdsk fine). I deleted a machine and then tried doing it all over from scratch but ran into the same problem with different 486 boards and mother boards (I tried socket 1, socket 3 and so on).

However, when I made a larger hd image; 995 cyl, 16 heads, 63 sectors per track ...I was able to install and boot from it just fine (after telling the bios it was there and restoring a backup onto it).

Okay, does it hang on the (HIMEM is testing extended memory... done.) screen too? I'm gonna try that 119MB (1024 C, 14 H, 17 S) problem on the Intel YM430TX motherboard to see if it has the problem.

EDIT: I ran the problem here at the YM430TX machine but, it says (Divide overflow) when I make the hard-disk drive mode (NORMAL) instead of (LBA) or (AUTO). Monitor_1_20231219-171435-812 Monitor_1_20231219-171549-938

So, disabling time synchronization, using a faster CPU speed, and choosing SLOW PIT mode does not fix or change anything.

HanHeld commented 11 months ago

Me too? I've been trying to use a type 46 hard drive (1224 cyl, 15 heads, 17 sectors per track) with different 486 models, but no dice; they seem to all hang, and I will have other odd behavior such as freezing when I try to run either dos 6.22's edit or scandisk (not chkdsk -it runs chkdsk fine). I deleted a machine and then tried doing it all over from scratch but ran into the same problem with different 486 boards and mother boards (I tried socket 1, socket 3 and so on). However, when I made a larger hd image; 995 cyl, 16 heads, 63 sectors per track ...I was able to install and boot from it just fine (after telling the bios it was there and restoring a backup onto it).

Okay, does it hang on the (HIMEM is testing extended memory... done.) screen too? I'm gonna try that 119MB (1024 C, 14 H, 17 S) problem on the Intel YM430TX motherboard to see if it has the problem.

I was able to hit F8 and step through config.sys -including himem. But then it would hang when it tried to run autoexec.bat.

ghost commented 11 months ago

Me too? I've been trying to use a type 46 hard drive (1224 cyl, 15 heads, 17 sectors per track) with different 486 models, but no dice; they seem to all hang, and I will have other odd behavior such as freezing when I try to run either dos 6.22's edit or scandisk (not chkdsk -it runs chkdsk fine). I deleted a machine and then tried doing it all over from scratch but ran into the same problem with different 486 boards and mother boards (I tried socket 1, socket 3 and so on). However, when I made a larger hd image; 995 cyl, 16 heads, 63 sectors per track ...I was able to install and boot from it just fine (after telling the bios it was there and restoring a backup onto it).

Okay, does it hang on the (HIMEM is testing extended memory... done.) screen too? I'm gonna try that 119MB (1024 C, 14 H, 17 S) problem on the Intel YM430TX motherboard to see if it has the problem.

I was able to hit F8 and step through config.sys -including himem. But then it would hang when it tried to run autoexec.bat.

So, can you try that problem on the Intel YM430TX machine to see if it shows the (Divide overflow) error? (by using an 119MB hard-disk (1024 C, 14 H, 17 S))?

HanHeld commented 11 months ago

It's morning here, I'll set up a VM with those specs (Intel YM430TX machine, ide drive with 1024c,14 heads, 17spt) and report back after I do a dos 6.22 install.