Subversion Repositories Kolibri OS

Rev

Rev 1383 | Rev 2559 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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