Skip to navigation

Elite on the BBC Micro and NES

Start and end: BR1 (Part 1 of 2)

[6502 Second Processor version]

Name: BR1 (Part 1 of 2) [Show more] Type: Subroutine Category: Start and end Summary: Show the "Load New Commander (Y/N)?" screen and start the game
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: * BRBR calls BR1 * TT102 calls via QU5

Other entry points: QU5 Restart the game using the last saved commander without asking whether to load a new commander file
.BR1 JSR ZEKTRAN \ Reset the key logger buffer that gets returned from \ the I/O processor LDA #3 \ Move the text cursor to column 3 JSR DOXC LDX #3 \ Set X = 3 for the call to FX200 JSR FX200 \ Disable the ESCAPE key and clear memory if the BREAK \ key is pressed (*FX 200,3) IF _EXECUTIVE LDX #3 \ Call TALK with X = 3 to say "Elite" using the Watford JSR TALK \ Electronics Beeb Speech Synthesiser (if one is fitted \ and speech has been enabled) ENDIF LDX #CYL \ Call TITLE to show a rotating Cobra Mk III (#CYL) and LDA #6 \ token 6 ("LOAD NEW {single cap}COMMANDER {all caps} JSR TITLE \ (Y/N)?{sentence case}{cr}{cr}"), returning with the \ internal number of the key pressed in A CMP #&60 \ Did we press TAB? If not, skip the following BNE P%+5 \ instruction .BRGO JMP DEMON \ We pressed TAB, so jump to DEMON to show the demo CMP #&44 \ Did we press "Y"? If not, jump to QU5, otherwise BNE QU5 \ continue on to load a new commander JSR DFAULT \ Call DFAULT to reset the current commander data block \ to the last saved commander JSR SVE \ Call SVE to load a new commander into the last saved \ commander data block .QU5 JSR DFAULT \ Call DFAULT to reset the current commander data block \ to the last saved commander