Subversion Repositories Kolibri OS

Rev

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

Rev 335 Rev 379
Line 14... Line 14...
14
;;  23.06.2006 LFN start application - diamond                     ;;
14
;;  23.06.2006 LFN start application - diamond                     ;;
15
;;  15.06.2006 LFN get/set file/folder info - diamond              ;;
15
;;  15.06.2006 LFN get/set file/folder info - diamond              ;;
16
;;  27.05.2006 LFN create/rewrite file - diamond                   ;;
16
;;  27.05.2006 LFN create/rewrite file - diamond                   ;;
17
;;  04.05.2006 LFN read folder - diamond                           ;;
17
;;  04.05.2006 LFN read folder - diamond                           ;;
18
;;  29.04.2006 Elimination of hangup after the                     ;;
18
;;  29.04.2006 Elimination of hangup after the                     ;;
19
;;             expiration hd_wait_timeout -  Mario79               ;;           
19
;;             expiration hd_wait_timeout -  Mario79               ;;
20
;;  23.04.2006 LFN read file - diamond                             ;;
20
;;  23.04.2006 LFN read file - diamond                             ;;
21
;;  28.01.2006 find all Fat16/32 partition in all input point      ;;
21
;;  28.01.2006 find all Fat16/32 partition in all input point      ;;
22
;;             to MBR, see file part_set.inc - Mario79             ;;
22
;;             to MBR, see file part_set.inc - Mario79             ;;
23
;;  15.01.2005 get file size/attr/date, file_append - ATV          ;;
23
;;  15.01.2005 get file size/attr/date, file_append - ATV          ;;
24
;;  04.12.2004 skip volume label, file delete bug fixed - ATV      ;;
24
;;  04.12.2004 skip volume label, file delete bug fixed - ATV      ;;
Line 122... Line 122...
122
    jmp   reserve_hd1
122
    jmp   reserve_hd1
Line 123... Line 123...
123
 
123
 
Line 124... Line 124...
124
  reserve_ok1:
124
  reserve_ok1:
125
 
125
 
126
    push  eax
126
    push  eax
127
    mov   eax,[0x3000]
127
    mov   eax,[CURRENT_TASK]
128
    shl   eax,5
128
    shl   eax,5
129
    mov   eax,[eax+0x3000+TASKDATA.pid]
129
    mov   eax,[eax+CURRENT_TASK+TASKDATA.pid]
130
    mov   [hd1_status],eax
130
    mov   [hd1_status],eax
131
    pop   eax
131
    pop   eax
132
    sti
132
    sti
Line 182... Line 182...
182
    ret
182
    ret
183
.IDE_Channel_2:
183
.IDE_Channel_2:
184
    mov [IDE_Channel_2],0
184
    mov [IDE_Channel_2],0
185
    ret
185
    ret
186
;********************************************
186
;********************************************
187
problem_partition db 0  ; used for partitions search 
187
problem_partition db 0  ; used for partitions search
Line 188... Line 188...
188
 
188
 
Line 189... Line 189...
189
include  'part_set.inc'
189
include  'part_set.inc'
190
 
190
 
Line 223... Line 223...
223
  sfc_no_change:
223
  sfc_no_change:
224
    mov   [fat_in_cache],eax    ; save fat sector
224
    mov   [fat_in_cache],eax    ; save fat sector
225
    call  hd_read
225
    call  hd_read
226
    cmp  [hd_error],0
226
    cmp  [hd_error],0
227
    jne  sfc_error
227
    jne  sfc_error
228
    
228
 
Line 229... Line 229...
229
 
229
 
230
  sfc_in_cache:
230
  sfc_in_cache:
231
    cmp   [fs_type],16
231
    cmp   [fs_type],16
Line 630... Line 630...
630
    jmp   gdcl2
630
    jmp   gdcl2
Line 631... Line 631...
631
 
631
 
632
  gdcl1:
632
  gdcl1:
633
    call  hd_read
633
    call  hd_read
634
    cmp  [hd_error],0
634
    cmp  [hd_error],0
Line 635... Line 635...
635
    jne  gdc_error    
635
    jne  gdc_error
636
 
636
 
Line 637... Line 637...
637
    add   ebx,512               ; update pointer
637
    add   ebx,512               ; update pointer
Line 1327... Line 1327...
1327
    jz    delete_name_end       ; no
1327
    jz    delete_name_end       ; no
Line 1328... Line 1328...
1328
 
1328
 
1329
    mov   ebx,buffer
1329
    mov   ebx,buffer
1330
    call  hd_read               ; read previous sector
1330
    call  hd_read               ; read previous sector
1331
    cmp  [hd_error],0
1331
    cmp  [hd_error],0
Line 1332... Line 1332...
1332
    jne  delete_name_end    
1332
    jne  delete_name_end
Line 1333... Line 1333...
1333
 
1333
 
1334
    mov   ebx,buffer+0x1e0      ; start from last entry
1334
    mov   ebx,buffer+0x1e0      ; start from last entry
Line 1398... Line 1398...
1398
    mov   [hd1_status],0
1398
    mov   [hd1_status],0
1399
    xor   eax,eax
1399
    xor   eax,eax
1400
    ret
1400
    ret
Line 1401... Line 1401...
1401
 
1401
 
1402
  info_access_denied:
1402
  info_access_denied:
1403
    add   esp,4 
1403
    add   esp,4
1404
    xor   edx,edx
1404
    xor   edx,edx
1405
    xor   ebx,ebx
1405
    xor   ebx,ebx
1406
    xor   ecx,ecx
1406
    xor   ecx,ecx
1407
    mov   eax,ERROR_ACCESS_DENIED
1407
    mov   eax,ERROR_ACCESS_DENIED
Line 1554... Line 1554...
1554
    pop    edi
1554
    pop    edi
1555
.noaccess_2:
1555
.noaccess_2:
1556
    or    ebx, -1
1556
    or    ebx, -1
1557
    mov    eax, ERROR_ACCESS_DENIED
1557
    mov    eax, ERROR_ACCESS_DENIED
1558
    ret
1558
    ret
1559
 
1559
 
1560
.noaccess_3:
1560
.noaccess_3:
1561
    add esp,4
1561
    add esp,4
1562
.noaccess_1:
1562
.noaccess_1:
1563
    add esp,4
1563
    add esp,4
1564
.noaccess_4:
1564
.noaccess_4:
Line 1627... Line 1627...
1627
; we may read directly to given buffer
1627
; we may read directly to given buffer
1628
    push    ebx
1628
    push    ebx
1629
    mov    ebx, edx
1629
    mov    ebx, edx
1630
    call    hd_read
1630
    call    hd_read
1631
    cmp  [hd_error],0
1631
    cmp  [hd_error],0
1632
    jne  .noaccess_1    
1632
    jne  .noaccess_1
1633
    pop    ebx
1633
    pop    ebx
1634
    add    edx, 512
1634
    add    edx, 512
1635
    sub    ecx, 512
1635
    sub    ecx, 512
1636
    jmp    .skip
1636
    jmp    .skip
1637
.force_buf:
1637
.force_buf: