1@ECHO OFF 2PROMPT $p$g 3PATH C:\;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\CTCM;C:\DOSPACK\ORPHINIT;C:\DOSPACK\THROTTLE 4 5goto %config% 6 7:WINDOWS 8goto end 9 10:DOS1 11:DOS2 12:DOS3 13REM Add sound initialization here 14IF "%config%"=="DOS3" goto NOHIMEM 15LH C:\WINDOWS\COMMAND\MSCDEX.EXE /D:MSCD001 16LH C:\DOSPACK\DRIVERS\ctmouse.exe /R2 17goto end 18 19:NOHIMEM 20C:\WINDOWS\COMMAND\MSCDEX.EXE /D:MSCD001 21C:\DOSPACK\DRIVERS\ctmouse.exe /R2 22goto end 23 24:end
While using PIF files with specialized CONFIG.SYS and AUTOEXEC.BAT or "Restart in MS-DOS mode" is the proper way on Windows 9x, it's much less convenient for me due to having to restart many times. Also Phil's video when doing this with COMMAND.COM will get you less conventional memory (check with MEM /C /P command and you'll see two COMMAND) but not with other executables.
"Restart in MS-DOS mode" has DOSSTART.BAT located in C:\WINDOWS for the mouse driver and sound initialization but one cannot deal with content related to CONFIG.SYS for memory managers.
While most of the DOS programs works within Windows 9x without CONFIG.SYS and AUTOEXEC.BAT like jakethompson1 said, there are some of them that doesn't and must be run in MS-DOS mode.
Just a note, but I had to include "DEVICE=C:\WINDOWS\IFSHLP.SYS" under [WINDOWS] else I would get VFAT init errors; might be a YMMV thing, though.
1@ECHO OFF 2PROMPT $p$g 3PATH C:\;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\CTCM;C:\DOSPACK\ORPHINIT;C:\DOSPACK\THROTTLE 4 5goto %config% 6 7:WINDOWS 8goto end 9 10:DOS1 11:DOS2 12:DOS3 13REM Add sound initialization here 14IF "%config%"=="DOS3" goto NOHIMEM 15LH C:\WINDOWS\COMMAND\MSCDEX.EXE /D:MSCD001 16LH C:\DOSPACK\DRIVERS\ctmouse.exe /R2 17goto end 18 19:NOHIMEM 20C:\WINDOWS\COMMAND\MSCDEX.EXE /D:MSCD001 21C:\DOSPACK\DRIVERS\ctmouse.exe /R2 22goto end 23 24:end
While using PIF files with specialized CONFIG.SYS and AUTOEXEC.BAT or "Restart in MS-DOS mode" is the proper way on Windows 9x, it's much less convenient for me due to having to restart many times. Also Phil's video when doing this with COMMAND.COM will get you less conventional memory (check with MEM /C /P command and you'll see two COMMAND) but not with other executables.
"Restart in MS-DOS mode" has DOSSTART.BAT located in C:\WINDOWS for the mouse driver and sound initialization but one cannot deal with content related to CONFIG.SYS for memory managers.
While most of the DOS programs works within Windows 9x without CONFIG.SYS and AUTOEXEC.BAT like jakethompson1 said, there are some of them that doesn't and must be run in MS-DOS mode.
Just a note, but I had to include "DEVICE=C:\WINDOWS\IFSHLP.SYS" under [WINDOWS] else I would get VFAT init errors; might be a YMMV thing, though.
Indeed, since DOS=NOAUTO is set in [COMMON] adding IFSHLP.SYS is very important for Windows. DOS=AUTO (which is the default) always includes this along with DBLBUFF.SYS.
I have modified that post once again as a measure.
One last thing to note about custom PIF files, as shown in Phil's video. Clicking on such a PIF file will obviously restart your computer and load DOS 7.x. Less obviously, your computer will remain in DOS mode until you type "Exit" even if you shut it down using the power button or restart it using CTRL+ALT+DEL. Even pressing the reset button on the case won't end this mode, only typing the "Exit" command will.
This can be useful if you primarily want to play DOS games on your Win9x machine and don't need Windows to load at all. Of course, there are also other ways to boot straight into DOS on a Win9x system.
I took that DOS=NOAUTO from one of PhilsComputerLab templates I found, apparently without it coventional memory boot option still ended up with XMS memory. It didn't have IFSHLP.SYS or DBLBUFF.SYS anywhere in there, but Phil was using .PIFs in his guide so I guess those aren't needed in that case?
I took that DOS=NOAUTO from one of PhilsComputerLab templates I found, apparently without it coventional memory boot option still ended up with XMS memory. It didn't have IFSHLP.SYS or DBLBUFF.SYS anywhere in there, but Phil was using .PIFs in his guide so I guess those aren't needed in that case?
You could move DOS=NOAUTO into DOS3 for more safety, but it will load IFSHLP.SYS and DBLBUFF.SYS besides HIMEM.SYS and SETVER on the other menus automatically. Alternatively you can use DOS=HIGH,UMB,NOAUTO instead on configurations other than [WINDOWS]. I have edited the post for once again for convenience. Phil reason for adding this into [COMMON] was due to using MS-DOS Mode on a PIF file.
Joseph_Joestar is correct about everything in using COMMAND.COM as a custom PIF file, but as I said on a previous post you will get less conventional memory this way.
Also, it might be worth using FILESHIGH, BUFFERSHIGH, LASTDRIVEHIGH over the non-high entries to free up a bit more conventional memory for anything including HIMEM. I think it takes me from ~600k to ~620k when booting with DOS1.
I moved the non-high versions from [COMMON] to [DOS3] since it's the only one that doesn't use HIMEM, but you could probably lower some of the values for FILES and BUFFERS to squeeze a bit more memory out under that environment if you need it.
Also, it might be worth using FILESHIGH, BUFFERSHIGH, LASTDRIVEHIGH over the non-high entries to free up a bit more conventional memory for anything including HIMEM. I think it takes me from ~600k to ~620k when booting with DOS1.
I moved the non-high versions from [COMMON] to [DOS3] since it's the only one that doesn't use HIMEM, but you could probably lower some of the values for FILES and BUFFERS to squeeze a bit more memory out under that environment if you need it.
Also, it might be worth using FILESHIGH, BUFFERSHIGH, LASTDRIVEHIGH over the non-high entries to free up a bit more conventional memory for anything including HIMEM. I think it takes me from ~600k to ~620k when booting with DOS1.
I moved the non-high versions from [COMMON] to [DOS3] since it's the only one that doesn't use HIMEM, but you could probably lower some of the values for FILES and BUFFERS to squeeze a bit more memory out under that environment if you need it.
Haven't got a clue how much I could lower those values though, any idea?
Yes, but for DOS1 there's still stuff that will be put on conventional memory due to lack of UMB (no issues adding FILESHIGH, etc on [HIMEMDOS] though). I also suggest adding adding STACKS=9,256 to [COMMON] in addition for better stability, not STACKSHIGH due to compatibility issues.
Yes, but for DOS1 there's still stuff that will be put on conventional memory due to lack of UMB (no issues adding FILESHIGH, etc on [HIMEMDOS] though). I also suggest adding adding STACKS=9,256 to [COMMON] in addition for better stability, not STACKSHIGH due to compatibility issues.
Added!
But doesn't DOS1 include UMB through INCLUDE=HIMEMDOS?
Yes, but for DOS1 there's still stuff that will be put on conventional memory due to lack of UMB (no issues adding FILESHIGH, etc on [HIMEMDOS] though). I also suggest adding adding STACKS=9,256 to [COMMON] in addition for better stability, not STACKSHIGH due to compatibility issues.
Added!
But doesn't DOS1 include UMB through INCLUDE=HIMEMDOS?
1[HIMEMDOS] 2DOS=HIGH,UMB,NOAUTO
Or am I misunderstading something here?
DOS=UMB does nothing unless you installed a real mode UMB driver such as UMBPCI as mentioned on a previous post or EMM386 is added after HIMEM.SYS, but the latter one forces the CPU into v86 mode which reduces compatibility with some DOS games.
DOS=UMB does nothing unless you installed a real mode UMB driver such as UMBPCI as mentioned on a previous post or EMM386 is added after HIMEM.SYS, but the latter one forces the CPU into v86 mode which reduces compatibility with some DOS games.
Alrighty then.
I bet figuring this stuff out back in the 80's and 90's was easy and fun without internet 😁
Edit: Oh, and I also just noticed your example Config.sys currently has DEVICEHIGH=C:\WINDOWS\SETVER.EXE and DEVICEHIGH=C:\DOSPACK\DRIVERS\videcdd.sys /D:MSCD001 for DOS3 even though it doesn't load HIMEM.SYS.
Edit: Oh, and I also just noticed your example Config.sys currently has DEVICEHIGH=C:\WINDOWS\SETVER.EXE and DEVICEHIGH=C:\DOSPACK\DRIVERS\videcdd.sys /D:MSCD001 for DOS3 even though it doesn't load HIMEM.SYS.
Edit: Oh, and I also just noticed your example Config.sys currently has DEVICEHIGH=C:\WINDOWS\SETVER.EXE and DEVICEHIGH=C:\DOSPACK\DRIVERS\videcdd.sys /D:MSCD001 for DOS3 even though it doesn't load HIMEM.SYS.
So, and I just found this out, you should just be able to use DEVICEHIGH over DEVICE in DOSINIT since it will load into conventional memory should there not be enough UMB or it just doesn't exist. It isn't going to change things functionally if that's true, but it will reduce a bit of clutter :p
Would it do the same with 9,128? From what I can find, it seems to be the 'default' for DOS <=6.22 (DOS 7+ seems to default it to 0,0)
STACKS=9,128 works fine with that game, but not with STACKSHIGH=9,128. It froze/rebooted just right after killing the first enemy, no wonder why this game was discontinued early. DOS mode of Windows 9x defaults to STACKSHIGH=9,256, I checked that with mem /d/p to make sure. So one wouldn't notice this problem unless there is UMB.
Bio Menace even shows warning messages at startup about "Random lockups" and suggest adding STACKS=9,256 to CONFIG.SYS.
So, and I just found this out, you should just be able to use DEVICEHIGH over DEVICE in DOSINIT since will load into conventional memory should there not be enough UMB or it just doesn't exist. It isn't going to change things functionally if that's true, but it will reduce a bit of clutter :p