Subversion Repositories Kolibri OS

Rev

Rev 388 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 388 Rev 390
Line 390... Line 390...
390
    ret
390
    ret
Line 391... Line 391...
391
 
391
 
Line 392... Line 392...
392
save_hd_wait_timeout:
392
save_hd_wait_timeout:
393
 
393
 
394
    push  eax
394
    push  eax
395
    mov   eax,[timer_ticks];[0xfdf0]
395
    mov   eax,[timer_ticks]
396
    add   eax,300               ; 3 sec timeout
396
    add   eax,300               ; 3 sec timeout
397
    mov   [hd_wait_timeout],eax
397
    mov   [hd_wait_timeout],eax
Line 398... Line 398...
398
    pop   eax
398
    pop   eax
399
    ret
399
    ret
Line 400... Line 400...
400
 
400
 
401
align 4
401
align 4
402
check_hd_wait_timeout:
402
check_hd_wait_timeout:
403
 
403
 
404
    push  eax
404
    push  eax
405
    mov   eax,[hd_wait_timeout]
405
    mov   eax,[hd_wait_timeout]
406
    cmp   [timer_ticks], eax ;[0xfdf0],eax
406
    cmp   [timer_ticks], eax
Line 421... Line 421...
421
;    call  clear_hd_cache
421
;    call  clear_hd_cache
422
;    call  clear_application_table_status
422
;    call  clear_application_table_status
423
;    mov   esi,hd_timeout_str
423
;    mov   esi,hd_timeout_str
424
;    call  sys_msg_board_str
424
;    call  sys_msg_board_str
425
    DEBUGF 1,"K : FS - HD timeout\n"
425
    DEBUGF 1,"K : FS - HD timeout\n"
426
;    jmp   $
426
 
427
    mov   [hd_error],1
427
    mov   [hd_error],1
428
    pop   eax
428
    pop   eax
429
    ret
429
    ret
Line 430... Line 430...
430
 
430
 
Line 572... Line 572...
572
 
572
 
573
iglobal
573
iglobal
574
align 4
574
align 4
575
; note that IDE descriptor table must be 4-byte aligned and do not cross 4K boundary
575
; note that IDE descriptor table must be 4-byte aligned and do not cross 4K boundary
576
IDE_descriptor_table:
576
IDE_descriptor_table:
577
        dd      OS_BASE+284000h
577
        dd      0x284000
578
        dw      2000h
578
        dw      0x2000
Line 579... Line 579...
579
        dw      8000h
579
        dw      0x8000
580
 
580
 
581
dma_cur_sector  dd      not 40h
581
dma_cur_sector  dd      not 40h
582
irq14_func      dd      hdd_irq_null
582
irq14_func      dd      hdd_irq_null
Line 615... Line 615...
615
        mov     [dma_process], eax
615
        mov     [dma_process], eax
616
        mov     eax, [TASK_BASE]
616
        mov     eax, [TASK_BASE]
617
        mov     [dma_slot_ptr], eax
617
        mov     [dma_slot_ptr], eax
618
        mov     [CURRENT_TASK], ebx
618
        mov     [CURRENT_TASK], ebx
619
        mov     [TASK_BASE], edi
619
        mov     [TASK_BASE], edi
620
        mov     byte [0xFFFF], 1
620
        mov     byte [DONT_SWITCH], 1
621
        call    do_change_task
621
        call    do_change_task
622
.noswitch:
622
.noswitch:
623
        popad
623
        popad
624
        popfd
624
        popfd
625
align 4
625
align 4
Line 646... Line 646...
646
        mov     [dma_process], eax
646
        mov     [dma_process], eax
647
        mov     eax, [TASK_BASE]
647
        mov     eax, [TASK_BASE]
648
        mov     [dma_slot_ptr], eax
648
        mov     [dma_slot_ptr], eax
649
        mov     [CURRENT_TASK], ebx
649
        mov     [CURRENT_TASK], ebx
650
        mov     [TASK_BASE], edi
650
        mov     [TASK_BASE], edi
651
        mov     byte [0xFFFF], 1
651
        mov     byte [DONT_SWITCH], 1
652
        call    do_change_task
652
        call    do_change_task
653
.noswitch:
653
.noswitch:
654
        popad
654
        popad
655
        popfd
655
        popfd
656
        ret
656
        ret
Line 679... Line 679...
679
        pop     edi esi ecx
679
        pop     edi esi ecx
680
        pop     edx
680
        pop     edx
681
        pop     eax
681
        pop     eax
682
        ret
682
        ret
683
.notread:
683
.notread:
684
        mov     eax, IDE_descriptor_table-OS_BASE
684
        mov     eax, IDE_descriptor_table
685
        mov     dword [eax+OS_BASE],  0x284000
685
        mov     dword [eax],  0x284000
686
        mov     word [eax+4+OS_BASE], 0x2000
686
        mov     word [eax+4], 0x2000
-
 
687
        sub     eax, OS_BASE
687
        mov     dx, [IDEContrRegsBaseAddr]
688
        mov     dx, [IDEContrRegsBaseAddr]
688
        cmp     [hdbase], 0x1F0
689
        cmp     [hdbase], 0x1F0
689
        jz      @f
690
        jz      @f
690
        add     edx, 8
691
        add     edx, 8
691
@@:
692
@@:
Line 764... Line 765...
764
write_cache_chain:
765
write_cache_chain:
765
        push    esi
766
        push    esi
766
        mov     eax, IDE_descriptor_table
767
        mov     eax, IDE_descriptor_table
767
        mov     edx, [cache_chain_pos]
768
        mov     edx, [cache_chain_pos]
768
        shl     edx, 9
769
        shl     edx, 9
769
        add     edx, OS_BASE+0x610000
770
        add     edx, 0x610000
770
        mov     [eax], edx
771
        mov     [eax], edx
771
        movzx   edx, [cache_chain_size]
772
        movzx   edx, [cache_chain_size]
772
        shl     edx, 9
773
        shl     edx, 9
773
        mov     [eax+4], dx
774
        mov     [eax+4], dx
774
        jmp     do_write_dma
775
        jmp     do_write_dma
775
write_cache_sector:
776
write_cache_sector:
776
        push    esi
777
        push    esi
777
        mov     eax, IDE_descriptor_table
778
        mov     eax, IDE_descriptor_table
778
        mov     edx, edi
779
        mov     edx, edi
779
        shl     edx, 9
780
        shl     edx, 9
780
        add     edx, OS_BASE+0x610000
781
        add     edx, 0x610000
781
        mov     [eax], edx
782
        mov     [eax], edx
782
        mov     word [eax+4], 0x200
783
        mov     word [eax+4], 0x200
783
do_write_dma:
784
do_write_dma:
-
 
785
        sub     eax, OS_BASE
784
        mov     dx, [IDEContrRegsBaseAddr]
786
        mov     dx, [IDEContrRegsBaseAddr]
785
        cmp     [hdbase], 0x1F0
787
        cmp     [hdbase], 0x1F0
786
        jz      @f
788
        jz      @f
787
        add     edx, 8
789
        add     edx, 8
788
@@:
790
@@: