Moreover, the instruction `cal` (equalling `jda 100)` suggests that address 101 was envisioned as a major entry point.
(Especially as a standard entry point for subroutines, since `cal` stands for
call subroutine.)
But I haven't seen `cal` used "in anger", yet.
On a personal note, I never understood why there's `cal`, at all, and it's a quite puzzling instruction.
With a single-word instruction set, there's no difference in having an instruction `cal` (16YYYY) or an instruction `jda 100` (170100). I really don't see any advantage in using `cal`. Moreover, just a single subroutine, really? The Handbook actually describes this as `cal Y`, but Y is completely ignored, if the i-bit isn't set. (Which is the actual difference between `cal` and `jda`. In other words, if the i-bit isn't set, `100` is jammed in as the call address, instead of Y.) – Are we expected to derive the caller address from the return address as put in AC and retrieve the value of Y from the address part of the `cal` instruction? (This would be equally backwards and awkward, much like the "break mark" of the 6502 `BRK` instruction, which is really more an artefact of the repurposed interrupt system than a useful feature.)
Is there any reason for this in the 16-bit sequence break channel circuitry, like a facility to execute an implicit `cal`?
Best,
Norbert