📄 sdrv_charoutrect_latin1.lst
字号:
\ 0078 ED42 SBC HL,BC
\ 007A E27E00 JP PO,?0017
\ 007D AC XOR H
\ 007E ?0017:
\ 007E F28600 JP P,?0007
\ 0081 FD7E02 LD A,(IY+2)
\ 0084 1805 JR ?0008
\ 0086 ?0007:
\ 0086 3E06 LD A,6
\ 0088 DD9608 SUB (IX+8)
\ 008B ?0008:
\ 008B DD77FA LD (IX-6),A
78
79 //把黑白字模转为彩色字模放在Buff中
80 BlackCharToColor(ASCII_SMALL_WIDTH_DEF, CharPointBuffer);
\ 008E 010000 LD BC,CharPointBuffer
\ 0091 110600 LD DE,6
\ 0094 C31701 JP ?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;
\ 0097 ?0009:
\ 0097 FE01 CP 1
\ 0099 207F JR NZ,?0002
87
88 case CharMode0816://08*16点阵模式(ascii大字体)
89 //设置字模输出的大小//上半个字
90 //region.width = ASCII_LARGE_WIDTH_DEF;
91 if (colcnt >= 8)
\ 009B DD7E08 LD A,(IX+8)
\ 009E FE08 CP 8
\ 00A0 3809 JR C,?0011
\ 00A2 ?0010:
92 {//计数值超出
93 Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模
\ 00A2 ?0022:
\ 00A2 110000 LD DE,0
\ 00A5 CD0000 CALL Hdrv_SetDrawMode
94 return FALSE;
\ 00A8 ?0021:
\ 00A8 AF XOR A
95 }
\ 00A9 1877 JR ?0016
\ 00AB ?0011:
96 //确定输出区域
97 region.x = CRregion->x;
\ 00AB FD7E00 LD A,(IY+0)
\ 00AE 320000 LD (region),A
98 region.y = CRregion->y;
\ 00B1 FD7E01 LD A,(IY+1)
\ 00B4 320100 LD (region+1),A
99 region.width = CRregion->width;
\ 00B7 FD7E02 LD A,(IY+2)
\ 00BA 320200 LD (region+2),A
100 region.height = ASCII_LARGE_HEIGHT_DEF/2;
\ 00BD 3E08 LD A,8
\ 00BF 320300 LD (region+3),A
101 region.y += ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
\ 00C2 3A0100 LD A,(region+1)
\ 00C5 C608 ADD A,8
\ 00C7 320100 LD (region+1),A
102
103 Hdrv_SetWindow(®ion);
\ 00CA 110000 LD DE,region
\ 00CD CD0000 CALL Hdrv_SetWindow
104
105 //取最小的值.
106 tmpwidth = (CRregion->width < (8-colcnt))? (CRregion->width):(8-colcnt);
\ 00D0 DD4E08 LD C,(IX+8)
\ 00D3 0600 LD B,0
\ 00D5 210800 LD HL,8
\ 00D8 A7 AND A
\ 00D9 ED42 SBC HL,BC
\ 00DB 4D LD C,L
\ 00DC 44 LD B,H
\ 00DD FD6E02 LD L,(IY+2)
\ 00E0 2600 LD H,0
\ 00E2 F680 OR 128
\ 00E4 ED42 SBC HL,BC
\ 00E6 E2EA00 JP PO,?0018
\ 00E9 AC XOR H
\ 00EA ?0018:
\ 00EA F2F200 JP P,?0013
\ 00ED FD7E02 LD A,(IY+2)
\ 00F0 1805 JR ?0014
\ 00F2 ?0013:
\ 00F2 3E08 LD A,8
\ 00F4 DD9608 SUB (IX+8)
\ 00F7 ?0014:
\ 00F7 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);
\ 00FA 010800 LD BC,CharPointBuffer+8
\ 00FD 110800 LD DE,8
\ 0100 CD2901 CALL ?0023
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准备输出下区(下半个字)
\ 0103 3A0100 LD A,(region+1)
\ 0106 C6F8 ADD A,248
\ 0108 320100 LD (region+1),A
116
117 Hdrv_SetWindow(®ion);
\ 010B 110000 LD DE,region
\ 010E CD0000 CALL Hdrv_SetWindow
118
119 //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
120 BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
\ 0111 010000 LD BC,CharPointBuffer
\ 0114 110800 LD DE,8
\ 0117 ?0019:
\ 0117 CD2901 CALL ?0023
121 //把暂时显存区的数据送到LCM
122 Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(ASCII_LARGE_HEIGHT_DEF/2)*2,
123 (ASCII_LARGE_HEIGHT_DEF/2)*tmpwidth*2);
124 //坐标移到下一个字的左上角
125 //region.x += ASCII_LARGE_WIDTH_DEF;
126 //region.y -= ASCII_LARGE_HEIGHT_DEF/2;
127 break;
\ 011A ?0015:
128
129 default:
130 break;
\ 011A ?0002:
131 }
132 Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模
\ 011A 110000 LD DE,0
\ 011D CD0000 CALL Hdrv_SetDrawMode
133 return TRUE;
\ 0120 3E01 LD A,1
134 }
\ 0122 ?0016:
\ 0122 DDF9 LD SP,IX
\ 0124 DDE1 POP IX
\ 0126 FDE1 POP IY
\ 0128 C9 RET
\ 0129 ?0023:
\ 0129 CD0000 CALL BlackCharToColor
\ 012C DD6EFA 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 4D LD C,L
\ 0136 44 LD B,H
\ 0137 DD6E08 LD L,(IX+8)
\ 013A 2600 LD H,0
\ 013C 29 ADD HL,HL
\ 013D 29 ADD HL,HL
\ 013E 29 ADD HL,HL
\ 013F 29 ADD HL,HL
\ 0140 110000 LD DE,DisplayBuffer
\ 0143 19 ADD HL,DE
\ 0144 EB EX DE,HL
\ 0145 CD0000 CALL Hdrv_BuffDataTrans
\ 0148 C9 RET
\ 0149 END
Errors: none
Warnings: none
Code size: 329
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -