Rev 494 | Rev 512 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
488 | spraid | 1 | ;------------------------------------------------------------------------- |
2 | ; |
||
3 | ; Файл конфигурации |
||
4 | ; |
||
5 | ; |
||
6 | ; SPraid |
||
7 | ; |
||
8 | ;------------------------------------------------------------------------- |
||
9 | |||
10 | conf_file_loaded: db 0 ; флаг загрузки конфига |
||
11 | |||
12 | ; загрузка ини файла в библиотеку |
||
13 | proc load_conf_file |
||
14 | pushad |
||
15 | invoke ini.load,.fname |
||
16 | mov [conf_file_loaded],byte 1 |
||
17 | popad |
||
18 | ret |
||
19 | .fname db '%sys%/sys.conf',0 |
||
494 | spraid | 20 | endp |
21 | |||
22 | |||
497 | spraid | 23 | proc set_kernel_conf |
494 | spraid | 24 | locals |
25 | par db 30 dup(?) |
||
26 | endl |
||
497 | spraid | 27 | pushad |
494 | spraid | 28 | ;[gui] |
29 | ;mouse_speed |
||
30 | mov eax,ebp |
||
31 | add eax,par-ebp |
||
32 | push eax |
||
497 | spraid | 33 | invoke ini.get_str, ugui, ugui_mouse_speed, eax, ugui_mouse_speed_def |
34 | pop eax |
||
35 | stdcall strtoint,eax |
||
36 | push eax |
||
494 | spraid | 37 | pop edx |
38 | call _mouse_speed |
||
497 | spraid | 39 | |
40 | popad |
||
41 | ret |
||
494 | spraid | 42 | |
43 | ;mouse_delay |
||
44 | mov eax,ebp |
||
45 | add eax,par-ebp |
||
497 | spraid | 46 | push eax |
494 | spraid | 47 | invoke ini.get_str, ugui, ugui_mouse_delay, eax, ugui_mouse_delay_def |
497 | spraid | 48 | pop eax |
494 | spraid | 49 | stdcall strtoint,eax |
50 | push eax |
||
51 | pop edx |
||
52 | call _mouse_delay |
||
53 | |||
54 | ;[dev] |
||
55 | ;sb16 |
||
56 | mov eax,ebp |
||
57 | add eax,par-ebp |
||
497 | spraid | 58 | push eax |
494 | spraid | 59 | invoke ini.get_str, udev, udev_sb16, eax, udev_sb16_def |
497 | spraid | 60 | pop eax |
494 | spraid | 61 | stdcall strtoint,eax |
62 | push eax |
||
63 | pop ecx |
||
64 | call _sb16 |
||
65 | |||
66 | ;sound_dma |
||
67 | mov eax,ebp |
||
68 | add eax,par-ebp |
||
497 | spraid | 69 | push eax |
494 | spraid | 70 | invoke ini.get_str, udev, udev_sound_dma, eax, udev_sound_dma_def |
497 | spraid | 71 | pop eax |
494 | spraid | 72 | stdcall strtoint,eax |
73 | push eax |
||
74 | pop ecx |
||
75 | call _sound_dma |
||
76 | |||
77 | |||
78 | ;midibase |
||
79 | mov eax,ebp |
||
80 | add eax,par-ebp |
||
497 | spraid | 81 | push eax |
494 | spraid | 82 | invoke ini.get_str, udev, udev_midibase, eax, udev_midibase_def |
497 | spraid | 83 | pop eax |
494 | spraid | 84 | stdcall strtoint,eax |
85 | push eax |
||
86 | pop ecx |
||
87 | call _midibase |
||
497 | spraid | 88 | |
89 | popad |
||
90 | ret |
||
494 | spraid | 91 | endp |
92 | |||
93 | ugui db 'gui',0 |
||
94 | ugui_mouse_speed db 'mouse_speed',0 |
||
497 | spraid | 95 | ugui_mouse_speed_def db '2',0 |
494 | spraid | 96 | ugui_mouse_delay db 'mouse_delay',0 |
497 | spraid | 97 | ugui_mouse_delay_def db '0x00A',0 |
494 | spraid | 98 | |
99 | udev db 'dev',0 |
||
100 | udev_sb16 db 'sb16',0 |
||
497 | spraid | 101 | udev_sb16_def db '0x220',0 |
494 | spraid | 102 | udev_sound_dma db 'sound_dma',0 |
497 | spraid | 103 | udev_sound_dma_def db '1',0 |
494 | spraid | 104 | udev_midibase db 'midibase',0 |
497 | spraid | 105 | udev_midibase_def db '0x320',0 |
494 | spraid | 106 | |
107 | ; конверчение строки в DWord в eax (по второму символу определяет систему счисления) |
||
497 | spraid | 108 | |
494 | spraid | 109 | proc strtoint stdcall,strs |
110 | pushad |
||
111 | |||
112 | mov eax,[strs] |
||
113 | inc eax |
||
114 | mov bl,[eax] |
||
115 | cmp bl,'x' |
||
116 | je .hex |
||
117 | cmp bl,'X' |
||
118 | je .hex |
||
119 | jmp .dec |
||
120 | .hex: |
||
121 | inc eax |
||
122 | stdcall strtoint_hex,eax |
||
123 | jmp .exit |
||
124 | .dec: |
||
125 | dec eax |
||
126 | stdcall strtoint_dec,eax |
||
127 | .exit: |
||
497 | spraid | 128 | mov [esp+28],eax |
494 | spraid | 129 | popad |
130 | ret |
||
131 | endp |
||
132 | |||
133 | ; конверчение строки в DWord в eax для десятичного |
||
134 | proc strtoint_dec stdcall,strs |
||
135 | pushad |
||
497 | spraid | 136 | xor edx,edx |
137 | ; поиск конца |
||
138 | mov esi,[strs] |
||
139 | @@: |
||
140 | lodsb |
||
141 | or al,al |
||
142 | jnz @b |
||
143 | mov ebx,esi |
||
144 | mov esi,[strs] |
||
145 | dec ebx |
||
146 | sub ebx,esi |
||
147 | mov ecx,1 |
||
148 | |||
149 | @@: |
||
150 | dec ebx |
||
151 | or ebx,ebx |
||
152 | jz @f |
||
153 | imul ecx,ecx,10 ; порядок |
||
154 | jmp @b |
||
155 | @@: |
||
156 | |||
157 | xchg ebx,ecx |
||
158 | |||
494 | spraid | 159 | |
160 | xor ecx,ecx |
||
497 | spraid | 161 | |
494 | spraid | 162 | |
163 | @@: |
||
164 | xor eax,eax |
||
165 | lodsb |
||
166 | cmp al,0 |
||
497 | spraid | 167 | je .eend |
494 | spraid | 168 | |
169 | sub al,30h |
||
170 | imul ebx |
||
171 | add ecx,eax |
||
497 | spraid | 172 | push ecx |
173 | xchg eax,ebx |
||
174 | mov ecx,10 |
||
175 | div ecx |
||
176 | xchg eax,ebx |
||
177 | pop ecx |
||
494 | spraid | 178 | jmp @b |
179 | |||
497 | spraid | 180 | .eend: |
181 | mov [esp+28],ecx |
||
494 | spraid | 182 | popad |
183 | ret |
||
184 | endp |
||
185 | |||
186 | ; конверчение строки в DWord в eax для шеснадцатиричного |
||
187 | proc strtoint_hex stdcall,strs |
||
188 | pushad |
||
497 | spraid | 189 | xor edx,edx |
190 | |||
191 | mov esi,[strs] |
||
192 | mov ebx,1 |
||
193 | add esi,1 |
||
194 | |||
195 | @@: |
||
196 | lodsb |
||
197 | or al,al |
||
198 | jz @f |
||
199 | shl ebx,4 |
||
200 | jmp @b |
||
201 | @@: |
||
494 | spraid | 202 | xor ecx,ecx |
203 | mov esi,[strs] |
||
204 | |||
205 | @@: |
||
206 | xor eax,eax |
||
207 | lodsb |
||
208 | cmp al,0 |
||
497 | spraid | 209 | je .eend |
494 | spraid | 210 | |
211 | cmp al,'a' |
||
212 | jae .bm |
||
213 | cmp al,'A' |
||
214 | jae .bb |
||
215 | jmp .cc |
||
497 | spraid | 216 | .bm: ; 57h |
494 | spraid | 217 | sub al,57h |
218 | jmp .do |
||
219 | |||
497 | spraid | 220 | .bb: ; 37h |
494 | spraid | 221 | sub al,37h |
222 | jmp .do |
||
223 | |||
497 | spraid | 224 | .cc: ; 30h |
494 | spraid | 225 | sub al,30h |
226 | |||
227 | .do: |
||
228 | imul ebx |
||
229 | add ecx,eax |
||
497 | spraid | 230 | shr ebx,4 |
494 | spraid | 231 | |
232 | jmp @b |
||
497 | spraid | 233 | |
234 | .eend: |
||
235 | mov [esp+28],ecx |
||
494 | spraid | 236 | popad |
237 | ret |
||
497 | spraid | 238 | endp |
494 | spraid | 239 | |
240 | |||
241 | ; установки из setup |
||
242 | |||
243 | _mouse_speed: |
||
244 | mov eax,18 |
||
245 | mov ebx,19 |
||
246 | mov ecx,1 |
||
247 | int 0x40 |
||
248 | ret |
||
249 | |||
250 | _mouse_delay: |
||
251 | mov eax,18 |
||
252 | mov ebx,19 |
||
253 | mov ecx,3 |
||
254 | int 0x40 |
||
255 | ret |
||
256 | |||
257 | _sb16: |
||
258 | mov eax,21 |
||
259 | mov ebx,4 |
||
260 | int 0x40 |
||
261 | ret |
||
262 | |||
263 | _sound_dma: |
||
264 | mov eax,21 |
||
265 | mov ebx,10 |
||
266 | int 0x40 |
||
267 | ret |
||
268 | |||
269 | |||
270 | _midibase: |
||
271 | mov eax,21 |
||
272 | mov ebx,1 |
||
273 | int 0x40 |
||
274 | ret |