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