Rev 2434 | Rev 3500 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
750 | victor | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
||
2465 | Serge | 3 | ;; Copyright (C) KolibriOS team 2004-2011. All rights reserved. ;; |
750 | victor | 4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
||
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
7 | |||
488 | spraid | 8 | ;------------------------------------------------------------------------- |
535 | spraid | 9 | ;Loading configuration from ini file |
10 | ; {SPraid.simba} |
||
488 | spraid | 11 | ;------------------------------------------------------------------------- |
12 | |||
593 | mikedld | 13 | $Revision: 2465 $ |
14 | |||
1276 | Lrz | 15 | iglobal |
2434 | Serge | 16 | conf_path_sect: |
17 | db 'path',0 |
||
488 | spraid | 18 | |
525 | diamond | 19 | conf_fname db '/sys/sys.conf',0 |
1276 | Lrz | 20 | endg |
535 | spraid | 21 | ; set soke kernel configuration |
497 | spraid | 22 | proc set_kernel_conf |
802 | serge | 23 | locals |
24 | par db 30 dup(?) |
||
25 | endl |
||
26 | |||
27 | pushad |
||
28 | ;[gui] |
||
29 | ;mouse_speed |
||
30 | |||
2434 | Serge | 31 | lea eax, [par] |
32 | push eax |
||
33 | invoke ini.get_str, conf_fname, ugui, ugui_mouse_speed, \ |
||
34 | eax,30, ugui_mouse_speed_def |
||
35 | pop eax |
||
36 | stdcall strtoint, eax |
||
536 | diamond | 37 | mov [mouse_speed_factor], ax |
802 | serge | 38 | |
39 | ;mouse_delay |
||
2434 | Serge | 40 | lea eax, [par] |
41 | push eax |
||
42 | invoke ini.get_str, conf_fname, ugui, ugui_mouse_delay, \ |
||
43 | eax,30, ugui_mouse_delay_def |
||
44 | pop eax |
||
45 | stdcall strtoint, eax |
||
536 | diamond | 46 | mov [mouse_delay], eax |
494 | spraid | 47 | |
802 | serge | 48 | |
49 | ;midibase |
||
2434 | Serge | 50 | lea eax, [par] |
51 | push eax |
||
52 | invoke ini.get_str, conf_fname, udev, udev_midibase, eax, 30, udev_midibase_def |
||
53 | pop eax |
||
54 | stdcall strtoint, eax |
||
802 | serge | 55 | |
536 | diamond | 56 | cmp eax, 0x100 |
57 | jb @f |
||
58 | cmp eax, 0x10000 |
||
59 | jae @f |
||
60 | mov [midi_base], ax |
||
61 | mov [mididp], eax |
||
62 | inc eax |
||
63 | mov [midisp], eax |
||
64 | @@: |
||
802 | serge | 65 | popad |
66 | ret |
||
494 | spraid | 67 | endp |
1276 | Lrz | 68 | iglobal |
494 | spraid | 69 | ugui db 'gui',0 |
70 | ugui_mouse_speed db 'mouse_speed',0 |
||
497 | spraid | 71 | ugui_mouse_speed_def db '2',0 |
494 | spraid | 72 | ugui_mouse_delay db 'mouse_delay',0 |
497 | spraid | 73 | ugui_mouse_delay_def db '0x00A',0 |
494 | spraid | 74 | |
75 | udev db 'dev',0 |
||
76 | udev_midibase db 'midibase',0 |
||
497 | spraid | 77 | udev_midibase_def db '0x320',0 |
1276 | Lrz | 78 | endg |
535 | spraid | 79 | ;set up netvork configuration |
512 | spraid | 80 | proc set_network_conf |
81 | locals |
||
82 | par db 30 dup(?) |
||
83 | endl |
||
2434 | Serge | 84 | pushad |
802 | serge | 85 | |
512 | spraid | 86 | ;[net] |
87 | ;active |
||
2434 | Serge | 88 | lea eax, [par] |
89 | invoke ini.get_int, conf_fname, unet, unet_active, 0 |
||
90 | or eax, eax |
||
91 | jz .do_not_set_net |
||
536 | diamond | 92 | mov eax, [stack_config] |
93 | and eax, 0xFFFFFF80 |
||
94 | add eax, 3 |
||
95 | mov [stack_config], eax |
||
96 | call ash_eth_enable |
||
802 | serge | 97 | |
512 | spraid | 98 | ;addr |
2434 | Serge | 99 | lea eax, [par] |
100 | push eax |
||
101 | invoke ini.get_str, conf_fname, unet, unet_addr, eax, 30, unet_def |
||
102 | pop eax |
||
103 | stdcall do_inet_adr, eax |
||
536 | diamond | 104 | mov [stack_ip], eax |
802 | serge | 105 | |
512 | spraid | 106 | ;mask |
2434 | Serge | 107 | lea eax, [par] |
108 | push eax |
||
109 | invoke ini.get_str, conf_fname, unet, unet_mask, eax, 30, unet_def |
||
110 | pop eax |
||
111 | stdcall do_inet_adr, eax |
||
536 | diamond | 112 | mov [subnet_mask], eax |
802 | serge | 113 | |
512 | spraid | 114 | ;gate |
2434 | Serge | 115 | lea eax, [par] |
116 | push eax |
||
117 | invoke ini.get_str, conf_fname, unet, unet_gate, eax, 30, unet_def |
||
118 | pop eax |
||
119 | stdcall do_inet_adr, eax |
||
536 | diamond | 120 | mov [gateway_ip], eax |
802 | serge | 121 | .do_not_set_net: |
2434 | Serge | 122 | popad |
123 | ret |
||
512 | spraid | 124 | |
125 | |||
126 | endp |
||
1276 | Lrz | 127 | iglobal |
512 | spraid | 128 | unet db 'net',0 |
129 | unet_active db 'active',0 |
||
130 | unet_addr db 'addr',0 |
||
131 | unet_mask db 'mask',0 |
||
132 | unet_gate db 'gate',0 |
||
133 | unet_def db 0 |
||
1276 | Lrz | 134 | endg |
535 | spraid | 135 | ; convert string to DWord |
494 | spraid | 136 | proc strtoint stdcall,strs |
2434 | Serge | 137 | pushad |
802 | serge | 138 | |
2434 | Serge | 139 | mov eax, [strs] |
140 | inc eax |
||
141 | mov bl, [eax] |
||
142 | cmp bl, 'x' |
||
143 | je .hex |
||
144 | cmp bl, 'X' |
||
145 | je .hex |
||
146 | jmp .dec |
||
494 | spraid | 147 | .hex: |
2434 | Serge | 148 | inc eax |
149 | stdcall strtoint_hex, eax |
||
150 | jmp .exit |
||
494 | spraid | 151 | .dec: |
2434 | Serge | 152 | dec eax |
153 | stdcall strtoint_dec, eax |
||
494 | spraid | 154 | .exit: |
2434 | Serge | 155 | mov [esp+28], eax |
156 | popad |
||
157 | ret |
||
494 | spraid | 158 | endp |
159 | |||
535 | spraid | 160 | ; convert string to DWord for decimal value |
494 | spraid | 161 | proc strtoint_dec stdcall,strs |
2434 | Serge | 162 | pushad |
163 | xor edx, edx |
||
497 | spraid | 164 | ; поиск конца |
2434 | Serge | 165 | mov esi, [strs] |
497 | spraid | 166 | @@: |
2434 | Serge | 167 | lodsb |
168 | or al, al |
||
169 | jnz @b |
||
170 | mov ebx, esi |
||
171 | mov esi, [strs] |
||
172 | dec ebx |
||
173 | sub ebx, esi |
||
174 | mov ecx, 1 |
||
497 | spraid | 175 | |
176 | @@: |
||
2434 | Serge | 177 | dec ebx |
178 | or ebx, ebx |
||
179 | jz @f |
||
180 | imul ecx, ecx, 10; порядок |
||
181 | jmp @b |
||
497 | spraid | 182 | @@: |
183 | |||
2434 | Serge | 184 | xchg ebx, ecx |
497 | spraid | 185 | |
802 | serge | 186 | |
2434 | Serge | 187 | xor ecx, ecx |
494 | spraid | 188 | |
802 | serge | 189 | |
190 | @@: |
||
2434 | Serge | 191 | xor eax, eax |
192 | lodsb |
||
193 | cmp al, 0 |
||
194 | je .eend |
||
802 | serge | 195 | |
2434 | Serge | 196 | sub al, 30h |
197 | imul ebx |
||
198 | add ecx, eax |
||
199 | push ecx |
||
200 | xchg eax, ebx |
||
201 | mov ecx, 10 |
||
202 | div ecx |
||
203 | xchg eax, ebx |
||
204 | pop ecx |
||
205 | jmp @b |
||
802 | serge | 206 | |
497 | spraid | 207 | .eend: |
2434 | Serge | 208 | mov [esp+28], ecx |
209 | popad |
||
210 | ret |
||
494 | spraid | 211 | endp |
212 | |||
535 | spraid | 213 | ;convert string to DWord for hex value |
494 | spraid | 214 | proc strtoint_hex stdcall,strs |
2434 | Serge | 215 | pushad |
216 | xor edx, edx |
||
497 | spraid | 217 | |
2434 | Serge | 218 | mov esi, [strs] |
219 | mov ebx, 1 |
||
220 | add esi, 1 |
||
497 | spraid | 221 | |
222 | @@: |
||
2434 | Serge | 223 | lodsb |
224 | or al, al |
||
225 | jz @f |
||
226 | shl ebx, 4 |
||
227 | jmp @b |
||
497 | spraid | 228 | @@: |
2434 | Serge | 229 | xor ecx, ecx |
230 | mov esi, [strs] |
||
494 | spraid | 231 | |
802 | serge | 232 | @@: |
2434 | Serge | 233 | xor eax, eax |
234 | lodsb |
||
235 | cmp al, 0 |
||
236 | je .eend |
||
802 | serge | 237 | |
2434 | Serge | 238 | cmp al, 'a' |
239 | jae .bm |
||
240 | cmp al, 'A' |
||
241 | jae .bb |
||
242 | jmp .cc |
||
497 | spraid | 243 | .bm: ; 57h |
2434 | Serge | 244 | sub al, 57h |
245 | jmp .do |
||
802 | serge | 246 | |
497 | spraid | 247 | .bb: ; 37h |
2434 | Serge | 248 | sub al, 37h |
249 | jmp .do |
||
494 | spraid | 250 | |
497 | spraid | 251 | .cc: ; 30h |
2434 | Serge | 252 | sub al, 30h |
802 | serge | 253 | |
254 | .do: |
||
2434 | Serge | 255 | imul ebx |
256 | add ecx, eax |
||
257 | shr ebx, 4 |
||
494 | spraid | 258 | |
2434 | Serge | 259 | jmp @b |
497 | spraid | 260 | |
261 | .eend: |
||
2434 | Serge | 262 | mov [esp+28], ecx |
263 | popad |
||
264 | ret |
||
802 | serge | 265 | endp |
494 | spraid | 266 | |
267 | |||
535 | spraid | 268 | ; convert string to DWord for IP addres |
512 | spraid | 269 | proc do_inet_adr stdcall,strs |
2434 | Serge | 270 | pushad |
802 | serge | 271 | |
2434 | Serge | 272 | mov esi, [strs] |
273 | mov ebx, 0 |
||
512 | spraid | 274 | .next: |
2434 | Serge | 275 | push esi |
512 | spraid | 276 | @@: |
2434 | Serge | 277 | lodsb |
278 | or al, al |
||
279 | jz @f |
||
280 | cmp al, '.' |
||
281 | jz @f |
||
282 | jmp @b |
||
512 | spraid | 283 | @@: |
2434 | Serge | 284 | mov cl, al |
285 | mov [esi-1], byte 0 |
||
512 | spraid | 286 | ;pop eax |
2434 | Serge | 287 | call strtoint_dec |
288 | rol eax, 24 |
||
289 | ror ebx, 8 |
||
290 | add ebx, eax |
||
291 | or cl, cl |
||
292 | jz @f |
||
293 | jmp .next |
||
512 | spraid | 294 | @@: |
2434 | Serge | 295 | mov [esp+28], ebx |
296 | popad |
||
297 | ret |
||
512 | spraid | 298 | endp |