Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

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