Rev 2639 | Rev 3671 | 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: |
||
3221 | hidnplayr | 175 | mov eax,6 |
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] |
||
185 | cmp eax,6 |
||
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 |
431 | jnz nosetkeylbe |
||
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 | |||
441 | mcall 21,,9,5 |
||
442 | ;-------------------------------------- |
||
443 | nosetkeylbe: |
||
444 | ret |
||
2478 | mario79 | 445 | ;------------------------------------------------------------------------------- |
446 | alt_gen: |
||
3221 | hidnplayr | 447 | mcall 21,,3,alt_general |
448 | ret |
||
2478 | mario79 | 449 | ;------------------------------------------------------------------------------- |
450 | draw_buttons: |
||
3221 | hidnplayr | 451 | pusha |
452 | shl ecx,16 |
||
453 | add ecx,12 |
||
454 | mcall 8,<(350-57),(46+BBB)> |
||
31 | halyavin | 455 | |
3221 | hidnplayr | 456 | inc edx |
457 | mcall ,<(350-85),9> |
||
31 | halyavin | 458 | |
3221 | hidnplayr | 459 | inc edx |
460 | mcall ,<(350-73),9> |
||
31 | halyavin | 461 | |
3221 | hidnplayr | 462 | popa |
463 | ret |
||
2478 | mario79 | 464 | ;------------------------------------------------------------------------------- |
31 | halyavin | 465 | ; ******************************************** |
466 | ; ******* WINDOW DEFINITIONS AND DRAW ******* |
||
467 | ; ******************************************** |
||
468 | draw_window: |
||
3221 | hidnplayr | 469 | pusha |
470 | mcall 12,1 |
||
31 | halyavin | 471 | |
3221 | hidnplayr | 472 | xor eax,eax ; DRAW WINDOW |
473 | xor esi,esi |
||
474 | mcall ,<40,(355+BBB)>,<40,(12*16)>,0xB4111199,,title |
||
475 | |||
476 | mcall 9,procinfo,-1 |
||
477 | |||
478 | mov eax,[ebx+70] ;status of window |
||
479 | test eax,100b |
||
480 | jne .end |
||
31 | halyavin | 481 | |
3221 | hidnplayr | 482 | mcall 8,<(350-85),100>,<(5+16*8),12>,100,0x005588dd ; APPLY ALL |
31 | halyavin | 483 | |
3221 | hidnplayr | 484 | add ecx,16*65536 ; SAVE ALL |
485 | dec edx |
||
486 | mcall |
||
31 | halyavin | 487 | |
3221 | hidnplayr | 488 | mov esi,0x5580c0 |
31 | halyavin | 489 | |
3221 | hidnplayr | 490 | mov edx,41 |
491 | mov ecx,5+0*8 |
||
492 | call draw_buttons |
||
31 | halyavin | 493 | |
3221 | hidnplayr | 494 | mov edx,3 |
495 | mov ecx,5+2*8 |
||
496 | call draw_buttons |
||
31 | halyavin | 497 | |
3221 | hidnplayr | 498 | mov edx,91 |
499 | mov ecx,5+4*8 |
||
500 | call draw_buttons |
||
31 | halyavin | 501 | |
3221 | hidnplayr | 502 | mov edx,101 |
503 | mov ecx,5+6*8 |
||
504 | call draw_buttons |
||
31 | halyavin | 505 | |
3221 | hidnplayr | 506 | mov edx,131 |
507 | mov ecx,5+8*8 |
||
508 | call draw_buttons |
||
31 | halyavin | 509 | |
3221 | hidnplayr | 510 | mov edx,141 |
511 | mov ecx,5+10*8 |
||
512 | call draw_buttons |
||
513 | |||
514 | mov edx,151 |
||
515 | mov ecx,5+12*8 |
||
516 | call draw_buttons |
||
120 | mario79 | 517 | |
3221 | hidnplayr | 518 | call draw_infotext |
2481 | mario79 | 519 | .end: |
3221 | hidnplayr | 520 | mcall 12,2 |
521 | popa |
||
522 | ret |
||
2478 | mario79 | 523 | ;------------------------------------------------------------------------------- |
31 | halyavin | 524 | draw_infotext: |
3221 | hidnplayr | 525 | pusha |
526 | mov eax,[keyboard] ; KEYBOARD |
||
527 | test eax,eax |
||
528 | jnz noen |
||
529 | mov [text00+LLL*1+28],dword 'ENGL' |
||
530 | mov [text00+LLL*1+32],dword 'ISH ' |
||
2478 | mario79 | 531 | ;-------------------------------------- |
532 | noen: |
||
3221 | hidnplayr | 533 | cmp eax,1 |
534 | jnz nofi |
||
535 | mov [text00+LLL*1+28],dword 'FINN' |
||
536 | mov [text00+LLL*1+32],dword 'ISH ' |
||
2478 | mario79 | 537 | ;-------------------------------------- |
538 | nofi: |
||
3221 | hidnplayr | 539 | cmp eax,2 |
540 | jnz noge |
||
541 | mov [text00+LLL*1+28],dword 'GERM' |
||
542 | mov [text00+LLL*1+32],dword 'AN ' |
||
2478 | mario79 | 543 | ;-------------------------------------- |
544 | noge: |
||
3221 | hidnplayr | 545 | cmp eax,3 |
546 | jnz nogr |
||
547 | mov [text00+LLL*1+28],dword 'RUSS' |
||
548 | mov [text00+LLL*1+32],dword 'IAN ' |
||
2478 | mario79 | 549 | ;-------------------------------------- |
550 | nogr: |
||
3221 | hidnplayr | 551 | cmp eax,4 |
552 | jnz nofr |
||
553 | mov [text00+LLL*1+28],dword 'FREN' |
||
554 | mov [text00+LLL*1+32],dword 'CH ' |
||
2478 | mario79 | 555 | ;-------------------------------------- |
556 | nofr: |
||
3221 | hidnplayr | 557 | cmp eax,5 |
558 | jnz noet |
||
559 | mov [text00+LLL*1+28],dword 'ESTO' |
||
560 | mov [text00+LLL*1+32],dword 'NIAN' |
||
2478 | mario79 | 561 | ;-------------------------------------- |
562 | noet: |
||
3221 | hidnplayr | 563 | cmp eax,6 |
564 | jnz nobe |
||
565 | mov [text00+LLL*1+28],dword 'BELG' |
||
566 | mov [text00+LLL*1+32],dword 'IAN ' |
||
2478 | mario79 | 567 | ;-------------------------------------- |
3221 | hidnplayr | 568 | nobe: |
569 | mov eax,[syslang] ; SYSTEM LANGUAGE |
||
570 | dec eax |
||
571 | test eax,eax |
||
572 | jnz noen5 |
||
573 | mov [text00+LLL*0+28],dword 'ENGL' |
||
574 | mov [text00+LLL*0+32],dword 'ISH ' |
||
575 | ;-------------------------------------- |
||
2478 | mario79 | 576 | noen5: |
3221 | hidnplayr | 577 | cmp eax,1 |
578 | jnz nofi5 |
||
579 | mov [text00+LLL*0+28],dword 'FINN' |
||
580 | mov [text00+LLL*0+32],dword 'ISH ' |
||
2478 | mario79 | 581 | ;-------------------------------------- |
582 | nofi5: |
||
3221 | hidnplayr | 583 | cmp eax,2 |
584 | jnz noge5 |
||
585 | mov [text00+LLL*0+28],dword 'GERM' |
||
586 | mov [text00+LLL*0+32],dword 'AN ' |
||
2478 | mario79 | 587 | ;-------------------------------------- |
588 | noge5: |
||
3221 | hidnplayr | 589 | cmp eax,3 |
590 | jnz nogr5 |
||
591 | mov [text00+LLL*0+28],dword 'RUSS' |
||
592 | mov [text00+LLL*0+32],dword 'IAN ' |
||
2478 | mario79 | 593 | ;-------------------------------------- |
594 | nogr5: |
||
3221 | hidnplayr | 595 | cmp eax,4 |
596 | jne nofr5 |
||
597 | mov [text00+LLL*0+28],dword 'FREN' |
||
598 | mov [text00+LLL*0+32],dword 'CH ' |
||
2478 | mario79 | 599 | ;-------------------------------------- |
600 | nofr5: |
||
3221 | hidnplayr | 601 | cmp eax,5 |
602 | jne noet5 |
||
603 | mov [text00+LLL*0+28],dword 'ESTO' |
||
604 | mov [text00+LLL*0+32],dword 'NIAN' |
||
2478 | mario79 | 605 | ;-------------------------------------- |
606 | noet5: |
||
3221 | hidnplayr | 607 | mov eax,[lba_read] |
608 | call onoff ; LBA READ |
||
609 | mov [text00+LLL*2+28],ebx |
||
31 | halyavin | 610 | |
3221 | hidnplayr | 611 | mov eax,[pci_acc] |
612 | call onoff ; PCI ACCESS |
||
613 | mov [text00+LLL*3+28],ebx |
||
614 | |||
615 | mov eax,[speaker_mute] |
||
616 | call onoff ; SPEAKER |
||
617 | mov [text00+LLL*6+28],ebx |
||
31 | halyavin | 618 | |
3221 | hidnplayr | 619 | mov eax,[mouse_speed] ; MOUSE SPEED |
620 | add al,48 |
||
621 | mov [text00+LLL*4+28],al |
||
31 | halyavin | 622 | |
3221 | hidnplayr | 623 | mov eax,[mouse_delay] |
624 | mov esi,text00+LLL*5+32 |
||
625 | call hexconvert ; MOUSE DELAY |
||
626 | call text_out |
||
627 | |||
628 | popa |
||
629 | ret |
||
2478 | mario79 | 630 | ;------------------------------------------------------------------------------- |
304 | diamond | 631 | text_out: |
3221 | hidnplayr | 632 | mcall 13,<165,85>,<0,(14*8)>,0x80111199 ;0x80111199-19 |
31 | halyavin | 633 | |
3221 | hidnplayr | 634 | mov edx,text00 |
635 | mov ebx,3*65536+7 |
||
636 | mov eax,4 |
||
637 | mov ecx,0xffffff |
||
638 | mov esi,LLL |
||
639 | mov ebp,text1_strings |
||
2478 | mario79 | 640 | ;-------------------------------------- |
641 | newline: |
||
3221 | hidnplayr | 642 | mcall |
643 | add ebx,8+8 |
||
644 | add edx,esi |
||
645 | dec ebp |
||
646 | jnz newline |
||
31 | halyavin | 647 | |
3221 | hidnplayr | 648 | mov ebp,text2_strings |
649 | add ebx,8+8 |
||
2478 | mario79 | 650 | ;-------------------------------------- |
651 | @@: |
||
3221 | hidnplayr | 652 | mcall |
653 | add ebx,8+8 |
||
654 | add edx,esi |
||
655 | dec ebp |
||
656 | jnz @b |
||
657 | ret |
||
2478 | mario79 | 658 | ;------------------------------------------------------------------------------- |
3221 | hidnplayr | 659 | hexconvert: ;converting dec to hex in ascii |
660 | xor ebx,ebx |
||
661 | mov bl,al |
||
662 | and bl,15 |
||
663 | add ebx,hex |
||
664 | mov cl,[ebx] |
||
665 | mov [esi],cl |
||
666 | shr eax,4 |
||
667 | xor ebx,ebx |
||
668 | mov bl,al |
||
669 | and bl,15 |
||
670 | add ebx,hex |
||
671 | mov cl,[ebx] |
||
672 | dec esi |
||
673 | mov [esi],cl |
||
674 | shr eax,4 |
||
675 | xor ebx,ebx |
||
676 | mov bl,al |
||
677 | and bl,15 |
||
678 | add ebx,hex |
||
679 | mov cl,[ebx] |
||
680 | dec esi |
||
681 | mov [esi],cl |
||
682 | ret |
||
2478 | mario79 | 683 | ;------------------------------------------------------------------------------- |
31 | halyavin | 684 | onoff: |
3221 | hidnplayr | 685 | cmp [syslang],4 |
686 | jne norus1 |
||
687 | mov ebx,'ДА ' |
||
688 | cmp eax,1 |
||
689 | je exitsub |
||
690 | mov ebx,'НЕТ ' |
||
691 | ret |
||
2478 | mario79 | 692 | ;-------------------------------------- |
693 | norus1: |
||
3221 | hidnplayr | 694 | mov ebx,'ON ' |
695 | cmp eax,1 |
||
696 | je exitsub |
||
697 | mov ebx,'OFF ' |
||
2478 | mario79 | 698 | ;-------------------------------------- |
699 | exitsub: |
||
3221 | hidnplayr | 700 | ret |
2478 | mario79 | 701 | ;------------------------------------------------------------------------------- |
31 | halyavin | 702 | _lba_read: |
3221 | hidnplayr | 703 | mcall 21,11,[lba_read] |
704 | ret |
||
2478 | mario79 | 705 | ;------------------------------------------------------------------------------- |
31 | halyavin | 706 | _pci_acc: |
3221 | hidnplayr | 707 | mcall 21,12,[pci_acc] |
708 | ret |
||
2478 | mario79 | 709 | ;------------------------------------------------------------------------------- |
31 | halyavin | 710 | _syslang: |
3221 | hidnplayr | 711 | mcall 21,5,[syslang] |
712 | ret |
||
2478 | mario79 | 713 | ;------------------------------------------------------------------------------- |
127 | mario79 | 714 | _mouse_speed: |
3221 | hidnplayr | 715 | mcall 18,19,1,[mouse_speed] |
716 | ret |
||
2478 | mario79 | 717 | ;------------------------------------------------------------------------------- |
127 | mario79 | 718 | _mouse_delay: |
3221 | hidnplayr | 719 | mcall 18,19,3,[mouse_delay] |
720 | ret |
||
2478 | mario79 | 721 | ;------------------------------------------------------------------------------- |
2639 | mario79 | 722 | _speaker_mute: |
3221 | hidnplayr | 723 | mcall 18,8,1 |
724 | cmp [speaker_mute],eax |
||
725 | je @f |
||
726 | inc ecx |
||
727 | mcall 18 |
||
728 | ;-------------------------------------- |
||
2639 | mario79 | 729 | @@: |
3221 | hidnplayr | 730 | ret |
2639 | mario79 | 731 | ;------------------------------------------------------------------------------- |
31 | halyavin | 732 | loadtxt: |
3221 | hidnplayr | 733 | mov edi,text00 |
734 | mov ecx,LLL*(text1_strings + text2_strings)/4+1 |
||
735 | cmp [syslang],4 |
||
736 | jne norus |
||
31 | halyavin | 737 | |
3221 | hidnplayr | 738 | mov esi,textrus |
739 | jmp sload |
||
2478 | mario79 | 740 | ;-------------------------------------- |
741 | norus: |
||
3221 | hidnplayr | 742 | mov esi,texteng |
2478 | mario79 | 743 | ;-------------------------------------- |
744 | sload: |
||
3221 | hidnplayr | 745 | rep movsd |
746 | ret |
||
2478 | mario79 | 747 | ;------------------------------------------------------------------------------- |
31 | halyavin | 748 | cleantxt: |
3221 | hidnplayr | 749 | xor eax,eax |
750 | mov ecx,LLL*(text1_strings + text2_strings)/4 |
||
751 | cld |
||
752 | mov edi,text00 |
||
753 | rep stosd |
||
754 | mov [text00+1711],byte 'x' |
||
755 | ret |
||
2478 | mario79 | 756 | ;------------------------------------------------------------------------------- |
31 | halyavin | 757 | ; DATA AREA |
3221 | hidnplayr | 758 | count: db 0x0 |
759 | blinkpar: dd 0x0 |
||
760 | time: dw 0x0 |
||
761 | date: dd 0x0 |
||
2478 | mario79 | 762 | ;------------------------------------------------------------------------------- |
31 | halyavin | 763 | textrus: |
3221 | hidnplayr | 764 | db 'Язык системы : ENGLISH - + Применить' |
765 | db 'Раскладка клавиатуры : ENGLISH - + Применить' |
||
766 | db 'Включить LBA : OFF - + Применить' |
||
767 | db 'Доступ к шине PCI : OFF - + Применить' |
||
768 | db 'Скорость курсора мыши : 1 - + Применить' |
||
769 | db 'Задержка ускорения мыши : 0x00a - + Применить' |
||
770 | db 'Выключить SPEAKER : OFF - + Применить' |
||
771 | |||
772 | db 'ВНИМАНИЕ: Применить все ' |
||
773 | db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ Сохранить все ' |
||
2478 | mario79 | 774 | ;------------------------------------------------------------------------------- |
31 | halyavin | 775 | texteng: |
3221 | hidnplayr | 776 | db 'System language : ENGLISH - + Apply ' |
777 | db 'Keyboard layout : ENGLISH - + Apply ' |
||
778 | db 'LBA read enabled : OFF - + Apply ' |
||
779 | db 'PCI access for appl. : OFF - + Apply ' |
||
780 | db 'Mouse pointer speed : 1 - + Apply ' |
||
781 | db 'Mouse pointer delay : 0x00a - + Apply ' |
||
782 | db 'SPEAKER disabled : OFF - + Apply ' |
||
2639 | mario79 | 783 | text1_strings = 7 |
31 | halyavin | 784 | |
3221 | hidnplayr | 785 | db 'NOTE: Apply all ' |
786 | db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI Save all ' |
||
304 | diamond | 787 | text2_strings = 2 |
2478 | mario79 | 788 | ;------------------------------------------------------------------------------- |
3221 | hidnplayr | 789 | title db 'System setup',0 |
31 | halyavin | 790 | |
3221 | hidnplayr | 791 | hex db '0123456789ABCDEF' |
2478 | mario79 | 792 | ;------------------------------------------------------------------------------- |
2299 | hidnplayr | 793 | include 'keymaps.inc' |
2478 | mario79 | 794 | ;------------------------------------------------------------------------------- |
120 | mario79 | 795 | read_fileinfo: |
3221 | hidnplayr | 796 | dd 0 |
797 | dd 0 |
||
798 | dd 0 |
||
799 | dd 28 |
||
800 | dd keyboard |
||
801 | db 0 |
||
802 | dd file_name |
||
2478 | mario79 | 803 | ;------------------------------------------------------------------------------- |
120 | mario79 | 804 | save_fileinfo: |
3221 | hidnplayr | 805 | dd 2 |
806 | dd 0 |
||
807 | dd 0 |
||
808 | dd 28 |
||
809 | dd keyboard |
||
810 | file_name: db '/sys/setup.dat',0 |
||
2478 | mario79 | 811 | ;------------------------------------------------------------------------------- |
3221 | hidnplayr | 812 | keyboard dd 0x0 |
813 | syslang dd 0x4 ; 4 - rus |
||
814 | lba_read dd 0x1 |
||
815 | pci_acc dd 0x1 |
||
816 | mouse_speed dd 0x2 |
||
817 | mouse_delay dd 0xa |
||
818 | speaker_mute dd 0 ; 0 - enable, 1 - disable |
||
2319 | mario79 | 819 | ;----------------------------------------------------------------------------- |
2478 | mario79 | 820 | IM_END: |
821 | ;----------------------------------------------------------------------------- |
||
822 | align 4 |
||
31 | halyavin | 823 | text00: |
3221 | hidnplayr | 824 | rb LLL*(text1_strings + text2_strings)+4 |
2478 | mario79 | 825 | ;----------------------------------------------------------------------------- |
826 | align 4 |
||
2639 | mario79 | 827 | boot_param: |
2481 | mario79 | 828 | procinfo: |
3221 | hidnplayr | 829 | rb 1024 |
2481 | mario79 | 830 | ;----------------------------------------------------------------------------- |
831 | align 4 |
||
3221 | hidnplayr | 832 | rb 0x1000 |
2478 | mario79 | 833 | stack_area: |
834 | ;----------------------------------------------------------------------------- |
||
31 | halyavin | 835 | I_END: |
2478 | mario79 | 836 | ;-------------------------------------------------------------------------------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)> |