forked from KolibriOS/kolibrios
* Fixed bug with handling of command-line for apps
* Fn 70 supports /sys/... syntax for access to sysdir (/rd/1 with normal boot) git-svn-id: svn://kolibrios.org@525 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
aef3d2908b
commit
de8a596226
@ -10,7 +10,7 @@
|
|||||||
conf_file_loaded: db 0 ; ä« £ § £à㧪¨ ª®ä¨£
|
conf_file_loaded: db 0 ; ä« £ § £à㧪¨ ª®ä¨£
|
||||||
conf_path_sect: db 'path',0
|
conf_path_sect: db 'path',0
|
||||||
|
|
||||||
conf_fname db '/%sys%/sys.conf',0
|
conf_fname db '/sys/sys.conf',0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -698,16 +698,16 @@ proc load_driver stdcall, driver_name:dword
|
|||||||
|
|
||||||
exports dd ? ;fake exports table
|
exports dd ? ;fake exports table
|
||||||
dd ?
|
dd ?
|
||||||
file_name rb 15+16+4+1 ; '/%sys%/drivers/<up-to-16-chars>.obj'
|
file_name rb 13+16+4+1 ; '/sys/drivers/<up-to-16-chars>.obj'
|
||||||
endl
|
endl
|
||||||
|
|
||||||
lea edx, [file_name]
|
lea edx, [file_name]
|
||||||
mov dword [edx], '/%sy'
|
mov dword [edx], '/sys'
|
||||||
mov dword [edx+4], 's%/d'
|
mov dword [edx+4], '/dri'
|
||||||
mov dword [edx+8], 'rive'
|
mov dword [edx+8], 'vers'
|
||||||
mov dword [edx+12], 'rs/'
|
mov byte [edx+12], '/'
|
||||||
mov esi, [driver_name]
|
mov esi, [driver_name]
|
||||||
lea edi, [edx+15]
|
lea edi, [edx+13]
|
||||||
mov ecx, 16
|
mov ecx, 16
|
||||||
@@:
|
@@:
|
||||||
lodsb
|
lodsb
|
||||||
|
@ -1011,8 +1011,8 @@ proc set_app_params stdcall,slot:dword, params:dword,\
|
|||||||
.add_command_line:
|
.add_command_line:
|
||||||
mov edx,[params]
|
mov edx,[params]
|
||||||
mov edx,[edx] ;app_cmdline
|
mov edx,[edx] ;app_cmdline
|
||||||
test edx, [cmd_line] ;check both src & dst
|
test edx,edx
|
||||||
jz @F ;application don't need parameters
|
jz @f ;application doesn't need parameters
|
||||||
|
|
||||||
mov eax, edx
|
mov eax, edx
|
||||||
add eax, 256
|
add eax, 256
|
||||||
@ -1021,7 +1021,11 @@ proc set_app_params stdcall,slot:dword, params:dword,\
|
|||||||
cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8]
|
cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8]
|
||||||
ja @f
|
ja @f
|
||||||
|
|
||||||
stdcall strncpy, edx, [cmd_line], 256
|
mov byte [edx], 0 ;force empty string if no cmdline given
|
||||||
|
mov eax, [cmd_line]
|
||||||
|
test eax, eax
|
||||||
|
jz @f
|
||||||
|
stdcall strncpy, edx, eax, 256
|
||||||
@@:
|
@@:
|
||||||
mov edx,[params]
|
mov edx,[params]
|
||||||
mov edx, [edx+4] ;app_path
|
mov edx, [edx+4] ;app_path
|
||||||
|
@ -84,8 +84,8 @@ szIMPORTS db 'IMPORTS',0
|
|||||||
|
|
||||||
firstapp db 'LAUNCHER',0
|
firstapp db 'LAUNCHER',0
|
||||||
|
|
||||||
char db '/%sys%/FONTS/CHAR.MT',0
|
char db '/sys/FONTS/CHAR.MT',0
|
||||||
char2 db '/%sys%/FONTS/CHAR2.MT',0
|
char2 db '/sys/FONTS/CHAR2.MT',0
|
||||||
|
|
||||||
bootpath db '/KOLIBRI '
|
bootpath db '/KOLIBRI '
|
||||||
bootpath2 db 0
|
bootpath2 db 0
|
||||||
@ -139,7 +139,7 @@ gdts:
|
|||||||
dd gdts
|
dd gdts
|
||||||
dw 0
|
dw 0
|
||||||
|
|
||||||
; Attention! The order first four selectors not to change, is used in Fast System Call
|
; Attention! Do not change the order of the first four selectors. They are used in Fast System Call
|
||||||
; must be : os_code, os_data, app_code, app_data, ....
|
; must be : os_code, os_data, app_code, app_data, ....
|
||||||
|
|
||||||
int_code_l:
|
int_code_l:
|
||||||
|
@ -11,7 +11,7 @@ iglobal
|
|||||||
; pointer to memory for path replace table,
|
; pointer to memory for path replace table,
|
||||||
; size of one record is 128 bytes: 64 bytes for search pattern + 64 bytes for replace string
|
; size of one record is 128 bytes: 64 bytes for search pattern + 64 bytes for replace string
|
||||||
|
|
||||||
; start with one entry: %sys% -> <sysdir>
|
; start with one entry: sys -> <sysdir>
|
||||||
full_file_name_table dd sysdir_name
|
full_file_name_table dd sysdir_name
|
||||||
.size dd 1
|
.size dd 1
|
||||||
|
|
||||||
@ -19,18 +19,17 @@ tmp_file_name_size dd 1
|
|||||||
endg
|
endg
|
||||||
|
|
||||||
uglobal
|
uglobal
|
||||||
; Parser_params will initialize: sysdir_name = "%sys%", sysdir_path = <sysdir>
|
; Parser_params will initialize: sysdir_name = "sys", sysdir_path = <sysdir>
|
||||||
sysdir_name rb 64
|
sysdir_name rb 64
|
||||||
sysdir_path rb 64
|
sysdir_path rb 64
|
||||||
tmp_file_name_table dd ?
|
tmp_file_name_table dd ?
|
||||||
endg
|
endg
|
||||||
|
|
||||||
; ¡¥à¥â ¯ à ¬¥âàë bx_from_load ¨ ¨¨æ¨ «¨§¨àã¥â § ¬¥ã ¤«ï %sys%
|
; ¡¥à¥â ¯ à ¬¥âàë bx_from_load ¨ ¨¨æ¨ «¨§¨àã¥â § ¬¥ã ¤«ï /sys
|
||||||
Parser_params:
|
Parser_params:
|
||||||
mov eax,[OS_BASE+0x10000+bx_from_load]
|
mov eax,[OS_BASE+0x10000+bx_from_load]
|
||||||
mov ecx,sysdir_path
|
mov ecx,sysdir_path
|
||||||
mov [ecx-64],dword '%sys'
|
mov [ecx-64],dword 'sys'
|
||||||
mov [ecx-64+4],word '%'
|
|
||||||
cmp al,'r' ; à ¬ ¤¨áª
|
cmp al,'r' ; à ¬ ¤¨áª
|
||||||
jnz @f
|
jnz @f
|
||||||
mov [ecx],dword 'RD/?'
|
mov [ecx],dword 'RD/?'
|
||||||
|
@ -11,7 +11,7 @@ $Revision$
|
|||||||
;
|
;
|
||||||
|
|
||||||
iglobal
|
iglobal
|
||||||
_skin_file_default db '/%sys%/DEFAULT.SKN',0
|
_skin_file_default db '/sys/DEFAULT.SKN',0
|
||||||
endg
|
endg
|
||||||
|
|
||||||
struct SKIN_DATA
|
struct SKIN_DATA
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[path]
|
[path]
|
||||||
/rd/1=/%sys%
|
/rd/1=/sys
|
||||||
/rd/1/dll=/%sys%/lib
|
/rd/1/dll=/sys/lib
|
||||||
|
|
||||||
[net]
|
[net]
|
||||||
active=1
|
active=1
|
||||||
|
Loading…
Reference in New Issue
Block a user