Subversion Repositories Kolibri OS

Rev

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