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:
parent
dd0ddc94e3
commit
0df99f3d4d
@ -126,7 +126,6 @@ OBJS = add.o \
|
|||||||
return0.o \
|
return0.o \
|
||||||
return1.o \
|
return1.o \
|
||||||
rsub.o \
|
rsub.o \
|
||||||
runtime.o \
|
|
||||||
shelp.o \
|
shelp.o \
|
||||||
shl.o \
|
shl.o \
|
||||||
shr.o \
|
shr.o \
|
||||||
@ -136,8 +135,10 @@ OBJS = add.o \
|
|||||||
shreax1.o \
|
shreax1.o \
|
||||||
shreax2.o \
|
shreax2.o \
|
||||||
shreax3.o \
|
shreax3.o \
|
||||||
|
staspidx.o \
|
||||||
staspp.o \
|
staspp.o \
|
||||||
staxsp.o \
|
staxsp.o \
|
||||||
|
staxspidx.o \
|
||||||
staxspp.o \
|
staxspp.o \
|
||||||
steaxsp.o \
|
steaxsp.o \
|
||||||
sub.o \
|
sub.o \
|
||||||
|
@ -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
28
libsrc/runtime/staspidx.s
Normal 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
|
||||||
|
|
||||||
|
|
32
libsrc/runtime/staxspidx.s
Normal file
32
libsrc/runtime/staxspidx.s
Normal 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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user