Ray Dawson, Reminiscences published in Bits and Bytes, Newsletter for ICL Pensioners. Autumn 2000, pages 3-4, and https://www.dropbox.com/s/pvn23zfn0p6ylwf/Ray%20Dawson%20Reminiscences.docx?dl=0
JD also remembers the Master Routine: I have listings of the master routine and it was written in Intercode.
Intercode itself was a level above machine code and, although a instruction looked to be an equivalent to a machine code instruction, it was often expanded by the translator into several machine code instructions.
However, Intercode instructions 100/0/0 to 131/1/3 were one for one equivalents of machine code instructions 0/0/0 to 31/1/3. That meant that the master routine programmers could program at the lowest level and use specialist low level instructions that weren’t in the Intercode set e.g. input output, interrupt handling, setting store protection tags .etc
Interestingly, Cleo allowed for routines to be written in Intercode and, by implication from the above, that Intercode might include machine code