Subversion Repositories Kolibri OS

Rev

Rev 3628 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3628 Rev 6165
1
; Keyboard indicators v0.2
1
; Keyboard indicators v0.2
2
; by Albom and IgorA
2
; by Albom and IgorA
3
 
3
 
4
use32
4
use32
5
 org 0
5
 org 0
6
 db 'MENUET01'
6
 db 'MENUET01'
7
 dd 1
7
 dd 1
8
 dd _start
8
 dd _start
9
 dd _end
9
 dd _end
10
 dd _memory
10
 dd _memory
11
 dd stacktop
11
 dd stacktop
12
 dd 0
12
 dd 0
13
 dd sys_path
13
 dd sys_path
14
 
14
 
15
include '../../macros.inc'
15
include '../../macros.inc'
16
include '../../proc32.inc'
16
include '../../proc32.inc'
17
include '../../develop/libraries/box_lib/load_lib.mac'
17
include '../../develop/libraries/box_lib/load_lib.mac'
18
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
18
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
19
;include 'mem.inc'
19
;include 'mem.inc'
20
;include 'dll.inc'
20
;include 'dll.inc'
21
include 'lang.inc'
21
include 'lang.inc'
22
 
22
 
23
@use_library ;_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
23
@use_library ;_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
24
 
24
 
25
align 4
25
align 4
26
_start:
26
_start:
27
 load_libraries l_libs_start,l_libs_end
27
 load_libraries l_libs_start,l_libs_end
28
 mcall 48,3,sc,sizeof.system_colors
28
 mcall 48,3,sc,sizeof.system_colors
29
 mcall 40,0x27
29
 mcall 40,0x27
30
 
30
 
31
 init_checkboxes2 check_boxes,check_boxes_end
31
 init_checkboxes2 check_boxes,check_boxes_end
32
 check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc
32
 check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc
33
 call _key_set
33
 call _key_set
34
 
34
 
35
align 4
35
align 4
36
red_win:
36
red_win:
37
 call draw_window
37
 call draw_window
38
 
38
 
39
 
39
 
40
align 4
40
align 4
41
still:
41
still:
42
 mcall 10
42
 mcall 10
43
 
43
 
44
 cmp al,1 ;èçì. ïîëîæåíèå îêíà
44
 cmp al,1 ;èçì. ïîëîæåíèå îêíà
45
 jz red_win
45
 jz red_win
46
 cmp al,2
46
 cmp al,2
47
 jz key
47
 jz key
48
 cmp al,3
48
 cmp al,3
49
 jz button
49
 jz button
50
 
50
 
51
 ;stdcall [check_box_mouse], ch1
51
 ;stdcall [check_box_mouse], ch1
52
 ;stdcall [check_box_mouse], ch2
52
 ;stdcall [check_box_mouse], ch2
53
 ;stdcall [check_box_mouse], ch3
53
 ;stdcall [check_box_mouse], ch3
54
 
54
 
55
 jmp still
55
 jmp still
56
 
56
 
57
;óñòàíîâèòü îáùåñèñòåìíûå "ãîðÿ÷èå êëàâèøè"
57
;óñòàíîâèòü îáùåñèñòåìíûå "ãîðÿ÷èå êëàâèøè"
58
align 4
58
align 4
59
_key_set:
59
_key_set:
60
mov eax, 66
60
mov eax, 66
61
mov ebx, 4
61
mov ebx, 4
62
mov edx, 0
62
mov edx, 0
63
mov cl, 69
63
mov cl, 69
64
int 0x40
64
int 0x40
65
 
65
 
66
mov eax, 66
66
mov eax, 66
67
mov ebx, 4
67
mov ebx, 4
68
mov edx, 0
68
mov edx, 0
69
mov cl, 58
69
mov cl, 58
70
int 0x40
70
int 0x40
71
 
71
 
72
mov eax, 66
72
mov eax, 66
73
mov ebx, 4
73
mov ebx, 4
74
mov edx, 0
74
mov edx, 0
75
mov cl, 70
75
mov cl, 70
76
int 0x40
76
int 0x40
77
 
77
 
78
ret
78
ret
79
 
79
 
80
align 4
80
align 4
81
draw_window:
81
draw_window:
82
pushad
82
pushad
83
 mcall 12,1
83
 mcall 12,1
84
 xor eax,eax
-
 
85
 mov ebx,(10 shl 16)+100
-
 
86
 mov ecx,(10 shl 16)+75
-
 
87
 mov edx,[sc.work]
84
 mov edx, [sc.work]
88
 or edx,(2 shl 24)+0x10000000+0x20000000
85
 or  edx, 0x34000000
89
 mov edi,[sc.grab] ;[sc.frame]
-
 
90
 mov esi,[sc.grab]
-
 
91
 int 0x40
-
 
92
 
-
 
93
 mov eax,8
-
 
94
 mov ebx,(80 shl 16)+10
86
 mcall 0, (10 shl 16)+100, (10 shl 16)+75
95
 mov cx,-15
-
 
96
 shl ecx,16
-
 
97
 mov cx,10
-
 
98
 mov edx,1
-
 
99
 mov esi,[sc.grab_button]
-
 
100
 int 0x40
-
 
101
 
87
 
102
 stdcall [check_box_draw], ch1
88
 stdcall [check_box_draw], ch1
103
 stdcall [check_box_draw], ch2
89
 stdcall [check_box_draw], ch2
104
 stdcall [check_box_draw], ch3
90
 stdcall [check_box_draw], ch3
105
 mcall 12,2
91
 mcall 12,2
106
popad
92
popad
107
 ret
93
 ret
108
 
94
 
109
align 4
95
align 4
110
key:
96
key:
111
 mcall 2
97
 mcall 2
112
 call _indicators_check
98
 call _indicators_check
113
 jmp still
99
 jmp still
114
 
100
 
115
align 4
101
align 4
116
_indicators_check:
102
_indicators_check:
117
pusha
103
pusha
118
 mov eax, 66
104
 mov eax, 66
119
 mov ebx, 3
105
 mov ebx, 3
120
 int 40h
106
 int 40h
121
 
107
 
122
test_ins:
108
test_ins:
123
 test eax, 0x80
109
 test eax, 0x80
124
 jz @f
110
 jz @f
125
 bts dword[ch1.flags],1
111
 bts dword[ch1.flags],1
126
 jmp test_caps
112
 jmp test_caps
127
@@:
113
@@:
128
 btr dword[ch1.flags],1
114
 btr dword[ch1.flags],1
129
 
115
 
130
test_caps:
116
test_caps:
131
 test eax, 0x40
117
 test eax, 0x40
132
 jz @f
118
 jz @f
133
 bts dword[ch2.flags],1
119
 bts dword[ch2.flags],1
134
 jmp test_scroll
120
 jmp test_scroll
135
@@:
121
@@:
136
 btr dword[ch2.flags],1
122
 btr dword[ch2.flags],1
137
 
123
 
138
test_scroll:
124
test_scroll:
139
 test eax, 0x100
125
 test eax, 0x100
140
 jz @f
126
 jz @f
141
 bts dword[ch3.flags],1
127
 bts dword[ch3.flags],1
142
 jmp test_ok
128
 jmp test_ok
143
@@:
129
@@:
144
 btr dword[ch3.flags],1
130
 btr dword[ch3.flags],1
145
 
131
 
146
test_ok:
132
test_ok:
147
 call draw_window
133
 call draw_window
148
popa
134
popa
149
ret
135
ret
150
 
136
 
151
align 4
137
align 4
152
button:
138
button:
153
 mcall 17
139
 mcall 17
154
 cmp ah,1
140
 cmp ah,1
155
 jne still
141
 jne still
156
.exit:
142
.exit:
157
 mcall -1
143
 mcall -1
158
 
144
 
159
 
145
 
160
check_boxes:
146
check_boxes:
161
ch1 check_box2 (5 shl 16)+15,(5 shl 16)+10,5, 0xffffff,0x8000,0xff,\
147
ch1 check_box2 (5 shl 16)+15,(5 shl 16)+10,5, 0xffffff,0x8000,0xff,\
162
 txt_160,0+ch_flag_middle
148
 txt_160,0+ch_flag_middle
163
ch2 check_box2 (5 shl 16)+15,(17 shl 16)+10,5, 0xffffff,0x8000,0xff,\
149
ch2 check_box2 (5 shl 16)+15,(17 shl 16)+10,5, 0xffffff,0x8000,0xff,\
164
 txt_159,0+ch_flag_middle
150
 txt_159,0+ch_flag_middle
165
ch3 check_box2 (5 shl 16)+15,(29 shl 16)+10,5, 0xffffff,0x8000,0xff,\
151
ch3 check_box2 (5 shl 16)+15,(29 shl 16)+10,5, 0xffffff,0x8000,0xff,\
166
 txt_158,0+ch_flag_middle
152
 txt_158,0+ch_flag_middle
167
check_boxes_end:
153
check_boxes_end:
168
 
154
 
169
if lang eq it
155
if lang eq it
170
	txt_160 db 'Bloc Num',0
156
	txt_160 db 'Bloc Num',0
171
	txt_159 db 'Bloc Maiusc',0
157
	txt_159 db 'Bloc Maiusc',0
172
	txt_158 db 'Bloc Scorr',0
158
	txt_158 db 'Bloc Scorr',0
173
else
159
else
174
	txt_160 db 'Num',0
160
	txt_160 db 'Num',0
175
	txt_159 db 'Caps',0
161
	txt_159 db 'Caps',0
176
	txt_158 db 'Scroll',0
162
	txt_158 db 'Scroll',0
177
end if
163
end if
178
head_f_i:
164
head_f_i:
179
head_f_l db 'Ñèñòåìíàÿ îøèáêà',0
165
head_f_l db 'Ñèñòåìíàÿ îøèáêà',0
180
 
166
 
181
system_dir_0 db '/sys/lib/'
167
system_dir_0 db '/sys/lib/'
182
lib_name_0 db 'box_lib.obj',0
168
lib_name_0 db 'box_lib.obj',0
183
err_msg_found_lib_0 db 'Íå íàéäåíà áèáëèîòåêà box_lib.obj',0
169
err_msg_found_lib_0 db 'Íå íàéäåíà áèáëèîòåêà box_lib.obj',0
184
err_msg_import_0 db 'Îøèáêà ïðè èìïîðòå áèáëèîòåêè box_lib',0
170
err_msg_import_0 db 'Îøèáêà ïðè èìïîðòå áèáëèîòåêè box_lib',0
185
 
171
 
186
l_libs_start:
172
l_libs_start:
187
 lib_0 l_libs lib_name_0, sys_path, library_path, system_dir_0,\
173
 lib_0 l_libs lib_name_0, sys_path, library_path, system_dir_0,\
188
 err_msg_found_lib_0,head_f_l,import_box_lib,err_msg_import_0,head_f_i
174
 err_msg_found_lib_0,head_f_l,import_box_lib,err_msg_import_0,head_f_i
189
l_libs_end:
175
l_libs_end:
190
 
176
 
191
align 4
177
align 4
192
import_box_lib:
178
import_box_lib:
193
 ;init dd sz_init
179
 ;init dd sz_init
194
 init_checkbox dd sz_init_checkbox
180
 init_checkbox dd sz_init_checkbox
195
 check_box_draw dd sz_check_box_draw
181
 check_box_draw dd sz_check_box_draw
196
 check_box_mouse dd sz_check_box_mouse
182
 check_box_mouse dd sz_check_box_mouse
197
 dd 0,0
183
 dd 0,0
198
 ;sz_init db 'lib_init',0
184
 ;sz_init db 'lib_init',0
199
 sz_init_checkbox db 'init_checkbox2',0
185
 sz_init_checkbox db 'init_checkbox2',0
200
 sz_check_box_draw db 'check_box_draw2',0
186
 sz_check_box_draw db 'check_box_draw2',0
201
 sz_check_box_mouse db 'check_box_mouse2',0
187
 sz_check_box_mouse db 'check_box_mouse2',0
202
 
188
 
203
;mouse_dd dd 0x0
189
;mouse_dd dd 0x0
204
sc system_colors
190
sc system_colors
205
 
191
 
206
_end:
192
_end:
207
align 32
193
align 32
208
 rb 2048
194
 rb 2048
209
stacktop:
195
stacktop:
210
 sys_path rb 1024
196
 sys_path rb 1024
211
 library_path rb 1024
197
 library_path rb 1024
212
_memory:
198
_memory: