Skip to navigation

Elite on the BBC Micro and NES

Version analysis of FX200

This code appears in the following versions (click to see it in the source code):

Code variations between these versions are shown below.

Name: FX200 Type: Subroutine Category: Utility routines Summary: Set the behaviour of the ESCAPE and BREAK keys
This is the equivalent of a *FX 200 command, which controls the behaviour of the ESCAPE and BREAK keys.
Arguments: X Controls the behaviour as follows: * 0 = Enable ESCAPE key Normal BREAK key action * 1 = Disable ESCAPE key Normal BREAK key action * 2 = Enable ESCAPE key Clear memory if the BREAK key is pressed * 3 = Disable ESCAPE key Clear memory if the BREAK key is pressed
.FX200 LDY #0 \ Call OSBYTE 200 with Y = 0, so the new value is set to LDA #200 \ X, and return from the subroutine using a tail call JMP OSBYTE

Code variation 1 of 1Other (e.g. bug fix, optimisation)

There's an extra RTS in the cassette version that is never used, which is only noteworthy because spare bytes are very hard to come by in that version, as it's so heavily optimised for compactness of code.

This variation is blank in the Disc (docked) and 6502 Second Processor versions.

RTS \ This instruction has no effect, as we already returned \ from the subroutine