Skip to navigation

Elite on the BBC Micro and NES

Keyboard: ZEKTRAN

[BBC Master version]

Name: ZEKTRAN [Show more] Type: Subroutine Category: Keyboard Summary: Clear the key logger
Context: See this subroutine in context in the source code Variations: See code variations for this subroutine in the different versions References: This subroutine is called as follows: * BR1 (Part 1 of 2) calls ZEKTRAN * FILLKL calls ZEKTRAN * TITLE calls ZEKTRAN

Returns: A A is set to 0 X X is set to 0
.ZEKTRAN LDA #0 \ Set A to 0, as this means "key not pressed" in the \ key logger at KL LDX #17 \ We want to clear the 17 key logger locations from \ KL to KY20, so set a counter in X .ZEKLOOP STA JSTY,X \ Store 0 in the X-th byte of the key logger DEX \ Decrement the counter BNE ZEKLOOP \ And loop back for the next key, until we have just \ 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