📄 sdrv_putchar.lst
字号:
\ 005E CD0401 CALL ?0015
70 region.x += ASCII_SMALL_WIDTH_DEF;//坐标移到下一个字的左上角
\ 0061 3A0000 LD A,(region)
\ 0064 C606 ADD A,6
\ 0066 1872 JR ?0011
71 break;
\ 0068 ?0004:
\ 0068 FE01 CP 1
\ 006A 2023 JR NZ,?0005
72
73 case CharMode0816://08*16点阵模式(ascii大字体)
74 //设置字模输出的大小//上半个字
75 region.width = ASCII_LARGE_WIDTH_DEF;
\ 006C 3E08 LD A,8
\ 006E 320200 LD (region+2),A
76 region.height = ASCII_LARGE_HEIGHT_DEF/2;
77 //Jerry Xie Add
78 region.y += ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出上区(上半个字)
79
80 Hdrv_SetWindow(®ion);
\ 0071 CDEA00 CALL ?0013
81
82 //把黑白字模转为彩色字模放在Buff中(上区)
83 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
84 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF); //change by ybfu
\ 0074 010800 LD BC,CharPointBuffer+8
85 //把暂时显存区的数据送到LCM
86 Hdrv_BuffDataTrans(DisplayBuffer, ASCII_LARGE_WIDTH_DEF*(ASCII_LARGE_HEIGHT_DEF/2)*2);
\ 0077 CDFB00 CALL ?0016
87
88 //region.y += ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
89 //Jerry Xie Modify
90 region.y -= ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
\ 007A 3A0100 LD A,(region+1)
\ 007D C6F8 ADD A,248
91
92 Hdrv_SetWindow(®ion);
\ 007F CDF200 CALL ?0014
93
94 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
95 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
\ 0082 010000 LD BC,CharPointBuffer
96 //把暂时显存区的数据送到LCM
97 Hdrv_BuffDataTrans(DisplayBuffer, ASCII_LARGE_WIDTH_DEF*(ASCII_LARGE_HEIGHT_DEF/2)*2);
\ 0085 CDFB00 CALL ?0016
98 //坐标移到下一个字的左上角
99 region.x += ASCII_LARGE_WIDTH_DEF;
\ 0088 3A0000 LD A,(region)
\ 008B C608 ADD A,8
\ 008D 184B JR ?0011
100 //region.y -= ASCII_LARGE_HEIGHT_DEF/2;
101 break;
\ 008F ?0005:
\ 008F FE02 CP 2
\ 0091 204A JR NZ,?0002
102
103 case CharMode1616://16*16点阵模式(汉字)
104 //上面代码,更新下半个字
105 //设置字模输出的大小(上半个汉字)
106 region.width = CHINESE_WIDTH_DEF1; //16
\ 0093 3E10 LD A,16
\ 0095 320200 LD (region+2),A
107 region.height = CHINESE_HEIGHT_DEF1-8; //16-8=8
\ 0098 3E08 LD A,8
108
109 //Jerry Xie Add
110 region.y += CHINESE_HEIGHT_DEF1-8;//Y坐标加8准备输出下区(下半个汉字)
111
112 Hdrv_SetWindow(®ion);
\ 009A CDEA00 CALL ?0013
113
114 //region.y-=4;
115 //把黑白字模转为彩色字模放在Buff中
116 //BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer);
117 putCharChFlag=8;//4
\ 009D 3E08 LD A,8
\ 009F 320000 LD (putCharChFlag),A
118 BlackCharToColor(CHINESE_WIDTH_DEF1, CharPointBuffer + CHINESE_WIDTH_DEF1); //change by ybfu 4 +8
\ 00A2 011000 LD BC,CharPointBuffer+16
\ 00A5 111000 LD DE,16
\ 00A8 CD0000 CALL BlackCharToColor
119 putCharChFlag=8;
\ 00AB 3E08 LD A,8
\ 00AD 320000 LD (putCharChFlag),A
120 //把暂时显存区的数据送到LCM
121 Hdrv_BuffDataTrans(DisplayBuffer, (CHINESE_HEIGHT_DEF1-8)*CHINESE_WIDTH_DEF1*2);
\ 00B0 010001 LD BC,256
\ 00B3 CD0401 CALL ?0015
122 //region.y += CHINESE_HEIGHT_DEF1-8;//Y坐标加8准备输出下区(下半个汉字) 8
123 //Jerry Xie Modify
124 region.y -= CHINESE_HEIGHT_DEF1-8;//Y坐标加8准备输出下区(下半个汉字)
\ 00B6 3A0100 LD A,(region+1)
\ 00B9 C6F8 ADD A,248
\ 00BB 320100 LD (region+1),A
125 region.height = CHINESE_HEIGHT_DEF1-8;//4
\ 00BE 3E08 LD A,8
\ 00C0 320300 LD (region+3),A
126
127 Hdrv_SetWindow(®ion);
\ 00C3 CDF500 CALL ?0012
128
129 //BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer + CHINESE_WIDTH_DEF);
130 BlackCharToColor(CHINESE_WIDTH_DEF1, CharPointBuffer);
\ 00C6 010000 LD BC,CharPointBuffer
\ 00C9 111000 LD DE,16
\ 00CC CD0000 CALL BlackCharToColor
131
132 //把暂时显存区的数据送到LCM
133 Hdrv_BuffDataTrans(DisplayBuffer, (CHINESE_HEIGHT_DEF1-8)*CHINESE_WIDTH_DEF1*2);
\ 00CF 010001 LD BC,256
\ 00D2 CD0401 CALL ?0015
134
135 //坐标移到下一个字的左上角
136 region.x += CHINESE_WIDTH_DEF1;
\ 00D5 3A0000 LD A,(region)
\ 00D8 C610 ADD A,16
\ 00DA ?0011:
\ 00DA 320000 LD (region),A
137 //region.y -= CHINESE_HEIGHT_DEF1/2;
138 break;
\ 00DD ?0006:
139
140 default:
141 break;
\ 00DD ?0002:
142 }
143 Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模
\ 00DD 110000 LD DE,0
\ 00E0 CD0000 CALL Hdrv_SetDrawMode
144 return TRUE;
\ 00E3 3E01 LD A,1
145 }
\ 00E5 ?0007:
\ 00E5 E1 POP HL
\ 00E6 DDE1 POP IX
\ 00E8 C1 POP BC
\ 00E9 C9 RET
\ 00EA ?0013:
\ 00EA 320300 LD (region+3),A
\ 00ED 3A0100 LD A,(region+1)
\ 00F0 C608 ADD A,8
\ 00F2 ?0014:
\ 00F2 320100 LD (region+1),A
\ 00F5 ?0012:
\ 00F5 110000 LD DE,region
\ 00F8 C30000 JP Hdrv_SetWindow
\ 00FB ?0016:
\ 00FB 110800 LD DE,8
\ 00FE CD0000 CALL BlackCharToColor
\ 0101 018000 LD BC,128
\ 0104 ?0015:
\ 0104 110000 LD DE,DisplayBuffer
\ 0107 C30000 JP Hdrv_BuffDataTrans
\ 010A END
Errors: none
Warnings: none
Code size: 266
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -