Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. load_ini:
  2.     mov    [point2],16h
  3.     mcall  70,get_ini
  4.     mov    al,[inicont]
  5.     sub    al,30h
  6.     mov    [firini],al
  7.     mov    [point2],32h
  8.     mcall  70,get_ini
  9.     mov    al,[inicont]
  10.     sub    al,30h
  11.     mov    [lngcrc1],al
  12.     mov    [point2],42h
  13.     mcall  70,get_ini
  14.     mov    al,[inicont]
  15.     sub    al,30h
  16.     mov    [lngcrc2],al
  17.     mov    [point2],52h
  18.     mcall  70,get_ini
  19.     mov    al,[inicont]
  20.     sub    al,30h
  21.     mov    [lngcrc3],al
  22.     mov    [point2],06eh
  23.     mcall  70,get_ini
  24.     mov    al,[inicont]
  25.     sub    al,30h
  26.     mov    [altlng1],al
  27.     mov    [point2],07eh
  28.     mcall  70,get_ini
  29.     mov    al,[inicont]
  30.     sub    al,30h
  31.     mov    [altlng2],al
  32.     mov    [point2],08eh
  33.     mcall  70,get_ini
  34.     mov    al,[inicont]
  35.     sub    al,30h
  36.     mov    [altlng3],al
  37.     mov    [point2],09eh
  38.     mcall  70,get_ini
  39.     mov    al,[inicont]
  40.     sub    al,30h
  41.     mov    [altlng4],al
  42.     mov    [point2],0aeh
  43.     mcall  70,get_ini
  44.     mov    al,[inicont]
  45.     sub    al,30h
  46.     mov    [altlng5],al
  47.     mov    [point2],0beh
  48.     mcall  70,get_ini
  49.     mov    al,[inicont]
  50.     sub    al,30h
  51.     mov    [altlng6],al
  52.     mov    [point2],0ceh
  53.     mcall  70,get_ini
  54.     mov    al,[inicont]
  55.     sub    al,30h
  56.     mov    [altlng7],al
  57.     mov    [point2],0deh
  58.     mcall  70,get_ini
  59.     mov    al,[inicont]
  60.     sub    al,30h
  61.     mov    [altlng8],al
  62.     mov    [point2],0eeh
  63.     mcall  70,get_ini
  64.     mov    al,[inicont]
  65.     sub    al,30h
  66.     mov    [altlng9],al
  67.     mov    [point2],0feh
  68.     mcall  70,get_ini
  69.     mov    al,[inicont]
  70.     sub    al,30h
  71.     mov    [altlng0],al
  72.  
  73. ret
  74. fir_lng:
  75.     mov    al,[firini]
  76.     sub    al,1
  77.     mov    dx,384
  78.     mul    dx
  79.     mov    [point],eax
  80.     mcall  70,get_key
  81.     mov  eax,21
  82.     mov  ebx,2
  83.     mov  ecx,1
  84.     mov  edx,en_keymap
  85.     mcall
  86.     mov  eax,21
  87.     inc  ecx
  88.     mov  edx,en_keymap_shift
  89.     mcall
  90.     mov  eax,21
  91.     inc  ecx
  92.     mov  edx,en_keymap_alt
  93.     mcall
  94.     mov  eax,21
  95.     mov  ecx,9
  96.     movzx  edx,[firini]
  97.     mcall
  98. ret
  99. karu:
  100.     add  [key_r2],1
  101.     cmp  [key_r2],3
  102.     jb   .altes
  103.     mov  [key_r2],0
  104. .altes:
  105.     cmp  [key_r2],0
  106.     je   .klt_1
  107.     cmp  [key_r2],1
  108.     je   .klt_2
  109.     cmp  [key_r2],2
  110.     je   .klt_3
  111.     jmp  still
  112. .klt_1:
  113.     mov  al,[lngcrc1]
  114.     sub  al,1
  115.     mov  [key_r],al
  116.     jmp  alted
  117. .klt_2:
  118.     mov  al,[lngcrc2]
  119.     sub  al,1
  120.     mov  [key_r],al
  121.     jmp  alted
  122. .klt_3:
  123.     mov  al,[lngcrc3]
  124.     sub  al,1
  125.     mov  [key_r],al
  126.     jmp  alted
  127.     ret
  128. alter:
  129.     cmp  [key_r],0
  130.     je   .alt_1
  131.     cmp  [key_r],1
  132.     je   .alt_2
  133.     cmp  [key_r],2
  134.     je   .alt_3
  135.     cmp  [key_r],3
  136.     je   .alt_4
  137.     cmp  [key_r],4
  138.     je   .alt_5
  139.     cmp  [key_r],5
  140.     je   .alt_6
  141.     cmp  [key_r],6
  142.     je   .alt_7
  143. .alt_1:
  144.     mov  al,[altlng1]
  145.     cmp  al,0
  146.     je   .exit
  147.     sub  al,1
  148.     mov  [key_r],al
  149.     jmp  alted
  150.  
  151. .alt_2:
  152.     mov  al,[altlng2]
  153.     cmp  al,0
  154.     je   .exit
  155.     sub  al,1
  156.     mov  [key_r],al
  157.     jmp  alted
  158. .alt_3:
  159.     mov  al,[altlng3]
  160.     cmp  al,0
  161.     je   .exit
  162.     sub  al,1
  163.     mov  [key_r],al
  164.     jmp  alted
  165. .alt_4:
  166.     mov  al,[altlng4]
  167.     cmp  al,0
  168.     je   .exit
  169.     sub  al,1
  170.     mov  [key_r],al
  171.     jmp  alted
  172. .alt_5:
  173.     mov  al,[altlng5]
  174.     cmp  al,0
  175.     je   .exit
  176.     sub  al,1
  177.     mov  [key_r],al
  178.     jmp  alted
  179. .alt_6:
  180.     mov  al,[altlng6]
  181.     cmp  al,0
  182.     je   .exit
  183.     sub  al,1
  184.     mov  [key_r],al
  185.     jmp  alted
  186. .alt_7:
  187.     mov  al,[altlng7]
  188.     cmp  al,0
  189.     je   .exit
  190.     sub  al,1
  191.     mov  [key_r],al
  192.     jmp  alted
  193. .exit:
  194. ret
  195. alted:
  196.     cmp  [key_r],0
  197.     je   alt_1
  198.     cmp  [key_r],1
  199.     je   alt_2
  200.     cmp  [key_r],2
  201.     je   alt_3
  202.     cmp  [key_r],3
  203.     je   alt_4
  204.     cmp  [key_r],4
  205.     je   alt_5
  206.     cmp  [key_r],5
  207.     je   alt_6
  208.     cmp  [key_r],6
  209.     je   alt_7
  210. ret
  211. alt_1:
  212.     mov    [point],0
  213.     mcall  70,get_key
  214.  
  215.     mov  eax,21       ; english     0
  216.     mov  ebx,2
  217.     mov  ecx,1
  218.     mov  edx,en_keymap
  219.     mcall
  220.     mov  eax,21
  221.     inc  ecx
  222.     mov  edx,en_keymap_shift
  223.     mcall
  224.     mov  eax,21
  225.     mov  ecx,9
  226.     mov  edx,1
  227.     mcall
  228. ret
  229. alt_2:
  230.     mov    [point],384
  231.     mcall  70,get_key
  232.  
  233.  
  234.     mov  eax,21       ; russian
  235.     mov  ebx,2
  236.     mov  ecx,1
  237.     mov  edx,en_keymap
  238.     mcall
  239.     mov  eax,21
  240.     inc  ecx
  241.     mov  edx,en_keymap_shift
  242.     mcall
  243.     mov  eax,21
  244.     mov  ecx,9
  245.     mov  edx,2
  246.     mcall
  247. ret
  248. alt_3:
  249.     mov    [point],768
  250.     mcall  70,get_key
  251.     mov  eax,21       ; german
  252.     mov  ebx,2
  253.     mov  ecx,1
  254.     mov  edx,en_keymap
  255.     mcall
  256.     mov  eax,21
  257.     inc  ecx
  258.     mov  edx,en_keymap_shift
  259.     mcall
  260.     mov  eax,21
  261.     mov  ecx,9
  262.     mov  edx,3
  263.     mcall
  264. ret
  265. alt_4:
  266.     mov    [point],1152
  267.     mcall  70,get_key
  268.     mov  eax,21          ;french
  269.     mov  ebx,2
  270.     mov  ecx,1
  271.     mov  edx,en_keymap
  272.     mcall
  273.     mov  eax,21
  274.     inc  ecx
  275.     mov  edx,en_keymap_shift
  276.     mcall
  277.     mov  eax,21
  278.     inc  ecx
  279.     mov  edx,en_keymap_alt
  280.     mcall
  281.     mov  eax,21
  282.     mov  ecx,9
  283.     mov  edx,4
  284.     mcall
  285. ret
  286. alt_5:
  287.     mov    [point],1536
  288.     mcall  70,get_key
  289.     mov  eax,21       ; finnish
  290.     mov  ebx,2
  291.     mov  ecx,1
  292.     mov  edx,en_keymap
  293.     mcall
  294.     mov  eax,21
  295.     inc  ecx
  296.     mov  edx,en_keymap_shift
  297.     mcall
  298.     mov  eax,21
  299.     mov  ecx,9
  300.     mov  edx,5
  301.     mcall
  302. ret
  303. alt_6:
  304.     mov    [point],1920
  305.     mcall  70,get_key
  306.     mov  eax,21       ; estonian
  307.     mov  ebx,2
  308.     mov  ecx,1
  309.     mov  edx,en_keymap
  310.     mcall
  311.     mov  eax,21
  312.     inc  ecx
  313.     mov  edx,en_keymap_shift
  314.     mcall
  315.     mov  eax,21
  316.     mov  ecx,9
  317.     mov  edx,6
  318.     mcall
  319. ret
  320. alt_7:
  321.     mov    [point],2304
  322.     mcall  70,get_key
  323.     mov  eax,21       ; Ukrainian
  324.     mov  ebx,2
  325.     mov  ecx,1
  326.     mov  edx,en_keymap
  327.     mcall
  328.     mov  eax,21
  329.     inc  ecx
  330.     mov  edx,en_keymap_shift
  331.     mcall
  332.     mov  eax,21
  333.     mov  ecx,9
  334.     mov  edx,7
  335.     mcall
  336. ret
  337. en_keymap:
  338.           rb      128
  339. en_keymap_shift:
  340.           rb      128
  341. en_keymap_alt:
  342.           rb      128
  343. key_r     db      0
  344. key_r2    db      0
  345. key_r3    db      0
  346. inicont   db      0
  347. firini    db      0
  348. lngcrc1   db      0
  349. lngcrc2   db      0
  350. lngcrc3   db      0
  351. altlng1   db      0
  352. altlng2   db      0
  353. altlng3   db      0
  354. altlng4   db      0
  355. altlng5   db      0
  356. altlng6   db      0
  357. altlng7   db      0
  358. altlng8   db      0
  359. altlng9   db      0
  360. altlng0   db      0
  361. get_key:
  362.           dd      0
  363. point     dd      0
  364.           dd      0
  365.           dd      384
  366.           dd      en_keymap
  367.           db      0
  368.           dd      key_file
  369. get_ini:
  370.           dd      0
  371. point2    dd      0
  372.           dd      0
  373.           dd      1
  374.           dd      inicont
  375.           db      0
  376.           dd      ini_file
  377.  
  378. key_file: db      '/rd/1/keymap.key',0
  379. ini_file: db      '/rd/1/lang.ini',0