File system addition: get/set file/folder attributes
git-svn-id: svn://kolibrios.org@86 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -834,13 +834,42 @@ fat_date_to_bdfe:
|
||||
pop edx ecx
|
||||
ret
|
||||
|
||||
bdfe_to_fat_time:
|
||||
push edx
|
||||
mov edx, eax
|
||||
shr eax, 16
|
||||
and dh, 0x3F
|
||||
shl eax, 6
|
||||
or al, dh
|
||||
shr dl, 1
|
||||
and dl, 0x1F
|
||||
shl eax, 5
|
||||
or al, dl
|
||||
pop edx
|
||||
ret
|
||||
|
||||
bdfe_to_fat_date:
|
||||
push edx
|
||||
mov edx, eax
|
||||
shr eax, 16
|
||||
sub ax, 1980
|
||||
and dh, 0xF
|
||||
shl eax, 4
|
||||
or al, dh
|
||||
and dl, 0x1F
|
||||
shl eax, 5
|
||||
or al, dl
|
||||
pop edx
|
||||
ret
|
||||
|
||||
fat_entry_to_bdfe:
|
||||
; convert FAT entry at edi to BDFE (block of data of folder entry) at esi, advance esi
|
||||
; destroys eax
|
||||
movzx eax, byte [edi+11]
|
||||
mov [esi], eax ; attributes
|
||||
mov eax, [ebp-4]
|
||||
mov [esi+4], eax ; ASCII/UNICODE name
|
||||
fat_entry_to_bdfe2:
|
||||
movzx eax, byte [edi+11]
|
||||
mov [esi], eax ; attributes
|
||||
movzx eax, word [edi+14]
|
||||
call fat_time_to_bdfe
|
||||
mov [esi+8], eax ; creation time
|
||||
@@ -861,6 +890,8 @@ fat_entry_to_bdfe:
|
||||
mov [esi+32], eax ; file size (low dword)
|
||||
xor eax, eax
|
||||
mov [esi+36], eax ; file size (high dword)
|
||||
test ebp, ebp
|
||||
jz .ret
|
||||
push ecx edi
|
||||
lea edi, [esi+40]
|
||||
mov esi, ebp
|
||||
@@ -872,6 +903,7 @@ fat_entry_to_bdfe:
|
||||
@@:
|
||||
mov esi, edi
|
||||
pop edi ecx
|
||||
.ret:
|
||||
ret
|
||||
.ansi:
|
||||
mov ecx, 264/4
|
||||
@@ -879,41 +911,62 @@ fat_entry_to_bdfe:
|
||||
mov [edi-1], al
|
||||
jmp @b
|
||||
|
||||
bdfe_to_fat_entry:
|
||||
; convert BDFE at edx to FAT entry at edi
|
||||
; destroys eax
|
||||
; attributes byte
|
||||
test byte [edi+11], 8 ; volume label?
|
||||
jnz @f
|
||||
mov al, [edx]
|
||||
and al, 0x27
|
||||
and byte [edi+11], 0x10
|
||||
or byte [edi+11], al
|
||||
@@:
|
||||
mov eax, [edx+8]
|
||||
call bdfe_to_fat_time
|
||||
mov [edi+14], ax ; creation time
|
||||
mov eax, [edx+12]
|
||||
call bdfe_to_fat_date
|
||||
mov [edi+16], ax ; creation date
|
||||
mov eax, [edx+20]
|
||||
call bdfe_to_fat_date
|
||||
mov [edi+18], ax ; last access date
|
||||
mov eax, [edx+24]
|
||||
call bdfe_to_fat_time
|
||||
mov [edi+22], ax ; last write time
|
||||
mov eax, [edx+28]
|
||||
call bdfe_to_fat_date
|
||||
mov [edi+24], ax ; last write date
|
||||
ret
|
||||
|
||||
ramdisk_root_first:
|
||||
mov edi, 0x100000+512*19
|
||||
clc
|
||||
ret
|
||||
ramdisk_root_next:
|
||||
add edi, 0x20
|
||||
cmp edi, 0x100000+512*33
|
||||
cmc
|
||||
ret
|
||||
|
||||
rd_find_lfn:
|
||||
; in: esi->name
|
||||
; out: CF=1 - file not found
|
||||
; else CF=0 and edi->direntry
|
||||
push esi ebp edi
|
||||
sub esp, 262*2 ; allocate space for LFN
|
||||
mov ebp, esp ; ebp points to buffer
|
||||
push 0 ; for fat_get_name: read ASCII name
|
||||
mov edi, 0x100000+512*19 ; to root dir
|
||||
.l1:
|
||||
call fat_get_name
|
||||
jc .l2
|
||||
call fat_compare_name
|
||||
jz .found
|
||||
.l2:
|
||||
add edi, 0x20
|
||||
cmp edi, 0x100000+512*33
|
||||
jb .l1
|
||||
.notfound:
|
||||
add esp, 262*2+4
|
||||
pop edi ebp esi
|
||||
stc
|
||||
ret
|
||||
.found:
|
||||
; found
|
||||
; if this is LFN entry, advance to true entry
|
||||
cmp byte [edi+11], 0xF
|
||||
jnz @f
|
||||
add edi, 0x20
|
||||
@@:
|
||||
; folders are not supported
|
||||
push esi edi
|
||||
push ramdisk_root_first
|
||||
push ramdisk_root_next
|
||||
call fat_find_lfn
|
||||
jc .notfound
|
||||
cmp byte [esi], 0
|
||||
jnz .notfound
|
||||
add esp, 262*2+4+4 ; CF=0
|
||||
pop ebp esi
|
||||
add esp, 12
|
||||
pop esi
|
||||
ret ; CF=0
|
||||
.notfound:
|
||||
add esp, 8
|
||||
pop edi esi
|
||||
stc
|
||||
ret
|
||||
|
||||
;----------------------------------------------------------------
|
||||
@@ -1594,4 +1647,46 @@ fs_RamdiskRewrite:
|
||||
loop .read_symbols
|
||||
ret
|
||||
|
||||
fs_RamdiskGetFileInfo:
|
||||
cmp byte [esi], 0
|
||||
jnz @f
|
||||
mov eax, 2 ; unsupported
|
||||
ret
|
||||
@@:
|
||||
push edi
|
||||
call rd_find_lfn
|
||||
fs_GetFileInfo_finish:
|
||||
jnc @f
|
||||
pop edi
|
||||
mov eax, ERROR_FILE_NOT_FOUND
|
||||
ret
|
||||
@@:
|
||||
push esi ebp
|
||||
xor ebp, ebp
|
||||
mov esi, edx
|
||||
and dword [esi+4], 0
|
||||
call fat_entry_to_bdfe2
|
||||
pop ebp esi
|
||||
pop edi
|
||||
xor eax, eax
|
||||
ret
|
||||
|
||||
fs_RamdiskSetFileInfo:
|
||||
cmp byte [esi], 0
|
||||
jnz @f
|
||||
mov eax, 2 ; unsupported
|
||||
ret
|
||||
@@:
|
||||
push edi
|
||||
call rd_find_lfn
|
||||
jnc @f
|
||||
pop edi
|
||||
mov eax, ERROR_FILE_NOT_FOUND
|
||||
ret
|
||||
@@:
|
||||
call bdfe_to_fat_entry
|
||||
pop edi
|
||||
xor eax, eax
|
||||
ret
|
||||
|
||||
; \end{diamond}
|
||||
|
@@ -3131,6 +3131,7 @@ dword-
|
||||
* ebx = ࠧ<><E0A0A7><EFBFBD> 䠩<><E4A0A9> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> 0 <20><><EFBFBD> HD, -1 <20><><EFBFBD> RD,
|
||||
<20> 䠩<> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||
* <20><><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD>५<EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 5 <20>㭪樨 70.
|
||||
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>᪥<EFBFBD>.
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪<><E2A0AA> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
(<28><> 楯<>窥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> FAT), <20><> <20><> <><E1ABA5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
@@ -3167,6 +3168,7 @@ dword-
|
||||
<20><><EFBFBD> <20><>⮬<EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AAAE> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> backup-<2D><>娢<EFBFBD><E5A8A2>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD> <20><><EFBFBD>筮 <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20> Kolibri, <20>ࠢ<EFBFBD><E0A0A2>)
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||
* <20><><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD>५<EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 5 <20>㭪樨 70.
|
||||
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>᪥<EFBFBD>.
|
||||
|
||||
======================================================================
|
||||
@@ -3198,6 +3200,7 @@ dword-
|
||||
* <><E1ABA5><EFBFBD>騥 4 <20><><EFBFBD><EFBFBD> = <20><><EFBFBD><EFBFBD><EFBFBD>, 1<=m<=12
|
||||
* <20><><EFBFBD><EFBFBD>訥 7 <20><><EFBFBD> = <20><><EFBFBD> <20>⭮<EFBFBD><E2ADAE>⥫쭮 1980
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||
* <20><><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD>५<EFBFBD>, <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 5 <20>㭪樨 70.
|
||||
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>᪥<EFBFBD>.
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>/<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⠥<EFBFBD><E2A0A5><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD>樥<EFBFBD>.
|
||||
|
||||
@@ -4052,6 +4055,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* +12 = +0xC: dword: ࠧ<><E0A0A7><EFBFBD>
|
||||
* +16 = +0x10: dword: 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* +20 = +0x14: n db: ASCIIZ-<2D><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
<20><><EFBFBD>
|
||||
* +20 = +0x14: db 0
|
||||
* +21 = +0x15: dd 㪠<><E3AAA0>⥫<EFBFBD> <20><> ASCIIZ-<2D><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
<EFBFBD><EFBFBD><EFBFBD>筥<EFBFBD><EFBFBD><EFBFBD> - <20> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD>樨 <20><> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨⥫쭮 <20> ॣ<><E0A5A3><EFBFBD><EFBFBD><EFBFBD> <20>㪢. <20><><EFBFBD>᪨<EFBFBD> <20>㪢<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᠭ<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> cp866 (DOS).
|
||||
@@ -4076,6 +4082,8 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 0 - <20>⥭<EFBFBD><E2A5AD> 䠩<><E4A0A9>
|
||||
* <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 1 - <20>⥭<EFBFBD><E2A5AD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 2 - ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD>/<2F><>१<EFBFBD><E0A5A7><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
* <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 5 - <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><>ਡ<EFBFBD>⮢ 䠩<><E4A0A9>/<2F><><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 6 - <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><>ਡ<EFBFBD>⮢ 䠩<><E4A0A9>/<2F><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
======================================================================
|
||||
= <20>㭪<EFBFBD><E3ADAA><EFBFBD> 70, <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 0 - <20>⥭<EFBFBD><E2A5AD> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD>প<EFBFBD><E0A6AA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. =
|
||||
@@ -4091,6 +4099,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* +16 = +0x10: dword: 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>, <20>㤠 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* +20 = +0x14: ASCIIZ-<2D><><EFBFBD> 䠩<><E4A0A9>, <20>ࠢ<EFBFBD><E0A0A2><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD> <20>
|
||||
<20><>饬 <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD>
|
||||
<20><><EFBFBD>
|
||||
* +20 = +0x14: db 0
|
||||
* +21 = +0x15: dd 㪠<><E3AAA0>⥫<EFBFBD> <20><> ASCIIZ-<2D><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||
* eax = 0 - <20>ᯥ譮, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> 䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>
|
||||
* ebx = <20><> <20><><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
@@ -4121,6 +4132,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32 + [+12]*560 <20><><EFBFBD><EFBFBD>
|
||||
* +20 = +0x14: ASCIIZ-<2D><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20>ࠢ<EFBFBD><E0A0A2><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD> <20>
|
||||
<20><>饬 <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD>
|
||||
<20><><EFBFBD>
|
||||
* +20 = +0x14: db 0
|
||||
* +21 = +0x15: dd 㪠<><E3AAA0>⥫<EFBFBD> <20><> ASCIIZ-<2D><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||
* eax = 0 - <20>ᯥ譮, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> 䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>
|
||||
* ebx = <20><> 䠩<><E4A0A9><EFBFBD>, <20><><EFBFBD><EFBFBD>ଠ<EFBFBD><E0ACA0><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뫠 <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>,
|
||||
@@ -4213,6 +4227,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* +16 = +0x10: dword: 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* +20 = +0x14: ASCIIZ-<2D><><EFBFBD> 䠩<><E4A0A9>, <20>ࠢ<EFBFBD><E0A0A2><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD> <20>
|
||||
<20><>饬 <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD>
|
||||
<20><><EFBFBD>
|
||||
* +20 = +0x14: db 0
|
||||
* +21 = +0x15: dd 㪠<><E3AAA0>⥫<EFBFBD> <20><> ASCIIZ-<2D><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||
* eax = 0 - <20>ᯥ譮, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> 䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>
|
||||
* ebx = <20><> <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD><E1A0AD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 0)
|
||||
@@ -4222,6 +4239,64 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* <20> <><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>᪥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮, <20><> <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
<>쪮 ᬮ<><E1ACAE><EFBFBD>, <20><> 祣<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> 8.
|
||||
|
||||
======================================================================
|
||||
=== <20>㭪<EFBFBD><E3ADAA><EFBFBD> 70, <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 5 - <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD>ଠ樨 <20> 䠩<><E4A0A9>/<2F><><EFBFBD><EFBFBD><EFBFBD>. ===
|
||||
======================================================================
|
||||
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
* eax = 70 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
|
||||
* ebx = 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ଠ樮<E0ACA0><E6A8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD>ଠ<EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樮<E0ACA0><E6A8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
* +0: dword: 5 = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
|
||||
* +4: dword: 0 (<28><>१<EFBFBD>ࢨ<E0A2A8><E0AEA2><EFBFBD>)
|
||||
* +8: dword: 0 (<28><>१<EFBFBD>ࢨ<E0A2A8><E0AEA2><EFBFBD>)
|
||||
* +12 = +0xC: dword: 0 (<28><>१<EFBFBD>ࢨ<E0A2A8><E0AEA2><EFBFBD>)
|
||||
* +16 = +0x10: dword: 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>, <20>㤠 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ᠭ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(40 <20><><EFBFBD><EFBFBD>)
|
||||
* +20 = +0x14: ASCIIZ-<2D><><EFBFBD> 䠩<><E4A0A9>, <20>ࠢ<EFBFBD><E0A0A2><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD> <20>
|
||||
<20><>饬 <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD>
|
||||
<20><><EFBFBD>
|
||||
* +20 = +0x14: db 0
|
||||
* +21 = +0x15: dd 㪠<><E3AAA0>⥫<EFBFBD> <20><> ASCIIZ-<2D><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||
* eax = 0 - <20>ᯥ譮, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> 䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>
|
||||
* ebx ࠧ<><E0A0A7>蠥<EFBFBD><E8A0A5><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ଠ<EFBFBD><EFBFBD><EFBFBD> <20> 䠩<><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><E9A0A5><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> <20><><EFBFBD><EFBFBD>
|
||||
(<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>室<EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD>), 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㭪樨 1, <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
(<28><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 40 = 0x28 <20><><EFBFBD><EFBFBD>).
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㠫<EFBFBD><E3A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⨯<> /, /rd <20>
|
||||
<20><><EFBFBD><E0ADA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⨯<> /rd/1.
|
||||
|
||||
======================================================================
|
||||
===== <20>㭪<EFBFBD><E3ADAA><EFBFBD> 70, <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 6 - <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><>ਡ<EFBFBD>⮢ 䠩<><E4A0A9>/<2F><><EFBFBD><EFBFBD><EFBFBD>. ====
|
||||
======================================================================
|
||||
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
* eax = 70 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
|
||||
* ebx = 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ଠ樮<E0ACA0><E6A8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD>ଠ<EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樮<E0ACA0><E6A8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
* +0: dword: 6 = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
|
||||
* +4: dword: 0 (<28><>१<EFBFBD>ࢨ<E0A2A8><E0AEA2><EFBFBD>)
|
||||
* +8: dword: 0 (<28><>१<EFBFBD>ࢨ<E0A2A8><E0AEA2><EFBFBD>)
|
||||
* +12 = +0xC: dword: 0 (<28><>१<EFBFBD>ࢨ<E0A2A8><E0AEA2><EFBFBD>)
|
||||
* +16 = +0x10: dword: 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ਡ<EFBFBD>⠬<EFBFBD> (32 <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
* +20 = +0x14: ASCIIZ-<2D><><EFBFBD> 䠩<><E4A0A9>, <20>ࠢ<EFBFBD><E0A0A2><EFBFBD> <20><>ନ<E0ACA8><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD> <20>
|
||||
<20><>饬 <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD>
|
||||
<20><><EFBFBD>
|
||||
* +20 = +0x14: db 0
|
||||
* +21 = +0x15: dd 㪠<><E3AAA0>⥫<EFBFBD> <20><> ASCIIZ-<2D><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||
* eax = 0 - <20>ᯥ譮, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> 䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>
|
||||
* ebx ࠧ<><E0A0A7>蠥<EFBFBD><E8A0A5><EFBFBD>
|
||||
<EFBFBD><EFBFBD>ਡ<EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32 <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>室<EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD>),
|
||||
<EFBFBD><EFBFBD>ଠ<EFBFBD> <20><><EFBFBD><EFBFBD>ண<EFBFBD> 㪠<><E3AAA0><EFBFBD> <20> <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD> <20><><EFBFBD><EFBFBD>㭪樨 1
|
||||
(<28><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ࠧ<><E0A0A7><EFBFBD><EFBFBD> 䠩<><E4A0A9>). <20><>ਡ<EFBFBD><E0A8A1> 䠩<>/<2F><><EFBFBD><EFBFBD><EFBFBD>/<2F><>⪠ ⮬<>
|
||||
(<28><><EFBFBD><EFBFBD> 3,4 <20> dword'<27> +0) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> +4 (<28><>ଠ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㠫<EFBFBD><E3A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⨯<> /, /rd <20>
|
||||
<20><><EFBFBD><E0ADA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ⨯<> /rd/1.
|
||||
|
||||
======================================================================
|
||||
========== <20>㭪<EFBFBD><E3ADAA><EFBFBD> -1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>믮<EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⮪<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =========
|
||||
======================================================================
|
||||
|
@@ -1241,7 +1241,7 @@ flp_notroot_extend_dir:
|
||||
fd_find_lfn:
|
||||
; in: esi->name
|
||||
; out: CF=1 - file not found
|
||||
; else CF=0 and edi->direntry
|
||||
; else CF=0 and edi->direntry, eax=directory cluster (0 for root)
|
||||
push esi edi
|
||||
push 0
|
||||
push flp_root_first
|
||||
@@ -1264,6 +1264,7 @@ fd_find_lfn:
|
||||
stc
|
||||
ret
|
||||
.found:
|
||||
mov eax, [esp+8]
|
||||
add esp, 16 ; CF=0
|
||||
pop esi
|
||||
ret
|
||||
@@ -1905,4 +1906,58 @@ fs_FloppyRewrite:
|
||||
pop edi ecx
|
||||
jmp .ret
|
||||
|
||||
fs_FloppyGetFileInfo:
|
||||
call read_flp_fat
|
||||
cmp [FDC_Status], 0
|
||||
jnz ret11
|
||||
cmp byte [esi], 0
|
||||
jnz @f
|
||||
mov eax, 2 ; unsupported
|
||||
ret
|
||||
@@:
|
||||
push edi
|
||||
call fd_find_lfn
|
||||
jmp fs_GetFileInfo_finish
|
||||
|
||||
ret11:
|
||||
mov eax, 11
|
||||
ret
|
||||
|
||||
fs_FloppySetFileInfo:
|
||||
call read_flp_fat
|
||||
cmp [FDC_Status], 0
|
||||
jnz ret11
|
||||
cmp byte [esi], 0
|
||||
jnz @f
|
||||
mov eax, 2 ; unsupported
|
||||
ret
|
||||
@@:
|
||||
push edi
|
||||
call fd_find_lfn
|
||||
jnc @f
|
||||
pop edi
|
||||
mov eax, ERROR_FILE_NOT_FOUND
|
||||
ret
|
||||
@@:
|
||||
push eax
|
||||
call bdfe_to_fat_entry
|
||||
pop eax
|
||||
test eax, eax
|
||||
jz .root
|
||||
add eax, 31
|
||||
pusha
|
||||
call save_chs_sector
|
||||
popa
|
||||
jmp .cmn
|
||||
.root:
|
||||
call save_flp_root
|
||||
.cmn:
|
||||
pop edi
|
||||
xor eax, eax
|
||||
cmp [FDC_Status], 0
|
||||
jz @f
|
||||
mov al, 11
|
||||
@@:
|
||||
ret
|
||||
|
||||
; \end{diamond}
|
||||
|
@@ -7,6 +7,7 @@
|
||||
;; Copyright 2002 Paolo Minazzi, paolo.minazzi@inwind.it ;;
|
||||
;; ;;
|
||||
;; See file COPYING for details ;;
|
||||
;; 15.06.2006 LFN get/set file/folder info - diamond ;;
|
||||
;; 27.05.2006 LFN create/rewrite file - diamond ;;
|
||||
;; 04.05.2006 LFN read folder - diamond ;;
|
||||
;; 29.04.2006 Elimination of hangup after the ;;
|
||||
@@ -2512,28 +2513,28 @@ hd_read:
|
||||
xor eax,eax
|
||||
mov edx,[hdbase]
|
||||
inc edx
|
||||
out dx,al ; ATAFeatures <20><><EFBFBD>𡢠 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
out dx,al ; ATAFeatures ॣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22>ᮡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥩"
|
||||
inc edx
|
||||
inc eax
|
||||
out dx,al ; ATASectorCount <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
out dx,al ; ATASectorCount <20><><EFBFBD><EFBFBD>稪 ᥪ<EFBFBD><EFBFBD>
|
||||
inc edx
|
||||
mov eax,[esp+4]
|
||||
out dx,al ; ATASectorNumber <EFBFBD><EFBFBD><EFBFBD>𡢠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
out dx,al ; ATASectorNumber ॣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA><EFBFBD><EFBFBD>
|
||||
shr eax,8
|
||||
inc edx
|
||||
out dx,al ; ATACylinder <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>𭤠<EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
out dx,al ; ATACylinder <20><><EFBFBD><EFBFBD><EFBFBD> 樫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>訩 <20><><EFBFBD><EFBFBD>)
|
||||
shr eax,8
|
||||
inc edx
|
||||
out dx,al ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>𭤠<EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
out dx,al ; <20><><EFBFBD><EFBFBD><EFBFBD> 樫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>訩 <20><><EFBFBD><EFBFBD>)
|
||||
shr eax,8
|
||||
inc edx
|
||||
and al,1+2+4+8
|
||||
add al,byte [hdid]
|
||||
add al,128+64+32
|
||||
out dx,al ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD> <20>𡪠
|
||||
out dx,al ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>᪠
|
||||
inc edx
|
||||
mov al,20h
|
||||
out dx,al ; ATACommand <20><><EFBFBD>𡢠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
out dx,al ; ATACommand ॣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
sti
|
||||
|
||||
call wait_for_sector_buffer
|
||||
@@ -2934,7 +2935,7 @@ read_hd_file:
|
||||
hd_find_lfn:
|
||||
; in: esi->name
|
||||
; out: CF=1 - file not found
|
||||
; else CF=0 and edi->direntry
|
||||
; else CF=0 and edi->direntry, eax=sector
|
||||
; destroys eax
|
||||
push esi edi
|
||||
push 0
|
||||
@@ -2964,6 +2965,15 @@ hd_find_lfn:
|
||||
stc
|
||||
ret
|
||||
.found:
|
||||
lea eax, [esp+8]
|
||||
cmp dword [eax], 0
|
||||
jz .root
|
||||
call fat_get_sector
|
||||
jmp .cmn
|
||||
.root:
|
||||
mov eax, [eax+4]
|
||||
add eax, [ROOT_START]
|
||||
.cmn:
|
||||
add esp, 20 ; CF=0
|
||||
pop esi
|
||||
ret
|
||||
@@ -3907,4 +3917,65 @@ fs_HdRewrite:
|
||||
popad
|
||||
ret
|
||||
|
||||
fs_HdGetFileInfo:
|
||||
cmp [fat_type], 0
|
||||
jnz @f
|
||||
mov eax, ERROR_UNKNOWN_FS
|
||||
ret
|
||||
@@:
|
||||
cmp byte [esi], 0
|
||||
jnz @f
|
||||
mov eax, 2
|
||||
ret
|
||||
@@:
|
||||
push edi
|
||||
call hd_find_lfn
|
||||
pushfd
|
||||
cmp [hd_error], 0
|
||||
jz @f
|
||||
popfd
|
||||
pop edi
|
||||
mov eax, 11
|
||||
ret
|
||||
@@:
|
||||
popfd
|
||||
jmp fs_GetFileInfo_finish
|
||||
|
||||
fs_HdSetFileInfo:
|
||||
cmp [fat_type], 0
|
||||
jnz @f
|
||||
mov eax, ERROR_UNKNOWN_FS
|
||||
ret
|
||||
@@:
|
||||
cmp byte [esi], 0
|
||||
jnz @f
|
||||
mov eax, 2
|
||||
ret
|
||||
@@:
|
||||
push edi
|
||||
call hd_find_lfn
|
||||
pushfd
|
||||
cmp [hd_error], 0
|
||||
jz @f
|
||||
popfd
|
||||
pop edi
|
||||
mov eax, 11
|
||||
ret
|
||||
@@:
|
||||
popfd
|
||||
jnc @f
|
||||
pop edi
|
||||
mov eax, ERROR_FILE_NOT_FOUND
|
||||
ret
|
||||
@@:
|
||||
push eax
|
||||
call bdfe_to_fat_entry
|
||||
pop eax
|
||||
mov ebx, buffer
|
||||
call hd_write
|
||||
call update_disk
|
||||
pop edi
|
||||
xor eax, eax
|
||||
ret
|
||||
|
||||
; \end{diamond}
|
||||
|
@@ -54,11 +54,12 @@ file_system_lfn:
|
||||
; 2 : create/rewrite file
|
||||
; 3 : write/append to file - not implemented yet
|
||||
; 4 : set end of file - not implemented yet
|
||||
; 5 : get file attributes structure - not implemented yet
|
||||
; 6 : start application - not implemented yet
|
||||
; 7 : delete file - not implemented yet
|
||||
; 8 : create directory - not implemented yet
|
||||
; 9 : rename file/directory - not implemented yet
|
||||
; 5 : get file/directory attributes structure
|
||||
; 6 : set file/directory attributes structure
|
||||
; 7 : start application - not implemented yet
|
||||
; 8 : delete file - not implemented yet
|
||||
; 9 : create directory - not implemented yet
|
||||
; 10: rename file/directory - not implemented yet
|
||||
|
||||
add eax, std_application_base_address
|
||||
; parse file name
|
||||
@@ -311,10 +312,18 @@ fs_OnRamdisk:
|
||||
mov dword [esp+36], 2 ; not implemented
|
||||
ret
|
||||
|
||||
fs_NotImplemented:
|
||||
mov eax, 2
|
||||
ret
|
||||
|
||||
fs_RamdiskServices:
|
||||
dd fs_RamdiskRead
|
||||
dd fs_RamdiskReadFolder
|
||||
dd fs_RamdiskRewrite
|
||||
dd fs_NotImplemented
|
||||
dd fs_NotImplemented
|
||||
dd fs_RamdiskGetFileInfo
|
||||
dd fs_RamdiskSetFileInfo
|
||||
fs_NumRamdiskServices = ($ - fs_RamdiskServices)/4
|
||||
|
||||
fs_OnFloppy:
|
||||
@@ -339,6 +348,10 @@ fs_FloppyServices:
|
||||
dd fs_FloppyRead
|
||||
dd fs_FloppyReadFolder
|
||||
dd fs_FloppyRewrite
|
||||
dd fs_NotImplemented
|
||||
dd fs_NotImplemented
|
||||
dd fs_FloppyGetFileInfo
|
||||
dd fs_FloppySetFileInfo
|
||||
fs_NumFloppyServices = ($ - fs_FloppyServices)/4
|
||||
|
||||
fs_OnHd0:
|
||||
@@ -401,6 +414,10 @@ fs_HdServices:
|
||||
dd fs_HdRead
|
||||
dd fs_HdReadFolder
|
||||
dd fs_HdRewrite
|
||||
dd fs_NotImplemented
|
||||
dd fs_NotImplemented
|
||||
dd fs_HdGetFileInfo
|
||||
dd fs_HdSetFileInfo
|
||||
fs_NumHdServices = ($ - fs_HdServices)/4
|
||||
|
||||
fs_HasRamdisk:
|
||||
|
Reference in New Issue
Block a user