Document: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.