.TRNME LDX #7 ; The commander's name can contain a maximum of 7 ; characters, and is terminated by a carriage return, ; so set up a counter in X to copy 8 characters LDA thislong ; Copy the length of the commander's name from thislong STA oldlong ; to oldlong (though this is never used, so this ; doesn't have any effect) .GTL1 LDA INWK+5,X ; Copy the X-th byte of INWK+5 to the X-th byte of NA% STA NA%,X DEX ; Decrement the loop counter BPL GTL1 ; Loop back until we have copied all 8 bytes ; Fall through into TR1 to copy the name back from NA% ; to INWK. This isn't necessary as the name is already ; there, but it does save one byte, as we don't need an ; RTS hereName: TRNME [Show more] Type: Subroutine Category: Save and load Summary: Copy the last saved commander's name from INWK to NA%Context: See this subroutine in context in the source code References: This subroutine is called as follows: * SVE calls TRNME
[X]
Label GTL1 is local to this routine
[X]
Variable NA% (category: Save and load)
The data block for the last saved commander
[X]
Variable oldlong (category: Save and load)
Contains the length of the last saved commander name
[X]
Variable thislong (category: Save and load)
Contains the length of the most recently entered commander name