Rev 2481 | Rev 3221 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
31 | halyavin | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
||
3 | ;; DEVICE SETUP ;; |
||
4 | ;; ;; |
||
5 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
2481 | mario79 | 6 | ; version: 1.14 |
7 | ; last update: 20/03/2012 |
||
8 | ; changed by: Marat Zakiyanov aka Mario79, aka Mario |
||
9 | ; changes: optimisations and code refactoring |
||
10 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 11 | ; Authors: Ville - original version |
12 | ; A. Ivushkin - autostart (w launcher) |
||
13 | ; M. Lisovin - added many feauters (apply all, save all, set time...) |
||
14 | ; I. Poddubny - fixed russian keymap |
||
127 | mario79 | 15 | ;14/08/06 Mario79 - added regulation of mouse features |
2478 | mario79 | 16 | ;------------------------------------------------------------------------------- |
17 | use32 |
||
18 | org 0x0 |
||
31 | halyavin | 19 | |
2478 | mario79 | 20 | db 'MENUET01' ; 8 byte identifier |
21 | dd 0x01 ; header version |
||
22 | dd START ; pointer to program start |
||
23 | dd IM_END ; size of image |
||
24 | dd I_END ;0x4000 ; reguired amount of memory |
||
25 | dd stack_area ; stack pointer (esp) |
||
26 | dd I_PARAM ; boot parameters |
||
27 | dd 0x0 ; path |
||
28 | ;------------------------------------------------------------------------------- |
||
29 | include '..\..\..\macros.inc' |
||
30 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 31 | LLL equ (56+3) |
32 | BBB equ 25 |
||
2478 | mario79 | 33 | ;------------------------------------------------------------------------------- |
31 | halyavin | 34 | apply_all: |
2478 | mario79 | 35 | call _pci_acc ;12 |
36 | call _syslang ;5 |
||
37 | call _keyboard ;2 |
||
38 | call _mouse_speed |
||
39 | call _mouse_delay |
||
40 | ret |
||
31 | halyavin | 41 | ;------------------------------------------------------------------------------- |
2299 | hidnplayr | 42 | apply_all_and_exit: |
2478 | mario79 | 43 | mcall 70,read_fileinfo |
2299 | hidnplayr | 44 | call apply_all |
45 | jmp close |
||
2478 | mario79 | 46 | ;------------------------------------------------------------------------------- |
2299 | hidnplayr | 47 | set_language_and_exit: |
2478 | mario79 | 48 | mcall 26,2,9 |
49 | cmp eax,1 |
||
2299 | hidnplayr | 50 | je russian |
31 | halyavin | 51 | |
2299 | hidnplayr | 52 | xor eax,eax |
2478 | mario79 | 53 | ;-------------------------------------- |
2299 | hidnplayr | 54 | set_lang_now: |
2478 | mario79 | 55 | mov [keyboard],eax |
2299 | hidnplayr | 56 | call _keyboard |
57 | jmp close |
||
2478 | mario79 | 58 | ;-------------------------------------- |
2299 | hidnplayr | 59 | russian: |
2478 | mario79 | 60 | mov eax,3 |
2299 | hidnplayr | 61 | jmp set_lang_now |
2478 | mario79 | 62 | ;------------------------------------------------------------------------------- |
2299 | hidnplayr | 63 | set_syslanguage_and_exit: |
2478 | mario79 | 64 | mcall 26,5 |
2299 | hidnplayr | 65 | cmp eax,6 |
66 | jne temp |
||
67 | xor eax,eax |
||
2478 | mario79 | 68 | ;-------------------------------------- |
2299 | hidnplayr | 69 | temp: |
70 | inc eax |
||
2478 | mario79 | 71 | mov [syslang],eax |
2299 | hidnplayr | 72 | call _syslang |
73 | jmp close |
||
2478 | mario79 | 74 | ;------------------------------------------------------------------------------- |
31 | halyavin | 75 | get_setup_values: |
2478 | mario79 | 76 | mcall 26,2,9 |
2299 | hidnplayr | 77 | dec eax |
2478 | mario79 | 78 | mov [keyboard],eax |
2299 | hidnplayr | 79 | |
2478 | mario79 | 80 | mcall 26,5 |
81 | mov [syslang],eax |
||
2299 | hidnplayr | 82 | |
2478 | mario79 | 83 | mcall 26,11 |
84 | mov [lba_read],eax |
||
2299 | hidnplayr | 85 | |
2478 | mario79 | 86 | mcall 26,12 |
87 | mov [pci_acc],eax |
||
2299 | hidnplayr | 88 | |
2478 | mario79 | 89 | mcall 18,19,0 |
90 | mov [mouse_speed],eax |
||
2299 | hidnplayr | 91 | |
2478 | mario79 | 92 | mcall 18,19,2 |
93 | mov [mouse_delay],eax |
||
2299 | hidnplayr | 94 | ret |
2478 | mario79 | 95 | ;------------------------------------------------------------------------------- |
31 | halyavin | 96 | START: |
2481 | mario79 | 97 | mov eax,I_PARAM |
98 | cmp [eax],dword 'SLAN' |
||
2299 | hidnplayr | 99 | je set_syslanguage_and_exit |
31 | halyavin | 100 | |
2481 | mario79 | 101 | cmp [eax],dword 'LANG' |
2299 | hidnplayr | 102 | je set_language_and_exit |
31 | halyavin | 103 | |
2481 | mario79 | 104 | cmp [eax],dword 'BOOT' |
2299 | hidnplayr | 105 | je apply_all_and_exit |
31 | halyavin | 106 | |
2299 | hidnplayr | 107 | call get_setup_values |
108 | call loadtxt |
||
2478 | mario79 | 109 | ;------------------------------------------------------------------------------- |
31 | halyavin | 110 | red: |
2478 | mario79 | 111 | call draw_window |
112 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 113 | still: |
2478 | mario79 | 114 | sysevent: |
115 | mcall 23,8 ; wait here for event with timeout |
||
116 | cmp eax,1 |
||
2299 | hidnplayr | 117 | jz red |
31 | halyavin | 118 | |
2478 | mario79 | 119 | cmp eax,2 |
2299 | hidnplayr | 120 | jz key |
31 | halyavin | 121 | |
2478 | mario79 | 122 | cmp eax,3 |
2299 | hidnplayr | 123 | jz button |
31 | halyavin | 124 | |
2299 | hidnplayr | 125 | jmp still |
2478 | mario79 | 126 | ;------------------------------------------------------------------------------- |
127 | key: |
||
128 | mcall 2 |
||
2299 | hidnplayr | 129 | jmp still |
2478 | mario79 | 130 | ;------------------------------------------------------------------------------- |
131 | button: |
||
132 | mcall 17 |
||
133 | cmp ah,99 |
||
134 | jne nosaveall |
||
135 | mcall 70,save_fileinfo |
||
136 | jmp still |
||
137 | ;-------------------------------------- |
||
31 | halyavin | 138 | nosaveall: |
2478 | mario79 | 139 | cmp ah,100 |
140 | jne no_apply_all |
||
141 | call apply_all |
||
142 | jmp still |
||
143 | ;-------------------------------------- |
||
31 | halyavin | 144 | no_apply_all: |
2478 | mario79 | 145 | cmp ah,1 ; CLOSE APPLICATION |
146 | jne no_close |
||
147 | ;-------------------------------------- |
||
31 | halyavin | 148 | close: |
2478 | mario79 | 149 | or eax,-1 |
150 | mcall |
||
151 | ;-------------------------------------- |
||
152 | no_close: |
||
153 | cmp ah,4 ; SET KEYBOARD |
||
154 | jnz nokm |
||
155 | mov eax,[keyboard] |
||
156 | test eax,eax |
||
157 | je downuplbl |
||
158 | dec eax |
||
159 | jmp nodownup |
||
160 | ;-------------------------------------- |
||
161 | downuplbl: |
||
162 | mov eax,5 |
||
163 | ;-------------------------------------- |
||
164 | nodownup: |
||
165 | mov [keyboard],eax |
||
166 | call draw_infotext |
||
167 | ;-------------------------------------- |
||
168 | nokm: |
||
169 | cmp ah,5 |
||
170 | jnz nokp |
||
171 | mov eax,[keyboard] |
||
172 | cmp eax,5 |
||
173 | je updownlbl |
||
174 | inc eax |
||
175 | jmp noupdown |
||
176 | ;-------------------------------------- |
||
177 | updownlbl: |
||
178 | xor eax,eax |
||
179 | ;-------------------------------------- |
||
180 | noupdown: |
||
181 | mov [keyboard],eax |
||
182 | call draw_infotext |
||
183 | ;-------------------------------------- |
||
184 | nokp: |
||
185 | cmp ah,92 ; SET LBA READ |
||
186 | jne no_lba_d |
||
187 | ;-------------------------------------- |
||
188 | slbal: |
||
189 | btc [lba_read],0 |
||
190 | call draw_infotext |
||
191 | jmp still |
||
192 | ;-------------------------------------- |
||
193 | no_lba_d: |
||
194 | cmp ah,93 |
||
195 | jne no_lba_i |
||
196 | jmp slbal |
||
197 | ;-------------------------------------- |
||
198 | no_lba_i: |
||
199 | cmp ah,91 |
||
200 | jne no_set_lba_read |
||
201 | call _lba_read |
||
202 | jmp still |
||
203 | ;-------------------------------------- |
||
204 | no_set_lba_read: |
||
205 | cmp ah,102 ; SET PCI ACCESS |
||
206 | jne no_pci_d |
||
207 | ;-------------------------------------- |
||
208 | pcip: |
||
209 | btc [pci_acc],0 |
||
210 | call draw_infotext |
||
211 | jmp still |
||
212 | ;-------------------------------------- |
||
213 | no_pci_d: |
||
214 | cmp ah,103 |
||
215 | jne no_pci_i |
||
216 | jmp pcip |
||
217 | ;-------------------------------------- |
||
218 | no_pci_i: |
||
219 | cmp ah,101 |
||
220 | jne no_set_pci_acc |
||
221 | call _pci_acc |
||
222 | jmp still |
||
223 | ;-------------------------------------- |
||
224 | no_set_pci_acc: |
||
225 | cmp ah,42 ; SET SYSTEM LANGUAGE BASE |
||
226 | jnz nosysm |
||
227 | mov eax,[syslang] |
||
228 | dec eax |
||
229 | jz still |
||
230 | mov [syslang],eax |
||
231 | call draw_infotext |
||
232 | ;-------------------------------------- |
||
233 | nosysm: |
||
234 | cmp ah,43 |
||
235 | jnz nosysp |
||
236 | mov eax,[syslang] |
||
237 | cmp eax,6 |
||
238 | je nosysp |
||
239 | inc eax |
||
240 | mov [syslang],eax |
||
241 | call draw_infotext |
||
242 | ;-------------------------------------- |
||
243 | nosysp: |
||
244 | cmp ah,41 |
||
245 | jnz nosyss |
||
246 | call _syslang |
||
247 | call cleantxt |
||
248 | call loadtxt |
||
249 | call draw_window |
||
250 | ;-------------------------------------- |
||
251 | nosyss: |
||
252 | cmp ah,132 ; SET MOUSE SPEED |
||
253 | jnz .nominus |
||
254 | mov eax,[mouse_speed] |
||
255 | sub eax,2 |
||
256 | cmp eax,9 |
||
257 | jb @f |
||
258 | mov eax,8 |
||
259 | ;-------------------------------------- |
||
120 | mario79 | 260 | @@: |
2478 | mario79 | 261 | inc eax |
262 | mov [mouse_speed],eax |
||
263 | call draw_infotext |
||
264 | ;-------------------------------------- |
||
265 | .nominus: |
||
266 | cmp ah,133 |
||
267 | jnz .noplus |
||
268 | mov eax,[mouse_speed] |
||
269 | cmp eax,9 |
||
270 | jb @f |
||
271 | mov eax,0 |
||
272 | ;-------------------------------------- |
||
120 | mario79 | 273 | @@: |
2478 | mario79 | 274 | inc eax |
275 | mov [mouse_speed],eax |
||
276 | call draw_infotext |
||
277 | ;-------------------------------------- |
||
278 | .noplus: |
||
279 | cmp ah,131 |
||
280 | jnz .noapply |
||
281 | call _mouse_speed |
||
282 | ;-------------------------------------- |
||
283 | .noapply: |
||
284 | mousedelay: |
||
285 | cmp ah,142 ; SET MOUSE DELAY |
||
286 | jnz .nominus |
||
287 | mov eax,[mouse_delay] |
||
288 | sub eax,2 |
||
289 | cmp eax,0xfff |
||
290 | jb @f |
||
291 | mov eax,0xffe |
||
292 | ;-------------------------------------- |
||
127 | mario79 | 293 | @@: |
2478 | mario79 | 294 | inc eax |
295 | mov [mouse_delay],eax |
||
296 | call draw_infotext |
||
297 | ;-------------------------------------- |
||
298 | .nominus: |
||
299 | cmp ah,143 |
||
300 | jnz .noplus |
||
301 | mov eax,[mouse_delay] |
||
302 | cmp eax,0xfff |
||
303 | jb @f |
||
304 | mov eax,0 |
||
305 | ;-------------------------------------- |
||
127 | mario79 | 306 | @@: |
2478 | mario79 | 307 | inc eax |
308 | mov [mouse_delay],eax |
||
309 | call draw_infotext |
||
310 | ;-------------------------------------- |
||
311 | .noplus: |
||
312 | cmp ah,141 |
||
313 | jnz .noapply |
||
314 | call _mouse_delay |
||
315 | ;-------------------------------------- |
||
316 | .noapply: |
||
317 | cmp ah,3 ; SET KEYMAP |
||
318 | jne still |
||
319 | call _keyboard |
||
320 | jmp still |
||
321 | ;------------------------------------------------------------------------------- |
||
322 | _keyboard: |
||
323 | cmp [keyboard],0 ; english |
||
324 | jnz nosetkeyle |
||
325 | |||
326 | mcall 21,2,1,en_keymap |
||
327 | |||
328 | inc ecx |
||
329 | mcall 21,,,en_keymap_shift |
||
127 | mario79 | 330 | |
2478 | mario79 | 331 | mcall 21,,9,1 |
332 | call alt_gen |
||
333 | ;-------------------------------------- |
||
334 | nosetkeyle: |
||
335 | cmp [keyboard],1 ; finnish |
||
336 | jnz nosetkeylfi |
||
31 | halyavin | 337 | |
2478 | mario79 | 338 | mcall 21,2,1,fi_keymap |
339 | |||
340 | inc ecx |
||
341 | mcall 21,,,fi_keymap_shift |
||
31 | halyavin | 342 | |
2478 | mario79 | 343 | mcall 21,,9,2 |
344 | call alt_gen |
||
345 | ;-------------------------------------- |
||
346 | nosetkeylfi: |
||
347 | cmp [keyboard],2 ; german |
||
348 | jnz nosetkeylge |
||
31 | halyavin | 349 | |
2478 | mario79 | 350 | mcall 21,2,1,ge_keymap |
351 | |||
352 | inc ecx |
||
353 | mcall 21,,,ge_keymap_shift |
||
31 | halyavin | 354 | |
2478 | mario79 | 355 | mcall 21,,9,3 |
356 | call alt_gen |
||
357 | ;-------------------------------------- |
||
358 | nosetkeylge: |
||
359 | cmp [keyboard],3 ; russian |
||
360 | jnz nosetkeylru |
||
361 | |||
362 | mcall 21,2,1,ru_keymap |
||
363 | |||
364 | inc ecx |
||
365 | mcall 21,,,ru_keymap_shift |
||
31 | halyavin | 366 | |
2478 | mario79 | 367 | mcall 21,,9,4 |
368 | call alt_gen |
||
369 | ;-------------------------------------- |
||
370 | nosetkeylru: |
||
371 | cmp [keyboard],4 ;french |
||
372 | jnz nosetkeylfr |
||
31 | halyavin | 373 | |
2478 | mario79 | 374 | mcall 21,2,1,fr_keymap |
375 | |||
376 | inc ecx |
||
377 | mcall 21,,,fr_keymap_shift |
||
31 | halyavin | 378 | |
2478 | mario79 | 379 | inc ecx |
380 | mcall 21,,,fr_keymap_alt_gr |
||
31 | halyavin | 381 | |
2478 | mario79 | 382 | mcall 21,,9,5 |
383 | ;-------------------------------------- |
||
384 | nosetkeylfr: |
||
385 | cmp [keyboard],5 ; estonian |
||
386 | jnz nosetkeylet |
||
31 | halyavin | 387 | |
2478 | mario79 | 388 | mcall 21,2,1,et_keymap |
389 | |||
390 | inc ecx |
||
391 | mcall 21,,,et_keymap_shift |
||
31 | halyavin | 392 | |
2478 | mario79 | 393 | mcall 21,,9,6 |
394 | call alt_gen |
||
395 | ;-------------------------------------- |
||
396 | nosetkeylet: |
||
397 | ret |
||
398 | ;------------------------------------------------------------------------------- |
||
399 | alt_gen: |
||
400 | mcall 21,,3,alt_general |
||
401 | ret |
||
402 | ;------------------------------------------------------------------------------- |
||
403 | draw_buttons: |
||
404 | pusha |
||
405 | shl ecx,16 |
||
406 | add ecx,12 |
||
407 | mcall 8,<(350-57),(46+BBB)> |
||
31 | halyavin | 408 | |
2478 | mario79 | 409 | inc edx |
410 | mcall ,<(350-85),9> |
||
31 | halyavin | 411 | |
2478 | mario79 | 412 | inc edx |
413 | mcall ,<(350-73),9> |
||
31 | halyavin | 414 | |
2478 | mario79 | 415 | popa |
416 | ret |
||
417 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 418 | ; ******************************************** |
419 | ; ******* WINDOW DEFINITIONS AND DRAW ******* |
||
420 | ; ******************************************** |
||
421 | draw_window: |
||
2478 | mario79 | 422 | pusha |
423 | mcall 12,1 |
||
31 | halyavin | 424 | |
2478 | mario79 | 425 | xor eax,eax ; DRAW WINDOW |
426 | xor esi,esi |
||
427 | mcall ,<40,(355+BBB)>,<40,(12*15)>,0xB4111199,,title |
||
2481 | mario79 | 428 | |
429 | mcall 9,procinfo,-1 |
||
430 | |||
431 | mov eax,[ebx+70] ;status of window |
||
432 | test eax,100b |
||
433 | jne .end |
||
31 | halyavin | 434 | |
2478 | mario79 | 435 | mcall 8,<(350-85),100>,<(5+14*8),12>,100,0x005588dd ; APPLY ALL |
31 | halyavin | 436 | |
2478 | mario79 | 437 | add ecx,16*65536 ; SAVE ALL |
438 | dec edx |
||
439 | mcall |
||
31 | halyavin | 440 | |
2478 | mario79 | 441 | mov esi,0x5580c0 |
31 | halyavin | 442 | |
2478 | mario79 | 443 | mov edx,41 |
444 | mov ecx,5+0*8 |
||
445 | call draw_buttons |
||
31 | halyavin | 446 | |
2478 | mario79 | 447 | mov edx,3 |
448 | mov ecx,5+2*8 |
||
449 | call draw_buttons |
||
31 | halyavin | 450 | |
2478 | mario79 | 451 | mov edx,91 |
452 | mov ecx,5+4*8 |
||
453 | call draw_buttons |
||
31 | halyavin | 454 | |
2478 | mario79 | 455 | mov edx,101 |
456 | mov ecx,5+6*8 |
||
457 | call draw_buttons |
||
31 | halyavin | 458 | |
2478 | mario79 | 459 | mov edx,131 |
460 | mov ecx,5+8*8 |
||
461 | call draw_buttons |
||
31 | halyavin | 462 | |
2478 | mario79 | 463 | mov edx,141 |
464 | mov ecx,5+10*8 |
||
465 | call draw_buttons |
||
120 | mario79 | 466 | |
2478 | mario79 | 467 | call draw_infotext |
2481 | mario79 | 468 | .end: |
2478 | mario79 | 469 | mcall 12,2 |
470 | popa |
||
471 | ret |
||
472 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 473 | draw_infotext: |
2478 | mario79 | 474 | pusha |
475 | mov eax,[keyboard] ; KEYBOARD |
||
476 | test eax,eax |
||
477 | jnz noen |
||
478 | mov [text00+LLL*1+28],dword 'ENGL' |
||
479 | mov [text00+LLL*1+32],dword 'ISH ' |
||
480 | ;-------------------------------------- |
||
481 | noen: |
||
482 | cmp eax,1 |
||
483 | jnz nofi |
||
484 | mov [text00+LLL*1+28],dword 'FINN' |
||
485 | mov [text00+LLL*1+32],dword 'ISH ' |
||
486 | ;-------------------------------------- |
||
487 | nofi: |
||
488 | cmp eax,2 |
||
489 | jnz noge |
||
490 | mov [text00+LLL*1+28],dword 'GERM' |
||
491 | mov [text00+LLL*1+32],dword 'AN ' |
||
492 | ;-------------------------------------- |
||
493 | noge: |
||
494 | cmp eax,3 |
||
495 | jnz nogr |
||
496 | mov [text00+LLL*1+28],dword 'RUSS' |
||
497 | mov [text00+LLL*1+32],dword 'IAN ' |
||
498 | ;-------------------------------------- |
||
499 | nogr: |
||
500 | cmp eax,4 |
||
501 | jnz nofr |
||
502 | mov [text00+LLL*1+28],dword 'FREN' |
||
503 | mov [text00+LLL*1+32],dword 'CH ' |
||
504 | ;-------------------------------------- |
||
505 | nofr: |
||
506 | cmp eax,5 |
||
507 | jnz noet |
||
508 | mov [text00+LLL*1+28],dword 'ESTO' |
||
509 | mov [text00+LLL*1+32],dword 'NIAN' |
||
510 | ;-------------------------------------- |
||
511 | noet: |
||
512 | mov eax,[syslang] ; SYSTEM LANGUAGE |
||
513 | dec eax |
||
514 | test eax,eax |
||
515 | jnz noen5 |
||
516 | mov [text00+LLL*0+28],dword 'ENGL' |
||
517 | mov [text00+LLL*0+32],dword 'ISH ' |
||
518 | ;-------------------------------------- |
||
519 | noen5: |
||
520 | cmp eax,1 |
||
521 | jnz nofi5 |
||
522 | mov [text00+LLL*0+28],dword 'FINN' |
||
523 | mov [text00+LLL*0+32],dword 'ISH ' |
||
524 | ;-------------------------------------- |
||
525 | nofi5: |
||
526 | cmp eax,2 |
||
527 | jnz noge5 |
||
528 | mov [text00+LLL*0+28],dword 'GERM' |
||
529 | mov [text00+LLL*0+32],dword 'AN ' |
||
530 | ;-------------------------------------- |
||
531 | noge5: |
||
532 | cmp eax,3 |
||
533 | jnz nogr5 |
||
534 | mov [text00+LLL*0+28],dword 'RUSS' |
||
535 | mov [text00+LLL*0+32],dword 'IAN ' |
||
536 | ;-------------------------------------- |
||
537 | nogr5: |
||
538 | cmp eax,4 |
||
539 | jne nofr5 |
||
540 | mov [text00+LLL*0+28],dword 'FREN' |
||
541 | mov [text00+LLL*0+32],dword 'CH ' |
||
542 | ;-------------------------------------- |
||
543 | nofr5: |
||
544 | cmp eax,5 |
||
545 | jne noet5 |
||
546 | mov [text00+LLL*0+28],dword 'ESTO' |
||
547 | mov [text00+LLL*0+32],dword 'NIAN' |
||
548 | ;-------------------------------------- |
||
549 | noet5: |
||
550 | mov eax,[lba_read] |
||
551 | call onoff ; LBA READ |
||
552 | mov [text00+LLL*2+28],ebx |
||
31 | halyavin | 553 | |
2478 | mario79 | 554 | mov eax,[pci_acc] |
555 | call onoff ; PCI ACCESS |
||
556 | mov [text00+LLL*3+28],ebx |
||
31 | halyavin | 557 | |
2478 | mario79 | 558 | mov eax,[mouse_speed] ; MOUSE SPEED |
559 | add al,48 |
||
560 | mov [text00+LLL*4+28],al |
||
31 | halyavin | 561 | |
2478 | mario79 | 562 | mov eax,[mouse_delay] |
563 | mov esi,text00+LLL*5+32 |
||
564 | call hexconvert ; MOUSE DELAY |
||
565 | call text_out |
||
566 | popa |
||
567 | ret |
||
568 | ;------------------------------------------------------------------------------- |
||
304 | diamond | 569 | text_out: |
2478 | mario79 | 570 | mcall 13,<165,85>,<0,(12*8)>,0x80111199 ;0x80111199-19 |
31 | halyavin | 571 | |
2478 | mario79 | 572 | mov edx,text00 |
573 | mov ebx,3*65536+7 |
||
574 | mov eax,4 |
||
575 | mov ecx,0xffffff |
||
576 | mov esi,LLL |
||
577 | mov ebp,text1_strings |
||
578 | ;-------------------------------------- |
||
579 | newline: |
||
580 | mcall |
||
581 | add ebx,8+8 |
||
582 | add edx,esi |
||
583 | dec ebp |
||
584 | jnz newline |
||
31 | halyavin | 585 | |
2478 | mario79 | 586 | mov ebp,text2_strings |
587 | add ebx,8+8 |
||
588 | ;-------------------------------------- |
||
589 | @@: |
||
590 | mcall |
||
591 | add ebx,8+8 |
||
592 | add edx,esi |
||
593 | dec ebp |
||
594 | jnz @b |
||
595 | ret |
||
596 | ;------------------------------------------------------------------------------- |
||
597 | hexconvert: ;converting dec to hex in ascii |
||
598 | xor ebx,ebx |
||
599 | mov bl,al |
||
600 | and bl,15 |
||
601 | add ebx,hex |
||
602 | mov cl,[ebx] |
||
603 | mov [esi],cl |
||
604 | shr eax,4 |
||
605 | xor ebx,ebx |
||
606 | mov bl,al |
||
607 | and bl,15 |
||
608 | add ebx,hex |
||
609 | mov cl,[ebx] |
||
610 | dec esi |
||
611 | mov [esi],cl |
||
612 | shr eax,4 |
||
613 | xor ebx,ebx |
||
614 | mov bl,al |
||
615 | and bl,15 |
||
616 | add ebx,hex |
||
617 | mov cl,[ebx] |
||
618 | dec esi |
||
619 | mov [esi],cl |
||
620 | ret |
||
621 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 622 | onoff: |
2478 | mario79 | 623 | cmp [syslang],4 |
624 | jne norus1 |
||
625 | mov ebx,'ДА ' |
||
626 | cmp eax,1 |
||
627 | je exitsub |
||
628 | mov ebx,'НЕТ ' |
||
629 | ret |
||
630 | ;-------------------------------------- |
||
631 | norus1: |
||
632 | mov ebx,'ON ' |
||
633 | cmp eax,1 |
||
634 | je exitsub |
||
635 | mov ebx,'OFF ' |
||
636 | ;-------------------------------------- |
||
637 | exitsub: |
||
638 | ret |
||
639 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 640 | _lba_read: |
2478 | mario79 | 641 | mcall 21,11,[lba_read] |
642 | ret |
||
643 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 644 | _pci_acc: |
2478 | mario79 | 645 | mcall 21,12,[pci_acc] |
646 | ret |
||
647 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 648 | _syslang: |
2478 | mario79 | 649 | mcall 21,5,[syslang] |
650 | ret |
||
651 | ;------------------------------------------------------------------------------- |
||
127 | mario79 | 652 | _mouse_speed: |
2478 | mario79 | 653 | mcall 18,19,1,[mouse_speed] |
654 | ret |
||
655 | ;------------------------------------------------------------------------------- |
||
127 | mario79 | 656 | _mouse_delay: |
2478 | mario79 | 657 | mcall 18,19,3,[mouse_delay] |
658 | ret |
||
659 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 660 | loadtxt: |
2478 | mario79 | 661 | mov edi,text00 |
662 | mov ecx,LLL*(text1_strings + text2_strings)/4 |
||
663 | cmp [syslang],4 |
||
664 | jne norus |
||
31 | halyavin | 665 | |
2478 | mario79 | 666 | mov esi,textrus |
667 | jmp sload |
||
668 | ;-------------------------------------- |
||
669 | norus: |
||
670 | mov esi,texteng |
||
671 | ;-------------------------------------- |
||
672 | sload: |
||
673 | rep movsd |
||
674 | ret |
||
675 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 676 | cleantxt: |
2478 | mario79 | 677 | xor eax,eax |
678 | mov ecx,LLL*(text1_strings + text2_strings)/4 |
||
679 | cld |
||
680 | mov edi,text00 |
||
681 | rep stosd |
||
682 | mov [text00+1711],byte 'x' |
||
683 | ret |
||
684 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 685 | ; DATA AREA |
2299 | hidnplayr | 686 | count: db 0x0 |
2478 | mario79 | 687 | blinkpar: dd 0x0 |
688 | time: dw 0x0 |
||
689 | date: dd 0x0 |
||
690 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 691 | textrus: |
2478 | mario79 | 692 | db 'Язык системы : ENGLISH - + Применить' |
693 | db 'Раскладка клавиатуры : ENGLISH - + Применить' |
||
694 | db 'Включить LBA : OFF - + Применить' |
||
695 | db 'Доступ к шине PCI : OFF - + Применить' |
||
696 | db 'Скорость курсора мыши : 1 - + Применить' |
||
697 | db 'Задержка ускорения мыши : 0x00a - + Применить' |
||
698 | |||
699 | db 'ВНИМАНИЕ: Применить все ' |
||
700 | db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ Сохранить все ' |
||
701 | ;------------------------------------------------------------------------------- |
||
31 | halyavin | 702 | texteng: |
2478 | mario79 | 703 | db 'SYSTEM LANGUAGE : ENGLISH - + APPLY ' |
704 | db 'KEYBOARD LAYOUT : ENGLISH - + APPLY ' |
||
705 | db 'LBA READ ENABLED : OFF - + APPLY ' |
||
706 | db 'PCI ACCESS FOR APPL. : OFF - + APPLY ' |
||
707 | db 'Mouse pointer speed : 1 - + APPLY ' |
||
708 | db 'Mouse pointer delay : 0x00a - + APPLY ' |
||
709 | text1_strings = 6 |
||
31 | halyavin | 710 | |
2478 | mario79 | 711 | db 'NOTE: APPLY ALL ' |
712 | db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI SAVE ALL ' |
||
304 | diamond | 713 | text2_strings = 2 |
2478 | mario79 | 714 | ;------------------------------------------------------------------------------- |
2550 | leency | 715 | title db 'System setup',0 |
31 | halyavin | 716 | |
2478 | mario79 | 717 | hex db '0123456789ABCDEF' |
718 | ;------------------------------------------------------------------------------- |
||
2299 | hidnplayr | 719 | include 'keymaps.inc' |
2478 | mario79 | 720 | ;------------------------------------------------------------------------------- |
120 | mario79 | 721 | read_fileinfo: |
2478 | mario79 | 722 | dd 0 |
723 | dd 0 |
||
724 | dd 0 |
||
725 | dd 48 |
||
726 | dd keyboard |
||
727 | db 0 |
||
728 | dd file_name |
||
729 | ;------------------------------------------------------------------------------- |
||
120 | mario79 | 730 | save_fileinfo: |
2478 | mario79 | 731 | dd 2 |
732 | dd 0 |
||
733 | dd 0 |
||
734 | dd 48 |
||
735 | dd keyboard |
||
736 | file_name: db '/sys/setup.dat',0 |
||
737 | ;------------------------------------------------------------------------------- |
||
2319 | mario79 | 738 | ; Note to SVN revision 2299 - some parameters has not used, |
739 | ; but keep the order of the parameter has always needed! |
||
740 | keyboard dd 0x0 |
||
2478 | mario79 | 741 | dd 0 ;midibase - not use, but retained for backward compat. |
742 | dd 0 ;cdbase - not use, but retained for backward compat. |
||
743 | dd 0 ;sb16 - not use, but retained for backward compat. |
||
2319 | mario79 | 744 | syslang dd 0x1 |
2478 | mario79 | 745 | dd 0 ;hdbase - not use, but retained for backward compat. |
746 | dd 0 ;f32p - not use, but retained for backward compat. |
||
747 | dd 0 ;sound_dma - not use, but retained for backward compat. |
||
2319 | mario79 | 748 | lba_read dd 0x1 |
749 | pci_acc dd 0x1 |
||
750 | mouse_speed dd 0x3 |
||
751 | mouse_delay dd 0x10 |
||
752 | ;----------------------------------------------------------------------------- |
||
2478 | mario79 | 753 | IM_END: |
754 | ;----------------------------------------------------------------------------- |
||
755 | align 4 |
||
31 | halyavin | 756 | text00: |
2481 | mario79 | 757 | rb LLL*(text1_strings + text2_strings) |
2478 | mario79 | 758 | ;----------------------------------------------------------------------------- |
759 | align 4 |
||
2481 | mario79 | 760 | I_PARAM: |
761 | procinfo: |
||
762 | rb 1024 |
||
763 | ;----------------------------------------------------------------------------- |
||
764 | align 4 |
||
765 | rb 0x1000 |
||
2478 | mario79 | 766 | stack_area: |
767 | ;----------------------------------------------------------------------------- |
||
31 | halyavin | 768 | I_END: |
2478 | mario79 | 769 | ;-------------------------------------------------------------------------------0,(12*8)>165,85>(5+14*8),12>(350-85),100>40,(12*15)>40,(355+BBB)>(350-73),9>(350-85),9>(350-57),(46+BBB)> |