# HG changeset patch # User Michael Pavone # Date 1459138194 25200 # Node ID 769120da2c1f7a4180b3aedd1e259cf7937443ae # Parent d8ae30286d177931048dd0de2f5fb08601608615 Make bgcolor demo fancier diff -r d8ae30286d17 -r 769120da2c1f bgcolor.s16 --- 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 +