Windows 1.0 Development Release 5
|Build of Windows 1.0|
Windows 1.0 Development Release #5 is a pre-release build of Windows 1.0. This build is the fifth in the Development Release series, intended to help application developers design and develop their applications to work with Windows. According to
INSTALL.BAT, it was compiled on 1 November 1984. It is the earliest leaked build of Windows so far.
By default, this build is installed to
C:\WINDOWS\TEST, with development resources in
C:\WINDOWS\BIN. Also included are several mockup applications, namely Chart, Graph, PPDemo, Sample and Template, along with their source code. The overall UI design philosophy was not finalized yet, which can be clearly seen in dialogs - some, like the standard Windows dialogs, use a menu bar rather than OK and Cancel buttons, while custom dialogs tend to look completely different.
System requirements[edit | edit source]
INSTALL.BAT, the following is required:
|The following equipment is required:
The following software is required:
Installation[edit | edit source]
The installation is done with a simple batch script named
INSTALL.BAT. Using an emulator such as PCem or 86Box is recommended, since this build depends on an IBM XT or AT and a bus/serial mouse.
Step-by-step[edit | edit source]
- Use an emulator such as PCem or 86Box and create a new virtual machine of XT or AT class with the following hardware configuration:
- Intel 8088, 8086 or 80286 processor (depending on the selected machine)
- 512k or more memory
- CGA or Hercules display adapter
- Serial port 1 enabled and used for Microsoft Serial Mouse
- A machine-appropriate hard disk controller (either MFM, RLL, XTIDE or IDE)
- A 10 or 20 MB hard disk with standard CHS values and of the same type as the controller
- At least one 5.25" 360k floppy disk drive
- Boot the machine with an MS-DOS or PC-DOS 2.x or 3.0 bootdisk.
- Partition and format the hard drive by using
- Reboot the machine to boot from the hard disk.
- Insert the first floppy disk for Development Release #5.
copy A:\INSTALL.BAT C:\.
- Follow on-screen instructions.
Now every time you want to run Windows, type
cd C:\WINDOWS\TEST and
mswin (or add these lines to your
AUTOEXEC.BAT file to automatically start Windows on system boot).
Issues, fixes and enhancements[edit | edit source]
Development Release #5 is still a rather early build and thus has some notable performance and stability issues. Prolonged or memory intensive use (e.g. running many applications at the same time) can cause the build to hang or crash without warning, sometimes to the point where only a hard reboot will restore functionality to the computer.
Notepad crash[edit | edit source]
Starting Notepad may cause the system to hang or crash if the configuration file
USER.PRO is present in the
\windows\test directory. You can work around this issue by deleting, renaming or moving this file, but the better solution is to add these two lines to your
CONFIG.SYS file in the root of the C: drive:
Notepad and Control Panel problem[edit | edit source]
Notepad and Control Panel will only start once per session. Trying to start them for the second time will only result in a brief cursor change from normal to hourglass and then back to normal. The reason for this is because unlike all other included applications, these two attempt to register their class again on every start, which only works the first time - the initialization procedure will fail on all subsequent starts. Removing the call to RegisterClass allows the modded executable to run every time once the original executable was started once.
This could indicate that class registration may have functioned differently in previous releases.
PPDEMO problem[edit | edit source]
PPDEMO.EXE application may cause the system to hang after it's closed, though the reason for this is unknown.
Clipboard problem[edit | edit source]
The Clipboard application can't be closed for the rest of the session once it's started. It's unclear whether this is the intended behavior or a bug.
Accessing empty floppy drives[edit | edit source]
If you try to access an empty floppy drive in MS-DOS Executive, the system will display a DOS disk error message over Windows and hang or crash. This was fixed in the Alpha release, so that Windows instead displays a proper error dialog.
Switching display drivers[edit | edit source]
This build supports both double-scanned CGA (640x400) and Hercules (720x348) display, both in monochrome only. However, only CGA drivers are installed by default. Switching between them can be done with the included
DRIVERS.BAT batch file, just follow these simple steps:
IBMCOLOR for CGA or with
HERCULES for Hercules. Please note that you must of course also change the emulated display adapter in emulator settings.
Registering file extensions[edit | edit source]
USER.PRO file (in
\windows\test), you can find an
[extensions] section. This is where you can register default applications for handling file extensions. The format is as follows:
txt = notepad.exe ^.txt
Be aware that the application has to support receiving a filename as a parameter, which Notepad doesn't at this point.
Running applications on startup[edit | edit source]
USER.PRO is a Run value in the
[windows] section. Any Windows executable you include in this space-separated list gets executed before the MS-DOS Executive starts. Applications started this way go directly into an iconic mode at the bottom of the screen (in other words, they'll be minimized).
Interesting findings[edit | edit source]
The NE format[edit | edit source]
This build uses an earlier version of the NE executable format, which is quite different from the final one and incompatible with it. The key difference is that application resources, such as menus, icons, etc., are stored externally in
.RES files, usually with the same name as the EXE. The resource files appear to be loaded during the initialization procedure of the application. Double-clicking on resource files in MS-DOS Executive will start the associated application the same way that double-clicking on an EXE would.
Another difference is that this version of the format does not require the MS-DOS MZ stub at the start of the file. This results in there being two kinds of DR5 executables - those with and those without the MZ stub. The former can be started under MS-DOS, where they will display the usual "This program requires Microsoft Windows." message and quit. The latter will cause undefined behavior.
Use of the SHIFT key[edit | edit source]
You can start applications in iconic mode by holding down the
SHIFT key while double-clicking on them in the MS-DOS Executive. To both restore and maximize a minimized application in a single move, hold down the
SHIFT key while double-clicking on the application's icon.
To quickly start a new instance of an already running application, hold down the
SHIFT key, then click and drag the application window to where you want the new window created. You can also click once on its window title, which will create a new window above the existing one. The new window will then be vertically tiled with the previous one. This also works for minimized applications, dragging and dropping an icon into the icon area will create a new minimized instance.
Crash message[edit | edit source]
This build contains a message saying "Windows is about to crash". However, triggering the message is difficult, as the system will usually either hang or crash completely before the message can be displayed. This message was removed some time after Beta Release prior to Premiere Edition.
MS-DOS Executive drag-and-drop support[edit | edit source]
MS-DOS Executive in this build actually support simple drag and drop operations for moving files between directories. This feature was later completely removed after the Alpha Release, when MS-DOS Executive received a minor redesign. This may have been used to facilitate file deletion by dragging and dropping them onto the trash can icon in the icon area (see below).
Clock instances limit[edit | edit source]
The number of concurrently running timers in DR5 is limited to 16. As the Clock application uses a timer for each instance, at max 16 instances can run simultaneously. If you try to start the 17th Clock instance, the call to
SETTIMER will fail and an error message will be displayed.
References to past releases[edit | edit source]
REMOVE.BAT in the
WINDOWS folder contains an older date, 29 May 1984. It is possible that this file was re-used from a previous build, probably from Development Release #1, which was scheduled for release in May 1984 according to the 7 May 1984 issue of InfoWorld.
The installation procedure in
INSTALL.BAT empties some folders first, but completely removes
\windows\lib. It's possible that previous releases used this folder, whereas DR5 uses just
\lib instead. The batch file for uninstalling Windows,
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
The only reference to any previous releases in the provided documentation, in
QANDA.DOC (found in
\windows\doc), where it says: "The RC.EXE program had a small file buffer. It simply couldn't handle your large menu. The bug has been repaired". The included digital documentation contains only one timestamp, and that is "16/10/1984 16:37" in
GRAPH.DOC (also in
\windows\doc). The files haven't been changed to have the same date, so you can clearly see when was each file created and modified.
References to future releases[edit | edit source]
QANDA.DOC, an upcoming January release is mentioned several times: "By our January release, our goal is to..." and "In our January release, there will be...". Because the Alpha was released in January 1985, this seems to suggest that no additional releases were made between DR5 and Alpha.
Easter eggs and funny things[edit | edit source]
\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 the
The source code also contains some funny comments.
"Some people, they like to go our dancing, and other people
Our mad chicken-with-it's-head-cut-off error abort routine.
/* figure out how many "characters" can fit on a line and down the screen */
Icons[edit | edit source]
Windows 1.0 introduced the icon and cursor format (.ICO and .CUR files), though it was significantly changed in Windows 3.0 and has since remained largely the same to this day. The two formats are not compatible, but files can be converted from one to the other without much work.
WINDOWS.RES, there is an unused icon named
TRASH, indicating older builds may have had a trash can feature of some kind. This is supported by photos of earlier builds where this icon can be seen, and press articles where it's described as a place where files are discarded. Clearly, the feature was already removed before DR5 with only the trash can icon remaining.
Error messages[edit | edit source]
The API in this build has a
PostError function that can display 3 error levels:
FATAL_ERROR. Dialogs created with
PostError always have
Ignore buttons that appear like a menu bar.
In case the application wants other button combinations, the
PostMessage function must be used. For
PostMessage, there's no concept of error levels. The famous note icon is displayed when using
PostError with error level
WARNING, and whenever using
No user interface will be displayed for
PostError with error level
FATAL_ERROR. Windows will exit within milliseconds on a 8Mhz machine after manually triggering it. Right after Windows exits, an error message is displayed in MS-DOS for approximately 1 second before the screen gets filled with seemingly random contents of memory.
All errors in DR5's sample apps use either
PostError with error level
PostMessage which shows only the note icon and caused many people to believe the bomb was a remnant from previous Development Releases. The error icon was later changed to a hand performing the "stop" gesture, but the original choice of a bomb indicates early Windows development was influenced by Apple's Macintosh, which also used a bomb as an error icon.
clsWndHelp[edit | edit source]
This is one of the class procedures defined in the WndClass struct in
WINDOWS.H. Class procedures were the predecessor of the message queue, and were called by Windows when an event related to the focused application happened, such as the user scrolling down. Before registering its class, every application has to set pointers in its class instance to the procedures it implements for handling desired events.
This particular procedure is not used by any of the sample applications, and its name suggests it could be a leftover from earlier builds that used it for providing help to the user via the system Help button in the status bar at the top of the screen. No other references to a help system can be found.
Later build[edit | edit source]
A low resolution image depicting a build very similar to DR5 was posted on the BetaArchive Discord server on 5 August 2019, but so far there is no proof for the authenticity of the image as its source is unknown. Visually, the build is identical to DR5, but it includes the PIF editor (
PIF.RES), which was introduced sometime between DR5 and Alpha Release. The presence of the PIF editor could suggest minimal DOS application support. The files
DOSAPP.EXE could be an early version of
WINOLDAP.MOD (Windows Old Application module, used for running DOS applications under Windows), but the presence of
DOSAPP.PIF could also mean it's in fact just a DOS application. The Clock application is also running, but its files are not located on drive A: (its contents can be seen in the MS-DOS Executive window), suggesting they might be on another disk.
PIF Edit[edit | edit source]
PIF Edit seen in this image has an "Icon" field, which is missing a colon (:) after the label. It also has options called "Warn" and "Force Exit", which don't appear in later versions of the program. Many options seen in Alpha Release's PIF Editor are missing, indicating this could be a very early form of the program. The ability to display a custom icon for DOS application would be especially interesting.