Mercurial > repos > simple16
diff tiletest.s16 @ 19:04fc17376999
Sort of working tile rendering and tile test ROM
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 28 Mar 2016 23:43:31 -0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tiletest.s16 Mon Mar 28 23:43:31 2016 -0700 @@ -0,0 +1,84 @@ + + ;write palette entries to CRAM + ldim 0, r0 + ldimh $FF, r0 + outi 14, r0 + ldim colors, r0 + ldim $80, r1 + ldimh $0, r1 + ldim 0, r2 +cloop: + ld16 r0, r2, r3 + outi 15, r3 + addi 2, r2 + cmp r1, r2 + bne cloop + + ;write tile to VRAM + ldim 0, r2 + outi 14, r2 + ldim tile, r0 + ldim 32, r1 +tloop: + ld16 r0, r2, r3 + outi 15, r3 + addi 2, r2 + cmp r1, r2 + bne tloop + + ;write name table entries to VRAM + ldim 0, r2 + ldimh $60, r2 + outi 14, r2 + ;current entry + ldim 0, r0 + ;increment + ldimh $8, r2 + ;counter + ldim $00, r1 + ldimh $7, r1 +nloop: + outi 15, r0 + add r2, r0, r0 + addi -1, r1 + bne nloop + + ;write vscroll register + ldim $0, r0 + ldimh $E6, r0 + outi $C, r0 + ;write hscroll register to enable display + ldimh $80, r0 + outi $D, r0 +forever: + bra forever +tile: + dc.l $000FFFFF + dc.l $E111EEEE + dc.l $DD222DDD + dc.l $CCC333CC + dc.l $BBBB444B + dc.l $AAAAA555 + dc.l $99996669 + dc.l $88877788 +colors: + dc.w $0000, $0001, $0002, $0003 + dc.w $0004, $0005, $0006, $0007 + dc.w $0008, $0009, $000A, $000B + dc.w $000C, $000D, $000E, $000F + + dc.w $0000, $0010, $0020, $0030 + dc.w $0040, $0050, $0060, $0070 + dc.w $0080, $0090, $00A0, $00B0 + dc.w $00C0, $00D0, $00E0, $00F0 + + dc.w $0000, $0100, $0200, $0300 + dc.w $0400, $0500, $0600, $0700 + dc.w $0800, $0900, $0A00, $0B00 + dc.w $0C00, $0D00, $0E00, $0F00 + + dc.w $0000, $0111, $0222, $0333 + dc.w $0444, $0555, $0666, $0777 + dc.w $0888, $0999, $0AAA, $0BBB + dc.w $0CCC, $0DDD, $0EEE, $0FFF +