Subversion Repositories Kolibri OS

Rev

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