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 if0>>-->-->-->-->256 |
1368 | end if |
- | 1369 | ||
- | 1370 | include 'debug.inc'0>>-->-->-->-->256 |