DOS Scripting for DOS622 / Win 3.11

bushwhacker

Posts: 799   +9
Not attaching the .img; you;ll have to emulate this from this forum via copy to your computer and save it into batch files.

Scenario is expected; Boot off the floppy drive, enter ram drive and loads stuffs into the memory. it worked for me but now I had to rewrite due to lost floppy drive. ( Now I had to relearned how to make a few copies lol lol it was headache back in 90s!)

Now my batch breaks in detdrv.bat with brunch of errors. im done working with GPT; it kept looping back to the FOR command that it written for me. its so strange when your gpt breaks down lol lol

Image attached of the output; and ill attach the codes to this page.

I am intentionally leaving this script for other users who wants to boot Windows 3.11 into memory and plays games from there. I just dont know why floppy disk decided to not be readable. it happens, and its my fault for not back up lol

Config.sys
Code:
[menu]
menuitem=RAMDRIVE, Start computer with RAM DRIVE, CD AND USB.
menuitem=HDD, Start computer with HDD, CD and USB.
menuitem=HELP, I will only load himem.sys and let you view the Help file.
menuitem=EXPERIMENTAL, Currently disabled. Use to directly load untested drivers.
menuitem=DOS, Load directly to DOS, no memory management, nothing is loaded.
menudefault=RAMDRIVE,30
menucolor=7,0

[RAMDRIVE]
device=DOS\himem.sys /testmem:off
device=DOS\EMM386.EXE RAM HIGHSCAN I=B000-B7FF
device=DOS\DRIVERS\ramdrive.sys 8096 512 64 /E
devicehigh=DOS\DRIVERS\vide_cdd.sys /D:mscd001
device=DOS\DRIVERS\usbaspi.sys /w /v
device=DOS\DRIVERS\DI1000DD.sys

[HDD]
device=DOS\himem.sys /testmem:off
device=DOS\EMM386.EXE NORAM
device=DOS\DRIVERS\aspi2dos.sys
device=DOS\DRIVERS\aspi4dos.sys
device=DOS\DRIVERS\aspi7dos.sys
device=DOS\DRIVERS\aspi8dos.sys
device=DOS\DRIVERS\aspi8u2.sys
device=DOS\DRIVERS\aspi8xx.sys
device=DOS\DRIVERS\aspi910u.sys
device=DOS\DRIVERS\aspia100.sys
device=DOS\DRIVERS\aspi320.sys

device=DOS\DRIVERS\vide_cdd.sys /D:mscd001

[EXPERIMENTAL]
device=DOS\DRIVERS\usbaspi.sys /w /v
device=DOS\DRIVERS\DI1000DD.sys

[HELP]
;; loading the help and exiting the help will restart the computer!


[DOS]
echo DIRECT BOOT TO DOS...

[COMMON]
files=30
buffers=20
dos=high,umb
stacks=9,256
lastdrive=z

Autoexec.bat
Code:
@ECHO OFF
PROMPT $P$G

:STEP0
:: SETTING AND STARTING LOGGING
        DEL A:\BOOTLOG1.TXT
        SET LOG=A:\BOOTLOG1.TXT
        ECHO --- BOOT STARTED --- >> %LOG%
        GOTO STEP1
        pause

ECHO DETECTING THE RAM DRIVE... >> %LOG%
:STEP1
REM --- TESTING AND SEE IF RAMD CAN ECHO BACK
REM --- A:\README.TXT %RAMD%
CALL detdrv.bat
DIR %RAMD%
GOTO WAITRAM

:WAITRAM
        MD %RAMD%:\READYCHK >NUL
        IF NOT EXIST %RAMD%:\READYCHK\NUL GOTO WAITRAM
        RD %RAMD%:\READYCHK >NUL
        pause
        ECHO HEY, I AM CALLING THIS DIRECTORY OUT, IF IT READS, ITS WORKING!
        ECHO SWITCHING TO THE NEXT DRIVE, RAM DRIVE SHOULD READ AS D:
        ECHO IF YOU ARE DOING DO_RAMDRIVE ONLY; RAMDRIVE WILL BE IN C: IF
        ECHO YOU FINISH WRITING THE DO_HDD.
        D:
        MD TEST
        DIR %RAMD%
        DIR %RAMD%/TEST
        ECHO HEY IT WORKED!
        pause
        GOTO DO_FINISH

:DO_FINISH
:: RAM DRIVE READ, TIME TO LOAD STUFF TO MEMORY! >> %LOG%
       
ECHO LEAVING THIS SECTION EMPTY FOR USB UTILIZATION VIA %USB%
        :: Now copying files to the RAM DRIVE (first assigned drive) >> %LOG%
        PAUSE                                                    
        echo can you make a script that loop back to the %FLOPPY% ?
        A:\DOS\XCOPY.EXE A:\*.* %RAMD%:\ /S /E /V
        PAUSE
        ECHO PAUSING AFTER DIRECTORY PAUSE TO VERIFY THE COPY
        DIR /W %RAMD%: >> %LOG%
        PAUSE
        ECHO Switch environment to run DOS from RAM >> %LOG%
        SET COMSPEC=%RAMD%:\COMMAND.COM
        SET TEMP=%RAMD%:\
        SET TMP=%RAMD%:\
        SET PATH=%RAMD%;%CDROM%;%USB%
        CD \
        DIR /W %RAMD%: >> %LOG%
        DIR /W %CDROM%: >> %LOG%
        ECHO WARNING You are now running Command Prompt in RAM!
        ECHO Anything written here will get lost when computer is restarted!
        GOTO QUIT

:STEP2
        ECHO SKIPPED TO STEP 3 >> %LOG%
        GOTO STEP3

:STEP3
        ECHO SKIPPED TO STEP 4 >> %LOG%
        GOTO STEP4

:STEP4
        ECHO SETTING WINDOWS VARIABLE... >> %LOG%
        ECHO "SET WINDIR=%RAMD%\WINDOWS"
        pause
        GOTO STEP5

:STEP5
        ECHO ALMOST DONE..... >> %LOG%
        C:
        CALL MENU.BAT

        IF "%CONFIG%"=="RAMDRIVE" GOTO QUIT
        IF "%CONFIG%"=="HELP" GOTO HELP

        ECHO STOPPING THE SCRIPT... >> %LOG%
        GOTO QUIT

:HELP
        CLS
        CALL HELP.BAT
        ECHO Your computer will now restart and the startup menu will appear.
        ECHO.
        ECHO.
        ECHO.
        ECHO.
        ECHO.
        ECHO.
        ECHO.
        ECHO.
        ECHO.
        ECHO. RESTARTING!!!  >> %LOG%
        ECHO.
        ECHO.
        GOTO QUIT

:QUIT
:: clean up environment variables >> %LOG%
ECHO "SET CDROM= as example"
ECHO "SET RAMD= as example"
ECHO REBOOTING... >> %LOG%

Detdrv.bat
Code:
@ECHO OFF
GOTO DETECTION

:DETECTION
SET RAMD_FOUND=1
SET CDROM_FOUND=1
SET USB_FOUND=1
GOTO STEP1

:STEP1
ECHO LINE START: X%%R X
ECHO --- RAMDRIVE DETECTION ---
FOR %%R IN (C D) DO CALL :CHECKRAM %%R
ECHO LINE START: X%%D X
ECHO --- CDROM DETECTION ---
FOR %%D IN (E F G H) DO CALL :CHECKCD %%D
ECHO LINE START: X%%U X
ECHO ---- USB DETECTION ---
FOR %%U IN (I J K L) DO CALL :CHECKUSB %%U

GOTO SHOWRESULTS

:CHECKRAM 
IF NOT EXIST %1:\README.TXT GOTO END
SET RAMD=%1:
SET RAMD_FOUND=0
GOTO END

:CHECKCD 
IF NOT EXIST %1:\README.TXT GOTO END
SET CDROM=%1:
SET CDROM_FOUND=0
GOTO END

:CHECKUSB 
IF NOT EXIST %1:\README.TXT GOTO END
SET USB=%1:
SET USB_FOUND=0
GOTO END

:SHOWRESULTS
IF "%RAMD_FOUND%"=="0" ECHO RAM DRIVE IS FOUND AT %RAMD%
IF NOT "%RAMD_FOUND%"=="0" ECHO RAM DRIVE NOT FOUND.

IF "%CDROM_FOUND%"=="0" ECHO CD DRIVE IS FOUND AT %CDROM%
IF NOT "%CDROM_FOUND%"=="0" ECHO CD DRIVE NOT FOUND.

IF "%USB_FOUND%"=="0" ECHO USB DRIVE IS FOUND AT %USB%
IF NOT "%USB_FOUND%"=="0" ECHO USB DRIVE NOT FOUND.
GOTO END

:END
ECHO END OF SCRIPT.
Screenshot 2026-02-28 111355.png


Then I wanted to further edit this; Worked with GPT; it kept saying my FOR command is breaking after Line X%%RX and it see Line X%R X.

Something wrong with loop back to this command and I cant figured how yet.I remembered I did this in past but I guess memory is now gone lol lol
 
Last edited:
Not editing the post in above

Wanted to add one more thing.

Win98 bootfisk has setramd.bat and findramd.exe/ and I think findcd.exe

It's purpose of using autoexec was to loop back using for commands and the parentheses; msdos does not.

I have loaded ramdrive but it seem can't loop out of floppy and stays in ramd.

I'm still figuring out but if there is change I'll post here.
 
Back