Manchester University/Ferranti Atlas 1
No software for the Ferranti Alas 1 has yet been discovered in machine readable form. what has survived is in the form of paper printouts on both lineprinter paper and Creed paper tape reader/punch and Flexowriter printout. Dik Leatherdale“s Emulator {link here} is capable of running everything which is listed here.
Atlas Basic Language |
Atlas Basic Language (ABL) was the standard form of assembler for Atlas. Written in itself, there was no obvious way to bootstrap the compiler within a reasonable amount of effort when the emulator was being written. Accordingly, the compiler is implemented within the emulator itself and like the rest of the emulator, was written in C# and is not available for download at present. There is a lineprinter copy of the ABL compiler in the John Rylands Library at the University of Manchester but since an ABL compiler already exists, the effort to produce a second compiler from an authentic source cannot at present, be justified. |
|
|
||
FABL (New) |
In the real Atlas ther was an area of the store which was read only, known as “Fixed Store”. The data in the Fixed Store was set up by inserting tiny ferrite or copper cylinders into a wire mesh. In the emulator a slight varient of ABL known as FABL is used to “compile” the Fixed Store. |
|
|
||
Fixed Store contents (Authentic) |
Derived from a linprinter listing of the Manchester Atlas version of the Fixed Store, this software must be compiled by the FABL compiler before any other software can be run in the emultor. The source code is incomplete in that it only covers those parts of the Fixed Store which implements the extracodes (operating system calls in modern parlance) and a few constants defined in the ABL manual. The file is a partial transcription of material held in the John Rylands library at the University of Manchester. The source code can be downloaded as a rich text text file (simulated punched paper tape) here |
|
|
||
OCTAL (Replica) |
A very early software item to be implemented (apart from the operating system) was the Brooker/Morris “COMPILER COMPILER” (CC). Work on CC was begun well before the Atlas computer was available and a cross assembler was implemented on the preceeding Mercury computer. The output from this program was in the form of a series of octal strings – which might now be regarded as a crude form of object code. In order to load the output and begin the bootstrap of the Compiler Compiler the a small program had to be written. This is called the OCTAL compiler, and, although it is really a loader, the Atlas operating system has no provision for a loader but designating it as a compiler was a sensible move. The source code can be downloaded as a rich text text file (simulated punched paper tape) here |
|
|
||
RESTART (New) |
Dik Leatherdale’s Atlas emulator has a feature which allows the user to checkpoint the state of the running program. The format is similar to that used by the OCTAL compiler, but includes the value of all the registers. The RESTART compiler is an extension of the OCTAL compiler. The source code can be downloaded as a rich text text file (simulated punched paper tape) here |
|
|
||
COMPILER COMPILER |
The Brooker/Morris COMPILER COMPILER was an early attempt to implement a programming language specifically directed to the implmentation of compilers for other programming languages. A brief introduction to the COMPILER COMPILER can be found at www.computerconservationsociety.org/resurrection/res92.htm#e. The source code can be downloaded as a rich text text file (simulated punched paper tape) here |
|
|
||
SPECIAL (Replica) |
Most “compilers” in the Atlas system were help on a magnetic tape termed the &ldqou;Supervisor Tape”. However Other tapes could also be used either for infrequently used compilers or for compilers still under development The Supervisor (operating system) lacked any provision for accessing the software held on these tapes so the SPECIAL “compiler” (which was not really a compiler at all, but was treated as such by the Supervisor) was used to load software from these auxially tapes. The tape containing the desired software was identified as the highest-numbered tape in the job description and the desired compiler was named in the first line of input 0 following the job description. The source code can be downloaded as a rich text text file (simulated punched paper tape) here |
|
|
||
COMPILER COMPILER++ |
During testing of the restored Compiler Compiler a previously undiscovered error was identified. See www.computerconservationsociety.org/resurrection/res97.htm#g. CC++ is a version of the Compiler Compiler which clears this error. Note that it is named “CC” and therefore cannot co-exist on the same tape with the “authenticlers” Compiler Compiler. This “corrected” version of the Compiler Compiler can only be loaded into store using COMPILER SPECIAL therefore. It is also interesting that since CC is partially written in itself, it is only necessany to replace and compile the subroutine which contains the error, a total of 51 lines of code. The source code can be downloaded as a rich text text file (simulated punched paper tape) here. |
|
|
||
SERVICE (Authentic) |
The SERVICE compiler is not really a compiler at all but is a library of utility programs. Documentation of the SERVICE compiler can be found at www.chilton-computing.org.uk/acl/literature/acl/p018.htm#c4p5 but note that the documentation applies to the Chilton version of SERVICE whereas the program is transcribed from a lineprinter listing of the (slightly different) London University version. At the time of writing the transcription of the program is incomplete and thus cannot be downloaded. |
|
|
||
MAGUTILS (New) |
In the same spirit as COMPILER SERVICE, MAGUTILS is a library of potentially useful utility software specialising in the maipulation of magnetic tapes and discs. Documentation can be found at magutils helpfile.htm. The magutils system is interesting in that it is writtem in a mix of the Compiler Compiler language and Atlas Basic Language The source code can be downloaded as a rich text text file (simulated punched paper tape) here |
|
|
More to be added.