Subversion Repositories Kolibri OS

Rev

Rev 2479 | Rev 2619 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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