📄 disp.asm
字号:
.global disp .section cpu_dir, #alloc .word 'd'+'i'+'s'+'p'+'.'+'c'+'g'+'i' .byte 0x10 ;cgi .byte 0 ;reserved .word cgibegin .word cgiend .section cpu_files, #alloccgibegin: ;disp.cgi .pcode disp .pcode pretcgiend: .textdisp: jnb flagSecure,noExecCgi mov state80,#'D' ; find 'D' item - line 1 display lcall scanpar jnb zflag, noDcmd ;; cmdD lcall d_init mov r7,#0b10000000 ; move cursor to line 1 lcall d_inst lcall dump8 ; copy first 8 char to display; advance processed bytes forward and copy next fragment of parameters lcall scancont lcall dump8 ; copy last 8 char to displaynoDcmd: mov state80,#'d' ; find 'd' item - line 2 display lcall scanpar jnb zflag, nodcmd ;; cmdd lcall d_init mov r7,#0b11000000 ; move cursor to line 2 lcall d_inst lcall dump8 ; copy first 8 char to display; advance processed bytes forward and copy next fragment of parameters lcall scancont; ljmp dump8 ; copy last 8 char to displaydump8: mov r1,#8L0: mov a,@r0 mov r7,a cjne r7,#'&',L9 ;ret form item separatorLret: mov r7,#' ' lcall d_data ;fill end of line djnz r1,Lret retL9: cjne r7,#' ',L8 ;ret if space delimiter sjmp LretL8: anl a,#0b11100000 jnz L7 sjmp Lret ;ret if control charL7: inc r0 cjne r7,#'+',L6 ;translated space char ? mov r7,#' ' ; back to space charL6: cjne r7,#'%',L1 mov a,@r0 inc r0 jnb acc.6,L10 ;convert ascii to hex nibble add a,#9L10: anl a,#0x0F swap a mov r7,a mov a,@r0 inc r0 jnb acc.6,L11 ;convert ascii to hex nibble add a,#9L11: anl a,#0x0F orl a,r7 mov r7,aL1: lcall d_data djnz r1,L0nodcmd: noExecCgi: ret ;; END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -