Subversion Repositories Kolibri OS

Rev

Rev 5632 | Rev 5854 | Go to most recent revision | 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
14
dd stack_area
15
dd boot_param
16
dd 0
3221 hidnplayr 17
 
4825 gtament 18
include '../../../macros.inc'
5849 pathoswith 19
;---------------------------------------------------------------
2299 hidnplayr 20
set_language_and_exit:
4825 gtament 21
	mcall	26,2,9
22
	cmp	eax,1
23
	je	russian
24
	xor	eax,eax
5849 pathoswith 25
@@:
4825 gtament 26
	mov	[keyboard],eax
27
	call	_keyboard
28
	jmp	close
2299 hidnplayr 29
russian:
4825 gtament 30
	mov	eax,3
5849 pathoswith 31
	jmp	@b
32
;---------------------------------------------------------------
2299 hidnplayr 33
set_syslanguage_and_exit:
4825 gtament 34
	mcall	26,5
35
	cmp	eax,6
5849 pathoswith 36
	jne	@f
4825 gtament 37
	xor	eax,eax
5849 pathoswith 38
@@:
4825 gtament 39
	inc	eax
40
	mov	[syslang],eax
41
	call	_syslang
42
	jmp	close
5849 pathoswith 43
;---------------------------------------------------------------
44
apply_all_and_exit:
45
	mov	byte[fileinfo],0
46
	mcall	70,fileinfo
47
	call	apply_all
48
	jmp	close
49
;---------------------------------------------------------------
50
apply_all:
51
	call	fontApply
52
	call	_syslang
53
	call	_lba_read
54
	call	_pci_acc
55
	call	_speaker_mute
56
	call	_keyboard
57
	ret
58
;---------------------------------------------------------------
59
_syslang:
60
	mcall	21,5,[syslang]
61
	jmp	loadtxt
62
;---------------------------------------------------------------
63
_lba_read:
64
	mcall	21,11,[lba_read]
65
	ret
66
;---------------------------------------------------------------
67
_pci_acc:
68
	mcall	21,12,[pci_acc]
69
	ret
70
;---------------------------------------------------------------
71
fontApply:
72
	mcall	48,10,[fontSmoothing]
73
	ret
74
;---------------------------------------------------------------
75
_speaker_mute:
4825 gtament 76
	mcall	18,8,1
5849 pathoswith 77
	cmp	[speaker_mute],eax
78
	je	@f
79
	inc	ecx
80
	mcall	18
81
@@:
4825 gtament 82
	ret
5849 pathoswith 83
;---------------------------------------------------------------
84
_keyboard:
85
	mov	ebp,[keyboard]
86
	mov	edx,[ebp*4+keymapTab]
87
	mcall	21,2,1
88
	inc	ecx
89
	mov	edx,[ebp*4+shiftKeymapTab]
90
	mcall	21
91
	inc	ecx
92
	mov	edx,[ebp*4+altKeymapTab]
93
	mcall	21
94
	mov	edx,ebp
95
	inc	edx
96
	mov	cl, 9
97
	mcall	21
98
	ret
99
;---------------------------------------------------------------
31 halyavin 100
START:
4825 gtament 101
	mov	eax,boot_param
102
	cmp	[eax],dword 'SLAN'
103
	je	set_syslanguage_and_exit
31 halyavin 104
 
4825 gtament 105
	cmp	[eax],dword 'LANG'
106
	je	set_language_and_exit
31 halyavin 107
 
4825 gtament 108
	cmp	[eax],dword 'BOOT'
109
	je	apply_all_and_exit
5849 pathoswith 110
; get current settings
111
	mcall	26,2,9
4825 gtament 112
	dec	eax
113
	mov	[keyboard],eax
5849 pathoswith 114
 
115
	mcall	26,5
4825 gtament 116
	mov	[syslang],eax
127 mario79 117
 
5849 pathoswith 118
	mcall	26,11
119
	mov	[lba_read],eax
4825 gtament 120
 
5849 pathoswith 121
	mcall	26,12
122
	mov	[pci_acc],eax
4825 gtament 123
 
5849 pathoswith 124
	mcall	18,8,1
125
	mov	[speaker_mute],eax
31 halyavin 126
 
5849 pathoswith 127
	mcall	48,9
128
	mov	[fontSmoothing],eax
31 halyavin 129
 
5849 pathoswith 130
	call	loadtxt
4825 gtament 131
 
5849 pathoswith 132
draw_infotext:
133
	mov	eax,[syslang]
134
	mov	edi,[text]
135
	lea	esi,[eax*8+langs-8]
136
	add	edi,28
137
	movsd
138
	movsd
31 halyavin 139
 
5849 pathoswith 140
	mov	eax,[keyboard]
141
	add	edi,LLL-8
142
	lea	esi,[eax*8+langs]
143
	movsd
144
	movsd
145
	add	edi,LLL-8
31 halyavin 146
 
5849 pathoswith 147
	mov	eax,[lba_read]
148
	call	onoff
149
	mov	[edi],ebx
4825 gtament 150
 
5849 pathoswith 151
	mov	eax,[pci_acc]
152
	call	onoff
153
	mov	[edi+LLL],ebx
31 halyavin 154
 
5849 pathoswith 155
	mov	eax,[speaker_mute]
156
	call	onoff
157
	mov	[edi+LLL*2],ebx
4825 gtament 158
 
5849 pathoswith 159
	mov	ebx,'SUBP'
160
	mov	ecx,'IXEL'
161
	cmp	[fontSmoothing],2
162
	jz	@f
163
	mov	eax,[fontSmoothing]
164
	call	onoff
165
	mov	ecx,'    '
166
@@:
167
	mov	[edi+LLL*3],ebx
168
	mov	[edi+LLL*3+4],ecx
4825 gtament 169
 
5849 pathoswith 170
draw_window:
171
	mcall	12,1
172
	mov	ecx,50*65536+32*(4+stringsAmount)
173
	mcall	0,<50,700>,,0xB4111199,0,title
174
; Main buttons
175
	mov	eax,8
176
	mov	ecx,6*65536+26
177
	mov	edx,4
178
	mov	esi,0x5580c0
179
	mov	ebp,stringsAmount
180
@@:
181
	mcall	,<490,24>
4825 gtament 182
	inc	edx
5849 pathoswith 183
	mcall	,<526,24>
4825 gtament 184
	inc	edx
5849 pathoswith 185
	mcall	,<562,120>
186
	inc	edx
187
	add	ecx,32*65536
188
	dec	ebp
189
	jnz	@b
190
; APPLY ALL
191
	add	ecx,32*65536
192
	mcall	,<514,168>,,3,0x005588dd
193
; SAVE ALL
194
	add	ecx,32*65536
4825 gtament 195
	dec	edx
196
	mcall
5849 pathoswith 197
; text
4825 gtament 198
	mov	eax,4
5849 pathoswith 199
	mov	ebx,6*65536+11
200
	mov	ecx,1ffffffh
201
	mov	edx,[text]
4825 gtament 202
	mov	esi,LLL
5849 pathoswith 203
	mov	ebp,stringsAmount
2478 mario79 204
newline:
4825 gtament 205
	mcall
5849 pathoswith 206
	add	ebx,32
4825 gtament 207
	add	edx,esi
208
	dec	ebp
209
	jnz	newline
31 halyavin 210
 
5849 pathoswith 211
	mov	ebp,2
212
	add	ebx,32
2478 mario79 213
@@:
4825 gtament 214
	mcall
5849 pathoswith 215
	add	ebx,32
4825 gtament 216
	add	edx,esi
217
	dec	ebp
218
	jnz	@b
5849 pathoswith 219
 
220
	mcall	12,2
221
 
222
still:
223
	mcall	10
224
	cmp	eax,1
225
	jz	draw_window
226
 
227
	cmp	eax,2
228
	jz	key
229
 
230
	cmp	eax,3
231
	jz	button
232
 
233
	jmp	still
234
;---------------------------------------------------------------
235
key:
236
	mcall	2
237
	jmp	still
238
;---------------------------------------------------------------
239
button:
240
	mcall	17
241
	shr	eax,8
242
	call	dword[eax*4+buttonTab-4]
243
	jmp	draw_infotext
244
close:
245
	pop	eax
246
	mcall	-1
247
saveAll:
248
	mov	byte[fileinfo],2
249
	mcall	70,fileinfo
4825 gtament 250
	ret
5849 pathoswith 251
language1:
252
	dec	[syslang]
253
	jnz	@f
254
	mov	[syslang],6
255
	ret
256
language2:
257
	inc	[syslang]
258
	cmp	[syslang],7
259
	jnz	@f
260
	mov	[syslang],1
261
	ret
262
layout1:
263
	dec	[keyboard]
264
	jns	@f
265
	mov	[keyboard],7
266
	ret
267
layout2:
268
	inc	[keyboard]
269
	cmp	[keyboard],8
270
	jnz	@f
271
	mov	[keyboard],0
272
	ret
273
LBA1:
274
	btr	[lba_read],0
275
	ret
276
LBA2:
277
	bts	[lba_read],0
278
	ret
279
PCI1:
280
	btr	[pci_acc],0
281
	ret
282
PCI2:
283
	bts	[pci_acc],0
284
	ret
285
SPEAKER1:
286
	btr	[speaker_mute],0
287
	ret
288
SPEAKER2:
289
	bts	[speaker_mute],0
290
	ret
291
font1:
292
	cmp	[fontSmoothing],0
293
	jz	@f
294
	dec	[fontSmoothing]
295
	ret
296
font2:
297
	cmp	[fontSmoothing],2
298
	jz	@f
299
	inc	[fontSmoothing]
300
@@:
301
	ret
302
;---------------------------------------------------------------
303
loadtxt:
304
	cmp	[syslang],4
305
	jne	@f
306
	mov	[text],textrus
307
	ret
308
@@:
309
	cmp	[syslang],6
310
	jne	@f
311
	mov	[text],textet
312
	ret
313
@@:
314
	mov	[text],texteng
315
	ret
316
;---------------------------------------------------------------
31 halyavin 317
onoff:
4825 gtament 318
	cmp	[syslang],4
319
	jne	norus1
320
	mov	ebx,'ДА  '
321
	cmp	eax,1
322
	je	exitsub
323
	mov	ebx,'НЕТ '
324
	ret
3927 kaitz 325
norus1:
4825 gtament 326
	cmp	[syslang],6
327
	jne	noet1
328
	mov	ebx,'SEES'
329
	cmp	eax,1
330
	je	exitsub
331
	mov	ebx,'V─L.'
332
	ret
3927 kaitz 333
noet1:
4825 gtament 334
	mov	ebx,'ON  '
335
	cmp	eax,1
336
	je	exitsub
337
	mov	ebx,'OFF '
2478 mario79 338
exitsub:
4825 gtament 339
	ret
5849 pathoswith 340
;---------------------------------------------------------------
341
align 4
342
buttonTab:	; button handler pointers: -,+,apply
343
	dd close
344
	dd saveAll
345
	dd apply_all
346
	dd language1
347
	dd language2
348
	dd _syslang
349
	dd layout1
350
	dd layout2
351
	dd _keyboard
352
	dd LBA1
353
	dd LBA2
354
	dd _lba_read
355
	dd PCI1
356
	dd PCI2
357
	dd _pci_acc
358
	dd SPEAKER1
359
	dd SPEAKER2
360
	dd _speaker_mute
361
	dd font1
362
	dd font2
363
	dd fontApply
364
keymapTab:
365
	dd en_keymap
366
	dd fi_keymap
367
	dd ge_keymap
368
	dd ru_keymap
369
	dd fr_keymap
370
	dd et_keymap
371
	dd be_keymap
372
	dd it_keymap
373
shiftKeymapTab:
374
	dd en_keymap_shift
375
	dd fi_keymap_shift
376
	dd ge_keymap_shift
377
	dd ru_keymap_shift
378
	dd fr_keymap_shift
379
	dd et_keymap_shift
380
	dd be_keymap_shift
381
	dd it_keymap_shift
382
altKeymapTab:
383
	dd alt_general
384
	dd alt_general
385
	dd alt_general
386
	dd alt_general
387
	dd fr_keymap_alt_gr
388
	dd alt_general
389
	dd be_keymap_alt_gr
390
	dd it_keymap_alt_gr
31 halyavin 391
 
5849 pathoswith 392
setup.dat:	; file structure
393
syslang 	dd 0
394
keyboard	dd 0
395
lba_read	dd 0
396
pci_acc 	dd 0
397
speaker_mute	dd 0
398
fontSmoothing	dd 0
399
 
400
fileinfo:
401
	dd 0
402
	dd 0
403
	dd 0
404
	dd 4*6
405
	dd setup.dat
406
	db '/SYS/SETTINGS/SETUP.DAT',0
407
 
408
title	db 'System settings',0
409
hex	db '0123456789ABCDEF'
410
 
411
LLL = 56
412
stringsAmount = 6
413
 
414
align 4
415
text	dd 0
416
langs:
417
db 'ENGLISH FINNISH GERMAN  RUSSIAN FRENCH  ESTONIANBELGIAN ITALIAN '
418
 
31 halyavin 419
textrus:
5849 pathoswith 420
db 'Язык системы              :              <  >  Применить'
421
db 'Раскладка клавиатуры      :              <  >  Применить'
422
db 'Включить LBA              :              -  +  Применить'
423
db 'Доступ к шине PCI         :              -  +  Применить'
424
db 'Выключить SPEAKER         :              -  +  Применить'
425
db 'Сглаживание шрифтов       :              -  +  Применить'
4825 gtament 426
 
5849 pathoswith 427
db 'ВНИМАНИЕ:                                  Применить все'
428
db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ            Сохранить все'
429
 
31 halyavin 430
texteng:
5849 pathoswith 431
db 'System language           :              <  >    Apply  '
432
db 'Keyboard layout           :              <  >    Apply  '
433
db 'LBA read enabled          :              -  +    Apply  '
434
db 'PCI access for appl.      :              -  +    Apply  '
435
db 'SPEAKER disabled          :              -  +    Apply  '
436
db 'Font smoothing            :              -  +    Apply  '
31 halyavin 437
 
5849 pathoswith 438
db 'NOTE:                                        Apply all  '
439
db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI    Save all   '
440
 
3927 kaitz 441
textet:
5849 pathoswith 442
db 'S№steemi keel             :              <  >   Kinnita '
443
db 'Klaviatuuri paigutus      :              <  >   Kinnita '
444
db 'LBA lugemine lubatud      :              -  +   Kinnita '
445
db 'PCI juurdepффs programm.  :              -  +   Kinnita '
446
db 'SPEAKER disabled          :              -  +   Kinnita '
447
db 'Font smoothing            :              -  +   Kinnita '
31 halyavin 448
 
5849 pathoswith 449
db 'M─RKUS:                                    Kinnita kїik '
450
db 'SALVESTA SEADED ENNE KOLIBRIST V─LJUMIST   Salvesta kїik'
451
 
2299 hidnplayr 452
include 'keymaps.inc'
2478 mario79 453
IM_END:
2639 mario79 454
boot_param:
4825 gtament 455
	rb 1024
2478 mario79 456
stack_area:
5849 pathoswith 457
I_END: