0,0 → 1,450 |
1 .file "Spectrum.c" |
2 __SREG__ = 0x3f |
3 __SP_H__ = 0x3e |
4 __SP_L__ = 0x3d |
5 __tmp_reg__ = 0 |
6 __zero_reg__ = 1 |
7 .global __do_copy_data |
8 .global __do_clear_bss |
9 .text |
10 .global Uart1Init |
12 Uart1Init: |
13 /* prologue: frame size=0 */ |
14 /* prologue end (size=0) */ |
15 0000 8091 C900 lds r24,201 |
16 0004 8F77 andi r24,lo8(127) |
17 0006 8093 C900 sts 201,r24 |
18 000a 8091 C900 lds r24,201 |
19 000e 8F7B andi r24,lo8(-65) |
20 0010 8093 C900 sts 201,r24 |
21 0014 8091 C900 lds r24,201 |
22 0018 8F7D andi r24,lo8(-33) |
23 001a 8093 C900 sts 201,r24 |
24 001e 5A9A sbi 43-0x20,2 |
25 0020 5298 cbi 42-0x20,2 |
26 0022 1092 CD00 sts 205,__zero_reg__ |
27 0026 84E1 ldi r24,lo8(20) |
28 0028 8093 CC00 sts 204,r24 |
29 002c 8091 C800 lds r24,200 |
30 0030 8260 ori r24,lo8(2) |
31 0032 8093 C800 sts 200,r24 |
32 0036 80E1 ldi r24,lo8(16) |
33 0038 8093 C900 sts 201,r24 |
34 003c 8091 CA00 lds r24,202 |
35 0040 8F77 andi r24,lo8(127) |
36 0042 8093 CA00 sts 202,r24 |
37 0046 8091 CA00 lds r24,202 |
38 004a 8F7B andi r24,lo8(-65) |
39 004c 8093 CA00 sts 202,r24 |
40 0050 8091 CA00 lds r24,202 |
41 0054 8F7D andi r24,lo8(-33) |
42 0056 8093 CA00 sts 202,r24 |
43 005a 8091 CA00 lds r24,202 |
44 005e 8F7E andi r24,lo8(-17) |
45 0060 8093 CA00 sts 202,r24 |
46 0064 8091 CA00 lds r24,202 |
47 0068 877F andi r24,lo8(-9) |
48 006a 8093 CA00 sts 202,r24 |
49 006e 8091 C900 lds r24,201 |
50 0072 8B7F andi r24,lo8(-5) |
51 0074 8093 C900 sts 201,r24 |
52 0078 8091 CA00 lds r24,202 |
53 007c 8460 ori r24,lo8(4) |
54 007e 8093 CA00 sts 202,r24 |
55 0082 8091 CA00 lds r24,202 |
56 0086 8260 ori r24,lo8(2) |
57 0088 8093 CA00 sts 202,r24 |
58 008c 8091 C800 lds r24,200 |
59 0090 87FF sbrs r24,7 |
60 0092 00C0 rjmp .L2 |
61 .L5: |
62 0094 8091 CE00 lds r24,206 |
63 0098 8091 C800 lds r24,200 |
64 009c 87FD sbrc r24,7 |
65 009e 00C0 rjmp .L5 |
66 .L2: |
67 00a0 8091 C900 lds r24,201 |
68 00a4 8068 ori r24,lo8(-128) |
69 00a6 8093 C900 sts 201,r24 |
70 /* epilogue: frame size=0 */ |
71 00aa 0895 ret |
72 /* epilogue end (size=1) */ |
73 /* function Uart1Init size 86 (85) */ |
75 .global __vector_28 |
77 __vector_28: |
78 /* prologue: frame size=0 */ |
79 00ac 1F92 push __zero_reg__ |
80 00ae 0F92 push __tmp_reg__ |
81 00b0 0FB6 in __tmp_reg__,__SREG__ |
82 00b2 0F92 push __tmp_reg__ |
83 00b4 1124 clr __zero_reg__ |
84 00b6 0F93 push r16 |
85 00b8 1F93 push r17 |
86 00ba 2F93 push r18 |
87 00bc 3F93 push r19 |
88 00be 4F93 push r20 |
89 00c0 5F93 push r21 |
90 00c2 6F93 push r22 |
91 00c4 7F93 push r23 |
92 00c6 8F93 push r24 |
93 00c8 9F93 push r25 |
94 00ca AF93 push r26 |
95 00cc BF93 push r27 |
96 00ce CF93 push r28 |
97 00d0 DF93 push r29 |
98 00d2 EF93 push r30 |
99 00d4 FF93 push r31 |
100 /* prologue end (size=21) */ |
101 00d6 1091 CE00 lds r17,206 |
102 00da 8091 0000 lds r24,ReSync.2413 |
103 00de 9091 0000 lds r25,(ReSync.2413)+1 |
104 00e2 0197 sbiw r24,1 |
105 00e4 01F4 brne .+2 |
106 00e6 00C0 rjmp .L48 |
107 00e8 8091 0000 lds r24,FrameTimer.2415 |
108 00ec 9091 0000 lds r25,(FrameTimer.2415)+1 |
109 00f0 0E94 0000 call CheckDelay |
110 00f4 2091 0000 lds r18,Sync.2410 |
111 00f8 3091 0000 lds r19,(Sync.2410)+1 |
112 00fc 2115 cp r18,__zero_reg__ |
113 00fe 3105 cpc r19,__zero_reg__ |
114 0100 01F0 breq .L49 |
115 0102 2130 cpi r18,1 |
116 0104 3105 cpc r19,__zero_reg__ |
117 0106 01F4 brne .+2 |
118 0108 00C0 rjmp .L50 |
119 .L16: |
120 010a 2230 cpi r18,2 |
121 010c 3105 cpc r19,__zero_reg__ |
122 010e 01F4 brne .+2 |
123 0110 00C0 rjmp .L51 |
124 .L19: |
125 0112 2330 cpi r18,3 |
126 0114 3105 cpc r19,__zero_reg__ |
127 0116 01F4 brne .+2 |
128 0118 00C0 rjmp .L52 |
129 .L25: |
130 011a 81E0 ldi r24,lo8(1) |
131 011c 90E0 ldi r25,hi8(1) |
132 011e 9093 0000 sts (ReSync.2413)+1,r25 |
133 0122 8093 0000 sts ReSync.2413,r24 |
134 0126 1092 0000 sts (FrameCnt.2411)+1,__zero_reg__ |
135 012a 1092 0000 sts FrameCnt.2411,__zero_reg__ |
136 012e 1092 0000 sts (Frame2.2414)+1,__zero_reg__ |
137 0132 1092 0000 sts Frame2.2414,__zero_reg__ |
138 .L42: |
139 0136 87E0 ldi r24,lo8(7) |
140 0138 90E0 ldi r25,hi8(7) |
141 013a 0E94 0000 call SetDelay |
142 013e 9093 0000 sts (FrameTimer.2415)+1,r25 |
143 0142 8093 0000 sts FrameTimer.2415,r24 |
144 0146 00C0 rjmp .L46 |
145 .L49: |
146 0148 8823 tst r24 |
147 014a 01F4 brne .L53 |
148 014c C091 0000 lds r28,FrameCnt.2411 |
149 0150 D091 0000 lds r29,(FrameCnt.2411)+1 |
150 .L14: |
151 0154 6097 sbiw r28,16 |
152 0156 00F0 brlo .L42 |
153 0158 8091 0000 lds r24,Frame2.2414 |
154 015c 9091 0000 lds r25,(Frame2.2414)+1 |
155 0160 892B or r24,r25 |
156 0162 01F4 brne .L44 |
157 0164 1092 0000 sts NewPpmData,__zero_reg__ |
158 .L44: |
159 0168 1092 0000 sts (FrameCnt.2411)+1,__zero_reg__ |
160 016c 1092 0000 sts FrameCnt.2411,__zero_reg__ |
161 0170 1092 0000 sts (Frame2.2414)+1,__zero_reg__ |
162 0174 1092 0000 sts Frame2.2414,__zero_reg__ |
163 0178 1092 0000 sts (Sync.2410)+1,__zero_reg__ |
164 017c 1092 0000 sts Sync.2410,__zero_reg__ |
165 0180 00C0 rjmp .L42 |
166 .L48: |
167 0182 1092 0000 sts (ReSync.2413)+1,__zero_reg__ |
168 0186 1092 0000 sts ReSync.2413,__zero_reg__ |
169 018a 87E0 ldi r24,lo8(7) |
170 018c 90E0 ldi r25,hi8(7) |
171 018e 0E94 0000 call SetDelay |
172 0192 9093 0000 sts (FrameTimer.2415)+1,r25 |
173 0196 8093 0000 sts FrameTimer.2415,r24 |
174 019a 1092 0000 sts (FrameCnt.2411)+1,__zero_reg__ |
175 019e 1092 0000 sts FrameCnt.2411,__zero_reg__ |
176 01a2 1092 0000 sts (Sync.2410)+1,__zero_reg__ |
177 01a6 1092 0000 sts Sync.2410,__zero_reg__ |
178 01aa 1092 0000 sts (ByteHigh.2412)+1,__zero_reg__ |
179 01ae 1092 0000 sts ByteHigh.2412,__zero_reg__ |
180 01b2 00C0 rjmp .L46 |
181 .L53: |
182 01b4 81E0 ldi r24,lo8(1) |
183 01b6 90E0 ldi r25,hi8(1) |
184 01b8 9093 0000 sts (Sync.2410)+1,r25 |
185 01bc 8093 0000 sts Sync.2410,r24 |
186 01c0 C091 0000 lds r28,FrameCnt.2411 |
187 01c4 D091 0000 lds r29,(FrameCnt.2411)+1 |
188 01c8 2196 adiw r28,1 |
189 01ca D093 0000 sts (FrameCnt.2411)+1,r29 |
190 01ce C093 0000 sts FrameCnt.2411,r28 |
191 01d2 00C0 rjmp .L14 |
192 .L52: |
193 01d4 8823 tst r24 |
194 01d6 01F0 breq .+2 |
195 01d8 00C0 rjmp .L25 |
196 01da 82E0 ldi r24,lo8(2) |
197 01dc 90E0 ldi r25,hi8(2) |
198 01de 9093 0000 sts (Sync.2410)+1,r25 |
199 01e2 8093 0000 sts Sync.2410,r24 |
200 01e6 C091 0000 lds r28,FrameCnt.2411 |
201 01ea D091 0000 lds r29,(FrameCnt.2411)+1 |
202 01ee 2196 adiw r28,1 |
203 01f0 D093 0000 sts (FrameCnt.2411)+1,r29 |
204 01f4 C093 0000 sts FrameCnt.2411,r28 |
205 01f8 2091 0000 lds r18,ByteHigh.2412 |
206 01fc 3091 0000 lds r19,(ByteHigh.2412)+1 |
207 0200 F901 movw r30,r18 |
208 0202 F695 lsr r31 |
209 0204 E795 ror r30 |
210 0206 F695 lsr r31 |
211 0208 E795 ror r30 |
212 020a EF70 andi r30,lo8(15) |
213 020c F070 andi r31,hi8(15) |
214 020e 3196 adiw r30,1 |
215 0210 EB30 cpi r30,11 |
216 0212 F105 cpc r31,__zero_reg__ |
217 0214 00F0 brlo .+2 |
218 0216 00C0 rjmp .L14 |
219 0218 812F mov r24,r17 |
220 021a 90E0 ldi r25,lo8(0) |
221 021c 322F mov r19,r18 |
222 021e 2227 clr r18 |
223 0220 822B or r24,r18 |
224 0222 932B or r25,r19 |
225 0224 9370 andi r25,hi8(1023) |
226 0226 8050 subi r24,lo8(-(-512)) |
227 0228 9240 sbci r25,hi8(-(-512)) |
228 022a 63E0 ldi r22,lo8(3) |
229 022c 70E0 ldi r23,hi8(3) |
230 022e 0E94 0000 call __divmodhi4 |
231 0232 8F01 movw r16,r30 |
232 0234 000F lsl r16 |
233 0236 111F rol r17 |
234 0238 F801 movw r30,r16 |
235 023a E050 subi r30,lo8(-(PPM_in)) |
236 023c F040 sbci r31,hi8(-(PPM_in)) |
237 023e 8081 ld r24,Z |
238 0240 9181 ldd r25,Z+1 |
239 0242 9B01 movw r18,r22 |
240 0244 281B sub r18,r24 |
241 0246 390B sbc r19,r25 |
242 0248 C901 movw r24,r18 |
243 024a 37FD sbrc r19,7 |
244 024c 00C0 rjmp .L54 |
245 .L30: |
246 024e 0697 sbiw r24,6 |
247 0250 04F4 brge .L29 |
248 0252 8091 0000 lds r24,SenderOkay |
249 0256 883C cpi r24,lo8(-56) |
250 0258 00F0 brlo .+2 |
251 025a 00C0 rjmp .L32 |
252 025c 8091 0000 lds r24,SenderOkay |
253 0260 865F subi r24,lo8(-(10)) |
254 0262 8093 0000 sts SenderOkay,r24 |
255 .L29: |
256 0266 F801 movw r30,r16 |
257 0268 E050 subi r30,lo8(-(PPM_in)) |
258 026a F040 sbci r31,hi8(-(PPM_in)) |
259 026c 8081 ld r24,Z |
260 026e 9181 ldd r25,Z+1 |
261 0270 9C01 movw r18,r24 |
262 0272 220F lsl r18 |
263 0274 331F rol r19 |
264 0276 280F add r18,r24 |
265 0278 391F adc r19,r25 |
266 027a 260F add r18,r22 |
267 027c 371F adc r19,r23 |
268 027e 37FD sbrc r19,7 |
269 0280 00C0 rjmp .L55 |
270 .L34: |
271 0282 3595 asr r19 |
272 0284 2795 ror r18 |
273 0286 3595 asr r19 |
274 0288 2795 ror r18 |
275 028a CB01 movw r24,r22 |
276 028c 0196 adiw r24,1 |
277 028e 8217 cp r24,r18 |
278 0290 9307 cpc r25,r19 |
279 0292 04F0 brlt .+2 |
280 0294 00C0 rjmp .L35 |
281 0296 2150 subi r18,lo8(-(-1)) |
282 0298 3040 sbci r19,hi8(-(-1)) |
283 .L37: |
284 029a 8091 0000 lds r24,SenderOkay |
285 029e 843B cpi r24,lo8(-76) |
286 02a0 00F4 brsh .+2 |
287 02a2 00C0 rjmp .L39 |
288 02a4 F801 movw r30,r16 |
289 02a6 E050 subi r30,lo8(-(PPM_in)) |
290 02a8 F040 sbci r31,hi8(-(PPM_in)) |
291 02aa 8081 ld r24,Z |
292 02ac 9181 ldd r25,Z+1 |
293 02ae A901 movw r20,r18 |
294 02b0 481B sub r20,r24 |
295 02b2 590B sbc r21,r25 |
296 02b4 CA01 movw r24,r20 |
297 02b6 63E0 ldi r22,lo8(3) |
298 02b8 70E0 ldi r23,hi8(3) |
299 02ba 0E94 0000 call __divmodhi4 |
300 02be CB01 movw r24,r22 |
301 02c0 880F lsl r24 |
302 02c2 991F rol r25 |
303 02c4 860F add r24,r22 |
304 02c6 971F adc r25,r23 |
305 02c8 F801 movw r30,r16 |
306 02ca E050 subi r30,lo8(-(PPM_diff)) |
307 02cc F040 sbci r31,hi8(-(PPM_diff)) |
308 02ce 9183 std Z+1,r25 |
309 02d0 8083 st Z,r24 |
310 .L41: |
311 02d2 0050 subi r16,lo8(-(PPM_in)) |
312 02d4 1040 sbci r17,hi8(-(PPM_in)) |
313 02d6 F801 movw r30,r16 |
314 02d8 3183 std Z+1,r19 |
315 02da 2083 st Z,r18 |
316 02dc 00C0 rjmp .L14 |
317 .L50: |
318 02de 8823 tst r24 |
319 02e0 01F0 breq .+2 |
320 02e2 00C0 rjmp .L16 |
321 02e4 82E0 ldi r24,lo8(2) |
322 02e6 90E0 ldi r25,hi8(2) |
323 02e8 9093 0000 sts (Sync.2410)+1,r25 |
324 02ec 8093 0000 sts Sync.2410,r24 |
325 02f0 C091 0000 lds r28,FrameCnt.2411 |
326 02f4 D091 0000 lds r29,(FrameCnt.2411)+1 |
327 02f8 2196 adiw r28,1 |
328 02fa D093 0000 sts (FrameCnt.2411)+1,r29 |
329 02fe C093 0000 sts FrameCnt.2411,r28 |
330 0302 00C0 rjmp .L14 |
331 .L51: |
332 0304 8823 tst r24 |
333 0306 01F0 breq .+2 |
334 0308 00C0 rjmp .L19 |
335 030a 812F mov r24,r17 |
336 030c 90E0 ldi r25,lo8(0) |
337 030e 9093 0000 sts (ByteHigh.2412)+1,r25 |
338 0312 8093 0000 sts ByteHigh.2412,r24 |
339 0316 2091 0000 lds r18,FrameCnt.2411 |
340 031a 3091 0000 lds r19,(FrameCnt.2411)+1 |
341 031e 2230 cpi r18,2 |
342 0320 3105 cpc r19,__zero_reg__ |
343 0322 01F0 breq .L56 |
344 .L22: |
345 0324 83E0 ldi r24,lo8(3) |
346 0326 90E0 ldi r25,hi8(3) |
347 0328 9093 0000 sts (Sync.2410)+1,r25 |
348 032c 8093 0000 sts Sync.2410,r24 |
349 0330 E901 movw r28,r18 |
350 0332 2196 adiw r28,1 |
351 0334 D093 0000 sts (FrameCnt.2411)+1,r29 |
352 0338 C093 0000 sts FrameCnt.2411,r28 |
353 033c 00C0 rjmp .L14 |
354 .L56: |
355 033e 1092 0000 sts (Frame2.2414)+1,__zero_reg__ |
356 0342 1092 0000 sts Frame2.2414,__zero_reg__ |
357 0346 17FF sbrs r17,7 |
358 0348 00C0 rjmp .L22 |
359 034a 81E0 ldi r24,lo8(1) |
360 034c 90E0 ldi r25,hi8(1) |
361 034e 9093 0000 sts (Frame2.2414)+1,r25 |
362 0352 8093 0000 sts Frame2.2414,r24 |
363 0356 00C0 rjmp .L22 |
364 .L39: |
365 0358 F801 movw r30,r16 |
366 035a E050 subi r30,lo8(-(PPM_diff)) |
367 035c F040 sbci r31,hi8(-(PPM_diff)) |
368 035e 1182 std Z+1,__zero_reg__ |
369 0360 1082 st Z,__zero_reg__ |
370 0362 00C0 rjmp .L41 |
371 .L35: |
372 0364 6150 subi r22,lo8(-(-1)) |
373 0366 7040 sbci r23,hi8(-(-1)) |
374 0368 2617 cp r18,r22 |
375 036a 3707 cpc r19,r23 |
376 036c 04F0 brlt .+2 |
377 036e 00C0 rjmp .L37 |
378 0370 2F5F subi r18,lo8(-(1)) |
379 0372 3F4F sbci r19,hi8(-(1)) |
380 0374 00C0 rjmp .L37 |
381 .L32: |
382 0376 88EC ldi r24,lo8(-56) |
383 0378 8093 0000 sts SenderOkay,r24 |
384 037c 00C0 rjmp .L29 |
385 .L55: |
386 037e 2D5F subi r18,lo8(-(3)) |
387 0380 3F4F sbci r19,hi8(-(3)) |
388 0382 00C0 rjmp .L34 |
389 .L54: |
390 0384 9095 com r25 |
391 0386 8195 neg r24 |
392 0388 9F4F sbci r25,lo8(-1) |
393 038a 00C0 rjmp .L30 |
394 .L46: |
395 /* epilogue: frame size=0 */ |
396 038c FF91 pop r31 |
397 038e EF91 pop r30 |
398 0390 DF91 pop r29 |
399 0392 CF91 pop r28 |
400 0394 BF91 pop r27 |
401 0396 AF91 pop r26 |
402 0398 9F91 pop r25 |
403 039a 8F91 pop r24 |
404 039c 7F91 pop r23 |
405 039e 6F91 pop r22 |
406 03a0 5F91 pop r21 |
407 03a2 4F91 pop r20 |
408 03a4 3F91 pop r19 |
409 03a6 2F91 pop r18 |
410 03a8 1F91 pop r17 |
411 03aa 0F91 pop r16 |
412 03ac 0F90 pop __tmp_reg__ |
413 03ae 0FBE out __SREG__,__tmp_reg__ |
414 03b0 0F90 pop __tmp_reg__ |
415 03b2 1F90 pop __zero_reg__ |
416 03b4 1895 reti |
417 /* epilogue end (size=21) */ |
418 /* function __vector_28 size 393 (351) */ |
420 .lcomm FrameTimer.2415,2 |
421 .lcomm Frame2.2414,2 |
422 .data |
425 ReSync.2413: |
426 0000 0100 .word 1 |
427 .lcomm ByteHigh.2412,2 |
428 .lcomm FrameCnt.2411,2 |
429 .lcomm Sync.2410,2 |
430 /* File "Spectrum.c": code 479 = 0x01df ( 436), prologues 21, epilogues 22 */ |
DEFINED SYMBOLS |
*ABS*:00000000 Spectrum.c |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:2 *ABS*:0000003f __SREG__ |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:3 *ABS*:0000003e __SP_H__ |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:4 *ABS*:0000003d __SP_L__ |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:5 *ABS*:00000000 __tmp_reg__ |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:6 *ABS*:00000001 __zero_reg__ |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:12 .text:00000000 Uart1Init |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:77 .text:000000ac __vector_28 |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:425 .data:00000000 ReSync.2413 |
.bss:00000000 FrameTimer.2415 |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:428 .bss:00000008 Sync.2410 |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:427 .bss:00000006 FrameCnt.2411 |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:420 .bss:00000002 Frame2.2414 |
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccAugVGG.s:421 .bss:00000004 ByteHigh.2412 |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
CheckDelay |
SetDelay |
NewPpmData |
__divmodhi4 |
PPM_in |
SenderOkay |
PPM_diff |