Subversion Repositories Kolibri OS

Rev

Rev 529 | Rev 2299 | 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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
 
7
; Authors: Ville       - original version
8
;          A. Ivushkin - autostart (w launcher)
9
;          M. Lisovin  - added many feauters (apply all, save all, set time...)
10
;          I. Poddubny - fixed russian keymap
127 mario79 11
;14/08/06  Mario79 - added regulation of mouse features
31 halyavin 12
 
13
;******************************************************************************
14
  use32
127 mario79 15
  org        0x0
31 halyavin 16
  db      'MENUET01'   ; 8 byte identifier
502 heavyiron 17
  dd      0x01           ; header version
31 halyavin 18
  dd      START        ; pointer to program start
19
  dd      I_END        ; size of image
20
  dd      0x4000      ; reguired amount of memory
21
  dd      0x4000      ; stack pointer (esp)
22
  dd      I_PARAM,0    ; parameters, reserved
485 heavyiron 23
  include '..\..\..\macros.inc'
31 halyavin 24
;******************************************************************************
25
 
26
LLL equ (56+3)
27
BBB equ 25
28
 
29
;******************************************************************************
30
apply_all:
31
 
32
    call _midibase    ;1
33
    call _sound_dma    ;10
34
    call _pci_acc    ;12
127 mario79 35
    call _sb16        ;4
31 halyavin 36
    call _syslang    ;5
37
    call _keyboard    ;2
127 mario79 38
    call _mouse_speed
39
    call _mouse_delay
31 halyavin 40
    call get_disk_info
41
    cmp  [cd],0
42
    jne  no_cd
43
    call _cdbase    ;3
44
  no_cd:
45
    cmp  [hd],0
46
    jne  no_hd
47
    call _lba_read    ;11
48
    call _hdbase    ;7
127 mario79 49
    call _f32p        ;8
31 halyavin 50
  no_hd:
51
ret
52
;-------------------------------------------------------------------------------
53
get_disk_info:
54
    mov  [hd],1
55
    mov  [cd],1
56
    mov  [hdbase],0
57
    mov  [cdbase],0
58
    mcall 18,11,1,table_area
59
 
60
  ide_0:
61
    mov  al,[table_area+1]
62
    shr  al,6
63
    cmp  al,0
127 mario79 64
    je        ide_1
31 halyavin 65
    cmp  al,01b
66
    jnz  ide_0_cd
67
    mov  [hdbase],1
68
    mov  [hd],0
69
    jmp  ide_1
70
 
71
  ide_0_cd:
72
    cmp  al,10b
73
    jnz  ide_1
74
    mov  [cdbase],1
75
    mov  [cd],0
76
    cmp  [hd],0
127 mario79 77
    je         all_device
31 halyavin 78
 
79
  ide_1:
80
    mov  al,[table_area+1]
81
    shl  al,2
82
    shr  al,6
83
    cmp  al,0
127 mario79 84
    je        ide_2
31 halyavin 85
    cmp  al,01b
86
    jnz  ide_1_cd
87
    cmp  [hd],0
127 mario79 88
    je         ide_11
31 halyavin 89
    mov  [hdbase],2
90
    mov  [hd],0
91
  ide_11:
92
    cmp  [cd],0
127 mario79 93
    je         all_device
31 halyavin 94
    jmp  ide_2
95
 
96
  ide_1_cd:
97
    cmp  al,10b
98
    jnz  ide_2
99
    cmp  [cd],0
127 mario79 100
    je         ide_11_cd
31 halyavin 101
    mov  [cdbase],2
102
    mov  [cd],0
103
  ide_11_cd:
104
    cmp  [hd],0
127 mario79 105
    je         all_device
31 halyavin 106
 
107
 ide_2:
108
    mov  al,[table_area+1]
109
    shl  al,4
110
    shr  al,6
111
    cmp  al,0
127 mario79 112
    je        ide_3
31 halyavin 113
    cmp  al,01b
114
    jnz  ide_2_cd
115
    cmp  [hd],0
127 mario79 116
    je         ide_21
31 halyavin 117
    mov  [hdbase],3
118
    mov  [hd],0
119
  ide_21:
120
    cmp  [cd],0
127 mario79 121
    je         all_device
31 halyavin 122
    jmp  ide_3
123
 
124
  ide_2_cd:
125
    cmp  al,10b
126
    jnz  ide_3
127
    cmp  [cd],0
127 mario79 128
    je         ide_21_cd
31 halyavin 129
    mov  [cdbase],3
130
    mov  [cd],0
131
  ide_21_cd:
132
    cmp  [hd],0
127 mario79 133
    je         all_device
31 halyavin 134
 
135
  ide_3:
136
    mov  al,[table_area+1]
137
    shl  al,6
138
    shr  al,6
139
    cmp  al,0
127 mario79 140
    je        not_device
31 halyavin 141
    cmp  al,01b
142
    jnz  ide_3_cd
143
    cmp  [hd],0
127 mario79 144
    je         ide_31
31 halyavin 145
    mov  [hdbase],4
146
    mov  [hd],0
147
  ide_31:
148
    cmp  [cd],0
149
    jmp   all_device
150
 
151
  ide_3_cd:
152
    cmp  al,10b
153
    jnz  not_device
154
    cmp  [cd],0
127 mario79 155
    je         all_device
31 halyavin 156
    mov  [cdbase],4
157
    mov  [cd],0
158
 
159
  all_device:
160
  not_device:
161
    ret
162
 
163
hd db 0
164
cd db 0
165
;******************************************************************************
166
apply_all_and_exit:
120 mario79 167
    mcall 70,read_fileinfo
31 halyavin 168
    call apply_all
169
    jmp  close
170
 
171
;******************************************************************************
172
set_language_and_exit:
173
    mov  eax,26
174
    mov  ebx,2
175
    mov  ecx,9
485 heavyiron 176
    mcall
31 halyavin 177
;    cmp  eax,5
178
;    jne  @f
179
;    xor  eax,eax
180
;@@: mov  [keyboard],eax
181
    cmp  eax,1
127 mario79 182
    je        russian
31 halyavin 183
    xor  eax,eax
184
set_lang_now:
185
    mov  [keyboard],eax
186
    call _keyboard
187
    jmp  close
188
russian:
189
    mov  eax,3
190
    jmp  set_lang_now
191
 
192
set_syslanguage_and_exit:
193
    mov  eax,26
194
    mov  ebx,5
195
;    mov  ecx,9
485 heavyiron 196
    mcall
275 kaitz 197
    cmp  eax,6
127 mario79 198
    jne  temp      ;@f
31 halyavin 199
    xor  eax,eax
200
;@@: inc  eax
201
temp: inc  eax
202
    mov  [syslang],eax
203
    call _syslang
204
    jmp  close
205
 
206
get_setup_values:
207
    mcall 26,1
208
    mov [midibase],eax
209
    mcall 26,2,9
210
    dec  eax
211
    mov [keyboard],eax
212
    mcall 26,3
213
    mov [cdbase],eax
214
    mcall 26,4
215
    mov [sb16],eax
216
    mcall 26,5
217
    mov [syslang],eax
218
    mcall 26,7
219
    mov [hdbase],eax
220
    mcall 26,8
221
    mov [f32p],eax
222
    mcall 26,10
223
    mov [sound_dma],eax
224
    mcall 26,11
225
    mov [lba_read],eax
226
    mcall 26,12
227
    mov [pci_acc],eax
120 mario79 228
    mcall 18,19,0
229
    mov [mouse_speed],eax
127 mario79 230
    mcall 18,19,2
231
    mov [mouse_delay],eax
31 halyavin 232
    ret
233
 
234
;******************************************************************************
235
 
236
START:
237
    cmp  [I_PARAM], 'SLAN'
127 mario79 238
    je         set_syslanguage_and_exit
31 halyavin 239
 
240
    cmp  [I_PARAM], 'LANG'
127 mario79 241
    je         set_language_and_exit
31 halyavin 242
 
243
    cmp  [I_PARAM], 'BOOT'
127 mario79 244
    je         apply_all_and_exit
31 halyavin 245
 
120 mario79 246
    call get_setup_values
31 halyavin 247
    call loadtxt
248
red:
249
    call draw_window
250
 
251
still:
252
 
253
    cmp  word [blinkpar],0
254
    jne  blinker
120 mario79 255
    mov  eax,29     ;get system date
485 heavyiron 256
    mcall
31 halyavin 257
    cmp  eax,[date]
127 mario79 258
    je         gettime
31 halyavin 259
    mov  [date],eax
260
 gettime:
127 mario79 261
    mov  eax,3        ;get system time
485 heavyiron 262
    mcall
31 halyavin 263
    cmp  ax,[time]
127 mario79 264
    je         sysevent
31 halyavin 265
    mov  [time],ax
266
    call drawtime
267
 
268
 sysevent:
269
    mov  eax,23
127 mario79 270
    mov  ebx,8        ; wait here for event with timeout
485 heavyiron 271
    mcall
31 halyavin 272
 
273
    cmp  eax,1
127 mario79 274
    jz         red
31 halyavin 275
    cmp  eax,2
127 mario79 276
    jz         key
31 halyavin 277
    cmp  eax,3
127 mario79 278
    jz         button
31 halyavin 279
 
280
    jmp  still
281
 
282
 blinker:
283
    cmp  byte [count],6
127 mario79 284
    jb         noblink
31 halyavin 285
    btc  dword [blinkpar],16
286
    mov  byte [count],0
287
    call drawtime
288
 noblink:
289
    inc  byte [count]
290
    jmp  sysevent
291
 
292
incdectime:
293
    cmp byte [blinkpar],0
127 mario79 294
    je        still
31 halyavin 295
    mov esi,time
296
    mov bl,0x23  ;border
297
    cmp byte [blinkpar],1
127 mario79 298
    je        hours
31 halyavin 299
    mov bl,0x59       ;minutes
300
    inc esi
301
  hours:
302
    mov al,byte [esi]
303
    cmp ah,112
127 mario79 304
    je        dectime
31 halyavin 305
    cmp al,bl
127 mario79 306
    je        noinctime
31 halyavin 307
     inc al
308
     daa
309
    jmp incdectime1
310
  noinctime:
311
    xor al,al
312
  incdectime1:
313
    mov byte [esi],al
314
    jmp still
315
  dectime:
316
    cmp al,0
127 mario79 317
    je        nodectime
31 halyavin 318
    dec al
319
    das
320
    jmp incdectime1
321
  nodectime:
322
    mov al,bl
323
    jmp incdectime1
324
 
325
incdecdate:
326
    cmp byte [blinkpar+1],0
127 mario79 327
    je        still
31 halyavin 328
    mov esi,date
329
    mov bl,0      ;border of years
330
    cmp byte [blinkpar+1],1
331
    jne days
120 mario79 332
    mov bl,0x12     ;months
31 halyavin 333
    inc esi
334
  days:
335
    cmp byte [blinkpar+1],2
336
    jne nodays
337
    mov bl,0x31
338
    add esi,2
339
  nodays:
340
    mov al,byte [esi]
341
    cmp ah,122
127 mario79 342
    je        decdate
31 halyavin 343
    cmp al,bl
127 mario79 344
    je        noincdate
31 halyavin 345
    inc al ;add al,1
346
    daa
347
    jmp incdecdate1
348
  noincdate:
349
    mov al,1
350
  incdecdate1:
351
    mov byte [esi],al
352
    jmp still
353
  decdate:
354
    cmp al,1
127 mario79 355
    je        nodecdate
31 halyavin 356
    dec al
357
    das
358
    jmp incdecdate1
359
  nodecdate:
360
    mov al,bl
361
    jmp incdecdate1
362
 
363
 
364
  key:
365
    ;mov  eax,2
485 heavyiron 366
    mcall
31 halyavin 367
    cmp  ah,27
368
    jne  still
369
    mov  dword [blinkpar],0
370
    call drawtime
371
    jmp  still
372
 
373
  button:
374
 
375
    mov  eax,17
485 heavyiron 376
    mcall
31 halyavin 377
 
378
    cmp  ah,112
127 mario79 379
    je         incdectime
31 halyavin 380
    cmp  ah,113
127 mario79 381
    je         incdectime
31 halyavin 382
    cmp  ah,122
127 mario79 383
    je         incdecdate
31 halyavin 384
    cmp  ah,123
127 mario79 385
    je         incdecdate
31 halyavin 386
    cmp  ah,111
387
    jne  noseltime
388
    mov  al, [blinkpar]
389
    cmp  al,2
390
    jae  seltime
391
    inc  al
392
    jmp  seltime1
393
  seltime:
394
    xor  al,al
395
  seltime1:
396
    mov  [blinkpar],al
397
    call drawtime
398
    jmp  still
399
noseltime:
400
    cmp  ah,121
401
    jne  noseldate
402
    mov  al,byte [blinkpar+1]
403
    cmp  al,3
404
    jae  seldate
405
    inc  al
406
    jmp  seldate1
407
 seldate:
408
    xor  al,al
409
 seldate1:
410
    mov  [blinkpar+1],al
411
    call drawtime
412
    jmp  still
413
noseldate:
414
    cmp  ah,99
415
    jne  nosaveall
120 mario79 416
    mcall 70,save_fileinfo
31 halyavin 417
    mov  dword [blinkpar],0
418
    call drawtime
419
    jmp  still
420
nosaveall:
421
    cmp  ah,100
422
    jne  no_apply_all
423
    call apply_all
424
    jmp  still
425
no_apply_all:
426
 
127 mario79 427
    cmp  ah,1           ; CLOSE APPLICATION
31 halyavin 428
    jne  no_close
429
close:
127 mario79 430
    or         eax,-1
485 heavyiron 431
    mcall
31 halyavin 432
  no_close:
433
 
127 mario79 434
    cmp  ah,11         ; SET MIDI BASE
31 halyavin 435
    jnz  nosetbase1
436
    call _midibase
437
   nosetbase1:
438
    cmp  ah,12
439
    jnz  nomm
440
    sub  [midibase],2
441
    call draw_infotext
442
  nomm:
443
    cmp  ah,13
444
    jnz  nomp
445
    add  [midibase],2
446
    call draw_infotext
447
  nomp:
448
 
449
 
127 mario79 450
    cmp  ah,4           ; SET KEYBOARD
31 halyavin 451
    jnz  nokm
452
    mov  eax,[keyboard]
453
    test eax,eax
127 mario79 454
    je         downuplbl
31 halyavin 455
    dec  eax
456
    jmp  nodownup
457
   downuplbl:
275 kaitz 458
    mov  eax,5
31 halyavin 459
   nodownup:
460
    mov  [keyboard],eax
461
    call draw_infotext
462
  nokm:
463
    cmp  ah,5
464
    jnz  nokp
465
    mov  eax,[keyboard]
275 kaitz 466
    cmp  eax,5
127 mario79 467
    je         updownlbl
31 halyavin 468
    inc  eax
469
    jmp  noupdown
470
   updownlbl:
471
    xor  eax,eax
472
   noupdown:
473
    mov  [keyboard],eax
474
    call draw_infotext
475
  nokp:
476
 
477
 
127 mario79 478
    cmp  ah,22          ; SET CD BASE
31 halyavin 479
    jnz  nocm
480
    mov  eax,[cdbase]
481
    sub  eax,2
482
    and  eax,3
483
    inc  eax
484
    mov  [cdbase],eax
485
    call draw_infotext
486
  nocm:
487
    cmp  ah,23
488
    jnz  nocp
489
    mov  eax,[cdbase]
490
    and  eax,3
491
    inc  eax
492
    mov  [cdbase],eax
493
    call draw_infotext
494
  nocp:
495
    cmp  ah,21
496
    jnz  nocs
497
    call _cdbase
498
  nocs:
499
 
127 mario79 500
    cmp  ah,62        ; SET HD BASE
31 halyavin 501
    jnz  hnocm
502
    mov  eax,[hdbase]
503
    sub  eax,2
504
    and  eax,3
505
    inc  eax
506
    mov  [hdbase],eax
507
    call draw_infotext
508
  hnocm:
509
    cmp  ah,63
510
    jnz  hnocp
511
    mov  eax,[hdbase]
512
    and  eax,3
513
    inc  eax
514
    mov  [hdbase],eax
515
    call draw_infotext
516
  hnocp:
517
    cmp  ah,61
518
    jnz  hnocs
519
    call _hdbase
520
  hnocs:
521
 
127 mario79 522
    cmp  ah,82        ; SET SOUND DMA
31 halyavin 523
    jne  no_sdma_d
524
    mov  eax,[sound_dma]
525
    dec  eax
526
   sdmal:
527
    and  eax,3
528
    mov  [sound_dma],eax
529
    call draw_infotext
530
    jmp  still
531
  no_sdma_d:
532
    cmp  ah,83
533
    jne  no_sdma_i
534
    mov  eax,[sound_dma]
535
    inc  eax
536
    jmp  sdmal
537
  no_sdma_i:
538
    cmp  ah,81
539
    jne  no_set_sound_dma
540
    call _sound_dma
541
    jmp  still
542
  no_set_sound_dma:
543
 
127 mario79 544
    cmp  ah,92         ; SET LBA READ
31 halyavin 545
    jne  no_lba_d
546
  slbal:
547
    btc  [lba_read],0
548
    call draw_infotext
549
    jmp  still
550
   no_lba_d:
551
    cmp  ah,93
552
    jne  no_lba_i
553
    jmp  slbal
554
  no_lba_i:
555
    cmp  ah,91
556
    jne  no_set_lba_read
557
    call _lba_read
558
    jmp  still
559
   no_set_lba_read:
560
 
561
 
120 mario79 562
    cmp  ah,102       ; SET PCI ACCESS
31 halyavin 563
    jne  no_pci_d
564
  pcip:
565
    btc  [pci_acc],0
566
    call draw_infotext
567
    jmp  still
568
  no_pci_d:
569
    cmp  ah,103
570
    jne  no_pci_i
571
    jmp  pcip
572
   no_pci_i:
573
    cmp  ah,101
574
    jne  no_set_pci_acc
575
    call _pci_acc
576
    jmp  still
577
  no_set_pci_acc:
578
 
579
 
580
  set_partition:
127 mario79 581
    cmp  ah,72        ; SET FAT32 PARTITION
31 halyavin 582
    jnz  .nominus
583
    mov  eax,[f32p]
584
    sub  eax,2
585
;   and  eax,15          ; 3 - four partitions, 7 - eight p., 15 - sixteen, etc.
586
    cmp  eax,15
127 mario79 587
    jb        @f
31 halyavin 588
    mov  eax,14
589
@@:
590
    inc  eax
591
    mov  [f32p],eax
592
    call draw_infotext
593
  .nominus:
594
    cmp  ah,73
595
    jnz  .noplus
596
    mov  eax,[f32p]
597
;   and  eax,15          ; 3 - four partitions, 7 - eight p., 15 - sixteen, etc.
598
    cmp  eax,15
127 mario79 599
    jb        @f
31 halyavin 600
    mov  eax,0
601
@@:
602
    inc  eax
603
    mov  [f32p],eax
604
    call draw_infotext
605
  .noplus:
606
    cmp  ah,71
607
    jnz  .noapply
608
    call _f32p
609
  .noapply:
610
 
127 mario79 611
    cmp  ah,32        ; SET SOUND BLASTER 16 BASE
31 halyavin 612
    jnz  nosbm
613
    sub  [sb16],2
614
    call draw_infotext
615
  nosbm:
616
    cmp  ah,33
617
    jnz  nosbp
618
    add  [sb16],2
619
    call draw_infotext
620
  nosbp:
621
    cmp  ah,31
622
    jnz  nosbs
623
    call _sb16
624
  nosbs:
625
 
127 mario79 626
    cmp  ah,42          ; SET SYSTEM LANGUAGE BASE
31 halyavin 627
    jnz  nosysm
628
    mov  eax,[syslang]
629
    dec  eax
127 mario79 630
    jz         still
31 halyavin 631
    mov  [syslang],eax
632
    call draw_infotext
633
  nosysm:
634
    cmp  ah,43
635
    jnz  nosysp
636
    mov  eax,[syslang]
275 kaitz 637
    cmp  eax,6
127 mario79 638
    je         nosysp
31 halyavin 639
    inc  eax
640
    mov  [syslang],eax
641
    call draw_infotext
642
  nosysp:
643
    cmp  ah,41
644
    jnz  nosyss
645
    call _syslang
646
    call cleantxt
647
    call loadtxt
648
    call draw_window
649
    call drawtime
650
  nosyss:
120 mario79 651
    cmp  ah,132        ; SET MOUSE SPEED
652
    jnz  .nominus
653
    mov  eax,[mouse_speed]
654
    sub  eax,2
655
    cmp  eax,9
127 mario79 656
    jb        @f
120 mario79 657
    mov  eax,8
658
@@:
659
    inc  eax
660
    mov  [mouse_speed],eax
661
    call draw_infotext
662
  .nominus:
663
    cmp  ah,133
664
    jnz  .noplus
665
    mov  eax,[mouse_speed]
666
    cmp  eax,9
127 mario79 667
    jb        @f
120 mario79 668
    mov  eax,0
669
@@:
670
    inc  eax
671
    mov  [mouse_speed],eax
672
    call draw_infotext
673
  .noplus:
674
    cmp  ah,131
675
    jnz  .noapply
127 mario79 676
    call _mouse_speed
120 mario79 677
  .noapply:
127 mario79 678
 mousedelay:
679
    cmp  ah,142        ; SET MOUSE DELAY
680
    jnz  .nominus
681
    mov  eax,[mouse_delay]
682
    sub  eax,2
683
    cmp  eax,0xfff
684
    jb        @f
685
    mov  eax,0xffe
686
@@:
687
    inc  eax
688
    mov  [mouse_delay],eax
689
    call draw_infotext
690
  .nominus:
691
    cmp  ah,143
692
    jnz  .noplus
693
    mov  eax,[mouse_delay]
694
    cmp  eax,0xfff
695
    jb        @f
696
    mov  eax,0
697
@@:
698
    inc  eax
699
    mov  [mouse_delay],eax
700
    call draw_infotext
701
  .noplus:
702
    cmp  ah,141
703
    jnz  .noapply
704
    call _mouse_delay
705
  .noapply:
706
 
707
    cmp  ah,3         ; SET KEYMAP
31 halyavin 708
    jne  still
709
    call _keyboard
710
    jmp  still
711
 
712
  _keyboard:
713
    cmp [keyboard],0
714
    jnz  nosetkeyle
715
    mov  eax,21       ; english
716
    mov  ebx,2
717
    mov  ecx,1
718
    mov  edx,en_keymap
485 heavyiron 719
    mcall
31 halyavin 720
    mov  eax,21
721
    inc  ecx
722
    mov  edx,en_keymap_shift
485 heavyiron 723
    mcall
31 halyavin 724
    mov  eax,21
725
    mov  ecx,9
726
    mov  edx,1
485 heavyiron 727
    mcall
31 halyavin 728
    call alt_gen
729
  nosetkeyle:
730
    cmp  [keyboard],1
731
    jnz  nosetkeylfi
732
    mov  eax,21       ; finnish
733
    mov  ebx,2
734
    mov  ecx,1
735
    mov  edx,fi_keymap
485 heavyiron 736
    mcall
31 halyavin 737
    mov  eax,21
738
    inc  ecx
739
    mov  edx,fi_keymap_shift
485 heavyiron 740
    mcall
31 halyavin 741
    mov  eax,21
742
    mov  ecx,9
743
    mov  edx,2
485 heavyiron 744
    mcall
31 halyavin 745
    call alt_gen
746
  nosetkeylfi:
747
    cmp  [keyboard],2
748
    jnz  nosetkeylge
749
    mov  eax,21       ; german
750
    mov  ebx,2
751
    mov  ecx,1
752
    mov  edx,ge_keymap
485 heavyiron 753
    mcall
31 halyavin 754
    mov  eax,21
755
    inc  ecx
756
    mov  edx,ge_keymap_shift
485 heavyiron 757
    mcall
31 halyavin 758
    mov  eax,21
759
    mov  ecx,9
760
    mov  edx,3
485 heavyiron 761
    mcall
31 halyavin 762
    call alt_gen
763
  nosetkeylge:
764
    cmp  [keyboard],3
765
    jnz  nosetkeylru
766
    mov  eax,21       ; russian
767
    mov  ebx,2
768
    mov  ecx,1
769
    mov  edx,ru_keymap
485 heavyiron 770
    mcall
31 halyavin 771
    mov  eax,21
772
    inc  ecx
773
    mov  edx,ru_keymap_shift
485 heavyiron 774
    mcall
31 halyavin 775
    call alt_gen
776
    mov  eax,21
777
    mov  ecx,9
778
    mov  edx,4
485 heavyiron 779
    mcall
31 halyavin 780
  nosetkeylru:
127 mario79 781
    cmp  [keyboard],4        ;french
31 halyavin 782
    jnz  nosetkeylfr
783
    mov  eax,21
784
    mov  ebx,2
785
    mov  ecx,1
786
    mov  edx,fr_keymap
485 heavyiron 787
    mcall
31 halyavin 788
    mov  eax,21
789
    inc  ecx
790
    mov  edx,fr_keymap_shift
485 heavyiron 791
    mcall
31 halyavin 792
    mov  eax,21
793
    inc  ecx
794
    mov  edx,fr_keymap_alt_gr
485 heavyiron 795
    mcall
31 halyavin 796
    mov  eax,21
797
    mov  ecx,9
798
    mov  edx,5
485 heavyiron 799
    mcall
31 halyavin 800
  nosetkeylfr:
275 kaitz 801
    cmp  [keyboard],5
802
    jnz  nosetkeylet
803
    mov  eax,21       ; estonian
804
    mov  ebx,2
805
    mov  ecx,1
806
    mov  edx,et_keymap
485 heavyiron 807
    mcall
275 kaitz 808
    mov  eax,21
809
    inc  ecx
810
    mov  edx,et_keymap_shift
485 heavyiron 811
    mcall
275 kaitz 812
    mov  eax,21
813
    mov  ecx,9
814
    mov  edx,6
485 heavyiron 815
    mcall
275 kaitz 816
    call alt_gen
817
  nosetkeylet:
31 halyavin 818
    ret
819
 
820
 alt_gen:
821
   mov eax,21
822
   mov ecx,3
823
   mov edx,alt_general
485 heavyiron 824
   mcall
31 halyavin 825
   ret
826
 
827
 
828
 
829
draw_buttons:
830
 
831
    pusha
832
 
833
    shl  ecx,16
834
    add  ecx,12
835
    mov  ebx,(350-50)*65536+46+BBB
836
 
837
    mov  eax,8
485 heavyiron 838
    mcall
31 halyavin 839
 
840
    mov  ebx,(350-79)*65536+9
841
    inc  edx
485 heavyiron 842
    mcall
31 halyavin 843
 
844
    mov  ebx,(350-67)*65536+9
845
    inc  edx
485 heavyiron 846
    mcall
31 halyavin 847
 
848
    popa
849
    ret
850
 
851
 
852
 
853
; ********************************************
854
; ******* WINDOW DEFINITIONS AND DRAW  *******
855
; ********************************************
856
 
857
 
858
draw_window:
859
 
860
    pusha
861
 
862
    mov  eax,12
863
    mov  ebx,1
485 heavyiron 864
    mcall
31 halyavin 865
 
120 mario79 866
    xor  eax,eax       ; DRAW WINDOW
31 halyavin 867
    mov  ebx,40*65536+355+BBB
127 mario79 868
    mov  ecx,40*65536+320
551 spraid 869
    mov  edx,0x94111199
485 heavyiron 870
    mov  edi,title
871
    mcall
31 halyavin 872
 
127 mario79 873
    mov  eax,8             ; APPLY ALL
31 halyavin 874
    mov  ebx,(350-79)*65536+100
127 mario79 875
    mov  ecx,282*65536+12
31 halyavin 876
    mov  edx,100
120 mario79 877
    mov  esi,0x005588dd
485 heavyiron 878
    mcall
127 mario79 879
    add  ecx,16*65536         ; SAVE ALL
31 halyavin 880
    dec  edx
485 heavyiron 881
    mcall
31 halyavin 882
 
883
    mov  esi,0x5580c0
884
 
885
    mov  edx,11
886
    mov  ecx,43
887
    call draw_buttons
888
 
889
    mov  edx,41
890
    mov  ecx,43+8*8
891
    call draw_buttons
892
 
893
    mov  edx,21
894
    mov  ecx,43+4*8
895
    call draw_buttons
896
 
897
    mov  edx,31
898
    mov  ecx,43+2*8
899
    call draw_buttons
900
 
901
    mov  edx,3
902
    mov  ecx,43+10*8
903
    call draw_buttons
904
 
905
    mov  edx,61
906
    mov  ecx,43+6*8
907
    call draw_buttons
908
 
909
    mov  edx,91
304 diamond 910
    mov  ecx,43+16*8
31 halyavin 911
    call draw_buttons
912
 
913
    mov  edx,71
304 diamond 914
    mov  ecx,43+12*8
31 halyavin 915
    call draw_buttons
916
 
917
    mov  edx,81
304 diamond 918
    mov  ecx,43+14*8
31 halyavin 919
    call draw_buttons
920
 
921
    mov  edx,101
304 diamond 922
    mov  ecx,43+18*8
31 halyavin 923
    call draw_buttons
924
 
925
    mov  edx,111
304 diamond 926
    mov  ecx,43+20*8 ; 22
31 halyavin 927
    call draw_buttons
928
 
929
    mov  edx,121
304 diamond 930
    mov  ecx,43+22*8 ; 24
31 halyavin 931
    call draw_buttons
932
 
120 mario79 933
    mov  edx,131
304 diamond 934
    mov  ecx,43+24*8 ; 26
120 mario79 935
    call draw_buttons
936
 
127 mario79 937
    mov  edx,141
304 diamond 938
    mov  ecx,43+26*8 ; 26
127 mario79 939
    call draw_buttons
940
 
31 halyavin 941
    call draw_infotext
942
 
943
    mov  eax,12
944
    mov  ebx,2
485 heavyiron 945
    mcall
31 halyavin 946
 
947
    popa
948
    ret
949
 
950
 
951
 
952
draw_infotext:
953
 
954
    pusha
955
 
127 mario79 956
    mov  eax,[keyboard]       ; KEYBOARD
31 halyavin 957
    test eax,eax
958
    jnz  noen
304 diamond 959
    mov  [text00+LLL*5+28],dword 'ENGL'
960
    mov  [text00+LLL*5+32],dword 'ISH '
31 halyavin 961
  noen:
962
    cmp  eax,1
963
    jnz  nofi
304 diamond 964
    mov  [text00+LLL*5+28],dword 'FINN'
965
    mov  [text00+LLL*5+32],dword 'ISH '
31 halyavin 966
  nofi:
967
    cmp  eax,2
968
    jnz  noge
304 diamond 969
    mov  [text00+LLL*5+28],dword 'GERM'
970
    mov  [text00+LLL*5+32],dword 'AN  '
31 halyavin 971
  noge:
972
    cmp  eax,3
973
    jnz  nogr
304 diamond 974
    mov  [text00+LLL*5+28],dword 'RUSS'
975
    mov  [text00+LLL*5+32],dword 'IAN '
31 halyavin 976
  nogr:
977
    cmp  eax,4
978
    jnz  nofr
304 diamond 979
    mov  [text00+LLL*5+28],dword 'FREN'
980
    mov  [text00+LLL*5+32],dword 'CH  '
31 halyavin 981
  nofr:
275 kaitz 982
    cmp  eax,5
983
    jnz  noet
304 diamond 984
    mov  [text00+LLL*5+28],dword 'ESTO'
985
    mov  [text00+LLL*5+32],dword 'NIAN'
275 kaitz 986
  noet:
31 halyavin 987
 
127 mario79 988
    mov  eax,[syslang]            ; SYSTEM LANGUAGE
31 halyavin 989
    dec  eax
990
    test eax,eax
991
    jnz  noen5
304 diamond 992
    mov  [text00+LLL*4+28],dword 'ENGL'
993
    mov  [text00+LLL*4+32],dword 'ISH '
31 halyavin 994
  noen5:
995
    cmp  eax,1
996
    jnz  nofi5
304 diamond 997
    mov  [text00+LLL*4+28],dword 'FINN'
998
    mov  [text00+LLL*4+32],dword 'ISH '
31 halyavin 999
  nofi5:
1000
    cmp  eax,2
1001
    jnz  noge5
304 diamond 1002
    mov  [text00+LLL*4+28],dword 'GERM'
1003
    mov  [text00+LLL*4+32],dword 'AN  '
31 halyavin 1004
  noge5:
1005
    cmp  eax,3
1006
    jnz  nogr5
304 diamond 1007
    mov  [text00+LLL*4+28],dword 'RUSS'
1008
    mov  [text00+LLL*4+32],dword 'IAN '
31 halyavin 1009
  nogr5:
1010
    cmp  eax,4
1011
    jne  nofr5
304 diamond 1012
    mov  [text00+LLL*4+28],dword 'FREN'
1013
    mov  [text00+LLL*4+32],dword 'CH  '
31 halyavin 1014
  nofr5:
275 kaitz 1015
    cmp  eax,5
1016
    jne  noet5
304 diamond 1017
    mov  [text00+LLL*4+28],dword 'ESTO'
1018
    mov  [text00+LLL*4+32],dword 'NIAN'
275 kaitz 1019
  noet5:
31 halyavin 1020
 
1021
    mov  eax,[midibase]
1022
    mov  esi,text00+LLL*0+32
127 mario79 1023
    call hexconvert           ; MIDI BASE
31 halyavin 1024
 
1025
 
127 mario79 1026
    mov  eax,[sb16]           ; SB16 BASE
304 diamond 1027
    mov  esi,text00+LLL*1+32
31 halyavin 1028
    call hexconvert
1029
 
1030
 
127 mario79 1031
    mov  eax,[cdbase]          ; CD BASE
31 halyavin 1032
    cmp  eax,1
1033
    jnz  noe1
304 diamond 1034
    mov  [text00+LLL*2+28],dword 'PRI.'
1035
    mov  [text00+LLL*2+32],dword 'MAST'
1036
    mov  [text00+LLL*2+36],dword 'ER  '
31 halyavin 1037
  noe1:
1038
    cmp  eax,2
1039
    jnz  nof1
304 diamond 1040
    mov  [text00+LLL*2+28],dword 'PRI.'
1041
    mov  [text00+LLL*2+32],dword 'SLAV'
1042
    mov  [text00+LLL*2+36],dword 'E   '
31 halyavin 1043
  nof1:
1044
    cmp  eax,3
1045
    jnz  nog1
304 diamond 1046
    mov  [text00+LLL*2+28],dword 'SEC.'
1047
    mov  [text00+LLL*2+32],dword 'MAST'
1048
    mov  [text00+LLL*2+36],dword 'ER  '
31 halyavin 1049
  nog1:
1050
    cmp  eax,4
1051
    jnz  nog2
304 diamond 1052
    mov  [text00+LLL*2+28],dword 'SEC.'
1053
    mov  [text00+LLL*2+32],dword 'SLAV'
1054
    mov  [text00+LLL*2+36],dword 'E   '
31 halyavin 1055
  nog2:
1056
 
1057
 
127 mario79 1058
    mov  eax,[hdbase]            ; HD BASE
31 halyavin 1059
    cmp  eax,1
1060
    jnz  hnoe1
304 diamond 1061
    mov  [text00+LLL*3+28],dword 'PRI.'
1062
    mov  [text00+LLL*3+32],dword 'MAST'
1063
    mov  [text00+LLL*3+36],dword 'ER  '
31 halyavin 1064
  hnoe1:
1065
    cmp  eax,2
1066
    jnz  hnof1
304 diamond 1067
    mov  [text00+LLL*3+28],dword 'PRI.'
1068
    mov  [text00+LLL*3+32],dword 'SLAV'
1069
    mov  [text00+LLL*3+36],dword 'E   '
31 halyavin 1070
  hnof1:
1071
    cmp  eax,3
1072
    jnz  hnog1
304 diamond 1073
    mov  [text00+LLL*3+28],dword 'SEC.'
1074
    mov  [text00+LLL*3+32],dword 'MAST'
1075
    mov  [text00+LLL*3+36],dword 'ER  '
31 halyavin 1076
  hnog1:
1077
    cmp  eax,4
1078
    jnz  hnog2
304 diamond 1079
    mov  [text00+LLL*3+28],dword 'SEC.'
1080
    mov  [text00+LLL*3+32],dword 'SLAV'
1081
    mov  [text00+LLL*3+36],dword 'E   '
31 halyavin 1082
  hnog2:
1083
 
1084
 
127 mario79 1085
    mov  eax,[f32p]        ; FAT32 PARTITION
31 halyavin 1086
    add  al,48
304 diamond 1087
    mov  [text00+LLL*6+28],al
31 halyavin 1088
 
120 mario79 1089
    mov  eax,[sound_dma]      ; SOUND DMA
31 halyavin 1090
    add  eax,48
304 diamond 1091
    mov  [text00+LLL*7+28],al
31 halyavin 1092
 
1093
    mov  eax,[lba_read]
127 mario79 1094
    call onoff          ; LBA READ
304 diamond 1095
    mov  [text00+LLL*8+28],ebx
31 halyavin 1096
 
1097
    mov  eax,[pci_acc]
127 mario79 1098
    call onoff          ; PCI ACCESS
304 diamond 1099
    mov  [text00+LLL*9+28],ebx
31 halyavin 1100
 
127 mario79 1101
    mov  eax,[mouse_speed]      ; MOUSE SPEED
120 mario79 1102
    add  al,48
304 diamond 1103
    mov  [text00+LLL*12+28],al
120 mario79 1104
 
127 mario79 1105
    mov  eax,[mouse_delay]
304 diamond 1106
    mov  esi,text00+LLL*13+32
127 mario79 1107
    call hexconvert           ; MOUSE DELAY
1108
 
304 diamond 1109
    call text_out
31 halyavin 1110
 
1111
    popa
1112
    ret
1113
 
1114
  drawtime:
127 mario79 1115
    mov  ax,[time]      ;hours 22
31 halyavin 1116
    mov  cl,1
1117
    call unpacktime
304 diamond 1118
    mov  [text00+LLL*10+28],word bx
127 mario79 1119
    mov  al,ah          ;minutes
31 halyavin 1120
    inc  cl
1121
    call unpacktime
304 diamond 1122
    mov  [text00+LLL*10+31],word bx
31 halyavin 1123
    mov  eax,[date]
1124
    mov  ch,3
1125
    call unpackdate
304 diamond 1126
    mov  [text00+LLL*11+34],word bx    ;year   24
31 halyavin 1127
    mov  al,ah
1128
    mov  ch,1
1129
    call unpackdate
304 diamond 1130
    mov  [text00+LLL*11+28],word bx    ;month
31 halyavin 1131
    bswap eax
1132
    mov  al,ah
1133
    inc  ch
1134
    call unpackdate
304 diamond 1135
    mov  [text00+LLL*11+31],word bx    ;day
31 halyavin 1136
 
304 diamond 1137
text_out:
31 halyavin 1138
    mov  eax,13
1139
    mov  ebx,175*65536+85
304 diamond 1140
    mov  ecx,40*65536+225
31 halyavin 1141
    mov  edx,0x80111199-19
485 heavyiron 1142
    mcall
31 halyavin 1143
 
1144
    mov  edx,text00
1145
    mov  ebx,10*65536+45
1146
    mov  eax,4
1147
    mov  ecx,0xffffff
1148
    mov  esi,LLL
304 diamond 1149
    mov  ebp,text1_strings
1150
  newline:
485 heavyiron 1151
    mcall
304 diamond 1152
    add  ebx,8+8
1153
    add  edx,esi
1154
    dec  ebp
1155
    jnz  newline
1156
    mov  ebp,text2_strings
1157
    add  ebx,8+8
1158
  @@:
485 heavyiron 1159
    mcall
304 diamond 1160
    add  ebx,8+8
1161
    add  edx,esi
1162
    dec  ebp
1163
    jnz  @b
31 halyavin 1164
    ret
1165
 
1166
  unpacktime:
127 mario79 1167
    cmp  byte [blinkpar],cl    ;translate packed number to ascii
31 halyavin 1168
    jne  unpack1
1169
  chkblink:
1170
    bt dword [blinkpar],16
1171
    jnc  unpack1
1172
    xor  bx,bx
1173
    ret
1174
  unpackdate:
1175
    cmp  byte [blinkpar+1],ch
127 mario79 1176
    je         chkblink
31 halyavin 1177
  unpack1:
1178
    xor  bx,bx
1179
    mov  bh,al
1180
    mov  bl,al
1181
    and  bh,0x0f
1182
    shr  bl,4
1183
    add  bx,0x3030
1184
    ret
1185
 
127 mario79 1186
  hexconvert:        ;converting dec to hex in ascii
31 halyavin 1187
    xor  ebx,ebx
1188
    mov  bl,al
1189
    and  bl,15
1190
    add  ebx,hex
1191
    mov  cl,[ebx]
1192
    mov  [esi],cl
1193
    shr  eax,4
1194
    xor  ebx,ebx
1195
    mov  bl,al
1196
    and  bl,15
1197
    add  ebx,hex
1198
    mov  cl,[ebx]
1199
    dec  esi
1200
    mov  [esi],cl
1201
    shr  eax,4
1202
    xor  ebx,ebx
1203
    mov  bl,al
1204
    and  bl,15
1205
    add  ebx,hex
1206
    mov  cl,[ebx]
1207
    dec  esi
1208
    mov  [esi],cl
1209
    ret
1210
 
1211
onoff:
1212
    cmp [syslang],4
1213
    jne norus1
1214
    mov ebx,'ДА  '
1215
    cmp eax,1
127 mario79 1216
    je        exitsub
31 halyavin 1217
    mov ebx,'НЕТ '
1218
    ret
1219
 norus1:
1220
    mov ebx,'ON  '
1221
    cmp eax,1
127 mario79 1222
    je        exitsub
31 halyavin 1223
    mov ebx,'OFF '
1224
 exitsub:
1225
    ret
1226
 
1227
_midibase:
1228
    mov  eax,21
1229
    mov  ebx,1
1230
    mov  ecx,[midibase]
485 heavyiron 1231
    mcall
31 halyavin 1232
 ret
1233
 
1234
_cdbase:
1235
    mov  eax,21
1236
    mov  ebx,3
1237
    mov  ecx,[cdbase]
485 heavyiron 1238
    mcall
31 halyavin 1239
 ret
1240
 
1241
_hdbase:
1242
    mov  eax,21
1243
    mov  ebx,7
1244
    mov  ecx,[hdbase]
485 heavyiron 1245
    mcall
31 halyavin 1246
    ret
1247
 
1248
_sound_dma:
1249
    mov  eax,21
1250
    mov  ebx,10
1251
    mov  ecx,[sound_dma]
485 heavyiron 1252
    mcall
31 halyavin 1253
    ret
1254
 
1255
_lba_read:
1256
    mov  eax,21
1257
    mov  ebx,11
1258
    mov  ecx,[lba_read]
485 heavyiron 1259
    mcall
31 halyavin 1260
    ret
1261
 
1262
_pci_acc:
1263
    mov  eax,21
1264
    mov  ebx,12
1265
    mov  ecx,[pci_acc]
485 heavyiron 1266
    mcall
31 halyavin 1267
    ret
1268
 
1269
_f32p:
1270
    mov  eax,21
1271
    mov  ebx,8
1272
    mov  ecx,[f32p]
485 heavyiron 1273
    mcall
31 halyavin 1274
 ret
1275
 
1276
_sb16:
1277
    mov  eax,21
1278
    mov  ebx,4
1279
    mov  ecx,[sb16]
485 heavyiron 1280
    mcall
31 halyavin 1281
    ret
1282
 
1283
_syslang:
1284
    mov  eax,21
1285
    mov  ebx,5
1286
    mov  ecx,[syslang]
485 heavyiron 1287
    mcall
31 halyavin 1288
 ret
1289
 
127 mario79 1290
_mouse_speed:
120 mario79 1291
    mov  eax,18
1292
    mov  ebx,19
1293
    mov  ecx,1
1294
    mov  edx,[mouse_speed]
485 heavyiron 1295
    mcall
120 mario79 1296
 ret
1297
 
127 mario79 1298
_mouse_delay:
1299
    mov  eax,18
1300
    mov  ebx,19
1301
    mov  ecx,3
1302
    mov  edx,[mouse_delay]
485 heavyiron 1303
    mcall
127 mario79 1304
 ret
1305
 
31 halyavin 1306
loadtxt:
1307
    cld
1308
    mov  edi,text00
127 mario79 1309
    mov  ecx,488 ;28
31 halyavin 1310
    cmp  [syslang],4
1311
    jne  norus
1312
    mov  esi,textrus
1313
    jmp  sload
1314
  norus:
1315
    mov  esi,texteng
1316
  sload:
1317
    rep  movsd
1318
    ret
1319
 
1320
cleantxt:
1321
    xor  eax,eax
1322
    mov  ecx,428
1323
    cld
1324
    mov  edi,text00
1325
    rep stosd
1326
    mov  [text00+1711],byte 'x'
1327
    ret
1328
 
1329
; DATA AREA
127 mario79 1330
count:          db 0x0
31 halyavin 1331
blinkpar: dd 0x0
127 mario79 1332
time:        dw 0x0
1333
date:        dd 0x0
31 halyavin 1334
 
1335
textrus:
1336
 
1337
    db 'База MIDI ROLAND MPU-401  : 0x320           - +   Применить'
1338
    db 'База SoundBlaster 16      : 0x240           - +   Применить'
1339
    db 'База CD-ROMа              : PRI.SLAVE       - +   Применить'
1340
    db 'База ЖД-1                 : PRI.MASTER      - +   Применить'
1341
    db 'Язык системы              : ENGLISH         - +   Применить'
1342
    db 'Раскладка клавиатуры      : ENGLISH         - +   Применить'
1343
    db 'Раздел FAT32 на ЖД-1      : 1               - +   Применить'
1344
    db 'Звуковой канал DMA        : 1               - +   Применить'
1345
    db 'Включить LBA              : OFF             - +   Применить'
1346
    db 'Доступ к шине PCI         : OFF             - +   Применить'
1347
    db 'Системное время           :  0:00           - +     Выбор  '
1348
    db 'Системная дата (м,д,г)    : 00/00/00        - +     Выбор  '
120 mario79 1349
    db 'Скорость курсора мыши     : 1               - +   Применить'
127 mario79 1350
    db 'Задержка ускорения мыши   : 0x00a           - +   Применить'
304 diamond 1351
 
31 halyavin 1352
    db 'ВНИМАНИЕ:                                    Применить все '
1353
    db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ              Сохранить все '
1354
 
1355
texteng:
1356
 
1357
    db 'MIDI: ROLAND MPU-401 BASE : 0x320           - +     APPLY  '
1358
    db 'SOUND: SB16 BASE          : 0x240           - +     APPLY  '
1359
    db 'CD-ROM BASE               : PRI.SLAVE       - +     APPLY  '
1360
    db 'HARDDISK-1 BASE           : PRI.MASTER      - +     APPLY  '
1361
    db 'SYSTEM LANGUAGE           : ENGLISH         - +     APPLY  '
1362
    db 'KEYBOARD LAYOUT           : ENGLISH         - +     APPLY  '
1363
    db 'FAT32-1 PARTITION IN HD-1 : 1               - +     APPLY  '
1364
    db 'SOUND DMA CHANNEL         : 1               - +     APPLY  '
1365
    db 'LBA READ ENABLED          : OFF             - +     APPLY  '
1366
    db 'PCI ACCESS FOR APPL.      : OFF             - +     APPLY  '
1367
    db 'SYSTEM TIME               :  0:00           - +    SELECT  '
1368
    db 'SYSTEM DATE (M,D,Y)       : 00/00/00        - +    SELECT  '
120 mario79 1369
    db 'Mouse pointer speed       : 1               - +     APPLY  '
127 mario79 1370
    db 'Mouse pointer delay       : 0x00a           - +     APPLY  '
304 diamond 1371
text1_strings = 14
1372
 
31 halyavin 1373
    db 'NOTE:                                           APPLY ALL  '
304 diamond 1374
    db 'SAVE YOUR SETTINGS BEFORE QUIT KOLIBRI          SAVE ALL   '
1375
text2_strings = 2
31 halyavin 1376
 
485 heavyiron 1377
title  db 'SETUP',0
31 halyavin 1378
 
127 mario79 1379
hex db         '0123456789ABCDEF'
31 halyavin 1380
 
1381
alt_general:
1382
 
1383
;     db   ' ',27
1384
;     db   ' @ $  {[]}\ ',8,9
1385
;     db   '            ',13
1386
;     db   '             ',0,'           ',0,'4',0,' '
1387
;     db   '             ',180,178,184,'6',176,'7'
1388
;     db   179,'8',181,177,183,185,182
1389
;     db   'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
1390
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1391
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1392
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1393
 
1394
 
1395
en_keymap:
1396
 
1397
     db   '6',27
1398
     db   '1234567890-=',8,9
1399
     db   'qwertyuiop[]',13
1400
     db   '~asdfghjkl;',39,96,0,'\zxcvbnm,./',0,'45 '
1401
     db   '@234567890123',180,178,184,'6',176,'7'
1402
     db   179,'8',181,177,183,185,182
1403
     db   'AB
1404
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1405
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1406
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1407
 
1408
 
1409
en_keymap_shift:
1410
 
1411
     db   '6',27
1412
     db   '!@#$%^&*()_+',8,9
1413
     db   'QWERTYUIOP{}',13
1414
     db   '~ASDFGHJKL:"~',0,'|ZXCVBNM<>?',0,'45 '
1415
     db   '@234567890123',180,178,184,'6',176,'7'
1416
     db   179,'8',181,177,183,185,182
1417
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1418
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1419
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1420
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1421
 
1422
 
1423
fr_keymap:
1424
 
1425
     db   '6',27
1426
     db   '&О"',39,'(-Н_УР)=',8,9
1427
     db   'azertyuiop^$',13
1428
     db   '~qsdfghjklmТ',0,0,'*wxcvbn,;:!',0,'45 '
1429
     db   '@234567890123',180,178,184,'6',176,'7'
1430
     db   179,'8',181,177,183,185,182
1431
     db   'AB
1432
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1433
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1434
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1435
 
1436
 
1437
 
1438
fr_keymap_shift:
1439
 
1440
 
1441
     db   '6',27
1442
     db   '1234567890+',8,9
1443
     db   'AZERTYUIOPХФ',13
1444
     db   '~QSDFGHJKLM%',0,'ЦWXCVBN?./',0,'45 '
1445
     db   '@234567890123',180,178,184,'6',176,'7'
1446
     db   179,'8',181,177,183,185,182
1447
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1448
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1449
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1450
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1451
 
1452
 
1453
fr_keymap_alt_gr:
1454
 
1455
 
1456
     db   '6',27
1457
     db   28,'~#{[|Ш\^@]}',8,9
1458
     db   'azertyuiop^$',13
1459
     db   '~qsdfghjklmТ',0,0,'*wxcvbn,;:!',0,'45 '
1460
     db   '@234567890123',180,178,184,'6',176,'7'
1461
     db   179,'8',181,177,183,185,182
1462
     db   'AB
1463
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1464
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1465
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1466
 
1467
 
1468
 
1469
 
1470
fi_keymap:
1471
 
1472
     db   '6',27
1473
     db   '1234567890+[',8,9
1474
     db   'qwertyuiop',192,'~',13
1475
     db   '~asdfghjkl',194,193,'1',0,39,'zxcvbnm,.-',0,'45 '
1476
     db   '@234567890123',180,178,184,'6',176,'7'
1477
     db   179,'8',181,177,183,185,182
1478
     db   'AB
1479
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1480
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1481
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1482
 
1483
 
1484
fi_keymap_shift:
1485
 
1486
     db   '6',27
1487
     db   '!"#П%&/()=?]',8,9
1488
     db   'QWERTYUIOP',200,'~',13
1489
     db   '~ASDFGHJKL',202,201,'1',0,'*ZXCVBNM;:_',0,'45 '
1490
     db   '@234567890123',180,178,184,'6',176,'7'
1491
     db   179,'8',181,177,183,185,182
1492
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1493
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1494
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1495
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1496
 
1497
 
1498
 
1499
ge_keymap:
1500
 
1501
     db   '6',27
1502
     db   '1234567890?[',8,9
1503
     db   'qwertzuiop',203,'~',13
1504
     db   '~asdfghjkl',194,193,'1',0,39,'yxcvbnm,.-',0,'45 '
1505
     db   '@234567890123',180,178,184,'6',176,'7'
1506
     db   179,'8',181,177,183,185,182
1507
     db   'AB
1508
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1509
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1510
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1511
 
1512
 
1513
ge_keymap_shift:
1514
 
1515
     db   '6',27
1516
     db   '!"#$%&/()=',197,']',8,9
1517
     db   'QWERTZUIOP',195,'~',13
1518
     db   '~ASDFGHJKL',202,201,'1',0,'*YXCVBNM;:_',0,'45 '
1519
     db   '@234567890123',180,178,184,'6',176,'7'
1520
     db   179,'8',181,177,183,185,182
1521
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1522
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1523
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1524
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1525
 
1526
ru_keymap:
1527
 
1528
     db   '6',27
1529
     db   '1234567890-=',8,9
1530
     db   'йцукенгшщзхъ',13
1531
     db   0,"фывапролджэ"
1532
     db   0xf1, '-/'
1533
     db   "ячсмитьбю",'.-','45 '
1534
     db   '@234567890123',180,178,184,'6',176,'7'
1535
     db   179,'8',181,177,183,185,182
1536
     db   'AB
1537
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1538
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1539
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1540
 
1541
 
1542
 
1543
ru_keymap_shift:
1544
 
1545
     db   '6',27
1546
     db   '!"N;%:?*()_+',8,0
1547
     db   "ЙЦУКЕНГШЩЗХЪ",13
1548
     db   0,"ФЫВАПРОЛДЖЭ"
1549
     db   0xf0, '-\'
1550
     db   "ЯЧСМИТЬБЮ",',-','45 '
1551
     db   '@234567890123',180,178,184,'6',176,'7'
1552
     db   179,'8',181,177,183,185,182
1553
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1554
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1555
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1556
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1557
 
275 kaitz 1558
et_keymap:
1559
 
1560
     db   '6',27
1561
     db   '1234567890+┤',8,9
1562
     db   'qwertyuiop№ї',13
1563
     db   '~asdfghjklЎф','1',0,'
1564
     db   '@234567890123',180,178,184,'6',176,'7'
1565
     db   179,'8',181,177,183,185,182
1566
     db   'AB
1567
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1568
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1569
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1570
 
1571
 
1572
et_keymap_shift:
1573
 
1574
     db   '6',27
1575
     db   '!"#д%&/()=?`',8,9
1576
     db   'QWERTYUIOP▄╒',13
1577
     db   '~ASDFGHJKL╓─','1',0,'>ZXCVBNM;:_',0,'45 '
1578
     db   '@234567890123',180,178,184,'6',176,'7'
1579
     db   179,'8',181,177,183,185,182
1580
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1581
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1582
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1583
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1584
 
120 mario79 1585
read_fileinfo:
1586
       dd 0
1587
       dd 0
1588
       dd 0
304 diamond 1589
       dd 48
120 mario79 1590
       dd keyboard
1591
       db 0
1592
       dd file_name
1593
 
1594
save_fileinfo:
1595
       dd 2
1596
       dd 0
1597
       dd 0
304 diamond 1598
       dd 48
120 mario79 1599
       dd keyboard
529 spraid 1600
file_name:   db '/sys/setup.dat',0
120 mario79 1601
 
31 halyavin 1602
I_PARAM   dd 0
1603
 
120 mario79 1604
keyboard     dd 0x0
1605
midibase     dd 0x320
127 mario79 1606
cdbase         dd 0x2
120 mario79 1607
sb16         dd 0x220
1608
syslang      dd 0x1
127 mario79 1609
hdbase         dd 0x1
120 mario79 1610
f32p         dd 0x1
1611
sound_dma    dd 0x1
1612
lba_read     dd 0x1
1613
pci_acc      dd 0x1
1614
mouse_speed  dd 0x3
127 mario79 1615
mouse_delay  dd 0x10
31 halyavin 1616
text00:
1617
 
1618
I_END:
1619
table_area: