📄 ui_directory.lst
字号:
\ 021B ?0052:
177 DecodeOnePage(top,bottom,type,string_id);
\ 021B DD6E08 LD L,(IX+8)
\ 021E E5 PUSH HL
\ 021F DD6EFE LD L,(IX-2)
\ 0222 E5 PUSH HL
\ 0223 CD2704 CALL LWRD ?0123
\ 0226 E1 POP HL
\ 0227 E1 POP HL
178 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 0228 DD6EEA LD L,(IX-22)
\ 022B E5 PUSH HL
\ 022C DD6E08 LD L,(IX+8)
\ 022F E5 PUSH HL
\ 0230 2A0000 LD HL,(list_active)
\ 0233 E5 PUSH HL
\ 0234 ?0112:
\ 0234 E5 PUSH HL
\ 0235 CD1604 CALL LWRD ?0121
\ 0238 E1 POP HL
\ 0239 E1 POP HL
\ 023A E1 POP HL
\ 023B E1 POP HL
\ 023C ?0050:
\ 023C ?0054:
179 }
180 while(ap_get_message() != 0);
\ 023C CD0000 CALL LWRD ap_get_message
\ 023F B7 OR A
\ 0240 CAFE00 JP Z,?0025
\ 0243 ?0055:
181 break;
\ 0243 18F7 JR ?0050
\ 0245 ?0053:
\ 0245 ?0056:
182
183
184
185 case AP_KEY_PLAY | AP_KEY_UP:
186 fselSetLocationC(location);
187 return RESULT_IGNORE;
188 break;
\ 0245 ?0057:
189
190 case AP_KEY_MODE | AP_KEY_LONG:
191 key = RESULT_NULL;
\ 0245 DD36EB00 LD (IX-21),0
\ 0249 ?0058:
192 LongTime:
193 output8(0x4e,input8(0x4e) | 0x08);
194 TransOneRecord(&temp_record,(OnePageRecord+list_active%GroupDefine));
\ 0249 CD8804 CALL LWRD ?0126
195 fselDirLayer=temp_record.dirlayer; //目录层次 0--根目录
196 fselDirNo[fselDirLayer]=temp_record.dirno[fselDirLayer]; //目录序号
\ 024C C5 PUSH BC
\ 024D 0600 LD B,0
\ 024F 210000 LD HL,fselDirNo
\ 0252 09 ADD HL,BC
\ 0253 C1 POP BC
\ 0254 70 LD (HL),B
197 fselFileNo=temp_record.fileno; //文件序号
\ 0255 2A0900 LD HL,(temp_record+9)
\ 0258 220000 LD (fselFileNo),HL
198 fselExtNo=temp_record.fselExtNo;
\ 025B 3A0C00 LD A,(temp_record+12)
\ 025E 320000 LD (fselExtNo),A
199
200 if(temp_record.name[0] == '\\') //当前所处子目录首,需要返回父目录
\ 0261 3A0D00 LD A,(temp_record+13)
\ 0264 FE5C CP 92
\ 0266 2008 JR NZ,?0060
\ 0268 ?0059:
201 {
202 if(fselDirLayer==0)
\ 0268 3A0000 LD A,(fselDirLayer)
\ 026B B7 OR A
\ 026C 202E JR NZ,?0073
\ 026E ?0061:
203 fselDirNo[fselDirLayer] = 0;
\ 026E 1823 JR ?0115
204 else
\ 0270 ?0062:
205 fselDirLayer--;
\ 0270 ?0063:
206 // key=RESULT_NULL;
207 }
208 else //当前所处可能是子目录或文件,需要分别处理
\ 0270 ?0060:
209 {
210 if(temp_record.filetype==TYPE_DIR)
\ 0270 3A0000 LD A,(temp_record)
\ 0273 B7 OR A
\ 0274 3A0000 LD A,(fselDirLayer)
\ 0277 2017 JR NZ,?0066
\ 0279 ?0065:
211 {
212 if (fselDirLayer <= 7)
\ 0279 47 LD B,A
\ 027A 3E07 LD A,7
\ 027C B8 CP B
\ 027D 3821 JR C,?0074
\ 027F ?0067:
213 {
214 if(fselEntCurrentDir(temp_record.name))
\ 027F 110D00 LD DE,temp_record+13
\ 0282 3E00 LD A,BYTE3 fselEntCurrentDir
\ 0284 210000 LD HL,LWRD fselEntCurrentDir
\ 0287 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 028A 2C INC L
\ 028B 2D DEC L
\ 028C 2812 JR Z,?0074
\ 028E ?0069:
215 fselDirLayer--;
\ 028E 180C JR ?0073
\ 0290 ?0070:
\ 0290 ?0068:
216 }
217 }
218 else
\ 0290 ?0066:
219 {
220 if(fselDirLayer==0)
\ 0290 B7 OR A
\ 0291 2009 JR NZ,?0073
\ 0293 ?0072:
221 fselDirNo[fselDirLayer] = 0;
\ 0293 ?0115:
\ 0293 4F LD C,A
\ 0294 41 LD B,C
\ 0295 210000 LD HL,fselDirNo
\ 0298 09 ADD HL,BC
\ 0299 70 LD (HL),B
222 else
\ 029A 1804 JR ?0074
\ 029C ?0073:
223 fselDirLayer--;
\ 029C 210000 LD HL,fselDirLayer
\ 029F 35 DEC (HL)
\ 02A0 ?0074:
\ 02A0 ?0071:
\ 02A0 ?0064:
224 // key=RESULT_NULL;
225 }
226 }
227 fselGetLocation(location); //更新location
\ 02A0 DD5EFC LD E,(IX-4)
\ 02A3 DD56FD LD D,(IX-3)
\ 02A6 3E00 LD A,BYTE3 fselGetLocation
\ 02A8 210000 LD HL,LWRD fselGetLocation
\ 02AB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
228 return key;
\ 02AE DD6EEB LD L,(IX-21)
\ 02B1 2600 LD H,0
229 case AP_KEY_MODE | AP_KEY_UP:
\ 02B3 C30304 JP LWRD ?0106
\ 02B6 ?0075:
230 output8(0x4e,input8(0x4e) | 0x08);
231 TransOneRecord(&temp_record,(OnePageRecord+list_active%GroupDefine));
\ 02B6 CD8804 CALL LWRD ?0126
232 fselDirLayer=temp_record.dirlayer; //目录层次 0--根目录
233 fselDirNo[fselDirLayer]=temp_record.dirno[fselDirLayer]; //目录序号
\ 02B9 C5 PUSH BC
\ 02BA 0600 LD B,0
\ 02BC 210000 LD HL,fselDirNo
\ 02BF 09 ADD HL,BC
\ 02C0 C1 POP BC
\ 02C1 70 LD (HL),B
234 fselFileNo=temp_record.fileno; //文件序号
\ 02C2 2A0900 LD HL,(temp_record+9)
\ 02C5 220000 LD (fselFileNo),HL
235 fselExtNo=temp_record.fselExtNo;
\ 02C8 3A0C00 LD A,(temp_record+12)
\ 02CB 320000 LD (fselExtNo),A
236
237 if(temp_record.name[0] == '\\') //当前所处子目录首,需要返回父目录
\ 02CE 3A0D00 LD A,(temp_record+13)
\ 02D1 FE5C CP 92
\ 02D3 2054 JR NZ,?0077
\ 02D5 ?0076:
238 {
239 if (fselRetParentDir(Strname))
\ 02D5 210800 LD HL,8
\ 02D8 39 ADD HL,SP
\ 02D9 EB EX DE,HL
\ 02DA 3E00 LD A,BYTE3 fselRetParentDir
\ 02DC 210000 LD HL,LWRD fselRetParentDir
\ 02DF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02E2 2C INC L
\ 02E3 2D DEC L
\ 02E4 CAA303 JP Z,?0092
\ 02E7 ?0078:
240 {
241 memcpy(temp_record.name,Strname, 11);
\ 02E7 010B00 LD BC,11
\ 02EA 110D00 LD DE,temp_record+13
\ 02ED 210800 LD HL,8
\ 02F0 39 ADD HL,SP
\ 02F1 EDB0 LDIR
242
243 init_dir_buf();
\ 02F3 3E00 LD A,BYTE3 init_dir_buf
\ 02F5 210000 LD HL,LWRD init_dir_buf
\ 02F8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
244 list_active=GetActiveDirFrom(temp_record.dirno[fselDirLayer]);
\ 02FB 210100 LD HL,temp_record+1
\ 02FE ED4B0000 LD BC,(fselDirLayer)
\ 0302 0600 LD B,0
\ 0304 09 ADD HL,BC
\ 0305 5E LD E,(HL)
\ 0306 50 LD D,B
\ 0307 3E00 LD A,BYTE3 GetActiveDirFrom
\ 0309 210000 LD HL,LWRD GetActiveDirFrom
\ 030C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 030F 220000 LD (list_active),HL
245 cur_group=list_active/GroupDefine;
\ 0312 0E06 LD C,6
\ 0314 CD6C04 CALL LWRD ?0125
246 top=(list_active/GroupDefine)*GroupDefine; ; //顶的序号
247 bottom=top+GroupDefine-1; //底的序号
248 if(bottom>(list_total_num-1))
\ 0317 21FFFF LD HL,65535
\ 031A ED4B0000 LD BC,(list_total_num)
\ 031E 09 ADD HL,BC
\ 031F FDE5 PUSH IY
\ 0321 C1 POP BC
\ 0322 A7 AND A
\ 0323 ED42 SBC HL,BC
\ 0325 307C JR NC,?0092
\ 0327 ?0080:
249 bottom=list_total_num-1;
\ 0327 184D JR ?0118
\ 0329 ?0081:
250
251 }
252 else
\ 0329 ?0079:
\ 0329 ?0082:
253 {
254 }
255 }
256 else //当前所处可能是子目录或文件,需要分别处理
\ 0329 ?0077:
257 {
258 if(temp_record.filetype==TYPE_DIR)
\ 0329 3A0000 LD A,(temp_record)
\ 032C B7 OR A
\ 032D 3A0000 LD A,(fselDirLayer)
\ 0330 2051 JR NZ,?0085
\ 0332 ?0084:
259 {
260 if (fselDirLayer >= 7) //需实验看看是7还是8?
\ 0332 FE07 CP 7
\ 0334 D2FE00 JP NC,?0025
\ 0337 ?0086:
261 {
262 break;
\ 0337 ?0087:
263 }
264 if (fselDirNo[fselDirLayer] > 0)
\ 0337 4F LD C,A
\ 0338 0600 LD B,0
\ 033A 210000 LD HL,fselDirNo
\ 033D 09 ADD HL,BC
\ 033E 7E LD A,(HL)
\ 033F B7 OR A
\ 0340 2861 JR Z,?0092
\ 0342 ?0088:
265 {
266 fselEntCurrentDir(temp_record.name);
\ 0342 110D00 LD DE,temp_record+13
\ 0345 3E00 LD A,BYTE3 fselEntCurrentDir
\ 0347 210000 LD HL,LWRD fselEntCurrentDir
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -