📄 ui_licensinf.lst
字号:
\ 00BC 8200 DEFW ?0087
\ 00BE CE00 DEFW ?0018
\ 00C0 E300 DEFW ?0019
\ 00C2 E300 DEFW ?0019
\ 00C4 E300 DEFW ?0019
\ 00C6 8200 DEFW ?0087
\ 00C8 CE00 DEFW ?0018
\ 00CA 8200 DEFW ?0087
\ 00CC CE00 DEFW ?0018
\ 00CE ?0017:
141 {
142 case AP_KEY_NEXT:
143 case AP_KEY_NEXT | AP_KEY_HOLD:
144 case AP_KEY_VOLADD:
145 case AP_KEY_VOLADD | AP_KEY_HOLD:
146 /*
147 if ((itemcnt == BeginDateTimeDisp_def) || (itemcnt == ExpDateTimeDisp_def))
148 {
149 if(subitemcnt == 0)
150 {
151 subitemcnt = 1;
152 if (displaycase(&licensinfbuf.drminf, itemcnt, 1,string_id))
153 {
154 break;
155 }
156 }
157 subitemcnt = 0;
158 }
159 */
160 itemcnt = NextItem(&licensinfbuf.drminf, itemcnt, string_id);
161 break;
\ 00CE ?0018:
162
163 case AP_KEY_PREV:
164 case AP_KEY_PREV | AP_KEY_HOLD:
165 case AP_KEY_VOLSUB:
166 case AP_KEY_VOLSUB | AP_KEY_HOLD:
167 /*
168 if ((itemcnt == BeginDateTimeDisp_def) || (itemcnt == ExpDateTimeDisp_def))
169 {
170 if (subitemcnt == 1)
171 {
172 subitemcnt = 0;
173 if (displaycase(&licensinfbuf.drminf, itemcnt, 0,string_id))
174 {
175 break;
176 }
177
178 }
179 subitemcnt = 0;
180 }
181 */
182 itemcnt = PrevItem(&licensinfbuf.drminf, itemcnt, string_id);
\ 00CE FDE5 PUSH IY
\ 00D0 DD4EE2 LD C,(IX-30)
\ 00D3 210800 LD HL,8
\ 00D6 39 ADD HL,SP
\ 00D7 110100 LD DE,1
\ 00DA 19 ADD HL,DE
\ 00DB EB EX DE,HL
\ 00DC 3E00 LD A,BYTE3 PrevItem
\ 00DE 215101 LD HL,LWRD PrevItem
\ 00E1 18B2 JR ?0086
183 break;
\ 00E3 ?0019:
184
185 case AP_KEY_MODE | AP_KEY_UP:
186 case AP_MSG_WAIT_TIMEOUT://8秒退出
187 case AP_KEY_PLAY | AP_KEY_UP:
188 return RESULT_IGNORE;
\ 00E3 213400 LD HL,52
189
190 default:
\ 00E6 1813 JR ?0026
\ 00E8 ?0020:
191 key=ap_handle_hotkey(key);//热键处理
\ 00E8 CD0000 CALL LWRD ap_handle_hotkey
\ 00EB DD77E3 LD (IX-29),A
192 if(key == RESULT_REDRAW)
\ 00EE FE32 CP 50
\ 00F0 28AA JR Z,?0012
\ 00F2 ?0021:
193 {
194 need_draw=TRUE;
\ 00F2 ?0022:
195 }
196 else if(key!=0)
\ 00F2 AF XOR A
\ 00F3 DDB6E3 OR (IX-29)
\ 00F6 28A4 JR Z,?0012
\ 00F8 ?0024:
197 {
198 return key;
\ 00F8 6F LD L,A
\ 00F9 2600 LD H,0
199 }
\ 00FB ?0026:
\ 00FB FDE1 POP IY
\ 00FD C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0100 ?0107:
\ 0100 3E00 LD A,BYTE3 ResShowMultiString
\ 0102 210000 LD HL,LWRD ResShowMultiString
\ 0105 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0108 ?0109:
\ 0108 DD5E02 LD E,(IX+2)
\ 010B DD5603 LD D,(IX+3)
\ 010E ?0108:
\ 010E 3E00 LD A,BYTE3 displaycase
\ 0110 218701 LD HL,LWRD displaycase
\ 0113 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0116 ?0025:
\ 0116 ?0023:
\ 0116 ?0016:
200 }//switch(key)
201 }//while(1)
202 }
\ 0116 NextItem:
203
204 /*
205 output: 输出最后选中的项目的号
206 */
207
208 char NextItem(licensinf_t *infbuf, char cnt, int lan_id)
209 {
\ 0116 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0119 FEFF DEFW 65534
210 bool result;
211 char i;
212
213 if (cnt>=lincensinf_maxitem_def)
\ 011B 79 LD A,C
\ 011C FE06 CP 6
\ 011E 3804 JR C,?0028
\ 0120 ?0027:
214 {
215 return lincensinf_maxitem_def;
\ 0120 2E06 LD L,6
216 }
\ 0122 182A JR ?0034
\ 0124 ?0028:
217
218 i = cnt + 1;
\ 0124 41 LD B,C
\ 0125 04 INC B
\ 0126 DD70FE LD (IX-2),B
\ 0129 ?0030:
219
220 for (; i<=lincensinf_maxitem_def;)
\ 0129 3E06 LD A,6
\ 012B DDBEFE CP (IX-2)
\ 012E 381B JR C,?0029
\ 0130 ?0031:
221 {
222 result = displaycase(infbuf, i, 0,lan_id);
\ 0130 DD6E0A LD L,(IX+10)
\ 0133 DD660B LD H,(IX+11)
\ 0136 E5 PUSH HL
\ 0137 0E00 LD C,0
\ 0139 C5 PUSH BC
\ 013A DD4EFE LD C,(IX-2)
\ 013D CD0801 CALL LWRD ?0109
\ 0140 F1 POP AF
\ 0141 F1 POP AF
223 if (result)
\ 0142 2C INC L
\ 0143 2D DEC L
\ 0144 2005 JR NZ,?0029
\ 0146 ?0032:
224 {
225 return i;
226 }
\ 0146 ?0033:
227 i++;
\ 0146 DD34FE INC (IX-2)
\ 0149 18DE JR ?0030
\ 014B ?0029:
228 }
229 return i;
\ 014B DD6EFE LD L,(IX-2)
230 }
\ 014E ?0034:
\ 014E C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0151 PrevItem:
231
232 char PrevItem(licensinf_t *infbuf, char cnt, int lan_id)
233 {
\ 0151 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0154 FEFF DEFW 65534
234 bool result;
235 char i;
236
237 if (cnt == 0)
\ 0156 0C INC C
\ 0157 0D DEC C
\ 0158 2003 JR NZ,?0036
\ 015A ?0035:
238 {
239 return 0;
\ 015A 69 LD L,C
240 }
\ 015B 1827 JR ?0042
\ 015D ?0036:
241
242 i = cnt - 1;
\ 015D 79 LD A,C
\ 015E C6FF ADD A,255
\ 0160 DD77FE LD (IX-2),A
\ 0163 ?0038:
243
244 for (; i>=0;)
\ 0163 DD7EFE LD A,(IX-2)
\ 0166 ?0039:
245 {
246 result = displaycase(infbuf, i, 0,lan_id);
\ 0166 DD6E0A LD L,(IX+10)
\ 0169 DD660B LD H,(IX+11)
\ 016C E5 PUSH HL
\ 016D 0E00 LD C,0
\ 016F C5 PUSH BC
\ 0170 4F LD C,A
\ 0171 CD0801 CALL LWRD ?0109
\ 0174 F1 POP AF
\ 0175 F1 POP AF
247 if (result)
\ 0176 2C INC L
\ 0177 2D DEC L
\ 0178 2805 JR Z,?0041
\ 017A ?0040:
248 {
249 return i;
\ 017A DD6EFE LD L,(IX-2)
250 }
\ 017D 1805 JR ?0042
\ 017F ?0041:
251 i--;
\ 017F DD35FE DEC (IX-2)
\ 0182 18DF JR ?0038
\ 0184 ?0037:
252 }
253 return i;
254 }
\ 0184 ?0042:
\ 0184 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0187 displaycase:
255
256
257
258
259 //=============================================
260 //显示的项目
261 /*
262 如当前项目不要显示,则跳到下一个项目,
263 如已到最后一个或最前一个,则不动
264
265 input:
266 要显示的项目
267
268 output:
269 返回是否能显示T: 已显示;
270 F: 没有显示
271 */
272
273 //=============================================
274 bool displaycase(licensinf_t *infbuf, char cnt, char subcnt, int lan_id)
275 {
\ 0187 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 018A FAFF DEFW 65530
\ 018C FDE5 PUSH IY
\ 018E DD6E02 LD L,(IX+2)
\ 0191 DD6603 LD H,(IX+3)
\ 0194 E5 PUSH HL
\ 0195 FDE1 POP IY
276 switch(cnt)
\ 0197 59 LD E,C
\ 0198 CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 019B 00 DEFB 0
\ 019C 0700 DEFW 7
\ 019E 1E03 DEFW ?0068
\ 01A0 AE01 DEFW ?0044
\ 01A2 D501 DEFW ?0047
\ 01A4 1902 DEFW ?0050
\ 01A6 3602 DEFW ?0053
\ 01A8 5D02 DEFW ?0056
\ 01AA A102 DEFW ?0059
\ 01AC E402 DEFW ?0062
\ 01AE ?0044:
277 {
278 case RemainPlayCntDisp_def:
279 if ((infbuf->switchflag & on_PLAYCNT_def) == 0)
\ 01AE FDCB006E BIT 5,(IY+0)
\ 01B2 CA1E03 JP Z,?0068
\ 01B5 ?0045:
280 {
281 return FALSE;
282 }
\ 01B5 ?0046:
283 else
284 {
285 char tmpbuf[5];
286 //显示标题
287 ClearScreen(NULL);
\ 01B5 CD2503 CALL LWRD ?0106
288 ResShowMultiString(PLAYCNT, lan_id, 255, 90);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -