Subversion Repositories Kolibri OS

Rev

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

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