Windows 3.1 auf einer bootfähigen Diskette

Vor vielen Jahren haben wir uns im Forum den Spaß gemacht, und versucht ein Windows 3.1 auf eine bootfähige Diskette zu bekommen. Das System dabei natürlich sehr abgespeckt, aber dafür läuft das Endergebnis auf einen Computer mit mindestens einen 286er, ein wenig RAM und nur einem 1,44 MB Floppy - also auch auf einen 2010er Rechner, wenn der noch ein Diskettenlaufwerk hat.

Hinweis: Es funktioniert nur mit Windows 3.1 oder 3.11, nicht mit den Versionen "für Workgroup", da die keinen Windows Standardmodus beherrschen, und der Erweiterte 386 Modus benötigt schlicht zu viel Dateien und damit Platz.

Methode 1: Weniger ist mehr

Die erste Version besteht aus einer DOS Startdiskette mit direkt drauf kopierten, notwendigen Windows 3.1 Dateien. Was an Platz auf der Diskette frei bleibt kann dann nach Belieben mit (kleinen) Win 3.1 Programmen gefüllt werden.


Das Ergebnis: Ein sehr sparsames Windows 3.1

DOS Diskette

Die Diskette wird ganz einfach aus einer vorhanden Bootdiskette (ich empfehle MS-DOS 5.0) gebaut, oder man erstellt sich schnell eine mit dem DOS Kommando: "format a: /s". Am Ende dürfen nur folgende Dateien vorhanden sein, wobei einige Versteckte DOS Systemdateien sind, welche beim parameterlosen Einsatz eines Verzeichnisbefehls nicht angezeigt werden:

AUTOEXEC.BAT
COMMAND.COM
CONFIG.SYS
IO.SYS
MSDOS.SYS

Autoexec.bat und Config.sys kann man schnell mit einen Editor selber schreiben.

Inhalt AUTOEXEC.BAT

@ECHO OFF
WIN /S


Inhalt CONFIG.SYS

device=a:\himem.sys


Windows Details (Obligatorisch)

Nun steht der DOS Teil der Startdiskette, jetzt muss man nur noch die notwendigen Windows 3.1 Dateien auf Sie kopieren. Sie kommen einfach alle ins Stammverzeichnis. Zu finden sind diese in einer Windows Installation teilweise unter x:\Windows und x:\Windows\System. Hat man kein Windows 3.1 installiert, kann man sich die Dateien auf den Disketten zusammensuchen. Diese sind zumeist gepackt und haben einen Dateinamen mit einer Endung die auf einen Unterstrich endet. Das Hilfsprogramm, um diese Dateien zu entpacken heißt Expand, es liegt den Disketten bei, ist aber auch in modernen Windows Versionen direkt eingebaut, entpackt wird per Kommandozeile "expand gdi.ex_ gdi.exe", ggf. lohnt es sich noch mit Pfadangaben zu arbeiten.

Hinweis: Bei einigen Dateien lohnt es sich auf aktualisierte Versionen auszuweichen. So findet man unter den Updates hier eine neuere Version vom Taschenrechner und Dateimanager.

Die Liste, geklammerte Dateien erstellen sich ggf. beim ersten Start selber:

COMM.DRV
COMMDLG.DLL
DISPLAY.DRV
DOSX.EXE
DSWAP.EXE
GDI.EXE
HIMEM.SYS
KEYBOARD.DRV
KRNL286.EXE
MOUSE.DRV
REG.DAT
SHELL.DLL
SOUND.DRV
SYSTEM.DRV
SYSTEM.INI
TASKMAN.EXE
USER.EXE
VGA850.FON
VGASYS.FON
WIN.CNF
WIN.COM
WIN.INI
WINFILE.EXE
(WINFILE.INI)
WSWAP.EXE
MOUSE.INI

Die benötigten Systemkonfigurationsdateien fallen im einfachsten Falle sehr knapp aus, wer möchte kann hier allerdings weitere Programme registrieren oder mehr Einstellungen an entsprechender Stelle hinzufügen, wie Bildschirmschoner oder Farbmuster. Wichtig ist vor allem der Shell-Eintrag. Hier sollte der Dateimanager eingetragen werden, so kann man bequem weitere Programme starten und generell bisschen arbeiten. Hardcores können hier aber auch ein einzelnes Programm wie Solitär eintragen, so wird dann Windows zur Runtime-Umgebung.

Inhalt SYSTEM.INI

[boot]
shell=winfile.exe
mouse.drv=mouse.drv
language.dll=langeng.dll
comm.drv=comm.drv
keyboard.drv=keyboard.drv
system.drv=system.drv
oemfonts.fon=vga850.fon
fonts.fon=vgasys.fon
network.drv=


Inhalt WIN.INI

[Extensions]
INI=notepad.exe ^.INI
TXT=notepad.exe ^.TXT


Sinnvolle Ergänzungsdateien

Je nach Gusto kann man nun den Rest an Platz mit weiteren Dateien füllen, eine sinnvolle Sammlung, welche noch komplett mit auf die Diskette passt wäre diese hier:

CALC.EXE
CLIPBRD.EXE
CLOCK.EXE
(CLOCK.INI)
NOTEPAD.EXE
WINMINE.EXE
WINVER.EXE

Methode 2: Windows 3.1 VON einer bootfähigen Disketten

Eine andere Methode Windows 3.1 auf eine Diskette zu quetschen ist die Verwendung von Archiven und RAM-Disks. Das spart Platz auf der Diskette und lässt nebenher die Programme sehr schnell aus dem virtuellen Laufwerk starten. Allerdings gibt es dabei kleinere Herausforderungen.


Das Ergebnis: Ein doch brauchbares Windows 3.1 von einer Diskette

Zunächst benötigt man wieder eine DOS Bootdiskette, da jetzt Platz nicht mehr so knapp ist kann diese auch Sprach- und CD-ROM Treiber enthalten. Wirklich wichtige Bausteine sind der RAM Disk Treiber "xmsdsk.exe" und ein Entpackprogramm für DOS, hier eine Sharewareversion von pkunzip. Am Ende befinden sich folgende Dateien auf der Diskette - in Klammern optionale Komponenten vom CD Treiber.

AUTOEXEC.BAT
(CDROM.SYS)
COMMAND.COM
CONFIG.SYS
HIMEN.SYS
IO.SYS
KEYB.COM
KEYBOARD.SYS
(MSCDEX.EXE)
MSDOS.SYS
PKUNZIP.EXE
WINFILES.ZIP
XMSDSK.EXE

Inhalt AUTOEXEC.BAT
@ECHO OFF
PROMPT $p$g
SET PATH=A:\;V:\
KEYB gr 850 A:\keyboard.sys
MSCDEX /D:MSCD000 /L:X
xmsdsk 2560 V: /y
pkunzip winfiles.zip v:\
cd v:\
WIN

Inhalt CONFIG.SYS
device=a:\himem.sys
devicehigh=a:\cdrom.sys /D:MSCD000
lastdrive=z
 

Die Winfiles.zip enthält ein vorher entschlancktes Windows 3.1, diesmal mit deutlich mehr Komponenten und auch mit Progman als Shell. Allerdings ist der Programm-Manager auch etwas schwierig. Er speichert seine Konfiguration immer in absoluten Pfaden, bei den INI Dateien lästig, ist es bei den Programm Gruppen fatal. Das RAM Laufwerk kann daher nicht einen beliebigen Buchstaben einnehmen. Im Beispiel wird daher V: gewählt. Also ein Buchstabe möglichst weit hinten, aber mit Platz für den CD Treiber nach Hinten (Im Beispiel X:).

Im Selbstversuch hat bei mir die Winfiles.zip folgende Dateien enthalten, wobei Dateien in Klammern vom Programm selbst erstellt werden, bzw. die Programmgruppen wie gesagt passend gebaut werden müssen.

CALC.EXE
CALENDAR.EXE
CLIPBRD.EXE
CLOCK.EXE
(CLOCK.INI)
COMM.DRV
COMMDLG.DLL
CONTROL.INI
display.DRV
DOSX.EXE
DSWAP.EXE
GDI.EXE
(HAUPTGRU.GRP)
KBDGR.DLL
KEYBOARD.DRV
KRNL286.EXE
MOUSE.DRV
MOUSE.INI
NOTEPAD.EXE
OLECLI.DLL
OLESVR.DLL
PBRUSH.DLL
PBRUSH.EXE
PROGMAN.EXE
PROGMAN.INI
REG.DAT
SHELL.DLL
SOL.EXE
SOUND.DRV
(SPIELE.GRP)
SYSTEM.DRV
SYSTEM.INI
TASKMAN.EXE
USER.EXE
VGA850.FON
VGASYS.FON
WIN.CNF
WIN.COM
WIN.INI
WIN87EM.DLL
WINFILE.EXE
(WINFILE.INI)
WINMINE.EXE
WINVER.EXE
WRITE.EXE
WSWAP.EXE
XLAT850.BIN
(ZUB.GRP)

Die Konfigurationsdateien im Überblick.

Inhalt PROGMAN.INI
[Settings]
Window=68 38 580 374 3
display.drv=V:\HAUPTGRU.GRP
Order= 3 2 1
SaveSettings=1

[Groups]
Group1=V:\HAUPTGRU.GRP
Group2=V:\ZUB.GRP
Group3=V:\SPIELE.GRP

Inhalt SYSTEM.INI
[boot]
shell=progman.exe
mouse.drv=mouse.drv
language.dll=langeng.dll
comm.drv=comm.drv
keyboard.drv=keyboard.drv
system.drv=system.drv
oemfonts.fon=vga850.fon
fonts.fon=vgasys.fon
network.drv=

[keyboard]
subtype=
type=4
keyboard.dll=kbdgr.dll
oemansi.bin=xlat850.bin

Inhalt WIN.INI
[intl]
sLanguage=deu
sCountry=Deutschland
iCountry=49
iDate=1
iTime=1
iTLZero=1
iCurrency=3
iCurrDigits=2
iNegCurr=8
iLzero=1
iDigits=2
iMeasure=0
s1159=
s2359=
sCurrency=EUR
sThousand=.
sDecimal=,
sDate=.
sTime=:
sList=;
sShortDate=dd.MM.yyyy
sLongDate=dddd, d. MMMM yyyy

[Desktop]
Pattern=(Kein)
Wallpaper=(Kein)
GridGranularity=0
IconSpacing=100

[Extensions]
INI=notepad.exe ^.INI
cal=calendar.exe ^.cal
crd=cardfile.exe ^.crd
txt=notepad.exe ^.txt
ini=notepad.exe ^.ini
pcx=pbrush.exe ^.pcx
bmp=pbrush.exe ^.bmp
wri=write.exe ^.wri

Damit das ganze Einfacher wird und die Hilfsprogramme nicht gesucht werden müssen, habe ich in den Downloads eine Datei mit diesen und einigen Konfigdateien gepackt. Man muss es nur noch auf eine Bootdiskette packen und die Windowsdateien ergänzen. Die Gruppendateien für ein Laufwerk V: finden sich bereits in der ansonsten zu füllenden Winfiles.zip.
 

Abschließende Bemerkungen

Es ist schon faszinierend ein Windows von einem so kleinen Startmedium starten zu sehen, 1,44 MB sind heute ja nicht mehr viel, selbst einige Bilddateien dieser Homepage würden nicht mal 3x auf dieses Medium passen. Offiziell konnte man Windows 2.03 das letzte mal auf Disketten installieren, aber auch schon dort war es unpraktisch. Es passt nicht alles drauf, man muss gerne mal im Betrieb die Diskette wechseln. Theoretisch müsste die Disketten auf allen PCs laufen, aber bei neueren kann es Probleme geben, so musste ich bei der ersten Version auf meinem  EEE-PC in die Leere hinein beim Startbildschirm "Enter" drücken. Das Laden machte eine Pause, auf dem 486er nicht.

Unter VirtualBox von Sun musste ich hingegen die Virtualisierungsfunktion der CPU deaktivieren. Die zweite Lief ohne Probleme auf dem EEE-PC, schmierte aber in der VirtualBox ab, wenn man die Maus benutzte. Bei 64-Bit Rechner wird vermutlich der Erweiterte 386 Modus nicht starten und neue PCs brauchen nackig bei USB Eingabegeräten ein wenig Bios Tuning, meistens als Legacy Mouse/Tastatur zu finden. Generell ist die Hardwarewelt schon lange an Windows 3.1 vorbeigezogen, Platten wird die Diskette nur im IDE Mode finden, und auch nur wenn FDISK Kompatible Partitionen drauf sind, aber lesen kann es die natürlich nur mit FAT16 drauf. Alles ohne Gewähr. Viel Spaß also damit ;-)


Video: Windows 3.1 von einer einzelnen Bootdiskette im Einsatz auf einem EEE-PC.

Schnelle Zeitleiste