# Elliott Telecode

Programs for the Elliott 803 were input using paper tape. The tapes were prepared off-line using teletype machines rather like these:

Tapes were normally 5-hole which means 32 characters could be encoded. Character 0 was blank tape (or "runout") so that didn't really count, which left just 31 for the character set. 31 characters is not enough for even the uppercase letters and numbers so a shift system was used. One character (31) was the letter-shift and another (27) was the figure-shift. The tapes encoded letters following the letter-shift and numbers and a handful of symbols following the figure-shift. Only one shift was needed for any sequence of letters or figures, although extra (redundant) shifts were harmless. Sometimes errors in tapes could be corrected or patched up by over-typing letter-shifts (character 31 or "all holes") over unwanted characters.

## Telecode Character Set

The 5 hole tape encoding used was unique to Elliotts. It consisted of the following characters:

| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31
LS | BL | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | FS | SP | CR | LF | LS
FS | BL | 1 | 2 | * | 4 | $ | = | 7 | 8 | ' | , | + | : | - | . | % | 0 | ( | ) | 3 | ? | 5 | 6 | / | @ | 9 | £ | FS | SP | CR | LF | LS

BL | Blank tape
FS | Figure shift
SP | Space
CR | Carriage Return
LF | Line Feed
LS | Letter shift

## Telecode to Java Character Conversion

In a number of places the simulator needs to convert between the standard Java system characters and the Elliott telecode characters. This is done using some common conversion methods that convert according to the following rules.

### Telecode To Java

Converting from telecode to Java is straight-forward since the small number of characters present in the telecode character set all convert easily to Java unicode characters.

The only character that might cause any issues is the telecode figure-shift 26 character which should be the GB currency pound sign (`£`). Since some character sets may not display this correctly most of the programs that perform telecode-to-Java conversion can take an option to force use of only the basic US-ASCII codeset. In this case the telecode figure-shift character 26 will be displayed as the number sign (`#`).

### Java to Telecode

When converting from Java telecode it makes sense to allow a fairly liberal conversion of characters. In particular:

- All uppercase and lowercase letters 'A' to 'Z' are converted to the telecode uppercase versions.
- Both `$` and `&` convert to figure-shift 5 (some real teletypes used & for this character).
- Both `'` and `;` convert to figure-shift 9 (helps when writing Algol).
- Both `(` and `[` convert to figure-shift 17 (helps when writing Algol).
- Both `)` and `]` convert to figure-shift 18 (helps when writing Algol).
- Both `?` and `!` convert to figure-shift 20.
- Both `/` and `\` convert to figure-shift 23.
- Both `£` and `#` convert to figure-shift 26 (helps on systems without a GB pound sign on the keyboard).
- The character `_` can be used to represent a blank character (tape run-out) if required.

All other characters are silently ignored.

Tim Baldwin December 2013 tjb803@tinymail.co.uk | Return to index © Tim Baldwin 2009,2013