On 06/21/2016 02:27 PM, Charles Anthony wrote: > So the extra credit exercise is to figure out how to write a > subroutine that prints out the value of all of the registers; ie. > how can you save *all* of the register values to memory?
That one was old even in the 60s. You use the RJ (return jump) instruction and one of the B-register conditionals and basically add a B-register to itself to effect a left-shift. Restoring the registers was more interesting, IMOHO. FWIW, MACE/KRONOS also had a XJ system call to effect the save a bit more directly--you just grab the registers from the exchange package and stash them away. But you needed CEJ for that to work, though I suspect a special MTR function could have done as well in SCOPE. --Chuck