Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 5848 → Rev 5849

/programs/system/setup/trunk/setup.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:executable
-*
\ No newline at end of property
Deleted: svn:mime-type
-application/octet-stream
\ No newline at end of property
/programs/system/setup/trunk/keymaps.inc
1,18 → 1,5
alt_general:
 
; db ' ',27
; db ' @ $ {[]}\ ',8,9
; db ' ',13
; db ' ',0,' ',0,'4',0,' '
; db ' ',180,178,184,'6',176,'7'
; db 179,'8',181,177,183,185,182
; db 'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 
en_keymap:
 
db '6',27
db '1234567890-=',8,9
db 'qwertyuiop[]',13
20,12 → 7,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
en_keymap_shift:
 
db '6',27
db '!@#$%^&*()_+',8,9
db 'QWERTYUIOP{}',13
33,16 → 17,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
 
 
 
 
fr_keymap:
 
db '6',27
db '&Ž"',39,'(-_“)=',8,9
db 'azertyuiop',136,'$',13
50,12 → 27,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
fr_keymap_shift:
 
db '6',27
db '1234567890+',8,9
db 'AZERTYUIOP•”',13
63,12 → 37,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
fr_keymap_alt_gr:
 
db '6',27
db 28,'~#{[|˜\^@]}',8,9
db 'azertyuiop^$',13
76,15 → 47,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
 
 
 
fi_keymap:
 
db '6',27
db '1234567890+[',8,9
db 'qwertyuiop',192,'~',13
92,12 → 57,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
fi_keymap_shift:
 
db '6',27
db '!"#%&/()=?]',8,9
db 'QWERTYUIOP',200,'~',13
105,16 → 67,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
 
 
 
 
ge_keymap:
 
db '6',27
db '1234567890?[',8,9
db 'qwertzuiop',203,'~',13
122,12 → 77,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
ge_keymap_shift:
 
db '6',27
db '!"#$%&/()=',197,']',8,9
db 'QWERTZUIOP',195,'~',13
135,15 → 87,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
 
 
 
ru_keymap:
 
db '6',27
db '1234567890-=',8,9
db '©æ㪥­£èé§åê',13
153,12 → 99,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
ru_keymap_shift:
 
db '6',27
db '!"N;%:?*()_+',8,0
db "‰–“Š…ƒ˜™‡•š",13
168,15 → 111,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
 
 
 
et_keymap:
 
db '6',27
db '1234567890+´',8,9
db 'qwertyuiopüõ',13
184,12 → 121,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
et_keymap_shift:
 
db '6',27
db '!"#¤%&/()=?`',8,9
db 'QWERTYUIOPÜÕ',13
197,14 → 131,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
 
 
be_keymap:
 
db '6',27
db '&é"',39,'(§è!çà)-',8,9
db 'azertyuiop',136,'$',13
212,12 → 141,9
db '@2345-7+90123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
be_keymap_shift:
 
db '6',27
db '1234567890°_',8,9
db 'AZERTYUIOP¨*',13
225,12 → 151,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
 
be_keymap_alt_gr:
 
db '6',27
db '|@#',0,0,'^',0,0,'{}',0,0,8,9
db 'az€rtyuiop[]',13
238,12 → 161,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB\D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
it_keymap:
db '6',27
db '1234567890',39,0,8,9
db 'qwertyuiop',0,'+',13
251,12 → 171,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
it_keymap_shift:
 
db '6',27
db '!"',0,'$%&/()=?^',8,9
db 'QWERTYUIOP',0,'*',13
264,12 → 181,9
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
it_keymap_alt_gr:
 
db '6',27
db 172,185,178,179,188,189,172,'{[]}',96,'~',8,9
db 'qwertyuiop[]',13
277,7 → 191,4
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQR'
/programs/system/setup/trunk/setup.asm
1,112 → 1,102
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; DEVICE SETUP ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; version: 1.17
; last update: 30/07/2015
; changed by: Kiril Lipatov, aka Leency
; changes: Mouse speed and mouse delay options moved to mouse_cfg
;---------------------------------------------------------------------
; 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
;-------------------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;
;; SYSTEM SETTINGS ;;
;;;;;;;;;;;;;;;;;;;;;;;
 
format binary as ""
 
use32
org 0x0
org 0
 
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'
dd 1
dd START
dd IM_END
dd I_END
dd stack_area
dd boot_param
dd 0
 
include '../../../macros.inc'
;-------------------------------------------------------------------------------
LLL equ (56+3)
BBB equ 25
;-------------------------------------------------------------------------------
apply_all:
call _pci_acc ;12
call _syslang ;5
call _keyboard ;2
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
;-------------------------------------------------------------------------------
jmp @b
;---------------------------------------------------------------
set_syslanguage_and_exit:
mcall 26,5
cmp eax,6
jne temp
jne @f
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
 
;---------------------------------------------------------------
apply_all_and_exit:
mov byte[fileinfo],0
mcall 70,fileinfo
call apply_all
jmp close
;---------------------------------------------------------------
apply_all:
call fontApply
call _syslang
call _lba_read
call _pci_acc
call _speaker_mute
call _keyboard
ret
;---------------------------------------------------------------
_syslang:
mcall 21,5,[syslang]
jmp loadtxt
;---------------------------------------------------------------
_lba_read:
mcall 21,11,[lba_read]
ret
;---------------------------------------------------------------
_pci_acc:
mcall 21,12,[pci_acc]
ret
;---------------------------------------------------------------
fontApply:
mcall 48,10,[fontSmoothing]
ret
;---------------------------------------------------------------
_speaker_mute:
mcall 18,8,1
mov [speaker_mute],eax
cmp [speaker_mute],eax
je @f
inc ecx
mcall 18
@@:
ret
;-------------------------------------------------------------------------------
;---------------------------------------------------------------
_keyboard:
mov ebp,[keyboard]
mov edx,[ebp*4+keymapTab]
mcall 21,2,1
inc ecx
mov edx,[ebp*4+shiftKeymapTab]
mcall 21
inc ecx
mov edx,[ebp*4+altKeymapTab]
mcall 21
mov edx,ebp
inc edx
mov cl, 9
mcall 21
ret
;---------------------------------------------------------------
START:
mov eax,boot_param
cmp [eax],dword 'SLAN'
117,488 → 107,213
 
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
; get current settings
mcall 26,2,9
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
 
mcall 26,5
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:
;--------------------------------------
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
mcall 26,11
mov [lba_read],eax
 
inc ecx
mcall 21,,,en_keymap_shift
mcall 26,12
mov [pci_acc],eax
 
mcall 21,,9,1
call alt_gen
;--------------------------------------
nosetkeyle:
cmp [keyboard],1 ; finnish
jnz nosetkeylfi
mcall 18,8,1
mov [speaker_mute],eax
 
mcall 21,2,1,fi_keymap
mcall 48,9
mov [fontSmoothing],eax
 
inc ecx
mcall 21,,,fi_keymap_shift
call loadtxt
 
mcall 21,,9,2
call alt_gen
;--------------------------------------
nosetkeylfi:
cmp [keyboard],2 ; german
jnz nosetkeylge
draw_infotext:
mov eax,[syslang]
mov edi,[text]
lea esi,[eax*8+langs-8]
add edi,28
movsd
movsd
 
mcall 21,2,1,ge_keymap
mov eax,[keyboard]
add edi,LLL-8
lea esi,[eax*8+langs]
movsd
movsd
add edi,LLL-8
 
inc ecx
mcall 21,,,ge_keymap_shift
mov eax,[lba_read]
call onoff
mov [edi],ebx
 
mcall 21,,9,3
call alt_gen
;--------------------------------------
nosetkeylge:
cmp [keyboard],3 ; russian
jnz nosetkeylru
mov eax,[pci_acc]
call onoff
mov [edi+LLL],ebx
 
mcall 21,2,1,ru_keymap
mov eax,[speaker_mute]
call onoff
mov [edi+LLL*2],ebx
 
inc ecx
mcall 21,,,ru_keymap_shift
mov ebx,'SUBP'
mov ecx,'IXEL'
cmp [fontSmoothing],2
jz @f
mov eax,[fontSmoothing]
call onoff
mov ecx,' '
@@:
mov [edi+LLL*3],ebx
mov [edi+LLL*3+4],ecx
 
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)>
 
draw_window:
mcall 12,1
mov ecx,50*65536+32*(4+stringsAmount)
mcall 0,<50,700>,,0xB4111199,0,title
; Main buttons
mov eax,8
mov ecx,6*65536+26
mov edx,4
mov esi,0x5580c0
mov ebp,stringsAmount
@@:
mcall ,<490,24>
inc edx
mcall ,<(350-85),9>
 
mcall ,<526,24>
inc edx
mcall ,<(350-73),9>
 
popa
ret
;-------------------------------------------------------------------------------
; ********************************************
; ******* WINDOW DEFINITIONS AND DRAW *******
; ********************************************
draw_window:
pusha
mcall 12,1
 
mcall 0,<40,(355+BBB)>,<40,(10*16)>,0xB4111199,0,title ; DRAW WINDOW
 
mcall 9,procinfo,-1
 
mov eax,[ebx+70] ;status of window
test eax,100b
jne .end
 
mcall 8,<(350-85),100>,<(5+16*6),12>,100,0x005588dd ; APPLY ALL
 
add ecx,16*65536 ; SAVE ALL
mcall ,<562,120>
inc edx
add ecx,32*65536
dec ebp
jnz @b
; APPLY ALL
add ecx,32*65536
mcall ,<514,168>,,3,0x005588dd
; SAVE ALL
add ecx,32*65536
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,151
mov ecx,5+8*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*4+28],ebx
 
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
; text
mov eax,4
mov ecx,0xffffff
mov ebx,6*65536+11
mov ecx,1ffffffh
mov edx,[text]
mov esi,LLL
mov ebp,text1_strings
;--------------------------------------
mov ebp,stringsAmount
newline:
mcall
add ebx,8+8
add ebx,32
add edx,esi
dec ebp
jnz newline
 
mov ebp,text2_strings
add ebx,8+8
;--------------------------------------
mov ebp,2
add ebx,32
@@:
mcall
add ebx,8+8
add ebx,32
add edx,esi
dec ebp
jnz @b
 
mcall 12,2
 
still:
mcall 10
cmp eax,1
jz draw_window
 
cmp eax,2
jz key
 
cmp eax,3
jz button
 
jmp still
;---------------------------------------------------------------
key:
mcall 2
jmp still
;---------------------------------------------------------------
button:
mcall 17
shr eax,8
call dword[eax*4+buttonTab-4]
jmp draw_infotext
close:
pop eax
mcall -1
saveAll:
mov byte[fileinfo],2
mcall 70,fileinfo
ret
;-------------------------------------------------------------------------------
language1:
dec [syslang]
jnz @f
mov [syslang],6
ret
language2:
inc [syslang]
cmp [syslang],7
jnz @f
mov [syslang],1
ret
layout1:
dec [keyboard]
jns @f
mov [keyboard],7
ret
layout2:
inc [keyboard]
cmp [keyboard],8
jnz @f
mov [keyboard],0
ret
LBA1:
btr [lba_read],0
ret
LBA2:
bts [lba_read],0
ret
PCI1:
btr [pci_acc],0
ret
PCI2:
bts [pci_acc],0
ret
SPEAKER1:
btr [speaker_mute],0
ret
SPEAKER2:
bts [speaker_mute],0
ret
font1:
cmp [fontSmoothing],0
jz @f
dec [fontSmoothing]
ret
font2:
cmp [fontSmoothing],2
jz @f
inc [fontSmoothing]
@@:
ret
;---------------------------------------------------------------
loadtxt:
cmp [syslang],4
jne @f
mov [text],textrus
ret
@@:
cmp [syslang],6
jne @f
mov [text],textet
ret
@@:
mov [text],texteng
ret
;---------------------------------------------------------------
onoff:
cmp [syslang],4
jne norus1
615,149 → 330,128
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
;-------------------------------------------------------------------------------
_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
;---------------------------------------------------------------
align 4
buttonTab: ; button handler pointers: -,+,apply
dd close
dd saveAll
dd apply_all
dd language1
dd language2
dd _syslang
dd layout1
dd layout2
dd _keyboard
dd LBA1
dd LBA2
dd _lba_read
dd PCI1
dd PCI2
dd _pci_acc
dd SPEAKER1
dd SPEAKER2
dd _speaker_mute
dd font1
dd font2
dd fontApply
keymapTab:
dd en_keymap
dd fi_keymap
dd ge_keymap
dd ru_keymap
dd fr_keymap
dd et_keymap
dd be_keymap
dd it_keymap
shiftKeymapTab:
dd en_keymap_shift
dd fi_keymap_shift
dd ge_keymap_shift
dd ru_keymap_shift
dd fr_keymap_shift
dd et_keymap_shift
dd be_keymap_shift
dd it_keymap_shift
altKeymapTab:
dd alt_general
dd alt_general
dd alt_general
dd alt_general
dd fr_keymap_alt_gr
dd alt_general
dd be_keymap_alt_gr
dd it_keymap_alt_gr
 
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
;-------------------------------------------------------------------------------
setup.dat: ; file structure
syslang dd 0
keyboard dd 0
lba_read dd 0
pci_acc dd 0
speaker_mute dd 0
fontSmoothing dd 0
 
fileinfo:
dd 0
dd 0
dd 0
dd 4*6
dd setup.dat
db '/SYS/SETTINGS/SETUP.DAT',0
 
title db 'System settings',0
hex db '0123456789ABCDEF'
 
LLL = 56
stringsAmount = 6
 
align 4
text dd 0
langs:
db 'ENGLISH FINNISH GERMAN RUSSIAN FRENCH ESTONIANBELGIAN ITALIAN '
 
textrus:
db 'Ÿ§ëª á¨á⥬ë : ENGLISH - + à¨¬¥­¨âì'
db ' áª« ¤ª  ª« ¢¨ âãàë : ENGLISH - + à¨¬¥­¨âì'
db '‚ª«îç¨âì LBA : OFF - + à¨¬¥­¨âì'
db '„®áâ㯠ª 設¥ PCI : OFF - + à¨¬¥­¨âì'
db '‚몫îç¨âì SPEAKER : OFF - + à¨¬¥­¨âì'
db 'Ÿ§ëª á¨á⥬ë : < > à¨¬¥­¨âì'
db ' áª« ¤ª  ª« ¢¨ âãàë : < > à¨¬¥­¨âì'
db '‚ª«îç¨âì LBA : - + à¨¬¥­¨âì'
db '„®áâ㯠ª 設¥ PCI : - + à¨¬¥­¨âì'
db '‚몫îç¨âì SPEAKER : - + à¨¬¥­¨âì'
db '‘£« ¦¨¢ ­¨¥ èà¨ä⮢ : - + à¨¬¥­¨âì'
 
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 'SPEAKER disabled : OFF - + Apply '
text1_strings = 5
db 'System language : < > Apply '
db 'Keyboard layout : < > Apply '
db 'LBA read enabled : - + Apply '
db 'PCI access for appl. : - + Apply '
db 'SPEAKER disabled : - + Apply '
db 'Font smoothing : - + Apply '
 
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 'SPEAKER disabled : VÄL. - + Kinnita '
db 'Süsteemi keel : < > Kinnita '
db 'Klaviatuuri paigutus : < > Kinnita '
db 'LBA lugemine lubatud : - + Kinnita '
db 'PCI juurdepääs programm. : - + Kinnita '
db 'SPEAKER disabled : - + Kinnita '
db 'Font smoothing : - + 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
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:
;-------------------------------------------------------------------------------
I_END: