*COMDECK MODE4ITP 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     M O D E   4   I N T E R A C T I V E                             * 
*                                                                     * 
*     T E X T   P R O C E S S I N G   A S S E M B L I E S             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
          NAM    ITPMD4 
          SPC    3
          NLS 
*CALL MUXMACROS 
          LST 
          SPC    3
*CALL STPMACROS 
          SPC    3
*CALL REL6CONST 
          SPC    3
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     M O D E   4   I N T E R A C T I V E                             * 
*                                                                     * 
*     T E X T   P R O C E S S I N G   C O N S T A N T S               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     MODE 4 CHARACTER EQUATES                                        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    2
          EQU    VCSOH($01)  -         START OF HEADER
          EQU    VCETX($03)  -         END OF TRANSMISSION
          EQU    VCSYNC($16) -         SYNCHRONOUS IDLE 
* 
          EQU    VCW($11)    -         WRITE MTI
          EQU    VCCW($12)   -         CLEAR WRITE MTI
          EQU    VCRW($0C)   -         RESET WRITE MTI
* 
          EQU    VCE1($42)   -         E1 TERMINATOR
          EQU    VCE4($22)   -         SEND INDEX 
* 
          EQU    VCBESC($3E) -         BCD ESCAPE 
* 
          EQU    VCAESC($1B) -         ASCII ESCAPE 
          EQU    VCANL($41)  -         ASCII NEW LINE (AFTER ESC) 
          EQU    VCABKSP($08)          ASCII BACK SPACE 
          EQU    VCABKUP($50)          ASCII BACK SPACE (AFTER ESC) 
* 
          EQU    VCABLANK($20)         ASCII BLANK
          EQU    VCAOO($4F)  -         ASCII -O-
          EQU    VCAVV($56)  -         ASCII -V-
          EQU    VCAEE($45)  -         ASCII -E-
          EQU    VCARR($52)  -         ASCII -R-
          EQU    VCAPERIOD($2E)        ASCII -.-
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     MODE 4 INTERACTIVE TPCB FLAG EQUATES                            * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    2
          EQU    VFASCII(NCUOP1)       ASCII CODE SET 
          EQU    VFMD4C(NCUOP2)        MODE 4C DEVICE 
          EQU    VFMSGBLK(NCUOP3)      MSG BLOCK
          EQU    VFFE(NCUOP4)          FORMAT EFFECTORS PRESENT 
          EQU    VFFRAG(NCUOP5)        FRAGMENTED LINE
          EQU    VFPGWAIT(NCUOP6)      PAGE WAIT IS ON
          EQU    VFSTB(NCUOP7)         START OF TRANSMISSION BLOCK
          EQU    VFPACER(NCUOP8)       SIMULATED TERMINAL 
          EQU    VFPROMPT(NCUOP9)      PROMPT CHARACTER REQUIRED
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     MODE 4 INTERACTIVE TPCB FILE REGISTER EQUATES                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    2
          EQU    VTCHAR(0)   -         CURRENT SAVED CHARACTER
          EQU    VTPROMPT(3) -         SIMULATED TML PROMPT CHARACTER 
          EQU    VTLINESR(4) -         LINES REMAINING ON PAGE
          EQU    VTPGLEN(5)  -         PAGE LENGTH
          EQU    VTESC(6)    -         CURRENT ESC CHARACTER
          EQU    VTEOL(6)    -         CURRENT EOL CHARACTER
          EQU    VTWORK(7)   -         WORK REGISTER
          EQU    VTZERO(15)  -         CONSTANT ZERO
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     MODE 4 INTERACTIVE BUFFER AND TPCB COUNTER EQUATES              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    2
          EQU    VBFCD($8)   -         FCD OF DESTINATION BUFFER
* 
          EQU    V4CLMNCNT(1)          COLUMN COUNT 
          EQU    V4CC1(1)    -         COUNTER 1
* 
          EQU    NCCC1(4)    -         WORD INDEX TO COUNTER 1
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     M O D E   4   I N T E R A C T I V E    T E X T                  * 
*                                                                     * 
*     P R O C E S S I N G   S T A T E   P O I N T E R   T A B L E     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          STATPN MD4ITP      -         DEFINE STATE PROGRAM TABLE NAME
* 
*                                      FUNCTION IS TO - 
*                                      ---------------- 
* 
          STATPT MD4ITP,VSEOS          PROCESS END OF SOURCE
          STATPT MD4ITP,VSETB          END THE TRANSMISSION BLOCK 
          STATPT MD4ITP,VSTRL          ADD TRAILING CHARACTERS
          STATPT MD4ITP,VSEXIT         EXIT TEXT PROCESSING 
          STATPT MD4ITP,VSHDR          BUILD TRANSMISSION BLOCK HEADER
          STATPT MD4ITP,VSFE -         INTERPRET A FORMAT EFFECTOR
          STATPT MD4ITP,VSINL          INSERT NEW LINE CHARACTER(S) 
          STATPT MD4ITP,VSTF -         PROCESS TOP OF FORM FE 
          STATPT MD4ITP,VSCS -         PROCESS CLEAR SCREEN FE
          STATPT MD4ITP,VSNA -         CHECK US AFTER NULL ACTION FE
          STATPT MD4ITP,VSOVER         INSERT OVER.. IN XMIT BLOCK
          STATPT MD4ITP,VSIDATA        SET UP FOR NORMAL DATA 
          STATPT MD4ITP,VSCNTL         PROCESS NORMAL DATA (SCAN FOR CC)
          STATPT MD4ITP,VSFLST         CHECK LINE FOLD ON LAST LINE 
          STATPT MD4ITP,VSFLUS         CHECK US AFTER LAST LINE FOLD
          STATPT MD4ITP,VSLFLD         CHECK US AFTER LINE FOLDING
          STATPT MD4ITP,VSUS -         CHECK END OF SOURCE AFTER US 
          EJT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*     M O D E   4   I N T E R A C T I V E                             * 
*                                                                     * 
*     T E X T   P R O C E S S I N G   S T A T E   P R O G R A M S     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSEOS
*         ************                                                * 
*                                                                     * 
*     PURPOSE - TO PROCESS END OF SOURCE CONDITION
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          STATLS VSUS,VEOS0  -         CHECKING FOR EOS AFTER US
          TPINCR VTLINESR,1  -         ADJUST FOR TRAILER LINE
* 
VEOS0     TSTMXF VFPACER,VEOS1         SKIP IF SIMULATED TERMINAL 
          JUMP   VSETB,XCUTE -         JUMP TO END TRANSMISSION BLOCK 
* 
VEOS1     TSTMXF VFMSGBLK,VEOS2        SKIP IF MSG BLOCK
          JUMP   VSETB,XCUTE -         JUMP TO END TRANSMISSION BLOCK 
* 
VEOS2     SETMXF VFPROMPT    -         PROMPT REQD FOR SIMULATED TML
          TSTMXF VFSTB,VEOS3 -         SKIP IF AT START OF XMIT BLOCK 
          JUMP   VSETB,XCUTE -         JUMP TO END TRANSMISSION BLOCK 
* 
VEOS3     RSTMXF VFSTB       -         RESET START OF XMIT BLOCK FLAG 
          ADDC   VCW         -         INSERT WRITE MTI 
* 
          JUMP   VSETB,XCUTE -         JUMP TO END TRANSMISSION BLOCK 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSETB
*         ************                                                * 
*                                                                     * 
*     PURPOSE - TO END THE TRANSMISSION BLOCK                         * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          TSTMXF VFASCII,VETB1         SKIP IF ASCII CODE SET 
          SETRAN 0           -         TURN TRANSLATION ON FOR BCD
VETB1     JUMP   VSTRL,XCUTE -         JUMP TO ADD TRAILING CHARACTERS
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSTRL
*         ************                                                * 
*                                                                     * 
*     PURPOSE - TO ADD TRAILING CHARACTERS
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          TPDECR VTLINESR,1  -         DECREMENT LINES REMAINING
          TSTMXF VFMD4C,VTRL1          SKIP IF MODE 4C
          SKIP   VTRL2       -         PROCESS MODE 4A TRAILER
* 
VTRL1     ADDC   VCAESC      -         ADD ESC
          ADDC   VCANL       -             NEW LINE 
          ADDC   VCAESC      -             ESC
          ADDC   VCABKUP     -             BACK SPACE 
          ADDC   VCAESC      -             ESC
          ADDC   VCE4        -             E4 (SEND INDEX)
          SKIP   VTRL6       -         CLOSE THE TRANSMISSION BLOCK 
* 
VTRL2     RCHAR  VCABLANK    -         REPLACE CURRENT WITH A BLANK 
          CNTNE  V4CLMNCNT,0,VTRL3     SKIP IF BLANKFILL NEEDED 
          SKIP   VTRL4       -         NO BLANKFILL REQUIRED
VTRL3     DCC    V4CLMNCNT,VTRL4       DECR REMAINING COLUMN COUNT
          STORE  0           -         STORE A BLANK
          SKIPB  VTRL3       -         CONTINUE TILL COLUMN COUNT = 0 
* 
VTRL4     TSTMXF VFASCII,VTRL5         SKIP IF ASCII CODE SET 
          ADDC   VCBESC      -         ADD BCD ESC
          ADDC   VCE1        -         ADD E1 
          SKIP   VTRL6       -         CLOSE THE TRANSMISSION BLOCK 
* 
VTRL5     ADDC   VCAESC      -         ADD ASCII ESC
          ADDC   VCE4        -         ADD E4 
* 
VTRL6     TSTMXF VFPACER,VTRL7         SKIP IF SIMULATED TERMINAL 
          SKIP   VTRL9       -
VTRL7     TSTMXF VFPROMPT,VTRL8        SKIP IF PROMPT REQUIRED
          SKIP   VTRL9       -
VTRL8     RSTRAN 0           -         TURN TRANSLATION OFF 
          TPSTRC VTPROMPT    -         STORE PROMPT CHARACTER 
* 
VTRL9     ADDC   VCETX       -         STORE ETX CHARACTER
          JUMP   VSEXIT      -         JUMP TO EXIT TEXT PROCESSING 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSEXIT 
*         *************                                               * 
*                                                                     * 
*     PURPOSE - TO EXIT TEXT PROCESSING                               * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          TIBSWC 0,0         -         CLOSE TRANSMISSION BLOCK BUFFER
          TPEXIT             -         EXIT TEXT PROCESSING 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSHDR
*         ************                                                * 
*                                                                     * 
*     PURPOSE - TO BUILD TRANSMISSION BLOCK HEADER                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          ALNBUF VBFCD       -         GET BUFFER FOR HEADER
          RSTRAN 0           -         TURN TRANSLATION OFF 
          SETCC  1,5         -         SET COUNT TO 5 
          RADDC  VCSYNC      -         STORE 5 LEADING SYNCS
          ADDC   VCSOH       -         INSERT SOH 
          ADDC   0           -         RESERVE SPACE FOR CLUSTER ADDR 
          ADDC   0           -         RESERVE SPACE FOR TERMINAL ADDR
          TSTMXF VFFE,VHDR1  -         SKIP IF FORMAT EFFECTORS PRESENT 
          SKIP   VHDR2       -
* 
VHDR1     TSTMXF VFFRAG,VHDR2          SKIP IF FRAGMENT PRESENT 
          JUMP   VSFE,XCUTE  -         GO PROCESS FORMAT EFFECTOR 
* 
VHDR2     INTCC  V4CLMNCNT   -         INITIALIZE COLUMN COUNT
          RSTMXF VFSTB       -         RESET START OF XMIT BLOCK FLAG 
          ADDC   VCW         -         STORE WRITE AS MTI 
          JUMP   VSIDATA,XCUTE         GO PROCESS NORMAL DATA 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSFE 
*         ***********                                                 * 
*                                                                     * 
*     PURPOSE - TO INTERPRET A FORMAT EFFECTOR                        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          CHARNE I9FDS,VFE1  -         SKIP IF NOT DOUBLE SPACE 
          SETCC  V4CC1,1     -         LINE COUNT = 1 
          JUMP   VSINL,XCUTE -         JUMP TO INSERT NEW LINE
* 
VFE1      CHARNE I9FTS,VFE2  -         SKIP IF NOT TRIPLE SPACE 
          SETCC  V4CC1,2     -         LINE COUNT = 2 
          JUMP   VSINL,XCUTE -         JUMP TO INSERT NEW LINES 
* 
VFE2      CHARNE I9FRS,VFE3  -         SKIP IF NOT TOP OF FORM
          JUMP   VSTF,XCUTE  -         JUMP TO PROCESS TOP OF FORM
* 
VFE3      CHARNE I9FPE,VFE4  -         SKIP IF NOT CLEAR SCREEN 
          JUMP   VSCS,XCUTE  -         JUMP TO PROCESS CLEAR SCREEN 
* 
VFE4      CHARNE I9FNA,VFE5  -         SKIP IF NOT NULL ACTION
          STATE  VSNA,EXIT   -         SET TO CHECK US AFTER NULL ACT.
* 
VFE5      SETCC  V4CC1,0     -         LINE COUNT = 0 
          JUMP   VSINL,XCUTE -         JUMP TO PROCESS NEW LINE 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSINL
*         ************                                                * 
*                                                                     * 
*     PURPOSE - TO INSERT NEW LINE CHARACTER(S)                       * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          TPLDR  NCCC1,VTWORK          MOVE LINE COUNT
          TPCMPR VTWORK,VTLINESR       CHECK IF OVER PAGE 
          SKIP   VINL1       -         NO 
          SKIP   VINL7       -         YES
          SKIP   VINL7       -         YES
* 
VINL1     TSTMXF VFSTB,VINL2 -         SKIP IF AT START OF XMIT BLOCK 
          SKIP   VINL3       -
* 
VINL2     RSTMXF VFSTB       -         CLEAR START OF XMIT BLOCK FLAG 
          ADDC   VCW         -         STORE WRITE AS MTI 
* 
VINL3     TPSUBR VTWORK,VTLINESR       SUB. LINES FROM LINES REMAINING
          CNTNE  V4CC1,0,VINL4         SKIP IF LINES TO STORE 
          SKIP   VINL6       -
* 
VINL4     RSTRAN 0           -         TURN TRANSLATION OFF 
VINL5     TPSTLC VTESC       -         STORE ESC
          TPSTRC VTEOL       -         STORE NEW LINE 
          DCC    V4CC1,VINL6 -         SUBTRACT 1 FROM LINE COUNT 
          SKIPB  VINL5       -         CONTINUE UNTIL COUNT EXHAUSTED 
* 
VINL6     INTCC  V4CLMNCNT   -         INITIALIZE COLUMN COUNT
          STATE  VSIDATA,EXIT          SET STATE TO PROCESS DATA
* 
VINL7     TPMOVE VTZERO,VTLINESR       SET LINES REMAINING TO ZERO
          TPINCR VTLINESR,1  -         ADJUST FOR TRAILER LINE
          TSTMXF VFPGWAIT,VINL8        SKIP IF PAGE WAIT ON 
          SKIP   VINL9       -
VINL8     SETMXF VFPROMPT    -         SET PROMPT REQD SIMULATED TML
VINL9     JUMP   VSETB,XCUTE -         JUMP TO END TRANSMISSION BLOCK 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSTF 
*         ***********                                                 * 
*                                                                     * 
*     PURPOSE - TO PROCESS A TOP OF FORM FORMAT EFFECTOR              * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          TSTMXF VFSTB,VTF1  -         SKIP IF AT START OF XMIT BLOCK 
          JUMP   VSOVER,XCUTE          JUMP TO INSERT OVER..
* 
VTF1      TSTMXF VFPGWAIT,VTF2         SKIP IF PAGE WAIT ON 
          SKIP   VTF3        -
* 
VTF2      TPCMPR VTLINESR,VTPGLEN      CHECK IF AT TOP OF SCREEN
          JUMP   VSOVER,XCUTE          NO  JUMP TO INSERT OVER..
          NOPR   0           -         YES
VTF3      RSTMXF VFSTB       -         YES CLEAR START XMIT BLOCK FLAG
          ADDC   VCRW        -         STORE RESET WRITE AS MT1 
          SETCC  V4CC1,14    -         SET COUNT
          RADDC  VCSYNC      -         STORE SYNC CHARACTERS
          INTCC  V4CLMNCNT   -         RESET COLUMN COUNT 
          STATE  VSIDATA,EXIT          SET STATE TO PROCESS DATA
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSCS 
*         ***********                                                 * 
*                                                                     * 
*     PURPOSE - TO PROCESS A CLEAR SCREEN FORMAT EFFECTOR             * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          TSTMXF VFSTB,VCS1  -         SKIP IF AT START OF XMIT BLOCK 
          JUMP   VSOVER,XCUTE          JUMP TO INSERT OVER..
* 
VCS1      TSTMXF VFPGWAIT,VCS2         SKIP IF PAGE WAIT ON 
          SKIP   VCS3        -
* 
VCS2      TPCMPR VTLINESR,VTPGLEN      CHECK IF AT TOP OF SCREEN
          JUMP   VSOVER,XCUTE          NO JUMP TO INSERT OVER.. 
          NOPR   0           -         YES
VCS3      RSTMXF VFSTB       -         YES RESET START XMIT BLOCK FLAG
          ADDC   VCCW        -         STORE CLEAR WRITE AS MTI 
          SETCC  V4CC1,14    -         SET COUNT
          RADDC  VCSYNC      -         STORE SYNC CHARACTERS
          INTCC  V4CLMNCNT   -         RESET COLUMN COUNT 
          STATE  VSIDATA,EXIT          SET STATE TO PROCESS DATA
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSNA 
*         ***********                                                 * 
*                                                                     * 
*     PURPOSE - TO CHECK FOR US AFTER A NO ACTION FORMAT EFFECTOR     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          INTCC  V4CLMNCNT   -         INITIAL COLUMN COUNT 
          CHARNE I9US,VNA1   -         SKIP IF NOT UNIT SEPARATOR 
          STATE  VSFE,EXIT   -         SET STATE TO SCAN FORMAT EFFECTOR
* 
VNA1      TSTMXF VFSTB,VNA2  -         SKIP IF AT START OF XMIT BLOCK 
          SKIP   VNA3        -
* 
VNA2      RSTMXF VFSTB       -         RESET START OF XMIT BLOCK FLAG 
          ADDC   VCW         -         STORE WRITE AS MTI 
VNA3      JUMP   VSIDATA,XCUTE         JUMP TO PROCESS DATA 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSOVER 
*         *************                                               * 
*                                                                     * 
*     PURPOSE - TO INSERT OVER.. IN TRANSMISSION BLOCK                * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          INTCC  V4CLMNCNT   -         INITIALIZE COLUNN COUNT
          TSTMXF VFSTB,VOVER1          SKIP IF AT START OF XMIT BLOCK 
          SKIP   VOVER2      -
* 
VOVER1    RSTMXF VFSTB       -         RESET START OF XMIT BLOCK FLAG 
          ADDC   VCW         -         STORE WRITE AS MTI 
* 
VOVER2    TSTMXF VFPGWAIT,VOVER3       SKIP IF PAGE WAIT ON 
          SKIP   VOVER5      -
* 
VOVER3    SETMXF VFPROMPT    -         SET PROMPT REQD SIMULATED TML
          TSTMXF VFASCII,VOVER4        SKIP IF ASCII CODE SET 
          SETRAN 0           -         TURN TRANLATION ON FOR BCD 
VOVER4    RPLACE VCAOO       -         STORE O
          RPLACE VCAVV       -         STORE V
          RPLACE VCAEE       -         STORE E
          RPLACE VCARR       -         STORE R
          RPLACE VCAPERIOD   -         STORE .
          RPLACE VCAPERIOD   -         STORE .
          TPLDL  NCCC1,VTWORK          GET INITIAL VALUE COLUMN COUNT 
          TPDECR VTWORK,6    -         SUBTRACT 6 FROM COLUMN COUNT 
          TPSTR  VTWORK,NCCC1          RESTORE COLUMN COUNT 
VOVER5    TPMOVE VTZERO,VTLINESR       SET LINES REMAINING TO ZERO
          TPINCR VTLINESR,1  -         ADJUST FOR TRAILER LINE
          JUMP   VSETB,XCUTE -         JUMP TO END TRANSMISSION BLOCK 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSIDATA
*         **************                                              * 
*                                                                     * 
*     PURPOSE - TO SET UP TO PROCESS NORMAL DATA                      * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          TPMARK LEVEL1      -         MARK FIRST CHARACTER OF LINE 
          TSTMXF VFASCII,VIDAT1        SKIP IF ASCII CODE SET 
          SETRAN 0           -         TURN TRANSLATION ON FOR BCD
VIDAT1    JUMP   VSCNTL      -         JUMP TO PROCESS NORMAL DATA
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSCNTL 
*         *************                                               * 
*                                                                     * 
*     PURPOSE - TO SCAN FOR CONTROL CHARACTERS IN NORMAL DATA         * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          CHARLS VCABLANK,VCNTL3       SKIP IF ASCII CONTROL CHARACTER
VCNTL1    DCC    V4CLMNCNT,VCNTL2,STOREXIT  DECR CLM CNT, STORE, EXIT 
VCNTL2    STORE  0           -         STORE CHARACTER
          JUMP   VSFLST,XCUTE          CHECK FOR FOLD ON LAST LINE
* 
VCNTL3    CHARLS VCABKSP,VCNTL4        SKIP IF LESS THAN ASCII $08
          CHARNE I9US,VCNTL5 -         SKIP IF NOT US 
          RSTMXF VFFRAG      -         RESET FRAGMENT FLAG
          SKIP   VCNTL9      -         GO PERFORM PAGE WAIT LOGIC 
* 
VCNTL4    RCHAR  VCABLANK    -         REPLACE WITH A BLANK 
          SKIPB  VCNTL1      -         GO STORE THE BLANK 
* 
VCNTL5    CHARNE I9CR,VCNTL6 -         SKIP IF NOT CR 
          RSTRAN 0           -         TURN TRANSLATION OFF 
          TPSTLC VTESC       -         STORE ESC
          TPSTRC VTEOL       -         STORE NEW LINE 
          JUMP   VSFLST,XCUTE          CHECK FOR FOLD ON LAST LINE
* 
VCNTL6    CHARNE I9LF,VCNTL7 -         SKIP IF NOT LF 
          NOPR   EXIT        -         DISCARD THE LF CHARACTER 
* 
VCNTL7    CHARNE VCSYNC,VCNTL8         SKIP IF NOT SYNC 
          NOPR   STOREXIT    -         STORE THE SYNC AND EXIT
* 
VCNTL8    CHARNE VCAESC,VCNTLC         SKIP IF NOT ESCAPE 
          SKIPB  VCNTL4      -         REPLACE WITH A BLANK 
* 
VCNTLC    SKIPB  VCNTL1      -         GO STORE THE CHARACTER 
* 
VCNTL9    TPDECR VTLINESR,1  -         DECR LINES REMAINING ON PAGE 
          TPCMPR VTZERO,VTLINESR       TEST FOR END OF PAGE 
          STATE  VSUS,EXIT   -         NO  CHECK FOR EOS AFTER US 
          NOPR   0           -         YES
          TPMOVE VTZERO,VTLINESR       SET LINES REMAINING TO ZERO
          TPINCR VTLINESR,1  -         ADJUST FOR TRAILER LINE
          TSTMXF VFPGWAIT,VCNTLA       SKIP IF PAGE WAIT ON 
          SKIP   VCNTLB      -
VCNTLA    SETMXF VFPROMPT    -         SET PROMPT REQD SIMULATED TML
VCNTLB    STATE  VSETB,EXIT  -         DISCARD US, END XMIT BLOCK 
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSFLST 
*         *************                                               * 
*                                                                     * 
*     PURPOSE - TO CHECK FOR LINE FOLD ON LAST LINE OF PAGE           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          SETMXF VFFRAG      -         SET FRAGMENT FLAG
          TPDECR VTLINESR,1  -         DECREMENT THE LINE COUNT 
          TPCMPR VTZERO,VTLINESR       TEST FOR END OF PAGE 
          STATE  VSLFLD,EXIT -         NO  CHECK US NEXT CHARACTER
          NOPR   0           -         YES
          TSTMXF VFPGWAIT,VFLST1       YES SKIP IF PAGE WAIT SET
          SKIP   VFLST2      -
VFLST1    SETMXF VFPROMPT    -         SET PROMPT REQD SIMULATED TML
* 
VFLST2    TPMOVE VTZERO,VTLINESR       SET LINES REMAINING TO ZERO
          TPINCR VTLINESR,1  -         ADJUST FOR TRAILER LINE
          TSTMXF VFMD4C,VFLST3         SKIP IF MODE 4C
          STATE  VSFLUS,EXIT -         CHECK FOR US ON MODE 4A
* 
VFLST3    TPBKUP LEVEL1,SRC,DST        BACK UP TO FIRST CHARACTER 
          JUMP   VSETB,XCUTE -         GO END TRANSMISSION BLOCK
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSFLUS 
*         *************                                               * 
*                                                                     * 
*     PURPOSE - TO CHECK FOR US AFTER LAST LINE FOLD (MODE 4A)        * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          CHARNE I9US,VFLUS1 -         WAS NEXT CHARACTER US
          RSTMXF VFFRAG      -         RESET FRAGMENT FLAG
          STATE  VSETB,EXIT  -         DISCARD US, END XMIT BLOCK 
* 
VFLUS1    JUMP   VSETB,XCUTE -         SAVE FIRST CHAR, END XMIT BLK
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSLFLD 
*         *************                                               * 
*                                                                     * 
*     PURPOSE - TO CHECK FOR US AFTER LINE FOLDING                    * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
VLFLD4    INTCC  V4CLMNCNT   -         RESET COLUMN COUNT 
          CHARNE I9US,VLFLD6 -         WAS NEXT CHAR. US
          RSTMXF VFFRAG      -         RESET FRAGMENT FLAG
          TSTMXF VFFE,VLFLD5 -         SKIP IF FORMAT EFFECTORS PRESENT 
          STATE  VSIDATA,EXIT          DISCARD US, PROCESS NEXT LINE
VLFLD5    STATE  VSFE,EXIT   -         DISCARD US, PROCESS FE 
* 
VLFLD6    JUMP   VSIDATA,XCUTE         NOT US, PROCESS NEXT LINE
          SPC    3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
          STATPR VSUS 
*         ***********                                                 * 
*                                                                     * 
*     PURPOSE - TO CHECK FOR END OF SOURCE AFTER US                   * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* 
          RSTRAN 0           -         TURN TRANSLATION OFF 
          TPSTLC VTESC       -         STORE ESC
          TPSTRC VTEOL       -         STORE NEW LINE 
          TPRSTR VTCHAR      -         RESTORE CURRENT CHARACTER
          TSTMXF VFFE,VUS1   -         SKIP IF FE PRESENT 
          INTCC  V4CLMNCNT   -         INITIALIZE COLUMN COUNT
          JUMP   VSIDATA,XCUTE         JUMP TO PROCESS DATA 
* 
VUS1      JUMP   VSFE,XCUTE  -         JUMP TO PROCESS FE 
          SPC    3
          END 
