Subversion Repositories Kolibri OS

Rev

Rev 3555 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
750 victor 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
5565 serge 3
;; Copyright (C) KolibriOS team 2004-2015. 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: 5565 $
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
497 spraid 70
ugui_mouse_speed_def db '2',0
71
ugui_mouse_delay_def db '0x00A',0
494 spraid 72
udev_midibase db 'midibase',0
497 spraid 73
udev_midibase_def db '0x320',0
1276 Lrz 74
endg
802 serge 75
 
1276 Lrz 76
iglobal
3500 Serge 77
if lang eq sp
78
  include 'core/conf_lib-sp.inc'
79
else
80
  ugui_mouse_speed db 'mouse_speed',0
81
  ugui_mouse_delay db 'mouse_delay',0
82
  udev db 'dev',0
83
  unet db 'net',0
84
  unet_active db 'active',0
85
  unet_addr db 'addr',0
86
  unet_mask db 'mask',0
87
  unet_gate db 'gate',0
88
end if
512 spraid 89
unet_def db 0
1276 Lrz 90
endg
535 spraid 91
; convert string to DWord
494 spraid 92
proc strtoint stdcall,strs
2434 Serge 93
        pushad
802 serge 94
 
2434 Serge 95
        mov     eax, [strs]
96
        inc     eax
97
        mov     bl, [eax]
98
        cmp     bl, 'x'
99
        je      .hex
100
        cmp     bl, 'X'
101
        je      .hex
102
        jmp     .dec
494 spraid 103
.hex:
2434 Serge 104
        inc     eax
105
        stdcall strtoint_hex, eax
106
        jmp     .exit
494 spraid 107
.dec:
2434 Serge 108
        dec     eax
109
        stdcall strtoint_dec, eax
494 spraid 110
.exit:
2434 Serge 111
        mov     [esp+28], eax
112
        popad
113
        ret
494 spraid 114
endp
115
 
535 spraid 116
; convert string to DWord for decimal value
494 spraid 117
proc strtoint_dec stdcall,strs
2434 Serge 118
        pushad
119
        xor     edx, edx
3555 Serge 120
  ; поиск конца
2434 Serge 121
        mov     esi, [strs]
497 spraid 122
@@:
2434 Serge 123
        lodsb
124
        or      al, al
125
        jnz     @b
126
        mov     ebx, esi
127
        mov     esi, [strs]
128
        dec     ebx
129
        sub     ebx, esi
130
        mov     ecx, 1
497 spraid 131
 
132
@@:
2434 Serge 133
        dec     ebx
134
        or      ebx, ebx
135
        jz      @f
3555 Serge 136
        imul    ecx, ecx, 10; порядок
2434 Serge 137
        jmp     @b
497 spraid 138
@@:
139
 
2434 Serge 140
        xchg    ebx, ecx
497 spraid 141
 
802 serge 142
 
2434 Serge 143
        xor     ecx, ecx
494 spraid 144
 
802 serge 145
 
146
@@:
2434 Serge 147
        xor     eax, eax
148
        lodsb
149
        cmp     al, 0
150
        je      .eend
802 serge 151
 
2434 Serge 152
        sub     al, 30h
153
        imul    ebx
154
        add     ecx, eax
155
        push    ecx
156
        xchg    eax, ebx
157
        mov     ecx, 10
158
        div     ecx
159
        xchg    eax, ebx
160
        pop     ecx
161
        jmp     @b
802 serge 162
 
497 spraid 163
.eend:
2434 Serge 164
        mov     [esp+28], ecx
165
        popad
166
        ret
494 spraid 167
endp
168
 
535 spraid 169
;convert string to DWord for hex value
494 spraid 170
proc strtoint_hex stdcall,strs
2434 Serge 171
        pushad
172
        xor     edx, edx
497 spraid 173
 
2434 Serge 174
        mov     esi, [strs]
175
        mov     ebx, 1
176
        add     esi, 1
497 spraid 177
 
178
@@:
2434 Serge 179
        lodsb
180
        or      al, al
181
        jz      @f
182
        shl     ebx, 4
183
        jmp     @b
497 spraid 184
@@:
2434 Serge 185
        xor     ecx, ecx
186
        mov     esi, [strs]
494 spraid 187
 
802 serge 188
@@:
2434 Serge 189
        xor     eax, eax
190
        lodsb
191
        cmp     al, 0
192
        je      .eend
802 serge 193
 
2434 Serge 194
        cmp     al, 'a'
195
        jae     .bm
196
        cmp     al, 'A'
197
        jae     .bb
198
        jmp     .cc
497 spraid 199
.bm:    ; 57h
2434 Serge 200
        sub     al, 57h
201
        jmp     .do
802 serge 202
 
497 spraid 203
.bb:    ; 37h
2434 Serge 204
        sub     al, 37h
205
        jmp     .do
494 spraid 206
 
497 spraid 207
.cc:    ; 30h
2434 Serge 208
        sub     al, 30h
802 serge 209
 
210
.do:
2434 Serge 211
        imul    ebx
212
        add     ecx, eax
213
        shr     ebx, 4
494 spraid 214
 
2434 Serge 215
        jmp     @b
497 spraid 216
 
217
.eend:
2434 Serge 218
        mov     [esp+28], ecx
219
        popad
220
        ret
802 serge 221
endp
494 spraid 222
 
223
 
535 spraid 224
; convert string to DWord for IP addres
512 spraid 225
proc do_inet_adr stdcall,strs
2434 Serge 226
        pushad
802 serge 227
 
2434 Serge 228
        mov     esi, [strs]
229
        mov     ebx, 0
512 spraid 230
.next:
2434 Serge 231
        push    esi
512 spraid 232
@@:
2434 Serge 233
        lodsb
234
        or      al, al
235
        jz      @f
236
        cmp     al, '.'
237
        jz      @f
238
        jmp     @b
512 spraid 239
@@:
2434 Serge 240
        mov     cl, al
241
        mov     [esi-1], byte 0
512 spraid 242
  ;pop eax
2434 Serge 243
        call    strtoint_dec
244
        rol     eax, 24
245
        ror     ebx, 8
246
        add     ebx, eax
247
        or      cl, cl
248
        jz      @f
249
        jmp     .next
512 spraid 250
@@:
2434 Serge 251
        mov     [esp+28], ebx
252
        popad
253
        ret
512 spraid 254
endp