Re: Port That Job!
Quite right about the A and X registers. There were indeed also B registers of which B0 was actually a set of connections soldered to chassis earth! B0 gave a handy constant of zero and could not be changed. By convention B1 had the value 1, but this was not fixed by the hardware. Woe betide the programmer who forgot to kick off with a SB1 1 instruction.
There was a stack, but not in the conventional sense. It was an instruction stack and if you could code your loops so that they fitted in the stack, they ran a lot faster as no instruction fetches from memory were necessary. The MNF Fortran compiler mentioned earlier did a fair job, but it was the FTN compiler at its higher optimisation levels that did the best job of getting those inner loops slimmed down and in the stack. Took a while longer to compile, but those extra seconds could shave hours off a complex scientific task.
The other interesting part of the architecture was the peripheral processors. The CPU was completely incapable of any I/O, so this was down to the PPs. They had parallel access to the central memory, so a program requiring I/O would write a request to a certain memory location which was monitored by the PPs and they would then perform the required I/O to a central memory buffer pointed to by the request. The program could carry on running while waiting for the request, or could relinquish control to another task and be recalled after completion.