*COMDECK  CCOMLOL            LIST ONE LINE
          CTEXT  CCOMLOL - LIST ONE LINE TO THE OUTPUT FILE 
 LOL      SPACE  3
          IF     -DEF,QUAL$,1 
          QUAL   CCOMLOL
          BASE   D
*         COMMENT COPYRIGHT CONTROL DATA SYSTEMS, INC. 1994.
 LOL      SPACE  3
***       LOL - LIST ONE LINE 
*         D. C. DILLON.   72/5/21.
 LOL      SPACE  3
***              FA=LOL TRANSFER 1 CODED LINE IN -C- FORMAT FROM A
*         WORKING BUFFER TO A CIO BUFFER WITH LINE AND PAGE CONTROL.
*         A TITLE LINE WILL BE PLACED AT THE TOP OF EACH PAGE AND THE 
*         PAGE NUMBER UPDATED.
*                FA=NPG EJECTS, TITLES AND SUBTITLES A NEW PAGE.
*                O.STITL IS THE FWA OF A 12 WORD BUFFER USED TO HOLD
*                THE CURRENT SUBTITLE.
*                L.STITL HOLDS THE LENGTH OF THE CURRENT SUBTITLE.
*                N.LINES IS MINUS THE NUMBER OF LINES REMAINING TO BE 
*                PRINTED ON THE CURRENT PAGE. 
* 
*         THE CALLER IS EXPECTED TO SATISFY THE FOLLOWING - 
*         HO$BL - NON ZERO IF -BL- SELECTED ON CONTROL STMT.
*         CP.PAGE - LAST PAGE NUMBER ( BINARY INTEGER ).
*         CP.PS - NEGATIVE OF NUMBER OF LINES/PAGE. 
*         F.OUT - FWA OF OUTPUT FILE FET OR PSEUDO FET. 
*         F$TITL - FWA OF TITLE LINE
*         Z$TITL - LENGTH OF TITLE LINE ( AN EQU )
*         TL.PAGE - PLACE IN TITLE LINE WHERE PAGE NUMBER IS PLACED IN
*                6L NNN FORMAT. IT IS THE LAST WORD OF THE LINE.
*         CDD= - ROUTINE IN COMCCDD.
  
 N$STITL  DATA   1           LENGTH OF SUBTITLE LINE
 F$STITL  DATA   8L          SUBTITLE LINE
          BSS    11 
 N$LINES  DATA   0           N. LINES REMAINING ON THE PAGE 
  
**        FA=LOL - LIST ONE LINE ON OUTPUT FILE 
* 
*         ENTRY  (B6) = FWA OF LINE BUFFER
*                (B7) = LINE LENGTH IN WORDS. 
*                (X6) = NUMBER OF BLANK LINES TO BE PRINTED PRIOR TO
*                       PRINTING THE CURRENT LINE.
*                (B1) = 1 
* 
*         PRESERVES - A0,X0, A5,X5
  
 LOL2     WRITEC =XF.OUT,B6,B7
  
 FA=LOL   PS                 ENTRY/EXIT 
  
          ZR     X6,LOL3     IF NBL = 0 
          IX7    X6+X1
          SA7    A1 
          PL     X7,LOL3     IF N.LINES + NBL OVERFLOWS THE PAGE
  
          SA6    LOLB 
          SX7    B6 
          IFNE   CP#RM,0,1
          PX7    B7,X7
          SA7    LOLA 
  
 LOL1     WRITEC F.OUT,(=8L  ),1
          SA1    LOLB 
          SX6    X1-1 
          SA6    A1 
          NZ     X6,LOL1
  
          SA4    LOLA 
          SB6    X4 
          IFNE   CP#RM,0,1
          UX7    B7,X4
  
 LOL3     SA3    N$LINES
          SX6    X1+B1       DECREMENT LINE COUNT 
          SA6    A1 
          MI     X6,LOL2     IF PAGE NOT FULL 
          SX6    B6 
          IFNE   CP#RM,0,1
          PX6    B7,X6
          SA6    LOLA        SAVE LINE FWA AND LENGTH 
          RJ     FA=NPG      EJECT AND TITLE PAGE 
          SA2    LOLA 
          SA1    N$LINES
          SB6    X2 
          SX6    X1+B1       DECREMENT LINE COUNT 
          IFNE   CP#RM,0,1
          UX2    B7,X2
          SA6    A1 
          EQ     LOL2 
  
 LOLA     BSS    1
 LOLB     BSS    1
 FA=NPG   SPACE  3,14 
**        FA=NPG - EJECT AND TITLE NEW PAGE.
* 
*                IF *BL* OPTION ON, UNCONDITIONALLY EJECTS, TITLES AND
*         SUBTITLES NEW PAGE. 
*                IF *BL* OPTION OFF, AND 8 OR MORE LINES REMAIN ON
*         CURRENT PAGE, SPACES 4 AND LISTS SUBTITLE ONLY.  IF LESS THAN 
*         8 LINES REMAIN, EJECTS, TITLES AND SUBTITLES NEW PAGE.
*         BEHAVES LIKE COMPASS *SPACE 4,4* DIRECTIVE. 
* 
* 
*         ENTRY  (B1) = 1 
* 
*         EXIT   PAGE SPACED OR EJECTED, AND TITLED.
*                (N.LINES) ADJUSTED (IF SPACE 4) OR RESET (IF EJECT). 
*                (CP.PAGE) INCREMENTED IF PAGE EJECTED. 
*                (B1) = 1 
* 
*         PRESERVES A0,X0, A5,X5
  
 FA=NPG   PS                 ENTRY/EXIT 
          SA1    F$STITL
          SX2    1R0
          MX6    6
          LX2    -6 
          BX1    -X6*X1 
          IX6    X2+X1
          SA6    F$STITL     FWA OF SUBTITLE LINE 
          SA1    =XHO$BL
          NZ     X1,NPG2     IF BURSTABLE LISTING 
          SA1    N$LINES     CHECK SPACE LEFT ON CURRENT PAGE 
          SX6    X1+8-1 
          PL     X6,NPG2     IF LESS THAN 8 LINES LEFT
  
*         SPACE 4 AND SUBTITLE CURRENT PAGE.
  
          SX6    X1+4+1 
          SA6    A1          UPDATE *LINES REMAINING* COUNT 
          WRITEC F.OUT,(=1C-),1    TRIPLE SPACE 
          EQ     NPG3 
  
*         EJECT, TITLE AND SUBTITLE NEW PAGE. 
  
 NPG2     SA1    =XCP.PAGE   LAST PAGE NUMBER (BINARY INTEGER)
          MX6    -1 
          IX7    X1-X6       PAGE NUMBER + 1
          SX1    X7          REMOVE PROPAGATION BIT, IF PRESENT 
          SA7    A1 
          RJ     =XCDD=      RETURNS (X6) = PAGE NUMBER IN DISPLAY CODE 
          SA1    CP.PS
          MX7    24 
          BX6    -X7*X6 
          LX6    24 
          SA6    TL.PAGE     SET NEW PAGE NUMBER IN TITLE LINE
          BX6    X1 
          SA6    N$LINES
  
*         LIST TITLE AND SUBTITLE LINES 
  
          WRITEC F.OUT,F$TITL,Z$TITL
 NPG3     SA1    L$STITL
          WRITEC =XF.OUT,F$STITL,X1 
  
          EQ     FA=NPG 
  
          BASE   *
          IF     -DEF,QUAL$ 
          QUAL   *
          ECHO   1,Z=(F$STITL,N$STITL,N$LINES,FA=LOL,FA=NPG)
 Z        EQU    /CCOMLOL/Z 
          ENDIF 
  
          IF     -ABS,FA=LOL,2
          ECHO   1,Z=(F$STITL,N$STITL,N$LINES,FA=LOL,FA=NPG)
          ENTRY  Z
  
          ENDX
