.TT103Name: TT103 Type: Subroutine Category: Charts Summary: Draw a small set of crosshairs on a chart
Draw a small set of crosshairs on a galactic chart at the coordinates in (QQ9, QQ10).
The moveable chart crosshairs in the Master version are drawn with white/yellow vertical stripes (with the exception of the static crosshairs on the Long-range Chart, which are white). All crosshairs are white in the other versions.
This variation is blank in the Cassette, Disc (flight), Disc (docked), 6502 Second Processor and Electron versions.
MasterLDA #GREEN \ Switch to stripe 3-1-3-1, which is white/yellow in the STA COL \ chart view
LDA QQ11 \ Fetch the current view type into A
The cassette version doesn't draw crosshairs in routine TT103 if this is a space view, but the other versions don't do this check, so perhaps it isn't required?
This variation is blank in the Disc (flight), Disc (docked), 6502 Second Processor and Master versions.
Cassette, ElectronBEQ TT180 \ If this is a space view, return from the subroutine \ (as TT180 contains an RTS), as there are no moveable \ crosshairs in space
BMI TT105 \ If this is the Short-range Chart screen, jump to TT105
Master version contains code to scale the crosshairs on the chart views, though it has no effect in this version. The code is left over from the non-BBC versions, which needed to be able to scale the charts to fit their different-sized screens.
Tap on a version to expand it, and tap it again to show to all variations.
Cassette, Flight, Docked, 6502SP, Electron
MasterLDA QQ9 \ Store the crosshairs x-coordinate in QQ19 STA QQ19 LDA QQ10 \ Halve the crosshairs y-coordinate and store it in QQ19 LSR A \ (we halve it because the Long-range Chart is half as STA QQ19+1 \ high as it is wide)LDA QQ9 \ Store the crosshairs x-coordinate in QQ19 JSR SCALEX \ STA QQ19 \ The call to SCALEX has no effect as it only contains \ an RTS, but having this call instruction here would \ enable different scaling to be applied by altering \ the SCALE routines. This code is left over from the \ conversion to other platforms, where the scale factor \ might need to be different LDA QQ10 \ Halve the crosshairs y-coordinate and store it in QQ19 JSR SCALEY \ (we halve it because the Long-range Chart is half as STA QQ19+1 \ high as it is wide) \ \ The call to SCALEY simply does an LSR A, but having \ this call instruction here would enable different \ scaling to be applied by altering the SCALE routines. \ This code is left over from the conversion to other \ platforms, where the scale factor might need to be \ different
LDA #4 \ Set QQ19+2 to 4 denote crosshairs of size 4 STA QQ19+2 JMP TT15 \ Jump to TT15 to draw crosshairs of size 4 at the \ crosshairs coordinates, returning from the subroutine \ using a tail call