Windows 1.0 Alpha Release
Windows 1.0 的版本 | |
![]() | |
发布名称 | Alpha Release |
---|---|
操作系统家族 | 16 位 Windows |
内核版本 | 1.00 |
体系结构 | x86 16-位 |
编译日期 | 1985 年 1 月 31 日 |
Windows 1.0 Alpha Release 是 1985 年 1 月 31 日编译的 Windows 1.0 的预发布版本。它是首个支持协作的 MS-DOS 应用程序的泄露版本。虽然在视觉上与 Development Release 内部版本相似,但在内部它更接近最终的 Windows 1.0。它是最后一个包含 SDK 组件(例如源代码示例、库和开发实用程序)的泄露版本(非最后一个已知的版本)。
Bob Richmond 在 Windows 1.0 开发期间是 RM 的一名员工,他在 2010 年在他的博客上写道,RM Nimbus PC-186 的“Windows 1[.0] 的 beta 版本”[1](后来的一篇文章在他引用了他当时幸存的笔记后将其修改为“pre-Beta”[2])是为 RM Nimbus PC-186 编译的,并于 1985 年 1 月在 BETT 上作为系统发布的一部分进行演示。该版本虽然很可能已不复存在,但与此版本接近。
此版本于 2008 年 9 月 19 日上传到 BetaArchive FTP。[3]
系统要求
WININST.BAT
列出了安装过程中的硬件和软件要求:
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
中文翻译:
需要以下设备: o IBM XT 或 AT o 512 K 内存。 o 配置为驱动器 A: 的软盘。 o 配置为驱动器 C: 的硬盘。 o IBM 彩色显卡、Hercules 显卡、或带单色显示器的 EGA 显卡 o 连接到 COM1 的外部控制台:(调试)。 o Microsoft 鼠标(总线或串行)或带有 Microsoft 兼容鼠标驱动程序的鼠标(mouse.sys) 需要以下软件: o MS-DOS 2.x 或 3.0
安装
与 Development Release #5 非常相似,安装是使用批处理文件 WININST.BAT
完成的,此文件必须复制到硬盘驱动器并在那里启动。按照屏幕上的说明,当你到达显示适配器选择屏幕时,选择你正在使用的显示适配器(CGA、Hercules 或单色 EGA)。批处理文件将首次启动 Windows,要稍后启动它,你需要运行以下命令:
PATH %PATH%;C:\WINDOWS\BIN;C:\WINDOWS\TEST
WIN
主要变化
与 DR5 相比,Alpha Release 更像是一个新的操作环境,因为几乎所有 Windows 组件在此版本之前都进行了重写。但是,从视觉上看,此版本与 DR5 几乎相同,只是某些系统位图进行了小幅更新。在 1983 年秋季 COMDEX 内部版本中看到的向上箭头光标也因未知原因而返回。
可见的变化
此版本是首个支持快速启动、.PIF
文件和重新设计的 Windows API 的版本。安装是通过名为 WININST.BAT
(类似于 DR5)的批处理文件完成的。唯一的区别是 INSTALL.EXE
将在安装后启动,创建包含所有核心 Windows 组件和设备驱动程序的主 WIN100.EXE
可执行文件。除了快速启动外,还引入了新的 Windows 启动器 WIN.EXE
来取代旧的 MSWIN.BAT
。可能是由于快速启动的早期实现,Windows 内核不接受文件名作为参数,这意味着无法通过将参数传递给 WIN.EXE
或 KERNEL.EXE
来自动启动应用程序。但是,如果使用慢速启动,可以通过运行 KERNEL -<filename>
来指定 MSDOS.EXE
以外的 shell。
API 更改
Windows API 已更改,以至于必须重写针对 Windows Development Release 版本编写的所有应用程序才能正常运行,甚至进行编译。大多数 GDI 函数在按序号排序时按字母顺序排列,这表明其中很多函数是从头开始重写的,可能是在 8086 程序集中以提高速度。
所有已发现的更改
- NE 格式进行了重大更新
- MS-DOS 存根已更新
- 集成到可执行文件中的资源
- 不再使用窗口类和输入转换表
- 推出了消息队列
- OEM 配置数据和系统位图现在存储在显示驱动程序中
- Display 和 Cursor 例程组合起来成为显示驱动程序
- 位图、光标和图标格式进行了小幅更新
- Windows 旧应用程序支持模块(
WINOLDAP.MOD
)介绍 - 引入 PIF 编辑器
- 改进了错误处理
- Microsoft Windows 模块重命名为 Windows 用户界面(Windows User Interface)
- 添加了打印机支持
- 字体格式已更新
- 实现快速启动支持
- 添加了单色 EGA 支持
- 添加了 DOS 鼠标驱动程序支持
- 调试符号格式更改为
.SYM
- 包括 Microsoft 符号调试器
- 引入分段可执行链接器(Link4x)
- 添加了最小的键盘快捷键支持
开发
开发目标
目前可用的有关此版本开发的最早信息是 Ray Ozzie 与 Microsoft 的会议记录。会议记录中包括一份大约 1 月 13 日的 Microsoft Windows 开发目标副本:
Microsoft Windows 开发目标
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.
快速启动
根据在各种 Windows 1.0 磁盘的松弛空间中发现的目录条目,MSWIN.BAT
最后一次(已知)修改是在 1 月 18 日。MSWIN.BAT
是实现快速启动和 WIN.COM
之前的 Windows 加载程序。这意味着在 1 月 18 日之后添加了快速启动支持。INSTALL.MAP
/INSTALL.SYM
的出现表明快速启动的工作在 1 月 23 日之前开始。
目录条目(deleted=删除)
??????? 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
复制保护
上面列出的 COPYPROT.BAT
可能与复制保护有关,它表明在 1985 年初曾经考虑过对 Windows 的复制保护。
可执行文件格式
?E.EXE
文件名不完整,其似乎是用于生成旧 Windows 可执行文件的 NE(NEWEXE)程序。这暗示主要的NE格式更新发生在 1 月 5 日之后,因为使用较新 NE 格式的可执行文件必须由 Windows/多任务 MS-DOS 4 对象链接器(LINK4X.EXE
)而非 NE 程序生成。结合下面的 NE 格式更改日志,可以肯定地假设 Windows 团队直到 1 月 5 日才使用“实质性的 .EXE 格式修订版”,并且很可能是在Windows首席架构师 Steve Wood 添加“资源定义”之后。
NE 格式更新日志
/* * 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 */
增强
切换驱动
此内部版本包括一个用于安装不同驱动程序的实用程序,该实用程序在安装结束时运行。通常,系统会要求你选择要安装的显示驱动程序,默认情况下,你可以在 CGA、Hercules 和 Monochrome EGA 之间进行选择。如果你想稍后更改驱动程序,请转到 C:\WINDOWS\INSTALL
文件夹并运行 INSTALL C:\WINDOWS\TEST
,然后选择要安装的新驱动程序。INSTALL.DAT
包含要复制到 WINDOWS\TEST
目录的驱动程序/系统文件列表,可以修改这些文件以预先安装其他驱动程序/程序。
在 Windows 下运行 DOS 应用程序
为了确保 DOS 应用程序在 Windows 下正常工作,还必须将 C:\WINDOWS\TEST
添加到 PATH
系统变量中。这可确保找到并使用 TEST 目录中的相关 PIF 文件。
Bug
- 使用 EGA 驱动程序时,退出 Windows 后屏幕无法自动清除,很可能是 EGA 驱动程序有问题所致。可以通过在退出 Windows 或使用 Beta Release 的
WIN.COM
启动 Windows 后运行CLS
命令来修复。 - 有时,由于缺少
.PIF
文件。可以通过将C:\WINDOWS\TEST
添加到PATH
来修复。 - 光标边界不会随对话框窗口移动。这很可能是一个 bug,如果对话框窗口移动到光标边界之外,则对话框按钮将无法触及。大多数对话框都可以通过按 Enter 键关闭。如果对话框包含 1 个以上的按钮,则可以使用 Tab 键。
- 有时 MS-DOS Executive 在启动到 Windows 后无法启动,从而使用户看到一个空白桌面。这是由于错误的 DOS 版本、硬件或不兼容的驱动程序造成的。运行
KERNEL.EXE -MSDOS.EXE
(仅限慢速启动)可能会强制加载 MS-DOS Executive。
有趣的功能和发现
使用 Shift 键
要以图标模式启动应用程序,请在 MS-DOS Executive 中双击它,同时按住 ⇧ Shift 键。在按住该键的同时双击文本文件将导致文本文件的预览显示在记事本图标的顶部。
-
文本预览
- 若要一次恢复并最大化最小化的应用程序,请在按住该键的同时双击应用程序的图标。
- 若要启动正在运行的应用程序的新实例,请在按住该键的同时单击应用程序的窗口或图标并将其拖动到屏幕上的所需位置。在按住该键的同时单击应用程序的窗口标题栏将创建一个与前一个实例垂直平铺的应用程序的新实例。某些应用程序无法以这种方式启动。
- 若要查看最小化应用程序的窗口标题,请将鼠标悬停在应用程序的图标上,同时按住该键。
- 若要在 MS-DOS Executive 中一次选择 2 个或更多文件,请在按住该键的同时单击文件的名称。
拖放
- 要将文件从一个目录移动到另一个目录,只需使用 MS-DOS Executive 拖放到另一个文件夹即可。
- 不能将文件拖放到 MS-DOS Executive 窗口之外的任何位置。这意味着文件只能移动到子目录中,因此无法使用拖放撤消移动。
Windows 画图
USER.PRO
将.MSP
文件与PAINT.EXE
相关联。- Windows 2.11 OEM 二进制适配工具包中的文件
PAINT.H
表明画图最初是在 1984 年 6 月左右创建的:
* 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
在某个时候存在于第二个安装磁盘上,但由于未知原因而被删除。[4]可以在更高版本的 MS-DOS 中使用UNDELETE
命令取消删除它。它似乎与 1985 年 5 月的法国计算机杂志《Science et Vie Micro(科学与微观生活)》照片中看到的版本相同。- 1985 年 8 月发行的《Personal Computer World(个人计算机世界)》杂志的 Alpha Release 或类似版本的照片证明 Microsoft 删除了
PAINT.EXE
,因为 151KB 的可用空间表明磁盘 2 上没有PAINT.EXE
。
-
来自《Personal Computer World(个人计算机世界)》杂志的照片
-
使用 Alpha Release 重新创建
未记录的 KERNEL.EXE
参数
- 如前所述,运行
KERNEL -<filename>
允许用户使用不同的 shell,而 Alpha Release 是唯一具有此功能的泄露版本。 - MS-DOS Executive(
MSDOS.EXE
)是唯一可以作为 shell 启动的 Windows 应用程序。
光标不一致
- Hercules 显卡下的
NORMAL
光标与 CGA/EGA 下的NORMAL
光标不同。 - 增强型图形适配器下的
ICON
光标不同于 CGA/HGC 下的ICON
光标。
彩色支持
与早期版本类似,Alpha 版本内部支持彩色,但仅附带 CGA、EGA 和 Hercules 的单色驱动程序。jb881122 已将 Windows 2.11 OEM 二进制适配套件中的 16 色 VGA/EGA 驱动程序移植到此版本,这使得在彩色界面中使用此版本成为可能。[5]目前,由于 Alpha Release 和 Windows 2.11 之间的驱动程序 API 更改,移植的驱动程序存在严重 bug。
-
在彩色模式下运行的 Windows 1.0 Alpha Release
图库
-
首次启动
-
演示
-
演示(CGA)
内置的应用程序
-
剪贴板查看程序
-
时钟
-
立方体
-
字体测试程序
-
Hello Windows
-
图标编辑器
-
MapMode 应用程序
-
MS-DOS Executive(默认 shell)
-
画图(已被 Microsoft 移除)
-
示例字体应用程序
引用资料
- ↑ Bob Richmond. 我的第一台家用电脑 - RM Nimbus PC-186 的回忆, Journal of Total Obscurity. 2010 年 8 月 12 日.
- ↑ Bob Richmond. Windows:25 周年, Journal of Total Obscurity. 2010 年 11 月 1 日.
- ↑ 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