文档: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.