*COMDECK PADOUTP
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X25 PAD TIP OUTPUT TEXT PROCESSING STATE PROGRAMS           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          NAM    PADOUTP
          NLS 
*CALL MUXMACROS 
          LST 
*CALL STPMACROS 
NEWPKT    MAC 
          SETFLG BFENDPKT,CURN         SET END OF PACKET FLAG 
          ALNBUF DATA        -         ALLOCATE NEW PACKET BUFFER 
          ADDC   0           -         ADD ZERO FOR ALLIGNMENT
          INTCC  CCPKTSZ     -         INITIALIZE PACKET COUNT
          EMC 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         P A S C A L   I N T E R F A C E S                           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
*         **** INPUTS: **** 
* 
*                NCBLKL      PACKET-SIZE + 1; 
*                NCCNTL      PAGEWIDTH; 
*                NCTPF1[3]   CURRENT LINE CNTR (1-PL) 
*                NCTPF1[4]   OP=PR: PL; OP=DI: PL-1;
*                NCTPF1[5]   CR IDLES 
*                NCTPF1[6]   LF IDLES 
*                NCTPF1[7]   EMBEDDED CR/LF CHARS 
*                NCTPF1[8]   CURPOS CR/LF CHARS 
*                NCTPF1[9]   HOME/CLEAR SCREEN CHARS
*                NCTPF1[$A]  PARITY TYPE
*                NCUOP1      IGNORE XFDRLF AT CLEAR HOME PROCCESS 
*                NCUOP2      NO FE PRESENT
*                NCUOP3      PL"0 AND PAGEWAIT
*                NCUOP4      DROP LEADING LF
*                NCUOP5      CURSOR LEFT AT FAR RIGHT AFTER US
*                NCUOP6      FALSE
*                NCUOP7      SPECIAL DISPLAY FOLDS LATE BY ONE CHAR 
*                NCUOP8      DISPLAY OUTPUT DEVICE
*                NCSTAI      1: IVT; 2: XPT 
*                BFFCD       FIRST FCD SET TO DBC 
* 
*         **** OUTPUTS: ****
* 
*                NCUOP6      PAGE WAIT ACTIVE 
*                NCTPF1[3]   UPDATED LINE CNTR
*                NCCNT1      CURRENT CHARACTER POSITION 
*                NCUOP4      DROP NEXT LEADING LF (AFTER FOLDING) 
*                NCUOP5      CURSOR LEFT AT FAR RIGHT AFTER US
*                NCSTAI      NEXT STATE FOR RE-ENTRY
*                BFEOR       CLEAR SCREEN DELAY NEEDED (1ST BUFFER) 
* 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         OUTPUT BUFFER FLAG AND OTHER SYSTEM CONSTANTS               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          EQU    DATA($0C)   -         START OF DATA
          EQU    BFEOR($08)  -         END OF RECORD FLAG 
          EQU    BFENDPKT($01)         END OF PACKET FLAG 
          EQU    BFADELAY(BFEOR)       DELAY AFTER TRANSMISSION 
          EQU    XCZERO($0) 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         MUX REGISTER FIELD EQUATIONS                                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          EQU    XRCURC(0)   -         CURRENT CHARACTER REGISTER 
          EQU    XRLNCNT(3)  -         CURRENT LINE COUNTER 
          EQU    XRPGLEN(4)  -         PAGE LENGTH
          EQU    XRCRIDL(5)  -         CARRIAGE RETURN IDLE FILL
          EQU    XRLFIDL(6)  -         LINE FEED IDLE FILL
          EQU    XRECRLF(7)  -         EMBEDDED CR/LF 
          EQU    XRCRLF(8)   -         PRE/POST CONTROL CR/LF(S)
          EQU    XRHCLR(9)   -         HOME/CLEAR HOME CONTROL
          EQU    XRPARTY(10) -         PARITY TYPE
          EQU    XRNRLFS(11) -         NUMBER OF LINE FEEDS TO SEND 
          EQU    XRNRPLF(12) -         NUMBER POST-PRINT LFS
          EQU    XRWCRLF(13) -         WORK REGISTER WITH CR/LF 
          EQU    XRIDLES(14) -         CR/LF IDLE COUNTER 
          EQU    XRCLRH(14)  -         CLEAR/HOME CURSOR CONTROL CHAR 
          EQU    XRZERO(15)  -         ZERO VALUE REGISTER
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         MUX LCB FIELD EQUATIONS                                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          EQU    NCUOPS(7)   -         USER OPTION FLAGS
          EQU    NCCRCS(9)   -         CRC WORD (FOR SCRATCH PURPOSES)
          EQU    NCBLCNT(14) -         DESTINATION BUFFER COUNTER 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         TEXT PROCESSING USER FLAG CONSTANTS                         * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          EQU    XFIGNORE(NCUOP1)      IGNORE XFDRLF AT CLEAR HOME PROC 
          EQU    XFNOFES(NCUOP2)       FORMAT EFFECTORS NOT PRESENT 
          EQU    XFPGWT(NCUOP3)        PAGE WAIT ENABLED
          EQU    XFDRLF(NCUOP4)        DROP LF FROM FIRST PRE-PRINT FE
          EQU    XFATEND(NCUOP5)       CURSOR LEFT AT FAR RIGHT AFTER US
          EQU    XFPGWAIT(NCUOP6)      PAGE WAIT CONDITION (RETURNED) 
          EQU    XFVTDISPL(NCUOP7)     SPECIAL DISPLAY NEEDS LF TO FOLD 
          EQU    XFDISPL(NCUOP8)       DISPLAY OUTPUT DEVICE
          EQU    XFNOPRT(XFVTDISPL+XFDISPL)      NOT A PRINTER DEVICE 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         DEFINITION OF BITS AND MASKS                                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
* * * *   FLAGS LOCALLY USED BY THE TEXTPR. STATES (USES NCUOPS FIELD)
*         XB.. IS FOR SET/RSTBIT,  XM.. IS FOR SET/RST/TSTMSK 
*         XF.. IS FOR SET/RSTMXF
* 
          EQU    XBIGNORE(NBUOP1)      IGNORE AFDRLF AT CLR HOME (BIT)
* 
          EQU    XBDRLF(NBUOP4)        DROP PRE-PRINT LF         (BIT)
          EQU    XMDRLF(NMUOP4)                                  (MASK) 
* 
          EQU    XBATEND(NBUOP5)       CURSOR AT FAR LEFT        (BIT)
          EQU    XMATEND(NMUOP5)                                 (MASK) 
* 
          EQU    XBPGWAIT(NBUOP6)      PAGE WAIT                 (BIT)
          EQU    XMPGWAIT(NMUOP6)                                (MASK) 
* 
          EQU    XBFOLD(2)   -         LINE FOLD                 (BIT)
          EQU    XMFOLD(4)   -                                   (MASK) 
* 
          EQU    XBPOST(1)   -         POST FE ACTION REQUIRED   (BIT)
          EQU    XMPOST(2)   -                                   (MASK) 
* 
          EQU    XBEMBCL(0)  -         EMBEDDED CR OR LF         (BIT)
          EQU    XMEMBCL(1)  -                                   (MASK) 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         DEFINITION OF CHARACTER COUNTERS                            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          EQU    CCPGWTH(1)  -         PAGE WIDTH COUNTER 
          EQU    CCPKTSZ(2)  -         PACKET SIZE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         ASCII CHARACTER CONSTANTS                                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          EQU    ACNUL($00)  -         NULL 
          EQU    ACBS($08)   -         BACK SPACE 
          EQU    ACLF($0A)   -         LINE FEED
          EQU    ACFF($0C)   -         FORM FEED
          EQU    ACCR($0D)   -         CARRIAGE CONTROL 
          EQU    ACESC($1B)  -         ESCAPE 
          EQU    ACUS($1F)   -         UNIT SEPARATOR 
          EQU    ACBLANK($20)          BLANK
          EQU    ACO($4F)    -         O
          EQU    ACV($56)    -         V
          EQU    ACE($45)    -         E
          EQU    ACR($52)    -         R
          EQU    ACDOT($2E)  -         .
          EQU    ACCS75X($18)          75X CLEAR SCREEN 
          EQU    ACRS75X($19)          75X RESET SCREEN 
          EQU    ACCSX364($5B)         CLEAR SCREEN FOR X3.64 
          EQU    ACLB($5B)   -         LEFT BRACKET 
          EQU    ACH($48)    -         H
          EQU    ACJ($4A)    -         J
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         IVT FORMAT EFFECTORS                                        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          EQU    FPRSNGL($20)          SINGLE SPACE PRE-PRINT 
          EQU    FPRDBLE($30)          DOUBLE SPACE PRE-PRINT 
          EQU    FPRTRPL($2D)          TRIPLE SPACE PRE-PRINT 
          EQU    FPRSCLN($2B)          POSITION AT START LINE PRE-PRINT 
          EQU    FPRHOME($2A)          HOME CURSOR PRE-PRINT
          EQU    FPRHCLR($31)          HOME CURSOR, CLEAR PRE-PRINT 
          EQU    FPRNOOP($2C)          NO ACTION
          EQU    FPOSNGL($2E)          SINGLE SPACE POST-PRINT
          EQU    FPOSCLN($2F)          POSITION AT START LINE POST-PRINT
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         TEXT PROCESSOR STATE PROGRAM TABLE                          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          STATPN X25OTP 
          SPC    2
          STATPT X25OTP,XTEOS,XTPKTC   END OF SOURCE
          STATPT X25OTP,XTFRST         START OF IVT TEXT
          STATPT X25OTP,XTFXPT         START OF XPT TEXT
          STATPT X25OTP,XTAXPT         START OF 8-BITS XPT TEXT 
          STATPT X25OTP,XTXPT          PROCESS XPT DATA 
          STATPT X25OTP,XTPXPT         PROCESS 8-BITS XPT DATA
          STATPT X25OTP,XTNNLN         START NEW PACKET, NEW LINE 
          STATPT X25OTP,XTNLIN         START OF NEW NON XPT LINE
          STATPT X25OTP,XTNTXT         START NEW PACKET, PROCESS TEXT 
          STATPT X25OTP,XTTEXT         PROCESS REST OF NON XPT TEXT 
          STATPT X25OTP,XTCR -         STORE CR 
          STATPT X25OTP,XTLFS          STORE LF(S)
          STATPT X25OTP,XTCIDL         STORE CR IDLES 
          STATPT X25OTP,XTLIDL         STORE LF IDLES 
          STATPT X25OTP,XTESC          STORE ESCAPE 
          STATPT X25OTP,XTPGWT         TEST FOR PAGE WAIT 
          STATPT X25OTP,XTCLRH         PROCESS CLEAR/HOME CURSOR CONTROL
          STATPT X25OTP,XTOV1          CONTINUE PROCESS OVER.. (V)
          STATPT X25OTP,XTOV2          CONTINUE PROCESS OVER.. (E)
          STATPT X25OTP,XTOV3          CONTINUE PROCESS OVER.. (R)
          STATPT X25OTP,XTOV4          CONTINUE PROCESS OVER.. (.)
          STATPT X25OTP,XTOV5          CONTINUE PROCESS OVER.. (.)
          STATPT X25OTP,XTOV6          CONTINUE PROCESS OVER.. GO IN PW 
          STATPT X25OTP,XTPWCH         START NEW PACKET, STORE CL/HOME
          STATPT X25OTP,XTSTCH         STORE CLEAR/HOME CHAR
          STATPT X25OTP,XTSTOR         XLATE/STORE SPECIAL CHARACTER
          STATPT X25OTP,XTPKTC         PACKET COMPLETE, EXIT TP 
          STATPT X25OTP,XTCDLY         DELAY AFTER 4014 CLEAR-SCREEN
          STATPT X25OTP,XTSRJ          STORE J FOR TC = N0X364
          STATPT X25OTP,XTSTES         STORE ESC [ FOR TC = N0X364
          STATPT X25OTP,XTSRH          STORE H FOR TC = N0X364
          STATPT X25OTP,XTSHO          STORE TOF FOR TC = N0X364
          STATPT X25OTP,XTVTPG         VT100 TYPE PAGE WAIT 
          STATPT X25OTP,XTVCHL         VT100 LINE FOLD CHECK
          STATPT X25OTP,XTSCR          STORE CARRIAGE RETURN
          STATPT X25OTP,XTSFF          STORE FORM FEED
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T F R S T   -   START OF TEXT PROCESSING (IVT)            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTFRST 
          SPC    2
          STATE  XTNLIN      -         START IVT OUTPUT 
          TPMARK LEVEL1,SRC  -         MARK START OF TEXT (IF NO FES) 
* 
XTFR02    INTCC  CCPKTSZ     -         INITIALIZE PACKET SIZE 
          TPSTR  XRZERO,NCUOPS         CLEAR NCUOP9-NCUOPF BITS 
          TPSTL  XRZERO,NCBLCNT        CLEAR BUFFER COUNT 
          ADDC   0,EXIT      -         ADD ZERO, SKIP DBC 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T F X P T   -   START OF TEXT PROCESSING (XPT)            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTFXPT 
          SPC    2
          STATE  XTXPT       -         START XPT OUTPUT 
          SKIP   XTFR02 
          EJT 
*** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
**                                                                    **
**        XTAXPT    -   START OF 8-BITS TEXT PROCESSING (XPTZ)        **
**                                                                    **
*** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
* 
* 
          STATPR XTAXPT 
* 
* 
          STATE XTPXPT       -         START 8-BITS XPT OUTPUT
          SKIP XTFR02        -         GO INITIALIZE PACKET SIZE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T X P T     -   PROCESS TRANSPARENT TEXT                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTXPT
          SPC    2
          XLATE  $7F,XCZERO  -         FIRST TRANSLATE CHARACTER
          X25PAR 0           -         SET PROPER PARITY
          SPC    2
*  THE FOLLOWING STATE INSTRUCTION IS A COMMENT...
*    IT WILL FALL THROUGH TO THE NEXT STATE INSTR.
* 
*         DCC CCPKTSZ,XTXPT2,STOREX    STORE 8-BITS XPT TEXT
  
  
* 
* 
*** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
**                                                                    **
**        XTPXPT    -   PROCESS 8-BITS TRASPARENT TEXT                **
**                                                                    **
*** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
* 
          STATPR XTPXPT 
* 
* 
          DCC CCPKTSZ,XTXPT2,STOREX    STORE 8-BITS XPT TEXT
* 
* 
XTXPT2    NEWPKT             -         START NEW PACKET 
          DCC    CCPKTSZ,*,STOREX      STORE XPT TEXT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T N N L N   -   START NEW PACKET, THEN NEW LINE           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTNNLN 
          SPC    2
          INTCC  CCPKTSZ     -         INITIALIZE PACKET SIZE 
          ADDC   0           -         ADD ZERO FOR ALLIGNMENT
*         JUMP   XTNLIN,RTN 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T N L I N   -   START OF NEW LOGICAL LINE                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTNLIN 
          SPC    2
          TPMOVE XRZERO,XRNRLFS        CLEAR NR PRE LINE FEEDS
          TPMOVE XRZERO,XRNRPLF        CLEAR NR POST LINE FEEDS 
          TPMOVE XRCRLF,XRWCRLF        SET CR/LF SEQUENCE 
          RSTBIT NCUOPS,XBPOST         RESET POST ACTION BIT
          TSTMXF XFNOFES,XTNL02        SKIP IF NO FORMAT EFFECTOR 
          SKIP   XTNL10      -         PROCESS FORMAT EFFECTOR
* 
* 
* * * *   NO FORMAT EFECTOR PRESENT, PROCESS AS PRE-PRINT SINGLE SPACE
* 
* 
XTNL02    TPBKUP LEVEL1,SRC  -         BACKUP TO DBC OR UNIT SEPARATOR
          TPINCR XRNRLFS,1   -         NO FORMAT EFFECTOR: PRE-SINGLE 
          JUMP   XTCR        -         STORE CR/LF
* 
* 
*         FORMAT EFFECTOR PRESENT, SCAN AND PROCESS IT
* 
* 
XTNL10    CHARNE FPRSNGL,XTNL14 
XTNLPS    TPINCR XRNRLFS,1   -         PRE-PRINT SINGLE SPACE 
XTNLPR    TPMARK LEVEL1,SRC  -         MARK START OF TEXT 
          JUMP   XTCR        -         STORE CR/LF
* 
XTNL14    CHARNE FPRDBLE,XTNL16 
          TPINCR XRNRLFS,2   -         PREPRINT DOUBLE SPACE
          SKIP   XTNLPR      -         STORE CR/LF/LF 
* 
XTNL16    CHARNE FPRTRPL,XTNL18 
          TPINCR XRNRLFS,3   -         PREPRINT TRIPLE SPACE
          SKIP   XTNLPR      -         STORE CR/LF/LF/LF
* 
XTNL18    CHARNE FPRSCLN,XTNL20 
          SKIP   XTNLPR      -         POSITION BEGIN CURRENT LINE
* 
XTNL20    CHARNE FPRHOME,XTNL22 
          TPST   XRHCLR,NCCRCS
          TPLDL  NCCRCS,XRCLRH         GET HOME CONTROL CHARACTER 
          JUMP   XTCLRH      -         PERFORM HOME POSITIONING 
* 
XTNL22    CHARNE FPRHCLR,XTNL24 
          TPST   XRHCLR,NCCRCS
          TPLDR  NCCRCS,XRCLRH         GET CLEAR/HOME CONTROL CHARACTER 
          JUMP   XTCLRH      -         PERFORM CLEAR HOME POSITIONING 
* 
XTNL24    CHARNE FPOSNGL,XTNL26 
          TPINCR XRNRPLF,1   -         STORE POST CR/LF 
XTNLPO    SETBIT NCUOPS,XBPOST         POST ACTION REQUIRED 
XTNLP2    RSTBIT NCUOPS,XBDRLF         NO PRE-PRINT, DONT DROP LF 
          TSTMXF XFATEND,XTNL28        SKIP IF VT100 WAIT FOR FOLD
          STATE  XTTEXT,EXIT -         PROCESS LINE FIRST 
* 
XTNL26    CHARNE FPOSCLN,XTNL30 
          SKIP   XTNLPO 
* 
XTNL28    RSTBIT NCUOPS,XBATEND        CLEAR FLAG 
          TPINCR XRLNCNT,1   -         CORRECT LINE COUNT 
          STATE  XTTEXT,EXIT -         PROCESS LINE 
* 
XTNL30    CHARNE FPRNOOP,XTNL32 
          SKIP   XTNLP2      -         NO PRE/POST ACTION REQUIRED
* 
XTNL32    SKIP   XTNLPS      -         UNKNOWN FE, PROCESS AS PRE-SINGLE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T N T X T   -   START NEW PACKET, PROCESS TEXT            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTNTXT 
          SPC    2
          INTCC  CCPKTSZ     -         INITIALIZE PACKET SIZE 
          ADDC   0           -         ADD ZERO FOR ALLIGNMENT
          JUMP   XTTEXT      -         START PROCESSING TEXT
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T T E X T   -   PROCESS NON TRANSPARENT TEXT              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTTEXT 
          SPC    2
          CHARLS ACUS+1,XTTX10         SKIP IF CONTROL CHARACTER
          RSTMSK NCUOPS,XMDRLF+XMATEND DONT DROP LF AFTER DATA
          DCC    CCPGWTH,XTTX20        SKIP IF PAGEWIDTH REACHED
XTTX04    XLATE  $7F,XCZERO  -         TRANSLATE CHARACTER
          X25PAR 0           -         SET PROPER PARITY
          DCC    CCPKTSZ,XTTX30,STOREX MAINTAIN PACKET SIZE, STORE
* 
* 
* * * *   PROCESS CONTROL CHARACTER EMBEDDED IN DL IVT DATA 
* 
* 
XTTX10    TPMARK LEVEL1,SRC  -         MARK POSITION OF CONTROL CHAR
          CHARNE ACUS,XTTX14
          TSTMSK NCUOPS,XMPOST,XTTX12  SKIP IF POST ACTION REQUIRED 
          STATE  XTNLIN,EXIT -         GO PROCESS NEXT LINE 
* 
XTTX12    TPMOVE XRNRPLF,XRNRLFS       SET NR OF LFS TO STORE 
          TPMOVE XRCRLF,XRWCRLF        SET EOL CR/LF SEQUENCE 
          JUMP   XTCR        -         GO STORE POST CR (LF)
* 
XTTX14    TPMOVE XRECRLF,XRWCRLF       SET EMBEDDED CR/LF CHARACTERS
          RSTBIT NCUOPS,XBDRLF         DONT DROP LF (AFTER DATA)
          CHARNE ACCR,XTTX16
          SETBIT NCUOPS,XBEMBCL        SET EMBEDDED CR SEEN 
          JUMP   XTCR        -         STORE EMBEDDED CR
* 
XTTX16    CHARNE ACLF,XTTX18
          TPMOVE XRZERO,XRNRLFS 
          TPINCR XRNRLFS,1   -         SET TO STORE SINGLE LF 
          SETBIT NCUOPS,XBEMBCL        SET EMBEDDED LF SEEN 
          JUMP   XTLFS       -         STORE EMBEDDED LF
* 
XTTX18    CHARNE ACBS,XTTX1A
          ICC    CCPGWTH     -         REMOVE PREVIOUS CHAR FROM PW 
XTTX1A    XLATE  $7F,XCZERO  -         TRANSLATE CHARACTER
          X25PAR 0           -         SET PROPER PARITY
          DCC    CCPKTSZ,XTTX30,STOREX MAINTAIN PACKET SIZE, STORE
* 
* 
* * * *   PAGE WIDTH REACHED, FOLD LINE, SEE IF NEXT CHAR IS A US 
* 
* 
XTTX20    INTCC  CCPGWTH     -         RESET PAGEWIDTH COUNTER
          CNTNE  CCPGWTH,0,XTTX22 
          SKIP   XTTX04      -         PW=0, DONT FOLD
* 
XTTX22    SETBIT NCUOPS,XBFOLD         SET LINE FOLDING FLAG
          TPMOVE XRCRLF,XRWCRLF        SET CR/LF SEQUENCE 
          TSTMXF XFNOPRT,XTTX24        SKIP IF WE HAVE A DISPLAY
          TPMOVE XRZERO,XRNRLFS        CLEAR NR PRE LINE FEEDS
          TPINCR XRNRLFS,1   -         PR/PT, STORE A LF FOLLOWED BY CR 
          STATE  XTLFS       -         (DONE BY LEAVING FOLD FLAG SET)
          JUMP   XTSTOR,RTN  -         STORE LAST CHAR FOR LINE 
* 
XTTX24    TPMOVE XRCRIDL,XRIDLES       GET NR IDLES AFTER CR
          TPADDR XRLFIDL,XRIDLES       ADD NR IDLES AFTER LF
          STATE  XTCIDL      -         STORE LI PLUS CI IDLES 
          JUMP   XTSTOR,RTN  -         STORE LAST CHAR FOR LINE 
* 
* 
*         PACKET FULL, ALLOCATE NEW PACKET, STORE NEXT CHARACTER
* 
* 
XTTX30    NEWPKT             -         START NEW PACKET 
          DCC    CCPKTSZ,*,STOREX      STORE CHARACTER
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T C R       -   STORE CR                                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTCR 
          SPC    2
          STATE  XTCIDL 
          INTCC  CCPGWTH     -         SET PAGEWIDTH COUNTER
          TPRSTL XRWCRLF     -         GET PROPER CR CHAR 
          CHARLS ACBLANK,XTCR04 
          TPST   XRWCRLF,NCCRCS 
          TPLDL  NCCRCS,XRCURC         STORE PROPER CR CHARACTER
          JUMP   XTESC,RTN   -         STORE ESCAPE PRIOR TO CR 
* 
XTCR04    CHARLS ACNUL+1,XTCR06        0 = NO CR CHAR FOR THIS TC 
          TPMOVE XRCRIDL,XRIDLES       GET NR IDLES TO STORE
          RSTBIT NCUOPS,XBATEND        CURSOR NOT AT FAR LEFT ANYMORE 
          JUMP   XTSTOR,RTN  -         STORE CARRIAGE RETURN CHAR 
* 
XTCR06    TPMOVE XRZERO,XRIDLES        NO CR, DONT STORE NULS 
          JUMP   XTCIDL      -         SEE WHAT TO DO NEXT
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T L F S     -   STORE LF(S)                               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTLFS
          SPC    2
          TSTMXF XFDRLF,XTLF02         SKIP IF FIRST LF MUST BE DROPPED 
          SKIP   XTLF04 
XTLF02    RSTBIT NCUOPS,XBDRLF         RESET DROP LF BIT
          TPDECR XRNRLFS,1   -         DECREMENT NR LFS BY ONE
XTLF04    TPCMPR XRZERO,XRNRLFS 
          SKIP   XTLF10      -         0 < NRLFS, MORE TO GO
          NOPR   0           -         0 = XRNRLFS, DONE
*                            -         0 > XRNRLFS, 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  XTTEXT      -         PRESET MOST LIKELY NEXT STATE
          TSTMSK NCUOPS,XMEMBCL,XTLF06 DONE WITH EMBEDDED LF
          TSTMSK NCUOPS,XMFOLD,XTLF08  DONE WITH LINE FOLDING 
          TSTMSK NCUOPS,XMPOST,XTLF0A  DONE WITH POST-PRINT CONTROL 
*         NOPR   EXIT        -         DONE WITH PRE-PRINT CONTROL
XTLF06    RSTBIT NCUOPS,XBEMBCL,EXIT   RESET EMBEDDED CR/LF BIT 
XTLF08    RSTBIT NCUOPS,XBFOLD         RESET FOLD FLAG
          SETBIT NCUOPS,XBIGNORE       IGNORE XFDRLF FOR CLEAR HOME 
          TSTMXF XFVTDISPL,XTLF0B      SKIP IF VT100 DISPLAY
          SETBIT NCUOPS,XBDRLF,EXIT    DROP IMMMEDIATELY FOLLOWING LF 
          SETBIT NCUOPS,XBDRLF,EXIT    DROP IMMMEDIATELY FOLLOWING LF 
XTLF0A    STATE  XTNLIN,EXIT -         START NEW LINE AFTER POST-FE 
XTLF0B    SETBIT NCUOPS,XBATEND,EXIT   CURSOR AT FAR RIGHT
* 
* 
* * * *   INSERT NEXT LINE FEED, INSERT IDLE NULLS IF NEEDED
* 
* 
XTLF10    STATE  XTLIDL 
          TPMOVE XRLFIDL,XRIDLES       GET NR LF IDLES
          TPRSTL XRWCRLF     -         GET CR CHARACTER 
          CHARNE ACNUL,XTLF12          SKIP IF CR GIVEN 
          TPADDR XRCRIDL,XRIDLES       NO CR, ADD CR IDLES TO LF IDLES
XTLF12    TPDECR XRNRLFS,1
          TPRSTR XRWCRLF     -         GET PROPER LF CHAR 
          CHARLS ACBLANK,XTLF14 
          TPMOVE XRWCRLF,XRCURC        CURRENT IS LF CODE 
          JUMP   XTESC,RTN   -         STORE ESCAPE PRIOR TO LF 
* 
XTLF14    JUMP   XTSTOR,RTN  -         STORE LINE FEED CHARACTER
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T E S C     -   STORE ESCAPE FOLLOEWD BY CURRENT CHAR     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTESC
          SPC    2
XTESC2    DCC    CCPKTSZ,XTESC4        SKIP IF PACKET FULL
          RCHAR  ACESC       -
          XLATE  $7F,XCZERO  -         TRANSLATE CHARACTER
          X25PAR 0           -         SET PROPER PARITY
          STORE  NOCRC
          TPRSTR XRCURC      -         RESTORE ORIGINAL CHARACTER 
          JUMP   XTSTOR,RTN  -         GO STORE NEXT CHARACTER
* 
XTESC4    NEWPKT             -         START NEW PACKET 
          SKIP   XTESC2      -         GO STORE ESCAPE
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T C I D L   -   INSERT CARRIAGE RETURN IDLES              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTCIDL 
          SPC    2
          TPCMPR XRZERO,XRIDLES 
          SKIP   XTCI30      -         0 < XRIDLES, MORE TO GO
          NOPR   0           -         0 = XRIDLES, DONE
*                            -         0 > XRIDLES, MORE THAN DONE
* 
* * * *   DONE STORING IDLE NULLS, DETERMINE WHAT TO DO NEXT
* 
* 
          TSTMSK NCUOPS,XMEMBCL,XTCI10 SKIP IF EMBEDDED CR OR LF
          SKIP   XTCI14      -         NO EMBEDDED CR OR LF 
* 
* 
* * * *   DONE WITH EMBEDDED CR OR LF SEQUENCE
* 
* 
XTCI10    STATLS XTLIDL,XTCI12         SKIP IF EMBEDDED CR
          JUMP   XTPGWT,RTN  -         EMBEDDED LF, TEST PAGE WAIT
* 
XTCI12    RSTBIT NCUOPS,XBEMBCL        RESET EMBEDDED CR SEEN 
          STATE  XTTEXT,EXIT -         CONTINUE AFTER STORING EMB. CR 
* 
XTCI14    TSTMSK NCUOPS,XMFOLD,XTCI20  SKIP IF SEND LF/CR (AFTER FOLD)
* 
* 
* * * *   DONE WITH INSERTING CR OR CR/LF(S) FOR PRE/POST-PRINT FE
* 
* 
          STATLS XTLIDL,XTCI18         SKIP IF STORED CR IDLES
          JUMP   XTPGWT,RTN  -         GO DO PAGEWAIT TEST
* 
XTCI18    JUMP   XTLFS       -         DONE STORING CR, STORE LF(S) 
* 
* 
* * * *   DONE WITH INSERTING LF OR LF/CR FOR LINE FOLDING
* 
* 
XTCI20    STATLS XTLIDL,XTCI22         FOLDING, SKIP IF STORED LF/CR
          JUMP   XTCR        -         FOLDING, STORE CR AFTER LF 
* 
XTCI22    TSTMXF XFVTDISPL,XTCI24      SKIP IF VT100 DISPLAY
          JUMP   XTPGWT,RTN  -         GO TEST FOR PAGE WAIT
XTCI24    JUMP   XTVTPG,RTN  -         GO TEST VT100 PAGE WAIT
* 
* 
* * * *   MORE IDLE NULLS REQUIRED, STORE NEXT ONE, MAINTAIN XMIT BLKSZ 
* 
* 
XTCI30    TPDECR XRIDLES,1
          RCHAR  ACNUL
*         JUMP   XTSTOR,RTN  -         STORE NULL CHARACTER 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T S T O R   -   TRANSLATE/STORE SPECIAL CHAR              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTSTOR 
          SPC    2
XTST02    DCC    CCPKTSZ,XTST04        SKIP IF PACKET FULL
          XLATE  $7F,XCZERO  -         TRANSLATE CHARACTER
          X25PAR 0           -         SET PROPER PARITY
          STORE  NOCRC
          JUMP   CURRENT     -         PACKET NOT FULL
* 
XTST04    NEWPKT             -         PACKET FULL, ALLOCATE NEW ONE
          SKIP   XTST02 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T L I D L   -   INSERT LINE FEED IDLES                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTLIDL,XTCIDL
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T P G W T   -   TEST FOR AND PERFORM PAGE WAIT            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTPGWT 
          SPC    2
          TSTMXF XFPGWA,XTPG02         SKIP IF TIME TO EXIT TO PASCAL 
          TPINCR XRLNCNT,1   -         MAINTAIN LINE COUNTER
          TPCMPR XRLNCNT,XRPGLEN       COMPARE LINE CNTR AND PAGE LENGTH
          JUMP   XTLFS,RTN   -         LNCNT < PGLEN, STORE NEXT LF 
          SKIP   XTPG06      -         LNCNT = PGLEN, PAGE FULL 
          TPDECR XRLNCNT,1   -         LNCNT > PGLEN (IMPLIES PL=0) 
          JUMP   XTLFS,RTN   -         STORE NEXT LINE FEED 
XTPG02    SKIP   XTPG12      -         EXIT TO PASCAL 
* 
* 
* * * *   PAGE FULL, TEST IF WE HAVE TO GO INTO PAGE WAIT 
* 
* 
XTPG06    STATE  XTLFS       -         PRESET MOST LIKELY NEXT STATE
          TPMOVE XRZERO,XRLNCNT 
          TPINCR XRLNCNT,1   -         RESET LINE COUNTER 
          TSTMXF XFPGWT,XTPG10         SKIP IF PAGE WAITING ENABLED 
          TSTMXF XFDISPL,XTPG08        SKIP IF DISPLAY OUTPUT 
          SKIP   XTPG20      -         PRINTER AT PAGE LENGTH 
XTPG08    JUMP   CURRENT     -         NO PAGING, NEXT LF 
* 
* 
* 
* * * *   PAGE FULL AND PAGE WAIT ENABLED 
* 
* 
XTPG10    SETBIT NCUOPS,XBPGWAIT       MARK PAGE WAIT FOR PASCAL TIP
          TSTMSK NCUOPS,XMEMBCL+XMFOLD,XTPG12 
          STATE  XTNNLN      -         PRESET FOR NEW LINE (AFTER PGWT) 
          TSTMSK NCUOPS,XMPOST,XTPG14 
XTPG12    RSTMSK NCUOPS,XMEMBCL+XMFOLD
          STATE  XTNTXT      -         RETURN AT STATE TEXT 
* 
XTPG14    JUMP   XTPKTC,RTN  -         EXIT WITH COMPLETE PACKET
* 
* 
* * * *   PAGE FULL FOR PRINTER WHILE PG=N, PL"0, INSERT TOF OR 6 LFS 
* 
* 
XTPG20    TPMOVE XRZERO,XRNRLFS        RESET LINE FEED COUNTER
          TPRSTL XRHCLR      -         GET HOME CONTROL CHARACTER 
          CHARLS ACNUL+1,XTPG21        SKIP IF NONE AVAILABLE 
          CHARLS ACBLANK,XTPG22 
          CHARNE ACCSX364,XTPG2J       SKIP IF TC " N0X364
          STATE  XTSHO       -         STORE TOP OF FORM ONLY 
          SKIP   XTPG23      -         AS ESC [ H 
XTPG2J    JUMP   XTESC,RTN
XTPG21    SKIP   XTPG26                EXTENDED SKIP
* 
XTPG22    CHARNE ACESC,XTPG25          TEST FOR 4014 CHANGE TO FF 
          RCHAR  ACFF        -         TO BE PRECEDED BY ESC
          JUMP   XTESC,RTN
XTPG23    TPST   XRHCLR,NCCRCS
          TPLDL  NCCRCS,XRCURC         STORE PROPER HOME CHARACTER
XTPG24    JUMP   XTESC,RTN   -         STORE ESC IF FF OR GE BLANK
* 
XTPG25    JUMP   XTSTOR,RTN 
* 
XTPG26    TPINCR XRNRLFS,6   -         NO HOME CHARACTER, INSERT 6 LFS
          TPDECR XRLNCNT,6   -         ALLOW FOR LFS ON NEXT PAGE 
          JUMP   CURRENT     -         GO STORE 6 LINE FEEDS
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T V T P G   -   TEST FOR AND PERFORM PAGE WAIT FOR VTDISP * 
*                           AFTER LINE FOLD                           * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTVTPG 
          SPC    2
          TPINCR XRLNCNT,1   -         MAINTAIN LINE COUNTER
          TPMARK LEVEL2,SRC  -         MARK LINE FOLD POSITION
          TPCMPR XRLNCNT,XRPGLEN       COMPARE LINE CNTR AND PAGE LENGTH
          STATE  XTVCHL,EXIT -         LNCNT < PGLEN, CHECK LINE COUNT
          SKIP   XTVT02      -         LNCNT = PGLEN, PAGE FULL SHIP CR LF
          TPDECR XRLNCNT,1   -         LNCNT > PGLEN (IMPLIES PL=0) 
          JUMP   XTLFS,RTN   -         CLEARS LINE FOLD FLAG
* 
* 
* * * *   PAGE FULL, TEST IF WE HAVE TO GO INTO PAGE WAIT 
* 
* 
XTVT02    TPMOVE XRZERO,XRLNCNT 
          TPINCR XRLNCNT,1   -         RESET LINE COUNTER 
          TSTMXF XFPGWT,XTVT04         SKIP IF PAGE WAITING ENABLED 
          STATE  XTVCHL,EXIT -         NO PAGING, CHECK LINE COUNT
* 
* 
* * * *   PAGE FULL AND PAGE WAIT ENABLED 
* 
* 
XTVT04    SETBIT NCUOPS,XBPGWAIT       MARK PAGE WAIT FOR PASCAL TIP
          TSTMSK NCUOPS,XMFOLD,XTVT06  SKIP IF FOLDING
          JUMP   XTPKTC,RTN  -         EXIT WITH COMPLETE XMIT BUFFER 
XTVT06    RSTBIT NCUOPS,XBFOLD         CLEAR FOLD FLAG
          TPDECR XRLNCNT,1   -         RESET LINE COUNTER 
          TPMOVE XRZERO,XRNRLFS        AND WORKING NUMBER OF
          TPINCR XRNRLFS,1   -         LINE FEEDS 
          JUMP   XTCR,RTN    -         STORE CR/LF
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T V C H L   -   TEST FOR LINE COUNT AT FOLD               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTVCHL 
          SPC    2
          CHARLS ACUS+1,XTVC01         SKIP IF NEXT CHAR IS CNTL CHAR 
          SKIP   XTVC02      -         ELSE JUMP TO RESTORE 
XTVC01    TPDECR XRLNCNT,1   -         CORRECT THE LINE COUNT AND EXIT
XTVC02    TPBKUP LEVEL2,SRC  -         RESTORE THE SOURCE BUFFER AND
          JUMP   XTLFS       -         RESET STATE INDEX AND EXIT 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T C L R H   -   CLEAR SCREEN, HOME CURSOR                 * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTCLRH 
          SPC    2
          TPBKUP LEVEL1,SRC  -         BACKUP TO UNIT SEPARATOR 
          RSTBIT NCUOPS,XBATEND        CURSOR NOT AT FAR LEFT ANYMORE 
          TSTMXF XFIGNORE,XTCL01       SKIP IF XFDRLF INACCURATE
          TSTMXF XFDRLF,XTCL02         SKIP IF JUST RECEIVED INPUT
XTCL01    TSTMXF XFPGWT,XTCL04         SKIP IF PAGING ENABLED 
XTCL02    STATE  XTSTCH,EXIT -         NO OVER.. REQUIRED 
* 
* 
* * * *   INSERT OVER.. BEFORE GOING INTO PAGE WAIT 
* 
* 
XTCL04    RCHAR  ACO
          STATE  XTOV1
          JUMP   XTSTOR,RTN  -         STORE O
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T O V 1     -   CONTINUE PROCESSING OVER..                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTOV1
          SPC    2
          RCHAR  ACV
          STATE  XTOV2
          JUMP   XTSTOR,RTN  -         STORE V
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T O V 2     -   CONTINUE PROCESSING OVER..                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTOV2
          SPC    2
          RCHAR  ACE
          STATE  XTOV3
          JUMP   XTSTOR,RTN  -         STORE E
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T O V 3     -   CONTINUE PROCESSING OVER..                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTOV3
          SPC    2
          RCHAR  ACR
          STATE  XTOV4
          JUMP   XTSTOR,RTN  -         STORE R
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T O V 4     -   CONTINUE PROCESSING OVER..                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTOV4
          SPC    2
          RCHAR  ACDOT
          STATE  XTOV5
          JUMP   XTSTOR,RTN  -         STORE .
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T O V 5     -   CONTINUE PROCESSING OVER..                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTOV5
          SPC    2
          STATE  XTOV6
          JUMP   XTSTOR,RTN  -         STORE .
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T O V 6     -   CONTINUE PROCESSING OVER..                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTOV6
          SPC    2
          SETBIT NCUOPS,XBPGWAIT       MARK PAGE WAIT FOR PASCAL TIP
          STATE  XTPWCH 
          JUMP   XTPKTC,RTN  -         EXIT WITH COMPLETE PACKET
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T P W C H   -   PAST OVER.., START NEW PACKET,            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTPWCH 
          SPC    2
          INTCC  CCPKTSZ     -         INITIALIZE PACKET SIZE 
          ADDC   0           -         ADD ZERO FOR ALLIGNMENT
*         JUMP   XTSTCH,RTN 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T S T C H   -   PAST OVER.., STORE CONTROL SEQUENCE       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTSTCH 
          SPC    2
          TPRSTR XRCLRH      -         RESTORE TERMINALS CLEAR/HOME CHR 
          CHARNE ACNUL,XTPR04          SKIP IF HOME/CLR CHAR
          SKIP   XTPR10      -         GO INSERT LFS
* 
* 
* * * *   DISPLAY / PRINTER WITH GIVEN HOME / CLEAR CHARACTER 
* 
* 
XTPR04    STATE  XTCDLY      -         DELAY AFTER CLEAR SCREEN 
          TPMOVE XRCLRH,XRCURC         CURRENT IS HOME/CLEAR
          CHARLS ACBLANK,XTPR07 
          CHARNE ACCSX364,XTPR05       SKIP IF TC " N0X364
          STATE  XTSRH       -         STORE H
XTPR05    JUMP   XTESC,RTN   -         STORE ESCAPE FIRST 
* 
XTPR07    CHARNE ACCS75X,XTPR09 
XTPR08    DCC    CCPKTSZ,XTPR0C 
          RPLACE ACRS75X     -         INSERT RESET BEFORE CLEAR SCREEN 
          TPRSTR XRCURC      -         RESTORE HOME/CLEAR 
XTPR09    CHARNE ACESC,XTPR0A          TEST FOR 4014 CHANGE TO FF 
          TPSUBR XRCURC,XRCURC         ZERO OUT REGISTER
          TPINCR XRCURC,7    -         ADD
          TPINCR XRCURC,5    -             <FF> 
          JUMP   XTESC,RTN   -         STORE ESCAPE FIRST 
* 
XTPR0A    CHARNE ACFF,XTPR0B -         IF NOT <FF>
          JUMP   XTSCR       -         GO STORE <CR> BEFORE <FF>
XTPR0B    JUMP   XTSTOR,RTN  -         STORE CLEAR/HOME CHARACTER 
* 
XTPR0C    NEWPKT             -         START NEW PACKET 
          SKIP   XTPR08      -         GO STORE RESET CHARACTER 
* 
* 
* * * *   NO GIVEN HOME / CLEAR CHAR, OR PAPERTAPE, CALCULATE NR LFS
* 
* 
XTPR10    TSTMXF XFDRLF,XTPR14         NO LFS IF JUST SEEN INPUT
          TPMOVE XRPGLEN,XRNRLFS
          TPCMPR XRZERO,XRPGLEN        COMPARE FOR NON-ZERO PGLENGTH
          SKIP   XTPR12      -         PAGE LENGTH NON ZERO 
          TPINCR XRNRLFS,6   -         PAGE LENGTH IS ZERO, 6 LFS 
          SKIP   XTPR14 
* 
XTPR12    TPSUBR XRLNCNT,XRNRLFS       GET NR LFS TO FILL PAGE
XTPR14    RSTBIT NCUOPS,XBDRLF         RESET DROP LF FLAG 
          JUMP   XTCR        -         GO STORE CR AND N LFS
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T C D L Y   -   DELAY AFTER CLEAR-SCREEN ON 4014          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTCDLY 
          SPC    2
          SETFLG BFADELAY,FRST         SET DELAY FLAG IN FIRST BUFFER 
          STATE  XTNTXT      -         START TEXT AFTER DELAY 
          JUMP   XTPKTC,RTN  -         EXIT WITH COMPLETE PACKET
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T S T R H   -  STORE H FOR TC = N0X364                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
          STATPR XTSRH
  
          RCHAR  ACH
          STATE  XTSTES 
          JUMP   XTSTOR,RTN  -    STORE H 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T S T E S   -  STORE ESC LEFT BRACKET FOR TC = N0X364     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
          STATPR XTSTES 
  
          RCHAR  ACLB        -    SET [ AS CURRENT CHARACTER
          STATE  XTSRJ
          JUMP   XTESC,RTN   -    STORE ESCAPE FIRST
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T S T R J   -  STORE J FOR TC = N0X364                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
          STATPR XTSRJ
  
          RCHAR  ACJ
          STATE  XTCDLY      -    DELAY AFTER CLEAR SCREEN
          JUMP   XTSTOR,RTN  -    STORE J 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T S H O   -  STORE ONLY TOF FOR TC = N0X364               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
          STATPR XTSHO
  
          RCHAR  ACH
          STATE  XTLFS
          JUMP   XTSTOR,RTN  -    STORE H 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T P K T C   -   COMPLETE CURRENT PACKET, EXIT TP          * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    1
          STATPR XTPKTC 
          SPC    2
          SETFLG BFENDPKT,CURN         SET END OF PACKET FLAG 
          TIBSWC             -         FORCE LCD INSERTION
          TPEXIT             -         RETURN TO PASCAL TIP 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T S C R   -   STORE CARRIAGE RETURN                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
          STATPR XTSCR
  
  
          STATE  XTSFF       -         STORE <FF> NEXT
          RCHAR  ACCR 
          JUMP   XTSTOR,RTN  -         STORE <CR> 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*         X T S F F   -   STORE FORM FEED                             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
          STATPR XTSFF
  
  
          STATE  XTCDLY      -         DELAY AFTER CLEAR SCREEN 
          RCHAR  ACFF 
          JUMP   XTSTOR,RTN  -         STORE <FF> 
          EJT 
          END 
