Subversion Repositories Kolibri OS

Rev

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: