Rev 164 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
105 | savelij | 1 | |
165 | savelij | 2 | ; LAST UPDATE: 13.01.2024 savelij |
105 | savelij | 3 | |
164 | savelij | 4 | STACK_CURR_DIR EQU 0x6000 ; �⥪ ���� ��� ��। �室�� � ��� |
5 | |||
163 | savelij | 6 | ; FAT �㭪樨 �� ����ࠬ |
7 | INIT_VAR |
||
164 | savelij | 8 | SETVAR Init_Fatvars ; ���� FAT �ࠩ��� |
9 | SETVAR Getfzap ; ������� ����⥫� 䠩�� |
||
10 | SETVAR Getlong ; ������� ������� ��� 䠩�� |
||
11 | SETVAR Finddir ; ���� �� ��४�ਨ |
||
12 | SETVAR Findfil ; ���� �� 䠩�� �� ��᪥ |
||
13 | SETVAR Set_fil ; ��⠭���� ����� 䠩�� |
||
14 | SETVAR Nextsec ; ���騩 ᥪ�� �� MP3 稯 |
||
15 | SETVAR Openfil ; ����⨥ 䠩�� |
||
16 | SETVAR Prvdir ; �।���� DIR ��� PLAY |
||
17 | SETVAR Nxtdir ; ����� DIR ��� PLAY |
||
18 | SETVAR Loadfil ; ����㧪� 䠩�� |
||
105 | savelij | 19 | |
163 | savelij | 20 | INIT_VAR B512BAS |
164 | savelij | 21 | SETVAR BUF_512, 0x200 ; 200 ���� ᥪ�� |
22 | SETVAR TDIRCLS, 0x400 ; 400 ���� ����� root ��४�ਨ |
||
23 | SETVAR DIR_CEP, 0x100 ; 100 楯�窠 ����� �����४� |
||
24 | SETVAR BUF_PATH, 0x100 ; 100 ���� ⥪�饣� ��� |
||
25 | SETVAR ERORDRV, WORD ; 2 ������ � �訡��� � A |
||
163 | savelij | 26 | SETVAR FATType, BYTE ; ⨯ FAT: 0-12/1-16/2-32 |
27 | SETVAR NumFATs, BYTE ; ������⢮ FAT ⠡��� |
||
28 | SETVAR SecPerClus, BYTE ; ������⢮ ᥪ� � ������ |
||
29 | SETVAR RootDIRCluster, DWORD ; ����� ������ ����� DIR |
||
30 | SETVAR NumSecRootDir, DWORD ; ����� ᥪ�� ����� ��४�ਨ |
||
164 | savelij | 31 | SETVAR ROOTSEC, WORD ; ࠧ��� � ᥪ��� ROOT ��४�ਨ |
163 | savelij | 32 | SETVAR FATSize, DWORD ; ࠧ��� FAT ⠡���� � ᥪ��� |
33 | SETVAR StartSecVol, DWORD ; ����� ���⮢��� ᥪ�� ࠧ���� |
||
34 | SETVAR FirstSecData, DWORD ; ����� ᥪ�� ��砫� ������ ������ |
||
35 | SETVAR NumSecFAT1, DWORD ; ����� ᥪ�� ��ࢮ� FAT ⠡���� |
||
36 | SETVAR NumSecFAT2, DWORD ; ����� ᥪ�� ��ன FAT ⠡���� |
||
37 | SETVAR NumSec2Buf, DWORD ; ����� ᥪ�� ����㦥����� � ���� |
||
38 | SETVAR NumsSectorsVol, DWORD ; ������⢮ ᥪ� �� ࠧ���� |
||
39 | SETVAR NumsClustersVol, DWORD ; ������⢮ ����� �� ࠧ���� |
||
40 | SETVAR CurrentDIRCluster, DWORD ; ����� ������ ⥪�饩 DIR |
||
164 | savelij | 41 | SETVAR TEK_ZAP, WORD ; ⥪��� ������ � DIR |
42 | SETVAR TEK_LEV, BYTE ; ��㡨�� ��宦����� � ��४���� |
||
43 | SETVAR NUMSECK, BYTE ; ���稪 ᥪ� � ������ |
||
44 | SETVAR PAGEDIR, WORD ; ���� 㪫������ � ��࠭�� �� |
||
45 | SETVAR PAGEMP3, WORD ; ���� 㪫������ � ��࠭�� 䠩��� |
||
46 | SETVAR TFILCLS, DWORD ; ⥪�騩 ������ |
||
47 | SETVAR TEKNUMC, WORD ; ���� ⥪�饣� ������ |
||
48 | SETVAR MPHWOST, BYTE ; ���⮪ ᥪ� � ������ ������ |
||
49 | SETVAR KOL_CLS, DWORD ; ���-�� ������ ����� 䠩�� |
||
50 | SETVAR KOLVMP3, WORD ; ���-�� ��������� 䠩��� |
||
51 | SETVAR KOLVDIR, WORD ; ���-�� ��������� �� |
||
52 | SETVAR STR_MP3, WORD ; ���� 㪫���� ��������� 䠩��� |
||
53 | SETVAR STACKPREVDIR, WORD ; ���� � �⥪� �।���� ��४� ��� ������ ����� |
||
163 | savelij | 54 | SETVAR_ALIGN |
164 | savelij | 55 | SETVAR STR_DIR, 0 ; ? ���� 㪫���� ��������� DIR |
163 | savelij | 56 | |
57 | ; ���� �窠 �室� ��� ࠡ��� � FAT |
||
112 | savelij | 58 | CALL CMP_INT |
105 | savelij | 59 | DI |
60 | EXX |
||
61 | PUSH IX |
||
62 | PUSH IY |
||
63 | LD (ERORDRV),SP |
||
64 | PUSH HL |
||
65 | LD HL,EXITDRV |
||
66 | EX (SP),HL |
||
67 | PUSH HL |
||
68 | PUSH DE |
||
69 | ADD A,A |
||
70 | LD L,A |
||
71 | LD H,0 |
||
72 | LD DE,TABLFAT |
||
73 | ADD HL,DE |
||
74 | EX AF,AF' |
||
75 | LD E,(HL) |
||
76 | INC HL |
||
77 | LD D,(HL) |
||
78 | EX DE,HL |
||
79 | POP DE |
||
80 | EX (SP),HL |
||
81 | EXX |
||
82 | RET |
||
83 | |||
84 | ERR_DRV LD SP,(ERORDRV) |
||
85 | EXITDRV POP IY |
||
86 | POP IX |
||
112 | savelij | 87 | PUSH AF |
88 | LD A,(INT_MODE) |
||
89 | AND A |
||
90 | JR Z,EXITDRV1 |
||
91 | EI |
||
92 | EXITDRV1 POP AF |
||
105 | savelij | 93 | RET |
94 | |||
163 | savelij | 95 | TABLFAT DW INIT_FATVARS ; 00 ���� FAT �ࠩ��� |
96 | DW GETFZAP ; 01 ������� ����⥫� 䠩�� |
||
97 | DW GETLONG ; 02 ������� ������� ��� 䠩�� |
||
98 | DW FINDDIR ; 03 ���� �� ��४�ਨ |
||
99 | DW FINDMP3 ; 04 ���� �� 䠩�� �� ��᪥ |
||
100 | DW SET_MP3 ; 05 ��⠭���� ����� 䠩�� |
||
101 | DW NEXTSEC ; 06 ���騩 ᥪ�� �� MP3 稯 |
||
102 | DW OPENFIL ; 07 ����⨥ 䠩�� |
||
103 | DW PRVDIR ; 08 �।���� DIR ��� PLAY |
||
104 | DW NXTDIR ; 09 ����� DIR ��� PLAY |
||
105 | DW LOADFIL ; 0A ����㧪� 䠩�� |
||
105 | savelij | 106 | |
107 | NO_LNG POP DE |
||
108 | LD BC,8 |
||
109 | LDIR |
||
110 | LD A,(HL) |
||
163 | savelij | 111 | CP " " |
112 | JR Z,.NO_LNG1 |
||
105 | savelij | 113 | EX DE,HL |
163 | savelij | 114 | LD (HL),"." |
105 | savelij | 115 | INC HL |
116 | EX DE,HL |
||
117 | LDI |
||
118 | LDI |
||
119 | LDI |
||
163 | savelij | 120 | .NO_LNG1 EX DE,HL |
105 | savelij | 121 | LD (HL),0 |
122 | POP HL |
||
123 | RET |
||
124 | |||
125 | GETLONG PUSH HL |
||
126 | PUSH HL |
||
127 | CALL SET_MP3 |
||
128 | CALL GETFZAP |
||
129 | BIT 0,E |
||
130 | JR Z,NO_LNG |
||
131 | EXX |
||
132 | LD C,0 |
||
133 | EXX |
||
163 | savelij | 134 | .GETLNG2 DEC BC |
105 | savelij | 135 | CALL GETRZAP |
136 | LD A,(HL) |
||
137 | INC HL |
||
138 | EXX |
||
139 | BIT 6,C |
||
140 | POP HL |
||
163 | savelij | 141 | JR NZ,.GETLNGE_1 |
105 | savelij | 142 | LD C,A |
143 | EXX |
||
144 | LD A,5 |
||
163 | savelij | 145 | CALL .GETLNG1 |
105 | savelij | 146 | AND A |
163 | savelij | 147 | JR Z,.GETLNGE |
105 | savelij | 148 | INC HL |
149 | INC HL |
||
150 | INC HL |
||
151 | LD A,6 |
||
163 | savelij | 152 | CALL .GETLNG1 |
105 | savelij | 153 | AND A |
163 | savelij | 154 | JR Z,.GETLNGE |
105 | savelij | 155 | INC HL |
156 | INC HL |
||
157 | LD A,2 |
||
163 | savelij | 158 | CALL .GETLNG1 |
105 | savelij | 159 | AND A |
163 | savelij | 160 | JR Z,.GETLNGE |
105 | savelij | 161 | EXX |
162 | PUSH HL |
||
163 | EXX |
||
163 | savelij | 164 | JR .GETLNG2 |
105 | savelij | 165 | |
163 | savelij | 166 | .GETLNGE EXX |
167 | .GETLNGE_1 LD (HL),0 |
||
105 | savelij | 168 | EXX |
169 | POP HL |
||
170 | RET |
||
171 | |||
163 | savelij | 172 | .GETLNG1 EXX |
105 | savelij | 173 | LD B,A |
174 | EXX |
||
163 | savelij | 175 | .GETLNG1_3 LD D,(HL) |
105 | savelij | 176 | INC HL |
177 | LD E,(HL) |
||
178 | INC HL |
||
179 | LD A,D |
||
180 | OR E |
||
181 | RET Z |
||
182 | LD A,E |
||
183 | AND A |
||
163 | savelij | 184 | JR NZ,.GETLNG3 |
105 | savelij | 185 | LD A,D |
163 | savelij | 186 | CP 0x80 |
187 | JR C,.GETLNG5 |
||
188 | LD D,0x5F |
||
189 | JR .GETLNG5 |
||
105 | savelij | 190 | |
163 | savelij | 191 | .GETLNG3 CP 4 |
192 | LD A,0x5F |
||
193 | JR NZ,.GETLNG5 |
||
105 | savelij | 194 | LD A,D |
163 | savelij | 195 | LD E,0xEF |
196 | LD D,0x5F |
||
105 | savelij | 197 | CP 1 |
163 | savelij | 198 | JR Z,.GETLNG4 |
199 | LD E,0xA0 |
||
200 | CP 0x51 |
||
201 | JR Z,.GETLNG4 |
||
202 | SUB 0x10 |
||
203 | LD E,0x80 |
||
204 | JR NC,.GETLNG6 |
||
105 | savelij | 205 | LD A,D |
163 | savelij | 206 | JR .GETLNG5 |
105 | savelij | 207 | |
163 | savelij | 208 | .GETLNG6 CP 0x30 |
209 | JR C,.GETLNG4 |
||
210 | LD E,0xB0 |
||
211 | CP 0x40 |
||
212 | JR C,.GETLNG4 |
||
105 | savelij | 213 | LD A,D |
163 | savelij | 214 | JR .GETLNG5 |
105 | savelij | 215 | |
163 | savelij | 216 | .GETLNG4 ADD A,E |
217 | .GETLNG5 EXX |
||
105 | savelij | 218 | LD (HL),A |
219 | INC HL |
||
220 | DEC B |
||
221 | EXX |
||
222 | RET Z |
||
163 | savelij | 223 | JR .GETLNG1_3 |
224 | ; 401,410-44F,451 |
||
105 | savelij | 225 | |
164 | savelij | 226 | READ_SECTOR CALL CPNUMSC |
227 | JR NZ,.L1 |
||
112 | savelij | 228 | LD HL,BUF_512 |
229 | RET |
||
164 | savelij | 230 | |
231 | .L1 LD (NumSec2Buf),DE |
||
163 | savelij | 232 | LD (NumSec2Buf+2),BC |
112 | savelij | 233 | LD HL,BUF_512 |
105 | savelij | 234 | PUSH HL |
235 | EX AF,AF' |
||
236 | LD A,2 |
||
237 | CALL COM__SD |
||
238 | AND A |
||
239 | JP NZ,ERR_DRV |
||
240 | POP HL |
||
241 | RET |
||
242 | |||
163 | savelij | 243 | ; ��ઠ �� 㦥 ����㦥��� ᥪ�� |
244 | CPNUMSC LD HL,NumSec2Buf |
||
112 | savelij | 245 | LD A,(HL) |
246 | INC HL |
||
247 | CP E |
||
248 | RET NZ |
||
249 | LD A,(HL) |
||
250 | INC HL |
||
251 | CP D |
||
252 | RET NZ |
||
253 | LD A,(HL) |
||
254 | INC HL |
||
255 | CP C |
||
256 | RET NZ |
||
257 | LD A,(HL) |
||
258 | CP B |
||
259 | RET |
||
260 | |||
105 | savelij | 261 | ENT_DIR CALL GETFZAP |
262 | BIT 4,A |
||
263 | EX AF,AF' |
||
264 | LD A,E |
||
265 | EX AF,AF' |
||
266 | LD E,A |
||
267 | LD D,(HL) |
||
268 | RET Z |
||
269 | EXX |
||
270 | EX AF,AF' |
||
271 | BIT 7,A |
||
272 | JR Z,ENT_DI2 |
||
273 | LD HL,TEK_LEV |
||
274 | LD A,(HL) |
||
275 | AND A |
||
276 | EXX |
||
277 | RET Z |
||
278 | EXX |
||
279 | DEC A |
||
280 | LD (HL),A |
||
281 | ADD A,A |
||
282 | LD H,HIGH (DIR_CEP) |
||
283 | LD L,A |
||
284 | LD A,(HL) |
||
285 | INC L |
||
286 | LD H,(HL) |
||
287 | LD L,A |
||
288 | CALL ENT_DI1 |
||
289 | EXX |
||
290 | LD (TEK_ZAP),HL |
||
291 | EXX |
||
292 | RET |
||
293 | |||
294 | ENT_DI2 LD HL,TEK_LEV |
||
295 | LD A,(HL) |
||
296 | INC A |
||
163 | savelij | 297 | CP 0x80 |
105 | savelij | 298 | EXX |
299 | RET Z |
||
300 | EXX |
||
301 | LD (HL),A |
||
302 | DEC A |
||
303 | ADD A,A |
||
304 | LD H,HIGH (DIR_CEP) |
||
305 | LD L,A |
||
306 | LD BC,(TEK_ZAP) |
||
307 | LD (HL),C |
||
308 | INC L |
||
309 | LD (HL),B |
||
310 | ENT_DI1 EXX |
||
311 | LD DE,20 |
||
312 | ADD HL,DE |
||
313 | LD C,(HL) |
||
314 | INC HL |
||
315 | LD B,(HL) |
||
316 | LD E,5 |
||
317 | ADD HL,DE |
||
318 | LD E,(HL) |
||
319 | INC HL |
||
320 | LD D,(HL) |
||
321 | LD A,B |
||
322 | OR C |
||
323 | OR D |
||
324 | OR E |
||
325 | JR NZ,ENT_DI0 |
||
163 | savelij | 326 | LD DE,(RootDIRCluster) |
327 | LD BC,(RootDIRCluster+2) |
||
328 | ENT_DI0 LD (CurrentDIRCluster),DE |
||
329 | LD (CurrentDIRCluster+2),BC |
||
105 | savelij | 330 | CALL INIRTSC |
331 | XOR A |
||
332 | INC A |
||
333 | RET |
||
334 | |||
335 | GETFZAP LD BC,(TEK_ZAP) |
||
336 | LD A,B |
||
337 | OR C |
||
338 | JR Z,GETRZAP |
||
339 | PUSH BC |
||
340 | DEC BC |
||
341 | CALL GETRZAP |
||
342 | POP BC |
||
343 | LD E,A |
||
344 | GETRZAP PUSH DE |
||
345 | CALL RDDIRSC |
||
346 | POP DE |
||
163 | savelij | 347 | CP 0xFF |
105 | savelij | 348 | LD A,E |
349 | RET Z |
||
350 | EX AF,AF' |
||
163 | savelij | 351 | LD A,C |
352 | AND 0x0F |
||
105 | savelij | 353 | LD E,A |
354 | LD D,0 |
||
355 | EX DE,HL |
||
356 | ADD HL,HL |
||
357 | ADD HL,HL |
||
358 | ADD HL,HL |
||
359 | ADD HL,HL |
||
360 | ADD HL,HL |
||
361 | ADD HL,DE |
||
362 | LD DE,11 |
||
363 | EX DE,HL |
||
364 | ADD HL,DE |
||
365 | LD L,(HL) |
||
366 | LD H,0 |
||
367 | EX DE,HL |
||
368 | CALL CP_TWOT |
||
163 | savelij | 369 | JR NZ,.L1 |
370 | LD D,0x80 |
||
371 | .L1 EX AF,AF' |
||
372 | CP 0x0F |
||
105 | savelij | 373 | LD A,E |
374 | LD E,D |
||
375 | RET NZ |
||
376 | SET 0,E |
||
377 | RET |
||
378 | |||
163 | savelij | 379 | ; �⥭�� ᥪ�� DIR �� ������ BC |
380 | ; �� ��室�: A = 0xFF - ��室 �� �।��� DIR |
||
105 | savelij | 381 | RDDIRSC PUSH BC |
382 | LD D,B |
||
383 | LD E,C |
||
384 | LD BC,0 |
||
163 | savelij | 385 | LD A,0x10 |
105 | savelij | 386 | CALL BCDE_A |
387 | LD A,E |
||
388 | PUSH AF |
||
163 | savelij | 389 | LD A,(SecPerClus) |
105 | savelij | 390 | PUSH AF |
391 | CALL BCDE_A |
||
112 | savelij | 392 | LD HL,TDIRCLS |
393 | EX DE,HL |
||
394 | ADD HL,HL |
||
395 | ADD HL,HL |
||
396 | ADD HL,DE |
||
163 | savelij | 397 | CALL GET_DWORD |
164 | savelij | 398 | BIT 7,B |
399 | JR Z,.L1 |
||
105 | savelij | 400 | POP AF |
164 | savelij | 401 | POP AF |
402 | POP AF |
||
403 | XOR A |
||
105 | savelij | 404 | DEC A |
164 | savelij | 405 | RET |
406 | |||
407 | .L1 CALL REALSEC |
||
408 | POP AF |
||
409 | DEC A |
||
105 | savelij | 410 | LD L,A |
411 | POP AF |
||
412 | AND L |
||
413 | LD L,A |
||
414 | LD H,0 |
||
415 | ADD HL,DE |
||
416 | EX DE,HL |
||
417 | LD HL,0 |
||
418 | ADC HL,BC |
||
419 | LD B,H |
||
420 | LD C,L |
||
164 | savelij | 421 | CALL READ_SECTOR |
105 | savelij | 422 | POP BC |
423 | RET |
||
424 | |||
163 | savelij | 425 | GET_DWORD LD E,(HL) |
112 | savelij | 426 | INC HL |
427 | LD D,(HL) |
||
428 | INC HL |
||
429 | LD C,(HL) |
||
430 | INC HL |
||
431 | LD B,(HL) |
||
432 | INC HL |
||
433 | RET |
||
434 | |||
163 | savelij | 435 | SET_DWORD LD (HL),E |
112 | savelij | 436 | INC HL |
437 | LD (HL),D |
||
438 | INC HL |
||
439 | LD (HL),C |
||
440 | INC HL |
||
441 | LD (HL),B |
||
442 | INC HL |
||
443 | RET |
||
444 | |||
105 | savelij | 445 | INIRTSC PUSH AF |
163 | savelij | 446 | LD HL,0xFFFF |
447 | LD (NumSec2Buf + 2),HL |
||
448 | LD HL,TDIRCLS |
||
449 | LD DE,(CurrentDIRCluster) |
||
450 | LD BC,(CurrentDIRCluster + 2) |
||
451 | CALL SET_DWORD ; ��࠭��� � ⠡���� ����� ⥪�饣� ������ |
||
164 | savelij | 452 | LD A,D |
453 | OR E |
||
454 | OR B |
||
455 | OR C |
||
163 | savelij | 456 | JR Z,LASTCLS ; � ����� ������ 0, � �� ROOT ��� (��� FAT12/16) |
105 | savelij | 457 | NEXTCLS PUSH HL |
163 | savelij | 458 | CALL RDFATZP ; �⠥� ��騩 ����� ������ �� 楯�窨 ��४�ਨ |
459 | CALL LST_CLS ; ���塞 �� ����� 楯�窨 |
||
105 | savelij | 460 | POP HL |
461 | JR C,LASTCLS |
||
163 | savelij | 462 | CALL SET_DWORD ; � �� ������ ��࠭塞 � ⠡���� |
463 | JR NEXTCLS ; ���騩 ����� ������ |
||
105 | savelij | 464 | |
163 | savelij | 465 | LASTCLS LD BC,0xFFFF |
466 | CALL SET_DWORD ; ������ ��થ� ���� 楯�窨 |
||
112 | savelij | 467 | INC BC |
105 | savelij | 468 | CALL RDDIRSC |
469 | LD A,(HL) |
||
112 | savelij | 470 | CP "." |
105 | savelij | 471 | JR NZ,INIRTS1 |
472 | INC HL |
||
473 | LD A,(HL) |
||
112 | savelij | 474 | CP "." |
105 | savelij | 475 | JR Z,INIRTS1 |
476 | INC BC |
||
477 | INIRTS1 LD (TEK_ZAP),BC |
||
478 | POP AF |
||
479 | RET |
||
480 | |||
481 | CP_TWOT LD A,(HL) |
||
112 | savelij | 482 | CP "." |
105 | savelij | 483 | RET NZ |
484 | INC HL |
||
485 | LD A,(HL) |
||
486 | DEC HL |
||
112 | savelij | 487 | CP "." |
105 | savelij | 488 | RET NZ |
489 | XOR A |
||
490 | RET |
||
491 | |||
163 | savelij | 492 | LST_CLS LD A,(FATType) |
105 | savelij | 493 | AND A |
494 | JR NZ,LST_CL1 |
||
163 | savelij | 495 | LD HL,0x0FF7 |
105 | savelij | 496 | SBC HL,DE |
497 | RET |
||
498 | |||
499 | LST_CL1 DEC A |
||
500 | JR NZ,LST_CL2 |
||
163 | savelij | 501 | LD HL,0xFFF7 |
105 | savelij | 502 | SBC HL,DE |
503 | RET |
||
504 | |||
505 | LST_CL2 PUSH BC |
||
506 | LD A,B |
||
163 | savelij | 507 | AND 0x0F |
105 | savelij | 508 | LD B,A |
163 | savelij | 509 | LD HL,0x0FFF |
105 | savelij | 510 | SBC HL,BC |
511 | POP BC |
||
512 | RET NZ |
||
163 | savelij | 513 | LD HL,0xFFF7 |
105 | savelij | 514 | SBC HL,DE |
515 | RET |
||
516 | |||
163 | savelij | 517 | RDFATZP LD A,(FATType) ; �⥭�� ������ �� ࠧ�來��� FAT |
105 | savelij | 518 | AND A |
163 | savelij | 519 | JR Z,RDFATS0 ; ���室 ���। ��� FAT12 |
105 | savelij | 520 | DEC A |
163 | savelij | 521 | JR Z,RDFATS1 ; ���室 ���। ��� FAT16 |
522 | EX DE,HL ; ����� �⥭�� ��� FTA32 |
||
105 | savelij | 523 | ADD HL,HL |
524 | EX DE,HL |
||
164 | savelij | 525 | LD H,B |
526 | LD L,C |
||
527 | ADC HL,HL ; 㬭����� ����� ������ �� 2 |
||
105 | savelij | 528 | LD A,E |
529 | LD E,D |
||
530 | LD D,L |
||
531 | LD C,H |
||
163 | savelij | 532 | LD B,0 ; ࠧ������ ����� ������ �� 256 |
533 | CALL RDFATS2 ; �⠥� ����訥 16 ��� �ᯮ���� �⥭�� ��� FAT16 |
||
105 | savelij | 534 | INC HL |
535 | LD C,(HL) |
||
536 | INC HL |
||
163 | savelij | 537 | LD B,(HL) ; ���⠫� �����騥 ���訥 16 ��� |
105 | savelij | 538 | RET |
539 | |||
163 | savelij | 540 | ; �⥭�� 16 ��⭮�� ����� ������ �� 楯�窨 ��� FAT16 |
105 | savelij | 541 | RDFATS1 LD BC,0 |
542 | LD A,E |
||
543 | LD E,D |
||
163 | savelij | 544 | LD D,C ; ࠧ������ ����� ������ �� 256, ���訥 16 ��� =0 |
545 | RDFATS2 PUSH AF ; ��饥 �⥭�� 16 ��⭮�� ����� ������ ��� FAT16/32 |
||
105 | savelij | 546 | PUSH BC |
163 | savelij | 547 | LD HL,NumSecFAT1 |
548 | CALL BCDEHLP ; �ਡ����� ᬥ饭�� �� ��砫� FAT ⠡���� |
||
164 | savelij | 549 | CALL READ_SECTOR ; ����㧨�� ������ ����� ᥪ�� |
105 | savelij | 550 | POP BC |
551 | POP AF |
||
552 | LD E,A |
||
553 | LD D,0 |
||
554 | ADD HL,DE |
||
163 | savelij | 555 | ADD HL,DE ; ����� ᬥ饭�� �� �㦭��� ����� � ����㦥���� ᥪ�� |
105 | savelij | 556 | LD E,(HL) |
557 | INC HL |
||
163 | savelij | 558 | LD D,(HL) ; ����稫� 16 ��� ����� ������ |
105 | savelij | 559 | RET |
560 | |||
163 | savelij | 561 | ; �⥭�� 12 ��⭮�� ����� ������ �� 楯�窨 ��� FAT12 |
105 | savelij | 562 | RDFATS0 LD H,D |
563 | LD L,E |
||
564 | ADD HL,HL |
||
163 | savelij | 565 | ADD HL,DE ; HL = HL * 3 |
105 | savelij | 566 | SRL H |
163 | savelij | 567 | RR L ; HL = HL / 2 - � �⮣� 㬭����� ����� ������ �� 1,5 |
568 | LD A,E ; A - ��� ����ᥭ ⮫쪮 ��� ����� ��ண� ����� ������ |
||
105 | savelij | 569 | LD E,H |
570 | LD D,0 |
||
571 | LD B,D |
||
163 | savelij | 572 | LD C,D ; ࠧ������ ����� ������ �� 256 |
105 | savelij | 573 | SRL E |
574 | PUSH AF |
||
575 | PUSH HL |
||
163 | savelij | 576 | LD DE,(NumSecFAT1) |
577 | LD BC,(NumSecFAT1 + 2) |
||
164 | savelij | 578 | CALL READ_SECTOR ; ����㧨�� ������ ᥪ�� |
105 | savelij | 579 | POP BC |
580 | LD A,B |
||
581 | AND 1 |
||
163 | savelij | 582 | LD B,A ; BC = ᬥ饭�� � ����㦥���� ᥪ�� |
583 | ADD HL,BC ; HL = ���� ��㤠 ���� ����� ����� ������ |
||
584 | LD B,(HL) ; ���⠫� ������� ���� ����� ������ |
||
585 | INC HL ; ���� ���饣� ���� |
||
105 | savelij | 586 | LD A,H |
163 | savelij | 587 | CP HIGH (BUF_512)+2 ; ��ઠ �� ���室 �࠭��� ����㦥����� ᥪ�� |
105 | savelij | 588 | JR NZ,RDFATS4 |
163 | savelij | 589 | PUSH BC ; ��室 �� �।��� ⥪�饣� ����㦥����� ᥪ�� |
105 | savelij | 590 | LD BC,0 |
591 | INC DE |
||
164 | savelij | 592 | CALL READ_SECTOR ; ����㦠�� ���騩 ᥪ�� FAT ⠡���� |
105 | savelij | 593 | POP BC |
594 | RDFATS4 POP AF |
||
163 | savelij | 595 | LD D,(HL) ; �⠥� ���訥 ���� ����� ������ |
596 | LD E,B ; ⥯��� DE = ����� ���饣� ������ � 楯�窥 |
||
105 | savelij | 597 | LD BC,0 |
163 | savelij | 598 | RRA ; ���塞 ��� 0 ��ண� ����� ������ |
105 | savelij | 599 | JR NC,RDFATS3 |
163 | savelij | 600 | REPT 4 |
601 | SRL D ; ᤢ����� ����� ���⠭���� ����� ������ � ����訥 12 ��� |
||
105 | savelij | 602 | RR E |
163 | savelij | 603 | ENDM |
105 | savelij | 604 | RDFATS3 LD A,D |
163 | savelij | 605 | AND 0x0F |
606 | LD D,A ; ��ᨫ� ������騥 ���訥 4 ��� � ����祭���� ����� ������ |
||
105 | savelij | 607 | RET |
608 | |||
163 | savelij | 609 | ; ������ ॠ�쭮�� ᥪ�� |
610 | ; �� �室� BCDE = ����� FAT |
||
611 | ; �� ��室� BCDE = ���� ᥪ�� |
||
105 | savelij | 612 | REALSEC LD A,B |
613 | OR C |
||
614 | OR D |
||
615 | OR E |
||
163 | savelij | 616 | JR NZ,REALSE1 ; BCDE = 0? |
617 | LD DE,(NumSecRootDir) |
||
618 | LD BC,(NumSecRootDir + 2) |
||
619 | RET |
||
620 | |||
621 | REALSE1 LD HL,0xFFFE |
||
105 | savelij | 622 | EX DE,HL |
623 | ADD HL,DE |
||
624 | EX DE,HL |
||
625 | INC HL |
||
164 | savelij | 626 | ADC HL,BC ; HLDE = ����� ������ - 2 |
163 | savelij | 627 | LD A,(SecPerClus) ; �㦭� 㬭����� �� ࠧ��� ������ |
105 | savelij | 628 | JR REALSE2 |
629 | |||
630 | REALSE3 SLA E |
||
631 | RL D |
||
632 | RL L |
||
633 | RL H |
||
634 | REALSE2 RRCA |
||
163 | savelij | 635 | JR NC,REALSE3 ; 㬭����� �� ࠧ��� ������ |
105 | savelij | 636 | LD B,H |
637 | LD C,L |
||
163 | savelij | 638 | LD HL,FirstSecData |
639 | JP BCDEHLP ; �ਡ����� ᬥ饭�� �� ��砫� ࠧ���� |
||
105 | savelij | 640 | |
641 | BCDE200 LD E,D |
||
642 | LD D,C |
||
643 | LD C,B |
||
644 | LD B,0 |
||
645 | LD A,2 |
||
646 | JR BCDE_A |
||
647 | |||
163 | savelij | 648 | ; BCDE >> A = BCDE |
105 | savelij | 649 | BCDE_A1 SRL B |
650 | RR C |
||
651 | RR D |
||
652 | RR E |
||
653 | BCDE_A RRCA |
||
654 | JR NC,BCDE_A1 |
||
655 | RET |
||
656 | |||
163 | savelij | 657 | ; (ADR) - BCDE = BCDE |
105 | savelij | 658 | BCDEHLM LD A,(HL) |
659 | INC HL |
||
660 | SUB E |
||
661 | LD E,A |
||
662 | LD A,(HL) |
||
663 | INC HL |
||
664 | SBC A,D |
||
665 | LD D,A |
||
666 | LD A,(HL) |
||
667 | INC HL |
||
668 | SBC A,C |
||
669 | LD C,A |
||
670 | LD A,(HL) |
||
671 | SBC A,B |
||
672 | LD B,A |
||
673 | RET |
||
674 | |||
163 | savelij | 675 | ; (ADR) + BCDE = BCDE |
105 | savelij | 676 | BCDEHLP LD A,(HL) |
677 | INC HL |
||
678 | ADD A,E |
||
679 | LD E,A |
||
680 | LD A,(HL) |
||
681 | INC HL |
||
682 | ADC A,D |
||
683 | LD D,A |
||
684 | LD A,(HL) |
||
685 | INC HL |
||
686 | ADC A,C |
||
687 | LD C,A |
||
688 | LD A,(HL) |
||
689 | ADC A,B |
||
690 | LD B,A |
||
691 | RET |
||
692 | |||
163 | savelij | 693 | ; HLDE + BC = HLDE |
105 | savelij | 694 | HLDEPBC EX DE,HL |
695 | ADD HL,BC |
||
696 | EX DE,HL |
||
697 | LD BC,0 |
||
698 | ADC HL,BC |
||
699 | RET |
||
700 | |||
163 | savelij | 701 | ; BCDE - (ADR) = BCDE |
112 | savelij | 702 | HLBCDEM LD A,E |
703 | SUB (HL) |
||
704 | INC HL |
||
705 | LD E,A |
||
706 | LD A,D |
||
707 | SBC A,(HL) |
||
708 | INC HL |
||
709 | LD D,A |
||
710 | LD A,C |
||
711 | SBC A,(HL) |
||
712 | INC HL |
||
713 | LD C,A |
||
714 | LD A,B |
||
715 | SBC A,(HL) |
||
716 | LD B,A |
||
717 | RET |
||
718 | |||
163 | savelij | 719 | ; ��ઠ 0 ᥪ�� ࠧ���� |
720 | VALID_BOOTSEC LD HL,(BUF_512 + _BPB_BytsPerSec) |
||
721 | LD A,H |
||
722 | SUB 2 |
||
723 | OR L |
||
724 | JR NZ,VALID_BOOTSEC1 |
||
725 | LD HL,(BUF_512 + _BPB_SecPerClus) |
||
726 | OR L |
||
727 | JR Z,VALID_BOOTSEC1 |
||
728 | NEG |
||
729 | AND L |
||
730 | CP L |
||
731 | JR NZ,VALID_BOOTSEC1 |
||
732 | LD A,(BUF_512 + _BPB_NumFATs) |
||
733 | DEC A |
||
734 | CP 7 |
||
735 | JR NC,VALID_BOOTSEC1 |
||
736 | XOR A |
||
105 | savelij | 737 | RET |
738 | |||
163 | savelij | 739 | VALID_BOOTSEC1 OR IXH |
740 | RET |
||
741 | |||
742 | FAT_ERR LD A,0xFF |
||
743 | LD (FATType),A |
||
744 | RET |
||
745 | |||
746 | ; ���樠������ ��६����� FAT |
||
747 | INIT_FATVARS LD A,0xFF |
||
748 | LD (NumSec2Buf+3),A |
||
112 | savelij | 749 | LD DE,0 |
105 | savelij | 750 | LD B,D |
751 | LD C,E |
||
164 | savelij | 752 | CALL READ_SECTOR |
105 | savelij | 753 | PUSH HL |
754 | POP IY |
||
163 | savelij | 755 | LD DE,0x01BE |
105 | savelij | 756 | ADD HL,DE |
757 | LD A,(HL) |
||
758 | AND A |
||
759 | JR NZ,RDFAT05 |
||
760 | LD DE,4 |
||
761 | ADD HL,DE |
||
762 | LD A,(HL) |
||
763 | LD B,0 |
||
764 | CP 1 |
||
765 | JR Z,RDFAT06 |
||
766 | LD B,2 |
||
163 | savelij | 767 | CP 0x0B |
105 | savelij | 768 | JR Z,RDFAT06 |
163 | savelij | 769 | CP 0x0C |
105 | savelij | 770 | JR Z,RDFAT06 |
771 | LD B,1 |
||
772 | CP 6 |
||
773 | JR Z,RDFAT06 |
||
163 | savelij | 774 | CP 0x0E |
105 | savelij | 775 | JR NZ,RDFAT05 |
776 | RDFAT06 LD A,B |
||
163 | savelij | 777 | LD (FATType),A |
105 | savelij | 778 | ADD HL,DE |
779 | LD E,(HL) |
||
780 | INC HL |
||
781 | LD D,(HL) |
||
782 | INC HL |
||
783 | LD C,(HL) |
||
784 | INC HL |
||
785 | LD B,(HL) |
||
786 | JR RDFAT00 |
||
787 | |||
163 | savelij | 788 | RDFAT05 LD C,(IY+0x0D) |
105 | savelij | 789 | XOR A |
790 | LD E,A |
||
791 | LD B,8 |
||
164 | savelij | 792 | .L4 RR C |
105 | savelij | 793 | ADC A,0 |
164 | savelij | 794 | DJNZ .L4 |
105 | savelij | 795 | DEC A |
164 | savelij | 796 | JR NZ,.L5 |
105 | savelij | 797 | INC E |
164 | savelij | 798 | .L5 LD A,(IY+0x0E) |
163 | savelij | 799 | OR (IY+0x0F) |
800 | JR Z,.L2 |
||
105 | savelij | 801 | INC E |
163 | savelij | 802 | .L2 LD A,(IY+0x13) |
803 | OR (IY+0x14) |
||
804 | JR NZ,.L3 |
||
105 | savelij | 805 | INC E |
163 | savelij | 806 | .L3 LD A,(IY+0x20) |
807 | OR (IY+0x21) |
||
808 | OR (IY+0x22) |
||
809 | OR (IY+0x23) |
||
164 | savelij | 810 | JR NZ,.L6 |
105 | savelij | 811 | INC E |
164 | savelij | 812 | .L6 LD A,(IY+0x15) |
163 | savelij | 813 | AND 0xF0 |
814 | CP 0xF0 |
||
815 | JR NZ,.L1 |
||
105 | savelij | 816 | INC E |
163 | savelij | 817 | .L1 LD A,E |
105 | savelij | 818 | CP 4 |
819 | JP NZ,FAT_ERR |
||
163 | savelij | 820 | LD A,0xFF |
821 | LD (FATType),A |
||
105 | savelij | 822 | LD DE,0 |
823 | LD B,D |
||
824 | LD C,E |
||
825 | |||
163 | savelij | 826 | RDFAT00 LD (StartSecVol),DE |
164 | savelij | 827 | LD (StartSecVol + 2),BC ; �������� ����� ���⮢��� ᥪ�� ࠧ���� |
828 | CALL READ_SECTOR ; ����㧨�� ��� |
||
163 | savelij | 829 | |
830 | LD A,(BUF_512 + _BPB_SecPerClus) |
||
831 | LD (SecPerClus),A |
||
832 | LD HL,(BUF_512 + _BPB_RsvdSecCnt) |
||
833 | ADD HL,DE |
||
834 | LD (NumSecFAT1),HL |
||
105 | savelij | 835 | LD HL,0 |
163 | savelij | 836 | ADC HL,BC |
837 | LD (NumSecFAT1 + 2),HL |
||
838 | LD HL,0 |
||
839 | LD DE,(BUF_512 + _BPB_FATSz16) |
||
105 | savelij | 840 | LD A,D |
841 | OR E |
||
163 | savelij | 842 | JR NZ,RDFAT01 ; � �� FAT12/16 (_BPB_FATSz16 == 0) |
843 | LD DE,(BUF_512 + _BPB_FATSz32) |
||
164 | savelij | 844 | LD HL,(BUF_512 + _BPB_FATSz32 + 2) ; � ��६ �� ᬥ饭�� +36 |
163 | savelij | 845 | RDFAT01 LD (FATSize),DE |
164 | savelij | 846 | LD (FATSize + 2),HL ; � ᥪ� �� FAT-⠡���� |
163 | savelij | 847 | |
105 | savelij | 848 | LD HL,0 |
163 | savelij | 849 | LD DE,(BUF_512 + _BPB_TotSec16) |
105 | savelij | 850 | LD A,D |
851 | OR E |
||
164 | savelij | 852 | JR NZ,.L1 ; � �� FAT12/16 (BPB_TOTSEC16=0) |
163 | savelij | 853 | LD DE,(BUF_512 + _BPB_TotSec32) |
854 | LD HL,(BUF_512 + _BPB_TotSec32+2) |
||
164 | savelij | 855 | ; � ��६ �� ᬥ饭�� +32 |
163 | savelij | 856 | .L1 LD (NumsSectorsVol + 2),HL |
164 | savelij | 857 | LD (NumsSectorsVol),DE ; ������⢮ ᥪ� �� ��᪥/ࠧ���� |
105 | savelij | 858 | |
163 | savelij | 859 | ; ����塞 ROOTDIRSECTORS |
860 | LD DE,(BUF_512 + _BPB_RootEntCnt) |
||
861 | LD BC,0 |
||
105 | savelij | 862 | LD A,D |
863 | OR E |
||
864 | JR Z,RDFAT03 |
||
163 | savelij | 865 | LD A,0x10 |
105 | savelij | 866 | CALL BCDE_A |
867 | |||
164 | savelij | 868 | ; �� ॠ�������� ��㫠 |
869 | ; ROOTDIRSECTORS=((BPB_ROOTENTCNT*32)++(BPB_BYTSPERSEC-1))/BPB_BYTSPERSEC |
||
870 | ; � HL ROOTDIRSECTORS. � FAT32, � HL=0 �ᥣ�� |
||
105 | savelij | 871 | |
164 | savelij | 872 | RDFAT03 PUSH DE ; ROOTDIRSECTORS |
163 | savelij | 873 | LD HL,NumSecFAT1 |
874 | CALL GET_DWORD |
||
875 | LD A,(BUF_512 + _BPB_NumFATs) |
||
876 | LD (NumFATs),A |
||
105 | savelij | 877 | DEC A |
163 | savelij | 878 | JR Z,.L1 |
879 | LD HL,FATSize |
||
880 | CALL BCDEHLP |
||
881 | LD (NumSecFAT2),DE |
||
882 | LD (NumSecFAT2 + 2),BC |
||
883 | .L1 LD HL,FATSize |
||
884 | CALL BCDEHLP |
||
885 | LD (NumSecRootDir),DE |
||
886 | LD (NumSecRootDir + 2),BC |
||
887 | POP HL |
||
888 | ; ������塞 ࠧ��� ROOTDIR |
||
889 | ADD HL,DE |
||
105 | savelij | 890 | EX DE,HL |
163 | savelij | 891 | LD HL,0 |
892 | ADC HL,BC |
||
105 | savelij | 893 | LD B,H |
894 | LD C,L |
||
163 | savelij | 895 | LD (FirstSecData),DE |
896 | LD (FirstSecData + 2),BC |
||
897 | LD HL,NumsSectorsVol |
||
898 | CALL BCDEHLM |
||
899 | LD A,(SecPerClus) |
||
900 | CALL BCDE_A |
||
901 | LD (NumsClustersVol),DE |
||
902 | LD (NumsClustersVol + 2),BC |
||
105 | savelij | 903 | |
163 | savelij | 904 | LD A,(FATType) |
905 | CP 0xFF |
||
112 | savelij | 906 | JR NZ,RDFAT04 |
163 | savelij | 907 | ; ��।������ ⨯� FAT �� �����⢨� MBR |
908 | LD HL,(BUF_512 + _BPB_FATSz16) |
||
909 | LD A,H |
||
910 | OR L |
||
112 | savelij | 911 | LD A,2 |
163 | savelij | 912 | JR Z,.L2 |
913 | LD DE,(FATSize - 1) |
||
914 | LD BC,(FATSize + 1) |
||
915 | LD E,0 ; BCDE = ������⢮ ᥪ� * 0x100 |
||
916 | LD HL,NumsClustersVol ; ������⢮ ����� �� FAT |
||
917 | CALL HLBCDEM ; ������⢮ ����� - (������⢮ ᥪ� * 0x100) |
||
112 | savelij | 918 | LD A,D |
919 | OR C |
||
920 | OR B |
||
163 | savelij | 921 | LD A,1 ; FAT16 |
922 | JR Z,.L2 ; FAT16 � 䫠� Z=0 |
||
923 | XOR A ; ���� FAT12 |
||
924 | .L2 LD (FATType),A |
||
105 | savelij | 925 | |
163 | savelij | 926 | ; ��� FAT12/16 ROOT ������ = 0 |
927 | ; ��� FAT32 ��६ �� ᬥ饭�� +44 |
||
928 | ; �� ��室�: BCDE - ������ ROOTDIR ������� |
||
929 | RDFAT04 XOR A |
||
930 | LD (TEK_LEV),A |
||
931 | LD (BUF_PATH),A |
||
932 | ; CALL INIT_PATH |
||
933 | LD A,(FATType) |
||
934 | PUSH AF |
||
105 | savelij | 935 | AND A |
936 | LD DE,0 |
||
937 | LD B,D |
||
938 | LD C,E |
||
163 | savelij | 939 | JR Z,.L1 ;FAT12-NONE |
105 | savelij | 940 | DEC A |
163 | savelij | 941 | JR Z,.L1 ;FAT16 |
942 | LD DE,(BUF_512 + _BPB_RootClus) |
||
943 | LD BC,(BUF_512 + _BPB_RootClus + 2) ;FAT32 |
||
944 | .L1 LD (CurrentDIRCluster),DE |
||
945 | LD (CurrentDIRCluster + 2),BC ; ����� ⥪�饣� ������ |
||
946 | LD (RootDIRCluster),DE |
||
947 | LD (RootDIRCluster + 2),BC ; ����� ������ ������ |
||
105 | savelij | 948 | LD (TEK_LEV),A |
163 | savelij | 949 | POP AF |
105 | savelij | 950 | JP INIRTSC |
951 | |||
165 | savelij | 952 | F_EXT DZ "MP3MOD" |
105 | savelij | 953 | |
954 | CP_EXT PUSH BC |
||
955 | PUSH DE |
||
956 | PUSH HL |
||
957 | LD C,0 |
||
958 | LD DE,F_EXT |
||
163 | savelij | 959 | .L3 LD A,(DE) |
105 | savelij | 960 | AND A |
163 | savelij | 961 | JR Z,.L2 |
105 | savelij | 962 | INC C |
963 | PUSH DE |
||
964 | PUSH HL |
||
965 | CALL COMPARF |
||
966 | POP HL |
||
967 | POP DE |
||
163 | savelij | 968 | JR Z,.L1 |
105 | savelij | 969 | INC DE |
970 | INC DE |
||
971 | INC DE |
||
163 | savelij | 972 | JR .L3 |
105 | savelij | 973 | |
163 | savelij | 974 | .L1 LD A,C |
975 | .L2 POP HL |
||
105 | savelij | 976 | POP DE |
977 | POP BC |
||
978 | RET |
||
979 | |||
980 | COMPARF PUSH DE |
||
981 | LD DE,8 |
||
982 | ADD HL,DE |
||
983 | POP DE |
||
984 | LD B,3 |
||
163 | savelij | 985 | .L1 LD A,(DE) |
105 | savelij | 986 | CP (HL) |
987 | RET NZ |
||
988 | INC HL |
||
989 | INC DE |
||
163 | savelij | 990 | DJNZ .L1 |
105 | savelij | 991 | RET |
992 | |||
165 | savelij | 993 | ; ����⨥ 䠩�� |
994 | ; �� ��室�: |
||
995 | ; A - ⨯ 䠩�� (1 � �����) |
||
105 | savelij | 996 | OPENFIL CALL SET_MP3 |
997 | CALL GETFZAP |
||
998 | CALL CP_EXT |
||
999 | PUSH AF |
||
163 | savelij | 1000 | LD DE,0x14 |
105 | savelij | 1001 | ADD HL,DE |
1002 | LD C,(HL) |
||
1003 | INC HL |
||
1004 | LD B,(HL) |
||
1005 | LD E,5 |
||
1006 | ADD HL,DE |
||
1007 | LD E,(HL) |
||
1008 | INC HL |
||
1009 | LD D,(HL) |
||
1010 | LD (TFILCLS),DE |
||
1011 | LD (TFILCLS+2),BC |
||
1012 | INC HL |
||
1013 | LD E,(HL) |
||
1014 | INC HL |
||
1015 | LD D,(HL) |
||
1016 | INC HL |
||
1017 | LD C,(HL) |
||
1018 | INC HL |
||
1019 | LD B,(HL) |
||
1020 | LD A,D |
||
1021 | AND 1 |
||
1022 | OR E |
||
1023 | EX AF,AF' |
||
1024 | CALL BCDE200 |
||
163 | savelij | 1025 | LD A,(SecPerClus) |
105 | savelij | 1026 | LD H,A |
1027 | DEC A |
||
1028 | AND E |
||
1029 | LD L,A |
||
1030 | EX AF,AF' |
||
163 | savelij | 1031 | JR Z,.L1 |
105 | savelij | 1032 | INC L |
163 | savelij | 1033 | .L1 LD A,L |
105 | savelij | 1034 | LD (MPHWOST),A |
1035 | LD A,H |
||
1036 | CALL BCDE_A |
||
1037 | LD (KOL_CLS),DE |
||
1038 | LD (KOL_CLS+2),BC |
||
1039 | XOR A |
||
1040 | LD (NUMSECK),A |
||
1041 | POP AF |
||
1042 | RET |
||
1043 | |||
164 | savelij | 1044 | ; ��।�� ⥪�饣� ᥪ�� 䠩�� �� ������� MP3 |
105 | savelij | 1045 | NEXTSEC LD HL,KOL_CLS |
1046 | LD A,(HL) |
||
1047 | INC HL |
||
1048 | OR (HL) |
||
1049 | INC HL |
||
1050 | OR (HL) |
||
1051 | INC HL |
||
1052 | OR (HL) |
||
1053 | JR Z,LSTCLSF |
||
1054 | LD DE,(TFILCLS) |
||
1055 | LD BC,(TFILCLS+2) |
||
1056 | PUSH DE |
||
1057 | PUSH BC |
||
1058 | CALL REALSEC |
||
1059 | LD HL,(NUMSECK) |
||
1060 | LD H,0 |
||
1061 | ADD HL,DE |
||
1062 | EX DE,HL |
||
1063 | LD HL,0 |
||
1064 | ADC HL,BC |
||
1065 | LD B,H |
||
1066 | LD C,L |
||
1067 | LD A,9 |
||
1068 | CALL COM__SD |
||
1069 | AND A |
||
1070 | JP NZ,ERR_DRV |
||
1071 | POP BC |
||
1072 | POP DE |
||
1073 | LD A,(NUMSECK) |
||
1074 | INC A |
||
1075 | LD H,A |
||
1076 | LD (NUMSECK),A |
||
163 | savelij | 1077 | LD A,(SecPerClus) |
105 | savelij | 1078 | CP H |
163 | savelij | 1079 | LD A,0 ; ��室 �� �� �訡�� |
105 | savelij | 1080 | RET NZ |
1081 | XOR A |
||
1082 | LD (NUMSECK),A |
||
1083 | CALL RDFATZP |
||
1084 | LD (TFILCLS),DE |
||
1085 | LD (TFILCLS+2),BC |
||
1086 | LD HL,KOL_CLS |
||
1087 | LD DE,1 |
||
1088 | LD B,D |
||
1089 | LD C,D |
||
1090 | CALL BCDEHLM |
||
1091 | LD (KOL_CLS),DE |
||
1092 | LD (KOL_CLS+2),BC |
||
1093 | XOR A |
||
1094 | INC A |
||
1095 | RET |
||
1096 | |||
164 | savelij | 1097 | ; ��।�� ������� ᥪ�� 䠩�� �� ������� MP3 |
105 | savelij | 1098 | LSTCLSF LD DE,(TFILCLS) |
1099 | LD BC,(TFILCLS+2) |
||
1100 | CALL REALSEC |
||
1101 | LD HL,(NUMSECK) |
||
1102 | LD H,0 |
||
1103 | ADD HL,DE |
||
1104 | EX DE,HL |
||
1105 | LD HL,0 |
||
1106 | ADC HL,BC |
||
1107 | LD B,H |
||
1108 | LD C,L |
||
1109 | LD A,9 |
||
1110 | CALL COM__SD |
||
1111 | AND A |
||
1112 | JP NZ,ERR_DRV |
||
1113 | LD A,(NUMSECK) |
||
1114 | INC A |
||
1115 | LD H,A |
||
1116 | LD (NUMSECK),A |
||
1117 | LD A,(MPHWOST) |
||
1118 | AND A |
||
1119 | RET Z |
||
1120 | CP H |
||
1121 | RET |
||
1122 | |||
163 | savelij | 1123 | ; ���樠������ ��६����� ��� ⥪�饣� 䠩�� |
105 | savelij | 1124 | SET_MP3 LD H,B |
1125 | LD L,C |
||
1126 | LD DE,(STR_MP3) |
||
1127 | ADD HL,HL |
||
1128 | ADD HL,HL |
||
1129 | ADD HL,DE |
||
1130 | LD E,(HL) |
||
1131 | INC HL |
||
1132 | LD D,(HL) |
||
1133 | INC HL |
||
1134 | PUSH HL |
||
1135 | EX DE,HL |
||
163 | savelij | 1136 | LD DE,CurrentDIRCluster |
105 | savelij | 1137 | LDI |
1138 | LDI |
||
1139 | LDI |
||
1140 | LDI |
||
163 | savelij | 1141 | LD DE,(CurrentDIRCluster) |
1142 | LD BC,(CurrentDIRCluster+2) |
||
105 | savelij | 1143 | CALL INIRTSC |
1144 | POP HL |
||
1145 | LD E,(HL) |
||
1146 | INC HL |
||
1147 | LD D,(HL) |
||
1148 | LD (TEK_ZAP),DE |
||
1149 | RET |
||
1150 | |||
163 | savelij | 1151 | ; ���室 �� �।����� ��४��� |
105 | savelij | 1152 | PRVDIR LD HL,(KOLVDIR) |
1153 | LD DE,2 |
||
1154 | AND A |
||
1155 | SBC HL,DE |
||
1156 | RET C |
||
1157 | LD HL,(KOLVMP3) |
||
1158 | AND A |
||
1159 | SBC HL,DE |
||
1160 | RET C |
||
1161 | LD H,B |
||
1162 | LD L,C |
||
1163 | LD DE,(STR_MP3) |
||
1164 | ADD HL,HL |
||
1165 | ADD HL,HL |
||
1166 | ADD HL,DE |
||
1167 | PUSH HL |
||
1168 | POP IX |
||
1169 | LD H,B |
||
1170 | LD L,C |
||
1171 | LD BC,(KOLVMP3) |
||
163 | savelij | 1172 | LD DE,0xFFFC |
105 | savelij | 1173 | EXX |
1174 | LD L,(IX+0) |
||
1175 | LD H,(IX+1) |
||
1176 | EXX |
||
1177 | CALL PRVDIR2 |
||
1178 | CALL PRVDIR2 |
||
1179 | LD DE,4 |
||
1180 | JR NXTDIR2 |
||
1181 | |||
1182 | PRVDIR2 EXX |
||
1183 | LD D,H |
||
1184 | LD E,L |
||
1185 | LD L,(IX+0) |
||
1186 | LD H,(IX+1) |
||
1187 | AND A |
||
1188 | SBC HL,DE |
||
1189 | EX AF,AF' |
||
1190 | ADD HL,DE |
||
1191 | EX AF,AF' |
||
1192 | EXX |
||
1193 | RET NZ |
||
1194 | LD A,H |
||
1195 | OR L |
||
1196 | JR Z,PRVDIR4 |
||
1197 | DEC HL |
||
1198 | ADD IX,DE |
||
1199 | JR PRVDIR2 |
||
1200 | |||
1201 | PRVDIR4 LD H,B |
||
1202 | LD L,C |
||
1203 | DEC HL |
||
1204 | ADD HL,HL |
||
1205 | ADD HL,HL |
||
1206 | LD IX,(STR_MP3) |
||
1207 | EX DE,HL |
||
1208 | ADD IX,DE |
||
1209 | EX DE,HL |
||
1210 | LD H,B |
||
1211 | LD L,C |
||
1212 | DEC HL |
||
1213 | JR PRVDIR2 |
||
1214 | |||
163 | savelij | 1215 | ; ���室 �� ������ ��४��� |
105 | savelij | 1216 | NXTDIR LD HL,(KOLVDIR) |
1217 | LD DE,2 |
||
1218 | AND A |
||
1219 | SBC HL,DE |
||
1220 | RET C |
||
1221 | LD HL,(KOLVMP3) |
||
1222 | AND A |
||
1223 | SBC HL,DE |
||
1224 | RET C |
||
1225 | LD H,B |
||
1226 | LD L,C |
||
1227 | LD DE,(STR_MP3) |
||
1228 | ADD HL,HL |
||
1229 | ADD HL,HL |
||
1230 | ADD HL,DE |
||
1231 | PUSH HL |
||
1232 | POP IX |
||
1233 | LD H,B |
||
1234 | LD L,C |
||
1235 | LD BC,(KOLVMP3) |
||
1236 | LD DE,4 |
||
1237 | EXX |
||
1238 | LD L,(IX+0) |
||
1239 | LD H,(IX+1) |
||
1240 | EXX |
||
1241 | NXTDIR2 EXX |
||
1242 | LD D,H |
||
1243 | LD E,L |
||
1244 | LD L,(IX+0) |
||
1245 | LD H,(IX+1) |
||
1246 | AND A |
||
1247 | SBC HL,DE |
||
1248 | EX AF,AF' |
||
1249 | ADD HL,DE |
||
1250 | EX AF,AF' |
||
1251 | EXX |
||
1252 | JR NZ,NXTDIR3 |
||
1253 | INC HL |
||
1254 | ADD IX,DE |
||
1255 | AND A |
||
1256 | SBC HL,BC |
||
1257 | EX AF,AF' |
||
1258 | ADD HL,BC |
||
1259 | EX AF,AF' |
||
1260 | JR NZ,NXTDIR2 |
||
1261 | LD HL,0 |
||
1262 | LD IX,(STR_MP3) |
||
1263 | JR NXTDIR2 |
||
1264 | |||
1265 | NXTDIR3 LD B,H |
||
1266 | LD C,L |
||
1267 | RET |
||
1268 | |||
163 | savelij | 1269 | ; ����祭�� ���饩 ��࠭��� ����� |
1270 | SETPAGE LD HL,BUF_PAG+0xFF |
||
105 | savelij | 1271 | LD L,(HL) |
1272 | LD A,(HL) |
||
1273 | OUT (MPAGEX),A |
||
163 | savelij | 1274 | LD L,0xFF |
105 | savelij | 1275 | INC (HL) |
1276 | RET |
||
1277 | |||
163 | savelij | 1278 | ; ��㧨��� MOD � ������ NEOGS |
1279 | LOADFIL LD HL,BUF_PAG+0xFF |
||
105 | savelij | 1280 | LD (HL),0 |
1281 | IN A,(GSCFG0) |
||
1282 | SET B_EXPAG,A |
||
1283 | OUT (GSCFG0),A |
||
163 | savelij | 1284 | LD IY,(SecPerClus) |
1285 | ; LY = ���-�� ᥪ� � ������ |
||
105 | savelij | 1286 | LD A,IYL |
163 | savelij | 1287 | CP 0x20 |
105 | savelij | 1288 | JR C,LDMF5 |
163 | savelij | 1289 | ; ����㧪� ����� 32 � ����� ᥪ� |
105 | savelij | 1290 | LD_F5 LD DE,(TFILCLS) |
1291 | LD BC,(TFILCLS+2) |
||
1292 | CALL REALSEC |
||
1293 | LD A,IYL |
||
163 | savelij | 1294 | AND 0xE0 |
105 | savelij | 1295 | RLCA |
1296 | RLCA |
||
1297 | RLCA |
||
1298 | LD IYH,A |
||
163 | savelij | 1299 | LD_F9 LD A,0x20 |
105 | savelij | 1300 | EX AF,AF' |
1301 | CALL SETPAGE |
||
1302 | LD A,3 |
||
163 | savelij | 1303 | LD HL,0xC000 |
105 | savelij | 1304 | CALL COM__SD |
1305 | AND A |
||
1306 | JP NZ,ERR_DRV |
||
163 | savelij | 1307 | LD HL,0x20 |
105 | savelij | 1308 | ADD HL,DE |
1309 | EX DE,HL |
||
1310 | LD HL,0 |
||
1311 | ADC HL,BC |
||
1312 | LD B,H |
||
1313 | LD C,L |
||
1314 | DEC IYH |
||
1315 | JR NZ,LD_F9 |
||
1316 | LD DE,(TFILCLS) |
||
1317 | LD BC,(TFILCLS+2) |
||
1318 | CALL RDFATZP |
||
1319 | CALL LST_CLS |
||
1320 | JR C,LD_E |
||
1321 | LD (TFILCLS+2),BC |
||
1322 | LD (TFILCLS),DE |
||
1323 | JR LD_F5 |
||
1324 | |||
1325 | LD_E IN A,(GSCFG0) |
||
1326 | RES B_EXPAG,A |
||
1327 | OUT (GSCFG0),A |
||
165 | savelij | 1328 | LD A,(PAGE_PLAYER) |
105 | savelij | 1329 | OUT (MPAG),A |
163 | savelij | 1330 | LD A,(BUF_PAG+0xFF) |
105 | savelij | 1331 | SRL A |
1332 | ADC A,0 |
||
1333 | RET |
||
1334 | |||
163 | savelij | 1335 | ; ����㧪� ����� 16 � ����� ᥪ� |
105 | savelij | 1336 | LDMF5 CALL SETPAGE |
163 | savelij | 1337 | LD HL,0xC000 |
105 | savelij | 1338 | LDMF2 LD DE,(TFILCLS) |
1339 | LD BC,(TFILCLS+2) |
||
1340 | PUSH HL |
||
1341 | CALL REALSEC |
||
1342 | POP HL |
||
1343 | LDMF3 LD A,IYL |
||
1344 | EX AF,AF' |
||
1345 | LD A,3 |
||
1346 | CALL COM__SD |
||
1347 | AND A |
||
1348 | JP NZ,ERR_DRV |
||
1349 | PUSH HL |
||
1350 | LD BC,(TFILCLS+2) |
||
1351 | LD DE,(TFILCLS) |
||
1352 | CALL RDFATZP |
||
1353 | CALL LST_CLS |
||
1354 | POP HL |
||
1355 | JR C,LD_E |
||
1356 | LD (TFILCLS+2),BC |
||
1357 | LD (TFILCLS),DE |
||
1358 | LD A,H |
||
1359 | AND A |
||
1360 | JR NZ,LDMF2 |
||
1361 | JR LDMF5 |
||
1362 | |||
163 | savelij | 1363 | ; ���� ��� ��४� �� FAT |
164 | savelij | 1364 | FINDDIR LD HL,STACK_CURR_DIR |
1365 | LD (STACKPREVDIR),HL |
||
105 | savelij | 1366 | LD DE,STR_DIR |
163 | savelij | 1367 | LD HL,RootDIRCluster |
105 | savelij | 1368 | LDI |
1369 | LDI |
||
1370 | LDI |
||
1371 | LDI |
||
164 | savelij | 1372 | LD (PAGEDIR),DE ; �㤠 ���騩 ����� ������ ���� ������ |
1373 | .L72 LD BC,0 |
||
105 | savelij | 1374 | CALL RDDIRSC |
163 | savelij | 1375 | LD DE,0x20 |
105 | savelij | 1376 | PUSH HL |
1377 | POP IX |
||
1378 | LD A,(HL) |
||
112 | savelij | 1379 | CP "." |
164 | savelij | 1380 | JR NZ,.L3 |
1381 | LD A,(IX+1) |
||
112 | savelij | 1382 | CP "." |
164 | savelij | 1383 | JR Z,.NEXTDIR |
105 | savelij | 1384 | INC BC |
1385 | ADD IX,DE |
||
164 | savelij | 1386 | .NEXTDIR INC BC |
105 | savelij | 1387 | ADD IX,DE |
164 | savelij | 1388 | .L3 LD A,IXH |
1389 | CP HIGH (BUF_512) + 2 |
||
1390 | JR NZ,.L2 ; ᥪ�� ���稫��? |
||
1391 | CALL RDDIRSC |
||
1392 | JR NZ,.FNDDIR5 ; ����� DIR |
||
163 | savelij | 1393 | LD DE,0x20 |
105 | savelij | 1394 | PUSH HL |
1395 | POP IX |
||
164 | savelij | 1396 | .L2 LD A,(IX+0) |
112 | savelij | 1397 | AND A |
164 | savelij | 1398 | JR Z,.FNDDIR5 ; ����� DIR? |
163 | savelij | 1399 | CP 0xE5 |
164 | savelij | 1400 | JR Z,.NEXTDIR ; 䠩� 㤠���? |
1401 | LD A,(IX + _DIR_Attr) |
||
1402 | CP M_DIR_AttrLongName |
||
1403 | JR Z,.NEXTDIR ; �� ������� ���? |
||
1404 | CP M_DIR_VolumeID |
||
1405 | JR Z,.NEXTDIR ; �� ��� ࠧ����? |
||
1406 | BIT 4,(IX + _DIR_Attr) |
||
1407 | JR Z,.NEXTDIR ; �� ��४���? |
||
1408 | ; 㪫���� ����� ������ ��������� DIR |
||
1409 | LD HL,(PAGEDIR) ; �㤠 ������ |
||
163 | savelij | 1410 | LD A,(IX+0x1A) |
105 | savelij | 1411 | LD (HL),A |
1412 | INC HL |
||
163 | savelij | 1413 | LD A,(IX+0x1B) |
105 | savelij | 1414 | LD (HL),A |
1415 | INC HL |
||
163 | savelij | 1416 | LD A,(IX+0x14) |
105 | savelij | 1417 | LD (HL),A |
1418 | INC HL |
||
163 | savelij | 1419 | LD A,(IX+0x15) |
105 | savelij | 1420 | LD (HL),A |
163 | savelij | 1421 | INC HL ; 㫮���� ����� ������ ��������� DIR |
105 | savelij | 1422 | LD (PAGEDIR),HL |
164 | savelij | 1423 | LD HL,(STACKPREVDIR) |
1424 | DEC HL |
||
1425 | LD (HL),B |
||
1426 | DEC HL |
||
1427 | LD (HL),C ; ��࠭��� ����� ⥪�饩 ���� |
||
1428 | LD (STACKPREVDIR),HL |
||
105 | savelij | 1429 | LD (TEK_ZAP),BC |
1430 | CALL ENT_DIR |
||
164 | savelij | 1431 | JP .L72 |
105 | savelij | 1432 | |
164 | savelij | 1433 | ; ��室 �� ��४�ਨ � ��ઠ ����⪨ ��室� �� ����� ��४�ਨ |
1434 | .FNDDIR5 LD A,(STACKPREVDIR + 1) |
||
1435 | CP HIGH (STACK_CURR_DIR) |
||
1436 | JR NC,FNDDIR0 |
||
105 | savelij | 1437 | LD BC,0 |
1438 | CALL RDDIRSC |
||
1439 | PUSH HL |
||
1440 | POP IX |
||
163 | savelij | 1441 | LD DE,0x20 |
105 | savelij | 1442 | LD A,(HL) |
112 | savelij | 1443 | CP "." |
164 | savelij | 1444 | JR NZ,.FNDDI52 |
105 | savelij | 1445 | INC HL |
1446 | LD A,(HL) |
||
112 | savelij | 1447 | CP "." |
164 | savelij | 1448 | JR Z,.FNDDI52 |
105 | savelij | 1449 | INC BC |
1450 | ADD IX,DE |
||
164 | savelij | 1451 | .FNDDI52 LD (TEK_ZAP),BC |
1452 | CALL ENT_DIR ; ��室 �� ���� |
||
1453 | LD HL,(STACKPREVDIR) |
||
1454 | LD C,(HL) |
||
1455 | INC HL |
||
1456 | LD B,(HL) |
||
1457 | INC HL |
||
1458 | LD (STACKPREVDIR),HL |
||
105 | savelij | 1459 | CALL RDDIRSC |
1460 | LD A,C |
||
163 | savelij | 1461 | AND 0x0F |
105 | savelij | 1462 | LD E,A |
1463 | LD D,0 |
||
1464 | EX DE,HL |
||
1465 | ADD HL,HL |
||
1466 | ADD HL,HL |
||
1467 | ADD HL,HL |
||
1468 | ADD HL,HL |
||
1469 | ADD HL,HL |
||
1470 | ADD HL,DE |
||
1471 | PUSH HL |
||
1472 | POP IX |
||
163 | savelij | 1473 | LD DE,0x20 |
164 | savelij | 1474 | JP .NEXTDIR |
105 | savelij | 1475 | |
163 | savelij | 1476 | ; �� DIR ������� |
105 | savelij | 1477 | FNDDIR0 LD HL,(PAGEDIR) |
1478 | LD D,H |
||
1479 | LD E,L |
||
1480 | INC HL |
||
1481 | INC HL |
||
1482 | INC HL |
||
163 | savelij | 1483 | LD (HL),0xFF |
105 | savelij | 1484 | PUSH HL |
1485 | EX DE,HL |
||
1486 | LD DE,STR_DIR |
||
1487 | AND A |
||
1488 | SBC HL,DE |
||
1489 | SRL H |
||
1490 | RR L |
||
1491 | SRL H |
||
1492 | RR L |
||
1493 | LD (KOLVDIR),HL |
||
1494 | EX (SP),HL |
||
1495 | INC HL |
||
1496 | LD (STR_MP3),HL |
||
1497 | POP HL |
||
1498 | RET |
||
1499 | |||
163 | savelij | 1500 | ; �� 䠩�� ������� ��� ������ ���稫��� |
105 | savelij | 1501 | FNDMP30 LD HL,(PAGEMP3) |
1502 | LD DE,(STR_MP3) |
||
1503 | PUSH HL |
||
1504 | POP IX |
||
1505 | LD (HL),0 |
||
1506 | INC L |
||
1507 | LD (HL),0 |
||
1508 | DEC L |
||
1509 | AND A |
||
1510 | SBC HL,DE |
||
1511 | SRL H |
||
1512 | RR L |
||
1513 | SRL H |
||
1514 | RR L |
||
1515 | LD DE,2 |
||
1516 | LD (KOLVMP3),HL |
||
165 | savelij | 1517 | LD (COUNT_MP3),HL |
105 | savelij | 1518 | AND A |
1519 | SBC HL,DE |
||
1520 | EX AF,AF' |
||
1521 | ADD HL,DE |
||
1522 | EX AF,AF' |
||
1523 | RET C |
||
1524 | PUSH HL |
||
1525 | LD IY,1 |
||
1526 | LD B,H |
||
1527 | LD C,L |
||
163 | savelij | 1528 | LD DE,0xFFFC |
105 | savelij | 1529 | ADD IX,DE |
1530 | DEC HL |
||
1531 | EXX |
||
1532 | LD L,(IX+0) |
||
1533 | LD H,(IX+1) |
||
1534 | EXX |
||
1535 | FNDM030 EXX |
||
1536 | LD D,H |
||
1537 | LD E,L |
||
1538 | LD L,(IX+0) |
||
1539 | LD H,(IX+1) |
||
1540 | AND A |
||
1541 | SBC HL,DE |
||
1542 | EX AF,AF' |
||
1543 | ADD HL,DE |
||
1544 | EX AF,AF' |
||
1545 | EXX |
||
164 | savelij | 1546 | JR Z,.L1 |
105 | savelij | 1547 | INC IY |
164 | savelij | 1548 | .L1 LD A,H |
105 | savelij | 1549 | OR L |
163 | savelij | 1550 | JR Z,FNDM033 ; ������ ���稫���, ��室�� |
105 | savelij | 1551 | DEC HL |
1552 | ADD IX,DE |
||
1553 | JR FNDM030 |
||
1554 | |||
163 | savelij | 1555 | FNDM033 LD (KOLVDIR),IY ; ������⢮ ��������� ��४� |
105 | savelij | 1556 | POP HL |
1557 | RET |
||
1558 | |||
163 | savelij | 1559 | ; ���� 䠩��� �� ���७�� |
105 | savelij | 1560 | FINDMP3 LD HL,(STR_MP3) |
1561 | LD (PAGEMP3),HL |
||
1562 | LD HL,STR_DIR |
||
1563 | LD (PAGEDIR),HL |
||
164 | savelij | 1564 | .FNDMP37 LD HL,(PAGEDIR) |
105 | savelij | 1565 | LD (TEKNUMC),HL |
163 | savelij | 1566 | LD DE,CurrentDIRCluster |
105 | savelij | 1567 | LDI |
1568 | LDI |
||
1569 | LDI |
||
1570 | LDI |
||
1571 | LD (PAGEDIR),HL |
||
1572 | DEC HL |
||
1573 | BIT 7,(HL) |
||
1574 | JP NZ,FNDMP30 |
||
163 | savelij | 1575 | LD DE,(CurrentDIRCluster) |
1576 | LD BC,(CurrentDIRCluster+2) |
||
105 | savelij | 1577 | CALL INIRTSC |
1578 | LD BC,0 |
||
1579 | CALL RDDIRSC |
||
163 | savelij | 1580 | LD DE,0x20 |
105 | savelij | 1581 | PUSH HL |
1582 | POP IX |
||
1583 | LD A,(HL) |
||
112 | savelij | 1584 | CP "." |
164 | savelij | 1585 | JR NZ,.ROOT |
1586 | LD A,(IX+1) |
||
112 | savelij | 1587 | CP "." |
164 | savelij | 1588 | JR Z,.NEXTFILE |
105 | savelij | 1589 | INC BC |
1590 | ADD IX,DE |
||
164 | savelij | 1591 | .NEXTFILE INC BC |
105 | savelij | 1592 | ADD IX,DE |
164 | savelij | 1593 | .ROOT LD A,IXH |
1594 | CP HIGH (BUF_512) + 2 |
||
1595 | JR NZ,.FNDMP32 |
||
1596 | CALL RDDIRSC |
||
1597 | JP NZ,.FNDMP37 |
||
163 | savelij | 1598 | LD DE,0x20 |
105 | savelij | 1599 | PUSH HL |
1600 | POP IX |
||
164 | savelij | 1601 | .FNDMP32 LD A,(IX+0) |
112 | savelij | 1602 | AND A |
164 | savelij | 1603 | JP Z,.FNDMP37 ; ����� DIR? |
163 | savelij | 1604 | CP 0xE5 |
164 | savelij | 1605 | JR Z,.NEXTFILE ; 䠩� 㤠���? |
1606 | LD A,(IX + _DIR_Attr) |
||
1607 | CP M_DIR_AttrLongName |
||
1608 | JR Z,.NEXTFILE ; �� ������� ���? |
||
1609 | CP M_DIR_VolumeID |
||
1610 | JR Z,.NEXTFILE ; �� ��� ࠧ����? |
||
1611 | BIT 4,(IX + _DIR_Attr) |
||
1612 | JR NZ,.NEXTFILE ; �� ��४���? |
||
105 | savelij | 1613 | EXX |
1614 | PUSH IX |
||
1615 | POP HL |
||
163 | savelij | 1616 | CALL CP_EXT ; ���塞 ���७�� 䠩�� |
105 | savelij | 1617 | EXX |
1618 | AND A |
||
164 | savelij | 1619 | JP Z,.NEXTFILE ; �� ᮢ����, �த������ |
105 | savelij | 1620 | LD DE,(TEKNUMC) |
1621 | LD HL,(PAGEMP3) |
||
163 | savelij | 1622 | ; 㪫���� ����⥫� 䠩�� |
1623 | ; 2 ���� ���� ������ ���� |
||
1624 | ; 2 ���� "ॠ���" ����� 䠩�� |
||
105 | savelij | 1625 | LD (HL),E |
1626 | INC HL |
||
1627 | LD (HL),D |
||
1628 | INC HL |
||
1629 | LD (HL),C |
||
1630 | INC HL |
||
1631 | LD (HL),B |
||
1632 | INC HL |
||
1633 | LD (PAGEMP3),HL |
||
1634 | LD A,H |
||
1635 | AND A |
||
163 | savelij | 1636 | JP Z,FNDMP30 ; ������ ���稫���, ��室�� |
1637 | LD DE,0x20 |
||
164 | savelij | 1638 | JR .NEXTFILE |