*COMDECK ASYSPTOU 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         ASYNC BLOCK MODE TIP, TEXT PROCESSING STATE PROGRAMS        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          NAM    ASYTPS 
          NLS 
*CALL STPMACROS 
*CALL MUXMACROS 
*CALL ASYOUCON
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         ASYNC BLOCK MODE TIP, TEXT PROCESSOR SPT (ASCII)            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          STATPN ASPTTP 
          SPC    2
          STATPT ASPTTP,ATEOS 
          STATPT ASPTTP,ATFRST         START OF TEXT PROCESSING 
          STATPT ASPTTP,ATNLIN         START OF NEW NON XPT LINE
          STATPT ASPTTP,ATTEXT         PROCESS REST OF NON XPT TEXT 
          STATPT ASPTTP,ATCR -         STORE CR 
          STATPT ASPTTP,ATLFS          STORE LF(S)
          STATPT ASPTTP,ATCIDL         STORE CR IDLES 
          STATPT ASPTTP,ATLIDL         STORE LF IDLES 
          STATPT ASPTTP,ATPGWT         TEST FOR PAGE WAIT 
          STATPT ASPTTP,ATCLRH         PROCESS CLEAR/HOME CURSOR CONTROL
          STATPT ASPTTP,ATOV1          CONTINUE PROCESS OVER..
          STATPT ASPTTP,ATOV2          CONTINUE PROCESS OVER..
          STATPT ASPTTP,ATPRCH         STORE CLEAR/HOME (AFTER OVER..)
          STATPT ASPTTP,ATSTOR         XLATE/STORE SPECIAL CHARACTER
          STATPT ASPTTP,ATSTXT         XLATE/STORE TEXT CHARACTER 
          STATPT ASPTTP,ATPEXT         EXIT WITH COMPLETE DESTINATION 
          STATPT ASPTTP,ATCDLY         DELAY AFTER 4014 CLEAR-SCREEN
          STATPT ASPTTP,ATVTPG         VT100 TYPE PAGE WAIT 
          STATPT ASPTTP,ATVCHL         VT100 LINE FOLD CHECK
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         ASYNC BLOCK MODE TIP, TEXT PROCESSOR SPT (2741)             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          STATPN ASPT2P 
          SPC    2
          STATPT ASPT2P,A2EOS,ATEOS 
          STATPT ASPT2P,A2FRST,ATFRST  START OF TEXT PROCESSING 
          STATPT ASPT2P,A2NLIN,ATNLIN  START OF NEW NON XPT LINE
          STATPT ASPT2P,A2TEXT         PROCESS REST OF NON XPT TEXT 
          STATPT ASPT2P,A2CR,ATCR      STORE CR 
          STATPT ASPT2P,A2LFS,ATLFS    STORE LF(S)
          STATPT ASPT2P,A2CIDL,ATCIDL  STORE CR IDLES 
          STATPT ASPT2P,A2LIDL,ATLIDL  STORE LF IDLES 
          STATPT ASPT2P,A2PGWT,ATPGWT  TEST FOR PAGE WAIT 
          STATPT ASPT2P,A2CLRH,ATCLRH  PROCESS CLEAR/HOME CURSOR CONTROL
          STATPT ASPT2P,A2OV1,ATOV1    CONTINUE PROCESS OVER..
          STATPT ASPT2P,A2OV2,ATOV2    CONTINUE PROCESS OVER..
          STATPT ASPT2P,A2PRCH,ATPRCH  STORE CLEAR/HOME (AFTER OVER..)
          STATPT ASPT2P,A2STOR         XLATE/STORE SPECIAL CHARACTER
          STATPT ASPT2P,A2STXT,A2STOR  XLATE/STORE TEXT CHARACTER 
          STATPT ASPT2P,A2PEXT,ATPEXT  EXIT WITH COMPLETE DESTINATION 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T E O S   -   END OF SOURCE REACHED                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATEOS
          SPC    2
* 
* 
* * * *   ADD XOFF TO PAPERTAPE IF LAST LINE HAD POST-PRINT FE
* 
* 
          TSTMXF AFDISPL,ATES06        SKIP IF DISPLAY
          TSTMXF AFPTAPE,ATES07        SKIP IF PAPERTAPE OUTPUT 
ATES06    JUMP   ATPEXT,RTN  -         NOT PAPERTAPE EXIT 
ATES07    TSTMSK NCUOPS,AMPOST,ATES08  SKIP IF POST FE ON PAPERTAPE 
          JUMP   ATPEXT,RTN  -         LAST LINE WASNT POST-PRINT FE
ATES08    ADDC   ACXOFF      -         PUNCH XOFF IN PAPERTAPE
          ADDC   ACNUL
          ADDC   ACNUL       -         ADD THREE NULLS AFTER XOFF 
          ADDC   ACNUL
          JUMP   ATPEXT,RTN  -         EXIT WITH COMPLETE XMIT BUFFER 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T F R S T   -   START OF TEXT PROCESSING                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATFRST 
          SPC    2
*         RSTRAN             -         DONT TRANSLATE 
          TPSTR  ARZERO,NCUOPS         CLEAR NCUOP9-NCUOPF BITS 
          TPSTL  ARZERO,NCBLCNT        CLEAR BUFFER COUNT 
          SETPAR             -         STRIP PARITY BIT 
          TPMARK LEVEL1,SRC  -         MARK START OF TEXT (IF NO FES) 
          STATE  ATNLIN,EXIT -         START IVT OUTPUT, SKIP DBC 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T N L I N   -   START OF NEW LOGICAL LINE                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATNLIN 
          SPC    2
          TPMOVE ARZERO,ARNRLFS        CLEAR NR PRE LINE FEEDS
          TPMOVE ARZERO,ARNRPLF        CLEAR NR POST LINE FEEDS 
          TPMOVE ARCRLF,ARWCRLF        SET CR/LF SEQUENCE 
          RSTBIT NCUOPS,ABPOST         RESET POST ACTION BIT
          TSTMXF AFNOFES,ATNL02        SKIP IF NO FORMAT EFFECTOR 
          SKIP   ATNL10      -         PROCESS FORMAT EFFECTOR
* 
* 
* * * *   NO FORMAT EFECTOR PRESENT, PROCESS AS PRE-PRINT SINGLE SPACE
* 
* 
ATNL02    TPBKUP LEVEL1,SRC  -         BACKUP TO DBC OR UNIT SEPARATOR
          TPINCR ARNRLFS,1   -         NO FORMAT EFFECTOR: PRE-SINGLE 
          JUMP   ATCR        -         STORE CR/LF
* 
* 
*         FORMAT EFFECTOR PRESENT, SCAN AND PROCESS IT
* 
* 
ATNL10    CHARNE FPRSNGL,ATNL14 
ATNLPS    TPINCR ARNRLFS,1   -         PRE-PRINT SINGLE SPACE 
ATNLPR    TPMARK LEVEL1,SRC  -         MARK START OF TEXT 
          JUMP   ATCR        -         STORE CR/LF
* 
ATNL14    CHARNE FPRDBLE,ATNL16 
          TPINCR ARNRLFS,2   -         PREPRINT DOUBLE SPACE
          SKIP   ATNLPR      -         STORE CR/LF/LF 
* 
ATNL16    CHARNE FPRTRPL,ATNL18 
          TPINCR ARNRLFS,3   -         PREPRINT TRIPLE SPACE
          SKIP   ATNLPR      -         STORE CR/LF/LF/LF
* 
ATNL18    CHARNE FPRSCLN,ATNL20 
          SKIP   ATNLPR      -         POSITION BEGIN CURRENT LINE
* 
ATNL20    CHARNE FPRHOME,ATNL22 
          TPST   ARHCLR,NCCRCS
          TPLDL  NCCRCS,ARCLRH         GET HOME CONTROL CHARACTER 
          JUMP   ATCLRH      -         PERFORM HOME POSITIONING 
* 
ATNL22    CHARNE FPRHCLR,ATNL24 
          TPST   ARHCLR,NCCRCS
          TPLDR  NCCRCS,ARCLRH         GET CLEAR/HOME CONTROL CHARACTER 
          JUMP   ATCLRH      -         PERFORM CLEAR HOME POSITIONING 
* 
ATNL24    CHARNE FPOSNGL,ATNL26 
          TPINCR ARNRPLF,1   -         STORE POST CR/LF 
ATNLPO    SETBIT NCUOPS,ABPOST         POST ACTION REQUIRED 
ATNLP2    RSTBIT NCUOPS,ABDRLF         NO PRE-PRINT, DONT DROP LF 
          TSTMXF AFATEND,ATNL28        SKIP IF VT100 WAIT FOR FOLD
          STATE  ATTEXT,EXIT -         PROCESS LINE FIRST 
* 
ATNL26    CHARNE FPOSCLN,ATNL30 
          SKIP   ATNLPO 
* 
ATNL28    RSTBIT NCUOPS,ABATEND        CLEAR FLAG 
          TPINCR ARLNCNT,1   -         CORRECT LINE COUNT 
          STATE  ATTEXT,EXIT -         PROCESS LINE 
* 
ATNL30    CHARNE FPRNOOP,ATNL32 
          SKIP   ATNLP2      -         NO PRE/POST ACTION REQUIRED
* 
ATNL32    SKIP   ATNLPS      -         UNKNOWN FE, PROCESS AS PRE-SINGLE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A 2 T E X T   -   PROCESS NON TRANSPARENT TEXT   (2741)     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR A2TEXT 
          SPC    2
          CHARLS ACUS+1,ATTX02         SKIP IF CONTROL CHARACTER
          RSTBIT NCUOPS,ABDRLF         DONT DROP LF AFTER DATA
          DCC    CCPGWTH,ATTX20        SKIP IF PAGEWIDTH REACHED
          JUMP   ATSTXT,RTN  -         XLATE/STORE TEXT CHARACTER 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T T E X T   -   PROCESS NON TRANSPARENT TEXT   (ASCII)    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATTEXT 
          SPC    2
ATTX02    CHARLS ACUS+1,ATTX10         SKIP IF CONTROL CHARACTER
          RSTMSK NCUOPS,AMDRLF+AMATEND DONT DROP LF AFTER DATA
          DCC    CCPGWTH,ATTX20        SKIP IF PAGEWIDTH REACHED
          TPASY1 EXIT        -         PERFORM FOLLOWING LOGIC
* 
*         XLATE  $7F         -         TRANSLATE CHARACTER
*         STORE              -         STORE TRANSLATED CHARACTER 
*         TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
*         TPCMPR ARZERO,ARXMSZ
*         SKIP   #1          -         0 < XMSZ, NOT FULL 
*         SKIP   #2          -         0 = XMSZ, FULL  SKIP TO NEXT 
*         SKIP   #2          -         0 > XMSZ, FULL, STORE CHAR 
* #1      NOPR   EXIT        -         PERFORM GIVEN ACTION (EXIT)
* #2                         -         READ NEXT INSTRUCTION
          JUMP   ATPEXT,RTN  -         XMIT BLOCK FULL, EXIT TP 
* 
* 
* * * *   PROCESS CONTROL CHARACTER EMBEDDED IN DL IVT DATA 
* 
* 
ATTX10    TPMARK LEVEL1,SRC  -         MARK POSITION OF CONTROL CHAR
          CHARNE ACUS,ATTX14
          TSTMSK NCUOPS,AMPOST,ATTX12  SKIP IF POST ACTION REQUIRED 
          STATE  ATNLIN,EXIT -         GO PROCESS NEXT LINE 
ATTX12    TPMOVE ARNRPLF,ARNRLFS       SET NR OF LFS TO STORE 
          TPMOVE ARCRLF,ARWCRLF        SET EOL CR/LF SEQUENCE 
          JUMP   ATCR        -         GO STORE POST CR (LF)
* 
ATTX14    TPMOVE ARECRLF,ARWCRLF       SET EMBEDDED CR/LF CHARACTERS
          RSTBIT NCUOPS,ABDRLF         DONT DROP LF (AFTER DATA)
          CHARNE ACCR,ATTX16
          SETBIT NCUOPS,ABEMBCL        SET EMBEDDED CR SEEN 
          JUMP   ATCR        -         STORE EMBEDDED CR
* 
ATTX16    CHARNE ACLF,ATTX18
          TPMOVE ARZERO,ARNRLFS 
          TPINCR ARNRLFS,1   -         SET TO STORE SINGLE LF 
          SETBIT NCUOPS,ABEMBCL        SET EMBEDDED LF SEEN 
          JUMP   ATLFS       -         STORE EMBEDDED LF
* 
ATTX18    CHARNE ACBS,ATTX1A
          ICC    CCPGWTH     -         REMOVE PREVIOUS CHAR FROM PW 
ATTX1A    JUMP   ATSTXT,RTN  -         XLATE/STORE TEXT CHARACTER 
* 
* 
* * * *   PAGE WIDTH REACHED, FOLD LINE, SEE IF NEXT CHAR IS A US 
* 
* 
ATTX20    SETBIT NCUOPS,ABFOLD         SET LINE FOLDING FLAG
          TPMOVE ARCRLF,ARWCRLF        SET CR/LF SEQUENCE 
          TSTMXF AFDISPL,ATTX22        SKIP IF WE HAVE A DISPLAY
          TPMOVE ARZERO,ARNRLFS        CLEAR NR PRE LINE FEEDS
          TPINCR ARNRLFS,1   -         PR/PT, STORE A LF FOLLOWED BY CR 
          STATE  ATLFS       -         (DONE BY LEAVING FOLD FLAG SET)
          JUMP   ATSTOR,RTN  -         STORE LAST CHAR FOR LINE 
ATTX22    TPMOVE ARCRIDL,ARIDLES       GET NR IDLES AFTER CR
          TPADDR ARLFIDL,ARIDLES       ADD NR IDLES AFTER LF
          INTCC  CCPGWTH     -         RESET PAGEWIDTH COUNTER
          STATE  ATCIDL      -         STORE LI PLUS CI IDLES 
          JUMP   ATSTOR,RTN  -         STORE LAST CHAR FOR LINE 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T C R       -   STORE CR                                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATCR 
          SPC    2
          TPRSTL ARWCRLF     -         GET PROPER CR CHAR 
          CHARLS ACBLANK,ATCR02 
          INTCC CCPGWTH      -         SET PAGEWIDTH COUNTER
          ADDC   ACESC       -         STORE ESCAPE PRIOR TO CR 
          TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
ATCR02    CHARLS ACNUL+1,ATCR04        0 = NO CR CHAR FOR THIS TC 
          RSTBIT NCUOPS,ABATEND        CURSOR NOT AT FAR LEFT ANYMORE 
          INTCC CCPGWTH      -         SET PAGEWIDTH COUNTER
          TPMOVE ARCRIDL,ARIDLES       GET NR IDLES TO STORE
          STATE  ATCIDL 
          JUMP   ATSTOR,RTN  -         STORE CARRIAGE RETURN CHAR 
ATCR04    TPMOVE ARZERO,ARIDLES        NO CR, DONT STORE NULS 
          TPCMPR ARZERO,ARNRLFS        IF ANY LINE FEEDS
          SKIP   ATCR10      -         CONTINUE ELSE
          NOPR   0           -         BACKSPACE TO START OF LINE 
ATCR06    BLCNE  CCPGWTH,ATCR08        TEST FOR START OF LINE 
          SKIP   ATCR10      -         GO TO COMMON EXIT
ATCR08    RCHAR  ACBS        -         INSERT BKSP
          TPASY1 0           -         MAINTAIN TANSMISSION BLOCK SIZE
          ICC    CCPGWTH     -         BUMP LINE COUNT
          SKIPB  ATCR06      -         DO IT AGAIN
ATCR10    INTCC  CCPGWTH     -         SET PAGEWIDTH COUNTER
          JUMP   ATCIDL      -         SEE WHAT TO DO NEXT
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T L F S     -   STORE LF(S)                               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATLFS
          SPC    2
          TSTMXF AFDRLF,ATLF02         SKIP IF FIRST LF MUST BE DROPPED 
          SKIP   ATLF04 
ATLF02    RSTBIT NCUOPS,ABDRLF         RESET DROP LF BIT
          TPDECR ARNRLFS,1   -         DECREMENT NR LFS BY ONE
ATLF04    TPCMPR ARZERO,ARNRLFS 
          SKIP   ATLF10      -         0 < NRLFS, MORE TO GO
          NOPR   0           -         0 = ARNRLFS, DONE
*                            -         0 > ARNRLFS, DONE
* 
* 
* * * *   DONE WITH STORING CR-LF(S) / LF-CR SEQUENCE, RETURN TO
*         NEW LINE PROCESS AFTER POST-PRINT COMPLETION, FOR ALL OTHER 
*         CASES RETURN TO TEXT
* 
* 
          STATE  ATTEXT      -         PRESET MOST LIKELY NEXT STATE
          TSTMSK NCUOPS,AMEMBCL,ATLF06 DONE WITH EMBEDDED LF
          TSTMSK NCUOPS,AMFOLD,ATLF08  DONE WITH LINE FOLDING 
          TSTMSK NCUOPS,AMPOST,ATLF0A  DONE WITH POST-PRINT CONTROL 
*         NOPR   EXIT        -         DONE WITH PRE-PRINT CONTROL
ATLF06    RSTBIT NCUOPS,ABEMBCL,EXIT   RESET EMBEDDED CR/LF BIT 
ATLF08    RSTBIT NCUOPS,ABFOLD         RESET FOLD FLAG
          SETBIT NCUOPS,ABIGNORE       IGNORE AFDRLF FOR CLEAR HOME 
          TSTMXF AFDISPL,ATLF0B        SKIP IF DISPLAY
          SETBIT NCUOPS,ABDRLF,EXIT    DROP IMMMEDIATELY FOLLOWING LF 
ATLF0A    STATE  ATNLIN,EXIT -         START NEW LINE AFTER POST-FE 
ATLF0B    TSTMXF AFPTAPE,ATLF0D        SKIP IF SPECIAL DISPLAY
          SETBIT NCUOPS,ABDRLF,EXIT    DROP IMMMEDIATELY FOLLOWING LF 
ATLF0D    SETBIT NCUOPS,ABATEND,EXIT   CURSOR AT FAR RIGHT
* 
* 
* * * *   INSERT NEXT LINE FEED, INSERT IDLE NULLS IF NEEDED
* 
* 
ATLF10    TPMOVE ARLFIDL,ARIDLES       GET NR LF IDLES
          TPRSTL ARWCRLF     -         GET CR CHARACTER 
          CHARNE ACNUL,ATLF12          SKIP IF CR GIVEN 
          TPADDR ARCRIDL,ARIDLES       NO CR, ADD CR IDLES TO LF IDLES
ATLF12    TPDECR ARNRLFS,1
          TPRSTR ARWCRLF     -         GET PROPER LF CHAR 
          CHARLS ACBLANK,ATLF14 
          ADDC   ACESC       -         STORE ESCAPE PRIOR TO LF 
          TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
ATLF14    STATE  ATLIDL 
          JUMP   ATSTOR,RTN  -         STORE LINE FEED CHARACTER
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T C I D L   -   INSERT CARRIAGE RETURN IDLES              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATCIDL 
          SPC    2
          TPCMPR ARZERO,ARIDLES 
          SKIP   ATCI30      -         0 < ARIDLES, MORE TO GO
          NOPR   0           -         0 = ARIDLES, DONE
*                            -         0 > ARIDLES, MORE THAN DONE
* 
* * * *   DONE STORING IDLE NULLS, DETERMINE WHAT TO DO NEXT
* 
* 
          TSTMSK NCUOPS,AMEMBCL,ATCI10 SKIP IF EMBEDDED CR OR LF
          SKIP   ATCI14      -         NO EMBEDDED CR OR LF 
* 
* 
* * * *   DONE WITH EMBEDDED CR OR LF SEQUENCE
* 
* 
ATCI10    STATLS ATLIDL,ATCI12         SKIP IF EMBEDDED CR
          JUMP   ATPGWT,RTN  -         EMBEDDED LF, TEST PAGE WAIT
ATCI12    RSTBIT NCUOPS,ABEMBCL        RESET EMBEDDED CR SEEN 
          STATE  ATTEXT,EXIT -         CONTINUE AFTER STORING EMB. CR 
* 
ATCI14    TSTMSK NCUOPS,AMFOLD,ATCI20  SKIP IF SEND LF/CR (AFTER FOLD)
* 
* 
* * * *   DONE WITH INSERTING CR OR CR/LF(S) FOR PRE/POST-PRINT FE
* 
* 
          STATLS ATLIDL,ATCI18         SKIP IF STORED CR IDLES
          JUMP   ATPGWT,RTN  -         GO DO PAGEWAIT TEST
ATCI18    JUMP   ATLFS       -         DONE STORING CR, STORE LF(S) 
* 
* 
* * * *   DONE WITH INSERTING LF OR LF/CR FOR LINE FOLDING
* 
* 
ATCI20    STATLS ATLIDL,ATCI22         FOLDING, SKIP IF STORED LF/CR
          JUMP   ATCR        -         FOLDING, STORE CR AFTER LF 
ATCI22    TSTMXF AFDISPL,ATCI23        SKIP IF DISPLAY
          JUMP   ATPGWT,RTN  -         GO TEST FOR PAGE WAIT
ATCI23    TSTMXF AFPTAPE,ATCI24        SKIP IF SPECIAL DISPLAY
          JUMP   ATPGWT,RTN  -         GO TEST FOR PAGE WAIT
ATCI24    JUMP   ATVTPG,RTN  -         GO TEST VT100 PAGE WAIT
* 
* 
* * * *   MORE IDLE NULLS REQUIRED, STORE NEXT ONE, MAINTAIN XMIT BLKSZ 
* 
* 
ATCI30    TPDECR ARIDLES,1
          RCHAR  ACNUL
          JUMP   ATSTOR,RTN  -         STORE NULL CHARACTER 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T L I D L   -   INSERT LINE FEED IDLES                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATLIDL,ATCIDL
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T P G W T   -   TEST FOR AND PERFORM PAGE WAIT            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATPGWT 
          SPC    2
          TSTMXF AFPGWA,ATPG02         SKIP IF TIME TO EXIT TO PASCAL 
          TPINCR ARLNCNT,1   -         MAINTAIN LINE COUNTER
          TPCMPR ARLNCNT,ARPGLEN       COMPARE LINE CNTR AND PAGE LENGTH
          JUMP   ATLFS,RTN   -         LNCNT < PGLEN, STORE NEXT LF 
          SKIP   ATPG06      -         LNCNT = PGLEN, PAGE FULL 
          TPDECR ARLNCNT,1   -         LNCNT > PGLEN (IMPLIES PL=0) 
          JUMP   ATLFS,RTN   -         STORE NEXT LINE FEED 
ATPG02    SKIP   ATPG12      -         EXIT TO PASCAL 
* 
* 
* * * *   PAGE FULL, TEST IF WE HAVE TO GO INTO PAGE WAIT 
* 
* 
ATPG06    STATE  ATLFS       -         PRESET MOST LIKELY NEXT STATE
          TPMOVE ARZERO,ARLNCNT 
          TPINCR ARLNCNT,1   -         RESET LINE COUNTER 
          TSTMXF AFDISPL,ATPG07        SKIP IF DISPLAY
          TSTMXF AFPTAPE,ATPG08        SKIP IF PAPERTAPE OUTPUT (NO PW) 
ATPG07    TSTMXF AFPGWT,ATPG10         SKIP IF PAGE WAITING ENABLED 
          TSTMXF AFDISPL,ATPG08        SKIP IF DISPLAY OUTPUT 
          TPCMPR ARZERO,ARPGLEN        TEST FOR ZERO PAGE LENGTH
          SKIP   ATPG20      -         PGLEN > 0, PAGEING 
ATPG08    JUMP   CURRENT     -         PGLEN = 0, NO PAGEING, NEXT LF 
*                                      PGLEN < 0, N/A (PL=0,8..255) 
* 
* 
* * * *   PAGE FULL AND PAGE WAIT ENABLED 
* 
* 
ATPG10    SETBIT NCUOPS,ABPGWAIT       MARK PAGE WAIT FOR PASCAL TIP
          TSTMSK NCUOPS,AMEMBCL+AMFOLD,ATPG12 
          STATE  ATNLIN      -         PRESET FOR NEW LINE (AFTER PGWT) 
          TSTMSK NCUOPS,AMPOST,ATPG14 
ATPG12    RSTMSK NCUOPS,AMEMBCL+AMFOLD
          STATE  ATTEXT      -         RETURN AT STATE TEXT 
ATPG14    JUMP   ATPEXT,RTN  -         EXIT WITH COMPLETE XMIT BUFFER 
* 
* 
* * * *   PAGE FULL FOR PRINTER WHILE PG=N, PL"0, INSERT TOF OR 6 LFS 
* 
* 
ATPG20    TPMOVE ARZERO,ARNRLFS        RESET LINE FEED COUNTER
          TPRSTL ARHCLR      -         GET HOME CONTROL CHARACTER 
          CHARLS ACNUL+1,ATPG21        SKIP IF NONE AVAILABLE 
          CHARLS ACBLANK,ATPG22 
          SKIP   ATPG24 
ATPG21    SKIP   ATPG28                EXTENDED SKIP
ATPG22    CHARNE ACESC,ATPG26          TEST FOR 4014 CHANGE TO FF 
          RCHAR  ACFF        -         TO BE PRECEDED BY ESC
ATPG24    ADDC   ACESC       -         STORE ESC IF FF OR GE BLANK
          TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
ATPG25    CHARNE ACCSX364,ATPG26       SKIP IF TC " N0X364
          ADDC   ACLB        -         INSERT LEFT BRACKET
          RCHAR  ACH         -         INSERT H (TOF) 
          TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
ATPG26    JUMP   ATSTOR,RTN 
* 
ATPG28    TPINCR ARNRLFS,6   -         NO HOME CHARACTER, INSERT 6 LFS
          TPDECR ARLNCNT,6   -         ALLOW FOR LFS ON NEXT PAGE 
          JUMP   CURRENT     -         GO STORE 6 LINE FEEDS
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T V T P G   -   TEST FOR AND PERFORM PAGE WAIT FOR VTDISP * 
*                           AFTER LINE FOLD                           * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATVTPG 
          SPC    2
          TPINCR ARLNCNT,1   -         MAINTAIN LINE COUNTER
          TPMARK LEVEL2,SRC  -         MARK LINE FOLD POSITION
          TPCMPR ARLNCNT,ARPGLEN       COMPARE LINE CNTR AND PAGE LENGTH
          STATE  ATVCHL,EXIT -         LNCNT < PGLEN, CHECK LINE COUNT
          SKIP   ATVT02      -         LNCNT = PGLEN, PAGE FULL SHIP CR LF
          TPDECR ARLNCNT,1   -         LNCNT > PGLEN (IMPLIES PL=0) 
          JUMP   ATLFS,RTN   -         CLEARS LINE FOLD FLAG
* 
* 
* * * *   PAGE FULL, TEST IF WE HAVE TO GO INTO PAGE WAIT 
* 
* 
ATVT02    TPMOVE ARZERO,ARLNCNT 
          TPINCR ARLNCNT,1   -         RESET LINE COUNTER 
          TSTMXF AFPGWT,ATVT04         SKIP IF PAGE WAITING ENABLED 
          STATE  ATVCHL,EXIT -         NO PAGING, CHECK LINE COUNT
* 
* 
* * * *   PAGE FULL AND PAGE WAIT ENABLED 
* 
* 
ATVT04    SETBIT NCUOPS,ABPGWAIT       MARK PAGE WAIT FOR PASCAL TIP
          TSTMSK NCUOPS,AMFOLD,ATVT06  SKIP IF FOLDING
          JUMP   ATPEXT,RTN  -         EXIT WITH COMPLETE XMIT BUFFER 
ATVT06    RSTBIT NCUOPS,ABFOLD         CLEAR FOLD FLAG
          TPDECR ARLNCNT,1   -         RESET LINE COUNTER 
          TPMOVE ARZERO,ARNRLFS        AND WORKING NUMBER OF
          TPINCR ARNRLFS,1   -         LINE FEEDS 
          JUMP   ATCR,RTN    -         STORE CR/LF
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T V C H L   -   TEST FOR LINE COUNT AT FOLD               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATVCHL 
          SPC    2
          CHARLS ACUS+1,ATVC01         SKIP IF NEXT CHAR IS CNTL CHAR 
          SKIP   ATVC02      -         ELSE JUMP TO RESTORE 
ATVC01    TPDECR ARLNCNT,1   -         CORRECT THE LINE COUNT 
ATVC02    TPBKUP LEVEL2,SRC  -         RESTORE THE SOURCE BUFFER AND
          JUMP   ATLFS       -         RESET STATE INDEX AND EXIT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T C L R H   -   CLEAR SCREEN, HOME CURSOR                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATCLRH 
          SPC    2
          TPBKUP LEVEL1,SRC  -         BACKUP TO UNIT SEPARATOR 
          INTCC  CCPGWTH
          RSTBIT NCUOPS,ABATEND        CURSOR NOT AT FAR LEFT ANYMORE 
          TSTMXF AFIGNORE,ATCL01       SKIP IF AFDRLF INACCURATE
          TSTMXF AFDRLF,ATCL02         SKIP IF JUST RECEIVED INPUT
ATCL01    TSTMXF AFPGWT,ATCL04         SKIP IF PAGING ENABLED 
ATCL02    STATE  ATPRCH,EXIT -         NO OVER.. REQUIRED 
* 
* 
* * * *   INSERT OVER.. BEFORE GOING INTO PAGE WAIT 
* 
* 
ATCL04    RCHAR  ACO         -         GET O
          STATE  ATOV1
          JUMP   ATSTOR,RTN  -         STORE O (SHIFT UPPER/LOWER CASE) 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T O V 1     -   CONTINUE PROCESSING OVER..                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATOV1
          SPC    2
          RCHAR  ACV
          XLATE  $7F         -         TRANSLATE
          STORE              -         AND STORE V
          RCHAR  ACE
          XLATE  $7F         -         TRANSLATE
          STORE              -         AND STORE E
          RCHAR  ACR
          XLATE  $7F         -         TRANSLATE
          STORE              -         AND STORE R
          RCHAR  ACDOT       -         GET DOT
          STATE  ATOV2
          JUMP   ATSTOR,RTN  -         STORE . (SHIFT UPPER/LOWER CASE) 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T O V 2     -   CONTINUE PROCESSING OVER..                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATOV2
          SPC    2
          STORE              -         STORE SECOND (XLATED) DOT
          SETBIT NCUOPS,ABPGWAIT       MARK PAGE WAIT FOR PASCAL TIP
          STATE  ATPRCH 
          JUMP   ATPEXT,RTN  -         EXIT WITH COMPLETE XMIT BUFFER 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T P R C H   -   PAST OVER.., STORE CONTROL SEQUENCE       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATPRCH 
          SPC    2
          TPRSTR ARCLRH      -         RESTORE TERMINALS CLEAR/HOME CHR 
          TSTMXF AFDISPL,ATPR01 
          TSTMXF AFPTAPE,ATPR02        SKIP IF PAPERTAPE OUTPUT DEVICE
ATPR01    CHARNE ACNUL,ATPR04          PR/DI, SKIP IF HOME/CLR CHAR 
ATPR02    SKIP   ATPR10      -         GO INSERT LFS
* 
* 
* * * *   DISPLAY / PRINTER WITH GIVEN HOME / CLEAR CHARACTER 
* 
* 
ATPR04    CHARLS ACBLANK,ATPR06 
          SKIP   ATPR08 
ATPR06    CHARNE ACCS75X,ATPR07 
          ADDC   ACRS75X     -         INSERT RESET BEFORE CLEAR (75X)
ATPR07    CHARNE ACESC,ATPR0A          TEST FOR 4014 CHANGE TO FF 
          RCHAR  ACFF        -         TO BE PRECEDED BY ESC
          ADDC   ACESC       -         STORE ESCAPE 
          TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
          SKIP   ATPR0D 
ATPR08    ADDC   ACESC       -         STORE ESCAPE 
          TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
ATPR0A    CHARNE ACCSX364,ATPR0C       SKIPF IF TC " N0X364 
          ADDC   ACLB        -         INSERT LEFT BRACKET
          ADDC   ACH         -         INSERT H 
          ADDC   ACESC       -         INSERT ESCAPE
          ADDC   ACLB        -         INSERT LEFT BRACKET
          TPDECR ARXMSZ,4    -         MAINTAIN XMIT BLOCK SIZE 
          RCHAR  ACJ         -         REPLACE J
ATPR0C    CHARNE ACFF,ATPR0D -         IF NOT <FF>
          ADDC   ACCR        -         PRECEDE BY <CR>
          TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
ATPR0D    STATE  ATCDLY      -         DELAY AFTER CLEAR SCREEN 
          JUMP   ATSTOR,RTN  -         STORE CLEAR/HOME FOR NON N0X364
* 
* 
* * * *   NO GIVEN HOME / CLEAR CHAR, OR PAPERTAPE, CALCULATE NR LFS
* 
* 
ATPR10    TSTMXF AFDRLF,ATPR14         NO LFS IF JUST SEEN INPUT
          TPMOVE ARPGLEN,ARNRLFS
          TPCMPR ARZERO,ARPGLEN        COMPARE FOR NON-ZERO PGLENGTH
          SKIP   ATPR12      -         PAGE LENGTH NON ZERO 
          TPINCR ARNRLFS,6   -         PAGE LENGTH IS ZERO, 6 LFS 
          SKIP   ATPR14 
ATPR12    TPSUBR ARLNCNT,ARNRLFS       GET NR LFS TO FILL PAGE
ATPR14    RSTBIT NCUOPS,ABDRLF         RESET DROP LF FLAG 
          JUMP   ATCR        -         GO STORE CR AND N LFS
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T C D L Y   -   DELAY AFTER CLEAR-SCREEN ON 4014          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATCDLY 
          SPC    2
          SETFLG BFADELAY,FRST         SET DELAY FLAG IN FIRST BUFFER 
          STATE  ATTEXT      -         START TEXT AFTER DELAY 
          JUMP   ATPEXT,RTN  -         EXIT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T S T O R   -   TRANSLATE/STORE SPECIAL CHAR   (ASCII)    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATSTOR 
          SPC    2
          XLATE  $7F         _         TRANSLATE CHARACTER
ATSTR2    TPASY2 0           -         PERFORM FOLLOWING LOGIC
* 
*         STORE              -         STORE CHARACTER
*         TPDECR ARXMSZ,1    -         MAINTAIN XMIT BLOCK SIZE 
*         TPCMPR ARZERO,ARXMSZ
*         SKIP   #1          -         0 < XMSZ, NOT FULL 
*         SKIP   #2          -         0 = XMSZ, FULL  SKIP TO NEXT 
*         SKIP   #2          -         0 > XMSZ, FULL, STORE CHAR 
* #1      NOPR   0           -         PERFORM GIVEN ACTION (0) 
* #2                         -         READ NEXT INSTRUCTION
          JUMP   CURRENT     -         CONTINUE TP
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T S T X T   -   TRANSLATE/STORE TEXT CHARACTER (ASCII)    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATSTXT 
          SPC    2
          TPASY1 EXIT        -         XLT, STORE, EXIT IF XMIT NOT FULL
          JUMP   ATPEXT,RTN  -         XMIT BLOCK FULL, EXIT TP 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A 2 S T O R   -   TRANSLATE/STORE CURRENT CHAR (2741)       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR A2STOR 
          SPC    2
          XLATE  $7F         -         TRANSLATE CHARACTER
          CHARLS $C0,A2ST12  -         SKIP IF VALID 2741 CHARACTER 
*         STATLS ATTEXT+1,A2ST10
*         JUMP   CURRENT     -         BAD TIP SUPPLIED CHARACTER 
A2ST10    NOPR   EXIT        -         IGNORE INVALID 2741 CHARACTERS 
A2ST12    CHARLS $80,A2ST16  -         SKIP IF LOWER CASE OR BOTH 
* 
* 
* * * *   HAVE AN UPPER CASE CHARACTER
* 
* 
          TSTMSK NCUOPS,AMUPPER,A2ST14 SKIP IF ALREADY IN UPPER CASE
          ADDC   C2UPPER
          SETBIT NCUOPS,ABUPPER        SWITCH TO UPPER CASE MODE
          TPDECR ARXMSZ,1 
A2ST14    SKIP   A2ST20      -         GO STORE CHARACTER 
* 
A2ST16    CHARLS $40,A2ST20  -         SKIP IF BOTH 
* 
* 
* * * *   HAVE A LOWER CASE CHARACTER 
* 
* 
          TSTMSK NCUOPS,AMUPPER,A2ST18 SKIP IF WE ARE IN UPPER CASE 
          SKIP   A2ST20      -         GO STORE CHARACTER 
A2ST18    ADDC   C2LOWER
          RSTBIT NCUOPS,ABUPPER        SWITCH TO LOWER CASE 
          TPDECR ARXMSZ,1 
* 
* 
* * * *   HAVE A CHARACTER THAT CAN BE STORED IN BOTH MODES 
* 
* 
A2ST20    STATLS A2TEXT+1,A2ST22
          SKIP   ATSTR2      -         STORE SPECIAL CHARACTER
A2ST22    TPASY2 EXIT        -         STORE, EXIT IF XMIT NOT FULL 
          JUMP   ATPEXT,RTN  -         XMIT BLOCK FULL, EXIT TP 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         A T P E X T   -   EXIT WITH COMPLETE XMIT BUFFER            * 
*                           (BUFFER FULL, PAGE WAIT OR END SOURCE)    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR ATPEXT 
          SPC    2
          TSTMSK NCUOPS,AMUPPER,ATPE02 SKIP IF IN UPPER CASE MODE (2741)
          SKIP   ATPE04 
ATPE02    ADDC   C2LOWER     -         SWITCH TO LOWER CASE 
          RSTBIT NCUOPS,ABUPPER        RESET UPPER CASE BIT 
ATPE04    TIBSWC             -         FORCE LCD INSERTION
          TPEXIT             -         RETURN TO PASCAL TIP 
          EJT 
          END 
