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