*COMDECK CMACROS
          CTEXT 
* 
          PURGMAC NETON 
* 
NETON     MACRO  ANAME,CANIS,STAT,MIN,MAX,LIS 
*     IF THERE IS ONLY ONE PARAMETER PASSED TO THIS MACRO,THE FORMAT
*     MUST BE LIST=ADDRESS,WHERE ADDRESS IS THE LOCATION OF THE 
*     PARAMETER LIST. THAT PARAMETER LIST WILL BE USED FOR THE NETON
*     CALL. 
*     A PARAMETER LIST WILL BE BUILT IF MORE THAN ONE PARAMETER IS
*     PASSED. ADDRESSES ARE EXPECTED FOR ANAME,THE NSUP WORD,THE
*     STATUS WORD,MINACN,AND MAXACN. IF LIS IS PASSED, THEN THE 
*     PARAMETER LIST IS BUILT BUT NETON WILL NOT BE CALLED. 
*     LOCAL VARIABLES:  
*       '?LI = 1  MEANS A PARAMETER LIST IS TO BE BUILT.
*       '?EX = 1  MEANS A RJ TO NETON IS SET UP 
*       '?PAR = ADDRESS OF THE PARAMETER LIST 
*       '?CON = ADDRESS TO BYPASS PARAMETER LIST(DATA) DURING EXECUTION 
  LOCAL '?LI,'?EX,'?PAR,'?CON 
 '?EX SET -1
 '?LI SET -1
  IFC EQ,**ANAME*,1 
  ERR FIRST PARAMETER MISSING 
 A IFC EQ,**LIS*
 '?EX SET 1 
   IFC EQ,**CANIS*,3
   IFC EQ,**STAT*,2 
   IFC EQ,**MIN*,1
   IFC NE,**MAX*,3
*                  1ST FORM 
   SA1 '?PAR
 '?LI SET 1 
 B SKIP 
*                  ONLY 1ST PARAMETER PRESENT. MUST BE 2ND FORM 
 '?NET# MICRO 1,5,*ANAME* 
 C IFC EQ,*"'?NET#"*LIST=*
 '?NET#AD MICRO 6,,*ANAME*
  R= A1,"'?NET#AD"
 C ELSE 
  ERR MUST BE LIST= 
 C ENDIF
 B ENDIF
 A ELSE 
*                  3RD FORM 
 '?LI SET 1 
 A ENDIF
 C IFPL '?EX
+ RJ =X_NETON 
- VFD 30/0
 D IFPL '?LI
  EQ '?CON
  ENDIF 
  IFPL '?LI 
          IFC    EQ,**CANIS*,1
          ERR    NSUP ADDRESS MISSING 
          IFC    EQ,**STAT*,1 
          ERR    STATUS ADDRESS MISSING 
          IFC    EQ,**MIN*,1
          ERR    MINACN ACDRESS MISSING 
          IFC    EQ,**MAX*,1
          ERR    MAXACN ADDRESS MISSING 
'?PAR VFD 42/0,18/ANAME 
          VFD    42/0,18/CANIS
          VFD    42/0,18/STAT 
          VFD    42/0,18/MIN
          VFD    42/0,18/MAX
  ENDIF 
'?CON EQU * 
          ENDM
* 
*         NETDMB - DUMP FIELD LENGTH TO ZZZZDMB FILE. 
* 
          PURGMAC NETDMB
* 
 NETDMB   MACRO  DUMPID,ECS,LIST
  '?NET#P NETDMB,DUMPID,ECS,LIST
          ENDM
* 
*         NETFUNC - MODIFY AIP PROCESSING ACCORDING TO FUNCTION CODE
*                   SPECIFIED 
* 
          PURGMAC NETFUNC 
* 
 NETFUNC  MACRO  FC,WSA,LIST
  '?NET#P NETFUNC,FC,WSA,LIST 
          ENDM
*IF,DEF,IMS 
* 
*                NETGET - TRANSFERS ONE DATA BLOCK OR SYNCHRONOUS 
*                         SUPERVISORY MESSAGE ON A CONNECTION 
* 
*ENDIF
          PURGMAC NETGET
* 
 NETGET   MACRO  ACN,HA,TA,TLMAX,LIST 
  '?NET#G NETGET,ACN,HA,TA,TLMAX,LIST 
          ENDM
* 
*                NETGETF - TRANSFERS A FRAGMENTED DATA BLOCK OR 
*                          SUPERVISORY MESSAGE ON A CONNECTION
* 
          PURGMAC NETGETF 
* 
 NETGETF  MACRO  ACN,HA,NA,TAA,LIST 
  '?NET#G NETGETF,ACN,HA,NA,TAA,LIST
          ENDM
* 
*                NETGETL - TRANSFERS ONE DATA BLOCK OR SYNCHRONOUS
*                          SUPERVISORY MESSAGE ONA LIST OF CONNECTIONS
* 
          PURGMAC NETGETL 
* 
 NETGETL  MACRO  ACN,HA,TA,TLMAX,LIST 
  '?NET#G NETGETL,ACN,HA,TA,TLMAX,LIST
          ENDM
* 
*         NETGETQ - GET A MSG FROM EITHER AIP-S UPLINE QUEUES OR NIP-S
*                   QUEUES FOR THE SPECIFIED CONNECTION NUMBER
* 
          PURGMAC NETGETQ 
* 
 NETGETQ  MACRO  ACN,HA,TA,TLMAX,OPTWRD,LIST
  '?NET#Q NETGETQ,ACN,HA,TA,TLMAX,OPTWRD,LIST 
          ENDM
* 
*                NETGTFL - TRANSFERS A FRAGMENTED DATA BLOCK OR 
*                          SUPERVISORY MESSAGE ON A LIST OF CONNECTIONS 
* 
          PURGMAC NETGTFL 
* 
 NETGTFL  MACRO  ALN,HA,NA,TAA,LIST 
  '?NET#G NETGTFL,ALN,HA,NA,TAA,LIST
          ENDM
* 
*         NETGTLQ - GET A MSG FROM EITHER AIP-S UPLINE QUEUES OR NIP-S
*                   QUEUES FOR THE SPECIFIED LIST NUMBER
* 
          PURGMAC NETGTLQ 
* 
 NETGTLQ  MACRO  ALN,HA,TA,TLMAX,OPTWRD,LIST
  '?NET#Q NETGTLQ,ALN,HA,TA,TLMAX,OPTWRD,LIST 
          ENDM
* 
*         NETLGS - LOG A MESSAGE INTO STATISTIC FILE ZZZZZSN. 
* 
          PURGMAC NETLGS
* 
 NETLGS   MACRO  ADDR,SIZE,LIST 
  '?NET#P NETLGS,ADDR,SIZE,LIST 
          ENDM
* 
*         NETLOG - LOG A MESSAGE INTO DEBUG LOG FILE ZZZZZDN. 
* 
          PURGMAC NETLOG
* 
 NETLOG   MACRO  ADDR,SIZE,FORMAT,LIST
  '?NET#D NETLOG,ADDR,SIZE,FORMAT,LIST
          ENDM
* 
*                NET PUT - SEND A BLOCK OF DATA TO THE NETWORK
* 
          PURGMAC NETPUT
* 
 NETPUT   MACRO  HA,TA,LIST 
  '?NET#P NETPUT,HA,TA,LIST 
          ENDM
* 
*                NETREL - RELEASE/INITIALIZE DEBUG LOG FILE 
* 
          PURGMAC NETREL
* 
 NETREL  MACRO  JOBREC,MSGLTH,NREWIND,LIST
    '?NET#D NETREL,JOBREC,MSGLTH,NREWIND,LIST 
          ENDM
* 
*                NETSETF - SET FLUSH BIT ON ZZZZZDN FILE
* 
          PURGMAC NETSETF 
* 
 NETSETF  MACRO  FLUSH,FETADR,LIST
  '?NET#P NETSETF,FLUSH,FETADR,LIST 
          ENDM
* 
*                NETPUTF - SEND A FRAGMENTED DATA BLOCK TO THE NETWORK
* 
          PURGMAC NETPUTF 
* 
 NETPUTF  MACRO  HA,NA,TAA,LIST 
  '?NET#D NETPUTF,HA,NA,TAA,LIST
          ENDM
* 
*         NETPUTS - SEND A MSG TO THE NETWORK AFTER AIP EXAMINES IT 
*                   FOR SPECIAL ASYNCHRONOUS SUPERVISORY MESSAGE. 
* 
          PURGMAC NETPUTS 
* 
 NETPUTS  MACRO  HA,TA,OPTWRD,LIST
  '?NET#D NETPUTS,HA,TA,OPTWRD,LIST 
          ENDM
* 
*                NETDBG - CHANGE AIP DEBUG LOGGING OPTIONS
* 
          PURGMAC NETDBG
* 
 NETDBG   MACRO  OP1,OP2,STAT,LIST
  '?NET#D NETDBG,OP1,OP2,STAT,LIST
          ENDM
* 
*                NETSTC - CHANGE AIP STATISTICS LOGGING OPTION
* 
          PURGMAC NETSTC
* 
 NETSTC   MACRO  OP1,STAT,LIST
  '?NET#P NETSTC,OP1,STAT,LIST
          ENDM
* 
*                SUB MACRO USED BY NETPUTF AND NETDBG MACROS
*                                AND NETLOG MACRO 
* 
          PURGMAC '?NET#D 
* 
'?NET#D   MACRO  CALL,HA,NA,TAA,LIS 
  LOCAL '?LI,'?EX,'?PAR,'?CON 
 '?EX SET -1
 '?LI SET -1
   IFC EQ,**HA*,1 
   ERR FIRST PARAMETER MISSING
 A IFC EQ,**LIS*
 '?EX SET 1 
   IFC EQ,**NA*,1 
   IFC NE,**TAA*,3
*                  1ST FORM 
   SA1 '?PAR
 '?LI SET 1 
 B SKIP 
*                  ONLY 1ST PARAMETER PRESENT. MUST BE 2ND FORM 
 '?NET# MICRO 1,5,*HA*
 C IFC EQ,*"'?NET#"*LIST=*
 '?NET#AD MICRO 6,,*HA* 
  R= A1,"'?NET#AD"
 C ELSE 
   ERR MUST BE LIST=
 C ENDIF
 B ENDIF
 A ELSE 
*                  3RD FORM 
 '?LI SET 1 
 A ENDIF
 D IFPL '?EX
+ RJ =X_CALL
- VFD 30/0
 E IFPL '?LI
  EQ '?CON
   ENDIF
 F IFPL '?LI
  IFC EQ,**NA*,1
          ERR    SECOND PARAMETER MISSING 
  IFC EQ,**TAA*,1 
          ERR    THIRD PARAMETER MISSING
'?PAR VFD 42/0,18/HA
      VFD 42/0,18/NA
      VFD 42/0,18/TAA 
      VFD 60/0
 F ENDIF
'?CON EQU * 
          ENDM
* 
*                NETOFF - TERMINATES ACCESS TO THE NETWORK
* 
          PURGMAC NETOFF
* 
 NETOFF   MACRO 
+ RJ =X_NETOFF
- VFD 30/0
          ENDM
* 
*                NETWAIT - WAIT FOR INPUT FROM THE NETWORK
* 
          PURGMAC NETWAIT 
* 
 NETWAIT  MACRO  TIME,FLAG,LIST 
  '?NET#P NETWAIT,TIME,FLAG,LIST
          ENDM
* 
*                NETSETP - SELECT OPTIONS FOR CONTROL IN AIP
* 
          PURGMAC NETSETP 
* 
 NETSETP  MACRO  OPTION,LIS 
  LOCAL '?LI,'?EX,'?PAR,'?CON 
 '?EX SET -1
 '?LI SET -1
  IFC EQ,**OPTION*,1
  ERR PARAMETER MISSING 
 A IFC EQ,**LIS*
 '?EX SET 1 
*                  ONLY 1ST PARAMETER PRESENT. MUST BE 2ND FORM 
 '?NET# MICRO 1,5,*OPTION*
 C IFC EQ,*"'?NET#"*LIST=*
 '?NET#AD MICRO 6,,*OPTION* 
  R= A1,"'?NET#AD"
 C ELSE 
  SA1 '?PAR 
 '?LI SET 1 
 C ENDIF
 A ELSE 
*                  3RD FORM 
 A ENDIF
 C IFPL '?EX
+ RJ =X_NETSETP 
- VFD 30/0
 D IFPL '?LI
  EQ '?CON
  ENDIF 
  IFPL '?LI 
'?PAR VFD 42/0,18/OPTION
  VFD 60/0
  ENDIF 
'?CON EQU * 
          ENDM
* 
*                NETCHEK - CHECK ON COMPLETION OF PREVIOUS
*                          REQUESTS TO AIP
* 
          PURGMAC NETCHEK 
* 
 NETCHEK  MACRO 
+ RJ =X_NETCHEK 
- VFD 30/0
          ENDM
* 
* 
*                SUB MACROS      TO BE USED BY THE MACROS  ABOVE
* 
          PURGMAC '?NET#G 
* 
'?NET#G   MACRO  CALL,ACN,HA,TA,TLMAX,LIS 
  LOCAL '?LI,'?EX,'?PAR,'?CON 
 '?EX SET -1
 '?LI SET -1
  IFC EQ,**ACN*,1 
  ERR FIRST PARAMETER MISSING 
 A IFC EQ,**LIS*
 '?EX SET 1 
   IFC EQ,**HA*,2 
   IFC EQ,**TA*,1 
   IFC NE,**TLMAX*,3
*                  1ST FORM 
   SA1 '?PAR
 '?LI SET 1 
 B SKIP 
*                  ONLY 1ST PARAMETER PRESENT. MUST BE 2ND FORM 
 '?NET# MICRO 1,5,*ACN* 
 C IFC EQ,*"'?NET#"*LIST=*
 '?NET#AD MICRO 6,,*ACN*
  R= A1,"'?NET#AD"
 C ELSE 
  ERR MUST BE LIST= 
 C ENDIF
 B ENDIF
 A ELSE 
*                  3RD FORM 
 '?LI SET 1 
 A ENDIF
 C IFPL '?EX
+ RJ =X_CALL
- VFD 30/0
 D IFPL '?LI
  EQ '?CON
  ENDIF 
  IFPL '?LI 
  IFC EQ,**HA*,1
  ERR HEADER AREA ADDRESS MISSING 
  IFC EQ,**TA*,1
  ERR TEXT AREA ADDRESS MISSING 
  IFC EQ,**TLMAX*,1 
  ERR TEXT LIMIT IS MISSING 
'?PAR VFD 42/0,18/ACN 
  VFD 42/0,18/HA
  VFD 42/0,18/TA
  VFD 42/0,18/TLMAX 
  VFD 60/0
  ENDIF 
'?CON EQU * 
          ENDM
* 
*                SUBMACRO USED BY NETPUT,NETREL,NETSETF,NETSTC
*                                  AND NETWAIT,NETLGS,NETDMB MACROS 
* 
          PURGMAC '?NET#P 
* 
'?NET#P   MACRO  CALL,HA,TA,LIS 
  LOCAL '?LI,'?EX,'?PAR,'?CON 
 '?EX SET -1
 '?LI SET -1
  IFC EQ,**HA*,1
  ERR FIRST PARAMETER MISSING 
 A IFC EQ,**LIS*
 '?EX SET 1 
 B IFC NE,**TA* 
*                  1ST FORM 
  SA1 '?PAR 
 '?LI SET 1 
 B ELSE 
*                  ONLY 1ST PARAMETER PRESENT. MUST BE 2ND FORM 
 '?NET# MICRO 1,5,*HA*
 C IFC EQ,*"'?NET#"*LIST=*
 '?NET#AD MICRO 6,,*HA* 
  R= A1,"'?NET#AD"
 C ELSE 
  ERR MUST BE LIST= 
 C ENDIF
 B ENDIF
 A ELSE 
*                  3RD FORM 
 '?LI SET 1 
 A ENDIF
 C IFPL '?EX
+ RJ =X_CALL
- VFD 30/0
 D IFPL '?LI
  EQ '?CON
  ENDIF 
  IFPL '?LI 
  IFC EQ,**TA*,1
  ERR SECOND PARAMETER MISSING
'?PAR VFD 42/0,18/HA
  VFD 42/0,18/TA
  VFD 60/0
  ENDIF 
'?CON EQU * 
          ENDM
          PURGMAC '?NET#Q 
* 
'?NET#Q   MACRO  CALL,ACN,HA,TA,TLMAX,OPTWRD,LIS
  LOCAL '?LI,'?EX,'?PAR,'?CON 
 '?EX SET -1
 '?LI SET -1
  IFC EQ,**ACN*,1 
  ERR FIRST PARAMETER MISSING 
 A IFC EQ,**LIS*
 '?EX SET 1 
   IFC EQ,**HA*,3 
   IFC EQ,**TA*,2 
   IFC EQ,**TLMAX*,1
   IFC NE,**OPTWRD*,3 
*                  1ST FORM 
   SA1 '?PAR
 '?LI SET 1 
 B SKIP 
*                  ONLY 1ST PARAMETER PRESENT. MUST BE 2ND FORM 
 '?NET# MICRO 1,5,*ACN* 
 C IFC EQ,*"'?NET#"*LIST=*
 '?NET#AD MICRO 6,,*ACN*
  R= A1,"'?NET#AD"
 C ELSE 
  ERR MUST BE LIST= 
 C ENDIF
 B ENDIF
 A ELSE 
*                  3RD FORM 
 '?LI SET 1 
 A ENDIF
 C IFPL '?EX
+ RJ =X_CALL
- VFD 30/0
 D IFPL '?LI
  EQ '?CON
  ENDIF 
  IFPL '?LI 
  IFC EQ,**HA*,1
  ERR HEADER AREA ADDRESS MISSING 
  IFC EQ,**TA*,1
  ERR TEXT AREA ADDRESS MISSING 
  IFC EQ,**TLMAX*,1 
  ERR TEXT LIMIT IS MISSING 
  IFC EQ,**OPTWRD*,1
  ERR OPTION WORD ADDRESS MISSING 
'?PAR VFD 42/0,18/ACN 
  VFD 42/0,18/HA
  VFD 42/0,18/TA
  VFD 42/0,18/TLMAX 
  VFD 42/0,18/OPTWRD
  VFD 60/0
  ENDIF 
'?CON EQU * 
          ENDM
 CMACROS  ENDX
