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