Subversion Repositories FlightCtrl

Rev

Blame | Last modification | View Log | RSS feed

   1                            .file   "rc.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                    .global PPM_Neutral
  11                            .data
  14                    PPM_Neutral:
  15 0000 D201                  .word   466
  16                    .global NewPpmData
  19                    NewPpmData:
  20 0002 01                    .byte   1
  21                    .global tmpChannels
  22                    .global tmpChannels
  23                            .section .bss
  26                    tmpChannels:
  27 0000 00                    .skip 1,0
  28                            .text
  29                    .global rc_sum_init
  31                    rc_sum_init:
  32                    /* prologue: frame size=0 */
  33 0000 CF93                  push r28
  34 0002 DF93                  push r29
  35                    /* prologue end (size=2) */
  36 0004 80E0                  ldi r24,lo8(0)
  37 0006 21E8                  ldi r18,lo8(-127)
  38 0008 3FEF                  ldi r19,hi8(-127)
  39 000a C0E0                  ldi r28,lo8(PPM_diff)
  40 000c D0E0                  ldi r29,hi8(PPM_diff)
  41 000e E0E0                  ldi r30,lo8(PPM_in)
  42 0010 F0E0                  ldi r31,hi8(PPM_in)
  43 0012 DF01                  movw r26,r30
  44                    .L7:
  45 0014 8530                  cpi r24,lo8(5)
  46 0016 00F4                  brsh .L5
  47 0018 1196                  adiw r26,1
  48 001a 1C92                  st X,__zero_reg__
  49 001c 1E92                  st -X,__zero_reg__
  50 001e 00C0                  rjmp .L6
  51                    .L5:
  52 0020 3183                  std Z+1,r19
  53 0022 2083                  st Z,r18
  54                    .L6:
  55 0024 1982                  std Y+1,__zero_reg__
  56 0026 1882                  st Y,__zero_reg__
  57 0028 2296                  adiw r28,2
  58 002a 8F5F                  subi r24,lo8(-(1))
  59 002c 1296                  adiw r26,2
  60 002e 3296                  adiw r30,2
  61 0030 8A31                  cpi r24,lo8(26)
  62 0032 00F0                  brlo .L7
  63 0034 1092 0000             sts (AdNeutralGier)+1,__zero_reg__
  64 0038 1092 0000             sts AdNeutralGier,__zero_reg__
  65 003c 1092 0000             sts (AdNeutralRoll)+1,__zero_reg__
  66 0040 1092 0000             sts AdNeutralRoll,__zero_reg__
  67 0044 1092 0000             sts (AdNeutralNick)+1,__zero_reg__
  68 0048 1092 0000             sts AdNeutralNick,__zero_reg__
  69                    /* epilogue: frame size=0 */
  70 004c DF91                  pop r29
  71 004e CF91                  pop r28
  72 0050 0895                  ret
  73                    /* epilogue end (size=3) */
  74                    /* function rc_sum_init size 41 (36) */
  76                            .lcomm AltICR.0,2
  77                            .lcomm index.1,2
  78                            .lcomm AltICR.2,2
  79                            .lcomm ppm_in.3,26
  80                            .lcomm ppm_diff.4,26
  81                            .lcomm old_ppm_in.5,26
  82                            .lcomm old_ppm_diff.6,26
  83                            .lcomm index.7,1
  84                            .lcomm okay_cnt.8,1
  85                    .global __vector_12
  87                    __vector_12:
  88                    /* prologue: frame size=0 */
  89 0052 1F92                  push __zero_reg__
  90 0054 0F92                  push __tmp_reg__
  91 0056 0FB6                  in __tmp_reg__,__SREG__
  92 0058 0F92                  push __tmp_reg__
  93 005a 1124                  clr __zero_reg__
  94 005c 0F93                  push r16
  95 005e 1F93                  push r17
  96 0060 2F93                  push r18
  97 0062 3F93                  push r19
  98 0064 4F93                  push r20
  99 0066 5F93                  push r21
 100 0068 6F93                  push r22
 101 006a 7F93                  push r23
 102 006c 8F93                  push r24
 103 006e 9F93                  push r25
 104 0070 AF93                  push r26
 105 0072 BF93                  push r27
 106 0074 CF93                  push r28
 107 0076 DF93                  push r29
 108 0078 EF93                  push r30
 109 007a FF93                  push r31
 110                    /* prologue end (size=21) */
 111 007c 8091 0000             lds r24,EE_Parameter+110
 112 0080 82FD                  sbrc r24,2
 113 0082 00C0                  rjmp .L11
 114 0084 4091 8600             lds r20,134
 115 0088 5091 8700             lds r21,(134)+1
 116 008c 8091 0000             lds r24,AltICR.0
 117 0090 9091 0000             lds r25,(AltICR.0)+1
 118 0094 481B                  sub r20,r24
 119 0096 590B                  sbc r21,r25
 120 0098 8091 8600             lds r24,134
 121 009c 9091 8700             lds r25,(134)+1
 122 00a0 9093 0000             sts (AltICR.0)+1,r25
 123 00a4 8093 0000             sts AltICR.0,r24
 124 00a8 CA01                  movw r24,r20
 125 00aa 8D54                  subi r24,lo8(-(-1101))
 126 00ac 9440                  sbci r25,hi8(-(-1101))
 127 00ae A091 0000             lds r26,index.1
 128 00b2 B091 0000             lds r27,(index.1)+1
 129 00b6 835F                  subi r24,lo8(6899)
 130 00b8 9A41                  sbci r25,hi8(6899)
 131 00ba 00F4                  brsh .L12
 132 00bc 8091 0000             lds r24,index.1
 133 00c0 8093 0000             sts Channels,r24
 134 00c4 1497                  sbiw r26,4
 135 00c6 04F0                  brlt .L13
 136 00c8 1092 0000             sts NewPpmData,__zero_reg__
 137                    .L13:
 138 00cc 81E0                  ldi r24,lo8(1)
 139 00ce 90E0                  ldi r25,hi8(1)
 140 00d0 9093 0000             sts (index.1)+1,r25
 141 00d4 8093 0000             sts index.1,r24
 142 00d8 00C0                  rjmp .L10
 143                    .L12:
 144 00da AD30                  cpi r26,13
 145 00dc B105                  cpc r27,__zero_reg__
 146 00de 04F0                  brlt .+2
 147 00e0 00C0                  rjmp .L10
 148 00e2 CA01                  movw r24,r20
 149 00e4 8B5F                  subi r24,lo8(-(-251))
 150 00e6 9040                  sbci r25,hi8(-(-251))
 151 00e8 845B                  subi r24,lo8(436)
 152 00ea 9140                  sbci r25,hi8(436)
 153 00ec 00F0                  brlo .+2
 154 00ee 00C0                  rjmp .L16
 155 00f0 8091 0000             lds r24,PPM_Neutral
 156 00f4 9091 0000             lds r25,(PPM_Neutral)+1
 157 00f8 481B                  sub r20,r24
 158 00fa 590B                  sbc r21,r25
 159 00fc E091 0000             lds r30,EE_Parameter+105
 160 0100 EE23                  tst r30
 161 0102 01F0                  breq .L18
 162 0104 FF27                  clr r31
 163 0106 EE0F                  add r30,r30
 164 0108 FF1F                  adc r31,r31
 165 010a E050                  subi r30,lo8(-(PPM_in))
 166 010c F040                  sbci r31,hi8(-(PPM_in))
 167 010e 8081                  ld r24,Z
 168 0110 9181                  ldd r25,Z+1
 169 0112 8436                  cpi r24,100
 170 0114 9105                  cpc r25,__zero_reg__
 171 0116 04F4                  brge .L17
 172                    .L18:
 173 0118 FD01                  movw r30,r26
 174 011a EA0F                  add r30,r26
 175 011c FB1F                  adc r31,r27
 176 011e E050                  subi r30,lo8(-(PPM_in))
 177 0120 F040                  sbci r31,hi8(-(PPM_in))
 178 0122 8081                  ld r24,Z
 179 0124 9181                  ldd r25,Z+1
 180 0126 FA01                  movw r30,r20
 181 0128 E81B                  sub r30,r24
 182 012a F90B                  sbc r31,r25
 183 012c CF01                  movw r24,r30
 184 012e F7FF                  sbrs r31,7
 185 0130 00C0                  rjmp .L20
 186 0132 9095                  com r25
 187 0134 8195                  neg r24
 188 0136 9F4F                  sbci r25,lo8(-1)
 189                    .L20:
 190 0138 0697                  sbiw r24,6
 191 013a 04F4                  brge .L17
 192 013c 8091 0000             lds r24,SenderOkay
 193 0140 883C                  cpi r24,lo8(-56)
 194 0142 00F4                  brsh .L21
 195 0144 8091 0000             lds r24,SenderOkay
 196 0148 865F                  subi r24,lo8(-(10))
 197 014a 00C0                  rjmp .L93
 198                    .L21:
 199 014c 88EC                  ldi r24,lo8(-56)
 200                    .L93:
 201 014e 8093 0000             sts SenderOkay,r24
 202                    .L17:
 203 0152 FD01                  movw r30,r26
 204 0154 EA0F                  add r30,r26
 205 0156 FB1F                  adc r31,r27
 206 0158 E050                  subi r30,lo8(-(PPM_in))
 207 015a F040                  sbci r31,hi8(-(PPM_in))
 208 015c 8081                  ld r24,Z
 209 015e 9181                  ldd r25,Z+1
 210 0160 9C01                  movw r18,r24
 211 0162 220F                  lsl r18
 212 0164 331F                  rol r19
 213 0166 280F                  add r18,r24
 214 0168 391F                  adc r19,r25
 215 016a 240F                  add r18,r20
 216 016c 351F                  adc r19,r21
 217 016e 37FF                  sbrs r19,7
 218 0170 00C0                  rjmp .L23
 219 0172 2D5F                  subi r18,lo8(-(3))
 220 0174 3F4F                  sbci r19,hi8(-(3))
 221                    .L23:
 222 0176 E901                  movw r28,r18
 223 0178 D595                  asr r29
 224 017a C795                  ror r28
 225 017c D595                  asr r29
 226 017e C795                  ror r28
 227 0180 CA01                  movw r24,r20
 228 0182 0196                  adiw r24,1
 229 0184 8C17                  cp r24,r28
 230 0186 9D07                  cpc r25,r29
 231 0188 04F4                  brge .L24
 232 018a 2197                  sbiw r28,1
 233 018c 00C0                  rjmp .L25
 234                    .L24:
 235 018e 4150                  subi r20,lo8(-(-1))
 236 0190 5040                  sbci r21,hi8(-(-1))
 237 0192 C417                  cp r28,r20
 238 0194 D507                  cpc r29,r21
 239 0196 04F4                  brge .L25
 240 0198 2196                  adiw r28,1
 241                    .L25:
 242 019a 8091 0000             lds r24,SenderOkay
 243 019e 833C                  cpi r24,lo8(-61)
 244 01a0 00F0                  brlo .L27
 245 01a2 8D01                  movw r16,r26
 246 01a4 0A0F                  add r16,r26
 247 01a6 1B1F                  adc r17,r27
 248 01a8 F801                  movw r30,r16
 249 01aa E050                  subi r30,lo8(-(PPM_in))
 250 01ac F040                  sbci r31,hi8(-(PPM_in))
 251 01ae 8081                  ld r24,Z
 252 01b0 9181                  ldd r25,Z+1
 253 01b2 9E01                  movw r18,r28
 254 01b4 281B                  sub r18,r24
 255 01b6 390B                  sbc r19,r25
 256 01b8 C901                  movw r24,r18
 257 01ba 63E0                  ldi r22,lo8(3)
 258 01bc 70E0                  ldi r23,hi8(3)
 259 01be 0E94 0000             call __divmodhi4
 260 01c2 CB01                  movw r24,r22
 261 01c4 880F                  lsl r24
 262 01c6 991F                  rol r25
 263 01c8 860F                  add r24,r22
 264 01ca 971F                  adc r25,r23
 265 01cc 0050                  subi r16,lo8(-(PPM_diff))
 266 01ce 1040                  sbci r17,hi8(-(PPM_diff))
 267 01d0 D801                  movw r26,r16
 268 01d2 1196                  adiw r26,1
 269 01d4 9C93                  st X,r25
 270 01d6 8E93                  st -X,r24
 271 01d8 00C0                  rjmp .L28
 272                    .L27:
 273 01da AA0F                  add r26,r26
 274 01dc BB1F                  adc r27,r27
 275 01de A050                  subi r26,lo8(-(PPM_diff))
 276 01e0 B040                  sbci r27,hi8(-(PPM_diff))
 277 01e2 1196                  adiw r26,1
 278 01e4 1C92                  st X,__zero_reg__
 279 01e6 1E92                  st -X,__zero_reg__
 280                    .L28:
 281 01e8 E091 0000             lds r30,index.1
 282 01ec F091 0000             lds r31,(index.1)+1
 283 01f0 EE0F                  add r30,r30
 284 01f2 FF1F                  adc r31,r31
 285 01f4 E050                  subi r30,lo8(-(PPM_in))
 286 01f6 F040                  sbci r31,hi8(-(PPM_in))
 287 01f8 D183                  std Z+1,r29
 288 01fa C083                  st Z,r28
 289                    .L16:
 290 01fc 2091 0000             lds r18,index.1
 291 0200 3091 0000             lds r19,(index.1)+1
 292 0204 2F5F                  subi r18,lo8(-(1))
 293 0206 3F4F                  sbci r19,hi8(-(1))
 294 0208 3093 0000             sts (index.1)+1,r19
 295 020c 2093 0000             sts index.1,r18
 296 0210 8091 0000             lds r24,PlatinenVersion
 297 0214 8431                  cpi r24,lo8(20)
 298 0216 00F0                  brlo .+2
 299 0218 00C0                  rjmp .L10
 300 021a 2530                  cpi r18,5
 301 021c 3105                  cpc r19,__zero_reg__
 302 021e 01F4                  brne .L30
 303 0220 5D9A                  sbi 43-0x20,5
 304 0222 00C0                  rjmp .L31
 305                    .L30:
 306 0224 5D98                  cbi 43-0x20,5
 307                    .L31:
 308 0226 8091 0000             lds r24,index.1
 309 022a 9091 0000             lds r25,(index.1)+1
 310 022e 8630                  cpi r24,6
 311 0230 9105                  cpc r25,__zero_reg__
 312 0232 01F4                  brne .L32
 313 0234 5C9A                  sbi 43-0x20,4
 314 0236 00C0                  rjmp .L33
 315                    .L32:
 316 0238 5C98                  cbi 43-0x20,4
 317                    .L33:
 318 023a 0797                  sbiw r24,7
 319 023c 01F4                  brne .L34
 320 023e 5B9A                  sbi 43-0x20,3
 321 0240 00C0                  rjmp .L10
 322                    .L34:
 323 0242 5B98                  cbi 43-0x20,3
 324 0244 00C0                  rjmp .L10
 325                    .L11:
 326 0246 4091 8600             lds r20,134
 327 024a 5091 8700             lds r21,(134)+1
 328 024e 8091 0000             lds r24,AltICR.2
 329 0252 9091 0000             lds r25,(AltICR.2)+1
 330 0256 481B                  sub r20,r24
 331 0258 590B                  sbc r21,r25
 332 025a 8091 8600             lds r24,134
 333 025e 9091 8700             lds r25,(134)+1
 334 0262 9093 0000             sts (AltICR.2)+1,r25
 335 0266 8093 0000             sts AltICR.2,r24
 336 026a CA01                  movw r24,r20
 337 026c 8D54                  subi r24,lo8(-(-1101))
 338 026e 9440                  sbci r25,hi8(-(-1101))
 339 0270 6091 0000             lds r22,index.7
 340 0274 835F                  subi r24,lo8(6899)
 341 0276 9A41                  sbci r25,hi8(6899)
 342 0278 00F0                  brlo .+2
 343 027a 00C0                  rjmp .L37
 344 027c 6093 0000             sts tmpChannels,r22
 345 0280 8091 0000             lds r24,tmpChannels
 346 0284 8430                  cpi r24,lo8(4)
 347 0286 00F4                  brsh .+2
 348 0288 00C0                  rjmp .L38
 349 028a 9091 0000             lds r25,Channels
 350 028e 8091 0000             lds r24,tmpChannels
 351 0292 9817                  cp r25,r24
 352 0294 01F0                  breq .+2
 353 0296 00C0                  rjmp .L38
 354 0298 5091 0000             lds r21,okay_cnt.8
 355 029c 5B30                  cpi r21,lo8(11)
 356 029e 00F4                  brsh .+2
 357 02a0 00C0                  rjmp .L39
 358 02a2 1092 0000             sts NewPpmData,__zero_reg__
 359 02a6 1092 0000             sts index.7,__zero_reg__
 360 02aa 40E0                  ldi r20,lo8(0)
 361                    .L44:
 362 02ac 5F31                  cpi r21,lo8(31)
 363 02ae 00F0                  brlo .L43
 364 02b0 E42F                  mov r30,r20
 365 02b2 FF27                  clr r31
 366 02b4 EE0F                  add r30,r30
 367 02b6 FF1F                  adc r31,r31
 368 02b8 9F01                  movw r18,r30
 369 02ba 2050                  subi r18,lo8(-(old_ppm_in.5))
 370 02bc 3040                  sbci r19,hi8(-(old_ppm_in.5))
 371 02be DF01                  movw r26,r30
 372 02c0 A050                  subi r26,lo8(-(PPM_in))
 373 02c2 B040                  sbci r27,hi8(-(PPM_in))
 374 02c4 8D91                  ld r24,X+
 375 02c6 9C91                  ld r25,X
 376 02c8 D901                  movw r26,r18
 377 02ca 8D93                  st X+,r24
 378 02cc 9C93                  st X,r25
 379 02ce DF01                  movw r26,r30
 380 02d0 A050                  subi r26,lo8(-(PPM_diff))
 381 02d2 B040                  sbci r27,hi8(-(PPM_diff))
 382 02d4 8D91                  ld r24,X+
 383 02d6 9C91                  ld r25,X
 384 02d8 E050                  subi r30,lo8(-(old_ppm_diff.6))
 385 02da F040                  sbci r31,hi8(-(old_ppm_diff.6))
 386 02dc 9183                  std Z+1,r25
 387 02de 8083                  st Z,r24
 388                    .L43:
 389 02e0 E42F                  mov r30,r20
 390 02e2 FF27                  clr r31
 391 02e4 EE0F                  add r30,r30
 392 02e6 FF1F                  adc r31,r31
 393 02e8 9F01                  movw r18,r30
 394 02ea 2050                  subi r18,lo8(-(PPM_in))
 395 02ec 3040                  sbci r19,hi8(-(PPM_in))
 396 02ee DF01                  movw r26,r30
 397 02f0 A050                  subi r26,lo8(-(ppm_in.3))
 398 02f2 B040                  sbci r27,hi8(-(ppm_in.3))
 399 02f4 8D91                  ld r24,X+
 400 02f6 9C91                  ld r25,X
 401 02f8 D901                  movw r26,r18
 402 02fa 1196                  adiw r26,1
 403 02fc 9C93                  st X,r25
 404 02fe 8E93                  st -X,r24
 405 0300 DF01                  movw r26,r30
 406 0302 A050                  subi r26,lo8(-(ppm_diff.4))
 407 0304 B040                  sbci r27,hi8(-(ppm_diff.4))
 408 0306 8D91                  ld r24,X+
 409 0308 9C91                  ld r25,X
 410 030a E050                  subi r30,lo8(-(PPM_diff))
 411 030c F040                  sbci r31,hi8(-(PPM_diff))
 412 030e 9183                  std Z+1,r25
 413 0310 8083                  st Z,r24
 414 0312 842F                  mov r24,r20
 415 0314 8F5F                  subi r24,lo8(-(1))
 416 0316 482F                  mov r20,r24
 417 0318 8D30                  cpi r24,lo8(13)
 418 031a 00F0                  brlo .L44
 419 031c 8093 0000             sts index.7,r24
 420                    .L39:
 421 0320 8091 0000             lds r24,okay_cnt.8
 422 0324 8F3F                  cpi r24,lo8(-1)
 423 0326 01F0                  breq .L46
 424 0328 8F5F                  subi r24,lo8(-(1))
 425 032a 8093 0000             sts okay_cnt.8,r24
 426 032e 00C0                  rjmp .L46
 427                    .L38:
 428 0330 8091 0000             lds r24,okay_cnt.8
 429 0334 8536                  cpi r24,lo8(101)
 430 0336 00F0                  brlo .L47
 431 0338 8AE0                  ldi r24,lo8(10)
 432 033a 8093 0000             sts okay_cnt.8,r24
 433 033e 00C0                  rjmp .L48
 434                    .L47:
 435 0340 1092 0000             sts okay_cnt.8,__zero_reg__
 436                    .L48:
 437 0344 8091 0000             lds r24,PlatinenVersion
 438 0348 8A30                  cpi r24,lo8(10)
 439 034a 01F0                  breq .L50
 440 034c 8431                  cpi r24,lo8(20)
 441 034e 00F0                  brlo .L49
 442                    .L50:
 443 0350 289A                  sbi 37-0x20,0
 444 0352 00C0                  rjmp .L46
 445                    .L49:
 446 0354 2898                  cbi 37-0x20,0
 447                    .L46:
 448 0356 81E0                  ldi r24,lo8(1)
 449 0358 8093 0000             sts index.7,r24
 450 035c 8091 0000             lds r24,MotorenEin
 451 0360 8823                  tst r24
 452 0362 01F0                  breq .+2
 453 0364 00C0                  rjmp .L10
 454 0366 8091 0000             lds r24,tmpChannels
 455 036a 8093 0000             sts Channels,r24
 456 036e 00C0                  rjmp .L10
 457                    .L37:
 458 0370 6D30                  cpi r22,lo8(13)
 459 0372 00F0                  brlo .+2
 460 0374 00C0                  rjmp .L54
 461 0376 CA01                  movw r24,r20
 462 0378 8B5F                  subi r24,lo8(-(-251))
 463 037a 9040                  sbci r25,hi8(-(-251))
 464 037c 845B                  subi r24,lo8(436)
 465 037e 9140                  sbci r25,hi8(436)
 466 0380 00F0                  brlo .+2
 467 0382 00C0                  rjmp .L55
 468 0384 8091 0000             lds r24,PPM_Neutral
 469 0388 9091 0000             lds r25,(PPM_Neutral)+1
 470 038c 481B                  sub r20,r24
 471 038e 590B                  sbc r21,r25
 472 0390 E62F                  mov r30,r22
 473 0392 FF27                  clr r31
 474 0394 EE0F                  add r30,r30
 475 0396 FF1F                  adc r31,r31
 476 0398 E050                  subi r30,lo8(-(ppm_in.3))
 477 039a F040                  sbci r31,hi8(-(ppm_in.3))
 478 039c 8081                  ld r24,Z
 479 039e 9181                  ldd r25,Z+1
 480 03a0 FA01                  movw r30,r20
 481 03a2 E81B                  sub r30,r24
 482 03a4 F90B                  sbc r31,r25
 483 03a6 CF01                  movw r24,r30
 484 03a8 0596                  adiw r24,5
 485 03aa 0B97                  sbiw r24,11
 486 03ac 00F4                  brsh .L56
 487 03ae E091 0000             lds r30,EE_Parameter+105
 488 03b2 EE23                  tst r30
 489 03b4 01F0                  breq .L58
 490 03b6 FF27                  clr r31
 491 03b8 EE0F                  add r30,r30
 492 03ba FF1F                  adc r31,r31
 493 03bc E050                  subi r30,lo8(-(PPM_in))
 494 03be F040                  sbci r31,hi8(-(PPM_in))
 495 03c0 8081                  ld r24,Z
 496 03c2 9181                  ldd r25,Z+1
 497 03c4 8436                  cpi r24,100
 498 03c6 9105                  cpc r25,__zero_reg__
 499 03c8 04F4                  brge .L56
 500                    .L58:
 501 03ca 8091 0000             lds r24,okay_cnt.8
 502 03ce 8A31                  cpi r24,lo8(26)
 503 03d0 00F0                  brlo .L59
 504 03d2 8091 0000             lds r24,SenderOkay
 505 03d6 865F                  subi r24,lo8(-(10))
 506 03d8 00C0                  rjmp .L94
 507                    .L59:
 508 03da 8B30                  cpi r24,lo8(11)
 509 03dc 00F0                  brlo .L60
 510 03de 8091 0000             lds r24,SenderOkay
 511 03e2 8E5F                  subi r24,lo8(-(2))
 512                    .L94:
 513 03e4 8093 0000             sts SenderOkay,r24
 514                    .L60:
 515 03e8 8091 0000             lds r24,SenderOkay
 516 03ec 893C                  cpi r24,lo8(-55)
 517 03ee 00F0                  brlo .L56
 518 03f0 88EC                  ldi r24,lo8(-56)
 519 03f2 8093 0000             sts SenderOkay,r24
 520                    .L56:
 521 03f6 E62F                  mov r30,r22
 522 03f8 FF27                  clr r31
 523 03fa EE0F                  add r30,r30
 524 03fc FF1F                  adc r31,r31
 525 03fe E050                  subi r30,lo8(-(ppm_in.3))
 526 0400 F040                  sbci r31,hi8(-(ppm_in.3))
 527 0402 8081                  ld r24,Z
 528 0404 9181                  ldd r25,Z+1
 529 0406 9C01                  movw r18,r24
 530 0408 220F                  lsl r18
 531 040a 331F                  rol r19
 532 040c 280F                  add r18,r24
 533 040e 391F                  adc r19,r25
 534 0410 240F                  add r18,r20
 535 0412 351F                  adc r19,r21
 536 0414 37FF                  sbrs r19,7
 537 0416 00C0                  rjmp .L63
 538 0418 2D5F                  subi r18,lo8(-(3))
 539 041a 3F4F                  sbci r19,hi8(-(3))
 540                    .L63:
 541 041c E901                  movw r28,r18
 542 041e D595                  asr r29
 543 0420 C795                  ror r28
 544 0422 D595                  asr r29
 545 0424 C795                  ror r28
 546 0426 CA01                  movw r24,r20
 547 0428 0196                  adiw r24,1
 548 042a 8C17                  cp r24,r28
 549 042c 9D07                  cpc r25,r29
 550 042e 04F4                  brge .L64
 551 0430 2197                  sbiw r28,1
 552 0432 00C0                  rjmp .L65
 553                    .L64:
 554 0434 4150                  subi r20,lo8(-(-1))
 555 0436 5040                  sbci r21,hi8(-(-1))
 556 0438 C417                  cp r28,r20
 557 043a D507                  cpc r29,r21
 558 043c 04F4                  brge .L65
 559 043e 2196                  adiw r28,1
 560                    .L65:
 561 0440 8091 0000             lds r24,SenderOkay
 562 0444 8E3B                  cpi r24,lo8(-66)
 563 0446 00F0                  brlo .L67
 564 0448 E62F                  mov r30,r22
 565 044a FF27                  clr r31
 566 044c EE0F                  add r30,r30
 567 044e FF1F                  adc r31,r31
 568 0450 DF01                  movw r26,r30
 569 0452 A050                  subi r26,lo8(-(ppm_in.3))
 570 0454 B040                  sbci r27,hi8(-(ppm_in.3))
 571 0456 8D91                  ld r24,X+
 572 0458 9C91                  ld r25,X
 573 045a 9E01                  movw r18,r28
 574 045c 281B                  sub r18,r24
 575 045e 390B                  sbc r19,r25
 576 0460 C901                  movw r24,r18
 577 0462 63E0                  ldi r22,lo8(3)
 578 0464 70E0                  ldi r23,hi8(3)
 579 0466 0E94 0000             call __divmodhi4
 580 046a CB01                  movw r24,r22
 581 046c 880F                  lsl r24
 582 046e 991F                  rol r25
 583 0470 860F                  add r24,r22
 584 0472 971F                  adc r25,r23
 585 0474 E050                  subi r30,lo8(-(ppm_diff.4))
 586 0476 F040                  sbci r31,hi8(-(ppm_diff.4))
 587 0478 9183                  std Z+1,r25
 588 047a 8083                  st Z,r24
 589 047c 00C0                  rjmp .L68
 590                    .L67:
 591 047e E62F                  mov r30,r22
 592 0480 FF27                  clr r31
 593 0482 EE0F                  add r30,r30
 594 0484 FF1F                  adc r31,r31
 595 0486 E050                  subi r30,lo8(-(ppm_diff.4))
 596 0488 F040                  sbci r31,hi8(-(ppm_diff.4))
 597 048a 1182                  std Z+1,__zero_reg__
 598 048c 1082                  st Z,__zero_reg__
 599                    .L68:
 600 048e 8091 0000             lds r24,index.7
 601 0492 E82F                  mov r30,r24
 602 0494 FF27                  clr r31
 603 0496 EE0F                  add r30,r30
 604 0498 FF1F                  adc r31,r31
 605 049a E050                  subi r30,lo8(-(ppm_in.3))
 606 049c F040                  sbci r31,hi8(-(ppm_in.3))
 607 049e D183                  std Z+1,r29
 608 04a0 C083                  st Z,r28
 609 04a2 00C0                  rjmp .L69
 610                    .L55:
 611 04a4 8091 0000             lds r24,PlatinenVersion
 612 04a8 8A30                  cpi r24,lo8(10)
 613 04aa 01F0                  breq .L71
 614 04ac 8431                  cpi r24,lo8(20)
 615 04ae 00F0                  brlo .L70
 616                    .L71:
 617 04b0 289A                  sbi 37-0x20,0
 618 04b2 00C0                  rjmp .L69
 619                    .L70:
 620 04b4 2898                  cbi 37-0x20,0
 621                    .L69:
 622 04b6 8091 0000             lds r24,PlatinenVersion
 623 04ba 8431                  cpi r24,lo8(20)
 624 04bc 00F4                  brsh .L54
 625 04be 8091 0000             lds r24,index.7
 626 04c2 8530                  cpi r24,lo8(5)
 627 04c4 01F4                  brne .L74
 628 04c6 5D9A                  sbi 43-0x20,5
 629 04c8 00C0                  rjmp .L76
 630                    .L74:
 631 04ca 5D98                  cbi 43-0x20,5
 632 04cc 8630                  cpi r24,lo8(6)
 633 04ce 01F4                  brne .L76
 634 04d0 5C9A                  sbi 43-0x20,4
 635 04d2 00C0                  rjmp .L78
 636                    .L76:
 637 04d4 5C98                  cbi 43-0x20,4
 638 04d6 8730                  cpi r24,lo8(7)
 639 04d8 01F4                  brne .L78
 640 04da 5B9A                  sbi 43-0x20,3
 641 04dc 00C0                  rjmp .L54
 642                    .L78:
 643 04de 5B98                  cbi 43-0x20,3
 644                    .L54:
 645 04e0 8091 0000             lds r24,index.7
 646 04e4 8431                  cpi r24,lo8(20)
 647 04e6 00F4                  brsh .L80
 648 04e8 8F5F                  subi r24,lo8(-(1))
 649 04ea 8093 0000             sts index.7,r24
 650 04ee 00C0                  rjmp .L10
 651                    .L80:
 652 04f0 8431                  cpi r24,lo8(20)
 653 04f2 01F4                  brne .L10
 654 04f4 8091 0000             lds r24,PlatinenVersion
 655 04f8 8A30                  cpi r24,lo8(10)
 656 04fa 01F0                  breq .L84
 657 04fc 8431                  cpi r24,lo8(20)
 658 04fe 00F0                  brlo .L83
 659                    .L84:
 660 0500 289A                  sbi 37-0x20,0
 661 0502 00C0                  rjmp .L85
 662                    .L83:
 663 0504 2898                  cbi 37-0x20,0
 664                    .L85:
 665 0506 8EE1                  ldi r24,lo8(30)
 666 0508 8093 0000             sts index.7,r24
 667 050c 2CE0                  ldi r18,lo8(12)
 668 050e C0E0                  ldi r28,lo8(PPM_diff)
 669 0510 D0E0                  ldi r29,hi8(PPM_diff)
 670 0512 A0E0                  ldi r26,lo8(old_ppm_in.5)
 671 0514 B0E0                  ldi r27,hi8(old_ppm_in.5)
 672 0516 E0E0                  ldi r30,lo8(PPM_in)
 673 0518 F0E0                  ldi r31,hi8(PPM_in)
 674                    .L89:
 675 051a 8D91                  ld r24,X+
 676 051c 9D91                  ld r25,X+
 677 051e 9183                  std Z+1,r25
 678 0520 8083                  st Z,r24
 679 0522 3296                  adiw r30,2
 680 0524 1982                  std Y+1,__zero_reg__
 681 0526 1882                  st Y,__zero_reg__
 682 0528 2296                  adiw r28,2
 683 052a 2150                  subi r18,lo8(-(-1))
 684 052c 27FF                  sbrs r18,7
 685 052e 00C0                  rjmp .L89
 686                    .L10:
 687                    /* epilogue: frame size=0 */
 688 0530 FF91                  pop r31
 689 0532 EF91                  pop r30
 690 0534 DF91                  pop r29
 691 0536 CF91                  pop r28
 692 0538 BF91                  pop r27
 693 053a AF91                  pop r26
 694 053c 9F91                  pop r25
 695 053e 8F91                  pop r24
 696 0540 7F91                  pop r23
 697 0542 6F91                  pop r22
 698 0544 5F91                  pop r21
 699 0546 4F91                  pop r20
 700 0548 3F91                  pop r19
 701 054a 2F91                  pop r18
 702 054c 1F91                  pop r17
 703 054e 0F91                  pop r16
 704 0550 0F90                  pop __tmp_reg__
 705 0552 0FBE                  out __SREG__,__tmp_reg__
 706 0554 0F90                  pop __tmp_reg__
 707 0556 1F90                  pop __zero_reg__
 708 0558 1895                  reti
 709                    /* epilogue end (size=21) */
 710                    /* function __vector_12 size 651 (609) */
 712                            .comm PPM_in,52,1
 713                            .comm PPM_diff,52,1
 714                            .comm Channels,1,1
 715                    /* File "rc.c": code  692 = 0x02b4 ( 645), prologues  23, epilogues  24 */
DEFINED SYMBOLS
                            *ABS*:00000000 rc.c
  C:\Temp/ccrEgSVy.s:3      *ABS*:0000003f __SREG__
  C:\Temp/ccrEgSVy.s:4      *ABS*:0000003e __SP_H__
  C:\Temp/ccrEgSVy.s:5      *ABS*:0000003d __SP_L__
  C:\Temp/ccrEgSVy.s:6      *ABS*:00000000 __tmp_reg__
  C:\Temp/ccrEgSVy.s:7      *ABS*:00000001 __zero_reg__
  C:\Temp/ccrEgSVy.s:14     .data:00000000 PPM_Neutral
  C:\Temp/ccrEgSVy.s:19     .data:00000002 NewPpmData
  C:\Temp/ccrEgSVy.s:26     .bss:00000000 tmpChannels
  C:\Temp/ccrEgSVy.s:31     .text:00000000 rc_sum_init
                            *COM*:00000034 PPM_diff
                            *COM*:00000034 PPM_in
                             .bss:00000001 AltICR.0
  C:\Temp/ccrEgSVy.s:76     .bss:00000003 index.1
  C:\Temp/ccrEgSVy.s:77     .bss:00000005 AltICR.2
  C:\Temp/ccrEgSVy.s:78     .bss:00000007 ppm_in.3
  C:\Temp/ccrEgSVy.s:79     .bss:00000021 ppm_diff.4
  C:\Temp/ccrEgSVy.s:80     .bss:0000003b old_ppm_in.5
  C:\Temp/ccrEgSVy.s:81     .bss:00000055 old_ppm_diff.6
  C:\Temp/ccrEgSVy.s:82     .bss:0000006f index.7
  C:\Temp/ccrEgSVy.s:83     .bss:00000070 okay_cnt.8
  C:\Temp/ccrEgSVy.s:87     .text:00000052 __vector_12
                            *COM*:00000001 Channels

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
AdNeutralGier
AdNeutralRoll
AdNeutralNick
EE_Parameter
SenderOkay
__divmodhi4
PlatinenVersion
MotorenEin