mirror of
https://github.com/cc65/cc65.git
synced 2024-09-07 09:54:35 +00:00
39 lines
597 B
ArmAsm
39 lines
597 B
ArmAsm
;
|
|
; Ullrich von Bassewitz, 29.12.1999
|
|
;
|
|
; CC65 runtime: Load eax from immidiate value following the call
|
|
;
|
|
|
|
.export ldeax
|
|
.importzp sreg, ptr4
|
|
|
|
.macpack generic
|
|
|
|
ldeax: pla ; Low byte of return address
|
|
sta ptr4
|
|
pla ; high byte of return address
|
|
sta ptr4+1
|
|
ldy #4 ; high byte of value
|
|
lda (ptr4),y
|
|
sta sreg+1
|
|
dey
|
|
lda (ptr4),y
|
|
sta sreg
|
|
dey
|
|
lda (ptr4),y
|
|
tax
|
|
dey
|
|
lda (ptr4),y
|
|
tay ; Save low byte
|
|
|
|
; Calculate the return address (remember: RTS address is one low) and
|
|
; jump to it
|
|
|
|
lda ptr4
|
|
add #5
|
|
sta ptr4
|
|
bcc @L9
|
|
inc ptr4+1
|
|
@L9: tya ; restore low byte
|
|
jmp (ptr4)
|