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