Rev 86 | Rev 89 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 86 | Rev 87 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | dd fs_OnHd2 |
26 | dd fs_OnHd2 |
27 | dd fs_NextHd2 |
27 | dd fs_NextHd2 |
28 | db 3,'hd3' |
28 | db 3,'hd3' |
29 | dd fs_OnHd3 |
29 | dd fs_OnHd3 |
30 | dd fs_NextHd3 |
30 | dd fs_NextHd3 |
- | 31 | ;********************************************** |
|
- | 32 | db 3,'cd0' |
|
- | 33 | dd fs_OnCd0 |
|
- | 34 | dd fs_NextCd |
|
- | 35 | db 3,'cd1' |
|
- | 36 | dd fs_OnCd1 |
|
- | 37 | dd fs_NextCd |
|
- | 38 | db 3,'cd2' |
|
- | 39 | dd fs_OnCd2 |
|
- | 40 | dd fs_NextCd |
|
- | 41 | db 3,'cd3' |
|
- | 42 | dd fs_OnCd3 |
|
- | 43 | dd fs_NextCd |
|
- | 44 | ;*********************************************** |
|
31 | db 0 |
45 | db 0 |
Line -... | Line 46... | ||
- | 46 | ||
32 | 47 | ||
33 | virtual_root_query: |
48 | virtual_root_query: |
34 | dd fs_HasRamdisk |
49 | dd fs_HasRamdisk |
35 | db 'rd',0 |
50 | db 'rd',0 |
36 | dd fs_HasFloppy |
51 | dd fs_HasFloppy |
Line 41... | Line 56... | ||
41 | db 'hd1',0 |
56 | db 'hd1',0 |
42 | dd fs_HasHd2 |
57 | dd fs_HasHd2 |
43 | db 'hd2',0 |
58 | db 'hd2',0 |
44 | dd fs_HasHd3 |
59 | dd fs_HasHd3 |
45 | db 'hd3',0 |
60 | db 'hd3',0 |
- | 61 | ;********************************************** |
|
- | 62 | dd fs_HasCd0 |
|
- | 63 | db 'cd0',0 |
|
- | 64 | dd fs_HasCd1 |
|
- | 65 | db 'cd1',0 |
|
- | 66 | dd fs_HasCd2 |
|
- | 67 | db 'cd2',0 |
|
- | 68 | dd fs_HasCd3 |
|
- | 69 | db 'cd3',0 |
|
- | 70 | ;********************************************** |
|
46 | dd 0 |
71 | dd 0 |
47 | endg |
72 | endg |
Line 48... | Line 73... | ||
48 | 73 | ||
49 | file_system_lfn: |
74 | file_system_lfn: |
Line 418... | Line 443... | ||
418 | dd fs_NotImplemented |
443 | dd fs_NotImplemented |
419 | dd fs_HdGetFileInfo |
444 | dd fs_HdGetFileInfo |
420 | dd fs_HdSetFileInfo |
445 | dd fs_HdSetFileInfo |
421 | fs_NumHdServices = ($ - fs_HdServices)/4 |
446 | fs_NumHdServices = ($ - fs_HdServices)/4 |
Line -... | Line 447... | ||
- | 447 | ||
- | 448 | ;******************************************************* |
|
- | 449 | fs_OnCd0: |
|
- | 450 | call reserve_cd |
|
- | 451 | mov [ChannelNumber],1 |
|
- | 452 | mov [DiskNumber],0 |
|
- | 453 | push 6 |
|
- | 454 | jmp fs_OnCd |
|
- | 455 | fs_OnCd1: |
|
- | 456 | call reserve_cd |
|
- | 457 | mov [ChannelNumber],1 |
|
- | 458 | mov [DiskNumber],1 |
|
- | 459 | push 4 |
|
- | 460 | jmp fs_OnCd |
|
- | 461 | fs_OnCd2: |
|
- | 462 | call reserve_cd |
|
- | 463 | mov [ChannelNumber],2 |
|
- | 464 | mov [DiskNumber],0 |
|
- | 465 | push 2 |
|
- | 466 | jmp fs_OnCd |
|
- | 467 | fs_OnCd3: |
|
- | 468 | call reserve_cd |
|
- | 469 | mov [ChannelNumber],2 |
|
- | 470 | mov [DiskNumber],1 |
|
- | 471 | push 0 |
|
- | 472 | fs_OnCd: |
|
- | 473 | ||
- | 474 | pop eax |
|
- | 475 | mov [hdpos], eax |
|
- | 476 | cmp ecx, 0x100 |
|
- | 477 | jae .nf |
|
- | 478 | push cx bx |
|
- | 479 | mov cl,al |
|
- | 480 | mov bl,[0x40001] |
|
- | 481 | shr bl,cl |
|
- | 482 | test bl,2 |
|
- | 483 | pop bx cx |
|
- | 484 | ||
- | 485 | jnz @f |
|
- | 486 | .nf: |
|
- | 487 | and [cd_status], 0 |
|
- | 488 | mov dword [esp+36], 5 ; not found |
|
- | 489 | ret |
|
- | 490 | @@: |
|
- | 491 | mov ecx, [ebx+12] |
|
- | 492 | mov edx, [ebx+16] |
|
- | 493 | add edx, std_application_base_address |
|
- | 494 | mov eax, [ebx] |
|
- | 495 | cmp eax, 1 |
|
- | 496 | ja .not_impl |
|
- | 497 | add ebx, 4 |
|
- | 498 | call dword [fs_CdServices + eax*4] |
|
- | 499 | and [cd_status], 0 |
|
- | 500 | mov [esp+36], eax |
|
- | 501 | mov [esp+24], ebx |
|
- | 502 | ret |
|
- | 503 | .not_impl: |
|
- | 504 | and [hd1_status], 0 |
|
- | 505 | mov dword [esp+36], 2 ; not implemented |
|
- | 506 | ret |
|
- | 507 | ||
- | 508 | fs_CdServices: |
|
- | 509 | dd fs_CdRead |
|
- | 510 | dd fs_CdReadFolder |
|
- | 511 | ;******************************************************* |
|
422 | 512 | ||
423 | fs_HasRamdisk: |
513 | fs_HasRamdisk: |
424 | mov al, 1 ; we always have ramdisk |
514 | mov al, 1 ; we always have ramdisk |
Line 425... | Line 515... | ||
425 | ret |
515 | ret |
Line 452... | Line 542... | ||
452 | and al, 00000011b |
542 | and al, 00000011b |
453 | cmp al, 00000001b |
543 | cmp al, 00000001b |
454 | setz al |
544 | setz al |
455 | ret |
545 | ret |
Line -... | Line 546... | ||
- | 546 | ||
- | 547 | ;******************************************************* |
|
- | 548 | fs_HasCd0: |
|
- | 549 | mov al, [0x40001] |
|
- | 550 | and al, 11000000b |
|
- | 551 | cmp al, 10000000b |
|
- | 552 | setz al |
|
- | 553 | ret |
|
- | 554 | fs_HasCd1: |
|
- | 555 | mov al, [0x40001] |
|
- | 556 | and al, 00110000b |
|
- | 557 | cmp al, 00100000b |
|
- | 558 | setz al |
|
- | 559 | ret |
|
- | 560 | fs_HasCd2: |
|
- | 561 | mov al, [0x40001] |
|
- | 562 | and al, 00001100b |
|
- | 563 | cmp al, 00001000b |
|
- | 564 | setz al |
|
- | 565 | ret |
|
- | 566 | fs_HasCd3: |
|
- | 567 | mov al, [0x40001] |
|
- | 568 | and al, 00000011b |
|
- | 569 | cmp al, 00000010b |
|
- | 570 | setz al |
|
- | 571 | ret |
|
- | 572 | ;******************************************************* |
|
456 | 573 | ||
457 | ; fs_NextXXX functions: |
574 | ; fs_NextXXX functions: |
458 | ; in: eax = partition number, from which start to scan |
575 | ; in: eax = partition number, from which start to scan |
459 | ; out: CF=1 => no more partitions |
576 | ; out: CF=1 => no more partitions |
Line 507... | Line 624... | ||
507 | cmp eax, ecx |
624 | cmp eax, ecx |
508 | jae fs_NextFloppy.no2 |
625 | jae fs_NextFloppy.no2 |
509 | inc eax |
626 | inc eax |
510 | clc |
627 | clc |
511 | ret |
628 | ret |
- | 629 | ||
- | 630 | ;******************************************************* |
|
- | 631 | fs_NextCd: |
|
- | 632 | ; we always have /cdX/1 |
|
- | 633 | test eax, eax |
|
- | 634 | stc |
|
- | 635 | jnz @f |
|
- | 636 | mov al, 1 |
|
- | 637 | clc |
|
- | 638 | @@: |
|
- | 639 | ret |
|
- | 640 | ;******************************************************* |
|
- | 641 |