AMDtemp: added creating file for program "Graph". To save this file, write the path to it as a parameter.

git-svn-id: svn://kolibrios.org@9771 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Doczom
2022-04-17 19:08:35 +00:00
parent 56fdad78b4
commit e7935a8fbd

View File

@@ -7,7 +7,7 @@
dd I_END ; ࠧ<><E0A0A7><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> dd I_END ; ࠧ<><E0A0A7><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
dd MEM ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dd MEM ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dd STACKTOP dd STACKTOP
dd 0 dd PATH
dd 0 dd 0
include '..\..\macros.inc' include '..\..\macros.inc'
include '..\..\KOSfuncs.inc' include '..\..\KOSfuncs.inc'
@@ -19,10 +19,11 @@ START:
mcall SF_SYS_MISC, SSF_LOAD_DRIVER_PE, path_drv, 0 mcall SF_SYS_MISC, SSF_LOAD_DRIVER_PE, path_drv, 0
mov dword[drv_struct.handl],eax mov dword[drv_struct.handl],eax
test eax,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> test eax,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jnz main jz error_drv
jmp error_drv
main: main:
mcall SF_SYS_MISC, SSF_CONTROL_DRIVER, drv_struct mcall SF_SYS_MISC, SSF_CONTROL_DRIVER, drv_struct
cmp byte[PATH], 0
jz still
call add_file call add_file
still: ;void main() still: ;void main()
call draw call draw
@@ -46,9 +47,11 @@ button:
jnz still jnz still
xor byte[flag_micro_info],1 xor byte[flag_micro_info],1
jmp still jmp still
align 4
draw: draw:
mcall SF_REDRAW, SSF_BEGIN_DRAW mcall SF_REDRAW, SSF_BEGIN_DRAW
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sc,sizeof.system_colors mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
mov eax,SF_CREATE_WINDOW mov eax,SF_CREATE_WINDOW
mov ebx,0x00ff013f mov ebx,0x00ff013f
@@ -60,8 +63,10 @@ draw:
mcall SF_SYS_MISC, SSF_CONTROL_DRIVER, drv_struct mcall SF_SYS_MISC, SSF_CONTROL_DRIVER, drv_struct
cmp byte[PATH], 0
jz @f
dec dword[update_flag] dec dword[update_flag]
jnz @F jnz @f
call add_new_item call add_new_item
mov dword[update_flag], 30 mov dword[update_flag], 30
@@: @@:
@@ -163,19 +168,19 @@ draw:
mcall mcall
;;;;;;input data driver;;;;;;;;; ;;;;;;input data driver;;;;;;;;;
mov eax,0x004a0020 mov eax,0x004a0020
mov ebx,drv_data.Tctl ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mov ebx, drv_data.Tctl ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call write_data call write_data
add eax,0x15 add eax,0x15
mov ebx,drv_data.Tmax mov ebx, drv_data.Tmax
call write_data call write_data
add eax,0x2a add eax,0x2a
mov ebx,drv_data.Tcrit mov ebx, drv_data.Tcrit
call write_data call write_data
add eax,0x19 add eax,0x19
mov ebx,drv_data.Tccd1 mov ebx, drv_data.Tccd1
call write_data call write_data
add eax,0x15 add eax,0x15
@@ -207,11 +212,11 @@ draw:
call write_data call write_data
mov eax,0x00E5005f mov eax,0x00E5005f
mov ebx,drv_data.Tdie mov ebx, drv_data.Tdie
call write_data call write_data
mov eax,0x007a004a mov eax,0x007a004a
mov ebx,drv_data.Tcrit_hyst mov ebx, drv_data.Tcrit_hyst
call write_data call write_data
jmp @f jmp @f
.micro: .micro:
@@ -240,7 +245,7 @@ draw:
mcall mcall
mov eax,0x004a0020 mov eax,0x004a0020
mov ebx,drv_data.Tctl mov ebx, drv_data.Tctl
call write_data call write_data
@@: @@:
mcall SF_REDRAW, SSF_END_DRAW mcall SF_REDRAW, SSF_END_DRAW
@@ -251,6 +256,7 @@ draw:
;; ebx=pointer on value ;; ebx=pointer on value
;; ecx register don`t save ;; ecx register don`t save
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
align 4
write_data: write_data:
push eax push eax
push ebx push ebx
@@ -345,10 +351,11 @@ error_drv:
exit: exit:
mcall SF_TERMINATE_PROCESS mcall SF_TERMINATE_PROCESS
align 4
add_file: add_file:
mcall SF_FILE, graph_temp mcall SF_FILE, graph_temp
mov dword[graph_temp], 3 mov dword[graph_temp], 3
mov dword[graph_temp.size], 11 mov dword[graph_temp.size], 10
mov dword[graph_temp.str], graph_start.new_data mov dword[graph_temp.str], graph_start.new_data
mov eax,[drv_data.Tmax] mov eax,[drv_data.Tmax]
mov dword[graph_temp.index], 9 mov dword[graph_temp.index], 9
@@ -356,8 +363,10 @@ add_file:
call int_to_str call int_to_str
mcall SF_FILE, graph_temp mcall SF_FILE, graph_temp
mov dword[graph_temp.index], 20 mov dword[graph_temp.index], 19
mov dword[graph_temp.size], 20
ret ret
align 4
index_item: index_item:
dd 1 dd 1
add_new_item: add_new_item:
@@ -365,20 +374,21 @@ add_new_item:
imul eax,1000 imul eax,1000
mov ebx, graph_start.new_data mov ebx, graph_start.new_data
call int_to_str call int_to_str
mcall SF_FILE, graph_temp mcall SF_FILE, graph_koord_x2 ;save x2=index_item
add dword[graph_temp.index], 11
inc dword[index_item] inc dword[index_item]
mov eax,[drv_data.Tctl] mov eax,[drv_data.Tctl]
mov ebx, graph_start.new_data mov ebx, graph_start.new_data_2
call int_to_str call int_to_str
mcall SF_FILE, graph_temp mcall SF_FILE, graph_temp
add dword[graph_temp.index], 11 add dword[graph_temp.index], 20
ret ret
;eax = int value / 1000 ;eax = int value / 1000
;ebx = *str ;ebx = *str
; <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ; <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>.<2E><><EFBFBD>) <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>.<2E><><EFBFBD>) <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
align 4
int_to_str: int_to_str:
push ecx edx esi push ecx edx esi
mov ecx, '0000' mov ecx, '0000'
@@ -392,8 +402,8 @@ int_to_str:
mov esi, 10 mov esi, 10
push ebx push ebx
add ebx, 3 add ebx, 3
.loop:
and eax, 0x3ff ; 1023 and eax, 0x3ff ; 1023
.loop:
test eax, eax test eax, eax
jz @f jz @f
xor edx, edx xor edx, edx
@@ -406,8 +416,6 @@ int_to_str:
pop ebx pop ebx
add ebx, 8;4 add ebx, 8;4
pop edx pop edx
;mov byte[ebx],'.'
;add ebx, 4
test edx, edx test edx, edx
jz @f jz @f
mov eax, edx mov eax, edx
@@ -464,6 +472,7 @@ drv_data:
.Tcrit_hyst dd -1 .Tcrit_hyst dd -1
.sizeof = $ - drv_data ; .sizeof = $ - drv_data ;
align 4
drv_struct: drv_struct:
.handl dd 0 .handl dd 0
dd 0 dd 0
@@ -471,7 +480,7 @@ drv_struct:
dd 0 dd 0
dd drv_data dd drv_data
dd drv_data.sizeof;52 ; 13*4 dd drv_data.sizeof;52 ; 13*4
align 4
run_notify: run_notify:
dd 7 dd 7
dd 0 dd 0
@@ -480,17 +489,33 @@ run_notify:
dd 0 dd 0
db '/sys/@notify',0 ,0,0,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> db '/sys/@notify',0 ,0,0,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
align 4
update_flag: dd 30 ;1 minut update_flag: dd 30 ;1 minut
graph_start: db '0 1000 0 ' ; 9 byte graph_start: db '0 0000 0 ' ; 9 byte
.new_data: db '0000.0000 ' ; 10-20 byte .new_data: db '0000.0000 ' ; 10-19 byte 10 byte
.new_data_2: db '0000.0000 ' ; 20-29 byte 10 byte
align 4
graph_temp: graph_temp:
dd 2 dd 2
.index: dd 0 .index: dd 0
dd 0 dd 0
.size: dd 20 ; .size: dd 19 ;size 4 first value for Graph
.str: dd graph_start ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .str: dd graph_start ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
db '/tmp0/1/graph_temp.txt',0,0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> db 0
dd PATH
align 4
graph_koord_x2:
dd 3
dd 2 ;index for rewrite 2 value
dd 0
dd 4
dd graph_start.new_data ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
db 0
dd PATH
align 4
PATH:
rb 512 ; buffer for command line. string for save log.
sc system_colors sc system_colors
I_END: I_END:
rd 256 rd 256