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