1359 lines
82 KiB
Plaintext
1359 lines
82 KiB
Plaintext
1 ;--------------------------------------------------------
|
|
2 ; File Created by SDCC : free open source ANSI-C Compiler
|
|
3 ; Version 4.2.0 #13081 (Linux)
|
|
4 ;--------------------------------------------------------
|
|
5 .module cmd
|
|
6 .optsdcc -mmcs51 --model-small
|
|
7
|
|
8 ;--------------------------------------------------------
|
|
9 ; Public variables in this module
|
|
10 ;--------------------------------------------------------
|
|
11 .globl ___memcpy
|
|
12 .globl _strlen
|
|
13 .globl _memcmp
|
|
14 .globl _uart1_read_byte
|
|
15 .globl _uart1_rx_available
|
|
16 .globl _uart1_send_bytes
|
|
17 .globl _EADC
|
|
18 .globl _ET1
|
|
19 .globl _ET0
|
|
20 .globl _ES
|
|
21 .globl _EA
|
|
22 .globl _REN
|
|
23 .globl _RI
|
|
24 .globl _TI
|
|
25 .globl _TR1
|
|
26 .globl _TF1
|
|
27 .globl _IT0
|
|
28 .globl _IE0
|
|
29 .globl _TR0
|
|
30 .globl _TF0
|
|
31 .globl _CMPCR2
|
|
32 .globl _CMPCR1
|
|
33 .globl _TA
|
|
34 .globl _IRCBAND_REG
|
|
35 .globl _IAP_TPS
|
|
36 .globl _IAP_CONTR
|
|
37 .globl _IAP_TRIG
|
|
38 .globl _IAP_CMD
|
|
39 .globl _IAP_ADDRL
|
|
40 .globl _IAP_ADDRH
|
|
41 .globl _IAP_DATA
|
|
42 .globl _WDT_CONTR
|
|
43 .globl _PCA_PWM3
|
|
44 .globl _PCA_PWM2
|
|
45 .globl _PCA_PWM1
|
|
46 .globl _PCA_PWM0
|
|
47 .globl _CCAP3L
|
|
48 .globl _CCAP2L
|
|
49 .globl _CCAP1L
|
|
50 .globl _CCAP0L
|
|
51 .globl _CCAPM3
|
|
52 .globl _CCAPM2
|
|
53 .globl _CCAPM1
|
|
54 .globl _CCAPM0
|
|
55 .globl _CMOD
|
|
56 .globl _CCON
|
|
57 .globl _ADCTIM_X
|
|
58 .globl _ADCCFG
|
|
59 .globl _ADC_RESL
|
|
60 .globl _ADC_RES
|
|
61 .globl _ADC_CONTR
|
|
62 .globl _SPDAT
|
|
63 .globl _SPCTL
|
|
64 .globl _SPSTAT
|
|
65 .globl _IP2H
|
|
66 .globl _IP2
|
|
67 .globl _IP
|
|
68 .globl _IE2
|
|
69 .globl _IE
|
|
70 .globl _BRT
|
|
71 .globl _P_SW1
|
|
72 .globl _SADEN
|
|
73 .globl _SADDR
|
|
74 .globl _S2BUF
|
|
75 .globl _S2CON
|
|
76 .globl _SBUF
|
|
77 .globl _SCON
|
|
78 .globl _TM4PS_X
|
|
79 .globl _TM3PS_X
|
|
80 .globl _TM2PS_X
|
|
81 .globl _T4T3M
|
|
82 .globl _T4L
|
|
83 .globl _T4H
|
|
84 .globl _T3L
|
|
85 .globl _T3H
|
|
86 .globl _T2L
|
|
87 .globl _T2H
|
|
88 .globl _INTCLKO
|
|
89 .globl _AUXR
|
|
90 .globl _TH1
|
|
91 .globl _TH0
|
|
92 .globl _TL1
|
|
93 .globl _TL0
|
|
94 .globl _TMOD
|
|
95 .globl _TCON
|
|
96 .globl _P_SW2
|
|
97 .globl _P5M0
|
|
98 .globl _P5M1
|
|
99 .globl _P4M0
|
|
100 .globl _P4M1
|
|
101 .globl _P3M0
|
|
102 .globl _P3M1
|
|
103 .globl _P2M0
|
|
104 .globl _P2M1
|
|
105 .globl _P1M0
|
|
106 .globl _P1M1
|
|
107 .globl _P0M0
|
|
108 .globl _P0M1
|
|
109 .globl _PSW
|
|
110 .globl _B
|
|
111 .globl _ACC
|
|
112 .globl _PCON
|
|
113 .globl _DPH
|
|
114 .globl _DPL
|
|
115 .globl _SP
|
|
116 .globl _P5
|
|
117 .globl _P4
|
|
118 .globl _P3
|
|
119 .globl _P2
|
|
120 .globl _P1
|
|
121 .globl _P0
|
|
122 .globl _cmd_poll
|
|
123 .globl _cmd_feed_byte
|
|
124 ;--------------------------------------------------------
|
|
125 ; special function registers
|
|
126 ;--------------------------------------------------------
|
|
127 .area RSEG (ABS,DATA)
|
|
000000 128 .org 0x0000
|
|
000080 129 _P0 = 0x0080
|
|
000090 130 _P1 = 0x0090
|
|
0000A0 131 _P2 = 0x00a0
|
|
0000B0 132 _P3 = 0x00b0
|
|
0000C0 133 _P4 = 0x00c0
|
|
0000C8 134 _P5 = 0x00c8
|
|
000081 135 _SP = 0x0081
|
|
000082 136 _DPL = 0x0082
|
|
000083 137 _DPH = 0x0083
|
|
000087 138 _PCON = 0x0087
|
|
0000E0 139 _ACC = 0x00e0
|
|
0000F0 140 _B = 0x00f0
|
|
0000D0 141 _PSW = 0x00d0
|
|
000093 142 _P0M1 = 0x0093
|
|
000094 143 _P0M0 = 0x0094
|
|
000091 144 _P1M1 = 0x0091
|
|
000092 145 _P1M0 = 0x0092
|
|
000095 146 _P2M1 = 0x0095
|
|
000096 147 _P2M0 = 0x0096
|
|
0000B1 148 _P3M1 = 0x00b1
|
|
0000B2 149 _P3M0 = 0x00b2
|
|
0000B3 150 _P4M1 = 0x00b3
|
|
0000B4 151 _P4M0 = 0x00b4
|
|
0000C9 152 _P5M1 = 0x00c9
|
|
0000CA 153 _P5M0 = 0x00ca
|
|
0000BA 154 _P_SW2 = 0x00ba
|
|
000088 155 _TCON = 0x0088
|
|
000089 156 _TMOD = 0x0089
|
|
00008A 157 _TL0 = 0x008a
|
|
00008B 158 _TL1 = 0x008b
|
|
00008C 159 _TH0 = 0x008c
|
|
00008D 160 _TH1 = 0x008d
|
|
00008E 161 _AUXR = 0x008e
|
|
00008F 162 _INTCLKO = 0x008f
|
|
0000D6 163 _T2H = 0x00d6
|
|
0000D7 164 _T2L = 0x00d7
|
|
0000D4 165 _T3H = 0x00d4
|
|
0000D5 166 _T3L = 0x00d5
|
|
0000D2 167 _T4H = 0x00d2
|
|
0000D3 168 _T4L = 0x00d3
|
|
0000D1 169 _T4T3M = 0x00d1
|
|
00FEA1 170 _TM2PS_X = 0xfea1
|
|
00FEA2 171 _TM3PS_X = 0xfea2
|
|
00FEA3 172 _TM4PS_X = 0xfea3
|
|
000098 173 _SCON = 0x0098
|
|
000099 174 _SBUF = 0x0099
|
|
00009A 175 _S2CON = 0x009a
|
|
00009B 176 _S2BUF = 0x009b
|
|
0000A9 177 _SADDR = 0x00a9
|
|
0000B9 178 _SADEN = 0x00b9
|
|
0000A2 179 _P_SW1 = 0x00a2
|
|
00009C 180 _BRT = 0x009c
|
|
0000A8 181 _IE = 0x00a8
|
|
0000AF 182 _IE2 = 0x00af
|
|
0000B8 183 _IP = 0x00b8
|
|
0000B6 184 _IP2 = 0x00b6
|
|
0000B7 185 _IP2H = 0x00b7
|
|
0000CD 186 _SPSTAT = 0x00cd
|
|
0000CE 187 _SPCTL = 0x00ce
|
|
0000CF 188 _SPDAT = 0x00cf
|
|
0000BC 189 _ADC_CONTR = 0x00bc
|
|
0000BD 190 _ADC_RES = 0x00bd
|
|
0000BE 191 _ADC_RESL = 0x00be
|
|
0000DE 192 _ADCCFG = 0x00de
|
|
00FEA8 193 _ADCTIM_X = 0xfea8
|
|
0000D8 194 _CCON = 0x00d8
|
|
0000D9 195 _CMOD = 0x00d9
|
|
0000DA 196 _CCAPM0 = 0x00da
|
|
0000DB 197 _CCAPM1 = 0x00db
|
|
0000DC 198 _CCAPM2 = 0x00dc
|
|
0000DD 199 _CCAPM3 = 0x00dd
|
|
0000EA 200 _CCAP0L = 0x00ea
|
|
0000EB 201 _CCAP1L = 0x00eb
|
|
0000EC 202 _CCAP2L = 0x00ec
|
|
0000ED 203 _CCAP3L = 0x00ed
|
|
0000F2 204 _PCA_PWM0 = 0x00f2
|
|
0000F3 205 _PCA_PWM1 = 0x00f3
|
|
0000F4 206 _PCA_PWM2 = 0x00f4
|
|
0000F5 207 _PCA_PWM3 = 0x00f5
|
|
0000C1 208 _WDT_CONTR = 0x00c1
|
|
0000C2 209 _IAP_DATA = 0x00c2
|
|
0000C3 210 _IAP_ADDRH = 0x00c3
|
|
0000C4 211 _IAP_ADDRL = 0x00c4
|
|
0000C5 212 _IAP_CMD = 0x00c5
|
|
0000C6 213 _IAP_TRIG = 0x00c6
|
|
0000C7 214 _IAP_CONTR = 0x00c7
|
|
0000F7 215 _IAP_TPS = 0x00f7
|
|
00009D 216 _IRCBAND_REG = 0x009d
|
|
0000AE 217 _TA = 0x00ae
|
|
0000E6 218 _CMPCR1 = 0x00e6
|
|
0000E7 219 _CMPCR2 = 0x00e7
|
|
220 ;--------------------------------------------------------
|
|
221 ; special function bits
|
|
222 ;--------------------------------------------------------
|
|
223 .area RSEG (ABS,DATA)
|
|
000000 224 .org 0x0000
|
|
00008D 225 _TF0 = 0x008d
|
|
00008C 226 _TR0 = 0x008c
|
|
000089 227 _IE0 = 0x0089
|
|
000088 228 _IT0 = 0x0088
|
|
00008F 229 _TF1 = 0x008f
|
|
00008E 230 _TR1 = 0x008e
|
|
000099 231 _TI = 0x0099
|
|
000098 232 _RI = 0x0098
|
|
00009C 233 _REN = 0x009c
|
|
0000AF 234 _EA = 0x00af
|
|
0000AC 235 _ES = 0x00ac
|
|
0000A9 236 _ET0 = 0x00a9
|
|
0000AB 237 _ET1 = 0x00ab
|
|
0000AD 238 _EADC = 0x00ad
|
|
239 ;--------------------------------------------------------
|
|
240 ; overlayable register banks
|
|
241 ;--------------------------------------------------------
|
|
242 .area REG_BANK_0 (REL,OVR,DATA)
|
|
000000 243 .ds 8
|
|
244 ;--------------------------------------------------------
|
|
245 ; internal ram data
|
|
246 ;--------------------------------------------------------
|
|
247 .area DSEG (DATA)
|
|
000000 248 _cmd_starts_with_n_65536_34:
|
|
000000 249 .ds 1
|
|
000001 250 _cmd_extract_parens_PARM_2:
|
|
000001 251 .ds 1
|
|
000002 252 _cmd_extract_parens_out_65536_37:
|
|
000002 253 .ds 3
|
|
000005 254 _cmd_extract_parens_len_262144_42:
|
|
000005 255 .ds 1
|
|
000006 256 _cmd_extract_parens_sloc0_1_0:
|
|
000006 257 .ds 3
|
|
000009 258 _dec_to_int_PARM_2:
|
|
000009 259 .ds 1
|
|
00000A 260 _dec_to_int_s_65536_47:
|
|
00000A 261 .ds 3
|
|
00000D 262 _cmd_feed_byte_p_262144_59:
|
|
00000D 263 .ds 16
|
|
00001D 264 _cmd_feed_byte_p_262144_67:
|
|
00001D 265 .ds 32
|
|
00003D 266 _cmd_feed_byte_pl_262144_67:
|
|
00003D 267 .ds 1
|
|
00003E 268 _cmd_feed_byte_addr_327680_68:
|
|
00003E 269 .ds 5
|
|
000043 270 _cmd_feed_byte_count_327680_68:
|
|
000043 271 .ds 1
|
|
000044 272 _cmd_feed_byte_i_327680_68:
|
|
000044 273 .ds 1
|
|
000045 274 _cmd_feed_byte_p_262144_76:
|
|
000045 275 .ds 8
|
|
00004D 276 _cmd_feed_byte_sloc0_1_0:
|
|
00004D 277 .ds 2
|
|
00004F 278 _cmd_feed_byte_sloc1_1_0:
|
|
00004F 279 .ds 2
|
|
280 ;--------------------------------------------------------
|
|
281 ; overlayable items in internal ram
|
|
282 ;--------------------------------------------------------
|
|
283 .area OSEG (OVR,DATA)
|
|
284 ;--------------------------------------------------------
|
|
285 ; indirectly addressable internal ram data
|
|
286 ;--------------------------------------------------------
|
|
287 .area ISEG (DATA)
|
|
288 ;--------------------------------------------------------
|
|
289 ; absolute internal ram data
|
|
290 ;--------------------------------------------------------
|
|
291 .area IABS (ABS,DATA)
|
|
292 .area IABS (ABS,DATA)
|
|
293 ;--------------------------------------------------------
|
|
294 ; bit data
|
|
295 ;--------------------------------------------------------
|
|
296 .area BSEG (BIT)
|
|
297 ;--------------------------------------------------------
|
|
298 ; paged external ram data
|
|
299 ;--------------------------------------------------------
|
|
300 .area PSEG (PAG,XDATA)
|
|
301 ;--------------------------------------------------------
|
|
302 ; external ram data
|
|
303 ;--------------------------------------------------------
|
|
304 .area XSEG (XDATA)
|
|
000000 305 _s_buf:
|
|
000000 306 .ds 32
|
|
307 ;--------------------------------------------------------
|
|
308 ; absolute external ram data
|
|
309 ;--------------------------------------------------------
|
|
310 .area XABS (ABS,XDATA)
|
|
311 ;--------------------------------------------------------
|
|
312 ; external initialized ram data
|
|
313 ;--------------------------------------------------------
|
|
314 .area XISEG (XDATA)
|
|
000000 315 _s_len:
|
|
000000 316 .ds 1
|
|
317 .area HOME (CODE)
|
|
318 .area GSINIT0 (CODE)
|
|
319 .area GSINIT1 (CODE)
|
|
320 .area GSINIT2 (CODE)
|
|
321 .area GSINIT3 (CODE)
|
|
322 .area GSINIT4 (CODE)
|
|
323 .area GSINIT5 (CODE)
|
|
324 .area GSINIT (CODE)
|
|
325 .area GSFINAL (CODE)
|
|
326 .area CSEG (CODE)
|
|
327 ;--------------------------------------------------------
|
|
328 ; global & static initialisations
|
|
329 ;--------------------------------------------------------
|
|
330 .area HOME (CODE)
|
|
331 .area GSINIT (CODE)
|
|
332 .area GSFINAL (CODE)
|
|
333 .area GSINIT (CODE)
|
|
334 ;--------------------------------------------------------
|
|
335 ; Home
|
|
336 ;--------------------------------------------------------
|
|
337 .area HOME (CODE)
|
|
338 .area HOME (CODE)
|
|
339 ;--------------------------------------------------------
|
|
340 ; code
|
|
341 ;--------------------------------------------------------
|
|
342 .area CSEG (CODE)
|
|
343 ;------------------------------------------------------------
|
|
344 ;Allocation info for local variables in function 'cmd_starts_with'
|
|
345 ;------------------------------------------------------------
|
|
346 ;prefix Allocated to registers r5 r6 r7
|
|
347 ;n Allocated with name '_cmd_starts_with_n_65536_34'
|
|
348 ;i Allocated to registers r4
|
|
349 ;a Allocated to registers r2
|
|
350 ;b Allocated to registers r3
|
|
351 ;------------------------------------------------------------
|
|
352 ; src/cmd.c:19: static uint8_t cmd_starts_with(const char *prefix)
|
|
353 ; -----------------------------------------
|
|
354 ; function cmd_starts_with
|
|
355 ; -----------------------------------------
|
|
000000 356 _cmd_starts_with:
|
|
000007 357 ar7 = 0x07
|
|
000006 358 ar6 = 0x06
|
|
000005 359 ar5 = 0x05
|
|
000004 360 ar4 = 0x04
|
|
000003 361 ar3 = 0x03
|
|
000002 362 ar2 = 0x02
|
|
000001 363 ar1 = 0x01
|
|
000000 364 ar0 = 0x00
|
|
365 ; src/cmd.c:21: uint8_t n = strlen(prefix);
|
|
000000 AD 82 [24] 366 mov r5,dpl
|
|
000002 AE 83 [24] 367 mov r6,dph
|
|
000004 AF F0 [24] 368 mov r7,b
|
|
000006 C0 07 [24] 369 push ar7
|
|
000008 C0 06 [24] 370 push ar6
|
|
00000A C0 05 [24] 371 push ar5
|
|
00000C 12r00r00 [24] 372 lcall _strlen
|
|
00000F AB 82 [24] 373 mov r3,dpl
|
|
000011 D0 05 [24] 374 pop ar5
|
|
000013 D0 06 [24] 375 pop ar6
|
|
000015 D0 07 [24] 376 pop ar7
|
|
000017 8B*00 [24] 377 mov _cmd_starts_with_n_65536_34,r3
|
|
378 ; src/cmd.c:22: if (s_len < n) return 0;
|
|
000019 90r00r00 [24] 379 mov dptr,#_s_len
|
|
00001C E0 [24] 380 movx a,@dptr
|
|
00001D C3 [12] 381 clr c
|
|
00001E 95*00 [12] 382 subb a,_cmd_starts_with_n_65536_34
|
|
000020 50 04 [24] 383 jnc 00124$
|
|
000022 75 82 00 [24] 384 mov dpl,#0x00
|
|
385 ; src/cmd.c:23: for (uint8_t i = 0; i < n; i++) {
|
|
000025 22 [24] 386 ret
|
|
000026 387 00124$:
|
|
000026 7C 00 [12] 388 mov r4,#0x00
|
|
000028 389 00113$:
|
|
000028 C3 [12] 390 clr c
|
|
000029 EC [12] 391 mov a,r4
|
|
00002A 95*00 [12] 392 subb a,_cmd_starts_with_n_65536_34
|
|
00002C 50 4B [24] 393 jnc 00111$
|
|
394 ; src/cmd.c:24: char a = s_buf[i];
|
|
00002E EC [12] 395 mov a,r4
|
|
00002F 24r00 [12] 396 add a,#_s_buf
|
|
000031 F5 82 [12] 397 mov dpl,a
|
|
000033 E4 [12] 398 clr a
|
|
000034 34s00 [12] 399 addc a,#(_s_buf >> 8)
|
|
000036 F5 83 [12] 400 mov dph,a
|
|
000038 E0 [24] 401 movx a,@dptr
|
|
000039 FA [12] 402 mov r2,a
|
|
403 ; src/cmd.c:25: char b = prefix[i];
|
|
00003A EC [12] 404 mov a,r4
|
|
00003B 2D [12] 405 add a,r5
|
|
00003C F8 [12] 406 mov r0,a
|
|
00003D E4 [12] 407 clr a
|
|
00003E 3E [12] 408 addc a,r6
|
|
00003F F9 [12] 409 mov r1,a
|
|
000040 8F 03 [24] 410 mov ar3,r7
|
|
000042 88 82 [24] 411 mov dpl,r0
|
|
000044 89 83 [24] 412 mov dph,r1
|
|
000046 8B F0 [24] 413 mov b,r3
|
|
000048 12r00r00 [24] 414 lcall __gptrget
|
|
00004B FB [12] 415 mov r3,a
|
|
416 ; src/cmd.c:26: if (a >= 'a' && a <= 'z') a -= 32;
|
|
00004C BA 61 00 [24] 417 cjne r2,#0x61,00151$
|
|
00004F 418 00151$:
|
|
00004F 40 0B [24] 419 jc 00104$
|
|
000051 EA [12] 420 mov a,r2
|
|
000052 24 85 [12] 421 add a,#0xff - 0x7a
|
|
000054 40 06 [24] 422 jc 00104$
|
|
000056 8A 01 [24] 423 mov ar1,r2
|
|
000058 E9 [12] 424 mov a,r1
|
|
000059 24 E0 [12] 425 add a,#0xe0
|
|
00005B FA [12] 426 mov r2,a
|
|
00005C 427 00104$:
|
|
428 ; src/cmd.c:27: if (b >= 'a' && b <= 'z') b -= 32;
|
|
00005C BB 61 00 [24] 429 cjne r3,#0x61,00154$
|
|
00005F 430 00154$:
|
|
00005F 40 0B [24] 431 jc 00107$
|
|
000061 EB [12] 432 mov a,r3
|
|
000062 24 85 [12] 433 add a,#0xff - 0x7a
|
|
000064 40 06 [24] 434 jc 00107$
|
|
000066 8B 01 [24] 435 mov ar1,r3
|
|
000068 E9 [12] 436 mov a,r1
|
|
000069 24 E0 [12] 437 add a,#0xe0
|
|
00006B FB [12] 438 mov r3,a
|
|
00006C 439 00107$:
|
|
440 ; src/cmd.c:28: if (a != b) return 0;
|
|
00006C EA [12] 441 mov a,r2
|
|
00006D B5 03 02 [24] 442 cjne a,ar3,00157$
|
|
000070 80 04 [24] 443 sjmp 00114$
|
|
000072 444 00157$:
|
|
000072 75 82 00 [24] 445 mov dpl,#0x00
|
|
000075 22 [24] 446 ret
|
|
000076 447 00114$:
|
|
448 ; src/cmd.c:23: for (uint8_t i = 0; i < n; i++) {
|
|
000076 0C [12] 449 inc r4
|
|
000077 80 AF [24] 450 sjmp 00113$
|
|
000079 451 00111$:
|
|
452 ; src/cmd.c:30: return 1;
|
|
000079 75 82 01 [24] 453 mov dpl,#0x01
|
|
454 ; src/cmd.c:31: }
|
|
00007C 22 [24] 455 ret
|
|
456 ;------------------------------------------------------------
|
|
457 ;Allocation info for local variables in function 'cmd_extract_parens'
|
|
458 ;------------------------------------------------------------
|
|
459 ;out_max Allocated with name '_cmd_extract_parens_PARM_2'
|
|
460 ;out Allocated with name '_cmd_extract_parens_out_65536_37'
|
|
461 ;open Allocated to registers r4
|
|
462 ;start Allocated to registers r3
|
|
463 ;i Allocated to registers r2
|
|
464 ;len Allocated with name '_cmd_extract_parens_len_262144_42'
|
|
465 ;sloc0 Allocated with name '_cmd_extract_parens_sloc0_1_0'
|
|
466 ;------------------------------------------------------------
|
|
467 ; src/cmd.c:34: static uint8_t cmd_extract_parens(uint8_t *out, uint8_t out_max)
|
|
468 ; -----------------------------------------
|
|
469 ; function cmd_extract_parens
|
|
470 ; -----------------------------------------
|
|
00007D 471 _cmd_extract_parens:
|
|
00007D 85 82*02 [24] 472 mov _cmd_extract_parens_out_65536_37,dpl
|
|
000080 85 83*03 [24] 473 mov (_cmd_extract_parens_out_65536_37 + 1),dph
|
|
000083 85 F0*04 [24] 474 mov (_cmd_extract_parens_out_65536_37 + 2),b
|
|
475 ; src/cmd.c:36: uint8_t open = 0, start = 0;
|
|
000086 7C 00 [12] 476 mov r4,#0x00
|
|
000088 7B 00 [12] 477 mov r3,#0x00
|
|
478 ; src/cmd.c:37: for (uint8_t i = 0; i < s_len; i++) {
|
|
00008A 7A 00 [12] 479 mov r2,#0x00
|
|
00008C 79 00 [12] 480 mov r1,#0x00
|
|
00008E 481 00111$:
|
|
00008E 90r00r00 [24] 482 mov dptr,#_s_len
|
|
000091 E0 [24] 483 movx a,@dptr
|
|
000092 F8 [12] 484 mov r0,a
|
|
000093 C3 [12] 485 clr c
|
|
000094 E9 [12] 486 mov a,r1
|
|
000095 98 [12] 487 subb a,r0
|
|
000096 40 03 [24] 488 jc 00139$
|
|
000098 02r01r11 [24] 489 ljmp 00109$
|
|
00009B 490 00139$:
|
|
491 ; src/cmd.c:38: if (s_buf[i] == '(') { open = 1; start = i + 1; }
|
|
00009B E9 [12] 492 mov a,r1
|
|
00009C 24r00 [12] 493 add a,#_s_buf
|
|
00009E F5 82 [12] 494 mov dpl,a
|
|
0000A0 E4 [12] 495 clr a
|
|
0000A1 34s00 [12] 496 addc a,#(_s_buf >> 8)
|
|
0000A3 F5 83 [12] 497 mov dph,a
|
|
0000A5 E0 [24] 498 movx a,@dptr
|
|
0000A6 F8 [12] 499 mov r0,a
|
|
0000A7 B8 28 09 [24] 500 cjne r0,#0x28,00107$
|
|
0000AA 7C 01 [12] 501 mov r4,#0x01
|
|
0000AC 89 07 [24] 502 mov ar7,r1
|
|
0000AE EF [12] 503 mov a,r7
|
|
0000AF 04 [12] 504 inc a
|
|
0000B0 FB [12] 505 mov r3,a
|
|
0000B1 80 58 [24] 506 sjmp 00112$
|
|
0000B3 507 00107$:
|
|
508 ; src/cmd.c:39: else if (s_buf[i] == ')' && open) {
|
|
0000B3 B8 29 55 [24] 509 cjne r0,#0x29,00112$
|
|
0000B6 EC [12] 510 mov a,r4
|
|
0000B7 60 52 [24] 511 jz 00112$
|
|
512 ; src/cmd.c:40: uint8_t len = i - start;
|
|
0000B9 EA [12] 513 mov a,r2
|
|
0000BA C3 [12] 514 clr c
|
|
0000BB 9B [12] 515 subb a,r3
|
|
0000BC F5*05 [12] 516 mov _cmd_extract_parens_len_262144_42,a
|
|
517 ; src/cmd.c:41: if (len > out_max) len = out_max;
|
|
0000BE C3 [12] 518 clr c
|
|
0000BF E5*01 [12] 519 mov a,_cmd_extract_parens_PARM_2
|
|
0000C1 95*05 [12] 520 subb a,_cmd_extract_parens_len_262144_42
|
|
0000C3 50 03 [24] 521 jnc 00102$
|
|
0000C5 85*01*05 [24] 522 mov _cmd_extract_parens_len_262144_42,_cmd_extract_parens_PARM_2
|
|
0000C8 523 00102$:
|
|
524 ; src/cmd.c:42: memcpy(out, &s_buf[start], len);
|
|
0000C8 85*02*06 [24] 525 mov _cmd_extract_parens_sloc0_1_0,_cmd_extract_parens_out_65536_37
|
|
0000CB 85*03*07 [24] 526 mov (_cmd_extract_parens_sloc0_1_0 + 1),(_cmd_extract_parens_out_65536_37 + 1)
|
|
0000CE 85*04*08 [24] 527 mov (_cmd_extract_parens_sloc0_1_0 + 2),(_cmd_extract_parens_out_65536_37 + 2)
|
|
0000D1 EB [12] 528 mov a,r3
|
|
0000D2 24r00 [12] 529 add a,#_s_buf
|
|
0000D4 FE [12] 530 mov r6,a
|
|
0000D5 E4 [12] 531 clr a
|
|
0000D6 34s00 [12] 532 addc a,#(_s_buf >> 8)
|
|
0000D8 FF [12] 533 mov r7,a
|
|
0000D9 8E*00 [24] 534 mov ___memcpy_PARM_2,r6
|
|
0000DB 8F*01 [24] 535 mov (___memcpy_PARM_2 + 1),r7
|
|
0000DD 75*02 00 [24] 536 mov (___memcpy_PARM_2 + 2),#0x00
|
|
0000E0 85*05*00 [24] 537 mov ___memcpy_PARM_3,_cmd_extract_parens_len_262144_42
|
|
0000E3 75*01 00 [24] 538 mov (___memcpy_PARM_3 + 1),#0x00
|
|
0000E6 85*06 82 [24] 539 mov dpl,_cmd_extract_parens_sloc0_1_0
|
|
0000E9 85*07 83 [24] 540 mov dph,(_cmd_extract_parens_sloc0_1_0 + 1)
|
|
0000EC 85*08 F0 [24] 541 mov b,(_cmd_extract_parens_sloc0_1_0 + 2)
|
|
0000EF 12r00r00 [24] 542 lcall ___memcpy
|
|
543 ; src/cmd.c:43: out[len] = 0;
|
|
0000F2 E5*05 [12] 544 mov a,_cmd_extract_parens_len_262144_42
|
|
0000F4 25*02 [12] 545 add a,_cmd_extract_parens_out_65536_37
|
|
0000F6 FD [12] 546 mov r5,a
|
|
0000F7 E4 [12] 547 clr a
|
|
0000F8 35*03 [12] 548 addc a,(_cmd_extract_parens_out_65536_37 + 1)
|
|
0000FA FE [12] 549 mov r6,a
|
|
0000FB AF*04 [24] 550 mov r7,(_cmd_extract_parens_out_65536_37 + 2)
|
|
0000FD 8D 82 [24] 551 mov dpl,r5
|
|
0000FF 8E 83 [24] 552 mov dph,r6
|
|
000101 8F F0 [24] 553 mov b,r7
|
|
000103 E4 [12] 554 clr a
|
|
000104 12r00r00 [24] 555 lcall __gptrput
|
|
556 ; src/cmd.c:44: return len;
|
|
000107 85*05 82 [24] 557 mov dpl,_cmd_extract_parens_len_262144_42
|
|
00010A 22 [24] 558 ret
|
|
00010B 559 00112$:
|
|
560 ; src/cmd.c:37: for (uint8_t i = 0; i < s_len; i++) {
|
|
00010B 09 [12] 561 inc r1
|
|
00010C 89 02 [24] 562 mov ar2,r1
|
|
00010E 02r00r8E [24] 563 ljmp 00111$
|
|
000111 564 00109$:
|
|
565 ; src/cmd.c:47: return 0;
|
|
000111 75 82 00 [24] 566 mov dpl,#0x00
|
|
567 ; src/cmd.c:48: }
|
|
000114 22 [24] 568 ret
|
|
569 ;------------------------------------------------------------
|
|
570 ;Allocation info for local variables in function 'hex_to_byte'
|
|
571 ;------------------------------------------------------------
|
|
572 ;s Allocated to registers r5 r6 r7
|
|
573 ;v Allocated to registers r4
|
|
574 ;i Allocated to registers r3
|
|
575 ;c Allocated to registers r2
|
|
576 ;------------------------------------------------------------
|
|
577 ; src/cmd.c:51: static uint8_t hex_to_byte(const uint8_t *s)
|
|
578 ; -----------------------------------------
|
|
579 ; function hex_to_byte
|
|
580 ; -----------------------------------------
|
|
000115 581 _hex_to_byte:
|
|
582 ; src/cmd.c:53: uint8_t v = 0;
|
|
583 ; src/cmd.c:54: if (s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) s += 2;
|
|
000115 AD 82 [24] 584 mov r5,dpl
|
|
000117 AE 83 [24] 585 mov r6,dph
|
|
000119 AF F0 [24] 586 mov r7,b
|
|
00011B 7C 00 [12] 587 mov r4,#0x00
|
|
00011D 12r00r00 [24] 588 lcall __gptrget
|
|
000120 FB [12] 589 mov r3,a
|
|
000121 BB 30 22 [24] 590 cjne r3,#0x30,00131$
|
|
000124 74 01 [12] 591 mov a,#0x01
|
|
000126 2D [12] 592 add a,r5
|
|
000127 F9 [12] 593 mov r1,a
|
|
000128 E4 [12] 594 clr a
|
|
000129 3E [12] 595 addc a,r6
|
|
00012A FA [12] 596 mov r2,a
|
|
00012B 8F 03 [24] 597 mov ar3,r7
|
|
00012D 89 82 [24] 598 mov dpl,r1
|
|
00012F 8A 83 [24] 599 mov dph,r2
|
|
000131 8B F0 [24] 600 mov b,r3
|
|
000133 12r00r00 [24] 601 lcall __gptrget
|
|
000136 FB [12] 602 mov r3,a
|
|
000137 BB 78 02 [24] 603 cjne r3,#0x78,00165$
|
|
00013A 80 03 [24] 604 sjmp 00101$
|
|
00013C 605 00165$:
|
|
00013C BB 58 07 [24] 606 cjne r3,#0x58,00131$
|
|
00013F 607 00101$:
|
|
00013F 74 02 [12] 608 mov a,#0x02
|
|
000141 2D [12] 609 add a,r5
|
|
000142 FD [12] 610 mov r5,a
|
|
000143 E4 [12] 611 clr a
|
|
000144 3E [12] 612 addc a,r6
|
|
000145 FE [12] 613 mov r6,a
|
|
614 ; src/cmd.c:55: for (uint8_t i = 0; i < 2; i++) {
|
|
000146 615 00131$:
|
|
000146 7B 00 [12] 616 mov r3,#0x00
|
|
000148 617 00118$:
|
|
000148 BB 02 00 [24] 618 cjne r3,#0x02,00168$
|
|
00014B 619 00168$:
|
|
00014B 50 51 [24] 620 jnc 00116$
|
|
621 ; src/cmd.c:56: char c = s[i];
|
|
00014D EB [12] 622 mov a,r3
|
|
00014E 2D [12] 623 add a,r5
|
|
00014F F8 [12] 624 mov r0,a
|
|
000150 E4 [12] 625 clr a
|
|
000151 3E [12] 626 addc a,r6
|
|
000152 F9 [12] 627 mov r1,a
|
|
000153 8F 02 [24] 628 mov ar2,r7
|
|
000155 88 82 [24] 629 mov dpl,r0
|
|
000157 89 83 [24] 630 mov dph,r1
|
|
000159 8A F0 [24] 631 mov b,r2
|
|
00015B 12r00r00 [24] 632 lcall __gptrget
|
|
00015E FA [12] 633 mov r2,a
|
|
634 ; src/cmd.c:57: v <<= 4;
|
|
00015F 8C 01 [24] 635 mov ar1,r4
|
|
000161 E9 [12] 636 mov a,r1
|
|
000162 C4 [12] 637 swap a
|
|
000163 54 F0 [12] 638 anl a,#0xf0
|
|
000165 FC [12] 639 mov r4,a
|
|
640 ; src/cmd.c:58: if (c >= '0' && c <= '9') v |= (c - '0');
|
|
000166 BA 30 00 [24] 641 cjne r2,#0x30,00170$
|
|
000169 642 00170$:
|
|
000169 40 0E [24] 643 jc 00113$
|
|
00016B EA [12] 644 mov a,r2
|
|
00016C 24 C6 [12] 645 add a,#0xff - 0x39
|
|
00016E 40 09 [24] 646 jc 00113$
|
|
000170 8A 01 [24] 647 mov ar1,r2
|
|
000172 E9 [12] 648 mov a,r1
|
|
000173 24 D0 [12] 649 add a,#0xd0
|
|
000175 42 04 [12] 650 orl ar4,a
|
|
000177 80 22 [24] 651 sjmp 00119$
|
|
000179 652 00113$:
|
|
653 ; src/cmd.c:59: else if (c >= 'a' && c <= 'f') v |= (c - 'a' + 10);
|
|
000179 BA 61 00 [24] 654 cjne r2,#0x61,00173$
|
|
00017C 655 00173$:
|
|
00017C 40 0E [24] 656 jc 00109$
|
|
00017E EA [12] 657 mov a,r2
|
|
00017F 24 99 [12] 658 add a,#0xff - 0x66
|
|
000181 40 09 [24] 659 jc 00109$
|
|
000183 8A 01 [24] 660 mov ar1,r2
|
|
000185 74 A9 [12] 661 mov a,#0xa9
|
|
000187 29 [12] 662 add a,r1
|
|
000188 42 04 [12] 663 orl ar4,a
|
|
00018A 80 0F [24] 664 sjmp 00119$
|
|
00018C 665 00109$:
|
|
666 ; src/cmd.c:60: else if (c >= 'A' && c <= 'F') v |= (c - 'A' + 10);
|
|
00018C BA 41 00 [24] 667 cjne r2,#0x41,00176$
|
|
00018F 668 00176$:
|
|
00018F 40 0A [24] 669 jc 00119$
|
|
000191 EA [12] 670 mov a,r2
|
|
000192 24 B9 [12] 671 add a,#0xff - 0x46
|
|
000194 40 05 [24] 672 jc 00119$
|
|
000196 74 C9 [12] 673 mov a,#0xc9
|
|
000198 2A [12] 674 add a,r2
|
|
000199 42 04 [12] 675 orl ar4,a
|
|
00019B 676 00119$:
|
|
677 ; src/cmd.c:55: for (uint8_t i = 0; i < 2; i++) {
|
|
00019B 0B [12] 678 inc r3
|
|
00019C 80 AA [24] 679 sjmp 00118$
|
|
00019E 680 00116$:
|
|
681 ; src/cmd.c:62: return v;
|
|
00019E 8C 82 [24] 682 mov dpl,r4
|
|
683 ; src/cmd.c:63: }
|
|
0001A0 22 [24] 684 ret
|
|
685 ;------------------------------------------------------------
|
|
686 ;Allocation info for local variables in function 'dec_to_int'
|
|
687 ;------------------------------------------------------------
|
|
688 ;len Allocated with name '_dec_to_int_PARM_2'
|
|
689 ;s Allocated with name '_dec_to_int_s_65536_47'
|
|
690 ;v Allocated to registers r3 r4
|
|
691 ;i Allocated to registers r2
|
|
692 ;------------------------------------------------------------
|
|
693 ; src/cmd.c:66: static uint16_t dec_to_int(const uint8_t *s, uint8_t len)
|
|
694 ; -----------------------------------------
|
|
695 ; function dec_to_int
|
|
696 ; -----------------------------------------
|
|
0001A1 697 _dec_to_int:
|
|
0001A1 85 82*0A [24] 698 mov _dec_to_int_s_65536_47,dpl
|
|
0001A4 85 83*0B [24] 699 mov (_dec_to_int_s_65536_47 + 1),dph
|
|
0001A7 85 F0*0C [24] 700 mov (_dec_to_int_s_65536_47 + 2),b
|
|
701 ; src/cmd.c:68: uint16_t v = 0;
|
|
0001AA 7B 00 [12] 702 mov r3,#0x00
|
|
0001AC 7C 00 [12] 703 mov r4,#0x00
|
|
704 ; src/cmd.c:69: for (uint8_t i = 0; i < len; i++) {
|
|
0001AE 7A 00 [12] 705 mov r2,#0x00
|
|
0001B0 706 00106$:
|
|
0001B0 C3 [12] 707 clr c
|
|
0001B1 EA [12] 708 mov a,r2
|
|
0001B2 95*09 [12] 709 subb a,_dec_to_int_PARM_2
|
|
0001B4 50 4D [24] 710 jnc 00104$
|
|
711 ; src/cmd.c:70: if (s[i] >= '0' && s[i] <= '9') {
|
|
0001B6 EA [12] 712 mov a,r2
|
|
0001B7 25*0A [12] 713 add a,_dec_to_int_s_65536_47
|
|
0001B9 F8 [12] 714 mov r0,a
|
|
0001BA E4 [12] 715 clr a
|
|
0001BB 35*0B [12] 716 addc a,(_dec_to_int_s_65536_47 + 1)
|
|
0001BD F9 [12] 717 mov r1,a
|
|
0001BE AF*0C [24] 718 mov r7,(_dec_to_int_s_65536_47 + 2)
|
|
0001C0 88 82 [24] 719 mov dpl,r0
|
|
0001C2 89 83 [24] 720 mov dph,r1
|
|
0001C4 8F F0 [24] 721 mov b,r7
|
|
0001C6 12r00r00 [24] 722 lcall __gptrget
|
|
0001C9 FF [12] 723 mov r7,a
|
|
0001CA BF 30 00 [24] 724 cjne r7,#0x30,00128$
|
|
0001CD 725 00128$:
|
|
0001CD 40 31 [24] 726 jc 00107$
|
|
0001CF EF [12] 727 mov a,r7
|
|
0001D0 24 C6 [12] 728 add a,#0xff - 0x39
|
|
0001D2 40 2C [24] 729 jc 00107$
|
|
730 ; src/cmd.c:71: v = v * 10 + (s[i] - '0');
|
|
0001D4 8B*00 [24] 731 mov __mulint_PARM_2,r3
|
|
0001D6 8C*01 [24] 732 mov (__mulint_PARM_2 + 1),r4
|
|
0001D8 90 00 0A [24] 733 mov dptr,#0x000a
|
|
0001DB C0 07 [24] 734 push ar7
|
|
0001DD C0 02 [24] 735 push ar2
|
|
0001DF 12r00r00 [24] 736 lcall __mulint
|
|
0001E2 AD 82 [24] 737 mov r5,dpl
|
|
0001E4 AE 83 [24] 738 mov r6,dph
|
|
0001E6 D0 02 [24] 739 pop ar2
|
|
0001E8 D0 07 [24] 740 pop ar7
|
|
0001EA 8F 01 [24] 741 mov ar1,r7
|
|
0001EC 7F 00 [12] 742 mov r7,#0x00
|
|
0001EE E9 [12] 743 mov a,r1
|
|
0001EF 24 D0 [12] 744 add a,#0xd0
|
|
0001F1 F9 [12] 745 mov r1,a
|
|
0001F2 EF [12] 746 mov a,r7
|
|
0001F3 34 FF [12] 747 addc a,#0xff
|
|
0001F5 FF [12] 748 mov r7,a
|
|
0001F6 E9 [12] 749 mov a,r1
|
|
0001F7 2D [12] 750 add a,r5
|
|
0001F8 FD [12] 751 mov r5,a
|
|
0001F9 EF [12] 752 mov a,r7
|
|
0001FA 3E [12] 753 addc a,r6
|
|
0001FB FE [12] 754 mov r6,a
|
|
0001FC 8D 03 [24] 755 mov ar3,r5
|
|
0001FE 8E 04 [24] 756 mov ar4,r6
|
|
000200 757 00107$:
|
|
758 ; src/cmd.c:69: for (uint8_t i = 0; i < len; i++) {
|
|
000200 0A [12] 759 inc r2
|
|
000201 80 AD [24] 760 sjmp 00106$
|
|
000203 761 00104$:
|
|
762 ; src/cmd.c:74: return v;
|
|
000203 8B 82 [24] 763 mov dpl,r3
|
|
000205 8C 83 [24] 764 mov dph,r4
|
|
765 ; src/cmd.c:75: }
|
|
000207 22 [24] 766 ret
|
|
767 ;------------------------------------------------------------
|
|
768 ;Allocation info for local variables in function 'cmd_poll'
|
|
769 ;------------------------------------------------------------
|
|
770 ;b Allocated to registers
|
|
771 ;------------------------------------------------------------
|
|
772 ; src/cmd.c:77: void cmd_poll(void)
|
|
773 ; -----------------------------------------
|
|
774 ; function cmd_poll
|
|
775 ; -----------------------------------------
|
|
000208 776 _cmd_poll:
|
|
777 ; src/cmd.c:79: while (uart1_rx_available()) {
|
|
000208 778 00101$:
|
|
000208 12r00r00 [24] 779 lcall _uart1_rx_available
|
|
00020B E5 82 [12] 780 mov a,dpl
|
|
00020D 60 08 [24] 781 jz 00104$
|
|
782 ; src/cmd.c:80: uint8_t b = uart1_read_byte();
|
|
00020F 12r00r00 [24] 783 lcall _uart1_read_byte
|
|
784 ; src/cmd.c:81: cmd_feed_byte(b);
|
|
000212 12r02r18 [24] 785 lcall _cmd_feed_byte
|
|
000215 80 F1 [24] 786 sjmp 00101$
|
|
000217 787 00104$:
|
|
788 ; src/cmd.c:83: }
|
|
000217 22 [24] 789 ret
|
|
790 ;------------------------------------------------------------
|
|
791 ;Allocation info for local variables in function 'cmd_feed_byte'
|
|
792 ;------------------------------------------------------------
|
|
793 ;b Allocated to registers r7
|
|
794 ;p Allocated with name '_cmd_feed_byte_p_262144_59'
|
|
795 ;pl Allocated to registers
|
|
796 ;matched Allocated to registers r6
|
|
797 ;p Allocated with name '_cmd_feed_byte_p_262144_67'
|
|
798 ;pl Allocated with name '_cmd_feed_byte_pl_262144_67'
|
|
799 ;addr Allocated with name '_cmd_feed_byte_addr_327680_68'
|
|
800 ;count Allocated with name '_cmd_feed_byte_count_327680_68'
|
|
801 ;i Allocated with name '_cmd_feed_byte_i_327680_68'
|
|
802 ;v Allocated to registers r4
|
|
803 ;p Allocated with name '_cmd_feed_byte_p_262144_76'
|
|
804 ;pl Allocated to registers r5
|
|
805 ;v Allocated to registers r5 r6
|
|
806 ;sloc0 Allocated with name '_cmd_feed_byte_sloc0_1_0'
|
|
807 ;sloc1 Allocated with name '_cmd_feed_byte_sloc1_1_0'
|
|
808 ;------------------------------------------------------------
|
|
809 ; src/cmd.c:85: void cmd_feed_byte(uint8_t b)
|
|
810 ; -----------------------------------------
|
|
811 ; function cmd_feed_byte
|
|
812 ; -----------------------------------------
|
|
000218 813 _cmd_feed_byte:
|
|
814 ; src/cmd.c:88: if (b == 0) return;
|
|
000218 E5 82 [12] 815 mov a,dpl
|
|
00021A FF [12] 816 mov r7,a
|
|
00021B 70 01 [24] 817 jnz 00102$
|
|
00021D 22 [24] 818 ret
|
|
00021E 819 00102$:
|
|
820 ; src/cmd.c:91: if (b == '\r' || b == '\n') {
|
|
00021E BF 0D 02 [24] 821 cjne r7,#0x0d,00296$
|
|
000221 80 08 [24] 822 sjmp 00156$
|
|
000223 823 00296$:
|
|
000223 BF 0A 02 [24] 824 cjne r7,#0x0a,00297$
|
|
000226 80 03 [24] 825 sjmp 00298$
|
|
000228 826 00297$:
|
|
000228 02r05r23 [24] 827 ljmp 00157$
|
|
00022B 828 00298$:
|
|
00022B 829 00156$:
|
|
830 ; src/cmd.c:92: s_buf[s_len] = 0;
|
|
00022B 90r00r00 [24] 831 mov dptr,#_s_len
|
|
00022E E0 [24] 832 movx a,@dptr
|
|
00022F FE [12] 833 mov r6,a
|
|
000230 24r00 [12] 834 add a,#_s_buf
|
|
000232 F5 82 [12] 835 mov dpl,a
|
|
000234 E4 [12] 836 clr a
|
|
000235 34s00 [12] 837 addc a,#(_s_buf >> 8)
|
|
000237 F5 83 [12] 838 mov dph,a
|
|
000239 E4 [12] 839 clr a
|
|
00023A F0 [24] 840 movx @dptr,a
|
|
841 ; src/cmd.c:93: if (s_len > 0) {
|
|
00023B 90r00r00 [24] 842 mov dptr,#_s_len
|
|
00023E E0 [24] 843 movx a,@dptr
|
|
00023F 70 03 [24] 844 jnz 00299$
|
|
000241 02r05r1D [24] 845 ljmp 00155$
|
|
000244 846 00299$:
|
|
847 ; src/cmd.c:95: if (cmd_starts_with("MODEL")) {
|
|
000244 90r00r05 [24] 848 mov dptr,#___str_0
|
|
000247 75 F0 80 [24] 849 mov b,#0x80
|
|
00024A 12r00r00 [24] 850 lcall _cmd_starts_with
|
|
00024D E5 82 [12] 851 mov a,dpl
|
|
00024F 70 03 [24] 852 jnz 00300$
|
|
000251 02r03r84 [24] 853 ljmp 00152$
|
|
000254 854 00300$:
|
|
855 ; src/cmd.c:97: uint8_t pl = cmd_extract_parens(p, 16);
|
|
000254 75*01 10 [24] 856 mov _cmd_extract_parens_PARM_2,#0x10
|
|
000257 90r00r0D [24] 857 mov dptr,#_cmd_feed_byte_p_262144_59
|
|
00025A 75 F0 40 [24] 858 mov b,#0x40
|
|
00025D 12r00r7D [24] 859 lcall _cmd_extract_parens
|
|
000260 E5 82 [12] 860 mov a,dpl
|
|
861 ; src/cmd.c:98: if (pl > 0) {
|
|
000262 70 03 [24] 862 jnz 00301$
|
|
000264 02r05r1D [24] 863 ljmp 00155$
|
|
000267 864 00301$:
|
|
865 ; src/cmd.c:100: uint8_t matched = 0;
|
|
000267 7E 00 [12] 866 mov r6,#0x00
|
|
867 ; src/cmd.c:101: if (memcmp(p, "SBUS", 4) == 0 || memcmp(p, "sbus", 4) == 0) {
|
|
000269 75*00r0B [24] 868 mov _memcmp_PARM_2,#___str_1
|
|
00026C 75*01s00 [24] 869 mov (_memcmp_PARM_2 + 1),#(___str_1 >> 8)
|
|
00026F 75*02 80 [24] 870 mov (_memcmp_PARM_2 + 2),#0x80
|
|
000272 75*00 04 [24] 871 mov _memcmp_PARM_3,#0x04
|
|
872 ; 1-genFromRTrack replaced mov (_memcmp_PARM_3 + 1),#0x00
|
|
000275 8E*01 [24] 873 mov (_memcmp_PARM_3 + 1),r6
|
|
000277 90r00r0D [24] 874 mov dptr,#_cmd_feed_byte_p_262144_59
|
|
00027A 75 F0 40 [24] 875 mov b,#0x40
|
|
00027D C0 06 [24] 876 push ar6
|
|
00027F 12r00r00 [24] 877 lcall _memcmp
|
|
000282 E5 82 [12] 878 mov a,dpl
|
|
000284 85 83 F0 [24] 879 mov b,dph
|
|
000287 D0 06 [24] 880 pop ar6
|
|
000289 45 F0 [12] 881 orl a,b
|
|
00028B 60 25 [24] 882 jz 00110$
|
|
00028D 75*00r10 [24] 883 mov _memcmp_PARM_2,#___str_2
|
|
000290 75*01s00 [24] 884 mov (_memcmp_PARM_2 + 1),#(___str_2 >> 8)
|
|
000293 75*02 80 [24] 885 mov (_memcmp_PARM_2 + 2),#0x80
|
|
000296 75*00 04 [24] 886 mov _memcmp_PARM_3,#0x04
|
|
000299 75*01 00 [24] 887 mov (_memcmp_PARM_3 + 1),#0x00
|
|
00029C 90r00r0D [24] 888 mov dptr,#_cmd_feed_byte_p_262144_59
|
|
00029F 75 F0 40 [24] 889 mov b,#0x40
|
|
0002A2 C0 06 [24] 890 push ar6
|
|
0002A4 12r00r00 [24] 891 lcall _memcmp
|
|
0002A7 E5 82 [12] 892 mov a,dpl
|
|
0002A9 85 83 F0 [24] 893 mov b,dph
|
|
0002AC D0 06 [24] 894 pop ar6
|
|
0002AE 45 F0 [12] 895 orl a,b
|
|
0002B0 70 0B [24] 896 jnz 00111$
|
|
0002B2 897 00110$:
|
|
898 ; src/cmd.c:103: model_set_mode(MODE_SBUS);
|
|
0002B2 75 82 00 [24] 899 mov dpl,#0x00
|
|
0002B5 12r00r00 [24] 900 lcall _model_set_mode
|
|
901 ; src/cmd.c:104: matched = 1;
|
|
0002B8 7E 01 [12] 902 mov r6,#0x01
|
|
0002BA 02r03r63 [24] 903 ljmp 00112$
|
|
0002BD 904 00111$:
|
|
905 ; src/cmd.c:105: } else if (memcmp(p, "PWM", 3) == 0 || memcmp(p, "pwm", 3) == 0) {
|
|
0002BD 75*00r15 [24] 906 mov _memcmp_PARM_2,#___str_3
|
|
0002C0 75*01s00 [24] 907 mov (_memcmp_PARM_2 + 1),#(___str_3 >> 8)
|
|
0002C3 75*02 80 [24] 908 mov (_memcmp_PARM_2 + 2),#0x80
|
|
0002C6 75*00 03 [24] 909 mov _memcmp_PARM_3,#0x03
|
|
0002C9 75*01 00 [24] 910 mov (_memcmp_PARM_3 + 1),#0x00
|
|
0002CC 90r00r0D [24] 911 mov dptr,#_cmd_feed_byte_p_262144_59
|
|
0002CF 75 F0 40 [24] 912 mov b,#0x40
|
|
0002D2 C0 06 [24] 913 push ar6
|
|
0002D4 12r00r00 [24] 914 lcall _memcmp
|
|
0002D7 E5 82 [12] 915 mov a,dpl
|
|
0002D9 85 83 F0 [24] 916 mov b,dph
|
|
0002DC D0 06 [24] 917 pop ar6
|
|
0002DE 45 F0 [12] 918 orl a,b
|
|
0002E0 60 25 [24] 919 jz 00106$
|
|
0002E2 75*00r19 [24] 920 mov _memcmp_PARM_2,#___str_4
|
|
0002E5 75*01s00 [24] 921 mov (_memcmp_PARM_2 + 1),#(___str_4 >> 8)
|
|
0002E8 75*02 80 [24] 922 mov (_memcmp_PARM_2 + 2),#0x80
|
|
0002EB 75*00 03 [24] 923 mov _memcmp_PARM_3,#0x03
|
|
0002EE 75*01 00 [24] 924 mov (_memcmp_PARM_3 + 1),#0x00
|
|
0002F1 90r00r0D [24] 925 mov dptr,#_cmd_feed_byte_p_262144_59
|
|
0002F4 75 F0 40 [24] 926 mov b,#0x40
|
|
0002F7 C0 06 [24] 927 push ar6
|
|
0002F9 12r00r00 [24] 928 lcall _memcmp
|
|
0002FC E5 82 [12] 929 mov a,dpl
|
|
0002FE 85 83 F0 [24] 930 mov b,dph
|
|
000301 D0 06 [24] 931 pop ar6
|
|
000303 45 F0 [12] 932 orl a,b
|
|
000305 70 0A [24] 933 jnz 00107$
|
|
000307 934 00106$:
|
|
935 ; src/cmd.c:107: model_set_mode(MODE_PWM);
|
|
000307 75 82 01 [24] 936 mov dpl,#0x01
|
|
00030A 12r00r00 [24] 937 lcall _model_set_mode
|
|
938 ; src/cmd.c:108: matched = 1;
|
|
00030D 7E 01 [12] 939 mov r6,#0x01
|
|
00030F 80 52 [24] 940 sjmp 00112$
|
|
000311 941 00107$:
|
|
942 ; src/cmd.c:109: } else if (memcmp(p, "UART", 4) == 0 || memcmp(p, "uart", 4) == 0) {
|
|
000311 75*00r1D [24] 943 mov _memcmp_PARM_2,#___str_5
|
|
000314 75*01s00 [24] 944 mov (_memcmp_PARM_2 + 1),#(___str_5 >> 8)
|
|
000317 75*02 80 [24] 945 mov (_memcmp_PARM_2 + 2),#0x80
|
|
00031A 75*00 04 [24] 946 mov _memcmp_PARM_3,#0x04
|
|
00031D 75*01 00 [24] 947 mov (_memcmp_PARM_3 + 1),#0x00
|
|
000320 90r00r0D [24] 948 mov dptr,#_cmd_feed_byte_p_262144_59
|
|
000323 75 F0 40 [24] 949 mov b,#0x40
|
|
000326 C0 06 [24] 950 push ar6
|
|
000328 12r00r00 [24] 951 lcall _memcmp
|
|
00032B E5 82 [12] 952 mov a,dpl
|
|
00032D 85 83 F0 [24] 953 mov b,dph
|
|
000330 D0 06 [24] 954 pop ar6
|
|
000332 45 F0 [12] 955 orl a,b
|
|
000334 60 25 [24] 956 jz 00103$
|
|
000336 75*00r22 [24] 957 mov _memcmp_PARM_2,#___str_6
|
|
000339 75*01s00 [24] 958 mov (_memcmp_PARM_2 + 1),#(___str_6 >> 8)
|
|
00033C 75*02 80 [24] 959 mov (_memcmp_PARM_2 + 2),#0x80
|
|
00033F 75*00 04 [24] 960 mov _memcmp_PARM_3,#0x04
|
|
000342 75*01 00 [24] 961 mov (_memcmp_PARM_3 + 1),#0x00
|
|
000345 90r00r0D [24] 962 mov dptr,#_cmd_feed_byte_p_262144_59
|
|
000348 75 F0 40 [24] 963 mov b,#0x40
|
|
00034B C0 06 [24] 964 push ar6
|
|
00034D 12r00r00 [24] 965 lcall _memcmp
|
|
000350 E5 82 [12] 966 mov a,dpl
|
|
000352 85 83 F0 [24] 967 mov b,dph
|
|
000355 D0 06 [24] 968 pop ar6
|
|
000357 45 F0 [12] 969 orl a,b
|
|
000359 70 08 [24] 970 jnz 00112$
|
|
00035B 971 00103$:
|
|
972 ; src/cmd.c:111: model_set_mode(MODE_UART);
|
|
00035B 75 82 02 [24] 973 mov dpl,#0x02
|
|
00035E 12r00r00 [24] 974 lcall _model_set_mode
|
|
975 ; src/cmd.c:112: matched = 1;
|
|
000361 7E 01 [12] 976 mov r6,#0x01
|
|
000363 977 00112$:
|
|
978 ; src/cmd.c:114: if (matched) uart1_send_bytes("OK\r\n", 4);
|
|
000363 EE [12] 979 mov a,r6
|
|
000364 60 0F [24] 980 jz 00115$
|
|
000366 75*00 04 [24] 981 mov _uart1_send_bytes_PARM_2,#0x04
|
|
000369 90r00r27 [24] 982 mov dptr,#___str_7
|
|
00036C 75 F0 80 [24] 983 mov b,#0x80
|
|
00036F 12r00r00 [24] 984 lcall _uart1_send_bytes
|
|
000372 02r05r1D [24] 985 ljmp 00155$
|
|
000375 986 00115$:
|
|
987 ; src/cmd.c:115: else uart1_send_bytes("ERR\r\n", 5);
|
|
000375 75*00 05 [24] 988 mov _uart1_send_bytes_PARM_2,#0x05
|
|
000378 90r00r2C [24] 989 mov dptr,#___str_8
|
|
00037B 75 F0 80 [24] 990 mov b,#0x80
|
|
00037E 12r00r00 [24] 991 lcall _uart1_send_bytes
|
|
000381 02r05r1D [24] 992 ljmp 00155$
|
|
000384 993 00152$:
|
|
994 ; src/cmd.c:117: } else if (cmd_starts_with("ADDR")) {
|
|
000384 90r00r32 [24] 995 mov dptr,#___str_9
|
|
000387 75 F0 80 [24] 996 mov b,#0x80
|
|
00038A 12r00r00 [24] 997 lcall _cmd_starts_with
|
|
00038D E5 82 [12] 998 mov a,dpl
|
|
00038F 70 03 [24] 999 jnz 00309$
|
|
000391 02r04rB6 [24] 1000 ljmp 00149$
|
|
000394 1001 00309$:
|
|
1002 ; src/cmd.c:119: uint8_t pl = cmd_extract_parens(p, 32);
|
|
000394 75*01 20 [24] 1003 mov _cmd_extract_parens_PARM_2,#0x20
|
|
000397 90r00r1D [24] 1004 mov dptr,#_cmd_feed_byte_p_262144_67
|
|
00039A 75 F0 40 [24] 1005 mov b,#0x40
|
|
00039D 12r00r7D [24] 1006 lcall _cmd_extract_parens
|
|
0003A0 85 82*3D [24] 1007 mov _cmd_feed_byte_pl_262144_67,dpl
|
|
1008 ; src/cmd.c:120: if (pl >= 2) {
|
|
0003A3 74 FE [12] 1009 mov a,#0x100 - 0x02
|
|
0003A5 25*3D [12] 1010 add a,_cmd_feed_byte_pl_262144_67
|
|
0003A7 40 03 [24] 1011 jc 00310$
|
|
0003A9 02r05r1D [24] 1012 ljmp 00155$
|
|
0003AC 1013 00310$:
|
|
1014 ; src/cmd.c:122: uint8_t addr[5] = { 0xE7, 0xE7, 0xE7, 0xE7, 0xC2 };
|
|
0003AC 75*3E E7 [24] 1015 mov _cmd_feed_byte_addr_327680_68,#0xe7
|
|
0003AF 75*3F E7 [24] 1016 mov (_cmd_feed_byte_addr_327680_68 + 0x0001),#0xe7
|
|
0003B2 75*40 E7 [24] 1017 mov (_cmd_feed_byte_addr_327680_68 + 0x0002),#0xe7
|
|
0003B5 75*41 E7 [24] 1018 mov (_cmd_feed_byte_addr_327680_68 + 0x0003),#0xe7
|
|
0003B8 75*42 C2 [24] 1019 mov (_cmd_feed_byte_addr_327680_68 + 0x0004),#0xc2
|
|
1020 ; src/cmd.c:124: uint8_t i = 0;
|
|
0003BB 7D 00 [12] 1021 mov r5,#0x00
|
|
1022 ; src/cmd.c:125: while (i < pl && count < 5) {
|
|
1023 ; 1-genFromRTrack replaced mov _cmd_feed_byte_count_327680_68,#0x00
|
|
0003BD 8D*43 [24] 1024 mov _cmd_feed_byte_count_327680_68,r5
|
|
0003BF 1025 00132$:
|
|
0003BF C3 [12] 1026 clr c
|
|
0003C0 ED [12] 1027 mov a,r5
|
|
0003C1 95*3D [12] 1028 subb a,_cmd_feed_byte_pl_262144_67
|
|
0003C3 40 03 [24] 1029 jc 00311$
|
|
0003C5 02r04r8A [24] 1030 ljmp 00134$
|
|
0003C8 1031 00311$:
|
|
0003C8 74 FB [12] 1032 mov a,#0x100 - 0x05
|
|
0003CA 25*43 [12] 1033 add a,_cmd_feed_byte_count_327680_68
|
|
0003CC 50 03 [24] 1034 jnc 00312$
|
|
0003CE 02r04r8A [24] 1035 ljmp 00134$
|
|
0003D1 1036 00312$:
|
|
1037 ; src/cmd.c:127: while (i < pl && p[i] == ' ') i++;
|
|
0003D1 8D 03 [24] 1038 mov ar3,r5
|
|
0003D3 1039 00120$:
|
|
0003D3 C3 [12] 1040 clr c
|
|
0003D4 EB [12] 1041 mov a,r3
|
|
0003D5 95*3D [12] 1042 subb a,_cmd_feed_byte_pl_262144_67
|
|
0003D7 50 0C [24] 1043 jnc 00189$
|
|
0003D9 EB [12] 1044 mov a,r3
|
|
0003DA 24r1D [12] 1045 add a,#_cmd_feed_byte_p_262144_67
|
|
0003DC F9 [12] 1046 mov r1,a
|
|
0003DD 87 02 [24] 1047 mov ar2,@r1
|
|
0003DF BA 20 03 [24] 1048 cjne r2,#0x20,00189$
|
|
0003E2 0B [12] 1049 inc r3
|
|
0003E3 80 EE [24] 1050 sjmp 00120$
|
|
0003E5 1051 00189$:
|
|
0003E5 8B*44 [24] 1052 mov _cmd_feed_byte_i_327680_68,r3
|
|
1053 ; src/cmd.c:128: if (i + 2 > pl) break;
|
|
0003E7 8B*4D [24] 1054 mov _cmd_feed_byte_sloc0_1_0,r3
|
|
0003E9 75*4E 00 [24] 1055 mov (_cmd_feed_byte_sloc0_1_0 + 1),#0x00
|
|
0003EC 74 02 [12] 1056 mov a,#0x02
|
|
0003EE 25*4D [12] 1057 add a,_cmd_feed_byte_sloc0_1_0
|
|
0003F0 FA [12] 1058 mov r2,a
|
|
0003F1 E4 [12] 1059 clr a
|
|
0003F2 35*4E [12] 1060 addc a,(_cmd_feed_byte_sloc0_1_0 + 1)
|
|
0003F4 FC [12] 1061 mov r4,a
|
|
0003F5 85*3D*4F [24] 1062 mov _cmd_feed_byte_sloc1_1_0,_cmd_feed_byte_pl_262144_67
|
|
0003F8 75*50 00 [24] 1063 mov (_cmd_feed_byte_sloc1_1_0 + 1),#0x00
|
|
0003FB C3 [12] 1064 clr c
|
|
0003FC E5*4F [12] 1065 mov a,_cmd_feed_byte_sloc1_1_0
|
|
0003FE 9A [12] 1066 subb a,r2
|
|
0003FF E5*50 [12] 1067 mov a,(_cmd_feed_byte_sloc1_1_0 + 1)
|
|
000401 64 80 [12] 1068 xrl a,#0x80
|
|
000403 8C F0 [24] 1069 mov b,r4
|
|
000405 63 F0 80 [24] 1070 xrl b,#0x80
|
|
000408 95 F0 [12] 1071 subb a,b
|
|
00040A 50 03 [24] 1072 jnc 00316$
|
|
00040C 02r04r8A [24] 1073 ljmp 00134$
|
|
00040F 1074 00316$:
|
|
1075 ; src/cmd.c:131: if (i + 1 < pl && p[i] == '0' && (p[i+1] == 'x' || p[i+1] == 'X')) {
|
|
00040F 74 01 [12] 1076 mov a,#0x01
|
|
000411 25*4D [12] 1077 add a,_cmd_feed_byte_sloc0_1_0
|
|
000413 FA [12] 1078 mov r2,a
|
|
000414 E4 [12] 1079 clr a
|
|
000415 35*4E [12] 1080 addc a,(_cmd_feed_byte_sloc0_1_0 + 1)
|
|
000417 FC [12] 1081 mov r4,a
|
|
000418 C3 [12] 1082 clr c
|
|
000419 EA [12] 1083 mov a,r2
|
|
00041A 95*4F [12] 1084 subb a,_cmd_feed_byte_sloc1_1_0
|
|
00041C EC [12] 1085 mov a,r4
|
|
00041D 64 80 [12] 1086 xrl a,#0x80
|
|
00041F 85*50 F0 [24] 1087 mov b,(_cmd_feed_byte_sloc1_1_0 + 1)
|
|
000422 63 F0 80 [24] 1088 xrl b,#0x80
|
|
000425 95 F0 [12] 1089 subb a,b
|
|
000427 50 3B [24] 1090 jnc 00126$
|
|
000429 EB [12] 1091 mov a,r3
|
|
00042A 24r1D [12] 1092 add a,#_cmd_feed_byte_p_262144_67
|
|
00042C F9 [12] 1093 mov r1,a
|
|
00042D 87 04 [24] 1094 mov ar4,@r1
|
|
00042F BC 30 32 [24] 1095 cjne r4,#0x30,00126$
|
|
000432 EB [12] 1096 mov a,r3
|
|
000433 04 [12] 1097 inc a
|
|
000434 24r1D [12] 1098 add a,#_cmd_feed_byte_p_262144_67
|
|
000436 F9 [12] 1099 mov r1,a
|
|
000437 87 04 [24] 1100 mov ar4,@r1
|
|
000439 BC 78 02 [24] 1101 cjne r4,#0x78,00320$
|
|
00043C 80 0A [24] 1102 sjmp 00125$
|
|
00043E 1103 00320$:
|
|
00043E EB [12] 1104 mov a,r3
|
|
00043F 04 [12] 1105 inc a
|
|
000440 24r1D [12] 1106 add a,#_cmd_feed_byte_p_262144_67
|
|
000442 F9 [12] 1107 mov r1,a
|
|
000443 87 04 [24] 1108 mov ar4,@r1
|
|
000445 BC 58 1C [24] 1109 cjne r4,#0x58,00126$
|
|
000448 1110 00125$:
|
|
1111 ; src/cmd.c:132: v = hex_to_byte(&p[i]);
|
|
000448 E5*44 [12] 1112 mov a,_cmd_feed_byte_i_327680_68
|
|
00044A 24r1D [12] 1113 add a,#_cmd_feed_byte_p_262144_67
|
|
00044C FC [12] 1114 mov r4,a
|
|
00044D 7B 00 [12] 1115 mov r3,#0x00
|
|
00044F 7A 40 [12] 1116 mov r2,#0x40
|
|
000451 8C 82 [24] 1117 mov dpl,r4
|
|
000453 8B 83 [24] 1118 mov dph,r3
|
|
000455 8A F0 [24] 1119 mov b,r2
|
|
000457 12r01r15 [24] 1120 lcall _hex_to_byte
|
|
00045A AC 82 [24] 1121 mov r4,dpl
|
|
1122 ; src/cmd.c:133: i += 4;
|
|
00045C AA*44 [24] 1123 mov r2,_cmd_feed_byte_i_327680_68
|
|
00045E 74 04 [12] 1124 mov a,#0x04
|
|
000460 2A [12] 1125 add a,r2
|
|
000461 FD [12] 1126 mov r5,a
|
|
000462 80 1A [24] 1127 sjmp 00127$
|
|
000464 1128 00126$:
|
|
1129 ; src/cmd.c:135: v = hex_to_byte(&p[i]);
|
|
000464 E5*44 [12] 1130 mov a,_cmd_feed_byte_i_327680_68
|
|
000466 24r1D [12] 1131 add a,#_cmd_feed_byte_p_262144_67
|
|
000468 FA [12] 1132 mov r2,a
|
|
000469 7B 00 [12] 1133 mov r3,#0x00
|
|
00046B 7E 40 [12] 1134 mov r6,#0x40
|
|
00046D 8A 82 [24] 1135 mov dpl,r2
|
|
00046F 8B 83 [24] 1136 mov dph,r3
|
|
000471 8E F0 [24] 1137 mov b,r6
|
|
000473 12r01r15 [24] 1138 lcall _hex_to_byte
|
|
000476 AC 82 [24] 1139 mov r4,dpl
|
|
1140 ; src/cmd.c:136: i += 2;
|
|
000478 AA*44 [24] 1141 mov r2,_cmd_feed_byte_i_327680_68
|
|
00047A 74 02 [12] 1142 mov a,#0x02
|
|
00047C 2A [12] 1143 add a,r2
|
|
00047D FD [12] 1144 mov r5,a
|
|
00047E 1145 00127$:
|
|
1146 ; src/cmd.c:138: addr[count++] = v;
|
|
00047E E5*43 [12] 1147 mov a,_cmd_feed_byte_count_327680_68
|
|
000480 24r3E [12] 1148 add a,#_cmd_feed_byte_addr_327680_68
|
|
000482 F9 [12] 1149 mov r1,a
|
|
000483 05*43 [12] 1150 inc _cmd_feed_byte_count_327680_68
|
|
000485 A7 04 [24] 1151 mov @r1,ar4
|
|
000487 02r03rBF [24] 1152 ljmp 00132$
|
|
00048A 1153 00134$:
|
|
1154 ; src/cmd.c:140: if (count == 5) {
|
|
00048A 74 05 [12] 1155 mov a,#0x05
|
|
00048C B5*43 18 [24] 1156 cjne a,_cmd_feed_byte_count_327680_68,00136$
|
|
1157 ; src/cmd.c:142: model_set_address(addr);
|
|
00048F 90r00r3E [24] 1158 mov dptr,#_cmd_feed_byte_addr_327680_68
|
|
000492 75 F0 40 [24] 1159 mov b,#0x40
|
|
000495 12r00r00 [24] 1160 lcall _model_set_address
|
|
1161 ; src/cmd.c:143: uart1_send_bytes("OK\r\n", 4);
|
|
000498 75*00 04 [24] 1162 mov _uart1_send_bytes_PARM_2,#0x04
|
|
00049B 90r00r27 [24] 1163 mov dptr,#___str_7
|
|
00049E 75 F0 80 [24] 1164 mov b,#0x80
|
|
0004A1 12r00r00 [24] 1165 lcall _uart1_send_bytes
|
|
0004A4 02r05r1D [24] 1166 ljmp 00155$
|
|
0004A7 1167 00136$:
|
|
1168 ; src/cmd.c:145: uart1_send_bytes("ERR_ADDR\r\n", 10);
|
|
0004A7 75*00 0A [24] 1169 mov _uart1_send_bytes_PARM_2,#0x0a
|
|
0004AA 90r00r37 [24] 1170 mov dptr,#___str_10
|
|
0004AD 75 F0 80 [24] 1171 mov b,#0x80
|
|
0004B0 12r00r00 [24] 1172 lcall _uart1_send_bytes
|
|
0004B3 02r05r1D [24] 1173 ljmp 00155$
|
|
0004B6 1174 00149$:
|
|
1175 ; src/cmd.c:148: } else if (cmd_starts_with("TUN")) {
|
|
0004B6 90r00r42 [24] 1176 mov dptr,#___str_11
|
|
0004B9 75 F0 80 [24] 1177 mov b,#0x80
|
|
0004BC 12r00r00 [24] 1178 lcall _cmd_starts_with
|
|
0004BF E5 82 [12] 1179 mov a,dpl
|
|
0004C1 60 4E [24] 1180 jz 00146$
|
|
1181 ; src/cmd.c:150: uint8_t pl = cmd_extract_parens(p, 8);
|
|
0004C3 75*01 08 [24] 1182 mov _cmd_extract_parens_PARM_2,#0x08
|
|
0004C6 90r00r45 [24] 1183 mov dptr,#_cmd_feed_byte_p_262144_76
|
|
0004C9 75 F0 40 [24] 1184 mov b,#0x40
|
|
0004CC 12r00r7D [24] 1185 lcall _cmd_extract_parens
|
|
1186 ; src/cmd.c:151: if (pl > 0) {
|
|
0004CF E5 82 [12] 1187 mov a,dpl
|
|
0004D1 FE [12] 1188 mov r6,a
|
|
0004D2 FD [12] 1189 mov r5,a
|
|
0004D3 60 48 [24] 1190 jz 00155$
|
|
1191 ; src/cmd.c:152: uint16_t v = dec_to_int(p, pl);
|
|
0004D5 8D*09 [24] 1192 mov _dec_to_int_PARM_2,r5
|
|
0004D7 90r00r45 [24] 1193 mov dptr,#_cmd_feed_byte_p_262144_76
|
|
0004DA 75 F0 40 [24] 1194 mov b,#0x40
|
|
0004DD 12r01rA1 [24] 1195 lcall _dec_to_int
|
|
0004E0 AD 82 [24] 1196 mov r5,dpl
|
|
0004E2 AE 83 [24] 1197 mov r6,dph
|
|
1198 ; src/cmd.c:153: if (v <= 125) {
|
|
0004E4 8D 03 [24] 1199 mov ar3,r5
|
|
0004E6 8E 04 [24] 1200 mov ar4,r6
|
|
0004E8 C3 [12] 1201 clr c
|
|
0004E9 74 7D [12] 1202 mov a,#0x7d
|
|
0004EB 9B [12] 1203 subb a,r3
|
|
0004EC E4 [12] 1204 clr a
|
|
0004ED 9C [12] 1205 subb a,r4
|
|
0004EE 40 13 [24] 1206 jc 00141$
|
|
1207 ; src/cmd.c:155: model_set_channel((uint8_t)v);
|
|
0004F0 8D 82 [24] 1208 mov dpl,r5
|
|
0004F2 12r00r00 [24] 1209 lcall _model_set_channel
|
|
1210 ; src/cmd.c:156: uart1_send_bytes("OK\r\n", 4);
|
|
0004F5 75*00 04 [24] 1211 mov _uart1_send_bytes_PARM_2,#0x04
|
|
0004F8 90r00r27 [24] 1212 mov dptr,#___str_7
|
|
0004FB 75 F0 80 [24] 1213 mov b,#0x80
|
|
0004FE 12r00r00 [24] 1214 lcall _uart1_send_bytes
|
|
000501 80 1A [24] 1215 sjmp 00155$
|
|
000503 1216 00141$:
|
|
1217 ; src/cmd.c:158: uart1_send_bytes("ERR_RANGE\r\n", 11);
|
|
000503 75*00 0B [24] 1218 mov _uart1_send_bytes_PARM_2,#0x0b
|
|
000506 90r00r46 [24] 1219 mov dptr,#___str_12
|
|
000509 75 F0 80 [24] 1220 mov b,#0x80
|
|
00050C 12r00r00 [24] 1221 lcall _uart1_send_bytes
|
|
00050F 80 0C [24] 1222 sjmp 00155$
|
|
000511 1223 00146$:
|
|
1224 ; src/cmd.c:162: uart1_send_bytes("UNK\r\n", 5);
|
|
000511 75*00 05 [24] 1225 mov _uart1_send_bytes_PARM_2,#0x05
|
|
000514 90r00r52 [24] 1226 mov dptr,#___str_13
|
|
000517 75 F0 80 [24] 1227 mov b,#0x80
|
|
00051A 12r00r00 [24] 1228 lcall _uart1_send_bytes
|
|
00051D 1229 00155$:
|
|
1230 ; src/cmd.c:165: s_len = 0;
|
|
00051D 90r00r00 [24] 1231 mov dptr,#_s_len
|
|
000520 E4 [12] 1232 clr a
|
|
000521 F0 [24] 1233 movx @dptr,a
|
|
1234 ; src/cmd.c:166: return;
|
|
000522 22 [24] 1235 ret
|
|
000523 1236 00157$:
|
|
1237 ; src/cmd.c:170: if (s_len < CMD_BUF_SIZE - 1) {
|
|
000523 90r00r00 [24] 1238 mov dptr,#_s_len
|
|
000526 E0 [24] 1239 movx a,@dptr
|
|
000527 FE [12] 1240 mov r6,a
|
|
000528 BE 1F 00 [24] 1241 cjne r6,#0x1f,00328$
|
|
00052B 1242 00328$:
|
|
00052B 50 13 [24] 1243 jnc 00160$
|
|
1244 ; src/cmd.c:171: s_buf[s_len++] = b;
|
|
00052D 90r00r00 [24] 1245 mov dptr,#_s_len
|
|
000530 EE [12] 1246 mov a,r6
|
|
000531 04 [12] 1247 inc a
|
|
000532 F0 [24] 1248 movx @dptr,a
|
|
000533 EE [12] 1249 mov a,r6
|
|
000534 24r00 [12] 1250 add a,#_s_buf
|
|
000536 F5 82 [12] 1251 mov dpl,a
|
|
000538 E4 [12] 1252 clr a
|
|
000539 34s00 [12] 1253 addc a,#(_s_buf >> 8)
|
|
00053B F5 83 [12] 1254 mov dph,a
|
|
00053D EF [12] 1255 mov a,r7
|
|
00053E F0 [24] 1256 movx @dptr,a
|
|
00053F 22 [24] 1257 ret
|
|
000540 1258 00160$:
|
|
1259 ; src/cmd.c:174: s_len = 0;
|
|
000540 90r00r00 [24] 1260 mov dptr,#_s_len
|
|
000543 E4 [12] 1261 clr a
|
|
000544 F0 [24] 1262 movx @dptr,a
|
|
1263 ; src/cmd.c:176: }
|
|
000545 22 [24] 1264 ret
|
|
1265 .area CSEG (CODE)
|
|
1266 .area CONST (CODE)
|
|
000000 1267 _DEFAULT_ADDR:
|
|
000000 E7 1268 .db #0xe7 ; 231
|
|
000001 E7 1269 .db #0xe7 ; 231
|
|
000002 E7 1270 .db #0xe7 ; 231
|
|
000003 E7 1271 .db #0xe7 ; 231
|
|
000004 C2 1272 .db #0xc2 ; 194
|
|
1273 .area CONST (CODE)
|
|
000005 1274 ___str_0:
|
|
000005 4D 4F 44 45 4C 1275 .ascii "MODEL"
|
|
00000A 00 1276 .db 0x00
|
|
1277 .area CSEG (CODE)
|
|
1278 .area CONST (CODE)
|
|
00000B 1279 ___str_1:
|
|
00000B 53 42 55 53 1280 .ascii "SBUS"
|
|
00000F 00 1281 .db 0x00
|
|
1282 .area CSEG (CODE)
|
|
1283 .area CONST (CODE)
|
|
000010 1284 ___str_2:
|
|
000010 73 62 75 73 1285 .ascii "sbus"
|
|
000014 00 1286 .db 0x00
|
|
1287 .area CSEG (CODE)
|
|
1288 .area CONST (CODE)
|
|
000015 1289 ___str_3:
|
|
000015 50 57 4D 1290 .ascii "PWM"
|
|
000018 00 1291 .db 0x00
|
|
1292 .area CSEG (CODE)
|
|
1293 .area CONST (CODE)
|
|
000019 1294 ___str_4:
|
|
000019 70 77 6D 1295 .ascii "pwm"
|
|
00001C 00 1296 .db 0x00
|
|
1297 .area CSEG (CODE)
|
|
1298 .area CONST (CODE)
|
|
00001D 1299 ___str_5:
|
|
00001D 55 41 52 54 1300 .ascii "UART"
|
|
000021 00 1301 .db 0x00
|
|
1302 .area CSEG (CODE)
|
|
1303 .area CONST (CODE)
|
|
000022 1304 ___str_6:
|
|
000022 75 61 72 74 1305 .ascii "uart"
|
|
000026 00 1306 .db 0x00
|
|
1307 .area CSEG (CODE)
|
|
1308 .area CONST (CODE)
|
|
000027 1309 ___str_7:
|
|
000027 4F 4B 1310 .ascii "OK"
|
|
000029 0D 1311 .db 0x0d
|
|
00002A 0A 1312 .db 0x0a
|
|
00002B 00 1313 .db 0x00
|
|
1314 .area CSEG (CODE)
|
|
1315 .area CONST (CODE)
|
|
00002C 1316 ___str_8:
|
|
00002C 45 52 52 1317 .ascii "ERR"
|
|
00002F 0D 1318 .db 0x0d
|
|
000030 0A 1319 .db 0x0a
|
|
000031 00 1320 .db 0x00
|
|
1321 .area CSEG (CODE)
|
|
1322 .area CONST (CODE)
|
|
000032 1323 ___str_9:
|
|
000032 41 44 44 52 1324 .ascii "ADDR"
|
|
000036 00 1325 .db 0x00
|
|
1326 .area CSEG (CODE)
|
|
1327 .area CONST (CODE)
|
|
000037 1328 ___str_10:
|
|
000037 45 52 52 5F 41 44 44 1329 .ascii "ERR_ADDR"
|
|
52
|
|
00003F 0D 1330 .db 0x0d
|
|
000040 0A 1331 .db 0x0a
|
|
000041 00 1332 .db 0x00
|
|
1333 .area CSEG (CODE)
|
|
1334 .area CONST (CODE)
|
|
000042 1335 ___str_11:
|
|
000042 54 55 4E 1336 .ascii "TUN"
|
|
000045 00 1337 .db 0x00
|
|
1338 .area CSEG (CODE)
|
|
1339 .area CONST (CODE)
|
|
000046 1340 ___str_12:
|
|
000046 45 52 52 5F 52 41 4E 1341 .ascii "ERR_RANGE"
|
|
47 45
|
|
00004F 0D 1342 .db 0x0d
|
|
000050 0A 1343 .db 0x0a
|
|
000051 00 1344 .db 0x00
|
|
1345 .area CSEG (CODE)
|
|
1346 .area CONST (CODE)
|
|
000052 1347 ___str_13:
|
|
000052 55 4E 4B 1348 .ascii "UNK"
|
|
000055 0D 1349 .db 0x0d
|
|
000056 0A 1350 .db 0x0a
|
|
000057 00 1351 .db 0x00
|
|
1352 .area CSEG (CODE)
|
|
1353 .area XINIT (CODE)
|
|
000000 1354 __xinit__s_len:
|
|
000000 00 1355 .db #0x00 ; 0
|
|
1356 .area CABS (ABS,CODE)
|