Skip to navigation

Elite on the BBC Micro and NES

Keyboard: DKS1

[BBC Micro disc version, Flight]

Name: DKS1 [Show more] Type: Subroutine Category: Keyboard Summary: Scan the keyboard for a flight key Deep dive: 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: * DKJ1 calls DKS1 * DOKEY calls DKS1

Scan the keyboard for the flight key given in register Y, where Y is the offset into the KYTB table above (so we can scan for Space by setting Y to 2, for example). If the key is pressed, set the corresponding byte in the key logger at KL to &FF.
Arguments: Y The offset into the KYTB table above of the key that we want to scan on the keyboard
.DKS1 LDX KYTB,Y \ Get the internal key number from the Y-th byte of the \ KYTB table above JSR DKS4 \ Call DKS4, which will set A and X to a negative value \ if the key is being pressed BPL DKS2-1 \ The key is not being pressed, so return from the \ subroutine (as DKS2-1 contains an RTS) LDA #&FF \ Store &FF in the Y-th byte of the key logger at KL STA KL,Y RTS \ Return from the subroutine