sdrv_functions_thai.lst
来自「一种彩屏驱动以及画点,填充图片和填充数据的一些程序」· LST 代码 · 共 438 行 · 第 1/2 页
LST
438 行
\ 0064 210600 LD HL,6
\ 0067 09 ADD HL,BC
\ 0068 4D LD C,L
\ 0069 44 LD B,H
\ 006A ED5B0200 LD DE,(region_win+2)
\ 006E 1600 LD D,0
\ 0070 2A0000 LD HL,(region_win)
\ 0073 62 LD H,D
\ 0074 19 ADD HL,DE
\ 0075 F680 OR 128
\ 0077 ED42 SBC HL,BC
\ 0079 E27D00 JP PO,?0056
\ 007C AC XOR H
\ 007D ?0056:
\ 007D FA1701 JP M,?0070
\ 0080 ?0020:
102 {
103 DUMP(RESULT_PUTCHAR_X_ERR);
104 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
105 return FALSE;
106 }
\ 0080 ?0021:
107 if (region.y+ASCII_SMALL_HEIGHT_DEF > region_win.y+region_win.height)
\ 0080 ED4B0100 LD BC,(region+1)
\ 0084 42 LD B,D
\ 0085 210800 LD HL,8
\ 0088 09 ADD HL,BC
\ 0089 4D LD C,L
\ 008A 44 LD B,H
\ 008B ED5B0300 LD DE,(region_win+3)
\ 008F 1600 LD D,0
\ 0091 2A0100 LD HL,(region_win+1)
\ 0094 62 LD H,D
\ 0095 19 ADD HL,DE
\ 0096 F680 OR 128
\ 0098 ED42 SBC HL,BC
\ 009A E29E00 JP PO,?0057
\ 009D AC XOR H
\ 009E ?0057:
\ 009E F24C01 JP P,?0018
\ 00A1 ?0022:
108 {
109 DUMP(RESULT_PUTCHAR_Y_ERR);
110 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 00A1 C34001 JP ?0071
111 return FALSE;
112 }
\ 00A4 ?0023:
113 break;
\ 00A4 ?0024:
\ 00A4 FE01 CP 1
\ 00A6 2045 JR NZ,?0029
114
115 case CharMode0816://08*16点阵模式(ascii大字体)
116 if (region.x+ASCII_LARGE_WIDTH_DEF > region_win.x+region_win.width)
\ 00A8 ED4B0000 LD BC,(region)
\ 00AC 0600 LD B,0
\ 00AE 210800 LD HL,8
\ 00B1 09 ADD HL,BC
\ 00B2 4D LD C,L
\ 00B3 44 LD B,H
\ 00B4 ED5B0200 LD DE,(region_win+2)
\ 00B8 1600 LD D,0
\ 00BA 2A0000 LD HL,(region_win)
\ 00BD 62 LD H,D
\ 00BE 19 ADD HL,DE
\ 00BF F680 OR 128
\ 00C1 ED42 SBC HL,BC
\ 00C3 E2C700 JP PO,?0058
\ 00C6 AC XOR H
\ 00C7 ?0058:
\ 00C7 FA1701 JP M,?0070
\ 00CA ?0025:
117 {
118 DUMP(RESULT_PUTCHAR_X_ERR);
119 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
120 return FALSE;
121 }
\ 00CA ?0026:
122 if (region.y+ASCII_LARGE_HEIGHT_DEF > region_win.y+region_win.height)
\ 00CA ED4B0100 LD BC,(region+1)
\ 00CE 42 LD B,D
\ 00CF 211000 LD HL,16
\ 00D2 09 ADD HL,BC
\ 00D3 4D LD C,L
\ 00D4 44 LD B,H
\ 00D5 ED5B0300 LD DE,(region_win+3)
\ 00D9 1600 LD D,0
\ 00DB 2A0100 LD HL,(region_win+1)
\ 00DE 62 LD H,D
\ 00DF 19 ADD HL,DE
\ 00E0 F680 OR 128
\ 00E2 ED42 SBC HL,BC
\ 00E4 E2E800 JP PO,?0059
\ 00E7 AC XOR H
\ 00E8 ?0059:
\ 00E8 F24C01 JP P,?0018
\ 00EB ?0027:
123 {
124 DUMP(RESULT_PUTCHAR_Y_ERR);
125 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 00EB 1853 JR ?0071
126 return FALSE;
127 }
\ 00ED ?0028:
128 break;
\ 00ED ?0029:
\ 00ED FE03 CP 3
\ 00EF 2053 JR NZ,?0034
129 /*
130 case CharMode1616://16*16点阵模式(汉字)
131 if (region.x+CHINESE_WIDTH_DEF > region_win.x+region_win.width)
132 {
133 DUMP(RESULT_PUTCHAR_X_ERR);
134 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
135 return FALSE;
136 }
137 if (region.y+CHINESE_HEIGHT_DEF > region_win.y+region_win.height)
138 {
139 DUMP(RESULT_PUTCHAR_Y_ERR);
140 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
141 return FALSE;
142 }
143 break;
144 */
145 case PicDisMode://图形显示模式
146 if (region.x+region.width > region_win.x+region_win.width)
\ 00F1 ED4B0200 LD BC,(region+2)
\ 00F5 0600 LD B,0
\ 00F7 ED5B0000 LD DE,(region)
\ 00FB 50 LD D,B
\ 00FC 69 LD L,C
\ 00FD 60 LD H,B
\ 00FE 19 ADD HL,DE
\ 00FF 4D LD C,L
\ 0100 44 LD B,H
\ 0101 ED5B0200 LD DE,(region_win+2)
\ 0105 1600 LD D,0
\ 0107 2A0000 LD HL,(region_win)
\ 010A 62 LD H,D
\ 010B 19 ADD HL,DE
\ 010C F680 OR 128
\ 010E ED42 SBC HL,BC
\ 0110 E21401 JP PO,?0060
\ 0113 AC XOR H
\ 0114 ?0060:
\ 0114 F21B01 JP P,?0031
\ 0117 ?0030:
147 {
148 DUMP(RESULT_PUTCHAR_X_ERR);
149 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
\ 0117 ?0070:
\ 0117 3E01 LD A,1
\ 0119 182B JR ?0067
150 return FALSE;
151 }
\ 011B ?0031:
152 if (region.y+region.height > region_win.y+region_win.height)
\ 011B ED4B0300 LD BC,(region+3)
\ 011F 42 LD B,D
\ 0120 ED5B0100 LD DE,(region+1)
\ 0124 50 LD D,B
\ 0125 69 LD L,C
\ 0126 60 LD H,B
\ 0127 19 ADD HL,DE
\ 0128 4D LD C,L
\ 0129 44 LD B,H
\ 012A ED5B0300 LD DE,(region_win+3)
\ 012E 1600 LD D,0
\ 0130 2A0100 LD HL,(region_win+1)
\ 0133 62 LD H,D
\ 0134 19 ADD HL,DE
\ 0135 F680 OR 128
\ 0137 ED42 SBC HL,BC
\ 0139 E23D01 JP PO,?0061
\ 013C AC XOR H
\ 013D ?0061:
\ 013D F24C01 JP P,?0018
\ 0140 ?0032:
153 {
154 DUMP(RESULT_PUTCHAR_Y_ERR);
155 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 0140 ?0071:
\ 0140 3E02 LD A,2
\ 0142 1802 JR ?0067
156 return FALSE;
157 }
\ 0144 ?0033:
158 break;
\ 0144 ?0034:
159
160 default:
161 DUMP(RESULT_PUTCHAR_OTHER_ERR);
162 PutCharErrFlag = RESULT_PUTCHAR_OTHER_ERR;//不知类型的也不显示
\ 0144 3E03 LD A,3
\ 0146 ?0067:
\ 0146 320000 LD (PutCharErrFlag),A
163 return FALSE;
\ 0149 AF XOR A
164 }
\ 014A 1802 JR ?0035
\ 014C ?0018:
165 return TRUE;
\ 014C 3E01 LD A,1
166 }
\ 014E ?0035:
\ 014E E1 POP HL
\ 014F C1 POP BC
\ 0150 C9 RET
167 //================================================================================
\ 0151 END
Errors: none
Warnings: none
Code size: 337
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?