Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1114 → Rev 1115

/programs/develop/fasm/trunk/formats.inc
481,11 → 481,11
and eax,1111b
sub ecx,eax
mov edx,edi
xor al,al
xor eax,eax
rep stos byte [edi]
mov dword [org_origin],edi
mov dword [org_origin+4],0
mov [org_registers],0
mov dword [org_origin+4],eax
mov [org_registers],eax
mov [org_start],edi
mov eax,edx
call undefined_data
668,14 → 668,14
mov eax,40h+default_stub_end-default_stub
mov cx,100h+default_stub_end-default_stub
mov word [edx],'MZ'
mov word [edx+4],1
mov byte [edx+4],1
mov word [edx+2],ax
mov word [edx+8],4
mov word [edx+0Ah],10h
mov byte [edx+8],4
mov byte [edx+0Ah],10h
mov word [edx+0Ch],0FFFFh
mov word [edx+10h],cx
mov word [edx+3Ch],ax
mov word [edx+18h],40h
mov byte [edx+18h],40h
lea edi,[edx+40h]
mov esi,default_stub
mov ecx,default_stub_end-default_stub
804,7 → 804,7
mov [esi+0Ah],ax
binary_heap_ok:
mov word [esi],'MZ'
mov word [esi+8],4
mov byte [esi+8],4
mov ax,0FFFFh
mov [esi+0Ch],ax
dec ax
813,7 → 813,7
mov [esi+0Eh],ax
mov [esi+16h],ax
mov word [esi+14h],100h
mov word [esi+18h],40h
mov byte [esi+18h],40h
mov eax,[display_buffer]
sub eax,ecx
cmp edi,eax
977,9 → 977,9
mov word [edx],'PE' ; signature
mov ax,[machine]
mov word [edx+4],ax
mov dword [edx+38h],1000h ; section alignment
mov dword [edx+3Ch],200h ; file alignment
mov word [edx+40h],1 ; OS version
mov byte [edx+38h+1],10h ; section alignment
mov byte [edx+3Ch+1],2 ; file alignment
mov byte [edx+40h],1 ; OS version
mov eax,[subsystem_version]
mov [edx+48h],eax
mov ax,[subsystem]
993,28 → 993,26
mov word [edx+1Ah],VERSION_MAJOR + VERSION_MINOR shl 8
test [format_flags],8
jnz init_peplus_specific
mov dword [edx+14h],0E0h ; size of optional header
mov byte [edx+14h],0E0h ; size of optional header
mov dword [edx+16h],10B010Eh; flags and magic value
mov eax,[image_base]
mov dword [edx+34h],eax
mov dword [edx+60h],1000h ; stack reserve
mov dword [edx+64h],1000h ; stack commit
mov dword [edx+68h],10000h ; heap reserve
mov dword [edx+6Ch],0 ; heap commit
mov dword [edx+74h],16 ; number of directories
mov [edx+34h],eax
mov byte [edx+60h+1],10h ; stack reserve
mov byte [edx+64h+1],10h ; stack commit
mov byte [edx+68h+2],1 ; heap reserve
mov byte [edx+74h],16 ; number of directories
jmp pe_header_ok
init_peplus_specific:
mov dword [edx+14h],0F0h ; size of optional header
mov byte [edx+14h],0F0h ; size of optional header
mov dword [edx+16h],20B002Eh; flags and magic value
mov eax,[image_base]
mov dword [edx+30h],eax
mov [edx+30h],eax
mov eax,[image_base_high]
mov dword [edx+34h],eax
mov dword [edx+60h],1000h ; stack reserve
mov dword [edx+68h],1000h ; stack commit
mov dword [edx+70h],10000h ; heap reserve
mov dword [edx+78h],0 ; heap commit
mov dword [edx+84h],16 ; number of directories
mov [edx+34h],eax
mov byte [edx+60h+1],10h ; stack reserve
mov byte [edx+68h+1],10h ; stack commit
mov byte [edx+70h+2],1 ; heap reserve
mov byte [edx+84h],16 ; number of directories
pe_header_ok:
bsf ecx,[edx+3Ch]
imul ebx,[number_of_sections],28h
1089,11 → 1087,11
mov [org_start],edi
bt [format_flags],8
jnc dll_flag_ok
or dword [edx+16h],2000h
or byte [edx+16h+1],20h
dll_flag_ok:
bt [format_flags],9
jnc wdm_flag_ok
or word [edx+5Eh],2000h
or byte [edx+5Eh+1],20h
wdm_flag_ok:
jmp format_defined
pe_section:
1234,7 → 1232,6
mov eax,[code_start]
sub eax,[stub_size]
sub [ebx+14h],eax
 
mov ecx,[ebx+10h]
test byte [ebx+24h],20h
jz pe_code_sum_ok
1254,7 → 1251,6
mov eax,[ebx+0Ch]
mov [edx+30h],eax
pe_data_sum_ok:
 
mov eax,[ebx+8]
or eax,eax
jz udata_ok
1263,7 → 1259,6
or byte [ebx+24h],80h
add [edx+24h],ecx
udata_ok:
 
mov ecx,[edx+38h]
dec ecx
add eax,ecx
2261,10 → 2256,11
flat_section_flags_ok:
mov dword [ebx+14h],eax
mov [current_section],ebx
mov [number_of_sections],0
xor eax,eax
mov [number_of_sections],eax
mov dword [org_origin],edi
mov dword [org_origin+4],0
mov [org_registers],0
mov dword [org_origin+4],eax
mov [org_registers],eax
mov [org_start],edi
mov [org_symbol],ebx
mov [labels_type],2
2287,8 → 2283,8
mov [ebx],al
mov [ebx+8],edi
mov dword [org_origin],edi
mov dword [org_origin+4],0
mov [org_registers],0
mov dword [org_origin+4],eax
mov [org_registers],eax
mov [org_start],edi
mov [org_symbol],ebx
mov [labels_type],2
2935,8 → 2931,8
mov [ebx],al
mov [ebx+8],edi
mov dword [org_origin],edi
mov dword [org_origin+4],0
mov [org_registers],0
mov dword [org_origin+4],eax
mov [org_registers],eax
mov [org_start],edi
mov [org_symbol],ebx
test [format_flags],8
3977,7 → 3973,7
 
dump_symbols:
mov ebx,[code_start]
mov dword [ebx],'fas'+27 shl 24
mov dword [ebx],'fas'+1Ah shl 24
mov dword [ebx+4],VERSION_MAJOR + VERSION_MINOR shl 8 + 38h shl 16
add ebx,38h
mov edi,ebx