.define Pro .sect .text .sect .rom .sect .data .sect .bss .sect .text ! This routine is called at the entry of a procedure. ! It saves the localbase of the invoking procedure, and sets the ! new localbase to the present value of the stackpointer. ! It then initializes the second localbase by subtracting ! BASE from the real one. Pro: ldx LB ! get localbase (lowbyte) lda LB+1 ! get localbase (highbyte) jsr Push ! push localbase onto the stack ldx SP+2 ! get stackpointer (lowbyte) lda SP+1 ! get stackpointer (highbyte) stx LB ! new localbase (lowbyte) sta LB+1 ! new localbse (highbyte) tay txa sec sbc #BASE sta LBl ! second localbase (lowbyte) tya sbc #0 sta LBl+1 ! second localbase (highbyte) rts