a155b45b97
git-svn-id: svn://kolibrios.org@4825 a494cfbc-eb01-0410-851d-a64ba20cac60
887 lines
19 KiB
NASM
887 lines
19 KiB
NASM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;; ;;
|
||
;; 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
|
||
; changes: Add the flag of speaker mute.
|
||
; Correcting setup.dat
|
||
;---------------------------------------------------------------------
|
||
; version: 1.14
|
||
; last update: 20/03/2012
|
||
; changed by: Marat Zakiyanov aka Mario79, aka Mario
|
||
; changes: optimisations and code refactoring
|
||
;---------------------------------------------------------------------
|
||
; Authors: Ville - original version
|
||
; A. Ivushkin - autostart (w launcher)
|
||
; M. Lisovin - added many feauters (apply all, save all, set time...)
|
||
; I. Poddubny - fixed russian keymap
|
||
;14/08/06 Mario79 - added regulation of mouse features
|
||
;-------------------------------------------------------------------------------
|
||
format binary as ""
|
||
|
||
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
|
||
;-------------------------------------------------------------------------------
|
||
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
|
||
;-------------------------------------------------------------------------------
|
||
apply_all_and_exit:
|
||
mcall 70,read_fileinfo
|
||
call apply_all
|
||
jmp close
|
||
;-------------------------------------------------------------------------------
|
||
set_language_and_exit:
|
||
mcall 26,2,9
|
||
cmp eax,1
|
||
je russian
|
||
|
||
xor eax,eax
|
||
;--------------------------------------
|
||
set_lang_now:
|
||
mov [keyboard],eax
|
||
call _keyboard
|
||
jmp close
|
||
;--------------------------------------
|
||
russian:
|
||
mov eax,3
|
||
jmp set_lang_now
|
||
;-------------------------------------------------------------------------------
|
||
set_syslanguage_and_exit:
|
||
mcall 26,5
|
||
cmp eax,6
|
||
jne temp
|
||
xor eax,eax
|
||
;--------------------------------------
|
||
temp:
|
||
inc eax
|
||
mov [syslang],eax
|
||
call _syslang
|
||
jmp close
|
||
;-------------------------------------------------------------------------------
|
||
get_setup_values:
|
||
mcall 26,2,9
|
||
dec eax
|
||
mov [keyboard],eax
|
||
|
||
mcall 26,5
|
||
mov [syslang],eax
|
||
|
||
mcall 26,11
|
||
mov [lba_read],eax
|
||
|
||
mcall 26,12
|
||
mov [pci_acc],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
|
||
;-------------------------------------------------------------------------------
|
||
START:
|
||
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 'BOOT'
|
||
je apply_all_and_exit
|
||
|
||
call get_setup_values
|
||
call loadtxt
|
||
call draw_infotext
|
||
;-------------------------------------------------------------------------------
|
||
red:
|
||
call draw_window
|
||
;-------------------------------------------------------------------------------
|
||
still:
|
||
sysevent:
|
||
mcall 23,8 ; wait here for event with timeout
|
||
cmp eax,1
|
||
jz red
|
||
|
||
cmp eax,2
|
||
jz key
|
||
|
||
cmp eax,3
|
||
jz button
|
||
|
||
jmp still
|
||
;-------------------------------------------------------------------------------
|
||
key:
|
||
mcall 2
|
||
jmp still
|
||
;-------------------------------------------------------------------------------
|
||
button:
|
||
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
|
||
;--------------------------------------
|
||
no_apply_all:
|
||
cmp ah,1 ; CLOSE APPLICATION
|
||
jne no_close
|
||
;--------------------------------------
|
||
close:
|
||
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
|
||
;--------------------------------------
|
||
downuplbl:
|
||
mov eax,7
|
||
;--------------------------------------
|
||
nodownup:
|
||
mov [keyboard],eax
|
||
call draw_infotext
|
||
;--------------------------------------
|
||
nokm:
|
||
cmp ah,5
|
||
jnz nokp
|
||
mov eax,[keyboard]
|
||
cmp eax,7
|
||
je updownlbl
|
||
inc eax
|
||
jmp noupdown
|
||
;--------------------------------------
|
||
updownlbl:
|
||
xor eax,eax
|
||
;--------------------------------------
|
||
noupdown:
|
||
mov [keyboard],eax
|
||
call draw_infotext
|
||
;--------------------------------------
|
||
nokp:
|
||
cmp ah,92 ; SET LBA READ
|
||
jne no_lba_d
|
||
;--------------------------------------
|
||
slbal:
|
||
btc [lba_read],0
|
||
call draw_infotext
|
||
jmp still
|
||
;--------------------------------------
|
||
no_lba_d:
|
||
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
|
||
;--------------------------------------
|
||
no_set_lba_read:
|
||
cmp ah,102 ; SET PCI ACCESS
|
||
jne no_pci_d
|
||
;--------------------------------------
|
||
pcip:
|
||
btc [pci_acc],0
|
||
call draw_infotext
|
||
jmp still
|
||
;--------------------------------------
|
||
no_pci_d:
|
||
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
|
||
;--------------------------------------
|
||
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
|
||
;--------------------------------------
|
||
nosysm:
|
||
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
|
||
;--------------------------------------
|
||
nosyss:
|
||
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
|
||
;--------------------------------------
|
||
.nominus:
|
||
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
|
||
;--------------------------------------
|
||
.noplus:
|
||
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
|
||
;--------------------------------------
|
||
@@:
|
||
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
|
||
;--------------------------------------
|
||
@@:
|
||
inc eax
|
||
mov [mouse_delay],eax
|
||
call draw_infotext
|
||
;--------------------------------------
|
||
.noplus:
|
||
cmp ah,141
|
||
jnz speakermute
|
||
call _mouse_delay
|
||
;--------------------------------------
|
||
speakermute:
|
||
cmp ah,152 ; SET SPEAKER
|
||
jne no_speaker_d
|
||
;--------------------------------------
|
||
speaker_p:
|
||
btc [speaker_mute],0
|
||
call draw_infotext
|
||
jmp still
|
||
;--------------------------------------
|
||
no_speaker_d:
|
||
cmp ah,153
|
||
jne no_speaker_i
|
||
jmp speaker_p
|
||
;--------------------------------------
|
||
no_speaker_i:
|
||
cmp ah,151
|
||
jne .noapply
|
||
call _speaker_mute
|
||
jmp still
|
||
;--------------------------------------
|
||
.noapply:
|
||
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
|
||
|
||
mcall 21,,9,1
|
||
call alt_gen
|
||
;--------------------------------------
|
||
nosetkeyle:
|
||
cmp [keyboard],1 ; finnish
|
||
jnz nosetkeylfi
|
||
|
||
mcall 21,2,1,fi_keymap
|
||
|
||
inc ecx
|
||
mcall 21,,,fi_keymap_shift
|
||
|
||
mcall 21,,9,2
|
||
call alt_gen
|
||
;--------------------------------------
|
||
nosetkeylfi:
|
||
cmp [keyboard],2 ; german
|
||
jnz nosetkeylge
|
||
|
||
mcall 21,2,1,ge_keymap
|
||
|
||
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
|
||
|
||
mcall 21,,9,4
|
||
call alt_gen
|
||
;--------------------------------------
|
||
nosetkeylru:
|
||
cmp [keyboard],4 ;french
|
||
jnz nosetkeylfr
|
||
|
||
mcall 21,2,1,fr_keymap
|
||
|
||
inc ecx
|
||
mcall 21,,,fr_keymap_shift
|
||
|
||
inc ecx
|
||
mcall 21,,,fr_keymap_alt_gr
|
||
|
||
mcall 21,,9,5
|
||
;--------------------------------------
|
||
nosetkeylfr:
|
||
cmp [keyboard],5 ; estonian
|
||
jnz nosetkeylet
|
||
|
||
mcall 21,2,1,et_keymap
|
||
|
||
inc ecx
|
||
mcall 21,,,et_keymap_shift
|
||
|
||
mcall 21,,9,6
|
||
call alt_gen
|
||
;--------------------------------------
|
||
nosetkeylet:
|
||
cmp [keyboard],6 ;belgian
|
||
jnz nosetkeylit
|
||
|
||
mcall 21,2,1,be_keymap
|
||
|
||
inc ecx
|
||
mcall 21,,,be_keymap_shift
|
||
|
||
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
|
||
;--------------------------------------
|
||
|
||
nosetkeylbe:
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
alt_gen:
|
||
mcall 21,,3,alt_general
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
draw_buttons:
|
||
pusha
|
||
shl ecx,16
|
||
add ecx,12
|
||
mcall 8,<(350-57),(46+BBB)>
|
||
|
||
inc edx
|
||
mcall ,<(350-85),9>
|
||
|
||
inc edx
|
||
mcall ,<(350-73),9>
|
||
|
||
popa
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
; ********************************************
|
||
; ******* WINDOW DEFINITIONS AND DRAW *******
|
||
; ********************************************
|
||
draw_window:
|
||
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
|
||
|
||
mcall 8,<(350-85),100>,<(5+16*8),12>,100,0x005588dd ; APPLY ALL
|
||
|
||
add ecx,16*65536 ; SAVE ALL
|
||
dec edx
|
||
mcall
|
||
|
||
mov esi,0x5580c0
|
||
|
||
mov edx,41
|
||
mov ecx,5+0*8
|
||
call draw_buttons
|
||
|
||
mov edx,3
|
||
mov ecx,5+2*8
|
||
call draw_buttons
|
||
|
||
mov edx,91
|
||
mov ecx,5+4*8
|
||
call draw_buttons
|
||
|
||
mov edx,101
|
||
mov ecx,5+6*8
|
||
call draw_buttons
|
||
|
||
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
|
||
;-------------------------------------------------------------------------------
|
||
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 '
|
||
;--------------------------------------
|
||
noen:
|
||
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 '
|
||
;--------------------------------------
|
||
noge:
|
||
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 '
|
||
;--------------------------------------
|
||
nofr:
|
||
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 '
|
||
;--------------------------------------
|
||
nobe:
|
||
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 '
|
||
;--------------------------------------
|
||
noen5:
|
||
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 '
|
||
;--------------------------------------
|
||
noge5:
|
||
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 '
|
||
;--------------------------------------
|
||
nofr5:
|
||
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,[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,[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
|
||
|
||
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
|
||
|
||
mov ebp,text2_strings
|
||
add ebx,8+8
|
||
;--------------------------------------
|
||
@@:
|
||
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
|
||
;-------------------------------------------------------------------------------
|
||
onoff:
|
||
cmp [syslang],4
|
||
jne norus1
|
||
mov ebx,'<27><> '
|
||
cmp eax,1
|
||
je exitsub
|
||
mov ebx,'<27><><EFBFBD> '
|
||
ret
|
||
norus1:
|
||
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 '
|
||
;--------------------------------------
|
||
exitsub:
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
_lba_read:
|
||
mcall 21,11,[lba_read]
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
_pci_acc:
|
||
mcall 21,12,[pci_acc]
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
_syslang:
|
||
mcall 21,5,[syslang]
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
_mouse_speed:
|
||
mcall 18,19,1,[mouse_speed]
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
_mouse_delay:
|
||
mcall 18,19,3,[mouse_delay]
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
_speaker_mute:
|
||
mcall 18,8,1
|
||
cmp [speaker_mute],eax
|
||
je @f
|
||
inc ecx
|
||
mcall 18
|
||
;--------------------------------------
|
||
@@:
|
||
ret
|
||
;-------------------------------------------------------------------------------
|
||
loadtxt:
|
||
mov edi,text00
|
||
mov ecx,LLL*(text1_strings + text2_strings)/4+1
|
||
cmp [syslang],4
|
||
jne loadet
|
||
|
||
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
|
||
;--------------------------------------
|
||
norus:
|
||
mov esi,texteng
|
||
;--------------------------------------
|
||
sload:
|
||
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
|
||
;-------------------------------------------------------------------------------
|
||
; DATA AREA
|
||
count: db 0x0
|
||
blinkpar: dd 0x0
|
||
time: dw 0x0
|
||
date: dd 0x0
|
||
;-------------------------------------------------------------------------------
|
||
textrus:
|
||
db '<27><><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD> : ENGLISH - + <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD>'
|
||
db '<27><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : ENGLISH - + <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD>'
|
||
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LBA : OFF - + <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD>'
|
||
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 設<> PCI : OFF - + <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD>'
|
||
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> : 1 - + <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD>'
|
||
db '<27><><EFBFBD><EFBFBD>প<EFBFBD> <20>७<E1AAAE><E0A5AD> <20><><EFBFBD><EFBFBD> : 0x00a - + <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD>'
|
||
db '<27>몫<EFBFBD><EBAAAB><EFBFBD><EFBFBD><EFBFBD> SPEAKER : OFF - + <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD>'
|
||
|
||
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> '
|
||
db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD> '
|
||
;-------------------------------------------------------------------------------
|
||
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 '
|
||
text1_strings = 7
|
||
|
||
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<65><70>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
|
||
|
||
hex db '0123456789ABCDEF'
|
||
;-------------------------------------------------------------------------------
|
||
include 'keymaps.inc'
|
||
;-------------------------------------------------------------------------------
|
||
read_fileinfo:
|
||
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
|
||
;-------------------------------------------------------------------------------
|
||
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
|
||
;-----------------------------------------------------------------------------
|
||
align 4
|
||
boot_param:
|
||
procinfo:
|
||
rb 1024
|
||
;-----------------------------------------------------------------------------
|
||
align 4
|
||
rb 0x1000
|
||
stack_area:
|
||
;-----------------------------------------------------------------------------
|
||
I_END:
|
||
;------------------------------------------------------------------------------- |