TC08 DECtape bootloader question
paulkoning at comcast.net
Sun Mar 21 13:28:46 CDT 2021
> On Mar 21, 2021, at 9:35 AM, Rick Murphy via cctalk <cctalk at classiccmp.org> wrote:
> Trying again - my reply got chopped off for some reason.
> You have to read the bootstrap code in the TC0x driver to understand this.
> What happens is that the code watches the buffer pointer (7755) and when it hits 7642, the remaining read is directed to field 1. The boot is looping on 7616/DTSF and 7617/JMP .-1 when it's overwritten by the boot (the NOP below overwrites the DTSF).
The details are different, but it reminds me a bit of the magic used in the bootstrap on the CDC 6000 mainframes. The "deadstart panel" (boot rom implemented as 12 rows of 12 toggle switches) does a rewind followed by reading the first tape block into the top of memory. During a read (or write) instruction, the program counter is temporarily stored in location 0 so it can be put to work as a buffer pointer instead. The starting address of the read is arranged so the block read wraps around into location zero, the last word of the block overwrites the saved PC and causes execution to continue at that address. Saves two words in the boot ROM.
More information about the cctech