]> git.sur5r.net Git - cc65/blob - libsrc/common/copydata.s
atari5200: conio now uses just four colors altogether
[cc65] / libsrc / common / copydata.s
1 ;
2 ; Ullrich von Bassewitz, 1998-12-07, 2004-12-01
3 ;
4 ; Copy the data segment from the LOAD to the RUN location
5 ;
6
7         .export         copydata
8         .import         __DATA_LOAD__, __DATA_RUN__, __DATA_SIZE__
9         .importzp       ptr1, ptr2, tmp1
10
11
12 copydata:
13         lda     #<__DATA_LOAD__         ; Source pointer
14         sta     ptr1
15         lda     #>__DATA_LOAD__
16         sta     ptr1+1
17
18         lda     #<__DATA_RUN__          ; Target pointer
19         sta     ptr2
20         lda     #>__DATA_RUN__
21         sta     ptr2+1
22
23         ldx     #<~__DATA_SIZE__
24         lda     #>~__DATA_SIZE__        ; Use -(__DATASIZE__+1)
25         sta     tmp1
26         ldy     #$00
27
28 ; Copy loop
29
30 @L1:    inx
31         beq     @L3
32
33 @L2:    lda     (ptr1),y
34         sta     (ptr2),y
35         iny
36         bne     @L1
37         inc     ptr1+1
38         inc     ptr2+1                  ; Bump pointers
39         bne     @L1                     ; Branch always (hopefully)
40
41 ; Bump the high counter byte
42
43 @L3:    inc     tmp1
44         bne     @L2
45
46 ; Done
47
48         rts
49