From: cuz Date: Thu, 26 Oct 2000 06:35:45 +0000 (+0000) Subject: Rewrite of spaspidx and staxspidx. More module splits. X-Git-Tag: V2.12.0~3132 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=0df99f3d4d2196fd167584b649d0e91cc43937b3;p=cc65 Rewrite of spaspidx and staxspidx. More module splits. git-svn-id: svn://svn.cc65.org/cc65/trunk@394 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/libsrc/runtime/Makefile b/libsrc/runtime/Makefile index ebf386ba7..c96d55c7b 100644 --- a/libsrc/runtime/Makefile +++ b/libsrc/runtime/Makefile @@ -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 index db7137345..000000000 --- a/libsrc/runtime/runtime.s +++ /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 index 000000000..c5e1440b8 --- /dev/null +++ b/libsrc/runtime/staspidx.s @@ -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 index 000000000..1c4c011b4 --- /dev/null +++ b/libsrc/runtime/staxspidx.s @@ -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 + +