📄 ui_directory_rec.lst
字号:
271 init_dir_buf();
\ 0357 3E00 LD A,BYTE3 init_dir_buf
\ 0359 210000 LD HL,LWRD init_dir_buf
\ 035C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
272 list_active=0;
\ 035F 68 LD L,B
\ 0360 60 LD H,B
\ 0361 220000 LD (list_active),HL
273 cur_group=0;
\ 0364 220000 LD (cur_group),HL
274 top=0; //顶的序号
275 bottom=top+GroupDefine-1; //底的序号
\ 0367 FD210500 LD IY,5
276 if(bottom>(list_total_num-1))
\ 036B AF XOR A
\ 036C DD77F6 LD (IX-10),A
\ 036F DD77F7 LD (IX-9),A
\ 0372 2B DEC HL
\ 0373 ED4B0000 LD BC,(list_total_num)
\ 0377 09 ADD HL,BC
\ 0378 FDE5 PUSH IY
\ 037A C1 POP BC
\ 037B A7 AND A
\ 037C ED42 SBC HL,BC
\ 037E 302D JR NC,?0098
\ 0380 ?0096:
277 bottom=list_total_num-1;
\ 0380 ?0121:
\ 0380 21FFFF LD HL,65535
\ 0383 ED4B0000 LD BC,(list_total_num)
\ 0387 09 ADD HL,BC
\ 0388 E5 PUSH HL
\ 0389 FDE1 POP IY
\ 038B ?0097:
\ 038B ?0095:
\ 038B ?0093:
278 }
279 }
280 }
281 else
\ 038B 1820 JR ?0098
\ 038D ?0089:
282 {
283 if(fselDirLayer==0)
\ 038D B7 OR A
\ 038E 2009 JR NZ,?0100
\ 0390 ?0099:
284 fselDirNo[fselDirLayer] = 0;
\ 0390 4F LD C,A
\ 0391 41 LD B,C
\ 0392 210000 LD HL,fselDirNo
\ 0395 09 ADD HL,BC
\ 0396 70 LD (HL),B
285 else
\ 0397 1804 JR ?0101
\ 0399 ?0100:
286 fselDirLayer--;
\ 0399 210000 LD HL,fselDirLayer
\ 039C 35 DEC (HL)
\ 039D ?0101:
287
288 fselGetLocation(location); //更新location
\ 039D DD5EFC LD E,(IX-4)
\ 03A0 DD56FD LD D,(IX-3)
\ 03A3 3E00 LD A,BYTE3 fselGetLocation
\ 03A5 210000 LD HL,LWRD fselGetLocation
\ 03A8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
289 return RESULT_NULL;
\ 03AB 185F JR ?0115
290 }
\ 03AD ?0098:
\ 03AD ?0087:
291 }
292 DecodeOnePage(top,bottom,type,string_id);
\ 03AD DD6E08 LD L,(IX+8)
\ 03B0 E5 PUSH HL
\ 03B1 DD6EFE LD L,(IX-2)
\ 03B4 E5 PUSH HL
\ 03B5 CD2204 CALL LWRD ?0124
\ 03B8 E1 POP HL
\ 03B9 E1 POP HL
293 ap_message_init(NULL);
\ 03BA 110000 LD DE,0
\ 03BD 3E00 LD A,BYTE3 ap_message_init
\ 03BF 210000 LD HL,LWRD ap_message_init
\ 03C2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
294 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 03C5 DD6EF8 LD L,(IX-8)
\ 03C8 E5 PUSH HL
\ 03C9 DD6E08 LD L,(IX+8)
\ 03CC E5 PUSH HL
\ 03CD 3A0000 LD A,(list_active)
\ 03D0 4F LD C,A
\ 03D1 C5 PUSH BC
\ 03D2 4F LD C,A
\ 03D3 C5 PUSH BC
\ 03D4 CD3304 CALL LWRD ?0125
\ 03D7 E1 POP HL
\ 03D8 E1 POP HL
\ 03D9 E1 POP HL
\ 03DA E1 POP HL
295 break;
\ 03DB C3FF00 JP LWRD ?0023
\ 03DE ?0102:
296
297 case AP_MSG_WAIT_TIMEOUT:
298 fselSetLocationC(location);
\ 03DE DD5EFC LD E,(IX-4)
\ 03E1 DD56FD LD D,(IX-3)
\ 03E4 3E00 LD A,BYTE3 fselSetLocationC
\ 03E6 210000 LD HL,LWRD fselSetLocationC
\ 03E9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
299 return RESULT_IGNORE;
\ 03EC 213400 LD HL,52
300
301 case AP_MSG_SD_OUT:
\ 03EF 181E JR ?0112
\ 03F1 ?0103:
302 //如在游览SD卡,但SD卡又被拔出,就返回拔出信号
303 if (location->disk == 'H')
\ 03F1 DD6EFC LD L,(IX-4)
\ 03F4 DD66FD LD H,(IX-3)
\ 03F7 7E LD A,(HL)
\ 03F8 FE48 CP 72
\ 03FA C2FF00 JP NZ,?0023
\ 03FD ?0104:
304 {
305 return RESULT_SD_OUT;
\ 03FD 213600 LD HL,54
306 }
\ 0400 180D JR ?0112
\ 0402 ?0105:
307 break;
\ 0402 ?0106:
308
309 case AP_MSG_SD_IN:
310 break;
\ 0402 ?0107:
311
312 default:
313 key=ap_handle_hotkey(key);
\ 0402 CD0000 CALL LWRD ap_handle_hotkey
\ 0405 DD77F9 LD (IX-7),A
314 if(key == RESULT_REDRAW)
\ 0408 FE32 CP 50
\ 040A 200C JR NZ,?0109
\ 040C ?0108:
315 {
316 return 0 ;
\ 040C ?0115:
\ 040C 210000 LD HL,0
317 }
\ 040F ?0112:
\ 040F DDF9 LD SP,IX
\ 0411 DDE1 POP IX
\ 0413 FDE1 POP IY
\ 0415 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0418 ?0109:
318 else if(key != 0)
\ 0418 AF XOR A
\ 0419 DDB6F9 OR (IX-7)
\ 041C CAFF00 JP Z,?0023
\ 041F ?0110:
319 {
320 goto LongTime;
\ 041F C36302 JP LWRD ?0064
\ 0422 ?0124:
\ 0422 FDE5 PUSH IY
\ 0424 C1 POP BC
\ 0425 DD5EF6 LD E,(IX-10)
\ 0428 DD56F7 LD D,(IX-9)
\ 042B 3E00 LD A,BYTE3 DecodeOnePage
\ 042D 210000 LD HL,LWRD DecodeOnePage
\ 0430 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0433 ?0125:
\ 0433 FDE5 PUSH IY
\ 0435 E1 POP HL
\ 0436 4D LD C,L
\ 0437 DD5EF6 LD E,(IX-10)
\ 043A 3E00 LD A,BYTE3 ShowDirectory
\ 043C 210000 LD HL,LWRD ShowDirectory
\ 043F C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0442 ?0126:
\ 0442 ED4B0000 LD BC,(cur_group)
\ 0446 09 ADD HL,BC
\ 0447 220000 LD (cur_group),HL
\ 044A 010600 LD BC,6
\ 044D ED5B0000 LD DE,(list_active)
\ 0451 CD0000 CALL LWRD ?US_DIV_L02
\ 0454 EB EX DE,HL
\ 0455 29 ADD HL,HL
\ 0456 4D LD C,L
\ 0457 44 LD B,H
\ 0458 29 ADD HL,HL
\ 0459 09 ADD HL,BC
\ 045A DD75F6 LD (IX-10),L
\ 045D DD74F7 LD (IX-9),H
\ 0460 010500 LD BC,5
\ 0463 09 ADD HL,BC
\ 0464 E5 PUSH HL
\ 0465 FDE1 POP IY
\ 0467 21FFFF LD HL,65535
\ 046A ED4B0000 LD BC,(list_total_num)
\ 046E 09 ADD HL,BC
\ 046F FDE5 PUSH IY
\ 0471 C1 POP BC
\ 0472 A7 AND A
\ 0473 ED42 SBC HL,BC
\ 0475 C9 RET
\ 0476 ?0127:
\ 0476 CD0000 CALL LWRD ?US_DIV_L02
\ 0479 ED530000 LD (cur_group),DE
\ 047D EB EX DE,HL
\ 047E 29 ADD HL,HL
\ 047F 4D LD C,L
\ 0480 44 LD B,H
\ 0481 29 ADD HL,HL
\ 0482 09 ADD HL,BC
\ 0483 DD75F6 LD (IX-10),L
\ 0486 DD74F7 LD (IX-9),H
\ 0489 010500 LD BC,5
\ 048C 09 ADD HL,BC
\ 048D E5 PUSH HL
\ 048E FDE1 POP IY
\ 0490 C9 RET
\ 0491 ?0128:
\ 0491 DB4E IN A,(78)
\ 0493 CBDF SET 3,A
\ 0495 D34E OUT (78),A
\ 0497 010600 LD BC,6
\ 049A ED5B0000 LD DE,(list_active)
\ 049E CD0000 CALL LWRD ?US_MOD_L02
\ 04A1 0E4B LD C,75
\ 04A3 CD0000 CALL LWRD ?S_MUL_L02
\ 04A6 210000 LD HL,OnePageRecord
\ 04A9 19 ADD HL,DE
\ 04AA 4D LD C,L
\ 04AB 44 LD B,H
\ 04AC 110000 LD DE,temp_record
\ 04AF 3E00 LD A,BYTE3 TransOneRecord
\ 04B1 210000 LD HL,LWRD TransOneRecord
\ 04B4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04B7 3A0B00 LD A,(temp_record+11)
\ 04BA 320000 LD (fselDirLayer),A
\ 04BD 210100 LD HL,temp_record+1
\ 04C0 4F LD C,A
\ 04C1 0600 LD B,0
\ 04C3 09 ADD HL,BC
\ 04C4 46 LD B,(HL)
\ 04C5 C9 RET
\ 04C6 ?0111:
321 }
322 break;
\ 04C6 ?0025:
323 } //switch() end
324 }//while(1) end
325 }
\ 0000 RSEG CSTR
\ 0000 ?0008:
\ 0000 3A DEFB ':'
\ 0001 00 DEFB 0
\ 0002 ?0083:
\ 0002 5C00 DEFB 92,0
\ 0004 END
Errors: none
Warnings: none
Code size: 1222
Constant size: 4
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -