summaryrefslogtreecommitdiffstats
path: root/hacks/images/m6502/demoscene.asm
diff options
context:
space:
mode:
Diffstat (limited to 'hacks/images/m6502/demoscene.asm')
-rw-r--r--hacks/images/m6502/demoscene.asm457
1 files changed, 457 insertions, 0 deletions
diff --git a/hacks/images/m6502/demoscene.asm b/hacks/images/m6502/demoscene.asm
new file mode 100644
index 0000000..fdd9361
--- /dev/null
+++ b/hacks/images/m6502/demoscene.asm
@@ -0,0 +1,457 @@
+
+start:
+ ldx #0
+c:lda bottombar,x
+ cmp #$ff
+ beq init
+ sta $4e0,x
+ sta $5e0,x
+ inx
+ jmp c
+init:
+ jsr initDraw
+ lda #0
+ sta $10 ; scrptr
+ sta $11 ; txtptr
+loop:
+ jsr drawMain
+ jsr putfont
+ jsr scrollarea
+ jmp loop
+
+scrollarea:
+ ldx #0
+g:lda $521,x
+ sta $520,x
+ lda $541,x
+ sta $540,x
+ lda $561,x
+ sta $560,x
+ lda $581,x
+ sta $580,x
+ lda $5a1,x
+ sta $5a0,x
+ inx
+ cpx #31
+ bne g
+ rts
+
+putfont:
+ lda $10 ; scrptr
+ cmp #0
+ bne noNext
+ inc $11
+ ldx $11
+ lda scrolltext,x
+ tax
+ lda fontSize,x
+ sta $10
+noNext:
+ dec $10
+ ldx $11
+ lda scrolltext,x
+ cmp #$ff
+ bne notResetText
+ lda #0
+ sta $10
+ sta $11
+ rts
+
+notResetText:
+ asl
+ tax
+ lda fontlookup,x
+ sta $2
+ inx
+ lda fontlookup,x
+ sta $3
+ lda #<fonts
+ clc
+ adc $2
+ sta $0
+ lda #>fonts
+ adc $3
+ sta $1
+ ldy $10
+ lda ($00),y
+ sta $53f
+ tya
+ clc
+ adc #6
+ tay
+ lda ($00),y
+ sta $55f
+ tya
+ clc
+ adc #6
+ tay
+ lda ($00),y
+ sta $57f
+ tya
+ clc
+ adc #6
+ tay
+ lda ($00),y
+ sta $59f
+ tya
+ clc
+ adc #6
+ tay
+ lda ($00),y
+ sta $5bf
+ rts
+
+initDraw:
+ lda #<picture
+ sta $20
+ lda #>picture
+ sta $21
+ lda #$00
+ sta $22
+ lda #$02
+ sta $23
+ ldx #$0
+ rts
+drawMain:
+ ldx #0
+ lda ($20,x)
+ cmp #$ff
+ beq done
+ sta ($22,x)
+ inc $20
+ lda $20
+ cmp #$00
+ bne n1
+ inc $21
+n1:
+ inc $22
+ lda $22
+ cmp #$00
+ bne done
+ lda $23
+ cmp #$05
+ beq done
+ inc $23
+done:
+ rts
+
+picture:
+ dcb 0,0,0,0,0,0,0,0,0,$b,$b,$c,$f,$f,$f,$f
+ dcb $f,$b,0,0,0,$b,$b,$c,$c,$f,$f,$b,0,0,0,0
+ dcb 0,0,0,0,0,0,0,0,0,$b,$c,$c,$f,$c,$f,$f
+ dcb $b,$b,$b,$b,$b,0,$b,$b,$c,$f,$f,$c,0,0,0,0
+ dcb 0,0,0,0,0,0,0,$b,0,$c,$b,$f,$c,$f,$f,$c
+ dcb $c,$b,0,$b,$c,$c,$c,$f,$f,1,$f,$c,$b,0,0,0
+ dcb 0,0,0,0,0,0,0,0,$b,$b,$c,$c,$c,$f,$f,$f
+ dcb $c,$c,$c,$c,$c,$c,$f,$c,$f,$f,$f,$f,$b,0,0,0
+ dcb 0,0,0,0,0,0,0,$b,0,0,$b,$c,$c,$f,$f,$f
+ dcb $f,$c,$f,$f,$f,$f,$f,$f,$f,1,$f,$f,$c,0,0,0
+ dcb 0,0,0,0,0,0,0,0,0,$b,$b,$b,$c,$f,$f,1
+ dcb $f,$f,$c,$f,$f,$f,1,$f,$f,$f,$f,$f,$f,0,0,0
+ dcb 0,0,0,0,0,0,0,0,0,$b,$b,$b,$b,$c,$f,1
+ dcb $f,$f,$f,$f,$f,$f,$f,$f,1,$f,$f,$f,$f,$b,0,0
+ dcb 0,0,0,0,0,0,0,0,$b,0,$b,$c,$b,$c,$c,1
+ dcb 1,$f,1,$f,1,$f,1,$f,$f,1,$f,$f,1,$b,0,0
+ dcb 0,0,0,0,0,0,0,$b,$b,$b,$c,$c,$b,$c,$f,1
+ dcb 1,1,$f,$f,1,$f,$f,1,$f,$f,$f,$f,1,$c,0,0
+ dcb 0,0,0,0,0,0,0,$b,$b,$c,$c,$c,$b,$c,$c,$f
+ dcb 1,1,1,$f,$f,1,$f,1,$f,1,$f,$f,1,$c,0,0
+ dcb 0,0,0,0,0,$b,$b,$b,$c,$c,$c,$f,$c,$c,$f,$f
+ dcb 1,1,1,1,$f,$f,$f,1,$f,1,$f,$f,$f,$f,0,0
+ dcb 0,0,0,0,0,0,$b,$c,$c,$c,$f,$c,$f,$c,$f,$f
+ dcb 1,1,1,1,1,$f,$f,1,$f,$f,$f,$f,1,$f,$b,0
+ dcb 0,0,0,0,$b,$b,$b,$c,$c,$f,$c,$f,$f,$c,$f,$f
+ dcb 1,1,1,1,1,$f,$f,$f,1,$f,$f,$f,1,$c,$b,$b
+ dcb 0,0,0,0,$b,$b,$c,$f,$c,$f,$f,$f,$f,$f,$c,$f
+ dcb 1,1,1,1,1,$f,$f,$f,1,$f,$f,$f,$f,$f,$b,$b
+ dcb 0,0,0,0,$b,$c,$c,$c,$f,$f,$f,$f,$f,$f,$f,$f
+ dcb $f,1,1,1,$f,$b,$f,$f,$f,1,$f,$f,$f,$f,$b,$b
+ dcb 0,0,0,0,$b,$c,$c,$f,$c,$f,$f,$f,$f,$f,$f,$f
+ dcb $f,$f,$f,$c,$b,$f,$f,1,$f,$f,$f,$f,$f,$f,$c,$b
+ dcb 0,0,0,0,$b,$b,$c,$c,$f,$c,$f,$f,$f,$f,$f,$f
+ dcb $c,$c,$b,$c,$c,$f,$f,1,$c,$c,$f,$f,$f,$f,$c,$b
+ dcb 0,0,0,0,$b,$b,$c,$c,$c,$f,$f,$f,$f,$f,$f,$f
+ dcb $f,$f,$f,$f,$f,1,$f,$c,$b,$f,$c,$f,$c,$f,$c,$b
+ dcb 0,0,0,0,0,$b,$c,$c,$c,$c,$f,$f,$f,$f,$f,$f
+ dcb $f,$f,$f,$f,$f,$c,$b,$c,$c,$c,$f,$f,$c,$f,$c,$c
+ dcb 0,0,0,0,0,$b,$b,$c,$c,$c,$c,$c,$f,$f,$f,$f
+ dcb $f,$f,$f,$c,$b,$b,$c,$c,$c,$f,$c,$f,$f,$f,$c,$b
+ dcb 0,0,0,0,0,$b,$b,$b,$b,$c,$c,$f,$c,$f,$f,$f
+ dcb $c,$c,$b,$b,$b,$c,$b,$b,$c,$c,$f,$c,$c,$f,$c,$c
+ dcb 0,0,0,0,0,0,$b,$b,$c,$b,$c,$c,$c,$c,$c,$c
+ dcb $b,$b,$b,$b,$c,$b,$b,$c,$c,$f,$f,$f,$c,$c,$c,$b
+ dcb 0,0,0,0,0,0,0,0,$b,$b,$b,$c,$c,$c,$c,$c
+ dcb $c,$c,$b,$b,$b,$b,$c,$c,$f,$f,$f,$c,$c,$c,$c,$c
+ dcb $ff
+
+
+fontSize:
+ dcb 5,5,5,5,5,5,5,5 ;abcdefgh
+ dcb 2,5,5,5,6,6,5,5 ;ijklmnop
+ dcb 6,5,5,4,5,6,6,6 ;qrstuvwx
+ dcb 6,5,2,3 ;yz.[SPACE]
+
+;
+; a=0, b=1, c=2, d=3....
+;
+
+scrolltext:
+ dcb 0
+
+ dcb 14,13,11,24,27 ; "only "
+ dcb 03,04,15,19,07,27 ; "depth "
+ dcb 12,0,10,4,18,27 ; "makes "
+ dcb 8,19,27 ; "it "
+ dcb 15,14,18,18,8,1,11,4 ; "possible"
+ dcb 26,26,26 ; "..."
+ dcb 19,7,8,18,27 ; "this "
+ dcb 8,18,27 ; "is "
+ dcb 19,7,4,27 ; "the "
+ dcb 5,8,17,18,19,27 ; "first "
+ dcb 3,4,12,14,27 ; "demo "
+ dcb 12,0,3,4,27 ; "made "
+ dcb 8,13,27 ; "in "
+ dcb 19,7,8,18,27 ; "this "
+ dcb 4,13,21,26,26,26,26,27 ; "env.... "
+ dcb 7,14,15,4,27 ; "hope "
+ dcb 24,14,20,27 ; "you "
+ dcb 11,8,10,4,27 ; "like "
+ dcb 8,19,26,26,26,27,27 ; "it... "
+ dcb 22,22,22,26 ; "www."
+ dcb 3,4,15,19,7,26 ; "depth."
+ dcb 14,17,6,27,27,27,27,27 ; "org "
+
+ dcb $ff ; end of text
+
+fontlookup:
+ dcb $00,$00 ;a
+ dcb $20,$00 ;b
+ dcb $40,$00 ;c
+ dcb $60,$00 ;d
+ dcb $80,$00 ;e
+ dcb $a0,$00 ;f
+ dcb $c0,$00 ;g
+ dcb $e0,$00 ;h
+ dcb $00,$01 ;i
+ dcb $20,$01 ;j
+ dcb $40,$01 ;k
+ dcb $60,$01 ;l
+ dcb $80,$01 ;m
+ dcb $a0,$01 ;n
+ dcb $c0,$01 ;o
+ dcb $e0,$01 ;p
+ dcb $00,$02 ;q
+ dcb $20,$02 ;r
+ dcb $40,$02 ;s
+ dcb $60,$02 ;t
+ dcb $80,$02 ;u
+ dcb $a0,$02 ;v
+ dcb $c0,$02 ;w
+ dcb $e0,$02 ;x
+ dcb $00,$03 ;y
+ dcb $20,$03 ;z
+ dcb $40,$03 ;.
+ dcb $60,$03 ;" "
+
+fonts:
+ dcb 0,1,1,0,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,1,1,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,0
+
+ dcb 0,1,1,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,1,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,1,1,0,0
+ dcb 0,0
+
+ dcb 0,1,1,0,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,1,0,0,0
+ dcb 0,0
+
+ dcb 0,1,1,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,1,1,0,0
+ dcb 0,0
+
+ dcb 1,1,1,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,1,1,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 1,1,1,1,0,0
+ dcb 0,0
+
+ dcb 1,1,1,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,1,1,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,0
+
+ dcb 1,1,1,0,0,0
+ dcb 0,0,0,1,0,0
+ dcb 1,1,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,1,1,0,0,0
+ dcb 0,0
+
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,1,1,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,0
+
+ dcb 1,0,0,0,0,0
+ dcb 1,0,0,0,0,0
+ dcb 1,0,0,0,0,0
+ dcb 1,0,0,0,0,0
+ dcb 1,0,0,0,0,0
+ dcb 0,0
+
+ dcb 1,0,0,0,0,0
+ dcb 1,0,0,0,0,0
+ dcb 1,0,0,0,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,1,0,0,0
+ dcb 0,0
+
+ dcb 1,0,0,1,0,0
+ dcb 0,1,0,1,0,0
+ dcb 0,0,1,1,0,0
+ dcb 0,1,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,0
+
+ dcb 0,0,0,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 1,1,1,1,0,0
+ dcb 0,0
+
+ dcb 1,0,0,0,1,0
+ dcb 1,1,0,1,1,0
+ dcb 1,0,1,0,1,0
+ dcb 1,0,0,0,1,0
+ dcb 1,0,0,0,1,0
+ dcb 0,0
+
+ dcb 1,0,0,0,1,0
+ dcb 1,0,0,1,1,0
+ dcb 1,0,1,0,1,0
+ dcb 1,1,0,0,1,0
+ dcb 1,0,0,0,1,0
+ dcb 0,0
+
+ dcb 0,1,1,0,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,1,0,0,0
+ dcb 0,0
+
+ dcb 0,1,1,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,1,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,0
+
+ dcb 0,1,1,0,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,0,1,0,0
+ dcb 1,0,1,0,0,0
+ dcb 0,0
+
+ dcb 0,1,1,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,1,1,1,0,0
+ dcb 0,1,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 0,0
+
+ dcb 1,1,1,0,0,0
+ dcb 0,0,0,1,0,0
+ dcb 0,1,1,0,0,0
+ dcb 1,0,0,0,0,0
+ dcb 0,1,1,1,0,0
+ dcb 0,0
+
+ dcb 1,1,1,0,0,0
+ dcb 0,1,0,0,0,0
+ dcb 0,1,0,0,0,0
+ dcb 0,1,0,0,0,0
+ dcb 0,1,0,0,0,0
+ dcb 0,0
+
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,0,0,1,0,0
+ dcb 1,1,1,0,0,0
+ dcb 0,0
+
+ dcb 1,0,0,0,1,0
+ dcb 1,0,0,0,1,0
+ dcb 1,0,0,0,1,0
+ dcb 0,1,0,1,0,0
+ dcb 0,0,1,0,0,0
+ dcb 0,0
+
+ dcb 1,0,0,0,1,0
+ dcb 1,0,0,0,1,0
+ dcb 1,0,1,0,1,0
+ dcb 1,1,0,1,1,0
+ dcb 1,0,0,0,1,0
+ dcb 0,0
+
+ dcb 1,0,0,0,1,0
+ dcb 0,1,0,1,0,0
+ dcb 0,0,1,0,0,0
+ dcb 0,1,0,1,0,0
+ dcb 1,0,0,0,1,0
+ dcb 0,0
+
+ dcb 1,0,0,0,1,0
+ dcb 0,1,0,1,0,0
+ dcb 0,0,1,0,0,0
+ dcb 0,0,1,0,0,0
+ dcb 0,0,1,0,0,0
+ dcb 0,0
+
+ dcb 1,1,1,1,0,0 ; z
+ dcb 1,0,0,0,0,0
+ dcb 0,1,1,0,0,0
+ dcb 0,0,0,1,0,0
+ dcb 1,1,1,1,0,0
+ dcb 0,0
+
+ dcb 0,0,0,0,0,0 ; .
+ dcb 0,0,0,0,0,0
+ dcb 0,0,0,0,0,0
+ dcb 0,0,0,0,0,0
+ dcb 1,0,0,0,0,0
+ dcb 0,0
+
+ dcb 0,0,0,0,0,0 ; " "
+ dcb 0,0,0,0,0,0
+ dcb 0,0,0,0,0,0
+ dcb 0,0,0,0,0,0
+ dcb 0,0,0,0,0,0
+ dcb 0,0
+
+bottombar:
+ dcb $b,$9,$b,9,8,9,8,$a,8,$a,7,$a,7,1,7,1,1
+ dcb 7,1,7,$a,7,$a,8,$a,8,9,8,9,$b,9,$b
+ dcb $ff
+