Windows 1.0 Alpha Release
Build of Windows 1.0 | |
Release name | Alpha Release |
---|---|
OS family | 16-bit Windows |
Version number | 1.00 |
Architecture | x86 16-bit |
Compiled on | 1985-01-31 |
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'sWIN.COM
. - Sometimes cooperative MS-DOS applications cannot run in terminal emulation (windowed) mode, due to missing
.PIF
files. Can be fixed by addingC:\WINDOWS\TEST
toPATH
. - 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 withPAINT.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 theUNDELETE
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 noPAINT.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/EGANORMAL
cursor. - The Enhanced Graphics Adapter
ICON
cursor is different from the CGA/HGCICON
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]
Paint (removed by Microsoft)
References[edit | edit source]
- ↑ Richmond, Bob. My first Home PC - recollections of the RM Nimbus PC-186, Journal of Total Obscurity. 12 August 2010.
- ↑ Richmond, Bob. Windows: The 25th Anniversary, Journal of Total Obscurity. 1 November 2010.
- ↑ https://www.betaarchive.com/forum/viewtopic.php?t=5640
- ↑ https://www.betaarchive.com/forum/viewtopic.php?t=40355
- ↑ https://www.betaarchive.com/forum/viewtopic.php?t=42774