⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipsetup.asm

📁 web51的开发库
💻 ASM
字号:
	.equ	F0, 0xD5.nolist.include	"../../include/param.inc".include	"../../include/8019.inc".include	"../../include/cpu.inc".list	.section cpu_dir, #alloc	.word	'i'+'p'+'s'+'e'+'t'+'u'+'p'+'.'+'c'+'g'+'i'	.byte	0x10		;cgi	.byte	0		;reserved	.word	cgibegin	.word	cgiend	.section cpu_files, #alloccgibegin:		;ipsetup.cgi	.pcode ipsetup	.pcode pretcgiend:	.global	ipsetup	.text;; ipsetup;;   return;; O.K. - set   zflag;; fail - reset zflagipsetup:jnb	flagSecure,noExecCgi	mov	state80,#'I'	; find IP address	lcall	scanpar	jnb	zflag, noIcmd	;; cmdI	mov	dptr,#new_my_ip	lcall	read_IP_paramnoIcmd:	mov	state80,#'M'	; find IP mask	lcall	scanpar	jnb	zflag, noMcmd	;; cmdM	mov	dptr,#new_ip_mask	lcall	read_IP_paramnoMcmd:	mov	state80,#'G'	; find IP gateway	lcall	scanpar	jnb	zflag, noGcmd	;; cmdG	mov	dptr,#new_ip_gateway	lcall	read_IP_paramnoGcmd:	mov	state80,#'T'	; find IP point	lcall	scanpar	jnb	zflag, noTcmd	;; cmdT	mov	dptr,#new_ip_point	lcall	read_IP_paramnoTcmd:	mov	state80,#'P'	; find protocol	lcall	scanpar	jnb	zflag, noPcmd	;; cmdP	mov	dptr,#new_flow	lcall	read_dec_paramnoPcmd:	mov	state80,#'B'	; find Baud	lcall	scanpar	jnb	zflag, noBcmd	;; cmdB	mov	a,@r0	add	a,#-'1'	cjne	a,#8,.+3	;'1'..'8'	jc	L1process_param_error:noExecCgi:	;error return - unattended char / missing password	clr	zflag	retL1:.ifdef BDT2	inc	a	;1..8.else	mov	R1,a	inc	R1	;1..8	clr	A	setb	Cbdlp:	rlc	A	djnz	R1,bdlp	mov	b,#LOW(CPUCLOCK/384)	mul	ab	cpl	a	inc	a.endif	mov	dptr,#new_baud	lcall	writeparamnoBcmd:	jbc	F0, noEcmd	mov	state80,#'E'	; find copy cmd	lcall	scanpar	jnb	zflag, noEcmd	;; cmdE	mov	a,@R0	cjne	a,#'N',nonewconfig	mov	dptr,#new_setupmoveconfig:.if	RD2	ENABLE_DPTR2		;select DPTR'	mov	DPTR,#work_setup	DISABLE_DPTR2		;select DPTR.else	mov	DPH1,#HIGH(work_setup)	mov	DPL1,#LOW(work_setup).endif	mov	R0,#sizeof_new_setupmoveconfigloop:	ENABLE_EE	movx	a,@dptr	inc	dptr
		;inc source pointer	ENABLE_DPTR2		;select DPTR'	lcall	eewritea	;WARNING off EEPROM	inc	dptr
		;inc destinaton pointer	DISABLE_DPTR2		;select DPTR	djnz	R0,moveconfigloop	setb	F0		;  skip one "config" copy cmd (if not IE make newerending loop)	ljmp	resetnonewconfig:	cjne	a,#'D',process_param_error	mov	dptr,#default_setup	sjmp	moveconfignoEcmd:	setb	zflag	retread_IP_param:	lcall	read_dec_param		;@ 1 byte	mov	a,@r0	cjne	a,#'.',process_param_error	lcall	read_dec_inc_r0		;@ 2 byte	mov	a,@r0	cjne	a,#'.',process_param_error	lcall	read_dec_inc_r0		;@ 3 byte	mov	a,@r0	cjne	a,#'.',process_param_error;	ljmp	read_dec_inc_r0		;@ 4 byteread_dec_inc_r0:	inc	r0read_dec_param:	mov	r1,#0read_decb_loop:	mov	a,@r0	add	a,#-'0'	cjne	a,#9+1,.+3	jnc	writepar1	xch	a,r1	mov	B,#10	mul	ab	add	a,r1	mov	r1,a	inc	r0	sjmp	read_decb_loopwritepar1:	mov	a,r1writeparam:	lcall	eewritea	inc	dptr	clr	C	ret	;ret NC	;; END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -