          IDENT  IIMNAM
          TITLE  IIM$IIMNAM - CYBIL INTERFACE TO THE NAM.
*copyc dsa$cybil_if_macros
          ENTRY  NET#ON
          ENTRY  NET#OFF
          ENTRY  NET#PUT
          ENTRY  NET#GET
          ENTRY  NET#STC
          ENTRY  NET#DBG
          ENTRY  NET#WAI
          ENTRY  NET#GTL
          ENTRY  ROJ
          EXT    PXSAVE
          LIST   F
          SYSCOM B1
          IF     -DEF,RA.ORG,1
OPL XTEXT COMCMAC
          EXT    PXREST
          SST
FORMFTN   MACRO  L
CNT       SET    0
          IRP    L
          SX6    L
          IFNE   CNT,0,2
          SA6    A6+B1
          SKIP   1
          SA6    PLIST+CNT
CNT       SET    CNT+1
          IRP
          MX6    0
          SA6    A6+B1
          ENDM
*
STP       MACRO  REG,LOC
          BX6    REG
          SA6    LOC
          ENDM
*
IND       MACRO  REG,LOC
          SA1    REG+NAMTAB
          BX6    X1
          SA6    LOC
          ENDM
*
NOS       IF     -DEF,RA.ORG
PLIST     BSS    10
TT1        BSS    1
TT2        BSS    1
TT3        BSS    1
TT4        BSS    1
TT5        BSS    1
CWP       BSS    1           POINTER TO COMM_WORD
*
          LIST   M
*
*      PROCEDURE [XREF] NET#ON (ANAME: INTEGER;
*        NSUP: ^CELL;
*        STATUS: ^CELL;
*        MINACN,
*        MAXACN: INTEGER);
*
NOS       ENDIF
NET#ON    BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          BX6    X2
          SA6    CWP         SAVE POINTER TO COMM_WORD
          FORMFTN (TT1,X2,X3,TT4,TT5)
          SA1    X1
          STP    X1,TT1
          STP    X4,TT4
          STP    X5,TT5
          SA1    PLIST
          RJ     =XNETON
          EQ     LEAVE
*
*      PROCEDURE [XREF] NET#OFF;
*
NOS       ENDIF
NET#OFF   BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          RJ     =XNETOFF
          EQ     LEAVE
*
*      PROCEDURE [XREF] NET#GET (ACN: INTEGER;
*        MSG: ^CELL;
*        TLMAX: INTEGER);
*
NOS       ENDIF
NET#GET   BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          FORMFTN (TT1,X2,X2+1,TT4)
          STP    X1,TT1
          STP    X3,TT4
          SA1    PLIST
          RJ     =XNETGET
          EQ     LEAVE
*
*      PROCEDURE [XREF] NET#GTL (ALN: INTEGER;
*        MSG: ^CELL;
*        TLMAX: INTEGER);
*
NOS       ENDIF
NET#GTL   BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          FORMFTN (TT1,X2,X2+1,TT4)
          STP    X1,TT1
          STP    X3,TT4
          SA1    PLIST
          RJ     =XNETGETL
          EQ     LEAVE
*
*      PROCEDURE [XREF] NET#PUT (MSG: ^CELL);
*
NOS       ENDIF
NET#PUT   BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          FORMFTN (X1,X1+1)
          SA1    PLIST
          RJ     =XNETPUT
          EQ     LEAVE
*
*      PROCEDURE [XREF] NET#STC (ONOFF: INTEGER;
*        AVAIL: ^CELL);
*
NOS       ENDIF
NET#STC   BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          FORMFTN (TT1,X2)
          STP    X1,TT1
          SA1    PLIST
          RJ     =XNETSTC
          EQ     LEAVE
*
*      PROCEDURE [XREF] NET#DBG (DBUGSUP: INTEGER;
*        DBUGDAT: INTEGER;
*        AVAIL: ^CELL);
*
NOS       ENDIF
NET#DBG   BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          FORMFTN (TT1,TT2,X3)
          STP    X1,TT1
          STP    X2,TT2
          SA1    PLIST
          RJ     =XNETDBG
*
* SET FLUSH BIT
*
          SX6    1
          MX7    0
          SA6    TT1
          SA7    TT2
          FORMFTN (TT1,TT2)
          SA1    PLIST
          RJ     =XNETSETF
          EQ     LEAVE
*
*      PROCEDURE [XREF] NET#WAIT (TIME,
*        KIND: INTEGER);
*
NOS       ENDIF
NET#WAI   BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          FORMFTN (TT1,TT2)
          STP    X1,TT1
          STP    X2,TT2
* *
* * CHECK IF TO TERMINATE
* *
*           SX6    ERAD
*           SA6    KILLJOB+10
*           GET    KILLJOB
*           SA1    KILLJOB
*           AX1    10
*           MX0    52
*           BX1    -X0*X1
*           SX0    2
*           IX0    X0-X1
*           NZ     X0,ENDR
          SA1    PLIST
          RJ     =XNETWAIT
          EQ     LEAVE
* KILLJOB   FILEB  0,0,(EPR),(FET=16)
* ERAD      BSS    10
*
* PROCEDURE [XREF] ROJ (TIME: INTEGER);
* ROJ - ROLLOUT JOB FOR A SPECIFIED NUMBER OF SECONDS
*
NOS       ENDIF
ROJ       BSS    0
NOS       IF     -DEF,RA.ORG
          RJ     PXSAVE
          SA2    ROW
          MX3    48
          BX4    X3*X2
          BX6    X4+X1
          SA6    A2
          ROLLOUT ROW
          EQ     LEAVE
ROW       VFD    30/0,18/770000B,12/0
NOS       ELSE
          SHORTEX
NOS       ENDIF
*
*****
*
          IF     -DEF,RA.ORG,2
LEAVE     BSS    0
          RJ     PXREST
*
*****
*
* ENDR      BSS    0
*           MESSAGE (=C$ ENDED BY *PF=KILLJOB*. $),3,R
*           RJ     =XNETOFF
*           ENDRUN
          END
