📄 zk.asm
字号:
;--------------------------------------
; 由内码(或ASCII)读汉字点阵库
;--------------------------------------
get_d: mov r_374,rc374 ;rc374=00001001
lcall sd374
mov dpl,dpls
mov dph,dphs
movx a,@dptr
inc dpls
inc dpl
cjne a,#0a1h,g_do0
g_do0: jc g_do2
djnz xbn,g_do1
inc xbn
sjmp g_do2
g_do1: clr c
subb a,#0a1h
mov codeh,a
movx a,@dptr
inc dpls
subb a,#0a1h
mov codel,a
lcall mul32
mov reg0,#2
sjmp g_do4
;
g_do2: mov b,#16
mul ab
mov dptr,#d_asc ;d_asc=2000h
add a,dpl
mov dplsr,a
mov a,b
addc a,dph
mov dphsr,a
mov codcy,rc374
mov reg0,#1
g_do4: mov shn,#0
g_dd0: mov r_374,codcy ;
lcall sd374
clr sf
lcall rest
mov dpl,dplsr
mov dph,dphsr
movx a,@dptr
mov codel,a
inc dptr
mov dphsr,dph
mov dplsr,dpl
mov a,reg0
cjne a,#1,g_dd1
sjmp g_dd2
g_dd1: clr sf
lcall rest
movx a,@dptr
mov codeh,a
inc dptr
mov dphsr,dph
mov dplsr,dpl
g_dd2: mov a,shn
add a,dphs
mov dph,a
mov dpl,dplt
mov r3,reg0
g_dd3: mov a,codel
movx @dptr,a
inc dpl
mov codel,codeh
djnz r3,g_dd3
inc shn
mov a,shn
cjne a,#16,g_dd0
lcall disp
mov a,dplt
add a,reg0
mov dplt,a
djnz xbn,g_do5
ret
g_do5: ljmp get_d
;--------------------------------------
;**************************************
mul32: mov a,codeh
mov b,#94
mul ab
add a,codel
mov codel,a
mov a,b
addc a,#0
mov codeh,a
mov r6,#5
mov codcy,#0
clr c
mull: mov a,codel
rlc a
mov codel,a
mov a,codeh
rlc a
mov codeh,a
mov a,codcy
rlc a
mov codcy,a
djnz r6,mull
mov dptr,#d_hzk
mov a,dpl
add a,codel
mov dplsr,a
mov a,codeh
addc a,dph
mov dphsr,a
mov a,codcy
addc a,#0
mov codcy,a
swap a
anl a,#0f0h
orl a,rc374
mov codcy,a
ret
youd: mov cp374,cp374
mov ydybn,#16
mov r0,#rrxbn0
mov ydxbn,a
youd1: mov reg0,ydybn
mov r0,#ydbuff
mov r_374,cp374
yd10: mov dptr,#d_374
mov a,r_374
movx @dptr,a
mov dpl,dpl0
mov dph,dph0
movx a,@dptr
mov b,a
mov a,r0
cjne a,#ydbuff,yd11
yd11: jc yd12
mov @r0,b
inc r0
yd12: inc dph
mov dpls,dpl
mov dphs,dph
djnz reg0,yd10
mov cp374,r_374
mov reg2,#8
yd15: lcall shift
djnz reg2,yd15
inc dpls
djnz ydxbn,youd1
sjmp yd40
yd40: mov ydxbn,#x_mx1
;
yd41: mov r0,#ydbuff
mov a,#0ffh
clr c
subb a,#ydbuff
inc a
mov reg0,a
yd43: mov @r0,#0
inc r0
djnz reg0,yd43
mov reg2,#8
yd44:
lcall shift
djnz reg2,yd44
djnz ydxbn,yd41
ljmp youd
;********************************
;================================
shift: mov rybn0,#y_off
;-----
shf10: mov a,rybn0
mov b,#y_mx1
div ab
mov ybn,b
mov b,#x_mx1
mul ab
mov reg7,a
lcall getmdp
mov a,#x_mx1
add a,dplsr
mov dpl,a
mov shn,b
mov a,dphsr
orl a,#11110000b
add a,b
mov dph,a
mov a,#ydbuff
add a,rybn0
subb a,#y_off
cjne a,#ydbuff,shf11
shf11: jc shf12
mov r0,a
mov a,@r0
clr c
rlc a
mov @r0,a
shf12: mov reg4,#x_mx1
shf14: dec dpl
movx a,@dptr
rlc a
movx @dptr,a
djnz reg4,shf14
lcall disph0
lcall dpend
inc rybn0
mov a,rybn0
cjne a,#y_rx1,shf10
mov a,#7
jnz shf15
ret
shf15: mov reg4,a
shf17: lcall disp
djnz reg4,shf17
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -