.TT18 LDA QQ14 \ Subtract the distance to the selected system (in QQ8) SEC \ from the amount of fuel in our tank (in QQ14) into A SBC QQ8 BCS P%+4 \ If the subtraction didn't overflow, skip the next \ instruction LDA #0 \ The subtraction overflowed, so set A = 0 so we don't \ end up with a negative amount of fuel STA QQ14 \ Store the updated fuel amount in QQ14 LDA QQ11 \ If the current view is not a space view, jump to ee5 BNE ee5 \ to skip the following JSR TT66 \ Clear the top part of the screen, draw a border box, \ and set the current view type in QQ11 to 0 (space \ view) JSR LL164 \ Call LL164 to show the hyperspace tunnel and make the \ hyperspace sound .ee5 IF _SNG47 JSR CTRL \ Scan the keyboard to see if CTRL is currently pressed, \ returning a negative value in A if it is ELIF _COMPACT JSR CTRLmc \ Scan the keyboard to see if CTRL is currently pressed, \ returning a negative value in A if it is ENDIF AND PATG \ If the game is configured to show the author's names \ on the start-up screen, then PATG will contain &FF, \ otherwise it will be 0 BMI ptg \ By now, A will be negative if we are holding down CTRL \ and author names are configured, which is what we have \ to do in order to trigger a manual mis-jump, so jump \ to ptg to do a mis-jump (ptg not only mis-jumps, but \ updates the competition flags, so Acornsoft could tell \ from the competition code whether this feature had \ been used) JSR DORND \ Set A and X to random numbers CMP #253 \ If A >= 253 (0.78% chance) then jump to MJP to trigger BCS MJP \ a mis-jump into witchspace \JSR TT111 \ This instruction is commented out in the original \ source. It finds the closest system to coordinates \ (QQ9, QQ10), but we don't need to do this as the \ crosshairs will already be on a system by this point JSR hyp1+3 \ Jump straight to the system at (QQ9, QQ10) without \ first calculating which system is closest JSR RES2 \ Reset a number of flight variables and workspaces JSR SOLAR \ Halve our legal status, update the missile indicators, \ and set up data blocks and slots for the planet and \ sun \JSR CATLOD \ These instructions are commented out in the original \JSR LOMOD \ source LDA QQ11 \ If the current view in QQ11 is not a space view (0) or AND #%00111111 \ one of the charts (64 or 128), return from the BNE RTS111 \ subroutine (as RTS111 contains an RTS) JSR TTX66 \ Otherwise clear the screen and draw a border box LDA QQ11 \ If the current view is one of the charts, jump to BNE TT114 \ TT114 (from which we jump to the correct routine to \ display the chart) INC QQ11 \ This is a space view, so increment QQ11 to 1 \ Fall through into TT110 to show the front space viewName: TT18 [Show more] Type: Subroutine Category: Flight Summary: Try to initiate a jump into hyperspaceContext: 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: * TT102 calls TT18
Try to go through hyperspace. Called from TT102 in the main loop when the hyperspace countdown has finished.
[X]
Subroutine CTRL (category: Keyboard)
Scan the keyboard to see if CTRL is currently pressed
[X]
Subroutine CTRLmc (category: Keyboard)
Scan the Master Compact keyboard to see if CTRL is currently pressed
[X]
Subroutine DORND (category: Maths (Arithmetic))
Generate random numbers
[X]
Subroutine LL164 (category: Drawing circles)
Make the hyperspace sound and draw the hyperspace tunnel
[X]
Subroutine MJP (category: Flight)
Process a mis-jump into witchspace
[X]
Subroutine RES2 (category: Start and end)
Reset a number of flight variables and workspaces
[X]
Subroutine SOLAR (category: Universe)
Set up various aspects of arriving in a new system
[X]
Subroutine TT114 (category: Charts)
Display either the Long-range or Short-range Chart
[X]
Subroutine TT66 (category: Drawing the screen)
Clear the screen and set the current view type
[X]
Subroutine TTX66 (category: Drawing the screen)
Clear the top part of the screen and draw a border box
[X]
Label ee5 is local to this routine