Subversion Repositories Kolibri OS

Rev

Rev 120 | Rev 275 | 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
199
    cmp  eax,4
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:
480
    mov  eax,4
481
   nodownup:
482
    mov  [keyboard],eax
483
    call draw_infotext
484
  nokm:
485
    cmp  ah,5
486
    jnz  nokp
487
    mov  eax,[keyboard]
488
    cmp  eax,4
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]
681
    cmp  eax,4
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:
845
    ret
846
 
847
 alt_gen:
848
   mov eax,21
849
   mov ecx,3
850
   mov edx,alt_general
851
   int 0x40
852
   ret
853
 
854
 
855
 
856
draw_buttons:
857
 
858
    pusha
859
 
860
    shl  ecx,16
861
    add  ecx,12
862
    mov  ebx,(350-50)*65536+46+BBB
863
 
864
    mov  eax,8
865
    int  0x40
866
 
867
    mov  ebx,(350-79)*65536+9
868
    inc  edx
869
    int  0x40
870
 
871
    mov  ebx,(350-67)*65536+9
872
    inc  edx
873
    int  0x40
874
 
875
    popa
876
    ret
877
 
878
 
879
 
880
; ********************************************
881
; ******* WINDOW DEFINITIONS AND DRAW  *******
882
; ********************************************
883
 
884
 
885
draw_window:
886
 
887
    pusha
888
 
889
    mov  eax,12
890
    mov  ebx,1
891
    int  0x40
892
 
120 mario79 893
    xor  eax,eax       ; DRAW WINDOW
31 halyavin 894
    mov  ebx,40*65536+355+BBB
127 mario79 895
    mov  ecx,40*65536+320
120 mario79 896
    mov  edx,0x83111199
897
;    mov  esi,0x805588dd
898
;    mov  edi,0x005588dd
31 halyavin 899
    int  0x40
900
 
901
    mov  eax,4
902
    mov  ebx,8*65536+8
903
    mov  ecx,0x10ffffff
904
    mov  edx,labelt
905
    cmp  [syslang],4
127 mario79 906
    je         ruslabel
31 halyavin 907
    add  edx,20
908
  ruslabel:
120 mario79 909
    mov  esi,19 ;26
31 halyavin 910
    int  0x40
911
 
120 mario79 912
;    mov  eax,8               ; CLOSE BUTTON
913
;    mov  ebx,(355+BBB-19)*65536+12
914
;    mov  ecx,5*65536+12
915
;    mov  edx,1
916
;    mov  esi,0x005588dd
917
;    int  0x40
918
 
127 mario79 919
    mov  eax,8             ; APPLY ALL
31 halyavin 920
    mov  ebx,(350-79)*65536+100
127 mario79 921
    mov  ecx,282*65536+12
31 halyavin 922
    mov  edx,100
120 mario79 923
    mov  esi,0x005588dd
31 halyavin 924
    int  0x40
127 mario79 925
    add  ecx,16*65536         ; SAVE ALL
31 halyavin 926
    dec  edx
927
    int  0x40
928
 
929
    mov  esi,0x5580c0
930
 
931
    mov  edx,11
932
    mov  ecx,43
933
    call draw_buttons
934
 
935
    mov  edx,41
936
    mov  ecx,43+8*8
937
    call draw_buttons
938
 
939
    mov  edx,21
940
    mov  ecx,43+4*8
941
    call draw_buttons
942
 
943
    mov  edx,31
944
    mov  ecx,43+2*8
945
    call draw_buttons
946
 
947
    mov  edx,3
948
    mov  ecx,43+10*8
949
    call draw_buttons
950
 
951
    mov  edx,51
952
    mov  ecx,43+12*8
953
    call draw_buttons
954
 
955
    mov  edx,61
956
    mov  ecx,43+6*8
957
    call draw_buttons
958
 
959
    mov  edx,91
960
    mov  ecx,43+18*8
961
    call draw_buttons
962
 
963
    mov  edx,71
964
    mov  ecx,43+14*8
965
    call draw_buttons
966
 
967
    mov  edx,81
968
    mov  ecx,43+16*8
969
    call draw_buttons
970
 
971
    mov  edx,101
972
    mov  ecx,43+20*8
973
    call draw_buttons
974
 
975
    mov  edx,111
976
    mov  ecx,43+22*8 ; 22
977
    call draw_buttons
978
 
979
    mov  edx,121
980
    mov  ecx,43+24*8 ; 24
981
    call draw_buttons
982
 
120 mario79 983
    mov  edx,131
984
    mov  ecx,43+26*8 ; 26
985
    call draw_buttons
986
 
127 mario79 987
    mov  edx,141
988
    mov  ecx,43+28*8 ; 26
989
    call draw_buttons
990
 
31 halyavin 991
    call draw_infotext
992
 
993
    mov  eax,12
994
    mov  ebx,2
995
    int  0x40
996
 
997
    popa
998
    ret
999
 
1000
 
1001
 
1002
draw_infotext:
1003
 
1004
    pusha
1005
 
127 mario79 1006
    mov  eax,[keyboard]       ; KEYBOARD
31 halyavin 1007
    test eax,eax
1008
    jnz  noen
1009
    mov  [text00+LLL*10+28],dword 'ENGL'
1010
    mov  [text00+LLL*10+32],dword 'ISH '
1011
  noen:
1012
    cmp  eax,1
1013
    jnz  nofi
1014
    mov  [text00+LLL*10+28],dword 'FINN'
1015
    mov  [text00+LLL*10+32],dword 'ISH '
1016
  nofi:
1017
    cmp  eax,2
1018
    jnz  noge
1019
    mov  [text00+LLL*10+28],dword 'GERM'
1020
    mov  [text00+LLL*10+32],dword 'AN  '
1021
  noge:
1022
    cmp  eax,3
1023
    jnz  nogr
1024
    mov  [text00+LLL*10+28],dword 'RUSS'
1025
    mov  [text00+LLL*10+32],dword 'IAN '
1026
  nogr:
1027
    cmp  eax,4
1028
    jnz  nofr
1029
    mov  [text00+LLL*10+28],dword 'FREN'
1030
    mov  [text00+LLL*10+32],dword 'CH  '
1031
  nofr:
1032
 
1033
 
127 mario79 1034
    mov  eax,[syslang]            ; SYSTEM LANGUAGE
31 halyavin 1035
    dec  eax
1036
    test eax,eax
1037
    jnz  noen5
1038
    mov  [text00+LLL*8+28],dword 'ENGL'
1039
    mov  [text00+LLL*8+32],dword 'ISH '
1040
  noen5:
1041
    cmp  eax,1
1042
    jnz  nofi5
1043
    mov  [text00+LLL*8+28],dword 'FINN'
1044
    mov  [text00+LLL*8+32],dword 'ISH '
1045
  nofi5:
1046
    cmp  eax,2
1047
    jnz  noge5
1048
    mov  [text00+LLL*8+28],dword 'GERM'
1049
    mov  [text00+LLL*8+32],dword 'AN  '
1050
  noge5:
1051
    cmp  eax,3
1052
    jnz  nogr5
1053
    mov  [text00+LLL*8+28],dword 'RUSS'
1054
    mov  [text00+LLL*8+32],dword 'IAN '
1055
  nogr5:
1056
    cmp  eax,4
1057
    jne  nofr5
1058
    mov  [text00+LLL*8+28],dword 'FREN'
1059
    mov  [text00+LLL*8+32],dword 'CH  '
1060
  nofr5:
1061
 
1062
 
1063
    mov  eax,[midibase]
1064
    mov  esi,text00+LLL*0+32
127 mario79 1065
    call hexconvert           ; MIDI BASE
31 halyavin 1066
 
1067
 
127 mario79 1068
    mov  eax,[sb16]           ; SB16 BASE
31 halyavin 1069
    mov  esi,text00+LLL*2+32
1070
    call hexconvert
1071
 
1072
 
127 mario79 1073
    mov  eax,[wss]         ; WSS BASE
31 halyavin 1074
    cmp  eax,1
1075
    jnz  nowss1
1076
    mov  [wssp],dword 0x530
1077
  nowss1:
1078
    cmp  eax,2
1079
    jnz  nowss2
1080
    mov  [wssp],dword 0x608
1081
  nowss2:
1082
    cmp  eax,3
1083
    jnz  nowss3
1084
    mov  [wssp],dword 0xe80
1085
  nowss3:
1086
    cmp  eax,4
1087
    jnz  nowss4
1088
    mov  [wssp],dword 0xf40
1089
  nowss4:
1090
 
1091
    mov  eax,[wssp]
1092
    mov  esi,text00+LLL*12+32
1093
    call hexconvert
1094
 
127 mario79 1095
    mov  eax,[cdbase]          ; CD BASE
31 halyavin 1096
    cmp  eax,1
1097
    jnz  noe1
1098
    mov  [text00+LLL*4+28],dword 'PRI.'
1099
    mov  [text00+LLL*4+32],dword 'MAST'
1100
    mov  [text00+LLL*4+36],dword 'ER  '
1101
  noe1:
1102
    cmp  eax,2
1103
    jnz  nof1
1104
    mov  [text00+LLL*4+28],dword 'PRI.'
1105
    mov  [text00+LLL*4+32],dword 'SLAV'
1106
    mov  [text00+LLL*4+36],dword 'E   '
1107
  nof1:
1108
    cmp  eax,3
1109
    jnz  nog1
1110
    mov  [text00+LLL*4+28],dword 'SEC.'
1111
    mov  [text00+LLL*4+32],dword 'MAST'
1112
    mov  [text00+LLL*4+36],dword 'ER  '
1113
  nog1:
1114
    cmp  eax,4
1115
    jnz  nog2
1116
    mov  [text00+LLL*4+28],dword 'SEC.'
1117
    mov  [text00+LLL*4+32],dword 'SLAV'
1118
    mov  [text00+LLL*4+36],dword 'E   '
1119
  nog2:
1120
 
1121
 
127 mario79 1122
    mov  eax,[hdbase]            ; HD BASE
31 halyavin 1123
    cmp  eax,1
1124
    jnz  hnoe1
1125
    mov  [text00+LLL*6+28],dword 'PRI.'
1126
    mov  [text00+LLL*6+32],dword 'MAST'
1127
    mov  [text00+LLL*6+36],dword 'ER  '
1128
  hnoe1:
1129
    cmp  eax,2
1130
    jnz  hnof1
1131
    mov  [text00+LLL*6+28],dword 'PRI.'
1132
    mov  [text00+LLL*6+32],dword 'SLAV'
1133
    mov  [text00+LLL*6+36],dword 'E   '
1134
  hnof1:
1135
    cmp  eax,3
1136
    jnz  hnog1
1137
    mov  [text00+LLL*6+28],dword 'SEC.'
1138
    mov  [text00+LLL*6+32],dword 'MAST'
1139
    mov  [text00+LLL*6+36],dword 'ER  '
1140
  hnog1:
1141
    cmp  eax,4
1142
    jnz  hnog2
1143
    mov  [text00+LLL*6+28],dword 'SEC.'
1144
    mov  [text00+LLL*6+32],dword 'SLAV'
1145
    mov  [text00+LLL*6+36],dword 'E   '
1146
  hnog2:
1147
 
1148
 
127 mario79 1149
    mov  eax,[f32p]        ; FAT32 PARTITION
31 halyavin 1150
    add  al,48
1151
    mov  [text00+LLL*14+28],al
1152
 
120 mario79 1153
    mov  eax,[sound_dma]      ; SOUND DMA
31 halyavin 1154
    add  eax,48
1155
    mov  [text00+LLL*16+28],al
1156
 
1157
    mov  eax,[lba_read]
127 mario79 1158
    call onoff          ; LBA READ
31 halyavin 1159
    mov  [text00+LLL*18+28],ebx
1160
 
1161
    mov  eax,[pci_acc]
127 mario79 1162
    call onoff          ; PCI ACCESS
31 halyavin 1163
    mov  [text00+LLL*20+28],ebx
1164
 
127 mario79 1165
    mov  eax,[mouse_speed]      ; MOUSE SPEED
120 mario79 1166
    add  al,48
1167
    mov  [text00+LLL*26+28],al
1168
 
127 mario79 1169
    mov  eax,[mouse_delay]
1170
    mov  esi,text00+LLL*28+32
1171
    call hexconvert           ; MOUSE DELAY
1172
 
31 halyavin 1173
    mov  eax,13
1174
    mov  ebx,175*65536+85
127 mario79 1175
    mov  ecx,40*65536+245
31 halyavin 1176
    mov  edx,0x80111199-19
1177
    int  0x40
1178
 
1179
    mov  edx,text00
1180
    mov  ebx,10*65536+45
1181
    mov  eax,4
1182
    mov  ecx,0xffffff
1183
    mov  esi,LLL
1184
  newline:
1185
    int  0x40
1186
    add  ebx,8
1187
    add  edx,LLL
1188
    cmp  [edx],byte 'x'
1189
    jnz  newline
1190
 
1191
    popa
1192
    ret
1193
 
1194
  drawtime:
127 mario79 1195
    mov  ax,[time]      ;hours 22
31 halyavin 1196
    mov  cl,1
1197
    call unpacktime
1198
    mov  [text00+LLL*22+28],word bx
127 mario79 1199
    mov  al,ah          ;minutes
31 halyavin 1200
    inc  cl
1201
    call unpacktime
1202
    mov  [text00+LLL*22+31],word bx
1203
    mov  eax,[date]
1204
    mov  ch,3
1205
    call unpackdate
127 mario79 1206
    mov  [text00+LLL*24+34],word bx    ;year   24
31 halyavin 1207
    mov  al,ah
1208
    mov  ch,1
1209
    call unpackdate
127 mario79 1210
    mov  [text00+LLL*24+28],word bx    ;month
31 halyavin 1211
    bswap eax
1212
    mov  al,ah
1213
    inc  ch
1214
    call unpackdate
127 mario79 1215
    mov  [text00+LLL*24+31],word bx    ;day
31 halyavin 1216
 
1217
    mov  eax,13
1218
    mov  ebx,175*65536+85
127 mario79 1219
    mov  ecx,40*65536+245
31 halyavin 1220
    mov  edx,0x80111199-19
1221
    int  0x40
1222
 
1223
    mov  edx,text00
1224
    mov  ebx,10*65536+45
1225
    mov  eax,4
1226
    mov  ecx,0xffffff
1227
    mov  esi,LLL
1228
  newline1:
1229
    int  0x40
1230
    add  ebx,8
1231
    add  edx,LLL
1232
    cmp  [edx],byte 'x'
1233
    jnz  newline1
1234
    ret
1235
 
1236
  unpacktime:
127 mario79 1237
    cmp  byte [blinkpar],cl    ;translate packed number to ascii
31 halyavin 1238
    jne  unpack1
1239
  chkblink:
1240
    bt dword [blinkpar],16
1241
    jnc  unpack1
1242
    xor  bx,bx
1243
    ret
1244
  unpackdate:
1245
    cmp  byte [blinkpar+1],ch
127 mario79 1246
    je         chkblink
31 halyavin 1247
  unpack1:
1248
    xor  bx,bx
1249
    mov  bh,al
1250
    mov  bl,al
1251
    and  bh,0x0f
1252
    shr  bl,4
1253
    add  bx,0x3030
1254
    ret
1255
 
127 mario79 1256
  hexconvert:        ;converting dec to hex in ascii
31 halyavin 1257
    xor  ebx,ebx
1258
    mov  bl,al
1259
    and  bl,15
1260
    add  ebx,hex
1261
    mov  cl,[ebx]
1262
    mov  [esi],cl
1263
    shr  eax,4
1264
    xor  ebx,ebx
1265
    mov  bl,al
1266
    and  bl,15
1267
    add  ebx,hex
1268
    mov  cl,[ebx]
1269
    dec  esi
1270
    mov  [esi],cl
1271
    shr  eax,4
1272
    xor  ebx,ebx
1273
    mov  bl,al
1274
    and  bl,15
1275
    add  ebx,hex
1276
    mov  cl,[ebx]
1277
    dec  esi
1278
    mov  [esi],cl
1279
    ret
1280
 
1281
onoff:
1282
    cmp [syslang],4
1283
    jne norus1
1284
    mov ebx,'„€  '
1285
    cmp eax,1
127 mario79 1286
    je        exitsub
31 halyavin 1287
    mov ebx,'…’ '
1288
    ret
1289
 norus1:
1290
    mov ebx,'ON  '
1291
    cmp eax,1
127 mario79 1292
    je        exitsub
31 halyavin 1293
    mov ebx,'OFF '
1294
 exitsub:
1295
    ret
1296
 
1297
_midibase:
1298
    mov  eax,21
1299
    mov  ebx,1
1300
    mov  ecx,[midibase]
1301
    int  0x40
1302
 ret
1303
 
1304
_cdbase:
1305
    mov  eax,21
1306
    mov  ebx,3
1307
    mov  ecx,[cdbase]
1308
    int  0x40
1309
 ret
1310
 
1311
_hdbase:
1312
    mov  eax,21
1313
    mov  ebx,7
1314
    mov  ecx,[hdbase]
1315
    int  0x40
1316
    ret
1317
 
1318
_sound_dma:
1319
    mov  eax,21
1320
    mov  ebx,10
1321
    mov  ecx,[sound_dma]
1322
    int  0x40
1323
    ret
1324
 
1325
_lba_read:
1326
    mov  eax,21
1327
    mov  ebx,11
1328
    mov  ecx,[lba_read]
1329
    int  0x40
1330
    ret
1331
 
1332
_pci_acc:
1333
    mov  eax,21
1334
    mov  ebx,12
1335
    mov  ecx,[pci_acc]
1336
    int  0x40
1337
    ret
1338
 
1339
_f32p:
1340
    mov  eax,21
1341
    mov  ebx,8
1342
    mov  ecx,[f32p]
1343
    int  0x40
1344
 ret
1345
 
1346
_sb16:
1347
    mov  eax,21
1348
    mov  ebx,4
1349
    mov  ecx,[sb16]
1350
    int  0x40
1351
    ret
1352
 
1353
_wssp:
1354
    mov  eax,21
1355
    mov  ebx,6
1356
    mov  ecx,[wssp]
1357
    int  0x40
1358
 ret
1359
 
1360
_syslang:
1361
    mov  eax,21
1362
    mov  ebx,5
1363
    mov  ecx,[syslang]
1364
    int  0x40
1365
 ret
1366
 
127 mario79 1367
_mouse_speed:
120 mario79 1368
    mov  eax,18
1369
    mov  ebx,19
1370
    mov  ecx,1
1371
    mov  edx,[mouse_speed]
1372
    int  0x40
1373
 ret
1374
 
127 mario79 1375
_mouse_delay:
1376
    mov  eax,18
1377
    mov  ebx,19
1378
    mov  ecx,3
1379
    mov  edx,[mouse_delay]
1380
    int  0x40
1381
 ret
1382
 
31 halyavin 1383
loadtxt:
1384
    cld
1385
    mov  edi,text00
127 mario79 1386
    mov  ecx,488 ;28
31 halyavin 1387
    cmp  [syslang],4
1388
    jne  norus
1389
    mov  esi,textrus
1390
    jmp  sload
1391
  norus:
1392
    mov  esi,texteng
1393
  sload:
1394
    rep  movsd
1395
    ret
1396
 
1397
cleantxt:
1398
    xor  eax,eax
1399
    mov  ecx,428
1400
    cld
1401
    mov  edi,text00
1402
    rep stosd
1403
    mov  [text00+1711],byte 'x'
1404
    ret
1405
 
1406
settime:
1407
    mov  dx,0x70
1408
    call startstopclk
1409
    dec  dx
127 mario79 1410
    mov  al,2           ;set minutes
31 halyavin 1411
    out  dx,al
1412
    inc  dx
1413
    mov  al,byte [time+1]
1414
    out  dx,al
1415
    dec  dx
127 mario79 1416
    mov  al,4           ;set hours
31 halyavin 1417
    out  dx,al
1418
    inc  dx
1419
    mov  al,byte [time]
1420
    out  dx,al
1421
    dec  dx
127 mario79 1422
    mov  al,7           ;set day
31 halyavin 1423
    out  dx,al
1424
    inc  dx
1425
    mov  al,byte [date+2]
1426
    out  dx,al
1427
    dec  dx
127 mario79 1428
    mov  al,8           ;set month
31 halyavin 1429
    out  dx,al
1430
    inc  dx
1431
    mov  al,byte [date+1]
1432
    out  dx,al
1433
    dec  dx
127 mario79 1434
    mov  al,9           ;set year
31 halyavin 1435
    out  dx,al
1436
    inc  dx
1437
    mov  al,byte [date]
1438
    out  dx,al
1439
    dec  dx
1440
    call startstopclk
1441
    ret
1442
 
1443
startstopclk:
1444
    mov  al,0x0b
1445
    out  dx,al
1446
    inc  dx
127 mario79 1447
    in         al,dx
31 halyavin 1448
    btc  ax,7
1449
    out  dx,al
1450
    ret
1451
 
1452
; DATA AREA
127 mario79 1453
count:          db 0x0
31 halyavin 1454
blinkpar: dd 0x0
127 mario79 1455
time:        dw 0x0
1456
date:        dd 0x0
31 halyavin 1457
 
1458
textrus:
1459
 
1460
    db ' §  MIDI ROLAND MPU-401  : 0x320           - +   ਬ¥­¨âì'
1461
    db '                                                           '
1462
    db ' §  SoundBlaster 16      : 0x240           - +   ਬ¥­¨âì'
1463
    db '                                                           '
1464
    db ' §  CD-ROM               : PRI.SLAVE       - +   ਬ¥­¨âì'
1465
    db '                                                           '
1466
    db ' §  †„-1                 : PRI.MASTER      - +   ਬ¥­¨âì'
1467
    db '                                                           '
1468
    db 'Ÿ§ëª á¨áâ¥¬ë              : ENGLISH         - +   ਬ¥­¨âì'
1469
    db '                                                           '
1470
    db ' áª« ¤ª  ª« ¢¨ âãàë      : ENGLISH         - +   ਬ¥­¨âì'
1471
    db '                                                           '
1472
    db ' §  WSS                  : 0x200           - +   ਬ¥­¨âì'
1473
    db '                                                           '
1474
    db ' §¤¥« FAT32 ­  †„-1      : 1               - +   ਬ¥­¨âì'
1475
    db '                                                           '
1476
    db '‡¢ãª®¢®© ª ­ « DMA        : 1               - +   ਬ¥­¨âì'
1477
    db '                                                           '
1478
    db '‚ª«îç¨âì LBA              : OFF             - +   ਬ¥­¨âì'
1479
    db '                                                           '
1480
    db '„®áâ㯠ª 設¥ PCI         : OFF             - +   ਬ¥­¨âì'
1481
    db '                                                           '
1482
    db '‘¨á⥬­®¥ ¢à¥¬ï           :  0:00           - +     ‚ë¡®à  '
1483
    db '                                                           '
1484
    db '‘¨á⥬­ ï ¤ â  (¬,¤,£)    : 00/00/00        - +     ‚ë¡®à  '
1485
    db '                                                           '
120 mario79 1486
    db '‘ª®à®áâì ªãàá®à  ¬ëè¨     : 1               - +   ਬ¥­¨âì'
1487
    db '                                                           '
127 mario79 1488
    db '‡ ¤¥à¦ª  ã᪮७¨ï ¬ëè¨   : 0x00a           - +   ਬ¥­¨âì'
1489
    db '                                                           '
31 halyavin 1490
    db '‚ˆŒ€ˆ…:                                    ਬ¥­¨âì ¢á¥ '
120 mario79 1491
    db 'ˆ‘Ž‹œ‡“‰’… „Ž‘’“ Š FAT ‘ Ž‘’ŽŽ†Ž‘’œž!                  '
31 halyavin 1492
    db '… ‡€“„œ’… ‘Ž•€ˆ’œ €‘’Ž‰Šˆ              ‘®åà ­¨âì ¢á¥ '
1493
    db 'x'
1494
 
1495
texteng:
1496
 
1497
    db 'MIDI: ROLAND MPU-401 BASE : 0x320           - +     APPLY  '
1498
    db '                                                           '
1499
    db 'SOUND: SB16 BASE          : 0x240           - +     APPLY  '
1500
    db '                                                           '
1501
    db 'CD-ROM BASE               : PRI.SLAVE       - +     APPLY  '
1502
    db '                                                           '
1503
    db 'HARDDISK-1 BASE           : PRI.MASTER      - +     APPLY  '
1504
    db '                                                           '
1505
    db 'SYSTEM LANGUAGE           : ENGLISH         - +     APPLY  '
1506
    db '                                                           '
1507
    db 'KEYBOARD LAYOUT           : ENGLISH         - +     APPLY  '
1508
    db '                                                           '
1509
    db 'WINDOWS SOUND SYSTEM BASE : 0x200           - +     APPLY  '
1510
    db '                                                           '
1511
    db 'FAT32-1 PARTITION IN HD-1 : 1               - +     APPLY  '
1512
    db '                                                           '
1513
    db 'SOUND DMA CHANNEL         : 1               - +     APPLY  '
1514
    db '                                                           '
1515
    db 'LBA READ ENABLED          : OFF             - +     APPLY  '
1516
    db '                                                           '
1517
    db 'PCI ACCESS FOR APPL.      : OFF             - +     APPLY  '
1518
    db '                                                           '
1519
    db 'SYSTEM TIME               :  0:00           - +    SELECT  '
1520
    db '                                                           '
1521
    db 'SYSTEM DATE (M,D,Y)       : 00/00/00        - +    SELECT  '
1522
    db '                                                           '
120 mario79 1523
    db 'Mouse pointer speed       : 1               - +     APPLY  '
1524
    db '                                                           '
127 mario79 1525
    db 'Mouse pointer delay       : 0x00a           - +     APPLY  '
1526
    db '                                                           '
31 halyavin 1527
    db 'NOTE:                                           APPLY ALL  '
120 mario79 1528
    db 'TEST FAT FUNCTIONS WITH EXTREME CARE                       '
31 halyavin 1529
    db 'SAVE YOUR SETTINGS BEFORE QUIT MENUET           SAVE ALL   '
1530
    db 'x'
1531
 
1532
labelt:
127 mario79 1533
    db         '€‘’Ž‰Š€ “‘’Ž‰‘’‚ DEVICE SETUP       '
31 halyavin 1534
 
127 mario79 1535
hex db         '0123456789ABCDEF'
31 halyavin 1536
 
1537
alt_general:
1538
 
1539
;     db   ' ',27
1540
;     db   ' @ $  {[]}\ ',8,9
1541
;     db   '            ',13
1542
;     db   '             ',0,'           ',0,'4',0,' '
1543
;     db   '             ',180,178,184,'6',176,'7'
1544
;     db   179,'8',181,177,183,185,182
1545
;     db   'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
1546
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1547
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1548
;     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1549
 
1550
 
1551
en_keymap:
1552
 
1553
     db   '6',27
1554
     db   '1234567890-=',8,9
1555
     db   'qwertyuiop[]',13
1556
     db   '~asdfghjkl;',39,96,0,'\zxcvbnm,./',0,'45 '
1557
     db   '@234567890123',180,178,184,'6',176,'7'
1558
     db   179,'8',181,177,183,185,182
1559
     db   'AB
1560
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1561
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1562
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1563
 
1564
 
1565
en_keymap_shift:
1566
 
1567
     db   '6',27
1568
     db   '!@#$%^&*()_+',8,9
1569
     db   'QWERTYUIOP{}',13
1570
     db   '~ASDFGHJKL:"~',0,'|ZXCVBNM<>?',0,'45 '
1571
     db   '@234567890123',180,178,184,'6',176,'7'
1572
     db   179,'8',181,177,183,185,182
1573
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1574
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1575
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1576
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1577
 
1578
 
1579
fr_keymap:
1580
 
1581
     db   '6',27
1582
     db   '&Ž"',39,'(-_“)=',8,9
1583
     db   'azertyuiop^$',13
1584
     db   '~qsdfghjklm’',0,0,'*wxcvbn,;:!',0,'45 '
1585
     db   '@234567890123',180,178,184,'6',176,'7'
1586
     db   179,'8',181,177,183,185,182
1587
     db   'AB
1588
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1589
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1590
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1591
 
1592
 
1593
 
1594
fr_keymap_shift:
1595
 
1596
 
1597
     db   '6',27
1598
     db   '1234567890+',8,9
1599
     db   'AZERTYUIOP•”',13
1600
     db   '~QSDFGHJKLM%',0,'–WXCVBN?./',0,'45 '
1601
     db   '@234567890123',180,178,184,'6',176,'7'
1602
     db   179,'8',181,177,183,185,182
1603
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1604
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1605
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1606
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1607
 
1608
 
1609
fr_keymap_alt_gr:
1610
 
1611
 
1612
     db   '6',27
1613
     db   28,'~#{[|˜\^@]}',8,9
1614
     db   'azertyuiop^$',13
1615
     db   '~qsdfghjklm’',0,0,'*wxcvbn,;:!',0,'45 '
1616
     db   '@234567890123',180,178,184,'6',176,'7'
1617
     db   179,'8',181,177,183,185,182
1618
     db   'AB
1619
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1620
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1621
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1622
 
1623
 
1624
 
1625
 
1626
fi_keymap:
1627
 
1628
     db   '6',27
1629
     db   '1234567890+[',8,9
1630
     db   'qwertyuiop',192,'~',13
1631
     db   '~asdfghjkl',194,193,'1',0,39,'zxcvbnm,.-',0,'45 '
1632
     db   '@234567890123',180,178,184,'6',176,'7'
1633
     db   179,'8',181,177,183,185,182
1634
     db   'AB
1635
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1636
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1637
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1638
 
1639
 
1640
fi_keymap_shift:
1641
 
1642
     db   '6',27
1643
     db   '!"#%&/()=?]',8,9
1644
     db   'QWERTYUIOP',200,'~',13
1645
     db   '~ASDFGHJKL',202,201,'1',0,'*ZXCVBNM;:_',0,'45 '
1646
     db   '@234567890123',180,178,184,'6',176,'7'
1647
     db   179,'8',181,177,183,185,182
1648
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1649
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1650
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1651
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1652
 
1653
 
1654
 
1655
ge_keymap:
1656
 
1657
     db   '6',27
1658
     db   '1234567890?[',8,9
1659
     db   'qwertzuiop',203,'~',13
1660
     db   '~asdfghjkl',194,193,'1',0,39,'yxcvbnm,.-',0,'45 '
1661
     db   '@234567890123',180,178,184,'6',176,'7'
1662
     db   179,'8',181,177,183,185,182
1663
     db   'AB
1664
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1665
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1666
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1667
 
1668
 
1669
ge_keymap_shift:
1670
 
1671
     db   '6',27
1672
     db   '!"#$%&/()=',197,']',8,9
1673
     db   'QWERTZUIOP',195,'~',13
1674
     db   '~ASDFGHJKL',202,201,'1',0,'*YXCVBNM;:_',0,'45 '
1675
     db   '@234567890123',180,178,184,'6',176,'7'
1676
     db   179,'8',181,177,183,185,182
1677
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1678
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1679
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1680
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1681
 
1682
ru_keymap:
1683
 
1684
     db   '6',27
1685
     db   '1234567890-=',8,9
1686
     db   '©æ㪥­£èé§åê',13
1687
     db   0,"ä뢠¯à®«¤¦í"
1688
     db   0xf1, '-/'
1689
     db   "ïçᬨâì¡î",'.-','45 '
1690
     db   '@234567890123',180,178,184,'6',176,'7'
1691
     db   179,'8',181,177,183,185,182
1692
     db   'AB
1693
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1694
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1695
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1696
 
1697
 
1698
 
1699
ru_keymap_shift:
1700
 
1701
     db   '6',27
1702
     db   '!"N;%:?*()_+',8,0
1703
     db   "‰–“Š…ƒ˜™‡•š",13
1704
     db   0,"”›‚€Ž‹„†"
1705
     db   0xf0, '-\'
1706
     db   "Ÿ—‘Œˆ’œž",',-','45 '
1707
     db   '@234567890123',180,178,184,'6',176,'7'
1708
     db   179,'8',181,177,183,185,182
1709
     db   'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
1710
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1711
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1712
     db   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1713
 
120 mario79 1714
read_fileinfo:
1715
       dd 0
1716
       dd 0
1717
       dd 0
127 mario79 1718
       dd 56
120 mario79 1719
       dd keyboard
1720
       db 0
1721
       dd file_name
1722
 
1723
save_fileinfo:
1724
       dd 2
1725
       dd 0
1726
       dd 0
127 mario79 1727
       dd 56
120 mario79 1728
       dd keyboard
1729
file_name:   db '/rd/1/setup.dat',0
1730
 
31 halyavin 1731
I_PARAM   dd 0
1732
 
120 mario79 1733
keyboard     dd 0x0
1734
midibase     dd 0x320
127 mario79 1735
cdbase         dd 0x2
120 mario79 1736
sb16         dd 0x220
1737
syslang      dd 0x1
127 mario79 1738
wss         dd 0x1
120 mario79 1739
wssp         dd 0x0
127 mario79 1740
hdbase         dd 0x1
120 mario79 1741
f32p         dd 0x1
1742
sound_dma    dd 0x1
1743
lba_read     dd 0x1
1744
pci_acc      dd 0x1
1745
mouse_speed  dd 0x3
127 mario79 1746
mouse_delay  dd 0x10
31 halyavin 1747
text00:
1748
 
1749
I_END:
1750
table_area: