Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ;
  2. ; Ghost Monitor - ã⨫¨â  (áâà¥áá) â¥áâ¨à®¢ ­¨ï ¨ ¬®­¨â®à¨­£  á¨á⥬ë
  3. ; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
  4. ; AMD fusion version 2012
  5. ; All Right Reserved
  6. ;
  7. ; ‚Ž‡ŒŽ†€ Ž—€ ŽŽ“„Ž‚€ˆŸ!
  8. ; ˆ‘Ž‹œ‡“‰’… € ‘‚Ž‰ ‘’€• ˆ ˆ‘Š!
  9. ;
  10. ; ‡ ¬¥âª¨ :
  11. ;       „®¯¨á âì § ¯ã᪠â¥á⮢ (rtst) (­¥â ॠªæ¨¨ ­  ®è¨¡ªã § ¯ã᪠)
  12. ;       ¥à¥¤¥« âì ®¡­®¢«¥­¨¥ £à ä¨ª  (ᤥ« âì ®â¤¥«ì­ë¬ ¯à®æ¥áᮬ)
  13. ;       „®¡ ¢¨âì ॠªæ¨î ­  ¯ à ¬¥âàë ¤ â稪®¢
  14. ;
  15.  
  16. ; ‚­¥è­¨¥ ä ©«ë :
  17. ;       hwm*.inc        - ¯à®æ¥¤ãàë à ¡®âë á ¤ â稪 ¬¨ ¬®­¨â®à¨­£ 
  18. ;       system.inc      - ¢ëç¨á«¥­¨¥ § £à㧪¨ ¯à®æ¥áá®à , § ¢¥à襭¨¥ â¥áâ , etc...
  19. ;       tests.inc       - â¥áâë ;-)
  20. ;       diag.inc        - ¯®¤¤¥à¦ª  ¤¨ £à ¬
  21. ;       tab_*.inc       - ¯à®æ¥¤ãàë ®âà¨á®¢ª¨ ᮮ⢥âáâ¢ãîè¨å ¢ª« ¤®ª
  22.  
  23.  
  24. ; ˆ¤¥­â¨ä¨ª â®àë ª­®¯®ª :
  25. ;       01 - Exit
  26. ;       02 - Info tab
  27. ;       03 - Tests tab
  28. ;       04 - Config tab
  29. ;       05 - About tab
  30. ;       06 - P5 test (tab_test.inc)
  31. ;       07 - P6 test (tab_test.inc)
  32. ;       08 - K6 test (tab_test.inc)
  33. ;       09 - K7 test (tab_test.inc)
  34. ;       10 - MMX test   - not used (tab_test.inc)
  35. ;       11 - Update time increment (tab_conf.inc)
  36. ;       12 - Update time decriment (tab_conf.inc)
  37. ;       13..17 - ˆ§¬¥­¥­¨¥ æ¢¥â  CPU_load, Mem_usage, Temp1, Temp2, Temp3
  38.  
  39. include 'config.inc'
  40. include 'macros.inc'
  41.  
  42. tcol    equ     0x5080d0
  43. atcol   equ     0x4070c0
  44. val_mod equ     0x3090
  45.  
  46. MEOS_APP_START
  47. include "tests.inc"     ; <-- Œ­®£® ¢ëà ¢­¨¢ ­¨©, «ãçè¥ §¤¥áì
  48. CODE
  49. ;--- Init ------------------------------------------------------------
  50.         ; Žç¨é ¥¬ ­¥¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥
  51.         mov     ecx, __memory - __udata
  52.         mov     edi, __udata
  53.         xor     eax, eax
  54.         rep     stosb
  55.  
  56.         xor     eax, eax
  57.         cpuid                                   ; “§­ ñ¬ ¯à®¨§¢®¤¨â¥«ï ¯à®æ 
  58.         mov     [Vendor + 0], ebx
  59.         mov     [Vendor + 4], edx
  60.         mov     [Vendor + 8], ecx
  61.         mov     eax, 1
  62.         cpuid                                   ; …áâì «¨ MMX ?
  63.         mov     ecx, eax
  64.         shr     al, 4
  65.         and     ax, 0x0F0F
  66.         mov     [CPU_fam], ah
  67.         mov     [CPU_mod], al
  68.         shr     edx, 23
  69.         and     dl, 1
  70.         mov     [CPU_mmx], dl
  71.         shr     ecx, 12
  72.         and     cl, 11b
  73.         mov     [CPU_type], cl
  74.  
  75.         ; ! –¢¥â  ¨§ ¬ áᨢ  colors
  76.         mov     dword[d_cpu_load], 0xFF00       ; ¨­¨æ¨ «¨§¨à㥬 £à ä¨ª § £à㧪¨ €‹“
  77.         mov     dword[d_mem_usage], 0x8BA169    ; -- mem usega
  78.         mov     dword[d_temp1], 0xFF0000        ; -- £à ä¨ª ⥬¯¥à âãàë –“
  79.         mov     dword[d_temp2], 0xFF            ; -- £à ä¨ª ⥬¯¥à âãàë Œ
  80.         mov     dword[d_temp3], 0xFF7E23
  81.  
  82.         call    hwm_init                        ; ˆ­¨æ¨ «¨§¨à㥬 稯 ¬®­¨â®à¨­£ 
  83.  
  84.         jmp     draw_window
  85. ;--- Wait & translate event ------------------------------------------
  86. wait_for_event:
  87.         mov     byte[diag_add_v], 0     ; ¤®¡ ¢«ï¥¬ ¤ ­­ë¥ ª £à ä¨ªã ⮫쪮 ¯® â ©¬¥àã
  88.         mov     ebx, [update_time]
  89.         mov     eax, 23
  90.         int     0x40
  91.         test    eax, eax
  92.         jnz     @f
  93.         inc     byte [diag_add_v]
  94.         inc     eax                     ; ¯¥à¥à¨á㥬 ®ª­® (eax := 1)
  95. @@:     dec     eax                     ; redraw request ?
  96.         jz      draw_window
  97.         dec     eax                     ; key in buffer ?
  98.         jz      key
  99.         dec     eax                     ; button in buffer ?
  100.         jz      button
  101.         jmp     wait_for_event
  102. ;--- Key pressed -----------------------------------------------------
  103. key:
  104.         mov     eax, 2
  105.         int     0x40
  106.         cmp     ah, 27                  ; Esc - § ¢¥à襭¨¥ à ¡®âë
  107.         je      exit
  108.         jmp     wait_for_event
  109. ;--- Button down -----------------------------------------------------
  110. button:
  111.         mov     eax, 17                 ; get id
  112.         int     0x40
  113.         cmp     ah, 1                   ; button id == 1 ?
  114.         jne     noexit
  115. exit:   cmp     byte[test_id], 0
  116.         je      @f
  117.         call    stop_test
  118. @@:     mov     eax, -1         ; close this program
  119.         int     0x40
  120. noexit:
  121.         ; ª­®¯ª¨ ¢ª« ¤®ª (2 .. 5)
  122.         cmp     ah, 5
  123.         jg      no_tabs
  124.         mov     byte[act_tab], ah
  125.         jmp     draw_window
  126. no_tabs:
  127.         ; ª­®¯ª¨ § ¯ã᪠ â¥á⢮ (6 .. 10)
  128.         cmp     ah, 10
  129.         jg      no_test_bt
  130.         ; ¥á«¨ ­¥â § ¯ã饭ëå â¥á⮢ - § ¯ã᪠¥¬ ¢ë¡à ­­ë©
  131.         cmp     byte[test_id], 0
  132.         je      run_test
  133.         ; ¥á«¨ ª­®¯ª   ªâ¨¢­®£® â¥áâ  - ®áâ ­ ¢«¨¢ ¥¬ â¥áâ, ¨­ ç¥ ­¨ç¥£® ­¥ ¤¥« ¥¬
  134.         cmp     [test_id], ah
  135.         jne     wait_for_event
  136.         call    stop_test
  137.         jmp     draw_window
  138.  
  139. tsts:   dd      p5, p6, k6, k7
  140. run_test:
  141.         push    eax
  142.         movzx   ecx, ah
  143.         mov     ecx, [tsts + (ecx * 4) - (6 * 4)]
  144. rtst:   mov     eax, 51
  145.         mov     edx, stp
  146.         mov     ebx, 1
  147.         int     0x40
  148.         cmp     eax, 0xFFFFFFF0 ; -16
  149.         je      wait_for_event  ; <-- ®è¨¡ª  § ¯ã᪠ â¥áâ , ……ˆ‘€’œ
  150.         mov     [test_pid], eax
  151.         pop     eax
  152.         mov     byte [test_id], ah
  153.         jmp     draw_window
  154.         ;-------------------------
  155.         ; ª­®¯ª¨ ¨§¬¥­¥­¨ï ¢à¥¬¥­¨ ®¡­®¢«¥­¨ï
  156. no_test_bt:
  157.         cmp     ah, 11
  158.         jne     no_ut_inc
  159.         add     dword[update_time], 10
  160.         jmp     draw_window
  161. no_ut_inc:
  162.         cmp     ah, 12
  163.         jne     no_ut_dec
  164.         cmp     dword[update_time], 10
  165.         jng     wait_for_event
  166.         sub     dword[update_time], 10
  167.         jmp     draw_window
  168. no_ut_dec:
  169.         ;-------------------------
  170.         ; ª­®¯ª¨ ¨§¬¥­¥­¨ï æ¢¥â  £à ä¨ª®¢ (13..17)
  171.         cmp     ah, 17
  172.         jg      no_change_color
  173.         sub     ah, 13
  174.         movzx   ecx, ah
  175.         mov     esi, [d_colors + ecx * 4]
  176.         mov     eax, [esi]
  177.         mov     ecx, (colors_end - colors) / 4  ; ª®«¨ç¥á⢮ 梥⮢
  178. @@:     dec     ecx
  179.         cmp     eax, [colors + ecx * 4]
  180.         jne     @b
  181.         mov     ebx, [colors + ecx * 4 - 4]
  182.         mov     [esi], ebx
  183.         jmp     draw_window
  184. no_change_color:
  185.         jmp     wait_for_event
  186. ;---------------------------------------------------------------------
  187. draw_window:
  188.         mov     eax,12
  189.         mov     ebx,1
  190.         int     0x40
  191.         ; ‘®§¤ ñ¬ ®ª­®
  192.         xor     eax, eax
  193.         mov     ebx, 300 * 65536 + 309
  194.         mov     ecx, 150 * 65536 + 450
  195.         mov     edx, tcol + 0x14000000  ; color of work area RRGGBB,8->color
  196.         mov     edi, title              ; color of frames    RRGGBB
  197.         int     0x40
  198.         ; ‘®§¤ ñ¬ à ¬ªã £à ä¨ª 
  199.         mov     eax, 13
  200.         mov     ebx, 10 * 65536 + 290
  201.         mov     ecx, 138 * 65536 + 105
  202.         mov     edx, atcol
  203.         int     0x40
  204.         mov     ebx, 12 * 65536 + 286
  205.         mov     ecx, 140 * 65536 + 101
  206.         mov     edx, tcol
  207.         int     0x40
  208.         mov     eax, 38
  209.         mov     edx, atcol
  210.         mov     ebx, 12 * 65536 + 286 + 12
  211.         mov     ecx, 140 * 65536 + 140
  212. @@:     add     ecx, 10 * 65536 + 10
  213.         int     0x40
  214.         cmp     cx, 230                 ; ¯à¨¢ï§ ­® ª ª®®à¤¨­ â ¬ ®ª­ 
  215.         jl      @b
  216.  
  217.         ; ¨è¨¬ ­ §¢ ­¨ï ¯ à ¬¥â஢ (Cpu load, temper, etc...)
  218.         mov     edx, msgs_mon
  219.         mov     ebx, 17 * 65536 + 30
  220.         call    show_text
  221.  
  222.         mov     edx, msgs_mon2
  223.         mov     ebx, 156 * 65536 + 30
  224.         call    show_text
  225.  
  226.         ; ¨á㥬 ª­®¯ª¨ ᬥ­ë 梥â 
  227.         mov     eax, 8
  228.         mov     ebx, 112 * 65536 + 5
  229.         mov     ecx, 30 * 65536 + 6
  230.         mov     edx, 13
  231. @@:     mov     esi, [d_colors - 13 * 4 + edx * 4]
  232.         mov     esi, [esi]
  233.         int     0x40
  234.         add     ecx, 10 * 65536
  235.         inc     edx
  236.         cmp     edx, 13 + 5             ; 5 ª­®¯®ª
  237.         jne     @b
  238.  
  239.         ; ¨è¨¬ § £à㧪㠯à®æ¥áá®à 
  240.         call    cpu_usage
  241.         ;--- ¤®¡ ¢«ï¥¬ ­  £à ä¨ª ---
  242.         mov     esi, d_cpu_load
  243.         call    d_add
  244.         call    d_show
  245.         ;---------------------------
  246.         movzx   ecx, al
  247.         mov     eax, 47
  248.         mov     edx, 121 * 65536 + 30
  249.         xor     esi, esi
  250.         call    digit_len
  251.         int     0x40
  252.  
  253.         ; ¨è¨¬ ¨á¯®«ì§ã¥¬ãî ¯ ¬ïâì
  254.         call    mem_usage
  255.         ;--- ¤®¡ ¢«ï¥¬ ­  £à ä¨ª ---
  256.         mov     esi, d_mem_usage
  257.         call    d_add
  258.         call    d_show
  259.         ;---------------------------
  260.         movzx   ecx, al
  261.         mov     eax, 47
  262.         mov     edx, 121 * 65536 + 40
  263.         xor     esi, esi
  264.         call    digit_len
  265.         int     0x40
  266.  
  267.         cmp     byte[hwm_enable], 0
  268.         jne     show_mon
  269.         ; ¥â ¤ â稪®¢ - ¯¨è¥¬ NO
  270.         mov     ecx, 8  ;<- ª®«¨ç¥á⢮ ¯ à ¬¥â஢
  271.         mov     eax, 4
  272.         mov     ebx, 121 * 65536 + 50
  273.         mov     edx, msg_no
  274.         mov     esi, 3
  275. @@:     int     0x40
  276.         add     ebx, 10
  277.         loop    @b
  278.  
  279.         mov     ecx, 7  ;<- ª®«¨ç¥á⢮ ¯ à ¬¥â஢
  280.         mov     ebx, 260 * 65536 + 30
  281. @@:     int     0x40
  282.         add     ebx, 10
  283.         loop    @b
  284.  
  285.         jmp     no_monitor
  286. show_mon:
  287.         ;…áâì ¤ â稪¨ ¯¨è¨¬ ¨­äã
  288.         call    hwm_get_params
  289.         ;---------------------------
  290.         ; ’¥¬¯¥à âãàã
  291.         mov     ecx, 3
  292.         mov     esi, hwm_temps
  293.         mov     edx, 121 * 65536 + 50
  294.         xor     eax, eax
  295. sh_temp:push    ecx
  296.         lodsw
  297.         push    esi
  298.         ; ॠªæ¨ï ­  ¨§¬¥­¥­¨ï
  299.         xor     esi, esi
  300.         cmp     [old_t1 + ecx * 4 - 4], eax
  301.         je      @f
  302.         mov     [old_t1 + ecx * 4 - 4], eax
  303.         mov     esi, val_mod
  304. @@:     movzx   ecx, al
  305.         push    eax
  306.         mov     eax, 47
  307.         mov     ebx, 0x20000
  308.         int     0x40
  309.         pop     eax
  310.         mov     cl, ah
  311.         mov     eax, 47
  312.         mov     ebx, 0x10000
  313.         add     edx, 15 * 65536
  314.         int     0x40
  315.         sub     edx, 15 * 65536 - 10
  316.         pop     esi
  317.         pop     ecx
  318.         loop    sh_temp
  319.         ;;--- ¤®¡ ¢«ï¥¬ ­  £à ä¨ª temp1 ---
  320.         movzx   eax, word[hwm_temps]
  321.         sub     al, 25
  322.         shl     al, 1
  323.         cmp     ah, 5
  324.         jb      @f
  325.         or      al, 1
  326. @@:
  327.         mov     esi, d_temp1
  328.         call    d_add
  329.         call    d_show
  330.         ;;--- ¤®¡ ¢«ï¥¬ ­  £à ä¨ª temp2 ---
  331.         movzx   eax, word[hwm_temps + 2]
  332.         sub     al, 25
  333.         shl     al, 1
  334.         cmp     ah, 5
  335.         jb      @f
  336.         or      al, 1
  337. @@:
  338.         mov     esi, d_temp2
  339.         call    d_add
  340.         call    d_show
  341.         ;;--- ¤®¡ ¢«ï¥¬ ­  £à ä¨ª temp3 ---
  342.         movzx   eax, word[hwm_temps + 4]
  343.         sub     al, 25
  344.         shl     al, 1
  345.         cmp     ah, 5
  346.         jb      @f
  347.         or      al, 1
  348. @@:
  349.         mov     esi, d_temp3
  350.         call    d_add
  351.         call    d_show
  352.  
  353.         ;---------------------------
  354.         ; ‘ª®à®á⨠¢à è¥­¨ï ¢¥­â¨«¥©
  355.         mov     ecx, 5
  356.         mov     esi, hwm_rpms
  357.         mov     edx, 121 * 65536 + 80
  358. sh_fan: push    ecx
  359.         lodsd
  360.         push    esi
  361.         ;ॠªæ¨ï ­  ¨§¬¥­¥­¨ï
  362.         xor     esi, esi
  363.         cmp     [old_f1 + ecx * 4 - 4], eax
  364.         je      @f
  365.         mov     [old_f1 + ecx * 4 - 4], eax
  366.         mov     esi, val_mod
  367. @@:     mov     ecx, eax
  368.         call    digit_len
  369.         mov     eax, 47
  370.         int     0x40
  371.         add     edx, 10
  372.         pop     esi
  373.         pop     ecx
  374.         loop    sh_fan
  375.  
  376.         ;---------------------------
  377.         ;  ¯à㣨
  378.         mov     esi, hwm_voltages
  379.         mov     edi, old_volts
  380.         mov     ecx, 7
  381.         mov     ebx, 260 * 65536 + 30
  382.         mov     edx, Data_String
  383. volt_nxt:
  384.         push    ecx
  385.         push    esi
  386.         call    ftoa
  387.         ;ॠªæ¨ï ­  ¨§¬¥­¥­¨ï
  388.         xor     ecx, ecx
  389.         fld     dword [esi]
  390.         fsub    dword [edi]
  391.         fabs
  392.  
  393.         ; fcomp dword [c_eps]   ; bug in MeOsEmul
  394.         ; fstsw ax
  395.         fcom    dword [c_eps]   ; 0xBADCODE
  396.         fstsw   ax
  397.         finit
  398.  
  399.         sahf
  400.         jc      @f
  401.         mov     ecx, val_mod
  402. @@:     mov     esi, Data_String        ; áç¨â ¥¬ ª®«-¢® ᨬ¢®«®¢
  403. @@:     lodsb
  404.         test    al, al
  405.         jnz     @b
  406.         sub     esi, Data_String
  407.  
  408.         mov     eax, 4
  409.         int     0x40
  410.         add     ebx, 10
  411.         pop     esi
  412.         pop     ecx
  413.         movsd
  414.         loop    volt_nxt
  415.  
  416. no_monitor:
  417.         ;---------------------------
  418.         ; ‘®§¤ ñ¬ ª­®¯ª¨ ¢ª« ¤®ª
  419.         mov     edi, 250 * 65536 + 25
  420.         mov     ecx, 4
  421.         mov     eax, 8
  422.         mov     ebx, 10 * 65536 + 70
  423.         mov     edx, 2
  424. n_bt:   push    ecx
  425.         mov     ecx, edi
  426.         mov     esi, tcol
  427.         cmp     byte [act_tab], dl
  428.         jne     na1
  429.         mov     esi, atcol
  430. na1:    int     0x40
  431.         inc     edx
  432.         add     ebx, 73 * 65536
  433.         pop     ecx
  434.         loop    n_bt
  435.         ; ¨è¨¬ ­ §¢ ­¨ï ¢ª« ¤®ª
  436.         mov     eax, 4
  437.         mov     ebx, 35 * 65536 + 260
  438.         mov     edx, tab_lab
  439.         mov     ecx, 0x10000000
  440.         mov     esi, 39
  441.         int     0x40
  442.         ; ᮧ¤ ñ¬ à ¬ªã ¢­¨§ã íªà ­ 
  443.         mov     eax, 13
  444.         mov     ebx, 10 * 65536 + 290
  445.         mov     ecx, 275 * 65536 + 160
  446.         mov     edx, atcol
  447.         int     0x40
  448.         mov     ebx, 12 * 65536 + 286
  449.         mov     ecx, 277 * 65536 + 156
  450.         mov     edx, tcol
  451.         int     0x40
  452.         ; à¨á㥬 ¢ë¡à ­­ãî ¢ª« ¤ªã
  453.         mov     al, [act_tab]
  454.         cmp     al, 2
  455.         je      info_tab
  456.         cmp     al, 3
  457.         je      test_tab
  458.         cmp     al, 4
  459.         je      config_tab
  460.         jmp     about_tab
  461. end_drow_tab:
  462.         mov     eax, 12
  463.         mov     ebx, 2
  464.         int     0x40
  465.         jmp     wait_for_event
  466. ;--- Drow Info tab ---------------
  467. info_tab:
  468.         include "tab_info.inc"
  469. ;--- Drow test tab ---------------
  470. test_tab:
  471.         include "tab_test.inc"
  472. ;--- Drow Config tab -------------
  473. config_tab:
  474.         include "tab_conf.inc"
  475. ;--- Drow About tab --------------
  476. about_tab:
  477.         include "tab_about.inc"
  478. ;---------------------------------------------------------------------
  479.         include "system.inc"
  480.         include "hwm.inc"
  481.         include "diag.inc"
  482.  
  483.  
  484. DATA
  485. act_tab         db      2                       ; ®¬¥à  ªâ¨¢­®© ¢ª« ¤ª¨
  486. tab_lab         db      'Info       Tests      Configs     About'
  487. title           db      'Ghost Monitor v0.4 [23/05/07]',0
  488.  
  489. msgs_mon mls \
  490.         'CPU Load (%)',\
  491.         'Mem Usage(%)',\
  492.         'Temp1',\
  493.         'Temp2',\
  494.         'Temp3',\
  495.         'Fan1',\
  496.         'Fan2',\
  497.         'Fan3',\
  498.         'Fan4',\
  499.         'Fan5'
  500.  
  501. msgs_mon2 mls \
  502.         'Vcore',\
  503.         'AGP',\
  504.         '+3.3V',\
  505.         'AVcc (+5V)',\
  506.         '+12V',\
  507.         '-12V',\
  508.         '-5V'
  509.  
  510. msg_yes         db      'Yes'
  511. msg_no          db      'N/A'
  512.  
  513. update_time     dd      300                     ; ¯¥à¨®¤ ®¡­®¢«¥­¨ï ¢ á®âëå ¤®«ïå ᥪ㭤ë
  514. d_colors        dd      d_cpu_load, d_mem_usage, d_temp1, d_temp2, d_temp3
  515. c_eps           dd      0.01
  516.  
  517. ; –¢¥â  £à ä¨ª®¢
  518. colors:         dd      0xff0000, 0xff00, 0xff, 0xffffff, tcol, 0xFF7E23, 0x8BA169, 0xff0000    ; ¯¥à¢ë© ¨ ¯®á«¥¤­¨© à ¢­ë
  519. colors_end:
  520. ;---------------------------------------------------------------------
  521. UDATA
  522.  
  523. test_pid        dd      ?                       ; ¥á«¨ test_id == 0 - ­¥ ¨¬¥¥â á¬ëá« 
  524. test_id         db      ?                       ; 0 - â¥áâ ­¥ § ¯ã襭 (ᮮ⢥âáâ¢ã¥â ü ª­®¯ª¨ 6..10)
  525. diag_add_v      db      ?                       ; 0 - ­¥ ¤®¡ ¢«ïâì ¤ ­­ë¥ ­  £à ä¨ª, !0 - ¤®¡ ¢«ïâì
  526.  
  527. Vendor:         times   12 db ?
  528. CPU_fam:        db      ?
  529. CPU_mod:        db      ?
  530. CPU_type:       db      ?
  531. CPU_mmx:        db      ?
  532.  
  533. ; „«ï ॠªæ¨¨ ­  ¨§¬¥­¥­¨ï
  534. old_t1:         dd      ?       ; ¯®á«¥¤­¥¥ §­ ç¥­¨¥ temp1
  535. old_t2:         dd      ?       ; ...
  536. old_t3:         dd      ?
  537. old_f1:         dd      ?
  538. old_f2:         dd      ?
  539. old_f3:         dd      ?
  540. old_volts:      times   7 dd ?
  541.  
  542. ; ƒà䨪¨
  543. diag_beg:
  544. d_cpu_load:     dd      ?
  545.                 times 286 db ?
  546.  
  547. d_mem_usage:    dd      ?
  548.                 times 286 db ?
  549.  
  550. d_temp1:        dd      ?
  551.                 times 286 db ?
  552.  
  553. d_temp2:        dd      ?
  554.                 times 286 db ?
  555.  
  556. d_temp3:        dd      ?
  557.                 times 286 db ?
  558. diag_end:
  559.  
  560. ; --- á⥪ â¥áâ , ¢®¨§¡¥¦ ­¨¥ £«îª®¢ ­¥ ¯¥à¥­®á¨âì ¢ ¤à㣮¥ ¬¥áâ® ----
  561. th_stack:       times   1024 db ?
  562. stp:
  563. ;---------------------------------------------------------------------
  564. MEOS_APP_END
  565.