Mini-Windows on a box





This page will show how to properly install and configure an emulated test box running mini-windows.


Introduction

Mini-Windows is a version based on Microsoft Windows 3.1 designed to perform the installation procedures of windows 95/98/ME, therefore it is very limited by design.

The goal of this work is to supply a working platform to test and further customize the capabilities of this miniaturized windows version in newer hardware/software conditions.

All external software to Microsoft derivates from GNU Open Souce software, with the exception of Batcher (wich is freeware and will hopefully be licensed as GNU soon..), the only licensed material used in this project is MINI.CAB itself, wich will have to be supplied by your own licensed copy of Windows 95/98/ME.


Tools included:

qEmu - PC Emulator - developed by Fabrice Bellard (fabrice@bellard.org)
mkISOfs - Create ISO filesystem - developed by Jörg Schilling (schilling@fokus.fraunhofer.de)
HX Dos - HX DOS extender - developed by Japheth (mail@japheth.de)
Batcher - .script file interpreter - developed by Nuno Brito (nunobrito.azores@gmail.com)



Getting started

Start by unpacking all files and folders on an easy to acess path. By default all configurations are already prepared to be used in path c:\Win31, it is possible to use any other paths, but please remember to configurate batcher to use the paths you select.


Here you see an example of how your files should look using default values







Find your MINI.CAB file from a Windows installation CD, any version of  Windows 95/98/ME will work






Copy MINI.CAB file to the Source directory inside your working dir ("c:\Win31\Source" by default)






Run Batcher and check if all paths are correct, including the ISO wich must be a filename without spaces ending with extension .iso (e.g: Boot.iso)








Check if your main window on batcher contains all the necessary .script files, press start to begin building process
 





Right after the building is complete, QEMU will be launched to test your newly made ISO file, wich will then load the FREEDOS boot image.







If everything worked out fine, this should be the final result








How does this process works?


FREEDOS

First you a need a good boot disk, in this case we are using a freedos boot disk because they are in constant development, so this is a good way to ensure compatibility with more hardware in the future - this image already contains drivers to support CD/DVD Roms, all files inside the "Source" directory will be included in the CD. A ram disk is also created with an approximated size of 90Mb, if you need lower/bigger sizes, you'll have to manually edit the autoexec.bat file inside the freedos image.


MINI.CAB

These are files wich originally derivated from Windows 3.1, but these files haven't some differences that restrict their use for running windows applications, if you wish to build a fully running Windowss 3.1 files, just overwrite the files in the source dir with the files from an original Windows 3.1 installation - they will run even better.


HX-DOS

Files from the HX DOS project were used because of problems with the original dosx.exe that came inside MINI.CAB, in order to load the open source DOSX version was necessary to add a few more files. The goals of HX is to natively run Win16/32 programs from DOS without needing an instalation of windows.


MKISOFS

Is a general purpose tool that creates an bootable ISO file (filesystem) using a boot disk image and a folder with all the files to include in this ISO. If you plan to use mkisofs from command line don't forget to always include the boot image inside the folder that will be processed by mkisofs - otherwise it will fail to create a new bootable ISO file.


BATCHER

A custom script interpreter designed to test bootable media, inside batcher you can select wich actions take place or wich .script are going to be executed. For testing purposes it is not necessary to run all scripts, after the first full processing take place, in most cases you can just select the last two scripts that will build your ISO file and emulate the booting process in QEMU.


QEMU

Fast, small and free PC Virtualizer wich will quickly run an emulated PC using your newly created ISO file, in this distribution QEMU already includes an emulated 50Mb hardrive disk where you can save all your testings. 




Recomendations

This is a very basic project wich is sill in an early stage of development, most windows 16 bit applications are not supported in the mini version, applications know to run are FileManager (wich cannot be included due to license restrictions) and others.



At this point of development most 16 bit applications will crash due to: Application Error - Call to Undefined DynaLink - because of this problem there is no possibility to use more freeware applications. If anyone manages to workaround this issue, I would surely appreciate




After searching for more information regarding this issue, here is a brief quote:

Error Message: Application Error. Call to Undefined Dynalink.

Cause: This error occurs when Windows trips over an incorrect or outdated dynamic-link library (.DLL) file. .DLL files contain information that allows applications running under Windows to share code and other resources to accomplish things efficiently. .DLL files included with Windows allow Windows-based programs to operate efficiently under Windows. Most often, that outdated file is Toolhelp.dll. The error message also can occur if older versions of Shell.dll, Olecli.dll, Olesvr.dll, or Commdlg.dll are present.

Solution: You need to remove that outdated .DLL file so Windows can find the correct one. Check Toolhelp.dll first. The correct version should be in the system subdirectory of Windows (C:\WINDOWS\SYSTEM) and be dated 3/10/92. If you find a version of Toolhelp.dll with a different date on it, delete it. Shell.dll, Olecli.dll, Olescr.dll, and Commdlg.dll should all be dated 3/10/92 as well. Check for these drivers and remove older versions. The 3/10/92 versions should be already installed in the C:\WINDOWS\SYSTEM directory. If they are not, you'll need to install them from your Windows installation diskettes.





Nuno Brito
http://nunobrito.pt.vu