ui_scroll.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 613 行 · 第 1/2 页
LST
613 行
143 tmpstrpt+=rTmp;
\ 00D7 ED4B0000 LD BC,(rTmp)
\ 00DB 47 LD B,A
\ 00DC 210600 LD HL,6
\ 00DF 39 ADD HL,SP
\ 00E0 7E LD A,(HL)
\ 00E1 81 ADD A,C
\ 00E2 77 LD (HL),A
\ 00E3 23 INC HL
\ 00E4 7E LD A,(HL)
\ 00E5 88 ADC A,B
\ 00E6 77 LD (HL),A
144 str_pt = tmpstrpt;
\ 00E7 DD6EFC LD L,(IX-4)
\ 00EA 67 LD H,A
\ 00EB 220000 LD (str_pt),HL
145 scroll_cnt = 0;
\ 00EE AF XOR A
\ 00EF 320000 LD (scroll_cnt),A
146 rTmp = 0;
\ 00F2 320000 LD (rTmp),A
147 }
148 else
\ 00F5 1877 JR ?0019
\ 00F7 ?0018:
149 {
150 rTmp = 0;
\ 00F7 AF XOR A
\ 00F8 320000 LD (rTmp),A
151
152 if(language == 14)
\ 00FB DD7E04 LD A,(IX+4)
\ 00FE FE0E CP 14
\ 0100 2068 JR NZ,?0022
\ 0102 ?0020:
\ 0102 ?0023:
153 {
154 while(1)
155 {
156 code = *tmpstrpt;
\ 0102 DD6EFC LD L,(IX-4)
\ 0105 DD66FD LD H,(IX-3)
\ 0108 4E LD C,(HL)
\ 0109 0600 LD B,0
\ 010B C5 PUSH BC
\ 010C FDE1 POP IY
157 if(code == 0xd1 || (code >=0xd4 && code<0xdb) ||(code >=0xe7 && code<0xef))
\ 010E 3ED1 LD A,209
\ 0110 A9 XOR C
\ 0111 2834 JR Z,?0032
\ 0113 01D480 LD BC,32980
\ 0116 FDE5 PUSH IY
\ 0118 E1 POP HL
\ 0119 78 LD A,B
\ 011A AC XOR H
\ 011B 67 LD H,A
\ 011C ED42 SBC HL,BC
\ 011E 380D JR C,?0030
\ 0120 01DB80 LD BC,32987
\ 0123 FDE5 PUSH IY
\ 0125 E1 POP HL
\ 0126 78 LD A,B
\ 0127 AC XOR H
\ 0128 67 LD H,A
\ 0129 ED42 SBC HL,BC
\ 012B 381A JR C,?0032
\ 012D ?0030:
\ 012D ?0029:
\ 012D 01E780 LD BC,32999
\ 0130 FDE5 PUSH IY
\ 0132 E1 POP HL
\ 0133 78 LD A,B
\ 0134 AC XOR H
\ 0135 67 LD H,A
\ 0136 ED42 SBC HL,BC
\ 0138 3830 JR C,?0022
\ 013A 01EF80 LD BC,33007
\ 013D FDE5 PUSH IY
\ 013F E1 POP HL
\ 0140 78 LD A,B
\ 0141 AC XOR H
\ 0142 67 LD H,A
\ 0143 ED42 SBC HL,BC
\ 0145 3023 JR NC,?0022
\ 0147 ?0032:
\ 0147 ?0031:
\ 0147 ?0027:
\ 0147 ?0028:
\ 0147 ?0025:
158 {
159 CharOutRect(code, *(tmpstrpt+1), &kregion, scroll_cnt);
\ 0147 3A0000 LD A,(scroll_cnt)
\ 014A 4F LD C,A
\ 014B C5 PUSH BC
\ 014C 210400 LD HL,4
\ 014F 39 ADD HL,SP
\ 0150 E5 PUSH HL
\ 0151 DD6EFC LD L,(IX-4)
\ 0154 DD66FD LD H,(IX-3)
\ 0157 CDFE01 CALL LWRD ?0061
\ 015A E1 POP HL
\ 015B E1 POP HL
160 tmpstrpt++;
\ 015C DD34FC INC (IX-4)
\ 015F 2003 JR NZ,?0057
\ 0161 DD34FD INC (IX-3)
\ 0164 ?0057:
161 rTmp++;
\ 0164 210000 LD HL,rTmp
\ 0167 34 INC (HL)
162 }
163 else break;
\ 0168 1898 JR ?0020
\ 016A ?0026:
\ 016A ?0033:
164 }
165 }
\ 016A ?0022:
\ 016A ?0021:
166
167 scroll_cnt++;
\ 016A 210000 LD HL,scroll_cnt
\ 016D 34 INC (HL)
\ 016E ?0019:
168 }
169
170 SetTextPos(kregion.width+kregion.x, scrollregiony_def);
\ 016E 0E2D LD C,45
\ 0170 DD7EF8 LD A,(IX-8)
\ 0173 DD86FA ADD A,(IX-6)
\ 0176 5F LD E,A
\ 0177 CD0000 CALL LWRD SetTextPos
171 tmpstrpt1 = PutS(tmpstrpt, -1);
\ 017A 0EFF LD C,255
\ 017C DD5EFC LD E,(IX-4)
\ 017F DD56FD LD D,(IX-3)
\ 0182 CD0802 CALL LWRD ?0062
172
173 if (GetOutPutErr() == RESULT_PUTCHAR_X_ERR)
\ 0185 2812 JR Z,?0037
\ 0187 ?0034:
174 {//x超限
175
176 goto L_X_ERR_COMMON;
\ 0187 ?0035:
177 }
178 else
179 {
180 GetTextPos(&kregion.x, &kregion.y);
\ 0187 210200 LD HL,2
\ 018A 39 ADD HL,SP
\ 018B CD1602 CALL LWRD ?0063
181 tmpstrpt1 = PutS(strhead_pt, -1);
\ 018E 0EFF LD C,255
\ 0190 ED5B0000 LD DE,(strhead_pt)
\ 0194 CD0802 CALL LWRD ?0062
182 if (GetOutPutErr() == RESULT_PUTCHAR_X_ERR)
\ 0197 2060 JR NZ,?0038
\ 0199 ?0037:
\ 0199 ?0036:
183 {//x超限
184
185 L_X_ERR_COMMON:
186
187 GetTextPos(&kregion.x, &kregion.y);
\ 0199 210200 LD HL,2
\ 019C 39 ADD HL,SP
\ 019D CD1602 CALL LWRD ?0063
188
189 kregion.width = scrollregionw_def+scrollregionx_def - kregion.x;
\ 01A0 3EB0 LD A,176
\ 01A2 DD96F8 SUB (IX-8)
\ 01A5 DD77FA LD (IX-6),A
190 kregion.height = scrollregionh_def;
\ 01A8 DD36FB10 LD (IX-5),16
191 //汉字和ASCII的不同处理
192
193 ///code = ReadCode(tmpstrpt1,language);
194 //---------------------------------------
195 if((language>4)||(language==1))
\ 01AC 3E04 LD A,4
\ 01AE DDBE04 CP (IX+4)
\ 01B1 3827 JR C,?0051
\ 01B3 DD4604 LD B,(IX+4)
\ 01B6 05 DEC B
\ 01B7 2821 JR Z,?0051
\ 01B9 ?0041:
\ 01B9 ?0042:
\ 01B9 ?0039:
196 {//ASCII
197 code = *tmpstrpt1;
\ 01B9 ?0040:
198 }
199 else if(language==3)
\ 01B9 DD7E04 LD A,(IX+4)
\ 01BC FE03 CP 3
\ 01BE DD6EFE LD L,(IX-2)
\ 01C1 DD66FF LD H,(IX-1)
\ 01C4 7E LD A,(HL)
\ 01C5 2006 JR NZ,?0045
\ 01C7 ?0044:
200 {//jap
201 if (*tmpstrpt1 >= 0x81)
\ 01C7 FE81 CP 129
\ 01C9 3815 JR C,?0059
\ 01CB ?0046:
202 {
203 code = *(int *)tmpstrpt1;
\ 01CB 1804 JR ?0060
204 }
205 else
\ 01CD ?0047:
206 {//ASCII
207 code = *tmpstrpt1;
\ 01CD ?0048:
\ 01CD ?0045:
208 }
209 }
210 else if (*tmpstrpt1 >= FirstSectionCode)
\ 01CD FEA1 CP 161
\ 01CF 3809 JR C,?0051
\ 01D1 ?0050:
211 {//汉字
212 code = *(int *)tmpstrpt1;
\ 01D1 ?0060:
\ 01D1 46 LD B,(HL)
\ 01D2 23 INC HL
\ 01D3 66 LD H,(HL)
\ 01D4 68 LD L,B
\ 01D5 E5 PUSH HL
\ 01D6 FDE1 POP IY
213 }
214 else
\ 01D8 180C JR ?0052
\ 01DA ?0051:
215 {//ASCII
216 code = *tmpstrpt1;
\ 01DA DD6EFE LD L,(IX-2)
\ 01DD DD66FF LD H,(IX-1)
\ 01E0 ?0059:
\ 01E0 4E LD C,(HL)
\ 01E1 0600 LD B,0
\ 01E3 C5 PUSH BC
\ 01E4 FDE1 POP IY
\ 01E6 ?0052:
\ 01E6 ?0049:
\ 01E6 ?0043:
217 }
218 //---------------------------------------
219
220 //输出最后一个字
221 CharOutRect(code, *(tmpstrpt1+1), &kregion, 0);
\ 01E6 0E00 LD C,0
\ 01E8 C5 PUSH BC
\ 01E9 210400 LD HL,4
\ 01EC 39 ADD HL,SP
\ 01ED E5 PUSH HL
\ 01EE DD6EFE LD L,(IX-2)
\ 01F1 DD66FF LD H,(IX-1)
\ 01F4 CDFE01 CALL LWRD ?0061
\ 01F7 E1 POP HL
\ 01F8 E1 POP HL
\ 01F9 ?0038:
222
223 }
224 }
225
226 }
\ 01F9 FDE1 POP IY
\ 01FB C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 01FE ?0061:
\ 01FE 23 INC HL
\ 01FF 4E LD C,(HL)
\ 0200 0600 LD B,0
\ 0202 FDE5 PUSH IY
\ 0204 D1 POP DE
\ 0205 C30000 JP LWRD CharOutRect
\ 0208 ?0062:
\ 0208 CD0000 CALL LWRD PutS
\ 020B DD75FE LD (IX-2),L
\ 020E DD74FF LD (IX-1),H
\ 0211 CD0000 CALL LWRD GetOutPutErr
\ 0214 3D DEC A
\ 0215 C9 RET
\ 0216 ?0063:
\ 0216 010100 LD BC,1
\ 0219 09 ADD HL,BC
\ 021A 4D LD C,L
\ 021B 44 LD B,H
\ 021C 2B DEC HL
\ 021D EB EX DE,HL
\ 021E C30000 JP LWRD GetTextPos
\ 0000 RSEG IDATA0
\ 0000 rTmp:
\ 0001 DEFS 1
\ 0000 RSEG CDATA0
\ 0000 00 DEFB 0
\ 0001 END
Errors: none
Warnings: none
Code size: 545
Constant size: 1
Static variable size: Data(1) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?