forked from KolibriOS/kolibrios
SHELL: shell.inc now suports sc_ping & sc_pid functions
git-svn-id: svn://kolibrios.org@8637 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
c0a1d61a57
commit
c70708415f
@ -7,6 +7,8 @@ SC_PUTS = 3
|
|||||||
SC_GETC = 4
|
SC_GETC = 4
|
||||||
SC_GETS = 5
|
SC_GETS = 5
|
||||||
SC_CLS = 6
|
SC_CLS = 6
|
||||||
|
SC_PID = 7
|
||||||
|
SC_PING = 8
|
||||||
|
|
||||||
SHM_WRITE = 0x01
|
SHM_WRITE = 0x01
|
||||||
SHM_OPEN_ALWAYS = 0x04
|
SHM_OPEN_ALWAYS = 0x04
|
||||||
@ -21,6 +23,7 @@ sc_process dd 0
|
|||||||
|
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
|
if used _sc_pid2name
|
||||||
align 4
|
align 4
|
||||||
_sc_pid2name:
|
_sc_pid2name:
|
||||||
|
|
||||||
@ -67,9 +70,11 @@ mov edi, sc_name
|
|||||||
pop esp
|
pop esp
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
end if
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
|
if used _sc_init
|
||||||
align 4
|
align 4
|
||||||
; void __stdcall sc_init();
|
; void __stdcall sc_init();
|
||||||
_sc_init:
|
_sc_init:
|
||||||
@ -116,9 +121,11 @@ _sc_init:
|
|||||||
pop esp
|
pop esp
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
end if
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
|
if used _sc_puts
|
||||||
align 4
|
align 4
|
||||||
; void __stdcall sc_puts(char *str);
|
; void __stdcall sc_puts(char *str);
|
||||||
_sc_puts:
|
_sc_puts:
|
||||||
@ -155,9 +162,11 @@ _sc_puts:
|
|||||||
pop ebx
|
pop ebx
|
||||||
pop esp
|
pop esp
|
||||||
ret 4
|
ret 4
|
||||||
|
end if
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
|
if used _sc_exit
|
||||||
align 4
|
align 4
|
||||||
; void __stdcall sc_exit();
|
; void __stdcall sc_exit();
|
||||||
_sc_exit:
|
_sc_exit:
|
||||||
@ -187,10 +196,12 @@ _sc_exit:
|
|||||||
pop esp
|
pop esp
|
||||||
pop ebx
|
pop ebx
|
||||||
ret
|
ret
|
||||||
|
end if
|
||||||
|
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
|
if used _sc_gets
|
||||||
align 4
|
align 4
|
||||||
; void __stdcall sc_gets(char *str);
|
; void __stdcall sc_gets(char *str);
|
||||||
_sc_gets:
|
_sc_gets:
|
||||||
@ -229,6 +240,61 @@ _sc_gets:
|
|||||||
pop ebx
|
pop ebx
|
||||||
pop esp
|
pop esp
|
||||||
ret 4
|
ret 4
|
||||||
|
end if
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
|
if used _sc_pid
|
||||||
|
_sc_pid:
|
||||||
|
;int __stdcall sc_pid (void);
|
||||||
|
push ebx ecx
|
||||||
|
|
||||||
|
mov ecx, [sc_buffer]
|
||||||
|
mov byte [ecx], SC_PID
|
||||||
|
|
||||||
|
@@:
|
||||||
|
mov eax, 5
|
||||||
|
mov ebx, 5
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
cmp byte [ecx], 0
|
||||||
|
je @f
|
||||||
|
call _sc_ping
|
||||||
|
test eax, eax
|
||||||
|
jnz .err
|
||||||
|
|
||||||
|
@@:
|
||||||
|
mov eax, [ecx+1]
|
||||||
|
pop ecx ebx
|
||||||
|
ret
|
||||||
|
|
||||||
|
.err:
|
||||||
|
pop ecx ebx
|
||||||
|
xor eax, eax
|
||||||
|
dec eax
|
||||||
|
ret
|
||||||
|
end if
|
||||||
|
|
||||||
|
;============================
|
||||||
|
|
||||||
|
if used _sc_ping
|
||||||
|
_sc_ping:
|
||||||
|
;int __stdcall sc_ping (void);
|
||||||
|
push ebx ecx
|
||||||
|
|
||||||
|
mov ecx, [sc_buffer]
|
||||||
|
mov byte [ecx], SC_PING
|
||||||
|
|
||||||
|
mov eax, 5
|
||||||
|
mov ebx, 200
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
cmp byte [ecx], 0
|
||||||
|
je @f
|
||||||
|
dec eax
|
||||||
|
|
||||||
|
@@:
|
||||||
|
pop ecx ebx
|
||||||
|
ret
|
||||||
|
end if
|
||||||
|
Loading…
Reference in New Issue
Block a user