📄 fontel68.txt
字号:
LINE_BYTES equ 176
;/// IN R1,COLOR R2,R3, XL XH R12,R13,YL YH //
PROC PutPixel
PutPixel: PUSH DPH
PUSH DPL
PUSH B
PUSH ACC
PUSH 11
PUSH 12
PUSH 04H
PUSH 01H
PUSH 03H
PUSH 13
CLR C
MOV A,#LGRAPH_ROW
SUBB A,R3
MOV A,#HGRAPH_ROW
SUBB A,13
JC PutPixel5
MOV A,#LGRAPH_COL
SUBB A,R2
MOV A,#HGRAPH_COL
SUBB A,12
JC PutPixel5
PPXL:
CLR C
MOV A,R3
SUBB A,#240
MOV DPL,A
MOV A,13
SUBB A,#0
MOV DPH,A
JNC PPXL3
LCALL PonitAddr
MOV P1.5,C
SETB P1.6
MOVX A,@DPTR
MOVX A,@DPTR
MOV R4,A
MOV B,11
MOV A,B
CJNE A,#0,PPXL2
MOV A,#01111111B
ANL A,R4
ORL A,R1
MOVX @DPTR,A
SJMP PutPixel5
PPXL2: MOV A,#01111111B
MOV 12,R1
PPXL1: SETB C
RrC A
XCH A,R1
CLR C
RrC A
XCH A,R1
DJNZ B,PPXL1
ANL A,R4
ORL A,R1
SETB P1.6
MOVX @DPTR,A
SJMP PutPixel5
PPXL3:
MOV R3,DPL
MOV 13,DPH
MOV A,R1
SWAP A
MOV R1,A
LCALL PonitAddr
MOV P1.5,C
SETB P1.6
MOVX A,@DPTR
MOVX A,@DPTR
MOV R4,A
MOV B,11
MOV A,B
CJNE A,#0,PPXL22
MOV A,#11110111B
ANL A,R4
ORL A,R1
MOVX @DPTR,A
SJMP PutPixel5
PPXL22: MOV A,#11110111B
MOV 12,R1
PPXL11: SETB C
RrC A
XCH A,R1
CLR C
RrC A
XCH A,R1
DJNZ B,PPXL11
ANL A,R4
ORL A,R1
SETB P1.6
MOVX @DPTR,A
PutPixel5:
POP 13
POP 3
POP 01H
POP 04H
POP 12
POP 11
POP ACC
POP B
POP DPL
POP DPH
RET
END
;///IN R2,R3,R12,R13,R1 OUT ACC ///////////
PROC ReadPixel
ReadPixel:
PUSH B
push 01h
PUSH DPH
PUSH DPL
PUSH 12
PUSH 13
PUSH 04H
PUSH 11
PUSH 03H
PUSH 13
CLR C
MOV A,R3
SUBB A,#240
MOV DPL,A
MOV A,13
SUBB A,#0
MOV DPH,A
JNC RPXL4
LCALL PonitAddr
MOV P1.5,C
SETB P1.6
MOVX A,@DPTR
MOVX A,@DPTR
MOV R4,A
MOV B,11
MOV A,B
CJNE A,#0,RPXL2
MOV A,#10000000B
ANL A,R4
MOV R1,A
SJMP RPixel5
RPXL2: MOV A,#10000000B
RPXL1: CLR C
RrC A
DJNZ B,RPXL1
ANL A,R4
MOV B,11
RPXL3: CLR C
RlC A
DJNZ B,RPXL3
MOV R1,A
SJMP RPixel5
RPXL4:
MOV R3,DPL
MOV 13,DPH
LCALL PonitAddr
MOV P1.5,C
SETB P1.6
MOVX A,@DPTR
MOVX A,@DPTR
MOV R4,A
MOV B,11
MOV A,B
CJNE A,#0,RPXL22
MOV A,#10000000B
ANL A,R4
SWAP A
MOV R1,A
SJMP RPixel5
RPXL22: MOV A,#10000000B
RPXL11: CLR C
RrC A
DJNZ B,RPXL11
ANL A,R4
MOV B,11
RPXL33: CLR C
RlC A
DJNZ B,RPXL33
SWAP A
MOV R1,A
RPixel5:
MOV A,R1
POP 13
POP 3
POP 11
POP 04H
POP 13
POP 12
POP DPL
POP DPH
pop 01h
POP B
RET
END
;/////////////////////////////////////////////////////////////////////////
;R2:XL R3:LY R12:HX R13:HY ADDR=[64XH+XL/4+1]+[176*LY] LEAVE=R11
PonitAddr:
PUSH 02H
PUSH 03H
PUSH 12
PUSH 13
PUSH 06H
PUSH B
PUSH A
MOV A,12
MOV B,#64
MUL AB
MOV DPH,B
MOV DPL,A
MOV A,R2
MOV B,#4
DIV AB
MOV 11,B ;;
ADD A,DPL
MOV DPL,A
MOV A,#1
ADDC A,DPL
MOV DPL,A
MOV A,#0
addc a,DPH
mov dph,a
MOV A,R3
MOV B,#LINE_BYTES
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,DPH
ADDC A,B
MOV DPH,A
clr c
POP A
POP B
POP 06H
POP 13
POP 12
POP 03H
POP 02H
RET
;/////////清屏////////////////
PROC ClearScreen
ClearScreen: PUSH DPL
PUSH DPH
PUSH B
PUSH 04H
PUSH A
clr P1.5
setb p1.6
MOV R4,#0
MOV DPTR,#0
CLEARSCREEN2: MOV B,#LINE_BYTES
CLEARSCREEN1: INC DPTR
MOV A,R1
MOVX @DPTR,A
DJNZ B,CLEARSCREEN1
DJNZ R4,CLEARSCREEN2
POP A
POP 04
POP B
POP DPH
POP DPL
RET
END
;/////////////////显示中西文/////////////////////////////////
PROC Display
Display: LCALL ReadFont
MOV R1,Fc_RGB
MOV 12,HCursorX
MOV R2,LCursorX
MOV 13,HCursorY
MOV R3,LCursorY
MOV R4,VBytes
Display1: MOV R5,HBytes
Display2: MOV P1,R7
INC R7
MOV P0,#0FFH
CLR P1.5
clr p1.6
MOVX A,@DPTR
MOV R0,A
MOV R6,#8
Display3: PUSH 06H
MOV A,R0
RLC A
MOV R0,A
JNC Display6
MOV R6,HTimes
Display4: PUSH 06H
MOV R6,VTimes
Display5: LCALL PutPixel
; INC R3
MOV A,R3
ADD A,#1H
MOV R3,A
MOV A,13
ADDC A,#0
MOV 13,A
DJNZ R6,Display5
MOV A,R3
CLR C
SUBB A,VTimes
MOV R3,A
MOV A,13
SUBB A,#0
MOV 13,A
MOV A,R2
ADD A,#1H
MOV R2,A
MOV A,12
ADDC A,#0
MOV 12,A
POP 06H
DJNZ R6,Display4
SJMP Display7
Display6: MOV A,HTimes
ADD A,R2
MOV R2,A
MOV A,12
ADDC A,#0
MOV 12,A
Display7: POP 06H
DJNZ R6,Display3
DJNZ R5,Display2
MOV R2,LCursorX
MOV 12,HCursorX
MOV A,VTimes
ADD A,R3
MOV R3,A
MOV A,13
ADDC A,#0
MOV 13,A
DJNZ R4,Display1
RET
END
;/////////////////////字模地址//////////////////////////////////////
ReadFont: CLR C
JB IsHanZi,ReadFont2
MOV A,R7
MOV R7,#0
RRC A
JNC ReadFont1
MOV R7,#10H
ReadFont1: MOV DPL,A
MOV DPH,#HIGH(FONT_ROM)
RET
ReadFont2: MOV A,R6
SUBB A,#(0A1H-80H)
MOV R6,A
MOV A,R7
SUBB A,#0A1H
MOV B,#94
MUL AB
ADD A,R6
XCH A,B
ADDC A,#HIGH(FONT_ROM)
MOV DPL,B
MOV DPH,A
MOV R7,#0
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -