There are no other files named exch.b10 in the archive.
! BLISS-10 module to do (simulated) process creation and exchange
! by means of CREATE and EXCHJ, and to find the current stack base.
! will create an independent stack (at address contained in STK).
! When this stack is EXCHANGE'd to, a call to the routine in RTN
! is executed with the contents of ARG1,ARG2... as arguments.
! If this routine returns, the routine in THNRTN is called
! with the address and length of the stack as arguments.
! THNRTN would normally return the stack space to free storage
! and EXCHANGE to the next process.
GLOBAL ROUTINE CREATEPROC(STK,STKL,THNRTN,RTN,ARGLST)=
! The following internal routine is needed because
! CREATE wants a fixed address for the real main routine.
! We pass our main routine and arguments to it as arguments.
AT .STK LENGTH .STKL
!EXCHANGE(A,B) runs the process whose stack base is in A
! returning (to that process) the value contained in B
GLOBAL ROUTINE EXCHANGE(A,B)=EXCHJ(.A,.B);
!FSTACK() returns the value of the current process's stack base.
! This is a routine for transportability (e.g. to real BLISS-36)
GLOBAL ROUTINE FSTACK=