/programs/system/panel/trunk/MOI.INC |
---|
0,0 → 1,379 |
load_ini: |
mov [point2],16h |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [firini],al |
mov [point2],32h |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [lngcrc1],al |
mov [point2],42h |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [lngcrc2],al |
mov [point2],52h |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [lngcrc3],al |
mov [point2],06eh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng1],al |
mov [point2],07eh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng2],al |
mov [point2],08eh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng3],al |
mov [point2],09eh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng4],al |
mov [point2],0aeh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng5],al |
mov [point2],0beh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng6],al |
mov [point2],0ceh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng7],al |
mov [point2],0deh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng8],al |
mov [point2],0eeh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng9],al |
mov [point2],0feh |
mcall 70,get_ini |
mov al,[inicont] |
sub al,30h |
mov [altlng0],al |
ret |
fir_lng: |
mov al,[firini] |
sub al,1 |
mov dx,384 |
mul dx |
mov [point],eax |
mcall 70,get_key |
mov eax,21 |
mov ebx,2 |
mov ecx,1 |
mov edx,en_keymap |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_shift |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_alt |
mcall |
mov eax,21 |
mov ecx,9 |
movzx edx,[firini] |
mcall |
ret |
karu: |
add [key_r2],1 |
cmp [key_r2],3 |
jb .altes |
mov [key_r2],0 |
.altes: |
cmp [key_r2],0 |
je .klt_1 |
cmp [key_r2],1 |
je .klt_2 |
cmp [key_r2],2 |
je .klt_3 |
jmp still |
.klt_1: |
mov al,[lngcrc1] |
sub al,1 |
mov [key_r],al |
jmp alted |
.klt_2: |
mov al,[lngcrc2] |
sub al,1 |
mov [key_r],al |
jmp alted |
.klt_3: |
mov al,[lngcrc3] |
sub al,1 |
mov [key_r],al |
jmp alted |
ret |
alter: |
cmp [key_r],0 |
je .alt_1 |
cmp [key_r],1 |
je .alt_2 |
cmp [key_r],2 |
je .alt_3 |
cmp [key_r],3 |
je .alt_4 |
cmp [key_r],4 |
je .alt_5 |
cmp [key_r],5 |
je .alt_6 |
cmp [key_r],6 |
je .alt_7 |
.alt_1: |
mov al,[altlng1] |
cmp al,0 |
je .exit |
sub al,1 |
mov [key_r],al |
jmp alted |
.alt_2: |
mov al,[altlng2] |
cmp al,0 |
je .exit |
sub al,1 |
mov [key_r],al |
jmp alted |
.alt_3: |
mov al,[altlng3] |
cmp al,0 |
je .exit |
sub al,1 |
mov [key_r],al |
jmp alted |
.alt_4: |
mov al,[altlng4] |
cmp al,0 |
je .exit |
sub al,1 |
mov [key_r],al |
jmp alted |
.alt_5: |
mov al,[altlng5] |
cmp al,0 |
je .exit |
sub al,1 |
mov [key_r],al |
jmp alted |
.alt_6: |
mov al,[altlng6] |
cmp al,0 |
je .exit |
sub al,1 |
mov [key_r],al |
jmp alted |
.alt_7: |
mov al,[altlng7] |
cmp al,0 |
je .exit |
sub al,1 |
mov [key_r],al |
jmp alted |
.exit: |
ret |
alted: |
cmp [key_r],0 |
je alt_1 |
cmp [key_r],1 |
je alt_2 |
cmp [key_r],2 |
je alt_3 |
cmp [key_r],3 |
je alt_4 |
cmp [key_r],4 |
je alt_5 |
cmp [key_r],5 |
je alt_6 |
cmp [key_r],6 |
je alt_7 |
ret |
alt_1: |
mov [point],0 |
mcall 70,get_key |
mov eax,21 ; english 0 |
mov ebx,2 |
mov ecx,1 |
mov edx,en_keymap |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_shift |
mcall |
mov eax,21 |
mov ecx,9 |
mov edx,1 |
mcall |
ret |
alt_2: |
mov [point],384 |
mcall 70,get_key |
mov eax,21 ; russian |
mov ebx,2 |
mov ecx,1 |
mov edx,en_keymap |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_shift |
mcall |
mov eax,21 |
mov ecx,9 |
mov edx,2 |
mcall |
ret |
alt_3: |
mov [point],768 |
mcall 70,get_key |
mov eax,21 ; german |
mov ebx,2 |
mov ecx,1 |
mov edx,en_keymap |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_shift |
mcall |
mov eax,21 |
mov ecx,9 |
mov edx,3 |
mcall |
ret |
alt_4: |
mov [point],1152 |
mcall 70,get_key |
mov eax,21 ;french |
mov ebx,2 |
mov ecx,1 |
mov edx,en_keymap |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_shift |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_alt |
mcall |
mov eax,21 |
mov ecx,9 |
mov edx,4 |
mcall |
ret |
alt_5: |
mov [point],1536 |
mcall 70,get_key |
mov eax,21 ; finnish |
mov ebx,2 |
mov ecx,1 |
mov edx,en_keymap |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_shift |
mcall |
mov eax,21 |
mov ecx,9 |
mov edx,5 |
mcall |
ret |
alt_6: |
mov [point],1920 |
mcall 70,get_key |
mov eax,21 ; estonian |
mov ebx,2 |
mov ecx,1 |
mov edx,en_keymap |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_shift |
mcall |
mov eax,21 |
mov ecx,9 |
mov edx,6 |
mcall |
ret |
alt_7: |
mov [point],2304 |
mcall 70,get_key |
mov eax,21 ; Ukrainian |
mov ebx,2 |
mov ecx,1 |
mov edx,en_keymap |
mcall |
mov eax,21 |
inc ecx |
mov edx,en_keymap_shift |
mcall |
mov eax,21 |
mov ecx,9 |
mov edx,7 |
mcall |
ret |
en_keymap: |
rb 128 |
en_keymap_shift: |
rb 128 |
en_keymap_alt: |
rb 128 |
key_r db 0 |
key_r2 db 0 |
key_r3 db 0 |
inicont db 0 |
firini db 0 |
lngcrc1 db 0 |
lngcrc2 db 0 |
lngcrc3 db 0 |
altlng1 db 0 |
altlng2 db 0 |
altlng3 db 0 |
altlng4 db 0 |
altlng5 db 0 |
altlng6 db 0 |
altlng7 db 0 |
altlng8 db 0 |
altlng9 db 0 |
altlng0 db 0 |
get_key: |
dd 0 |
point dd 0 |
dd 0 |
dd 384 |
dd en_keymap |
db 0 |
dd key_file |
get_ini: |
dd 0 |
point2 dd 0 |
dd 0 |
dd 1 |
dd inicont |
db 0 |
dd ini_file |
key_file: db '/rd/1/keymap.key',0 |
ini_file: db '/rd/1/lang.ini',0 |