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