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.
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.
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.
@ECHO OFF
WIN /S
device=a:\himem.sys
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.DRVSYSTEM.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.
[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=
[Extensions]
INI=notepad.exe ^.INI
TXT=notepad.exe ^.TXT
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
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.
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
@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
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.EXEPROGMAN.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.
[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
[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
[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
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 ;-)