mirror of
https://github.com/cc65/cc65.git
synced 2025-01-24 04:34:35 +00:00
use copydata instead of own routine
This commit is contained in:
parent
fd4d7d93ea
commit
b292597f1e
@ -6,8 +6,7 @@
|
||||
|
||||
.export cartstart
|
||||
|
||||
.import start
|
||||
.import __DATA_LOAD__, __DATA_SIZE__, __DATA_RUN__
|
||||
.import start, copydata
|
||||
.importzp ptr1, ptr2, tmp1, tmp2
|
||||
|
||||
.include "atari.inc"
|
||||
@ -17,51 +16,8 @@
|
||||
; start routine of cartridge
|
||||
; copy data segment to RAM and chain to entry point of crt0.s
|
||||
|
||||
cartstart: lda #<__DATA_LOAD__
|
||||
sta ptr1
|
||||
lda #>__DATA_LOAD__
|
||||
sta ptr1+1
|
||||
lda #<__DATA_RUN__
|
||||
sta ptr2
|
||||
lda #>__DATA_RUN__
|
||||
sta ptr2+1
|
||||
lda #>__DATA_SIZE__
|
||||
sta tmp2
|
||||
lda #<__DATA_SIZE__
|
||||
sta tmp1
|
||||
jsr memcopy
|
||||
cartstart: jsr copydata
|
||||
jsr start ; run program
|
||||
jmp (DOSVEC) ; return to DOS
|
||||
|
||||
|
||||
; routine taken from http://www.obelisk.demon.co.uk/6502/algorithms.html
|
||||
;
|
||||
; copy memory
|
||||
; ptr1 - source
|
||||
; ptr2 - destination
|
||||
; tmp2:tmp1 - len
|
||||
|
||||
.proc memcopy
|
||||
|
||||
ldy #0
|
||||
ldx tmp2
|
||||
beq last
|
||||
pagecp: lda (ptr1),y
|
||||
sta (ptr2),y
|
||||
iny
|
||||
bne pagecp
|
||||
inc ptr1+1
|
||||
inc ptr2+1
|
||||
dex
|
||||
bne pagecp
|
||||
last: cpy tmp1
|
||||
beq done
|
||||
lda (ptr1),y
|
||||
sta (ptr2),y
|
||||
iny
|
||||
bne last
|
||||
done: rts
|
||||
|
||||
.endproc
|
||||
|
||||
.endif ; .ifndef __ATARIXL__
|
||||
|
Loading…
x
Reference in New Issue
Block a user