Rev 321 | Rev 389 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 321 | Rev 381 | ||
---|---|---|---|
Line 550... | Line 550... | ||
550 | fs_HasRamdisk: |
550 | fs_HasRamdisk: |
551 | mov al, 1 ; we always have ramdisk |
551 | mov al, 1 ; we always have ramdisk |
552 | ret |
552 | ret |
Line 553... | Line 553... | ||
553 | 553 | ||
554 | fs_HasFloppy: |
554 | fs_HasFloppy: |
555 | cmp byte [0x40000], 0 |
555 | cmp byte [DRIVE_DATA], 0 |
556 | setnz al |
556 | setnz al |
Line 557... | Line 557... | ||
557 | ret |
557 | ret |
558 | 558 | ||
559 | fs_HasHd0: |
559 | fs_HasHd0: |
560 | mov al, [0x40001] |
560 | mov al, [DRIVE_DATA+1] |
561 | and al, 11000000b |
561 | and al, 11000000b |
562 | cmp al, 01000000b |
562 | cmp al, 01000000b |
563 | setz al |
563 | setz al |
564 | ret |
564 | ret |
565 | fs_HasHd1: |
565 | fs_HasHd1: |
566 | mov al, [0x40001] |
566 | mov al, [DRIVE_DATA+1] |
567 | and al, 00110000b |
567 | and al, 00110000b |
568 | cmp al, 00010000b |
568 | cmp al, 00010000b |
569 | setz al |
569 | setz al |
570 | ret |
570 | ret |
571 | fs_HasHd2: |
571 | fs_HasHd2: |
572 | mov al, [0x40001] |
572 | mov al, [DRIVE_DATA+1] |
573 | and al, 00001100b |
573 | and al, 00001100b |
574 | cmp al, 00000100b |
574 | cmp al, 00000100b |
575 | setz al |
575 | setz al |
576 | ret |
576 | ret |
577 | fs_HasHd3: |
577 | fs_HasHd3: |
578 | mov al, [0x40001] |
578 | mov al, [DRIVE_DATA+1] |
579 | and al, 00000011b |
579 | and al, 00000011b |
580 | cmp al, 00000001b |
580 | cmp al, 00000001b |
Line 581... | Line 581... | ||
581 | setz al |
581 | setz al |
582 | ret |
582 | ret |
583 | 583 | ||
584 | ;******************************************************* |
584 | ;******************************************************* |
585 | fs_HasCd0: |
585 | fs_HasCd0: |
586 | mov al, [0x40001] |
586 | mov al, [DRIVE_DATA+1] |
587 | and al, 11000000b |
587 | and al, 11000000b |
588 | cmp al, 10000000b |
588 | cmp al, 10000000b |
589 | setz al |
589 | setz al |
590 | ret |
590 | ret |
591 | fs_HasCd1: |
591 | fs_HasCd1: |
592 | mov al, [0x40001] |
592 | mov al, [DRIVE_DATA+1] |
593 | and al, 00110000b |
593 | and al, 00110000b |
594 | cmp al, 00100000b |
594 | cmp al, 00100000b |
595 | setz al |
595 | setz al |
596 | ret |
596 | ret |
597 | fs_HasCd2: |
597 | fs_HasCd2: |
598 | mov al, [0x40001] |
598 | mov al, [DRIVE_DATA+1] |
599 | and al, 00001100b |
599 | and al, 00001100b |
600 | cmp al, 00001000b |
600 | cmp al, 00001000b |
601 | setz al |
601 | setz al |
602 | ret |
602 | ret |
603 | fs_HasCd3: |
603 | fs_HasCd3: |
604 | mov al, [0x40001] |
604 | mov al, [DRIVE_DATA+1] |
605 | and al, 00000011b |
605 | and al, 00000011b |
606 | cmp al, 00000010b |
606 | cmp al, 00000010b |
Line 622... | Line 622... | ||
622 | clc |
622 | clc |
623 | @@: |
623 | @@: |
624 | ret |
624 | ret |
Line 625... | Line 625... | ||
625 | 625 | ||
626 | fs_NextFloppy: |
626 | fs_NextFloppy: |
627 | ; we have /fd/1 iff (([0x40000] and 0xF0) != 0) and /fd/2 iff (([0x40000] and 0x0F) != 0) |
627 | ; we have /fd/1 iff (([DRIVE_DATA] and 0xF0) != 0) and /fd/2 iff (([DRIVE_DATA] and 0x0F) != 0) |
628 | test byte [0x40000], 0xF0 |
628 | test byte [DRIVE_DATA], 0xF0 |
629 | jz .no1 |
629 | jz .no1 |
630 | test eax, eax |
630 | test eax, eax |
631 | jnz .no1 |
631 | jnz .no1 |
632 | inc eax |
632 | inc eax |
633 | ret ; CF cleared |
633 | ret ; CF cleared |
634 | .no1: |
634 | .no1: |
635 | test byte [0x40000], 0x0F |
635 | test byte [DRIVE_DATA], 0x0F |
636 | jz .no2 |
636 | jz .no2 |
637 | cmp al, 2 |
637 | cmp al, 2 |
638 | jae .no2 |
638 | jae .no2 |
639 | mov al, 2 |
639 | mov al, 2 |
Line 655... | Line 655... | ||
655 | jmp fs_NextHd |
655 | jmp fs_NextHd |
656 | fs_NextHd3: |
656 | fs_NextHd3: |
657 | push 3 |
657 | push 3 |
658 | fs_NextHd: |
658 | fs_NextHd: |
659 | pop ecx |
659 | pop ecx |
660 | movzx ecx, byte [0x40002+ecx] |
660 | movzx ecx, byte [DRIVE_DATA+2+ecx] |
661 | cmp eax, ecx |
661 | cmp eax, ecx |
662 | jae fs_NextFloppy.no2 |
662 | jae fs_NextFloppy.no2 |
663 | inc eax |
663 | inc eax |
664 | clc |
664 | clc |
665 | ret |
665 | ret |