COMCFQO 
COMMON
          CTEXT  COMCFQO - FORMAT QUEUED FILE OUTPUT. 
          SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   COMCFQO
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       FQO - FORMAT QUEUED FILE OUTPUT.
*         D. A. COAPSTICK    74/11/11.
*         B. M. SLIWINSKI.   83/06/30.
 FQO      SPACE  4,25 
**        FQO - FORMAT OUTPUT LINE. 
* 
*         *FQO* FORMATS AN OUTPUT LINE FOR THE QUEUED FILE
*         UTILITIES.  IF WORD 9 OF THE IQFT ENTRY IS ZERO,
*         THE MACHINE ID, DATE, AND LENGTH FIELDS ARE BLANK FILLED. 
* 
*         ENTRY  (X1) = LINE NUMBER (BINARY). 
*                (X5) = ADDRESS OF IQFT ENTRY.
*                (X3) = DISPOSITION FIELD ENTRY.
*                (B7) = ADDRESS OF FAMILY/DEVICE WORD.
*                       THIS WORD HAS THE FORMAT- 
*                       42/FAMILY,6/DEVICE,12/. 
* 
*         EXIT   (B3) = ADDRESS OF LINE.
*                (B2) = NUMBER OF WORDS IN LINE.
* 
*         USES   X - 0, 1, 2, 3, 5, 6.
*                A - 1, 2, 3, 6, 7. 
*                B - 2, 3, 6, 7.
* 
*         CALLS  CDD, COD, SCB, ZTB.
* 
*         MACROS CFORM, EDATE.
* 
*         XREF   COMCCDD, COMCCOD, COMCEDT, COMCSCB, COMCVLC, COMCZTB,
*                COMSJIO, COMSMLS, COMSSCD. 
          SPACE  4,10 
**        SCLASS - DEFINE SERVICE CLASS TABLE.
* 
*         SCLASS NM,MN,DF,ST,TX 
* 
*         ENTRY  *NM* = SERVICE CLASS NAME. 
*                *MN* = TWO CHARACTER MNEMONIC. 
*                *DF* = DAYFILE MESSAGE CHARACTER.
*                *ST* = SHORT TEXT FOR *QFTLIST*. 
*                *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. 
* 
*         NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
*                THIS MACRO.
  
  
          PURGMAC SCLASS
  
 SCLASS   MACRO  NM,MN,DF,ST,TX 
 .SCLFQO  RMT 
 NM     VFD    6/1R_DF,54/0  TX 
 .SCLFQO  RMT 
 SCLASS   ENDM
  
  
 SCL$     EQU    0           ONLY PROCESS CLASSES WITH JCB-S
  
*CALL     COMSSCD 
 FQO      TITLE  COMCFQO - FORMAT QUEUED FILE OUTPUT. 
  
  
 FQO      SUBR               ENTRY/EXIT 
          SX7    B7          SAVE ADDRESS OF FAMILY/DEVICE NUMBER 
          BX0    X1          SAVE LINE NUMBER 
          SA1    FQOA        BLANK FILL BUFFER
          SB6    FQOAL-3     SET NUMBER OF WORDS
          BX6    X1 
          SA6    A1+B1
 FQO1     SA6    A6+B1
          SB6    B6-B1
          NZ     B6,FQO1     IF NOT END OF BUFFER 
          BX6    X6-X6       ENSURE END OF LINE 
          SA6    A6+B1
          SA7    FQOB 
          SB7    FQOA+1      SET ADDRESS OF BUFFER
  
*         SET STATUS OF FILE. 
  
          BX6    X3 
          SB3    TCNF+11
          RJ     SCB         SET INTO BUFFER
  
*         SET LINE NUMBER.
  
          BX1    X0          RETRIEVE LINE NUMBER 
          RJ     CDD
          LX6    30 
          SB3    TCNF 
          RJ     SCB         SET INTO BUFFER
  
*         SET JSN.
  
          SA1    X5+JSNQ     GET JSN
          MX0    24 
          BX6    X0*X1
          SB3    TCNF+1 
          RJ     SCB         SET INTO BUFFER
  
*         SET SERVICE CLASS.
  
          SA1    X5+SCLQ     GET SERVICE CLASS
          LX1    6
          MX0    -6 
          BX2    -X0*X1 
          SA3    TSCC+X2     ADD SERVICE CLASS TO DISPLAY LINE
          BX6    X3 
          SB3    TCNF+2 
          RJ     SCB         SET INTO BUFFER
  
*         SET MACHINE ID. 
  
          SA1    X5+9 
          MX0    12 
          ZR     X1,FQO2     IF BLANK FILL WANTED 
          LX1    -12
          BX6    X0*X1
          SB3    TCNF+3 
          RJ     SCB         SET INTO BUFFER
  
*         SET FAMILY NAME.
  
 FQO2     SA1    FQOB        GET FAMILY NAME
          SA1    X1 
          MX0    42 
          BX1    X0*X1
          RJ     ZTB         BLANK FILL FAMILY NAME 
          SB3    TCNF+4 
          RJ     SCB         SET INTO BUFFER
  
*         SET DEVICE NUMBER.
  
          SA1    FQOB        GET DEVICE NUMBER
          SA2    X1 
          MX0    -6 
          LX2    -12
          BX1    -X0*X2      DEVICE NUMBER
          RJ     COD         CONVERT DEVICE NUMBER
          BX6    X4 
          SB2    B2-6 
          NZ     B2,FQO3     IF NOT ONE CHARACTER 
          LX6    -6          ADD LEADING BLANK
 FQO3     SB3    TCNF+5 
          RJ     SCB         SET INTO BUFFER
  
*         SET DISPOSITION TYPE. 
  
          SA1    X5+JSNQ
          LX1    -6 
          BX1    -X0*X1      DISPOSITION TYPE 
          SA3    TDCC-1      GET MNEMONIC CHARACTERS
 FQO4     SA3    A3+B1
          ZR     X3,FQO5     IF DISPOSITION TYPE NOT IN TABLE 
          SX2    X3 
          IX2    X1-X2
          NZ     X2,FQO4     IF NOT MATCH 
          MX0    12 
          BX6    X0*X3
          SB3    TCNF+6 
          RJ     SCB         SET INTO BUFFER
  
*         SET FILE DESTINATION. 
  
 FQO5     SA1    X5+SCLQ
          LX1    18 
          MX0    -6 
          BX2    -X0*X1 
          SX6    2RBC 
          ZR     X2,FQO6     IF FILE ROUTED TO LOCAL BATCH
          SX6    2RRB        DISPLAY FILE ROUTED TO REMOTE BATCH
 FQO6     LX6    -12
          SB3    TCNF+7 
          RJ     SCB         SET INTO BUFFER
  
*         SET CREATION DATE.
  
          SA1    X5+9 
          ZR     X1,FQO7     IF BLANK FILL WANTED 
          SA2    X5+8        GET DATE 
          MX0    -18
          AX2    18          CLEAR TIME 
          BX1    -X0*X2      DATE 
          EDATE  X1 
          LX6    6
          MX0    48          INSERT TWO SPACES INTO LINE
          SX1    2R 
          BX6    X0*X6
          BX6    X6+X1
          SB3    TCNF+8 
          RJ     SCB         SET INTO BUFFER
  
*         SET FILE LENGTH.
  
          SA1    X5+8        GET LENGTH 
          AX1    36 
          RJ     COD
          LX6    12 
          SB3    TCNF+9 
          RJ     SCB         SET INTO BUFFER
  
*         SET ACCESS LEVEL. 
  
 FQO7     SA2    SECA 
          MX0    -3 
          LX2    12 
          BX2    -X0*X2 
          ZR     X2,FQO8     IF UNSECURE SYSTEM 
          SA1    X5+INSQ     GET ACCESS LEVEL 
          LX1    -15
          BX2    -X0*X1 
          SA1    TALV+X2     GET ACCESS LEVEL NAME
          MX0    42 
          BX1    X0*X1
          RJ     ZTB         BLANK FILL ACCESS LEVEL NAME 
          SB3    TCNF+10
          RJ     SCB         SET INTO BUFFER
 FQO8     SB2    FQOAL       SET NUMBER OF WORDS IN LINE
          SB3    FQOA        SET ADDRESS OF LINE
          EQ     FQOX        RETURN 
  
  
 FQOA     DATA   H* * 
          DATA   C*  XXX.  JSNS  MI FAMILY  DN DT DS YY/MM/DD. XXXXXXXX 
,LEVEL    DISP FIELD  * 
 FQOAL    EQU    *-FQOA 
  
 FQOB     BSS    1           ADDRESS OF FAMILY/DEVICE NUMBER
 TCNF     SPACE  4,10 
*         TCNF - TABLE OF COLUMN NUMBERS FOR FORMATTING.
  
  
 TCNF     BSS    0
          CFORM  1,5         NUMBER 
          CFORM  7,4         JSN
          CFORM  11,1        SERVICE CLASS
          CFORM  14,2        MACHINE ID 
          CFORM  17,7        FAMILY 
          CFORM  25,2        DEVICE NUMBER
          CFORM  28,2        DISPOSITION TYPE 
          CFORM  31,2        FILE DESTINATION 
          CFORM  34,9        CREATION DATE
          CFORM  44,8        FILE LENGTH
          CFORM  53,7        ACCESS LEVEL 
          CFORM  62,8        STATUS OF FILE 
 TSCC     SPACE  4,10 
*         TSCC - TABLE OF SERVICE CLASS MNEMONIC CHARACTERS.
  
  
 TSCC     BSS    0
          LOC    0
          VFD    60/0        NOT USED 
          LIST   D
 .SCLFQO  HERE
          LIST   *
          LOC    *O 
 TDCC     SPACE  4,10 
*         TDCC - TABLE OF DISPOSITION CODE MNEMONIC CHARACTERS. 
  
 TDCC     BSS    0
          VFD    12/2LIN,36/0,12/INQF 
          VFD    12/2LIN,36/0,12/NOQF 
          VFD    12/2LIN,36/0,12/TOQF 
          VFD    12/2LPH,36/0,12/PUQF 
          VFD    12/2LPL,36/0,12/PLQF 
          VFD    12/2LPR,36/0,12/LPQF 
          VFD    12/2LP2,36/0,12/P2QF 
          VFD    12/2LLR,36/0,12/LRQF 
          VFD    12/2LLS,36/0,12/LSQF 
          VFD    12/2LLT,36/0,12/LTQF 
          VFD    12/2LLX,36/0,12/LXQF 
          VFD    12/2LLY,36/0,12/LYQF 
          VFD    12/2LER,36/0,12/ERQF 
          VFD    12/2LTQ,36/0,12/TQQF 
          VFD    12/2LSF,36/0,12/S1QF 
          VFD    12/2LSF,36/0,12/S2QF 
          VFD    12/2LSF,36/0,12/S3QF 
          VFD    60/0 
          SPACE  4
          BASE   *
 QUAL$    IF     -DEF,QUAL$,1 
          QUAL   *
 FQO      EQU    /COMCFQO/FQO 
 FQOA     EQU    /COMCFQO/FQOA
 FQOAL    EQU    /COMCFQO/FQOAL 
 QUAL$    ENDIF 
          ENDX
