Subversion Repositories Kolibri OS

Rev

Rev 2550 | Rev 3671 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
31 halyavin 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                               ;;
3
;;          DEVICE SETUP         ;;
4
;;                               ;;
5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2639 mario79 6
; version:	1.15
7
; last update:  20/04/2012
8
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
9
; changes:      Add the flag of speaker mute.
10
;               Correcting setup.dat
11
;---------------------------------------------------------------------
2481 mario79 12
; version:	1.14
13
; last update:  20/03/2012
14
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
15
; changes:      optimisations and code refactoring
16
;---------------------------------------------------------------------
31 halyavin 17
; Authors: Ville       - original version
18
;          A. Ivushkin - autostart (w launcher)
19
;          M. Lisovin  - added many feauters (apply all, save all, set time...)
20
;          I. Poddubny - fixed russian keymap
127 mario79 21
;14/08/06  Mario79 - added regulation of mouse features
2478 mario79 22
;-------------------------------------------------------------------------------
23
	use32
24
	org 0x0
31 halyavin 25
 
2478 mario79 26
	db 'MENUET01'	; 8 byte identifier
27
	dd 0x01		; header version
28
	dd START	; pointer to program start
29
	dd IM_END	; size of image
2639 mario79 30
	dd I_END	; reguired amount of memory
2478 mario79 31
	dd stack_area	; stack pointer (esp)
2639 mario79 32
	dd boot_param	; boot parameters
2478 mario79 33
	dd 0x0		; path
34
;-------------------------------------------------------------------------------
35
include '..\..\..\macros.inc'
36
;-------------------------------------------------------------------------------
31 halyavin 37
LLL equ (56+3)
38
BBB equ 25
2478 mario79 39
;-------------------------------------------------------------------------------
31 halyavin 40
apply_all:
2478 mario79 41
	call	_pci_acc    ;12
42
	call	_syslang    ;5
43
	call	_keyboard    ;2
44
	call	_mouse_speed
45
	call	_mouse_delay
2639 mario79 46
	call	_speaker_mute
2478 mario79 47
	ret
31 halyavin 48
;-------------------------------------------------------------------------------
2299 hidnplayr 49
apply_all_and_exit:
2478 mario79 50
	mcall	70,read_fileinfo
2299 hidnplayr 51
	call	apply_all
52
	jmp	close
2478 mario79 53
;-------------------------------------------------------------------------------
2299 hidnplayr 54
set_language_and_exit:
2478 mario79 55
	mcall	26,2,9
56
	cmp	eax,1
2299 hidnplayr 57
	je	russian
31 halyavin 58
 
2299 hidnplayr 59
	xor	eax,eax
2478 mario79 60
;--------------------------------------
2299 hidnplayr 61
set_lang_now:
2478 mario79 62
	mov	[keyboard],eax
2299 hidnplayr 63
	call	_keyboard
64
	jmp	close
2478 mario79 65
;--------------------------------------
2299 hidnplayr 66
russian:
2478 mario79 67
	mov	eax,3
2299 hidnplayr 68
	jmp	set_lang_now
2478 mario79 69
;-------------------------------------------------------------------------------
2299 hidnplayr 70
set_syslanguage_and_exit:
2478 mario79 71
	mcall	26,5
2299 hidnplayr 72
	cmp	eax,6
73
	jne	temp
74
	xor	eax,eax
2478 mario79 75
;--------------------------------------
2299 hidnplayr 76
temp:
77
	inc	eax
2478 mario79 78
	mov	[syslang],eax
2299 hidnplayr 79
	call	_syslang
80
	jmp	close
2478 mario79 81
;-------------------------------------------------------------------------------
31 halyavin 82
get_setup_values:
2478 mario79 83
	mcall	26,2,9
2299 hidnplayr 84
	dec	eax
2478 mario79 85
	mov	[keyboard],eax
2299 hidnplayr 86
 
2478 mario79 87
	mcall	26,5
88
	mov	[syslang],eax
2299 hidnplayr 89
 
2478 mario79 90
	mcall	26,11
91
	mov	[lba_read],eax
2299 hidnplayr 92
 
2478 mario79 93
	mcall	26,12
94
	mov	[pci_acc],eax
2299 hidnplayr 95
 
2478 mario79 96
	mcall	18,19,0
97
	mov	[mouse_speed],eax
2299 hidnplayr 98
 
2478 mario79 99
	mcall	18,19,2
100
	mov	[mouse_delay],eax
2639 mario79 101
 
102
	mcall	18,8,1
103
	mov	[speaker_mute],eax
2299 hidnplayr 104
	ret
2478 mario79 105
;-------------------------------------------------------------------------------
31 halyavin 106
START:
2639 mario79 107
	mov	eax,boot_param
2481 mario79 108
	cmp	[eax],dword 'SLAN'
2299 hidnplayr 109
	je	set_syslanguage_and_exit
31 halyavin 110
 
2481 mario79 111
	cmp	[eax],dword 'LANG'
2299 hidnplayr 112
	je	set_language_and_exit
31 halyavin 113
 
2481 mario79 114
	cmp	[eax],dword 'BOOT'
2299 hidnplayr 115
	je	apply_all_and_exit
31 halyavin 116
 
2299 hidnplayr 117
	call	get_setup_values
118
	call	loadtxt
2639 mario79 119
	call	draw_infotext
2478 mario79 120
;-------------------------------------------------------------------------------
31 halyavin 121
red:
2478 mario79 122
	call	draw_window
123
;-------------------------------------------------------------------------------
31 halyavin 124
still:
2478 mario79 125
sysevent:
126
	mcall	23,8	      ; wait here for event with timeout
127
	cmp	eax,1
2299 hidnplayr 128
	jz	red
31 halyavin 129
 
2478 mario79 130
	cmp	eax,2
2299 hidnplayr 131
	jz	key
31 halyavin 132
 
2478 mario79 133
	cmp	eax,3
2299 hidnplayr 134
	jz	button
31 halyavin 135
 
2299 hidnplayr 136
	jmp	still
2478 mario79 137
;-------------------------------------------------------------------------------
138
key:
139
	mcall	2
2299 hidnplayr 140
	jmp	still
2478 mario79 141
;-------------------------------------------------------------------------------
142
button:
143
	mcall	17
144
	cmp	ah,99
145
	jne	nosaveall
146
	mcall	70,save_fileinfo
147
	jmp	still
148
;--------------------------------------
31 halyavin 149
nosaveall:
2478 mario79 150
	cmp	ah,100
151
	jne	no_apply_all
152
	call	apply_all
153
	jmp	still
154
;--------------------------------------
31 halyavin 155
no_apply_all:
2478 mario79 156
	cmp	ah,1	; CLOSE APPLICATION
157
	jne	no_close
158
;--------------------------------------
31 halyavin 159
close:
2478 mario79 160
	or	eax,-1
161
	mcall
162
;--------------------------------------
163
no_close:
164
	cmp	ah,4	; SET KEYBOARD
165
	jnz	nokm
166
	mov	eax,[keyboard]
167
	test	eax,eax
168
	je	downuplbl
169
	dec	eax
170
	jmp	nodownup
171
;--------------------------------------
172
downuplbl:
173
	mov	eax,5
174
;--------------------------------------
175
nodownup:
176
	mov	[keyboard],eax
177
	call	draw_infotext
178
;--------------------------------------
179
nokm:
180
	cmp	ah,5
181
	jnz	nokp
182
	mov	eax,[keyboard]
183
	cmp	eax,5
184
	je	updownlbl
185
	inc	eax
186
	jmp	noupdown
187
;--------------------------------------
188
updownlbl:
189
	xor	eax,eax
190
;--------------------------------------
191
noupdown:
192
	mov	[keyboard],eax
193
	call	draw_infotext
194
;--------------------------------------
195
nokp:
196
	cmp	ah,92	; SET LBA READ
197
	jne	no_lba_d
198
;--------------------------------------
199
slbal:
200
	btc	[lba_read],0
201
	call	draw_infotext
202
	jmp	still
203
;--------------------------------------
204
no_lba_d:
205
	cmp	ah,93
206
	jne	no_lba_i
207
	jmp	slbal
208
;--------------------------------------
209
no_lba_i:
210
	cmp	ah,91
211
	jne	no_set_lba_read
212
	call	_lba_read
213
	jmp	still
214
;--------------------------------------
215
no_set_lba_read:
216
	cmp	ah,102	; SET PCI ACCESS
217
	jne	no_pci_d
218
;--------------------------------------
219
pcip:
220
	btc	[pci_acc],0
221
	call	draw_infotext
222
	jmp	still
223
;--------------------------------------
224
no_pci_d:
225
	cmp	ah,103
226
	jne	no_pci_i
227
	jmp	pcip
228
;--------------------------------------
229
no_pci_i:
230
	cmp	ah,101
231
	jne	no_set_pci_acc
232
	call	_pci_acc
233
	jmp	still
234
;--------------------------------------
235
no_set_pci_acc:
236
	cmp	ah,42	; SET SYSTEM LANGUAGE BASE
237
	jnz	nosysm
238
	mov	eax,[syslang]
239
	dec	eax
240
	jz	still
241
	mov	[syslang],eax
242
	call	draw_infotext
243
;--------------------------------------
244
nosysm:
245
	cmp	ah,43
246
	jnz	nosysp
247
	mov	eax,[syslang]
248
	cmp	eax,6
249
	je	nosysp
250
	inc	eax
251
	mov	[syslang],eax
252
	call	draw_infotext
253
;--------------------------------------
254
nosysp:
255
	cmp	ah,41
256
	jnz	nosyss
257
	call	_syslang
258
	call	cleantxt
259
	call	loadtxt
260
	call	draw_window
261
;--------------------------------------
262
nosyss:
263
	cmp	ah,132	; SET MOUSE SPEED
264
	jnz	.nominus
265
	mov	eax,[mouse_speed]
266
	sub	eax,2
267
	cmp	eax,9
268
	jb	@f
269
	mov	eax,8
270
;--------------------------------------
120 mario79 271
@@:
2478 mario79 272
	inc	eax
273
	mov	[mouse_speed],eax
274
	call	draw_infotext
275
;--------------------------------------
276
.nominus:
277
	cmp	ah,133
278
	jnz	.noplus
279
	mov	eax,[mouse_speed]
280
	cmp	eax,9
281
	jb	@f
282
	mov	eax,0
283
;--------------------------------------
120 mario79 284
@@:
2478 mario79 285
	inc	eax
286
	mov	[mouse_speed],eax
287
	call	draw_infotext
288
;--------------------------------------
289
.noplus:
290
	cmp	ah,131
291
	jnz	.noapply
292
	call	_mouse_speed
293
;--------------------------------------
294
.noapply:
295
mousedelay:
296
	cmp	ah,142        ; SET MOUSE DELAY
297
	jnz	.nominus
298
	mov	eax,[mouse_delay]
299
	sub	eax,2
300
	cmp	eax,0xfff
301
	jb	@f
302
	mov	eax,0xffe
303
;--------------------------------------
127 mario79 304
@@:
2478 mario79 305
	inc	eax
306
	mov	[mouse_delay],eax
307
	call	draw_infotext
308
;--------------------------------------
309
.nominus:
310
	cmp	ah,143
311
	jnz	.noplus
312
	mov	eax,[mouse_delay]
313
	cmp	eax,0xfff
314
	jb	@f
315
	mov	eax,0
316
;--------------------------------------
127 mario79 317
@@:
2478 mario79 318
	inc	eax
319
	mov	[mouse_delay],eax
320
	call	draw_infotext
321
;--------------------------------------
322
.noplus:
323
	cmp	ah,141
2639 mario79 324
	jnz	speakermute
2478 mario79 325
	call	_mouse_delay
326
;--------------------------------------
2639 mario79 327
speakermute:
328
	cmp	ah,152	; SET SPEAKER
329
	jne	no_speaker_d
330
;--------------------------------------
331
speaker_p:
332
	btc	[speaker_mute],0
333
	call	draw_infotext
334
	jmp	still
335
;--------------------------------------
336
no_speaker_d:
337
	cmp	ah,153
338
	jne	no_speaker_i
339
	jmp	speaker_p
340
;--------------------------------------
341
no_speaker_i:
342
	cmp	ah,151
343
	jne	.noapply
344
	call	_speaker_mute
345
	jmp	still
346
;--------------------------------------
2478 mario79 347
.noapply:
348
	cmp	ah,3	      ; SET KEYMAP
349
	jne	still
350
	call	_keyboard
351
	jmp	still
352
;-------------------------------------------------------------------------------
353
_keyboard:
354
	cmp	[keyboard],0	; english
355
	jnz	nosetkeyle
356
 
357
	mcall	21,2,1,en_keymap
358
 
359
	inc	ecx
360
	mcall	21,,,en_keymap_shift
127 mario79 361
 
2478 mario79 362
	mcall	21,,9,1
363
	call	alt_gen
364
;--------------------------------------
365
nosetkeyle:
366
	cmp	[keyboard],1	; finnish
367
	jnz	nosetkeylfi
31 halyavin 368
 
2478 mario79 369
	mcall	21,2,1,fi_keymap
370
 
371
	inc	ecx
372
	mcall	21,,,fi_keymap_shift
31 halyavin 373
 
2478 mario79 374
	mcall	21,,9,2
375
	call	alt_gen
376
;--------------------------------------
377
nosetkeylfi:
378
	cmp  [keyboard],2	; german
379
	jnz  nosetkeylge
31 halyavin 380
 
2478 mario79 381
	mcall	21,2,1,ge_keymap
382
 
383
	inc	ecx
384
	mcall	21,,,ge_keymap_shift
31 halyavin 385
 
2478 mario79 386
	mcall	21,,9,3
387
	call	alt_gen
388
;--------------------------------------
389
nosetkeylge:
390
	cmp	[keyboard],3	; russian
391
	jnz	nosetkeylru
392
 
393
	mcall	21,2,1,ru_keymap
394
 
395
	inc	ecx
396
	mcall	21,,,ru_keymap_shift
31 halyavin 397
 
2478 mario79 398
	mcall	21,,9,4
399
	call	alt_gen
400
;--------------------------------------
401
nosetkeylru:
402
	cmp	[keyboard],4 	;french
403
	jnz	nosetkeylfr
31 halyavin 404
 
2478 mario79 405
	mcall	21,2,1,fr_keymap
406
 
407
	inc	ecx
408
	mcall	21,,,fr_keymap_shift
31 halyavin 409
 
2478 mario79 410
	inc  ecx
411
	mcall	21,,,fr_keymap_alt_gr
31 halyavin 412
 
2478 mario79 413
	mcall	21,,9,5
414
;--------------------------------------
415
nosetkeylfr:
416
	cmp	[keyboard],5	; estonian
417
	jnz	nosetkeylet
31 halyavin 418
 
2478 mario79 419
	mcall	21,2,1,et_keymap
420
 
421
	inc	ecx
422
	mcall	21,,,et_keymap_shift
31 halyavin 423
 
2478 mario79 424
	mcall	21,,9,6
425
	call	alt_gen
426
;--------------------------------------
427
nosetkeylet:
428
	ret
429
;-------------------------------------------------------------------------------
430
alt_gen:
431
	mcall	21,,3,alt_general
432
	ret
433
;-------------------------------------------------------------------------------
434
draw_buttons:
435
	pusha
436
	shl  ecx,16
437
	add  ecx,12
438
	mcall	8,<(350-57),(46+BBB)>
31 halyavin 439
 
2478 mario79 440
	inc	edx
441
	mcall	,<(350-85),9>
31 halyavin 442
 
2478 mario79 443
	inc	edx
444
	mcall	,<(350-73),9>
31 halyavin 445
 
2478 mario79 446
	popa
447
	ret
448
;-------------------------------------------------------------------------------
31 halyavin 449
; ********************************************
450
; ******* WINDOW DEFINITIONS AND DRAW  *******
451
; ********************************************
452
draw_window:
2478 mario79 453
	pusha
454
	mcall	12,1
31 halyavin 455
 
2478 mario79 456
	xor	eax,eax       ; DRAW WINDOW
457
	xor	esi,esi
2639 mario79 458
	mcall	,<40,(355+BBB)>,<40,(12*16)>,0xB4111199,,title
2481 mario79 459
 
460
	mcall	9,procinfo,-1
461
 
462
	mov	eax,[ebx+70] ;status of window
463
	test	eax,100b
464
	jne	.end
31 halyavin 465
 
2639 mario79 466
	mcall	8,<(350-85),100>,<(5+16*8),12>,100,0x005588dd	; APPLY ALL
31 halyavin 467
 
2478 mario79 468
	add	ecx,16*65536	      ; SAVE ALL
469
	dec	edx
470
	mcall
31 halyavin 471
 
2478 mario79 472
	mov	esi,0x5580c0
31 halyavin 473
 
2478 mario79 474
	mov	edx,41
475
	mov	ecx,5+0*8
476
	call	draw_buttons
31 halyavin 477
 
2478 mario79 478
	mov	edx,3
479
	mov	ecx,5+2*8
480
	call	draw_buttons
31 halyavin 481
 
2478 mario79 482
	mov	edx,91
483
	mov	ecx,5+4*8
484
	call	draw_buttons
31 halyavin 485
 
2478 mario79 486
	mov	edx,101
487
	mov	ecx,5+6*8
488
	call	draw_buttons
31 halyavin 489
 
2478 mario79 490
	mov	edx,131
491
	mov	ecx,5+8*8
492
	call	draw_buttons
31 halyavin 493
 
2478 mario79 494
	mov	edx,141
495
	mov	ecx,5+10*8
496
	call	draw_buttons
2639 mario79 497
 
498
	mov	edx,151
499
	mov	ecx,5+12*8
500
	call	draw_buttons
120 mario79 501
 
2478 mario79 502
	call	draw_infotext
2481 mario79 503
.end:
2478 mario79 504
	mcall	12,2
505
	popa
506
	ret
507
;-------------------------------------------------------------------------------
31 halyavin 508
draw_infotext:
2478 mario79 509
	pusha
510
	mov	eax,[keyboard]       ; KEYBOARD
511
	test	eax,eax
512
	jnz	noen
513
	mov	[text00+LLL*1+28],dword 'ENGL'
514
	mov	[text00+LLL*1+32],dword 'ISH '
515
;--------------------------------------
516
noen:
517
	cmp	eax,1
518
	jnz	nofi
519
	mov	[text00+LLL*1+28],dword 'FINN'
520
	mov	[text00+LLL*1+32],dword 'ISH '
521
;--------------------------------------
522
nofi:
523
	cmp	eax,2
524
	jnz	noge
525
	mov	[text00+LLL*1+28],dword 'GERM'
526
	mov	[text00+LLL*1+32],dword 'AN  '
527
;--------------------------------------
528
noge:
529
	cmp	eax,3
530
	jnz	nogr
531
	mov	[text00+LLL*1+28],dword 'RUSS'
532
	mov	[text00+LLL*1+32],dword 'IAN '
533
;--------------------------------------
534
nogr:
535
	cmp	eax,4
536
	jnz	nofr
537
	mov	[text00+LLL*1+28],dword 'FREN'
538
	mov	[text00+LLL*1+32],dword 'CH  '
539
;--------------------------------------
540
nofr:
541
	cmp	eax,5
542
	jnz	noet
543
	mov	[text00+LLL*1+28],dword 'ESTO'
544
	mov	[text00+LLL*1+32],dword 'NIAN'
545
;--------------------------------------
546
noet:
547
	mov	eax,[syslang]		  ; SYSTEM LANGUAGE
548
	dec	eax
549
	test	eax,eax
550
	jnz	noen5
551
	mov	[text00+LLL*0+28],dword 'ENGL'
552
	mov	[text00+LLL*0+32],dword 'ISH '
553
;--------------------------------------
554
noen5:
555
	cmp	eax,1
556
	jnz	nofi5
557
	mov	[text00+LLL*0+28],dword 'FINN'
558
	mov	[text00+LLL*0+32],dword 'ISH '
559
;--------------------------------------
560
nofi5:
561
	cmp	eax,2
562
	jnz	noge5
563
	mov	[text00+LLL*0+28],dword 'GERM'
564
	mov	[text00+LLL*0+32],dword 'AN  '
565
;--------------------------------------
566
noge5:
567
	cmp	eax,3
568
	jnz	nogr5
569
	mov	[text00+LLL*0+28],dword 'RUSS'
570
	mov	[text00+LLL*0+32],dword 'IAN '
571
;--------------------------------------
572
nogr5:
573
	cmp	eax,4
574
	jne	nofr5
575
	mov	[text00+LLL*0+28],dword 'FREN'
576
	mov	[text00+LLL*0+32],dword 'CH  '
577
;--------------------------------------
578
nofr5:
579
	cmp	eax,5
580
	jne	noet5
581
	mov	[text00+LLL*0+28],dword 'ESTO'
582
	mov	[text00+LLL*0+32],dword 'NIAN'
583
;--------------------------------------
584
noet5:
585
	mov	eax,[lba_read]
586
	call	onoff				; LBA READ
587
	mov	[text00+LLL*2+28],ebx
31 halyavin 588
 
2478 mario79 589
	mov	eax,[pci_acc]
590
	call	onoff				; PCI ACCESS
591
	mov	[text00+LLL*3+28],ebx
2639 mario79 592
 
593
	mov	eax,[speaker_mute]
594
	call	onoff				; SPEAKER
595
	mov	[text00+LLL*6+28],ebx
31 halyavin 596
 
2478 mario79 597
	mov	eax,[mouse_speed]		; MOUSE SPEED
598
	add	al,48
599
	mov	[text00+LLL*4+28],al
31 halyavin 600
 
2478 mario79 601
	mov	eax,[mouse_delay]
602
	mov	esi,text00+LLL*5+32
603
	call	hexconvert			; MOUSE DELAY
604
	call	text_out
2639 mario79 605
 
2478 mario79 606
	popa
607
	ret
608
;-------------------------------------------------------------------------------
304 diamond 609
text_out:
2639 mario79 610
	mcall	13,<165,85>,<0,(14*8)>,0x80111199	;0x80111199-19
31 halyavin 611
 
2478 mario79 612
	mov	edx,text00
613
	mov	ebx,3*65536+7
614
	mov	eax,4
615
	mov	ecx,0xffffff
616
	mov	esi,LLL
617
	mov	ebp,text1_strings
618
;--------------------------------------
619
newline:
620
	mcall
621
	add	ebx,8+8
622
	add	edx,esi
623
	dec	ebp
624
	jnz	newline
31 halyavin 625
 
2478 mario79 626
	mov	ebp,text2_strings
627
	add	ebx,8+8
628
;--------------------------------------
629
@@:
630
	mcall
631
	add	ebx,8+8
632
	add	edx,esi
633
	dec	ebp
634
	jnz	@b
635
	ret
636
;-------------------------------------------------------------------------------
637
hexconvert:	     ;converting dec to hex in ascii
638
	xor	ebx,ebx
639
	mov	bl,al
640
	and	bl,15
641
	add	ebx,hex
642
	mov	cl,[ebx]
643
	mov	[esi],cl
644
	shr	eax,4
645
	xor	ebx,ebx
646
	mov	bl,al
647
	and	bl,15
648
	add	ebx,hex
649
	mov	cl,[ebx]
650
	dec	esi
651
	mov	[esi],cl
652
	shr	eax,4
653
	xor	ebx,ebx
654
	mov	bl,al
655
	and	bl,15
656
	add	ebx,hex
657
	mov	cl,[ebx]
658
	dec	esi
659
	mov	[esi],cl
660
	ret
661
;-------------------------------------------------------------------------------
31 halyavin 662
onoff:
2478 mario79 663
	cmp	[syslang],4
664
	jne	norus1
665
	mov	ebx,'ДА  '
666
	cmp	eax,1
667
	je	exitsub
668
	mov	ebx,'НЕТ '
669
	ret
670
;--------------------------------------
671
norus1:
672
	mov	ebx,'ON  '
673
	cmp	eax,1
674
	je	exitsub
675
	mov	ebx,'OFF '
676
;--------------------------------------
677
exitsub:
678
	ret
679
;-------------------------------------------------------------------------------
31 halyavin 680
_lba_read:
2478 mario79 681
	mcall	21,11,[lba_read]
682
	ret
683
;-------------------------------------------------------------------------------
31 halyavin 684
_pci_acc:
2478 mario79 685
	mcall	21,12,[pci_acc]
686
	ret
687
;-------------------------------------------------------------------------------
31 halyavin 688
_syslang:
2478 mario79 689
	mcall	21,5,[syslang]
690
	ret
691
;-------------------------------------------------------------------------------
127 mario79 692
_mouse_speed:
2478 mario79 693
	mcall	18,19,1,[mouse_speed]
694
	ret
695
;-------------------------------------------------------------------------------
127 mario79 696
_mouse_delay:
2478 mario79 697
	mcall	18,19,3,[mouse_delay]
698
	ret
699
;-------------------------------------------------------------------------------
2639 mario79 700
_speaker_mute:
701
	mcall	18,8,1
702
	cmp	[speaker_mute],eax
703
	je	@f
704
	inc	ecx
705
	mcall	18
706
;--------------------------------------
707
@@:
708
	ret
709
;-------------------------------------------------------------------------------
31 halyavin 710
loadtxt:
2478 mario79 711
	mov	edi,text00
2639 mario79 712
	mov	ecx,LLL*(text1_strings + text2_strings)/4+1
2478 mario79 713
	cmp	[syslang],4
714
	jne	norus
31 halyavin 715
 
2478 mario79 716
	mov	esi,textrus
717
	jmp	sload
718
;--------------------------------------
719
norus:
720
	mov	esi,texteng
721
;--------------------------------------
722
sload:
723
	rep	movsd
724
	ret
725
;-------------------------------------------------------------------------------
31 halyavin 726
cleantxt:
2478 mario79 727
	xor	eax,eax
728
	mov	ecx,LLL*(text1_strings + text2_strings)/4
729
	cld
730
	mov	edi,text00
731
	rep	stosd
732
	mov	[text00+1711],byte 'x'
733
	ret
734
;-------------------------------------------------------------------------------
31 halyavin 735
; DATA AREA
2299 hidnplayr 736
count:		db 0x0
2478 mario79 737
blinkpar:	dd 0x0
738
time:		dw 0x0
739
date:		dd 0x0
740
;-------------------------------------------------------------------------------
31 halyavin 741
textrus:
2478 mario79 742
	db 'Язык системы              : ENGLISH         - +   Применить'
743
	db 'Раскладка клавиатуры      : ENGLISH         - +   Применить'
744
	db 'Включить LBA              : OFF             - +   Применить'
745
	db 'Доступ к шине PCI         : OFF             - +   Применить'
746
	db 'Скорость курсора мыши     : 1               - +   Применить'
747
	db 'Задержка ускорения мыши   : 0x00a           - +   Применить'
2639 mario79 748
	db 'Выключить SPEAKER         : OFF             - +   Применить'
2478 mario79 749
 
750
	db 'ВНИМАНИЕ:                                    Применить все '
751
	db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ              Сохранить все '
752
;-------------------------------------------------------------------------------
31 halyavin 753
texteng:
2639 mario79 754
	db 'System language           : ENGLISH         - +     Apply  '
755
	db 'Keyboard layout           : ENGLISH         - +     Apply  '
756
	db 'LBA read enabled          : OFF             - +     Apply  '
757
	db 'PCI access for appl.      : OFF             - +     Apply  '
758
	db 'Mouse pointer speed       : 1               - +     Apply  '
759
	db 'Mouse pointer delay       : 0x00a           - +     Apply  '
760
	db 'SPEAKER disabled          : OFF             - +     Apply  '
761
text1_strings = 7
31 halyavin 762
 
2639 mario79 763
	db 'NOTE:                                           Apply all  '
764
	db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI       Save all   '
304 diamond 765
text2_strings = 2
2478 mario79 766
;-------------------------------------------------------------------------------
2550 leency 767
title	db 'System setup',0
31 halyavin 768
 
2478 mario79 769
hex	db '0123456789ABCDEF'
770
;-------------------------------------------------------------------------------
2299 hidnplayr 771
include 'keymaps.inc'
2478 mario79 772
;-------------------------------------------------------------------------------
120 mario79 773
read_fileinfo:
2478 mario79 774
	dd 0
775
	dd 0
776
	dd 0
2639 mario79 777
	dd 28
2478 mario79 778
	dd keyboard
779
	db 0
780
	dd file_name
781
;-------------------------------------------------------------------------------
120 mario79 782
save_fileinfo:
2478 mario79 783
	dd 2
784
	dd 0
785
	dd 0
2639 mario79 786
	dd 28
2478 mario79 787
	dd keyboard
788
file_name:	db '/sys/setup.dat',0
789
;-------------------------------------------------------------------------------
2319 mario79 790
keyboard	dd 0x0
2639 mario79 791
syslang		dd 0x4	; 4 - rus
2319 mario79 792
lba_read	dd 0x1
793
pci_acc		dd 0x1
2639 mario79 794
mouse_speed	dd 0x2
795
mouse_delay	dd 0xa
796
speaker_mute	dd 0	; 0 - enable, 1 - disable
2319 mario79 797
;-----------------------------------------------------------------------------
2478 mario79 798
IM_END:
799
;-----------------------------------------------------------------------------
800
align 4
31 halyavin 801
text00:
2639 mario79 802
	rb LLL*(text1_strings + text2_strings)+4
2478 mario79 803
;-----------------------------------------------------------------------------
804
align 4
2639 mario79 805
boot_param:
2481 mario79 806
procinfo:
807
	rb 1024
808
;-----------------------------------------------------------------------------
809
align 4
810
	rb 0x1000
2478 mario79 811
stack_area:
812
;-----------------------------------------------------------------------------
31 halyavin 813
I_END:
2478 mario79 814
;-------------------------------------------------------------------------------