📄 ipsetup.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 + -