Atlas 1 Emulator Tutorial

Input/Output in the Emulator

Atlas was able to read character input and write character output from/to a variety of peripherals – punched cards, lineprinter and paper tape. The emulator uses Windows files to simulate documents with the type of file varying according to the type of peripheral being simulated. Plain text files take the place of 80-column punched cards and Rich Text Format (RTF) files that of the 7/8-track paper tapes and of the lineprinter. Note that 5-track paper tape is not supported in the emulator.

Input

We have already considered the difference between paper tape (.rtf files) and punched card (.txt files). However, we have only applied this to complete jobs to be run in the emulator. Atlas 1 programs were capable of reading from as many as 16 separate numbered streams of input. Apart from the stream holding the job itself (usually stream 0), each additional input stream had to be defined in the job description thus

INPUT
2 TRANSACTIONS
15 REFERENCES 
   
which serve to associate stream numbers with document names.

Such a job will not be eligible to run until such time as the input documents are available within the machine. This can be achieved by reading a file headed (for example)

DATA
TRANSACTIONS
   
and terminated with ***Z or ⅞ Z according to the type of file.

The documents are read in and stored within the emulator until they are needed. Once all the external documents specified with the job description are present, the job becomes eligible to run. Once the job has run, its input documents are deleted.

The set of input documents within the system can be displayed by clicking View/List Waiting Input docs

Green jobs are eligable to run, red ones are not. Selecting one of the waiting jobs allows you to it, it or its description.

Output

Output files must also be defined in in the job description thus –

OUTPUT
0 LINEPRINTER 1000 LINES
15 CARDS 800 LINES 
   
which tells the emulator which input streams are to be created, what type they are to be and the limits to be applied to each. The following output types are available

Type Maps to
LINEPRINTER Rich text file
CARDS Plain text file
SEVEN HOLE PUNCH Rich text file
ANY Display Window

When execution finishes and output documents have been produced (other than of type ANY) the button may be clicked to display a list of all the outputs which the job has produced.

By selecting one and clicking the button the default Windows editor for plain text or rich text files (as the case may be) will display the output. The output files are not retained between runs.

Offline I/O

A rarely-used facility of the Atlas supervisor was the ability to spool large volumes of slow device input or output to or from private magnetic tape. This has been implemented within the emulator as described in the publication PREPARING A COMPLETE PROGRAM FOR ATLAS I using the format defined in that volume. Please note, however, that “offline I/O” is dependent on the use of a supervisor tape containing the pseudo-compilers &ISPOOL and &OSPOOL. where more detail of the mapping may be found. Information about the supervisor tape can be found in the link Working with other compilers below.

Although the publication PREPARING A COMPLETE PROGRAM FOR ATLAS I specifies how input spooling to private tape may be invoked, it is less forthcoming about the output equivalent, preferring to refer the reader to local practice. The ABL Manual is more forthcoming, suggesting the use of the PRINT TAPE directive. However, the PRINT TAPE directive does not allow the user to specify the output device which may account for the reticence of PREPARING A COMPLETE PROGRAM FOR ATLAS I. PRINT TAPE, therefore, has been implemented to output to ANY device – i.e. a Window.

Strict Mode

In Strict mode any character which is encountered in an input document which is not supported by the active Atlas peripheral type is ignored by the emulator. For example, the ½ character is accepted from a paper tape reader (.rtf file) but not from a card reader (.txt file). Attempting to output an unsupported character to an Atlas 1 peripheral resulted in the production of a full stop. This was (and remains) the source of much confusion but is less likely to occur in Lax mode.

Punched cards, of course, are only 80 characters long so, in Strict mode any characters in a plain text file beyond the 80th are discarded. Similarly, if you try to output more than 80 characters to a punched card, the excess will be lost. In the case of lineprinter output, the corresponding limit is 120 print positions. No limits are applied to paper tapes.

Lax Mode

In Lax mode all such restrictions are relaxed. The emulator will allow characters to be input without checking whether they are supported on the particular device. No limits are applied to the lengths of input or output records. However, where a character is encountered which has no Atlas equivalent, it will be ignored. Output is treated with similar generosity.

Character Translation Issues

The mapping between Atlas characters and Windows characters is not exact since Atlas employed some characters which are no longer in common use. Details of the Atlas character set used by the emulator is documented can be found from the link The Atlas Character Set below where more detail of the mapping may be found. In addition, different Atlas peripherals supported different subsets of the Atlas characters set. Users have the option of enforcing the Atlas rules (including limiting the length of each line of lineprinter output or each punched card) or of allowing the emulator ‘to do its best’.

From the main window click Configure/Character Translation Mode and select Strict or Lax mode.

Where to go next
The Atlas Character Set Home
Working with other compilers Magnetic Tape I/O