Subversion Repositories Kolibri OS

Rev

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