📄 print.asm
字号:
;print.asm
;程序模快功能介绍:打印程序
;print_osdata: 打印标准资料
;print_stat: 打印统计数据
;************************************************
;打印断短路资料
print_osdata:
LDB MXL,#35
LD DX,#PRINT_OSTAB
print_osdata1:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_osdata1
CALL print_filename
CALL print_equ
LDB MXL,#15
LD DX,#PRINT_NETTAB
print_osdata2:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_osdata2
CALL print_dec
LDB NXL,CABLE_MEMORY[0] ;内存容量
LDB NXH,#0 ;用于指示当前已打印到的位置
LD TAB_ADD,#CABLEDATA_ADD ;打印数据的首地址
LDB MXL,#01H ;用于指示当前网络数
LDB MXH,#0 ;用于指示当前所在X坐标,最大值为34,0-34
CMPB NXL,#00H
JNE print_osdata3
LDB MXL,#6
LD DX,#PRINT_EMPTYTAB
print_osdata5:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_osdata5
JMP print_osdata_end
print_osdata3:
LDB DXL,MXL
CALL HEXB_TO_DEC
LD DX,#PRINT_NUMTAB ;存放数字的首地址
;wr net num
LDB AXH,#00H
LDB AXL,FXL
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
LDB AXL,EXH
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
LDB AXL,EXL
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
LDB AXL,#20H
CALL wr_print
LDB MXH,#03H ;X=3
;
print_osdata3_5:
LDB DXL,[TAB_ADD]+
INCB NXH
JBS DXL,7,print_osdata3_1
LDB AXL,#41H;A
CALL wr_print
JMP print_osdata3_2
print_osdata3_1:
LDB AXL,#42H;B
CALL wr_print
ANDB DXL,#7FH
print_osdata3_2:
INCB MXH
CALL HEXB_TO_DEC
LD DX,#PRINT_NUMTAB ;存放数字的首地址
LDB AXH,#0
LDB AXL,EXH
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
LDB AXL,EXL
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
ADDB MXH,#2
CMPB MXH,#34
JE print_osdata3_3
LDB AXL,[TAB_ADD]
CMPB AXL,#00H
JE print_osdata3_4
LDB AXL,#2DH
CALL wr_print;WR -
INCB MXH
JMP print_osdata3_5
print_osdata3_4:
CMPB NXL,NXH
JE print_osdata3_6
INC TAB_ADD
INCB NXH
LDB AXL,#0AH
CALL wr_print
INCB MXL
JMP print_osdata3
print_osdata3_6:
LDB AXL,#0AH
CALL wr_print
JMP print_osdata_end
;
print_osdata3_3:
LDB AXL,[TAB_ADD]
CMPB AXL,#00H
JNE print_osdata3_7
CMPB NXL,NXH
JE print_osdata3_6
INC TAB_ADD
LDB AXL,#0AH
CALL wr_print
INCB MXL
JMP print_osdata3
;
print_osdata3_7:
LDB MXH,#03H
LDB AXL,#0AH
CALL wr_print
LDB AXL,#20H
CALL wr_print
CALL wr_print
CALL wr_print
CALL wr_print
JMP print_osdata3_5
;---------------------
print_osdata_end:
CALL print_equ
;LDB AXL,#0AH
;CALL wr_print
LDB AXL,#45H ;E
CALL wr_print
LDB AXL,#4EH ;N
CALL wr_print
LDB AXL,#44H ;D
CALL wr_print
LDB AXL,#0AH
CALL wr_print
RET
;-------------------统计打印----------------
print_stat:
LDB MXL,#34
LD DX,#PRINT_STATTAB
print_stat1:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat1
CALL print_filename
CALL print_equ
LDB MXL,#7
LD DX,#PRINT_TOTAL ;wr total
print_stat2:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat2
LD DX,TOTAL_NUM[0]
CALL print_data
LDB MXL,#7
LD DX,#PRINT_PASS ;wr pass
print_stat3:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat3
LD DX,PASS_NUM[0]
CALL print_data
LDB MXL,#7
LD DX,#PRINT_FAIL ;wr fail
print_stat4:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat4
LD DX,FAIL_NUM[0]
CALL print_data
CALL print_dec
LDB MXL,#14
LD DX,#PRINT_STATFAILTAB
print_stat5:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat5
CALL print_dec
LDB MXL,#7
LD DX,#PRINT_OS ;wr os
print_stat6:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat6
LD DX,OSERROR_NUM[0]
CALL print_data
LDB MXL,#7
LD DX,#PRINT_COND ;wr COND.
print_stat7:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat7
LD DX,CONDERROR_NUM[0]
CALL print_data
LDB MXL,#7
LD DX,#PRINT_INS ;wr INS.
print_stat8:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat8
LD DX,INSERROR_NUM[0]
CALL print_data
LDB MXL,#7
LD DX,#PRINT_INTE ;wr INTE.
print_stat9:
LDB AXL,[DX]+
CALL wr_print
DJNZ MXL,print_stat9
LD DX,INSTAERROR_NUM[0]
CALL print_data
CALL print_equ
;LDB AXL,#0AH
;CALL wr_print
LDB AXL,#45H ;E
CALL wr_print
LDB AXL,#4EH ;N
CALL wr_print
LDB AXL,#44H ;D
CALL wr_print
LDB AXL,#0AH
CALL wr_print
RET
;--------------------------------------打印从DX输入的数据
;输入参数:DX
print_data:
CALL HEXW_TO_DEC
LD DX,#PRINT_NUMTAB ;存放数字的首地址
LDB AXH,#0
CMPB GXL,#0AH
JNE print_data1
CMPB FXH,#0AH
JNE print_data2
CMPB FXL,#0AH
JNE print_data3
CMPB EXH,#0AH
JNE print_data4
JMP print_data5
print_data1:
LDB AXL,GXL
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
print_data2:
LDB AXL,FXH
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
print_data3:
LDB AXL,FXL
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
print_data4:
LDB AXL,EXH
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
print_data5:
LDB AXL,EXL
ADD BX,AX,DX
LDB AXL,[BX]
CALL wr_print
;
LDB AXL,#0AH
CALL wr_print
RET
;--------------------------------------打印文件名
print_filename:
LDB DXL,FILE_NUM[0]
CALL HEXB_TO_DEC
LD DX,#PRINT_NUMTAB
LDB AXH,#0
LDB AXL,EXH
ADD BX,DX,AX
LDB AXL,[BX]
CALL wr_print
LDB AXL,EXL
ADD BX,DX,AX
LDB AXL,[BX]
CALL wr_print
LDB AXL,#0AH
CALL wr_print
RET
;--------------------------------------写等于符号和减符号
print_equ:
LDB AXL,#3DH
JMP print_equ1
print_dec:
LDB AXL,#2DH
print_equ1:
LDB MXL,#36
print_equ2:
CALL wr_print
DJNZ MXL,print_equ2
LDB AXL,#0AH
CALL wr_print
RET
;--------------------------------------写数据到打印机中
;输入参数:AXL
wr_print:
STB AXL,D8155_PA_ADD[0]
ANDB PORT1_DA,#11101111B
LDB PORT1,PORT1_DA
NOP
NOP
NOP
ORB PORT1_DA,#00010000B
LDB PORT1,PORT1_DA
LDB HXL,#0FFH
wr_print1:
LDB WR_DA,PORT2
DJNZ HXL,wr_print1_1
RET
wr_print1_1:
JBS WR_DA,6,wr_print1
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -