1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-29 03:56:15 +00:00
kickc/src/test/ref/unroll-screenfill-for-double.asm

149 lines
3.2 KiB
NASM

// Fills the screen using two unrolled ranged for()-loops
// Commodore 64 PRG executable file
.file [name="unroll-screenfill-for-double.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
.segment Code
main: {
.label SCREEN = $400
// (SCREEN+line*40)[x] = x
lda #0
sta SCREEN
sta SCREEN+1*$28
sta SCREEN+2*$28
sta SCREEN+3*$28
sta SCREEN+4*$28
sta SCREEN+5*$28
sta SCREEN+6*$28
sta SCREEN+7*$28
sta SCREEN+8*$28
sta SCREEN+9*$28
sta SCREEN+$a*$28
lda #1
sta SCREEN+1
sta SCREEN+1*$28+1
sta SCREEN+2*$28+1
sta SCREEN+3*$28+1
sta SCREEN+4*$28+1
sta SCREEN+5*$28+1
sta SCREEN+6*$28+1
sta SCREEN+7*$28+1
sta SCREEN+8*$28+1
sta SCREEN+9*$28+1
sta SCREEN+$a*$28+1
lda #2
sta SCREEN+2
sta SCREEN+1*$28+2
sta SCREEN+2*$28+2
sta SCREEN+3*$28+2
sta SCREEN+4*$28+2
sta SCREEN+5*$28+2
sta SCREEN+6*$28+2
sta SCREEN+7*$28+2
sta SCREEN+8*$28+2
sta SCREEN+9*$28+2
sta SCREEN+$a*$28+2
lda #3
sta SCREEN+3
sta SCREEN+1*$28+3
sta SCREEN+2*$28+3
sta SCREEN+3*$28+3
sta SCREEN+4*$28+3
sta SCREEN+5*$28+3
sta SCREEN+6*$28+3
sta SCREEN+7*$28+3
sta SCREEN+8*$28+3
sta SCREEN+9*$28+3
sta SCREEN+$a*$28+3
lda #4
sta SCREEN+4
sta SCREEN+1*$28+4
sta SCREEN+2*$28+4
sta SCREEN+3*$28+4
sta SCREEN+4*$28+4
sta SCREEN+5*$28+4
sta SCREEN+6*$28+4
sta SCREEN+7*$28+4
sta SCREEN+8*$28+4
sta SCREEN+9*$28+4
sta SCREEN+$a*$28+4
lda #5
sta SCREEN+5
sta SCREEN+1*$28+5
sta SCREEN+2*$28+5
sta SCREEN+3*$28+5
sta SCREEN+4*$28+5
sta SCREEN+5*$28+5
sta SCREEN+6*$28+5
sta SCREEN+7*$28+5
sta SCREEN+8*$28+5
sta SCREEN+9*$28+5
sta SCREEN+$a*$28+5
lda #6
sta SCREEN+6
sta SCREEN+1*$28+6
sta SCREEN+2*$28+6
sta SCREEN+3*$28+6
sta SCREEN+4*$28+6
sta SCREEN+5*$28+6
sta SCREEN+6*$28+6
sta SCREEN+7*$28+6
sta SCREEN+8*$28+6
sta SCREEN+9*$28+6
sta SCREEN+$a*$28+6
lda #7
sta SCREEN+7
sta SCREEN+1*$28+7
sta SCREEN+2*$28+7
sta SCREEN+3*$28+7
sta SCREEN+4*$28+7
sta SCREEN+5*$28+7
sta SCREEN+6*$28+7
sta SCREEN+7*$28+7
sta SCREEN+8*$28+7
sta SCREEN+9*$28+7
sta SCREEN+$a*$28+7
lda #8
sta SCREEN+8
sta SCREEN+1*$28+8
sta SCREEN+2*$28+8
sta SCREEN+3*$28+8
sta SCREEN+4*$28+8
sta SCREEN+5*$28+8
sta SCREEN+6*$28+8
sta SCREEN+7*$28+8
sta SCREEN+8*$28+8
sta SCREEN+9*$28+8
sta SCREEN+$a*$28+8
lda #9
sta SCREEN+9
sta SCREEN+1*$28+9
sta SCREEN+2*$28+9
sta SCREEN+3*$28+9
sta SCREEN+4*$28+9
sta SCREEN+5*$28+9
sta SCREEN+6*$28+9
sta SCREEN+7*$28+9
sta SCREEN+8*$28+9
sta SCREEN+9*$28+9
sta SCREEN+$a*$28+9
lda #$a
sta SCREEN+$a
sta SCREEN+1*$28+$a
sta SCREEN+2*$28+$a
sta SCREEN+3*$28+$a
sta SCREEN+4*$28+$a
sta SCREEN+5*$28+$a
sta SCREEN+6*$28+$a
sta SCREEN+7*$28+$a
sta SCREEN+8*$28+$a
sta SCREEN+9*$28+$a
sta SCREEN+$a*$28+$a
// }
rts
}