This code appears in the following versions (click to see it in the source code):
Code variations between these versions are shown below.
.U% LDA #0 \ Set A to 0, as this means "key not pressed" in the \ key logger at KLName: U% Type: Subroutine Category: Keyboard Summary: Clear the key logger
Returns: A A is set to 0 Y Y is set to 0
Compared to the cassette and Electron versions, the enhanced versions have an extra key in the key logger, for "P" (which turns off the docking computer).
Tap on a block to expand it, and tap it again to revert.
.DKL3 STA KL,Y \ Store 0 in the Y-th byte of the key logger DEY \ Decrement the counter BNE DKL3 \ And loop back for the next key, until we have just \ cleared KL+1. We don't want to clear the first key \ logger location at KL, as the keyboard table at KYTB \ starts with offset 1, not 0, so KL is not technically \ part of the key logger (it's actually used for logging \ keys that don't appear in the keyboard table, and \ which therefore don't use the key logger) RTS \ Return from the subroutine