Subversion Repositories Kolibri OS

Rev

Details | 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
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