The program-list printed by the Z-assembler.
Handling a subroutine-call required some special program-lines, since there was no stack or stack-pointer available on the USSC. A subroutine was called with an instruction in main-program like: 23 0400 1250. The subroutine was then entered on address 0400 and this 23-instruction was placed in rA. A subroutine would always start with : a ic m c 0400 20 0402 0404 = Perform an OR with 50 on the 23 instruction code in rA, changing it into a 73 instruction. 0402 50 0000 0000 = The constant. 0404 60 0499 0401 = Write the 73 statement to the exit-address of the subroutine (in this case 0499). 0499 will then content 73 0400 1250. While the original call was: 1205: 23 0400 1250 (=jump to (M) and copy rC to rA) The return-statement was made: 0499: 73 0400 1250 (=jump to (C), (C) must be the next instruction of the main-program (the return address). So 23 0400 1250 meant: Call the subroutine on 0400 and continue afterwards the main-program in 1250. With this technique subroutines could be nested, but subroutines could never be called recursive, since the first return-statement would be overwritten by the second call.