You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
591 B
ArmAsm

;
; Ullrich von Bassewitz, 26.10.2000
;
; CC65 runtime: Store a/x indirect into address at top of stack with index
;
.export staxspidx
.import incsp2
.importzp sp, tmp1, ptr1
.proc staxspidx
sty tmp1 ; Save Y
pha ; Save A
ldy #1
lda (sp),y
sta ptr1+1
dey
lda (sp),y
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