return0.o \
return1.o \
rsub.o \
- runtime.o \
shelp.o \
shl.o \
shr.o \
shreax1.o \
shreax2.o \
shreax3.o \
+ staspidx.o \
staspp.o \
staxsp.o \
+ staxspidx.o \
staxspp.o \
steaxsp.o \
sub.o \
+++ /dev/null
-;
-; Runtime code for cc65.
-;
-
-
- .import popax
- .importzp tmp1, tmp2, tmp3, ptr4
-
-
-;
-; Various kinds of store operators
-;
-; store AX at SP@@(Y)
-
- .export staxspidx, staspidx, staspic
-staxspidx:
- jsr staspic ; use common part
- pha
- iny
- lda tmp2
- sta (ptr4),y
- tax
- pla
- rts
-staspidx:
- jsr staspic ; use common part
- ldx tmp2
- rts
-
-staspic:
- sta tmp1
- stx tmp2
- sty tmp3
- jsr popax ; get the pointer
- sta ptr4
- stx ptr4+1
- ldy tmp3
- lda tmp1
- sta (ptr4),y
- rts
-
--- /dev/null
+;
+; Ullrich von Bassewitz, 26.10.2000
+;
+; CC65 runtime: Store a indirect into address at top of stack with index
+;
+
+ .export staspidx
+ .import incsp2
+ .importzp sp, tmp1, ptr1
+
+.proc staspidx
+
+ pha
+ sty tmp1 ; Save Index
+ ldy #1
+ lda (sp),y
+ sta ptr1+1
+ dey
+ lda (sp),y
+ sta ptr1 ; Pointer now in ptr1
+ ldy tmp1 ; Restore offset
+ pla ; Restore value
+ sta (ptr1),y ; Store
+ jmp incsp2 ; Drop address
+
+.endproc
+
+
--- /dev/null
+;
+; 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
+
+