Google
 

Trailing-Edge - PDP-10 Archives - tops20-v7-ft-dist1-clock - 7-sources/rmsosd.r36
There are 6 other files named rmsosd.r36 in the archive. Click here to see a list.
!
!	COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1986.
!	ALL RIGHTS RESERVED.
!
!	THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED  AND
!	COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH
!	THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS  SOFTWARE  OR
!	ANY  OTHER  COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
!	AVAILABLE TO ANY OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE
!	SOFTWARE IS HEREBY TRANSFERRED.
!
!	THE INFORMATION IN THIS SOFTWARE IS  SUBJECT  TO  CHANGE  WITHOUT
!	NOTICE  AND  SHOULD  NOT  BE CONSTRUED AS A COMMITMENT BY DIGITAL
!	EQUIPMENT CORPORATION.
!
!	DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF
!	ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
!
! File: RMSOSD.R36
! Edit 501
!
! 501 - Add RCUSR, DIRST, and MSEND, MRECV
!       Add output byte pointer in ERSTR
    
LITERAL
    TOPS10=0,
    TOPS20=1;

MACRO
    !
    !	Given JSYS numbers from MONSYM, create linkages and BIND
    !	ROUTINE declarations to define a more esthetic interface
    !	to TOPS-20.
    !
    mjsys (name, skip_count, in_regs, out_regs) =
	%ASSIGN ($rms$jsysno, name)

	UNDECLARE
	    name;

	LINKAGE
	    %NAME ('L_',name) = JSYS ( 					!
	    %IF NOT %NULL (in_regs)
	    %THEN
		rplist(	%REMOVE	(in_regs)) 
	    %FI

	    %IF NOT %NULL (out_regs)
	    %THEN
		; rplist(%REMOVE(out_regs))
	    %FI
	    )
	    : skip (skip_count);

	BIND ROUTINE
	    name = $rms$jsysno : %NAME ('L_', name);    %,
    rplist (a) [] =

	REGISTER = a
	%IF %LENGTH GTR 1 %THEN , rplist (%REMAINING) %FI %;


COMPILETIME
    $rms$jsysno = 0;

mjsys (acces, -1, <1, 2>, );
mjsys (adbrk, -1, <1,2,3>, <2,3>);                                !a501
mjsys (aic, -1, <1, 2>, );
mjsys (alloc, 1, <1,2,3>, <1>);                                   !a501
mjsys (arcf, 1, <1,2,3>, );                                       !a501
mjsys (asnd, 1, <1>, <1>);    ! moved into alphabetical order     !m501
mjsys (asnsq, -1, <1,2>, <1>);                                    !a501
mjsys (atach, -1, <1,2,3,4>, <1>);  				  !a501
mjsys (ati, -1, <1>, );
mjsys (atnvt, -1, <1,2>, <1>);                                    !a501
mjsys (bin, -1, <1>, <2>);
mjsys (bkjfn, 1, <1>, <1>);                                       !a501
mjsys (boot, -1, <1,2>, );                                        !a501
mjsys (bout, -1, <1, 2>, <1>);
mjsys (cacct, 1, <1>, <1>);                                       !a501
mjsys (cfibf, -1, <1>, );
mjsys (cfobf, -1, <1>, );
mjsys (cfork, 1, <1, 2>, <1>);
mjsys (chfdb, -1, <1, 2, 3>, );
mjsys (chkac, 1, <1,2>, <1>);                                     !a501
mjsys (cis, -1,, );				! Really 0 skips
mjsys (closf, 1, <1>, <1>);
mjsys (clzff, -1, <1>, <1>);                                      !a501
mjsys (comnd, -1, <1, 2>, <1, 2, 3>);
mjsys (crdir, -1, <1, 2, 3>, <1>);
mjsys (crjob, 1, <1,2,3>, <1>);                                   !a501
mjsys (crlnm, 1, <1, 2, 3>, <1, 3>);
mjsys (cvhst, -1, <1,2>, <1>);                                    !a501
mjsys (cvskt, -1, <1>, <1,2>);                                    !a501
mjsys (debrk, -1,, );
mjsys (deldf, -1, <1, 2>, );
mjsys (delf, 1, <1>, <1>);
mjsys (delnf, 1, <1,2>, <1,2>);                                   !a501
mjsys (deq, 1, <1, 2>, <1>);
mjsys (devst, 1, <1,2>, <1>);                                     !a501
mjsys (dfin, 1, <1>, <1, 2, 3, 4>);
mjsys (dfout, 1, <1, 2, 3, 4>, <1, 4>);
mjsys (diag, 1, <1>, <1>);                                        !a501
mjsys (dibe, -1, <1>, <1>);                                       !a501
mjsys (dic, -1, <1, 2>, );
mjsys (dir, -1, <1>, );
mjsys (dirst, -1, <1,2>, <1>);          ! This was missing     !a501
mjsys (disms, -1, <1>, );			! Really 0 skips
mjsys (dobe, -1, <1>, );
mjsys (dskas, -1, <1,2>, <1>);                                    !a501
mjsys (dskop, -1, <1,2,3,4>, <1>);                                !a501
mjsys (dtach, -1, , );                                            !a501
mjsys (dti, -1, <1>, );
mjsys (dumpi, 1, <1,2>, <1,2>);                                   !a501
mjsys (dumpo, 1, <1,2>, <1,2>);                                   !a501
mjsys (dvchr, -1, <1>, <1, 2, 3>);
mjsys (eir, -1, <1>, );
mjsys (enq, 1, <1, 2>, <1>);
mjsys (enqc, 1, <1,2,3>, <1>);                                    !a501
mjsys (epcap, -1, <1, 2, 3>, );
mjsys (erstr, 2, <1, 2, 3>, <1>);       ! This also returns a pointer !m501
mjsys (esout, -1, <1>, <1>);
mjsys (ffffp, -1, <1>, <1>);
mjsys (ffork, -1, <1>, );
mjsys (ffufp, -1, <1>, <1>);
mjsys (flhst, -1, <1>, <1>);                                      !a501
mjsys (flin, 1, <1>, <1, 2, 3>);
mjsys (flout, 1, <1, 2, 3>, <1, 3>);
mjsys (gactf, 2, <1,2>, <1,2>);                                   !a501
mjsys (gcvec, -1, <1>, <1,2>);                                    !a501
mjsys (gdskc, -1, <1>, <1,2>);
mjsys (gdsts, -1, <1>, <1,2,3,4>);                                 !a501
mjsys (gdvec, -1, <1>, <2>);
mjsys (get, -1, <1, 2>, );
mjsys (getab, 1, <1>, <1>);
mjsys (geter, -1, <1>, <2>);
mjsys (getji, 1, <1, 2, 3>, <1, 2>);
mjsys (getnm, -1,, <1>);			! Really 0 skips
mjsys (getok_, -1, <1,2,3,4>, <1>);                                !a501
mjsys (gevec, -1, <1>, <2>);
mjsys (gfrkh, 1, <1,2>, <1>);                                     !a501
mjsys (gfrks, 1, <1,2,3>, <1>);                                   !a501
mjsys (gfust, -1, <1,2>, <2>);                                    !a501
mjsys (givok_, -1, <1,2,3>, );                                     !a501
mjsys (gjinf, -1, , <1,2,3,4>);
mjsys (gnjfn, 1, <1>, <1>);
mjsys (gpjfn, -1, <1>, <2>);
mjsys (gtad, -1, <1>, <1>);			! Really 0 skips
mjsys (gtdal, -1, <1>, <1,2,3>);                                  !a501
mjsys (gtdir, -1, <1,2,3>, <3>);                                  !a501
mjsys (gtfdb, -1, <1, 2, 3>, );
mjsys (gthst, -1, <1,2,3,4>, <1,2,3,4>);   ! arpanet - really 1 skip      !a501
mjsys (gtjfn, 1, <1, 2>, <1, 2>);
mjsys (gtncp, -1, <1,2,3,4>, <1,2,3,4>);   ! arpanet NCP - really 1 skip  !a501
mjsys (gtrpi, -1, <1>, <1,2,3>);                                  !a501
mjsys (gtrpw, -1, <1>, <1, 2>);
mjsys (gtsts, -1, <1>, <2>);			! Really 0 skips
mjsys (gttyp, -1, <1>, <2, 3>);			! Really 0 skips
mjsys (haltf, -1,, );				! Really 0 skips
mjsys (hfork, -1, <1>, );                                         !a501
mjsys (hptim, -1, , <1>);                                         !a501
mjsys (hsys, 1, <1,2>, <1>);                                      !a501
mjsys (idcnv, 1, <2, 3, 4>, <1, 2, 3>);
mjsys (idtim, 1, <1, 2>, <1, 2>);
mjsys (idtnc, 1, <1, 2>, <1, 2, 3, 4>);
mjsys (iic, -1, <1, 2>, );
mjsys (inlnm, 1, <1, 2>, <1, 2>);
mjsys (jfns, -1, <1, 2, 3, 4>, <1>);
mjsys (kfork, -1, <1>, );
mjsys (lgout, -1, <1>, <1> );                                     !a501
mjsys (lnmst, 1, <1, 2, 3>, <1, 3>);
mjsys (login, -1, <1,2,3>, <1,2,3>);                              !a501
mjsys (lpini, -1, <1,2,3>, );                                     !a501
mjsys (mddt_, -1, , );                                             !a501
mjsys (meter_, 1, <1,2>, <1>);                                     !a501
mjsys (mrecv, 1, <1,2>, <1>);                                     !a501
mjsys (msfrk, -1, <1,2>, );                                       !a501
mjsys (msend, 1, <1,2>, <1>);                                     !a501
mjsys (mstr, -1, <1, 2>, );
mjsys (mtaln, -1, <1,2>, );                                       !a501
mjsys (mtopr, -1, <1, 2, 3>, <1, 2, 3, 4>);
mjsys (mtu_, -1, <1,2,3>, );                                       !a501
mjsys (mutil, 1, <1,2>, <1>);                                     !a501
mjsys (nin, 1, <1, 3>, <1, 2, 3>);
mjsys (node, -1, <1,2>, );                                        !a501
mjsys (nout, 1, <1, 2, 3>, <1, 2>);
mjsys (ntman_, -1, <1>, <1>);                                      !a501
mjsys (odcnv, -1, <2, 4>, <2, 3, 4>);
mjsys (odtim, -1, <1, 2, 3>, <1>);
mjsys (odtnc, -1, <1,2,3,4,5>, <1>);                              !a501
mjsys (openf, 1, <1, 2>, <1>);
mjsys (pbin, -1,, <1>);
mjsys (pbout, -1, <1>, );
mjsys (pdvop_, -1, <1, 2, 3>, );
mjsys (peek, 1, <1,2>, <1>);                                      !a501
mjsys (plock, -1, <1,2,3>, );                                     !a501
mjsys (pmap, -1, <1, 2, 3>, );
mjsys (pmctl, -1, <1,2,3>, );                                     !a501
mjsys (ppnst, -1, <1,2,3>, <1>);                                  !a501
mjsys (prarg, -1, <1, 2, 3>, <3>);
mjsys (psout, -1, <1>, <1>);
mjsys (queue_, -1, <1,2>, <1,2>);                                 !a546
mjsys (rcdir, -1, <1,2,3>, <1,2,3>);                              !a501
mjsys (rcm, -1, <1>, <1>);
mjsys (rcusr, -1, <1, 2, 3>, <3>);      ! This was missing    !a501
mjsys (rcvim, -1, <1,2>, <1>);                    ! arpanet       !a501
mjsys (rcvok_, -1, <1,2>, );                                       !a501
mjsys (rdtty, 1, <1, 2, 3>, <1, 2>);
mjsys (reld, 1, <1>, <1>);
mjsys (relsq, -1, <1>, );                         ! arpanet       !a501
mjsys (reset, -1,, );				! Really 0 skips
mjsys (rfacs, -1, <1,2>, );                                       !a501
mjsys (rfbsz, -1, <1>, <1,2>);                                    !a501
mjsys (rfcoc, -1, <1>, <2, 3>);
mjsys (rfmod, -1, <1>, <2>);
mjsys (rfork, -1, <1>, );                                         !a501
mjsys (rfpos, -1, <1>, <2>);                                      !a501
mjsys (rfptr, 1, <1>, <1,2>);                                     !a501
mjsys (rfrkh, 1, <1>, <1>);                                       !a501
mjsys (rfsts, -1, <1,2>, <1,2,3>);                                !a501
mjsys (rftad,-1, <1, 2, 3>, );
mjsys (rin, -1, <1,3>, <2>);                                      !a501
mjsys (rir, -1, <1>, <2>);
mjsys (rircm, -1, <1>, <2>);
mjsys (rljfn, 1, <1>, <1>);
mjsys (rmap, -1, <1>, <1, 2>);
mjsys (rnamf, 1, <1,2>, <1>);                                     !a501
mjsys (rout, -1, <1,2,3>, );                                      !a501
mjsys (rpacs, -1, <1>, <2>);
mjsys (rpcap, -1, <1>, <2, 3>);
mjsys (rscan, 1, <1>, <1>);
mjsys (rsmap_, -1, <1>, <1,2>);                                    !a501
mjsys (rtfrk, -1, , <1,2>);                                       !a501
mjsys (rtiw, -1, <1>, <2, 3>);
mjsys (runtm, -1, <1>, <1,2,3>);                                  !a501
mjsys (rwm, -1, <1>, <1, 2>);
mjsys (rwset, -1, , );                                            !a501
mjsys (sactf, 1, <1,2>, <1,2>);                                   !a501
mjsys (save, -1, <1, 2>, );
mjsys (sctty, -1, <1, 2>, );
mjsys (scvec, -1, <1,2,3>, );                                     !a501
mjsys (sdsts, -1, <1,2>, );                                       !a501
mjsys (sdvec, -1, <1, 2>, );
mjsys (seter, -1, <1,2>, );                                       !a501
mjsys (setjb, -1, <1,2,3>, );                                     !a501
mjsys (setnm, -1, <1>, );			! Really 0 skips
mjsys (setsn, 1, <1, 2>, );
mjsys (sevec, -1, <1, 2>, );
mjsys (sfacs, -1, <1,2>, );                                       !a501
mjsys (sfbsz, 1, <1, 2>, <1>);
mjsys (sfcoc, -1, <1, 2, 3>, );
mjsys (sfmod, -1, <1, 2>, );
mjsys (sfork, -1, <1, 2>, );
mjsys (sfpos, -1, <1,2>, );                                       !a501
mjsys (sfptr, 1, <1, 2>, <1>);
mjsys (sfrkv, -1, <1, 2>, );
mjsys (sftad, -1, <1,2,3>, );                                     !a501
mjsys (sfust, -1, <1,2>, <2>);                                    !a501
mjsys (sibe, 1, <1>, <2>);
mjsys (sin, -1, <1, 2, 3, 4>, <1, 2, 3>);
mjsys (sinr, -1, <1,2,3,4>, <1,2,3>);                             !a501
mjsys (sir, -1, <1, 2>, );
mjsys (sircm, -1, <1, 2, 3>, );
mjsys (sizef, 1, <1>, <1, 2, 3>);
mjsys (sjpri, -1, <1,2>, );                    ! priveleged       !a501
mjsys (sked_, -1, <1,2>, );                    ! priveleged       !a501
mjsys (skpir, 1, <1>, );
mjsys (smap_, -1, <1, 2, 3>, );
mjsys (smon, -1, <1,2>, );                     ! priveleged       !a501
mjsys (sndim, -1, <1,2>, <1>);                 ! arpanet          !a501
mjsys (snoop, 1, <1,2,3,4>, <1>);              ! priveleged       !a501
mjsys (sobe, 1, <1>, <2>);
mjsys (sobf, 1, <1>, <1,2>);                                      !a501
mjsys (sout, -1, <1, 2, 3, 4>, <1, 2, 3>);
mjsys (soutr, -1, <1,2,3,4>, <2,3>);                              !a501
mjsys (spacs, -1, <1,2>, <1,2>);   ! ?return values not known     !a501
mjsys (spjfn, -1, <1, 2>, );
mjsys (splfk, 1, <1,2>, <1,2>);                                   !a501
mjsys (spool, 1, <1,2>, <1>);                                     !a501
mjsys (spriw, -1, <1,2>, );                                       !a501
mjsys (ssave, -1, <1, 2, 3>, );
mjsys (stad, 1, <1>, <1>);                     ! priveleged          !a501
mjsys (stcmp, -1, <1,2>, <1,2>);                                  !a501
mjsys (sti, -1, <1, 2>, );
mjsys (stiw, -1, <1, 2, 3>, <3>);
mjsys (sto, -1, <1>, <1>);                                        !a501
mjsys (stpar, -1, <1, 2>, );
mjsys (stppn, -1, <1>, <2>);                                      !a501
mjsys (ststs, 1, <1,2>, <1>);                                     !a501
mjsys (sttyp, -1, <1, 2>, );
mjsys (swjfn, -1, <1,2>, );                                       !a501
mjsys (swtrp_, -1, <1,2,3>, );                                    !a501
mjsys (syerr, -1, <1,2>, );                                       !a501
mjsys (sysgt, -1, <1>, <1, 2>);
mjsys (tbadd, -1, <1, 2>, <1>);
mjsys (tbdel, -1, <1, 2>, );
mjsys (tbluk, -1, <1, 2>, <1, 2, 3>);
mjsys (texti, 1, <1>, <1>);
mjsys (tfork, -1, <1,2,3>, );                                     !a501
mjsys (thibr, -1, <1>, );    ! temp                                      !a501
mjsys (time, -1, , <1,2>);                                               !a501
mjsys (tlink, 1, <1,2>, <1>);                                            !a501
mjsys (tmon, -1, <1,2>, <2>);                                            !a501
mjsys (ttmsg, -1, <1, 2>, );
mjsys (twake, -1, <1>, <1>);  ! temp					 !a501
mjsys (ufpgs, 1, <1, 2>, <1>);
mjsys (usage, -1, <1,2>, );                               ! priveleged   !a501 
mjsys (usrio, -1, ,<1>);                                  ! priveleged   !a501
mjsys (utest, -1, <1,2>, );                               ! priveleged   !a501
mjsys (utfrk, -1, <1>, );                                                !a501
mjsys (vacct, -1, <1,2>, <2>);                                           !a501 
mjsys (wait, -1, , );                                                    !a501 
mjsys (wfork, -1, <1>, );
mjsys (wild_, -1, <1, 2, 3>, <1>);
mjsys (xgsev_, -1, <1>, <2,3>);                                          !a501 
mjsys (xgtpw_, -1, <1,2>, );                                             !a501 
mjsys (xgvec_, -1, <1>, <2, 3>);
mjsys (xrir_, -1, <1,2>, );                                              !a501 
mjsys (xrmap_, -1, <1>, <1, 2>);
mjsys (xsfrk_, -1, <1, 2, 3>, );
mjsys (xsir_, -1, <1,2>, );                                          !a501 
mjsys (xssev_, -1, <1,2,3>, );                                       !a501 
mjsys (xsvec_, -1, <1>, <2, 3>);

MACRO JSYS_FAIL (NAME) = %INFORM ('MACRO JSYS_FAIL is obsolete') IF 1 %;
MACRO DO_JSYS (NAME) = %inform ('MACRO DO_JSYS is obsolete') (0) %;

COMPILETIME OSKLU=0;			!SEE BELOW

!! JSYS MACROS
!!
!
!MACRO JSYS_FAIL(NAME) = IF NOT JSYS( -1, NAME, AC1, AC2, AC3, AC4) %;
!
!MACRO DO_JSYS(NAME)=				!DOES JSYS AND HANDLES JSYS FAILURES
!BEGIN
!	%ASSIGN(OSKLU,OSKLU+1);			!INSURE OS CALLS NOT OPTED
!	BIND %NAME(NAME,'.')=%O'104'^27 OR NAME; !MAKE JSYS AVAIL FOR DEBUGGING
!	JSYS (0, NAME, AC1,AC2,AC3,AC4);	!DO THE JSYS
!	ERCAL (MONERR);
!	ERJMP (OSKLU)				!KLUDGE TO PREVENT CODE OPT
!END %;

!
! UUO MACROS
!

MACRO UUO_FAIL = IF NOT UUO( 1, %REMAINING) %;

MACRO DO_UUO(C$, A$, E$) =		!DOES UUO AND ABORTS ON ERRORS
BEGIN
	%ASSIGN(OSKLU,OSKLU+1);			!INSURE OS CALLS NOT OPTED
	UUO ( 0, C$, A$ ,E$);
	$EXIT(MONERR);
	ERJMP (OSKLU)			!KLUDGE TO PREVENT CODE OPT
END %;

MACRO DO_FILOP =			!DOES FILOP AND HANDLES FILOP FAILURES
BEGIN
	%ASSIGN(OSKLU,OSKLU+1);		!INSURE OS CALLS NOT OPTED
	AC2=.AC1<RH>;			!SAVE PTR TO ARGBLK FOR FOPERR & DBUGING
	UUO ( 0, FILOP$(AC1));
	$EXIT (FOPERR);
	ERJMP (OSKLU)			!DITTO
END %;


UNDECLARE ERCAL,ERJMP;
MACRO ERCAL(ADDR$) = MACHOP(%O'320',%O'17',ADDR$)%;
MACRO ERJMP(ADDR$) = MACHOP(%O'320',%O'16',ADDR$)%;

! REGISTERS USED BY MONITOR CALL INTERFACE
!
MACRO REGS =
REGISTER
	AC1=1,
	AC2=2,
	AC3=3,
	AC4=4;
%;