forked from KolibriOS/kolibrios
added program for view list working drivers
git-svn-id: svn://kolibrios.org@9746 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
4f754c9e8a
commit
69f261b5dd
191
programs/other/drv_view/SERVICES.ASM
Normal file
191
programs/other/drv_view/SERVICES.ASM
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
use32
|
||||||
|
org 0
|
||||||
|
|
||||||
|
db 'MENUET01'
|
||||||
|
dd 1
|
||||||
|
dd START
|
||||||
|
dd I_END
|
||||||
|
dd MEM
|
||||||
|
dd STACKTOP
|
||||||
|
dd PARAM
|
||||||
|
dd 0
|
||||||
|
|
||||||
|
include '..\..\macros.inc'
|
||||||
|
START:
|
||||||
|
mcall 40, 0x05
|
||||||
|
mov eax, [PARAM]
|
||||||
|
test eax, eax
|
||||||
|
jnz save_data
|
||||||
|
still:
|
||||||
|
call draw
|
||||||
|
mcall 23, 200 ;2 seconds
|
||||||
|
|
||||||
|
cmp eax,1
|
||||||
|
je still
|
||||||
|
cmp eax,3
|
||||||
|
jnz still
|
||||||
|
|
||||||
|
mcall 17
|
||||||
|
cmp eax,1
|
||||||
|
jz still
|
||||||
|
dec ah
|
||||||
|
jz exit
|
||||||
|
dec ah
|
||||||
|
jnz still
|
||||||
|
;2 - button save in file
|
||||||
|
exit:
|
||||||
|
mcall -1
|
||||||
|
draw:
|
||||||
|
mcall 68, 31, 1
|
||||||
|
mov [final_pointer], ecx
|
||||||
|
mov [start_pointer], ebx
|
||||||
|
mcall 48,3,sc,sc,sizeof.system_colors ;get system colors
|
||||||
|
xor eax,eax
|
||||||
|
mov ebx, 0x00ff017f
|
||||||
|
mov ecx, 0x001501cc
|
||||||
|
mov edx, 0x14000000
|
||||||
|
add edx, [sc.work]
|
||||||
|
mov edi,title
|
||||||
|
mcall
|
||||||
|
|
||||||
|
;mov eax, 13
|
||||||
|
;mov ebx, 0x00080170
|
||||||
|
;mov ecx, 0x0037018c
|
||||||
|
;mov edx, [sc.work_text]
|
||||||
|
;mcall
|
||||||
|
mcall 13, 0x00080170, 0x00370003, [sc.work_text]
|
||||||
|
mcall , , 0x01c00003, ;[sc.work_text]
|
||||||
|
mcall , 0x00080003, 0x0037018c, ;[sc.work_text]
|
||||||
|
mcall , 0x01780003, , ;[sc.work_text]
|
||||||
|
|
||||||
|
;mov eax, 13
|
||||||
|
;mov ebx, 0x000c016a
|
||||||
|
;mov ecx, 0x003a0185
|
||||||
|
;mov edx, [sc.work]
|
||||||
|
;mcall
|
||||||
|
|
||||||
|
mov eax, 4
|
||||||
|
mov ebx, 0x000f001f
|
||||||
|
mov ecx, 0x90000000
|
||||||
|
add ecx, [sc.work_text]
|
||||||
|
mov edx, table_title
|
||||||
|
mcall
|
||||||
|
|
||||||
|
push dword[start_pointer]
|
||||||
|
@@:
|
||||||
|
;call get_next_service
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 31
|
||||||
|
mov ecx, 2
|
||||||
|
mov edx, [esp]
|
||||||
|
mov edi, data_list
|
||||||
|
mcall
|
||||||
|
|
||||||
|
mov eax, 4
|
||||||
|
mov ebx, print_1
|
||||||
|
add ebx, [index_service]
|
||||||
|
mov ecx, 0xd0000000 ;draw bkgr
|
||||||
|
add ecx, [sc.work_text]
|
||||||
|
mov edx, data_list
|
||||||
|
mov edi, [sc.work]
|
||||||
|
mcall
|
||||||
|
|
||||||
|
mov eax, 47
|
||||||
|
mov ebx, default_settings_47
|
||||||
|
mov ecx, [esp]
|
||||||
|
mov edx, print_2
|
||||||
|
add edx, [index_service]
|
||||||
|
mov esi, 0x50000000
|
||||||
|
add esi, [sc.work_text]
|
||||||
|
mov edi, [sc.work]
|
||||||
|
mcall
|
||||||
|
|
||||||
|
mov eax, 47
|
||||||
|
mov ebx, default_settings_47
|
||||||
|
mov ecx, [data_list.srv_proc]
|
||||||
|
mov edx, print_3
|
||||||
|
add edx, [index_service]
|
||||||
|
mov esi, 0x50000000
|
||||||
|
add esi, [sc.work_text]
|
||||||
|
mov edi, [sc.work]
|
||||||
|
mcall
|
||||||
|
|
||||||
|
add dword[index_service],15
|
||||||
|
pop eax
|
||||||
|
cmp eax,[final_pointer] ;eax - this_pointer
|
||||||
|
push dword[data_list.fd]
|
||||||
|
jnz @b
|
||||||
|
pop eax
|
||||||
|
and dword[index_service], 0 ; clear
|
||||||
|
ret
|
||||||
|
;-------------------------------------------------------------------------------
|
||||||
|
;This function get 'this_pointer' in stack, stack don`t used
|
||||||
|
;get_next_service
|
||||||
|
; mov eax, 68
|
||||||
|
; mov ebx, 31
|
||||||
|
; mov ecx, 2
|
||||||
|
; mov edx, [esp+4]
|
||||||
|
; mov edi, data_list
|
||||||
|
; mcall
|
||||||
|
; ret
|
||||||
|
;-------------------------------------------------------------------------------
|
||||||
|
save_data:
|
||||||
|
mcall 70,file_str
|
||||||
|
mov dword[file_str], 3
|
||||||
|
mov dword[file_str.size], 36 ;40
|
||||||
|
mov dword[file_str.addr], data_list
|
||||||
|
mcall 68, 31, 1
|
||||||
|
mov [final_pointer], ecx
|
||||||
|
mov [start_pointer], ebx
|
||||||
|
push dword[start_pointer]
|
||||||
|
@@:
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 31
|
||||||
|
mov ecx, 2
|
||||||
|
mov edx, [esp]
|
||||||
|
mov edi, data_list
|
||||||
|
mcall
|
||||||
|
mcall 70, file_str
|
||||||
|
add dword[file_str.pos], 36 ;40
|
||||||
|
pop eax
|
||||||
|
cmp eax,[final_pointer] ;eax - this_pointer
|
||||||
|
push dword[data_list.fd]
|
||||||
|
jnz @b
|
||||||
|
pop eax
|
||||||
|
jmp still
|
||||||
|
ret
|
||||||
|
title: db 'list_services',0
|
||||||
|
table_title: db ' Service_name | Handler | Service_proc',0
|
||||||
|
index_service: dd 0
|
||||||
|
start_pointer: dd 0
|
||||||
|
final_pointer: dd 0
|
||||||
|
|
||||||
|
data_list:
|
||||||
|
.name: rb 16
|
||||||
|
.fd: rd 1
|
||||||
|
.bk: rd 1
|
||||||
|
.base: rd 1
|
||||||
|
.entry: rd 1
|
||||||
|
.srv_proc: rd 1
|
||||||
|
|
||||||
|
file_str:
|
||||||
|
dd 2 ;rewrite this value = 3
|
||||||
|
.pos: dd 0
|
||||||
|
dd 0
|
||||||
|
.size: dd 0
|
||||||
|
.addr: dd 0
|
||||||
|
;db '/tmp0/1/log_services.log',0
|
||||||
|
db 0
|
||||||
|
dd PARAM
|
||||||
|
sc system_colors
|
||||||
|
|
||||||
|
default_settings_47 = 0x00080100
|
||||||
|
print_1 = 0x0015003f
|
||||||
|
print_2 = 0x00ac003f
|
||||||
|
print_3 = 0x0113003f
|
||||||
|
PARAM: rb 256
|
||||||
|
I_END:
|
||||||
|
rb 256
|
||||||
|
align 16
|
||||||
|
STACKTOP:
|
||||||
|
MEM:
|
BIN
programs/other/drv_view/SERVICES.kex
Normal file
BIN
programs/other/drv_view/SERVICES.kex
Normal file
Binary file not shown.
2
programs/other/drv_view/Tupfile.lua
Normal file
2
programs/other/drv_view/Tupfile.lua
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||||
|
tup.rule("SERVICES.ASM", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "drv_view")
|
Loading…
Reference in New Issue
Block a user