97 lines
1.5 KiB
Plaintext
97 lines
1.5 KiB
Plaintext
|
#
|
||
|
/*
|
||
|
* (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
||
|
*
|
||
|
* This product is part of the Amsterdam Compiler Kit.
|
||
|
*
|
||
|
* Permission to use, sell, duplicate or disclose this software must be
|
||
|
* obtained in writing. Requests for such permissions may be sent to
|
||
|
*
|
||
|
* Dr. Andrew S. Tanenbaum
|
||
|
* Wiskundig Seminarium
|
||
|
* Vrije Universiteit
|
||
|
* Postbox 7161
|
||
|
* 1007 MC Amsterdam
|
||
|
* The Netherlands
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/* Author: C.J.H. Jacobs */
|
||
|
|
||
|
mes 2,EM_WSIZE,EM_PSIZE
|
||
|
|
||
|
#define STACKSIZE 1024 /* maximum stack size for a coroutine */
|
||
|
|
||
|
exa _environ
|
||
|
exa _argv
|
||
|
exa _argc
|
||
|
exa _CurrentProcess
|
||
|
exa _MainProcess
|
||
|
exa _StackBase
|
||
|
exa _MainLB
|
||
|
exa _StackSize
|
||
|
exp $_catch
|
||
|
|
||
|
_environ
|
||
|
bss EM_PSIZE,0,0
|
||
|
_argv
|
||
|
bss EM_PSIZE,0,0
|
||
|
_argc
|
||
|
bss EM_WSIZE,0,0
|
||
|
_CurrentProcess
|
||
|
bss EM_PSIZE,0,0
|
||
|
_MainProcess
|
||
|
bss EM_PSIZE,0,0
|
||
|
_StackBase
|
||
|
bss EM_PSIZE,0,0
|
||
|
_MainLB
|
||
|
bss EM_PSIZE,0,0
|
||
|
_StackSize
|
||
|
bss EM_WSIZE,0,0
|
||
|
mainroutine
|
||
|
bss 2*EM_PSIZE,0,0
|
||
|
|
||
|
exp $m_a_i_n
|
||
|
pro $m_a_i_n, STACKSIZE
|
||
|
|
||
|
loc STACKSIZE
|
||
|
ste _StackSize
|
||
|
|
||
|
lor 0
|
||
|
lae _MainLB
|
||
|
sti EM_PSIZE
|
||
|
|
||
|
lal -EM_WSIZE
|
||
|
adp EM_WSIZE
|
||
|
lae _StackBase
|
||
|
sti EM_PSIZE
|
||
|
|
||
|
lae mainroutine
|
||
|
adp 2*EM_PSIZE
|
||
|
dup EM_PSIZE
|
||
|
lae _CurrentProcess
|
||
|
sti EM_PSIZE
|
||
|
lae _MainProcess
|
||
|
sti EM_PSIZE
|
||
|
|
||
|
lal EM_WSIZE+EM_PSIZE
|
||
|
loi EM_PSIZE
|
||
|
lae _environ ; save environment pointer
|
||
|
sti EM_PSIZE
|
||
|
|
||
|
lal EM_WSIZE
|
||
|
loi EM_PSIZE
|
||
|
lae _argv ; save argument pointer
|
||
|
sti EM_PSIZE
|
||
|
|
||
|
lol 0
|
||
|
ste _argc ; save argument count
|
||
|
|
||
|
lpi $_catch
|
||
|
sig
|
||
|
asp EM_PSIZE
|
||
|
cal $_M2M
|
||
|
loc 0
|
||
|
ret EM_WSIZE
|
||
|
end
|