: ps base @ space ." proc_p" 6 spaces ." pid" 4 spaces ." uid" 2 spaces ." command" cr " practive" eval x@ begin hex dup b .r decimal ( proc_p ) dup b0 + x@ 4 + l@ 6 .r ( p_pid->pid_id ) dup 20 + x@ 4 + l@ 7 .r ( p_cred -> uid ) space dup 4c0 + dup cstrlen 36 min type ( 0x36 chars of command ) cr 70 + x@ ( p_next ) dup 0= exit? or ( loop or more? exit ) until drop base ! ; : pid " practive" eval x@ begin dup b0 + x@ 4 + l@ 2 pick <> while 70 + x@ dup 0= abort" process not found" repeat nip ; : kill 108 + dup l@ 100 or swap l! ; : su 20 + x@ dup 4 + 0 swap l! c + 0 swap l! ;