1 .file "jennic.c" 2 __SREG__ = 0x3f 3 __SP_H__ = 0x3e 4 __SP_L__ = 0x3d 5 __CCP__ = 0x34 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .text 9 .global jen_new_signal 11 jen_new_signal: 12 0000 1F93 push r17 13 0002 CF93 push r28 14 0004 DF93 push r29 15 /* prologue: function */ 16 /* frame size = 0 */ 17 0006 182F mov r17,r24 18 0008 1F5F subi r17,lo8(-(1)) 19 000a CB01 movw r24,r22 20 000c 8353 subi r24,lo8(-(-11059)) 21 000e 9B42 sbci r25,hi8(-(-11059)) 22 0010 68E1 ldi r22,lo8(24) 23 0012 70E0 ldi r23,hi8(24) 24 0014 0E94 0000 call __divmodhi4 25 0018 AB01 movw r20,r22 26 001a C12F mov r28,r17 27 001c D0E0 ldi r29,lo8(0) 28 001e CC0F lsl r28 29 0020 DD1F rol r29 30 0022 FE01 movw r30,r28 31 0024 E050 subi r30,lo8(-(PPM_in)) 32 0026 F040 sbci r31,hi8(-(PPM_in)) 33 0028 8081 ld r24,Z 34 002a 9181 ldd r25,Z+1 35 002c 9C01 movw r18,r24 36 002e 220F lsl r18 37 0030 331F rol r19 38 0032 280F add r18,r24 39 0034 391F adc r19,r25 40 0036 240F add r18,r20 41 0038 351F adc r19,r21 42 003a 37FD sbrc r19,7 43 003c 00C0 rjmp .L10 44 .L2: 45 003e 3595 asr r19 46 0040 2795 ror r18 47 0042 3595 asr r19 48 0044 2795 ror r18 49 0046 CA01 movw r24,r20 50 0048 0196 adiw r24,1 51 004a 8217 cp r24,r18 52 004c 9307 cpc r25,r19 53 004e 04F4 brge .L3 54 0050 2150 subi r18,lo8(-(-1)) 55 0052 3040 sbci r19,hi8(-(-1)) 56 .L4: 57 0054 8091 0000 lds r24,RC_Quality 58 0058 883C cpi r24,lo8(-56) 59 005a 01F0 breq .L11 60 .L5: 61 005c FE01 movw r30,r28 62 005e E050 subi r30,lo8(-(PPM_diff)) 63 0060 F040 sbci r31,hi8(-(PPM_diff)) 64 0062 1182 std Z+1,__zero_reg__ 65 0064 1082 st Z,__zero_reg__ 66 .L6: 67 0066 FE01 movw r30,r28 68 0068 E050 subi r30,lo8(-(PPM_in)) 69 006a F040 sbci r31,hi8(-(PPM_in)) 70 006c 3183 std Z+1,r19 71 006e 2083 st Z,r18 72 0070 1530 cpi r17,lo8(5) 73 0072 00F4 brsh .L8 74 0074 8081 ld r24,Z 75 0076 9181 ldd r25,Z+1 76 0078 C050 subi r28,lo8(-(DebugOut)) 77 007a D040 sbci r29,hi8(-(DebugOut)) 78 007c 9BA7 std Y+43,r25 79 007e 8AA7 std Y+42,r24 80 0080 1430 cpi r17,lo8(4) 81 0082 01F4 brne .L8 82 0084 1092 0000 sts NewPpmData,__zero_reg__ 83 .L8: 84 /* epilogue start */ 85 0088 DF91 pop r29 86 008a CF91 pop r28 87 008c 1F91 pop r17 88 008e 0895 ret 89 .L3: 90 0090 4150 subi r20,lo8(-(-1)) 91 0092 5040 sbci r21,hi8(-(-1)) 92 0094 2417 cp r18,r20 93 0096 3507 cpc r19,r21 94 0098 04F4 brge .L4 95 009a 2F5F subi r18,lo8(-(1)) 96 009c 3F4F sbci r19,hi8(-(1)) 97 009e 8091 0000 lds r24,RC_Quality 98 00a2 883C cpi r24,lo8(-56) 99 00a4 01F4 brne .L5 100 .L11: 101 00a6 FE01 movw r30,r28 102 00a8 E050 subi r30,lo8(-(PPM_in)) 103 00aa F040 sbci r31,hi8(-(PPM_in)) 104 00ac 8081 ld r24,Z 105 00ae 9181 ldd r25,Z+1 106 00b0 A901 movw r20,r18 107 00b2 481B sub r20,r24 108 00b4 590B sbc r21,r25 109 00b6 CA01 movw r24,r20 110 00b8 63E0 ldi r22,lo8(3) 111 00ba 70E0 ldi r23,hi8(3) 112 00bc 0E94 0000 call __divmodhi4 113 00c0 CB01 movw r24,r22 114 00c2 880F lsl r24 115 00c4 991F rol r25 116 00c6 860F add r24,r22 117 00c8 971F adc r25,r23 118 00ca FE01 movw r30,r28 119 00cc E050 subi r30,lo8(-(PPM_diff)) 120 00ce F040 sbci r31,hi8(-(PPM_diff)) 121 00d0 9183 std Z+1,r25 122 00d2 8083 st Z,r24 123 00d4 00C0 rjmp .L6 124 .L10: 125 00d6 2D5F subi r18,lo8(-(3)) 126 00d8 3F4F sbci r19,hi8(-(3)) 127 00da 00C0 rjmp .L2 129 .global jen_decode_packet 131 jen_decode_packet: 132 00dc 1F93 push r17 133 /* prologue: function */ 134 /* frame size = 0 */ 135 00de 9091 0000 lds r25,PacketBuffer 136 00e2 9093 0000 sts jen_status,r25 137 00e6 2091 0000 lds r18,PacketBuffer+1 138 00ea 822F mov r24,r18 139 00ec 807F andi r24,lo8(-16) 140 00ee 01F4 brne .L17 141 00f0 9923 tst r25 142 00f2 01F4 brne .L14 143 00f4 88EC ldi r24,lo8(-56) 144 00f6 8093 0000 sts RC_Quality,r24 145 00fa 122F mov r17,r18 146 00fc 1F70 andi r17,lo8(15) 147 00fe 1A30 cpi r17,lo8(10) 148 0100 00F0 brlo .L19 149 .L17: 150 /* epilogue start */ 151 0102 1F91 pop r17 152 0104 0895 ret 153 .L14: 154 0106 1092 0000 sts RC_Quality,__zero_reg__ 155 010a 80E0 ldi r24,lo8(0) 156 010c 90E0 ldi r25,hi8(0) 157 .L16: 158 010e FC01 movw r30,r24 159 0110 EE0F lsl r30 160 0112 FF1F rol r31 161 0114 DF01 movw r26,r30 162 0116 A050 subi r26,lo8(-(PPM_diff)) 163 0118 B040 sbci r27,hi8(-(PPM_diff)) 164 011a 1196 adiw r26,1 165 011c 1C92 st X,__zero_reg__ 166 011e 1E92 st -X,__zero_reg__ 167 0120 E050 subi r30,lo8(-(PPM_in)) 168 0122 F040 sbci r31,hi8(-(PPM_in)) 169 0124 1182 std Z+1,__zero_reg__ 170 0126 1082 st Z,__zero_reg__ 171 0128 0196 adiw r24,1 172 012a 8530 cpi r24,5 173 012c 9105 cpc r25,__zero_reg__ 174 012e 01F4 brne .L16 175 0130 122F mov r17,r18 176 0132 1F70 andi r17,lo8(15) 177 0134 1A30 cpi r17,lo8(10) 178 0136 00F4 brsh .L17 179 .L19: 180 0138 8091 0000 lds r24,PacketBuffer+2 181 013c 8093 0000 sts ChannelPair+1,r24 182 0140 8091 0000 lds r24,PacketBuffer+3 183 0144 8093 0000 sts ChannelPair,r24 184 0148 8091 0000 lds r24,PacketBuffer+4 185 014c 8093 0000 sts ChannelPair+3,r24 186 0150 8091 0000 lds r24,PacketBuffer+5 187 0154 8093 0000 sts ChannelPair+2,r24 188 0158 6091 0000 lds r22,ChannelPair 189 015c 7091 0000 lds r23,(ChannelPair)+1 190 0160 812F mov r24,r17 191 0162 0E94 0000 call jen_new_signal 192 0166 6091 0000 lds r22,ChannelPair+2 193 016a 7091 0000 lds r23,(ChannelPair+2)+1 194 016e 812F mov r24,r17 195 0170 8F5F subi r24,lo8(-(1)) 196 0172 0E94 0000 call jen_new_signal 197 0176 1F91 pop r17 198 0178 0895 ret 200 .global jen_parser 202 jen_parser: 203 017a 1F93 push r17 204 /* prologue: function */ 205 /* frame size = 0 */ 206 017c 182F mov r17,r24 207 017e 8F3F cpi r24,lo8(-1) 208 0180 01F0 breq .L28 209 .L21: 210 0182 8091 0000 lds r24,cnt.1392 211 0186 8630 cpi r24,lo8(6) 212 0188 00F0 brlo .L23 213 018a 8091 0000 lds r24,crc.1391 214 018e 8095 com r24 215 0190 8093 0000 sts crc.1391,r24 216 0194 8F3F cpi r24,lo8(-1) 217 0196 01F0 breq .L29 218 .L24: 219 0198 1817 cp r17,r24 220 019a 01F0 breq .L30 221 .L25: 222 019c 1092 0000 sts cnt.1392,__zero_reg__ 223 01a0 1092 0000 sts crc.1391,__zero_reg__ 224 01a4 00C0 rjmp .L26 225 .L23: 226 01a6 E82F mov r30,r24 227 01a8 F0E0 ldi r31,lo8(0) 228 01aa E050 subi r30,lo8(-(PacketBuffer)) 229 01ac F040 sbci r31,hi8(-(PacketBuffer)) 230 01ae 1083 st Z,r17 231 01b0 8F5F subi r24,lo8(-(1)) 232 01b2 8093 0000 sts cnt.1392,r24 233 01b6 8091 0000 lds r24,crc.1391 234 01ba 810F add r24,r17 235 01bc 8093 0000 sts crc.1391,r24 236 .L26: 237 01c0 1093 0000 sts last_c.1390,r17 238 .L27: 239 /* epilogue start */ 240 01c4 1F91 pop r17 241 01c6 0895 ret 242 .L28: 243 01c8 8091 0000 lds r24,last_c.1390 244 01cc 8F3F cpi r24,lo8(-1) 245 01ce 01F4 brne .L21 246 01d0 1092 0000 sts cnt.1392,__zero_reg__ 247 01d4 1092 0000 sts crc.1391,__zero_reg__ 248 01d8 00C0 rjmp .L27 249 .L29: 250 01da 8EEF ldi r24,lo8(-2) 251 01dc 8093 0000 sts crc.1391,r24 252 01e0 00C0 rjmp .L24 253 .L30: 254 01e2 0E94 0000 call jen_decode_packet 255 01e6 00C0 rjmp .L25 257 .global jen_status 258 .global jen_status 259 .section .bss 262 jen_status: 263 0000 00 .skip 1,0 264 .lcomm cnt.1392,1 265 .lcomm crc.1391,1 266 .lcomm last_c.1390,1 267 .comm PacketBuffer,9,1 268 .comm ChannelPair,4,1 269 .global __do_clear_bss DEFINED SYMBOLS *ABS*:00000000 jennic.c C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:2 *ABS*:0000003f __SREG__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:3 *ABS*:0000003e __SP_H__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:4 *ABS*:0000003d __SP_L__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:5 *ABS*:00000034 __CCP__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:6 *ABS*:00000000 __tmp_reg__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:7 *ABS*:00000001 __zero_reg__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:11 .text:00000000 jen_new_signal C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:131 .text:000000dc jen_decode_packet *COM*:00000009 PacketBuffer C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:262 .bss:00000000 jen_status *COM*:00000004 ChannelPair C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:202 .text:0000017a jen_parser .bss:00000001 cnt.1392 C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:264 .bss:00000002 crc.1391 C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccxkbGnW.s:265 .bss:00000003 last_c.1390 UNDEFINED SYMBOLS __divmodhi4 PPM_in RC_Quality PPM_diff DebugOut NewPpmData __do_clear_bss