Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1996 → Rev 1997

/branches/V0.86d_MartinW_Jeti+V0.20/eeprom.lst
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