Subversion Repositories Kolibri OS

Rev

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

Rev 21 Rev 40
Line 58... Line 58...
58
 
58
 
59
new_start_application_floppy:
59
new_start_application_floppy:
60
;input:
60
;input:
61
;  eax - pointer to filename
61
;  eax - pointer to filename
-
 
62
;  ebx - parameters to pass
62
;  ebx - parameters to pass
63
;  edx - flags
63
;result:
64
;result:
64
;  eax - pid of new process
65
;  eax - pid of new process
65
;        or 0 if call fails.
66
;        or 0 if call fails.
66
    mov    [appl_path],edi
67
    mov    [appl_path],edi
Line 229... Line 230...
229
;-----------------------------------------------------------------------------    
230
;-----------------------------------------------------------------------------    
230
new_start_application_fl:
231
new_start_application_fl:
231
;input:
232
;input:
232
;  eax - pointer to filename
233
;  eax - pointer to filename
233
;  ebx - parameters to pass
234
;  ebx - parameters to pass
-
 
235
;  edx - flags
234
;result:
236
;result:
235
;  eax - pid of new process
237
;  eax - pid of new process
236
;        or 0 if call fails.
238
;        or 0 if call fails.
237
    mov    [appl_path],edi
239
    mov    [appl_path],edi
238
    mov    [appl_path_size],36
240
    mov    [appl_path_size],36
Line 544... Line 546...
544
    call   windowactivate        ;gui initialization
546
    call   windowactivate        ;gui initialization
Line 545... Line 547...
545
 
547
 
546
    mov    ebx,[new_process_place]
548
    mov    ebx,[new_process_place]
547
    shl    ebx,5
549
    shl    ebx,5
-
 
550
    mov    [0x3000+ebx+0xa],byte 0 ;set process state - running
-
 
551
; set if debuggee
-
 
552
    test   byte [esp+28], 1
-
 
553
    jz     .no_debug
-
 
554
    mov    [0x3000+ebx+0xa],byte 1 ;set process state - suspended
-
 
555
    mov    eax,[0x3000]
-
 
556
    mov    [0x80000+ebx*8+0xac],eax ;set debugger PID - current
Line 548... Line 557...
548
    mov    [0x3000+ebx+0xa],byte 0 ;set process state - running
557
.no_debug:
549
    
558
    
Line 550... Line 559...
550
    mov    esi,new_process_running
559
    mov    esi,new_process_running
Line 561... Line 570...
561
;eax=1 - create thread
570
;eax=1 - create thread
562
;   ebx=thread start
571
;   ebx=thread start
563
;   ecx=thread stack value
572
;   ecx=thread stack value
564
;result:
573
;result:
565
;   eax=pid
574
;   eax=pid
-
 
575
    xor    edx,edx	; flags=0
566
    pushad
576
    pushad
Line 567... Line 577...
567
   
577
   
568
    cmp    eax,1
578
    cmp    eax,1
569
    jnz    .ret                  ;other subfunctions
579
    jnz    .ret                  ;other subfunctions
Line 1163... Line 1173...
1163
;-----------------------------------------------------------------------------    
1173
;-----------------------------------------------------------------------------    
1164
new_start_application_hd:
1174
new_start_application_hd:
1165
;eax - file name (kernel address)
1175
;eax - file name (kernel address)
1166
;ebx - file name length
1176
;ebx - file name length
1167
;ecx - work area (kernel address)
1177
;ecx - work area (kernel address)
-
 
1178
;edx - flags
1168
;ebp - parameters
1179
;ebp - parameters
1169
    mov    [appl_path],edi
1180
    mov    [appl_path],edi
1170
    pushad
1181
    pushad
Line 1171... Line 1182...
1171
    
1182
    
Line 1353... Line 1364...
1353
    mov    eax,-1
1364
    mov    eax,-1
1354
    mov    [application_table_status],0
1365
    mov    [application_table_status],0
1355
    sti
1366
    sti
1356
    ret
1367
    ret
1357
end if
1368
end if
-
 
1369
 
-
 
1370
	include 'debug.inc'