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
|
pop edx ecx
|
||||||
ret
|
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:
|
fat_entry_to_bdfe:
|
||||||
; convert FAT entry at edi to BDFE (block of data of folder entry) at esi, advance esi
|
; convert FAT entry at edi to BDFE (block of data of folder entry) at esi, advance esi
|
||||||
; destroys eax
|
; destroys eax
|
||||||
movzx eax, byte [edi+11]
|
|
||||||
mov [esi], eax ; attributes
|
|
||||||
mov eax, [ebp-4]
|
mov eax, [ebp-4]
|
||||||
mov [esi+4], eax ; ASCII/UNICODE name
|
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]
|
movzx eax, word [edi+14]
|
||||||
call fat_time_to_bdfe
|
call fat_time_to_bdfe
|
||||||
mov [esi+8], eax ; creation time
|
mov [esi+8], eax ; creation time
|
||||||
@@ -861,6 +890,8 @@ fat_entry_to_bdfe:
|
|||||||
mov [esi+32], eax ; file size (low dword)
|
mov [esi+32], eax ; file size (low dword)
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov [esi+36], eax ; file size (high dword)
|
mov [esi+36], eax ; file size (high dword)
|
||||||
|
test ebp, ebp
|
||||||
|
jz .ret
|
||||||
push ecx edi
|
push ecx edi
|
||||||
lea edi, [esi+40]
|
lea edi, [esi+40]
|
||||||
mov esi, ebp
|
mov esi, ebp
|
||||||
@@ -872,6 +903,7 @@ fat_entry_to_bdfe:
|
|||||||
@@:
|
@@:
|
||||||
mov esi, edi
|
mov esi, edi
|
||||||
pop edi ecx
|
pop edi ecx
|
||||||
|
.ret:
|
||||||
ret
|
ret
|
||||||
.ansi:
|
.ansi:
|
||||||
mov ecx, 264/4
|
mov ecx, 264/4
|
||||||
@@ -879,41 +911,62 @@ fat_entry_to_bdfe:
|
|||||||
mov [edi-1], al
|
mov [edi-1], al
|
||||||
jmp @b
|
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:
|
rd_find_lfn:
|
||||||
; in: esi->name
|
; in: esi->name
|
||||||
; out: CF=1 - file not found
|
; out: CF=1 - file not found
|
||||||
; else CF=0 and edi->direntry
|
; else CF=0 and edi->direntry
|
||||||
push esi ebp edi
|
push esi edi
|
||||||
sub esp, 262*2 ; allocate space for LFN
|
push ramdisk_root_first
|
||||||
mov ebp, esp ; ebp points to buffer
|
push ramdisk_root_next
|
||||||
push 0 ; for fat_get_name: read ASCII name
|
call fat_find_lfn
|
||||||
mov edi, 0x100000+512*19 ; to root dir
|
jc .notfound
|
||||||
.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
|
|
||||||
cmp byte [esi], 0
|
cmp byte [esi], 0
|
||||||
jnz .notfound
|
jnz .notfound
|
||||||
add esp, 262*2+4+4 ; CF=0
|
add esp, 12
|
||||||
pop ebp esi
|
pop esi
|
||||||
|
ret ; CF=0
|
||||||
|
.notfound:
|
||||||
|
add esp, 8
|
||||||
|
pop edi esi
|
||||||
|
stc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;----------------------------------------------------------------
|
;----------------------------------------------------------------
|
||||||
@@ -1594,4 +1647,46 @@ fs_RamdiskRewrite:
|
|||||||
loop .read_symbols
|
loop .read_symbols
|
||||||
ret
|
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}
|
; \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,
|
* 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>
|
<20> 䠩<> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><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><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>
|
* <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>.
|
(<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><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>)
|
<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>:
|
<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><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
|
* <><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
|
* <20><><EFBFBD><EFBFBD>訥 7 <20><><EFBFBD> = <20><><EFBFBD> <20>⭮<EFBFBD><E2ADAE>⥫쭮 1980
|
||||||
<EFBFBD><EFBFBD><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><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>.
|
* <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>
|
* +12 = +0xC: dword: ࠧ<><E0A0A7><EFBFBD>
|
||||||
* +16 = +0x10: dword: 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><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 = +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>筥<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> 䠩<><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).
|
<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> 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> 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> 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>. =
|
= <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>
|
* +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 = +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><>饬 <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>:
|
<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>
|
* 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>
|
* 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><><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 = +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><>饬 <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>:
|
<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>
|
* 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>,
|
* 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>
|
* +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 = +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><>饬 <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>:
|
<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>
|
* 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)
|
* 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>,
|
* <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.
|
<>쪮 ᬮ<><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> =========
|
========== <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:
|
fd_find_lfn:
|
||||||
; in: esi->name
|
; in: esi->name
|
||||||
; out: CF=1 - file not found
|
; 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 esi edi
|
||||||
push 0
|
push 0
|
||||||
push flp_root_first
|
push flp_root_first
|
||||||
@@ -1264,6 +1264,7 @@ fd_find_lfn:
|
|||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
.found:
|
.found:
|
||||||
|
mov eax, [esp+8]
|
||||||
add esp, 16 ; CF=0
|
add esp, 16 ; CF=0
|
||||||
pop esi
|
pop esi
|
||||||
ret
|
ret
|
||||||
@@ -1905,4 +1906,58 @@ fs_FloppyRewrite:
|
|||||||
pop edi ecx
|
pop edi ecx
|
||||||
jmp .ret
|
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}
|
; \end{diamond}
|
||||||
|
@@ -7,6 +7,7 @@
|
|||||||
;; Copyright 2002 Paolo Minazzi, paolo.minazzi@inwind.it ;;
|
;; Copyright 2002 Paolo Minazzi, paolo.minazzi@inwind.it ;;
|
||||||
;; ;;
|
;; ;;
|
||||||
;; See file COPYING for details ;;
|
;; See file COPYING for details ;;
|
||||||
|
;; 15.06.2006 LFN get/set file/folder info - diamond ;;
|
||||||
;; 27.05.2006 LFN create/rewrite file - diamond ;;
|
;; 27.05.2006 LFN create/rewrite file - diamond ;;
|
||||||
;; 04.05.2006 LFN read folder - diamond ;;
|
;; 04.05.2006 LFN read folder - diamond ;;
|
||||||
;; 29.04.2006 Elimination of hangup after the ;;
|
;; 29.04.2006 Elimination of hangup after the ;;
|
||||||
@@ -2512,28 +2513,28 @@ hd_read:
|
|||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov edx,[hdbase]
|
mov edx,[hdbase]
|
||||||
inc edx
|
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 edx
|
||||||
inc eax
|
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
|
inc edx
|
||||||
mov eax,[esp+4]
|
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
|
shr eax,8
|
||||||
inc edx
|
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
|
shr eax,8
|
||||||
inc edx
|
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
|
shr eax,8
|
||||||
inc edx
|
inc edx
|
||||||
and al,1+2+4+8
|
and al,1+2+4+8
|
||||||
add al,byte [hdid]
|
add al,byte [hdid]
|
||||||
add al,128+64+32
|
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
|
inc edx
|
||||||
mov al,20h
|
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
|
sti
|
||||||
|
|
||||||
call wait_for_sector_buffer
|
call wait_for_sector_buffer
|
||||||
@@ -2934,7 +2935,7 @@ read_hd_file:
|
|||||||
hd_find_lfn:
|
hd_find_lfn:
|
||||||
; in: esi->name
|
; in: esi->name
|
||||||
; out: CF=1 - file not found
|
; out: CF=1 - file not found
|
||||||
; else CF=0 and edi->direntry
|
; else CF=0 and edi->direntry, eax=sector
|
||||||
; destroys eax
|
; destroys eax
|
||||||
push esi edi
|
push esi edi
|
||||||
push 0
|
push 0
|
||||||
@@ -2964,6 +2965,15 @@ hd_find_lfn:
|
|||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
.found:
|
.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
|
add esp, 20 ; CF=0
|
||||||
pop esi
|
pop esi
|
||||||
ret
|
ret
|
||||||
@@ -3907,4 +3917,65 @@ fs_HdRewrite:
|
|||||||
popad
|
popad
|
||||||
ret
|
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}
|
; \end{diamond}
|
||||||
|
@@ -54,11 +54,12 @@ file_system_lfn:
|
|||||||
; 2 : create/rewrite file
|
; 2 : create/rewrite file
|
||||||
; 3 : write/append to file - not implemented yet
|
; 3 : write/append to file - not implemented yet
|
||||||
; 4 : set end of file - not implemented yet
|
; 4 : set end of file - not implemented yet
|
||||||
; 5 : get file attributes structure - not implemented yet
|
; 5 : get file/directory attributes structure
|
||||||
; 6 : start application - not implemented yet
|
; 6 : set file/directory attributes structure
|
||||||
; 7 : delete file - not implemented yet
|
; 7 : start application - not implemented yet
|
||||||
; 8 : create directory - not implemented yet
|
; 8 : delete file - not implemented yet
|
||||||
; 9 : rename file/directory - not implemented yet
|
; 9 : create directory - not implemented yet
|
||||||
|
; 10: rename file/directory - not implemented yet
|
||||||
|
|
||||||
add eax, std_application_base_address
|
add eax, std_application_base_address
|
||||||
; parse file name
|
; parse file name
|
||||||
@@ -311,10 +312,18 @@ fs_OnRamdisk:
|
|||||||
mov dword [esp+36], 2 ; not implemented
|
mov dword [esp+36], 2 ; not implemented
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
fs_NotImplemented:
|
||||||
|
mov eax, 2
|
||||||
|
ret
|
||||||
|
|
||||||
fs_RamdiskServices:
|
fs_RamdiskServices:
|
||||||
dd fs_RamdiskRead
|
dd fs_RamdiskRead
|
||||||
dd fs_RamdiskReadFolder
|
dd fs_RamdiskReadFolder
|
||||||
dd fs_RamdiskRewrite
|
dd fs_RamdiskRewrite
|
||||||
|
dd fs_NotImplemented
|
||||||
|
dd fs_NotImplemented
|
||||||
|
dd fs_RamdiskGetFileInfo
|
||||||
|
dd fs_RamdiskSetFileInfo
|
||||||
fs_NumRamdiskServices = ($ - fs_RamdiskServices)/4
|
fs_NumRamdiskServices = ($ - fs_RamdiskServices)/4
|
||||||
|
|
||||||
fs_OnFloppy:
|
fs_OnFloppy:
|
||||||
@@ -339,6 +348,10 @@ fs_FloppyServices:
|
|||||||
dd fs_FloppyRead
|
dd fs_FloppyRead
|
||||||
dd fs_FloppyReadFolder
|
dd fs_FloppyReadFolder
|
||||||
dd fs_FloppyRewrite
|
dd fs_FloppyRewrite
|
||||||
|
dd fs_NotImplemented
|
||||||
|
dd fs_NotImplemented
|
||||||
|
dd fs_FloppyGetFileInfo
|
||||||
|
dd fs_FloppySetFileInfo
|
||||||
fs_NumFloppyServices = ($ - fs_FloppyServices)/4
|
fs_NumFloppyServices = ($ - fs_FloppyServices)/4
|
||||||
|
|
||||||
fs_OnHd0:
|
fs_OnHd0:
|
||||||
@@ -401,6 +414,10 @@ fs_HdServices:
|
|||||||
dd fs_HdRead
|
dd fs_HdRead
|
||||||
dd fs_HdReadFolder
|
dd fs_HdReadFolder
|
||||||
dd fs_HdRewrite
|
dd fs_HdRewrite
|
||||||
|
dd fs_NotImplemented
|
||||||
|
dd fs_NotImplemented
|
||||||
|
dd fs_HdGetFileInfo
|
||||||
|
dd fs_HdSetFileInfo
|
||||||
fs_NumHdServices = ($ - fs_HdServices)/4
|
fs_NumHdServices = ($ - fs_HdServices)/4
|
||||||
|
|
||||||
fs_HasRamdisk:
|
fs_HasRamdisk:
|
||||||
|
Reference in New Issue
Block a user