2007-05-11 21:38:23 +02:00
|
|
|
|
;-------------------------------------------------------------------------
|
|
|
|
|
;
|
|
|
|
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>䨣<EFBFBD><EFBFBD><EFBFBD>樨
|
|
|
|
|
;
|
|
|
|
|
;
|
|
|
|
|
; SPraid
|
|
|
|
|
;
|
|
|
|
|
;-------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
conf_file_loaded: db 0 ; 䫠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>䨣<EFBFBD>
|
2007-05-20 11:04:59 +02:00
|
|
|
|
conf_path_sect: db 'path',0
|
|
|
|
|
|
2007-05-29 10:32:11 +02:00
|
|
|
|
conf_fname db '/sys/sys.conf',0
|
2007-05-11 21:38:23 +02:00
|
|
|
|
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
|
2007-05-15 20:05:31 +02:00
|
|
|
|
proc set_kernel_conf
|
2007-05-15 14:03:26 +02:00
|
|
|
|
locals
|
|
|
|
|
par db 30 dup(?)
|
|
|
|
|
endl
|
2007-05-15 20:05:31 +02:00
|
|
|
|
pushad
|
2007-05-15 14:03:26 +02:00
|
|
|
|
;[gui]
|
|
|
|
|
;mouse_speed
|
2007-05-20 11:04:59 +02:00
|
|
|
|
lea eax,[par]
|
2007-05-15 20:05:31 +02:00
|
|
|
|
push eax
|
2007-05-20 11:04:59 +02:00
|
|
|
|
invoke ini.get_str,conf_fname, ugui, ugui_mouse_speed, eax,30, ugui_mouse_speed_def
|
2007-05-15 20:05:31 +02:00
|
|
|
|
pop eax
|
|
|
|
|
stdcall strtoint,eax
|
2007-05-15 14:03:26 +02:00
|
|
|
|
push eax
|
|
|
|
|
pop edx
|
|
|
|
|
call _mouse_speed
|
2007-05-15 20:05:31 +02:00
|
|
|
|
|
|
|
|
|
popad
|
|
|
|
|
ret
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
;mouse_delay
|
2007-05-20 11:04:59 +02:00
|
|
|
|
lea eax,[par]
|
2007-05-15 20:05:31 +02:00
|
|
|
|
push eax
|
2007-05-20 11:04:59 +02:00
|
|
|
|
invoke ini.get_str,conf_fname, ugui, ugui_mouse_delay, eax,30, ugui_mouse_delay_def
|
2007-05-15 20:05:31 +02:00
|
|
|
|
pop eax
|
2007-05-15 14:03:26 +02:00
|
|
|
|
stdcall strtoint,eax
|
|
|
|
|
push eax
|
|
|
|
|
pop edx
|
|
|
|
|
call _mouse_delay
|
|
|
|
|
|
|
|
|
|
;[dev]
|
|
|
|
|
;sb16
|
2007-05-20 11:04:59 +02:00
|
|
|
|
lea eax,[par]
|
2007-05-15 20:05:31 +02:00
|
|
|
|
push eax
|
2007-05-20 11:04:59 +02:00
|
|
|
|
invoke ini.get_str,conf_fname, udev, udev_sb16, eax,30, udev_sb16_def
|
2007-05-15 20:05:31 +02:00
|
|
|
|
pop eax
|
2007-05-15 14:03:26 +02:00
|
|
|
|
stdcall strtoint,eax
|
|
|
|
|
push eax
|
|
|
|
|
pop ecx
|
|
|
|
|
call _sb16
|
|
|
|
|
|
|
|
|
|
;sound_dma
|
2007-05-20 11:04:59 +02:00
|
|
|
|
lea eax,[par]
|
2007-05-15 20:05:31 +02:00
|
|
|
|
push eax
|
2007-05-20 11:04:59 +02:00
|
|
|
|
invoke ini.get_str,conf_fname, udev, udev_sound_dma, eax,30, udev_sound_dma_def
|
2007-05-15 20:05:31 +02:00
|
|
|
|
pop eax
|
2007-05-15 14:03:26 +02:00
|
|
|
|
stdcall strtoint,eax
|
|
|
|
|
push eax
|
|
|
|
|
pop ecx
|
|
|
|
|
call _sound_dma
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;midibase
|
2007-05-20 11:04:59 +02:00
|
|
|
|
lea eax,[par]
|
2007-05-15 20:05:31 +02:00
|
|
|
|
push eax
|
2007-05-20 11:04:59 +02:00
|
|
|
|
invoke ini.get_str,conf_fname, udev, udev_midibase, eax,30, udev_midibase_def
|
2007-05-15 20:05:31 +02:00
|
|
|
|
pop eax
|
2007-05-15 14:03:26 +02:00
|
|
|
|
stdcall strtoint,eax
|
|
|
|
|
push eax
|
|
|
|
|
pop ecx
|
|
|
|
|
call _midibase
|
2007-05-20 11:04:59 +02:00
|
|
|
|
|
|
|
|
|
|
2007-05-15 20:05:31 +02:00
|
|
|
|
popad
|
|
|
|
|
ret
|
2007-05-15 14:03:26 +02:00
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
ugui db 'gui',0
|
|
|
|
|
ugui_mouse_speed db 'mouse_speed',0
|
2007-05-15 20:05:31 +02:00
|
|
|
|
ugui_mouse_speed_def db '2',0
|
2007-05-15 14:03:26 +02:00
|
|
|
|
ugui_mouse_delay db 'mouse_delay',0
|
2007-05-15 20:05:31 +02:00
|
|
|
|
ugui_mouse_delay_def db '0x00A',0
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
udev db 'dev',0
|
|
|
|
|
udev_sb16 db 'sb16',0
|
2007-05-15 20:05:31 +02:00
|
|
|
|
udev_sb16_def db '0x220',0
|
2007-05-15 14:03:26 +02:00
|
|
|
|
udev_sound_dma db 'sound_dma',0
|
2007-05-15 20:05:31 +02:00
|
|
|
|
udev_sound_dma_def db '1',0
|
2007-05-15 14:03:26 +02:00
|
|
|
|
udev_midibase db 'midibase',0
|
2007-05-15 20:05:31 +02:00
|
|
|
|
udev_midibase_def db '0x320',0
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
2007-05-20 11:04:59 +02:00
|
|
|
|
proc set_network_conf
|
|
|
|
|
locals
|
|
|
|
|
par db 30 dup(?)
|
|
|
|
|
endl
|
|
|
|
|
pushad
|
|
|
|
|
|
|
|
|
|
;[net]
|
|
|
|
|
;active
|
|
|
|
|
lea eax,[par]
|
|
|
|
|
invoke ini.get_int,conf_fname, unet, unet_active, 0
|
|
|
|
|
or eax,eax
|
|
|
|
|
jz .do_not_set_net
|
|
|
|
|
call _net_up
|
|
|
|
|
|
|
|
|
|
;addr
|
|
|
|
|
lea eax,[par]
|
|
|
|
|
push eax
|
|
|
|
|
invoke ini.get_str,conf_fname, unet, unet_addr, eax,30, unet_def
|
|
|
|
|
pop eax
|
|
|
|
|
stdcall do_inet_adr,eax
|
|
|
|
|
push eax
|
|
|
|
|
pop ecx
|
|
|
|
|
call _net_addr
|
|
|
|
|
|
|
|
|
|
;mask
|
|
|
|
|
lea eax,[par]
|
|
|
|
|
push eax
|
|
|
|
|
invoke ini.get_str,conf_fname, unet, unet_mask, eax,30, unet_def
|
|
|
|
|
pop eax
|
|
|
|
|
stdcall do_inet_adr,eax
|
|
|
|
|
push eax
|
|
|
|
|
pop ecx
|
|
|
|
|
call _net_mask
|
|
|
|
|
|
|
|
|
|
;gate
|
|
|
|
|
lea eax,[par]
|
|
|
|
|
push eax
|
|
|
|
|
invoke ini.get_str,conf_fname, unet, unet_gate, eax,30, unet_def
|
|
|
|
|
pop eax
|
|
|
|
|
stdcall do_inet_adr,eax
|
|
|
|
|
push eax
|
|
|
|
|
pop ecx
|
|
|
|
|
call _net_gate
|
|
|
|
|
.do_not_set_net:
|
|
|
|
|
popad
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
unet db 'net',0
|
|
|
|
|
unet_active db 'active',0
|
|
|
|
|
unet_addr db 'addr',0
|
|
|
|
|
unet_mask db 'mask',0
|
|
|
|
|
unet_gate db 'gate',0
|
|
|
|
|
unet_def db 0
|
|
|
|
|
|
2007-05-15 14:03:26 +02:00
|
|
|
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD> DWord <EFBFBD> eax (<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⥬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
2007-05-15 20:05:31 +02:00
|
|
|
|
|
2007-05-15 14:03:26 +02:00
|
|
|
|
proc strtoint stdcall,strs
|
|
|
|
|
pushad
|
|
|
|
|
|
|
|
|
|
mov eax,[strs]
|
|
|
|
|
inc eax
|
|
|
|
|
mov bl,[eax]
|
|
|
|
|
cmp bl,'x'
|
|
|
|
|
je .hex
|
|
|
|
|
cmp bl,'X'
|
|
|
|
|
je .hex
|
|
|
|
|
jmp .dec
|
|
|
|
|
.hex:
|
|
|
|
|
inc eax
|
|
|
|
|
stdcall strtoint_hex,eax
|
|
|
|
|
jmp .exit
|
|
|
|
|
.dec:
|
|
|
|
|
dec eax
|
|
|
|
|
stdcall strtoint_dec,eax
|
|
|
|
|
.exit:
|
2007-05-15 20:05:31 +02:00
|
|
|
|
mov [esp+28],eax
|
2007-05-15 14:03:26 +02:00
|
|
|
|
popad
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD> DWord <EFBFBD> eax <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮<EFBFBD><EFBFBD>
|
|
|
|
|
proc strtoint_dec stdcall,strs
|
|
|
|
|
pushad
|
2007-05-15 20:05:31 +02:00
|
|
|
|
xor edx,edx
|
|
|
|
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov esi,[strs]
|
|
|
|
|
@@:
|
|
|
|
|
lodsb
|
|
|
|
|
or al,al
|
|
|
|
|
jnz @b
|
|
|
|
|
mov ebx,esi
|
|
|
|
|
mov esi,[strs]
|
|
|
|
|
dec ebx
|
|
|
|
|
sub ebx,esi
|
|
|
|
|
mov ecx,1
|
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
dec ebx
|
|
|
|
|
or ebx,ebx
|
|
|
|
|
jz @f
|
|
|
|
|
imul ecx,ecx,10 ; <EFBFBD><EFBFBD><EFBFBD>冷<EFBFBD>
|
|
|
|
|
jmp @b
|
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
xchg ebx,ecx
|
|
|
|
|
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
xor ecx,ecx
|
2007-05-15 20:05:31 +02:00
|
|
|
|
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
xor eax,eax
|
|
|
|
|
lodsb
|
|
|
|
|
cmp al,0
|
2007-05-15 20:05:31 +02:00
|
|
|
|
je .eend
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
sub al,30h
|
|
|
|
|
imul ebx
|
|
|
|
|
add ecx,eax
|
2007-05-15 20:05:31 +02:00
|
|
|
|
push ecx
|
|
|
|
|
xchg eax,ebx
|
|
|
|
|
mov ecx,10
|
|
|
|
|
div ecx
|
|
|
|
|
xchg eax,ebx
|
|
|
|
|
pop ecx
|
2007-05-15 14:03:26 +02:00
|
|
|
|
jmp @b
|
|
|
|
|
|
2007-05-15 20:05:31 +02:00
|
|
|
|
.eend:
|
|
|
|
|
mov [esp+28],ecx
|
2007-05-15 14:03:26 +02:00
|
|
|
|
popad
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD> DWord <EFBFBD> eax <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>᭠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮<EFBFBD><EFBFBD>
|
|
|
|
|
proc strtoint_hex stdcall,strs
|
|
|
|
|
pushad
|
2007-05-15 20:05:31 +02:00
|
|
|
|
xor edx,edx
|
|
|
|
|
|
|
|
|
|
mov esi,[strs]
|
|
|
|
|
mov ebx,1
|
|
|
|
|
add esi,1
|
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
lodsb
|
|
|
|
|
or al,al
|
|
|
|
|
jz @f
|
|
|
|
|
shl ebx,4
|
|
|
|
|
jmp @b
|
|
|
|
|
@@:
|
2007-05-15 14:03:26 +02:00
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov esi,[strs]
|
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
xor eax,eax
|
|
|
|
|
lodsb
|
|
|
|
|
cmp al,0
|
2007-05-15 20:05:31 +02:00
|
|
|
|
je .eend
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
cmp al,'a'
|
|
|
|
|
jae .bm
|
|
|
|
|
cmp al,'A'
|
|
|
|
|
jae .bb
|
|
|
|
|
jmp .cc
|
2007-05-15 20:05:31 +02:00
|
|
|
|
.bm: ; 57h
|
2007-05-15 14:03:26 +02:00
|
|
|
|
sub al,57h
|
|
|
|
|
jmp .do
|
|
|
|
|
|
2007-05-15 20:05:31 +02:00
|
|
|
|
.bb: ; 37h
|
2007-05-15 14:03:26 +02:00
|
|
|
|
sub al,37h
|
|
|
|
|
jmp .do
|
|
|
|
|
|
2007-05-15 20:05:31 +02:00
|
|
|
|
.cc: ; 30h
|
2007-05-15 14:03:26 +02:00
|
|
|
|
sub al,30h
|
|
|
|
|
|
|
|
|
|
.do:
|
|
|
|
|
imul ebx
|
|
|
|
|
add ecx,eax
|
2007-05-15 20:05:31 +02:00
|
|
|
|
shr ebx,4
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
jmp @b
|
2007-05-15 20:05:31 +02:00
|
|
|
|
|
|
|
|
|
.eend:
|
|
|
|
|
mov [esp+28],ecx
|
2007-05-15 14:03:26 +02:00
|
|
|
|
popad
|
|
|
|
|
ret
|
2007-05-15 20:05:31 +02:00
|
|
|
|
endp
|
2007-05-15 14:03:26 +02:00
|
|
|
|
|
|
|
|
|
|
2007-05-20 11:04:59 +02:00
|
|
|
|
; <EFBFBD>८<EFBFBD>ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0
|
|
|
|
|
proc do_inet_adr stdcall,strs
|
|
|
|
|
pushad
|
|
|
|
|
|
|
|
|
|
mov esi,[strs]
|
|
|
|
|
mov ebx,0
|
|
|
|
|
.next:
|
|
|
|
|
push esi
|
|
|
|
|
@@:
|
|
|
|
|
lodsb
|
|
|
|
|
or al,al
|
|
|
|
|
jz @f
|
|
|
|
|
cmp al,'.'
|
|
|
|
|
jz @f
|
|
|
|
|
jmp @b
|
|
|
|
|
@@:
|
|
|
|
|
mov cl, al
|
|
|
|
|
mov [esi-1],byte 0
|
|
|
|
|
;pop eax
|
|
|
|
|
call strtoint_dec
|
|
|
|
|
rol eax,24
|
|
|
|
|
ror ebx,8
|
|
|
|
|
add ebx,eax
|
|
|
|
|
or cl,cl
|
|
|
|
|
jz @f
|
|
|
|
|
jmp .next
|
|
|
|
|
@@:
|
|
|
|
|
mov [esp+28],ebx
|
|
|
|
|
popad
|
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
|
2007-05-15 14:03:26 +02:00
|
|
|
|
; <EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> setup
|
|
|
|
|
|
|
|
|
|
_mouse_speed:
|
|
|
|
|
mov eax,18
|
|
|
|
|
mov ebx,19
|
|
|
|
|
mov ecx,1
|
|
|
|
|
int 0x40
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
_mouse_delay:
|
|
|
|
|
mov eax,18
|
|
|
|
|
mov ebx,19
|
|
|
|
|
mov ecx,3
|
|
|
|
|
int 0x40
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
_sb16:
|
|
|
|
|
mov eax,21
|
|
|
|
|
mov ebx,4
|
|
|
|
|
int 0x40
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
_sound_dma:
|
|
|
|
|
mov eax,21
|
|
|
|
|
mov ebx,10
|
|
|
|
|
int 0x40
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_midibase:
|
|
|
|
|
mov eax,21
|
|
|
|
|
mov ebx,1
|
|
|
|
|
int 0x40
|
2007-05-20 11:04:59 +02:00
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
_net_addr:
|
|
|
|
|
mov eax,52
|
|
|
|
|
mov ebx,3
|
|
|
|
|
int 0x40
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
_net_mask:
|
|
|
|
|
mov eax,52
|
|
|
|
|
mov ebx,12
|
|
|
|
|
int 0x40
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
_net_gate:
|
|
|
|
|
mov eax,52
|
|
|
|
|
mov ebx,11
|
|
|
|
|
int 0x40
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
_net_up:
|
|
|
|
|
mov eax,52
|
|
|
|
|
mov ebx,0
|
|
|
|
|
int 0x40
|
|
|
|
|
and eax,0xFFFFFF80
|
|
|
|
|
add eax,3
|
|
|
|
|
mov ecx,eax
|
|
|
|
|
|
|
|
|
|
mov eax,52
|
|
|
|
|
mov ebx,2
|
|
|
|
|
int 0x40
|
2007-05-15 14:03:26 +02:00
|
|
|
|
ret
|