Rev 321 | Rev 334 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 321 | Rev 329 | ||
---|---|---|---|
Line 541... | Line 541... | ||
541 | 541 | ||
542 | pop eax |
542 | pop eax |
543 | stc |
543 | stc |
Line -... | Line 544... | ||
- | 544 | ret |
|
- | 545 | ||
- | 546 | uglobal |
|
- | 547 | new_process_place dd 0x0 |
|
- | 548 | app_start dd 0x0 |
|
- | 549 | app_i_end dd 0x0 |
|
- | 550 | app_mem dd 0x0 |
|
- | 551 | app_esp dd 0x0 |
|
- | 552 | app_i_param dd 0x0 |
|
544 | ret |
553 | app_i_icon dd 0x0 |
Line -... | Line 554... | ||
- | 554 | app_mem_pos dd 0x0 |
|
Line 545... | Line -... | ||
545 | - | ||
546 | end if |
- | |
547 | - | ||
548 | - | ||
549 | ;uglobal |
- | |
550 | ; new_process_place dd 0x0 |
- | |
551 | ; app_start dd 0x0 |
- | |
552 | ; app_i_end dd 0x0 |
- | |
553 | ; app_mem dd 0x0 |
- | |
554 | ; app_esp dd 0x0 |
- | |
Line 555... | Line 555... | ||
555 | ; app_i_param dd 0x0 |
555 | endg |
Line 556... | Line 556... | ||
556 | ; app_i_icon dd 0x0 |
556 | |
557 | ; app_mem_pos dd 0x0 |
557 | end if |
Line 568... | Line 568... | ||
568 | jmp new_sys_threads |
568 | jmp new_sys_threads |
Line 569... | Line 569... | ||
569 | 569 | ||
570 | iglobal |
570 | iglobal |
571 | process_terminating db 'K : Process - terminating',13,10,0 |
571 | process_terminating db 'K : Process - terminating',13,10,0 |
- | 572 | process_terminated db 'K : Process - done',13,10,0 |
|
572 | process_terminated db 'K : Process - done',13,10,0 |
573 | msg_obj_destroy db 'K : destroy app object',13,10,0 |
Line -... | Line 574... | ||
- | 574 | endg |
|
- | 575 | ||
Line 573... | Line 576... | ||
573 | endg |
576 | ; param |
574 | - | ||
575 | - | ||
576 | terminate: ; terminate application |
- | |
577 | push esi |
- | |
578 | mov esi,process_terminating |
- | |
579 | call sys_msg_board_str |
- | |
580 | pop esi |
- | |
581 | - | ||
582 | @@: |
- | |
583 | cli |
- | |
584 | cmp [application_table_status],0 |
- | |
585 | je term9 |
- | |
586 | sti |
- | |
587 | call change_task |
- | |
588 | jmp @b |
- | |
589 | term9: |
- | |
590 | - | ||
Line 591... | Line -... | ||
591 | call set_application_table_status |
- | |
592 | - | ||
593 | mov eax,esi |
- | |
594 | 577 | ; esi= slot |
|
595 | pushad |
- | |
Line -... | Line 578... | ||
- | 578 | ||
- | 579 | terminate: ; terminate application |
|
- | 580 | ||
- | 581 | .slot equ esp ;locals |
|
- | 582 | ||
- | 583 | push esi ;save .slot |
|
- | 584 | mov esi,process_terminating |
|
- | 585 | call sys_msg_board_str |
|
- | 586 | @@: |
|
- | 587 | cli |
|
- | 588 | cmp [application_table_status],0 |
|
- | 589 | je term9 |
|
- | 590 | sti |
|
- | 591 | call change_task |
|
- | 592 | jmp @b |
|
- | 593 | term9: |
|
- | 594 | call set_application_table_status |
|
- | 595 | ||
- | 596 | mov esi, [.slot] |
|
- | 597 | shl esi,8 |
|
- | 598 | add esi, PROC_BASE+APP_OBJ_OFFSET |
|
- | 599 | @@: |
|
- | 600 | mov eax, [esi+APPOBJ.fd] |
|
- | 601 | cmp eax, esi |
|
- | 602 | je @F |
|
- | 603 | ||
- | 604 | push esi |
|
- | 605 | call [eax+APPOBJ.destroy] |
|
- | 606 | mov esi, msg_obj_destroy |
|
- | 607 | call sys_msg_board_str |
|
- | 608 | pop esi |
|
- | 609 | jmp @B |
|
- | 610 | @@: |
|
- | 611 | mov eax, [.slot] |
|
- | 612 | shl eax, 8 |
|
596 | shl eax,8 |
613 | mov eax,[PROC_BASE+eax+APPDATA.dir_table] |
597 | mov eax,[PROC_BASE+eax+0xB8] |
614 | stdcall destroy_app_space, eax |
598 | stdcall destroy_app_space, eax |
615 | |
599 | popad |
616 | ;; mov esi, [.slot] |
600 | 617 | pop esi ;restore stack |
|
601 | cmp [fpu_owner],esi ; if user fpu last -> fpu user = 1 |
618 | cmp [fpu_owner],esi ; if user fpu last -> fpu user = 1 |
- | 619 | jne fpu_ok_1 |
|
602 | jne fpu_ok_1 |
620 | |
603 | 621 | mov [fpu_owner],1 |
|
604 | mov [fpu_owner],1 |
622 | mov eax, [256+PROC_BASE+APPDATA.fpu_state] |
605 | mov eax, [256+PROC_BASE+0x10] |
623 | bt [cpu_caps], CAPS_SSE |
606 | bt [cpu_caps], CAPS_SSE |
624 | clts |
607 | jnc .no_SSE |
625 | jnc .no_SSE |
608 | fxrstor [eax] |
626 | fxrstor [eax] |
Line 609... | Line 627... | ||
609 | jmp fpu_ok_1 |
627 | jmp fpu_ok_1 |
610 | .no_SSE: |
628 | .no_SSE: |
Line 880... | Line 898... | ||
880 | mov [0xfff5],byte 0 ; draw mouse |
898 | mov [0xfff5],byte 0 ; draw mouse |
Line 881... | Line 899... | ||
881 | 899 | ||
882 | mov [application_table_status],0 |
900 | mov [application_table_status],0 |
883 | mov esi,process_terminated |
901 | mov esi,process_terminated |
884 | call sys_msg_board_str |
- | |
885 | 902 | call sys_msg_board_str |
|
Line 886... | Line 903... | ||
886 | ret |
903 | ret |
887 | 904 | ||
888 | iglobal |
905 | iglobal |