Subversion Repositories FlightCtrl

Rev

Go to most recent revision | Blame | 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 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