Coding a 1960's computer




A Link to the 1301 order code, even the function codes were decimal.

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.

Loc: Fn: Addr : Narrative:-

0000 22 0010 : Set decimal point register to digit position 10
____ 37 0009 : Load the B register with the content of location 9


0001 69 0008 : Multiply the content of the B register by Location 8
____ 66 0008 : Increment location 8


0002 66 0009 : Increment Location 9
____ 29 4000 : Test Manual indicator No 29 and loop back to location zero


0003 00 4000 : If Manual Indicator 29 not set, loop back anyway
____ 00 0000 : Do nothing


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.

"(Shedland Home)"

©"Copyright Shedland Software design"