123456789101112131415161718192021222324252627282930313233 |
- .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
|