These changes have been committed to the project's source repository on GitHub and uploaded to the project's hosting site from which you can run the emulator. The project wiki also has corresponding updates.
Flexowriter 203/204 Character Encoding
Tom Sawyer requested this enhancement for a project he has been pursuing, but explaining it requires a little background. The original ElectroData Datatron 203 computer (as well as the CEC models 30-201 and 30-202 that preceded it) had only primitive input/output devices -- a high-speed paper-tape reader, a significantly slower paper-tape punch, a Flexowriter electric typewriter, and a decimal keypad that could be used to enter instructions and data into the system via the Control Console.
The paper tape and keypad devices were numeric-only, operating with four-bit binary-coded decimal (BCD) digits. The Flexowriter, however, was an alphanumeric device. It could print signed numeric data directly from BCD digits supplied via the processor's A register, but could also print alphanumerically in mixed case, with the characters specified by pairs of adjacent digits. The assignment of the two codes closely matched the internal mechanism of the Flexowriter, with some codes serving to control non-printing functions, i.e., shifting between upper and lower-case, carriage-return, horizontal tabulation, backspacing, and shifting the ribbon between black and red colors.
When the Datatron 204 was introduced with support for magnetic tape, the same Flexowriter character encoding was carried forward. When the Datatron 205 was introduced with the Cardatron interface to IBM punched-card equipment, however, a different character-encoding scheme was adopted that mapped more directly to the zone/numeric scheme used with punched cards. It was also the case that the IBM equipment supported only upper-case letters and fewer special characters than the Flexowriter. As a result, the 205 used a modified Flexowriter that had been adapted to the Cardatron character set.
Prior to this release, the retro-205 emulator has used the 205's Cardatron character encoding scheme. The project that Tom has been working on involves a program that had been written for the 204, which meant that when it printed alphanumeric data to the Flexowriter, it printed gibberish. He needed the ability to switch the Flexowriter between the 205 and 203/204 character-encoding schemes.
This proved to be not very difficult to do. The character encoding for the Flexowriter can now be changed in two ways:
The query string is the portion of the URL that begins with "?". The "config" key is case-insensitive, but the configuration name must be written exactly as it is stated in the configuration list, including case and any internal spacing. This will make the named configuration (if it exists) the current one, exactly as if you had selected it on the System Configuration window. If that configuration name does not exist, the emulator displays an alert and opens with its currently-selected configuration.
Multiple System Configurations
- On the system configuration page (accessed from the emulator's home page, webUI/D205.html), in the Console Unit Selection section, there is a new check box, "Use 203/204 Flexowriter encoding." When this box is ticked, the Flexowriter will use the original encoding for the Datatron 203/204. When the box is not ticked, the device will use the 205 Cardatron encoding. This setting is preserved across emulator restarts. Note that the configuration page can be accessed only when the emulator is in a "power off" state.
- On the Flexowriter's browser window, there is a new button below the logo that indicates the encoding scheme currently in effect. This is initialized to the setting from the configuration page when the emulator is started. Clicking the button will toggle between the 203/204 and 205 Cardatron schemes. This button allows the encoding scheme to be changed while the emulator is running, even in the midst of the Flexowriter printing. Changes made using this button are not preserved across an emulator restart -- the setting will revert to that from the configuration page.
Character codes used with the 203/204 are shown starting in Section 3 page 21 of ElectroData Technical Bulletin 3040, Datatron Programming and Coding Manual. Note that there is an error in this table for code 33 -- for lower case it prints the apostrophe (') as shown; for upper case, however, it prints the double-quote (").
Character codes used with the 205, Cardatron, and modified Flexowriter are shown on the Burroughs 220 Pocket Card -- the 205 and 220 used the same Cardatron codes. The codes are also shown in Figure 2 of United States Patent 3,000,556.
When printing in 203/204 mode, the emulator supports all character glyphs except the 1/2 (one-half) symbol, which prints as the crosshatch (#). It supports the control codes for upper- and lower-case, carriage return, horizontal tab (with stops at every eight positions), backspace (overwriting rather than overprinting any existing characters), and the black/red color shift. It ignores the stop code, 07.
Multiple System Configurations
Since version 0.06, the emulator has supported customization of its input/output configuration -- console devices, magnetic tape drives, and Cardatron punched-card equipment. There was only one configuration, however -- if you wanted a different arrangement, you had to modify the configuration and save it, which overwrote any prior arrangement.
This next enhancement also originated from a request by Tom Sawyer. He wanted the ability to store multiple configurations and a way to select easily among them. In particular, he wanted the emulator to support some number of predefined configurations so that users of the emulator could easily choose one.
The emulator now supports multiple configurations. There is a "Default" configuration, which is created automatically when the emulator is first loaded to an instance of a browser. This is equivalent to the single configuration that existed previously, and is initialized to the same settings. When running version 1.03 or later for the first time, any existing single configuration will be transferred to the Default one. You can modify this configuration in any way you wish, but you cannot delete it.
In addition, there is -- initially -- one predefined configuration named "Basic203." This configuration, as its name implies, gives you the input/output devices you would have had on a Datatron 203 -- paper-tape reader and punch, plus the Flexowriter printer with 203/204 character encoding enabled. This is what Tom needed for his 204-vintage program. You can neither modify nor delete predefined configurations, but you can clone a new configuration from it and modify the clone, as discussed below. We may be implementing additional predefined configurations in future releases of the emulator.
You configure the emulator the same way as in the past, by clicking the Configure System button on the emulator home page. This can be done only when the emulator is in a "power off" state. Clicking the button opens the configuration page in a separate window, which has changed somewhat from previous releases:
|retro-205 Configuration Page|
The buttons have been moved and two new ones added. To the left of the buttons is a new pull-down list that holds the available configurations and shows which one is presently selected. You can also see the new check box for 203/204 Flexowriter character encoding discussed earlier in this post.
The buttons work as follows:
- CANCEL -- Closes the configuration page without saving any changes you have made. You can accomplish the same thing by clicking the close-window icon on the page's title bar (i.e., the "X" on Microsoft Windows systems).
- SAVE -- Saves any changes you have made on the page to the currently-selected configuration, makes that configuration the current one for the emulator, and closes the configuration page. An alert box will pop up confirming this fact.
- DELETE -- Deletes the currently-selected configuration and makes the "Default" configuration the current one. You cannot delete the "Default" configuration or any of the predefined ones.
- CLONE -- Creates a copy of the currently-selected configuration under a new name and makes the new copy the currently-selected configuration. The page will prompt you for the new name. The page stays open after this so that you can customize the new configuration. All cloned configurations can be modified and deleted later.
Thus, to switch to a different configuration that already exists, you need only select the configuration's name from the pull-down list and click the SAVE button.
There is no fixed upper limit on the number of configurations you can have. The configuration data is stored by the browser on your workstation using a standard mechanism known as LocalStorage. The limiting factor is how much data the browser will allow for an entry in LocalStorage. For most modern browsers, this is a figure in the low megabytes. Most configurations require only 2000-3000 bytes.
In addition to its setting on the configuration page, the name of currently-selected configuration is shown under the blue buttons on the retro-205 emulator home page and in the lower-right corner of the Supervisory Panel window.
There is a second method that can be used to select the configuration under which the emulator will run. You can include the name of the configuration in the query string of the URL that opens the emulator home page, e.g.,
The idea behind this second method is that it's an easy way to send someone a link that will run a specific emulator configuration.
No further additional features are planned for the retro-205 emulator at present, but occasionally bugs crop us, and we do have a few items of software that are in various stages of restoration, so we aren't done with this system yet.