Subversion Repositories FlightCtrl

Rev

Rev 2300 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
PlatinenVersion
__eerd_word
__eewr_word
__eerd_block
LED_Init
LIBFC_HoTT_Clear
LIBFC_CheckSettings
__eewr_block
uart_putchar
_printf_P
PrintLine