Subversion Repositories Kolibri OS

Rev

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