📄 ui_directory_scroll.lst
字号:
\ 036E 60 LD H,B
\ 036F 220000 LD (list_active),HL
274 cur_group=0;
\ 0372 220000 LD (cur_group),HL
275 top=0; //顶的序号
276 bottom=top+GroupDefine-1; //底的序号
\ 0375 FD210500 LD IY,5
277 if(bottom>(list_total_num-1))
\ 0379 AF XOR A
\ 037A DD77E8 LD (IX-24),A
\ 037D DD77E9 LD (IX-23),A
\ 0380 2B DEC HL
\ 0381 ED4B0000 LD BC,(list_total_num)
\ 0385 09 ADD HL,BC
\ 0386 FDE5 PUSH IY
\ 0388 C1 POP BC
\ 0389 A7 AND A
\ 038A ED42 SBC HL,BC
\ 038C 302D JR NC,?0092
\ 038E ?0090:
278 bottom=list_total_num-1;
\ 038E ?0123:
\ 038E 21FFFF LD HL,65535
\ 0391 ED4B0000 LD BC,(list_total_num)
\ 0395 09 ADD HL,BC
\ 0396 E5 PUSH HL
\ 0397 FDE1 POP IY
\ 0399 ?0091:
\ 0399 ?0089:
279 }
280 }
281 else
\ 0399 1820 JR ?0092
\ 039B ?0085:
282 {
283 if(fselDirLayer==0)
\ 039B B7 OR A
\ 039C 2009 JR NZ,?0094
\ 039E ?0093:
284 fselDirNo[fselDirLayer] = 0;
\ 039E 4F LD C,A
\ 039F 41 LD B,C
\ 03A0 210000 LD HL,fselDirNo
\ 03A3 09 ADD HL,BC
\ 03A4 70 LD (HL),B
285 else
\ 03A5 1804 JR ?0095
\ 03A7 ?0094:
286 fselDirLayer--;
\ 03A7 210000 LD HL,fselDirLayer
\ 03AA 35 DEC (HL)
\ 03AB ?0095:
287
288 fselGetLocation(location); //更新location
\ 03AB DD5EFC LD E,(IX-4)
\ 03AE DD56FD LD D,(IX-3)
\ 03B1 3E00 LD A,BYTE3 fselGetLocation
\ 03B3 210000 LD HL,LWRD fselGetLocation
\ 03B6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
289 return RESULT_NULL;
\ 03B9 184C JR ?0113
290 }
\ 03BB ?0092:
\ 03BB ?0083:
291 }
292 DecodeOnePage(top,bottom,type,string_id);
\ 03BB DD6E08 LD L,(IX+8)
\ 03BE E5 PUSH HL
\ 03BF DD6EFE LD L,(IX-2)
\ 03C2 E5 PUSH HL
\ 03C3 CD4904 CALL LWRD ?0128
\ 03C6 E1 POP HL
\ 03C7 E1 POP HL
293 ScrollFlag = 0;
\ 03C8 AF XOR A
\ 03C9 320000 LD (ScrollFlag),A
294 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 03CC 1853 JR ?0120
295 break;
\ 03CE ?0096:
296
297 case AP_MSG_WAIT_TIMEOUT:
298 count++;
\ 03CE DD34ED INC (IX-19)
299 if(count%8==0)
\ 03D1 DD7EED LD A,(IX-19)
\ 03D4 E607 AND 7
\ 03D6 C20601 JP NZ,?0025
\ 03D9 ?0097:
300 {
301 fselSetLocationC(location);
\ 03D9 ?0114:
\ 03D9 DD5EFC LD E,(IX-4)
\ 03DC DD56FD LD D,(IX-3)
\ 03DF 3E00 LD A,BYTE3 fselSetLocationC
\ 03E1 210000 LD HL,LWRD fselSetLocationC
\ 03E4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
302 return RESULT_IGNORE;
\ 03E7 213400 LD HL,52
303 }
\ 03EA 181E JR ?0110
\ 03EC ?0098:
304 break;
\ 03EC ?0099:
305
306 case AP_MSG_SD_OUT:
307 //如在游览SD卡,但SD卡又被拔出,就返回拔出信号
308 if (location->disk == 'H')
\ 03EC DD6EFC LD L,(IX-4)
\ 03EF DD66FD LD H,(IX-3)
\ 03F2 7E LD A,(HL)
\ 03F3 FE48 CP 72
\ 03F5 C20601 JP NZ,?0025
\ 03F8 ?0100:
309 {
310 return RESULT_SD_OUT;
\ 03F8 213600 LD HL,54
311 }
\ 03FB 180D JR ?0110
\ 03FD ?0101:
312 break;
\ 03FD ?0102:
313
314 case AP_MSG_SD_IN:
315 break;
\ 03FD ?0103:
316
317 default:
318 key=ap_handle_hotkey(key);
\ 03FD CD0000 CALL LWRD ap_handle_hotkey
\ 0400 DD77EB LD (IX-21),A
319 if(key == RESULT_REDRAW)
\ 0403 FE32 CP 50
\ 0405 200C JR NZ,?0105
\ 0407 ?0104:
320 {
321 return 0; //界面不能重画直接返回
\ 0407 ?0113:
\ 0407 210000 LD HL,0
322 }
\ 040A ?0110:
\ 040A DDF9 LD SP,IX
\ 040C DDE1 POP IX
\ 040E FDE1 POP IY
\ 0410 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0413 ?0105:
323 else if(key != 0)
\ 0413 AF XOR A
\ 0414 DDB6EB OR (IX-21)
\ 0417 C26102 JP NZ,?0058
\ 041A ?0106:
324 {
325 goto LongTime;
\ 041A ?0107:
326 }
327 if(ScrollFlag)
\ 041A 3A0000 LD A,(ScrollFlag)
\ 041D B7 OR A
\ 041E CA0601 JP Z,?0025
\ 0421 ?0108:
328 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 0421 ?0120:
\ 0421 DD6EEA LD L,(IX-22)
\ 0424 E5 PUSH HL
\ 0425 DD6E08 LD L,(IX+8)
\ 0428 E5 PUSH HL
\ 0429 2A0000 LD HL,(list_active)
\ 042C E5 PUSH HL
\ 042D E5 PUSH HL
\ 042E CD3804 CALL LWRD ?0126
\ 0431 E1 POP HL
\ 0432 E1 POP HL
\ 0433 E1 POP HL
\ 0434 E1 POP HL
\ 0435 ?0109:
329 break;
\ 0435 ?0027:
330 } //switch() end
331 }//while(1) end
332 }
\ 0435 C30601 JP LWRD ?0025
\ 0438 ?0126:
\ 0438 FDE5 PUSH IY
\ 043A C1 POP BC
\ 043B DD5EE8 LD E,(IX-24)
\ 043E DD56E9 LD D,(IX-23)
\ 0441 3E00 LD A,BYTE3 ShowDirectory
\ 0443 210000 LD HL,LWRD ShowDirectory
\ 0446 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0449 ?0128:
\ 0449 FDE5 PUSH IY
\ 044B C1 POP BC
\ 044C DD5EE8 LD E,(IX-24)
\ 044F DD56E9 LD D,(IX-23)
\ 0452 ?0127:
\ 0452 3E00 LD A,BYTE3 DecodeOnePage
\ 0454 210000 LD HL,LWRD DecodeOnePage
\ 0457 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 045A ?0129:
\ 045A ED4B0000 LD BC,(cur_group)
\ 045E 09 ADD HL,BC
\ 045F 220000 LD (cur_group),HL
\ 0462 010600 LD BC,6
\ 0465 ED5B0000 LD DE,(list_active)
\ 0469 CD0000 CALL LWRD ?US_DIV_L02
\ 046C EB EX DE,HL
\ 046D 29 ADD HL,HL
\ 046E 4D LD C,L
\ 046F 44 LD B,H
\ 0470 29 ADD HL,HL
\ 0471 09 ADD HL,BC
\ 0472 DD75E8 LD (IX-24),L
\ 0475 DD74E9 LD (IX-23),H
\ 0478 010500 LD BC,5
\ 047B 09 ADD HL,BC
\ 047C E5 PUSH HL
\ 047D FDE1 POP IY
\ 047F 21FFFF LD HL,65535
\ 0482 ED4B0000 LD BC,(list_total_num)
\ 0486 09 ADD HL,BC
\ 0487 FDE5 PUSH IY
\ 0489 C1 POP BC
\ 048A A7 AND A
\ 048B ED42 SBC HL,BC
\ 048D C9 RET
\ 048E ?0130:
\ 048E EB EX DE,HL
\ 048F CD0000 CALL LWRD ?US_DIV_L02
\ 0492 ED530000 LD (cur_group),DE
\ 0496 EB EX DE,HL
\ 0497 29 ADD HL,HL
\ 0498 4D LD C,L
\ 0499 44 LD B,H
\ 049A 29 ADD HL,HL
\ 049B 09 ADD HL,BC
\ 049C DD75E8 LD (IX-24),L
\ 049F DD74E9 LD (IX-23),H
\ 04A2 010500 LD BC,5
\ 04A5 09 ADD HL,BC
\ 04A6 E5 PUSH HL
\ 04A7 FDE1 POP IY
\ 04A9 C9 RET
\ 04AA ?0131:
\ 04AA DB4E IN A,(78)
\ 04AC CBDF SET 3,A
\ 04AE D34E OUT (78),A
\ 04B0 010600 LD BC,6
\ 04B3 ED5B0000 LD DE,(list_active)
\ 04B7 CD0000 CALL LWRD ?US_MOD_L02
\ 04BA 0E4B LD C,75
\ 04BC CD0000 CALL LWRD ?S_MUL_L02
\ 04BF 210000 LD HL,OnePageRecord
\ 04C2 19 ADD HL,DE
\ 04C3 4D LD C,L
\ 04C4 44 LD B,H
\ 04C5 110000 LD DE,temp_record
\ 04C8 3E00 LD A,BYTE3 TransOneRecord
\ 04CA 210000 LD HL,LWRD TransOneRecord
\ 04CD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04D0 3A0B00 LD A,(temp_record+11)
\ 04D3 320000 LD (fselDirLayer),A
\ 04D6 210100 LD HL,temp_record+1
\ 04D9 4F LD C,A
\ 04DA 0600 LD B,0
\ 04DC 09 ADD HL,BC
\ 04DD 46 LD B,(HL)
\ 04DE C9 RET
\ 0000 RSEG CSTR
\ 0000 ?0011:
\ 0000 3A DEFB ':'
\ 0001 00 DEFB 0
\ 0002 END
Errors: none
Warnings: none
Code size: 1247
Constant size: 2
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -