Recovering Software for the Whirlwind Computer
Author: Guy Fedorkow
Affiliation: Independent Scholar
This web page includes publications and background material for work on recovery of software written in the 1950s for the Whirlwind computer at MIT.
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
There are a number of blog articles on Whirlwind posted at CHM
The Whirlwind Computer 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)
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
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
maintains an independent collection of Whirlwind documents which can
be accessed at:
another online collection of Whirlwind documents at the Defense
The catalog for the
Smithsonian Archive's collection of Whirlwind documents can be found
Whirlwind, the Physical Artifact
Additional material on the hardware Whirlwind-The-Physical-Artifact.pdf
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
transcriptions of the Whirlwind tapes recovered so far at CHM can be
preliminary index of the paper tapes recovered is given in this
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.
Whirlwind simulator used in this project can be found
tape recovery software used in this project can be found
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
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