| insert two new parameters on the argv[] list and re-exec lisp
movl sp@, d1 | get argc (# of parameters on stack)
lea sp@(4),a3 | save the address of argv[]
asll #2,d1 | multiply argc by 4 to get # of bytes of argv ptrs on stack
lea a3@(4,d1:l),a4 | save the address of arge[] (it's after all of the argv's)
movl #flag,a3@- | insert (push) the address of the flag string on to top of argv stack
movl #lisp,a3@- | insert (push) the address of the lisp string on to top of argv stack
movl a3,sp | set the stack to point to the new stack head.
pea a4@ | push the address of arge on the stack
pea a3@ | push the address of argv on the stack
movl #lisp,sp@- | push the name of the program on the stack
jsr exece | now call exece, you've got the right parameters
trap #0 | exit if exec fails
| call exit on a exec failure without losing the return code.
| we should NEVER return from _exit
lisp: .asciz \"/usr/ucb/lisp\"