Mercurial > repos > simple16
diff sprites.s16 @ 22:407725d9a02f
Implemented sprite drawing. Added small sprite example.
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 30 Mar 2016 19:55:48 -0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sprites.s16 Wed Mar 30 19:55:48 2016 -0700 @@ -0,0 +1,143 @@ + + ;write palette entries to CRAM + ldim 0, r0 + ldimh $FF, r0 + outi 14, r0 + ldim colors, r0 + ldimh 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 $A0, r1 + ldimh $0, 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 + + ;setup writes to sprite list + ldim 0, r0 + ldimh $FE, r0 + outi 14, r0 + + ;write first sprite + ldim $15, r0 + ldimh $35, r0 + outi 15, r0 + ldim 1, r1 + ldimh $84, r1 + outi 15, r1 + + ;write second sprite + ldim $8A, r0 + ldimh $8A, r0 + outi 15, r0 + ldimh $A4, r1 + outi 15, r1 + + + ;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 + + dc.l $00000088 + dc.l $00000889 + dc.l $0000889A + dc.l $000889AB + dc.l $00889ABC + dc.l $0889ABCD + dc.l $889ABCDE + dc.l $889ABCEF + + dc.l $889ABCEF + dc.l $889ABCDE + dc.l $0889ABCD + dc.l $00889ABC + dc.l $000889AB + dc.l $0000889A + dc.l $00000889 + dc.l $00000088 + + dc.l $88000000 + dc.l $98800000 + dc.l $A9880000 + dc.l $BA988000 + dc.l $CBA98800 + dc.l $DCBA9880 + dc.l $EDCBA988 + dc.l $FECBA988 + + dc.l $FECBA988 + dc.l $EDCBA988 + dc.l $DCBA9880 + dc.l $CBA98800 + dc.l $BA988000 + dc.l $A9880000 + dc.l $98800000 + dc.l $88000000 +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 +