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.