Recovering Software for the Whirlwind Computer
Author: Guy Fedorkow
Affiliation: Independent Scholar
Email: fedorkow@mit.edu
This web page includes publications and background material for work on recovery of software written in the 1950s for the Whirlwind computer at MIT.
Publications
Recovering Software for the Whirlwind Computer, published in IEEE Annals of the History of Computing, Vol 43, number 1 (Jan-Mar 2021).
Article Preprint: Recovering Software for the Whirlwind Computer v6d
Published Article: Recovering Software for the Whirlwind Computer
Draft Notes on Track-While-Scan Program Recovery: WW-Track-While-Scan-Draft-Notes , video demo: demo-mp4
Blog Articles
There are a number of blog articles on Whirlwind posted at CHM
Jingle Bits: Auditory Maintenance, Whirlwind Holiday Songs, and the Dawn of Computer Music
Gambling on Whirlwind: How the US Navy Spent $3M and got a Computer Game
(Try playing Blackjack against Whirlwind: Play)
Resources
There are many sources for additional information on the Whirlwind project.
A key source for dates and project information on Whirlwind is Project Whirlwind: The History of A Pioneer Computer. By Kent C. Redmond and Thomas M. Smith. Bedford, Mass., Digital Press
The critical document for understanding the Whirlwind instruction set is the Programming Manual, 2M-0277 at http://www.bitsavers.org/pdf/mit/whirlwind/M-series/2M-0277_Whirlwind_Programming_Manual_Oct58.pdf
Documents
Many online documents from the Whirlwind program itself can be found in the following archives. All links mentioned were valid as of July 2020.
MIT Libraries, Department of Distinctive Collections holds a major collection of Whirlwind records (MC665), including Whirlwind notebooks, engineering notes, project reports and memoranda. A portion of these documents were microfilmed (in Series 16). The documents may be seen by visiting Department of Distinctive Collections on the MIT campus in Cambridge MA.
MITRE digitized about 1800 of the reports and memoranda, including many of the biweekly status reports, providing digital copies to MIT, which may be accessed through the MIT Libraries online archive "Dome" at: http://dome.mit.edu/handle/1721.3/37456
Bitsavers.Org
maintains an independent collection of Whirlwind documents which can
be accessed at:
http://www.bitsavers.org/pdf/mit/whirlwind
There's
another online collection of Whirlwind documents at the Defense
Technical Information
Center
https://discover.dtic.mil/results/?q=whirlwind%20computer#gsc.tab=0&gsc.q=whirlwind%20computer
The catalog for the
Smithsonian Archive's collection of Whirlwind documents can be found
at
https://sova.si.edu/details/NMAH.AC.0290
Whirlwind, the Physical Artifact
Additional material on the hardware Whirlwind-The-Physical-Artifact.pdf
Presentations
Len Shustek’s presentation to the (virtual) Vintage Computer Festival Conference of Aug 1, 2020 describes his work on mag tape recovery, including the Whirlwind tapes at https://youtu.be/7YoolSAHR5w?t=4200
Len’s presentation was followed by Guy Fedorkow’s talk on Whirlwind recovery: https://youtu.be/7YoolSAHR5w?t=5599
Code
Bit-for-bit
transcriptions of the Whirlwind tapes recovered so far at CHM can be
found at:
http://www.bitsavers.org/bits/MIT/whirlwind/
A
preliminary index of the paper tapes recovered is given in this
spreadsheet:
Tape-Summary-Annals-Sep30-2020.xlsx
There was a prescribed format for metadata at the start of each
Whirlwind tape, although it was not universally followed. This
spreadsheet gives the CHM catalog number for each tape, with a title
that includes any clues that might have been hand-written on the
tape leader or box. The spreadsheet also includes the tape
identification number and programmer’s name, if the metadata
format was followed. The metadata may directly indicate whether the
tape is source code or an assembled binary, otherwise the analysis
script takes a guess. We also include any text strings of printable
Flexowriter characters found in the tape for binary coded tapes.
The
Whirlwind simulator used in this project can be found
at
https://github.com/gfedorkow/Whirlwind-Instruction-Simulator
Magnetic
tape recovery software used in this project can be found
at:
https://github.com/LenShustek/readtape
Example Code
The
code used to generate the Bounce program flow graph is given at the
following link. This code is bit-for-bit identical to the binary
image found on tape 102663328_fb131-0-2690_new_decoders_3of4.7ch, but
given in source code format with modern labels and comments
added.
fb131-0-2690_bounce-annotated.ww
While labels, assembler directives and comments are modern, the instruction format adheres to the functional model outlined in the 1958 Programming Manual, http://www.bitsavers.org/pdf/mit/whirlwind/M-series/2M-0277_Whirlwind_Programming_Manual_Oct58.pdf
The flow graph showing the bounce program as run on the first three screen-refresh cycles is given at Bounce-Flow-Graph.svg
Flow graphs such as this are extracted from simulation runs; the simulator keeps track of which instructions execute, how many times, and where branches go. Due to the common practice of modifying branch addresses dynamically, static analysis won’t tell us much. But operation of the program can be understood much more easily by watching how it actually flows.
Each bubble in the flow graph represents a single code block, i.e., sequential instructions containing no conditional branches, that have one entry and one exit point. The bubble gives the label associated with the start of the block (if any) and the first and last instructions of the block. Branches between blocks are represented by arrows with a number showing how many times the branch was taken, allowing the analyst to easily see ‘hot spots’ where the program spends the most time.
(c) Guy Fedorkow, Feb 2021