1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00
cc65/libsrc/runtime/staxspi.s
2017-03-12 23:21:43 +01:00

40 lines
1.0 KiB
ArmAsm

;
; Ullrich von Bassewitz, 26.10.2000
; Christian Krueger, 12-Mar-2017, added 65SC02 optimization
;
; CC65 runtime: Store a/x indirect into address at top of stack with index
;
.export staxspidx
.import incsp2
.importzp sp, tmp1, ptr1
.macpack cpu
.proc staxspidx
sty tmp1 ; Save Y
pha ; Save A
ldy #1
lda (sp),y
sta ptr1+1
.if (.cpu .bitand ::CPU_ISET_65SC02)
lda (sp)
.else
dey
lda (sp),y
.endif
sta ptr1 ; Address now in ptr1
ldy tmp1 ; Restore Y
iny ; Address high byte
txa ; Get high byte
sta (ptr1),y ; Store high byte
dey ; Address low byte
pla ; Restore low byte into A
sta (ptr1),y ; Store low byte
jmp incsp2 ; Drop address
.endproc