0,0 → 1,1351 |
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 8DE5 ldi r24,lo8(93) |
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 2DE7 ldi r18,lo8(125) |
244 01b6 2093 0000 sts EE_Parameter+56,r18 |
245 01ba 2093 0000 sts EE_Parameter+57,r18 |
246 01be 2093 0000 sts EE_Parameter+58,r18 |
247 01c2 9093 0000 sts EE_Parameter+49,r25 |
248 01c6 55E5 ldi r21,lo8(85) |
249 01c8 5093 0000 sts EE_Parameter+50,r21 |
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 5093 0000 sts EE_Parameter+87,r21 |
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 2093 0000 sts EE_Parameter+62,r18 |
308 0290 84E3 ldi r24,lo8(52) |
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 8D35 cpi r24,lo8(93) |
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 8D35 cpi r24,lo8(93) |
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 8D35 cpi r24,lo8(93) |
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 6DE5 ldi r22,lo8(93) |
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/ccufGwpE.s:3 *ABS*:0000003f __SREG__ |
C:\Temp/ccufGwpE.s:4 *ABS*:0000003e __SP_H__ |
C:\Temp/ccufGwpE.s:5 *ABS*:0000003d __SP_L__ |
C:\Temp/ccufGwpE.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Temp/ccufGwpE.s:7 *ABS*:00000001 __zero_reg__ |
C:\Temp/ccufGwpE.s:12 .text:00000000 eeprom_read_byte |
C:\Temp/ccufGwpE.s:34 .text:00000010 eeprom_write_byte |
C:\Temp/ccufGwpE.s:60 .text:00000028 RAM_Checksum |
C:\Temp/ccufGwpE.s:88 .text:0000004a EEProm_Checksum |
C:\Temp/ccufGwpE.s:128 .text:0000007a ParamSet_DefaultStickMapping |
*COM*:0000007d EE_Parameter |
C:\Temp/ccufGwpE.s:162 .text:000000c4 CommonDefaults |
C:\Temp/ccufGwpE.s:320 .text:000002a4 ParamSet_DefaultSet1 |
C:\Temp/ccufGwpE.s:368 .text:0000030e ParamSet_DefaultSet2 |
C:\Temp/ccufGwpE.s:416 .text:00000378 ParamSet_DefaultSet3 |
C:\Temp/ccufGwpE.s:459 .text:000003e0 GetParamByte |
C:\Temp/ccufGwpE.s:482 .text:000003f0 SetParamByte |
C:\Temp/ccufGwpE.s:508 .text:00000408 GetParamWord |
C:\Temp/ccufGwpE.s:521 .text:00000412 SetParamWord |
C:\Temp/ccufGwpE.s:534 .text:0000041c ParamSet_ReadFromEEProm |
C:\Temp/ccufGwpE.s:639 .text:000004c6 SetActiveParamSet |
C:\Temp/ccufGwpE.s:676 .text:000004f2 ParamSet_WriteToEEProm |
C:\Temp/ccufGwpE.s:774 .text:000005aa MixerTable_ReadFromEEProm |
*COM*:0000004e Mixer |
C:\Temp/ccufGwpE.s:848 .text:00000612 MixerTable_WriteToEEProm |
C:\Temp/ccufGwpE.s:893 .text:0000064a MixerTable_Default |
C:\Temp/ccufGwpE.s:955 .text:000006d8 GetActiveParamSet |
C:\Temp/ccufGwpE.s:1005 .text:00000712 SetDefaultParameter |
C:\Temp/ccufGwpE.s:1088 .progmem.data:00000000 __c.0 |
C:\Temp/ccufGwpE.s:1092 .progmem.data:00000026 __c.1 |
C:\Temp/ccufGwpE.s:1096 .progmem.data:0000003f __c.2 |
C:\Temp/ccufGwpE.s:1100 .progmem.data:00000060 __c.3 |
C:\Temp/ccufGwpE.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 |