Mercurial > repos > simple16
view tiletest.s16 @ 20:a9364f5ee81a
Fix timing of port IO
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 29 Mar 2016 19:57:34 -0700 |
parents | 04fc17376999 |
children |
line wrap: on
line source
;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