changeset 14:769120da2c1f

Make bgcolor demo fancier
author Michael Pavone <pavone@retrodev.com>
date Sun, 27 Mar 2016 21:09:54 -0700
parents d8ae30286d17
children c8a0dbd7752c
files bgcolor.s16
diffstat 1 files changed, 51 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/bgcolor.s16	Sun Mar 27 21:08:42 2016 -0700
+++ b/bgcolor.s16	Sun Mar 27 21:09:54 2016 -0700
@@ -1,7 +1,54 @@
+	
+	;r0 = VDP address
+	;r1 = current color
+	;r2 = color increment
+	;r3 = target line
+	;r4 = screen bottom
+	;r5 = scratch
+	;r6 = right edge
+	;r7 = counter
+	ldim 248, r4
+	ldimh 0, r4
+	;320 == $140
+	ldim $40, r6
+	ldimh 1, r6
+top
 	ldim 0, r0
 	ldimh $FF, r0
+	ldim 0, r1
+	ldim 1, r2
+	ldim 8, r3
+	ldim 16, r7
+	
+linestart
 	outi 14, r0
-	ldim $F, r0
-	outi 15, r0
-done
-	bra done
+waitline
+	ini $C, r5
+	cmp r5, r3
+	bne waitline
+	
+waithblank
+	ini $D, r5
+	cmp r5, r6
+	bgr waithblank
+	
+	outi 15, r1
+	add r2, r1, r1
+	addi 4, r3
+	
+	addi -1, r7
+	bne normal
+	ldim 16, r7
+	;TODO: replace with lsli once it works in the assembler
+	add r2, r2, r2
+	add r2, r2, r2
+	add r2, r2, r2
+	add r2, r2, r2
+	ldim 0, r1
+	
+normal
+	
+	cmp r3, r4
+	beq top
+	bra linestart
+