From d100e035f6869ecfe0dba6352dc06de620ca0914 Mon Sep 17 00:00:00 2001 From: Scott Duensing Date: Mon, 23 Feb 2026 20:32:19 -0600 Subject: [PATCH] First commit. --- .gitignore | 1 + MINWIN.BAT | 242 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 243 insertions(+) create mode 100644 .gitignore create mode 100644 MINWIN.BAT diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/MINWIN.BAT b/MINWIN.BAT new file mode 100644 index 0000000..d4e2ec2 --- /dev/null +++ b/MINWIN.BAT @@ -0,0 +1,242 @@ +@ECHO OFF +REM ============================================================ +REM MINWIN.BAT - Minimal Windows 3.1 Installation Builder +REM +REM Creates the smallest possible Windows 3.1 installation +REM with support for GUI, serial port (COM), and audio. +REM +REM Usage: MINWIN +REM Path to a full Windows 3.1 installation +REM Destination for the minimal installation +REM Application EXE filename (becomes the shell) +REM +REM Example: MINWIN C:\WINDOWS D:\MINWIN MYAPP.EXE +REM +REM Prerequisites: +REM - DOS 5.0+ with HIMEM.SYS loaded in CONFIG.SYS +REM - FILES=30 (or higher) in CONFIG.SYS +REM - 386 or better processor +REM +REM After running, copy your application and its files into +REM the target directory, then launch with: \WIN +REM ============================================================ + +IF "%1"=="" GOTO USAGE +IF "%2"=="" GOTO USAGE +IF "%3"=="" GOTO USAGE + +SET SRCWIN=%1 +SET SRCDIR=%1\SYSTEM +SET TGTWIN=%2 +SET TGTDIR=%2\SYSTEM +SET APPNAME=%3 +SET ERRCNT=0 + +REM -- Verify source directory +IF NOT EXIST %SRCWIN%\WIN.COM GOTO NOSRC + +REM -- Create target directories +IF NOT EXIST %TGTWIN%\NUL MKDIR %TGTWIN% +IF NOT EXIST %TGTDIR%\NUL MKDIR %TGTDIR% + +ECHO. +ECHO *** Minimal Windows 3.1 Installation Builder *** +ECHO. +ECHO Source: %SRCWIN% +ECHO Target: %TGTWIN% +ECHO Shell: %APPNAME% +ECHO. + +REM ============================================================ +REM Core boot files +REM ============================================================ +ECHO [1/7] Copying core files... +CALL :COPYFILE %SRCWIN%\WIN.COM %TGTWIN%\WIN.COM +CALL :COPYFILE %SRCDIR%\WIN386.EXE %TGTDIR%\WIN386.EXE +CALL :COPYFILE %SRCDIR%\KRNL386.EXE %TGTDIR%\KRNL386.EXE +CALL :COPYFILE %SRCDIR%\USER.EXE %TGTDIR%\USER.EXE +CALL :COPYFILE %SRCDIR%\GDI.EXE %TGTDIR%\GDI.EXE +CALL :COPYFILE %SRCDIR%\SHELL.DLL %TGTDIR%\SHELL.DLL + +REM ============================================================ +REM Hardware drivers +REM ============================================================ +ECHO [2/7] Copying hardware drivers... +CALL :COPYFILE %SRCDIR%\SYSTEM.DRV %TGTDIR%\SYSTEM.DRV +CALL :COPYFILE %SRCDIR%\VGA.DRV %TGTDIR%\VGA.DRV +CALL :COPYFILE %SRCDIR%\KEYBOARD.DRV %TGTDIR%\KEYBOARD.DRV +CALL :COPYFILE %SRCDIR%\MOUSE.DRV %TGTDIR%\MOUSE.DRV + +REM ============================================================ +REM Serial port driver +REM ============================================================ +ECHO [3/7] Copying serial port driver... +CALL :COPYFILE %SRCDIR%\COMM.DRV %TGTDIR%\COMM.DRV + +REM ============================================================ +REM Audio / Multimedia +REM ============================================================ +ECHO [4/7] Copying multimedia files... +CALL :COPYFILE %SRCDIR%\MMSYSTEM.DLL %TGTDIR%\MMSYSTEM.DLL +CALL :COPYFILE %SRCDIR%\MMSOUND.DRV %TGTDIR%\MMSOUND.DRV +CALL :COPYFILE %SRCDIR%\TIMER.DRV %TGTDIR%\TIMER.DRV +REM +REM Sound card drivers are hardware-specific. +REM Uncomment and adjust for your sound hardware: +REM +REM Sound Blaster 16: +REM CALL :COPYFILE %SRCDIR%\SB16SND.DRV %TGTDIR%\SB16SND.DRV +REM CALL :COPYFILE %SRCDIR%\VSBD.386 %TGTDIR%\VSBD.386 +REM +REM Sound Blaster Pro: +REM CALL :COPYFILE %SRCDIR%\SBPRO.DRV %TGTDIR%\SBPRO.DRV +REM +REM Windows Sound System: +REM CALL :COPYFILE %SRCDIR%\SNDSYS.DRV %TGTDIR%\SNDSYS.DRV +REM +REM MCI drivers (needed if app uses mciSendCommand/mciSendString): +REM CALL :COPYFILE %SRCDIR%\MCIWAVE.DRV %TGTDIR%\MCIWAVE.DRV +REM CALL :COPYFILE %SRCDIR%\MCISEQ.DRV %TGTDIR%\MCISEQ.DRV + +REM ============================================================ +REM Fonts (minimum set for GUI rendering) +REM ============================================================ +ECHO [5/7] Copying fonts... +CALL :COPYFILE %SRCDIR%\VGASYS.FON %TGTDIR%\VGASYS.FON +CALL :COPYFILE %SRCDIR%\VGAFIX.FON %TGTDIR%\VGAFIX.FON +CALL :COPYFILE %SRCDIR%\VGAOEM.FON %TGTDIR%\VGAOEM.FON + +REM ============================================================ +REM 386 Enhanced mode display grabber +REM ============================================================ +ECHO [6/7] Copying display grabber... +CALL :COPYFILE %SRCDIR%\VGADIB.3GR %TGTDIR%\VGADIB.3GR + +REM ============================================================ +REM Optional but commonly needed DLLs +REM Uncomment any that your application requires. +REM ============================================================ +REM ECHO Copying optional DLLs... +REM CALL :COPYFILE %SRCDIR%\COMMDLG.DLL %TGTDIR%\COMMDLG.DLL +REM CALL :COPYFILE %SRCDIR%\VER.DLL %TGTDIR%\VER.DLL +REM CALL :COPYFILE %SRCDIR%\LZEXPAND.DLL %TGTDIR%\LZEXPAND.DLL +REM CALL :COPYFILE %SRCDIR%\TOOLHELP.DLL %TGTDIR%\TOOLHELP.DLL +REM CALL :COPYFILE %SRCDIR%\OLECLI.DLL %TGTDIR%\OLECLI.DLL +REM CALL :COPYFILE %SRCDIR%\OLESVR.DLL %TGTDIR%\OLESVR.DLL + +REM ============================================================ +REM Create minimal SYSTEM.INI +REM ============================================================ +ECHO [7/7] Creating configuration files... + +ECHO [boot]>%TGTWIN%\SYSTEM.INI +ECHO shell=%APPNAME%>>%TGTWIN%\SYSTEM.INI +ECHO system.drv=system.drv>>%TGTWIN%\SYSTEM.INI +ECHO keyboard.drv=keyboard.drv>>%TGTWIN%\SYSTEM.INI +ECHO mouse.drv=mouse.drv>>%TGTWIN%\SYSTEM.INI +ECHO display.drv=vga.drv>>%TGTWIN%\SYSTEM.INI +ECHO comm.drv=comm.drv>>%TGTWIN%\SYSTEM.INI +ECHO sound.drv=mmsound.drv>>%TGTWIN%\SYSTEM.INI +ECHO fonts.fon=vgasys.fon>>%TGTWIN%\SYSTEM.INI +ECHO fixedfon.fon=vgafix.fon>>%TGTWIN%\SYSTEM.INI +ECHO oemfonts.fon=vgaoem.fon>>%TGTWIN%\SYSTEM.INI +ECHO 386grabber=vgadib.3gr>>%TGTWIN%\SYSTEM.INI +ECHO [keyboard]>>%TGTWIN%\SYSTEM.INI +ECHO type=4>>%TGTWIN%\SYSTEM.INI +ECHO [386Enh]>>%TGTWIN%\SYSTEM.INI +ECHO [drivers]>>%TGTWIN%\SYSTEM.INI +ECHO timer=timer.drv>>%TGTWIN%\SYSTEM.INI +REM +REM Uncomment for your sound card (example: Sound Blaster 16): +REM ECHO wave=sb16snd.drv>>%TGTWIN%\SYSTEM.INI +REM ECHO midi=sb16snd.drv>>%TGTWIN%\SYSTEM.INI + +REM ============================================================ +REM Create minimal WIN.INI +REM ============================================================ + +ECHO [windows]>%TGTWIN%\WIN.INI +ECHO Beep=yes>>%TGTWIN%\WIN.INI +ECHO NullPort=None>>%TGTWIN%\WIN.INI +ECHO [fonts]>>%TGTWIN%\WIN.INI +ECHO [mci extensions]>>%TGTWIN%\WIN.INI +REM +REM Uncomment if app uses MCI for audio playback: +REM ECHO wav=waveaudio>>%TGTWIN%\WIN.INI +REM ECHO mid=sequencer>>%TGTWIN%\WIN.INI + +REM ============================================================ +REM Summary +REM ============================================================ +ECHO. +IF NOT "%ERRCNT%"=="0" ECHO WARNING: %ERRCNT% file(s) not found in source. +ECHO. +ECHO Installation complete. +ECHO. +ECHO Next steps: +ECHO 1. Copy %APPNAME% (and any supporting files) into %TGTWIN% +ECHO 2. If using a sound card, edit %TGTWIN%\SYSTEM.INI +ECHO to add your wave/midi driver to the [drivers] section +ECHO 3. From DOS, launch with: %TGTWIN%\WIN +ECHO. +ECHO Core files: ~1.4 MB +ECHO. +GOTO END + +REM ============================================================ +REM Subroutine: copy one file with existence check +REM ============================================================ +:COPYFILE +IF NOT EXIST %1 GOTO COPYMISS +COPY %1 %2 >NUL +GOTO COPYRET +:COPYMISS +ECHO WARNING: %1 not found +SET /A ERRCNT=%ERRCNT%+1 +:COPYRET +GOTO :EOF + +REM ============================================================ +REM Error: source not found +REM ============================================================ +:NOSRC +ECHO. +ECHO ERROR: Cannot find Windows 3.1 installation at %SRCWIN% +ECHO WIN.COM not found in source directory. +GOTO END + +REM ============================================================ +REM Usage information +REM ============================================================ +:USAGE +ECHO. +ECHO MINWIN - Minimal Windows 3.1 Installation Builder +ECHO. +ECHO Usage: MINWIN source target app +ECHO. +ECHO source Path to a full Windows 3.1 installation +ECHO target Destination for the minimal installation +ECHO app Application EXE filename (becomes the shell) +ECHO. +ECHO Example: MINWIN C:\WINDOWS D:\MINWIN MYAPP.EXE +ECHO. +ECHO The application is set as the Windows shell, replacing +ECHO Program Manager. No other accessories are included. +ECHO. +ECHO Optional DLLs (uncomment in batch file if needed): +ECHO COMMDLG.DLL - File Open/Save/Print dialogs +ECHO VER.DLL - Version information API +ECHO LZEXPAND.DLL - File decompression +ECHO TOOLHELP.DLL - Tool helper library +ECHO OLECLI.DLL - OLE client support +ECHO OLESVR.DLL - OLE server support +GOTO END + +REM ============================================================ +:END +SET SRCWIN= +SET SRCDIR= +SET TGTWIN= +SET TGTDIR= +SET APPNAME= +SET ERRCNT=