Mercurial > repos > simple16
diff bgcolor.s16 @ 14:769120da2c1f
Make bgcolor demo fancier
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 27 Mar 2016 21:09:54 -0700 |
parents | 04d8efe7a1f0 |
children | cc885122e9e3 |
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 +