Atlas 1 Emulator Tutorial

Character Support

Overview

Although Atlas 1 employed a six-bit character, a total of 124 characters could be represented. This was achieved by use of two distinct character sets (known as the outer and the inner sets) each comprising 62 characters. The remaining two characters were used to switch between the sets. Thus the sequence

The quick, brown fox
was represented in internal code as
T<shift outer>he quick<shift inner>,<shift outer> brown fox
Not all the character values were used and, some characters were available on some peripherals and not on others. In addition, a few characters known to Atlas 1 have no direct equivalent in the Windows characters set and vice versa. Finally, there is the problem of backspace and compound characters. Most Atlas 1 high-level languages made extensive use of underlined delimited words and other compound characters which could be generated on 7-track paper tape using backspace and overtyping.

Character Mapping

The emulator maps Atlas 1 characters onto the equivalent Windows characters as far as possible. This enables input to be prepared using a standard Windows text editor such as Notepad. Letters (upper and lower case) and digits are treated in this way, alongside the following list -

( ) , £ ? & * / < > = + - . ' : [ ] _ | ½ % ; ² α β space and tab
Note that ; was not in the original Atlas character set, but was substituted for ‘π’ on many Flexowriters. Of the remaining Atlas characters, some were paper tape equipment control characters –
Shift to Upper Case
Shift to Lower Case
Stop
Punch On
Punch Off
They are ignored on output and cannot occur on input. Others cannot occur on input (except, possibly, on 5-track paper tape which is not supported by the emulator) and are converted to full stop on output-
ø , , ≥, ≠, ~, ⒑, ⒒ (all as single characters)

Backspace, Underline and Erase

Then, there is the issue of backspace. The emulator maps the Atlas 1 backspace character onto the Windows \ symbol. The Atlas backspace character was used (on 7/8-track paper tape) as a means of representing compound characters, where two characters occupying the same position combined to form a special, ‘compound’ symbol. Thus the Atlas Autocode/Algol delimited word

begin
can be represented by
begin\\\\\_____
_____\\\\\begin
or, even
b\_e\_g\_i\_n\_
In a similar vein, the (paper tape-only) character "Erase" (sometimes known as ‘Rubout’) is mapped by the emulator as ‘Ӿ’, so the sequence
abcd\\\\ӾӾӾӾ
indicates four alphabetic characters with ‘Erase’ overtyped. ‘Erase’ is of no practical value in the emulator, but has been implemented for completeness.

None of the facilities in this section were supported for punched card input. However, in the emulator, this restriction is relaxed if Lax mode is in use.

Compounding on the Lineprinter

Lastly, if an Atlas program wished to output to a lineprinter (where backspace was not supported), it might write two records

begin
_____
where the first record is terminated by an end of record marker indicating that no paper movement is required.

A Better Way

Although the subterfuge of using ‘\’ to represent backspace might be acceptable for occasional use, its frequent use to indicate underlining in high-level languages makes the provision of alternative arrangements in the emulator useful. Text to be input to the emulator may be prepared in a word-processor such as Word or Wordpad instead of Notepad and so input to the emulator as a simulated paper tape. By using a subset of Word’s capabilities and saving the file in Rich Text Format (RTF), a more user-friendly approach may be taken. The text can be read by the emulator as a simulated paper tape document and the emulator will detect underlined text and convert it into the equivalent paper tape sequence of backspaces and underline characters. In a similar fashion, the use of Erase may be emulated using Word’s “Strikethrough” facility. We might then write abcd\\\\ӾӾӾӾ as abcd.

In addition, the symbol (not equal) (=\/ or =\|) can be expressed using the # symbol. A more elegant mapping for is available but # has the advantage of presence on the keyboard. In a similar manner a number of “unusual” characters which are available to Word users may be employed for paper tape input for convenience and for clarity when viewing the files. Click Special Character Support below for more detail. Click The Full Atlas Character Set below for the full list of Atlas 1 characters as listed in the ABL manual. Note that other character styles such as italic or bold are ignored and the use of other RTF constructs such as superscripting may produce unpredictable results.

Character code table

The table below gives the list of characters supported on each of the peripheral types. Note that this is not quite the same as on the original machine.

table
Windows Value
Supported on
char Set (octal) Tape Cards Printer
A-Z Inner41-72YYY
a-z Outer41-72YN*
0-9 Inner20-31YYY
Space Both 01 YYY
Tab Inner02 YNN
Backspace (\) Inner03 YNN
( Inner10 YYY
) Inner11 YYY
, Inner12 YYY
; Inner13 YYY
? Inner14 YYY
& Inner15 YYY
* Inner16 YYY
/ Inner17 YYY
< Inner32 YYY
> Inner33 YYY
Windows Value
Supported on
char Set (octal) Tape Cards Printer
= Inner34 YYY
+ Inner35 YYY
- Inner36 YYY
. Inner37 YYY
' Inner40 YYY
£ Outer03 NNY
: Outer17 YYY
[ Outer21 YYY
] Outer22 YYY
_ Outer26 YNY
| Outer27 YNY
² Outer30 YNY
α Outer32 YNY
β Outer33 YNY
½ Outer34 YNY
Ӿ(Erase)Outer77 YNN

* Lower case letters sent to the printer were rendered in upper case.

Note that, in Lax mode, all characters are supported on all devices.

Where to go next
The Full Atlas Character Set Special Character Support
Magnetic Tape I/O Home