Subversion Repositories Kolibri OS

Compare Revisions

Ignore whitespace Rev 3644 → Rev 3645

/programs/system/spanel/trunk/spanel.asm
1,11 → 1,11
;
; PANEL SETUP
;
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; last update: 09/04/2012
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Code optimizing and refactoring.
;
;
;------------------------------------------------------------------------------
use32
org 0x0
19,17 → 19,18
dd 0x0 ; path
;------------------------------------------------------------------------------
include '../../../macros.inc'
include 'lang.inc'
;------------------------------------------------------------------------------
START:
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
red:
call draw_window
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
still:
mcall 10
 
cmp eax,1 ; redraw request ?
je red
 
38,13 → 39,13
 
cmp eax,3 ; button in buffer ?
je button
 
jmp still
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
key:
mcall 2
 
shr eax,8
cmp eax,'0'
jb still
51,7 → 52,7
 
cmp eax,'9'
jg still
 
mov edi,[ent]
add edi,text
mov esi,edi
59,15 → 60,15
mov ecx,3
cld
rep movsb
 
mov [edi],al
 
jmp red
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
button:
mcall 17
 
cmp ah,1 ; button id=1 ?
jne noclose
 
77,7 → 78,7
noclose:
cmp ah,10
jne no_apply
 
mov esi,text+17
mov edi,panel_ini_data_area ;I_END+10
mov ecx,12
101,7 → 102,7
mcall 9,proc_info,esi
cmp esi,eax
jg all_terminated
 
mov eax,[ebx+10]
and eax,not 0x20202000
cmp eax,'@PAN'
111,11 → 112,11
and eax,not 0x2020
cmp ax,'EL'
jne newread
 
mcall 18,2,esi
 
mcall 5,5
 
mov esi,1
jmp newread
;--------------------------------------
137,11 → 138,11
mov [ent],eax
mov [text+eax],dword '0000'
jmp red
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
draw_window:
mcall 12,1
180,33 → 181,56
 
mcall 12,2
ret
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
; DATA AREA
text:
db 'width 0000 : 0 for full screen width <'
db 'buttons 0000 : 0 no frames , 1 frames <'
db 'soften_up 0001 : 0 no , 1 yes <'
db 'soften_down 0001 : 0 no , 1 yes <'
db 'minimize_left 0001 : 0 no , 1 yes <'
db 'minimize_right 0001 : 0 no , 1 yes <'
db 'icons_position 0100 : position in pixels <'
db 'menu_enable 0001 : 0 no , 1 yes <'
db 'setup_enable 0001 : 0 no , 1 yes <'
db 'graph_text 0001 : 0 graphics , 1 text <'
db 'soften_middle 0001 : 0 no , 1 yes <'
db 'icons 0001 : 0 start , 1 activate <'
db ' '
db ' APPLY '
db 'x'
;------------------------------------------------------------------------------
labelt:
db 'Panel setup'
labellen:
;------------------------------------------------------------------------------
if lang eq it
text:
db 'largehzza 0000 : 0 for full screen width <'
db 'pulsanti 0000 : 0 no frames , 1 frames <'
db 'soften_up 0001 : 0 no , 1 si <'
db 'soften_down 0001 : 0 no , 1 si <'
db 'minimize_left 0001 : 0 no , 1 si <'
db 'minimize_right 0001 : 0 no , 1 si <'
db 'posizione icone 0100 : posizione in pixel <'
db 'menu_enable 0001 : 0 no , 1 si <'
db 'setup_enable 0001 : 0 no , 1 si <'
db 'graph_text 0001 : 0 grafica , 1 text <'
db 'soften_middle 0001 : 0 no , 1 si <'
db 'icone 0001 : 0 start , 1 attivato <'
db ' '
db ' Applica '
db 'x'
 
labelt:
db 'Setup pannello'
labellen:
else
text:
db 'width 0000 : 0 for full screen width <'
db 'buttons 0000 : 0 no frames , 1 frames <'
db 'soften_up 0001 : 0 no , 1 yes <'
db 'soften_down 0001 : 0 no , 1 yes <'
db 'minimize_left 0001 : 0 no , 1 yes <'
db 'minimize_right 0001 : 0 no , 1 yes <'
db 'icons_position 0100 : position in pixels <'
db 'menu_enable 0001 : 0 no , 1 yes <'
db 'setup_enable 0001 : 0 no , 1 yes <'
db 'graph_text 0001 : 0 graphics , 1 text <'
db 'soften_middle 0001 : 0 no , 1 yes <'
db 'icons 0001 : 0 start , 1 activate <'
db ' '
db ' APPLY '
db 'x'
 
labelt:
db 'Panel setup'
labellen:
end if
;------------------------------------------------------------------------------
align 4
ent dd 17
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
panel_start:
dd 7
215,7 → 239,7
dd 0
dd 0
db '/RD/1/@PANEL',0
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
dat_write:
dd 2
224,9 → 248,9
dd 5*12+1
dd panel_ini_data_area ;I_END+10
db 'PANEL.DAT',0
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
IM_END:
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
proc_info:
rb 1024
234,10 → 258,10
align 4
rb 1024
stack_top:
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
align 4
panel_ini_data_area:
rb 61
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
I_END:
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
/programs/system/ss/trunk/@ss.asm
37,7 → 37,7
jne @f
mov [type],dword 0
;--------------------------------------
align 4
align 4
@@:
cmp [I_Param],dword 'ASSM'
jne bgr_changed
135,7 → 135,7
mov [addy2],1
jmp drawsswin
;--------------------------------------
align 4
align 4
asminit: ; for "assembler" - assembler sources demo
; get size of file
mov [fileinfo],dword 5
155,26 → 155,26
jz @f
mcall 68,13,[fileinfo.point]
;--------------------------------------
align 4
align 4
.no_file:
mov [type],dword 0
jmp drawsswin
;--------------------------------------
align 4
align 4
@@:
mov dword [delay],1 ;25 - old value
;--------------------------------------
align 4
align 4
asminit1:
mov eax,[fileinfo.point]
mov [stringstart],eax
mov dword [stringlen],1
;--------------------------------------
align 4
align 4
newpage:
mov word [stringpos],10
;--------------------------------------
align 4
align 4
drawsswin:
xor eax,eax
movzx ebx,[x_max]
186,7 → 186,7
xor edx,edx
mcall 13
;--------------------------------------
align 4
align 4
tstill:
mcall 23,[delay]
test eax,eax
201,13 → 201,13
call draw_line
jmp tstill
;--------------------------------------
align 4
align 4
thr_end:
cmp [type],dword 24
jne @f
mcall 68,13,[fileinfo.point]
;--------------------------------------
align 4
align 4
@@:
and [params], not 1
or eax,-1
233,7 → 233,7
 
dec edi
;--------------------------------------
align 4
align 4
addstring:
add word [stringpos],10
add edi,2
244,7 → 244,7
jb tstill
jmp newpage
;--------------------------------------
align 4
align 4
noaddstring:
mov ebx,10*65536
mov bx,[stringpos]
268,12 → 268,12
add [lx2],eax
mov eax,[addy2]
add [ly2],eax
 
cmp [lx1],1
jge dl1
mov [addx1],1
;--------------------------------------
align 4
align 4
dl1:
cmp [lx2],1
jge dl2
280,7 → 280,7
 
mov [addx2],1
;--------------------------------------
align 4
align 4
dl2:
cmp [lx1],esi
jbe dl3
287,7 → 287,7
 
mov [addx1],0xffffffff
;--------------------------------------
align 4
align 4
dl3:
cmp [lx2],esi
jbe dl4
294,13 → 294,13
 
mov [addx2],0xffffffff
;--------------------------------------
align 4
align 4
dl4:
cmp [ly1],1
jge dl5
mov [addy1],1
;--------------------------------------
align 4
align 4
dl5:
cmp [ly2],2
jge dl6
307,7 → 307,7
 
mov [addy2],1
;--------------------------------------
align 4
align 4
dl6:
cmp [ly1],edi
jbe dl7
314,7 → 314,7
 
mov [addy1],-1
;--------------------------------------
align 4
align 4
dl7:
cmp [ly2],edi
jbe dl8
321,12 → 321,12
 
mov [addy2],-1
;--------------------------------------
align 4
align 4
dl8:
mov eax,[lx2]
cmp [lx1],eax
jz dnol
 
mov bx,word [lx1]
shl ebx,16
mov bx,word [lx2]
334,12 → 334,12
mov cx,word [ly1]
shl ecx,16
mov cx,word [ly2]
 
mov edx,[lcolor]
and edx,0xffffff
mcall 38
;--------------------------------------
align 4
align 4
dnol:
add [lcolor],0x010201
ret
348,7 → 348,7
sthread: ; start of execution
call sdraw_window
;--------------------------------------
align 4
align 4
sstill:
mcall 10 ; wait here for event
dec eax ; redraw request ?
371,7 → 371,7
mov eax,-1 ; close this program
mcall
;--------------------------------------
align 4
align 4
snoclose:
cmp ah,7
jne nosetfl
382,7 → 382,7
call drawtime
jmp sstill
;--------------------------------------
align 4
align 4
nosetfl:
test [params],1
jnz sstill
471,7 → 471,7
mcall ,<100,215>,<100,70>,0x13400088,,title
 
mcall 8,<47,10>,<31,10>,2,0x702050
 
push ebx
add ebx,13*65536
mov edi,ebx
478,7 → 478,7
inc edx
mcall
pop ebx
 
add ecx,15*65536
inc edx
mcall
543,7 → 543,7
mcall 8,,,0x80000007 ; before we need delete button
; otherwise, a few hours later the application will spend all buttons of system
mcall ,<150,10>,<45,10>,7,0xe0e0e0 ; then create button
 
mov edx,flag
bt dword [params],0
jc setf
/programs/system/test/trunk/makefile
0,0 → 1,18
#!gmake
# Macro
FASM=/opt/bin/fasm
KPACK=/opt/bin/kpack
LANG=lang.inc
FILE=test
SOURCE=${FILE}.asm
OUT=${FILE}.bin
 
en:
echo "lang fix en" > ${LANG}
${FASM} ${SOURCE} ${OUT}
it:
echo "lang fix it" > ${LANG}
${FASM} ${SOURCE} ${OUT}
 
clean:
rm -f ${LANG} ${OUT}
/programs/system/test/trunk/test.asm
15,6 → 15,7
dd 0x0 , 0x0 ; I_Param , I_Icon
 
include '../../../macros.inc'
include 'lang.inc'
 
START: ; start of execution
 
91,11 → 92,8
notest8:
 
 
 
 
jmp still
 
 
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
142,32 → 140,49
 
; DATA AREA
 
if lang eq it
text:
db 'Il programma usa 0x10000 byte di memoria'
db ' '
db 'Open debug board for rezult information '
db ' '
db ' CLI '
db ' '
db ' STI '
db ' '
db ' MOV [0x10000],BYTE 1 '
db ' '
db ' JMP DWORD 0x10000 '
db ' '
db ' MOV ESP,0 & PUSH EAX '
db ' '
db ' IN Al,0x60 '
db ' '
db ' OUT 0x60,AL '
db 'x '
else
text:
db 'Application uses 0x10000 bytes of memory'
db ' '
db 'Open debug board for rezult information '
db ' '
db ' CLI '
db ' '
db ' STI '
db ' '
db ' MOV [0x10000],BYTE 1 '
db ' '
db ' JMP DWORD 0x10000 '
db ' '
db ' MOV ESP,0 & PUSH EAX '
db ' '
db ' IN Al,0x60 '
db ' '
db ' OUT 0x60,AL '
db 'x '
end if
 
text:
 
db 'Application uses 0x10000 bytes of memory'
db ' '
db 'Open debug board for rezult information '
db ' '
db ' CLI '
db ' '
db ' STI '
db ' '
db ' MOV [0x10000],BYTE 1 '
db ' '
db ' JMP DWORD 0x10000 '
db ' '
db ' MOV ESP,0 & PUSH EAX '
db ' '
db ' IN Al,0x60 '
db ' '
db ' OUT 0x60,AL '
db 'x '
 
 
 
tlabel:
db 'Kolibri protection test',0
 
 
I_END:
/programs/system/vrr/trunk/makefile
0,0 → 1,19
#!gmake
 
# Macro
FASM=/opt/bin/fasm
KPACK=/opt/bin/kpack
LANG=lang.inc
FILE=vrr
SOURCE=${FILE}.asm
OUT=${FILE}.bin
 
en:
echo "lang fix en" > ${LANG}
${FASM} ${SOURCE} ${OUT}
it:
echo "lang fix it" > ${LANG}
${FASM} ${SOURCE} ${OUT}
 
clean:
rm -f ${LANG} ${OUT}
/programs/system/vrr/trunk/vrr.asm
8,9 → 8,9
; Compile with FASM for Menuet
;
use32
 
org 0x0
 
db 'MENUET01' ; 8 byte id
dd 0x01 ; header version
dd START ; start of code
18,10 → 18,11
dd 0x5000 ; memory for app
dd 0x4ff0 ; esp
dd 0x0 , 0x0 ; I_Param , I_Icon
 
include '..\..\..\macros.inc'
include 'lang.inc'
START: ; start of execution
 
mov eax,14
mcall
mov ebx,eax
30,7 → 31,7
shl eax,16
shr eax,16
mov [oldY],eax
 
; Test on installed video driver
mov eax,21
mov ebx,13
42,7 → 43,7
call warning_info
retn
;
 
vrr_00:
call get_vert_rate
mov eax,[currvm]
50,12 → 51,12
call get_pid
red:
call draw_window ; at first, draw the window
 
still:
 
mov eax,10 ; check here for event
mcall
 
cmp eax,1 ; redraw request ?
je red
cmp eax,2 ; key in buffer ?
64,7 → 65,7
je button
call get_pid
jmp still
 
key: ; key
mov al,2 ; just read it
mcall
138,11 → 139,11
xor ax,ax
mov [vmselect],ax
jmp red
 
button: ; button
mov al,17 ; get id
mcall
 
cmp ah,1 ; button id=1 ?
jne noclose
mov eax,-1 ; close this program
181,21 → 182,21
call restore_mode
button_loc_06:
jmp still
 
 
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
 
 
draw_window:
 
dw_continue:
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
 
; DRAW WINDOW
mov eax,0 ; function 0 : define and draw window
mov ebx,100*65536+400 ; [x start] *65536 + [x size]
203,7 → 204,7
mov edx,0x140020C0;0x00000040 ; color of work area RRGGBB,8->color glide
mov edi,title
mcall
 
; BUTTONS
mov eax,8
mov edx,0
228,17 → 229,17
add ebx,90*65536
inc dl ;dl=7
mcall ; Button 'Default'
 
call draw_face
 
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
 
ret
 
;------------Subfunctions-----------
 
restore_mode:
push eax
push ebx
251,9 → 252,9
pop ecx
pop eax
retn
 
 
 
; IN: edx = RefRate*65536+No.VideoMode
set_my_mode:
push ecx
274,7 → 275,7
pop ebx
pop ecx
retn
 
; IN: eax = 0/1 - -/+ 1Hz
inc_dec_rate:
push ebx
289,7 → 290,7
pop ecx
pop ebx
retn
 
get_pid:
mov eax,9
mov ebx,buffer
302,7 → 303,7
mov ax,[ebx+4]
mov [mypno],ax
retn
 
get_vert_rate:
xor eax,eax
mov ebx,eax
318,11 → 319,11
rol ecx,16
mov [currvm],ecx
retn
 
get_initial_videomode:
retn
 
 
draw_table:
mov eax,13
mov ebx,9*65536+303
425,7 → 426,7
add edx,4
mcall
retn
 
;IN: ah=keycode
safekey:
sub ah,30h
474,7 → 475,7
call draw_window
pop bx
retn
 
; IN: ebx=Xstart*65536+Xend
; ecx=Ystart*65536+Yend
; edx=color
514,7 → 515,7
pop ebx
pop eax
retn
 
;
; OUT: eax = 0 - no event
protect_and_return:
564,7 → 565,7
par_loc_02:
pop ebx
retn
 
debug_ftr:
; xor eax,eax
; mov ebx,eax
580,7 → 581,7
; add edx,54*65536
; mcall
retn
 
print_cur_vm:
mov eax,4
mov ebx,20*65536+40
689,7 → 690,7
pop esi
pcv_loc_00:
retn
 
print_all_herz:
push esi
push edi
733,7 → 734,7
pop edi
pop esi
retn
 
; IN: ebx=X*65536+Y - coordinate
print_noherz:
push eax
754,7 → 755,7
pop ebx
pop eax
retn
 
; IN: eax=numer_of_herz
; ebx=X*65536+Y
print_herz:
778,14 → 779,14
pop ebx
pop eax
retn
 
get_pixelclock:
retn
 
; light version of function
calc_refrate:
retn
 
rect_select:
mov ax,[vmselect]
; mov [ftr_ebx],eax
833,7 → 834,7
call draw_rect
rs_loc_00:
retn
 
draw_face:
call draw_table
;
917,12 → 918,12
call print_cur_vm
call print_all_herz
retn
 
warning_info:
call warning_window
call warning_loop
retn
 
warning_window:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
969,7 → 970,7
mov ebx,2 ; 2, end of draw
mcall
retn
 
warning_loop:
mov eax,5
mov ebx,13
1021,9 → 1022,9
mcall
jmp warning_loop
retn
 
;------------DATA AREA---------------
 
oldX dd ?
oldY dd ?
initvm dd ?
1038,43 → 1039,73
ftr_eax dd ?
ftr_ebx dd ?
blinkcol dd 0ffh
 
; db 0,0,0,0,0,0,0,0
;_m1 dw 0,0,0,0,0
;_m2 dw 0,0,0,0,0
;_m3 dw 0,0,0,0,0
;_m4 dw 0,0,0,0,0
title db 'Vertical Refresh Rate v2.0 (C) 2003 TRANS',0
_m1280x1024 db '1280x1024'
_m1024x768 db '1024x768 '
_m800x600 db ' 800x600 '
_m640x480 db ' 640x480 '
_mk db 'Key1Key2'
curmode db 'Current mode: '
db ' x x Hz'
cmlen=$-curmode
selmode db ' Select mode: '
selcans db '----x----x---Hz'
noherz db '---'
width db 'Width',11h,10h
tmode db ' Mode '
actions db ' Actions '
button1 db 'Ok' ;len=2
button2 db 'Cancel' ;len=6
button3 db 'Return' ;len=6
button4 db 'Default' ;len=7
strt db 'LAUNCHER '
warn00 db ' W A R N I N G ! '
len_warn00=$-warn00
warn01 db 'V i d e o D r i v e r N O T I n s t a l l e d'
len_warn01=$-warn01
 
if lang eq it
title db 'Vertical Refresh Rate v2.0 (C) 2003 TRANS',0
 
_m1280x1024 db '1280x1024'
_m1024x768 db '1024x768 '
_m800x600 db ' 800x600 '
_m640x480 db ' 640x480 '
_mk db 'Key1Key2'
 
curmode db 'Modalita intera: '
db ' x x Hz'
cmlen=$-curmode
selmode db ' Select mode: '
selcans db '----x----x---Hz'
noherz db '---'
width db 'Width',11h,10h
tmode db ' Modalita '
actions db ' Azioni '
button1 db 'Ok' ;len=2
button2 db 'Cancella' ;len=6
button3 db 'Torna' ;len=6
button4 db 'Default' ;len=7
 
strt db 'LAUNCHER '
 
warn00 db ' A T T E N Z I O N E ! '
len_warn00=$-warn00
warn01 db 'D R I V E R V I D E O N O N I N S T A L L A T O'
len_warn01=$-warn01
else
title db 'Vertical Refresh Rate v2.0 (C) 2003 TRANS',0
 
_m1280x1024 db '1280x1024'
_m1024x768 db '1024x768 '
_m800x600 db ' 800x600 '
_m640x480 db ' 640x480 '
_mk db 'Key1Key2'
 
curmode db 'Current mode: '
db ' x x Hz'
cmlen=$-curmode
selmode db ' Select mode: '
selcans db '----x----x---Hz'
noherz db '---'
width db 'Width',11h,10h
tmode db ' Mode '
actions db ' Actions '
button1 db 'Ok' ;len=2
button2 db 'Cancel' ;len=6
button3 db 'Return' ;len=6
button4 db 'Default' ;len=7
 
strt db 'LAUNCHER '
 
warn00 db ' W A R N I N G ! '
len_warn00=$-warn00
warn01 db 'V i d e o D r i v e r N O T I n s t a l l e d'
len_warn01=$-warn01
end if
 
drvinfo: ; 512 bytes driver info area
; +0 - Full driver name
; +32 - Driver version
1087,8 → 1118,6
org $+64
_m1:
org drvinfo+200h
 
buffer:
I_END:
/programs/system/vrr_m/trunk/makefile
0,0 → 1,15
#!gmake
 
# Macro
FASM=/opt/bin/fasm
KPACK=/opt/bin/kpack
LANG=lang.inc
FILE=vrr_m
SOURCE=${FILE}.asm
OUT=${FILE}.bin
 
en:
${FASM} ${SOURCE} ${OUT}
 
clean:
rm -f ${LANG} ${OUT}
/programs/system/zkey/trunk/makefile
0,0 → 1,16
#!gmake
 
# Macro
FASM=/opt/bin/fasm
KPACK=/opt/bin/kpack
LANG=lang.inc
FILE=ZKEY
SOURCE=${FILE}.ASM
OUT=${FILE}.bin
 
en:
${FASM} ${SOURCE} ${OUT}
 
clean:
rm -f ${LANG} ${OUT}