Subversion Repositories Kolibri OS

Rev

Rev 870 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
870 barsuk 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
2479 mario79 84
    mov  edx,current_keymap
870 barsuk 85
    mcall
86
    mov  eax,21
87
    inc  ecx
2479 mario79 88
    mov  edx,current_keymap_shift
870 barsuk 89
    mcall
90
    mov  eax,21
91
    inc  ecx
2479 mario79 92
    mov  edx,current_keymap_alt
870 barsuk 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
    mov  eax,21       ; english     0
215
    mov  ebx,2
216
    mov  ecx,1
2479 mario79 217
    mov  edx,current_keymap
870 barsuk 218
    mcall
219
    mov  eax,21
220
    inc  ecx
2479 mario79 221
    mov  edx,current_keymap_shift
870 barsuk 222
    mcall
223
    mov  eax,21
224
    mov  ecx,9
2479 mario79 225
    mov  edx,1	; 1 - english
870 barsuk 226
    mcall
227
ret
228
alt_2:
2479 mario79 229
    mov    [point],1536
870 barsuk 230
    mcall  70,get_key
2479 mario79 231
    mov  eax,21       ; finnish
870 barsuk 232
    mov  ebx,2
233
    mov  ecx,1
2479 mario79 234
    mov  edx,current_keymap
870 barsuk 235
    mcall
236
    mov  eax,21
237
    inc  ecx
2479 mario79 238
    mov  edx,current_keymap_shift
870 barsuk 239
    mcall
240
    mov  eax,21
241
    mov  ecx,9
2479 mario79 242
    mov  edx,2	; 2 - finnish
870 barsuk 243
    mcall
244
ret
245
alt_3:
246
    mov    [point],768
247
    mcall  70,get_key
248
    mov  eax,21       ; german
249
    mov  ebx,2
250
    mov  ecx,1
2479 mario79 251
    mov  edx,current_keymap
870 barsuk 252
    mcall
253
    mov  eax,21
254
    inc  ecx
2479 mario79 255
    mov  edx,current_keymap_shift
870 barsuk 256
    mcall
257
    mov  eax,21
258
    mov  ecx,9
2479 mario79 259
    mov  edx,3	; 3 - german
870 barsuk 260
    mcall
261
ret
262
alt_4:
2479 mario79 263
    mov    [point],384
870 barsuk 264
    mcall  70,get_key
2479 mario79 265
    mov  eax,21       ; russian
870 barsuk 266
    mov  ebx,2
267
    mov  ecx,1
2479 mario79 268
    mov  edx,current_keymap
870 barsuk 269
    mcall
270
    mov  eax,21
271
    inc  ecx
2479 mario79 272
    mov  edx,current_keymap_shift
870 barsuk 273
    mcall
274
    mov  eax,21
275
    mov  ecx,9
2479 mario79 276
    mov  edx,4	; 4 - russian
870 barsuk 277
    mcall
278
ret
279
alt_5:
2479 mario79 280
    mov    [point],1152
870 barsuk 281
    mcall  70,get_key
2479 mario79 282
    mov  eax,21 	 ;french
870 barsuk 283
    mov  ebx,2
284
    mov  ecx,1
2479 mario79 285
    mov  edx,current_keymap
870 barsuk 286
    mcall
287
    mov  eax,21
288
    inc  ecx
2479 mario79 289
    mov  edx,current_keymap_shift
870 barsuk 290
    mcall
291
    mov  eax,21
2479 mario79 292
    inc  ecx
293
    mov  edx,current_keymap_alt
294
    mcall
295
    mov  eax,21
870 barsuk 296
    mov  ecx,9
2479 mario79 297
    mov  edx,5	; 5 - french
870 barsuk 298
    mcall
299
ret
300
alt_6:
301
    mov    [point],1920
302
    mcall  70,get_key
303
    mov  eax,21       ; estonian
304
    mov  ebx,2
305
    mov  ecx,1
2479 mario79 306
    mov  edx,current_keymap
870 barsuk 307
    mcall
308
    mov  eax,21
309
    inc  ecx
2479 mario79 310
    mov  edx,current_keymap_shift
870 barsuk 311
    mcall
312
    mov  eax,21
313
    mov  ecx,9
2479 mario79 314
    mov  edx,6	; 6 - estonian
870 barsuk 315
    mcall
316
ret
317
alt_7:
318
    mov    [point],2304
319
    mcall  70,get_key
2479 mario79 320
    mov  eax,21       ; ukrainian
870 barsuk 321
    mov  ebx,2
322
    mov  ecx,1
2479 mario79 323
    mov  edx,current_keymap
870 barsuk 324
    mcall
325
    mov  eax,21
326
    inc  ecx
2479 mario79 327
    mov  edx,current_keymap_shift
870 barsuk 328
    mcall
329
    mov  eax,21
330
    mov  ecx,9
2479 mario79 331
    mov  edx,7	; 7 - ukrainian
870 barsuk 332
    mcall
333
ret
2479 mario79 334
current_keymap:
870 barsuk 335
	  rb	  128
2479 mario79 336
current_keymap_shift:
870 barsuk 337
	  rb	  128
2479 mario79 338
current_keymap_alt:
870 barsuk 339
	  rb	  128
340
key_r	  db	  0
341
key_r2	  db	  0
342
key_r3	  db	  0
343
inicont   db	  0
344
firini	  db	  0
345
lngcrc1   db	  0
346
lngcrc2   db	  0
347
lngcrc3   db	  0
348
altlng1   db	  0
349
altlng2   db	  0
350
altlng3   db	  0
351
altlng4   db	  0
352
altlng5   db	  0
353
altlng6   db	  0
354
altlng7   db	  0
355
altlng8   db	  0
356
altlng9   db	  0
357
altlng0   db	  0
358
get_key:
359
	  dd	  0
360
point	  dd	  0
361
	  dd	  0
362
	  dd	  384
2479 mario79 363
	  dd	  current_keymap
870 barsuk 364
	  db	  0
365
	  dd	  key_file
366
get_ini:
367
	  dd	  0
368
point2	  dd	  0
369
	  dd	  0
370
	  dd	  1
371
	  dd	  inicont
372
	  db	  0
373
	  dd	  ini_file
374
 
375
key_file: db	  '/rd/1/keymap.key',0
376
ini_file: db	  '/rd/1/lang.ini',0