;
; 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


