Rev 5849 | Rev 5874 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5849 | Rev 5854 | ||
---|---|---|---|
Line 10... | Line 10... | ||
10 | dd 1 |
10 | dd 1 |
11 | dd START |
11 | dd START |
12 | dd IM_END |
12 | dd IM_END |
13 | dd I_END |
13 | dd I_END |
14 | dd stack_area |
14 | dd stack_area |
15 | dd boot_param |
15 | dd param |
16 | dd 0 |
16 | dd 0 |
Line -... | Line 17... | ||
- | 17 | ||
17 | 18 | include '../../../proc32.inc' |
|
- | 19 | include '../../../macros.inc' |
|
18 | include '../../../macros.inc' |
20 | include '../../../dll.inc' |
- | 21 | ;--------------------------------------------------------------- |
|
19 | ;--------------------------------------------------------------- |
22 | BootSettings: |
- | 23 | ; Set system language |
|
- | 24 | mov word[param],0 |
|
20 | set_language_and_exit: |
25 | invoke ini.get_str, sz_ini, sz_system, sz_language, param, 2, 0 |
- | 26 | mov ax, [param] |
|
21 | mcall 26,2,9 |
27 | or ax, 0x2020 ; convert to lowercase |
- | 28 | mov ecx,8 |
|
22 | cmp eax,1 |
29 | mov edi,langMarks |
- | 30 | repnz scasw |
|
- | 31 | jnz @f |
|
23 | je russian |
32 | neg ecx |
- | 33 | add ecx,8 |
|
24 | xor eax,eax |
34 | mcall 21,5 |
- | 35 | @@: |
|
- | 36 | ||
- | 37 | ; Set keyboard layout |
|
- | 38 | mov word[param],0 |
|
- | 39 | invoke ini.get_str, sz_ini, sz_system, sz_keyboard, param, 2, 0 |
|
- | 40 | mov ax, [param] |
|
- | 41 | or ax, 0x2020 |
|
- | 42 | mov ecx,8 |
|
- | 43 | mov edi,langMarks |
|
- | 44 | repnz scasw |
|
- | 45 | jnz @f |
|
- | 46 | neg ecx |
|
25 | @@: |
47 | add ecx,7 |
26 | mov [keyboard],eax |
48 | mov [keyboard],ecx |
27 | call _keyboard |
- | |
28 | jmp close |
- | |
29 | russian: |
- | |
30 | mov eax,3 |
- | |
31 | jmp @b |
- | |
32 | ;--------------------------------------------------------------- |
- | |
33 | set_syslanguage_and_exit: |
- | |
34 | mcall 26,5 |
- | |
35 | cmp eax,6 |
- | |
36 | jne @f |
- | |
37 | xor eax,eax |
49 | call _keyboard |
38 | @@: |
50 | @@: |
39 | inc eax |
- | |
40 | mov [syslang],eax |
- | |
41 | call _syslang |
- | |
42 | jmp close |
- | |
43 | ;--------------------------------------------------------------- |
51 | |
44 | apply_all_and_exit: |
52 | ; Set font smoothing |
45 | mov byte[fileinfo],0 |
- | |
46 | mcall 70,fileinfo |
- | |
47 | call apply_all |
- | |
48 | jmp close |
53 | mov dword[param],0 |
49 | ;--------------------------------------------------------------- |
- | |
50 | apply_all: |
- | |
51 | call fontApply |
- | |
52 | call _syslang |
- | |
53 | call _lba_read |
54 | invoke ini.get_str, sz_ini, sz_system, sz_fontSmooth, param, 4, 0 |
54 | call _pci_acc |
- | |
55 | call _speaker_mute |
55 | xor ecx,ecx |
56 | call _keyboard |
- | |
57 | ret |
- | |
58 | ;--------------------------------------------------------------- |
- | |
59 | _syslang: |
56 | mov eax,[param] |
60 | mcall 21,5,[syslang] |
57 | or eax,0x20202020 |
61 | jmp loadtxt |
- | |
62 | ;--------------------------------------------------------------- |
- | |
63 | _lba_read: |
- | |
64 | mcall 21,11,[lba_read] |
58 | cmp eax,'off ' |
65 | ret |
- | |
66 | ;--------------------------------------------------------------- |
59 | jz @f |
67 | _pci_acc: |
60 | inc ecx |
68 | mcall 21,12,[pci_acc] |
- | |
69 | ret |
- | |
70 | ;--------------------------------------------------------------- |
- | |
71 | fontApply: |
- | |
72 | mcall 48,10,[fontSmoothing] |
61 | cmp eax,'on ' |
73 | ret |
- | |
74 | ;--------------------------------------------------------------- |
62 | jz @f |
75 | _speaker_mute: |
63 | cmp eax,'sbp ' |
76 | mcall 18,8,1 |
- | |
77 | cmp [speaker_mute],eax |
- | |
78 | je @f |
64 | jnz .skipFont |
79 | inc ecx |
- | |
80 | mcall 18 |
65 | inc ecx |
- | 66 | @@: |
|
- | 67 | mcall 48,10 |
|
81 | @@: |
68 | .skipFont: |
- | 69 | ||
- | 70 | ; Enable/disable system speaker |
|
82 | ret |
71 | mov dword[param],0 |
- | 72 | invoke ini.get_str, sz_ini, sz_system, sz_speaker, param, 4, 0 |
|
- | 73 | mov eax,[param] |
|
- | 74 | or eax,0x20202020 |
|
- | 75 | cmp eax,'off ' |
|
- | 76 | jz @f |
|
- | 77 | cmp eax,'on ' |
|
- | 78 | jnz .skipSpeaker |
|
- | 79 | inc [speaker_mute] |
|
- | 80 | @@: |
|
83 | ;--------------------------------------------------------------- |
81 | call _speaker_mute |
- | 82 | .skipSpeaker: |
|
- | 83 | ||
- | 84 | ; Set mouse speed |
|
84 | _keyboard: |
85 | invoke ini.get_int, sz_ini, sz_mouse, sz_speed, 1 |
- | 86 | mov edx,eax |
|
- | 87 | mcall 18,19,1 |
|
- | 88 | ||
- | 89 | ; Set mouse delay |
|
85 | mov ebp,[keyboard] |
90 | invoke ini.get_int, sz_ini, sz_mouse, sz_delay, 1 |
86 | mov edx,[ebp*4+keymapTab] |
91 | mov edx,eax |
- | 92 | mcall 18,19,3 |
|
- | 93 | ||
- | 94 | ; Enable/disable LBA access for applications |
|
- | 95 | mov dword[param],0 |
|
- | 96 | invoke ini.get_str, sz_ini, sz_low_level, sz_lba, param, 4, 0 |
|
- | 97 | xor ecx,ecx |
|
- | 98 | mov eax,[param] |
|
- | 99 | or eax,0x20202020 |
|
- | 100 | cmp eax,'off ' |
|
- | 101 | jz @f |
|
- | 102 | cmp eax,'on ' |
|
87 | mcall 21,2,1 |
103 | jnz .skipLBA |
- | 104 | inc ecx |
|
- | 105 | @@: |
|
- | 106 | mcall 21,11 |
|
- | 107 | .skipLBA: |
|
- | 108 | ||
- | 109 | ; Enable/disable PCI access for applications |
|
- | 110 | mov dword[param],0 |
|
- | 111 | invoke ini.get_str, sz_ini, sz_low_level, sz_pci, param, 4, 0 |
|
88 | inc ecx |
112 | xor ecx,ecx |
- | 113 | mov eax,[param] |
|
- | 114 | or eax,0x20202020 |
|
- | 115 | cmp eax,'off ' |
|
- | 116 | jz @f |
|
89 | mov edx,[ebp*4+shiftKeymapTab] |
117 | cmp eax,'on ' |
90 | mcall 21 |
118 | jnz close |
91 | inc ecx |
- | |
92 | mov edx,[ebp*4+altKeymapTab] |
- | |
93 | mcall 21 |
- | |
94 | mov edx,ebp |
119 | inc ecx |
95 | inc edx |
120 | @@: |
96 | mov cl, 9 |
121 | mcall 21,12 |
97 | mcall 21 |
- | |
98 | ret |
122 | jmp close |
99 | ;--------------------------------------------------------------- |
123 | ;--------------------------------------------------------------- |
100 | START: |
124 | START: |
101 | mov eax,boot_param |
125 | mcall 68,11 |
- | 126 | stdcall dll.Load, @IMPORT |
|
102 | cmp [eax],dword 'SLAN' |
127 | push eax |
- | 128 | test eax,eax |
|
Line 103... | Line 129... | ||
103 | je set_syslanguage_and_exit |
129 | jnz close |
104 | 130 | ||
105 | cmp [eax],dword 'LANG' |
- | |
106 | je set_language_and_exit |
131 | cmp [param],dword 'BOOT' |
107 | - | ||
108 | cmp [eax],dword 'BOOT' |
132 | jz BootSettings |
109 | je apply_all_and_exit |
133 | pop eax |
110 | ; get current settings |
134 | ; get current settings |
111 | mcall 26,2,9 |
135 | mcall 26,2,9 |
Line 112... | Line 136... | ||
112 | dec eax |
136 | dec eax |
- | 137 | mov [keyboard],eax |
|
113 | mov [keyboard],eax |
138 | |
Line 114... | Line 139... | ||
114 | 139 | mcall 26,5 |
|
115 | mcall 26,5 |
140 | dec eax |
Line 130... | Line 155... | ||
130 | call loadtxt |
155 | call loadtxt |
Line 131... | Line 156... | ||
131 | 156 | ||
132 | draw_infotext: |
157 | draw_infotext: |
133 | mov eax,[syslang] |
158 | mov eax,[syslang] |
134 | mov edi,[text] |
159 | mov edi,[text] |
135 | lea esi,[eax*8+langs-8] |
160 | lea esi,[eax*8+langs] |
136 | add edi,28 |
161 | add edi,28 |
137 | movsd |
162 | movsd |
Line 138... | Line 163... | ||
138 | movsd |
163 | movsd |
Line 242... | Line 267... | ||
242 | call dword[eax*4+buttonTab-4] |
267 | call dword[eax*4+buttonTab-4] |
243 | jmp draw_infotext |
268 | jmp draw_infotext |
244 | close: |
269 | close: |
245 | pop eax |
270 | pop eax |
246 | mcall -1 |
271 | mcall -1 |
247 | saveAll: |
- | |
248 | mov byte[fileinfo],2 |
- | |
249 | mcall 70,fileinfo |
- | |
250 | ret |
- | |
251 | language1: |
272 | language1: |
252 | dec [syslang] |
273 | dec [syslang] |
253 | jnz @f |
274 | jns @f |
254 | mov [syslang],6 |
275 | mov [syslang],7 |
255 | ret |
276 | jmp @f |
256 | language2: |
277 | language2: |
257 | inc [syslang] |
278 | inc [syslang] |
258 | cmp [syslang],7 |
279 | cmp [syslang],8 |
259 | jnz @f |
280 | jnz @f |
260 | mov [syslang],1 |
281 | mov [syslang],0 |
261 | ret |
282 | @@: |
- | 283 | jmp loadtxt |
|
262 | layout1: |
284 | layout1: |
263 | dec [keyboard] |
285 | dec [keyboard] |
264 | jns @f |
286 | jns @f |
265 | mov [keyboard],7 |
287 | mov [keyboard],7 |
266 | ret |
288 | ret |
Line 297... | Line 319... | ||
297 | cmp [fontSmoothing],2 |
319 | cmp [fontSmoothing],2 |
298 | jz @f |
320 | jz @f |
299 | inc [fontSmoothing] |
321 | inc [fontSmoothing] |
300 | @@: |
322 | @@: |
301 | ret |
323 | ret |
- | 324 | apply_all: |
|
- | 325 | call fontApply |
|
- | 326 | call _syslang |
|
- | 327 | call _lba_read |
|
- | 328 | call _pci_acc |
|
- | 329 | call _speaker_mute |
|
- | 330 | call _keyboard |
|
- | 331 | ret |
|
- | 332 | _syslang: |
|
- | 333 | mov ecx,[syslang] |
|
- | 334 | inc ecx |
|
- | 335 | mcall 21,5 |
|
- | 336 | ret |
|
- | 337 | _lba_read: |
|
- | 338 | mcall 21,11,[lba_read] |
|
- | 339 | ret |
|
- | 340 | _pci_acc: |
|
- | 341 | mcall 21,12,[pci_acc] |
|
- | 342 | ret |
|
- | 343 | fontApply: |
|
- | 344 | mcall 48,10,[fontSmoothing] |
|
- | 345 | ret |
|
- | 346 | _speaker_mute: |
|
- | 347 | mcall 18,8,1 |
|
- | 348 | cmp [speaker_mute],eax |
|
- | 349 | je @b |
|
- | 350 | inc ecx |
|
- | 351 | mcall 18 |
|
- | 352 | _keyboard: |
|
- | 353 | mov ebp,[keyboard] |
|
- | 354 | mov edx,[ebp*4+keymapTab] |
|
- | 355 | mcall 21,2,1 |
|
- | 356 | inc ecx |
|
- | 357 | mov edx,[ebp*4+shiftKeymapTab] |
|
- | 358 | mcall 21 |
|
- | 359 | inc ecx |
|
- | 360 | mov edx,[ebp*4+altKeymapTab] |
|
- | 361 | mcall 21 |
|
- | 362 | mov edx,ebp |
|
- | 363 | inc edx |
|
- | 364 | mov cl, 9 |
|
- | 365 | mcall 21 |
|
- | 366 | ret |
|
302 | ;--------------------------------------------------------------- |
367 | ;--------------------------------------------------------------- |
303 | loadtxt: |
368 | loadtxt: |
304 | cmp [syslang],4 |
369 | cmp [syslang],3 |
305 | jne @f |
370 | jz .ru |
- | 371 | cmp [syslang],5 |
|
- | 372 | jz .et |
|
- | 373 | mov [text],texteng |
|
- | 374 | ret |
|
- | 375 | .ru: |
|
306 | mov [text],textrus |
376 | mov [text],textrus |
307 | ret |
377 | ret |
308 | @@: |
378 | .et: |
309 | cmp [syslang],6 |
- | |
310 | jne @f |
- | |
311 | mov [text],textet |
379 | mov [text],textet |
312 | ret |
380 | ret |
313 | @@: |
- | |
314 | mov [text],texteng |
- | |
315 | ret |
- | |
316 | ;--------------------------------------------------------------- |
381 | ;--------------------------------------------------------------- |
317 | onoff: |
382 | onoff: |
318 | cmp [syslang],4 |
383 | cmp [syslang],3 |
319 | jne norus1 |
384 | jz .ru |
- | 385 | cmp [syslang],5 |
|
- | 386 | jz .et |
|
320 | mov ebx,' ' |
387 | mov ebx,'OFF ' |
321 | cmp eax,1 |
388 | test eax,eax |
- | 389 | jz @f |
|
322 | je exitsub |
390 | mov ebx,'ON ' |
- | 391 | ret |
|
- | 392 | .ru: |
|
323 | mov ebx,' ' |
393 | mov ebx,' ' |
- | 394 | test eax,eax |
|
- | 395 | jz @f |
|
- | 396 | mov ebx,' ' |
|
324 | ret |
397 | ret |
325 | norus1: |
398 | .et: |
326 | cmp [syslang],6 |
- | |
327 | jne noet1 |
- | |
328 | mov ebx,'SEES' |
- | |
329 | cmp eax,1 |
- | |
330 | je exitsub |
- | |
331 | mov ebx,'VÄL.' |
399 | mov ebx,'VÄL.' |
- | 400 | test eax,eax |
|
- | 401 | jz @f |
|
- | 402 | mov ebx,'SEES' |
|
- | 403 | @@: |
|
332 | ret |
404 | ret |
- | 405 | ;--------------------------------------------------------------- |
|
333 | noet1: |
406 | saveAll: |
- | 407 | ; system language |
|
334 | mov ebx,'ON ' |
408 | mov eax,[syslang] |
- | 409 | mov ax, [eax*2+langMarks] |
|
- | 410 | mov [param],eax |
|
- | 411 | invoke ini.set_str, sz_ini, sz_system, sz_language, param, 2 |
|
- | 412 | ||
- | 413 | ; keyboard layout |
|
- | 414 | mov eax,[keyboard] |
|
- | 415 | mov ax, [eax*2+langMarks] |
|
- | 416 | mov [param],eax |
|
- | 417 | invoke ini.set_str, sz_ini, sz_system, sz_keyboard, param, 2 |
|
- | 418 | ||
- | 419 | ; font smoothing |
|
- | 420 | mov dword[param],'off' |
|
- | 421 | cmp [fontSmoothing],0 |
|
- | 422 | jz @f |
|
- | 423 | mov dword[param],'on ' |
|
- | 424 | cmp [fontSmoothing],1 |
|
- | 425 | jz @f |
|
- | 426 | mov dword[param],'sbp' |
|
- | 427 | @@: |
|
- | 428 | invoke ini.set_str, sz_ini, sz_system, sz_fontSmooth, param, 3 |
|
- | 429 | ||
- | 430 | ; system speaker |
|
- | 431 | mov dword[param],'off' |
|
- | 432 | cmp [speaker_mute],0 |
|
- | 433 | jz @f |
|
- | 434 | mov dword[param],'on ' |
|
- | 435 | @@: |
|
- | 436 | invoke ini.set_str, sz_ini, sz_system, sz_speaker, param, 3 |
|
- | 437 | ||
- | 438 | ; LBA access for applications |
|
- | 439 | mov dword[param],'off' |
|
335 | cmp eax,1 |
440 | cmp [lba_read],0 |
336 | je exitsub |
441 | jz @f |
337 | mov ebx,'OFF ' |
442 | mov dword[param],'on ' |
- | 443 | @@: |
|
- | 444 | invoke ini.set_str, sz_ini, sz_low_level, sz_lba, param, 3 |
|
- | 445 | ||
- | 446 | ; PCI access for applications |
|
- | 447 | mov dword[param],'off' |
|
- | 448 | cmp [pci_acc],0 |
|
338 | exitsub: |
449 | jz @f |
- | 450 | mov dword[param],'on ' |
|
- | 451 | @@: |
|
- | 452 | invoke ini.set_str, sz_ini, sz_low_level, sz_pci, param, 3 |
|
339 | ret |
453 | ret |
340 | ;--------------------------------------------------------------- |
454 | ;--------------------------------------------------------------- |
341 | align 4 |
455 | align 4 |
342 | buttonTab: ; button handler pointers: -,+,apply |
456 | buttonTab: ; button handler pointers: -,+,apply |
343 | dd close |
457 | dd close |
Line 387... | Line 501... | ||
387 | dd fr_keymap_alt_gr |
501 | dd fr_keymap_alt_gr |
388 | dd alt_general |
502 | dd alt_general |
389 | dd be_keymap_alt_gr |
503 | dd be_keymap_alt_gr |
390 | dd it_keymap_alt_gr |
504 | dd it_keymap_alt_gr |
Line 391... | Line -... | ||
391 | - | ||
392 | setup.dat: ; file structure |
505 | |
393 | syslang dd 0 |
506 | syslang dd 0 |
394 | keyboard dd 0 |
507 | keyboard dd 0 |
395 | lba_read dd 0 |
508 | lba_read dd 0 |
396 | pci_acc dd 0 |
509 | pci_acc dd 0 |
397 | speaker_mute dd 0 |
510 | speaker_mute dd 0 |
Line 398... | Line 511... | ||
398 | fontSmoothing dd 0 |
511 | fontSmoothing dd 0 |
- | 512 | ||
399 | 513 | @IMPORT: |
|
- | 514 | library libini, 'libini.obj' |
|
- | 515 | import libini, \ |
|
- | 516 | ini.get_str, 'ini_get_str',\ |
|
- | 517 | ini.get_int, 'ini_get_int',\ |
|
400 | fileinfo: |
518 | ini.set_str, 'ini_set_str',\ |
- | 519 | ini.set_int, 'ini_set_int' |
|
- | 520 | ||
401 | dd 0 |
521 | title db "System settings",0 |
402 | dd 0 |
522 | sz_ini db "/sys/settings/system.ini",0 |
- | 523 | ||
403 | dd 0 |
524 | sz_system db "system",0 |
- | 525 | sz_language db "language",0 |
|
404 | dd 4*6 |
526 | sz_keyboard db "keyboard",0 |
405 | dd setup.dat |
527 | sz_fontSmooth db "font smoothing",0 |
- | 528 | sz_speaker db "speaker mute",0 |
|
406 | db '/SYS/SETTINGS/SETUP.DAT',0 |
529 | |
407 | 530 | sz_mouse db "mouse",0 |
|
- | 531 | sz_speed db "speed",0 |
|
- | 532 | sz_delay db "delay",0 |
|
- | 533 | ||
- | 534 | sz_low_level db "low-level",0 |
|
Line 408... | Line 535... | ||
408 | title db 'System settings',0 |
535 | sz_lba db "LBA",0 |
409 | hex db '0123456789ABCDEF' |
536 | sz_pci db "PCI",0 |
Line 410... | Line 537... | ||
410 | 537 | ||
411 | LLL = 56 |
538 | LLL = 56 |
412 | stringsAmount = 6 |
539 | stringsAmount = 6 |
413 | 540 | ||
- | 541 | align 4 |
|
- | 542 | text dd 0 |
|
Line 414... | Line 543... | ||
414 | align 4 |
543 | langs: |
415 | text dd 0 |
544 | db 'ENGLISH FINNISH GERMAN RUSSIAN FRENCH ESTONIANBELGIAN ITALIAN ' |
416 | langs: |
545 | langMarks: |
417 | db 'ENGLISH FINNISH GERMAN RUSSIAN FRENCH ESTONIANBELGIAN ITALIAN ' |
546 | db 'enfiderufretesit' |
Line 428... | Line 557... | ||
428 | db ' ®åà ¨âì ¢á¥' |
557 | db ' ®åà ¨âì ¢á¥' |
Line 429... | Line 558... | ||
429 | 558 | ||
430 | texteng: |
559 | texteng: |
431 | db 'System language : < > Apply ' |
560 | db 'System language : < > Apply ' |
432 | db 'Keyboard layout : < > Apply ' |
561 | db 'Keyboard layout : < > Apply ' |
433 | db 'LBA read enabled : - + Apply ' |
562 | db 'Allow LBA access : - + Apply ' |
434 | db 'PCI access for appl. : - + Apply ' |
563 | db 'Allow PCI access : - + Apply ' |
435 | db 'SPEAKER disabled : - + Apply ' |
564 | db 'Disable SPEAKER : - + Apply ' |
Line 436... | Line 565... | ||
436 | db 'Font smoothing : - + Apply ' |
565 | db 'Font smoothing : - + Apply ' |
437 | 566 | ||
Line 438... | Line 567... | ||
438 | db 'NOTE: Apply all ' |
567 | db 'NOTE: Apply all ' |
439 | db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI Save all ' |
568 | db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI Save all ' |
440 | 569 | ||
441 | textet: |
570 | textet: |
442 | db 'Süsteemi keel : < > Kinnita ' |
571 | db 'Süsteemi keel : < > Kinnita ' |
443 | db 'Klaviatuuri paigutus : < > Kinnita ' |
572 | db 'Klaviatuuri paigutus : < > Kinnita ' |
444 | db 'LBA lugemine lubatud : - + Kinnita ' |
573 | db 'LBA lugemine lubatud : - + Kinnita ' |
Line 445... | Line 574... | ||
445 | db 'PCI juurdepääs programm. : - + Kinnita ' |
574 | db 'PCI juurdepääs programm. : - + Kinnita ' |
446 | db 'SPEAKER disabled : - + Kinnita ' |
575 | db 'Disable SPEAKER : - + Kinnita ' |
Line 447... | Line 576... | ||
447 | db 'Font smoothing : - + Kinnita ' |
576 | db 'Font smoothing : - + Kinnita ' |
448 | 577 | ||
449 | db 'MÄRKUS: Kinnita kõik ' |
578 | db 'MÄRKUS: Kinnita kõik ' |
450 | db 'SALVESTA SEADED ENNE KOLIBRIST VÄLJUMIST Salvesta kõik' |
579 | db 'SALVESTA SEADED ENNE KOLIBRIST VÄLJUMIST Salvesta kõik' |
451 | 580 | ||
452 | include 'keymaps.inc' |
581 | include 'keymaps.inc' |
453 | IM_END: |
582 | IM_END: |