mirror of
https://github.com/cc65/cc65.git
synced 2024-11-18 15:05:14 +00:00
40 lines
1.0 KiB
ArmAsm
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
|
|
|
|
|