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: |