]> git.sur5r.net Git - cc65/commitdiff
Rewrite of spaspidx and staxspidx. More module splits.
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 26 Oct 2000 06:35:45 +0000 (06:35 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 26 Oct 2000 06:35:45 +0000 (06:35 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@394 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/runtime/Makefile
libsrc/runtime/runtime.s [deleted file]
libsrc/runtime/staspidx.s [new file with mode: 0644]
libsrc/runtime/staxspidx.s [new file with mode: 0644]

index ebf386ba7044faa712b402e8cf2c5f682bc65549..c96d55c7b95b9f1d6aa14d38911695cdbb49d596 100644 (file)
@@ -126,7 +126,6 @@ OBJS =      add.o           \
        return0.o       \
        return1.o       \
                rsub.o          \
-               runtime.o       \
                shelp.o         \
                shl.o           \
                shr.o           \
@@ -136,8 +135,10 @@ OBJS =     add.o           \
                shreax1.o       \
                shreax2.o       \
                shreax3.o       \
+       staspidx.o      \
        staspp.o        \
                staxsp.o        \
+       staxspidx.o     \
        staxspp.o       \
                steaxsp.o       \
                sub.o           \
diff --git a/libsrc/runtime/runtime.s b/libsrc/runtime/runtime.s
deleted file mode 100644 (file)
index db71373..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-;
-; 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
-
diff --git a/libsrc/runtime/staspidx.s b/libsrc/runtime/staspidx.s
new file mode 100644 (file)
index 0000000..c5e1440
--- /dev/null
@@ -0,0 +1,28 @@
+;
+; 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
+
+
diff --git a/libsrc/runtime/staxspidx.s b/libsrc/runtime/staxspidx.s
new file mode 100644 (file)
index 0000000..1c4c011
--- /dev/null
@@ -0,0 +1,32 @@
+;
+; 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
+
+