Rev 321 | Rev 334 | Go to most recent revision | Show entire file | Regard 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 |
- | 577 | ; esi= slot |
|
- | 578 | ||
- | 579 | terminate: ; terminate application |
|
574 | 580 | ||
575 | 581 | .slot equ esp ;locals |
|
576 | terminate: ; terminate application |
582 | |
577 | push esi |
- | |
578 | mov esi,process_terminating |
- | |
579 | call sys_msg_board_str |
583 | push esi ;save .slot |
580 | pop esi |
584 | mov esi,process_terminating |
581 | 585 | call sys_msg_board_str |
|
582 | @@: |
586 | @@: |
583 | cli |
587 | cli |
584 | cmp [application_table_status],0 |
588 | cmp [application_table_status],0 |
585 | je term9 |
589 | je term9 |
586 | sti |
590 | sti |
587 | call change_task |
- | |
588 | jmp @b |
591 | call change_task |
Line -... | Line 592... | ||
- | 592 | jmp @b |
|
- | 593 | term9: |
|
- | 594 | call set_application_table_status |
|
- | 595 | ||
- | 596 | mov esi, [.slot] |
|
589 | term9: |
597 | shl esi,8 |
- | 598 | add esi, PROC_BASE+APP_OBJ_OFFSET |
|
Line 590... | Line 599... | ||
590 | 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 |
|
591 | call set_application_table_status |
607 | call sys_msg_board_str |
592 | 608 | pop esi |
|
593 | mov eax,esi |
609 | jmp @B |
594 | - | ||
Line -... | Line 610... | ||
- | 610 | @@: |
|
- | 611 | mov eax, [.slot] |
|
595 | pushad |
612 | shl eax, 8 |
596 | shl eax,8 |
613 | mov eax,[PROC_BASE+eax+APPDATA.dir_table] |
Line 597... | Line 614... | ||
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] |
- | 617 | pop esi ;restore stack |
|
600 | 618 | cmp [fpu_owner],esi ; if user fpu last -> fpu user = 1 |
|
601 | 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] |
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 |