Subversion Repositories Kolibri OS

Rev

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