0,0 → 1,1368 |
1 .file "eeprom.c" |
2 .arch atmega1284p |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .text |
12 eeprom_read_byte: |
13 /* prologue: frame size=0 */ |
14 /* prologue end (size=0) */ |
15 .L2: |
16 0000 F999 sbic 63-0x20,1 |
17 0002 00C0 rjmp .L2 |
18 0004 92BD out (65)+1-0x20,r25 |
19 0006 81BD out 65-0x20,r24 |
20 /* #APP */ |
21 /* START EEPROM READ CRITICAL SECTION */ |
22 0008 F89A sbi 31, 0 |
23 000a 80B5 in r24, 32 |
24 /* END EEPROM READ CRITICAL SECTION */ |
25 |
26 /* #NOAPP */ |
27 000c 9927 clr r25 |
28 /* epilogue: frame size=0 */ |
29 000e 0895 ret |
30 /* epilogue end (size=1) */ |
31 /* function eeprom_read_byte size 16 (15) */ |
34 eeprom_write_byte: |
35 /* prologue: frame size=0 */ |
36 /* prologue end (size=0) */ |
37 .L6: |
38 0010 F999 sbic 63-0x20,1 |
39 0012 00C0 rjmp .L6 |
40 0014 1FBA out 63-0x20,__zero_reg__ |
41 0016 92BD out (65)+1-0x20,r25 |
42 0018 81BD out 65-0x20,r24 |
43 001a 60BD out 64-0x20,r22 |
44 /* #APP */ |
45 /* START EEPROM WRITE CRITICAL SECTION */ |
46 001c 0FB6 in r0, 63 |
47 001e F894 cli |
48 0020 FA9A sbi 31, 2 |
49 0022 F99A sbi 31, 1 |
50 0024 0FBE out 63, r0 |
51 /* END EEPROM WRITE CRITICAL SECTION */ |
52 /* #NOAPP */ |
53 /* epilogue: frame size=0 */ |
54 0026 0895 ret |
55 /* epilogue end (size=1) */ |
56 /* function eeprom_write_byte size 21 (20) */ |
58 .global RAM_Checksum |
60 RAM_Checksum: |
61 /* prologue: frame size=0 */ |
62 /* prologue end (size=0) */ |
63 0028 4AEA ldi r20,lo8(-86) |
64 002a 20E0 ldi r18,lo8(0) |
65 002c 30E0 ldi r19,hi8(0) |
66 002e 2617 cp r18,r22 |
67 0030 3707 cpc r19,r23 |
68 0032 00F4 brsh .L15 |
69 0034 FC01 movw r30,r24 |
70 .L13: |
71 0036 8191 ld r24,Z+ |
72 0038 480F add r20,r24 |
73 003a 2F5F subi r18,lo8(-(1)) |
74 003c 3F4F sbci r19,hi8(-(1)) |
75 003e 2617 cp r18,r22 |
76 0040 3707 cpc r19,r23 |
77 0042 00F0 brlo .L13 |
78 .L15: |
79 0044 842F mov r24,r20 |
80 0046 9927 clr r25 |
81 /* epilogue: frame size=0 */ |
82 0048 0895 ret |
83 /* epilogue end (size=1) */ |
84 /* function RAM_Checksum size 17 (16) */ |
86 .global EEProm_Checksum |
88 EEProm_Checksum: |
89 /* prologue: frame size=0 */ |
90 /* prologue end (size=0) */ |
91 004a EAEA ldi r30,lo8(-86) |
92 004c 40E0 ldi r20,lo8(0) |
93 004e 50E0 ldi r21,hi8(0) |
94 0050 4617 cp r20,r22 |
95 0052 5707 cpc r21,r23 |
96 0054 00F4 brsh .L26 |
97 0056 9C01 movw r18,r24 |
98 .L30: |
99 0058 F999 sbic 63-0x20,1 |
100 005a 00C0 rjmp .L30 |
101 005c 32BD out (65)+1-0x20,r19 |
102 005e 21BD out 65-0x20,r18 |
103 /* #APP */ |
104 /* START EEPROM READ CRITICAL SECTION */ |
105 0060 F89A sbi 31, 0 |
106 0062 80B5 in r24, 32 |
107 /* END EEPROM READ CRITICAL SECTION */ |
108 |
109 /* #NOAPP */ |
110 0064 E80F add r30,r24 |
111 0066 4F5F subi r20,lo8(-(1)) |
112 0068 5F4F sbci r21,hi8(-(1)) |
113 006a 2F5F subi r18,lo8(-(1)) |
114 006c 3F4F sbci r19,hi8(-(1)) |
115 006e 4617 cp r20,r22 |
116 0070 5707 cpc r21,r23 |
117 0072 00F0 brlo .L30 |
118 .L26: |
119 0074 8E2F mov r24,r30 |
120 0076 9927 clr r25 |
121 /* epilogue: frame size=0 */ |
122 0078 0895 ret |
123 /* epilogue end (size=1) */ |
124 /* function EEProm_Checksum size 32 (31) */ |
126 .global ParamSet_DefaultStickMapping |
128 ParamSet_DefaultStickMapping: |
129 /* prologue: frame size=0 */ |
130 /* prologue end (size=0) */ |
131 007a 81E0 ldi r24,lo8(1) |
132 007c 8093 0000 sts EE_Parameter+3,r24 |
133 0080 82E0 ldi r24,lo8(2) |
134 0082 8093 0000 sts EE_Parameter+2,r24 |
135 0086 83E0 ldi r24,lo8(3) |
136 0088 8093 0000 sts EE_Parameter+1,r24 |
137 008c 84E0 ldi r24,lo8(4) |
138 008e 8093 0000 sts EE_Parameter+4,r24 |
139 0092 85E0 ldi r24,lo8(5) |
140 0094 8093 0000 sts EE_Parameter+5,r24 |
141 0098 86E0 ldi r24,lo8(6) |
142 009a 8093 0000 sts EE_Parameter+6,r24 |
143 009e 87E0 ldi r24,lo8(7) |
144 00a0 8093 0000 sts EE_Parameter+7,r24 |
145 00a4 88E0 ldi r24,lo8(8) |
146 00a6 8093 0000 sts EE_Parameter+8,r24 |
147 00aa 89E0 ldi r24,lo8(9) |
148 00ac 8093 0000 sts EE_Parameter+9,r24 |
149 00b0 8AE0 ldi r24,lo8(10) |
150 00b2 8093 0000 sts EE_Parameter+10,r24 |
151 00b6 8BE0 ldi r24,lo8(11) |
152 00b8 8093 0000 sts EE_Parameter+11,r24 |
153 00bc 8CE0 ldi r24,lo8(12) |
154 00be 8093 0000 sts EE_Parameter+12,r24 |
155 /* epilogue: frame size=0 */ |
156 00c2 0895 ret |
157 /* epilogue end (size=1) */ |
158 /* function ParamSet_DefaultStickMapping size 37 (36) */ |
160 .global CommonDefaults |
162 CommonDefaults: |
163 /* prologue: frame size=0 */ |
164 /* prologue end (size=0) */ |
165 00c4 88E5 ldi r24,lo8(88) |
166 00c6 8093 0000 sts EE_Parameter,r24 |
167 00ca 8091 0000 lds r24,PlatinenVersion |
168 00ce 8431 cpi r24,lo8(20) |
169 00d0 00F0 brlo .L33 |
170 00d2 8AE0 ldi r24,lo8(10) |
171 00d4 8093 0000 sts EE_Parameter+32,r24 |
172 00d8 1092 0000 sts EE_Parameter+68,__zero_reg__ |
173 00dc 8BE1 ldi r24,lo8(27) |
174 00de 8093 0000 sts EE_Parameter+28,r24 |
175 00e2 8EE4 ldi r24,lo8(78) |
176 00e4 00C0 rjmp .L35 |
177 .L33: |
178 00e6 83E0 ldi r24,lo8(3) |
179 00e8 8093 0000 sts EE_Parameter+32,r24 |
180 00ec 80E2 ldi r24,lo8(32) |
181 00ee 8093 0000 sts EE_Parameter+68,r24 |
182 00f2 8EE1 ldi r24,lo8(30) |
183 00f4 8093 0000 sts EE_Parameter+28,r24 |
184 00f8 85E5 ldi r24,lo8(85) |
185 .L35: |
186 00fa 8093 0000 sts EE_Parameter+65,r24 |
187 00fe 8093 0000 sts EE_Parameter+66,r24 |
188 0102 80E2 ldi r24,lo8(32) |
189 0104 8093 0000 sts EE_Parameter+67,r24 |
190 0108 8AE6 ldi r24,lo8(106) |
191 010a 8093 0000 sts EE_Parameter+13,r24 |
192 010e 82E2 ldi r24,lo8(34) |
193 0110 8093 0000 sts EE_Parameter+106,r24 |
194 0114 64E0 ldi r22,lo8(4) |
195 0116 6093 0000 sts EE_Parameter+39,r22 |
196 011a 1092 0000 sts EE_Parameter+99,__zero_reg__ |
197 011e 1092 0000 sts EE_Parameter+96,__zero_reg__ |
198 0122 48E0 ldi r20,lo8(8) |
199 0124 4093 0000 sts EE_Parameter+26,r20 |
200 0128 56EE ldi r21,lo8(-26) |
201 012a 5093 0000 sts EE_Parameter+27,r21 |
202 012e 30E4 ldi r19,lo8(64) |
203 0130 3093 0000 sts EE_Parameter+29,r19 |
204 0134 9EE1 ldi r25,lo8(30) |
205 0136 9093 0000 sts EE_Parameter+14,r25 |
206 013a 8FEF ldi r24,lo8(-1) |
207 013c 8093 0000 sts EE_Parameter+16,r24 |
208 0140 2FE0 ldi r18,lo8(15) |
209 0142 2093 0000 sts EE_Parameter+17,r18 |
210 0146 9093 0000 sts EE_Parameter+15,r25 |
211 014a 1092 0000 sts EE_Parameter+19,__zero_reg__ |
212 014e 4093 0000 sts EE_Parameter+20,r20 |
213 0152 3093 0000 sts EE_Parameter+21,r19 |
214 0156 1092 0000 sts EE_Parameter+22,__zero_reg__ |
215 015a 2093 0000 sts EE_Parameter+18,r18 |
216 015e 1092 0000 sts EE_Parameter+41,__zero_reg__ |
217 0162 1092 0000 sts EE_Parameter+42,__zero_reg__ |
218 0166 1092 0000 sts EE_Parameter+43,__zero_reg__ |
219 016a 1092 0000 sts EE_Parameter+44,__zero_reg__ |
220 016e 1092 0000 sts EE_Parameter+70,__zero_reg__ |
221 0172 1092 0000 sts EE_Parameter+71,__zero_reg__ |
222 0176 1092 0000 sts EE_Parameter+72,__zero_reg__ |
223 017a 1092 0000 sts EE_Parameter+73,__zero_reg__ |
224 017e 90E8 ldi r25,lo8(-128) |
225 0180 9093 0000 sts EE_Parameter+45,r25 |
226 0184 32E3 ldi r19,lo8(50) |
227 0186 3093 0000 sts EE_Parameter+46,r19 |
228 018a 82E0 ldi r24,lo8(2) |
229 018c 8093 0000 sts EE_Parameter+105,r24 |
230 0190 2093 0000 sts EE_Parameter+47,r18 |
231 0194 5093 0000 sts EE_Parameter+48,r21 |
232 0198 6093 0000 sts EE_Parameter+53,r22 |
233 019c 8DE7 ldi r24,lo8(125) |
234 019e 8093 0000 sts EE_Parameter+56,r24 |
235 01a2 8093 0000 sts EE_Parameter+57,r24 |
236 01a6 8093 0000 sts EE_Parameter+58,r24 |
237 01aa 9093 0000 sts EE_Parameter+49,r25 |
238 01ae 25E5 ldi r18,lo8(85) |
239 01b0 2093 0000 sts EE_Parameter+50,r18 |
240 01b4 86E4 ldi r24,lo8(70) |
241 01b6 8093 0000 sts EE_Parameter+51,r24 |
242 01ba 8CED ldi r24,lo8(-36) |
243 01bc 8093 0000 sts EE_Parameter+52,r24 |
244 01c0 8CE3 ldi r24,lo8(60) |
245 01c2 8093 0000 sts EE_Parameter+54,r24 |
246 01c6 1092 0000 sts EE_Parameter+55,__zero_reg__ |
247 01ca 8FE5 ldi r24,lo8(95) |
248 01cc 8093 0000 sts EE_Parameter+74,r24 |
249 01d0 83EF ldi r24,lo8(-13) |
250 01d2 8093 0000 sts EE_Parameter+76,r24 |
251 01d6 8AEA ldi r24,lo8(-86) |
252 01d8 8093 0000 sts EE_Parameter+78,r24 |
253 01dc 8093 0000 sts EE_Parameter+79,r24 |
254 01e0 84E1 ldi r24,lo8(20) |
255 01e2 8093 0000 sts EE_Parameter+75,r24 |
256 01e6 8093 0000 sts EE_Parameter+77,r24 |
257 01ea 3093 0000 sts EE_Parameter+59,r19 |
258 01ee 9AE5 ldi r25,lo8(90) |
259 01f0 9093 0000 sts EE_Parameter+60,r25 |
260 01f4 3093 0000 sts EE_Parameter+61,r19 |
261 01f8 1092 0000 sts EE_Parameter+104,__zero_reg__ |
262 01fc 8EEF ldi r24,lo8(-2) |
263 01fe 8093 0000 sts EE_Parameter+80,r24 |
264 0202 84E6 ldi r24,lo8(100) |
265 0204 8093 0000 sts EE_Parameter+81,r24 |
266 0208 9093 0000 sts EE_Parameter+82,r25 |
267 020c 9093 0000 sts EE_Parameter+83,r25 |
268 0210 9093 0000 sts EE_Parameter+84,r25 |
269 0214 8BE4 ldi r24,lo8(75) |
270 0216 8093 0000 sts EE_Parameter+85,r24 |
271 021a 2093 0000 sts EE_Parameter+86,r18 |
272 021e 8093 0000 sts EE_Parameter+87,r24 |
273 0222 1092 0000 sts EE_Parameter+88,__zero_reg__ |
274 0226 86E0 ldi r24,lo8(6) |
275 0228 8093 0000 sts EE_Parameter+89,r24 |
276 022c 4093 0000 sts EE_Parameter+90,r20 |
277 0230 9093 0000 sts EE_Parameter+91,r25 |
278 0234 8AE2 ldi r24,lo8(42) |
279 0236 8093 0000 sts EE_Parameter+92,r24 |
280 023a 85EF ldi r24,lo8(-11) |
281 023c 8093 0000 sts EE_Parameter+93,r24 |
282 0240 8CE8 ldi r24,lo8(-116) |
283 0242 8093 0000 sts EE_Parameter+94,r24 |
284 0246 85E0 ldi r24,lo8(5) |
285 0248 8093 0000 sts EE_Parameter+95,r24 |
286 024c 1092 0000 sts EE_Parameter+97,__zero_reg__ |
287 0250 1092 0000 sts EE_Parameter+98,__zero_reg__ |
288 0254 81E2 ldi r24,lo8(33) |
289 0256 8093 0000 sts EE_Parameter+36,r24 |
290 025a 8DE2 ldi r24,lo8(45) |
291 025c 8093 0000 sts EE_Parameter+37,r24 |
292 0260 9093 0000 sts EE_Parameter+38,r25 |
293 0264 1092 0000 sts EE_Parameter+100,__zero_reg__ |
294 0268 1092 0000 sts EE_Parameter+101,__zero_reg__ |
295 026c 1092 0000 sts EE_Parameter+102,__zero_reg__ |
296 0270 86E9 ldi r24,lo8(-106) |
297 0272 8093 0000 sts EE_Parameter+103,r24 |
298 0276 9093 0000 sts EE_Parameter+62,r25 |
299 027a 87E3 ldi r24,lo8(55) |
300 027c 8093 0000 sts EE_Parameter+63,r24 |
301 /* epilogue: frame size=0 */ |
302 0280 0895 ret |
303 /* epilogue end (size=1) */ |
304 /* function CommonDefaults size 223 (222) */ |
306 .data |
307 .LC0: |
308 0000 4661 7374 .string "Fast" |
308 00 |
309 0005 00 .string "" |
310 .text |
311 .global ParamSet_DefaultSet1 |
313 ParamSet_DefaultSet1: |
314 /* prologue: frame size=0 */ |
315 0282 CF93 push r28 |
316 0284 DF93 push r29 |
317 /* prologue end (size=2) */ |
318 0286 0E94 0000 call CommonDefaults |
319 028a 8AE0 ldi r24,lo8(10) |
320 028c 8093 0000 sts EE_Parameter+23,r24 |
321 0290 80E1 ldi r24,lo8(16) |
322 0292 8093 0000 sts EE_Parameter+24,r24 |
323 0296 26E0 ldi r18,lo8(6) |
324 0298 2093 0000 sts EE_Parameter+25,r18 |
325 029c 9AE5 ldi r25,lo8(90) |
326 029e 9093 0000 sts EE_Parameter+30,r25 |
327 02a2 88E7 ldi r24,lo8(120) |
328 02a4 8093 0000 sts EE_Parameter+31,r24 |
329 02a8 9093 0000 sts EE_Parameter+33,r25 |
330 02ac 8093 0000 sts EE_Parameter+34,r24 |
331 02b0 2093 0000 sts EE_Parameter+35,r18 |
332 02b4 80E2 ldi r24,lo8(32) |
333 02b6 8093 0000 sts EE_Parameter+40,r24 |
334 02ba 8CE3 ldi r24,lo8(60) |
335 02bc 8093 0000 sts EE_Parameter+64,r24 |
336 02c0 8BE4 ldi r24,lo8(75) |
337 02c2 8093 0000 sts EE_Parameter+69,r24 |
338 02c6 A0E0 ldi r26,lo8(EE_Parameter+107) |
339 02c8 B0E0 ldi r27,hi8(EE_Parameter+107) |
340 02ca 8CE0 ldi r24,lo8(12) |
341 02cc E0E0 ldi r30,lo8(.LC0) |
342 02ce F0E0 ldi r31,hi8(.LC0) |
343 02d0 ED01 movw r28,r26 |
344 02d2 0190 ld __tmp_reg__,Z+ |
345 02d4 0992 st Y+,__tmp_reg__ |
346 02d6 8A95 dec r24 |
347 02d8 01F4 brne .-8 |
348 02da 67E7 ldi r22,lo8(119) |
349 02dc 70E0 ldi r23,hi8(119) |
350 02de CD01 movw r24,r26 |
351 02e0 8B56 subi r24,lo8(-(-107)) |
352 02e2 9040 sbci r25,hi8(-(-107)) |
353 02e4 0E94 0000 call RAM_Checksum |
354 02e8 8093 0000 sts EE_Parameter+119,r24 |
355 /* epilogue: frame size=0 */ |
356 02ec DF91 pop r29 |
357 02ee CF91 pop r28 |
358 02f0 0895 ret |
359 /* epilogue end (size=3) */ |
360 /* function ParamSet_DefaultSet1 size 56 (51) */ |
362 .data |
363 .LC1: |
364 0006 4E6F 726D .string "Normal" |
364 616C 00 |
365 000d 00 .string "" |
366 .text |
367 .global ParamSet_DefaultSet2 |
369 ParamSet_DefaultSet2: |
370 /* prologue: frame size=0 */ |
371 02f2 CF93 push r28 |
372 02f4 DF93 push r29 |
373 /* prologue end (size=2) */ |
374 02f6 0E94 0000 call CommonDefaults |
375 02fa 88E0 ldi r24,lo8(8) |
376 02fc 8093 0000 sts EE_Parameter+23,r24 |
377 0300 30E1 ldi r19,lo8(16) |
378 0302 3093 0000 sts EE_Parameter+24,r19 |
379 0306 26E0 ldi r18,lo8(6) |
380 0308 2093 0000 sts EE_Parameter+25,r18 |
381 030c 94E6 ldi r25,lo8(100) |
382 030e 9093 0000 sts EE_Parameter+30,r25 |
383 0312 88E7 ldi r24,lo8(120) |
384 0314 8093 0000 sts EE_Parameter+31,r24 |
385 0318 9093 0000 sts EE_Parameter+33,r25 |
386 031c 8093 0000 sts EE_Parameter+34,r24 |
387 0320 2093 0000 sts EE_Parameter+35,r18 |
388 0324 3093 0000 sts EE_Parameter+40,r19 |
389 0328 86E4 ldi r24,lo8(70) |
390 032a 8093 0000 sts EE_Parameter+64,r24 |
391 032e 8093 0000 sts EE_Parameter+69,r24 |
392 0332 A0E0 ldi r26,lo8(EE_Parameter+107) |
393 0334 B0E0 ldi r27,hi8(EE_Parameter+107) |
394 0336 8CE0 ldi r24,lo8(12) |
395 0338 E0E0 ldi r30,lo8(.LC1) |
396 033a F0E0 ldi r31,hi8(.LC1) |
397 033c ED01 movw r28,r26 |
398 033e 0190 ld __tmp_reg__,Z+ |
399 0340 0992 st Y+,__tmp_reg__ |
400 0342 8A95 dec r24 |
401 0344 01F4 brne .-8 |
402 0346 67E7 ldi r22,lo8(119) |
403 0348 70E0 ldi r23,hi8(119) |
404 034a CD01 movw r24,r26 |
405 034c 8B56 subi r24,lo8(-(-107)) |
406 034e 9040 sbci r25,hi8(-(-107)) |
407 0350 0E94 0000 call RAM_Checksum |
408 0354 8093 0000 sts EE_Parameter+119,r24 |
409 /* epilogue: frame size=0 */ |
410 0358 DF91 pop r29 |
411 035a CF91 pop r28 |
412 035c 0895 ret |
413 /* epilogue end (size=3) */ |
414 /* function ParamSet_DefaultSet2 size 54 (49) */ |
416 .data |
417 .LC2: |
418 000e 4561 7379 .string "Easy" |
418 00 |
419 0013 00 .string "" |
420 .text |
421 .global ParamSet_DefaultSet3 |
423 ParamSet_DefaultSet3: |
424 /* prologue: frame size=0 */ |
425 035e CF93 push r28 |
426 0360 DF93 push r29 |
427 /* prologue end (size=2) */ |
428 0362 0E94 0000 call CommonDefaults |
429 0366 26E0 ldi r18,lo8(6) |
430 0368 2093 0000 sts EE_Parameter+23,r18 |
431 036c 8AE0 ldi r24,lo8(10) |
432 036e 8093 0000 sts EE_Parameter+24,r24 |
433 0372 84E0 ldi r24,lo8(4) |
434 0374 8093 0000 sts EE_Parameter+25,r24 |
435 0378 94E6 ldi r25,lo8(100) |
436 037a 9093 0000 sts EE_Parameter+30,r25 |
437 037e 88E7 ldi r24,lo8(120) |
438 0380 8093 0000 sts EE_Parameter+31,r24 |
439 0384 9093 0000 sts EE_Parameter+33,r25 |
440 0388 8093 0000 sts EE_Parameter+34,r24 |
441 038c 2093 0000 sts EE_Parameter+35,r18 |
442 0390 80E1 ldi r24,lo8(16) |
443 0392 8093 0000 sts EE_Parameter+40,r24 |
444 0396 86E4 ldi r24,lo8(70) |
445 0398 8093 0000 sts EE_Parameter+64,r24 |
446 039c 8093 0000 sts EE_Parameter+69,r24 |
447 03a0 A0E0 ldi r26,lo8(EE_Parameter+107) |
448 03a2 B0E0 ldi r27,hi8(EE_Parameter+107) |
449 03a4 8CE0 ldi r24,lo8(12) |
450 03a6 E0E0 ldi r30,lo8(.LC2) |
451 03a8 F0E0 ldi r31,hi8(.LC2) |
452 03aa ED01 movw r28,r26 |
453 03ac 0190 ld __tmp_reg__,Z+ |
454 03ae 0992 st Y+,__tmp_reg__ |
455 03b0 8A95 dec r24 |
456 03b2 01F4 brne .-8 |
457 03b4 67E7 ldi r22,lo8(119) |
458 03b6 70E0 ldi r23,hi8(119) |
459 03b8 CD01 movw r24,r26 |
460 03ba 8B56 subi r24,lo8(-(-107)) |
461 03bc 9040 sbci r25,hi8(-(-107)) |
462 03be 0E94 0000 call RAM_Checksum |
463 03c2 8093 0000 sts EE_Parameter+119,r24 |
464 /* epilogue: frame size=0 */ |
465 03c6 DF91 pop r29 |
466 03c8 CF91 pop r28 |
467 03ca 0895 ret |
468 /* epilogue end (size=3) */ |
469 /* function ParamSet_DefaultSet3 size 55 (50) */ |
471 .global GetParamByte |
473 GetParamByte: |
474 /* prologue: frame size=0 */ |
475 /* prologue end (size=0) */ |
476 .L40: |
477 03cc F999 sbic 63-0x20,1 |
478 03ce 00C0 rjmp .L40 |
479 03d0 92BD out (65)+1-0x20,r25 |
480 03d2 81BD out 65-0x20,r24 |
481 /* #APP */ |
482 /* START EEPROM READ CRITICAL SECTION */ |
483 03d4 F89A sbi 31, 0 |
484 03d6 80B5 in r24, 32 |
485 /* END EEPROM READ CRITICAL SECTION */ |
486 |
487 /* #NOAPP */ |
488 03d8 9927 clr r25 |
489 /* epilogue: frame size=0 */ |
490 03da 0895 ret |
491 /* epilogue end (size=1) */ |
492 /* function GetParamByte size 16 (15) */ |
494 .global SetParamByte |
496 SetParamByte: |
497 /* prologue: frame size=0 */ |
498 /* prologue end (size=0) */ |
499 .L45: |
500 03dc F999 sbic 63-0x20,1 |
501 03de 00C0 rjmp .L45 |
502 03e0 1FBA out 63-0x20,__zero_reg__ |
503 03e2 92BD out (65)+1-0x20,r25 |
504 03e4 81BD out 65-0x20,r24 |
505 03e6 60BD out 64-0x20,r22 |
506 /* #APP */ |
507 /* START EEPROM WRITE CRITICAL SECTION */ |
508 03e8 0FB6 in r0, 63 |
509 03ea F894 cli |
510 03ec FA9A sbi 31, 2 |
511 03ee F99A sbi 31, 1 |
512 03f0 0FBE out 63, r0 |
513 /* END EEPROM WRITE CRITICAL SECTION */ |
514 /* #NOAPP */ |
515 /* epilogue: frame size=0 */ |
516 03f2 0895 ret |
517 /* epilogue end (size=1) */ |
518 /* function SetParamByte size 21 (20) */ |
520 .global GetParamWord |
522 GetParamWord: |
523 /* prologue: frame size=0 */ |
524 /* prologue end (size=0) */ |
525 03f4 60E0 ldi r22,lo8(pm(eeprom_read_byte)) |
526 03f6 70E0 ldi r23,hi8(pm(eeprom_read_byte)) |
527 03f8 0E94 0000 call __eerd_word |
528 /* epilogue: frame size=0 */ |
529 03fc 0895 ret |
530 /* epilogue end (size=1) */ |
531 /* function GetParamWord size 5 (4) */ |
533 .global SetParamWord |
535 SetParamWord: |
536 /* prologue: frame size=0 */ |
537 /* prologue end (size=0) */ |
538 03fe 40E0 ldi r20,lo8(pm(eeprom_write_byte)) |
539 0400 50E0 ldi r21,hi8(pm(eeprom_write_byte)) |
540 0402 0E94 0000 call __eewr_word |
541 /* epilogue: frame size=0 */ |
542 0406 0895 ret |
543 /* epilogue end (size=1) */ |
544 /* function SetParamWord size 5 (4) */ |
546 .global ParamSet_ReadFromEEProm |
548 ParamSet_ReadFromEEProm: |
549 /* prologue: frame size=0 */ |
550 0408 EF92 push r14 |
551 040a FF92 push r15 |
552 040c 0F93 push r16 |
553 040e 1F93 push r17 |
554 0410 CF93 push r28 |
555 /* prologue end (size=5) */ |
556 0412 C82F mov r28,r24 |
557 0414 8150 subi r24,lo8(-(-1)) |
558 0416 8530 cpi r24,lo8(5) |
559 0418 00F0 brlo .L54 |
560 041a C3E0 ldi r28,lo8(3) |
561 .L54: |
562 041c 88E7 ldi r24,lo8(120) |
563 041e C89F mul r28,r24 |
564 0420 8001 movw r16,r0 |
565 0422 1124 clr r1 |
566 0424 8CEE ldi r24,lo8(-20) |
567 0426 E82E mov r14,r24 |
568 0428 8FEF ldi r24,hi8(-20) |
569 042a F82E mov r15,r24 |
570 042c E00E add r14,r16 |
571 042e F11E adc r15,r17 |
572 0430 67E7 ldi r22,lo8(119) |
573 0432 70E0 ldi r23,hi8(119) |
574 0434 C701 movw r24,r14 |
575 0436 0E94 0000 call EEProm_Checksum |
576 043a 682F mov r22,r24 |
577 043c 9801 movw r18,r16 |
578 043e 2D59 subi r18,lo8(-(99)) |
579 0440 3F4F sbci r19,hi8(-(99)) |
580 .L56: |
581 0442 8FB3 in r24,63-0x20 |
582 0444 9927 clr r25 |
583 0446 AC01 movw r20,r24 |
584 0448 4270 andi r20,lo8(2) |
585 044a 5070 andi r21,hi8(2) |
586 044c 81FD sbrc r24,1 |
587 044e 00C0 rjmp .L56 |
588 0450 32BD out (65)+1-0x20,r19 |
589 0452 21BD out 65-0x20,r18 |
590 /* #APP */ |
591 /* START EEPROM READ CRITICAL SECTION */ |
592 0454 F89A sbi 31, 0 |
593 0456 80B5 in r24, 32 |
594 /* END EEPROM READ CRITICAL SECTION */ |
595 |
596 /* #NOAPP */ |
597 0458 8617 cp r24,r22 |
598 045a 01F0 breq .L61 |
599 045c CA01 movw r24,r20 |
600 045e 00C0 rjmp .L53 |
601 .L61: |
602 0460 8FB3 in r24,63-0x20 |
603 0462 9927 clr r25 |
604 0464 9C01 movw r18,r24 |
605 0466 2270 andi r18,lo8(2) |
606 0468 3070 andi r19,hi8(2) |
607 046a 81FD sbrc r24,1 |
608 046c 00C0 rjmp .L61 |
609 046e F2BC out (65)+1-0x20,r15 |
610 0470 E1BC out 65-0x20,r14 |
611 /* #APP */ |
612 /* START EEPROM READ CRITICAL SECTION */ |
613 0472 F89A sbi 31, 0 |
614 0474 80B5 in r24, 32 |
615 /* END EEPROM READ CRITICAL SECTION */ |
616 |
617 /* #NOAPP */ |
618 0476 8835 cpi r24,lo8(88) |
619 0478 01F0 breq .L60 |
620 047a C901 movw r24,r18 |
621 047c 00C0 rjmp .L53 |
622 .L60: |
623 047e 88E7 ldi r24,lo8(120) |
624 0480 C89F mul r28,r24 |
625 0482 C001 movw r24,r0 |
626 0484 1124 clr r1 |
627 0486 4497 sbiw r24,20 |
628 0488 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
629 048a 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
630 048c 48E7 ldi r20,lo8(120) |
631 048e 50E0 ldi r21,hi8(120) |
632 0490 BC01 movw r22,r24 |
633 0492 80E0 ldi r24,lo8(EE_Parameter) |
634 0494 90E0 ldi r25,hi8(EE_Parameter) |
635 0496 0E94 0000 call __eerd_block |
636 049a 0E94 0000 call LED_Init |
637 049e 81E0 ldi r24,lo8(1) |
638 04a0 90E0 ldi r25,hi8(1) |
639 .L53: |
640 /* epilogue: frame size=0 */ |
641 04a2 CF91 pop r28 |
642 04a4 1F91 pop r17 |
643 04a6 0F91 pop r16 |
644 04a8 FF90 pop r15 |
645 04aa EF90 pop r14 |
646 04ac 0895 ret |
647 /* epilogue end (size=6) */ |
648 /* function ParamSet_ReadFromEEProm size 99 (88) */ |
650 .global SetActiveParamSet |
652 SetActiveParamSet: |
653 /* prologue: frame size=0 */ |
654 /* prologue end (size=0) */ |
655 04ae 282F mov r18,r24 |
656 04b0 8630 cpi r24,lo8(6) |
657 04b2 00F0 brlo .L67 |
658 04b4 25E0 ldi r18,lo8(5) |
659 04b6 00C0 rjmp .L69 |
660 .L67: |
661 04b8 8823 tst r24 |
662 04ba 01F4 brne .L69 |
663 04bc 21E0 ldi r18,lo8(1) |
664 .L69: |
665 04be F999 sbic 63-0x20,1 |
666 04c0 00C0 rjmp .L69 |
667 04c2 1FBA out 63-0x20,__zero_reg__ |
668 04c4 82E0 ldi r24,lo8(2) |
669 04c6 90E0 ldi r25,hi8(2) |
670 04c8 92BD out (65)+1-0x20,r25 |
671 04ca 81BD out 65-0x20,r24 |
672 04cc 20BD out 64-0x20,r18 |
673 /* #APP */ |
674 /* START EEPROM WRITE CRITICAL SECTION */ |
675 04ce 0FB6 in r0, 63 |
676 04d0 F894 cli |
677 04d2 FA9A sbi 31, 2 |
678 04d4 F99A sbi 31, 1 |
679 04d6 0FBE out 63, r0 |
680 /* END EEPROM WRITE CRITICAL SECTION */ |
681 /* #NOAPP */ |
682 /* epilogue: frame size=0 */ |
683 04d8 0895 ret |
684 /* epilogue end (size=1) */ |
685 /* function SetActiveParamSet size 31 (30) */ |
687 .global ParamSet_WriteToEEProm |
689 ParamSet_WriteToEEProm: |
690 /* prologue: frame size=0 */ |
691 04da CF93 push r28 |
692 /* prologue end (size=1) */ |
693 04dc C82F mov r28,r24 |
694 04de 8091 0000 lds r24,EE_Parameter |
695 04e2 8835 cpi r24,lo8(88) |
696 04e4 01F0 breq .+2 |
697 04e6 00C0 rjmp .L74 |
698 04e8 C630 cpi r28,lo8(6) |
699 04ea 00F0 brlo .L75 |
700 04ec C5E0 ldi r28,lo8(5) |
701 04ee 00C0 rjmp .L76 |
702 .L75: |
703 04f0 CC23 tst r28 |
704 04f2 01F4 brne .+2 |
705 04f4 00C0 rjmp .L74 |
706 .L76: |
707 04f6 0E94 0000 call LIBFC_CheckSettings |
708 04fa 67E7 ldi r22,lo8(119) |
709 04fc 70E0 ldi r23,hi8(119) |
710 04fe 80E0 ldi r24,lo8(EE_Parameter) |
711 0500 90E0 ldi r25,hi8(EE_Parameter) |
712 0502 0E94 0000 call RAM_Checksum |
713 0506 8093 0000 sts EE_Parameter+119,r24 |
714 050a 88E7 ldi r24,lo8(120) |
715 050c C89F mul r28,r24 |
716 050e C001 movw r24,r0 |
717 0510 1124 clr r1 |
718 0512 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
719 0514 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
720 0516 48E7 ldi r20,lo8(120) |
721 0518 50E0 ldi r21,hi8(120) |
722 051a 60E0 ldi r22,lo8(EE_Parameter) |
723 051c 70E0 ldi r23,hi8(EE_Parameter) |
724 051e 4497 sbiw r24,20 |
725 0520 0E94 0000 call __eewr_block |
726 0524 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
727 0526 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
728 0528 4CE0 ldi r20,lo8(12) |
729 052a 50E0 ldi r21,hi8(12) |
730 052c 60E0 ldi r22,lo8(EE_Parameter+1) |
731 052e 70E0 ldi r23,hi8(EE_Parameter+1) |
732 0530 80E5 ldi r24,lo8(80) |
733 0532 90E0 ldi r25,hi8(80) |
734 0534 0E94 0000 call __eewr_block |
735 0538 6CE0 ldi r22,lo8(12) |
736 053a 70E0 ldi r23,hi8(12) |
737 053c 80E0 ldi r24,lo8(EE_Parameter+1) |
738 053e 90E0 ldi r25,hi8(EE_Parameter+1) |
739 0540 0E94 0000 call RAM_Checksum |
740 0544 282F mov r18,r24 |
741 .L79: |
742 0546 F999 sbic 63-0x20,1 |
743 0548 00C0 rjmp .L79 |
744 054a 1FBA out 63-0x20,__zero_reg__ |
745 054c 8CE5 ldi r24,lo8(92) |
746 054e 90E0 ldi r25,hi8(92) |
747 0550 92BD out (65)+1-0x20,r25 |
748 0552 81BD out 65-0x20,r24 |
749 0554 20BD out 64-0x20,r18 |
750 /* #APP */ |
751 /* START EEPROM WRITE CRITICAL SECTION */ |
752 0556 0FB6 in r0, 63 |
753 0558 F894 cli |
754 055a FA9A sbi 31, 2 |
755 055c F99A sbi 31, 1 |
756 055e 0FBE out 63, r0 |
757 /* END EEPROM WRITE CRITICAL SECTION */ |
758 /* #NOAPP */ |
759 0560 8C2F mov r24,r28 |
760 0562 0E94 0000 call SetActiveParamSet |
761 0566 0E94 0000 call LED_Init |
762 056a 81E0 ldi r24,lo8(1) |
763 056c 90E0 ldi r25,hi8(1) |
764 056e 00C0 rjmp .L73 |
765 .L74: |
766 0570 80E0 ldi r24,lo8(0) |
767 0572 90E0 ldi r25,hi8(0) |
768 .L73: |
769 /* epilogue: frame size=0 */ |
770 0574 CF91 pop r28 |
771 0576 0895 ret |
772 /* epilogue end (size=2) */ |
773 /* function ParamSet_WriteToEEProm size 88 (85) */ |
775 .global MixerTable_ReadFromEEProm |
777 MixerTable_ReadFromEEProm: |
778 /* prologue: frame size=0 */ |
779 /* prologue end (size=0) */ |
780 0578 6DE4 ldi r22,lo8(77) |
781 057a 70E0 ldi r23,hi8(77) |
782 057c 88EE ldi r24,lo8(1000) |
783 057e 93E0 ldi r25,hi8(1000) |
784 0580 0E94 0000 call EEProm_Checksum |
785 0584 482F mov r20,r24 |
786 .L85: |
787 0586 8FB3 in r24,63-0x20 |
788 0588 9927 clr r25 |
789 058a 9C01 movw r18,r24 |
790 058c 2270 andi r18,lo8(2) |
791 058e 3070 andi r19,hi8(2) |
792 0590 81FD sbrc r24,1 |
793 0592 00C0 rjmp .L85 |
794 0594 85E3 ldi r24,lo8(1077) |
795 0596 94E0 ldi r25,hi8(1077) |
796 0598 92BD out (65)+1-0x20,r25 |
797 059a 81BD out 65-0x20,r24 |
798 /* #APP */ |
799 /* START EEPROM READ CRITICAL SECTION */ |
800 059c F89A sbi 31, 0 |
801 059e 80B5 in r24, 32 |
802 /* END EEPROM READ CRITICAL SECTION */ |
803 |
804 /* #NOAPP */ |
805 05a0 8417 cp r24,r20 |
806 05a2 01F4 brne .L95 |
807 .L90: |
808 05a4 8FB3 in r24,63-0x20 |
809 05a6 9927 clr r25 |
810 05a8 9C01 movw r18,r24 |
811 05aa 2270 andi r18,lo8(2) |
812 05ac 3070 andi r19,hi8(2) |
813 05ae 81FD sbrc r24,1 |
814 05b0 00C0 rjmp .L90 |
815 05b2 88EE ldi r24,lo8(1000) |
816 05b4 93E0 ldi r25,hi8(1000) |
817 05b6 92BD out (65)+1-0x20,r25 |
818 05b8 81BD out 65-0x20,r24 |
819 /* #APP */ |
820 /* START EEPROM READ CRITICAL SECTION */ |
821 05ba F89A sbi 31, 0 |
822 05bc 80B5 in r24, 32 |
823 /* END EEPROM READ CRITICAL SECTION */ |
824 |
825 /* #NOAPP */ |
826 05be 8130 cpi r24,lo8(1) |
827 05c0 01F0 breq .L89 |
828 .L95: |
829 05c2 C901 movw r24,r18 |
830 05c4 0895 ret |
831 .L89: |
832 05c6 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
833 05c8 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
834 05ca 4EE4 ldi r20,lo8(78) |
835 05cc 50E0 ldi r21,hi8(78) |
836 05ce 68EE ldi r22,lo8(1000) |
837 05d0 73E0 ldi r23,hi8(1000) |
838 05d2 80E0 ldi r24,lo8(Mixer) |
839 05d4 90E0 ldi r25,hi8(Mixer) |
840 05d6 0E94 0000 call __eerd_block |
841 05da 81E0 ldi r24,lo8(1) |
842 05dc 90E0 ldi r25,hi8(1) |
843 05de 0895 ret |
844 /* epilogue: frame size=0 */ |
845 /* epilogue: noreturn */ |
846 /* epilogue end (size=0) */ |
847 /* function MixerTable_ReadFromEEProm size 68 (68) */ |
849 .global MixerTable_WriteToEEProm |
851 MixerTable_WriteToEEProm: |
852 /* prologue: frame size=0 */ |
853 /* prologue end (size=0) */ |
854 05e0 8091 0000 lds r24,Mixer |
855 05e4 8130 cpi r24,lo8(1) |
856 05e6 01F4 brne .L97 |
857 05e8 6DE4 ldi r22,lo8(77) |
858 05ea 70E0 ldi r23,hi8(77) |
859 05ec 80E0 ldi r24,lo8(Mixer) |
860 05ee 90E0 ldi r25,hi8(Mixer) |
861 05f0 0E94 0000 call RAM_Checksum |
862 05f4 8093 0000 sts Mixer+77,r24 |
863 05f8 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
864 05fa 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
865 05fc 4EE4 ldi r20,lo8(78) |
866 05fe 50E0 ldi r21,hi8(78) |
867 0600 60E0 ldi r22,lo8(Mixer) |
868 0602 70E0 ldi r23,hi8(Mixer) |
869 0604 88EE ldi r24,lo8(1000) |
870 0606 93E0 ldi r25,hi8(1000) |
871 0608 0E94 0000 call __eewr_block |
872 060c 81E0 ldi r24,lo8(1) |
873 060e 90E0 ldi r25,hi8(1) |
874 0610 0895 ret |
875 .L97: |
876 0612 80E0 ldi r24,lo8(0) |
877 0614 90E0 ldi r25,hi8(0) |
878 0616 0895 ret |
879 /* epilogue: frame size=0 */ |
880 /* epilogue: noreturn */ |
881 /* epilogue end (size=0) */ |
882 /* function MixerTable_WriteToEEProm size 28 (28) */ |
884 .data |
885 .LC3: |
886 0014 5175 6164 .string "Quadro" |
886 726F 00 |
887 001b 00 .string "" |
888 .text |
889 .global MixerTable_Default |
891 MixerTable_Default: |
892 /* prologue: frame size=0 */ |
893 0618 CF93 push r28 |
894 061a DF93 push r29 |
895 /* prologue end (size=2) */ |
896 061c 81E0 ldi r24,lo8(1) |
897 061e 8093 0000 sts Mixer,r24 |
898 0622 E0E0 ldi r30,lo8(Mixer) |
899 0624 F0E0 ldi r31,hi8(Mixer) |
900 0626 8FE0 ldi r24,lo8(15) |
901 .L104: |
902 0628 1586 std Z+13,__zero_reg__ |
903 062a 1686 std Z+14,__zero_reg__ |
904 062c 1786 std Z+15,__zero_reg__ |
905 062e 108A std Z+16,__zero_reg__ |
906 0630 8150 subi r24,lo8(-(-1)) |
907 0632 3496 adiw r30,4 |
908 0634 87FF sbrs r24,7 |
909 0636 00C0 rjmp .L104 |
910 0638 80E4 ldi r24,lo8(64) |
911 063a 8093 0000 sts Mixer+13,r24 |
912 063e 8093 0000 sts Mixer+14,r24 |
913 0642 1092 0000 sts Mixer+15,__zero_reg__ |
914 0646 8093 0000 sts Mixer+16,r24 |
915 064a 8093 0000 sts Mixer+17,r24 |
916 064e 90EC ldi r25,lo8(-64) |
917 0650 9093 0000 sts Mixer+18,r25 |
918 0654 1092 0000 sts Mixer+19,__zero_reg__ |
919 0658 8093 0000 sts Mixer+20,r24 |
920 065c 8093 0000 sts Mixer+21,r24 |
921 0660 1092 0000 sts Mixer+22,__zero_reg__ |
922 0664 9093 0000 sts Mixer+23,r25 |
923 0668 9093 0000 sts Mixer+24,r25 |
924 066c 8093 0000 sts Mixer+25,r24 |
925 0670 1092 0000 sts Mixer+26,__zero_reg__ |
926 0674 8093 0000 sts Mixer+27,r24 |
927 0678 9093 0000 sts Mixer+28,r25 |
928 067c A0E0 ldi r26,lo8(Mixer+1) |
929 067e B0E0 ldi r27,hi8(Mixer+1) |
930 0680 87E0 ldi r24,lo8(7) |
931 0682 E0E0 ldi r30,lo8(.LC3) |
932 0684 F0E0 ldi r31,hi8(.LC3) |
933 0686 ED01 movw r28,r26 |
934 0688 0190 ld __tmp_reg__,Z+ |
935 068a 0992 st Y+,__tmp_reg__ |
936 068c 8A95 dec r24 |
937 068e 01F4 brne .-8 |
938 0690 6DE4 ldi r22,lo8(77) |
939 0692 70E0 ldi r23,hi8(77) |
940 0694 CD01 movw r24,r26 |
941 0696 0197 sbiw r24,1 |
942 0698 0E94 0000 call RAM_Checksum |
943 069c 8093 0000 sts Mixer+77,r24 |
944 /* epilogue: frame size=0 */ |
945 06a0 DF91 pop r29 |
946 06a2 CF91 pop r28 |
947 06a4 0895 ret |
948 /* epilogue end (size=3) */ |
949 /* function MixerTable_Default size 71 (66) */ |
951 .global GetActiveParamSet |
953 GetActiveParamSet: |
954 /* prologue: frame size=0 */ |
955 /* prologue end (size=0) */ |
956 .L108: |
957 06a6 F999 sbic 63-0x20,1 |
958 06a8 00C0 rjmp .L108 |
959 06aa 82E0 ldi r24,lo8(2) |
960 06ac 90E0 ldi r25,hi8(2) |
961 06ae 92BD out (65)+1-0x20,r25 |
962 06b0 81BD out 65-0x20,r24 |
963 /* #APP */ |
964 /* START EEPROM READ CRITICAL SECTION */ |
965 06b2 F89A sbi 31, 0 |
966 06b4 80B5 in r24, 32 |
967 /* END EEPROM READ CRITICAL SECTION */ |
968 |
969 /* #NOAPP */ |
970 06b6 282F mov r18,r24 |
971 06b8 8630 cpi r24,lo8(6) |
972 06ba 00F0 brlo .L112 |
973 06bc 23E0 ldi r18,lo8(3) |
974 06be 322F mov r19,r18 |
975 .L113: |
976 06c0 F999 sbic 63-0x20,1 |
977 06c2 00C0 rjmp .L113 |
978 06c4 1FBA out 63-0x20,__zero_reg__ |
979 06c6 82E0 ldi r24,lo8(2) |
980 06c8 90E0 ldi r25,hi8(2) |
981 06ca 92BD out (65)+1-0x20,r25 |
982 06cc 81BD out 65-0x20,r24 |
983 06ce 30BD out 64-0x20,r19 |
984 /* #APP */ |
985 /* START EEPROM WRITE CRITICAL SECTION */ |
986 06d0 0FB6 in r0, 63 |
987 06d2 F894 cli |
988 06d4 FA9A sbi 31, 2 |
989 06d6 F99A sbi 31, 1 |
990 06d8 0FBE out 63, r0 |
991 /* END EEPROM WRITE CRITICAL SECTION */ |
992 /* #NOAPP */ |
993 .L112: |
994 06da 822F mov r24,r18 |
995 06dc 9927 clr r25 |
996 /* epilogue: frame size=0 */ |
997 06de 0895 ret |
998 /* epilogue end (size=1) */ |
999 /* function GetActiveParamSet size 46 (45) */ |
1001 .global SetDefaultParameter |
1003 SetDefaultParameter: |
1004 /* prologue: frame size=0 */ |
1005 06e0 1F93 push r17 |
1006 06e2 CF93 push r28 |
1007 /* prologue end (size=2) */ |
1008 06e4 C82F mov r28,r24 |
1009 06e6 162F mov r17,r22 |
1010 06e8 8630 cpi r24,lo8(6) |
1011 06ea 00F0 brlo .L118 |
1012 06ec C5E0 ldi r28,lo8(5) |
1013 06ee 00C0 rjmp .L119 |
1014 .L118: |
1015 06f0 8823 tst r24 |
1016 06f2 01F4 brne .L119 |
1017 06f4 C1E0 ldi r28,lo8(1) |
1018 .L119: |
1019 06f6 8C2F mov r24,r28 |
1020 06f8 9927 clr r25 |
1021 06fa 8230 cpi r24,2 |
1022 06fc 9105 cpc r25,__zero_reg__ |
1023 06fe 01F0 breq .L123 |
1024 0700 8330 cpi r24,3 |
1025 0702 9105 cpc r25,__zero_reg__ |
1026 0704 04F4 brge .L125 |
1027 0706 0197 sbiw r24,1 |
1028 0708 01F4 brne .L125 |
1029 070a 0E94 0000 call ParamSet_DefaultSet1 |
1030 070e 00C0 rjmp .L121 |
1031 .L123: |
1032 0710 0E94 0000 call ParamSet_DefaultSet2 |
1033 0714 00C0 rjmp .L121 |
1034 .L125: |
1035 0716 0E94 0000 call ParamSet_DefaultSet3 |
1036 .L121: |
1037 071a 1123 tst r17 |
1038 071c 01F0 breq .L127 |
1039 071e 6CE0 ldi r22,lo8(12) |
1040 0720 70E0 ldi r23,hi8(12) |
1041 0722 80E5 ldi r24,lo8(80) |
1042 0724 90E0 ldi r25,hi8(80) |
1043 0726 0E94 0000 call EEProm_Checksum |
1044 072a 282F mov r18,r24 |
1045 .L129: |
1046 072c F999 sbic 63-0x20,1 |
1047 072e 00C0 rjmp .L129 |
1048 0730 8CE5 ldi r24,lo8(92) |
1049 0732 90E0 ldi r25,hi8(92) |
1050 0734 92BD out (65)+1-0x20,r25 |
1051 0736 81BD out 65-0x20,r24 |
1052 /* #APP */ |
1053 /* START EEPROM READ CRITICAL SECTION */ |
1054 0738 F89A sbi 31, 0 |
1055 073a 80B5 in r24, 32 |
1056 /* END EEPROM READ CRITICAL SECTION */ |
1057 |
1058 /* #NOAPP */ |
1059 073c 8217 cp r24,r18 |
1060 073e 01F4 brne .L127 |
1061 0740 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
1062 0742 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
1063 0744 4CE0 ldi r20,lo8(12) |
1064 0746 50E0 ldi r21,hi8(12) |
1065 0748 60E5 ldi r22,lo8(80) |
1066 074a 70E0 ldi r23,hi8(80) |
1067 074c 80E0 ldi r24,lo8(EE_Parameter+1) |
1068 074e 90E0 ldi r25,hi8(EE_Parameter+1) |
1069 0750 0E94 0000 call __eerd_block |
1070 0754 00C0 rjmp .L135 |
1071 .L127: |
1072 0756 0E94 0000 call ParamSet_DefaultStickMapping |
1073 .L135: |
1074 075a 8C2F mov r24,r28 |
1075 075c 0E94 0000 call ParamSet_WriteToEEProm |
1076 /* epilogue: frame size=0 */ |
1077 0760 CF91 pop r28 |
1078 0762 1F91 pop r17 |
1079 0764 0895 ret |
1080 /* epilogue end (size=3) */ |
1081 /* function SetDefaultParameter size 76 (71) */ |
1083 .section .progmem.data,"a",@progbits |
1086 __c.0: |
1087 0000 0A0D 4765 .string "\n\rGenerating default Parameter Set %d" |
1087 6E65 7261 |
1087 7469 6E67 |
1087 2064 6566 |
1087 6175 6C74 |
1090 __c.1: |
1091 0026 0A0D 5573 .string "\n\rUsing Parameter Set %d" |
1091 696E 6720 |
1091 5061 7261 |
1091 6D65 7465 |
1091 7220 5365 |
1094 __c.2: |
1095 003f 0A0D 4765 .string "\n\rGenerating default Mixer Table" |
1095 6E65 7261 |
1095 7469 6E67 |
1095 2064 6566 |
1095 6175 6C74 |
1098 __c.3: |
1099 0060 0A0D 4D69 .string "\n\rMixer-Config: '%s' (%u Motors)" |
1099 7865 722D |
1099 436F 6E66 |
1099 6967 3A20 |
1099 2725 7327 |
1102 __c.4: |
1103 0081 0A0D 3D00 .string "\n\r=" |
1104 .text |
1105 .global ParamSet_Init |
1107 ParamSet_Init: |
1108 /* prologue: frame size=0 */ |
1109 0766 DF92 push r13 |
1110 0768 EF92 push r14 |
1111 076a FF92 push r15 |
1112 076c 0F93 push r16 |
1113 076e 1F93 push r17 |
1114 0770 CF93 push r28 |
1115 /* prologue end (size=6) */ |
1116 0772 FF24 clr r15 |
1117 0774 DF2C mov r13,r15 |
1118 0776 EF2C mov r14,r15 |
1119 0778 81E0 ldi r24,lo8(1) |
1120 077a 90E0 ldi r25,hi8(1) |
1121 077c 0E94 0000 call GetParamByte |
1122 0780 8835 cpi r24,lo8(88) |
1123 0782 01F0 breq .L137 |
1124 0784 31E0 ldi r19,lo8(1) |
1125 0786 E32E mov r14,r19 |
1126 .L137: |
1127 0788 6CE0 ldi r22,lo8(12) |
1128 078a 70E0 ldi r23,hi8(12) |
1129 078c 80E5 ldi r24,lo8(80) |
1130 078e 90E0 ldi r25,hi8(80) |
1131 0790 0E94 0000 call EEProm_Checksum |
1132 0794 C82F mov r28,r24 |
1133 .L139: |
1134 0796 F999 sbic 63-0x20,1 |
1135 0798 00C0 rjmp .L139 |
1136 079a 8CE5 ldi r24,lo8(92) |
1137 079c 90E0 ldi r25,hi8(92) |
1138 079e 92BD out (65)+1-0x20,r25 |
1139 07a0 81BD out 65-0x20,r24 |
1140 /* #APP */ |
1141 /* START EEPROM READ CRITICAL SECTION */ |
1142 07a2 F89A sbi 31, 0 |
1143 07a4 80B5 in r24, 32 |
1144 /* END EEPROM READ CRITICAL SECTION */ |
1145 |
1146 /* #NOAPP */ |
1147 07a6 8C17 cp r24,r28 |
1148 07a8 01F4 brne .L138 |
1149 07aa 21E0 ldi r18,lo8(1) |
1150 07ac D22E mov r13,r18 |
1151 .L138: |
1152 07ae C1E0 ldi r28,lo8(1) |
1153 07b0 01E0 ldi r16,lo8(1) |
1154 07b2 10E0 ldi r17,hi8(1) |
1155 .L157: |
1156 07b4 EE20 tst r14 |
1157 07b6 01F4 brne .L147 |
1158 07b8 8C2F mov r24,r28 |
1159 07ba 0E94 0000 call ParamSet_ReadFromEEProm |
1160 07be 8823 tst r24 |
1161 07c0 01F4 brne .L145 |
1162 .L147: |
1163 07c2 91E0 ldi r25,lo8(1) |
1164 07c4 F92E mov r15,r25 |
1165 07c6 1F93 push r17 |
1166 07c8 0F93 push r16 |
1167 07ca 80E0 ldi r24,lo8(__c.0) |
1168 07cc 90E0 ldi r25,hi8(__c.0) |
1169 07ce 9F93 push r25 |
1170 07d0 8F93 push r24 |
1171 07d2 80E0 ldi r24,lo8(pm(uart_putchar)) |
1172 07d4 90E0 ldi r25,hi8(pm(uart_putchar)) |
1173 07d6 9F93 push r25 |
1174 07d8 8F93 push r24 |
1175 07da E091 0000 lds r30,_printf_P |
1176 07de F091 0000 lds r31,(_printf_P)+1 |
1177 07e2 0995 icall |
1178 07e4 2DB7 in r18,__SP_L__ |
1179 07e6 3EB7 in r19,__SP_H__ |
1180 07e8 2A5F subi r18,lo8(-(6)) |
1181 07ea 3F4F sbci r19,hi8(-(6)) |
1182 07ec 2DBF out __SP_L__,r18 |
1183 07ee 0230 cpi r16,2 |
1184 07f0 1105 cpc r17,__zero_reg__ |
1185 07f2 01F0 breq .L150 |
1186 07f4 0330 cpi r16,3 |
1187 07f6 1105 cpc r17,__zero_reg__ |
1188 07f8 04F4 brge .L152 |
1189 07fa 0130 cpi r16,1 |
1190 07fc 1105 cpc r17,__zero_reg__ |
1191 07fe 01F4 brne .L152 |
1192 0800 0E94 0000 call ParamSet_DefaultSet1 |
1193 0804 00C0 rjmp .L148 |
1194 .L150: |
1195 0806 0E94 0000 call ParamSet_DefaultSet2 |
1196 080a 00C0 rjmp .L148 |
1197 .L152: |
1198 080c 0E94 0000 call ParamSet_DefaultSet3 |
1199 .L148: |
1200 0810 DD20 tst r13 |
1201 0812 01F0 breq .L154 |
1202 0814 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
1203 0816 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
1204 0818 4CE0 ldi r20,lo8(12) |
1205 081a 50E0 ldi r21,hi8(12) |
1206 081c 60E5 ldi r22,lo8(80) |
1207 081e 70E0 ldi r23,hi8(80) |
1208 0820 80E0 ldi r24,lo8(EE_Parameter+1) |
1209 0822 90E0 ldi r25,hi8(EE_Parameter+1) |
1210 0824 0E94 0000 call __eerd_block |
1211 0828 00C0 rjmp .L156 |
1212 .L154: |
1213 082a 0E94 0000 call ParamSet_DefaultStickMapping |
1214 .L156: |
1215 082e 8C2F mov r24,r28 |
1216 0830 0E94 0000 call ParamSet_WriteToEEProm |
1217 .L145: |
1218 0834 CF5F subi r28,lo8(-(1)) |
1219 0836 0F5F subi r16,lo8(-(1)) |
1220 0838 1F4F sbci r17,hi8(-(1)) |
1221 083a C630 cpi r28,lo8(6) |
1222 083c 00F4 brsh .+2 |
1223 083e 00C0 rjmp .L157 |
1224 0840 FF20 tst r15 |
1225 0842 01F0 breq .L158 |
1226 0844 83E0 ldi r24,lo8(3) |
1227 0846 0E94 0000 call SetActiveParamSet |
1228 .L158: |
1229 084a 0E94 0000 call GetActiveParamSet |
1230 084e C82F mov r28,r24 |
1231 0850 0E94 0000 call ParamSet_ReadFromEEProm |
1232 0854 8C2F mov r24,r28 |
1233 0856 9927 clr r25 |
1234 0858 9F93 push r25 |
1235 085a 8F93 push r24 |
1236 085c 80E0 ldi r24,lo8(__c.1) |
1237 085e 90E0 ldi r25,hi8(__c.1) |
1238 0860 9F93 push r25 |
1239 0862 8F93 push r24 |
1240 0864 00E0 ldi r16,lo8(pm(uart_putchar)) |
1241 0866 10E0 ldi r17,hi8(pm(uart_putchar)) |
1242 0868 1F93 push r17 |
1243 086a 0F93 push r16 |
1244 086c E091 0000 lds r30,_printf_P |
1245 0870 F091 0000 lds r31,(_printf_P)+1 |
1246 0874 0995 icall |
1247 0876 81E0 ldi r24,lo8(1) |
1248 0878 90E0 ldi r25,hi8(1) |
1249 087a 0E94 0000 call GetParamByte |
1250 087e 2DB7 in r18,__SP_L__ |
1251 0880 3EB7 in r19,__SP_H__ |
1252 0882 2A5F subi r18,lo8(-(6)) |
1253 0884 3F4F sbci r19,hi8(-(6)) |
1254 0886 2DBF out __SP_L__,r18 |
1255 0888 8F3F cpi r24,lo8(-1) |
1256 088a 01F0 breq .L160 |
1257 088c 0E94 0000 call MixerTable_ReadFromEEProm |
1258 0890 8823 tst r24 |
1259 0892 01F4 brne .L159 |
1260 .L160: |
1261 0894 80E0 ldi r24,lo8(__c.2) |
1262 0896 90E0 ldi r25,hi8(__c.2) |
1263 0898 9F93 push r25 |
1264 089a 8F93 push r24 |
1265 089c 1F93 push r17 |
1266 089e 0F93 push r16 |
1267 08a0 E091 0000 lds r30,_printf_P |
1268 08a4 F091 0000 lds r31,(_printf_P)+1 |
1269 08a8 0995 icall |
1270 08aa 0E94 0000 call MixerTable_Default |
1271 08ae 0E94 0000 call MixerTable_WriteToEEProm |
1272 08b2 0F90 pop __tmp_reg__ |
1273 08b4 0F90 pop __tmp_reg__ |
1274 08b6 0F90 pop __tmp_reg__ |
1275 08b8 0F90 pop __tmp_reg__ |
1276 .L159: |
1277 08ba EE20 tst r14 |
1278 08bc 01F0 breq .L161 |
1279 08be 68E5 ldi r22,lo8(88) |
1280 08c0 81E0 ldi r24,lo8(1) |
1281 08c2 90E0 ldi r25,hi8(1) |
1282 08c4 0E94 0000 call SetParamByte |
1283 .L161: |
1284 08c8 1092 0000 sts RequiredMotors,__zero_reg__ |
1285 08cc 90E0 ldi r25,lo8(0) |
1286 08ce E0E0 ldi r30,lo8(Mixer+13) |
1287 08d0 F0E0 ldi r31,hi8(Mixer+13) |
1288 08d2 CFE0 ldi r28,lo8(15) |
1289 .L166: |
1290 08d4 8081 ld r24,Z |
1291 08d6 3496 adiw r30,4 |
1292 08d8 1816 cp __zero_reg__,r24 |
1293 08da 04F4 brge .L164 |
1294 08dc 9F5F subi r25,lo8(-(1)) |
1295 .L164: |
1296 08de C150 subi r28,lo8(-(-1)) |
1297 08e0 C7FF sbrs r28,7 |
1298 08e2 00C0 rjmp .L166 |
1299 08e4 9093 0000 sts RequiredMotors,r25 |
1300 08e8 892F mov r24,r25 |
1301 08ea 9927 clr r25 |
1302 08ec 9F93 push r25 |
1303 08ee 8F93 push r24 |
1304 08f0 80E0 ldi r24,lo8(Mixer+1) |
1305 08f2 90E0 ldi r25,hi8(Mixer+1) |
1306 08f4 9F93 push r25 |
1307 08f6 8F93 push r24 |
1308 08f8 80E0 ldi r24,lo8(__c.3) |
1309 08fa 90E0 ldi r25,hi8(__c.3) |
1310 08fc 9F93 push r25 |
1311 08fe 8F93 push r24 |
1312 0900 1F93 push r17 |
1313 0902 0F93 push r16 |
1314 0904 E091 0000 lds r30,_printf_P |
1315 0908 F091 0000 lds r31,(_printf_P)+1 |
1316 090c 0995 icall |
1317 090e 8DB7 in r24,__SP_L__ |
1318 0910 9EB7 in r25,__SP_H__ |
1319 0912 0896 adiw r24,8 |
1320 0914 8DBF out __SP_L__,r24 |
1321 0916 80E0 ldi r24,lo8(__c.4) |
1322 0918 90E0 ldi r25,hi8(__c.4) |
1323 091a 9F93 push r25 |
1324 091c 8F93 push r24 |
1325 091e 1F93 push r17 |
1326 0920 0F93 push r16 |
1327 0922 E091 0000 lds r30,_printf_P |
1328 0926 F091 0000 lds r31,(_printf_P)+1 |
1329 092a 0995 icall |
1330 092c 0F90 pop __tmp_reg__ |
1331 092e 0F90 pop __tmp_reg__ |
1332 0930 0F90 pop __tmp_reg__ |
1333 0932 0F90 pop __tmp_reg__ |
1334 /* epilogue: frame size=0 */ |
1335 0934 CF91 pop r28 |
1336 0936 1F91 pop r17 |
1337 0938 0F91 pop r16 |
1338 093a FF90 pop r15 |
1339 093c EF90 pop r14 |
1340 093e DF90 pop r13 |
1341 0940 0895 ret |
1342 /* epilogue end (size=7) */ |
1343 /* function ParamSet_Init size 246 (233) */ |
1345 .comm Mixer,78,1 |
1346 .comm RequiredMotors,1,1 |
1347 .comm EE_Parameter,120,1 |
1348 .comm Motorsmax,8,1 |
1349 .comm MotorsTmax,2,1 |
1350 /* File "eeprom.c": code 1311 = 0x051f (1247), prologues 22, epilogues 42 */ |
DEFINED SYMBOLS |
*ABS*:00000000 eeprom.c |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:12 .text:00000000 eeprom_read_byte |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:34 .text:00000010 eeprom_write_byte |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:60 .text:00000028 RAM_Checksum |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:88 .text:0000004a EEProm_Checksum |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:128 .text:0000007a ParamSet_DefaultStickMapping |
*COM*:00000078 EE_Parameter |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:162 .text:000000c4 CommonDefaults |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:313 .text:00000282 ParamSet_DefaultSet1 |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:369 .text:000002f2 ParamSet_DefaultSet2 |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:423 .text:0000035e ParamSet_DefaultSet3 |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:473 .text:000003cc GetParamByte |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:496 .text:000003dc SetParamByte |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:522 .text:000003f4 GetParamWord |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:535 .text:000003fe SetParamWord |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:548 .text:00000408 ParamSet_ReadFromEEProm |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:652 .text:000004ae SetActiveParamSet |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:689 .text:000004da ParamSet_WriteToEEProm |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:777 .text:00000578 MixerTable_ReadFromEEProm |
*COM*:0000004e Mixer |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:851 .text:000005e0 MixerTable_WriteToEEProm |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:891 .text:00000618 MixerTable_Default |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:953 .text:000006a6 GetActiveParamSet |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1003 .text:000006e0 SetDefaultParameter |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1086 .progmem.data:00000000 __c.0 |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1090 .progmem.data:00000026 __c.1 |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1094 .progmem.data:0000003f __c.2 |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1098 .progmem.data:00000060 __c.3 |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1102 .progmem.data:00000081 __c.4 |
C:\Users\Thomas\AppData\Local\Temp/ccXJKQoi.s:1107 .text:00000766 ParamSet_Init |
*COM*:00000001 RequiredMotors |
*COM*:00000008 Motorsmax |
*COM*:00000002 MotorsTmax |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
PlatinenVersion |
__eerd_word |
__eewr_word |
__eerd_block |
LED_Init |
LIBFC_CheckSettings |
__eewr_block |
uart_putchar |
_printf_P |