.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 NAMELEN1 \ Copy the length of the commander's name from NAMELEN1 STA NAMELEN2 \ to NAMELEN2 (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 Variations: See code variations for this subroutine in the different versions 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 NAMELEN1 (category: Save and load)
Contains the length of the most recently entered commander name
[X]
Variable NAMELEN2 (category: Save and load)
Contains the length of the last saved commander name