Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Configuring the retro-220 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 220 system 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 POWER OFF button on the Control Console.
The configuration sub-window is rather large, and will scroll on most displays. It looks similar to the following, which has been divided into two images:
This window has areas for selection of global System Properties, Console Input Units, Console Output 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.
The SET DEFAULTS button will erase the current configuration and replace it with the default one described in the next session.
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/Burroughs-220/ or at http://phkimpel.us/Burroughs-220/. 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. This is the same configuration established by the SET DEFAULTS button on the configuration page:
- 5000 words of memory
- Supervisory teletype printer (the "SPO")
- Paper-tape reader
- No Paper-tape punch
- Cardatron control unit with:
- Card reader unit 1
- Card punch unit 1
- Line printer unit 2
- Magnetic tape control unit with:
- Tape Storage Unit A (no designated unit number)
- Tape Storage Unit B (designated as unit #1)
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 220 system.
The only global system property at present is Memory Size. Using this pull-down list, you can select the amount of memory the emulator will use, from 2,000 to 10,000 words in 1,000-word increments. Attempting to access memory locations beyond the size set in the configuration will result in a Storage Check alarm.
Console Input Units
The 220 could support up to ten paper-tape readers, each operating at a switch-selectable speed of 500 or 1,000 characters per second. The readers were photoelectric. They used 7/8-inch (22mm) tape and a seven-level code compatible with the IBM 046 Tape to Card Converter.
Each physical reader was assigned a unit number using a rotary switch in its cabinet. The readers were connected to the system in a daisy-chain arrangement. When the system issued a command to read from paper tape, the unit closest to the system in the chain with a matching unit number responded to the command. The remaining units did not react to that command.
Although the physical readers could be configured to respond to only one unit number at a time, the emulator allows each reader to respond to multiple unit numbers.
To configure a paper-tape reader for use with the system, change its Type from (not used) to Reader using the associated pull-down list. Then tick the checkboxes for the unit numbers for which you wish this reader to respond.
The unit number can also be set on the control panel for the reader, but doing so will allow the reader to respond only to that unit number. Selecting multiple unit numbers is not possible from the reader's panel.
The speed at which the paper-tape reader operates is set by a switch on each reader's panel. The setting of this switch is persisted in the configuration and restored across emulator restarts.
Note that if a 220 program attempts to address a unit number for which no reader has been configured to respond, the system will halt with a Paper Tape Check alarm.
Console Output Units
The 220 could support up to ten teletype printers and paper-tape punches in any combination. In addition, each system had a teletype printer known as the Supervisory Printer or SPO (pronounced "spOH"). The original printers were Teletype Model 28 RO (Receive Only) units that operated at 10 characters per second. Burroughs later produced some high-speed printers that functioned as plug-compatible replacements for the Model 28.
As an option, the teletype printers and SPO could be configured with a paper tape reader that was contained within their cabinet. This reader could be used only for off-line printing of paper tapes, however, and is not supported by the emulator.
The paper-tape punch operated at 60 character per second. Punches were interchangeable with the printers and even the SPO.
As with the paper-tape readers, the teletypes, SPO, and paper-tape punches were connected to the system in a daisy-chain and addressed in the software by a logical unit number. Unlike the readers, the teletypes could be configured to respond to multiple unit numbers. The punches could respond to only one unit number at a time, but the emulator supports multiple unit numbers for them as well.
To configure a teletype or paper-tape punch for use with the system, change its Type from (not used) to Printer or Punch using the associated pull-down list. Then tick the checkboxes for the unit numbers for which you wish this device to respond.
The unit number can also be set on the control panel for the unit. Teletype panels allow you to set multiple unit numbers, but the punch panel allows setting only one unit number. Selecting multiple unit numbers is not possible from the punch panel.
If a 220 program attempts to address a teletype or punch unit number for which no device has been configured to respond, the system will halt with a Paper Tape Check alarm.
You can also specify the end-of-word formatting option from the Format pull-down list for each unit. The Cols and Tabs show the carriage width and horizontal tab stops configured for each unit, but these can be changed only on the teletype unit panel. See Using the SPO, Teletype, and Paper Tape for details.
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, and 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 220 supported two types of magnetic tape devices, the Tape Storage Unit (a traditional reel-to-reel unit) and the 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, but the DataFile is not yet implemented.
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.
Note that the contents of tape reels for the Tape Storage Units are not persisted across browser sessions. All units are implicitly unloaded after the emulator initializes. When you shut down the emulator by pressing the POWER 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.