Early Programming Books
cclist at sydex.com
Mon Jun 21 22:01:41 CDT 2021
On 6/21/21 4:56 PM, Paul Koning wrote:
> Pascal was done by Wirth, not Dijkstra. The issue with 1620 state is that you couldn't do multiprogramming because you could not context switch threads. The problem is the subroutine call; BB (subroutine returns) uses an invisible register.
BB is only useful if you're using a single-level subroutine structure,
which , in production code, is almost never the case. It's more useful
as a debugging register.
The usual way to handle subroutine calls is to use BTM (Branch and
transmit immediate), with the immediate value being the return address,
which is stored just below the jump target.
Mechanism for return depended on the presence of the indirect addressing
option. (it, like many other features, was standard on the Model II, but
not on the Cadet). If you had it, you simply did an indirect branch
(49) referencing the transmitted return address. If you didn't have the
option installed, you transmitted the return address into the P-field of
a branch (49) instruction and jumped to that.
Remind you of anything?
More information about the cctalk