Subroutines.
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.