Join GitHub today
Configuring the retro-205 Emulator
This page describes how to configure peripheral devices for the emulator.
The Configuration Window
The emulator home page has a second button below the picture of the 205 at Detroit Arsenal, labeled Configure System.
Clicking that second button opens a sub-window, which shows the current system configuration and allows you to change it. The button is enabled -- and the configuration can be accessed -- only when the emulator is in a powered-down state. This is the state immediately after loading the home page into your browser or after clicking the OFF button on the Supervisory Panel.
The configuration sub-window looks similar to this:
This window has three areas for selection of Console Units, Cardatron Units, and Magnetic Tape Units. You can change the configuration by altering the controls in this window and clicking the SAVE button. If you only want to view the configuration, or to discard any changes you have made, click CANCEL. Both buttons close the window.
Persisting the Configuration
window.localStorage object. Local Storage is supported by reasonably recent versions of all the major browsers. It allows a web page to store information that will persist across browser sessions and workstation restarts. For example, Firefox stores this data in a SQLite data base on your local disk drive.
Data in Local Storage is subject to the browser's same-origin policy, meaning that separate copies of the data are maintained for each combination in a URL of scheme (http/https), host name, and port number. Thus, if you are accessing the emulator on two different web sites, you will have a different copy of the configuration data for each one.
The host name is taken literally. For example, you can access the emulator on the hosting site either at http://www.phkimpel.us/ElectroData-205/ or at http://phkimpel.us/ElectroData-205/. Both URLs will access the same physical files on the server, but those are different origins as far as the browser is concerned. In addition, Local Storage data is maintained differently by different browsers, so if you use the emulator with, say, Firefox and Google Chrome, each browser will have a separate copy of Local Storage data.
When you first run the emulator in your browser, the emulator will recognize that no configuration data is present, and will automatically create a default configuration for you.
- Flexowriter typewriter
- Paper-tape reader
- Paper-tape punch
- Cardatron control unit with:
- Card reader unit 1
- Card punch unit 1
- Card punch unit 2
- Line printer unit 3
- Magnetic tape control unit with:
- DataReader A, designated as unit 0 (i.e., 10).
- DataReader D, designated as unit 3
- DataReader E, designated as unit 4
Prior to version 0.06, the emulator had used Local Storage to persist switch settings for the Supervisory Panel, Control Console, and Flexowriter/Typewriter Control Unit. Those switch settings are now maintained in the new configuration data. When upgrading from an older version of the emulator, the newer version will look for the older switch settings and apply those to the new configuration. The older switch settings will then be deleted. If you subsequently fall back to an older version of the emulator, the older switch settings will no longer be there and will revert to default values. The new configuration data will not be affected by such a fall-back however.
The following sections discuss the areas of the System Configuration window and how you use them to specify the set of peripherals to be included in your 205 system.
Control Console Units
The Control Console is the easiest section to configure. There are three checkboxes to specify whether you want the Flexowriter, paper-tape reader, and paper-tape punch. Any combination of these may be included or excluded from the configuration. The decimal-only keyboard is always present in the configuration, and thus is not represented in the configuration window.
The 205 had two physical paper-tape readers, the slow-speed mechanical reader that was part of the Flexowriter, and a high-speed optical reader. Both are implemented as one unit in the emulator, with the INPUT knob on the Control Console selecting the speed at which the device will operate. Similarly, the 205 had two paper-tape punches, one part of the Flexowriter (punch output was a byproduct of printing), and a separate high-speed unit. The emulator supports only the high-speed punch.
Note that if you exclude one of the Console units from the configuration and then attempt to address that unit with a console I/O instruction, the processor will hang on the I/O, waiting for the device to respond. Generally, the only way out of this situation is to clear the system and start over. This is apparently the way a real 205 behaved.
The Cardatron supports card readers for input, plus card punches and tabulators (line printers) for output. The Cardatron Control Unit had seven slots into which input or output units could be plugged. By convention, input units were numbered from one starting at the left-most slot; output units were numbered from one starting at the right-most slot. Therefore, input unit #2 would occupy the same slot as output unit #6, although of course only one type of unit could be plugged into a slot at a time.
The System Configuration window uses the same convention. For each slot, you can choose a card reader, card punch, or line printer, or you can leave the slot unused. To the right of the unit selection lists are two sets of checkboxes, which apply only to output units:
- If ALGOL GLYPHS is ticked, the
&#%¤characters will print as
+=()respectively. If this box is unticked, those characters will print as is. This option can be changed on the device window.
- If GREENBAR is ticked, output to a line printer device will be grouped in lines of three, with the background color for each group alternating between green and white, simulating the appearance of the pin-feed paper stock typically used with such devices. This option can also be changed on the device window, but is ignored by card punch devices.
Card reader device windows have pull-down lists to specify how their format band is to be selected and the card column from which the band number is to be sensed. These cannot be set on the configuration window, but their setting is recorded in the configuration data and persisted across emulator sessions.
Card punches and line printers can perform leading-zero suppression in specified fields of the output card or line image. The fields are specified as a list of one-relative column numbers in which zero suppression is to begin. The current list of column numbers is shown on the configuration window, but can be set only on the device window. The list of columns is ignored for card reader devices. See the Using the Cardatron page for more information on this feature.
Magnetic Tape Units
The 205 supported two types of magnetic tape devices, the Model 544 DataReader (a traditional reel-to-reel unit) and the Model 560 DataFile (a semi-random access device that used a movable read/write head to access 50 tape strips stored in parallel bins). The emulator supports both of these.
Magnetic tape units are identified in two ways. Each of the ten possible units is assigned a letter (A-J) that defines its physical connection to the system. In addition, the drives each have a ten-position switch that specifies their "unit designate." This switch was set by the computer operator. Tape instructions in the Processor addressed units by their designate number, 1-9 plus 0 (for 10), not by their physical unit designation.
The System Configuration window allows you to specify the type of unit for each of the ten physical connections to the system. You also specify the initial unit designate for each of the devices on the configuration window. This can be changed on the individual units once the emulator has initialized and the unit windows are displayed. Changes made on the unit windows will be recorded in the configuration data and persisted across browser sessions.
Each unit also has checkboxes on the configuration window to specify the initial state of three switches on the individual unit windows:
- REMOTE: If this switch is on and a tape is loaded in the drive, the unit will be in a ready condition and can be addressed by the Processor. The switch must be in LOCAL in order to load or unload tapes, or to manually rewind the tape. Note, however, the emulator currently overrides this setting during initialization and forces this switch to the LOCAL position.
- REWIND-READY: If this switch is on and REMOTE is also on when a tape finishes rewinding, the unit will be in a ready condition. This setting will be ignored by DataFile units, which do not support programmatic rewind.
- NOT-WRITE: if this switch is on, the unit is inhibited from writing to the tape.
As with the unit designate setting, changes to these switches on the unit windows are recorded in the configuration data and persisted across emulator sessions.
Note that the contents of tape reels are not persisted across browser sessions. All units are implicitly unloaded after the emulator initializes. When you shut down the emulator by pressing the OFF button on the Supervisory Panel, the contents of all mounted reels of tape are lost. To save data that has been written to tape, you must manually unload the tape and save its contents.