Subversion Repositories Kolibri OS

Rev

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