Welcome to MSFN

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.


Sign in to follow this  
Followers 0
ppgrainbow

Windows 3.1 hangs on splash screen

10 posts in this topic

I recently experimented my attempts to boot MS-DOS 7.1 off of a Ativa Flip 4 GB flash drive and in all, things were successful.

However, when I attempted to run Windows 3.1 while in pure DOS residing on the USB flash drive, the 16-bit OS stops responding (hangs) on the Windows 3.11 splash screen when run with the WIN /3 command to run Windows in 386 Enhanced Mode. To correct this, I had to press CTRL-ALT-DELETE to reboot. Windows 3.1 was set up through VMware Player with the drive locked so that VMware Player can gain direct access to the USB flash drive.

Here's what I've done so far when I set up the boot device under VMware:

1. I got Windows 3.1 installed using 6 floppy diskette images and applied updates to it.

2. I used a utility Win3XSTART to make Windows 3.x run under MS-DOS 7.1 and on the FAT32 formatted USB flash drive.

3. I used the generic Super VGA driver and patched the driver to make it work under Windows 3.1.

4. I used a hex-edited WIN386.EXE so that no data corruption exists in the \WINDOWS directory pointer.

5. I used a utility called HIMEMX.EXE to limit the total system memory to 64 MB even though DOS is reporting 66,512 KB of memory available to the system.

Here's what I got down in the CONFIG.SYS:

files=50

buffers=30

device=c:\dos\himemx.exe /max=64512 /x

device=c:\dos\emm386.exe noems i=b000-b7ff /verbose

dos=high,umb,auto

device=c:\dos\cdrom.sys /d:satadvd

lastdrive=z

And for the AUTOEXEC.BAT file, here's what I got so far:

@echo off

path c:\dos;c:\windows

set temp=c:\temp

lh mscdex /d:satadvd /l:x

lh ctmouse

idle

Other than that, Windows 3.1 works when

1. Running under VMware Player.

2. In native MS-DOS and in Standard Mode (WIN /S).

3. And running it on the Compaq TC1000 by selecting the USB flash drive as the boot device.

I'm sorry if I failed to provide sufficient information, but is there a way to fix the hanging issue so that Windows 3.1 can run on a USB flash drive? If the fix is successful, I will provide instructions on how to natively boot MS-DOS and Windows 3.1 on a unsupported motherboard.

The laptop that I'm using is a ASUS G1S-B1 gaming laptop with a 2.4 GHz Intel Core 2 Duo T7700 processor with 2 GB of DDR2 memory. By using the MS-DOS 7.1 version of HIMEM.SYS, the Windows 3.1 in Standard Mode will only be able to address up to 512 MB of system memory.

Edited by ppgrainbow
0

Share this post


Link to post
Share on other sites

Here are some things ye might like to try.

CONFIG.SYS


files=50
buffers=30
STACKS=9,256
device=c:\dos\himemx.exe /max=64512 /x
REM device=c:\dos\emm386.exe noems i=b000-b7ff /verbose
dos=high,umb,NOauto
device=c:\dos\cdrom.sys /d:satadvd
lastdrive=z

You don't really need AUTO here, because you're loading stuff through config.sys

Try UMBPCI, http://www.uwe-sieber.de/umbpci_e.html it gives UMB's (ie dos=umb), without loading EMM.

AUTOEXEC.BAT


@echo off
path c:\dos;c:\windows
set temp=c:\temp
SET TMP=c:\temp
PROMPT $p$g
lh mscdex /d:satadvd /l:x
REM lh ctmouse
REM idle

If you are just testing whether windows will load, try removing the mouse and idle.

Add the line 'pageovercommit=1' to the 386Enh section of System.ini in your windows directory

Try using vga driver or vga30 driver, to see if this cures problems.

SYSTEM.INI



[386Enh]
...
PageOverCommit=1

0

Share this post


Link to post
Share on other sites

Okay, here's what I did. In the CONFIG.SYS:

1. In line 3, I added "stacks=9,256".

2. In line 5, I added "REM device=c:\dos\emm386.exe noems i=b000-b7ff /verbose" so that EMM386 wouldn't load.

3. In line 6, I replaced EMM386 with UMBPCI by adding "device=c:\dos\umbpci.sys". When I rebooted, I found that UMBPCI.SYS driver ends up using D400-DFFF for its upper memory and that it found the Intel 965M chipset.

4. And in line 7, I also removed "auto" from "dos=high,umb as well".

Here's the final result so far:

file=50

buffers=30

stacks=9,256

device=c:\dos\himemx.exe /max=64512 /x

rem device=c:\dos\emm386.exe noems i=b000-b7ff /verbose

device=c:\dos\umbpci.sys

dos=high,umb

device=c:\dos\cdrom.sys /d:satadvd

lastdrive=z

I did not do much change in the AUTOEXEC.BAT file. All I did was to REM out "lh mouse" in line 5 and "idle" in line 8.

When I followed your procedure, I though that it would work, but when I typed "win" or "win /3" at the DOS prompt, Windows 3.1 would STILL hang at the splash screen.

I forgot to note that I'm booting MS-DOS 7.1 on a dual-core processor. While MS-DOS 7.1 has detected CPU 0 and CPU 1 at boot, it will only use CPU 0 (the first core of the first CPU) due to OS architectural limitations. At this perspective, I suspect that this might cause some problems when attempting to run Windows 3.1 in 386 Enhanced Mode.

Is there a way to get around this issue here? :(

Edited by ppgrainbow
0

Share this post


Link to post
Share on other sites

No. CPU1, for all purposes, does not exist both for DOS and for Win 3.1... I really doubt it'd cause any trouble. Your freezes might very well be related to some still unreported timing issue in windows VMM. Fact is you're very far away from those conditions in which Win 3.1 is known to run OK. That's what "to boldly go where no man has ever gone before" is all about. :D

0

Share this post


Link to post
Share on other sites

No. CPU1, for all purposes, does not exist both for DOS and for Win 3.1... I really doubt it'd cause any trouble. Your freezes might very well be related to some still unreported timing issue in windows VMM. Fact is you're very far away from those conditions in which Win 3.1 is known to run OK. That's what "to boldly go where no man has ever gone before" is all about. :D

I agree. MS-DOS and Windows 3.1 is only designed to run on one core.

Do you or others have any idea what timing issues are being unreported in Windows 3.1 that causes the GUI to freeze when attempting to start up in 386 Enhanced Mode? :whistle:

0

Share this post


Link to post
Share on other sites

The timing issue LoneCrusader solved for Win 95 almost surely would be present in earlier versions, if I may hazard a guess... th_sherlock.gif

0

Share this post


Link to post
Share on other sites

I am not aware of any timing issues.

I can run Windows 3.1 on my MA785 system in Enhanced mode.

IO.SYS 7.1 needs a couple of mods to allow Windows 3.1 to run.

A Patch is also needed to avoid the bad Current Directory on Exit Bug.

0

Share this post


Link to post
Share on other sites

I am not aware of any timing issues.

I can run Windows 3.1 on my MA785 system in Enhanced mode.

IO.SYS 7.1 needs a couple of mods to allow Windows 3.1 to run.

A Patch is also needed to avoid the bad Current Directory on Exit Bug.

First of all, (1) The MS-DOS 7.1 IO.SYS has already been patched using Win3xStart to allow Windows 3.0 and Windows 3.1x to run under MS-DOS 7.1. And (2), I already patched WIN386.SYS to avoid the Current Directory on Exit bug when using Windows 3.1. The size of the USB flash drive that I'm running Windows 3.1 on is 4 GB (3.84 GB) in capacity and it's formatted FAT32.

The only problem is that Windows 3.1 hangs at the splash screen when attempting to run in 386 Enhanced Mode. It's not a problem when it's done in Standard Mode.

Am I missing something in regards to modifying IO.SYS to allow Windows 3.1 to run in Enhanced Mode here?

0

Share this post


Link to post
Share on other sites

just guessing, but are 32-bit disk access and virtual memory enabled? Maybe try it with those turned off.

0

Share this post


Link to post
Share on other sites

just guessing, but are 32-bit disk access and virtual memory enabled? Maybe try it with those turned off.

I do not have the following lines are not present in the [386Enh] section of the SYSTEM.INI file

device=*int13

device=*wdctrl

And the swapfile has already been is disabled.

As Windows 3.1 is on a FAT32 partition under MS-DOS 7.1, it will not accept a permanent swapfile due to INT13 and 16-bit FAT restrictions. It's just that Windows 3.1 hangs when it is run on two or more cores or on some chipsets.

Edited by ppgrainbow
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.