Windows 1.0 Development Release 5

Microsoft Windows 1.0 Development Release #5 is the fifth pre-release version of Microsoft Windows, which was intended for developers. As such, it contains sample apps (some of them even with source code). According to install.bat, it was compiled on 1984-11-01. A review of it can be found [here]. In the review it is referred to as Windows '1984' with no development stage given, but he says that the build date was 1984-10-31 and so it's definitely DR5 that he reviewed.

Some interesting things about this build are: it installs to C:/windows/test with development resources in C:/windows/bin, resources are stored in .res files externally to the executable and some dialogs use a menu rather than OK/cancel buttons.

System Requirements
According to install.bat, you need the following:

The following equipment is required: The following software is required:
 * IBM XT or AT
 * 512 K memory.
 * Floppy disk configured as DRIVE A:.
 * Hard disk configured as DRIVE C:.
 * Color graphics card.
 * External console connected to COM1: ( debugging ).
 * Microsoft mouse ( bus or serial ).
 * Timer.
 * 2.x or 3.0 MS-DOS

Installation
Because this release requires IBM XT or AT and a Bus or Serial Mouse, your best bet to get it to work is by using 86Box.

Step-by-step 1. Download PCem v0.5 (it may work with newer versions, however for example 0.7 has broken disk support) 2. Download Generic clone XT BIOS ROM 3. Extract PCem to a folder of your choice, extract pcxt.rom from genxt.zip to roms\genxt 4. Run PCem 5. Create a HDD (Disc -> Configure Hard Discs...) If you have no idea what to put in, you can use 32 sectors, 16 heads and 30 cylinders for ~8MB HDD. 6. Parition and format the HDD
 * 6.1 Insert the first floppy of DOS of your choice (tested with DOS 2.11): Disc -> Change drive A:
 * 6.2 Reboot if needed
 * 6.3 Run fdisk, choose 1, Y, press Esc twice and let it reboot
 * 6.4 Run format C: (Y, Enter)

7. Install DOS on the HDD (you can skip this step if you wish to use DOS bootdisk everytime)
 * 7.1 Run sys C:
 * 7.2 Run copy *.* C:\*.*
 * 7.3 Eject the floppy (Disc -> Eject drive A:) and reboot

8. Install Microsoft Windows 1.0 Development Release #5
 * 8.1 Insert the first floppy of your DR5 setup
 * 8.2 Run copy A:\install.bat C:\
 * 8.3 Run C:\install.bat
 * 8.4 Confirm the 4 prompts, answer Yes to any question
 * 8.5 After another confirmation, it should start copying from Disk 1 If you have the mouse captured, make sure to press CTRL+END while it's copying! Otherwise, the keypress would count as a command to continue!
 * 8.6 After it asks you, insert Disk 2, press enter (again, don't forget to uncapture your mouse)
 * 8.7 After it asks you, insert Disk 3, press enter
 * 8.8 Confirm the last prompt
 * 8.9 Eject drive A:
 * 8.10 Reboot

Now, everytime you want to run windows, just do "path C:\windows\bin", "cd C:\windows\test" and "mswin" (or add it to autoexec.bat for auto boot).

Hercules support
This version supports both CGA (640*200) & Hercules (720*348) graphics. However, the CGA ones are installed by default. It's easy to switch from one to another, just follow these simple steps: path C:\windows\bin cd C:\windows\test drivers DesiredDriver Replace DesiredDriver with IBMCOLOR for CGA or with HERCULES for Hercules

Registering file extensions
In the user.pro file (\windows\test), you can find an [extensions] section. In this section, you can register file extensions with their application. To find out the correct format, check this example:

However, the app has to support taking the file as a parameter, which notepad doesn't seem to do.

Running applications on startup
The user.pro file (\windows\test) also contains a "Run" value in the [windows] section. Any executable you include in this space-separated list gets executed before the MS-DOS Executive starts. App started this way go directly into iconic mode.

References to past
If you take a look at REMOVE.BAT (in windows folder), you will see a much older date - 29/05/84. It is possible that this file was reused from one of the previous releases, probably from DR4 or DR3.

Also, if you take a look at the install.bat procedure, you'll notice that it empties some folders, but completely removes \windows\lib. It's possible that previous releases used this folder, however DR5 uses just \lib instead. The REMOVE.BAT doesn't care about \windows\lib, but mentions \lib, so it was either modified, or the release from which it came already used \lib.

The only reference to any previous releases in the provided documentation is in the QANDA.DOC (\windows\doc), where it briefly mentions "The RC.EXE program had a small file buffer. It simply couldn't handle your large menu. The bug has been repaired.", meaning that in previous release it was broken.

The documentation contains only one timestamp, and that is 16/10/1984 16:37 in GRAPH.DOC (\windows\doc). The files haven't been changed to have the same date, so you can clearly see when was each file created and/or modified.

References to future
In the QANDA.DOC, it mentions a January-release several times (ex. "By our January release, our goal is to..." or "In our January release, there will be..."). Because the Alpha was released in January, this probably means that no additional releases were made between DR5 and the Alpha (no DR6 or anything like that.)

Easter Eggs, funny things
The RC.exe (\windows\bin) contains a "MarkTaylor" string at offset 730C. It is a default value for the DEF file if you don't specify another using /D.

The source codes also contain funny quotes.

MENUID.C /* "Some people, they like to go our dancing, and other people    [like main], they do all the work . . ." */

/*   Our mad chicken-with-it's-head-cut-off error abort routine. */

PPDEMO.C /* figure out how many "characters" can fit on a line and down the screen */ /* NOTE: this routine is very stupid. These two lines get executed only */ /* once, and if the size of the window changes, it does not adjust. */

Mock-up apps
DR5 contains several mockup applications and source code for them is provided. I will add some pictures here soon.