ConfiguringTheEmulator - pkimpel/retro-205 GitHub Wiki
Configuring the retro-205 Emulator
This page describes how to configure the system and peripheral devices for the emulator.
The Configuration Window
The emulator home page has a button below the picture of the 205 at Detroit Arsenal labeled Configure System.

Clicking that button opens a sub-window that 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:

The emulator supports multiple configurations, only one of which can be in effect at any one time. The pull-down list near the top of the window shows the current configuration. You can select a different entry from this list to switch to a different configuration. In most cases, you can change the current configuration by modifying the settings in the Console Units, Cardatron Units, and Magnetic Tape Units sections of the window.
The buttons on the window perform the following functions:
- CANCEL -- Close the configuration window without saving any changes.
- SAVE -- Save any changes you have made to the currently-selected configuration and make that configuration the one the emulator will use. This button also closes the window.
- DELETE -- Delete the currently-selected configuration and make the "Default" configuration the current configuration. The windows remains open after the selected configuration is deleted.
- CLONE -- Create a new configuration that is a copy of the current configuration. The system will prompt you to enter a name for the new configuration, which must not be the same as any other existing configuration. Configuration names are case-sensitive. After cloning a configuration, the new configuration becomes the current one, and you may modify it as desired.
When you first run the emulator in your browser, the emulator will recognize that no configuration data is present and will automatically create two initial configurations for you:
Configuration "Default":
- Flexowriter typewriter using Cardatron character encoding
- 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
Configuration "Basic203":
- Flexowriter typewriter using 203/204 character encoding
- Paper-tape reader
- Paper-tape punch
- No Cardatron units
- No magnetic tape units
Neither of these configurations can be subsequently deleted. The settings of the "Default" configuration can be modified, but the "Basic203" configuration is fixed and cannot be modified. New configurations can be cloned from either of these under different names, however.
The emulator will remember which configuration is the current one across emulator restarts, and by default will automatically start with the current configuration. You can override this default behavior and initialize the emulator with a specific configuration by naming it in the query string of the URL that loads the emulator, e.g.,
http://www.phkimpel.us/ElectroData-205/webUI/D205.html?config=Basic203
The query string is the portion that starts with the "?". The config key is case-insensitive, but the name of the configuration is case-sensitive and must be specified exactly as it is defined in the configuration.
Persisting the Configuration
The configuration data for the emulator is saved using an HTML5 feature known as Local Storage, implemented in Javascript by the 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, and therefore different sets of configurations.
Prior to version 1.03, the emulator supported only a single configuration. When upgrading from a version of the emulator prior to 1.03, the newer version will apply the settings from the older configuration to the new "Default" configuration and make that the current configuration, overwriting the older configuration. If you subsequently fall back to an older version of the emulator, it will not understand the newer format of the configuration data.
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 Flexowriter has an additional option to select the character encoding it will use. If the Use 203/204 Flexowriter Encoding check box is not ticked, the unit will use Cardatron encoding. If the check box is ticked it will use the older Datatron 203/204 encoding. This setting can be changed temporarily on the Flexowriter/TCU window while the emulator is running. See the Datatron Preliminary Programming Manual, section 3 page 21, for the 203/204 encoding. Note that this page has an error -- the upper-case glyph for code 33 is the double-quote ("), not the apostrophe (').
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 also the way a real 205 behaved.
Cardatron Units
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 before powering off the system.