Subversion Repositories Kolibri OS

Rev

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

Rev 418 Rev 419
Line 204... Line 204...
204
           and edi, not 4095
204
           and edi, not 4095
205
           sub ecx, edi
205
           sub ecx, edi
206
           jna @F
206
           jna @F
Line 207... Line 207...
207
 
207
 
208
           xor eax, eax
208
           xor eax, eax
209
           add edi, new_app_base
209
      ;     add edi, new_app_base
210
           cld
210
           cld
211
           rep stosb
211
           rep stosb
212
@@:
212
@@:
Line 731... Line 731...
731
           mov ecx, 0x8000
731
           mov ecx, 0x8000
732
@@:
732
@@:
733
           mov eax, [slot]
733
           mov eax, [slot]
734
           shl  eax,8
734
           shl  eax,8
735
           mov ebx, [offset]
735
           mov ebx, [offset]
736
           add ebx, new_app_base
736
     ;      add ebx, new_app_base
737
           push ecx
737
           push ecx
738
           stdcall map_memEx, [proc_mem_map],\
738
           stdcall map_memEx, [proc_mem_map],\
739
                              [SLOT_BASE+eax+0xB8],\
739
                              [SLOT_BASE+eax+0xB8],\
740
                              ebx, ecx
740
                              ebx, ecx
741
           pop ecx
741
           pop ecx
Line 797... Line 797...
797
           mov ecx, 0x8000
797
           mov ecx, 0x8000
798
@@:
798
@@:
799
           mov eax, [slot]
799
           mov eax, [slot]
800
           shl  eax,8
800
           shl  eax,8
801
           mov ebx, [offset]
801
           mov ebx, [offset]
802
           add ebx, new_app_base
802
      ;     add ebx, new_app_base
803
           push ecx
803
           push ecx
804
           stdcall map_memEx, [proc_mem_map],\
804
           stdcall map_memEx, [proc_mem_map],\
805
                              [SLOT_BASE+eax+0xB8],\
805
                              [SLOT_BASE+eax+0xB8],\
806
                              ebx, ecx
806
                              ebx, ecx
807
           pop ecx
807
           pop ecx
Line 877... Line 877...
877
           xor eax, eax
877
           xor eax, eax
878
           cld
878
           cld
879
           rep    stosd               ;clean extended information about new thread
879
           rep    stosd               ;clean extended information about new thread
880
           mov    esi,ebx
880
           mov    esi,ebx
881
           mov    edi,edx
881
           mov    edi,edx
-
 
882
           mov byte [edi], '@'
-
 
883
           inc    edi
882
           mov    ecx,11
884
           mov    ecx,11
883
           rep    movsb               ;copy process name
885
           rep    movsb               ;copy process name
Line 884... Line 886...
884
 
886
 
885
           mov eax,[ebx+APPDATA.heap_base]
887
           mov eax,[ebx+APPDATA.heap_base]
Line 989... Line 991...
989
           jc      @f
991
           jc      @f
Line 990... Line 992...
990
 
992
 
991
           cmp     eax, [SLOT_BASE+APPDATA.mem_size+ebx*8]
993
           cmp     eax, [SLOT_BASE+APPDATA.mem_size+ebx*8]
Line 992... Line 994...
992
           ja      @f
994
           ja      @f
993
 
995
 
994
           add edx, new_app_base
996
     ;      add edx, new_app_base
995
           stdcall k_strncpy, edx, [cmd_line], 256
997
           stdcall k_strncpy, edx, [cmd_line], 256
996
@@:
998
@@:
997
           mov edx,[params]
999
           mov edx,[params]
Line 1001... Line 1003...
1001
        mov     eax, edx
1003
        mov     eax, edx
1002
        add     eax, 1024
1004
        add     eax, 1024
1003
        jc      @f
1005
        jc      @f
1004
        cmp     eax, [SLOT_BASE+APPDATA.mem_size+ebx*8]
1006
        cmp     eax, [SLOT_BASE+APPDATA.mem_size+ebx*8]
1005
        ja      @f
1007
        ja      @f
1006
           add edx, new_app_base
1008
    ;       add edx, new_app_base
1007
           stdcall k_strncpy, edx, [app_path], 1024
1009
           stdcall k_strncpy, edx, [app_path], 1024
1008
@@:
1010
@@:
1009
           mov    ebx,[slot]
1011
           mov    ebx,[slot]
1010
           mov    eax,ebx
1012
           mov    eax,ebx
1011
           shl    ebx,5
1013
           shl    ebx,5
Line 1054... Line 1056...
1054
           mov esi,[params]
1056
           mov esi,[params]
1055
           mov eax, [esi+0x08]       ;app_eip
1057
           mov eax, [esi+0x08]       ;app_eip
1056
           mov [edi+TSS._eip],eax    ;set eip in TSS
1058
           mov [edi+TSS._eip],eax    ;set eip in TSS
1057
           mov eax, [esi+0x0C]       ;app_esp
1059
           mov eax, [esi+0x0C]       ;app_esp
1058
           mov [edi+TSS._esp],eax    ;set stack in TSS
1060
           mov [edi+TSS._esp],eax    ;set stack in TSS
1059
           mov [edi+TSS._eflags],dword 0x1202
1061
           mov [edi+TSS._eflags],dword 0x3202
Line 1060... Line 1062...
1060
 
1062
 
1061
           mov [edi+TSS._cs],app_code  ;selector of code segment
1063
           mov [edi+TSS._cs],app_code  ;selector of code segment
1062
           mov [edi+TSS._ss],app_data
1064
           mov [edi+TSS._ss],app_data
1063
           mov [edi+TSS._ds],app_data
1065
           mov [edi+TSS._ds],app_data