Windows 1.0 Alpha Release

Alpha Release
Build of Windows 1.0
Screenshot
Release nameAlpha Release
OS family16-bit Windows
Version number1.00
Architecturex86 16-bit
Compiled on1985-01-31
TCB.png TCBGallery.png BA.png

Windows 1.0 Alpha Release is a pre-release build of Windows 1.0 compiled on 31 January 1985. It is the first leaked build to support cooperative MS-DOS applications. Although visually similar to Development Release builds, internally it is closer to the final Windows 1.0. It is the last leaked build (not the last known build) to include SDK components such as source code samples, libraries and development utilities.

Bob Richmond, who during the time period of Windows 1.0 development was an employee of RM, wrote on his blog in 2010 that "a beta release of Windows 1[.0]"[1] (a later post revised this to "pre-Beta"[2] after he referenced his surviving notes from the time) for the RM Nimbus PC-186 was compiled for and demonstrated at BETT in January 1985 as part of the system's launch. That build, although most likely no longer in existence, would be close to this one.

This build was uploaded to the BetaArchive FTP on 19 September 2008.[3]

System requirements[edit | edit source]

WININST.BAT lists the hardware and software requirements during installation:

 The following equipment is required:
 
             o IBM XT or AT
             o 512 K memory.
             o Floppy disk configured as DRIVE A:.
             o Hard disk configured as DRIVE C:.
             o IBM Color graphics card, Hercules Graphics Card,
               or EGA graphics card with monochrome monitor
             o External console connected to COM1: ( debugging ).
             o Microsoft mouse ( bus or serial ) or mouse with
               Microsoft compatible mouse driver (mouse.sys)
 
 The following software is required:
 
             o MS-DOS 2.x or 3.0

Installation[edit | edit source]

Much like in Development Release #5, installation is done with a batch file, WININST.BAT, that must be copied to your hard drive and started there. Follow the on-screen instructions, when you reach the display adapter selection screen, choose the display adapter you're using (either CGA, Hercules or monochrome EGA). The batch file will start Windows for the first time, to start it later you need to run the following commands:

PATH %PATH%;C:\WINDOWS\BIN;C:\WINDOWS\TEST
WIN

Changes[edit | edit source]

Alpha Release is more like a new operating environment compared to DR5, as almost all Windows components were rewritten prior to this build. However, visually this build is almost identical to DR5, except some system bitmaps received minor updates. The up-arrow cursor seen in the Fall COMDEX 1983 build also returned for unknown reasons.

Visible changes[edit | edit source]

This build is the first to support fast boot, .PIF files and the redesigned Windows API. Installation is done via a batch file named WININST.BAT, similar to DR5. The only difference is INSTALL.EXE is launched after the installation to create the main WIN100.EXE executable containing all core Windows components and device drivers. Along with fast boot, a new Windows launcher—WIN.EXE—was introduced to replace the old MSWIN.BAT. Likely due to the early implementation of fast boot, the Windows Kernel does not accept filenames as arguments, meaning it is not possible to start applications automatically by passing arguments to WIN.EXE or KERNEL.EXE. It is, however, possible to specify a shell other than MSDOS.EXE by running KERNEL -<filename>, assuming slow boot is used.

API changes[edit | edit source]

Windows API changed to the extent that all applications written for Development Release builds of Windows must be rewritten in order to function properly, or even to compile. Most GDI functions are in alphabetical order when sorted by ordinals, indicating a lot of them were rewritten from scratch, maybe in 8086 assembly for speed improvements.

All discovered changes[edit | edit source]

  • NE format received a major update
  • MS-DOS stub updated
  • Resources integrated into the executable
  • Window classes and Input Translation Tables no longer used
  • Message queue introduced
  • OEM configuration data and system bitmaps now stored in the display driver
  • Display and Cursor routines combined to become the display driver
  • Bitmap, cursor and icon formats received a minor update
  • Windows Old Application Support Module (WINOLDAP.MOD) introduced
  • PIF Editor introduced
  • Error handling improved
  • Microsoft Windows module renamed to Windows User Interface
  • Printer support added
  • Font format updated
  • Fast boot support implemented
  • Monochrome EGA support added
  • DOS mouse driver support added
  • Debug symbol format changed to .SYM
  • Microsoft Symbolic Debugger included
  • Segmented Executable Linker (Link4x) introduced
  • Minimal keyboard shortcut support added

Development[edit | edit source]

Development goals[edit | edit source]

The earliest information regarding the development of this build currently available is Ray Ozzie's meeting notes with Microsoft. Included with the meeting notes is a copy of the Microsoft Windows Development Goals, from roughly the 13th of January:

Microsoft Windows Development Goals

                          Microsoft Windows
                          Development Goals


HARDWARE GOALS

Run on a vanilla computer.

(1)   Architecture:  Intel 8086, 8088, 80186, or 80286 (compatibility
      mode).
(2)   msDOS:  version 2.* or 3.*; 4.*
(3)   Memory:  256KB of RAM.    
(4)   Display:  bitmapped, at least 640X200.
(5)   Pointing: equivalent to a one-button mouse; keyboard (see
      attached).
(6)   Disk:  at least one 5.25" floppy, and either a second floppy or
      rigid.
(7)   Keyboard:  up transitions.


FUNCTIONALITY GOALS

MAC + TopView + device independence = WIN

(1)   Metafiles:  sufficient for winWORD, winCHART, and winFILE.
(2)   Journal:  floppy-based self-running device-dependent
      demonstrations; 32KB/min maximum; special tool application.
(3)   Memory Management:  dynamic loading, moving, and discarding; no
      swapping; loading from floppy is an atomic operation.
(4)   Input Translation:  STDCHAR, OEMCHAR, STDKEYS; batch mouse and 
      characters.
(5)   Child Window:  overlapped, inside parent; no user interface.
(6)   Popup Window:  overlapped, anywhere; caption (title only),
      scroll, menu.
(7)   Data Exchange:  metafiles; delayed binding; direct possible; no
      link; general message passing facility.
(8)   Menu:  text/bitmap; pull-down; separator, check, inactive, tab,
      break.
(9)   User Profile:  non-resident.
(10)  Task Scheduling:  nonpreemptive, priorities; replaced by msDOS
      4.0.
(11)  Marker:  none.  [dot, plus, minus, star, triangle, and box].
(12)  Aspect Ratio:  isometric mode.
(13)  Color:  RGB; no conversion between color maps.
(14)  Fonts:  Scalable.
(15)  Register:  patterns, fonts, no cursor, no bitmaps.
(16)  Simulation:  line, polyline, arc, rectangle, polygon, pie,
      ellipse, no chord, no wide polygon; no plotter fill.
(17)  Block Transfer:  bit, string, stretch, pattern, no rotate.
(18)  Pens:  color, wide style, no wide styled, no patterned.
(19)  DC:  permanent check-out.
(20)  Bit Maps:  separate set operator; no pel array.
(21)  Cursor:  SetCursor is very fast.
(22)  DDA:  line; no spline, no ellipse.
(23)  Repeat Key:  automatically coalesced with count.
(24)  Control Manager:  scroll bar object; shares code.
(25)  Dialog Boxes:  line editor; radio buttons, push buttons, check
      boxes.
(26)  Finder:  like MAC; used by the MS-DOS Executive.
(27)  Installation:  to be determined.


USER INTERFACE GOALS

Good Macintosh fidelity capable inside top-level windows.

(1)   Tiling:  top-level windows only; children and popups overlapped.
(2)   Close Box:  works like MAC; optional in title bar.
(3)   Active:  only blinking caret in top-level; white title bars in
      children.
(4)   Icons:  represent running applications, not files; long-string
      labels.
(5)   Default Scroll Bars:  no splitter bars, no room for page number.
(6)   Menu Bar:  at the top of the window; automatic folding.
(7)   Pull-Down Menus:  two dimensional; clipped at screen bottom.
(8)   Help:  none.
(9)   Bundled Applications:  see attached.
(10)  OEM Customize:  all bitmaps and patterns, pointer size, icon
      size.
(11)  ISV Customize Class:  icon, scroll bar, menu, background,
      cursor.
(12)  ISV Customize Child:  border, scroll bars.
(13)  ISV Customize Popup:  caption, scroll bars, menu.
(14)  Volume Name:  prompt user for name; no check for duplicate
      names.
(15)  Clipboard:  cut; copy; paste; set format; no format conversion,
(16)  Notepad:  unify with Type; fixed pitch font; simple edits.
(17)  Control Panel:  date, time, blink rate, double-click time.
(18)  Clock:  no alarm.
(19)  PIF Editor:
(20)  Current Directory:  terminal emulator changes; none for WIN
      apps.


PORTABILITY GOALS

Virtualize the display, keyboard, pointing device, timer, sound, and
printers.

(1)   Compiler for letter-quality printer drivers.
(2)   Sound:  subset of interface from msBASIC.
(3)   Mouse:  installable; serial, parallel; relative, absolute.
(5)   Display:  installable; IBM color, IBM EGA, IBM PCjr, Hercules,
      Compaq.
(6)   Plotter:  installable; HP 7470A, HP 7475A, JI DMP-29.
(7)   Printer:  installable; Epson FX80 and MX80 and IBM 80, Okidata
      Microlire 92, Canon pjl080 color ink-jet, IBM Prism color, HP
      ThinkJet, Diablo 620, Diablo 630A, Diablo 630, and Diablo C150,
      NEC 3550, NEC 7710, NEC 8023, Aux 2 (same as IBM Wheel), IBM
      QuietWriter, Daisy Daisywritter, Xerox 1770.
(8)   Communications:  subset of interface from msBASIC.
(9)   msDOS 3.0:  can dynamically load over the network.


BACKWARD COMPATIBILITY GOALS

Run behaved applications in a window, give the whole screen to
misbehaved applications.  Compact memory to try to make room; if not
enough, user must close other applications and try again; if only MS-
DOS Executive left, then blow away msWIN and restart later.

(1)   PIF:  memory min/max/sys, interrupts high/low, video RAM, screen
      type, keyboard buffer, math processor, no other fileds.
(2)   Misbehaved:   1-2-3, Symphony, PFS:Graph, dBASEIII, Multimate,
      WordStar, msWORD, msCHART, pcPlan, gwBASIC.
(3)   Behaved:  IBM Assistant, msPLAN (BIOS version), PFS:notGraph.
(4)   Screen Grabber:  OEM-supplied T&SR program to copy screen to
      Clipboard.
(5)   Screen Switching:  none; only run one misbehaved app at a time.
(6)   PIF Filters:
(7)   Interruptability of old apps.


PERFORMANCE GOALS

Run at least one half Macintosh speed, on an IBM PC.

(1)   Booting:  not more than twenty-four seconds from floppy disk on
      PC.
(2)   Text:  not more than l millisecond per character.
(3)   Vertical Scrolling:  not more than 100 milliseconds per line.
(4)   Horizontal Scrolling:  not more than 300 milliseconds per pixel.
(5)   Popup and Children Windows:  fast as parent windows.
(6)   Flood Fill:  faster than msBASIC.
(7)   winPAINT:  > 90% as fast as Mouse Systems Paint.
(8)   Caching:  DCs, clip regions, etc.
(9)   StringBlt:  compile onto the stack.
(10)  Clip Region:  assembly code; accelerated null user; dont-clip
      flag.
(11)  Line:
(12)  Loading Applications:


SIZE GOALS

Fit on a bootable 362KB floppy disk, and run like a 128KB Macintosh in
256KB.


COMMITTED SIZES

Not including small machine version.

                                                DISK   RESIDENT
(1)   Data:  not including fonts               [          24KB]
(2)   Drivers:  IBM PC with msMOUSE            [ 8KB       8KB]
(3)   GDI:  nonresident flood fill             [ 28KB     16KB]
(4)   Kernel:                                  [ 28KB     16KB]
(5)   User Interface: incl. control manager    [ 80KB     36KB]
(6)   MS-DOS Executive:                        [ 36KB]
(7)   Control Panel:                           [  8KB]
(8)   Clipboard:                               [  4KB]
(9)   Notepad:                                 [  8KB]
(10)  Clock:                                   [  2KB]
(11)  Calculator:                              [  8KB]
(12)  PIF Editor:                              [ 12KB]
(13)  ANSI Terminal Emulator:                  [  8KB]
(14)  Fonts:                                   [ 55KB      4KB]
                         -------------------------------------
                         msWIN                 [285KB]   128KB
                         msDOS (most commands)   76KB     28KB
                         -------------------------------------
                         TOTAL                  361KB    156KB


INTERNATIONAL GOALS

Foreign versions, especially Kanji, are easy to create, but
multilingual not required.

(1)   Message Files:  for all text; resource file for strings.
(2)   International Versions:  recompilation required; language stamp.
(3)   Kana to Kanji:  code from msJAPAN; popup over icons, reserved
      for zoom.
(4)   Foreign Fonts:  not provided.
(5)   Xerox Character Encoding:  default to be determined; CS254 for
      old apps.
(6)   Printer Drivers:  device dependent if they use fonts in ROM.
(7)   Date, Time, Money, Decimal:  use msDOS call.
(8)   Sort Order:  none.
(9)   Dead Keys:  STDCHAR for to app with bit; OEMCHAR combines them.

Fast Boot[edit | edit source]

According to directory entries found in the slack space of various Windows 1.0 disks, MSWIN.BAT was last (known to be) modified on the 18th of January. MSWIN.BAT was the Windows loader prior to the implementation of fast boot and WIN.COM. This means fast boot support was added after the 18th of January. The appearance of INSTALL.MAP/INSTALL.SYM gives an indication that the work on fast boot started before the 23rd of January.

Directory entries

???????  EXE     31238 04-04-85   9:21:00a     3233 
?ELETED      <DIR>     04-27-85   6:05:00a     5137    // deleted
?OMMAND  COM     22042 08-14-84   8:00:00a      510    // deleted
UPDSMALL BAT       345 01-29-85   1:05:08p     2202 
?INPLAY  EXE      2053 01-23-85   6:00:38p     8750    // deleted
?INPLAY  MAP      3018 01-23-85   6:00:38p     8752    // deleted
?INPLAY  SYM       456 01-23-85   6:00:38p     8755    // deleted
?NSTALL  MAP     11285 01-23-85   7:23:58p     8762    // deleted
?AIT     CUR       270 01-15-85  10:02:32a     5187    // deleted
?NSTALL  SYM      2540 01-28-85   7:46:00p     6402    // deleted
?EST             21616 01-16-85   4:53:16p     5197    // deleted
?ROSS    CUR       270 01-15-85  10:03:18a     5208    // deleted
?LRBTN   BMP       206 01-14-85   3:07:14a     6216    // deleted
COPYPROT BAT        45 01-17-85  10:21:08a      810 
?HAPES   EXE      4288 01-30-85   5:06:24a     3381    // deleted
?CONEDIT MAP     12867 01-24-85   4:37:04a     8842    // deleted

?RINTER  PRO       264 01-24-85   9:09:54p     9806    // deleted
?OMM     EXE      6053 03-19-85   5:13:20p     1562    // deleted
?OMM     SYM       821 01-25-85  10:11:08a     6400    // deleted
?OMM     MAP      4812 01-24-85  11:05:44a     9818    // deleted
?UNTITLE             0 01-24-85  11:05:44a        0    // deleted
?OUND    MAP      3016 01-24-85  11:16:54a     9821    // deleted
?OUND    SYM       454 01-25-85  10:15:24a     6401    // deleted
?UMP     EXE      4800 01-24-85  12:41:52p     9834    // deleted
?RACK    EXE      4816 01-30-85   5:03:20a     3395    // deleted
?E       EXE     30358 01-05-85  11:18:38p     3989    // deleted
?OUSER   BAK        33 01-26-85   6:30:10a      849    // deleted
?C       EXE     32563 11-12-84   6:25:22p     4732    // deleted
?EW      SAV     21616 01-24-85   4:33:42p     6322    // deleted
?OKPRO   BAT        40 01-26-85   6:30:40a      850    // deleted
?SWIN    BAK        17 01-18-85   1:29:20p     4405    // deleted

Copy protection[edit | edit source]

COPYPROT.BAT listed above may have something to do with copy protection, and it shows that copy protection for Windows was once considered, in early 1985.

Executable format[edit | edit source]

?E.EXE appears to be the NE (NEWEXE) program used to generate old Windows executables. This hints that the major NE format update happened after the 5th of January, as executables using the newer NE format must be generated by the Windows/Multitasking MS-DOS 4 Object Linker (LINK4X.EXE), not the NE program. Combined with the NE format changelog below, it is safe to assume that the "substantial .EXE format revision" was not used by the Windows team until the 5th of January, and most likely after the "resource definitions" addition by the Windows Lead Architect, Steve Wood.

NE format changelog

/*
 *  Title
 *
 *      newexe.h
 *      Pete Stewart
 *      (C) Copyright Microsoft Corp 1984
 *      17 August 1984
 *
 *  Description
 *
 *      Data structure definitions for the DOS 4.0/Windows 1.0
 *      executable file format.
 *
 *  Modification History
 *
 *      84/08/17        Pete Stewart    Initial version
 *      84/10/17        Pete Stewart    Changed some constants to match OMF
 *      84/10/23        Pete Stewart    Updates to match .EXE format revision
 *      84/11/20        Pete Stewart    Substantial .EXE format revision
 *      85/01/09        Pete Stewart    Added constants ENEWEXE and ENEWHDR
 *      85/01/10        Steve Wood      Added resource definitions
 *      85/03/04        Vic Heller      Reconciled Windows and DOS 4.0 versions
 *      85/03/07        Pete Stewart    Added movable entry count
 *      85/04/01        Pete Stewart    Segment alignment field, error bit
 */

Enhancements[edit | edit source]

Switching drivers[edit | edit source]

This build includes a utility for installing different drivers, which runs at the end of installation. Normally you will be asked to choose the display driver to install, and by default you can choose between CGA, Hercules and Monochrome EGA. If you want to change drivers later, go to the C:\WINDOWS\INSTALL folder and run INSTALL C:\WINDOWS\TEST, then choose the new driver/drivers you wish to install. INSTALL.DAT contains a list of drivers/system files to copy to the WINDOWS\TEST directory, which may be modified to preinstall additional drivers/programs.

Running DOS applications under Windows[edit | edit source]

To make sure DOS applications work as good as they should under Windows, C:\WINDOWS\TEST must be added to the PATH system variable as well. This ensures the relevant PIF file in the TEST directory is found and used.

Bugs[edit | edit source]

  • The screen fails to clear automatically after quitting Windows when the EGA driver is used, most likely caused by the buggy EGA driver. Can be fixed by running the CLS command after quitting Windows or starting Windows using Beta Release's WIN.COM.
  • Sometimes cooperative MS-DOS applications cannot run in terminal emulation (windowed) mode, due to missing .PIF files. Can be fixed by adding C:\WINDOWS\TEST to PATH.
  • Cursor boundaries do not move with dialog windows. This is most likely a bug and if the dialog window is moved outside of the cursor boundary, dialog buttons will be out of reach. Most dialogs can be closed by pressing the Enter key. Tab key can be used if the dialog contains more than 1 button.
  • Sometimes MS-DOS Executive does not start after booting into Windows, leaving the user with a blank desktop. This is due to wrong DOS version, hardware or incompatible drivers. Running KERNEL.EXE -MSDOS.EXE (slow boot only) may force MS-DOS Executive to load.

Interesting features and finds[edit | edit source]

Use of the Shift key[edit | edit source]

To start an application in iconic mode, double-click it in MS-DOS Executive while holding down the ⇧ Shift key. Double-clicking a text file while holding down the key will cause a preview of the text file to be displayed on top of the Notepad icon.

  • To restore and maximize a minimized application at once, double-click the application's icon while holding down the key.
  • To start a new instance of a running application, click and drag the application's window or icon to the desired place on the screen while holding down the key. Clicking the application's window title bar while holding down the key will create a new instance of the application vertically tiled with the previous one. Some applications cannot be started this way.
  • To view a minimized application's window title, hover over the application's icon while holding down the key.
  • To select 2 or more files at once in MS-DOS Executive, click the names of the files while holding down the key.

Drag and drop[edit | edit source]

  • To move a file from one directory to another, simply drag and drop to another folder using MS-DOS Executive.
  • It is not possible to drop the file anywhere outside of the MS-DOS Executive window. This means files can only be moved into subdirectories so it is not possible to undo the move using drag and drop.

Windows Paint[edit | edit source]

  • USER.PRO associates .MSP files with PAINT.EXE.
  • The file PAINT.H from the Windows 2.11 OEM Binary Adaptation Kit suggests that Paint was originally created around June 1984:
 *	Modification history:
 *		6/19/84   dhm	Created
 *		6/26/84   dhm	Moved constants from palette.h
 *		6/27/84   dhm	Added selection structures
 *		7/31/84   dhm	Went to single window format
 *		10/23/84  dhm	Changed mouse input to be above 256
  • PAINT.EXE was present on the second installation disk at some point, but was deleted for unknown reasons.[4] It can be undeleted using the UNDELETE command in later versions of MS-DOS. It appears to be identical to the version seen in photos from the May 1985 issue of French computer magazine Science et Vie Micro.
  • A photo of Alpha Release or a similar build from the 1985-08 issue of Personal Computer World magazine proves that PAINT.EXE was deleted by Microsoft, as 151KB of free space indicates no PAINT.EXE on disk 2.

Undocumented KERNEL.EXE argument[edit | edit source]

  • As mentioned earlier, running KERNEL -<filename> allows the user to use a different shell, and Alpha Release is the only leaked build with this feature.
  • MS-DOS Executive (MSDOS.EXE) is the only Windows application that can be started as shell.

Cursor inconsistencies[edit | edit source]

  • The Hercules Graphics Card NORMAL cursor is different from the CGA/EGA NORMAL cursor.
  • The Enhanced Graphics Adapter ICON cursor is different from the CGA/HGC ICON cursor.

Color support[edit | edit source]

Similarly to earlier releases, the Alpha Release internally supports color but only ships with monochrome drivers for CGA, EGA and Hercules. jb881122 has ported the 16 color VGA/EGA driver from the Windows 2.11 OEM Binary Adaptation Kit to this build, which makes it possible to use this build in color.[5] Currently the ported driver suffers severe bugs, due to driver API changes between Alpha Release and Windows 2.11.

Gallery[edit | edit source]

Included applications[edit | edit source]

References[edit | edit source]