Windows 1.0 Alpha Release

来自 WinStory Wiki
跳转到导航 跳转到搜索
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.EXEKERNEL.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 ReleaseWIN.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

未记录的 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。

图库

内置的应用程序

引用资料