Subversion Repositories Kolibri OS

Rev

Rev 5427 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;-----------------------;
  2. ; CPU - process manager ;
  3. ;-----------------------;
  4.  
  5. format binary as ""
  6.  
  7.         use32
  8.         org 0x0
  9.         db 'MENUET01'           ; 8 byte id
  10.         dd 0x01                 ; header version
  11.         dd START                ; start of code
  12.         dd IM_END               ; size of image
  13.         dd U_END                ; memory for app
  14.         dd stack_area           ; esp
  15.         dd 0x0                  ; boot parameters
  16.         dd 0x0                  ; path
  17. ;------------------------------------------------------------------------------
  18. include 'lang.inc'
  19. include '../../../macros.inc'
  20. include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
  21. include '../../../develop/libraries/box_lib/load_lib.mac'
  22. ;------------------------------------------------------------------------------
  23. display_processes=24    ;32             ; number of processes to show
  24. window_x_size=524
  25. window_y_size=430
  26. ;------------------------------------------------------------------------------
  27. @use_library    ;use load lib macros
  28. ;------------------------------------------------------------------------------
  29. START:                          ; start of execution
  30.         mcall   68,11
  31. sys_load_library  library_name, cur_dir_path, library_path, system_path, \
  32. err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i
  33.         inc     eax
  34.         jz      close
  35. ;------------------------------------------------------------------------------
  36.         mcall   40,0x80000027 ;set event
  37. ;------------------------------------------------------------------------------
  38. ;set window size and position for 0 function
  39. ;to [winxpos] and [winypos] variables
  40. ;get screen size
  41.         mcall   14
  42.         mov     ebx,eax
  43. ;calculate (x_screen-window_x_size)/2
  44.         shr     ebx,16+1
  45.         sub     ebx,window_x_size/2
  46.         shl     ebx,16
  47.         mov     bx,window_x_size
  48. ;winxpos=xcoord*65536+xsize
  49.         mov     [winxpos],ebx
  50. ;calculate (y_screen-window_y_size)/2
  51.         and     eax,0xffff
  52.         shr     eax,1
  53.         sub     eax,window_y_size/2
  54.         shl     eax,16
  55.         mov     ax,window_y_size
  56. ;winypos=ycoord*65536+ysize
  57.         mov     [winypos],eax
  58. ;------------------------------------------------------------------------------
  59.         init_checkboxes2 check1,check1_end
  60.         mcall   48,3,sc,40
  61.         edit_boxes_set_sys_color edit1,edit1_end,sc             ;set color
  62.         check_boxes_set_sys_color2 check1,check1_end,sc ;set color
  63. ;------------------------------------------------------------------------------
  64. align 4
  65. ;main loop when process name isn't edited.
  66. red:
  67.         call    draw_window             ; redraw all window
  68. ;------------------------------------------------------------------------------
  69. align 4
  70. still:
  71.         mcall   23,100          ; wait here for event 1 sec.
  72.  
  73.         test    eax,eax
  74.         jz      still_end
  75.  
  76.         dec     eax                   ; redraw request ?
  77.         jz      red
  78.  
  79.         dec     eax                   ; key in buffer ?
  80.         jz      key
  81.  
  82.         dec     eax                   ; button in buffer ?
  83.         jz      button
  84.  
  85.         push    dword edit1
  86.         call    [edit_box_mouse]
  87.  
  88.         push    dword[check1.flags]
  89.  
  90.         push    dword check1
  91.         call    [check_box_mouse]
  92.  
  93.         pop     eax
  94.  
  95.         cmp     eax, dword[check1.flags]
  96.         jz      still_end
  97.  
  98.         push    dword check1
  99.         call    [check_box_draw]
  100. ;--------------------------------------
  101. align 4
  102. show_process_info_1:
  103.         mcall   26,9
  104.         add     eax,100
  105.         mov     [time_counter],eax
  106.  
  107.         call    show_process_info       ; draw new state of processes
  108.         jmp     still
  109. ;------------------------------------------------------------------------------
  110. align 4
  111. still_end:
  112.         mcall   26,9
  113.         cmp     [time_counter],eax
  114.         ja      still
  115.  
  116.         add     eax,100
  117.         mov     [time_counter],eax
  118.  
  119.         call    show_process_info       ; draw new state of processes
  120.         jmp     still
  121. ;------------------------------------------------------------------------------
  122. align 4
  123. key:                            ; key
  124.         mcall   2
  125.  
  126.         cmp     ah,184          ; PageUp
  127.         jz      pgdn
  128.  
  129.         cmp     ah,183
  130.         jz      pgup                    ; PageDown
  131.  
  132.         cmp     ah,27
  133.         jz      close                   ; Esc
  134.  
  135.         push    dword edit1
  136.         call    [edit_box_key]
  137.                                 ; Check ENTER with ed_focus edit_box
  138.         lea     edi,[edit1]
  139.         test    word ed_flags,ed_focus
  140.         jz      still_end
  141.  
  142.         sub     ah,13                   ; ENTER?
  143.         jz      program_start           ; RUN a program
  144.  
  145.         jmp     still
  146. ;------------------------------------------------------------------------------
  147. align 4
  148. button:
  149. ; get button id
  150.         mcall   17
  151.         mov     bl, al ; save mouse button to bl
  152.         shr     eax,8
  153. ;id in [10,50] corresponds to terminate buttons.
  154.         cmp     eax,10
  155.         jb      noterm
  156.  
  157.         cmp     eax,50
  158.         jg      noterm
  159. ;calculate button index
  160.         sub     eax,11
  161. ;calculate process slot
  162.         mov     ecx,[tasklist+4*eax]
  163. ;ignore empty buttons
  164.         test    ecx,ecx
  165.         jle     still_end
  166.         test    bl, bl ; check mouse button
  167.         jz     .terminate
  168.         mov    eax, ecx
  169.         mov    edi, tinfo.params_buf
  170. ;; number in eax
  171. ;; buffer in edi
  172. ; int2str:
  173.         push   0
  174.         mov    ecx, 10
  175. .push:
  176.         xor    edx, edx
  177.         div    ecx
  178.         add    edx, 48
  179.         push   edx
  180.         test   eax, eax
  181.         jnz     .push
  182. .pop:
  183.         pop    eax
  184.         stosb
  185.         test   eax, eax
  186.         jnz    .pop
  187. ; launch tinfo app
  188.         mov     ebx, tinfo
  189.         mov     eax, 70
  190.         int     64
  191.         jmp     show_process_info_1
  192. .terminate:
  193. ;terminate application
  194.         mcall   18,2
  195.         jmp     show_process_info_1
  196. ;--------------------------------------
  197. align 4
  198. noterm:
  199. ;special buttons
  200.         dec     eax
  201.         jz      close
  202.  
  203.         sub     eax,50
  204.         jz      pgdn      ;51
  205.  
  206.         dec     eax
  207.         jz      pgup      ;52
  208.  
  209.         dec     eax
  210.         jz      program_start   ;53
  211.  
  212.         dec     eax
  213.         jz      reboot  ;54
  214.  
  215.         jmp     still_end
  216. ;buttons handlers
  217. ;------------------------------------------------------------------------------
  218. align 4
  219. pgdn:
  220.         sub     [list_start],display_processes
  221.         jge     show_process_info_1
  222.         mov     [list_start],0
  223.         jmp     show_process_info_1
  224. ;------------------------------------------------------------------------------
  225. align 4
  226. pgup:
  227.         mov     eax,[list_add]  ;maximal displayed process slot
  228.         mov     [list_start],eax
  229.         jmp     show_process_info_1
  230. ;------------------------------------------------------------------------------
  231. align 4
  232. program_start:
  233.         mcall   70,file_start
  234.         jmp     show_process_info_1
  235. ;------------------------------------------------------------------------------
  236. align 4
  237. reboot:
  238.         mcall   70,sys_reboot
  239. ;close program if we going to reboot
  240. ;------------------------------------------------------------------------------
  241. align 4
  242. close:
  243.         or      eax,-1          ; close this program
  244.         mcall
  245. ;------------------------------------------------------------------------------
  246. align 4
  247. draw_empty_slot:
  248.         cmp     [draw_window_flag],1
  249.         je      @f
  250.         mov     ecx,[curposy]
  251.         shl     ecx,16
  252.         mov     cx,10   ; button height
  253.         mcall   13,<111,393>,,[bar_bacground_color]
  254. @@:
  255.         ret
  256. ;------------------------------------------------------------------------------
  257. align 4
  258. draw_next_process:
  259. ;input:
  260. ;  edi - current slot
  261. ;  [curposy] - y position
  262. ;output:
  263. ;  edi - next slot (or -1 if no next slot)
  264. ;registers corrupted!
  265. ;create terminate process button
  266.         mov     ecx,[curposy]
  267.         shl     ecx,16
  268.         mov     cx,13   ; button height
  269.         mov     edx,[index]
  270.         add     edx,11
  271.         mov     esi,0xccddee
  272.         test    dword [index],1
  273.         jz      @f
  274.         mov     esi,0xaabbcc
  275. @@:
  276.         mcall   8,<10,99>
  277.         mov     [btn_bacground_color],esi
  278. ;draw background for proccess information
  279.         mov     edx,0xddffdd
  280.         test    dword [index],1
  281.         jz      @f
  282.         mov     edx,0xffffff
  283. @@:
  284.         inc     cx
  285.         cmp     [draw_window_flag],0
  286.         je      @f
  287.         mcall   13,<110,395>
  288. @@:
  289.         mov     [bar_bacground_color],edx
  290. ;nothing else should be done if there is no process for this button
  291.         cmp     edi,-1
  292.         jne     .return_1
  293.  
  294.         call    draw_empty_slot
  295.         or      edi,-1
  296.         jmp     .ret
  297. ;--------------------------------------
  298. align 4
  299. .return_1:
  300. ;find process
  301.         inc     edi
  302. ;more comfortable register for next loop
  303.         mov     ecx,edi
  304. ;precacluate pointer to process buffer
  305.         mov     ebx,process_info_buffer
  306. ;--------------------------------------
  307. align 4
  308. .find_loop:
  309.         cmp     ecx,256
  310.         jge     .no_processes
  311. ;load process information in buffer
  312.         mcall   9
  313. ;if current slot greater than maximal slot,
  314. ;there is no more proccesses.
  315.         cmp     ecx,eax
  316.         jg      .no_processes
  317. ;if slot state is equal to 9, it is empty.
  318.         cmp     [process_info_buffer+process_information.slot_state],9
  319.         jnz     .process_found
  320.  
  321.         inc     ecx
  322.         jmp     .find_loop
  323. ;--------------------------------------
  324. align 4
  325. .no_processes:
  326.         call    draw_empty_slot
  327.         or      edi,-1
  328.         ret
  329. ;--------------------------------------
  330. align 4
  331. .process_found:
  332. ;check on/off check box
  333.         push    edi
  334.         lea     edi,[check1]
  335.         test    dword ch_flags,ch_flag_en
  336.         pop     edi
  337.         jnz     .no_filter
  338.  
  339.         cmp     dword [process_info_buffer+10],'ICON'
  340.         jnz     @f
  341.         cmp     dword [process_info_buffer+10+4],0
  342.         jz      .return_1
  343. @@:
  344.         cmp     dword [process_info_buffer+10],'IDLE'
  345.         jnz     @f
  346.         cmp     dword [process_info_buffer+10+4],0
  347.         jz      .return_1
  348. @@:
  349.         cmp     word [process_info_buffer+10],'OS'
  350.         jnz     @f
  351.         cmp     dword [process_info_buffer+10+2],0
  352.         jz      .return_1
  353. @@:
  354.         cmp     byte [process_info_buffer+10],'@'
  355.         jz      .return_1
  356. ;--------------------------------------
  357. align 4
  358. .no_filter:
  359.         mov     edi,ecx
  360.         mov     [list_add],ecx
  361. ;get processor cpeed
  362. ;for percent calculating
  363.         mcall   18,5
  364.         xor     edx,edx
  365.         mov     ebx,100
  366.         div     ebx
  367. ;eax = number of operation for 1% now
  368. ;calculate process cpu usage percent
  369.         mov     ebx,eax
  370.         mov     eax,[process_info_buffer+process_information.cpu_usage]
  371. ;       cdq
  372.         xor     edx,edx ; for CPU more 2 GHz - mike.dld
  373.         div     ebx
  374.         mov     [cpu_percent],eax
  375. ;set text color to display process information
  376. ;0%      : black
  377. ;1-80%   : green
  378. ;81-100% : red
  379.         test    eax,eax
  380.         jnz     .no_black
  381.  
  382.         mov     esi,eax
  383.         jmp     .color_set
  384. ;--------------------------------------
  385. align 4
  386. .no_black:
  387.         cmp     eax,80
  388.         ja      .no_green
  389.  
  390.         mov     esi,0x107a30
  391.         jmp     .color_set
  392. ;--------------------------------------
  393. align 4
  394. .no_green:
  395.         mov     esi,0xac0000
  396. ;--------------------------------------
  397. align 4
  398. .color_set:
  399. ;show slot number
  400. ;ecx haven't changed since .process_found
  401.         push    edi
  402.         mov     edx,[curposy]
  403.         add     edx,15*65536+3
  404.         mcall   47,<2,256>
  405. ;show process name
  406.         mov     ebx,[curposy]
  407.         add     ebx,40*65536+3
  408.         mov     ecx,esi
  409.         mcall   4,,,process_info_buffer.process_name,11
  410. ;show pid
  411.         mov     edx,[curposy]
  412.         add     edx,125*65536+3
  413.         mov     esi,ecx
  414.         or      esi,0x40000000
  415.         mcall   47,<8,256>,[process_info_buffer.PID],,,[bar_bacground_color]
  416. ;show cpu usage
  417.         add     edx,60*65536
  418.         mcall   ,,[process_info_buffer.cpu_usage]
  419. ;show cpu percent
  420.         add     edx,60*65536
  421.         mcall   ,<3,0>,[cpu_percent]
  422. ;show memory start - obsolete
  423.         add     edx,30*65536
  424.         mcall   ,<8,256>,[process_info_buffer.memory_start]
  425. ;show memory usage
  426.         mov     ecx,[process_info_buffer.used_memory]
  427.         inc     ecx
  428.         add     edx,60*65536
  429.         mcall
  430. ;show window stack and value
  431.         add     edx,60*65536
  432.         mcall   ,,dword [process_info_buffer.window_stack_position]
  433. ;show window xy size
  434.         mov     ecx,[process_info_buffer.box.left]
  435.         shl     ecx,16
  436.         add     ecx,[process_info_buffer.box.top]
  437.         add     edx,60*65536
  438.         mcall
  439.         pop     edi
  440. ;--------------------------------------
  441. align 4
  442. .ret:
  443. ;build index->slot map for terminating processes.
  444.         mov     eax,[index]
  445.         mov     [tasklist+4*eax],edi
  446.         ret
  447. ;------------------------------------------------------------------------------
  448. align 4
  449. f11:
  450. ;full update
  451.         push    edi
  452.         call    draw_window
  453.         pop     edi
  454. ;------------------------------------------------------------------------------
  455. ;   *********************************************
  456. ;   *******  WINDOW DEFINITIONS AND DRAW ********
  457. ;   *********************************************
  458. align 4
  459. draw_window:
  460.         mcall   12, 1
  461. ; DRAW WINDOW
  462.         xor     eax,eax                         ; function 0 : define and draw window
  463.         xor     esi,esi
  464.         mcall   ,[winxpos],[winypos],0x74ffffff,,title  ;0x34ddffdd
  465.  
  466.         mcall   9,process_info_buffer,-1
  467.  
  468.         mov     eax,[ebx+70]
  469.         mov     [window_status],eax
  470.         test    [window_status],100b            ; window is rolled up
  471.         jnz     .exit
  472.  
  473.         test    [window_status],10b             ; window is minimized to panel
  474.         jnz     .exit
  475.  
  476.         mov     eax,[ebx+62]
  477.         inc     eax
  478.         mov     [client_area_x_size],eax
  479.         mov     eax,[ebx+66]
  480.         inc     eax
  481.         mov     [client_area_y_size],eax
  482.  
  483.         mov     ebx,[client_area_x_size]
  484.         mcall   13,,<0,20>,0xffffff
  485. ; function 4 : write text to window
  486.         xor     ecx,ecx
  487.         mcall   4,<17,8>,,text,text_len
  488.  
  489.         mcall   13,<0,10>,<20,336>,0xffffff
  490.  
  491.         mov     ebx,[client_area_x_size]
  492.         sub     ebx,10+100+395
  493.         add     ebx,(10+100+395) shl 16
  494.         mcall
  495.  
  496.         mcall   26,9
  497.         add     eax,100
  498.         mov     [time_counter],eax
  499.  
  500.         mov     [draw_window_flag],1
  501.         call    show_process_info
  502.         mov     [draw_window_flag],0
  503.  
  504.         mov     ebx,[client_area_x_size]
  505.         mov     ecx,[client_area_y_size]
  506.         sub     ecx,20+336
  507.         add     ecx,(20+336) shl 16
  508.         mcall   13,,,0xffffff
  509.  
  510.         push    dword edit1
  511.         call    [edit_box_draw]
  512.  
  513.         push    dword check1
  514.         call    [check_box_draw]
  515.  
  516. ; previous page button
  517.         mcall   8,<25,96>,<361,14>,51,0xccddee  ;0xaabbcc
  518. ; next page button  52
  519.         inc     edx
  520.         mcall   ,<125,96>
  521. ; ">" (text enter) button
  522.         add     ecx,20 shl 16
  523. ; run button 53
  524.         inc     edx
  525.         mcall   ,<456,50>
  526. ; reboot button
  527.         sub     ebx,120*65536
  528.         add     ebx,60
  529.         sub     ecx,20 shl 16
  530.         inc     edx
  531.         mcall
  532. ;"PREV PAGE", "NEXT PAGE" and "REBOOT" labels
  533.         xor     ecx,ecx
  534.         mcall   4,<45,365>,,tbts,tbte-tbts
  535. ;"RUN" labels
  536.         mcall   ,<464,385>,,tbts_3,tbte_2-tbts_3
  537. ;print application name in text box
  538. ;--------------------------------------
  539. align 4
  540. .exit:
  541.         mcall   12, 2
  542.         ret
  543. ;------------------------------------------------------------------------------
  544. align 4
  545. show_process_info:
  546.         test    [window_status],100b            ; window is rolled up
  547.         jnz     .exit
  548.  
  549.         test    [window_status],10b             ; window is minimized to panel
  550.         jnz     .exit
  551.  
  552.         mov     ecx,display_processes
  553.         mov     edi,tasklist
  554.         xor     eax,eax
  555.         cld
  556.         rep     stosd
  557.  
  558.         mov     edi,[list_start]
  559.         mov     [list_add],edi
  560.         mov     dword [index],0
  561.         mov     dword [curposy],20
  562. ;--------------------------------------
  563. align 4
  564. .loop_draw:
  565.         call    draw_next_process
  566.         inc     dword [index]
  567.         add     dword [curposy],14
  568.         cmp     [index],display_processes
  569.         jl      .loop_draw
  570. ;--------------------------------------
  571. align 4
  572. .exit:
  573.         ret
  574. ;------------------------------------------------------------------------------
  575. ; DATA AREA
  576. ;------------------------------------------------------------------------------
  577. system_path      db '/sys/lib/'
  578. library_name     db 'box_lib.obj',0
  579. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  580.  
  581. err_message_found_lib   db 'Sorry I cannot load library box_lib.obj',0
  582. head_f_i:
  583. head_f_l        db 'System error',0
  584. err_message_import      db 'Error on load import library box_lib.obj',0
  585. ;------------------------------------------------------------------------------
  586. align 4
  587. myimport:
  588. edit_box_draw           dd aEdit_box_draw
  589. edit_box_key            dd aEdit_box_key
  590. edit_box_mouse          dd aEdit_box_mouse
  591. ;version_ed             dd aVersion_ed
  592.  
  593. init_checkbox           dd aInit_checkbox
  594. check_box_draw          dd aCheck_box_draw
  595. check_box_mouse         dd aCheck_box_mouse
  596. ;version_ch             dd aVersion_ch
  597.  
  598. ;option_box_draw        dd aOption_box_draw
  599. ;option_box_mouse       dd aOption_box_mouse
  600. ;version_op             dd aVersion_op
  601.  
  602.                 dd 0
  603.                 dd 0
  604.  
  605. aEdit_box_draw          db 'edit_box',0
  606. aEdit_box_key           db 'edit_box_key',0
  607. aEdit_box_mouse         db 'edit_box_mouse',0
  608. ;aVersion_ed            db 'version_ed',0
  609.  
  610. aInit_checkbox          db 'init_checkbox2',0
  611. aCheck_box_draw         db 'check_box_draw2',0
  612. aCheck_box_mouse        db 'check_box_mouse2',0
  613. ;aVersion_ch            db 'version_ch',0
  614.  
  615. ;aOption_box_draw       db 'option_box_draw',0
  616. ;aOption_box_mouse      db 'option_box_mouse',0
  617. ;aVersion_op            db 'version_op',0
  618. ;------------------------------------------------------------------------------
  619. align 4
  620. check1 check_box2 (10 shl 16)+11,(383 shl 16)+11,6, 0x80AABBCC,0,0,check_text, ch_flag_bottom ;ch_flag_en
  621. check1_end:
  622. edit1 edit_box 350,95,381,0xffffff,0x6f9480,0,0xAABBCC,0,start_application_c,\
  623.    start_application,mouse_dd,ed_focus,start_application_e,start_application_e
  624. edit1_end:
  625. list_start  dd 0
  626. ;------------------------------------------------------------------------------
  627. align 4
  628. sys_reboot:
  629.             dd 7
  630.             dd 0
  631.             dd 0
  632.             dd 0
  633.             dd 0
  634.             db '/sys/end',0
  635. ;------------------------------------------------------------------------------
  636. if lang eq de
  637. text:
  638.         db 'NAME/BEENDEN        PID     CPU-LAST   % '
  639.         db 'SPEICHER START/NUTZUNG  W-STACK  W-POS'
  640. text_len = $-text
  641.  
  642. tbts:   db 'SEITE ZURUECK     SEITE VOR                        REBOOT SYSTEM'
  643. tbte:
  644. tbts_3  db 'START'
  645. tbte_2:
  646. check_text      db 'System',0
  647. title   db 'Prozesse  - Ctrl/Alt/Del',0
  648. ;--------------------------------------
  649. else if lang eq et
  650. text:
  651.         db 'NIMI/L╒PETA         PID    CPU-KASUTUS %   '
  652.         db 'M─LU ALGUS/KASUTUS  W-PUHVER  W-SUURUS'
  653. text_len = $-text
  654.  
  655. tbts:   db 'EELMINE LEHT   J─RGMINE LEHT                     REBOODI S▄STEEM'
  656. tbte:
  657. tbts_3  db 'START'
  658. tbte_2:
  659. check_text      db 'System',0
  660. title   db 'Protsessid - Ctrl/Alt/Del'
  661. ;--------------------------------------
  662. else if lang eq ru
  663. text:
  664.         db 'ИМЯ/ЗАВЕРШИТЬ      PID     CPU-ЗАГРУЗКА %  '
  665.         db 'ПАМЯТЬ НАЧАЛО/ВСЕГО  W-STACK  W-POS'
  666. text_len = $-text
  667.  
  668. tbts:   db 'ПРЕД.СТР        СЛЕД.СТР                          ПЕРЕЗАГРУЗКА'
  669. tbte:
  670. tbts_3  db 'ЗАПУСК'
  671. tbte_2:
  672. check_text      db 'Системные',0
  673. title   db 'Диспетчер процессов - Ctrl/Alt/Del',0
  674. ;--------------------------------------
  675. else if lang eq it
  676. text:
  677.         db 'NOME-PROGRAMMA    PID       USO CPU    % '
  678.         db 'MEMORY START/USAGE  W-STACK  W-POS'
  679. text_len = $-text
  680.  
  681. tbts:   db 'INDIETRO         AVANTI                           RIAVVIA SISTEMA'
  682. tbte:
  683. tbts_3  db 'START'
  684. tbte_2:
  685. check_text      db 'System',0
  686. title   db 'Gestore processi  - Ctrl/Alt/Del',0
  687. ;--------------------------------------
  688. else
  689. text:
  690.         db 'NAME/TERMINATE    PID       CPU-USAGE  %   '
  691.         db 'MEMORY START/USAGE  W-STACK   W-POS'
  692. text_len = $-text
  693.  
  694. tbts:   db 'PREV PAGE       NEXT PAGE                         REBOOT SYSTEM'
  695. tbte:
  696. tbts_3  db ' RUN'
  697. tbte_2:
  698. check_text      db 'System',0
  699. title   db 'Process manager - Ctrl/Alt/Del',0
  700.  
  701. end if
  702. ; ---------------------------------------------------------------------------- ;
  703. align 4
  704. tinfo:
  705.                     dd 7
  706.                     dd 0
  707. .params             dd .params_buf
  708.                     dd 0
  709.                     dd 0
  710.                     db 0
  711. .file_path          dd sz_tinfo_file_path
  712. align 4
  713. .params_buf:
  714. times 11 db 0 ; at now 4 bytes will be enough, but may be in the future not
  715. align 4
  716. sz_tinfo_file_path  db "/sys/tinfo",0
  717. ; ---------------------------------------------------------------------------- ;
  718. align 4
  719. file_start:
  720.         dd 7
  721.         dd 0
  722.         dd 0
  723.         dd 0
  724.         dd 0
  725. start_application: db '/sys/LAUNCHER',0
  726. start_application_e=$-start_application-1
  727. ;                   times 60 db 0
  728.         rb 60
  729. start_application_c=$-start_application-1
  730. ;------------------------------------------------------------------------------
  731. IM_END:
  732. ;------------------------------------------------------------------------------
  733. align 4
  734. sc system_colors
  735. winxpos         rd 1
  736. winypos         rd 1
  737. mouse_dd        rd 1
  738. cpu_percent     rd 1
  739. list_add        rd 1
  740. curposy         rd 1
  741. index           rd 1
  742. tasklist        rd display_processes
  743. time_counter    rd 1
  744.  
  745. window_status           rd 1
  746. client_area_x_size      rd 1
  747. client_area_y_size      rd 1
  748. bar_bacground_color     rd 1
  749. btn_bacground_color     rd 1
  750. draw_window_flag        rd 1
  751. ;------------------------------------------------------------------------------
  752. align 4
  753. library_path:
  754. process_info_buffer process_information
  755. ;------------------------------------------------------------------------------
  756. align 4
  757. cur_dir_path:
  758.         rb 1024
  759.         rb 1024
  760. stack_area:
  761. U_END:
  762.