Mercurial > repos > simple16
view bgcolor.s16 @ 36:5683d9ba9acc
Fix call instruction for the case in which A reg == DST reg
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 03 Apr 2016 21:27:03 -0700 |
parents | cc885122e9e3 |
children | 6e7bfe83d2b0 |
line wrap: on
line source
;r0 = VDP address ;r1 = current color ;r2 = color increment ;r3 = target line ;r4 = screen bottom ;r5 = scratch ;r6 = right edge ;r7 = counter ;r8 = secondary 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 ldim 0, r8 linestart outi 14, r0 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 2, r3 addi -1, r7 bne normal ldim 16, r7 ldim 0, r1 addi 1, r8 cmpi 3, r8 beq cyan cmpi 5, r8 beq magenta cmpi 6, r8 beq grey ;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 normal cmp r3, r4 bcs top bra linestart cyan ldim $11, r2 bra normal magenta ldim $01, r2 ldimh $01, r2 bra normal grey ldim $11, r2 ldimh $01, r2 bra normal