📄 sdrv_charoutrect_latin1.lst
字号:
\ 0076 F27E00 JP P,?0007
\ 0079 FD7E02 LD A,(IY+2)
\ 007C 1805 JR ?0008
\ 007E ?0007:
\ 007E 3E06 LD A,6
\ 0080 DD9608 SUB (IX+8)
\ 0083 ?0008:
\ 0083 DD77FA LD (IX-6),A
78
79 //把黑白字模转为彩色字模放在Buff中
80 BlackCharToColor(ASCII_SMALL_WIDTH_DEF, CharPointBuffer);
\ 0086 010000 LD BC,CharPointBuffer
\ 0089 110600 LD DE,6
\ 008C 187B JR ?0019
81 //把暂时显存区的数据送到LCM
82 Hdrv_BuffDataTrans(DisplayBuffer+colcnt*ASCII_SMALL_HEIGHT_DEF*2,
83 ASCII_SMALL_HEIGHT_DEF*tmpwidth*2);
84
85 //region.x += ASCII_SMALL_WIDTH_DEF;//坐标移到下一个字的左上角
86 break;
\ 008E ?0009:
\ 008E FE01 CP 1
\ 0090 207A JR NZ,?0002
87
88 case CharMode0816://08*16点阵模式(ascii大字体)
89 //设置字模输出的大小//上半个字
90 //region.width = ASCII_LARGE_WIDTH_DEF;
91 if (colcnt >= 8)
\ 0092 DD7E08 LD A,(IX+8)
\ 0095 FE08 CP 8
\ 0097 3809 JR C,?0011
\ 0099 ?0010:
92 {//计数值超出
93 Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模
\ 0099 ?0022:
\ 0099 110000 LD DE,0
\ 009C CD0000 CALL Hdrv_SetDrawMode
94 return FALSE;
\ 009F ?0021:
\ 009F AF XOR A
95 }
\ 00A0 1872 JR ?0016
\ 00A2 ?0011:
96 //确定输出区域
97 region.x = CRregion->x;
\ 00A2 FD7E00 LD A,(IY+0)
\ 00A5 320000 LD (region),A
98 region.y = CRregion->y;
\ 00A8 FD7E01 LD A,(IY+1)
\ 00AB 320100 LD (region+1),A
99 region.width = CRregion->width;
\ 00AE FD7E02 LD A,(IY+2)
\ 00B1 320200 LD (region+2),A
100 region.height = ASCII_LARGE_HEIGHT_DEF/2;
\ 00B4 3E08 LD A,8
\ 00B6 320300 LD (region+3),A
101 region.y += ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
\ 00B9 3A0100 LD A,(region+1)
\ 00BC C608 ADD A,8
\ 00BE 320100 LD (region+1),A
102 Sdrv_SetReadMode();
\ 00C1 CD1B01 CALL ?0023
103 Hdrv_SetFontWindow(®ion);
104
105 //取最小的值.
106 tmpwidth = (CRregion->width < (8-colcnt))? (CRregion->width):(8-colcnt);
\ 00C4 210800 LD HL,8
\ 00C7 A7 AND A
\ 00C8 ED42 SBC HL,BC
\ 00CA 4D LD C,L
\ 00CB 44 LD B,H
\ 00CC FD6E02 LD L,(IY+2)
\ 00CF 2600 LD H,0
\ 00D1 F680 OR 128
\ 00D3 ED42 SBC HL,BC
\ 00D5 E2D900 JP PO,?0018
\ 00D8 AC XOR H
\ 00D9 ?0018:
\ 00D9 F2E100 JP P,?0013
\ 00DC FD7E02 LD A,(IY+2)
\ 00DF 1805 JR ?0014
\ 00E1 ?0013:
\ 00E1 3E08 LD A,8
\ 00E3 DD9608 SUB (IX+8)
\ 00E6 ?0014:
\ 00E6 DD77FA LD (IX-6),A
107
108 //把黑白字模转为彩色字模放在Buff中(上区)
109 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
110 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
\ 00E9 010800 LD BC,CharPointBuffer+8
\ 00EC 110800 LD DE,8
\ 00EF CD2A01 CALL ?0024
111 //把暂时显存区的数据送到LCM
112 Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(ASCII_LARGE_HEIGHT_DEF/2)*2,
113 (ASCII_LARGE_HEIGHT_DEF/2)*tmpwidth*2);
114
115 region.y -= ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
\ 00F2 3A0100 LD A,(region+1)
\ 00F5 C6F8 ADD A,248
\ 00F7 320100 LD (region+1),A
116 Sdrv_SetReadMode();
\ 00FA CD0000 CALL Sdrv_SetReadMode
117 Hdrv_SetFontWindow(®ion);
\ 00FD 110000 LD DE,region
\ 0100 CD0000 CALL Hdrv_SetFontWindow
118 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
119 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
\ 0103 010000 LD BC,CharPointBuffer
\ 0106 110800 LD DE,8
\ 0109 ?0019:
\ 0109 CD2A01 CALL ?0024
120 //把暂时显存区的数据送到LCM
121 Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(ASCII_LARGE_HEIGHT_DEF/2)*2,
122 (ASCII_LARGE_HEIGHT_DEF/2)*tmpwidth*2);
123 //坐标移到下一个字的左上角
124 //region.x += ASCII_LARGE_WIDTH_DEF;
125 //region.y -= ASCII_LARGE_HEIGHT_DEF/2;
126 break;
\ 010C ?0015:
127
128 default:
129 break;
\ 010C ?0002:
130 }
131 Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模
\ 010C 110000 LD DE,0
\ 010F CD0000 CALL Hdrv_SetDrawMode
132 return TRUE;
\ 0112 3E01 LD A,1
133 }
\ 0114 ?0016:
\ 0114 DDF9 LD SP,IX
\ 0116 DDE1 POP IX
\ 0118 FDE1 POP IY
\ 011A C9 RET
\ 011B ?0023:
\ 011B CD0000 CALL Sdrv_SetReadMode
\ 011E 110000 LD DE,region
\ 0121 CD0000 CALL Hdrv_SetFontWindow
\ 0124 DD4E08 LD C,(IX+8)
\ 0127 0600 LD B,0
\ 0129 C9 RET
\ 012A ?0024:
\ 012A CD0000 CALL BlackCharToColor
\ 012D DD6EFA LD L,(IX-6)
\ 0130 2600 LD H,0
\ 0132 29 ADD HL,HL
\ 0133 29 ADD HL,HL
\ 0134 29 ADD HL,HL
\ 0135 29 ADD HL,HL
\ 0136 4D LD C,L
\ 0137 44 LD B,H
\ 0138 DD6E08 LD L,(IX+8)
\ 013B 2600 LD H,0
\ 013D 29 ADD HL,HL
\ 013E 29 ADD HL,HL
\ 013F 29 ADD HL,HL
\ 0140 29 ADD HL,HL
\ 0141 110000 LD DE,DisplayBuffer
\ 0144 19 ADD HL,DE
\ 0145 EB EX DE,HL
\ 0146 CD0000 CALL Hdrv_BuffDataTrans
\ 0149 C9 RET
\ 014A END
Errors: none
Warnings: none
Code size: 330
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -