📄 navi_read.lst
字号:
\ 00DA ED4A ADC HL,BC
\ 00DC 4D LD C,L
\ 00DD 44 LD B,H
\ 00DE EB EX DE,HL
\ 00DF CD0000 CALL LWRD ?SL_CMP_L03
\ 00E2 3019 JR NC,?0013
\ 00E4 ?0012:
75 memcpy(&g_path_info,buffer+fileoffset%512,sizeof(Location_Path_t));
\ 00E4 014000 LD BC,64
\ 00E7 114000 LD DE,g_path_info
\ 00EA 68 LD L,B
\ 00EB 60 LD H,B
\ 00EC E5 PUSH HL
\ 00ED 2602 LD H,2
\ 00EF E5 PUSH HL
\ 00F0 CDA503 CALL LWRD ?0041
\ 00F3 010000 LD BC,buffer
\ 00F6 09 ADD HL,BC
\ 00F7 014000 LD BC,64
\ 00FA C38201 JP LWRD ?0038
76 else
\ 00FD ?0013:
77 {
78 End = 512-fileoffset%512;
\ 00FD 6F LD L,A
\ 00FE 67 LD H,A
\ 00FF E5 PUSH HL
\ 0100 2602 LD H,2
\ 0102 E5 PUSH HL
\ 0103 CDA503 CALL LWRD ?0041
\ 0106 59 LD E,C
\ 0107 50 LD D,B
\ 0108 4D LD C,L
\ 0109 44 LD B,H
\ 010A 210002 LD HL,512
\ 010D ED42 SBC HL,BC
\ 010F 4D LD C,L
\ 0110 44 LD B,H
\ 0111 6F LD L,A
\ 0112 67 LD H,A
\ 0113 ED52 SBC HL,DE
\ 0115 E5 PUSH HL
\ 0116 69 LD L,C
\ 0117 DD75F0 LD (IX-16),L
\ 011A 60 LD H,B
\ 011B DD74F1 LD (IX-15),H
\ 011E C1 POP BC
\ 011F DD71F2 LD (IX-14),C
\ 0122 DD70F3 LD (IX-13),B
79 memcpy(&g_path_info,buffer+fileoffset%512,End);
\ 0125 E5 PUSH HL
\ 0126 114000 LD DE,g_path_info
\ 0129 6F LD L,A
\ 012A 67 LD H,A
\ 012B E5 PUSH HL
\ 012C 2602 LD H,2
\ 012E E5 PUSH HL
\ 012F CDA503 CALL LWRD ?0041
\ 0132 010000 LD BC,buffer
\ 0135 09 ADD HL,BC
\ 0136 C1 POP BC
\ 0137 79 LD A,C
\ 0138 B0 OR B
\ 0139 2802 JR Z,?0035
\ 013B EDB0 LDIR
\ 013D ?0035:
80 fileoffset = fileoffset+End;
\ 013D 211400 LD HL,20
\ 0140 39 ADD HL,SP
\ 0141 DD4EF2 LD C,(IX-14)
\ 0144 DD46F3 LD B,(IX-13)
\ 0147 DD5EF0 LD E,(IX-16)
\ 014A DD56F1 LD D,(IX-15)
\ 014D CD0000 CALL LWRD ?L_ADDASG_L03
81 result= Navi_read(fileoffset);
\ 0150 CD9D03 CALL LWRD ?0039
\ 0153 DD75EF LD (IX-17),L
82 memcpy(&g_path_info+End,buffer+fileoffset%512,sizeof(Location_Path_t)-End);
\ 0156 DD4EF0 LD C,(IX-16)
\ 0159 DD46F1 LD B,(IX-15)
\ 015C 214000 LD HL,64
\ 015F A7 AND A
\ 0160 ED42 SBC HL,BC
\ 0162 E5 PUSH HL
\ 0163 59 LD E,C
\ 0164 50 LD D,B
\ 0165 0606 LD B,6
\ 0167 CD0000 CALL LWRD ?S_LSH_L02
\ 016A 214000 LD HL,g_path_info
\ 016D 19 ADD HL,DE
\ 016E EB EX DE,HL
\ 016F 210000 LD HL,0
\ 0172 E5 PUSH HL
\ 0173 2602 LD H,2
\ 0175 E5 PUSH HL
\ 0176 CDA503 CALL LWRD ?0041
\ 0179 010000 LD BC,buffer
\ 017C 09 ADD HL,BC
\ 017D C1 POP BC
\ 017E 79 LD A,C
\ 017F B0 OR B
\ 0180 2802 JR Z,?0036
\ 0182 ?0038:
\ 0182 EDB0 LDIR
\ 0184 ?0036:
\ 0184 ?0014:
83 }
84 if(g_path_info.PathorFile!=0)
\ 0184 3A4000 LD A,(g_path_info)
\ 0187 B7 OR A
\ 0188 2805 JR Z,?0016
\ 018A ?0015:
85 return FALSE;
\ 018A 2E00 LD L,0
\ 018C C39A03 JP LWRD ?0032
\ 018F ?0016:
86 CurTotalNum = g_path_info.DirNum + g_path_info.FileNum +1-g_path_info.DelFileNum;
\ 018F 2A6500 LD HL,(g_path_info+37)
\ 0192 5F LD E,A
\ 0193 57 LD D,A
\ 0194 D5 PUSH DE
\ 0195 E5 PUSH HL
\ 0196 215F00 LD HL,g_path_info+31
\ 0199 4E LD C,(HL)
\ 019A 23 INC HL
\ 019B 46 LD B,(HL)
\ 019C 23 INC HL
\ 019D 5E LD E,(HL)
\ 019E 23 INC HL
\ 019F 56 LD D,(HL)
\ 01A0 D5 PUSH DE
\ 01A1 C5 PUSH BC
\ 01A2 2A5B00 LD HL,(g_path_info+27)
\ 01A5 C1 POP BC
\ 01A6 09 ADD HL,BC
\ 01A7 EB EX DE,HL
\ 01A8 2A5D00 LD HL,(g_path_info+29)
\ 01AB C1 POP BC
\ 01AC ED4A ADC HL,BC
\ 01AE EB EX DE,HL
\ 01AF A7 AND A
\ 01B0 C1 POP BC
\ 01B1 ED42 SBC HL,BC
\ 01B3 EB EX DE,HL
\ 01B4 C1 POP BC
\ 01B5 ED42 SBC HL,BC
\ 01B7 E5 PUSH HL
\ 01B8 D5 PUSH DE
\ 01B9 210100 LD HL,1
\ 01BC C1 POP BC
\ 01BD 09 ADD HL,BC
\ 01BE EB EX DE,HL
\ 01BF 6F LD L,A
\ 01C0 67 LD H,A
\ 01C1 C1 POP BC
\ 01C2 ED4A ADC HL,BC
\ 01C4 4D LD C,L
\ 01C5 44 LD B,H
\ 01C6 EB EX DE,HL
\ 01C7 220000 LD (CurTotalNum),HL
\ 01CA ED430200 LD (CurTotalNum+2),BC
87 Navfileoffset = CurListoffset+sizeof(Location_Path_t); //有可能越界
\ 01CE 6F LD L,A
\ 01CF 67 LD H,A
\ 01D0 E5 PUSH HL
\ 01D1 2E40 LD L,64
\ 01D3 E5 PUSH HL
\ 01D4 2A0000 LD HL,(CurListoffset)
\ 01D7 C1 POP BC
\ 01D8 09 ADD HL,BC
\ 01D9 EB EX DE,HL
\ 01DA 2A0200 LD HL,(CurListoffset+2)
\ 01DD C1 POP BC
\ 01DE ED4A ADC HL,BC
\ 01E0 4D LD C,L
\ 01E1 44 LD B,H
\ 01E2 EB EX DE,HL
\ 01E3 220000 LD (Navfileoffset),HL
\ 01E6 ED430200 LD (Navfileoffset+2),BC
88 *DelNum = g_path_info.DelFileNum;
\ 01EA 2A6500 LD HL,(g_path_info+37)
\ 01ED E5 PUSH HL
\ 01EE DD6E0C LD L,(IX+12)
\ 01F1 DD660D LD H,(IX+13)
\ 01F4 C1 POP BC
\ 01F5 71 LD (HL),C
\ 01F6 23 INC HL
\ 01F7 70 LD (HL),B
\ 01F8 ?0011:
89 }
90
91
92 //write root information
93 //for display
94 memset(navi_buff,0,30*NAVI_GROUP);
\ 01F8 01B400 LD BC,180
\ 01FB 110000 LD DE,navi_buff
\ 01FE 68 LD L,B
\ 01FF CD0000 CALL LWRD ?MEMSET_L11
95 if((direct==0))
\ 0202 AF XOR A
\ 0203 DDB60A OR (IX+10)
\ 0206 202C JR NZ,?0018
\ 0208 ?0017:
96 {
97 memcpy(file_info.filename,msz_temp,11);
\ 0208 010B00 LD BC,11
\ 020B 110100 LD DE,file_info+1
\ 020E 210600 LD HL,6
\ 0211 39 ADD HL,SP
\ 0212 EDB0 LDIR
98 file_info.Nextoffset=g_path_info.Parentoffset;
\ 0214 2A6300 LD HL,(g_path_info+35)
\ 0217 220D00 LD (file_info+13),HL
99 memcpy(navi_buff,&file_info,16);
\ 021A 0E10 LD C,16
\ 021C 110000 LD DE,navi_buff
\ 021F 210000 LD HL,file_info
\ 0222 EDB0 LDIR
100 memcpy(navi_buff+28,&g_path_info.Parentoffset,2);
\ 0224 03 INC BC
\ 0225 03 INC BC
\ 0226 111C00 LD DE,navi_buff+28
\ 0229 216300 LD HL,g_path_info+35
\ 022C EDB0 LDIR
101 count = 1;
\ 022E DD36EE01 LD (IX-18),1
102
103 }
104 else
\ 0232 1817 JR ?0019
\ 0234 ?0018:
105 {
106 Navfileoffset = fileoffset; //有可能越界
\ 0234 DD4E04 LD C,(IX+4)
\ 0237 DD4605 LD B,(IX+5)
\ 023A DD6E02 LD L,(IX+2)
\ 023D DD6603 LD H,(IX+3)
\ 0240 220000 LD (Navfileoffset),HL
\ 0243 ED430200 LD (Navfileoffset+2),BC
107 count = 0;
\ 0247 DD36EE00 LD (IX-18),0
\ 024B ?0019:
108
109 }
110 End = CurListoffset+(CurTotalNum-1+ *DelNum)*sizeof(file_info_t)+sizeof(Location_Path_t);
\ 024B DD6E0C LD L,(IX+12)
\ 024E DD660D LD H,(IX+13)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -