Subversion Repositories Kolibri OS

Rev

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

Rev 73 Rev 74
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                                      ;;
2
;;                                                                      ;;
3
;; System service for filesystem call                                   ;;
3
;; System service for filesystem call                                   ;;
4
;; (C) 2004 Ville Turjanmaa, License: GPL                               ;;
4
;; (C) 2004 Ville Turjanmaa, License: GPL                               ;;
5
;;                                                                      ;;
5
;; 29.04.2006 Elimination of hangup after the                           ;;
-
 
6
;;            expiration hd_wait_timeout (for LBA) -  Mario79           ;;
6
;; xx.04.2006 LFN support - diamond                                     ;;
7
;; xx.04.2006 LFN support - diamond                                     ;;
7
;; 15.01.2005 get file size/attr/date, file_append (only for hd) - ATV  ;;
8
;; 15.01.2005 get file size/attr/date, file_append (only for hd) - ATV  ;;
8
;; 23.11.2004 test if hd/partition is set - ATV                         ;;
9
;; 23.11.2004 test if hd/partition is set - ATV                         ;;
9
;; 18.11.2004 get_disk_info and more error codes - ATV                  ;;
10
;; 18.11.2004 get_disk_info and more error codes - ATV                  ;;
10
;; 08.11.2004 expand_pathz and rename (only for hd) - ATV               ;;
11
;; 08.11.2004 expand_pathz and rename (only for hd) - ATV               ;;
Line 29... Line 30...
29
hd_address_table:  dd  0x1f0,0x00,0x1f0,0x10
30
hd_address_table:  dd  0x1f0,0x00,0x1f0,0x10
30
                   dd  0x170,0x00,0x170,0x10
31
                   dd  0x170,0x00,0x170,0x10
31
endg
32
endg
Line 32... Line 33...
32
 
33
 
-
 
34
file_system:
33
file_system: 
35
 
34
; IN:
36
; IN:
35
;
37
;
36
; eax = 0  ; read file          /RamDisk/First  6   /HardDisk/First 30
38
; eax = 0  ; read file          /RamDisk/First  6   /HardDisk/First 30
37
; eax = 1  ; write file         /RamDisk/First 33   /HardDisk/First 56
39
; eax = 1  ; write file         /RamDisk/First 33   /HardDisk/First 56
Line 934... Line 936...
934
 
936
 
935
    mov  [hdbase],eax
937
    mov  [hdbase],eax
Line 936... Line 938...
936
    mov  [hdid],ebx
938
    mov  [hdid],ebx
-
 
939
 
-
 
940
    call  wait_for_hd_idle
Line 937... Line 941...
937
 
941
    cmp   [hd_error],0
938
    call  wait_for_hd_idle
942
    jne   hd_lba_error
Line 939... Line 943...
939
 
943
 
Line 970... Line 974...
970
    out   dx,al
974
    out   dx,al
Line 971... Line 975...
971
 
975
 
Line 972... Line 976...
972
    sti
976
    sti
-
 
977
 
-
 
978
    call  wait_for_sector_buffer
Line 973... Line 979...
973
 
979
    cmp   [hd_error],0
Line 974... Line 980...
974
    call  wait_for_sector_buffer
980
    jne   hd_lba_error
975
 
981
 
Line 985... Line 991...
985
 
991
 
986
    xor   eax,eax
992
    xor   eax,eax
Line 987... Line 993...
987
    xor   ebx,ebx
993
    xor   ebx,ebx
988
 
-
 
-
 
994
 
989
  LBA_read_ret:
995
  LBA_read_ret:
990
 
996
    mov [hd_error],0
Line 991... Line 997...
991
    mov   [hd1_status],0
997
    mov   [hd1_status],0