diff --git a/programs/system/setup/trunk/setup.asm b/programs/system/setup/trunk/setup.asm index f950d64661..f31015a685 100644 --- a/programs/system/setup/trunk/setup.asm +++ b/programs/system/setup/trunk/setup.asm @@ -3,6 +3,11 @@ ;; DEVICE SETUP ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; version: 1.16 +; last update: 12/04/2014 +; changed by: Yurii Shevtsov, aka gtament +; changes: Fixed junk draw at the bottom of window +;--------------------------------------------------------------------- ; version: 1.15 ; last update: 20/04/2012 ; changed by: Marat Zakiyanov aka Mario79, aka Mario @@ -22,860 +27,860 @@ ;------------------------------------------------------------------------------- format binary as "" - use32 - org 0x0 + use32 + org 0x0 - db 'MENUET01' ; 8 byte identifier - dd 0x01 ; header version - dd START ; pointer to program start - dd IM_END ; size of image - dd I_END ; reguired amount of memory - dd stack_area ; stack pointer (esp) - dd boot_param ; boot parameters - dd 0x0 ; path + db 'MENUET01' ; 8 byte identifier + dd 0x01 ; header version + dd START ; pointer to program start + dd IM_END ; size of image + dd I_END ; reguired amount of memory + dd stack_area ; stack pointer (esp) + dd boot_param ; boot parameters + dd 0x0 ; path ;------------------------------------------------------------------------------- -include '..\..\..\macros.inc' +include '../../../macros.inc' ;------------------------------------------------------------------------------- LLL equ (56+3) BBB equ 25 ;------------------------------------------------------------------------------- apply_all: - call _pci_acc ;12 - call _syslang ;5 - call _keyboard ;2 - call _mouse_speed - call _mouse_delay - call _speaker_mute - ret + call _pci_acc ;12 + call _syslang ;5 + call _keyboard ;2 + call _mouse_speed + call _mouse_delay + call _speaker_mute + ret ;------------------------------------------------------------------------------- apply_all_and_exit: - mcall 70,read_fileinfo - call apply_all - jmp close + mcall 70,read_fileinfo + call apply_all + jmp close ;------------------------------------------------------------------------------- set_language_and_exit: - mcall 26,2,9 - cmp eax,1 - je russian + mcall 26,2,9 + cmp eax,1 + je russian - xor eax,eax + xor eax,eax ;-------------------------------------- set_lang_now: - mov [keyboard],eax - call _keyboard - jmp close + mov [keyboard],eax + call _keyboard + jmp close ;-------------------------------------- russian: - mov eax,3 - jmp set_lang_now + mov eax,3 + jmp set_lang_now ;------------------------------------------------------------------------------- set_syslanguage_and_exit: - mcall 26,5 - cmp eax,6 - jne temp - xor eax,eax + mcall 26,5 + cmp eax,6 + jne temp + xor eax,eax ;-------------------------------------- temp: - inc eax - mov [syslang],eax - call _syslang - jmp close + inc eax + mov [syslang],eax + call _syslang + jmp close ;------------------------------------------------------------------------------- get_setup_values: - mcall 26,2,9 - dec eax - mov [keyboard],eax + mcall 26,2,9 + dec eax + mov [keyboard],eax - mcall 26,5 - mov [syslang],eax + mcall 26,5 + mov [syslang],eax - mcall 26,11 - mov [lba_read],eax + mcall 26,11 + mov [lba_read],eax - mcall 26,12 - mov [pci_acc],eax + mcall 26,12 + mov [pci_acc],eax - mcall 18,19,0 - mov [mouse_speed],eax + mcall 18,19,0 + mov [mouse_speed],eax - mcall 18,19,2 - mov [mouse_delay],eax - - mcall 18,8,1 - mov [speaker_mute],eax - ret + mcall 18,19,2 + mov [mouse_delay],eax + + mcall 18,8,1 + mov [speaker_mute],eax + ret ;------------------------------------------------------------------------------- START: - mov eax,boot_param - cmp [eax],dword 'SLAN' - je set_syslanguage_and_exit + mov eax,boot_param + cmp [eax],dword 'SLAN' + je set_syslanguage_and_exit - cmp [eax],dword 'LANG' - je set_language_and_exit + cmp [eax],dword 'LANG' + je set_language_and_exit - cmp [eax],dword 'BOOT' - je apply_all_and_exit + cmp [eax],dword 'BOOT' + je apply_all_and_exit - call get_setup_values - call loadtxt - call draw_infotext + call get_setup_values + call loadtxt + call draw_infotext ;------------------------------------------------------------------------------- red: - call draw_window + call draw_window ;------------------------------------------------------------------------------- still: sysevent: - mcall 23,8 ; wait here for event with timeout - cmp eax,1 - jz red + mcall 23,8 ; wait here for event with timeout + cmp eax,1 + jz red - cmp eax,2 - jz key + cmp eax,2 + jz key - cmp eax,3 - jz button + cmp eax,3 + jz button - jmp still + jmp still ;------------------------------------------------------------------------------- key: - mcall 2 - jmp still + mcall 2 + jmp still ;------------------------------------------------------------------------------- button: - mcall 17 - cmp ah,99 - jne nosaveall - mcall 70,save_fileinfo - jmp still -;-------------------------------------- + mcall 17 + cmp ah,99 + jne nosaveall + mcall 70,save_fileinfo + jmp still +;-------------------------------------- nosaveall: - cmp ah,100 - jne no_apply_all - call apply_all - jmp still + cmp ah,100 + jne no_apply_all + call apply_all + jmp still ;-------------------------------------- no_apply_all: - cmp ah,1 ; CLOSE APPLICATION - jne no_close + cmp ah,1 ; CLOSE APPLICATION + jne no_close ;-------------------------------------- close: - or eax,-1 - mcall + or eax,-1 + mcall ;-------------------------------------- no_close: - cmp ah,4 ; SET KEYBOARD - jnz nokm - mov eax,[keyboard] - test eax,eax - je downuplbl - dec eax - jmp nodownup + cmp ah,4 ; SET KEYBOARD + jnz nokm + mov eax,[keyboard] + test eax,eax + je downuplbl + dec eax + jmp nodownup ;-------------------------------------- downuplbl: - mov eax,7 + mov eax,7 ;-------------------------------------- nodownup: - mov [keyboard],eax - call draw_infotext + mov [keyboard],eax + call draw_infotext ;-------------------------------------- nokm: - cmp ah,5 - jnz nokp - mov eax,[keyboard] - cmp eax,7 - je updownlbl - inc eax - jmp noupdown + cmp ah,5 + jnz nokp + mov eax,[keyboard] + cmp eax,7 + je updownlbl + inc eax + jmp noupdown ;-------------------------------------- updownlbl: - xor eax,eax + xor eax,eax ;-------------------------------------- noupdown: - mov [keyboard],eax - call draw_infotext + mov [keyboard],eax + call draw_infotext ;-------------------------------------- nokp: - cmp ah,92 ; SET LBA READ - jne no_lba_d + cmp ah,92 ; SET LBA READ + jne no_lba_d ;-------------------------------------- slbal: - btc [lba_read],0 - call draw_infotext - jmp still + btc [lba_read],0 + call draw_infotext + jmp still ;-------------------------------------- no_lba_d: - cmp ah,93 - jne no_lba_i - jmp slbal + cmp ah,93 + jne no_lba_i + jmp slbal ;-------------------------------------- no_lba_i: - cmp ah,91 - jne no_set_lba_read - call _lba_read - jmp still + cmp ah,91 + jne no_set_lba_read + call _lba_read + jmp still ;-------------------------------------- no_set_lba_read: - cmp ah,102 ; SET PCI ACCESS - jne no_pci_d + cmp ah,102 ; SET PCI ACCESS + jne no_pci_d ;-------------------------------------- pcip: - btc [pci_acc],0 - call draw_infotext - jmp still + btc [pci_acc],0 + call draw_infotext + jmp still ;-------------------------------------- no_pci_d: - cmp ah,103 - jne no_pci_i - jmp pcip + cmp ah,103 + jne no_pci_i + jmp pcip ;-------------------------------------- no_pci_i: - cmp ah,101 - jne no_set_pci_acc - call _pci_acc - jmp still + cmp ah,101 + jne no_set_pci_acc + call _pci_acc + jmp still ;-------------------------------------- no_set_pci_acc: - cmp ah,42 ; SET SYSTEM LANGUAGE BASE - jnz nosysm - mov eax,[syslang] - dec eax - jz still - mov [syslang],eax - call draw_infotext + cmp ah,42 ; SET SYSTEM LANGUAGE BASE + jnz nosysm + mov eax,[syslang] + dec eax + jz still + mov [syslang],eax + call draw_infotext ;-------------------------------------- nosysm: - cmp ah,43 - jnz nosysp - mov eax,[syslang] - cmp eax,6 - je nosysp - inc eax - mov [syslang],eax - call draw_infotext + cmp ah,43 + jnz nosysp + mov eax,[syslang] + cmp eax,6 + je nosysp + inc eax + mov [syslang],eax + call draw_infotext ;-------------------------------------- nosysp: - cmp ah,41 - jnz nosyss - call _syslang - call cleantxt - call loadtxt - call draw_window + cmp ah,41 + jnz nosyss + call _syslang + call cleantxt + call loadtxt + call draw_window ;-------------------------------------- nosyss: - cmp ah,132 ; SET MOUSE SPEED - jnz .nominus - mov eax,[mouse_speed] - sub eax,2 - cmp eax,9 - jb @f - mov eax,8 + cmp ah,132 ; SET MOUSE SPEED + jnz .nominus + mov eax,[mouse_speed] + sub eax,2 + cmp eax,9 + jb @f + mov eax,8 ;-------------------------------------- @@: - inc eax - mov [mouse_speed],eax - call draw_infotext + inc eax + mov [mouse_speed],eax + call draw_infotext ;-------------------------------------- .nominus: - cmp ah,133 - jnz .noplus - mov eax,[mouse_speed] - cmp eax,9 - jb @f - mov eax,0 + cmp ah,133 + jnz .noplus + mov eax,[mouse_speed] + cmp eax,9 + jb @f + mov eax,0 ;-------------------------------------- @@: - inc eax - mov [mouse_speed],eax - call draw_infotext + inc eax + mov [mouse_speed],eax + call draw_infotext ;-------------------------------------- .noplus: - cmp ah,131 - jnz .noapply - call _mouse_speed -;-------------------------------------- + cmp ah,131 + jnz .noapply + call _mouse_speed +;-------------------------------------- .noapply: mousedelay: - cmp ah,142 ; SET MOUSE DELAY - jnz .nominus - mov eax,[mouse_delay] - sub eax,2 - cmp eax,0xfff - jb @f - mov eax,0xffe + cmp ah,142 ; SET MOUSE DELAY + jnz .nominus + mov eax,[mouse_delay] + sub eax,2 + cmp eax,0xfff + jb @f + mov eax,0xffe ;-------------------------------------- @@: - inc eax - mov [mouse_delay],eax - call draw_infotext + inc eax + mov [mouse_delay],eax + call draw_infotext ;-------------------------------------- .nominus: - cmp ah,143 - jnz .noplus - mov eax,[mouse_delay] - cmp eax,0xfff - jb @f - mov eax,0 + cmp ah,143 + jnz .noplus + mov eax,[mouse_delay] + cmp eax,0xfff + jb @f + mov eax,0 ;-------------------------------------- @@: - inc eax - mov [mouse_delay],eax - call draw_infotext + inc eax + mov [mouse_delay],eax + call draw_infotext ;-------------------------------------- .noplus: - cmp ah,141 - jnz speakermute - call _mouse_delay + cmp ah,141 + jnz speakermute + call _mouse_delay ;-------------------------------------- speakermute: - cmp ah,152 ; SET SPEAKER - jne no_speaker_d + cmp ah,152 ; SET SPEAKER + jne no_speaker_d ;-------------------------------------- speaker_p: - btc [speaker_mute],0 - call draw_infotext - jmp still + btc [speaker_mute],0 + call draw_infotext + jmp still ;-------------------------------------- no_speaker_d: - cmp ah,153 - jne no_speaker_i - jmp speaker_p + cmp ah,153 + jne no_speaker_i + jmp speaker_p ;-------------------------------------- no_speaker_i: - cmp ah,151 - jne .noapply - call _speaker_mute - jmp still + cmp ah,151 + jne .noapply + call _speaker_mute + jmp still ;-------------------------------------- .noapply: - cmp ah,3 ; SET KEYMAP - jne still - call _keyboard - jmp still + cmp ah,3 ; SET KEYMAP + jne still + call _keyboard + jmp still ;------------------------------------------------------------------------------- _keyboard: - cmp [keyboard],0 ; english - jnz nosetkeyle - - mcall 21,2,1,en_keymap - - inc ecx - mcall 21,,,en_keymap_shift + cmp [keyboard],0 ; english + jnz nosetkeyle - mcall 21,,9,1 - call alt_gen + mcall 21,2,1,en_keymap + + inc ecx + mcall 21,,,en_keymap_shift + + mcall 21,,9,1 + call alt_gen ;-------------------------------------- nosetkeyle: - cmp [keyboard],1 ; finnish - jnz nosetkeylfi + cmp [keyboard],1 ; finnish + jnz nosetkeylfi - mcall 21,2,1,fi_keymap - - inc ecx - mcall 21,,,fi_keymap_shift + mcall 21,2,1,fi_keymap - mcall 21,,9,2 - call alt_gen + inc ecx + mcall 21,,,fi_keymap_shift + + mcall 21,,9,2 + call alt_gen ;-------------------------------------- nosetkeylfi: - cmp [keyboard],2 ; german - jnz nosetkeylge + cmp [keyboard],2 ; german + jnz nosetkeylge - mcall 21,2,1,ge_keymap - - inc ecx - mcall 21,,,ge_keymap_shift + mcall 21,2,1,ge_keymap - mcall 21,,9,3 - call alt_gen + inc ecx + mcall 21,,,ge_keymap_shift + + mcall 21,,9,3 + call alt_gen ;-------------------------------------- nosetkeylge: - cmp [keyboard],3 ; russian - jnz nosetkeylru - - mcall 21,2,1,ru_keymap - - inc ecx - mcall 21,,,ru_keymap_shift + cmp [keyboard],3 ; russian + jnz nosetkeylru - mcall 21,,9,4 - call alt_gen + mcall 21,2,1,ru_keymap + + inc ecx + mcall 21,,,ru_keymap_shift + + mcall 21,,9,4 + call alt_gen ;-------------------------------------- nosetkeylru: - cmp [keyboard],4 ;french - jnz nosetkeylfr + cmp [keyboard],4 ;french + jnz nosetkeylfr - mcall 21,2,1,fr_keymap - - inc ecx - mcall 21,,,fr_keymap_shift + mcall 21,2,1,fr_keymap - inc ecx - mcall 21,,,fr_keymap_alt_gr + inc ecx + mcall 21,,,fr_keymap_shift - mcall 21,,9,5 + inc ecx + mcall 21,,,fr_keymap_alt_gr + + mcall 21,,9,5 ;-------------------------------------- nosetkeylfr: - cmp [keyboard],5 ; estonian - jnz nosetkeylet + cmp [keyboard],5 ; estonian + jnz nosetkeylet - mcall 21,2,1,et_keymap - - inc ecx - mcall 21,,,et_keymap_shift + mcall 21,2,1,et_keymap - mcall 21,,9,6 - call alt_gen + inc ecx + mcall 21,,,et_keymap_shift + + mcall 21,,9,6 + call alt_gen ;-------------------------------------- nosetkeylet: - cmp [keyboard],6 ;belgian - jnz nosetkeylit + cmp [keyboard],6 ;belgian + jnz nosetkeylit - mcall 21,2,1,be_keymap - - inc ecx - mcall 21,,,be_keymap_shift + mcall 21,2,1,be_keymap - inc ecx - mcall 21,,,be_keymap_alt_gr + inc ecx + mcall 21,,,be_keymap_shift - mcall 21,,9,7 + inc ecx + mcall 21,,,be_keymap_alt_gr + + mcall 21,,9,7 ;-------------------------------------- nosetkeylit: - cmp [keyboard],7 ;italian - jnz nosetkeylbe - - mcall 21,2,1,it_keymap - - inc ecx - mcall 21,,,it_keymap_shift - - inc ecx - mcall 21,,,it_keymap_alt_gr - - mcall 21,,9,8 + cmp [keyboard],7 ;italian + jnz nosetkeylbe + + mcall 21,2,1,it_keymap + + inc ecx + mcall 21,,,it_keymap_shift + + inc ecx + mcall 21,,,it_keymap_alt_gr + + mcall 21,,9,8 ;-------------------------------------- nosetkeylbe: - ret + ret ;------------------------------------------------------------------------------- alt_gen: - mcall 21,,3,alt_general - ret + mcall 21,,3,alt_general + ret ;------------------------------------------------------------------------------- draw_buttons: - pusha - shl ecx,16 - add ecx,12 - mcall 8,<(350-57),(46+BBB)> + pusha + shl ecx,16 + add ecx,12 + mcall 8,<(350-57),(46+BBB)> - inc edx - mcall ,<(350-85),9> + inc edx + mcall ,<(350-85),9> - inc edx - mcall ,<(350-73),9> + inc edx + mcall ,<(350-73),9> - popa - ret + popa + ret ;------------------------------------------------------------------------------- ; ******************************************** ; ******* WINDOW DEFINITIONS AND DRAW ******* ; ******************************************** draw_window: - pusha - mcall 12,1 + pusha + mcall 12,1 - xor eax,eax ; DRAW WINDOW - xor esi,esi - mcall ,<40,(355+BBB)>,<40,(12*16)>,0xB4111199,,title - - mcall 9,procinfo,-1 - - mov eax,[ebx+70] ;status of window - test eax,100b - jne .end + xor eax,eax ; DRAW WINDOW + xor esi,esi + mcall ,<40,(355+BBB)>,<40,(12*16)>,0xB4111199,,title - mcall 8,<(350-85),100>,<(5+16*8),12>,100,0x005588dd ; APPLY ALL + mcall 9,procinfo,-1 - add ecx,16*65536 ; SAVE ALL - dec edx - mcall + mov eax,[ebx+70] ;status of window + test eax,100b + jne .end - mov esi,0x5580c0 + mcall 8,<(350-85),100>,<(5+16*8),12>,100,0x005588dd ; APPLY ALL - mov edx,41 - mov ecx,5+0*8 - call draw_buttons + add ecx,16*65536 ; SAVE ALL + dec edx + mcall - mov edx,3 - mov ecx,5+2*8 - call draw_buttons + mov esi,0x5580c0 - mov edx,91 - mov ecx,5+4*8 - call draw_buttons + mov edx,41 + mov ecx,5+0*8 + call draw_buttons - mov edx,101 - mov ecx,5+6*8 - call draw_buttons + mov edx,3 + mov ecx,5+2*8 + call draw_buttons - mov edx,131 - mov ecx,5+8*8 - call draw_buttons + mov edx,91 + mov ecx,5+4*8 + call draw_buttons - mov edx,141 - mov ecx,5+10*8 - call draw_buttons - - mov edx,151 - mov ecx,5+12*8 - call draw_buttons + mov edx,101 + mov ecx,5+6*8 + call draw_buttons - call draw_infotext + mov edx,131 + mov ecx,5+8*8 + call draw_buttons + + mov edx,141 + mov ecx,5+10*8 + call draw_buttons + + mov edx,151 + mov ecx,5+12*8 + call draw_buttons + + call draw_infotext .end: - mcall 12,2 - popa - ret + mcall 12,2 + popa + ret ;------------------------------------------------------------------------------- draw_infotext: - pusha - mov eax,[keyboard] ; KEYBOARD - test eax,eax - jnz noen - mov [text00+LLL*1+28],dword 'ENGL' - mov [text00+LLL*1+32],dword 'ISH ' + pusha + mov eax,[keyboard] ; KEYBOARD + test eax,eax + jnz noen + mov [text00+LLL*1+28],dword 'ENGL' + mov [text00+LLL*1+32],dword 'ISH ' ;-------------------------------------- noen: - cmp eax,1 - jnz nofi - mov [text00+LLL*1+28],dword 'FINN' - mov [text00+LLL*1+32],dword 'ISH ' + cmp eax,1 + jnz nofi + mov [text00+LLL*1+28],dword 'FINN' + mov [text00+LLL*1+32],dword 'ISH ' ;-------------------------------------- nofi: - cmp eax,2 - jnz noge - mov [text00+LLL*1+28],dword 'GERM' - mov [text00+LLL*1+32],dword 'AN ' + cmp eax,2 + jnz noge + mov [text00+LLL*1+28],dword 'GERM' + mov [text00+LLL*1+32],dword 'AN ' ;-------------------------------------- noge: - cmp eax,3 - jnz nogr - mov [text00+LLL*1+28],dword 'RUSS' - mov [text00+LLL*1+32],dword 'IAN ' + cmp eax,3 + jnz nogr + mov [text00+LLL*1+28],dword 'RUSS' + mov [text00+LLL*1+32],dword 'IAN ' ;-------------------------------------- nogr: - cmp eax,4 - jnz nofr - mov [text00+LLL*1+28],dword 'FREN' - mov [text00+LLL*1+32],dword 'CH ' + cmp eax,4 + jnz nofr + mov [text00+LLL*1+28],dword 'FREN' + mov [text00+LLL*1+32],dword 'CH ' ;-------------------------------------- nofr: - cmp eax,5 - jnz noet - mov [text00+LLL*1+28],dword 'EEST' - mov [text00+LLL*1+32],dword 'I ' + cmp eax,5 + jnz noet + mov [text00+LLL*1+28],dword 'EEST' + mov [text00+LLL*1+32],dword 'I ' ;-------------------------------------- noet: - cmp eax,6 - jnz nobe - mov [text00+LLL*1+28],dword 'BELG' - mov [text00+LLL*1+32],dword 'IAN ' + cmp eax,6 + jnz nobe + mov [text00+LLL*1+28],dword 'BELG' + mov [text00+LLL*1+32],dword 'IAN ' ;-------------------------------------- nobe: - cmp eax,7 - jnz noit - mov [text00+LLL*1+28],dword 'ITAL' - mov [text00+LLL*1+32],dword 'IAN' + cmp eax,7 + jnz noit + mov [text00+LLL*1+28],dword 'ITAL' + mov [text00+LLL*1+32],dword 'IAN' ;-------------------------------------- noit: - mov eax,[syslang] ; SYSTEM LANGUAGE - dec eax - test eax,eax - jnz noen5 - mov [text00+LLL*0+28],dword 'ENGL' - mov [text00+LLL*0+32],dword 'ISH ' + mov eax,[syslang] ; SYSTEM LANGUAGE + dec eax + test eax,eax + jnz noen5 + mov [text00+LLL*0+28],dword 'ENGL' + mov [text00+LLL*0+32],dword 'ISH ' ;-------------------------------------- noen5: - cmp eax,1 - jnz nofi5 - mov [text00+LLL*0+28],dword 'FINN' - mov [text00+LLL*0+32],dword 'ISH ' + cmp eax,1 + jnz nofi5 + mov [text00+LLL*0+28],dword 'FINN' + mov [text00+LLL*0+32],dword 'ISH ' ;-------------------------------------- nofi5: - cmp eax,2 - jnz noge5 - mov [text00+LLL*0+28],dword 'GERM' - mov [text00+LLL*0+32],dword 'AN ' + cmp eax,2 + jnz noge5 + mov [text00+LLL*0+28],dword 'GERM' + mov [text00+LLL*0+32],dword 'AN ' ;-------------------------------------- noge5: - cmp eax,3 - jnz nogr5 - mov [text00+LLL*0+28],dword 'RUSS' - mov [text00+LLL*0+32],dword 'IAN ' + cmp eax,3 + jnz nogr5 + mov [text00+LLL*0+28],dword 'RUSS' + mov [text00+LLL*0+32],dword 'IAN ' ;-------------------------------------- nogr5: - cmp eax,4 - jne nofr5 - mov [text00+LLL*0+28],dword 'FREN' - mov [text00+LLL*0+32],dword 'CH ' + cmp eax,4 + jne nofr5 + mov [text00+LLL*0+28],dword 'FREN' + mov [text00+LLL*0+32],dword 'CH ' ;-------------------------------------- nofr5: - cmp eax,5 - jne noet5 - mov [text00+LLL*0+28],dword 'EEST' - mov [text00+LLL*0+32],dword 'I ' + cmp eax,5 + jne noet5 + mov [text00+LLL*0+28],dword 'EEST' + mov [text00+LLL*0+32],dword 'I ' ;-------------------------------------- noet5: - mov eax,[lba_read] - call onoff ; LBA READ - mov [text00+LLL*2+28],ebx + mov eax,[lba_read] + call onoff ; LBA READ + mov [text00+LLL*2+28],ebx - mov eax,[pci_acc] - call onoff ; PCI ACCESS - mov [text00+LLL*3+28],ebx - - mov eax,[speaker_mute] - call onoff ; SPEAKER - mov [text00+LLL*6+28],ebx + mov eax,[pci_acc] + call onoff ; PCI ACCESS + mov [text00+LLL*3+28],ebx - mov eax,[mouse_speed] ; MOUSE SPEED - add al,48 - mov [text00+LLL*4+28],al + mov eax,[speaker_mute] + call onoff ; SPEAKER + mov [text00+LLL*6+28],ebx - mov eax,[mouse_delay] - mov esi,text00+LLL*5+32 - call hexconvert ; MOUSE DELAY - call text_out - - popa - ret + mov eax,[mouse_speed] ; MOUSE SPEED + add al,48 + mov [text00+LLL*4+28],al + + mov eax,[mouse_delay] + mov esi,text00+LLL*5+32 + call hexconvert ; MOUSE DELAY + call text_out + + popa + ret ;------------------------------------------------------------------------------- text_out: - mcall 13,<165,85>,<0,(14*8)>,0x80111199 ;0x80111199-19 + mcall 13,<165,85>,<0,(14*8)>,0x80111199 ;0x80111199-19 - mov edx,text00 - mov ebx,3*65536+7 - mov eax,4 - mov ecx,0xffffff - mov esi,LLL - mov ebp,text1_strings + mov edx,text00 + mov ebx,3*65536+7 + mov eax,4 + mov ecx,0xffffff + mov esi,LLL + mov ebp,text1_strings ;-------------------------------------- newline: - mcall - add ebx,8+8 - add edx,esi - dec ebp - jnz newline + mcall + add ebx,8+8 + add edx,esi + dec ebp + jnz newline - mov ebp,text2_strings - add ebx,8+8 + mov ebp,text2_strings + add ebx,8+8 ;-------------------------------------- @@: - mcall - add ebx,8+8 - add edx,esi - dec ebp - jnz @b - ret + mcall + add ebx,8+8 + add edx,esi + dec ebp + jnz @b + ret ;------------------------------------------------------------------------------- -hexconvert: ;converting dec to hex in ascii - xor ebx,ebx - mov bl,al - and bl,15 - add ebx,hex - mov cl,[ebx] - mov [esi],cl - shr eax,4 - xor ebx,ebx - mov bl,al - and bl,15 - add ebx,hex - mov cl,[ebx] - dec esi - mov [esi],cl - shr eax,4 - xor ebx,ebx - mov bl,al - and bl,15 - add ebx,hex - mov cl,[ebx] - dec esi - mov [esi],cl - ret +hexconvert: ;converting dec to hex in ascii + xor ebx,ebx + mov bl,al + and bl,15 + add ebx,hex + mov cl,[ebx] + mov [esi],cl + shr eax,4 + xor ebx,ebx + mov bl,al + and bl,15 + add ebx,hex + mov cl,[ebx] + dec esi + mov [esi],cl + shr eax,4 + xor ebx,ebx + mov bl,al + and bl,15 + add ebx,hex + mov cl,[ebx] + dec esi + mov [esi],cl + ret ;------------------------------------------------------------------------------- onoff: - cmp [syslang],4 - jne norus1 - mov ebx,'ДА ' - cmp eax,1 - je exitsub - mov ebx,'НЕТ ' - ret + cmp [syslang],4 + jne norus1 + mov ebx,'ДА ' + cmp eax,1 + je exitsub + mov ebx,'НЕТ ' + ret norus1: - cmp [syslang],6 - jne noet1 - mov ebx,'SEES' - cmp eax,1 - je exitsub - mov ebx,'V─L.' - ret + cmp [syslang],6 + jne noet1 + mov ebx,'SEES' + cmp eax,1 + je exitsub + mov ebx,'V─L.' + ret ;-------------------------------------- noet1: - mov ebx,'ON ' - cmp eax,1 - je exitsub - mov ebx,'OFF ' + mov ebx,'ON ' + cmp eax,1 + je exitsub + mov ebx,'OFF ' ;-------------------------------------- exitsub: - ret + ret ;------------------------------------------------------------------------------- _lba_read: - mcall 21,11,[lba_read] - ret + mcall 21,11,[lba_read] + ret ;------------------------------------------------------------------------------- _pci_acc: - mcall 21,12,[pci_acc] - ret + mcall 21,12,[pci_acc] + ret ;------------------------------------------------------------------------------- _syslang: - mcall 21,5,[syslang] - ret + mcall 21,5,[syslang] + ret ;------------------------------------------------------------------------------- _mouse_speed: - mcall 18,19,1,[mouse_speed] - ret + mcall 18,19,1,[mouse_speed] + ret ;------------------------------------------------------------------------------- _mouse_delay: - mcall 18,19,3,[mouse_delay] - ret + mcall 18,19,3,[mouse_delay] + ret ;------------------------------------------------------------------------------- _speaker_mute: - mcall 18,8,1 - cmp [speaker_mute],eax - je @f - inc ecx - mcall 18 -;-------------------------------------- + mcall 18,8,1 + cmp [speaker_mute],eax + je @f + inc ecx + mcall 18 +;-------------------------------------- @@: - ret + ret ;------------------------------------------------------------------------------- loadtxt: - mov edi,text00 - mov ecx,LLL*(text1_strings + text2_strings)/4+1 - cmp [syslang],4 - jne loadet + mov edi,text00 + mov ecx,LLL*(text1_strings + text2_strings)/4+1 + cmp [syslang],4 + jne loadet - mov esi,textrus - jmp sload + mov esi,textrus + jmp sload loadet: - mov edi,text00 - mov ecx,LLL*(text1_strings + text2_strings)/4+1 - cmp [syslang],6 - jne norus - mov esi,textet - jmp sload + mov edi,text00 + mov ecx,LLL*(text1_strings + text2_strings)/4+1 + cmp [syslang],6 + jne norus + mov esi,textet + jmp sload ;-------------------------------------- norus: - mov esi,texteng + mov esi,texteng ;-------------------------------------- sload: - rep movsd - ret + rep movsd + ret ;------------------------------------------------------------------------------- cleantxt: - xor eax,eax - mov ecx,LLL*(text1_strings + text2_strings)/4 - cld - mov edi,text00 - rep stosd - mov [text00+1711],byte 'x' - ret + xor eax,eax + mov ecx,LLL*(text1_strings + text2_strings)/4 + cld + mov edi,text00 + rep stosd + mov [text00+1711],byte 'x' + ret ;------------------------------------------------------------------------------- ; DATA AREA -count: db 0x0 -blinkpar: dd 0x0 -time: dw 0x0 -date: dd 0x0 +count: db 0x0 +blinkpar: dd 0x0 +time: dw 0x0 +date: dd 0x0 ;------------------------------------------------------------------------------- textrus: - db 'Язык системы : ENGLISH - + Применить' - db 'Раскладка клавиатуры : ENGLISH - + Применить' - db 'Включить LBA : OFF - + Применить' - db 'Доступ к шине PCI : OFF - + Применить' - db 'Скорость курсора мыши : 1 - + Применить' - db 'Задержка ускорения мыши : 0x00a - + Применить' - db 'Выключить SPEAKER : OFF - + Применить' - - db 'ВНИМАНИЕ: Применить все ' - db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ Сохранить все ' + db 'Язык системы : ENGLISH - + Применить' + db 'Раскладка клавиатуры : ENGLISH - + Применить' + db 'Включить LBA : OFF - + Применить' + db 'Доступ к шине PCI : OFF - + Применить' + db 'Скорость курсора мыши : 1 - + Применить' + db 'Задержка ускорения мыши : 0x00a - + Применить' + db 'Выключить SPEAKER : OFF - + Применить' + + db 'ВНИМАНИЕ: Применить все ' + db 'НЕ ЗАБУДЬТЕ СОХРАНИТЬ НАСТРОЙКИ Сохранить все ' ;------------------------------------------------------------------------------- texteng: - db 'System language : ENGLISH - + Apply ' - db 'Keyboard layout : ENGLISH - + Apply ' - db 'LBA read enabled : OFF - + Apply ' - db 'PCI access for appl. : OFF - + Apply ' - db 'Mouse pointer speed : 1 - + Apply ' - db 'Mouse pointer delay : 0x00a - + Apply ' - db 'SPEAKER disabled : OFF - + Apply ' + db 'System language : ENGLISH - + Apply ' + db 'Keyboard layout : ENGLISH - + Apply ' + db 'LBA read enabled : OFF - + Apply ' + db 'PCI access for appl. : OFF - + Apply ' + db 'Mouse pointer speed : 1 - + Apply ' + db 'Mouse pointer delay : 0x00a - + Apply ' + db 'SPEAKER disabled : OFF - + Apply ' text1_strings = 7 - db 'NOTE: Apply all ' - db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI Save all ' + db 'NOTE: Apply all ' + db 'SAVE YOUR SETTINGS BEFORE QUITING KOLIBRI Save all ' textet: - db 'S№steemi keel : ENGLISH - + Kinnita ' - db 'Klaviatuuri paigutus : ENGLISH - + Kinnita ' - db 'LBA lugemine lubatud : V─L. - + Kinnita ' - db 'PCI juurdepффs programm. : V─L. - + Kinnita ' - db 'Hiire kursori kiirus : 1 - + Kinnita ' - db 'Hiire kursori viide : 0x00a - + Kinnita ' - db 'SPEAKER disabled : V─L. - + Kinnita ' - db 'M─RKUS: Kinnita kїik' - db 'SALVESTA SEADED ENNE KOLIBRIST V─LJUMIST Salvesta kїik' -text2_strings = 3 + db 'S№steemi keel : ENGLISH - + Kinnita ' + db 'Klaviatuuri paigutus : ENGLISH - + Kinnita ' + db 'LBA lugemine lubatud : V─L. - + Kinnita ' + db 'PCI juurdepффs programm. : V─L. - + Kinnita ' + db 'Hiire kursori kiirus : 1 - + Kinnita ' + db 'Hiire kursori viide : 0x00a - + Kinnita ' + db 'SPEAKER disabled : V─L. - + Kinnita ' + db 'M─RKUS: Kinnita kїik' + db 'SALVESTA SEADED ENNE KOLIBRIST V─LJUMIST Salvesta kїik' +text2_strings = 2 ;------------------------------------------------------------------------------- -title db 'System setup',0 +title db 'System setup',0 -hex db '0123456789ABCDEF' +hex db '0123456789ABCDEF' ;------------------------------------------------------------------------------- include 'keymaps.inc' ;------------------------------------------------------------------------------- read_fileinfo: - dd 0 - dd 0 - dd 0 - dd 28 - dd keyboard - db 0 - dd file_name + dd 0 + dd 0 + dd 0 + dd 28 + dd keyboard + db 0 + dd file_name ;------------------------------------------------------------------------------- save_fileinfo: - dd 2 - dd 0 - dd 0 - dd 28 - dd keyboard -file_name: db '/SYS/SETTINGS/SETUP.DAT',0 + dd 2 + dd 0 + dd 0 + dd 28 + dd keyboard +file_name: db '/SYS/SETTINGS/SETUP.DAT',0 ;------------------------------------------------------------------------------- -keyboard dd 0x0 -syslang dd 0x4 ; 4 - rus -lba_read dd 0x1 -pci_acc dd 0x1 -mouse_speed dd 0x2 -mouse_delay dd 0xa -speaker_mute dd 0 ; 0 - enable, 1 - disable +keyboard dd 0x0 +syslang dd 0x4 ; 4 - rus +lba_read dd 0x1 +pci_acc dd 0x1 +mouse_speed dd 0x2 +mouse_delay dd 0xa +speaker_mute dd 0 ; 0 - enable, 1 - disable ;----------------------------------------------------------------------------- IM_END: ;----------------------------------------------------------------------------- align 4 text00: - rb LLL*(text1_strings + text2_strings)+4 + rb LLL*(text1_strings + text2_strings)+4 ;----------------------------------------------------------------------------- align 4 boot_param: procinfo: - rb 1024 + rb 1024 ;----------------------------------------------------------------------------- align 4 - rb 0x1000 + rb 0x1000 stack_area: ;----------------------------------------------------------------------------- I_END: