Skip to navigation

Elite on the BBC Micro and NES

Universe: ypl

[NES version, Bank 0]

Name: ypl [Show more] Type: Subroutine Category: Universe Summary: Print the current system name
Context: See this subroutine in context in the source code References: This subroutine is called as follows: * ypls calls ypl * cmn calls via ypl-1

Print control code 2 (the current system name).
Other entry points: ypl-1 Contains an RTS
.ypl BIT MJ ; Check the mis-jump flag at MJ, and if bit 7 is set BMI ypl16 ; then we are in witchspace, and witchspace doesn't have ; a system name, so jump to ypl16 to return from the ; subroutine JSR TT62 ; Call TT62 below to swap the three 16-bit seeds in ; QQ2 and QQ15 (before the swap, QQ2 contains the seeds ; for the current system, while QQ15 contains the seeds ; for the selected system) JSR cpl ; Call cpl to print out the system name for the seeds ; in QQ15 (which now contains the seeds for the current ; system) ; Now we fall through into the TT62 subroutine, which ; will swap QQ2 and QQ15 once again, so everything goes ; back into the right place, and the RTS at the end of ; TT62 will return from the subroutine .TT62 LDX #5 ; Set up a counter in X for the three 16-bit seeds we ; want to swap (i.e. 6 bytes) .TT78 LDA QQ15,X ; Swap byte X between QQ2 and QQ15 LDY QQ2,X STA QQ2,X STY QQ15,X DEX ; Decrement the loop counter BPL TT78 ; Loop back for the next byte to swap .ypl16 RTS ; Once all bytes are swapped, return from the ; subroutine