Rev 5973 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5849 | pathoswith | 1 | ;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; SYSTEM SETTINGS ;; |
||
3 | ;;;;;;;;;;;;;;;;;;;;;;; |
||
4 | |||
3221 | hidnplayr | 5 | format binary as "" |
5849 | pathoswith | 6 | use32 |
7 | org 0 |
||
31 | halyavin | 8 | |
5849 | pathoswith | 9 | db 'MENUET01' |
10 | dd 1 |
||
11 | dd START |
||
12 | dd IM_END |
||
13 | dd I_END |
||
5924 | pathoswith | 14 | dd I_END |
5854 | pathoswith | 15 | dd param |
5849 | pathoswith | 16 | dd 0 |
3221 | hidnplayr | 17 | |
5854 | pathoswith | 18 | include '../../../proc32.inc' |
4825 | gtament | 19 | include '../../../macros.inc' |
5854 | pathoswith | 20 | include '../../../dll.inc' |
5849 | pathoswith | 21 | ;--------------------------------------------------------------- |
5854 | pathoswith | 22 | BootSettings: |
23 | ; Set system language |
||
24 | mov word[param],0 |
||
25 | invoke ini.get_str, sz_ini, sz_system, sz_language, param, 2, 0 |
||
26 | mov ax, [param] |
||
27 | or ax, 0x2020 ; convert to lowercase |
||
7602 | dunkaist | 28 | mov ecx,langMarks.size/2 |
5854 | pathoswith | 29 | mov edi,langMarks |
30 | repnz scasw |
||
31 | jnz @f |
||
32 | neg ecx |
||
7602 | dunkaist | 33 | add ecx,langMarks.size/2 |
5854 | pathoswith | 34 | mcall 21,5 |
5849 | pathoswith | 35 | @@: |
5854 | pathoswith | 36 | |
37 | ; Set font smoothing |
||
38 | mov dword[param],0 |
||
39 | invoke ini.get_str, sz_ini, sz_system, sz_fontSmooth, param, 4, 0 |
||
40 | xor ecx,ecx |
||
41 | mov eax,[param] |
||
42 | or eax,0x20202020 |
||
43 | cmp eax,'off ' |
||
44 | jz @f |
||
45 | inc ecx |
||
46 | cmp eax,'on ' |
||
47 | jz @f |
||
48 | cmp eax,'sbp ' |
||
49 | jnz .skipFont |
||
50 | inc ecx |
||
51 | @@: |
||
52 | mcall 48,10 |
||
53 | .skipFont: |
||
54 | |||
55 | ; Enable/disable system speaker |
||
56 | mov dword[param],0 |
||
57 | invoke ini.get_str, sz_ini, sz_system, sz_speaker, param, 4, 0 |
||
58 | mov eax,[param] |
||
59 | or eax,0x20202020 |
||
60 | cmp eax,'off ' |
||
61 | jz @f |
||
62 | cmp eax,'on ' |
||
63 | jnz .skipSpeaker |
||
64 | inc [speaker_mute] |
||
65 | @@: |
||
5849 | pathoswith | 66 | call _speaker_mute |
5854 | pathoswith | 67 | .skipSpeaker: |
68 | |||
5874 | pathoswith | 69 | ; Set font size |
70 | invoke ini.get_int, sz_ini, sz_system, sz_fontSize, 9 |
||
71 | mov ecx,eax |
||
72 | mcall 48,12 |
||
73 | |||
5854 | pathoswith | 74 | ; Set mouse speed |
75 | invoke ini.get_int, sz_ini, sz_mouse, sz_speed, 1 |
||
76 | mov edx,eax |
||
77 | mcall 18,19,1 |
||
78 | |||
5973 | leency | 79 | ; Set mouse acceleration |
80 | invoke ini.get_int, sz_ini, sz_mouse, sz_acceleration, 1 |
||
5854 | pathoswith | 81 | mov edx,eax |
82 | mcall 18,19,3 |
||
5973 | leency | 83 | |
84 | ; Set mouse double click delay |
||
85 | invoke ini.get_int, sz_ini, sz_mouse, sz_double_click_delay, 1 |
||
86 | mov edx,eax |
||
87 | mcall 18,19,7 |
||
5854 | pathoswith | 88 | |
89 | ; Enable/disable LBA access for applications |
||
90 | mov dword[param],0 |
||
91 | invoke ini.get_str, sz_ini, sz_low_level, sz_lba, param, 4, 0 |
||
92 | xor ecx,ecx |
||
93 | mov eax,[param] |
||
94 | or eax,0x20202020 |
||
95 | cmp eax,'off ' |
||
96 | jz @f |
||
97 | cmp eax,'on ' |
||
98 | jnz .skipLBA |
||
5849 | pathoswith | 99 | inc ecx |
100 | @@: |
||
5854 | pathoswith | 101 | mcall 21,11 |
102 | .skipLBA: |
||
103 | |||
104 | ; Enable/disable PCI access for applications |
||
105 | mov dword[param],0 |
||
106 | invoke ini.get_str, sz_ini, sz_low_level, sz_pci, param, 4, 0 |
||
107 | xor ecx,ecx |
||
108 | mov eax,[param] |
||
109 | or eax,0x20202020 |
||
110 | cmp eax,'off ' |
||
111 | jz @f |
||
112 | cmp eax,'on ' |
||
113 | jnz close |
||
5849 | pathoswith | 114 | inc ecx |
5854 | pathoswith | 115 | @@: |
116 | mcall 21,12 |
||
117 | jmp close |
||
5849 | pathoswith | 118 | ;--------------------------------------------------------------- |
31 | halyavin | 119 | START: |
5854 | pathoswith | 120 | mcall 68,11 |
121 | stdcall dll.Load, @IMPORT |
||
122 | push eax |
||
123 | test eax,eax |
||
124 | jnz close |
||
31 | halyavin | 125 | |
5854 | pathoswith | 126 | cmp [param],dword 'BOOT' |
127 | jz BootSettings |
||
128 | pop eax |
||
5874 | pathoswith | 129 | |
5849 | pathoswith | 130 | ; get current settings |
131 | mcall 26,5 |
||
5854 | pathoswith | 132 | dec eax |
4825 | gtament | 133 | mov [syslang],eax |
127 | mario79 | 134 | |
5849 | pathoswith | 135 | mcall 26,11 |
136 | mov [lba_read],eax |
||
4825 | gtament | 137 | |
5849 | pathoswith | 138 | mcall 26,12 |
139 | mov [pci_acc],eax |
||
4825 | gtament | 140 | |
5849 | pathoswith | 141 | mcall 18,8,1 |
142 | mov [speaker_mute],eax |
||
31 | halyavin | 143 | |
5849 | pathoswith | 144 | mcall 48,9 |
145 | mov [fontSmoothing],eax |
||
31 | halyavin | 146 | |
5874 | pathoswith | 147 | mcall 48,11 |
148 | mov [fontSize],eax |
||
149 | |||
5924 | pathoswith | 150 | loadtxt: |
151 | cmp [syslang],3 |
||
152 | jz .ru |
||
153 | cmp [syslang],5 |
||
154 | jz .et |
||
155 | mov [text],texteng |
||
156 | jmp draw_window |
||
157 | .et: |
||
158 | mov [text],textet |
||
159 | jmp draw_window |
||
160 | .ru: |
||
161 | mov [text],textrus |
||
4825 | gtament | 162 | |
5924 | pathoswith | 163 | draw_window: |
164 | mcall 12,1 |
||
165 | mov ecx,50*65536+32*(4+stringsAmount) |
||
166 | mcall 0,<50,700>,,0xB4111199,0,title |
||
167 | ; Main buttons |
||
168 | mov eax,8 |
||
169 | mov ecx,6*65536+26 |
||
170 | mov edx,4 |
||
171 | mov esi,0x5580c0 |
||
172 | mov ebp,stringsAmount |
||
173 | @@: |
||
174 | mcall ,<490,24> |
||
175 | inc edx |
||
176 | mcall ,<526,24> |
||
177 | inc edx |
||
178 | mcall ,<562,120> |
||
179 | inc edx |
||
180 | add ecx,32*65536 |
||
181 | dec ebp |
||
182 | jnz @b |
||
183 | ; APPLY ALL |
||
184 | add ecx,32*65536 |
||
185 | mcall ,<514,168>,,3,0x005588dd |
||
186 | ; SAVE ALL |
||
187 | add ecx,32*65536 |
||
188 | dec edx |
||
189 | mcall |
||
190 | mcall 12,2 |
||
191 | |||
5849 | pathoswith | 192 | draw_infotext: |
193 | mov eax,[syslang] |
||
194 | mov edi,[text] |
||
5854 | pathoswith | 195 | lea esi,[eax*8+langs] |
5849 | pathoswith | 196 | add edi,28 |
197 | movsd |
||
198 | movsd |
||
199 | add edi,LLL-8 |
||
31 | halyavin | 200 | |
5849 | pathoswith | 201 | mov eax,[lba_read] |
202 | call onoff |
||
203 | mov [edi],ebx |
||
4825 | gtament | 204 | |
5849 | pathoswith | 205 | mov eax,[pci_acc] |
206 | call onoff |
||
207 | mov [edi+LLL],ebx |
||
31 | halyavin | 208 | |
5849 | pathoswith | 209 | mov eax,[speaker_mute] |
210 | call onoff |
||
211 | mov [edi+LLL*2],ebx |
||
4825 | gtament | 212 | |
5849 | pathoswith | 213 | mov ebx,'SUBP' |
214 | mov ecx,'IXEL' |
||
215 | cmp [fontSmoothing],2 |
||
216 | jz @f |
||
217 | mov eax,[fontSmoothing] |
||
218 | call onoff |
||
219 | mov ecx,' ' |
||
220 | @@: |
||
221 | mov [edi+LLL*3],ebx |
||
222 | mov [edi+LLL*3+4],ecx |
||
4825 | gtament | 223 | |
5874 | pathoswith | 224 | mov eax,[fontSize] |
225 | mov bl, 10 |
||
226 | div bl |
||
227 | add ax, '00' |
||
228 | mov [edi+LLL*4],ax |
||
5924 | pathoswith | 229 | ; draw text |
230 | mcall 13,<342,96>,32*stringsAmount,80111199h |
||
4825 | gtament | 231 | mov eax,4 |
5849 | pathoswith | 232 | mov ebx,6*65536+11 |
233 | mov ecx,1ffffffh |
||
234 | mov edx,[text] |
||
4825 | gtament | 235 | mov esi,LLL |
5849 | pathoswith | 236 | mov ebp,stringsAmount |
2478 | mario79 | 237 | newline: |
4825 | gtament | 238 | mcall |
5849 | pathoswith | 239 | add ebx,32 |
4825 | gtament | 240 | add edx,esi |
241 | dec ebp |
||
242 | jnz newline |
||
31 | halyavin | 243 | |
5849 | pathoswith | 244 | mov ebp,2 |
245 | add ebx,32 |
||
2478 | mario79 | 246 | @@: |
4825 | gtament | 247 | mcall |
5849 | pathoswith | 248 | add ebx,32 |
4825 | gtament | 249 | add edx,esi |
250 | dec ebp |
||
251 | jnz @b |
||
5849 | pathoswith | 252 | |
253 | still: |
||
254 | mcall 10 |
||
255 | cmp eax,1 |
||
256 | jz draw_window |
||
257 | |||
258 | cmp eax,2 |
||
259 | jz key |
||
260 | |||
261 | cmp eax,3 |
||
262 | jz button |
||
263 | |||
264 | jmp still |
||
265 | ;--------------------------------------------------------------- |
||
266 | key: |
||
267 | mcall 2 |
||
268 | jmp still |
||
269 | ;--------------------------------------------------------------- |
||
270 | button: |
||
271 | mcall 17 |
||
272 | shr eax,8 |
||
273 | call dword[eax*4+buttonTab-4] |
||
274 | jmp draw_infotext |
||
275 | close: |
||
276 | pop eax |
||
277 | mcall -1 |
||
278 | language1: |
||
279 | dec [syslang] |
||
5854 | pathoswith | 280 | jns @f |
5875 | pathoswith | 281 | mov [syslang],7 |
5854 | pathoswith | 282 | jmp @f |
5849 | pathoswith | 283 | language2: |
284 | inc [syslang] |
||
5875 | pathoswith | 285 | cmp [syslang],8 |
5874 | pathoswith | 286 | jc @f |
5854 | pathoswith | 287 | mov [syslang],0 |
288 | @@: |
||
5924 | pathoswith | 289 | pop eax |
5854 | pathoswith | 290 | jmp loadtxt |
5849 | pathoswith | 291 | LBA1: |
292 | btr [lba_read],0 |
||
293 | ret |
||
294 | LBA2: |
||
295 | bts [lba_read],0 |
||
296 | ret |
||
297 | PCI1: |
||
298 | btr [pci_acc],0 |
||
299 | ret |
||
300 | PCI2: |
||
301 | bts [pci_acc],0 |
||
302 | ret |
||
303 | SPEAKER1: |
||
304 | btr [speaker_mute],0 |
||
305 | ret |
||
306 | SPEAKER2: |
||
307 | bts [speaker_mute],0 |
||
308 | ret |
||
309 | font1: |
||
310 | cmp [fontSmoothing],0 |
||
311 | jz @f |
||
312 | dec [fontSmoothing] |
||
313 | ret |
||
314 | font2: |
||
315 | cmp [fontSmoothing],2 |
||
316 | jz @f |
||
317 | inc [fontSmoothing] |
||
5874 | pathoswith | 318 | ret |
319 | fontSize1: |
||
320 | cmp [fontSize],10 |
||
321 | jc @f |
||
322 | dec [fontSize] |
||
5849 | pathoswith | 323 | @@: |
324 | ret |
||
5874 | pathoswith | 325 | fontSize2: |
326 | inc [fontSize] |
||
327 | ret |
||
5854 | pathoswith | 328 | apply_all: |
329 | call _lba_read |
||
330 | call _pci_acc |
||
331 | call _speaker_mute |
||
5874 | pathoswith | 332 | call fontApply |
333 | call fontSizeApply |
||
5854 | pathoswith | 334 | _syslang: |
335 | mov ecx,[syslang] |
||
336 | inc ecx |
||
337 | mcall 21,5 |
||
338 | ret |
||
339 | _lba_read: |
||
340 | mcall 21,11,[lba_read] |
||
341 | ret |
||
342 | _pci_acc: |
||
343 | mcall 21,12,[pci_acc] |
||
344 | ret |
||
345 | fontApply: |
||
346 | mcall 48,10,[fontSmoothing] |
||
347 | ret |
||
5874 | pathoswith | 348 | fontSizeApply: |
349 | mcall 48,12,[fontSize] |
||
350 | ret |
||
5854 | pathoswith | 351 | _speaker_mute: |
352 | mcall 18,8,1 |
||
353 | cmp [speaker_mute],eax |
||
5874 | pathoswith | 354 | jz @f |
5854 | pathoswith | 355 | inc ecx |
356 | mcall 18 |
||
5874 | pathoswith | 357 | @@: |
5854 | pathoswith | 358 | ret |
5849 | pathoswith | 359 | ;--------------------------------------------------------------- |
31 | halyavin | 360 | onoff: |
5854 | pathoswith | 361 | cmp [syslang],3 |
362 | jz .ru |
||
363 | cmp [syslang],5 |
||
364 | jz .et |
||
365 | mov ebx,'OFF ' |
||
366 | test eax,eax |
||
367 | jz @f |
||
368 | mov ebx,'ON ' |
||
369 | ret |
||
370 | .ru: |
||
371 | mov ebx,'НЕТ ' |
||
372 | test eax,eax |
||
373 | jz @f |
||
4825 | gtament | 374 | mov ebx,'ДА ' |
375 | ret |
||
5854 | pathoswith | 376 | .et: |
377 | mov ebx,'V─L.' |
||
378 | test eax,eax |
||
379 | jz @f |
||
4825 | gtament | 380 | mov ebx,'SEES' |
5854 | pathoswith | 381 | @@: |
4825 | gtament | 382 | ret |
5854 | pathoswith | 383 | ;--------------------------------------------------------------- |
384 | saveAll: |
||
385 | ; system language |
||
386 | mov eax,[syslang] |
||
7602 | dunkaist | 387 | mov ax, word[eax*2+langMarks] |
5854 | pathoswith | 388 | mov [param],eax |
389 | invoke ini.set_str, sz_ini, sz_system, sz_language, param, 2 |
||
390 | |||
5874 | pathoswith | 391 | ; font size |
392 | invoke ini.set_int, sz_ini, sz_system, sz_fontSize, [fontSize] |
||
5854 | pathoswith | 393 | |
394 | ; font smoothing |
||
395 | mov dword[param],'off' |
||
396 | cmp [fontSmoothing],0 |
||
397 | jz @f |
||
398 | mov dword[param],'on ' |
||
399 | cmp [fontSmoothing],1 |
||
400 | jz @f |
||
401 | mov dword[param],'sbp' |
||
402 | @@: |
||
403 | invoke ini.set_str, sz_ini, sz_system, sz_fontSmooth, param, 3 |
||
404 | |||
405 | ; system speaker |
||
406 | mov dword[param],'off' |
||
407 | cmp [speaker_mute],0 |
||
408 | jz @f |
||
409 | mov dword[param],'on ' |
||
410 | @@: |
||
411 | invoke ini.set_str, sz_ini, sz_system, sz_speaker, param, 3 |
||
412 | |||
413 | ; LBA access for applications |
||
414 | mov dword[param],'off' |
||
415 | cmp [lba_read],0 |
||
416 | jz @f |
||
417 | mov dword[param],'on ' |
||
418 | @@: |
||
419 | invoke ini.set_str, sz_ini, sz_low_level, sz_lba, param, 3 |
||
420 | |||
421 | ; PCI access for applications |
||
422 | mov dword[param],'off' |
||
423 | cmp [pci_acc],0 |
||
424 | jz @f |
||
425 | mov dword[param],'on ' |
||
426 | @@: |
||
427 | invoke ini.set_str, sz_ini, sz_low_level, sz_pci, param, 3 |
||
4825 | gtament | 428 | ret |
5849 | pathoswith | 429 | ;--------------------------------------------------------------- |
5924 | pathoswith | 430 | ; DATA |
5849 | pathoswith | 431 | align 4 |
432 | buttonTab: ; button handler pointers: -,+,apply |
||
433 | dd close |
||
434 | dd saveAll |
||
435 | dd apply_all |
||
436 | dd language1 |
||
437 | dd language2 |
||
438 | dd _syslang |
||
439 | dd LBA1 |
||
440 | dd LBA2 |
||
441 | dd _lba_read |
||
442 | dd PCI1 |
||
443 | dd PCI2 |
||
444 | dd _pci_acc |
||
445 | dd SPEAKER1 |
||
446 | dd SPEAKER2 |
||
447 | dd _speaker_mute |
||
448 | dd font1 |
||
449 | dd font2 |
||
450 | dd fontApply |
||
5874 | pathoswith | 451 | dd fontSize1 |
452 | dd fontSize2 |
||
453 | dd fontSizeApply |
||
31 | halyavin | 454 | |
5854 | pathoswith | 455 | @IMPORT: |
456 | library libini, 'libini.obj' |
||
457 | import libini, \ |
||
458 | ini.get_str, 'ini_get_str',\ |
||
459 | ini.get_int, 'ini_get_int',\ |
||
460 | ini.set_str, 'ini_set_str',\ |
||
461 | ini.set_int, 'ini_set_int' |
||
5849 | pathoswith | 462 | |
5854 | pathoswith | 463 | title db "System settings",0 |
464 | sz_ini db "/sys/settings/system.ini",0 |
||
5849 | pathoswith | 465 | |
5854 | pathoswith | 466 | sz_system db "system",0 |
467 | sz_language db "language",0 |
||
5874 | pathoswith | 468 | sz_fontSize db "font height",0 |
5854 | pathoswith | 469 | sz_fontSmooth db "font smoothing",0 |
470 | sz_speaker db "speaker mute",0 |
||
471 | |||
472 | sz_mouse db "mouse",0 |
||
473 | sz_speed db "speed",0 |
||
5973 | leency | 474 | sz_acceleration db "acceleration",0 |
475 | sz_double_click_delay db "double_click_delay",0 |
||
5854 | pathoswith | 476 | |
477 | sz_low_level db "low-level",0 |
||
478 | sz_lba db "LBA",0 |
||
479 | sz_pci db "PCI",0 |
||
480 | |||
5849 | pathoswith | 481 | LLL = 56 |
482 | stringsAmount = 6 |
||
483 | |||
484 | align 4 |
||
485 | langs: |
||
5875 | pathoswith | 486 | db 'ENGLISH FINNISH GERMAN RUSSIAN FRENCH ESTONIANSPANISH ITALIAN ' |
7602 | dunkaist | 487 | sz langMarks, 'en','fi','de','ru','fr','et','sp','it' |
5849 | pathoswith | 488 | |
31 | halyavin | 489 | textrus: |
5849 | pathoswith | 490 | db 'Язык системы : < > Применить' |
491 | db 'Включить LBA : - + Применить' |
||
492 | db 'Доступ к шине PCI : - + Применить' |
||
493 | db 'Выключить SPEAKER : - + Применить' |
||
494 | db 'Сглаживание шрифтов : - + Применить' |
||
5874 | pathoswith | 495 | db 'Высота шрифтов : - + Применить' |
4825 | gtament | 496 | |
5849 | pathoswith | 497 | db 'ВНИМАНИЕ: Применить все' |
498 | db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ Сохранить все' |
||
499 | |||
31 | halyavin | 500 | texteng: |
5849 | pathoswith | 501 | db 'System language : < > Apply ' |
5854 | pathoswith | 502 | db 'Allow LBA access : - + Apply ' |
503 | db 'Allow PCI access : - + Apply ' |
||
504 | db 'Disable SPEAKER : - + Apply ' |
||
5849 | pathoswith | 505 | db 'Font smoothing : - + Apply ' |
5874 | pathoswith | 506 | db 'Font height : - + Apply ' |
31 | halyavin | 507 | |
5849 | pathoswith | 508 | db 'NOTE: Apply all ' |
509 | db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI Save all ' |
||
510 | |||
3927 | kaitz | 511 | textet: |
5849 | pathoswith | 512 | db 'S№steemi keel : < > Kinnita ' |
513 | db 'LBA lugemine lubatud : - + Kinnita ' |
||
514 | db 'PCI juurdepффs programm. : - + Kinnita ' |
||
5854 | pathoswith | 515 | db 'Disable SPEAKER : - + Kinnita ' |
5849 | pathoswith | 516 | db 'Font smoothing : - + Kinnita ' |
5874 | pathoswith | 517 | db 'Font height : - + Kinnita ' |
31 | halyavin | 518 | |
5849 | pathoswith | 519 | db 'M─RKUS: Kinnita kїik ' |
520 | db 'SALVESTA SEADED ENNE KOLIBRIST V─LJUMIST Salvesta kїik' |
||
521 | |||
2478 | mario79 | 522 | IM_END: |
5924 | pathoswith | 523 | |
524 | text dd ? |
||
525 | |||
526 | syslang dd ? |
||
527 | lba_read dd ? |
||
528 | pci_acc dd ? |
||
529 | speaker_mute dd ? |
||
530 | fontSmoothing dd ? |
||
531 | fontSize dd ? |
||
532 | |||
5854 | pathoswith | 533 | param: |
4825 | gtament | 534 | rb 1024 |
7602 | dunkaist | 535 | I_END:>>>342,96>514,168>562,120>526,24>490,24>50,700> |