1
0
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:
Christian Groessler 2014-01-16 23:53:53 +01:00
parent fd4d7d93ea
commit b292597f1e

View File

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