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
+