jsr zerobss
; Copy the .data segment to RAM
- lda #<(__DATA_LOAD__)
- sta ptr1
- lda #>(__DATA_LOAD__)
- sta ptr1+1
- lda #<(__DATA_RUN__)
- sta ptr2
- lda #>(__DATA_RUN__)
- sta ptr2+1
-
- ldx #>(__DATA_SIZE__)
-@l2:
- beq @s1 ; no more full pages
-
- ; copy one page
- ldy #0
-@l1:
- lda (ptr1),y
- sta (ptr2),y
- iny
- bne @l1
-
- inc ptr1+1
- inc ptr2+1
-
- dex
- bne @l2
-
- ; copy remaining bytes
-@s1:
- ; copy one page
- ldy #0
-@l3:
- lda (ptr1),y
- sta (ptr2),y
- iny
- cpy #<(__DATA_SIZE__)
- bne @l3
+ tii __DATA_LOAD__, __DATA_RUN__, __DATA_SIZE__
; setup the stack
lda #<(__RAM_START__+__RAM_SIZE__)