*COMDECK BSCMLO 
          NAM   BSCMLO
*CALL BSCEQU
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*        BSC MAIN LEVEL OUTPUT TEXTPROCESSING STATE TABLE FOR         * 
*        LINE PRINTER WITH FORMS CONTROL                              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
SPPL      MAC    NM           *    MACRO TO CREATE STATE TABLE
          EQU    S5L"NM"(*-SPPLSC)
          ADC    S5"NM" 
          EMC 
* 
          ENT    SPPLSC 
          EQU    SPPLSC(*)
          SPPL   000          *    END OF SOURCE
          ADC    S5000        *    UNUSED STATE 
          SPPL   100          *    INITIALIZATION 
          SPPL   150          *    SPECIAL CHAR PROCESS AT THE BEGINNING
*                             *    OF A LINE
          SPPL   200          *    BEGINNING OF A LINE
          SPPL   220          *    BEGINNING OF LINE FOLD 
          SPPL   250          *    PROCESS FORMS CONTROL
          SPPL   260          *    FORMSCONTROL - PREPRINT SINGLE SPACE 
          SPPL   264          *    FORMSCONTROL - PREPRINT DOUBLE SPACE 
          SPPL   268          *    FORMSCONTROL - PREPRINT TRIPLE SPACE 
          SPPL   272          *    FORMSCONTROL - SUPPRESS CARRIAGE CONT
          SPPL   276          *    PREPRINT PAGE EJECT
          SPPL   280          *    PREPRINT SKIP TO CHANNEL 12
          SPPL   284          *    PREPRINT SKIP TO CHANNEL 6 
          SPPL   288          *    PREPRINT SKIP TO CHANNEL 5 
          SPPL   292          *    PREPRINT SKIP TO CHANNEL 4 
          SPPL   296          *    PREPRINT SKIP TO CHANNEL 3 
          SPPL   300          *    PREPRINT SKIP TO CHANNEL 2 
          SPPL   304          *    PREPRINT SKIP TO CHANNEL 11
          SPPL   308          *    PREPRINT SKIP TO CHANNEL 7 
          SPPL   312          *    PREPRINT SKIP TO CHANNEL 8 
          SPPL   316          *    PREPRINT SKIP TO CHANNEL 9 
          SPPL   320          *    PREPRINT SKIP TO CHANNEL 10
*                             * 
          SPPL   324          *    POSTPRINT PAGE EJECT 
          SPPL   328          *    POSTPRINT SKIP TO CHANNEL 12 
          SPPL   332          *    POSTPRINT SKIP TO CHANNEL 6
          SPPL   336          *    POSTPRINT SKIP TO CHANNEL 5
          SPPL   340          *    POSTPRINT SKIP TO CHANNEL 4
          SPPL   344          *    POSTPRINT SKIP TO CHANNEL 3
          SPPL   348          *    POSTPRINT SKIP TO CHANNEL 2
          SPPL   352          *    POSTPRINT SKIP TO CHANNEL 11 
          SPPL   356          *    POSTPRINT SKIP TO CHANNEL 7
          SPPL   360          *    POSTPRINT SKIP TO CHANNEL 8
          SPPL   364          *    POSTPRINT SKIP TO CHANNEL 9
          SPPL   368          *    POSTPRINT SKIP TO CHANNEL 10 
          SPPL   372          *    FORMSCONTROL FOR UNRECOGNIZED CHAR 
* 
          SPPL   380          *    COMMON STATE FOR POST FORMS CONTROL
          SPPL   390          *    COMMON SUBSTATE FOR FORMS CONTROL
          SPPL   400          *    RETURN STATE FOR S5L250
          SPPL   500          *    PROCESS CHARACTERS IN A LINE 
          SPPL   650          *    CHECK CHARACTER AFTER END OF LINE
          SPPL   700          *    SUBROUTINE TO PROCESS END OF LINE
          SPPL   720          *    QRST SEEN ON STATE S5L650
          SPPL   740          *    TERMINATE TRANSMISSION BLOCK AT
*                             *    PREVIOUS LINE
          SPPL   760          *    P WAS SEEN AS THE FIRST CHARACTER
*                             *    IN A LINE
          SPPL   770          *    PM WAS SEEN AS THE FIRST CHARACTER 
*                             *    IN A LINE. 
          SPPL   800          *    PROCESS PM 
          SPPL   820          *    DISCARD DUMMY CHARACTERS FOR PM OR 
*                             *    QRST LINE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L000                                                * 
*                                                                     * 
*     PURPOSE - END OF SOURCE - BSC MC OUTPUT LINE PRINTER TEXT-PROC  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5000     TSTMXF S5EOI+S5EOJ,S5010 SKIP IF EOI OR EOJ 
          STATLS S5L150,S5005 *    SKIP IF STATE IS S5L100
          TPBKUP LEVEL1,SRC,DST    BACK UP TO LEVEL 1 
S5005     SETMXF S5BACK       *    BACK SPACE ON SOURCE NEEDED
          TPEXIT              *    EXIT TEXT PROCESSING 
S5010     STATLS S5L800,S5020 *    IF STATE IS S5L800 SKIP TO S5025 
          STATLS S5L820,S5025 *    ELSE SKIP TO S5030 
S5020     SKIP   S5030
S5025     SETFLG S5FEOB,CURN  *    SET EOB FLAG ON BUFFER 
          TSTMXF S5EOI,S5030  *    SKIP IF EOI
          SKIP   S5075        *    EXIT TEXTPROCESSING
S5030     CNTNE  S5XCHAR,S1ZERO,S5035   SKIP IF XMISSION BLK STARTED
          SKIP   S5040
S5035     SKIP   S5050
S5040     ALNBUF S1FCD        *    GET A NEW BUFFER 
          ADDC   S1SYN        *    START TO BUILD TRANSMISSION HEADER 
          ADDC   S1SYN        *    STORE 4 SYNS 
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1STX        *    STORE STX
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1SS         *    STORE POSTPRINT SINGLE SPACE 
S5050     TSTMXF S53780,S5052     SKIP IF 3780
          SKIP   S5054       *    GO TEST FOR EOJ 
S5052     ADDC   S1IRS       *    STORE 3780 IRS
S5054     TSTMXF S5EOJ,S5056 *    SKIP IF EOJ 
          ADDC   S1ETB       *    STORE ETB 
          SKIP   S5060       *    GO TO STORE NULLS FOR CRC 
S5056     ADDC   S1ETX       *    STORE ETX 
S5060     ADDC   S1NUL        *    TWO NULL SPACES FOR -
          ADDC   S1NUL        *    LEVEL 2 TO PUT CRCS
          RSTRAN              *    TURN OFF TRANSLATION 
          TPSTLC S7WEIGHT     *    STORE WEIGHT COUNT - LEFT BYTE 
          TPSTRC S7WEIGHT     *                         RIGHT BYTE
          TSTMXF S5EOI,S5065 *    SKIP IF EOI 
          SETFLG S5FETX,CURN *    SET ETX FOR EOJ BLOCK 
S5065     SETFLG S5FEOI+S5FEOB,CURN  EOI/EOB FLAGS FOR EOI/EOJ BLOCKS 
S5070     CHRCC  S5XCHAR,S1ZERO    CLEAR COUNT 2
          TPSUBR S5WEIGHT,S5WEIGHT CLEAR ACCOUNTING WEIGHT
          TPLDL  T5PLRN,S5LINEPG   SET LINE POSITION TO TOP OF PAGE 
          RSTMXF S5FC2
S5075     TIBSWC 0,0,0        *    TERMINATE TRANSMISSION BLOCK 
          TPEXIT
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L100                                                * 
*                                                                     * 
*     PURPOSE - INITIALIZATION FOR LINE PRINTER                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5100     TPMOVE S5WEIGHT,S7WEIGHT UPDATE S7WEIGHT
          TPMOVE S5LINEPG,S7LINEPG UPDATE S7LINEPG
          JUMP   S5L150 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L150                                                * 
*                                                                     * 
*     PURPOSE -  SPECIAL CHARACTER PROCESS AT THE BEGINING OF A LINE  * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5150     TPMARK LEVEL1       *    MARK AT LEVEL 1
          CHARNE B9PPPP,S5155 *    SKIP IF NOT P
          STATE  S5L760,EXIT
S5155     CHARNE B9QQQQ,S5160 *    SKIP IF NOT Q
          STATE  S5L820,EXIT
S5160     CHARNE B9RRRR,S5165 *    SKIP IF NOT R
          STATE  S5L820,EXIT
S5165     CHARNE B9SSSS,S5170 *    SKIP IF NOT S
          STATE  S5L820,EXIT
S5170     CHARNE B9TTTT,S5175 *    SKIP IF NOT T
          STATE  S5L820,EXIT
S5175     JUMP   S5L200 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L200                                                * 
*                                                                     * 
*     PURPOSE - BEGINNING OF A LINE                                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5200     SETRAN              *    TURN ON TRANSLATION
          CNTNE  S5XCHAR,S1ZERO,S5201   SKIP IF TRANSMISSION BLK STARTED
          SKIP   S5203
S5201     SKIP   S5205
S5203     ALNBUF S1FCD        *    GET A NEW BUFFER 
          ADDC   S1SYN        *    STORE 4 SYN CHARACTERS 
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1STX        *    STX
          INTCC  S5XCHAR      *    INITIALIZE BLOCK CHARACTER COUNT 
          TPLDR  T5PLRN,S5XLINE    INITIALIZE RECORD NUMBER COUNT 
S5205     TPMARK LEVEL1       *    MARK AT LEVEL 1
          INTCC  S7COLCNT     *    INITIALIZE COLUMN COUNT
          TPLD   T5XCHAR,S7XCHAR   UPDATE SECOND CHARACTER COUNT
          TPSUBR S5BLANK,S5BLANK   CLEAR COMPRESSION BLANK COUNT
          TPDECR S7XCHAR,S1TWO     DECREMENT CHARACTER COUNT
          TPSUBR S5NUL2,S5NUL2     CLEAR WORKING REGISTER 
          TSTMXF S5NOFC,S5210 *    SKIP IF LINE FOLDED
          TSTMXF S5FC2,S5215  *    SKIP IF FORMSCONTROL HAS BEEN STORED 
*                             *    IN THE PREVIOUS LINE 
          JUMP   S5L250 
S5210     JUMP   S5L220 
S5215     ADDC   S1ESC        *    ESC
          TPMARK LEVEL2       *    MARK AT LEVEL 2 FOR F.C. CONVERSION
          ADDC   S1SS         *    POSTPRINT SINGLE SPACE 
          STATE  S5L500,EXIT  * 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L220                                                * 
*                                                                     * 
*     PURPOSE -  BEGINNING OF LINE FOLD                               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5220     SPCHEQ S5225        *    SKIP IF BLANK
          CHARNE B9EOL,S5230  *    SKIP IF NOT END OF LINE
          RSTMXF S5NOFC       *    END OF LINE FOLD 
          STATE  S5L150,EXIT
S5225     NOPR   EXIT 
S5230     TPBKUP LEVEL1,SRC,DST    BACK TO LEVEL 1
          SETMXF S5FC2        *    INDICATE THE FC OF NEXT LINE MAY 
          ADDC   S1ESC        *    BE STORED INTO THIS LINE 
          TPMARK LEVEL2       *    MARK AT LEVEL 2 FOR F.C. CONVERSION
          ADDC   S1SS         *    POST PRINT SINGLE SPACE
          TPINCR S7WEIGHT,S1ONE    INCREMENT ACCT WEIGHT
          TPDECR S7LINEPG,S1ONE    UPDATE LINE POSITION 
          JUMP   S5L500 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L250                                                * 
*                                                                     * 
*     PURPOSE -  PROCESS FORMS CONTROL                                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5250     CHARNE B9FCS1,S52502     SKIP IF NOT SINGLE SPACE 
          JUMP   S5L260 
S52502    CHARNE B9FCS2,S52504     SKIP IF NOT DOUBLE SPACE 
          JUMP   S5L264 
S52504    CHARNE B9FCS3,S52506     SKIP IF NOT TRIPLE SPACE 
          JUMP   S5L268 
S52506    CHARNE B9FCSS,S52508     SKIP IF NOT SUPPRESS CARRIAGE CONTROL
          JUMP   S5L272 
S52508    CHARNE B9FCPE,S52510     SKIP IF NOT PAGE EJECT 
          JUMP   S5L276 
S52510    CHARNE B9FCBP,S52512     SKIP IF NOT BOTTOM OF PAGE (CH. 12)
          JUMP   S5L280 
S52512    CHARNE B9FCC6,S52514     SKIP IF NOT PREPRINT CHANNEL 6 
          JUMP   S5L284 
S52514    CHARNE B9FCC5,S52516     SKIP IF NOT PREPRINT CHANNEL 5 
          JUMP   S5L288 
S52516    CHARNE B9FCC4,S52518     SKIP IF NOT PREPRINT CHANNEL 4 
          JUMP   S5L292 
S52518    CHARNE B9FCC3,S52520     SKIP IF NOT PREPRINT CHANNEL 3 
          JUMP   S5L296 
S52520    CHARNE B9FCC2,S52522     SKIP IF NOT PREPRINT CHANNEL 2 
          JUMP   S5L300 
S52522    CHARNE B9FC11,S52524     SKIP IF NOT PREPRINT CHANNEL 11
          JUMP   S5L304 
S52524    CHARNE B9FCC7,S52526     SKIP IF NOT PREPRINT CHANNEL 7 
          JUMP   S5L308 
S52526    CHARNE B9FCC8,S52528     SKIP IF NOT PREPRINT CHANNEL 8 
          JUMP   S5L312 
S52528    CHARNE B9FCC9,S52530     SKIP IF NOT PREPRINT CHANNEL 9 
          JUMP   S5L316 
S52530    CHARNE B9FC10,S52532     SKIP IF NOT PREPRINT CHANNEL 10
          JUMP   S5L320 
S52532    CHARNE B9PPPE,S52534     SKIP IF NOT POSTPRINT PAGE EJECT 
          JUMP   S5L324 
S52534    CHARNE B9PPBP,S52536     SKIP IF NOT POSTPRINT BOTTOM OF PAGE 
          JUMP   S5L328 
S52536    CHARNE B9PPC6,S52538     SKIP IF NOT POSTPRINT CHANNEL 6
          JUMP   S5L332 
S52538    CHARNE B9PPC5,S52540     SKIP IF NOT POSTPRINT CHANNEL 5
          JUMP   S5L336 
S52540    CHARNE B9PPC4,S52542     SKIP IF NOT POSTPRINT CHANNEL 4
          JUMP   S5L340 
S52542    CHARNE B9PPC3,S52544     SKIP IF NOT POSTPRINT CHANNEL 3
          JUMP   S5L344 
S52544    CHARNE B9PPC2,S52546     SKIP IF NOT POSTPRINT CHANNEL 2
          JUMP   S5L348 
S52546    CHARNE B9PP11,S52548     SKIP IF NOT POSTPRINT CHANNEL 11 
          JUMP   S5L352 
S52548    CHARNE B9PPC7,S52550     SKIP IF NOT POSTPRINT CHANNEL 7
          JUMP   S5L356 
S52550    CHARNE B9PPC8,S52552     SKIP IF NOT POSTPRINT CHANNEL 8
          JUMP   S5L360 
          EJT 
S52552    CHARNE B9PPC9,S52554     SKIP IF NOT POSTPRINT CHANNEL 9
          JUMP   S5L364 
S52554    CHARNE B9PP10,S52556     SKIP IF NOT POSTPRINT CHANNEL 10 
          JUMP   S5L368 
S52556    CHARNE B9SLSH,S52558     SKIP IF NOT /
          JUMP   S5L260 
S52558    CHARNE B9VVVV,S52560     SKIP IF NOT V
          JUMP   S5L260 
S52560    JUMP   S5L372 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L260                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SINGLE SPACE                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5260     TPINCR S7WEIGHT,S1ONE    INCREMENT ACCOUNTING WEIGHT
          TPDECR S7LINEPG,S1ONE    UPDATE CURRENT LINE POSITION IN PAGE 
          TSTMXF S5FC1,S5261  *    SKIP IF THE FORMS CONTROL IS ALREADY 
*                             *    STORED IN THE PREVIOUS LINE
          ADDC   S1ESC        *    ESC
          ADDC   S1SS         *    POSTPRINT SINGLE SPACE 
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5261     JUMP   S5L380 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L264                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT DOUBLE SPACE                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5264     TPINCR S7WEIGHT,S1TWO    INCREMENT ACCOUNTING WEIGHT BY 2 
          TPDECR S7LINEPG,S1TWO    UPDATE CURRENT LINE POSITION 
          TSTMXF S5FC1,S5265  *    SKIP IF FORMS CONTROL MAY BE STORED
          ADDC   S1ESC        *    INTO PREVIOUS LINE 
          ADDC   S1DS         *    POSTPRINT DOUBLE SPACE 
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5265     TPINSR LEVEL2,SUPPLIED,S1DS,0 STORE POSTPRINT DOUBLE SPACE
*                             *         AT LEVEL 2
          JUMP   S5L380 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L268                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT TRIPLE SPACE                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5268     TPINCR S7WEIGHT,S1THREE  INCREMENT ACCOUNTING WEIGHT BY 3 
          TPDECR S7LINEPG,S1THREE  UPDATE LINE POSITION 
          TSTMXF S5FC1,S5269  *    SKIP IF FORMS CONTROL MAY BE STORED
*                             *    INTO PREVIOUS LINE 
          ADDC   S1ESC        *    ESC
          ADDC   S1TS         *    TRIPLE SPACE 
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5269     TPINSR LEVEL2,SUPPLIED,S1TS,0 STORE POSTPRINT TRIPLE SPACE
*                             *         AT LEVEL 2
          JUMP   S5L380 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L272                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL SUPPRESS CARRIAGE CONTROL               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5272     TPINCR S7WEIGHT,S1ONE    INCREMENT ACCOUNTING WEIGHT
          TSTMXF S5FC1,S5273  *    SKIP IF FORMS CONTROL MAY BE STORED
*                             *    INTO PREVIOUS LINE 
          JUMP   S5L390 
S5273     TSTMXF S53780,S5274 *    SKIP IF 3780 
          JUMP   S5L390 
S5274     TPINSR LEVEL2,SUPPLIED,S1SUP,0     STORE POSTPRINT SUPPRESS 
*                             *              CARRIAGE CONTROL AT LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L276                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT PAGE EJECT                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5276     TPADDR S7LINEPG,S7WEIGHT ACCOUNTING WEIGHT IS S7LINEPG + 1
          TPINCR S7WEIGHT,S1ONE 
          TPLDL  T5PLRN,S7LINEPG   RESET S7LINEPG FROM PL 
          TSTMXF S5FC1,S5277       SKIP IF FORMS CONTROL MAY BE STORED
*                             *    INTO PREVIOUS LINE 
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1PE         *    STORE POSTPRINT PAGE EJECT 
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5277     TPINSR LEVEL2,SUPPLIED,S1PE,0 STORE POSTPRINT PAGE EJECT AT 
*                             *         LEVEL 2 
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L280                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL  PREPRINT SKIP TO CHANNEL 12            * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5280     TSTMXF S53780,S52810     SKIP IF 3780 
          TSTMXF S5FC1,S52805 *    SKIP IF F.C. MAY BE STORE TO LEVEL 1 
          JUMP   S5L390,RTN 
S52805    TPINCR S7WEIGHT,S1ONE    2780 - INCREMENT ACCOUNTING WEIGHT 
          TPDECR S7LINEPG,S1ONE    DECREMENT LINE POSITION COUNT
          JUMP   S5L390,RTN 
S52810    TPSUBR S5NUL2,S5NUL2     CLEAR S5NUL2 
          TPCMPR S7LINEPG,S5NUL2   CHECK IF S7LINEPG IS ZERO
          SKIP   S52815       *    NO 
          SKIP   S52820       *    YES
S52815    TPDECR S7LINEPG,S1ONE    NO - DIVIDE S7LINEPG BY 2
          TPINCR S5NUL2,S1ONE * 
          TPCMPR S7LINEPG,S5NUL2   CHECK IF DIVISION COMPLETE 
          SKIP   S52825       *    YES
          NOPR                *    NO 
          SKIPB  S52815       *    NO 
S52820    TPDECR S7LINEPG,S1ONE    DECREMENT LINE POSITION
          TPINCR S5NUL2,S1ONE *    INCREMENT S5NUL2 
S52825    TPADDR S5NUL2,S7WEIGHT   ADD ACCOUNTING WEIGHT
          TSTMXF S5FC1,S52830 *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C12        *    STORE POSTPRINT SKIP TO CHANNEL 12 
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S52830    TPINSR LEVEL2,SUPPLIED,S1C12,0     STORE POSTPRINT SKIP TO
*                             *              CHANNEL 22 AT LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L284                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 6              * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5284     TPINCR S7WEIGHT,S1TWO    INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1TWO    DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5285  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C6         *    STORE POSTPRINT SKIP TO CHANNEL 6
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5285     TPINSR LEVEL2,SUPPLIED,S1C6,0 STORE POSTPRINT SKIP TO CH. 6 
*                             *         INTO LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L288                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 5              * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5288     TPINCR S7WEIGHT,S1THREE  INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1THREE  DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5289  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C5         *    STORE POSTPRINT SKIP TO CHANNEL 5
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5289     TPINSR LEVEL2,SUPPLIED,S1C5,0 STORE POSTPRINT SKIP TO CH. 5 
*                             *         INTO LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L292                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 4              * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5292     TPINCR S7WEIGHT,S1THREE  INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1THREE  DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5293  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C4         *    STORE POSTPRINT SKIP TO CHANNEL 4
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5293     TPINSR LEVEL2,SUPPLIED,S1C4,0 STORE POSTPRINT SKIP TO CH. 4 
*                             *         INTO LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L296                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 3              * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5296     TPINCR S7WEIGHT,S1TWO    INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1TWO    DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5297  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C3         *    STORE POSTPRINT SKIP TO CHANNEL 3
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5297     TPINSR LEVEL2,SUPPLIED,S1C3,0 STORE POSTPRINT SKIP TO CH. 3 
*                             *         INTO LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L300                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 2              * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5300     TPINCR S7WEIGHT,S1TWO    INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1TWO    DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5301  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C2         *    STORE POSTPRINT SKIP TO CHANNEL 2
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5301     TPINSR LEVEL2,SUPPLIED,S1C2,0 STORE POSTPRINT SKIP TO CH. 2 
*                             *         INTO LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L304                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 11             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5304     TSTMXF S53780,S5306 *    SKIP IF 3780 
          TSTMXF S5FC1,S5305  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          JUMP   S5L390,RTN 
S5305     TPINCR S7WEIGHT,S1ONE    2780 - INCREMENT WEIGHT COUNT
          TPDECR S7LINEPG,S1ONE           DECREMENT LINE POSITION COUNT 
          JUMP   S5L390,RTN 
S5306     TPINCR S7WEIGHT,S1SIX    3780 - INCREMENT WEIGHT COUNT BY 6 
          TPDECR S7LINEPG,S1SIX           DECREMENT LINE POSITION BY 6
          TSTMXF S5FC1,S5307  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C11        *    STORE POSTPRINT SKIP TO CHANNEL 11 
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5307     TPINSR LEVEL2,SUPPLIED,S1C11,0     STORE POSTPRINT SKIP TO
*                             *              CHANNEL 11 AT LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L308                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 7              * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5308     TPINCR S7WEIGHT,S1FOUR   INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1FOUR   DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5309  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C7         *    STORE POSTPRINT SKIP TO CHANNEL 7
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5309     TPINSR LEVEL2,SUPPLIED,S1C7,0 STORE POSTPRINT SKIP TO CH. 7 
*                             *         INTO LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L312                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 8              * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5312     TPINCR S7WEIGHT,S1FIVE   INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1FIVE   DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5313  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C8         *    STORE POSTPRINT SKIP TO CHANNEL 8
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
S5313     TPINSR LEVEL2,SUPPLIED,S1C8,0 STORE POSTPRINT SKIP TO CH. 8 
*                             *         INTO LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L316                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 9              * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5316     TSTMXF S53780,S5318 *    SKIP IF 3780 
          TSTMXF S5FC1,S5317  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          JUMP   S5L390,RTN 
S5317     TPINCR S7WEIGHT,S1ONE    2780 - INCREMENT WEIGHT COUNT
          TPDECR S7LINEPG,S1ONE           DECREMENT LINE POSITION COUNT 
          JUMP   S5L390,RTN 
S5318     TPINCR S7WEIGHT,S1FIVE   INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1FIVE   DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5319  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C9         *    STORE POSTPRINT SKIP TO CHANNEL 9
          STATE  S5L400 
          JUMP   S5L700,RTN 
S5319     TPINSR LEVEL2,SUPPLIED,S1C9,0 STORE POSTPRINT SKIP TO CH. 9 
*                             *         INTO LEVEL 2
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L320                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL PREPRINT SKIP TO CHANNEL 10             * 
*                                                                     * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5320     TSTMXF S53780,S5322 *    SKIP IF 3780 
          TSTMXF S5FC1,S5321  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          JUMP   S5L390,RTN 
S5321     TPINCR S7WEIGHT,S1ONE    2780 - INCREMENT WEIGHT COUNT
          TPDECR S7LINEPG,S1ONE           DECREMENT LINE POSITION COUNT 
          JUMP   S5L390,RTN 
S5322     TPINCR S7WEIGHT,S1SIX    INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1SIX    DECREMENT LINE POSITION COUNT
          TSTMXF S5FC1,S5323  *    SKIP IF F.C. MAY BE STORED TO LEVEL 1
          ADDC   S1ESC        *    STORE ESC
          ADDC   S1C10        *    STORE POSTPRINT SKIP TO CHANNEL 10 
          STATE  S5L400 
          JUMP   S5L700,RTN   *    CALL END OF LINE PROCESS 
*                             *    THIS INSTRUCTION IS ALSO USED BY MANY
*                             *    PREVIOUE STATES AS AN INTERMEDIATE 
*                             *    STEP TO SKIP TO S5700
S5323     TPINSR LEVEL2,SUPPLIED,S1C10,0 STORE POSTPRINT SKIP TO CH. 10 
*                             *          INTO LEVEL 2 
          JUMP   S5L380,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L324                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT PAGE EJECT                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5324     ADDC   S1ESC        *    STORE ESC
          ADDC   S1PE         *    STORE POSTPRINT PAGE EJECT 
          TPADDR S7LINEPG,S7WEIGHT ACCOUNTING WEIGHT IS INCREMENTED BY
          TPINCR S7WEIGHT,S1ONE    S7LINEPG + 1 
          TPLDL  T5PLRN,S7LINEPG   SET LINE POSITION COUNT TO PL
          STATE  S5L500,EXIT
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L328                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 12            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5328     TSTMXF S53780,S53285     SKIP IF 3780 
          JUMP   S5L390,RTN   *    2780 
S53285    ADDC   S1ESC        *    3780 - STORE ESC 
          ADDC   S1C12        *           STORE POSTPRINT SKIP TO CH.12 
          TPSUBR S5NUL2,S5NUL2     CLEAR S5NUL2 
          TPCMPR S7LINEPG,S5NUL2   CHECK IF LINE POSITION COUNT IS ZERO 
          SKIP   S5329        *    NO 
          SKIP   S53295       *    YES
S5329     TPDECR S7LINEPG,S1ONE    DECREMENT LINE POSITION BY HALF AND 1
          TPINCR S5NUL2,S1ONE *    INCREMENT WEIGHT COUNT BY THE SAME 
          TPCMPR S7LINEPG,S5NUL2   CHECK IF DECREMENT COMPLETE
          SKIP   S5330        *    YES
          SKIPB  S5329        *    NO 
          SKIPB  S5329        *    NO 
S53295    TPDECR S7LINEPG,S1ONE    DECREMENT LINE POSITION COUNT
          TPINCR S5NUL2,S1ONE *    INCREMENT S5NUL2 
S5330     TPADDR S5NUL2,S7WEIGHT   ADD S5NUL2 TO WEIGHT COUNT 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L332                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 6             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5332     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C6         *    STORE POSTPRINT SKIP TO CHANNEL 6
          TPINCR S7WEIGHT,S1FOUR   INCREMENT WEIGHT COUNT BY 4
          TPDECR S7LINEPG,S1FOUR   DECREMENT LINE POSITION COUNT BY 4 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L336                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 5             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5336     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C5         *    STORE POSTPRINT SKIP TO CHANNEL 5
          TPINCR S7WEIGHT,S1THREE  INCREMENT WEIGHT COUNT BY 3
          TPDECR S7LINEPG,S1THREE  DECREMENT LINE POSITION COUNT BY 3 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L340                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 4             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5340     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C4         *    STORE POSTPRINT SKIP TO CHANNEL 4
          TPINCR S7WEIGHT,S1THREE  INCREMENT WEIGHT COUNT BY 3
          TPDECR S7LINEPG,S1THREE  DECREMENT LINE POSITION COUNT BY 3 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L344                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 3             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5344     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C3         *    STORE POSTPRINT SKIP TO CHANNEL 3
          TPINCR S7WEIGHT,S1TWO    INCREMENT WEIGHT COUNT BY 2
          TPDECR S7LINEPG,S1TWO    DECREMENT LINE POSITION COUNT BY 2 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L348                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 2             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5348     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C2         *    STORE POSTPRINT SKIP TO CHANNEL 2
          TPINCR S7WEIGHT,S1TWO    INCREMENT WEIGHT COUNT BY 2
          TPDECR S7LINEPG,S1TWO    DECREMENT LINE POSITION COUNT BY 2 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L352                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 11            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5352     TSTMXF S53780,S5353 *    SKIP IF 3780 
          JUMP   S5L390,RTN 
S5353     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C11        *    STORE POSTPRINT SKIP TO CHANNEL 11 
          TPINCR S7WEIGHT,S1SIX    INCREMENT WEIGHT COUNT BY 6
          TPDECR S7LINEPG,S1SIX    DECREMENT LINE POSITION COUNT BY 6 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L356                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 7             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5356     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C7         *    STORE POSTPRINT SKIP TO CHANNEL 7
          TPINCR S7WEIGHT,S1FOUR   INCREMENT WEIGHT COUNT BY 4
          TPDECR S7LINEPG,S1FOUR   DECREMENT LINE POSITION COUNT BY 4 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L360                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 8             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5360     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C8         *    STORE POSTPRINT SKIP TO CHANNEL 8
          TPINCR S7WEIGHT,S1FIVE   INCREMENT WEIGHT COUNT BY 5
          TPDECR S7LINEPG,S1FIVE   DECREMENT LINE POSITION COUNT BY 5 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L364                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 9             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5364     TSTMXF S53780,S5365 *    SKIP IF 3780 
          JUMP   S5L390,RTN 
S5365     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C9         *    STORE POSTPRINT SKIP TO CHANNEL 9
          TPINCR S7WEIGHT,S1FIVE   INCREMENT WEIGHT COUNT BY 5
          TPDECR S7LINEPG,S1FIVE   DECREMENT LINE POSITION COUNT BY 5 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L368                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL POSTPRINT SKIP TO CHANNEL 10            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5368     TSTMXF S53780,S5369 *    SKIP IF 3780 
          JUMP   S5L390,RTN 
S5369     ADDC   S1ESC        *    STORE ESC
          ADDC   S1C10        *    STORE POSTPRINT SKIP TO CHANNEL 10 
          TPINCR S7WEIGHT,S1SIX    INCREMENT WEIGHT COUNT BY 6
          TPDECR S7LINEPG,S1SIX    DECREMENT LINE POSITION COUNT BY 6 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L372                                                * 
*                                                                     * 
*     PURPOSE - FORMS CONTROL FOR UNRECOGNIZED CHARACTER              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5372     TPINCR S7WEIGHT,S1ONE    INCREMENT WEIGHT COUNT 
          TPDECR S7LINEPG,S1ONE    DECREMENT LINE POSITION COUNT
          JUMP   S5L390,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L380                                                * 
*                                                                     * 
*     PURPOSE - COMMON STATE FOR POST FORMS CONSTROLS                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5380     TPLDL  T5PLRN,S5NUL2     LOAD PL INTO WORKING REGISTER S5NUL2 
          TPCMPR S7LINEPG,S5NUL1   HAS LINE POSITION BECOME NEGATIVE
          TPADDR S5NUL2,S7LINEPG   S7LINEPG < 0, ADD PL FOR ADJUSTMENT
          NOPR                *    S7LINEPG = PL
          TPMOVE S7WEIGHT,S5WEIGHT UPDATE S5WEIGHT
          TPMOVE S7LINEPG,S5LINEPG UPDATE S5LINEPG
          ADDC   S1ESC        *    ESC
          TPMARK LEVEL2       *    MARK AT LEVEL 2 FOR F.C. CONVERSION
          ADDC   S1SS         *    SINGLE SPACE 
          SETMXF S5FC2        *    FORMS CONTROL ON THIS LINE IS ASSUMED
*                             *    TO BE POST PRINT SINGLE SPACE AND MAY
*                             *    BE UPDATED ACCORDING TO THE FORMS
*                             *    CONTROL ON THE NEXT LINE 
          STATE  S5L500,EXIT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L390                                                * 
*                                                                     * 
*     PURPOSE - COMMON SUBSTATE FOR FORMS CONTROL                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5390     ADDC   S1ESC        *    ESC
          TPMARK LEVEL2       *    MARK AT LEVEL 2 FOR F.C. CONVERSION
          ADDC   S1SS         *    POSTPRINT SINGLE SPACE 
          SETMXF S5FC2        *    SET FLAG TO INDICATE SINGLE SPACE
          STATE  S5L500,EXIT  *    ASSUMED
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L400                                                * 
*                                                                     * 
*     PURPOSE - RETURN STATE FOR FORMS CONSTROLS                      * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5400     SETMXF S5FC2        *    SET FLAG S5FC2 
          JUMP   S5L150,RTN 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L500                                                * 
*                                                                     * 
*     PURPOSE - PROCESS CHARACTERS IN A LINE                          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5500     CHARNE B9EOL,S5505  *    SKIP IF NOT END OF LINE CHARACTER
          STATE  S5L650,EXIT
S5505     CNTNE  S7COLCNT,S1ZERO,S5510  SKIP IF COLUMN COUNT IS NOT 0 
          SETMXF S5NOFC       *    SET LINE FOLD FLAG 
          STATE  S5L200 
          JUMP   S5L700,RTN 
S5510     TPCMPR S7XCHAR,S5NUL1    CHECK IF CHAR COUNT REACH 0
          JUMP   S5L740,RTN  *    NO
          JUMP   S5L740,RTN   *    YES
S5515     SPCHEQ S5520        *    NO - SKIP IF BLANK 
          SKIP   S5555
S5520     TPCMPR S5BLANK,S5NUL1    CHECK IF BLANK COUNT STARTED 
          SKIP   S5530        *    YES
          SKIP   S5525        *    NO 
          SKIP   S5530        *    YES
S5525     TPSUBR S5NUL2,S5NUL2     CLEAR S5NUL2 
          TPINCR S5NUL2,S1ONE *    INCREMENT S5NUL2 BY 1
          TPCMPR S7XCHAR,S5NUL2    CHECK IF AT LEAST 2 SPACES LEFT
          SKIP   S5580        *    NO 
          SKIP   S5580        *    NO 
S5530     TPINCR S5BLANK,S1ONE     YES - INCREMENT BLANK COUNT
          DCC    S7COLCNT,S5532    DECREMENT COLUMN COUNT 
S5532     TSTMXF S5COMPRE,S5535    SKIP IF BLANK COMPRESSION SURPPORTED 
          NOPR   EXIT 
* 
* * *    PROCESS BLANK COMPRESSION FOR AT LEAST 3 CONSECUTIVE BLANKS
* 
S5535     TPSUBR S5NUL2,S5NUL2     CLEAR S5NUL2 
          TPINCR S5NUL2,S1THREE    SET S5NUL2 TO THREE
          TPCMPR S5NUL2,S5BLANK    CHECK IF BLANK COUNT < 3 
          SKIP   S5540        *    NO 
          NOPR   EXIT         *    NO 
          TPDECR S7XCHAR,S1ONE     YES - DECREMENT CHARACTER COUNT
          NOPR   EXIT 
S5540     TPCMPR S5BLANK,S9BLKL    CHECK IF BLANK COUNT REACH COMP LIMIT
          NOPR   EXIT         *    NO 
          NOPR                *    YES
          TSTMXF S53780,S5545 *    YES - SKIP IF 3780 
          ADDC   S1BYP        *    STORE BYP
          ADDC   S1BL2        *    STORE MAXIMUM COMPRESSED BLANK COUNT 
          SKIP   S5550
S5545     ADDC   S1IGS        *    STORE IGS
          ADDC   S1BL3        *    STORE MAXIMUM COMPRESSED BLANK COUNT 
S5550     TPSUBR S5BLANK,S5BLANK   CLEAR BLANK COUNT
          NOPR   EXIT 
* 
* * *    PROCESS BLANKS BEFORE STORING A NON-BLANK CHARACTER
* 
S5555     TPSUBR S5NUL2,S5NUL2     CLEAR S5NUL2 
          TPINCR S5NUL2,S1ONE *    LET S5NUL2 BE 1
          TPCMPR S5BLANK,S5NUL2    CHECK IF BLANK COUNT = 1 OR > 1
          SKIP   S5580        *    < 1
          SKIP   S5557        *    = 1
          TSTMXF S5COMPRES,S5558   SKIP IF BLANK COMPRESSION SURPPORTED 
          TPCMPR S7XCHAR,S5BLANK   TEST IF THIS XMISSION CAN HOLD BLANKS
          JUMP   S5L740,RTN   *    NO 
          JUMP   S5L740,RTN   *    NO 
          SKIP   S5560        *    YES
S5557     ADDC   S1BLANK      *    STORE BLANK
          TPDECR S7XCHAR,S1ONE    DECREMENT BLOCK CHARACTER COUNT 
          SKIP   S5580
S5558     SKIP   S5565
S5560     TPSUBR S5BLANK,S7XCHAR   SUBTRACT S7XCHAR BY S5BLANK
          TPLDR  T7COLCNT,S5NUL2   MOVE COLUMN COUNT AWAY TEMPARARILY 
S5562     SETCC  S7COLCNT,S180     SET 80 IN COUNT 1
          TPLDR  T7COLCNT,S5NUL4   MOVE 80 TO REGISTER
          TPCMPR S5BLANK,S5NUL4    CHECK IF BLANK COUNT EXCEED 80 
          SKIP   S5563        *    NO 
          SKIP   S5563        *    NO 
          TPSUBR S5NUL4,S5BLANK    YES- SUBTRACT 80 FROM BLANK COUNT
          RSTRAN             *    TURN OFF TRANSLATION
          RADDC  S1BLANK     *    STORE 80 BLANK CHARACTERS 
          SETRAN             *    TURN ON TRANSLATION 
          SKIPB  S5562        *    REPEAT AND STORE THE NEXT 80 BLANKS
S5563     TPSTR  S5BLANK,T7COLCNT  PUT BLANK COUNT IN COUNT 1 
          RSTRAN             *    TURN OFF TRANSLATION
          RADDC  S1BLANK     *    STORE -BLANK COUNT- BLANKS
          SETRAN             *    TURN ON TRANSLATION 
          TPSTR  S5NUL2,T7COLCNT   MOVE COLUMN COUNT BACK 
          SKIP   S5580
* 
* * *     HERE IF BLANK COMPRESSION SUPPORTED 
* 
S5565     TSTMXF S53780,S5570 *    SKIP IF 3780 
          ADDC   S1BYP        *    STORE BYP - 2780 
          SKIP   S5575
S5570     ADDC   S1IGS        *    STORE IGS - 3780 
S5575     TPADDR S9BLKB,S5BLANK    ADD BASE TO BLANK COUNT
          RSTRAN              *    TURN OFF TRANSLATION FLAG
          TPSTRC S5BLANK      *    STORE COMPRESSED BLANK COUNT 
          TPRSTR S5CURN       *    RESTORE CURRENT CHARACTER
          SETRAN              *    TURN ON TRANSLATION FLAG 
S5580     TPMOVE S5NUL1,S5BLANK    CLEAR S5BLANK
          TPDECR S7XCHAR,S1ONE     DECREMENT BLOCK CHARACTER COUNT
          DCC    S7COLCNT,S5585,STOREXIT    DECREMENT COLUMN COUNT
S5585     NOPR   STOREXIT 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L650                                                * 
*                                                                     * 
*     PURPOSE - CHECK CHARACTER AFTER END OF LINE                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5650     CHARNE B9QQQQ,S5655 *    SKIP IF NOT Q
          STATE  S5L720,EXIT
S5655     CHARNE B9RRRR,S5660 *    SKIP IF NOT R
          STATE  S5L720,EXIT
S5660     CHARNE B9SSSS,S5665 *    SKIP IF NOT S
          STATE  S5L720,EXIT
S5665     CHARNE B9TTTT,S5670 *    SKIP IF NOT T
          STATE  S5L720,EXIT
S5670     STATE  S5L150 
          RSTMXF S5NOFC      *    CLEAR LINE FOLD FLAG
*         JUMP   S5L700,RTN   *    PROCESS END OF LINE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L700                                                * 
*                                                                     * 
*     PURPOSE - SUBROUTINE TO PROCESS END OF LINE                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5700     TSTMXF S53780,S5702 *    SKIP IF 3780 
          TPDECR S5XLINE,S1ONE     DECREMENT LINE COUNT BY 1
S5702     TPMOVE S7WEIGHT,S5WEIGHT UPDATE S5WEIGHT
          TPST   S7XCHAR,T5XCHAR   UPDATE CHARACTER COUNT 
          TSTMXF S5FC2,S5704  *    SET S5FC1 ACCORDING TO S5FC2 
          RSTMXF S5FC1
          SKIP   S5706
S5704     SETMXF S5FC1
          RSTMXF S5FC2        *    CLEAR S5FC2
S5706     TPLDL  T5PLRN,S5NUL2     LOAD PL INTO S5NUL2
          TPCMPR S7LINEPG,S5NUL1   HAS LINE POSITION BECOME NEGATIVE
          TPADDR S5NUL2,S7LINEPG   YES - ADD PL TO CORRECT IT 
          NOPR                *    NO 
          TPMOVE S7LINEPG,S5LINEPG NO -  UPDATE S5LINEPG
          TSTMXF S53780,S5708 *    SKIP IF 3780 
          TPCMPR S5XLINE,S5NUL1    CHECK IF RECORD NUMBER REACH LIMIT 
          SKIP   S5710        *    NO 
          SKIP   S5714        *    YES
          SKIP   S5710        *    NO 
S5708     SKIP   S5712
S5710     TPSUBR S5NUL2,S5NUL2     NO - CLEAR WORKING REGISTER - S5NUL2 
          TPINCR S5NUL2,S1FIVE     LET S5NUL2 BE 5
          TPCMPR S7XCHAR,S5NUL2    CHECK IF CHAR COUNT < 5
          SKIP   S5714        *    YES - NOT ENOUGH FOR ANOTHER LINE
          NOPR                *    NO 
          ADDC   S1IUS        *    NO - STORE IUS 
          ADDC   S1NUL        *    STORE 2 NUL
          ADDC   S1NUL
          TPDECR S7XCHAR,S1THREE   DECREMENT CHAR COUNT BY 3
          TPST   S7XCHAR,T5XCHAR   UPDATE CHAR COUNT
          TPMOVE S7LINEPG,S5LINEPG UPDATE LINE POSITION COUNT 
          RTRN                *    RETURN TO CALLER 
* 
* * *    3780 
* 
S5712     ADDC   S1IRS       *    STORE IRS 
          TPSUBR S5NUL2,S5NUL2    CLEAR WORKING REGISTER
          TPINCR S5NUL2,S1THREE    LET S5NUL2 BE 3
          TPCMPR S7XCHAR,S5NUL2    CHECK IF CHARACTER COUNT < 3 
          SKIP   S5714        *    YES
          NOPR                *    NO 
          TPDECR S7XCHAR,S1ONE     DECREMENT CHARACTER COUNT BY 1 
          TPST   S7XCHAR,T5XCHAR   UPDATE CHARACTER COUNT 
          TPMOVE S7LINEPG,S5LINEPG UPDATE LINE POSITION COUNT 
          RTRN                *    RETURN TO CALLER 
S5714     ADDC   S1ETB        *    STORE ETB
          ADDC   S1NUL        *    STORE 2 NUL
          ADDC   S1NUL
          RSTRAN              *    TURN OFF TRANSLATION FLAG
          TPSTLC S7WEIGHT     *    STORE ACCOUNTING WEIGHT LEFT BYTE
          TPSTRC S7WEIGHT     *    STORE ACCOUNTING WEIGHT RIGHT BYTE 
          TPSUBR S5WEIGHT,S5WEIGHT CLEAR WEIGHT COUNT 
          TPMOVE S5WEIGHT,S7WEIGHT CLEAR WEIGHT COUNT 
          TPRSTR S5CURN       *    RESTORE THE UNTRANSLATED CHARACTER 
          CHRCC  S5XCHAR,S1ZERO    CLEAR CHARACTER COUNT
          SETFLG S5FEOB,CURN       SET END OF BLOCK FLAG ON BUFFER
          TPSTL  S5WEIGHT,T5XBLCNT     CLEAR BUFFER COUNT 
          RTRN
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L720                                                * 
*                                                                     * 
*     PURPOSE - QRST SEEN ON STATE S5L650                             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5720     CHARNE B9EOL,S5725  *    SKIP IF NOT END OF LINE
          STATE  S5L650,EXIT
S5725     NOPR   EXIT 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L740                                                * 
*                                                                     * 
*     PURPOSE - TERMINATE THE TRANSMISSION BLOCK AT PREVIOUS LINE     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5740     TPBKUP LEVEL1,DST   *    BACK TO LEVEL 1
          TSTMXF S53780,S5745     SKIP IF 3780
          BKSPAC              *    2780 - BACKSPACE 3 TIMES 
          BKSPAC              *           (DELETING US AND
          BKSPAC              *            2 CRC CHARACTERS)
S5745     ADDC   S1ETB        *    STORE ETB
          ADDC   S1NUL        *    STORE 2 NUL
          ADDC   S1NUL
          RSTRAN              *    TURN OFF TRANSLATION FLAG
          TPSTLC S5WEIGHT     *    STORE ACCOUNTING WEIGHT LEFT BYTE
          TPSTRC S5WEIGHT     *    STORE ACCOUNTING WEIGHT RIGHT BYTE 
          SETFLG S5FEOB,CURN  *    SET END OF BLOCK FLAG ON BUFFER
          TPSUBR S5WEIGHT,S5WEIGHT CLEAR ACCOUNTING WEIGHT COUNT
          TPMOVE S5WEIGHT,S7WEIGHT CLEAR ACCOUNTING WEIGHT COUNT
          CHRCC  S5XCHAR,S1ZERO    CLEAR CHARACTER COUNT
          TPSTL  S5WEIGHT,T5XBLCNT     CLEAR BUFFER COUNT 
          TPMOVE S5LINEPG,S7LINEPG UPDATE LINE POSITION COUNT 
          TPBKUP LEVEL1,SRC   *    BACK TO LEVEL 1 ON SOURCE
          JUMP   S5L150 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L760                                                * 
*                                                                     * 
*     PURPOSE - P WAS SEEN AS THE FIRST CHARACTER IN A LINE           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5760     CHARNE B9MMMM,S5765      SKIP IF NOT M
          JUMP   S5L770 
S5765     TPBKUP LEVEL1,SRC,DST    BACK UP TO LEVEL 1 
          JUMP   S5L200 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L770                                                * 
*                                                                     * 
*     PURPOSE - PM WAS SEEN AS FIRST AND 2ND CHARACTERS OF A LINE     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5770     CNTNE  S5XCHAR,S1ZERO,S5772   SKIP IF CHAR COUNT NON-ZERO 
          SKIP   S5780
S5772     CHRCC  S5XCHAR,S1ZERO    CLEAR CHARACTER COUNT
          TSTMXF S53780,S5775     SKIP IF 3780
          BKSPAC              *    2780 - BACKSPACE 3 TIMES 
          BKSPAC              *           (DELETING US AND
          BKSPAC              *            2 CRC CHARACTERS)
S5775     SKIP   S5785
S5780     ALNBUF S1FCD        *    GET A NEW BUFFER 
          ADDC   S1SYN        *    STORE 4 SYNS 
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1STX        *    STORE STX
S5785     ADDC   S1ETX        *    STORE ETX
          ADDC   S1NUL        *    STORE 2 NUL
          ADDC   S1NUL
          RSTRAN              *    TURN OFF TRANSLATION FLAG
          TPSTLC S7WEIGHT     *    STORE ACCOUNTING WEIGHT LEFT BYTE
          TPSTRC S7WEIGHT     *    STORE ACCOUNTING WEIGHT RIGHT BYTE 
          SETFLG S5FEOB+S5FETX,CURN     MARK EOB AND ETX FLAG ON BUFFER 
          TPSUBR S5WEIGHT,S5WEIGHT CLEAR WEIGHT COUNT 
          TPMOVE S5WEIGHT,S7WEIGHT CLEAR WEIGHT COUNT 
          TPMOVE S5WEIGHT,S5LINEPG CLEAR CURRENT LINE POSITION COUNT
          TPSTL  S5WEIGHT,T5XBLCNT     CLEAR BUFFER COUNT 
* 
* * *    BUILD PM BLOCK 
* 
          ALNBUF VMFCD        *    GET A NEW BUFFER FOR PM
          ADDC   B9PPPP       *    STORE P
          ADDC   B9MMMM       *    STORE M
          SETFLG S5FPM,CURN   *    SET PM FLAG ON BUFFER
          SETCC  S5PMCNT,S178 *    SET PM COUNT TO 78 
          STATE  S5L800,EXIT
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L800                                                * 
*                                                                     * 
*     PURPOSE - PROCESS PM                                            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5800     CHARNE B9EOL,S5805  *    SKIP IF NOT END OF LINE
          SETFLG S5FEOB,CURN  *    SET END OF BLOCK FLAG ON BUFFER
          STATE  S5L150,EXIT
S5805     CNTNE  S5PMCNT,S1ZERO,S5810   SKIP IF NUMBER OF CHAR < 80 
          SETFLG S5FEOB,CURN  *    SET END OF BLOCK FLAG ON BUFFER
          STATE  S5L820,EXIT
S5810     DCC    S5PMCNT,S5815     DECREMENT PM COUNT 
S5815     NOPR   STOREXIT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L820                                                * 
*                                                                     * 
*     PURPOSE - DISCARD DUMMY CHARACTERS FOR PM OR QRST LINE          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5820     CHARNE B9EOL,S5825  *    SKIP IF NOT END OF LINE
          STATE  S5L150,EXIT
S5825     NOPR   EXIT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*        BSC MAIN LEVEL OUTPUT TEXTPROCESSING STATE TABLE FOR         * 
*        LINE PRINTER WITH FORMS CONTROL  (ASCII SOURCE)              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          ENT    SPPASC 
          EQU    SPPASC(*)
          ADC  S5000          *    END OF SOURCE
          ADC    S5000        *    UNUSED STATE 
          ADC  S5100          *    INITIALIZATION 
          ADC  S6150          *    SPECIAL CHAR PROCESS AT THE BEGINNING
*                             *    OF A LINE
          ADC  S5200          *    BEGINNING OF A LINE
          ADC  S5220          *    BEGINNING OF LINE FOLD 
          ADC  S6250          *    PROCESS FORMS CONTROL
          ADC  S5260          *    FORMSCONTROL - PREPRINT SINGLE SPACE 
          ADC  S5264          *    FORMSCONTROL - PREPRINT DOUBLE SPACE 
          ADC  S5268          *    FORMSCONTROL - PREPRINT TRIPLE SPACE 
          ADC  S5272          *    FORMSCONTROL - SUPPRESS CARRIAGE CONT
          ADC  S5276          *    PREPRINT PAGE EJECT
          ADC  S5280          *    PREPRINT SKIP TO CHANNEL 12
          ADC  S5284          *    PREPRINT SKIP TO CHANNEL 6 
          ADC  S5288          *    PREPRINT SKIP TO CHANNEL 5 
          ADC  S5292          *    PREPRINT SKIP TO CHANNEL 4 
          ADC  S5296          *    PREPRINT SKIP TO CHANNEL 3 
          ADC  S5300          *    PREPRINT SKIP TO CHANNEL 2 
          ADC  S5304          *    PREPRINT SKIP TO CHANNEL 11
          ADC  S5308          *    PREPRINT SKIP TO CHANNEL 7 
          ADC  S5312          *    PREPRINT SKIP TO CHANNEL 8 
          ADC  S5316          *    PREPRINT SKIP TO CHANNEL 9 
          ADC  S5320          *    PREPRINT SKIP TO CHANNEL 10
*                             * 
          ADC  S5324          *    POSTPRINT PAGE EJECT 
          ADC  S5328          *    POSTPRINT SKIP TO CHANNEL 12 
          ADC  S5332          *    POSTPRINT SKIP TO CHANNEL 6
          ADC  S5336          *    POSTPRINT SKIP TO CHANNEL 5
          ADC  S5340          *    POSTPRINT SKIP TO CHANNEL 4
          ADC  S5344          *    POSTPRINT SKIP TO CHANNEL 3
          ADC  S5348          *    POSTPRINT SKIP TO CHANNEL 2
          ADC  S5352          *    POSTPRINT SKIP TO CHANNEL 11 
          ADC  S5356          *    POSTPRINT SKIP TO CHANNEL 7
          ADC  S5360          *    POSTPRINT SKIP TO CHANNEL 8
          ADC  S5364          *    POSTPRINT SKIP TO CHANNEL 9
          ADC  S5368          *    POSTPRINT SKIP TO CHANNEL 10 
          ADC  S5372          *    FORMSCONTROL FOR UNRECOGNIZED CHAR 
* 
          ADC  S5380          *    COMMON STATE FOR POST FORMS CONTROL
          ADC  S5390          *    COMMON SUBSTATE FOR FORMS CONTROL
          ADC  S5400          *    RETURN STATE FOR S5L250
          ADC  S5500          *    PROCESS CHARACTERS IN A LINE 
          ADC  S6650          *    CHECK CHARACTER AFTER END OF LINE
          ADC  S5700          *    SUBROUTINE TO PROCESS END OF LINE
          ADC  S5720          *    QRST SEEN ON STATE S5L650
          ADC  S5740          *    TERMINATE TRANSMISSION BLOCK AT
*                             *    PREVIOUS LINE
          ADC  S6760          *    P WAS SEEN AS THE FIRST CHARACTER
*                             *    IN A LINE
          ADC    S6770        *    PM WAS SEEN AS FIRST 2 CHARACTERS
*                             *    IN A LINE. 
          ADC  S5800          *    PROCESS PM 
          ADC  S5820          *    DISCARD DUMMY CHARACTERS FOR PM OR 
*                             *    QRST LINE
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L150                                                * 
*                                                                     * 
*     PURPOSE -  SPECIAL CHARACTER PROCESS AT THE BEGINING OF A LINE  * 
*                (ASCII SOURCE)                                       * 
* 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S6150     TPMARK LEVEL1       *    MARK AT LEVEL 1
          CHARNE B8PPPP,S6155 *    SKIP IF NOT P
          STATE  S5L760,EXIT
S6155     CHARNE B8QQQQ,S6160 *    SKIP IF NOT Q
          STATE  S5L820,EXIT
S6160     CHARNE B8RRRR,S6165 *    SKIP IF NOT R
          STATE  S5L820,EXIT
S6165     CHARNE B8SSSS,S6170 *    SKIP IF NOT S
          STATE  S5L820,EXIT
S6170     CHARNE B8TTTT,S6175 *    SKIP IF NOT T
          STATE  S5L820,EXIT
S6175     JUMP   S5L200 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L250                                                * 
*                                                                     * 
*     PURPOSE -  PROCESS FORMS CONTROL  (ASCII SOURCE)                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S6250     CHARNE B8FCS1,S62502     SKIP IF NOT SINGLE SPACE 
          JUMP   S5L260 
S62502    CHARNE B8FCS2,S62504     SKIP IF NOT DOUBLE SPACE 
          JUMP   S5L264 
S62504    CHARNE B8FCS3,S62506     SKIP IF NOT TRIPLE SPACE 
          JUMP   S5L268 
S62506    CHARNE B8FCSS,S62508     SKIP IF NOT SUPPRESS CARRIAGE CONTROL
          JUMP   S5L272 
S62508    CHARNE B8FCPE,S62510     SKIP IF NOT PAGE EJECT 
          JUMP   S5L276 
S62510    CHARNE B8FCBP,S62512     SKIP IF NOT BOTTOM OF PAGE (CH. 12)
          JUMP   S5L280 
S62512    CHARNE B8FCC6,S62514     SKIP IF NOT PREPRINT CHANNEL 6 
          JUMP   S5L284 
S62514    CHARNE B8FCC5,S62516     SKIP IF NOT PREPRINT CHANNEL 5 
          JUMP   S5L288 
S62516    CHARNE B8FCC4,S62518     SKIP IF NOT PREPRINT CHANNEL 4 
          JUMP   S5L292 
S62518    CHARNE B8FCC3,S62520     SKIP IF NOT PREPRINT CHANNEL 3 
          JUMP   S5L296 
S62520    CHARNE B8FCC2,S62522     SKIP IF NOT PREPRINT CHANNEL 2 
          JUMP   S5L300 
S62522    CHARNE B8FC11,S62524     SKIP IF NOT PREPRINT CHANNEL 11
          JUMP   S5L304 
S62524    CHARNE B8FCC7,S62526     SKIP IF NOT PREPRINT CHANNEL 7 
          JUMP   S5L308 
S62526    CHARNE B8FCC8,S62528     SKIP IF NOT PREPRINT CHANNEL 8 
          JUMP   S5L312 
S62528    CHARNE B8FCC9,S62530     SKIP IF NOT PREPRINT CHANNEL 9 
          JUMP   S5L316 
S62530    CHARNE B8FC10,S62532     SKIP IF NOT PREPRINT CHANNEL 10
          JUMP   S5L320 
S62532    CHARNE B8PPPE,S62534     SKIP IF NOT POSTPRINT PAGE EJECT 
          JUMP   S5L324 
S62534    CHARNE B8PPBP,S62536     SKIP IF NOT POSTPRINT BOTTOM OF PAGE 
          JUMP   S5L328 
S62536    CHARNE B8PPC6,S62538     SKIP IF NOT POSTPRINT CHANNEL 6
          JUMP   S5L332 
S62538    CHARNE B8PPC5,S62540     SKIP IF NOT POSTPRINT CHANNEL 5
          JUMP   S5L336 
S62540    CHARNE B8PPC4,S62542     SKIP IF NOT POSTPRINT CHANNEL 4
          JUMP   S5L340 
S62542    CHARNE B8PPC3,S62544     SKIP IF NOT POSTPRINT CHANNEL 3
          JUMP   S5L344 
S62544    CHARNE B8PPC2,S62546     SKIP IF NOT POSTPRINT CHANNEL 2
          JUMP   S5L348 
S62546    CHARNE B8PP11,S62548     SKIP IF NOT POSTPRINT CHANNEL 11 
          JUMP   S5L352 
S62548    CHARNE B8PPC7,S62550     SKIP IF NOT POSTPRINT CHANNEL 7
          JUMP   S5L356 
S62550    CHARNE B8PPC8,S62552     SKIP IF NOT POSTPRINT CHANNEL 8
          JUMP   S5L360 
          EJT 
S62552    CHARNE B8PPC9,S62554     SKIP IF NOT POSTPRINT CHANNEL 9
          JUMP   S5L364 
S62554    CHARNE B8PP10,S62556     SKIP IF NOT POSTPRINT CHANNEL 10 
          JUMP   S5L368 
S62556    CHARNE B8SLSH,S62558     SKIP IF NOT /
          JUMP   S5L260 
S62558    CHARNE B8VVVV,S62560     SKIP IF NOT V
          JUMP   S5L260 
S62560    JUMP   S5L372 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L650                                                * 
*                                                                     * 
*     PURPOSE - CHECK CHARACTER AFTER END OF LINE (ASCII SOURCE)      * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S6650     CHARNE B8QQQQ,S6655 *    SKIP IF NOT Q
          STATE  S5L720,EXIT
S6655     CHARNE B8RRRR,S6660 *    SKIP IF NOT R
          STATE  S5L720,EXIT
S6660     CHARNE B8SSSS,S6665 *    SKIP IF NOT S
          STATE  S5L720,EXIT
S6665     CHARNE B8TTTT,S6670 *    SKIP IF NOT T
          STATE  S5L720,EXIT
S6670     STATE  S5L150 
          JUMP   S5L700,RTN  *    PROCESS END OF LINE 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L760                                                * 
*                                                                     * 
*     PURPOSE - P WAS SEEN AS THE FIRST CHARACTER IN A LINE           * 
*               (ASCII SOURCE)                                        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S6760     CHARNE B8MMMM,S6765      SKIP IF NOT M
          JUMP   S5L770 
S6765     TPBKUP LEVEL1,SRC,DST    BACK UP TO LEVEL 1 
          JUMP   S5L200 
          SPC   3 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5L770                                                * 
*                                                                     * 
*     PURPOSE - PM WAS SEEN AS FIRST AND 2ND CHARACTERS OF A LINE     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S6770     CNTNE  S5XCHAR,S1ZERO,S6772   SKIP IF CHAR COUNT NON-ZERO 
          SKIP   S6780
S6772     CHRCC  S5XCHAR,S1ZERO    CLEAR CHARACTER COUNT
          TSTMXF S53780,S6775     SKIP IF 3780
          BKSPAC             *    2780 - BACKSPACE 3 TIMES
          BKSPAC             *           (DELETING US AND 
          BKSPAC             *            2 CRC CHARACTERS) 
S6775     SKIP   S6785
S6780     ALNBUF S1FCD        *    GET A NEW BUFFER 
          ADDC   S1SYN        *    STORE 4 SYNS 
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1STX        *    STORE STX
S6785     ADDC   S1ETX        *    STORE ETX
          ADDC   S1NUL        *    STORE 2 NUL
          ADDC   S1NUL
          RSTRAN             *    TURN OFF TRANSLATING FLAG 
          TPSTLC S7WEIGHT     *    STORE ACCOUNTING WEIGHT LEFT BYTE
          TPSTRC S7WEIGHT     *    STORE ACCOUNTING WEIGHT RIGHT BYTE 
          SETFLG S5FEOB+S5FETX,CURN     MARK EOB AND ETX FLAG ON BUFFER 
          TPSUBR S5WEIGHT,S5WEIGHT CLEAR WEIGHT COUNT 
          TPMOVE S5WEIGHT,S7WEIGHT CLEAR WEIGHT COUNT 
          TPMOVE S5WEIGHT,S5LINEPG CLEAR CURRENT LINE POSITION COUNT
          TPSTL  S5WEIGHT,T5XBLCNT     CLEAR BUFFER COUNT 
* 
* * *    BUILD PM BLOCK 
* 
          ALNBUF VMFCD        *    GET A NEW BUFFER FOR PM
          ADDC   B8PPPP       *    STORE P
          ADDC   B8MMMM       *    STORE M
          SETFLG S5FPM,CURN   *    SET PM FLAG ON BUFFER
          SETCC  S5PMCNT,S178 *    SET PM COUNT TO 78 
          STATE  S5L800,EXIT
          EJT 
          END 
          NAM    BSCCON 
*CALL BSCEQU
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*        BSC MAIN LEVEL OUTPUT TEXTPROCESSING STATE TABLE FOR         * 
*        CONSOLE, CARD PUNCH AND LINE PRINTER WITH NO FORMS CONTROL   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
SPCONS    MAC    NM 
          EQU    S5D"NM"(*-SPCONC)
          ADC    S5C"NM"
          EMC 
* 
          ENT    SPCONC 
          EQU    SPCONC(*)
          SPCONS 000          *    END OF SOURCE
          ADC    S5C000       *    UNUSED STATE 
          SPCONS 200          *    BEGINNING OF A LINE
          SPCONS 350          *    SUBROUTINE FOR END OF LINE 
          SPCONS 380          *    TERMINATE TRANSMISSION BLOCK AT
*                             *    PREVIOUS LINE
          SPCONS 400          *    PROCESS CHARACTER IN A LINE
          SPCONS 450         *    COUNT BLANKS
          SPCONS 600          *    RETURN STATE FOR S5C400
          SPCONS 620          *    RETURN STATE FOR S5C400
          SPCONS 640          *    PROCESS LINE FOLD
          SPCONS 750         *    TERM AND EXIT TEXT PROCESSING 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*        BSC MAIN LEVEL OUTPUT TEXTPROCESSING STATE TABLE FOR         * 
*        TRANSPARENT FILES                                            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 
          ENT    SPXPARENT
          EQU    SPXPARENT(*) 
          ADC    S5C000       *    END OF SOURCE
          ADC    S5C000       *    UNUSED STATE 
          ADC    S5C200       *    BEGINNING OF A LINE
          ADC    S5C350       *    SUBROUTINE FOR END OF LINE 
          ADC    S5C380       *    TERMINATE TRANSMISSION BLOCK AT
*                            *    PREVIOUS LINE 
          ADC    S5X400       *    PROCESS CHARACTER IN A LINE
          ADC    S5C450      *    NOT USED
          ADC    S5C600       *    NOT USED 
          ADC    S5C620       *    NOT USED 
          ADC    S5C640       *    PROCESS LINE FOLD
          ADC    S5C750      *    TERM AND EXIT TEXT PROCESSING 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C000                                                * 
*                                                                     * 
*     PURPOSE - END OF SOURCE FOR OUTPUT TEXTPROCESSING OTHER THAN    * 
*               LINE PRINTER WITH FORMS CONTROL                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
* 
S5C000    TSTMXF S5EOJ+S5EOI,S5C005     SKIP IF EOJ OR EOI
          SKIP   S5C062      *    CONTINUE PROCESSING 
S5C005    STATLS S5D400,S5C010     SKIP IF STATE < S5D400 
          STATLS S5D600,S5C015     SKIP IF STATE = S5D400 
S5C010    CNTNE  S5XCHAR,S1ZERO,S5C020  SKIP IF XMISSION BLOCK STARTED
          SKIP   S5C025 
S5C015    SKIP   S5C030 
S5C020    TSTMXF S53780,S5C022    SKIP IF 3780
          BKSPAC             *    2780 - BACKSPACE 3 TIMES
          BKSPAC             *            (DELETING US AND
          BKSPAC             *             2 CRC CHARACTERS)
S5C022    SKIP   S5C038      *    SKIP TO TEST FOR EOJ
S5C025    ALNBUF S1FCD        *    GET A NEW BUFFER 
          ADDC   S1SYN        *    STORE 4 SYNS 
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1SYN
          TSTMXF S5XPARENT,S5C027  SKIP IF TRANSPARENT FILE 
          SKIP   S5C028       *    STORE STX - NOT TRANSPARENT
S5C027    ADDC   S1DLE        *    STORE DLE
S5C028    ADDC   S1STX        *    STORE STX
S5C030    TSTMXF S5XPARENT,S5C034 SKIP IF TRANSPARENT XMISSION
          TSTMXF S53780,S5C032    SKIP IF 3780
          SKIP   S5C038      *    GO TEST FOR EOJ 
S5C032    ADDC   S1IRS       *    STORE 3780 IRS
          SKIP   S5C038      *    GO TEST FOR EOJ 
* 
* * *    TRANSPARENT TRANSMISSION 
* 
S5C034    ADDC   S1DLE       *    STORE DLE 
          TSTMXF S53780,S5C036    SKIP IF 3780
          SKIP   S5C038      *    GO TEST FOR EOJ 
S5C036    ADDC   S1IRS       *    STORE 3780 IRS
          ADDC   S1DLE       *    STORE 3780 DLE
* 
* * *    TEST FOR EOJ (ETB OR ETX TERMINATOR) 
* 
S5C038    TSTMXF S5EOJ,S5C040     SKIP IF EOJ 
          ADDC   S1ETB       *    STORE ETB 
          SKIP   S5C050      *    GO TO STORE NULLS FOR CRC 
S5C040    ADDC   S1ETX       *    STORE ETX 
* 
* * *    TERMINATE TRANSMISSION BLOCK 
* 
S5C050    ADDC   S1NUL        *    STORE 2 NUL TO RESERVE SPACE FOR CRC 
          ADDC   S1NUL
          RSTRAN             *    TURN OFF TRANSLATION FLAG 
          TPSTLC S5WEIGHT     *    STORE ACCOUNTING WEIGHT
          TPSTRC S5WEIGHT 
          TPSUBR S5WEIGHT,S5WEIGHT CLEAR WEIGHT COUNT 
          TPST   S5WEIGHT,T5XCHAR  CLEAR CHARACTER COUNT
          TSTMXF S5EOI,S5C055     SKIP IF EOI 
          SETFLG S5FETX,CURN *    SET ETX FLAG ON EOJ BUFFER
S5C055    SETFLG S5FEOB+S5FEOI,CURN  SET EOI AND EOB ON BUFFER
          JUMP   S5D750 
S5C062    STATLS S5D400,S5C065     SKIP IF STATE < S5D400 
          STATLS S5D750,S5C075    SKIP IF STATE IS S5D400 OR S5D640 
S5C065    RSTMXF S5BACK       *    BACK ON SOURCE NOT NEEDED
          TPLD   T5XCHAR,S7XCHAR  CHECK CHAR COUNT FOR TRMBUF 
          CNTNE  S5XCHAR,S1ZERO,S5C067   SKIP TRMBUF IF NOT ZERO
          TIBSWC 0,0,0        *    TERMINATE BUFFER BEFORE EXIT 
S5C067    TPEXIT              *    EXIT TEXT PROCESSING 
S5C075    TPBKUP LEVEL1,SRC,DST    BACK UP TO LEVEL 1 
          SETMXF S5BACK       *    BACK ON SOURCE NEEDED
          TPEXIT             *    EXIT TEXT PROCESSING
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C200                                                * 
*                                                                     * 
*     PURPOSE - BEGINNING OF A LINE                                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5C200    CNTNE  S5XCHAR,S1ZERO,S5C202  SKIP IF CHAR COUNT NOT ZERO 
          SKIP   S5C205 
S5C202    SKIP   S5C220 
S5C205    ALNBUF S1FCD        *    GET A NEW BUFFER 
          ADDC   S1SYN        *    STORE 4 SYNS 
          ADDC   S1SYN
          ADDC   S1SYN
          ADDC   S1SYN
          INTCC  S5XCHAR      *    INITIALIZE CHARACTER COUNT 
          TPLDR  T5PLRN,S5XLINE    INITIALIZE RECORD COUNT
          TSTMXF S5XPARENT,S5C210  SKIP IF TRANSPARENT FILE 
          SKIP   S5C215 
S5C210    ADDC   S1DLE        *    STORE DLE
S5C215    ADDC   S1STX        *    STORE STX
S5C220    TPMARK LEVEL1      *    MARK AT LEVEL 1 
          TSTMXF S5XPARENT,S5C222  SKIP IF TRANSPARENT FILE 
          SETRAN             *    TURN ON TRANSLATION FLAG
S5C222    TPLD   T5XCHAR,S7XCHAR  UPDATE CHARACTER COUNT
          INTCC  S7COLCNT     *    INITIALIZE COLUMN COUNT
          TPSUBR S5BLANK,S5BLANK   CLEAR BLANK COUNT
          TSTMXF S5FCSS,S5C225     SKIP IF FORMS CONTROL NEEDED 
          JUMP   S5D400 
S5C225    ADDC   S1ESC        *    STORE ESC
          ADDC   S1SS         *    POSTPRINT SINGLE SPACE 
          TPDECR S7XCHAR,S1TWO     DECREMENT CHARACTER COUNT BY 2 
          TSTMXF S5FEPRES,S5C230   SKIP IF FORMAT EFFECTOR PRES 
          JUMP   S5D400       *    CONTINUE 
S5C230    STATE  S5D400,EXIT  *    DISCARD CURRENT CHARACTER
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C350                                                * 
*                                                                     * 
*     PURPOSE - SUBROUTINE FOR END OF LINE                            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5C350    TPINCR S5WEIGHT,S1ONE    INCREMENT WEIGHT COUNT 
          TSTMXF S5XPARENT,S5C355  SKIP IF TRANSPARENT FILE 
          SKIP   S5C360 
S5C355    ADDC   S1DLE        *    STORE DLE
          TPDECR S7XCHAR,S1ONE     DECREMENT CHARACTER COUNT
S5C360    TSTMXF S53780,S5C362     SKIP IF 3780 
          TPDECR S5XLINE,S1ONE     2780 - DECREMENT RECORD COUNT
          TPCMPR S5XLINE,S5NUL1    CHECK IF RECORD NUMBER REACH LIMIT 
          SKIP   S5C365       *    NO 
          SKIP   S5C375       *    YES
          SKIP   S5C365       *    NO 
S5C362    SKIP   S5C370       *    YES
S5C365    TPSUBR S5NUL2,S5NUL2     CLEAR S5NUL2 
          TPINCR S5NUL2,S1SIX *    SET S5NUL2 TO 6
          TPCMPR S7XCHAR,S5NUL2    CHECK IF ENOUGH SPACE FOR NEXT LINE
          SKIP   S5C375       *    NO 
          NOPR               *    EYES
          ADDC   S1IUS        *    STORE IUS FOR 2780 
          ADDC   S1NUL        *    STORE 2 NULS 
          ADDC   S1NUL
          TPDECR S7XCHAR,S1THREE   DECREMENT CHAR COUNT BY 3
          TPST   S7XCHAR,T5XCHAR   UPDATE CHAR COUNT
          RTRN
* 
* * * 3780
* 
S5C370    ADDC   S1IRS       *    STORE IRS 
          TPSUBR S5NUL2,S5NUL2    CLEAR S5NUL2
          TPINCR S5NUL2,S1FOUR     SET S5NUL2 TO 4
          TPCMPR S7XCHAR,S5NUL2    CHECK IF ENOUGH SPACE FOR NEXT LINE
          SKIP   S5C375       *    NO-
          NOPR               *    YES-
          TPDECR S7XCHAR,S1ONE     DECREMENT CHAR COUNT 
          TPST   S7XCHAR,T5XCHAR   UPDATE CHAR COUNT
          RTRN
*     CLOSE THE CURRENT TRANSMISSION BLOCK
S5C375    ADDC   S1ETB        *    STORE ETB
          ADDC   S1NUL        *    STORE 2 NULS 
          ADDC   S1NUL
          RSTRAN             *    TURN OFF TRANSLATION FLAG 
          TPSTLC S5WEIGHT     *    STORE WEIGHT COUNT INTO
          TPSTRC S5WEIGHT     *    TRANSMISSION BUFFER
          TPSUBR S5WEIGHT,S5WEIGHT CLEAR ACCOUNTING WEIGHT
          TPRSTR S5CURN       *    RESTORE THE UNTRANSLATED CHARACTER 
          SETFLG S5FEOB,CURN  *    SET EOB FLAG ON BUFFER 
          TPST   S5NUL1,T5XCHAR    CLEAR CHARACTER COUNT
          RTRN
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C380                                                * 
*                                                                     * 
*     PURPOSE - TERMINATE TRANSMISSION BLOCK AT PREVIOUS LINE         * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5C380    TPBKUP LEVEL1,DST   *    BACK UP TO LEVEL 1 
          TSTMXF S53780,S5C385    SKIP IF 3780
          BKSPAC             *    2780 - BACKSPACE 3 TIMES
          BKSPAC             *        (DELETING US AND
          BKSPAC             *         2 CRC CHARACTERS)
S5C385    ADDC   S1ETB        *    STORE ETB
          ADDC   S1NUL        *    STORE 2 NULS 
          ADDC   S1NUL
          RSTRAN             *    TURN OFF TRANSLATION FLAG 
          TPSTLC S5WEIGHT     *    STORE ACCOUNTING WEIGHT
          TPSTRC S5WEIGHT 
          TPSUBR S5WEIGHT,S5WEIGHT CLEAR ACCOUNTING WEIGHT
          SETFLG S5FEOB,CURN  *    SET EOB FLAG ON BUFFER 
          TPST   S5NUL1,T5XCHAR    CLEAR CHARACTER COUNT
          TPBKUP LEVEL1,SRC   *    BACK UP TO LEVEL 1 ON SOURCE 
          JUMP   S5D200 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C400                                                * 
*                                                                     * 
*     PURPOSE - PROCESS CHARACTER IN A LINE                           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                                                                     * 
*    PROCESS.CHARACTERS.IN.A.LINE                                     * 
*                                                                     * 
*                                                                     * 
*    IF CURRENT.CHARACTER IS END.OF.LINE                              * 
*    THEN                                                             * 
*                                                                     * 
*      LINEFOLD = FALSE                                               * 
*      STATE    = CHECK.CHARACTER.AFTER.END.OF.LINE                   * 
*                                                                     * 
*    ELSE                                                             * 
*                                                                     * 
*      IF PREVIOUS.CHARACTER FILLED THE LINE/CARD                     * 
*      THEN                                                           * 
*                                                                     * 
*        LINEFOLD = TRUE                                              * 
*        DO PROCESS.END.OF.LINE                                       * 
*        GOTO PROCESS.START.OF.LINE                                   * 
*                                                                     * 
*      ELSE                                                           * 
*                                                                     * 
*        SUBTRACT  1  FROM LINE/CARD.FULL.COUNTER                     * 
*        IF CURRENT.CHARACTER IS A BLANK                              * 
*        THEN                                                         * 
*                                                                     * 
*          BLANK.COUNTER = 1                                          * 
*          STATE         = COUNT.BLANKS                               * 
*                                                                     * 
*                                                                     * 
*        ELSE                                                         * 
*          IF TRANSMISSION.BLOCK IS FULL                              * 
*          THEN                                                       * 
*            GOTO TERMINATE.BLOCK.AT.END.OF.PREVIOUS.LINE/CARD        * 
*                                                                     * 
*          ELSE                                                       * 
*                                                                     * 
*            SUBTRACT  1  FROM TRANSMISSION.BLOCK.COUNTER             * 
*            STORE CURRENT.CHARACTER                                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5C400    TPCMPR S5CURN,S9EOLC     CHECK IF CURRENT CHAR IS END OF LINE 
          SKIP   S5C410       *    NO 
          SKIP   S5C405       *    YES
          SKIP   S5C410       *    NO 
S5C405    STATE  S5D600       *    SET RETURN STATE 
          JUMP   S5D350,RTN   *    CALL END OF LINE PROCESS 
S5C410    CNTNE  S7COLCNT,S1ZERO,S5C414 
          STATE  S5D620       *    SET RETURN STATE 
          JUMP   S5D350,RTN   *    CALL END OF LINE PROCESS 
S5C414    DCC S7COLCNT,S5C415     DECREMENT COLUMN COUNT
S5C415    SPCHEQ S5C440      *    SKIP IF BLANK 
          TPCMPR S7XCHAR,S5NUL1   CHECK IF CHAR COUNT EXCEED LIMIT
          SKIP   S5C420      *    NO
          JUMP   S5D380,RTN  *    YES 
S5C420    TPDECR S7XCHAR,1   *    DECREMENT CHARACTER COUNT 
          NOPR   STOREXIT    *    STORE CHARACTER 
S5C440    TPSUBR S5BLANK,S5BLANK  CLEAR BLANK COUNTER 
          TPINCR S5BLANK,1   *    BUMP IT ONE 
          STATE  S5D450,EXIT *    CHANGE STATE TO COUNT BLANKS
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C450                                                * 
*                                                                     * 
*     PURPOSE - COUNT BLANKS, THEN EXPAND WHEN NON-BLANK ENCOUNTERED  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*    COUNT.BLANKS                                                     * 
*                                                                     * 
*                                                                     * 
*    IF CURRENT.CHARACTER IS END.OF.LINE                              * 
*    THEN                                                             * 
*                                                                     * 
*      LINEFOLD      = FALSE                                          * 
*      PROCESS BLANK COUNT
*      STATE         = CHECK.CHARACTER.AFTER.END.OF.LINE              * 
*                                                                     * 
*                                                                     * 
*    ELSE                                                             * 
*                                                                     * 
*      IF PREVIOUS.CHARACTER FILLS THE LINE/CARD                      * 
*      THEN                                                           * 
*                                                                     * 
*        LINEFOLD      = TRUE                                         * 
*        BLANK.COUNTER = 0                                            * 
*        DO PROCESS.END.OF.LINE                                       * 
*        GOTO PROCESS.BEGINNING.OF.LINE                               * 
*                                                                     * 
*                                                                     * 
*      ELSE                                                           * 
*                                                                     * 
*        IF CURRENT.CHARACTER IS A BLANK                              * 
*        THEN                                                         * 
*                                                                     * 
*          ADD 1 TO BLANK.COUNTER                                     * 
*          ADD 1 TO LINE/CARD.FULL.COUNTER                            * 
*                                                                     * 
*        ELSE                                                         * 
*                                                                     * 
*          IF COMPRESSION SUPPORTED AND                               * 
*           ^ BLANK.COUNTER > 2                                       * 
*          THEN                                                       * 
*                                                                     * 
*            DO COMPRESS.BLANKS                                       * 
*                                                                     * 
*          ELSE                                                       * 
*                                                                     * 
*            DO EXPAND.BLANKS                                         * 
*                                                                     * 
*          GOTO PROCESS.CHARACTER.IN.A.LINE                           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5C450    TPCMPR S5CURN,S9EOLC    CHECK IF CURRENT CHAR IS END OF LINE
          SKIP   S5C454      *    NO
          SKIP   S5C452      *    YES 
          SKIP   S5C454      *    NO
S5C452    STATE  S5D600      *    SET RETURN STATE
          SKIP   S5C460      *    EXPAND BLANKS THEN END LINE 
S5C454    CNTNE  S7COLCNT,0,S5C456  CHECK IF LINE FULL
          TPSUBR S5BLANK,S5BLANK  CLEAR BLANK COUNT 
          STATE  S5D620      *    SET RETURN STATE
          JUMP   S5D350,RTN  *    CALL END OF LINE PROCESS
S5C456    SPCHEQ S5C458      *    SKIP IF BLANK CHARACTER 
          SKIP   S5C460      *    NOT A BLANK...GO EXPAND BLANKS
S5C458    TPINCR S5BLANK,1   INCREASE BLANK COUNTER BY ONE
          DCC    S7COLCNT,S5C459,EXIT  ADJUST LINE SIZE COUNT 
S5C459    NOPR   EXIT 
* 
* * *  NON-BLANK CHARACTER ENCOUNTERED...EXPAND THE BLANKS
* 
S5C460    TSTMXF S5COMPRES,S5C462 SKIP IF COMPRESSION SUPPORTED 
          SKIP   S5C480      *    NOT SUPPORTED...GO EXPAND BLANKS
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*    COMPRESS.BLANKS                                                  * 
*                                                                     * 
*                                                                     * 
*    WHILE BLANK.COUNTER => MINIMUM.COMPRESSION.COUNT                 * 
*    DO                                                               * 
*                                                                     * 
*      IF TRANSMISSION.BLOCK HAS NOT ROOM FOR TWO                     * 
*         COMPRESSION CHARACTERS PLUS CURRENT.CHARACTER               * 
*      THEN                                                           * 
*                                                                     * 
*        GOTO TERMINATE.BLOCK.AT.END.OF.PREVIOUS.LINE                 * 
*                                                                     * 
*      ELSE                                                           * 
*                                                                     * 
*        SUBTRACT 2 FROM TRANSMISSION.BLOCK.COUNTER                   * 
*                                                                     * 
*        IF BLANK.COUNTER > MAXIMUM.COMPRESSION.COUNT                 * 
*        THEN                                                         * 
*                                                                     * 
*          SUBTRACT MAXIMUM.COMPRESSION.COUNT FROM BLANK.COUNTER      * 
*          IF 3780                                                    * 
*          THEN                                                       * 
*            STORE IGS AND 3780.MAX.COMPRESSION.CHARACTER             * 
*          ELSE                                                       * 
*            STORE BYP AND 2780.MAX.COMPRESSION.CHARACTER             * 
*          (CONTINUE THE WHILE LOOP)                                  * 
*        ELSE  (REMAINING BLANK.COUNT IS LESS THAN MAXIMUM COMPRESSION* 
*               BUT EQUAL OR GREATER THAN MINIMUM COMPRESSION)        * 
*          IF 3780                                                    * 
*          THEN                                                       * 
*            STORE IGS                                                * 
*          ELSE                                                       * 
*            STORE BYP                                                * 
*          FORM COMPRESSION.COUNT.CHARACTER (ADD BASE TO BLANK.COUNT) * 
*          STORE COMPRESSION.COUNT.CHARACTER                          * 
*          GOTO PROCESS.CHARACTERS.IN.A.LINE                          * 
*                                                                     * 
*                                                                     * 
*    GOTO EXPAND.BLANKS (TO STORE THE 1 OR 2 REMAINING BLANKS)        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5C462    TPSUBR S5NUL2,S5NUL2    CLEAR WORK REGISTER 
          TPINCR S5NUL2,3    *    SET IT TO 3 FOR COMPARE PURPOSES
S5C464    TPCMPR S5BLANK,S5NUL2   CHECK IF ENOUGH BLANKS TO COMPRESS
          SKIP   S5C480      *    NO
          NOPR               *    YES 
          TPCMPR S7XCHAR,S5NUL2   IS THERE ROOM IN BLOCK FOR TWO
*                            *    COMPRESSION CHARACTERS AND CURRENT CHAR 
          JUMP   S5D380,RTN  *    NO - NOT ENOUGH ROOM
          NOPR               *    YES 
          TPDECR S7XCHAR,2   *    ADJUST FOR THE TWO COMPRESSION CHARS
          TPCMPR S5BLANK,S9BLKL   IS BLANK COUNT GT MAX COMPRESSION 
          SKIP   S5C468      *    NO
          SKIP   S5C468      *    NO
          TPSUBR S9BLKL,S5BLANK   YES,ADJUST COUNT BY MAX COMPRESSION 
          TSTMXF S53780,S5C466    SKIP IF 3780
          ADDC   S1BYP       *    2780 - USE 2780 COMPRESSION 
          ADDC   S1BL2
          SKIPB  S5C464      *    LOOP UNTIL COMPRESSION DONE 
S5C466    ADDC   S1IGS       *    USE 3780 COMPRESSION
          ADDC   S1BL3
          SKIPB  S5C464      *    LOOP UNTIL COMPRESSION DONE 
S5C468    TSTMXF S53780,S5C470    SKIP IF 3780
          ADDC   S1BYP       *    USE 2780 COMPRESSION
          SKIP   S5C472 
S5C470    ADDC   S1IGS       *    USE 3780 COMPRESSION
S5C472    TPADDR S9BLKB,S5BLANK   FORM COMPRESSION COUNT CHAR 
          RSTRAN             *    TURN OFF TRANSLATION
          TPSTRC S5BLANK     *    STORE COMPRESSION COUNT CHAR
          TPRSTR S5CURN      *    RESTORE CURRENT CHARACTER 
          SETRAN             *    TURN TRANSLATION BACK ON
          JUMP   S5D400      *    RETURN TO NORMAL CHARACTER LOGIC
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*    EXPAND.BLANKS                                                    * 
*                                                                     * 
*                                                                     * 
*    IF TRANSMISSION.BLOCK WILL NOT HOLD THE EXPANDED BLANKS          * 
*       PLUS CURRENT.CHARACTER                                        * 
*       (IF BLOCK.COUNTER =< BLANK.COUNTER)                           * 
*    THEN                                                             * 
*                                                                     * 
*                                                                     * 
*      GOTO TERMINATE.BLOCK.AT.END.OF.PREVIOUS.LINE                   * 
*                                                                     * 
*    ELSE                                                             * 
*                                                                     * 
*      SUBTRACT BLANK.COUNTER FROM BLOCK.COUNTER                      * 
*      SAVE CONTENTS OF CC1                                           * 
*      (CC1 WILL BE USED TO EXPAND BLANKS;)                           * 
*      (NOTE THAT THE CHARACTER EXPANSION INSTRUCTION LIMITS)         * 
*      (EXPANSION TO 80 AT A TIME)                                    * 
*                                                                     * 
*                                                                     * 
*      WHILE BLANK.COUNT > MAXIMUM.EXPANSION.COUNT                    * 
*      DO                                                             * 
*                                                                     * 
*        SUBTRACT MAXIMUM.EXPANSION.COUNT FROM BLANK.COUNTER          * 
*        EXPAND BLANKS (TO MAXIMUM.EXPANSION.COUNT)                   * 
*                                                                     * 
*                                                                     * 
*    EXPAND BLANKS (TO VALUE OF BLANK.COUNTER)                        * 
*                                                                     * 
*    RESTORE CC1                                                      * 
*                                                                     * 
*    GOTO PROCESS.CHARACTERS.IN.A.LINE                                * 
*                                                                     * 
*                                                                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
S5C480    TPCMPR S7XCHAR,S5BLANK  IS THERE ROOM FOR THE BLANKS
          JUMP   S5D380,RTN  *    NO
          JUMP   S5D380,RTN  *    NO
          TPSUBR S5BLANK,S7XCHAR  ADJUST BLOCK CHAR COUNT 
          TPLDR  T7CC1,S5NUL2    SAVE OFF CONTENTS OF CC1 
          RSTRAN             *    TURN OFF TRANSLATION
          SETCC1 80          *    SET MAX EXPANSION COUNT 
          TPLDR  T7CC1,S5NUL3     LOAD MAX COUNT FOR COMPARE
S5C482    TPCMPR S5BLANK,S5NUL3   IS BLANK COUNT GT MAX EXPAND
          SKIP   S5C484      *    NO
          SKIP   S5C484      *    NO
          TPSUBR S5NUL3,S5BLANK   YES,ADJUST BLANK COUNTER
          RADDC  S1BLANK     EXPAND 80 BLANKS 
          SKIPB  S5C482      LOOP UNTIL LESS THAN 80 BLANKS LEFT
S5C484    TPSTR  S5BLANK,T7CC1    STORE BLANK COUNT FOR EXPANSION 
          RADDC  S1BLANK
          SETRAN             *    TURN TRANSLATION BACK ON
          TPSTR  S5NUL2,T7CC1     RESTORE CC1 
          TPSUBR S5BLANK,S5BLANK  CLEAR BLANK COUNT 
          JUMP   S5D400      *    RETURN TO NORMAL PROCESSING 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C600                                                * 
*                                                                     * 
*     PURPOSE - RETURN STATE FOR S5C400                               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5C600    STATE S5D200,EXIT   *    SET NEXT STATE TO PROCESS NEXT LINE
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C620                                                * 
*                                                                     * 
*     PURPOSE - RETURN STATE FOR S5C400                               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5C620    TPMARK LEVEL2       *    MARK AT LEVEL 2
          JUMP   S5D640       *    JUMP TO PROCESS LINE FOLD
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C640                                                * 
*                                                                     * 
*     PURPOSE - PROCESS LINE FOLD                                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5C640    SPCHEQ S5C650       *    SKIP IF BLANK CHARACTER
          TPCMPR S5CURN,S9EOLC     CHECK IF EOL CHARACTER 
          SKIP   S5C645       *    NO 
          STATE  S5D200,EXIT  *    YES
S5C645    TPBKUP LEVEL2,SRC   *    NO 
          JUMP   S5D200 
S5C650    NOPR   EXIT 
          SPC    3
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5C750                                                * 
*                                                                     * 
*      PURPOSE - TERMINATE AND EXIT TEXTPROCESSING                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5C750    TIBSWC 0,0,0        *    TERMINATE TRANSMISSION BLOCK 
          TPEXIT              *    EXIT TEXTPROCESSING
          SPC    3
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     NAME    - S5X400                                                * 
*                                                                     * 
*     PURPOSE - PROCESS TRANSPARENT CHARACTER IN A LINE               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
S5X400    CNTNE  S7COLCNT,S1ZERO,S5X405 SKIP IF COLUMN COUNT NOT ZERO 
          STATE  S5D200 
          JUMP   S5D350,RTN 
S5X405    TPCMPR S7XCHAR,S5NUL1    CHECK IF CHAR COUNT IS ZERO
          SKIP   S5X410       *    NO 
          JUMP   S5D380,RTN   *    YES
S5X410    TPDECR S7XCHAR,S1ONE     DECREMENT CHAR COUNT BY 1
          CHARNE S1DLE,S5X415 *    SKIP IF CHAR NOT DLE 
          TPCMPR S7XCHAR,S5NUL1    CHECK IF CHAR COUNT IS ZERO
          SKIP   S5X412       *    NO - 
          JUMP   S5D380,RTN   *    YES - TERMINATE XMISSION 
S5X412    TPDECR S7XCHAR,S1ONE     DECREMENT CHAR COUNT BY 1
          STORE              *    STORE DLE 
S5X415    DCC    S7COLCNT,S5X420   DECREMENT COLUMN COUNT 
S5X420    NOPR   STOREXIT 
          END 
