Rev 628 | Rev 800 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 628 | Rev 758 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 628 $ |
8 | $Revision: 758 $ |
9 | 9 | ||
10 | 10 | ||
Line 498... | Line 498... | ||
498 | ; in: esi+ebp -> name |
498 | ; in: esi+ebp -> name |
499 | ; out: CF=1 - file not found |
499 | ; out: CF=1 - file not found |
500 | ; else CF=0 and [cd_current_pointer_of_input] direntry |
500 | ; else CF=0 and [cd_current_pointer_of_input] direntry |
501 | push eax esi |
501 | push eax esi |
502 | ; 16 ñåêòîð íà÷àëî íàáîðà äåñêðèïòîðîâ òîìîâ |
502 | ; 16 ñåêòîð íà÷àëî íàáîðà äåñêðèïòîðîâ òîìîâ |
503 | mov [CDSectorAddress],dword 15 |
- | |
504 | mov [CDDataBuf_pointer],CDDataBuf |
- | |
Line 505... | Line 503... | ||
505 | 503 | ||
506 | call WaitUnitReady |
504 | call WaitUnitReady |
507 | cmp [DevErrorCode],0 |
505 | cmp [DevErrorCode],0 |
Line 508... | Line 506... | ||
508 | jne .access_denied |
506 | jne .access_denied |
- | 507 | ||
- | 508 | call prevent_medium_removal |
|
- | 509 | ; òåñòîâîå ÷òåíèå |
|
- | 510 | mov [CDSectorAddress],dword 16 |
|
- | 511 | call ReadCDWRetr ;_1 |
|
- | 512 | cmp [DevErrorCode],0 |
|
- | 513 | jne .access_denied |
|
- | 514 | ||
- | 515 | ; âû÷èñëåíèå ïîñëåäíåé ñåññèè |
|
- | 516 | call WaitUnitReady |
|
- | 517 | cmp [DevErrorCode],0 |
|
- | 518 | jne .access_denied |
|
- | 519 | call Read_TOC |
|
- | 520 | mov ah,[CDDataBuf+4+4] |
|
- | 521 | mov al,[CDDataBuf+4+5] |
|
- | 522 | shl eax,16 |
|
- | 523 | mov ah,[CDDataBuf+4+6] |
|
- | 524 | mov al,[CDDataBuf+4+7] |
|
- | 525 | add eax,15 |
|
- | 526 | mov [CDSectorAddress],eax |
|
- | 527 | ; mov [CDSectorAddress],dword 15 |
|
509 | 528 | mov [CDDataBuf_pointer],CDDataBuf |
|
510 | call prevent_medium_removal |
529 | |
511 | .start: |
530 | .start: |
512 | inc dword [CDSectorAddress] |
531 | inc dword [CDSectorAddress] |
513 | call ReadCDWRetr ;_1 |
532 | call ReadCDWRetr ;_1 |
- | 533 | cmp [DevErrorCode],0 |
|
- | 534 | jne .access_denied |
|
514 | cmp [DevErrorCode],0 |
535 | |
515 | jne .access_denied |
536 | .start_check: |
516 | ; ïðîâåðêà íà âøèâîñòü |
537 | ; ïðîâåðêà íà âøèâîñòü |
517 | cmp [CDDataBuf+1],dword 'CD00' |
538 | cmp [CDDataBuf+1],dword 'CD00' |
518 | jne .access_denied |
539 | jne .access_denied |
Line 525... | Line 546... | ||
525 | cmp [CDDataBuf],byte 0x2 |
546 | cmp [CDDataBuf],byte 0x2 |
526 | jne .start |
547 | jne .start |
527 | ; ñåêòîð ÿâëÿåòñÿ äîïîëíèòåëüíûì äåñêðèïòîðîì òîìà? |
548 | ; ñåêòîð ÿâëÿåòñÿ äîïîëíèòåëüíûì äåñêðèïòîðîì òîìà? |
528 | cmp [CDDataBuf+6],byte 0x1 |
549 | cmp [CDDataBuf+6],byte 0x1 |
529 | jne .start |
550 | jne .start |
- | 551 | ||
530 | ; ïàðàìåòðû root äèðåêòðîðèè |
552 | ; ïàðàìåòðû root äèðåêòðîðèè |
531 | mov eax,[CDDataBuf+0x9c+2] ; íà÷àëî root äèðåêòðîðèè |
553 | mov eax,[CDDataBuf+0x9c+2] ; íà÷àëî root äèðåêòðîðèè |
532 | mov [CDSectorAddress],eax |
554 | mov [CDSectorAddress],eax |
533 | mov eax,[CDDataBuf+0x9c+10] ; ðàçìåð root äèðåêòðîðèè |
555 | mov eax,[CDDataBuf+0x9c+10] ; ðàçìåð root äèðåêòðîðèè |
534 | cmp byte [esi], 0 |
556 | cmp byte [esi], 0 |