1357 lines
29 KiB
NASM
1357 lines
29 KiB
NASM
;--------------------------------------------------------
|
|
; File Created by SDCC : free open source ANSI-C Compiler
|
|
; Version 4.2.0 #13081 (Linux)
|
|
;--------------------------------------------------------
|
|
.module cmd
|
|
.optsdcc -mmcs51 --model-small
|
|
|
|
;--------------------------------------------------------
|
|
; Public variables in this module
|
|
;--------------------------------------------------------
|
|
.globl ___memcpy
|
|
.globl _strlen
|
|
.globl _memcmp
|
|
.globl _uart1_read_byte
|
|
.globl _uart1_rx_available
|
|
.globl _uart1_send_bytes
|
|
.globl _EADC
|
|
.globl _ET1
|
|
.globl _ET0
|
|
.globl _ES
|
|
.globl _EA
|
|
.globl _REN
|
|
.globl _RI
|
|
.globl _TI
|
|
.globl _TR1
|
|
.globl _TF1
|
|
.globl _IT0
|
|
.globl _IE0
|
|
.globl _TR0
|
|
.globl _TF0
|
|
.globl _CMPCR2
|
|
.globl _CMPCR1
|
|
.globl _TA
|
|
.globl _IRCBAND_REG
|
|
.globl _IAP_TPS
|
|
.globl _IAP_CONTR
|
|
.globl _IAP_TRIG
|
|
.globl _IAP_CMD
|
|
.globl _IAP_ADDRL
|
|
.globl _IAP_ADDRH
|
|
.globl _IAP_DATA
|
|
.globl _WDT_CONTR
|
|
.globl _PCA_PWM3
|
|
.globl _PCA_PWM2
|
|
.globl _PCA_PWM1
|
|
.globl _PCA_PWM0
|
|
.globl _CCAP3L
|
|
.globl _CCAP2L
|
|
.globl _CCAP1L
|
|
.globl _CCAP0L
|
|
.globl _CCAPM3
|
|
.globl _CCAPM2
|
|
.globl _CCAPM1
|
|
.globl _CCAPM0
|
|
.globl _CMOD
|
|
.globl _CCON
|
|
.globl _ADCTIM_X
|
|
.globl _ADCCFG
|
|
.globl _ADC_RESL
|
|
.globl _ADC_RES
|
|
.globl _ADC_CONTR
|
|
.globl _SPDAT
|
|
.globl _SPCTL
|
|
.globl _SPSTAT
|
|
.globl _IP2H
|
|
.globl _IP2
|
|
.globl _IP
|
|
.globl _IE2
|
|
.globl _IE
|
|
.globl _BRT
|
|
.globl _P_SW1
|
|
.globl _SADEN
|
|
.globl _SADDR
|
|
.globl _S2BUF
|
|
.globl _S2CON
|
|
.globl _SBUF
|
|
.globl _SCON
|
|
.globl _TM4PS_X
|
|
.globl _TM3PS_X
|
|
.globl _TM2PS_X
|
|
.globl _T4T3M
|
|
.globl _T4L
|
|
.globl _T4H
|
|
.globl _T3L
|
|
.globl _T3H
|
|
.globl _T2L
|
|
.globl _T2H
|
|
.globl _INTCLKO
|
|
.globl _AUXR
|
|
.globl _TH1
|
|
.globl _TH0
|
|
.globl _TL1
|
|
.globl _TL0
|
|
.globl _TMOD
|
|
.globl _TCON
|
|
.globl _P_SW2
|
|
.globl _P5M0
|
|
.globl _P5M1
|
|
.globl _P4M0
|
|
.globl _P4M1
|
|
.globl _P3M0
|
|
.globl _P3M1
|
|
.globl _P2M0
|
|
.globl _P2M1
|
|
.globl _P1M0
|
|
.globl _P1M1
|
|
.globl _P0M0
|
|
.globl _P0M1
|
|
.globl _PSW
|
|
.globl _B
|
|
.globl _ACC
|
|
.globl _PCON
|
|
.globl _DPH
|
|
.globl _DPL
|
|
.globl _SP
|
|
.globl _P5
|
|
.globl _P4
|
|
.globl _P3
|
|
.globl _P2
|
|
.globl _P1
|
|
.globl _P0
|
|
.globl _cmd_poll
|
|
.globl _cmd_feed_byte
|
|
;--------------------------------------------------------
|
|
; special function registers
|
|
;--------------------------------------------------------
|
|
.area RSEG (ABS,DATA)
|
|
.org 0x0000
|
|
_P0 = 0x0080
|
|
_P1 = 0x0090
|
|
_P2 = 0x00a0
|
|
_P3 = 0x00b0
|
|
_P4 = 0x00c0
|
|
_P5 = 0x00c8
|
|
_SP = 0x0081
|
|
_DPL = 0x0082
|
|
_DPH = 0x0083
|
|
_PCON = 0x0087
|
|
_ACC = 0x00e0
|
|
_B = 0x00f0
|
|
_PSW = 0x00d0
|
|
_P0M1 = 0x0093
|
|
_P0M0 = 0x0094
|
|
_P1M1 = 0x0091
|
|
_P1M0 = 0x0092
|
|
_P2M1 = 0x0095
|
|
_P2M0 = 0x0096
|
|
_P3M1 = 0x00b1
|
|
_P3M0 = 0x00b2
|
|
_P4M1 = 0x00b3
|
|
_P4M0 = 0x00b4
|
|
_P5M1 = 0x00c9
|
|
_P5M0 = 0x00ca
|
|
_P_SW2 = 0x00ba
|
|
_TCON = 0x0088
|
|
_TMOD = 0x0089
|
|
_TL0 = 0x008a
|
|
_TL1 = 0x008b
|
|
_TH0 = 0x008c
|
|
_TH1 = 0x008d
|
|
_AUXR = 0x008e
|
|
_INTCLKO = 0x008f
|
|
_T2H = 0x00d6
|
|
_T2L = 0x00d7
|
|
_T3H = 0x00d4
|
|
_T3L = 0x00d5
|
|
_T4H = 0x00d2
|
|
_T4L = 0x00d3
|
|
_T4T3M = 0x00d1
|
|
_TM2PS_X = 0xfea1
|
|
_TM3PS_X = 0xfea2
|
|
_TM4PS_X = 0xfea3
|
|
_SCON = 0x0098
|
|
_SBUF = 0x0099
|
|
_S2CON = 0x009a
|
|
_S2BUF = 0x009b
|
|
_SADDR = 0x00a9
|
|
_SADEN = 0x00b9
|
|
_P_SW1 = 0x00a2
|
|
_BRT = 0x009c
|
|
_IE = 0x00a8
|
|
_IE2 = 0x00af
|
|
_IP = 0x00b8
|
|
_IP2 = 0x00b6
|
|
_IP2H = 0x00b7
|
|
_SPSTAT = 0x00cd
|
|
_SPCTL = 0x00ce
|
|
_SPDAT = 0x00cf
|
|
_ADC_CONTR = 0x00bc
|
|
_ADC_RES = 0x00bd
|
|
_ADC_RESL = 0x00be
|
|
_ADCCFG = 0x00de
|
|
_ADCTIM_X = 0xfea8
|
|
_CCON = 0x00d8
|
|
_CMOD = 0x00d9
|
|
_CCAPM0 = 0x00da
|
|
_CCAPM1 = 0x00db
|
|
_CCAPM2 = 0x00dc
|
|
_CCAPM3 = 0x00dd
|
|
_CCAP0L = 0x00ea
|
|
_CCAP1L = 0x00eb
|
|
_CCAP2L = 0x00ec
|
|
_CCAP3L = 0x00ed
|
|
_PCA_PWM0 = 0x00f2
|
|
_PCA_PWM1 = 0x00f3
|
|
_PCA_PWM2 = 0x00f4
|
|
_PCA_PWM3 = 0x00f5
|
|
_WDT_CONTR = 0x00c1
|
|
_IAP_DATA = 0x00c2
|
|
_IAP_ADDRH = 0x00c3
|
|
_IAP_ADDRL = 0x00c4
|
|
_IAP_CMD = 0x00c5
|
|
_IAP_TRIG = 0x00c6
|
|
_IAP_CONTR = 0x00c7
|
|
_IAP_TPS = 0x00f7
|
|
_IRCBAND_REG = 0x009d
|
|
_TA = 0x00ae
|
|
_CMPCR1 = 0x00e6
|
|
_CMPCR2 = 0x00e7
|
|
;--------------------------------------------------------
|
|
; special function bits
|
|
;--------------------------------------------------------
|
|
.area RSEG (ABS,DATA)
|
|
.org 0x0000
|
|
_TF0 = 0x008d
|
|
_TR0 = 0x008c
|
|
_IE0 = 0x0089
|
|
_IT0 = 0x0088
|
|
_TF1 = 0x008f
|
|
_TR1 = 0x008e
|
|
_TI = 0x0099
|
|
_RI = 0x0098
|
|
_REN = 0x009c
|
|
_EA = 0x00af
|
|
_ES = 0x00ac
|
|
_ET0 = 0x00a9
|
|
_ET1 = 0x00ab
|
|
_EADC = 0x00ad
|
|
;--------------------------------------------------------
|
|
; overlayable register banks
|
|
;--------------------------------------------------------
|
|
.area REG_BANK_0 (REL,OVR,DATA)
|
|
.ds 8
|
|
;--------------------------------------------------------
|
|
; internal ram data
|
|
;--------------------------------------------------------
|
|
.area DSEG (DATA)
|
|
_cmd_starts_with_n_65536_34:
|
|
.ds 1
|
|
_cmd_extract_parens_PARM_2:
|
|
.ds 1
|
|
_cmd_extract_parens_out_65536_37:
|
|
.ds 3
|
|
_cmd_extract_parens_len_262144_42:
|
|
.ds 1
|
|
_cmd_extract_parens_sloc0_1_0:
|
|
.ds 3
|
|
_dec_to_int_PARM_2:
|
|
.ds 1
|
|
_dec_to_int_s_65536_47:
|
|
.ds 3
|
|
_cmd_feed_byte_p_262144_59:
|
|
.ds 16
|
|
_cmd_feed_byte_p_262144_67:
|
|
.ds 32
|
|
_cmd_feed_byte_pl_262144_67:
|
|
.ds 1
|
|
_cmd_feed_byte_addr_327680_68:
|
|
.ds 5
|
|
_cmd_feed_byte_count_327680_68:
|
|
.ds 1
|
|
_cmd_feed_byte_i_327680_68:
|
|
.ds 1
|
|
_cmd_feed_byte_p_262144_76:
|
|
.ds 8
|
|
_cmd_feed_byte_sloc0_1_0:
|
|
.ds 2
|
|
_cmd_feed_byte_sloc1_1_0:
|
|
.ds 2
|
|
;--------------------------------------------------------
|
|
; overlayable items in internal ram
|
|
;--------------------------------------------------------
|
|
.area OSEG (OVR,DATA)
|
|
;--------------------------------------------------------
|
|
; indirectly addressable internal ram data
|
|
;--------------------------------------------------------
|
|
.area ISEG (DATA)
|
|
;--------------------------------------------------------
|
|
; absolute internal ram data
|
|
;--------------------------------------------------------
|
|
.area IABS (ABS,DATA)
|
|
.area IABS (ABS,DATA)
|
|
;--------------------------------------------------------
|
|
; bit data
|
|
;--------------------------------------------------------
|
|
.area BSEG (BIT)
|
|
;--------------------------------------------------------
|
|
; paged external ram data
|
|
;--------------------------------------------------------
|
|
.area PSEG (PAG,XDATA)
|
|
;--------------------------------------------------------
|
|
; external ram data
|
|
;--------------------------------------------------------
|
|
.area XSEG (XDATA)
|
|
_s_buf:
|
|
.ds 32
|
|
;--------------------------------------------------------
|
|
; absolute external ram data
|
|
;--------------------------------------------------------
|
|
.area XABS (ABS,XDATA)
|
|
;--------------------------------------------------------
|
|
; external initialized ram data
|
|
;--------------------------------------------------------
|
|
.area XISEG (XDATA)
|
|
_s_len:
|
|
.ds 1
|
|
.area HOME (CODE)
|
|
.area GSINIT0 (CODE)
|
|
.area GSINIT1 (CODE)
|
|
.area GSINIT2 (CODE)
|
|
.area GSINIT3 (CODE)
|
|
.area GSINIT4 (CODE)
|
|
.area GSINIT5 (CODE)
|
|
.area GSINIT (CODE)
|
|
.area GSFINAL (CODE)
|
|
.area CSEG (CODE)
|
|
;--------------------------------------------------------
|
|
; global & static initialisations
|
|
;--------------------------------------------------------
|
|
.area HOME (CODE)
|
|
.area GSINIT (CODE)
|
|
.area GSFINAL (CODE)
|
|
.area GSINIT (CODE)
|
|
;--------------------------------------------------------
|
|
; Home
|
|
;--------------------------------------------------------
|
|
.area HOME (CODE)
|
|
.area HOME (CODE)
|
|
;--------------------------------------------------------
|
|
; code
|
|
;--------------------------------------------------------
|
|
.area CSEG (CODE)
|
|
;------------------------------------------------------------
|
|
;Allocation info for local variables in function 'cmd_starts_with'
|
|
;------------------------------------------------------------
|
|
;prefix Allocated to registers r5 r6 r7
|
|
;n Allocated with name '_cmd_starts_with_n_65536_34'
|
|
;i Allocated to registers r4
|
|
;a Allocated to registers r2
|
|
;b Allocated to registers r3
|
|
;------------------------------------------------------------
|
|
; src/cmd.c:19: static uint8_t cmd_starts_with(const char *prefix)
|
|
; -----------------------------------------
|
|
; function cmd_starts_with
|
|
; -----------------------------------------
|
|
_cmd_starts_with:
|
|
ar7 = 0x07
|
|
ar6 = 0x06
|
|
ar5 = 0x05
|
|
ar4 = 0x04
|
|
ar3 = 0x03
|
|
ar2 = 0x02
|
|
ar1 = 0x01
|
|
ar0 = 0x00
|
|
; src/cmd.c:21: uint8_t n = strlen(prefix);
|
|
mov r5,dpl
|
|
mov r6,dph
|
|
mov r7,b
|
|
push ar7
|
|
push ar6
|
|
push ar5
|
|
lcall _strlen
|
|
mov r3,dpl
|
|
pop ar5
|
|
pop ar6
|
|
pop ar7
|
|
mov _cmd_starts_with_n_65536_34,r3
|
|
; src/cmd.c:22: if (s_len < n) return 0;
|
|
mov dptr,#_s_len
|
|
movx a,@dptr
|
|
clr c
|
|
subb a,_cmd_starts_with_n_65536_34
|
|
jnc 00124$
|
|
mov dpl,#0x00
|
|
; src/cmd.c:23: for (uint8_t i = 0; i < n; i++) {
|
|
ret
|
|
00124$:
|
|
mov r4,#0x00
|
|
00113$:
|
|
clr c
|
|
mov a,r4
|
|
subb a,_cmd_starts_with_n_65536_34
|
|
jnc 00111$
|
|
; src/cmd.c:24: char a = s_buf[i];
|
|
mov a,r4
|
|
add a,#_s_buf
|
|
mov dpl,a
|
|
clr a
|
|
addc a,#(_s_buf >> 8)
|
|
mov dph,a
|
|
movx a,@dptr
|
|
mov r2,a
|
|
; src/cmd.c:25: char b = prefix[i];
|
|
mov a,r4
|
|
add a,r5
|
|
mov r0,a
|
|
clr a
|
|
addc a,r6
|
|
mov r1,a
|
|
mov ar3,r7
|
|
mov dpl,r0
|
|
mov dph,r1
|
|
mov b,r3
|
|
lcall __gptrget
|
|
mov r3,a
|
|
; src/cmd.c:26: if (a >= 'a' && a <= 'z') a -= 32;
|
|
cjne r2,#0x61,00151$
|
|
00151$:
|
|
jc 00104$
|
|
mov a,r2
|
|
add a,#0xff - 0x7a
|
|
jc 00104$
|
|
mov ar1,r2
|
|
mov a,r1
|
|
add a,#0xe0
|
|
mov r2,a
|
|
00104$:
|
|
; src/cmd.c:27: if (b >= 'a' && b <= 'z') b -= 32;
|
|
cjne r3,#0x61,00154$
|
|
00154$:
|
|
jc 00107$
|
|
mov a,r3
|
|
add a,#0xff - 0x7a
|
|
jc 00107$
|
|
mov ar1,r3
|
|
mov a,r1
|
|
add a,#0xe0
|
|
mov r3,a
|
|
00107$:
|
|
; src/cmd.c:28: if (a != b) return 0;
|
|
mov a,r2
|
|
cjne a,ar3,00157$
|
|
sjmp 00114$
|
|
00157$:
|
|
mov dpl,#0x00
|
|
ret
|
|
00114$:
|
|
; src/cmd.c:23: for (uint8_t i = 0; i < n; i++) {
|
|
inc r4
|
|
sjmp 00113$
|
|
00111$:
|
|
; src/cmd.c:30: return 1;
|
|
mov dpl,#0x01
|
|
; src/cmd.c:31: }
|
|
ret
|
|
;------------------------------------------------------------
|
|
;Allocation info for local variables in function 'cmd_extract_parens'
|
|
;------------------------------------------------------------
|
|
;out_max Allocated with name '_cmd_extract_parens_PARM_2'
|
|
;out Allocated with name '_cmd_extract_parens_out_65536_37'
|
|
;open Allocated to registers r4
|
|
;start Allocated to registers r3
|
|
;i Allocated to registers r2
|
|
;len Allocated with name '_cmd_extract_parens_len_262144_42'
|
|
;sloc0 Allocated with name '_cmd_extract_parens_sloc0_1_0'
|
|
;------------------------------------------------------------
|
|
; src/cmd.c:34: static uint8_t cmd_extract_parens(uint8_t *out, uint8_t out_max)
|
|
; -----------------------------------------
|
|
; function cmd_extract_parens
|
|
; -----------------------------------------
|
|
_cmd_extract_parens:
|
|
mov _cmd_extract_parens_out_65536_37,dpl
|
|
mov (_cmd_extract_parens_out_65536_37 + 1),dph
|
|
mov (_cmd_extract_parens_out_65536_37 + 2),b
|
|
; src/cmd.c:36: uint8_t open = 0, start = 0;
|
|
mov r4,#0x00
|
|
mov r3,#0x00
|
|
; src/cmd.c:37: for (uint8_t i = 0; i < s_len; i++) {
|
|
mov r2,#0x00
|
|
mov r1,#0x00
|
|
00111$:
|
|
mov dptr,#_s_len
|
|
movx a,@dptr
|
|
mov r0,a
|
|
clr c
|
|
mov a,r1
|
|
subb a,r0
|
|
jc 00139$
|
|
ljmp 00109$
|
|
00139$:
|
|
; src/cmd.c:38: if (s_buf[i] == '(') { open = 1; start = i + 1; }
|
|
mov a,r1
|
|
add a,#_s_buf
|
|
mov dpl,a
|
|
clr a
|
|
addc a,#(_s_buf >> 8)
|
|
mov dph,a
|
|
movx a,@dptr
|
|
mov r0,a
|
|
cjne r0,#0x28,00107$
|
|
mov r4,#0x01
|
|
mov ar7,r1
|
|
mov a,r7
|
|
inc a
|
|
mov r3,a
|
|
sjmp 00112$
|
|
00107$:
|
|
; src/cmd.c:39: else if (s_buf[i] == ')' && open) {
|
|
cjne r0,#0x29,00112$
|
|
mov a,r4
|
|
jz 00112$
|
|
; src/cmd.c:40: uint8_t len = i - start;
|
|
mov a,r2
|
|
clr c
|
|
subb a,r3
|
|
mov _cmd_extract_parens_len_262144_42,a
|
|
; src/cmd.c:41: if (len > out_max) len = out_max;
|
|
clr c
|
|
mov a,_cmd_extract_parens_PARM_2
|
|
subb a,_cmd_extract_parens_len_262144_42
|
|
jnc 00102$
|
|
mov _cmd_extract_parens_len_262144_42,_cmd_extract_parens_PARM_2
|
|
00102$:
|
|
; src/cmd.c:42: memcpy(out, &s_buf[start], len);
|
|
mov _cmd_extract_parens_sloc0_1_0,_cmd_extract_parens_out_65536_37
|
|
mov (_cmd_extract_parens_sloc0_1_0 + 1),(_cmd_extract_parens_out_65536_37 + 1)
|
|
mov (_cmd_extract_parens_sloc0_1_0 + 2),(_cmd_extract_parens_out_65536_37 + 2)
|
|
mov a,r3
|
|
add a,#_s_buf
|
|
mov r6,a
|
|
clr a
|
|
addc a,#(_s_buf >> 8)
|
|
mov r7,a
|
|
mov ___memcpy_PARM_2,r6
|
|
mov (___memcpy_PARM_2 + 1),r7
|
|
mov (___memcpy_PARM_2 + 2),#0x00
|
|
mov ___memcpy_PARM_3,_cmd_extract_parens_len_262144_42
|
|
mov (___memcpy_PARM_3 + 1),#0x00
|
|
mov dpl,_cmd_extract_parens_sloc0_1_0
|
|
mov dph,(_cmd_extract_parens_sloc0_1_0 + 1)
|
|
mov b,(_cmd_extract_parens_sloc0_1_0 + 2)
|
|
lcall ___memcpy
|
|
; src/cmd.c:43: out[len] = 0;
|
|
mov a,_cmd_extract_parens_len_262144_42
|
|
add a,_cmd_extract_parens_out_65536_37
|
|
mov r5,a
|
|
clr a
|
|
addc a,(_cmd_extract_parens_out_65536_37 + 1)
|
|
mov r6,a
|
|
mov r7,(_cmd_extract_parens_out_65536_37 + 2)
|
|
mov dpl,r5
|
|
mov dph,r6
|
|
mov b,r7
|
|
clr a
|
|
lcall __gptrput
|
|
; src/cmd.c:44: return len;
|
|
mov dpl,_cmd_extract_parens_len_262144_42
|
|
ret
|
|
00112$:
|
|
; src/cmd.c:37: for (uint8_t i = 0; i < s_len; i++) {
|
|
inc r1
|
|
mov ar2,r1
|
|
ljmp 00111$
|
|
00109$:
|
|
; src/cmd.c:47: return 0;
|
|
mov dpl,#0x00
|
|
; src/cmd.c:48: }
|
|
ret
|
|
;------------------------------------------------------------
|
|
;Allocation info for local variables in function 'hex_to_byte'
|
|
;------------------------------------------------------------
|
|
;s Allocated to registers r5 r6 r7
|
|
;v Allocated to registers r4
|
|
;i Allocated to registers r3
|
|
;c Allocated to registers r2
|
|
;------------------------------------------------------------
|
|
; src/cmd.c:51: static uint8_t hex_to_byte(const uint8_t *s)
|
|
; -----------------------------------------
|
|
; function hex_to_byte
|
|
; -----------------------------------------
|
|
_hex_to_byte:
|
|
; src/cmd.c:53: uint8_t v = 0;
|
|
; src/cmd.c:54: if (s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) s += 2;
|
|
mov r5,dpl
|
|
mov r6,dph
|
|
mov r7,b
|
|
mov r4,#0x00
|
|
lcall __gptrget
|
|
mov r3,a
|
|
cjne r3,#0x30,00131$
|
|
mov a,#0x01
|
|
add a,r5
|
|
mov r1,a
|
|
clr a
|
|
addc a,r6
|
|
mov r2,a
|
|
mov ar3,r7
|
|
mov dpl,r1
|
|
mov dph,r2
|
|
mov b,r3
|
|
lcall __gptrget
|
|
mov r3,a
|
|
cjne r3,#0x78,00165$
|
|
sjmp 00101$
|
|
00165$:
|
|
cjne r3,#0x58,00131$
|
|
00101$:
|
|
mov a,#0x02
|
|
add a,r5
|
|
mov r5,a
|
|
clr a
|
|
addc a,r6
|
|
mov r6,a
|
|
; src/cmd.c:55: for (uint8_t i = 0; i < 2; i++) {
|
|
00131$:
|
|
mov r3,#0x00
|
|
00118$:
|
|
cjne r3,#0x02,00168$
|
|
00168$:
|
|
jnc 00116$
|
|
; src/cmd.c:56: char c = s[i];
|
|
mov a,r3
|
|
add a,r5
|
|
mov r0,a
|
|
clr a
|
|
addc a,r6
|
|
mov r1,a
|
|
mov ar2,r7
|
|
mov dpl,r0
|
|
mov dph,r1
|
|
mov b,r2
|
|
lcall __gptrget
|
|
mov r2,a
|
|
; src/cmd.c:57: v <<= 4;
|
|
mov ar1,r4
|
|
mov a,r1
|
|
swap a
|
|
anl a,#0xf0
|
|
mov r4,a
|
|
; src/cmd.c:58: if (c >= '0' && c <= '9') v |= (c - '0');
|
|
cjne r2,#0x30,00170$
|
|
00170$:
|
|
jc 00113$
|
|
mov a,r2
|
|
add a,#0xff - 0x39
|
|
jc 00113$
|
|
mov ar1,r2
|
|
mov a,r1
|
|
add a,#0xd0
|
|
orl ar4,a
|
|
sjmp 00119$
|
|
00113$:
|
|
; src/cmd.c:59: else if (c >= 'a' && c <= 'f') v |= (c - 'a' + 10);
|
|
cjne r2,#0x61,00173$
|
|
00173$:
|
|
jc 00109$
|
|
mov a,r2
|
|
add a,#0xff - 0x66
|
|
jc 00109$
|
|
mov ar1,r2
|
|
mov a,#0xa9
|
|
add a,r1
|
|
orl ar4,a
|
|
sjmp 00119$
|
|
00109$:
|
|
; src/cmd.c:60: else if (c >= 'A' && c <= 'F') v |= (c - 'A' + 10);
|
|
cjne r2,#0x41,00176$
|
|
00176$:
|
|
jc 00119$
|
|
mov a,r2
|
|
add a,#0xff - 0x46
|
|
jc 00119$
|
|
mov a,#0xc9
|
|
add a,r2
|
|
orl ar4,a
|
|
00119$:
|
|
; src/cmd.c:55: for (uint8_t i = 0; i < 2; i++) {
|
|
inc r3
|
|
sjmp 00118$
|
|
00116$:
|
|
; src/cmd.c:62: return v;
|
|
mov dpl,r4
|
|
; src/cmd.c:63: }
|
|
ret
|
|
;------------------------------------------------------------
|
|
;Allocation info for local variables in function 'dec_to_int'
|
|
;------------------------------------------------------------
|
|
;len Allocated with name '_dec_to_int_PARM_2'
|
|
;s Allocated with name '_dec_to_int_s_65536_47'
|
|
;v Allocated to registers r3 r4
|
|
;i Allocated to registers r2
|
|
;------------------------------------------------------------
|
|
; src/cmd.c:66: static uint16_t dec_to_int(const uint8_t *s, uint8_t len)
|
|
; -----------------------------------------
|
|
; function dec_to_int
|
|
; -----------------------------------------
|
|
_dec_to_int:
|
|
mov _dec_to_int_s_65536_47,dpl
|
|
mov (_dec_to_int_s_65536_47 + 1),dph
|
|
mov (_dec_to_int_s_65536_47 + 2),b
|
|
; src/cmd.c:68: uint16_t v = 0;
|
|
mov r3,#0x00
|
|
mov r4,#0x00
|
|
; src/cmd.c:69: for (uint8_t i = 0; i < len; i++) {
|
|
mov r2,#0x00
|
|
00106$:
|
|
clr c
|
|
mov a,r2
|
|
subb a,_dec_to_int_PARM_2
|
|
jnc 00104$
|
|
; src/cmd.c:70: if (s[i] >= '0' && s[i] <= '9') {
|
|
mov a,r2
|
|
add a,_dec_to_int_s_65536_47
|
|
mov r0,a
|
|
clr a
|
|
addc a,(_dec_to_int_s_65536_47 + 1)
|
|
mov r1,a
|
|
mov r7,(_dec_to_int_s_65536_47 + 2)
|
|
mov dpl,r0
|
|
mov dph,r1
|
|
mov b,r7
|
|
lcall __gptrget
|
|
mov r7,a
|
|
cjne r7,#0x30,00128$
|
|
00128$:
|
|
jc 00107$
|
|
mov a,r7
|
|
add a,#0xff - 0x39
|
|
jc 00107$
|
|
; src/cmd.c:71: v = v * 10 + (s[i] - '0');
|
|
mov __mulint_PARM_2,r3
|
|
mov (__mulint_PARM_2 + 1),r4
|
|
mov dptr,#0x000a
|
|
push ar7
|
|
push ar2
|
|
lcall __mulint
|
|
mov r5,dpl
|
|
mov r6,dph
|
|
pop ar2
|
|
pop ar7
|
|
mov ar1,r7
|
|
mov r7,#0x00
|
|
mov a,r1
|
|
add a,#0xd0
|
|
mov r1,a
|
|
mov a,r7
|
|
addc a,#0xff
|
|
mov r7,a
|
|
mov a,r1
|
|
add a,r5
|
|
mov r5,a
|
|
mov a,r7
|
|
addc a,r6
|
|
mov r6,a
|
|
mov ar3,r5
|
|
mov ar4,r6
|
|
00107$:
|
|
; src/cmd.c:69: for (uint8_t i = 0; i < len; i++) {
|
|
inc r2
|
|
sjmp 00106$
|
|
00104$:
|
|
; src/cmd.c:74: return v;
|
|
mov dpl,r3
|
|
mov dph,r4
|
|
; src/cmd.c:75: }
|
|
ret
|
|
;------------------------------------------------------------
|
|
;Allocation info for local variables in function 'cmd_poll'
|
|
;------------------------------------------------------------
|
|
;b Allocated to registers
|
|
;------------------------------------------------------------
|
|
; src/cmd.c:77: void cmd_poll(void)
|
|
; -----------------------------------------
|
|
; function cmd_poll
|
|
; -----------------------------------------
|
|
_cmd_poll:
|
|
; src/cmd.c:79: while (uart1_rx_available()) {
|
|
00101$:
|
|
lcall _uart1_rx_available
|
|
mov a,dpl
|
|
jz 00104$
|
|
; src/cmd.c:80: uint8_t b = uart1_read_byte();
|
|
lcall _uart1_read_byte
|
|
; src/cmd.c:81: cmd_feed_byte(b);
|
|
lcall _cmd_feed_byte
|
|
sjmp 00101$
|
|
00104$:
|
|
; src/cmd.c:83: }
|
|
ret
|
|
;------------------------------------------------------------
|
|
;Allocation info for local variables in function 'cmd_feed_byte'
|
|
;------------------------------------------------------------
|
|
;b Allocated to registers r7
|
|
;p Allocated with name '_cmd_feed_byte_p_262144_59'
|
|
;pl Allocated to registers
|
|
;matched Allocated to registers r6
|
|
;p Allocated with name '_cmd_feed_byte_p_262144_67'
|
|
;pl Allocated with name '_cmd_feed_byte_pl_262144_67'
|
|
;addr Allocated with name '_cmd_feed_byte_addr_327680_68'
|
|
;count Allocated with name '_cmd_feed_byte_count_327680_68'
|
|
;i Allocated with name '_cmd_feed_byte_i_327680_68'
|
|
;v Allocated to registers r4
|
|
;p Allocated with name '_cmd_feed_byte_p_262144_76'
|
|
;pl Allocated to registers r5
|
|
;v Allocated to registers r5 r6
|
|
;sloc0 Allocated with name '_cmd_feed_byte_sloc0_1_0'
|
|
;sloc1 Allocated with name '_cmd_feed_byte_sloc1_1_0'
|
|
;------------------------------------------------------------
|
|
; src/cmd.c:85: void cmd_feed_byte(uint8_t b)
|
|
; -----------------------------------------
|
|
; function cmd_feed_byte
|
|
; -----------------------------------------
|
|
_cmd_feed_byte:
|
|
; src/cmd.c:88: if (b == 0) return;
|
|
mov a,dpl
|
|
mov r7,a
|
|
jnz 00102$
|
|
ret
|
|
00102$:
|
|
; src/cmd.c:91: if (b == '\r' || b == '\n') {
|
|
cjne r7,#0x0d,00296$
|
|
sjmp 00156$
|
|
00296$:
|
|
cjne r7,#0x0a,00297$
|
|
sjmp 00298$
|
|
00297$:
|
|
ljmp 00157$
|
|
00298$:
|
|
00156$:
|
|
; src/cmd.c:92: s_buf[s_len] = 0;
|
|
mov dptr,#_s_len
|
|
movx a,@dptr
|
|
mov r6,a
|
|
add a,#_s_buf
|
|
mov dpl,a
|
|
clr a
|
|
addc a,#(_s_buf >> 8)
|
|
mov dph,a
|
|
clr a
|
|
movx @dptr,a
|
|
; src/cmd.c:93: if (s_len > 0) {
|
|
mov dptr,#_s_len
|
|
movx a,@dptr
|
|
jnz 00299$
|
|
ljmp 00155$
|
|
00299$:
|
|
; src/cmd.c:95: if (cmd_starts_with("MODEL")) {
|
|
mov dptr,#___str_0
|
|
mov b,#0x80
|
|
lcall _cmd_starts_with
|
|
mov a,dpl
|
|
jnz 00300$
|
|
ljmp 00152$
|
|
00300$:
|
|
; src/cmd.c:97: uint8_t pl = cmd_extract_parens(p, 16);
|
|
mov _cmd_extract_parens_PARM_2,#0x10
|
|
mov dptr,#_cmd_feed_byte_p_262144_59
|
|
mov b,#0x40
|
|
lcall _cmd_extract_parens
|
|
mov a,dpl
|
|
; src/cmd.c:98: if (pl > 0) {
|
|
jnz 00301$
|
|
ljmp 00155$
|
|
00301$:
|
|
; src/cmd.c:100: uint8_t matched = 0;
|
|
mov r6,#0x00
|
|
; src/cmd.c:101: if (memcmp(p, "SBUS", 4) == 0 || memcmp(p, "sbus", 4) == 0) {
|
|
mov _memcmp_PARM_2,#___str_1
|
|
mov (_memcmp_PARM_2 + 1),#(___str_1 >> 8)
|
|
mov (_memcmp_PARM_2 + 2),#0x80
|
|
mov _memcmp_PARM_3,#0x04
|
|
; 1-genFromRTrack replaced mov (_memcmp_PARM_3 + 1),#0x00
|
|
mov (_memcmp_PARM_3 + 1),r6
|
|
mov dptr,#_cmd_feed_byte_p_262144_59
|
|
mov b,#0x40
|
|
push ar6
|
|
lcall _memcmp
|
|
mov a,dpl
|
|
mov b,dph
|
|
pop ar6
|
|
orl a,b
|
|
jz 00110$
|
|
mov _memcmp_PARM_2,#___str_2
|
|
mov (_memcmp_PARM_2 + 1),#(___str_2 >> 8)
|
|
mov (_memcmp_PARM_2 + 2),#0x80
|
|
mov _memcmp_PARM_3,#0x04
|
|
mov (_memcmp_PARM_3 + 1),#0x00
|
|
mov dptr,#_cmd_feed_byte_p_262144_59
|
|
mov b,#0x40
|
|
push ar6
|
|
lcall _memcmp
|
|
mov a,dpl
|
|
mov b,dph
|
|
pop ar6
|
|
orl a,b
|
|
jnz 00111$
|
|
00110$:
|
|
; src/cmd.c:103: model_set_mode(MODE_SBUS);
|
|
mov dpl,#0x00
|
|
lcall _model_set_mode
|
|
; src/cmd.c:104: matched = 1;
|
|
mov r6,#0x01
|
|
ljmp 00112$
|
|
00111$:
|
|
; src/cmd.c:105: } else if (memcmp(p, "PWM", 3) == 0 || memcmp(p, "pwm", 3) == 0) {
|
|
mov _memcmp_PARM_2,#___str_3
|
|
mov (_memcmp_PARM_2 + 1),#(___str_3 >> 8)
|
|
mov (_memcmp_PARM_2 + 2),#0x80
|
|
mov _memcmp_PARM_3,#0x03
|
|
mov (_memcmp_PARM_3 + 1),#0x00
|
|
mov dptr,#_cmd_feed_byte_p_262144_59
|
|
mov b,#0x40
|
|
push ar6
|
|
lcall _memcmp
|
|
mov a,dpl
|
|
mov b,dph
|
|
pop ar6
|
|
orl a,b
|
|
jz 00106$
|
|
mov _memcmp_PARM_2,#___str_4
|
|
mov (_memcmp_PARM_2 + 1),#(___str_4 >> 8)
|
|
mov (_memcmp_PARM_2 + 2),#0x80
|
|
mov _memcmp_PARM_3,#0x03
|
|
mov (_memcmp_PARM_3 + 1),#0x00
|
|
mov dptr,#_cmd_feed_byte_p_262144_59
|
|
mov b,#0x40
|
|
push ar6
|
|
lcall _memcmp
|
|
mov a,dpl
|
|
mov b,dph
|
|
pop ar6
|
|
orl a,b
|
|
jnz 00107$
|
|
00106$:
|
|
; src/cmd.c:107: model_set_mode(MODE_PWM);
|
|
mov dpl,#0x01
|
|
lcall _model_set_mode
|
|
; src/cmd.c:108: matched = 1;
|
|
mov r6,#0x01
|
|
sjmp 00112$
|
|
00107$:
|
|
; src/cmd.c:109: } else if (memcmp(p, "UART", 4) == 0 || memcmp(p, "uart", 4) == 0) {
|
|
mov _memcmp_PARM_2,#___str_5
|
|
mov (_memcmp_PARM_2 + 1),#(___str_5 >> 8)
|
|
mov (_memcmp_PARM_2 + 2),#0x80
|
|
mov _memcmp_PARM_3,#0x04
|
|
mov (_memcmp_PARM_3 + 1),#0x00
|
|
mov dptr,#_cmd_feed_byte_p_262144_59
|
|
mov b,#0x40
|
|
push ar6
|
|
lcall _memcmp
|
|
mov a,dpl
|
|
mov b,dph
|
|
pop ar6
|
|
orl a,b
|
|
jz 00103$
|
|
mov _memcmp_PARM_2,#___str_6
|
|
mov (_memcmp_PARM_2 + 1),#(___str_6 >> 8)
|
|
mov (_memcmp_PARM_2 + 2),#0x80
|
|
mov _memcmp_PARM_3,#0x04
|
|
mov (_memcmp_PARM_3 + 1),#0x00
|
|
mov dptr,#_cmd_feed_byte_p_262144_59
|
|
mov b,#0x40
|
|
push ar6
|
|
lcall _memcmp
|
|
mov a,dpl
|
|
mov b,dph
|
|
pop ar6
|
|
orl a,b
|
|
jnz 00112$
|
|
00103$:
|
|
; src/cmd.c:111: model_set_mode(MODE_UART);
|
|
mov dpl,#0x02
|
|
lcall _model_set_mode
|
|
; src/cmd.c:112: matched = 1;
|
|
mov r6,#0x01
|
|
00112$:
|
|
; src/cmd.c:114: if (matched) uart1_send_bytes("OK\r\n", 4);
|
|
mov a,r6
|
|
jz 00115$
|
|
mov _uart1_send_bytes_PARM_2,#0x04
|
|
mov dptr,#___str_7
|
|
mov b,#0x80
|
|
lcall _uart1_send_bytes
|
|
ljmp 00155$
|
|
00115$:
|
|
; src/cmd.c:115: else uart1_send_bytes("ERR\r\n", 5);
|
|
mov _uart1_send_bytes_PARM_2,#0x05
|
|
mov dptr,#___str_8
|
|
mov b,#0x80
|
|
lcall _uart1_send_bytes
|
|
ljmp 00155$
|
|
00152$:
|
|
; src/cmd.c:117: } else if (cmd_starts_with("ADDR")) {
|
|
mov dptr,#___str_9
|
|
mov b,#0x80
|
|
lcall _cmd_starts_with
|
|
mov a,dpl
|
|
jnz 00309$
|
|
ljmp 00149$
|
|
00309$:
|
|
; src/cmd.c:119: uint8_t pl = cmd_extract_parens(p, 32);
|
|
mov _cmd_extract_parens_PARM_2,#0x20
|
|
mov dptr,#_cmd_feed_byte_p_262144_67
|
|
mov b,#0x40
|
|
lcall _cmd_extract_parens
|
|
mov _cmd_feed_byte_pl_262144_67,dpl
|
|
; src/cmd.c:120: if (pl >= 2) {
|
|
mov a,#0x100 - 0x02
|
|
add a,_cmd_feed_byte_pl_262144_67
|
|
jc 00310$
|
|
ljmp 00155$
|
|
00310$:
|
|
; src/cmd.c:122: uint8_t addr[5] = { 0xE7, 0xE7, 0xE7, 0xE7, 0xC2 };
|
|
mov _cmd_feed_byte_addr_327680_68,#0xe7
|
|
mov (_cmd_feed_byte_addr_327680_68 + 0x0001),#0xe7
|
|
mov (_cmd_feed_byte_addr_327680_68 + 0x0002),#0xe7
|
|
mov (_cmd_feed_byte_addr_327680_68 + 0x0003),#0xe7
|
|
mov (_cmd_feed_byte_addr_327680_68 + 0x0004),#0xc2
|
|
; src/cmd.c:124: uint8_t i = 0;
|
|
mov r5,#0x00
|
|
; src/cmd.c:125: while (i < pl && count < 5) {
|
|
; 1-genFromRTrack replaced mov _cmd_feed_byte_count_327680_68,#0x00
|
|
mov _cmd_feed_byte_count_327680_68,r5
|
|
00132$:
|
|
clr c
|
|
mov a,r5
|
|
subb a,_cmd_feed_byte_pl_262144_67
|
|
jc 00311$
|
|
ljmp 00134$
|
|
00311$:
|
|
mov a,#0x100 - 0x05
|
|
add a,_cmd_feed_byte_count_327680_68
|
|
jnc 00312$
|
|
ljmp 00134$
|
|
00312$:
|
|
; src/cmd.c:127: while (i < pl && p[i] == ' ') i++;
|
|
mov ar3,r5
|
|
00120$:
|
|
clr c
|
|
mov a,r3
|
|
subb a,_cmd_feed_byte_pl_262144_67
|
|
jnc 00189$
|
|
mov a,r3
|
|
add a,#_cmd_feed_byte_p_262144_67
|
|
mov r1,a
|
|
mov ar2,@r1
|
|
cjne r2,#0x20,00189$
|
|
inc r3
|
|
sjmp 00120$
|
|
00189$:
|
|
mov _cmd_feed_byte_i_327680_68,r3
|
|
; src/cmd.c:128: if (i + 2 > pl) break;
|
|
mov _cmd_feed_byte_sloc0_1_0,r3
|
|
mov (_cmd_feed_byte_sloc0_1_0 + 1),#0x00
|
|
mov a,#0x02
|
|
add a,_cmd_feed_byte_sloc0_1_0
|
|
mov r2,a
|
|
clr a
|
|
addc a,(_cmd_feed_byte_sloc0_1_0 + 1)
|
|
mov r4,a
|
|
mov _cmd_feed_byte_sloc1_1_0,_cmd_feed_byte_pl_262144_67
|
|
mov (_cmd_feed_byte_sloc1_1_0 + 1),#0x00
|
|
clr c
|
|
mov a,_cmd_feed_byte_sloc1_1_0
|
|
subb a,r2
|
|
mov a,(_cmd_feed_byte_sloc1_1_0 + 1)
|
|
xrl a,#0x80
|
|
mov b,r4
|
|
xrl b,#0x80
|
|
subb a,b
|
|
jnc 00316$
|
|
ljmp 00134$
|
|
00316$:
|
|
; src/cmd.c:131: if (i + 1 < pl && p[i] == '0' && (p[i+1] == 'x' || p[i+1] == 'X')) {
|
|
mov a,#0x01
|
|
add a,_cmd_feed_byte_sloc0_1_0
|
|
mov r2,a
|
|
clr a
|
|
addc a,(_cmd_feed_byte_sloc0_1_0 + 1)
|
|
mov r4,a
|
|
clr c
|
|
mov a,r2
|
|
subb a,_cmd_feed_byte_sloc1_1_0
|
|
mov a,r4
|
|
xrl a,#0x80
|
|
mov b,(_cmd_feed_byte_sloc1_1_0 + 1)
|
|
xrl b,#0x80
|
|
subb a,b
|
|
jnc 00126$
|
|
mov a,r3
|
|
add a,#_cmd_feed_byte_p_262144_67
|
|
mov r1,a
|
|
mov ar4,@r1
|
|
cjne r4,#0x30,00126$
|
|
mov a,r3
|
|
inc a
|
|
add a,#_cmd_feed_byte_p_262144_67
|
|
mov r1,a
|
|
mov ar4,@r1
|
|
cjne r4,#0x78,00320$
|
|
sjmp 00125$
|
|
00320$:
|
|
mov a,r3
|
|
inc a
|
|
add a,#_cmd_feed_byte_p_262144_67
|
|
mov r1,a
|
|
mov ar4,@r1
|
|
cjne r4,#0x58,00126$
|
|
00125$:
|
|
; src/cmd.c:132: v = hex_to_byte(&p[i]);
|
|
mov a,_cmd_feed_byte_i_327680_68
|
|
add a,#_cmd_feed_byte_p_262144_67
|
|
mov r4,a
|
|
mov r3,#0x00
|
|
mov r2,#0x40
|
|
mov dpl,r4
|
|
mov dph,r3
|
|
mov b,r2
|
|
lcall _hex_to_byte
|
|
mov r4,dpl
|
|
; src/cmd.c:133: i += 4;
|
|
mov r2,_cmd_feed_byte_i_327680_68
|
|
mov a,#0x04
|
|
add a,r2
|
|
mov r5,a
|
|
sjmp 00127$
|
|
00126$:
|
|
; src/cmd.c:135: v = hex_to_byte(&p[i]);
|
|
mov a,_cmd_feed_byte_i_327680_68
|
|
add a,#_cmd_feed_byte_p_262144_67
|
|
mov r2,a
|
|
mov r3,#0x00
|
|
mov r6,#0x40
|
|
mov dpl,r2
|
|
mov dph,r3
|
|
mov b,r6
|
|
lcall _hex_to_byte
|
|
mov r4,dpl
|
|
; src/cmd.c:136: i += 2;
|
|
mov r2,_cmd_feed_byte_i_327680_68
|
|
mov a,#0x02
|
|
add a,r2
|
|
mov r5,a
|
|
00127$:
|
|
; src/cmd.c:138: addr[count++] = v;
|
|
mov a,_cmd_feed_byte_count_327680_68
|
|
add a,#_cmd_feed_byte_addr_327680_68
|
|
mov r1,a
|
|
inc _cmd_feed_byte_count_327680_68
|
|
mov @r1,ar4
|
|
ljmp 00132$
|
|
00134$:
|
|
; src/cmd.c:140: if (count == 5) {
|
|
mov a,#0x05
|
|
cjne a,_cmd_feed_byte_count_327680_68,00136$
|
|
; src/cmd.c:142: model_set_address(addr);
|
|
mov dptr,#_cmd_feed_byte_addr_327680_68
|
|
mov b,#0x40
|
|
lcall _model_set_address
|
|
; src/cmd.c:143: uart1_send_bytes("OK\r\n", 4);
|
|
mov _uart1_send_bytes_PARM_2,#0x04
|
|
mov dptr,#___str_7
|
|
mov b,#0x80
|
|
lcall _uart1_send_bytes
|
|
ljmp 00155$
|
|
00136$:
|
|
; src/cmd.c:145: uart1_send_bytes("ERR_ADDR\r\n", 10);
|
|
mov _uart1_send_bytes_PARM_2,#0x0a
|
|
mov dptr,#___str_10
|
|
mov b,#0x80
|
|
lcall _uart1_send_bytes
|
|
ljmp 00155$
|
|
00149$:
|
|
; src/cmd.c:148: } else if (cmd_starts_with("TUN")) {
|
|
mov dptr,#___str_11
|
|
mov b,#0x80
|
|
lcall _cmd_starts_with
|
|
mov a,dpl
|
|
jz 00146$
|
|
; src/cmd.c:150: uint8_t pl = cmd_extract_parens(p, 8);
|
|
mov _cmd_extract_parens_PARM_2,#0x08
|
|
mov dptr,#_cmd_feed_byte_p_262144_76
|
|
mov b,#0x40
|
|
lcall _cmd_extract_parens
|
|
; src/cmd.c:151: if (pl > 0) {
|
|
mov a,dpl
|
|
mov r6,a
|
|
mov r5,a
|
|
jz 00155$
|
|
; src/cmd.c:152: uint16_t v = dec_to_int(p, pl);
|
|
mov _dec_to_int_PARM_2,r5
|
|
mov dptr,#_cmd_feed_byte_p_262144_76
|
|
mov b,#0x40
|
|
lcall _dec_to_int
|
|
mov r5,dpl
|
|
mov r6,dph
|
|
; src/cmd.c:153: if (v <= 125) {
|
|
mov ar3,r5
|
|
mov ar4,r6
|
|
clr c
|
|
mov a,#0x7d
|
|
subb a,r3
|
|
clr a
|
|
subb a,r4
|
|
jc 00141$
|
|
; src/cmd.c:155: model_set_channel((uint8_t)v);
|
|
mov dpl,r5
|
|
lcall _model_set_channel
|
|
; src/cmd.c:156: uart1_send_bytes("OK\r\n", 4);
|
|
mov _uart1_send_bytes_PARM_2,#0x04
|
|
mov dptr,#___str_7
|
|
mov b,#0x80
|
|
lcall _uart1_send_bytes
|
|
sjmp 00155$
|
|
00141$:
|
|
; src/cmd.c:158: uart1_send_bytes("ERR_RANGE\r\n", 11);
|
|
mov _uart1_send_bytes_PARM_2,#0x0b
|
|
mov dptr,#___str_12
|
|
mov b,#0x80
|
|
lcall _uart1_send_bytes
|
|
sjmp 00155$
|
|
00146$:
|
|
; src/cmd.c:162: uart1_send_bytes("UNK\r\n", 5);
|
|
mov _uart1_send_bytes_PARM_2,#0x05
|
|
mov dptr,#___str_13
|
|
mov b,#0x80
|
|
lcall _uart1_send_bytes
|
|
00155$:
|
|
; src/cmd.c:165: s_len = 0;
|
|
mov dptr,#_s_len
|
|
clr a
|
|
movx @dptr,a
|
|
; src/cmd.c:166: return;
|
|
ret
|
|
00157$:
|
|
; src/cmd.c:170: if (s_len < CMD_BUF_SIZE - 1) {
|
|
mov dptr,#_s_len
|
|
movx a,@dptr
|
|
mov r6,a
|
|
cjne r6,#0x1f,00328$
|
|
00328$:
|
|
jnc 00160$
|
|
; src/cmd.c:171: s_buf[s_len++] = b;
|
|
mov dptr,#_s_len
|
|
mov a,r6
|
|
inc a
|
|
movx @dptr,a
|
|
mov a,r6
|
|
add a,#_s_buf
|
|
mov dpl,a
|
|
clr a
|
|
addc a,#(_s_buf >> 8)
|
|
mov dph,a
|
|
mov a,r7
|
|
movx @dptr,a
|
|
ret
|
|
00160$:
|
|
; src/cmd.c:174: s_len = 0;
|
|
mov dptr,#_s_len
|
|
clr a
|
|
movx @dptr,a
|
|
; src/cmd.c:176: }
|
|
ret
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
_DEFAULT_ADDR:
|
|
.db #0xe7 ; 231
|
|
.db #0xe7 ; 231
|
|
.db #0xe7 ; 231
|
|
.db #0xe7 ; 231
|
|
.db #0xc2 ; 194
|
|
.area CONST (CODE)
|
|
___str_0:
|
|
.ascii "MODEL"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_1:
|
|
.ascii "SBUS"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_2:
|
|
.ascii "sbus"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_3:
|
|
.ascii "PWM"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_4:
|
|
.ascii "pwm"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_5:
|
|
.ascii "UART"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_6:
|
|
.ascii "uart"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_7:
|
|
.ascii "OK"
|
|
.db 0x0d
|
|
.db 0x0a
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_8:
|
|
.ascii "ERR"
|
|
.db 0x0d
|
|
.db 0x0a
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_9:
|
|
.ascii "ADDR"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_10:
|
|
.ascii "ERR_ADDR"
|
|
.db 0x0d
|
|
.db 0x0a
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_11:
|
|
.ascii "TUN"
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_12:
|
|
.ascii "ERR_RANGE"
|
|
.db 0x0d
|
|
.db 0x0a
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area CONST (CODE)
|
|
___str_13:
|
|
.ascii "UNK"
|
|
.db 0x0d
|
|
.db 0x0a
|
|
.db 0x00
|
|
.area CSEG (CODE)
|
|
.area XINIT (CODE)
|
|
__xinit__s_len:
|
|
.db #0x00 ; 0
|
|
.area CABS (ABS,CODE)
|