From: Christian Groessler Date: Thu, 16 Jan 2014 22:53:53 +0000 (+0100) Subject: use copydata instead of own routine X-Git-Tag: V2.15~198^2~3 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b292597f1e80c677e473ec6ba9b71bcbeee2ae77;p=cc65 use copydata instead of own routine --- diff --git a/libsrc/atari/cartstart.s b/libsrc/atari/cartstart.s index 47c1d89b7..ce403b5fb 100644 --- a/libsrc/atari/cartstart.s +++ b/libsrc/atari/cartstart.s @@ -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__