Subversion Repositories Kolibri OS

Rev

Rev 304 | Rev 485 | 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
340 heavyiron 870
    mov  edx,0x93111199
871
    mov  edi,header
31 halyavin 872
    int  0x40
873
 
127 mario79 874
    mov  eax,8             ; APPLY ALL
31 halyavin 875
    mov  ebx,(350-79)*65536+100
127 mario79 876
    mov  ecx,282*65536+12
31 halyavin 877
    mov  edx,100
120 mario79 878
    mov  esi,0x005588dd
31 halyavin 879
    int  0x40
127 mario79 880
    add  ecx,16*65536         ; SAVE ALL
31 halyavin 881
    dec  edx
882
    int  0x40
883
 
884
    mov  esi,0x5580c0
885
 
886
    mov  edx,11
887
    mov  ecx,43
888
    call draw_buttons
889
 
890
    mov  edx,41
891
    mov  ecx,43+8*8
892
    call draw_buttons
893
 
894
    mov  edx,21
895
    mov  ecx,43+4*8
896
    call draw_buttons
897
 
898
    mov  edx,31
899
    mov  ecx,43+2*8
900
    call draw_buttons
901
 
902
    mov  edx,3
903
    mov  ecx,43+10*8
904
    call draw_buttons
905
 
906
    mov  edx,61
907
    mov  ecx,43+6*8
908
    call draw_buttons
909
 
910
    mov  edx,91
304 diamond 911
    mov  ecx,43+16*8
31 halyavin 912
    call draw_buttons
913
 
914
    mov  edx,71
304 diamond 915
    mov  ecx,43+12*8
31 halyavin 916
    call draw_buttons
917
 
918
    mov  edx,81
304 diamond 919
    mov  ecx,43+14*8
31 halyavin 920
    call draw_buttons
921
 
922
    mov  edx,101
304 diamond 923
    mov  ecx,43+18*8
31 halyavin 924
    call draw_buttons
925
 
926
    mov  edx,111
304 diamond 927
    mov  ecx,43+20*8 ; 22
31 halyavin 928
    call draw_buttons
929
 
930
    mov  edx,121
304 diamond 931
    mov  ecx,43+22*8 ; 24
31 halyavin 932
    call draw_buttons
933
 
120 mario79 934
    mov  edx,131
304 diamond 935
    mov  ecx,43+24*8 ; 26
120 mario79 936
    call draw_buttons
937
 
127 mario79 938
    mov  edx,141
304 diamond 939
    mov  ecx,43+26*8 ; 26
127 mario79 940
    call draw_buttons
941
 
31 halyavin 942
    call draw_infotext
943
 
944
    mov  eax,12
945
    mov  ebx,2
946
    int  0x40
947
 
948
    popa
949
    ret
950
 
951
 
952
 
953
draw_infotext:
954
 
955
    pusha
956
 
127 mario79 957
    mov  eax,[keyboard]       ; KEYBOARD
31 halyavin 958
    test eax,eax
959
    jnz  noen
304 diamond 960
    mov  [text00+LLL*5+28],dword 'ENGL'
961
    mov  [text00+LLL*5+32],dword 'ISH '
31 halyavin 962
  noen:
963
    cmp  eax,1
964
    jnz  nofi
304 diamond 965
    mov  [text00+LLL*5+28],dword 'FINN'
966
    mov  [text00+LLL*5+32],dword 'ISH '
31 halyavin 967
  nofi:
968
    cmp  eax,2
969
    jnz  noge
304 diamond 970
    mov  [text00+LLL*5+28],dword 'GERM'
971
    mov  [text00+LLL*5+32],dword 'AN  '
31 halyavin 972
  noge:
973
    cmp  eax,3
974
    jnz  nogr
304 diamond 975
    mov  [text00+LLL*5+28],dword 'RUSS'
976
    mov  [text00+LLL*5+32],dword 'IAN '
31 halyavin 977
  nogr:
978
    cmp  eax,4
979
    jnz  nofr
304 diamond 980
    mov  [text00+LLL*5+28],dword 'FREN'
981
    mov  [text00+LLL*5+32],dword 'CH  '
31 halyavin 982
  nofr:
275 kaitz 983
    cmp  eax,5
984
    jnz  noet
304 diamond 985
    mov  [text00+LLL*5+28],dword 'ESTO'
986
    mov  [text00+LLL*5+32],dword 'NIAN'
275 kaitz 987
  noet:
31 halyavin 988
 
127 mario79 989
    mov  eax,[syslang]            ; SYSTEM LANGUAGE
31 halyavin 990
    dec  eax
991
    test eax,eax
992
    jnz  noen5
304 diamond 993
    mov  [text00+LLL*4+28],dword 'ENGL'
994
    mov  [text00+LLL*4+32],dword 'ISH '
31 halyavin 995
  noen5:
996
    cmp  eax,1
997
    jnz  nofi5
304 diamond 998
    mov  [text00+LLL*4+28],dword 'FINN'
999
    mov  [text00+LLL*4+32],dword 'ISH '
31 halyavin 1000
  nofi5:
1001
    cmp  eax,2
1002
    jnz  noge5
304 diamond 1003
    mov  [text00+LLL*4+28],dword 'GERM'
1004
    mov  [text00+LLL*4+32],dword 'AN  '
31 halyavin 1005
  noge5:
1006
    cmp  eax,3
1007
    jnz  nogr5
304 diamond 1008
    mov  [text00+LLL*4+28],dword 'RUSS'
1009
    mov  [text00+LLL*4+32],dword 'IAN '
31 halyavin 1010
  nogr5:
1011
    cmp  eax,4
1012
    jne  nofr5
304 diamond 1013
    mov  [text00+LLL*4+28],dword 'FREN'
1014
    mov  [text00+LLL*4+32],dword 'CH  '
31 halyavin 1015
  nofr5:
275 kaitz 1016
    cmp  eax,5
1017
    jne  noet5
304 diamond 1018
    mov  [text00+LLL*4+28],dword 'ESTO'
1019
    mov  [text00+LLL*4+32],dword 'NIAN'
275 kaitz 1020
  noet5:
31 halyavin 1021
 
1022
    mov  eax,[midibase]
1023
    mov  esi,text00+LLL*0+32
127 mario79 1024
    call hexconvert           ; MIDI BASE
31 halyavin 1025
 
1026
 
127 mario79 1027
    mov  eax,[sb16]           ; SB16 BASE
304 diamond 1028
    mov  esi,text00+LLL*1+32
31 halyavin 1029
    call hexconvert
1030
 
1031
 
127 mario79 1032
    mov  eax,[cdbase]          ; CD BASE
31 halyavin 1033
    cmp  eax,1
1034
    jnz  noe1
304 diamond 1035
    mov  [text00+LLL*2+28],dword 'PRI.'
1036
    mov  [text00+LLL*2+32],dword 'MAST'
1037
    mov  [text00+LLL*2+36],dword 'ER  '
31 halyavin 1038
  noe1:
1039
    cmp  eax,2
1040
    jnz  nof1
304 diamond 1041
    mov  [text00+LLL*2+28],dword 'PRI.'
1042
    mov  [text00+LLL*2+32],dword 'SLAV'
1043
    mov  [text00+LLL*2+36],dword 'E   '
31 halyavin 1044
  nof1:
1045
    cmp  eax,3
1046
    jnz  nog1
304 diamond 1047
    mov  [text00+LLL*2+28],dword 'SEC.'
1048
    mov  [text00+LLL*2+32],dword 'MAST'
1049
    mov  [text00+LLL*2+36],dword 'ER  '
31 halyavin 1050
  nog1:
1051
    cmp  eax,4
1052
    jnz  nog2
304 diamond 1053
    mov  [text00+LLL*2+28],dword 'SEC.'
1054
    mov  [text00+LLL*2+32],dword 'SLAV'
1055
    mov  [text00+LLL*2+36],dword 'E   '
31 halyavin 1056
  nog2:
1057
 
1058
 
127 mario79 1059
    mov  eax,[hdbase]            ; HD BASE
31 halyavin 1060
    cmp  eax,1
1061
    jnz  hnoe1
304 diamond 1062
    mov  [text00+LLL*3+28],dword 'PRI.'
1063
    mov  [text00+LLL*3+32],dword 'MAST'
1064
    mov  [text00+LLL*3+36],dword 'ER  '
31 halyavin 1065
  hnoe1:
1066
    cmp  eax,2
1067
    jnz  hnof1
304 diamond 1068
    mov  [text00+LLL*3+28],dword 'PRI.'
1069
    mov  [text00+LLL*3+32],dword 'SLAV'
1070
    mov  [text00+LLL*3+36],dword 'E   '
31 halyavin 1071
  hnof1:
1072
    cmp  eax,3
1073
    jnz  hnog1
304 diamond 1074
    mov  [text00+LLL*3+28],dword 'SEC.'
1075
    mov  [text00+LLL*3+32],dword 'MAST'
1076
    mov  [text00+LLL*3+36],dword 'ER  '
31 halyavin 1077
  hnog1:
1078
    cmp  eax,4
1079
    jnz  hnog2
304 diamond 1080
    mov  [text00+LLL*3+28],dword 'SEC.'
1081
    mov  [text00+LLL*3+32],dword 'SLAV'
1082
    mov  [text00+LLL*3+36],dword 'E   '
31 halyavin 1083
  hnog2:
1084
 
1085
 
127 mario79 1086
    mov  eax,[f32p]        ; FAT32 PARTITION
31 halyavin 1087
    add  al,48
304 diamond 1088
    mov  [text00+LLL*6+28],al
31 halyavin 1089
 
120 mario79 1090
    mov  eax,[sound_dma]      ; SOUND DMA
31 halyavin 1091
    add  eax,48
304 diamond 1092
    mov  [text00+LLL*7+28],al
31 halyavin 1093
 
1094
    mov  eax,[lba_read]
127 mario79 1095
    call onoff          ; LBA READ
304 diamond 1096
    mov  [text00+LLL*8+28],ebx
31 halyavin 1097
 
1098
    mov  eax,[pci_acc]
127 mario79 1099
    call onoff          ; PCI ACCESS
304 diamond 1100
    mov  [text00+LLL*9+28],ebx
31 halyavin 1101
 
127 mario79 1102
    mov  eax,[mouse_speed]      ; MOUSE SPEED
120 mario79 1103
    add  al,48
304 diamond 1104
    mov  [text00+LLL*12+28],al
120 mario79 1105
 
127 mario79 1106
    mov  eax,[mouse_delay]
304 diamond 1107
    mov  esi,text00+LLL*13+32
127 mario79 1108
    call hexconvert           ; MOUSE DELAY
1109
 
304 diamond 1110
    call text_out
31 halyavin 1111
 
1112
    popa
1113
    ret
1114
 
1115
  drawtime:
127 mario79 1116
    mov  ax,[time]      ;hours 22
31 halyavin 1117
    mov  cl,1
1118
    call unpacktime
304 diamond 1119
    mov  [text00+LLL*10+28],word bx
127 mario79 1120
    mov  al,ah          ;minutes
31 halyavin 1121
    inc  cl
1122
    call unpacktime
304 diamond 1123
    mov  [text00+LLL*10+31],word bx
31 halyavin 1124
    mov  eax,[date]
1125
    mov  ch,3
1126
    call unpackdate
304 diamond 1127
    mov  [text00+LLL*11+34],word bx    ;year   24
31 halyavin 1128
    mov  al,ah
1129
    mov  ch,1
1130
    call unpackdate
304 diamond 1131
    mov  [text00+LLL*11+28],word bx    ;month
31 halyavin 1132
    bswap eax
1133
    mov  al,ah
1134
    inc  ch
1135
    call unpackdate
304 diamond 1136
    mov  [text00+LLL*11+31],word bx    ;day
31 halyavin 1137
 
304 diamond 1138
text_out:
31 halyavin 1139
    mov  eax,13
1140
    mov  ebx,175*65536+85
304 diamond 1141
    mov  ecx,40*65536+225
31 halyavin 1142
    mov  edx,0x80111199-19
1143
    int  0x40
1144
 
1145
    mov  edx,text00
1146
    mov  ebx,10*65536+45
1147
    mov  eax,4
1148
    mov  ecx,0xffffff
1149
    mov  esi,LLL
304 diamond 1150
    mov  ebp,text1_strings
1151
  newline:
31 halyavin 1152
    int  0x40
304 diamond 1153
    add  ebx,8+8
1154
    add  edx,esi
1155
    dec  ebp
1156
    jnz  newline
1157
    mov  ebp,text2_strings
1158
    add  ebx,8+8
1159
  @@:
1160
    int  0x40
1161
    add  ebx,8+8
1162
    add  edx,esi
1163
    dec  ebp
1164
    jnz  @b
31 halyavin 1165
    ret
1166
 
1167
  unpacktime:
127 mario79 1168
    cmp  byte [blinkpar],cl    ;translate packed number to ascii
31 halyavin 1169
    jne  unpack1
1170
  chkblink:
1171
    bt dword [blinkpar],16
1172
    jnc  unpack1
1173
    xor  bx,bx
1174
    ret
1175
  unpackdate:
1176
    cmp  byte [blinkpar+1],ch
127 mario79 1177
    je         chkblink
31 halyavin 1178
  unpack1:
1179
    xor  bx,bx
1180
    mov  bh,al
1181
    mov  bl,al
1182
    and  bh,0x0f
1183
    shr  bl,4
1184
    add  bx,0x3030
1185
    ret
1186
 
127 mario79 1187
  hexconvert:        ;converting dec to hex in ascii
31 halyavin 1188
    xor  ebx,ebx
1189
    mov  bl,al
1190
    and  bl,15
1191
    add  ebx,hex
1192
    mov  cl,[ebx]
1193
    mov  [esi],cl
1194
    shr  eax,4
1195
    xor  ebx,ebx
1196
    mov  bl,al
1197
    and  bl,15
1198
    add  ebx,hex
1199
    mov  cl,[ebx]
1200
    dec  esi
1201
    mov  [esi],cl
1202
    shr  eax,4
1203
    xor  ebx,ebx
1204
    mov  bl,al
1205
    and  bl,15
1206
    add  ebx,hex
1207
    mov  cl,[ebx]
1208
    dec  esi
1209
    mov  [esi],cl
1210
    ret
1211
 
1212
onoff:
1213
    cmp [syslang],4
1214
    jne norus1
1215
    mov ebx,'ДА  '
1216
    cmp eax,1
127 mario79 1217
    je        exitsub
31 halyavin 1218
    mov ebx,'НЕТ '
1219
    ret
1220
 norus1:
1221
    mov ebx,'ON  '
1222
    cmp eax,1
127 mario79 1223
    je        exitsub
31 halyavin 1224
    mov ebx,'OFF '
1225
 exitsub:
1226
    ret
1227
 
1228
_midibase:
1229
    mov  eax,21
1230
    mov  ebx,1
1231
    mov  ecx,[midibase]
1232
    int  0x40
1233
 ret
1234
 
1235
_cdbase:
1236
    mov  eax,21
1237
    mov  ebx,3
1238
    mov  ecx,[cdbase]
1239
    int  0x40
1240
 ret
1241
 
1242
_hdbase:
1243
    mov  eax,21
1244
    mov  ebx,7
1245
    mov  ecx,[hdbase]
1246
    int  0x40
1247
    ret
1248
 
1249
_sound_dma:
1250
    mov  eax,21
1251
    mov  ebx,10
1252
    mov  ecx,[sound_dma]
1253
    int  0x40
1254
    ret
1255
 
1256
_lba_read:
1257
    mov  eax,21
1258
    mov  ebx,11
1259
    mov  ecx,[lba_read]
1260
    int  0x40
1261
    ret
1262
 
1263
_pci_acc:
1264
    mov  eax,21
1265
    mov  ebx,12
1266
    mov  ecx,[pci_acc]
1267
    int  0x40
1268
    ret
1269
 
1270
_f32p:
1271
    mov  eax,21
1272
    mov  ebx,8
1273
    mov  ecx,[f32p]
1274
    int  0x40
1275
 ret
1276
 
1277
_sb16:
1278
    mov  eax,21
1279
    mov  ebx,4
1280
    mov  ecx,[sb16]
1281
    int  0x40
1282
    ret
1283
 
1284
_syslang:
1285
    mov  eax,21
1286
    mov  ebx,5
1287
    mov  ecx,[syslang]
1288
    int  0x40
1289
 ret
1290
 
127 mario79 1291
_mouse_speed:
120 mario79 1292
    mov  eax,18
1293
    mov  ebx,19
1294
    mov  ecx,1
1295
    mov  edx,[mouse_speed]
1296
    int  0x40
1297
 ret
1298
 
127 mario79 1299
_mouse_delay:
1300
    mov  eax,18
1301
    mov  ebx,19
1302
    mov  ecx,3
1303
    mov  edx,[mouse_delay]
1304
    int  0x40
1305
 ret
1306
 
31 halyavin 1307
loadtxt:
1308
    cld
1309
    mov  edi,text00
127 mario79 1310
    mov  ecx,488 ;28
31 halyavin 1311
    cmp  [syslang],4
1312
    jne  norus
1313
    mov  esi,textrus
1314
    jmp  sload
1315
  norus:
1316
    mov  esi,texteng
1317
  sload:
1318
    rep  movsd
1319
    ret
1320
 
1321
cleantxt:
1322
    xor  eax,eax
1323
    mov  ecx,428
1324
    cld
1325
    mov  edi,text00
1326
    rep stosd
1327
    mov  [text00+1711],byte 'x'
1328
    ret
1329
 
1330
; DATA AREA
127 mario79 1331
count:          db 0x0
31 halyavin 1332
blinkpar: dd 0x0
127 mario79 1333
time:        dw 0x0
1334
date:        dd 0x0
31 halyavin 1335
 
1336
textrus:
1337
 
1338
    db 'База MIDI ROLAND MPU-401  : 0x320           - +   Применить'
1339
    db 'База SoundBlaster 16      : 0x240           - +   Применить'
1340
    db 'База CD-ROMа              : PRI.SLAVE       - +   Применить'
1341
    db 'База ЖД-1                 : PRI.MASTER      - +   Применить'
1342
    db 'Язык системы              : ENGLISH         - +   Применить'
1343
    db 'Раскладка клавиатуры      : ENGLISH         - +   Применить'
1344
    db 'Раздел FAT32 на ЖД-1      : 1               - +   Применить'
1345
    db 'Звуковой канал DMA        : 1               - +   Применить'
1346
    db 'Включить LBA              : OFF             - +   Применить'
1347
    db 'Доступ к шине PCI         : OFF             - +   Применить'
1348
    db 'Системное время           :  0:00           - +     Выбор  '
1349
    db 'Системная дата (м,д,г)    : 00/00/00        - +     Выбор  '
120 mario79 1350
    db 'Скорость курсора мыши     : 1               - +   Применить'
127 mario79 1351
    db 'Задержка ускорения мыши   : 0x00a           - +   Применить'
304 diamond 1352
 
31 halyavin 1353
    db 'ВНИМАНИЕ:                                    Применить все '
1354
    db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ              Сохранить все '
1355
 
1356
texteng:
1357
 
1358
    db 'MIDI: ROLAND MPU-401 BASE : 0x320           - +     APPLY  '
1359
    db 'SOUND: SB16 BASE          : 0x240           - +     APPLY  '
1360
    db 'CD-ROM BASE               : PRI.SLAVE       - +     APPLY  '
1361
    db 'HARDDISK-1 BASE           : PRI.MASTER      - +     APPLY  '
1362
    db 'SYSTEM LANGUAGE           : ENGLISH         - +     APPLY  '
1363
    db 'KEYBOARD LAYOUT           : ENGLISH         - +     APPLY  '
1364
    db 'FAT32-1 PARTITION IN HD-1 : 1               - +     APPLY  '
1365
    db 'SOUND DMA CHANNEL         : 1               - +     APPLY  '
1366
    db 'LBA READ ENABLED          : OFF             - +     APPLY  '
1367
    db 'PCI ACCESS FOR APPL.      : OFF             - +     APPLY  '
1368
    db 'SYSTEM TIME               :  0:00           - +    SELECT  '
1369
    db 'SYSTEM DATE (M,D,Y)       : 00/00/00        - +    SELECT  '
120 mario79 1370
    db 'Mouse pointer speed       : 1               - +     APPLY  '
127 mario79 1371
    db 'Mouse pointer delay       : 0x00a           - +     APPLY  '
304 diamond 1372
text1_strings = 14
1373
 
31 halyavin 1374
    db 'NOTE:                                           APPLY ALL  '
304 diamond 1375
    db 'SAVE YOUR SETTINGS BEFORE QUIT KOLIBRI          SAVE ALL   '
1376
text2_strings = 2
31 halyavin 1377
 
340 heavyiron 1378
header  db 'SETUP',0
31 halyavin 1379
 
127 mario79 1380
hex db         '0123456789ABCDEF'
31 halyavin 1381
 
1382
alt_general:
1383
 
1384
;     db   ' ',27
1385
;     db   ' @ $  {[]}\ ',8,9
1386
;     db   '            ',13
1387
;     db   '             ',0,'           ',0,'4',0,' '
1388
;     db   '             ',180,178,184,'6',176,'7'
1389
;     db   179,'8',181,177,183,185,182
1390
;     db   'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
1391
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1392
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1393
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1394
 
1395
 
1396
en_keymap:
1397
 
1398
     db   '6',27
1399
     db   '1234567890-=',8,9
1400
     db   'qwertyuiop[]',13
1401
     db   '~asdfghjkl;',39,96,0,'\zxcvbnm,./',0,'45 '
1402
     db   '@234567890123',180,178,184,'6',176,'7'
1403
     db   179,'8',181,177,183,185,182
1404
     db   'AB
1405
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1406
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1407
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1408
 
1409
 
1410
en_keymap_shift:
1411
 
1412
     db   '6',27
1413
     db   '!@#$%^&*()_+',8,9
1414
     db   'QWERTYUIOP{}',13
1415
     db   '~ASDFGHJKL:"~',0,'|ZXCVBNM<>?',0,'45 '
1416
     db   '@234567890123',180,178,184,'6',176,'7'
1417
     db   179,'8',181,177,183,185,182
1418
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1419
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1420
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1421
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1422
 
1423
 
1424
fr_keymap:
1425
 
1426
     db   '6',27
1427
     db   '&О"',39,'(-Н_УР)=',8,9
1428
     db   'azertyuiop^$',13
1429
     db   '~qsdfghjklmТ',0,0,'*wxcvbn,;:!',0,'45 '
1430
     db   '@234567890123',180,178,184,'6',176,'7'
1431
     db   179,'8',181,177,183,185,182
1432
     db   'AB
1433
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1434
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1435
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1436
 
1437
 
1438
 
1439
fr_keymap_shift:
1440
 
1441
 
1442
     db   '6',27
1443
     db   '1234567890+',8,9
1444
     db   'AZERTYUIOPХФ',13
1445
     db   '~QSDFGHJKLM%',0,'ЦWXCVBN?./',0,'45 '
1446
     db   '@234567890123',180,178,184,'6',176,'7'
1447
     db   179,'8',181,177,183,185,182
1448
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1449
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1450
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1451
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1452
 
1453
 
1454
fr_keymap_alt_gr:
1455
 
1456
 
1457
     db   '6',27
1458
     db   28,'~#{[|Ш\^@]}',8,9
1459
     db   'azertyuiop^$',13
1460
     db   '~qsdfghjklmТ',0,0,'*wxcvbn,;:!',0,'45 '
1461
     db   '@234567890123',180,178,184,'6',176,'7'
1462
     db   179,'8',181,177,183,185,182
1463
     db   'AB
1464
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1465
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1466
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1467
 
1468
 
1469
 
1470
 
1471
fi_keymap:
1472
 
1473
     db   '6',27
1474
     db   '1234567890+[',8,9
1475
     db   'qwertyuiop',192,'~',13
1476
     db   '~asdfghjkl',194,193,'1',0,39,'zxcvbnm,.-',0,'45 '
1477
     db   '@234567890123',180,178,184,'6',176,'7'
1478
     db   179,'8',181,177,183,185,182
1479
     db   'AB
1480
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1481
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1482
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1483
 
1484
 
1485
fi_keymap_shift:
1486
 
1487
     db   '6',27
1488
     db   '!"#П%&/()=?]',8,9
1489
     db   'QWERTYUIOP',200,'~',13
1490
     db   '~ASDFGHJKL',202,201,'1',0,'*ZXCVBNM;:_',0,'45 '
1491
     db   '@234567890123',180,178,184,'6',176,'7'
1492
     db   179,'8',181,177,183,185,182
1493
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1494
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1495
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1496
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1497
 
1498
 
1499
 
1500
ge_keymap:
1501
 
1502
     db   '6',27
1503
     db   '1234567890?[',8,9
1504
     db   'qwertzuiop',203,'~',13
1505
     db   '~asdfghjkl',194,193,'1',0,39,'yxcvbnm,.-',0,'45 '
1506
     db   '@234567890123',180,178,184,'6',176,'7'
1507
     db   179,'8',181,177,183,185,182
1508
     db   'AB
1509
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1510
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1511
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1512
 
1513
 
1514
ge_keymap_shift:
1515
 
1516
     db   '6',27
1517
     db   '!"#$%&/()=',197,']',8,9
1518
     db   'QWERTZUIOP',195,'~',13
1519
     db   '~ASDFGHJKL',202,201,'1',0,'*YXCVBNM;:_',0,'45 '
1520
     db   '@234567890123',180,178,184,'6',176,'7'
1521
     db   179,'8',181,177,183,185,182
1522
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1523
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1524
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1525
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1526
 
1527
ru_keymap:
1528
 
1529
     db   '6',27
1530
     db   '1234567890-=',8,9
1531
     db   'йцукенгшщзхъ',13
1532
     db   0,"фывапролджэ"
1533
     db   0xf1, '-/'
1534
     db   "ячсмитьбю",'.-','45 '
1535
     db   '@234567890123',180,178,184,'6',176,'7'
1536
     db   179,'8',181,177,183,185,182
1537
     db   'AB
1538
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1539
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1540
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1541
 
1542
 
1543
 
1544
ru_keymap_shift:
1545
 
1546
     db   '6',27
1547
     db   '!"N;%:?*()_+',8,0
1548
     db   "ЙЦУКЕНГШЩЗХЪ",13
1549
     db   0,"ФЫВАПРОЛДЖЭ"
1550
     db   0xf0, '-\'
1551
     db   "ЯЧСМИТЬБЮ",',-','45 '
1552
     db   '@234567890123',180,178,184,'6',176,'7'
1553
     db   179,'8',181,177,183,185,182
1554
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1555
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1556
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1557
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1558
 
275 kaitz 1559
et_keymap:
1560
 
1561
     db   '6',27
1562
     db   '1234567890+┤',8,9
1563
     db   'qwertyuiop№ї',13
1564
     db   '~asdfghjklЎф','1',0,'
1565
     db   '@234567890123',180,178,184,'6',176,'7'
1566
     db   179,'8',181,177,183,185,182
1567
     db   'AB
1568
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1569
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1570
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1571
 
1572
 
1573
et_keymap_shift:
1574
 
1575
     db   '6',27
1576
     db   '!"#д%&/()=?`',8,9
1577
     db   'QWERTYUIOP▄╒',13
1578
     db   '~ASDFGHJKL╓─','1',0,'>ZXCVBNM;:_',0,'45 '
1579
     db   '@234567890123',180,178,184,'6',176,'7'
1580
     db   179,'8',181,177,183,185,182
1581
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1582
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1583
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1584
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1585
 
120 mario79 1586
read_fileinfo:
1587
       dd 0
1588
       dd 0
1589
       dd 0
304 diamond 1590
       dd 48
120 mario79 1591
       dd keyboard
1592
       db 0
1593
       dd file_name
1594
 
1595
save_fileinfo:
1596
       dd 2
1597
       dd 0
1598
       dd 0
304 diamond 1599
       dd 48
120 mario79 1600
       dd keyboard
1601
file_name:   db '/rd/1/setup.dat',0
1602
 
31 halyavin 1603
I_PARAM   dd 0
1604
 
120 mario79 1605
keyboard     dd 0x0
1606
midibase     dd 0x320
127 mario79 1607
cdbase         dd 0x2
120 mario79 1608
sb16         dd 0x220
1609
syslang      dd 0x1
127 mario79 1610
hdbase         dd 0x1
120 mario79 1611
f32p         dd 0x1
1612
sound_dma    dd 0x1
1613
lba_read     dd 0x1
1614
pci_acc      dd 0x1
1615
mouse_speed  dd 0x3
127 mario79 1616
mouse_delay  dd 0x10
31 halyavin 1617
text00:
1618
 
1619
I_END:
1620
table_area: