📄 sdrv_charoutrect.lst
字号:
\ 008E ED42 SBC HL,BC
\ 0090 4D LD C,L
\ 0091 44 LD B,H
\ 0092 FD6E02 LD L,(IY+2)
\ 0095 2600 LD H,0
\ 0097 F680 OR 128
\ 0099 ED42 SBC HL,BC
\ 009B E29F00 JP PO,?0024
\ 009E AC XOR H
\ 009F ?0024:
\ 009F F2A700 JP P,?0013
\ 00A2 FD7E02 LD A,(IY+2)
\ 00A5 1805 JR ?0014
\ 00A7 ?0013:
\ 00A7 3E08 LD A,8
\ 00A9 DD9606 SUB (IX+6)
\ 00AC ?0014:
\ 00AC DD77FC LD (IX-4),A
103
104 //把黑白字模转为彩色字模放在Buff中(上区)
105 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
106 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
\ 00AF 010800 LD BC,CharPointBuffer+8
\ 00B2 110800 LD DE,8
\ 00B5 CD7D01 CALL ?0038
107 //把暂时显存区的数据送到LCM
108 Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(ASCII_LARGE_HEIGHT_DEF/2)*2,
109 (ASCII_LARGE_HEIGHT_DEF/2)*tmpwidth*2);
110
111 region.y += ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
\ 00B8 3A0100 LD A,(region+1)
\ 00BB C608 ADD A,8
\ 00BD 320100 LD (region+1),A
112 Hdrv_SetWindow(®ion);
\ 00C0 CD7701 CALL ?0036
113 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
114 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
\ 00C3 010000 LD BC,CharPointBuffer
\ 00C6 110800 LD DE,8
\ 00C9 C34E01 JP ?0033
115 //把暂时显存区的数据送到LCM
116 Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(ASCII_LARGE_HEIGHT_DEF/2)*2,
117 (ASCII_LARGE_HEIGHT_DEF/2)*tmpwidth*2);
118 //坐标移到下一个字的左上角
119 //region.x += ASCII_LARGE_WIDTH_DEF;
120 //region.y -= ASCII_LARGE_HEIGHT_DEF/2;
121 break;
\ 00CC ?0015:
\ 00CC FE02 CP 2
\ 00CE C25101 JP NZ,?0002
122
123 case CharMode1616://16*16点阵模式(汉字)
124 //设置字模输出的大小(上半个汉字)
125 if (colcnt >= 16)
\ 00D1 DD7E06 LD A,(IX+6)
\ 00D4 FE10 CP 16
\ 00D6 3809 JR C,?0017
\ 00D8 ?0016:
126 {//计数值超出
127 Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模
\ 00D8 ?0032:
\ 00D8 110000 LD DE,0
\ 00DB CD0000 CALL Hdrv_SetDrawMode
128 return FALSE;
\ 00DE ?0031:
\ 00DE AF XOR A
129 }
\ 00DF 1878 JR ?0022
\ 00E1 ?0017:
130 //确定输出区域
131 region.x = CRregion->x;
132 region.y = CRregion->y;
133 region.width = CRregion->width;
134 region.height = CHINESE_HEIGHT_DEF1-8;
135 Hdrv_SetWindow(®ion);
\ 00E1 CD6001 CALL ?0035
136 //region.y-=4;
137 //取最小的值.
138 tmpwidth = (CRregion->width < (16-colcnt))? (CRregion->width):(16-colcnt);
\ 00E4 DD4E06 LD C,(IX+6)
\ 00E7 0600 LD B,0
\ 00E9 211000 LD HL,16
\ 00EC A7 AND A
\ 00ED ED42 SBC HL,BC
\ 00EF 4D LD C,L
\ 00F0 44 LD B,H
\ 00F1 FD6E02 LD L,(IY+2)
\ 00F4 2600 LD H,0
\ 00F6 F680 OR 128
\ 00F8 ED42 SBC HL,BC
\ 00FA E2FE00 JP PO,?0025
\ 00FD AC XOR H
\ 00FE ?0025:
\ 00FE F20601 JP P,?0019
\ 0101 FD7E02 LD A,(IY+2)
\ 0104 1805 JR ?0020
\ 0106 ?0019:
\ 0106 3E10 LD A,16
\ 0108 DD9606 SUB (IX+6)
\ 010B ?0020:
\ 010B DD77FC LD (IX-4),A
139
140 //把黑白字模转为彩色字模放在Buff中
141 putCharChFlag=8;
\ 010E 3E08 LD A,8
\ 0110 320000 LD (putCharChFlag),A
142 BlackCharToColor(CHINESE_WIDTH_DEF1, CharPointBuffer + CHINESE_WIDTH_DEF1);//+8
\ 0113 011000 LD BC,CharPointBuffer+16
\ 0116 111000 LD DE,16
\ 0119 CD0000 CALL BlackCharToColor
143 putCharChFlag=8;
\ 011C 3E08 LD A,8
\ 011E 320000 LD (putCharChFlag),A
144 //BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer);
145
146 //把暂时显存区的数据送到LCM
147 Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(CHINESE_HEIGHT_DEF1-8)*2,
148 (CHINESE_HEIGHT_DEF1-8)*tmpwidth*2);
\ 0121 DD6EFC LD L,(IX-4)
\ 0124 2600 LD H,0
\ 0126 29 ADD HL,HL
\ 0127 29 ADD HL,HL
\ 0128 29 ADD HL,HL
\ 0129 29 ADD HL,HL
\ 012A 4D LD C,L
\ 012B 44 LD B,H
\ 012C DD6E06 LD L,(IX+6)
\ 012F 2600 LD H,0
\ 0131 29 ADD HL,HL
\ 0132 29 ADD HL,HL
\ 0133 29 ADD HL,HL
\ 0134 29 ADD HL,HL
\ 0135 110000 LD DE,DisplayBuffer
\ 0138 19 ADD HL,DE
\ 0139 EB EX DE,HL
\ 013A CD0000 CALL Hdrv_BuffDataTrans
149 region.y += CHINESE_HEIGHT_DEF1-8;//Y坐标加8准备输出下区(下半个汉字) 8
\ 013D 3A0100 LD A,(region+1)
\ 0140 C608 ADD A,8
\ 0142 320100 LD (region+1),A
150 region.height = CHINESE_HEIGHT_DEF1-8;
151 Hdrv_SetWindow(®ion);
\ 0145 CD7201 CALL ?0037
152 //BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer + CHINESE_WIDTH_DEF);
153 BlackCharToColor(CHINESE_WIDTH_DEF1, CharPointBuffer);
\ 0148 010000 LD BC,CharPointBuffer
\ 014B 111000 LD DE,16
\ 014E ?0033:
\ 014E CD7D01 CALL ?0038
154 //把暂时显存区的数据送到LCM
155 Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(CHINESE_HEIGHT_DEF1-8)*2,
156 (CHINESE_HEIGHT_DEF1-8)*tmpwidth*2);
157 break;
\ 0151 ?0021:
158
159 default:
160 break;
\ 0151 ?0002:
161 }
162 Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模
\ 0151 110000 LD DE,0
\ 0154 CD0000 CALL Hdrv_SetDrawMode
163 return TRUE;
\ 0157 3E01 LD A,1
164
165
166 }
\ 0159 ?0022:
\ 0159 DDF9 LD SP,IX
\ 015B DDE1 POP IX
\ 015D FDE1 POP IY
\ 015F C9 RET
\ 0160 ?0035:
\ 0160 FD7E00 LD A,(IY+0)
\ 0163 320000 LD (region),A
\ 0166 FD7E01 LD A,(IY+1)
\ 0169 320100 LD (region+1),A
\ 016C FD7E02 LD A,(IY+2)
\ 016F 320200 LD (region+2),A
\ 0172 ?0037:
\ 0172 3E08 LD A,8
\ 0174 320300 LD (region+3),A
\ 0177 ?0036:
\ 0177 110000 LD DE,region
\ 017A C30000 JP Hdrv_SetWindow
\ 017D ?0038:
\ 017D CD0000 CALL BlackCharToColor
\ 0180 DD6EFC LD L,(IX-4)
\ 0183 2600 LD H,0
\ 0185 29 ADD HL,HL
\ 0186 29 ADD HL,HL
\ 0187 29 ADD HL,HL
\ 0188 29 ADD HL,HL
\ 0189 4D LD C,L
\ 018A 44 LD B,H
\ 018B DD6E06 LD L,(IX+6)
\ 018E 2600 LD H,0
\ 0190 29 ADD HL,HL
\ 0191 29 ADD HL,HL
\ 0192 29 ADD HL,HL
\ 0193 29 ADD HL,HL
\ 0194 110000 LD DE,DisplayBuffer
\ 0197 19 ADD HL,DE
\ 0198 EB EX DE,HL
\ 0199 CD0000 CALL Hdrv_BuffDataTrans
\ 019C C9 RET
\ 019D END
Errors: none
Warnings: none
Code size: 413
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -