*COMDECK CMACROS
          CTEXT 
  
**        CMACROS - COMPASS MACRO DEFINITIONS FOR RHF APPLICATIONS. 
* 
*         MACRO NAMES 
*                MACREF 
*                NETDBG 
*                NETGET 
*                NETGETL
*                NETOFF 
*                NETON
*                NETPUT 
*                NETUXFR
*                NETWAIT
*                NETXFR 
*                NETXFRC
*                '?NET#G (INTERNAL) 
*                '?NET#P (INTERNAL) 
* 
*         CALLS COMMON DECK  NETMAC.
  
  
 MACREF   SPACE  4,10 
**        MACREF - GENERATE SYMBOLIC REFERENCE TABLE LISTING. 
* 
*         CAUSES THE MACRO NAME TO BE LISTED IN THE SYMBOLIC
*         REFERENCE TABLE UNDER THE QUALIFIER *MACRO$*. 
* 
*         MACREF MNAME
*                MNAME - MACRO NAME FOR REFERENCE TABLE 
  
  PURGMAC MACREF
 MACREF MACRO N 
  QUAL MACRO$ 
 N SET *
  QUAL *
 MACREF ENDM
 NETON    SPACE  4,10 
**        NETON - CONNECT APPLICATION TO RHF. 
* 
*         NETON  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 
  
  PURGMAC NETON 
  
 NETON MACRO ANAME,CANIS,STAT,MIN,MAX,LIS 
  LOCAL '?LI,'?EX,'?PAR,'?CON 
  MACREF NETON
 '?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 * 
 NETON    ENDM
 NETGET   SPACE  4,10 
* 
*                NETGET - TRANSFERS ONE DATA BLOCK OR SYNCHRONOUS 
*                         SUPERVISORY MESSAGE ON A CONNECTION 
* 
          PURGMAC NETGET
* 
 NETGET   MACRO  ACN,HA,TA,TLMAX,LIST 
  MACREF NETGET 
  '?NET#G NETGET,ACN,HA,TA,TLMAX,LIST 
          ENDM
 NETGETL  SPACE  4,10 
* 
*                NETGETL - TRANSFERS ONE DATA BLOCK OR SYNCHRONOUS
*                          SUPERVISORY MESSAGE ONA LIST OF CONNECTIONS
* 
          PURGMAC NETGETL 
* 
 NETGETL  MACRO  ACN,HA,TA,TLMAX,LIST 
  MACREF NETGETL
  '?NET#G NETGETL,ACN,HA,TA,TLMAX,LIST
          ENDM
 NETPUT   SPACE  4,10 
* 
*                NET PUT - SEND A BLOCK OF DATA TO THE NETWORK
* 
          PURGMAC NETPUT
* 
 NETPUT   MACRO  HA,TA,LIST 
  MACREF NETPUT 
  '?NET#P NETPUT,HA,TA,LIST 
          ENDM
 NETDBG   SPACE  4,10 
* 
*                NETDBG - CHANGE AIP DEBUG LOGGING OPTIONS
* 
          PURGMAC NETDBG
* 
 NETDBG   MACRO  OP1,OP2,STAT,OP3,LIST
  MACREF NETDBG 
  '?NET#G NETDBG,OP1,OP2,STAT,OP3,LIST
          ENDM
 NETOFF   SPACE  4,10 
* 
*                NETOFF - TERMINATES ACCESS TO THE NETWORK
* 
          PURGMAC NETOFF
* 
 NETOFF   MACRO 
  MACREF NETOFF 
+ RJ =X_NETOFF
- VFD 30/0
          ENDM
NETUXFR   SPACE  4,10 
* 
*         NETUXFR - DATA TRANSFER WITH USER I/O.
* 
  
  
  PURGMAC NETUXFR 
  
NETUXFR MACRO ACN,FETADR,REQAREA,FETFC,LIST 
  MACREF NETUXFR
  '?NET#G NETUXFR,ACN,FETADR,REQAREA,FETFC,LIST 
NETUXFR ENDM
 NETWAIT  SPACE  4,10 
* 
*                NETWAIT - WAIT FOR INPUT FROM THE NETWORK
* 
          PURGMAC NETWAIT 
* 
 NETWAIT  MACRO  TIME,FLAG,LIST 
  MACREF NETWAIT
  '?NET#P NETWAIT,TIME,FLAG,LIST
          ENDM
NETXFR    SPACE  4,10 
* 
*         NETXFR - TRANSFER FILE. 
* 
  
  
  PURGMAC NETXFR
  
NETXFR MACRO ACN,F,OP,ST,WT,DD,TO,FAC,ABL,MBZ,ACKW,CRESNO,PRESNO,LIS
  LOCAL '?LI,'?EX,'?PAR,'?CON 
  MACREF NETXFR 
'?EX SET -1 
'?LI SET -1 
  IFC EQ,**ACN*,1 
  ERR FIRST PARAMETER MISSING 
A IFC EQ,**LIS* 
'?EX SET 1
  IFC EQ,**F*,5 
  IFC EQ,**OP*,4
  IFC EQ,**ST*,3
  IFC EQ,**WT*,2
  IFC EQ,**DD*,1
  IFC NE,**TO*,3
  VFD 42/0,18/FAC 
  VFD 42/0,18/ABL 
  VFD 42/0,18/MBZ 
  VFD 42/0,18/ACKW
  VFD 42/0,18/CRESNO
  VFD 42/0,18/PRESNO
  VFD 60/0
*                  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,,*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_NETXFR
- VFD 30/0
D IFPL '?LI 
  EQ '?CON
  ENDIF 
  IFPL '?LI 
  IFC EQ,**F*,1 
  ERR FILE NAME MISSING 
  IFC EQ,**OP*,1
  ERR OP CODE MISSING 
  IFC EQ,**ST*,1
  ERR STATUS ADDR MISSING 
  IFC EQ,**WT*,1
  ERR WAIT CODE MISSING 
  IFC EQ,**DD*,1
  ERR DATA DECL MISSING 
  IFC EQ,**TO*,1
  ERR TIME OUT MISSING
'?PAR VFD 42/0,18/ACN 
  VFD 42/0,18/F 
  VFD 42/0,18/OP
  VFD 42/0,18/ST
  VFD 42/0,18/WT
  VFD 42/0,18/DD
  VFD 42/0,18/TO
  ENDIF 
'?CON EQU * 
NETXFR ENDM 
NETXFRC   SPACE  4,10 
* 
*         NETXFRC - CONTINUE TRANSFER INITIATED BY NETXFR.
* 
  
  
  PURGMAC NETXFRC 
  
NETXFRC MACRO 
  MACREF NETXFRC
+ RJ =XNETXFRC
- VFD 30/0
NETXFRC ENDM
'?NET#G   SPACE  4,10 
* 
* 
*         '?NET#G - SUB MACRO FOR NETDBG, NETGET, NETGETL, NETUXFR. 
* 
          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 2D PARAMETER MISSING
  IFC EQ,**TA*,1
  ERR 3D PARAMETER MISSING
  IFC EQ,**TLMAX*,1 
  ERR 4TH PARAMETER 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 * 
'?NET#G   ENDM
'?NET#P   SPACE  4,10 
* 
*         '?NET#P - SUB MACRO FOR NETPUT, NETWAIT.
* 
          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 * 
'?NET#P   ENDM
  
*CALL NETMAC
 CMACROS  ENDX
