1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-22 12:30:41 +00:00

Rewrite of spaspidx and staxspidx. More module splits.

git-svn-id: svn://svn.cc65.org/cc65/trunk@394 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2000-10-26 06:35:45 +00:00
parent dd0ddc94e3
commit 0df99f3d4d
4 changed files with 62 additions and 42 deletions

View 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 \

View File

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

28
libsrc/runtime/staspidx.s Normal file
View File

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

View File

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