Mercurial > repos > simple16
view bgcolor.s16 @ 43:6e7bfe83d2b0
Changed the design to vastly simplify the video hardware and support a 23-bit address space on the CPU
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 27 Aug 2016 22:38:31 -0700 |
parents | cc885122e9e3 |
children | 8e39a877c651 |
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 1, r0 ldim 240, r4 ldimh 0, r4 ;320 == $140 ldim $40, r6 ldimh 1, r6 top ldim 0, r1 ldim 1, r2 ldim 5, r3 ldimh 1, r3 ldim 16, r7 ldim 0, r8 waitfirst ini $C, r5 cmp r5, r3 bne waitfirst ldim -1, r3 bra waithblank linestart waitline ini $C, r5 cmp r5, r3 bne waitline waithblank ini $D, r5 cmp r5, r6 bgr waithblank outi 14, r0 outi 14, 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