Coding a 1960's computer
The above link supplies a downloadable copy of the full instruction set.
The 1301 used a Binary Coded Decimal display of the contents of its registers, These
registers were 12 digits long. The order code was also based on a decimal decode, and
although some orders were 12 digits in length the majority of the orders were only
6 digits long. Therefore two instructions were able to fit into a whole 12 digit word.
The following code is the " Ghost " code refered to in the diaries, it is annotated to
act as an example of branching, testing and code flow in this elderly 1960's computer.
Initial Orders ( a Foote-Note ) excuse the Pun !
We have been contacted by Bill Foote who worked on
refining the original Initial Orders code, as it went through
the final stages of adaption to the original ICT 1301 Computer.
Initial Orders was stored on the reserved bands of the
drum and was locked out to write orders, so that it became
Read Only. In modern computer parlance, this was the
Bootstrap program, it was used to load card programmes,
in a relative address format, to clear and prepare drum
store, issue a form feed to the line printer to set it
at top of form.
In diagnosotic mode it would read binary or machine code
engineering programs into the memory and even at a pinch
if the card reader was being repaired, would load
engineering cards into the machine via the check read
brushes of the card punch, a somewhat toturous route but
essential is you wished to repair the card reader and
run tests on it.
The code was limited according to the size and number
of drums on the machine. A half drum machine was limited
to what the code could do. A full drum allowed the full
set of facilities. A multi drum machine in the later end
of the life of the equipment used the second set of
reserved bands to extend on the facilities even further,
as the example which follows shows.
As the 1301 suppoprted a full set of both decimal and
sterling arithmetic functions, problems arose when the currency
was changed in the UK, the potential was that all of the software
written had to be recomplied, or even re-written from scratch,
if the documentation for the original program had been " Mislaid ".
To aid the transition the machines were modifed to follow the
conversion of any sterling functions to be decoded as decimal
functions, this took the form of a keyswitch hidden under the
covers. But what was the switch set to ? as lots of computing
hours and even days were lost running ledger updates when the
machine was switched to the wrong mode, eventually a very small
extension to I/O's was added to add zero to a digit with a packed
ten ( that's an Hexadecimal h0A ) in the pence position and if
it came out of the mill as a two digit answer the machine was
in decimal mode and if it remained packed in one digit the machine
was in sterling mode.
On the 1302 ( that very rare and recently rediscovered animal )
the I/O's also allowed the starting of the Executive code, a three
thousand 1301 word chunk of code that ran multiple programs and
handled device transfers in a true time sharing mode.
So in Summary the Initial Orders code was the loading and start
point of most applications the machine ran, we have managed to
recover the code from flossies drum and can now move the project
forward knowing that at least the machine can be exercised and run
its test software.
©"Copyright Shedland Software
design"