version 4.1.0 from http://fpga4u.epfl.ch/wiki/FX2
[fx2fw-sdcc] / vectors.a51
1 ;;; -*- asm -*-\r
2 \r
3 ;;;\r
4 \r
5 ;;;-----------------------------------------------------------------------------\r
6 \r
7 ;;; Interrupt vectors\r
8 \r
9 ;;;-----------------------------------------------------------------------------\r
10 \r
11 ;;; Code taken from USRP2 firmware (GNU Radio Project), version 3.0.2,\r
12 \r
13 ;;; Copyright 2003 Free Software Foundation, Inc.\r
14 \r
15 ;;;-----------------------------------------------------------------------------\r
16 \r
17 ;;; This code is part of usbjtag. usbjtag is free software; you can redistribute\r
18 \r
19 ;;; it and/or modify it under the terms of the GNU General Public License as\r
20 \r
21 ;;; published by the Free Software Foundation; either version 2 of the License,\r
22 \r
23 ;;; or (at your option) any later version. usbjtag is distributed in the hope\r
24 \r
25 ;;; that it will be useful, but WITHOUT ANY WARRANTY; without even the implied\r
26 \r
27 ;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
28 \r
29 ;;; GNU General Public License for more details.  You should have received a\r
30 \r
31 ;;; copy of the GNU General Public License along with this program in the file\r
32 \r
33 ;;; COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin\r
34 \r
35 ;;; St, Fifth Floor, Boston, MA  02110-1301  USA\r
36 \r
37 ;;;-----------------------------------------------------------------------------\r
38 \r
39 \r
40 \r
41 ;;; N.B. This object module must come first in the list of modules\r
42 \r
43 \r
44 \r
45         .module vectors\r
46 \r
47 \r
48 \r
49 ;;; ----------------------------------------------------------------\r
50 \r
51 ;;;                  standard FX2 interrupt vectors\r
52 \r
53 ;;; ----------------------------------------------------------------\r
54 \r
55 \r
56 \r
57         .area CSEG (CODE)\r
58 \r
59         .area GSINIT (CODE)\r
60 \r
61         .area CSEG (CODE)\r
62 \r
63 __standard_interrupt_vector::\r
64 \r
65 __reset_vector::\r
66 \r
67         ljmp        s_GSINIT\r
68 \r
69         \r
70 \r
71         ;; 13 8-byte entries.  We point them all at __isr_nop\r
72 \r
73         ljmp        __isr_nop        ; 3 bytes\r
74 \r
75         .ds        5                ; + 5 = 8 bytes for vector slot\r
76 \r
77         ljmp        __isr_nop\r
78 \r
79         .ds        5\r
80 \r
81         ljmp        __isr_nop\r
82 \r
83         .ds        5\r
84 \r
85         ljmp        __isr_nop\r
86 \r
87         .ds        5\r
88 \r
89         ljmp        __isr_nop\r
90 \r
91         .ds        5\r
92 \r
93         ljmp        __isr_nop\r
94 \r
95         .ds        5\r
96 \r
97         ljmp        __isr_nop\r
98 \r
99         .ds        5\r
100 \r
101         ljmp        __isr_nop\r
102 \r
103         .ds        5\r
104 \r
105         ljmp        __isr_nop\r
106 \r
107         .ds        5\r
108 \r
109         ljmp        __isr_nop\r
110 \r
111         .ds        5\r
112 \r
113         ljmp        __isr_nop\r
114 \r
115         .ds        5\r
116 \r
117         ljmp        __isr_nop\r
118 \r
119         .ds        5\r
120 \r
121         ljmp        __isr_nop\r
122 \r
123         .ds        5\r
124 \r
125 \r
126 \r
127 __isr_nop::\r
128 \r
129         reti\r
130 \r
131 \r
132 \r
133 ;;; ----------------------------------------------------------------\r
134 \r
135 ;;; the FIFO/GPIF autovector.  14 4-byte entries.\r
136 \r
137 ;;; must start on a 128 byte boundary.\r
138 \r
139 ;;; ----------------------------------------------------------------\r
140 \r
141         \r
142 \r
143         . = __reset_vector + 0x0080\r
144 \r
145                 \r
146 \r
147 __fifo_gpif_autovector::\r
148 \r
149         ljmp        __isr_nop\r
150 \r
151         nop        \r
152 \r
153         ljmp        __isr_nop\r
154 \r
155         nop        \r
156 \r
157         ljmp        __isr_nop\r
158 \r
159         nop        \r
160 \r
161         ljmp        __isr_nop\r
162 \r
163         nop        \r
164 \r
165         ljmp        __isr_nop\r
166 \r
167         nop        \r
168 \r
169         ljmp        __isr_nop\r
170 \r
171         nop        \r
172 \r
173         ljmp        __isr_nop\r
174 \r
175         nop        \r
176 \r
177         ljmp        __isr_nop\r
178 \r
179         nop        \r
180 \r
181         ljmp        __isr_nop\r
182 \r
183         nop        \r
184 \r
185         ljmp        __isr_nop\r
186 \r
187         nop        \r
188 \r
189         ljmp        __isr_nop\r
190 \r
191         nop        \r
192 \r
193         ljmp        __isr_nop\r
194 \r
195         nop        \r
196 \r
197         ljmp        __isr_nop\r
198 \r
199         nop        \r
200 \r
201         ljmp        __isr_nop\r
202 \r
203         nop        \r
204 \r
205 \r
206 \r
207         \r
208 \r
209 ;;; ----------------------------------------------------------------\r
210 \r
211 ;;; the USB autovector.  32 4-byte entries.\r
212 \r
213 ;;; must start on a 256 byte boundary.\r
214 \r
215 ;;; ----------------------------------------------------------------\r
216 \r
217 \r
218 \r
219         . = __reset_vector + 0x0100\r
220 \r
221         \r
222 \r
223 __usb_autovector::\r
224 \r
225         ljmp        __isr_nop\r
226 \r
227         nop\r
228 \r
229         ljmp        __isr_nop\r
230 \r
231         nop\r
232 \r
233         ljmp        __isr_nop\r
234 \r
235         nop\r
236 \r
237         ljmp        __isr_nop\r
238 \r
239         nop\r
240 \r
241         ljmp        __isr_nop\r
242 \r
243         nop\r
244 \r
245         ljmp        __isr_nop\r
246 \r
247         nop\r
248 \r
249         ljmp        __isr_nop\r
250 \r
251         nop\r
252 \r
253         ljmp        __isr_nop\r
254 \r
255         nop\r
256 \r
257         ljmp        __isr_nop\r
258 \r
259         nop\r
260 \r
261         ljmp        __isr_nop\r
262 \r
263         nop\r
264 \r
265         ljmp        __isr_nop\r
266 \r
267         nop\r
268 \r
269         ljmp        __isr_nop\r
270 \r
271         nop\r
272 \r
273         ljmp        __isr_nop\r
274 \r
275         nop\r
276 \r
277         ljmp        __isr_nop\r
278 \r
279         nop\r
280 \r
281         ljmp        __isr_nop\r
282 \r
283         nop\r
284 \r
285         ljmp        __isr_nop\r
286 \r
287         nop\r
288 \r
289         ljmp        __isr_nop\r
290 \r
291         nop\r
292 \r
293         ljmp        __isr_nop\r
294 \r
295         nop\r
296 \r
297         ljmp        __isr_nop\r
298 \r
299         nop\r
300 \r
301         ljmp        __isr_nop\r
302 \r
303         nop\r
304 \r
305         ljmp        __isr_nop\r
306 \r
307         nop\r
308 \r
309         ljmp        __isr_nop\r
310 \r
311         nop\r
312 \r
313         ljmp        __isr_nop\r
314 \r
315         nop\r
316 \r
317         ljmp        __isr_nop\r
318 \r
319         nop\r
320 \r
321         ljmp        __isr_nop\r
322 \r
323         nop\r
324 \r
325         ljmp        __isr_nop\r
326 \r
327         nop\r
328 \r
329         ljmp        __isr_nop\r
330 \r
331         nop\r
332 \r
333         ljmp        __isr_nop\r
334 \r
335         nop\r
336 \r
337         ljmp        __isr_nop\r
338 \r
339         nop\r
340 \r
341         ljmp        __isr_nop\r
342 \r
343         nop\r
344 \r
345         ljmp        __isr_nop\r
346 \r
347         nop\r
348 \r
349         ljmp        __isr_nop\r
350 \r
351         nop\r
352 \r