// #LAYOUT# STD * #TAKE // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE // // Shift the BASIC program up to make space for a new line // shift_txt_up: // Last byte of source is VARTAB-1 #if !HAS_OPCODES_65CE02 sec lda VARTAB+0 sbc #$01 sta memmove__src+0 lda VARTAB+1 sbc #$00 sta memmove__src+1 #else // HAS_OPCODES_65CE02 lda VARTAB+0 sta memmove__src+0 lda VARTAB+1 sta memmove__src+1 dew memmove__src #endif // Last byte of destination is memmove__src + .X clc txa adc memmove__src+0 sta memmove__dst+0 lda memmove__src+1 adc #$00 sta memmove__dst+1 // Size is distance from OLDTXT to the end of BASIC text (VARTAB) lda VARTAB+0 sec sbc OLDTXT+0 sta memmove__size+0 lda VARTAB+1 sbc OLDTXT+1 sta memmove__size+1 // Perform the copy jmp shift_mem_up