Subversion Repositories Kolibri OS

Rev

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