annotate sprites.s16 @ 46:51672bd41cdd

Rework data segment setup to allow a stack segment and to add space for push and pop instructions
author Michael Pavone <pavone@retrodev.com>
date Tue, 30 Aug 2016 20:50:54 -0700
parents 407725d9a02f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 ;write palette entries to CRAM
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 ldim 0, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 ldimh $FF, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 outi 14, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 ldim colors, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 ldimh colors, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 ldim $80, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 ldimh $0, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 ldim 0, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 cloop:
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 ld16 r0, r2, r3
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 outi 15, r3
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 addi 2, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 cmp r1, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 bne cloop
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 ;write tile to VRAM
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 ldim 0, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 outi 14, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 ldim tile, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 ldim $A0, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 ldimh $0, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 tloop:
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 ld16 r0, r2, r3
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 outi 15, r3
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27 addi 2, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28 cmp r1, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 bne tloop
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 ;write name table entries to VRAM
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 ldim 0, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 ldimh $60, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 outi 14, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
35 ;current entry
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
36 ldim 0, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
37 ;increment
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
38 ldimh $8, r2
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 ;counter
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 ldim $00, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 ldimh $7, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42 nloop:
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43 outi 15, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44 add r2, r0, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
45 addi -1, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 bne nloop
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
48 ;setup writes to sprite list
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
49 ldim 0, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
50 ldimh $FE, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
51 outi 14, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
52
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
53 ;write first sprite
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
54 ldim $15, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 ldimh $35, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 outi 15, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57 ldim 1, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58 ldimh $84, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
59 outi 15, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
61 ;write second sprite
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
62 ldim $8A, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63 ldimh $8A, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 outi 15, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 ldimh $A4, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
66 outi 15, r1
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
67
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
68
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
69 ;write vscroll register
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
70 ldim $0, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
71 ldimh $E6, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
72 outi $C, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
73 ;write hscroll register to enable display
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
74 ldimh $80, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
75 outi $D, r0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
76 forever:
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
77 bra forever
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
78 tile:
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
79 dc.l $000FFFFF
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
80 dc.l $E111EEEE
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
81 dc.l $DD222DDD
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
82 dc.l $CCC333CC
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
83 dc.l $BBBB444B
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
84 dc.l $AAAAA555
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
85 dc.l $99996669
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
86 dc.l $88877788
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
87
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
88 dc.l $00000088
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
89 dc.l $00000889
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
90 dc.l $0000889A
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
91 dc.l $000889AB
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
92 dc.l $00889ABC
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
93 dc.l $0889ABCD
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
94 dc.l $889ABCDE
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
95 dc.l $889ABCEF
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
96
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
97 dc.l $889ABCEF
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
98 dc.l $889ABCDE
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
99 dc.l $0889ABCD
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
100 dc.l $00889ABC
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
101 dc.l $000889AB
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
102 dc.l $0000889A
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
103 dc.l $00000889
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
104 dc.l $00000088
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
105
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
106 dc.l $88000000
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
107 dc.l $98800000
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
108 dc.l $A9880000
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
109 dc.l $BA988000
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
110 dc.l $CBA98800
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
111 dc.l $DCBA9880
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
112 dc.l $EDCBA988
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
113 dc.l $FECBA988
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
114
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
115 dc.l $FECBA988
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
116 dc.l $EDCBA988
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
117 dc.l $DCBA9880
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
118 dc.l $CBA98800
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
119 dc.l $BA988000
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
120 dc.l $A9880000
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
121 dc.l $98800000
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
122 dc.l $88000000
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
123 colors:
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
124 dc.w $0000, $0001, $0002, $0003
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
125 dc.w $0004, $0005, $0006, $0007
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
126 dc.w $0008, $0009, $000A, $000B
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
127 dc.w $000C, $000D, $000E, $000F
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
128
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
129 dc.w $0000, $0010, $0020, $0030
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
130 dc.w $0040, $0050, $0060, $0070
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
131 dc.w $0080, $0090, $00A0, $00B0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
132 dc.w $00C0, $00D0, $00E0, $00F0
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
133
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
134 dc.w $0000, $0100, $0200, $0300
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
135 dc.w $0400, $0500, $0600, $0700
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
136 dc.w $0800, $0900, $0A00, $0B00
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
137 dc.w $0C00, $0D00, $0E00, $0F00
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
138
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
139 dc.w $0000, $0111, $0222, $0333
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
140 dc.w $0444, $0555, $0666, $0777
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
141 dc.w $0888, $0999, $0AAA, $0BBB
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
142 dc.w $0CCC, $0DDD, $0EEE, $0FFF
407725d9a02f Implemented sprite drawing. Added small sprite example.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
143