Skip to navigation

Elite on the BBC Micro and NES

Version analysis of LL164

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

Code variations between these versions are shown below.

Name: LL164 Type: Subroutine Category: Drawing circles Summary: Make the hyperspace sound and draw the hyperspace tunnel
See the IRQ1 routine for details on the multi-coloured effect that's used.
.LL164

Code variation 1 of 4Related to the Master version

The Master version has a unique hyperdrive sound.

Tap on a block to expand it, and tap it again to revert.

LDA #56 \ Call the NOISE routine with A = 56 to make the sound JSR NOISE \ of the hyperspace drive being engaged
LDY #sohyp \ Call the NOISE routine with Y = 10 to make the first JSR NOISE \ sound of the hyperspace drive being engaged LDY #sohyp2 \ Call the NOISE routine with Y = 11 to make the second JSR NOISE \ sound of the hyperspace drive being engaged

Code variation 2 of 4Related to Elite's use of the Tube

This variation is blank in the Master version.

Tap on a block to expand it, and tap it again to revert.

LDA #1 \ Set HFX to 1, which switches the screen mode to a full STA HFX \ mode 5 screen, therefore making the hyperspace rings \ multi-coloured and all zig-zaggy (see the IRQ1 routine \ for details)
LDA #DOhfx \ Send a #DOhfx 1 command to the I/O processor to tell JSR OSWRCH \ it to show hyperspace colours in the top part of the LDA #1 \ screen JSR OSWRCH
LDA #1 \ Set HFX to 1. In the other versions, this makes the STA HFX \ hyperspace rings multi-coloured, but the Electron \ version is monochrome, so this has no effect
 LDA #4                 \ Set the step size for the hyperspace rings to 4, so
                        \ there are more sections in the rings and they are
                        \ quite round (compared to the step size of 8 used in
                        \ the much more polygonal launch rings)

Code variation 3 of 4Specific to an individual platform

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

STA HFX \ Set HFX to 4, which switches the screen mode to a full \ mode 2 screen, therefore making the hyperspace rings \ multi-coloured and all zig-zaggy (see the IRQ1 routine \ for details)
 JSR HFS2               \ Call HFS2 to draw the hyperspace tunnel rings

Code variation 4 of 4Related to Elite's use of the Tube

Tap on a block to expand it, and tap it again to revert.

DEC HFX \ Set HFX back to 0, so we switch back to the normal \ split-screen mode RTS \ Return from the subroutine
STZ HFX \ Set HFX back to 0, so we switch back to the normal \ split-screen mode RTS \ Return from the subroutine
LDA #DOhfx \ Send a #DOhfx 0 command to the I/O processor to tell JSR OSWRCH \ it to show normal colours in the top part of the LDA #0 \ screen, returning from the subroutine using a tail JMP OSWRCH \ call
DEC HFX \ Set HFX back to 0, which has no effect in the Electron \ version RTS \ Return from the subroutine