1TN 
          IDENT  2TN,OBUFE
          PERIPH
          BASE   MIXED
          SST    .EST 
*COMMENT  1TN - INTERACTIVE TERMINAL DRIVER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  1TN - LOW SPEED INTERACTIVE TERMINAL DRIVER. 
          SPACE  4,10 
***       1TN - LOW SPEED INTERACTIVE TERMINAL DRIVER.
*         M. H. DILATUSH     73/07/31.
*         P. D. FARRELL      74/10/15.
          SPACE  4,10 
***       *1TN* PERFORMS COMMUNICATION BETWEEN *IAF* AND *1TS*, THE PP
*         DRIVER USED BY *STIMULA*.  IT IS DESIGNED TO PROCESS A MAXIMUM
*         OF 512 TERMINALS AT 10 CHARACTERS/SECOND, WITH A MAXIMUM SPEED
*         OF 30 CHARACTERS/SECOND.  ALTHOUGH HIGHER SPEEDS CAN BE 
*         SPECIFIED VIA *STIMULA*, RESULTS ARE ONLY GUARANTEED IN THE 
*         RANGE SPECIFIED.  COMMUNICATIONS BETWEEN *1TN* AND *IAF* ARE
*         ACCOMPLISHED BY A CIRCULAR REQUEST QUEUE MAINTAINED IN *IAF*-S
*         FIELD LENGTH.  *1TN* INSERTS A REQUEST INTO THE QUEUE AND 
*         *IAF* REMOVES THE REQUEST WHEN IT HAS BEEN PROCESSED. 
          SPACE  4,10 
***       TERMINAL CONTROL OPERATIONS.
* 
*         1.  TO DELETE AN ENTIRE LINE, ENTER THE *ESC* CHARACTER.
* 
*         2.  TO DELETE A CHARACTER, ENTER THE *BACKSPACE* CHARACTER. 
* 
*         3.  TO INTERRUPT OUTPUT, ENTER *I* DURING OUTPUT.  AFTER THE
*             *INTERRUPTED* MESSAGE, OUTPUT MAY BE RESUMED BY ENTERING
*             *CR*, DISCARDED AND THE PROGRAM RESTARTED BY ENTERING *P*,
*             OR THE PROGRAM MAY BE ABORTED BY ENTERING ANYTHING ELSE.
* 
*         4.  TO TERMINATE OUTPUT, ENTER *S* WHILE OUTPUT IS ACTIVE.
          SPACE  4,10 
          LIST   X
*CALL     COMSTDR 
          LIST   *
          SPACE  4,10 
***       DAYFILE MESSAGES. 
* 
*         *     X.XXX SEC. 1TN CYCLE TIME.* = WORST CASE MAIN LOOP TIME.
* 
*         * 667X MALFUNCTION.* = A NON-TIMEOUT ERROR OCCURRED.
* 
*         *     X.XXX KILO. 1TN REQUEST CPU.* = NUMBER OF TIMES *1TN* 
*         ISSUED *RCLM*  (BECAUSE THE CIRCULAR REQUEST STACK HAD BECOME 
*         HALF FULL). 
* 
*         *TTXXX, FNY, FUNCTION TIMEOUT.* = CHANNEL REMAINED ACTIVE FOR 
*         MORE THAN FOUR MAJOR CYCLES AFTER FUNCTION Y WAS ISSUED.
* 
*         * TOO MANY MUX PORTS.* = SELF EXPLANATORY.
          SPACE  4,10 
***       ERRLOG MESSAGES.
* 
*         *TTXXX, FNY, FUNCTION TIMEOUT.* = CHANNEL REMAINED ACTIVE FOR 
*         MORE THAN FOUR MAJOR CYCLES AFTER FUNCTION Y WAS ISSUED.
          SPACE  4,10 
**        DEFINE BLOCK ORDER. 
  
  
          QUAL   CTL         CONTROL
          QUAL   RDM         READ MODE
          QUAL   WTM         WRITE MODE 
          QUAL   TRN         TRANSLATION
          QUAL
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPMAC 
*CALL     COMSACC 
*CALL     COMSCPS 
*CALL     COMSPIM 
*CALL     COMSPRD 
*CALL     COMSREM 
*CALL     COMSSCD 
*CALL     COMPCHI 
*CALL     COMSTCM 
 PT       IF     DEF,VAVPT
          ERR    POLLED TERMINAL SUPPORT DELETED. 
          SPACE  4
***       POLLED TERMINAL PROCESSING. 
* 
*         SUPPORT OF POLLED (I.E. NIXDORF) TERMINALS HAS BEEN 
*         REMOVED WITH THIS RELEASE OF THE MULTIPLEXER DRIVER.
* 
*         REFER TO PRIOR DRIVER RELEASES THROUGH LEVEL 460 FOR
*         LISTINGS OF POLLED TERMINAL SUPPORT CODE. 
* 
*         THE USER WHO WISHES TO INSTALL POLLED TERMINAL PRO- 
*         CESSING DERIVED FROM A PRIOR VERSION OF THE DRIVER
*         SHOULD NOTE THAT THE ASSEMBLY VARIABLE *VAVPT* WHICH
*         ORIGINALLY TOGGLES THE ASSEMBLY OF THE POLLING PORTION
*         OF THE DRIVER REDUCES THE NUMBER OF MULTIPLEXERS
*         SUPPORTED (AS DEFINED BY SET VARIABLE *MXMX* IN COMMON
*         DECK *COMSREM*) FROM EIGHT TO FOUR. 
 PT       ENDIF 
          TITLE  MACRO DEFINITIONS. 
 ADCBM    SPACE  4,10 
 ADCM     SPACE  4,10 
**        ADCM - GENERATE ADD CONSTANT MACRO. 
* 
*         ADCM   OPC,TBL
*         ENTRY  *OPC* = MACRO NAME TO BE GENERATED.
*                *TBL* = TABLE NAME OF ADDRESSES OF MACRO CALLS.
  
  
 ADCM     MACRO  OPC,TBL,INST 
 OPC      MACRO  CNST 
          LOCAL  A
          QUAL
          IFC    EQ,$INST$$ 
 A        ADC    CNST 
          ELSE   1
 A        INST   CNST 
          ENDIF 
          QUAL   *
 TBL      RMT 
          CON    A
 TBL      RMT 
          ENDM
 ADCM     ENDM
  
  
*         DEFINE MACROS.
  
  
          ADCM   ADCRA,TRAA 
          ADCM   LDCRA,TRAA,LDC 
          ADCM   ADCTR,TTRA 
          ADCM   ADCPT,TPTA 
          ADCM   ADCPL,TPLA 
          ADCM   LDCDQ,TDQA,LDC 
          ADCM   LMCDQ,TDQA,LMC 
          ADCM   ADCBM,TBMA 
          ADCM   LDCTN,TTNA,LDC 
 ASCO     SPACE  4,10 
**        ASCO - GENERATE MULTIPLEXER OUTPUT FOR *ASCII* CODE.
* 
* 
*NAME     ASCO   CH,EQU 
*         ENTRY  *NAME* = NAME FOR ASSIGNMENT OF CODE.
*                *CH* = *ASCII* CHARACTER VALUE IN HEXIDECIMAL. 
*                *EQU* = ASSIGNMENT PSEUDO OP.
  
  
          MACRO  ASCO,A,C,D 
  PAR 0#_C,0
A D 4000+2*0#_C+.1
          ENDM
 CORO     SPACE  4,10 
**        CORO - GENERATE MULTIPLEXER OUTPUT FOR CORRESPONDENCE CODE. 
* 
* 
*NAME     CORO   CH,EQU 
*         ENTRY  *NAME* = NAME FOR ASSIGNMENT OF CODE.
*                *CH* = CORRESPONDENCE CODE IN OCTAL. 
*                *EQU* = ASSIGNMENT PSEUDO OP.
  
  
          MACRO  CORO,A,C,D 
   PAR C_B,1
A D 4000+.1*200+C*2+1 
          ENDM
 PAR      SPACE  4,10 
**        PAR - GENERATE CHARACTER PARITY BIT.
* 
* 
*         PAR    CH,OE
*         ENTRY  *CH* = CHARACTER VALUE.
*                *OE* = ODD/EVEN (0=EVEN, 1=ODD)
*         EXIT   *.1* = PARITY. 
  
  
 PAR      MACRO  A,B
P MICRO A+1,1, 011010011001011010010110011010011001011001101001011010011
,00101101001011001101001011010011001011001101001100101101001011001101001
.1 SET "P"&;B 
          ENDM
 TTADD    SPACE  4,10 
**        TTADD - GENERATE TERMINAL TABLE ADDRESS.
* 
* 
*TAG      TTADD  NAM,OPR,TNUM 
* 
*         ENTRY  *NAM* = DESIRED WORD OF TERMINAL TABLE ENTRY.
*                *OPR* = OPERAND TO LOAD A. (IF NULL *LDD*) 
*                *TNUM* = TAG NAME OF TERMINAL NUMBER. (IF NULL *TN*) 
* 
*         EXIT   (A) = DESIRED ADDRESS. 
  
  
          MACRO  TTADD,TAG,NAM,OPR,TNUM 
  LOCAL A 
TAG  TTAP OPR,TNUM
  QUAL
A ADC NAM 
  QUAL *
TTTA RMT
  CON A 
TTTA RMT
          ENDM
 RETURN   SPACE  4,10 
**        RETURN - RETURN TO MANAGER TO ADVANCE TERMINAL PROCESSING.
* 
* 
*         RETURN EXIT,ADDR
* 
*         ENTRY  *EXIT* = MANAGER EXIT NUMBER.
*                *ADDR* = MANAGER RETURN ADDRESS. 
*                IF *ADDR* IS NULL, RETURN TO NEXT PROGRAM ADDRESS. 
  
  
          PURGMAC RETURN
  
 RETURN   MACRO  N,A
 AA IFC EQ,*A** 
  RJM N_. 
 AA ELSE
  LDC A 
  QUAL
  NOREF ._N 
 BB IF DEF,._N
 BB IFLT *-._N,36B
  UJN ._N 
 ._N SET *-1
 BB ELSE
  LJM N 
 ._N SET *-2
 BB ENDIF 
  QUAL *
 AA ENDIF 
          ENDM
          TITLE  TRANSLATION TABLE MACROS.
 TRANS    SPACE  4,10 
***       TRANSLATION TABLES. 
* 
* 
*         TRANSLATION TABLES ARE PROVIDED FOR A NUMBER OF DIFFERENT 
*         TERMINALS.  THE TABLES MAY RESIDE IN EITHER PPU OR CENTRAL
*         MEMORY.  AN INSTALLATION MAY ELECT TO CHANGE THE RESIDENCY
*         OF A TABLE OR TO DELETE IT ENTIRELY.  THE FOLLOWING MACROS
*         CONTROL THE ASSEMBLY AND LOADING OF THE TABLES. 
*         A CM RESIDENT TABLE WILL REQUIRE A LONGER SERVICE TIME
*         FOR THE ASSOCIATED TERMINAL, AND THIS RESIDENCY SHOULD
*         NOT BE USED FOR TERMINALS WHICH ARE COMMONLY CONNECTED. 
*         THE SHORTEST SERVICE TIME WILL BE FOR THE FIRST 
*         DEFINED PPU RESIDENT TRANSLATION TABLE. 
          SPACE  4,10,10
**        ASSEMBLY VARIABLE *VPPT*. 
* 
*         THIS ASSEMBLY VARIABLE CONTROLS THE ASSEMBLY OF 
*         TRANSLATION TABLE PROCESSING SUBROUTINES.  IF 
*         THERE ARE TO BE NO PPU RESIDENT TRANSLATION 
*         TABLES ASSEMBLED, IT MUST BE SET TO ZERO, OTHER-
*         WISE IT MUST BE SET NON ZERO. 
  
  
 VPPT     SET    1
 TRANS    SPACE  4,10 
**        TRANS - GENERATE TRANSLATION TABLE OVERLAY. 
* 
* 
* NAM     TRANS  CD,RD,CL,SL,WT,IL,OL,ET,TX,IP,TC 
* 
*         ENTRY  *NAM* = TRANSLATION TABLE NAME.
* 
*                PARAMETERS IN ADDRESS FIELD ARE EQUIVALENCED.
*                UNSPECIFIED PARAMETERS DEFAULT TO *ASCII* TERMINAL.
* 
*               *NAM = TERMINAL TYPE NAME FOR USE IN *TERM* COMMAND.* 
*                *CD = CODE FOR DETERMINATION OF TERMINAL TYPE* 
*                *RD = NAME OF READ ROUTINE*
*                *CL = NAME OF COMMAND LINE INPUT ROUTINE*
*                *SL = NAME OF SOURCE LINE INPUT ROUTINE* 
*                *WT = NAME OF WRITE ROUTINE* 
*                *IL = LENGTH OF INPUT TRANSLATION TABLE* 
*                *OL = LENGTH OF OUTPUT TRANSLATION TABLE*
*                *ET = EQUIVALENCED TABLE NAME.*
*                *TX = TEXT OF SUBTITLE*
*                *IP = DISPLAY CODE INPUT PROMPT CHARACTER.*
*                *TC = TRANSMISSION CODE FOR TABLE IDENTIFICATION.* 
*                      *ASC* = ASCII (DEFAULT). 
*                      *COR* = CORRESPONDENCE.
  
  
*         TRANSMISSION CODE TYPES.
  
 ASC      EQU    0           ASCII
 COR      EQU    1           CORRESPONDENCE 
 NIX      EQU    2           NIXDORF
  
          QUAL   TRN
  
*         TRANSLATION TABLE ASSEMBLY VARIABLES. 
  
 CDTT     MICRO  1,,         TERMINAL TYPE IDENTIFICATION CODES 
 RSTT     SET    0           RESIDENCY CONTROL
 .N       SET    0           OVERLAY NAME COUNTER 
 .T       SET    0           TRANSLATION TABLE COUNTER
  
*         PPU RESIDENT ASSEMBLY VARIABLES.
  
 IAPP     MICRO  1,,         INPUT TRANSLATION TABLE ADDRESSES
 OAPP     MICRO  1,,         OUTPUT TRANSLATION TABLE ADDRESSES 
 ONPP     MICRO  1,,         OVERLAY NAMES
 TCPP     MICRO  1,,         TERMINAL CODES 
 TNPP     MICRO  1,,         TERMINAL NAMES 
 LNPP     SET    0           LENGTH OF PP RESIDENT TRANSLATION TABLES 
 NPPT     SET    0           NUMBER OF PP RESIDENT TRANSLATION TABLES 
  
*         CM RESIDENT ASSEMBLY VARIABLES. 
  
 IACM     MICRO  1,,         INPUT TRANSLATION TABLE ADDRESSES
 OACM     MICRO  1,,         OUTPUT TRANSLATION TABLE ADDRESSES 
 ONCM     MICRO  1,,         OVERLAY NAMES
 LNCM     MICRO  1,,         LENGTH OF CM TRANSLATION TABLES
 TCCM     MICRO  1,,         TERMINAL CODES 
 TNCM     MICRO  1,,         TERMINAL NAMES 
 LNCM     SET    0           LENGTH OF CM TRANSLATION TABLES
  
          NOREF  NPPT,RSTT,.N,.T
  
          MACROE TRANS,NAM,CD,RD,CL,SL,WT,IL,OL,ET,TX,IP,TC 
 RES      HERE
          QUAL   TRN
  
*         GENERATE OVERLAY NAME CHARACTER.
  
 .N       MICRO  .N+1,1 NOPQRSTUVWXYZ0123456789 
 .N       MICRO  1,, J".N"
 .N       SET    .N+1 
  
*         GENERATE OVERLAY DATA.
  
          TTL    1TN/9".N" - LOW SPEED INTERACTIVE TERMINAL DRIVER. 
 NAM      TITLE  TX 
          BSS    0
 .1       IFC    EQ,*ET** 
          IDENT  9".N",0     TX 
*COMMENT  1TN - TX
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          ORG    0
  
*         SET CONTROL WORD TABLE. 
  
          QUAL   RDM
          ORG    /CTL/RDP 
          CON    RD ARD 
          ORG    /CTL/ECL 
          CON    CL ACL 
          ORG    /CTL/ESL 
          CON    SL ASL 
          QUAL   WTM
          ORG    /CTL/WTP 
          CON    WT AWT 
          ORG    /CTL/IPC 
          DATA   IP 7555
          QUAL   TRN
          BSS    TCTAL-*
 .1       ENDIF 
 RES      RMT 
* 
*         DEFINE TRANSLATION TABLES.
* 
 .1       IFC    EQ,*ET** 
 INP      BSS    0
          BSS    IL 200 
 OTP      SET    *
          BSS    OL 220 
          QUAL   NAM
          IFEQ   /TRN/RSTT,1,3
 IA       EQU    /TRN/LNPP+/TRN/INP+TCTA
 OA       EQU    /TRN/LNPP+/TRN/OTP+TCTA
 ONPP     MICRO  1,, "ONPP"2R".N",
          IFEQ   /TRN/RSTT,2,3
 IA       EQU    /TRN/LNCM+/TRN/INP/4 
 OA       EQU    /TRN/LNCM+/TRN/OTP/4 
 ONCM     MICRO  1,, "ONCM"2R".N",
 RSTT     SET    /TRN/RSTT
 .1       ELSE
          QUAL   NAM
 IA       EQU    /ET/IA 
 OA       EQU    /ET/OA 
 RSTT     SET    /ET/RSTT 
          QUAL   TRN
 RSTT     SET    /ET/RSTT 
          QUAL   NAM
 .1       ENDIF 
 LN       BSS    0
          QUAL   TRN
* 
*         SET TABLE ADDRESSES.
* 
          IFEQ   RSTT,1 
 IAPP     MICRO  1,, "IAPP"/NAM/IA, 
 OAPP     MICRO  1,, "OAPP"/NAM/OA, 
 TCPP     MICRO  1,, "TCPP"CD,
 TNPP     MICRO  1,, "TNPP"42/0L_NAM,18/TC, 
          IFC    EQ,$ET$$,1 
 LNPP     SET    LNPP+/NAM/LN 
 NPPT     SET    NPPT+1 
 .T       SET    .T+1 
          ENDIF 
* 
*         PROCESS CM RESIDENT TRANSLATION TABLES. 
* 
          IFEQ   RSTT,2 
          QUAL   NAM
 CM       SET    LN+4 
 CM       SET    CM/5*5 
 CM       SET    CM+3 
 CM       SET    CM/4 
          QUAL   TRN
 IACM     MICRO  1,, "IACM"/NAM/IA, 
 LNCM     MICRO  1,, "LNCM"/NAM/CM, 
 OACM     MICRO  1,, "OACM"/NAM/OA, 
 TCCM     MICRO  1,, "TCCM"CD,
 TNCM     MICRO  1,, "TNCM"42/0L_NAM,18/TC, 
          IFC    EQ,$ET$$,1 
 LNCM     SET    LNCM+/NAM/CM 
 .T       SET    .T+1 
          ENDIF 
 RSTT     SET    0
 RES      RMT 
          ENDM
 TRES     SPACE  4,10 
**        TRES - DEFINE TRANSLATION TABLE RESIDENCY.
* 
* 
*         TRES   RES
* 
*         ENTRY  *RES* = RESIDENCY TYPE.
*                *CM* = CENTRAL MEMORY. 
*                *PPU* = PP RESIDENT. 
*                BLANK TABLE NOT DEFINED. 
  
  
 TRES     MACRO  A
 RSTT     SET    0
          IFC    EQ,*A*PPU*,1 
 RSTT     SET    1
          IFC    EQ,*A*CM*,1
 RSTT     SET    2
 RES      HERE
          ENDM
          SPACE  4,10 
**        SYMBOL EQUIVALENCES FOR TRANSLATION MACROS. 
  
  
 .1       SET    0
 .2       SET    0
 .3       SET    0
 UC       EQU    3           UPPER CASE 
 LC       EQU    1           LOWER CASE 
          NOREF  .1,.2,.3,,UC,LC
 INASC    SPACE  4,10 
**        INASC - GENERATE *ASCII* INPUT TRANSLATION. 
* 
* 
*CH       INASC  DPC,PROC 
* 
*         ENTRY  *CH* = *ASCII* CHARACTER VALUE IN HEXIDECIMAL. 
*                *DPC* = DISPLAY CODE VALUE.
*                *PROC* = SPECIAL PROCESSOR CODE. 
  
  
          MACRO  INASC,A,C,D
  IFC NE,*C** 
.2 SET D
.3 SET C/100
  IFNE .3,0,2 
.2 SET D CES
.3 SET .3/2-74/2
   VFD 5/.2,1/.3,6/C-C/100*100
  ELSE 2
.2 SET D NLI
   VFD 5/.2,7/0 
          ENDM
 OTASC    SPACE  4,10 
**        OTASC - GENERATE *ASCII* OUTPUT TRANSLATION.
* 
* 
*DPC      OTASC  CH,PROC
* 
*         ENTRY  *CH* = *ASCII* CHARACTER VALUE IN HEXIDECIMAL. 
*                *DPC* = DISPLAY CODE VALUE.
*                *PROC* = SPECIAL PROCESSOR CODE. 
  
  
          MACRO  OTASC,A,C,D
  IFC NE,*C** 
.2 ASCO C,SET 
  CON .2
  ELSE 1
  CON D NLO 
          ENDM
 INCOR    SPACE  4,10 
**        INCOR - GENERATE CORRESPONDENCE CODE INPUT TRANSLATION. 
* 
* 
*CH       INCOR  DPC,PROC 
* 
*         ENTRY  *CH* = CORRESPONDENCE CHARACTER VALUE IN OCTAL.
*                *DPC* = DISPLAY CODE VALUE.
*                *PROC* = SPECIAL PROCESSOR CODE. 
  
  
          MACRO  INCOR,A,C,D
  IFC NE,*C** 
.2 SET D
.3 SET C/100
  IFNE .3,0,2 
.2 SET D CES
.3 SET .3/2-74/2
   VFD 5/.2,1/.3,6/C-C/100*100
  ELSE 2
.2 SET D NLI
   VFD 5/.2,7/0 
          ENDM
 OTCOR    SPACE  4,10 
**        OTCOR - GENERATE CORRESPONDENCE CODE OUTPUT TRANSLATION.
* 
* 
*DPC      OTCOR  CH,PROC
*         ENTRY  *CH* = CORRESPONDENCE CHARACTER VALUE IN OCTAL.
*                *DPC* = DISPLAY CODE VALUE.
*                *PROC* = SPECIAL PROCESSOR CODE. 
  
  
          MACRO  OTCOR,A,C,D
  IFC NE,*C** 
.2 CORO C,SET 
.3 SET D 1
   CON .2+1000*.3 
   ELSE 1 
   CON D NLO
          ENDM
 PT       IF     DEF,VAVPT
OTNIX     SPACE  4,10,5 
**        OTNIX - GENERATE NIXDORF CODE OUTPUT TRANSLATION
* 
*         OTNIX  DC 
* 
*         ENTRY - *DC* = DISPLAY CODE CHARACTER VALUE IN OCTAL. 
  
  
 OTNIX    MACRO A 
  NOREF .2
.2 SET A_B
  PAR .2,1
  CON 4200+.2*2+.1
          ENDM
 PT       ENDIF 
          SPACE  4,10 
          QUAL
          TITLE  SYMBOLIC EQUIVALENCES. 
          SPACE  4,10 
****      DIRECT LOCATION ASSIGNMENTS.
  
  
  
 DP       EQU    20 - 24     TERMINAL TABLE WORD *VDPT* 
 CH       EQU    25 - 31     TERMINAL TABLE WORD *VCHT* 
 DC       EQU    32 - 36     TERMINAL TABLE WORD *VDCT* 
  
 ME       EQU    37          CURRENT MULTIPLEXER NUMBER 
  
 ZR       EQU    40 - 44     ZERO WORD
 IN       EQU    42 - 46     CIRCULAR QUEUE INPUT ADDRESS 
 SM       EQU    47          SIMULATOR MODE FLAG
  
 RQ       EQU    50 - 54     TELEX REQUEST WORD 
 TN       EQU    54          CURRENT TERMINAL NUMBER
 DI       EQU    55          DATA IN POINTER
 DO       EQU    56          DATA OUT POINTER 
*         EQU    57 
  
 SI       EQU    60 - 64     STATUS INFORMATION STORED IN (MA)
*         EQU    60          COUNT OF MONITOR REQUESTS
 MS       EQU    61          MILLISECOND CLOCK
 IT       EQU    62          INTERVAL TIMER (SET TO 1 EACH HALF SECOND) 
*         EQU    63          MAXIMUM CYCLE TIME 
*         EQU    64          CURRENT CYCLE TIME 
*         EQU    65          UNUSED 
*         EQU    66          UNUSED 
*         EQU    67          UNUSED 
  
  
  
  
**        TIME OUT LIMITS.
* 
*         THESE VALUES MUST NOT EXCEED 3777B.  THE LIMIT IS STORED IN 
*         THE DATA OUTPUT WORD FOR THE TERMINAL AND THE PRESENCE OF 
*         BIT 13 INDICATES TO THE MULTIPLEXER THAT THE BYTE IS A
*         VALID DATA CHARACTER. 
* 
*         THE UNITS ARE .5 SECONDS. 
  
  
 ATIO     EQU    7           ANSWERBACK TIME OUT
 UTIO     EQU    2*60D*2     USER NUMBER TIME OUT 
 NTIO     EQU    10D*60D*2   NORMAL TIME OUT
  
  
  
  
**        PROGRAM EQUIVALENCES. 
  
  
 MC       EQU    15          MULTIPLEXER CHANNEL
  
 MXTT     EQU    37          MAXIMUM NUMBER OF TRANSLATION TABLES 
 MNCT     EQU    15D         MINIMUM CYCLE TIME 
 MXIC     EQU    150D        MAXIMUM INPUT CHARACTERS/LINE
 MXTC     EQU    2000D       MAXIMUM TRANSACTION CHARACTERS/LINE
 OBUF     EQU    100         FIRST OUTPUT BUFFER
 .OBUF    MAX    300B,OBUF+100*MXMX 
 OBUFE    EQU    .OBUF
 TCTAL    EQU    10          LENGTH OF TRANSLATION TABLE CONTROL TABLE
          ERRNG  MXTC-MXIC   MXTC MUST ALWAYS BE GREATER THAN MXIC
          SPACE  4,10 
**        CHARACTER EQUIVALENCES. 
  
  
*         INTERNAL CODES. 
  
 .ICR     EQU    210         CARRIAGE RETURN
 .ILF     EQU    211         LINE FEED
 .INL     EQU    212         NEW LINE (CR/LF) 
 .ISTR    EQU    205         START TAPE READER
 .IISI    EQU    4042        INITIATE STIMULATOR INPUT
 .IISE    EQU    4050        HANG UP STIMULATOR PHONE 
 .ECP     EQU    770001      END OF CURRENT POT 
  
*         CARRIAGE CONTROL MICROS.
  
 CR       MICRO  1,, @H      CARRIAGE RETURN
 LF       MICRO  1,, @I      LINE FEED
 NL       MICRO  1,, @J      NEW LINE (CR/LF) 
  
*         *ASCII* TERMINAL CONTROL CHARACTERS.
  
 .ANUL    ASCO   00,EQU      (NUL) NULL 
 .AENQ    ASCO   05,EQU      (ENQ) ENQUIRY (REQUEST ANSWER BACK)
 .ALF     ASCO   0A,EQU      (LF)  LINE FEED
 .ACR     ASCO   0D,EQU      (CR)  CARRIAGE RETURN
 .ADC1    ASCO   11,EQU      (DC1) DEVICE CONTROL 1 
 .ADEL    ASCO   7F,EQU      (DEL) DELETE 
  
*         CORRESPONDENCE CODE TERMINAL CONTROL CHARACTERS.
  
 .CUC     CORO   34,EQU      (UC)  UPPER CASE SHIFT 
 .CBS     CORO   35,EQU      (BS)  BACKSPACE
 .CLC     CORO   37,EQU      (LC)  LOWER CASE SHIFT 
 .CNL     CORO   55,EQU      (NL)  NEW LINE 
 .CLF     CORO   56,EQU      (LF)  LINE FEED
 .CEOA    CORO   64,EQU      (EOA) END OF ADDRESS 
 .CEOT    CORO   74,EQU      (EOT) END OF TRANSMISSION
 .CIL     CORO   75,EQU      (IL)  IDLE 
****
          SPACE  4,10 
**        TERMINAL TABLE CONTROL WORD LOCATIONS.
  
          QUAL   CTL
          LOC    0
 RDP      BSS    1           READ PROCESSOR 
 ECL      BSS    1           COMMAND LINE PROCESSOR 
 ESL      BSS    1           SOURCE LINE PROCESSOR
 WTP      BSS    1           WRITE PROCESSOR
 IPC      BSS    1           INPUT PROMPT CHARACTER 
          BSS    TCTAL-*     RESERVED 
          LOC    *O 
          QUAL   *
          TITLE  MAIN PROGRAM.
          ORG    OBUFE
 AVT      SPACE  4,10 
 AVTA     CON    0
**        AVT - ADVANCE TIME. 
  
  
 AVT0     LJM    DRP         DROP PPU 
  
 AVT      LDC    RTCL        READ REAL TIME CLOCK 
          CRD    CM 
          LDD    CM+4        CHECK MILLISECONDS 
          SBD    MS 
          PJN    AVT1        IF NO OVERFLOW 
          ADC    10000
 AVT1     STD    SI+4        SET CYCLE TIME 
          SBD    SI+3        CHECK CYCLE TIME 
          MJN    AVT2        IF MAXIMUM NOT EXCEEDED
          RAD    SI+3        SET NEW MAXIMUM
  
*         CHECK ERROR AND DEBUG FLAGS.
  
 AVT2     BSS    0
          LDD    CP          CHECK ERROR FLAG 
          ADN    STSW 
          CRD    T0 
          LDD    T1 
          NJN    AVT0        IF ERROR FLAG SET
          ADCRA  DBUG 
          CRD    T0          READ *DBUG* WORD 
          LDD    T4 
          ZJN    AVT3        IF NOT STOPPED 
          SBN    1
          NJN    *-1
          UJN    AVT2        LOOP 
  
 AVT3     STD    ME          RESET MULTIPLEXER INDEX
          LDD    T3 
          STD    T4 
          LDCRA  DBUG 
          CWD    T0 
 AVT4     LDD    CM+4 
          SBD    MS 
          PJN    AVT5        IF NO OVERFLOW 
          ADC    10000
 AVT5     SBD    T1 
          PJN    AVT6        IF MINIMUM CYCLE TIME EXCEEDED 
          LDC    125D        DELAY .25 MILLI-SECONDS
          SBN    1
          NJN    *-1
          LDC    RTCL        READ REAL TIME CLOCK 
          CRD    CM 
          UJN    AVT4 
  
 AVT6     LDD    CM+4        SET NEW MILLISECOND TIME 
          STD    MS 
          SHN    -11         CHECK INTERVAL 
          SHN    17 
          LMD    CM+3 
          SHN    3
          LPC    7777 
          SBM    AVTA 
          ZJN    AVT7        IF NO CHANGE 
          RAM    AVTA 
          LDN    1           SET INTERVAL TIMER 
 AVT7     STD    IT 
          ZJN    AVT8        IF NOT .5 SECONDS
          LDN    10          SET NUMBER OF USERS TO ALLOW TO LOG IN 
          STM    /CTL/DINA
 AVT8     LDD    MA          WRITE STATUS INFORMATION 
          CWD    SI 
*         LJM    ITD         LOOP TO FIRST MULTIPLEXER
 ITD      SPACE  4,10 
**        ITD - MAIN PROGRAM. 
  
  
 ITD      BSS    0
 .TNA     LDN    0           RESET FIRST *TELEX* TERMINAL NUMBER
          STD    TN 
  
*         SET BUFFER ADDRESSES FOR NEXT MULTIPLEXER.
  
 ITD1     LDC    IBUF        SET INPUT BUFFER ADDRESS 
          STD    DI 
          LDM    TEQN,ME     READ EST ENTRY 
          SFA    EST
          ADK    EQDE 
          CRD    CM 
          LDD    CM+1        CLEAR UPPER BITS 
          LPN    37 
          STD    CM+1 
          LDC    TCHS        SET FWA OF CHANNEL TABLE 
          STD    T1 
          UJN    ITD1.2      ENTER CHANNEL MODIFICATION LOOP
  
 ITD1.1   RAI    T2          MODIFY INSTRUCTION 
          AOD    T1 
 ITD1.2   LDI    T1          LOAD NEXT CHANNEL INSTRUCTION
          STD    T2 
          LDD    CM+1 
          CHTL   *
          SBN    MC 
          NJN    ITD1.1      IF MORE CHANNELS TO BE MODIFIED
          UJN    STM         PROCESS STIMULATOR MUX 
  
 ITD2     BSS    0
          LDCDQ  3           READ CIRCULAR QUEUE OUTPUT POINTER 
          CRD    CM 
          LDD    IN+3        IN - OUT 
          SBD    CM+3 
          SHN    14 
          ADD    IN+4 
          SBD    CM+4 
          PJN    ITD3        IF IN .GE OUT
          ADC    VDSL 
 ITD3     ADC    -VDSL/2
          MJN    ITD4        IF QUEUE NOT OVER HALF FULL
          LDN    RCLM        RECALL CPU 
          RJM    MRQ
          AOD    SI          COUNT MONITOR REQUEST
 ITD4     AOD    ME          ADVANCE MULTIPLEXER
          LDM    TEQN,ME
          ZJN    ITD5        IF ALL MULTIPLEXERS PROCESSED
          LJM    ITD1        PROCESS NEXT MULTIPLEXER 
  
 ITD5     LJM    AVT
 STM      SPACE  4,10 
**        STM - PROCESS STIMULATOR. 
  
  
 STM      BSS    0
          LDM    TNTD,ME
          STD    SM 
          IJM    STM3,MC     IF STIMULATOR NOT RUNNING
          AOD    SM 
          LDC    STMA        STUFF INSTRUCTIONS 
          STD    DO 
          LDC    STMB 
          STD    DI 
          LCN    0
          UJN    STM2 
  
*         ENTERED HERE FROM OTHER ROUTINES. 
  
 STM1     IJM    STM3,MC     IF STIMULATOR DROPPED
          LDC    0
 STMA     EQU    *-1
 STM2     OAN    MC 
          FJM    *,MC        WAIT FOR EMPTY 
          SOD    SM          COUNT TERMINAL 
          ZJN    STM3        IF ALL TERMINALS PROCESSED 
          LDN    0
          STI    DO 
          IAN    MC          INPUT DATUM
          STM    STMB 
          LJM    /CTL/MGR2   PROCESS TERMINAL DATA
  
 STM3     LDD    SM 
          RAD    TN 
          LDN    0
          STD    SM 
          LJM    ITD2        PROCESS NEXT MUX 
  
 STMB     CON    0
  
  
**        TCHS - MUX CHANNEL TABLE. 
  
  
 TCHS     CHTB               CHANNEL TABLE
 COMMON   SPACE  4,10 
**        COMMON DECKS. 
  
  
 EST$     EQU    1           SELECT EST PROCESSOR 
*CALL     COMPGFP 
          TITLE  TERMINAL MANAGER.
 MGR      SPACE  4,10 
**        MGR - TERMINAL MANAGER. 
* 
*         THE TERMINAL MANAGER PERFORMS THE STATUS CHECKS UPON THE
*         INPUT DATA FROM THE EACH PORT OF THE MULTIPLEXER. 
*         IF ACTION IS REQUIRED FOR THE TERMINAL, THE TERMINAL
*         TABLE WORDS *VDPT* AND *VCHT* ARE READ AND THE INDICATED
*         RE-ENTRANT ROUTINE ENTERED. 
 EXI      SPACE  4,10 
**        EXI - RE-ENTRANT ROUTINE RETURNS. 
  
  
*         STORE *VDPT*. 
  
 EXI1.    CON    0
          LDM    EXI1.       SET RE-ENTRY ADDRESS 
 EXI1     STD    DP+4        RESET ROUTINE POINTER
 EXI2     TTADD  VDPT 
          CWD    DP 
          LJM    MGR
  
*         STORE *VDPT* AND *VCHT*.
  
 EXI3.    CON    0
          LDM    EXI3.       SET RE-ENTRY ADDRESS 
 EXI3     STD    DP+4        RESET ROUTINE POINTER
 EXI4     TTADD  VDPT        RESET VDPT AND VCHT
          CWD    DP 
          ADN    VCHT-VDPT
          CWD    CH 
          UJN    MGR
  
*         STORE *VDPT*, *VCHT*, AND *VDCT*. 
  
 EXI5.    CON    0
          LDM    EXI5.       SET RE-ENTRY ADDRESS 
 EXI5     STD    DP+4        RESET ROUTINE POINTER
          TTADD  VDPT        RESET VCPT, VCHT, AND VDCT 
          CWM    DP,TR
          UJN    MGR
  
*         STORE *VDPT* AND CLEAR DATA OUTPUT. 
  
 EXI6.    CON    0
          LDM    EXI6.       SET RE-ENTRY ADDRESS 
 EXI6     STD    DP+4        RESET ROUTINE POINTER
 EXI7     TTADD  VDPT        RESET VDPT 
          CWD    DP 
          LDN    0           CLEAR DATA OUT 
          STI    DO 
 MGR      SPACE  4,10 
**        MGR - TERMINAL MANAGER. 
  
  
          QUAL   CTL
  
 MGR      LJM    STM1        EXIT TO STIMULATOR MANAGER 
  
 MGR2     SHN    21-11
          MJN    MGR4        IF ON LINE 
  
*         CHECK STATUS OF OFF LINE TERMINAL.
  
          TTADD  VDPT,AOD,TN
          CRD    DP 
          LDD    DP+4        CHECK ROUTINE ADDRESS
          ADC    -DIN 
          ZJN    MGR         IF WAITING FOR ON LINE 
          MJN    MGR3        IF NOT LINE PROCESSING 
          ADC    -OFLE+DIN
          MJN    MGR5        IF LINE PROCESSING 
 MGR3     LJM    OFL         SET OFF LINE 
  
*         PROCESS TERMINAL ON LINE. 
  
 MGR4     SHN    33-10
          MJN    MGR6        IF CHARACTER REJECT
          TTADD  VDPT,AOD,TN
          CRD    DP 
          ADN    VCHT-VDPT
          CRD    CH 
  
 MGR5     LDI    DI 
          SHN    21-13
          LJM    0,DP+4      ENTER ROUTINE
  
 MGR6     SHN    32-13
          MJN    MGR7        IF INPUT RECEIVED
          AOD    TN 
          LJM    MGR
  
 MGR7     TTADD  VDPT,AOD,TN  CHECK ROUTINE ADDRESS 
          CRD    DP 
          ADN    VCHT-VDPT
          CRD    CH 
          LDD    DP+4 
          ADC    -WTM 
          MJN    MGR5        IF NOT WRITE MODE
          ADC    -WTME+WTM
          PJN    MGR5        IF NOT WRITE MODE
*         UJN    CIS
 CIS      SPACE  4,10 
**        CIS - CHECK INTERRUPT STATUS. 
* 
*         CIS DETERMINES THE STATUS OF A SUSPECTED INTERRUPT INPUT
*         CHARACTER.  THE CHARACTER *S* IS A LEVEL 0 INTERRUPT TO 
*         *TELEX* AND AN *INTERRUPT* AND THE CHARACTER *I* ARE LEVEL 1
*         INTERRUPTS TO *TELEX*.
  
  
 CIS      LDD    DP+1        CHECK FOR TERMINAL MESSAGE 
          SHN    -6 
          STI    DO          CLEAR OUTPUT 
          LMN    77 
          NJN    CIS1        IF NOT ISSUING MESSAGE 
          LJM    /WTM/WTM5   CONTINUE TERMINAL OUTPUT 
  
 CIS1     TTADD  VUIT 
          CRD    CM 
          LDD    CM+4 
          ZJN    CIS5        IF NO *EJTO* ASSIGNED, IGNORE CHARACTER
          LDI    DI          CHECK INPUT CHARACTER
          LPC    377
          NJN    CIS4        IF NOT START OF BREAK
 CIS2     LDN    100D/MNCT+1 START TIMER FOR BREAK
          STD    CH 
 CIS3     RETURN EXI3 
          MJN    CIS2        IF BREAK STILL IN PROGRESS 
          SOD    CH          DECREMENT TIMER
          NJN    CIS3        IF NOT TIMED OUT 
          UJN    INT         PROCESS AS INTERRUPT 
  
*         CHECK CHARACTER STATUS. 
  
 CIS4     SHN    -1          SET ASCCI CHARACTER
          STD    T7 
          RJM    /RDM/TIC    TRANSLATE CHARACTER
          LPN    77 
          LMN    1RS
          ZJN    INT1        IF *S* KEY 
          LMN    1RI&1RS
          ZJN    INT         IF *I* KEY 
 CIS5     LJM    MGR         IGNORE INVALID CHARACTER 
 INT      SPACE  4,10 
**        INT - PROCESS INTERRUPT.
* 
*         *INT* REQUESTS *TELEX* TO TERMINATE OUTPUT AND THE USER 
*         PROGRAM IN RESPONSE TO AN INTERRUPT FROM THE TERMINAL.
  
  
 INT      LDN    TIET+TAET
 INT1     LMN    TAET 
          STD    RQ+2 
          TTADD  VSTT        CHECK LOGOUT AND ABORT STATUS
          CRD    CM 
          LDD    CM 
          LPC    0401 
          NJN    INT2        IF LOGOUT OR DETACH IN PROGRESS
          RJM    RDC         READ VDCT TO CHECK FOR DRIVER REQUEST
          SHN    21-13
          PJN    INT3        IF NO REQUEST
          LDD    DC+4        CHECK REQUEST
          LMN    /1TD/HUP 
          NJN    INT3        IF NOT HANG UP PHONE 
 INT2    LDN    0           CLEAR REQUEST CELL
          STD    RQ+2 
          UJN    X1RWC       ENTER READ/WRITE CONTROL 
  
 INT3     LDD    DP          DROP POTS
          STD    RQ+3 
          LDN    /TLX/PUB    PROCESS USER BREAK 
          RJM    ERQ
          STD    DP          CLEAR POT POINTERS 
          STD    DP+1 
 INT3.1   RETURN EXI6 
          RJM    RDC         READ VDCT
          SHN    21-12
          MJN    INT4        IF *INTERRUPT* ACKNOWLEDGE SET 
          LJM    MGR         RETURN 
  
 INT4     SHN    1           CLEAR *INTERRUPT COMPLETE* 
          SCN    1
          SHN    12 
          STD    DC 
          TTADD  VDCT        REWRITE VDCT 
          CWD    DC 
          LDD    DC+4        CHECK DRIVER ASSIGNMENT
          NJN    X1RWC       IF PRESENT 
          LDN    /TLX/RES    REQUEST NEW ASSIGNMENT 
          RJM    ERQ
  
 X1RWC    RETURN EXI1,RWC    ENTER READ/WRITE CONTROL 
  
 CTO      SPACE  4,10 
**        CTO - CHECK TIME OUT. 
* 
*         *CTO* IS ENTERED WHEN AN INPUT CHARACTER HAS NOT BEEN 
*         RECEIVED FROM A TERMINAL.  THE ELAPSED TIME IS CHECKED, AND 
*         IF EXCEEDED, THE USER IS LOGGED OFF.
  
  
 CTO      LDI    DO          CHECK OUTPUT CHARACTER 
          SHN    6
          PJN    CTO1        IF NO DATA 
          LDN    0           CLEAR OUTPUT DATA
          STI    DO 
          UJN    CTO2 
  
 CTO1     LDD    IT          CHECK INTERVAL TIMER 
          ZJN    CTO2        IF INTERVAL NOT ELAPSED
          RAI    DO          ADVANCE TIMER
          LMC    NTIO 
          ZJN    CTO3        IF NORMAL TIME OUT ELAPSED 
          TTADD  VDCT        READ JOB STATUS WORDS
          CRD    DC 
          SBN    -VROT+VDCT 
          CRD    CM 
          LDD    CM+4        CHECK JOB STATUS 
          LPN    1
          NJN    CTO4        IF JOB NOT ACTIVE
          STI    DO          CLEAR TIMER
 CTO2     LJM    MGR         RETURN 
  
*         CHECK FOR NO TIME OUT.
  
 CTO3     RJM    RDC         READ VDCT
          LDD    DC+3        CHECK ACCESS 
          SHN    21-12       CHECK LOG-OUT BIT
          PJN    CTO5        IF NOT SET 
          LDN    0
          STI    DO          CLEAR TIMER
          LJM    MGR         RETURN 
  
 CTO4     LDD    DC+4        CHECK MESSAGE ASSIGNMENT 
          NJN    CTO7        IF MESSAGE ASSIGNED
          LDD    DC          CHECK *LOGGED IN*
          SHN    21-11
          MJN    CTO2        IF SET 
          LDI    DO          CHECK TIMER
          LMC    UTIO 
          NJN    CTO2        IF LOGIN TIME OUT NOT ELAPSED
  
*         LOG OFF USER. 
  
 CTO5     LDC    CTO6        SET REENTRY ADDRESS
          UJN    CTO9        CHECK IF SOURCE INPUT ACTIVE 
  
 CTO6     LDN    /TLX/TOT    REQUEST TIMEOUT LOGOUT 
          RJM    ERQ
          STD    DP+2        CLEAR READ STATUS
          LJM    X1RWC       ENTER READ/WRITE CONTROL 
  
*         CHECK FOR FUNCTION REQUEST. 
  
 CTO7     LDD    DC          CHECK MESSAGE TYPE 
          SHN    21-13
          PJN    CTO8        IF NOT FUNCTION REQUEST
          LJM    TFR         PROCESS *TELEX* FUNCTION REQUEST 
  
 CTO8     LDC    RWC         SET REENTRY ADDRESS
  
*         ENTRY TO FORCE SOURCE DUMP IF READ ACTIVE.
*         (A) = REENTRY ADDRESS.
  
 CTO9     STD    DP+4        SET REENTRY ADDRESS
          LDD    DP+2        CHECK IF SOURCE INPUT ACTIVE 
          SHN    21-10
          PJN    CTO10       IF INPUT NOT INITIATED 
          LPN    7           SET POT LENGTH 
          LMN    40          SET FORCED DUMP FLAG 
          STD    RQ+1 
          LDD    DP          SET FIRST, CURRENT POT 
          STD    RQ+2 
          STD    RQ+3 
          LDN    /TLX/RIN    REQUEST SOURCE INPUT DUMP
          RJM    ERQ
          STD    DP          CLEAR POINTERS 
          STD    DP+1 
          STD    DP+2 
 CTO10    LJM    EXI2 
 DIN      SPACE  4,10 
**        DIN - PROCESS USER DIALED IN. 
  
  
 DIN      LDN    0           CLEAR DATA OUTPUT
          STI    DO 
          LDC    0           CHECK LOG IN COUNT 
 DINA     EQU    *-1
          ZJN    DIN1        IF MAXIMUM REACHED 
          RJM    RDC         READ VDCT TO CHECK TERMINAL STATUS 
          ZJN    DIN2        IF LAST USER OFF 
 DIN1     LJM    MGR
  
 DIN2     LDN    ZERL        INITIALIZE NEW USER
          CRD    CH 
          CRD    DP 
          LDN    /TLX/DIN    REQUEST DIAL IN PROCESSING 
          RJM    ERQ
          SOM    DINA        DECREMENT LOG-IN COUNT 
          RETURN EXI3,LIN    PROCESS LOGIN
 HUP      SPACE  4,10 
**        HUP - HANG UP PHONE.
  
  
 HUP      LDN    20          SET DELAY TO INSURE THAT 6676 HAS SENT DATA
          STD    DP+2 
 HUP1     RETURN EXI6 
          SOD    DP+2        DECREMENT DELAY
          NJN    HUP1        IF DELAY NOT ELAPSED 
          LDD    SM 
          ZJN    HUP2        IF NOT STIMULATOR
          LDC    .IISE       ISSUE STIMULATOR HANG UP PHONE 
          UJN    HUP3        SEND CHARACTER 
  
 HUP2     LDC    6000        ISSUE HANG UP PHONE
 HUP3     STI    DO 
          RETURN EXI1 
          LDN    0           CLEAR OUTPUT 
          STI    DO 
          LDN    5*2         SET FIVE SECOND DELAY
          STD    DP+2 
          RETURN EXI1 
          LDD    IT 
          NJN    HUP4        IF HALF SECOND 
          LJM    MGR         EXIT 
  
 HUP4     SOD    DP+2 
          ZJN    HUP5        IF TIMEOUT COMPLETE
          LJM    EXI7        EXIT 
  
 HUP5     LDD    DP 
          ZJN    HUP6        IF NO POTS TO DROP 
          STD    RQ+3 
          LDN    /TLX/DRT 
          RJM    ERQ
          STD    DP 
 HUP6     STD    DP+1 
          STD    DP+3 
          RJM    CUT         CLEAN UP TERMINAL TABLE
          RETURN EXI1 
          SHN    21-11-21+13
          PJN    OFL2        IF OFF-LINE
          UJN    OFL1        ENTER DIAL IN
 OFL      SPACE  4,10 
**        OFL - PROCESS USER OFF LINE.
* 
*         OFL WILL DROP ALL POTS ASSOCIATED WITH THE TERMINAL AND 
*         NOTIFY *TELEX* TO TURN OFF THE TERMINAL.
* 
*         MUST FOLLOW *DIN*.
  
  
 OFL      BSS    0           ENTRY
          LDD    DP 
          STD    RQ+3 
          LDN    /TLX/HUP    REQUEST HUNG UP PHONE PROCESSING 
          RJM    ERQ
          STD    DP          CLEAR POINTERS 
          STD    DP+1 
          STD    DP+2 
          RETURN EXI1 
  
 ITSA     BSS    0           INITIAL TERMINAL START ADDRESS 
  
          SHN    13-11       CHECK INPUT STATUS 
          PJN    OFL3        IF NOT ON LINE 
  
*         ENTRY FROM HUP. 
  
 OFL1     RETURN EXI6,DIN    ENTER DIAL IN
  
 OFL2     LJM    MGR
  
*         RESYNC 6671 AND ENABLE PHONE ANSWERING. 
  
 OFL3     LDN    24          INSURE 6676 OUTPUT REGISTERS CLEAR 
          STD    DP+2 
 OFL4     RETURN EXI6 
          SOD    DP+2 
          NJN    OFL4        IF DELAY NOT ELAPSED 
          LDC    7000        REENABLE PHONE ANSWERING (6671)
          STI    DO 
          RETURN EXI1,OFL1   ENTER DIAL IN
          SPACE  4,10 
 OFLE     BSS    0           END OF LINE PROCESSING 
 RWC      SPACE  4,10,10
**        RWC - READ/WRITE CONTROL. 
* 
*         ENTRY  COMPLETION OF READ OR WRITE OPERATION. 
* 
*         EXIT   TO *RDM* IF INPUT RECEIVED FROM TERMINAL.
*                TO *WTM* IF MESSAGE ASSIGNMENT RECEIVED FROM *TELEX*.
*                TO *TFR* IF FUNCTION REQUEST RECEIVED FROM *TELEX*.
*                TO *CTO* IF TERMINAL IDLE. 
  
  
 RWC      RJM    CEM         CLEAR EXTENDED MODE
  
*         ENTER HERE TO PREVENT TRANSMISSION MODE CHANGE. 
*         CHECK FOR INPUT FROM TERMINAL.
  
 RWC1     LDI    DI          CHECK VALID CHARACTER FLAG 
          SHN    21-13
          PJN    RWC2        IF NO INPUT FROM TERMINAL
          LJM    RDM         ENTER READ MODE
  
*         CHECK FOR MESSAGE ASSIGNMENT OR FUNCTION REQUEST. 
  
 RWC2     RJM    RDC         READ *VDCT*
          LDD    DC+4        CHECK *VDCT* INTERLOCK 
          NJN    RWC3        IF MESSAGE ASSIGNED
          LJM    CTO         CHECK TIME OUT 
  
 RWC3     LDD    DC          CHECK MESSAGE TYPE 
          SHN    21-13
          PJN    RWC4        IF NOT FUNCTION REQUEST
          LJM    TFR         PROCESS *TELEX* FUNCTION REQUEST 
  
*         PREPARE NEW OUTPUT. 
  
 RWC4     LDD    DP          CHECK FIRST POT
          ZJN    RWC5        IF NOT ASSIGNED
          STD    RQ+3        SET POT
          LDN    /TLX/DRT    REQUEST DROP POT CHAIN 
          RJM    ERQ
 RWC5     LDD    DC+4        CURRENT POT = ASSIGNMENT 
          STD    DP 
          STD    DP+1 
          LDD    DC+1        CURRENT WORD = FIRST WORD OF ASSIGNMENT
          LPN    7
          SHN    4
          STD    DP+2 
          LDD    DC+1        CLEAR STARTING WORD
          SCN    7
          STD    DC+1 
          LDN    0           CLEAR ASSIGNMENT 
          STD    DC+4 
          RETURN EXI5,WTM    ENTER WRITE MODE 
          TITLE  LOGIN PROCESSING.
 DTT      SPACE  4,10 
**        DTT - DETERMINE TERMINAL TYPE.
* 
*         THE FIRST CHARACTER TYPED IS EXAMINED TO DETERMINE TERMINAL 
*         TYPE AND PARITY.
  
  
 DTT      MJN    DTT4        IF INPUT CHARACTER RECEIVED
          LDD    SM          CHECK STIMULATOR STATUS
          ZJN    DTT1        IF NOT STIMULATOR
          LDC    .IISI       ISSUE *INITIATE STIMULATOR INPUT*
          STI    DO 
          RETURN EXI1 
  
 DTT1     LDN    /CTL/RDP    CHECK TERMINAL TYPE
          RJM    SCA
          LMC    /RDM/CRD 
          NJN    DTT2        IF NOT CORRESPONDENCE
          LDC    .CEOT       UNLOCK KEYBOARD
          STI    DO 
          RETURN EXI1 
  
 DTT2     RETURN EXI6 
          MJN    DTT4        IF INPUT CHARACTER RECEIVED
 DTT3     LJM    CTO         CHECK TIME OUT 
  
 DTT4     SHN    13-21       EXTRACT CHARACTER
          LPC    377
          STD    CH 
          LMC    .CEOA
          LPC    376
          NJN    DTT6        IF NOT *EOA* 
  
*         PROCESS CORRESPONDENCE CODE TERMINAL. 
  
          LDC    400
          STD    CH 
          RETURN EXI3 
          PJN    DTT3        IF NO INPUT CHARACTER RECEIVED 
          SHN    13-21
          LMC    .CEOT
          LPC    376
          ZJN    DTT8        IF *EOT* 
          LDD    CH 
          LPC    377
          NJN    DTT5        IF CHARACTER ENTERED 
          LDI    DI          EXTRACT DATA CHARACTER 
          LPC    376
          RAD    CH 
 DTT5     LJM    EXI4 
  
*         CHECK FOR ADDITIONAL INPUT. 
  
 DTT6     LDD    IT          SET HALF/SECOND TIMER
          STI    DO 
          RETURN EXI3 
          PJN    DTT7        IF NO ADDITIONAL INPUT 
          LJM    DTT4 
  
 DTT7     LDI    DO          CHECK TIMER
          LMD    IT 
          NJN    DTT5        IF NOT TIMED OUT 
  
*         LOOK UP CHARACTER.
  
 DTT8     LDN    0           CLEAR INDEX
          STD    T1 
 DTT9     LDM    TTTC,T1     CHECK TABLE ENTRY
          LMD    CH 
          SHN    -1 
          ZJN    DTT10       IF MATCH FOUND 
          AOD    T1 
          LMN    TNTT 
          NJN    DTT9        LOOP TO END OF TABLE 
          STD    T1          CLEAR INDEX
          LDD    CH          CLEAR CHARACTER
          LPC    400
          STD    CH 
 DTT10    LDD    T1          SET TRANSLATION TABLE INDEX
          SHN    7
          STD    DP+3 
          LDD    CH          SET PARITY 
          LMM    TTTC,T1
          LPN    1
          RAD    DP+3 
          UJN    LINX        COMPLETE LOGIN 
 LIN      SPACE  4,10 
**        LIN - PROCESS LOGIN.
  
  
 LIN      RJM    RDC         READ VDCT TO CHECK TERMINAL STATUS 
          LMD    HN 
          ZJN    LIN1        IF *TELEX* READY 
          LJM    MGR
  
 LIN1     LDD    DC+4        SET POT ASSIGNMENT 
          STD    DP 
          STD    DP+1 
          LDN    0           CLEAR POT ASSIGNMENT 
          STD    DC+4 
          LDD    DC+1        SET PORT TYPE INDEX
          SHN    -10
          LPN    3
          STD    T1 
          LDM    LINA,T1     SET ENTRY ADDRESS
          LJM    EXI5 
  
*         COMPLETE LOGIN. 
  
 LINX     LDN    40          SET LINE FEED FLAG FOR ASCII TERMINALS 
          RAD    DP+3 
          LJM    /RDM/CLI    PROCESS COMMAND LINE INPUT 
  
 LINA     BSS    0
  
          CON    RAB         READ ANSWERBACK
          CON    DTT         DETERMINE TERMINAL TYPE
          CON    DTT         DETERMINE TERMINAL TYPE
          CON    RAB         READ ANSWERBACK
 RAB      SPACE  4,10 
**        RAB - REQUEST ANSWERBACK. 
* 
* 
*         RAB IS CALLED WHENEVER *TELEX* DESIRES TO READ
*         THE ANSWER BACK DRUM ON THE TERMINAL. RAB WILL INSURE ENOUGH
*         TIME FOR THE TERMINAL TO COME FULLY ON LINE AND THEN ISSUE
*         THE ANSWER BACK COMMAND.
  
  
 RAB      LDN    7           WAIT FOR LINE TO SETTLE OUT
          RJM    WTO
          LDC    .AENQ       ISSUE *ENQ*
          STI    DO 
          LDN    0
          STD    DP+2 
          STD    CH+2 
          RETURN EXI3 
          LDD    SM          CHECK STIMULATOR STATUS
          ZJN    RAB1        IF NOT STIMULATOR
          SHN    21-13
          MJN    RAB1        IF *ASTIM* MUX 
          LDC    .IISI       ISSUE *INITIATE STIMULATOR INPUT*
          STI    DO 
          RETURN EXI1 
 RAB1     RETURN EXI6 
          PJN    RAB3        IF NO INPUT CHARACTER
          SHN    -7          EXTRACT CHARACTER
          LPC    177
          STD    T7 
          LDD    CH+1        CHECK CHARACTER COUNT
          SBN    10D
          PJN    RAB2        IF MORE THAN 10 CHARACTERS 
          RJM    /RDM/TIC    TRANSLATE CHARACTER
          SHN    -6 
          NJN    RAB2        IF SPECIAL CHARACTER 
          RJM    /RDM/WIC    WRITE INPUT CHARACTER
          AOD    CH+1        COUNT CHARACTER
 RAB2     LJM    EXI4        RETURN 
  
 RAB3     LDD    IT          ADVANCE TIMER
          RAD    CH+2 
          LMN    ATIO 
          NJN    RAB2        IF TIME OUT NOT ELAPSED
          STD    CH+2 
          STD    T7 
          RJM    /RDM/WIC    FORCE UPPER CHARACTER
          LJM    LINX        COMPLETE LOGIN 
          TITLE  *TELEX* FUNCTION REQUEST PROCESSING. 
 TFR      SPACE  4,10 
**        TFR - PROCESS *TELEX* FUNCTION REQUEST. 
* 
*         ENTRY  (DC - DC+4) = *VDCT* WORD. 
  
  
 TFR      LDD    DC+4        SAVE REQUEST CODE
          STD    T2 
          LPN    77 
          SBN    TTFRL
          MJN    TFR1        IF LEGAL FUNCTION
          LCN    TTFRL       SET ILLEGAL FUNCTION 
 TFR1     ADN    TTFRL
          STD    T1 
          LDN    /TLX/RES    REQUEST ADDITIONAL OUTPUT
          RJM    ERQ
          STD    DC+4        CLEAR FUNCTION REQUEST 
          LDD    DC          CLEAR DRIVER REQUEST BIT 
          LPC    3777 
          STD    DC 
          TTADD  VDCT 
          CWD    DC 
          LDM    TTFR,T1     PROCESS FUNCTION 
          STD    T1 
          NJN    TFR2        IF A VALID ENTRY 
          LJM    MGR         EXIT 
  
 TFR2     LDD    DP+3 
          LJM    0,T1 
 TTFR     SPACE  4,10 
**        TTFR - TABLE OF TELEX FUNCTION REQUESTS.
  
  
 TTFR     INDEX 
  
          INDEX  /1TD/BGI,BGI   BEGIN INPUT 
          INDEX  /1TD/CFD,CFD   CLEAR FULL DUPLEX 
          INDEX  /1TD/HUP,HUP   HANG UP THE PHONE 
          INDEX  /1TD/IIP,IIP   ISSUE INPUT PROMPT
          INDEX  /1TD/LGI,LGI   PROCESS LOGIN 
          INDEX  /1TD/SCE,SCE   SET/CLEAR EXTENDED MODE 
          INDEX  /1TD/SDU,INT3.1  SUSPEND DRIVER FOR USER BREAK 
          INDEX  /1TD/SEP,SEP   SET EVEN PARITY 
          INDEX  /1TD/SFD,SFD   SET FULL DUPLEX 
          INDEX  /1TD/SNM,SNM   SET NORMAL MODES
          INDEX  /1TD/SOP,SOP   SET ODD PARITY
          INDEX  /1TD/STT,STT   SET TERMINAL TYPE 
  
          INDEX  /1TD/REQL
 TTFRL    EQU    *-TTFR 
 BGI      SPACE  4,10,10
**        BGI - BEGIN INPUT.
* 
*         SET INPUT ACTIVE AND START TAPE READER IF TAPE MODE IS SET. 
* 
*         ENTRY  (DC - DC+4) = WORD *VDCT*. 
  
  
 BGI      LDD    DC          CHECK *TAPE* MODE
          LPN    1
          ZJN    BGI1        IF NOT SET 
          LDC    .ISTR       TRANSLATE *START TAPE READER*
          STD    T7 
          RJM    /WTM/TOC 
          SHN    6           CHECK TRANSLATED CHARACTER 
          PJN    BGI1        IF NOT DEFINED 
          LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMD    T7          ISSUE *START TAPE READER*
          STI    DO 
          RETURN EXI1 
 BGI1     LDD    SM          CHECK STIMULATOR STATUS
          ZJN    BGI2        IF NOT STIMULATOR
          LDC    .IISI       ISSUE *INITIATE STIMULATOR INPUT*
          STI    DO 
          RETURN EXI1 
 BGI2     RETURN EXI6,RDM 
 CFD      SPACE  4,10 
**        CFD - CLEAR *FULL DUPLEX* FLAG. 
* 
*         ENTRY  (A) = DP+3.
  
  
 CFD      LPC    7677        CLEAR FULL DUPLEX
          LJM    SEP1 
 IIP      SPACE  4,10 
**        IIP - ISSUE INPUT PROMPT. 
* 
*         ISSUE INPUT PROMPT CHARACTER IF TRANSPARENT, BINARY,
*         OR AUTO MODE IS NOT SET.
* 
*         ENTRY  (A) = DP+3.
*                (DC - DC+4) = VDCT.
  
  
 IIP      SHN    21-2        CHECK MODE 
          MJN    IIP1        IF *TRANSPARENT* MODE
          LPN    1
          NJN    IIP2        IF *BINARY* MODE 
          LDD    DC 
          LPN    2
          NJN    IIP2        IF *AUTO* MODE 
          TTADD  VSTT        CHECK NO PROMPT BIT
          CRD    T0 
          LDD    T0 
          LPN    40 
          NJN    IIP2        IF NO PROMPT MODE
          STD    CH+2        CLEAR ESCAPE CONTROL 
          STD    DP+2 
          LDN    /CTL/IPC    SELECT PROMPT CHARACTER
          RJM    SCA
          STD    ZR 
          LDN    1RB         SET TERMINATOR 
          STD    ZR+1 
          RJM    SWA         SET WORD ADDRESS 
          CWD    ZR          SET PROMPT IN POT
          LDN    ZERL        CLEAR ZERO LOCATION
          CRD    ZR 
          RETURN EXI3,WTM    ENTER WRITE MODE 
  
 IIP1     LDN    0           CLEAR INPUT POINTER
          STD    DP+2 
 IIP2     LDN    /TLX/RES    REQUEST NEXT MESSAGE 
          RJM    ERQ
          LJM    X3RWC       WAIT FOR *BGI* REQUEST 
 LGI      SPACE  4,10 
**        LGI - PROCESS USER LOGIN. 
* 
*         ENTRY  (A) = DP+3.
  
  
 LGI      LPC    7600        RETAIN TERMINAL TYPE FOR LOGIN 
          STD    T7 
          LDD    DP          CHECK POT ASSIGNMENT 
          ZJN    LGI1        IF NONE
          STD    RQ+3        DROP POTS
          LDN    /TLX/DRT 
          RJM    ERQ
 LGI1     LDN    ZERL        CLEAR CONTROL WORDS
          CRD    DP 
          CRD    CH 
          LDD    T7          RESET TERMINAL TYPE
          STD    DP+3 
          RETURN EXI3,LIN    ENTER LOGIN
 SCE      SPACE  4,15 
**        SCE - SET/CLEAR EXTENDED MODE.
* 
*         SET/CLEAR EXTENDED TRANSMISSION MODE DEPENDING
*         UPON MODE IN *VDCT*.
* 
*         CALLS  CEM. 
  
  
 SCE      BSS    0           ENTRY
          RJM    CEM
          LJM    EXI4        EXIT 
 SNM      SPACE  4,10 
**        SNM - SET NORMAL MODES. 
* 
*         ENTRY  (A) = DP+3.
  
  
 SNM      SCN    3           CLEAR EXTENDED MODE, ODD PARITY
*         UJN    SEP
 SEP      SPACE  4,10,10
**        SEP - SET EVEN PARITY.
* 
*         ENTRY  (A) = DP+3.
  
  
 SEP      SCN    1
  
 SEP1     STD    DP+3 
          LJM    EXI4 
 SOP      SPACE  4,10 
**        SOP - SET *ODD PARITY* FLAG.
* 
*         ENTRY  (A) = DP+3.
  
  
 SOP      SCN    1           SET ODD PARITY 
          LMN    1
          UJN    SEP1 
 SFD      SPACE  4,10 
**        SFD - SET *FULL DUPLEX* FLAG. 
* 
*         ENTRY  (A) = DP+3.
  
  
 SFD      LPC    7677        SET FULL DUPLEX
          LMD    HN 
          UJN    SEP1 
 STT      SPACE  4,10 
**        STT - SET TERMINAL TYPE.
* 
*         ENTRY  (A) = DP+3.
*                (T2) = TRANSLATION TABLE INDEX.
  
  
 STT      LPC    177         CLEAR CURRENT TRANSLATION INDEX
          STD    DP+3 
          LDD    T2          SET TRANSLATION TABLE INDEX
          SCN    77 
          SHN    1
          LMD    DP+3 
          UJN    SEP1 
          SPACE  4,10 
          QUAL
 CIS      EQU    /CTL/CIS 
 CTO      EQU    /CTL/CTO 
 MGR      EQU    /CTL/MGR 
 RWC      EQU    /CTL/RWC 
 CTLE     BSS    0           END OF CONTROL MODE
          TITLE  READ MODE - MAIN PROCESSING ROUTINES.
          QUAL   RDM
 RDM      SPACE  4,10 
**        RDM - READ MODE.
* 
*         ENTRY  (DP+1) = FIRST POT FOR INPUT LINE. 
*                (DP+2), FIRST WORD = FIRST WORD FOR LINE.
*                        *READ ACTIVE* STATUS.
*                        *POT REQUESTED* STATUS.
*                        CURRENT WORD = FIRST WORD FOR LINE.
*                        CURRENT CHARACTER = FIRST CHARACTER FOR LINE.
*                FOR SPECIAL INPUT PROCESSING,
*                (DP+3)  *TRANSPARENT INPUT* STATUS.
*                (DP+3)  *BINARY INPUT* STATUS. 
* 
*                (CH) = BINARY INPUT TERMINATION CHARACTER. 
*                (CH+1) = BINARY INPUT TERMINATION COUNT. 
  
  
*         RDM - ENTRY.
  
 RDM      LDD    DP 
          ZJN    RDM4        IF NO INPUT POT
          LDD    DP+3        CHECK BINARY TRANSMISSION
          SHN    21-3 
          PJN    RDM2        IF NOT SET 
          LDD    CH+1        CHECK BINARY COUNT 
          NJN    RDM1        IF SET 
          LCN    10 
          RAD    DP+3        CLEAR BINARY MODE
          UJN    RDM2 
  
 RDM1     LDC    BRD         SET BINARY READ
          UJN    RDM3 
  
 RDM2     LDN    /CTL/RDP    LOCATE READ PROCESSOR
          RJM    SCA
 RDM3     STD    DP+4 
          LDI    DI 
          SHN    21-13
          LJM    0,DP+4 
  
*         PROCESS LACK OF INPUT POT.  IF THE INPUT DATA HAS 
*         NO NEED TO BE TRANSLATED AND STORED IT WILL BE IGNORED. 
*         IF THE DATA IS VALID, A DIAGNOSTIC MESSAGE WILL BE
*         ISSUED TO THE TERMINAL OPERATOR.
  
 RDM4     RJM    CSM         CHECK IF SMFIF PROCESSING
          ZJN    RDM4.1      IF NOT SMFIF PROCESSING
 RDM4.1   LDI    DI          GET INPUT CHARACTER
          LPC    377
          NJN    RDM4.2      IF NOT START OF BREAK
          LJM    /CTL/CIS2   GO PROCESS INTERRUPT 
  
 RDM4.2   LDC    EDBM 
          LJM    ITM         SEND EDITOR BUSY MESSAGE 
  
 RDM4.3   LDI    DI          GET INPUT CHARACTER
          LPC    177
          STD    T7 
          RJM    TIC         TRANSLATE CHARACTER
          SHN    -7 
          ZJN    RDM6        IF NOT SPECIAL CHARACTER 
          LMN    /TRN/NLI 
          ZJN    RDM5        IF NULL INPUT
          LMN    /TRN/EBT&/TRN/NLI
          NJN    RDM6        IF NOT END OF BLOCK MODE TRANSMISSION
 RDM5     LJM    MGR         IGNORE CHARACTER 
  
 RDM6     LJM    NIP1        ISSUE *REENTER LAST LINE*
 BRD      SPACE  4,10,5 
**        BRD - BINARY READ.
  
  
 BRD      MJN    BRD1        IF INPUT RECEIVED
          LJM    CTO         CHECK TIME OUT 
  
 BRD1     SHN    13-12       CHECK CHARACTER STATUS 
          PJN    BRD2        IF NOT LOST DATA 
          LJM    DLO         PROCESS DATA LOST
  
 BRD2     SHN    11-21
          LPC    177
          STD    T7 
          LDD    DP+3        CHECK *FULL DUPLEX*
          SHN    21-6 
          PJN    BRD3        IF NOT SET 
          LDI    DI          ISSUE INPUT CHARACTER
          LPC    4377 
          STI    DO 
 BRD3     LDD    CH          SAVE TERMINATOR
          STD    CH+2 
          LDI    DI          FORMAT INPUT CHARACTER 
          LPN    1
          ADN    20 
          SHN    13-4 
          RAD    T7 
          SCN    77          SET UPPER HALF FOR *WIC* 
          STD    CH 
          AOD    DP+2 
          RJM    WIC         WRITE INPUT CHARACTER
          AOD    CH+3        ADVANCE INPUT CHARACTER COUNT
          SHN    -14
          ZJN    BRD4        IF NO OVERFLOW 
          STD    RQ+2        REQUEST ACCOUNTING MESSAGE 
          LDN    /TLX/IAM 
          RJM    ERQ
 BRD4     LDD    CH+2        RESTORE TERMINATOR 
          STD    CH 
          SHN    6
          MJN    BRD5        IF NO TERMINATOR SPECIFIED 
          SHN    -6 
          LMD    T7 
          LPC    177
          ZJN    BRD6        IF TERMINATOR RECIEVED 
 BRD5     SOD    CH+1        DECREMENT CHARACTER COUNT
          MJN    BRD6        IF END OF INPUT
          ZJN    BRD6        IF END OF INPUT
          LJM    EXI4        RETURN TO MANAGER
  
 BRD6     RETURN EXI3 
          LDN    0           ENTER END OF LINE
          STD    CH 
          STI    DO          CLEAR OUTPUT 
          STD    T7 
          STD    CH+1        CLEAR CHARACTER COUNT
          STD    CH+2        CLEAR ESCAPE CONTROL 
          AOD    DP+2        WRITE END OF LINE
          RJM    WIC
          LCN    10          CLEAR BINARY INPUT 
          RAD    DP+3 
          RETURN EXI3 
          RJM    RDC         READ VDCT TO CHECK READ OPERATION
          SHN    21-6 
          MJN    BRD7        IF *READ DATA* 
          LJM    SLI         PROCESS SOURCE LINE INPUT
  
 BRD7     LJM    CLI         PROCESS COMMAND LINE INPUT 
 CRD      SPACE  4,10 
**        CRD - CORRESPONDENCE TERMINAL READ. 
  
  
 CRD      PJN    CRD1        IF NO INPUT DATA 
          SHN    13-21       CHECK CHARACTER
          LPC    377
          NJN    CRD2        IF NOT START OF *ATTN* 
          LJM    CIS         CHECK INTERRUPT STATUS 
  
*         ENTRY TO ENABLE INPUT.
  
 CRD1     LDC    .CEOT       ISSUE *EOT* TO ENABLE TERMINAL INPUT 
          STI    DO 
          RETURN EXI1 
          RETURN EXI6 
 CRD2     LDD    DP+3        CLEAR UPPER CASE 
          SCN    40 
          STD    DP+3 
          LDI    DI 
          SHN    21-13
          MJN    CRD4        IF CHARACTER RECEIVED
 CRD3     LJM    CTO         CHECK TIME OUT 
  
 CRD4     SHN    13-21       CHECK CHARACTER
          LMC    .CEOA
          LPC    176
          NJN    CRD5        IF NOT *EOA* 
          RETURN EXI1,CRD6
  
 CRD5     LDC    CRD6        ADVANCE ENTRY
          STD    DP+4 
          LDI    DI 
          SHN    21-13
  
*         CRD - MAIN RETURN.
  
 CRD6     PJN    CRD3        IF NO CHARACTER RECEIVED 
          SHN    13-12       CHECK CHARACTER STATUS 
          PJN    CRD7        IF NOT LOST DATA 
          LJM    DLO         PROCESS LOST DATA
  
 CRD7     SHN    13-1        EXTRACT CHARACTER
          LPN    77 
          STD    T7 
          LDD    DP+3        SET CORRECT CASE 
          LPN    40 
          SHN    1
          RAD    T7 
          UJN    RTC         PROCESS READ CHARACTER 
 ARD      SPACE  4,10 
**        ARD - *ASCII* TERMINAL READ.
  
  
 ARD      MJN    ARD1        IF CHARACTER RECEIVED
          LJM    CTO         CHECK TIME OUT 
  
 ARD1     SHN    13-12       CHECK CHARACTER STATUS 
          PJN    ARD2        IF NOT LOST DATA 
          LJM    DLO         PROCESS LOST DATA
  
 ARD2     SHN    12-0        EXTRACT CHARACTER
          LPC    177
          STD    T7 
          LDD    DP+3        CHECK *FULL DUPLEX*
          SHN    21-6 
          PJN    RTC         IF NOT SET 
          LDI    DI          ISSUE INPUT TO OUTPUT
          LPC    4377 
          STI    DO 
*         UJN    RTC
 RTC      SPACE  4,10 
**        RTC - READ TERMINAL CHARACTER.
  
  
 RTC      RJM    TIC         TRANSLATE INPUT CHARACTER
  
 RTCX     STD    T7          SET CHARACTER
          STD    CH+2        SAVE CHARACTER FOR MONITORING TERMINAL 
          SHN    -7          CHECK CONTROL
          NJN    RTC6        IF SPECIAL CHARACTER 
  
*         ENTRY FROM *CES*. 
  
 RTC1     LDC    4000        SET VALID DATA 
          RAD    CH+2 
  
*         ENTRY TO STORE INPUT CHARACTER. 
  
 RTC2     RJM    WIC         WRITE INPUT CHARACTER
          AOD    CH+1        COUNT CHARACTER
          ADC    -MXIC
          PJN    RTC4        IF LINE OVERFLOWS
 RTC3     LJM    EXI4 
  
 RTC4     ADC    -MXTC+MXIC  TERMINAL CHARACTER COUNT 
          PJN    RTC5        IF LINE OVERFLOWS
          RJM    RDC
          SHN    21-4 
          MJN    RTC3        IF TRANSACTION MODE
 RTC5     LDC    LOFM        ISSUE OVERFLOW MESSAGE 
          LJM    ITM
  
*         PROCESS SPECIAL CHARACTER.
  
 RTC6     STD    T2          SET PROCESSOR INDEX
          LDM    TRSP-1,T2   SET PROCESSOR ADDRESS
          STD    T2 
          LDD    DP+3 
          LJM    0,T2 
  
 ESC      SPACE  4,10 
**        ESC - PROCESS ESCAPE CODES. 
* 
*         ENTRY  (T7) = CHARACTER,
  
  
 ESC      LDD    T7          SET PROPER ESCAPE CODE 
          SHN    -5 
          LPN    2
          ADN    74 
          STD    T7 
          RJM    WIC         WRITE ESCAPE CODE
  
*         ENTRY TO STORE LOWER SIX BITS OF INPUT CHARACTER. 
  
 ESC1     LDD    CH+2        SET DISPLAY CODE 
          LPC    177         PRESERVE ESCAPE BIAS 
          LJM    RTCX 
 CES      SPACE  4,10 
**        CES - CHECK ESCAPE STATUS.
* 
*         ENTRY  (A) = DP+3.
*                (T7) = CHARACTER.
  
  
 CES      LPN    6           CHECK FOR ASCII OR TRANSPARENT 
          ZJN    CES1        IF NOT ASCII OR NOT TRANSPARENT
          LDD    T7          CHECK FOR COLON
          LMC    200
          NJN    ESC         IF NOT COLON 
          LDN    204-200     COLON = 204 IN ASCII OR TRANSPARENT MODE 
          RAD    CH+2 
          UJN    ESC         ESCAPE CHARACTER INPUT 
  
 CES1     LDD    T7 
          SHN    21-6 
          PJN    CES3        IF ESCAPE 2
          LDD    CH+2 
          LPN    77 
          ZJN    CES2        IF *7600*
          SBN    1RZ+1
          MJN    ESC1        PROCESS NORMAL CHARACTER 
 CES2     LJM    EXI2        IGNORE CHARACTER 
  
 CES3     LDD    T7 
          LMC    200
          NJN    CES2        IF NOT COLON 
          LJM    RTC1        COLON
 TRSP     SPACE  4,10 
**        TRSP - TABLE OF SPECIAL READ CHARACTER PROCESSORS.
  
  
 TRSP     BSS    0
          QUAL   TRN
          LOC    1
  
 CES      CON    /RDM/CES    CHECK ESCAPE STATUS
 CRT      CON    /RDM/CRT    CARRIAGE RETURN
 DLN      CON    /RDM/DLN    LINE DELETE
 DPC      CON    /RDM/DPC    DELETE PREVIOUS CHARACTER
 NLI      CON    /RDM/NLI    NULL INPUT 
 CSF      CON    /RDM/CSF    CASE SHIFT 
 ECI      CON    /RDM/ECI    ESCAPE CHARACTER INPUT 
 NWL      CON    /RDM/NWL    NEW LINE 
 EOT      CON    /RDM/EOT    EOT
 BRK      CON    /RDM/BRK    BREAK
 EBT      CON    /RDM/EBT    END OF BLOCK MODE TRANSMISSION 
 EOL      CON    /RDM/EOL    BLOCK MODE END-OF-LINE 
 ETX      CON    /RDM/ETX    ETX
  
          LOC    *O 
          NOREF  CES,NLI
          QUAL   *
 CRT      SPACE  4,10 
**        CRT - PROCESS CARRIAGE RETURN.
  
  
 CRT      RETURN EXI3        ALLOW CARRIAGE RETURN
          RJM    RDC         READ VDCT TO CHECK *TAPE* MODE 
          LPN    1
          ZJN    CRT1        IF NOT SET 
          STI    DO          CLEAR OUTPUT 
          LDD    CH+1        CHECK CHARACTER COUNT
          NJN    CRT2        IF NOT EMPTY LINE
          LJM    X3RWC       ENTER READ/WRITE CONTROL 
  
 CRT1     LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMC    .ALF        ISSUE LINE FEED
          STI    DO 
  
*         ENTRY TO ISSUE NEW LINE.
  
 CRT2     LDC    .INL+4000   ISSUE NEW LINE TO MONITOR
          STD    CH+2 
*         UJN    EIL
 EIL      SPACE  4,10 
**        EIL - END OF INPUT LINE.
  
  
 EIL      LDD    DP+2        SET ZERO BYTE TERMINATOR 
          LPN    1
          NJN    EIL1        IF LOWER CHARACTER 
          LDD    MA          SAVE POINTER WORD
          CWD    DP 
          RJM    RPC         READ PRECEDING CHARACTER 
          STD    T7 
          LDD    MA          RESTORE POINTER WORD 
          CRD    DP 
          LDD    T7          CHECK PRECEDING CHARACTER
          NJN    EIL3        IF NOT COLON 
          LDN    1R          ENTER BLANK
          STD    T7 
          RJM    WIC
 EIL1     LDD    DP+3        CHECK FOR TRANSPARENT MODE 
          LPN    4
          ZJN    EIL2        IF NOT TRANSPARENT MODE
          LDN    1R 
 EIL2     LMN    1R 
          STD    T7 
          RJM    WIC
 EIL3     LDN    0           ENTER END OF LINE
          STD    T7 
          RJM    WIC
          LDD    DP+3        CLEAR *TRANSPARENT* MODE 
          SCN    4
          STD    DP+3 
  
*         COMPLETE END OF LINE PROCESSING.
  
          RETURN EXI3 
          LDD    CH+1        ADVANCE INPUT CHARACTER COUNT
          RAD    CH+3 
          SHN    -14
          ZJN    EIL4        IF NO OVERFLOW 
          STD    RQ+2 
          LDN    /TLX/IAM    REQUEST ISSUE ACCOUNTING MESSAGE 
          RJM    ERQ
 EIL4     STI    DO 
          STD    CH+2 
          RJM    RDC         READ VDCT TO CHECK READ OPERATION
          SHN    21-6 
          MJN    CLI         IF *READ DATA*, PROCESS AS COMMAND 
          SHN    6-4
          MJN    CLI         IF *TRANSACTION MODE*, PROCESS AS COMMAND
          SHN    4-2
          MJN    EIL5        IF *TEXT MODE*, PROCESS AS SOURCE
          LDD    DP+2        READ FIRST WORD OF LINE
          LPC    7000 
          SHN    6
          ADD    DP 
          SHN    3
          ADCBM 
          CRD    CM 
          LDD    CM          CHECK FIRST CHARACTER
          SHN    -6 
          SBN    1R0
          MJN    CLI         IF NOT DIGIT 
          SBN    1R9+1-1R0
 EIL5     MJN    SLI         IF DIGIT 
 CLI      SPACE  4,10 
**        CLI - PROCESS COMMAND LINE INPUT. 
  
  
 CLI      LDD    DP          SET FIRST POT OF LINE
          STD    RQ+3 
          LDD    DP+2        SET FIRST WORD 
          SHN    -11
          STD    RQ+2 
          LDN    /TLX/CLI    REQUEST COMMAND LINE INPUT 
          RJM    ERQ
          STD    DP          CLEAR FIRST POT
          STD    DP+1        CLEAR CURRENT POT
          LDN    3           SET DELAY
          RJM    WTO         WAIT TIME OUT
          LDN    /CTL/ECL    LOCATE COMMAND LINE PROCESSOR
          UJN    SLI2 
 SLI      SPACE  4,10 
**        SLI - SOURCE LINE INPUT.
* 
*         ENTRY  (DC - DC+4) = *VDCT* WORD. 
  
  
 SLI      LDD    DP+2        FIRST WORD = CURRENT WORD
          LPC    360         SAVE POT REQUESTED FLAG
          LMC    400         SET *INPUT INITIATED*
          STD    DP+2 
          SHN    5
          RAD    DP+2 
          LDD    DP          CHECK CURRENT POT
          STD    RQ+3 
          LMD    DP+1 
          ZJN    SLI1        IF CURRENT POT = FIRST POT 
          LDD    DP+1        FIRST POT = CURRENT POT
          STD    DP 
          STD    RQ+2 
          LDN    /TLX/RIN    REQUEST RELEASE INPUT
          RJM    ERQ
 SLI1     STD    RQ+3 
          LDN    /CTL/ESL    LOCATE SOURCE LINE PROCESSOR 
 SLI2     RJM    SCA
          LJM    EXI3        ENTER LINE PROCESSOR 
          TITLE  READ MODE - SPECIAL CHARACTER PROCESSORS.
 ACL      SPACE  4,10 
**        ACL - END OF COMMAND LINE.
* 
*         ISSUE LINE-FEED IF IN TAPE MODE.
  
  
 ACL      BSS    0           ENTRY
          RJM    RDC         READ *VDCT*
          LPN    1
          ZJN    ACL2        IF NOT *TAPE* MODE 
          LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMC    .ALF        ISSUE LINE-FEED
 ACL1     STI    DO          SET OUTPUT CHARACTER 
          RETURN EXI1 
 ACL2     LDN    0
          STI    DO 
          STD    CH+1        ZERO CHARACTER COUNT 
  
 X3RWC    RETURN EXI3,RWC    ENTER READ/WRITE CONTROL 
 ASL      SPACE  4,10 
**        ASL - END OF SOURCE LINE. 
  
  
 ASL      LDD    SM          CHECK STIMULATOR STATUS
          ZJN    ASL1        IF NOT STIMULATOR
          LDC    .IISI       ISSUE *INITIATE STIMULATOR INPUT*
          STI    DO 
          RETURN EXI1 
 ASL1     LDN    0           CLEAR OUTPUT 
          STI    DO 
          STD    CH+1        ZERO CHARACTER COUNT 
          RETURN EXI3,ARD 
 BRK      SPACE  4,10 
**        BRK - PROCESS BREAK.
  
  
 BRK      RJM    RDC         READ VDCT
          LPN    1
          ZJN    BRK1        IF NOT TAPE MODE 
          RETURN EXI1,RDM    IGNORE IF TAPE MODE
  
 BRK1     LDN    100D/MNCT+1 START TIMER FOR BREAK
          STI    DO 
 BRK2     RETURN EXI3 
          MJN    BRK1        IF BREAK STILL IN PROGRESS 
          SOI    DO 
          NJN    BRK2        IF NOT TIMED OUT 
          LDD    CH+1        CHECK INPUT LINE 
          NJN    BRK4        IF LINE NOT EMPTY
  
*         PROCESS EMPTY INPUT LINE. 
  
          RJM    RDC         READ VDCT
          LPN    4
          ZJN    BRK3        IF NOT TEXT MODE 
          LJM    ETX2        EXIT TEXT MODE 
  
*         INTERRUPT JOB IF ACTIVE.
  
 BRK3     TTADD  VROT        CHECK ACTIVITY 
          CRD    CM 
          LDD    CM+4 
          LMN    3
          ZJN    BRK5        IF NO ACTIVITY 
          LJM    /CTL/INT    INTERRUPT JOB
  
*         PROCESS NON-EMPTY INPUT LINE. 
  
 BRK4     LDD    DP+3        CHECK MODE 
          LPN    4
          NJN    BRK6        IF TRANSPARENT MODE
 BRK5     LDN    DELM        SET *DEL* MESSAGE
          LJM    ITM
  
*         ENTER TRANSPARENT MODE DATA.
  
 BRK6     LDN    76          STORE ESCAPE 
          STD    T7 
          RJM    WIC
          LDN    /CTL/IPC    DETERMINE TRANSLATION
          RJM    SCA
          SHN    -6 
          LMN    71 
          ZJN    BRK7        IF NEW TRANSLATION TABLE 
          LDN    55&40
 BRK7     LMN    40 
          STD    T7          STORE DISPLAY CODE 
          RJM    WIC
          RETURN EXI3,EIL 
 CCL      SPACE  4,10 
**        CCL - END OF COMMAND LINE.
  
  
 CCL      LDC    .CIL        ISSUE *IL* 
          STI    DO 
          LDD    CH+1        REPEAT COUNT = CHARACTER COUNT/8 
          SHN    -3 
          RJM    /WTM/SRC    SEND REPEATED CHARACTER
          LDC    .CEOA       ISSUE *EOA* TO ENABLE OUTPUT 
          LJM    ACL1 
 CSF      SPACE  4,10 
**        CSF - PROCESS CASE SHIFT. 
* 
*         ENTRY  (A) = (DP+3).
  
  
 CSF      LMD    CH+2        SET NEW CASE 
          SCN    40 
          LMD    CH+2 
          STD    DP+3 
          LJM    EXI2 
 CSL      SPACE  4,10 
**        CSL - END OF SOURCE LINE. 
  
  
 CSL      LDC    .CIL        ISSUE *IL* 
          STI    DO 
          LDD    CH+1        REPEAT COUNT = CHARACTER COUNT/8 
          SHN    -3 
          RJM    /WTM/SRC    SEND REPEATED CHARACTER
          TTADD  VCHT 
          CWD    CH          REWRITE ZERO OUT CH+1
          LJM    CRD1        REENABLE INPUT 
 DLN      SPACE  4,10 
**        DLN - PROCESS DELETE LINE.
* 
*         ENTRY  (A) = DP+3.
  
  
 DLN      LPN    4           CHECK *TRANSPARENT MODE* 
          NJN    DLN1        IF SET 
          STI    DO          SUPPRESS DUPLEX ECHO-BACK
          LJM    BRK5 
  
 DLN1     LJM    ESC         ENTER CHARACTER
 DPC      SPACE  4,10 
**        DPC - DELETE PRECEEDING CHARACTER.
* 
*         ENTRY  (A) = DP+3.
  
  
 DPC      LPN    4           CHECK *TRANSPARENT MODE* 
          NJN    DLN1        IF SET 
          SOD    CH+1 
          PJN    DPC1        IF NOT START OF LINE 
          LDN    0
          STD    CH+1 
          LJM    EXI4 
  
 DPC1     RJM    BUP         BACK UP POINTERS 
          LDD    CH+2        SET CHARACTER FOR MONITORING TERMINAL
          LPC    377
          ADC    4000 
          STD    CH+2 
          LDD    DP+2        CHECK CHARACTER NUMBER 
          SHN    21 
          PJN    DPC2        IF UPPER CHRACTER
          LPN    7           SET BYTE 
          STD    T5 
          RJM    SWA         SET WORD ADDRESS 
          CRD    T0          READ WORD
          LDI    T5          EXTRACT UPPER CHARACTER
          SCN    77 
          STD    CH 
          LDN    0           CLEAR BYTE 
          STI    T5 
          RJM    SWA         SET WORD ADDRESS 
          CWD    T0          STORE WORD 
 DPC2     LDD    DP+3        CHECK ASCII
          LPN    6
          ZJN    DPC4        IF NOT SET 
          LDD    MA          SAVE POINTER WORD
          CWD    DP 
          RJM    RPC         READ PREVIOUS CHARACTER
          SBN    74 
          MJN    DPC3        IF NOT ESCAPE
          ZJN    DPC5        IF ESCAPE 2
          SBN    76-74
          ZJN    DPC5        IF ESCAPE 1
 DPC3     LDD    MA          RESTORE POINTER WORD 
          CRD    DP 
 DPC4     LJM    EXI4 
  
 DPC5     LDD    DP+2        CHECK CHARACTER NUMBER 
          SHN    21 
          PJN    DPC4        IF UPPER CHARACTER 
          LDI    T5          EXTRACT UPPER CHARACTER
          SCN    77 
          STD    CH 
          LDN    0           CLEAR BYTE 
          STI    T5 
          RJM    SWA         SET WORD ADDRESS 
          CWD    T0          STORE WORD 
          UJN    DPC4 
 EBT      SPACE  4,10,20
**        EBT - END OF BLOCK MODE TRANSMISSION. 
* 
*         PROCESS *EOT* CODE TERMINATOR OF BLOCK EDIT MODE
*         TERMINAL BUFFER TRANSMISSION.  IF THE LINE IS NOT 
*         EMPTY, A CARRIAGE RETURN WILL BE TRANSMITTED TO THE 
*         TERMINAL AND THE LINE WILL BE PROCESSED LIKE A CARRIAGE 
*         RETURN.  IF THE LINE IS EMPTY, THE *EOT* CHARACTER
*         WILL BE IGNORED.
* 
*         ENTRY  (CH+1) = LINE CHARACTER COUNT. 
* 
*         EXIT   TO *CRT* AFTER ISSUING CARRIAGE RETURN IF LINE 
*                IS NOT EMPTY.
* 
*                TO *MGR* IF LINE IS EMPTY. 
  
  
 EBT      BSS    0           ENTRY
          LDD    CH+1        CHECK LINE CHARACTER COUNT 
          ZJN    EBT1        IF ZERO-LENGTH LINE
          LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMC    .ACR        ISSUE CARRIAGE RETURN
          STI    DO 
          RETURN EXI3,CRT    PROCESS CARRIAGE RETURN
  
 EBT1     LJM    MGR         IGNORE CHARACTER 
 ECI      SPACE  4,10,10
**        ECI - ESCAPE CHARACTER INPUT. 
* 
*         DIRECTS PROCESSING OF *74* AND *76* INPUT CHARACTERS. 
*         IF IN EXTENDED OR TRANSPARENT MODE, THE *74* CODE IS
*         STORED AS  *7401* AND THE *76* CODE IS STORED AS
*         *7402*. 
* 
*         ENTRY  (A) = DP+3.
  
  
 ECI      LPN    6           CHECK MODE 
          ZJN    ECI1        IF NEITHER EXTENDED NOR TRANSPARENT
          LJM    ESC
  
 ECI1     LDD    T7          CONVERT TO SINGLE DISPLAY CODE 
          LPN    3
          SHN    1
          ADN    72 
          STD    T7 
          LJM    RTC2        REENTER READ PROCESSOR 
 EOL      SPACE  4,10,10
**        EOL - BLOCK MODE END-OF-LINE. 
* 
*         ENTERS CARRIAGE RETURN PROCESSING WITHOUT ISSUING 
*         LINE-FEED.
* 
*         EXIT   TO *CRT2*. 
  
  
 EOL      EQU    CRT2        ALTERNATE ENTRY POINT
 EOT      SPACE  4,10 
**        EOT - END OF TRANSMISSION.
  
  
 EOT      LDD    CH+1        CHECK INPUT LINE 
          ZJN    EOT1        IF NO CHARACTER, ISSUE .CEOA FOR *INT* 
          LDD    DP+3 
          LPN    4
          NJN    EOT2        IF TRANSPARENT MODE,AVOID DOUBLE .CEOA 
 EOT1     LDC    .CEOA
          STI    DO 
 EOT2     RETURN EXI3 
          RETURN EXI6,BRK1   PROCESS AS BREAK CHARACTER 
 ETX      SPACE  4,10,10
**        ETX - END OF TEXT.
  
  
 ETX      LDD    CH+1        CHECK INPUT LINE 
          NJN    ETX1        IF LINE NOT EMPTY
          RJM    RDC         READ VDCT
          LPN    4
          NJN    ETX2        IF TEXT MODE 
 ETX1     LDD    DP+3 
          LJM    CES         CHECK ESCAPE STATUS
  
 ETX2     LDD    DP+1        POT TO BE DUMPED IF NOT EMPTY
          STD    RQ+3 
          LDD    DP+2        EXTRACT WORD COUNT OF POT
          SHN    -4 
          LPN    7
          STD    RQ+2 
          LDN    /TLX/ETX    EXIT TEXT MODE REQUEST 
          RJM    ERQ
          STD    DP          CLEAR FIRST POT POINTER
          STD    DP+1        CLEAR CURRENT POT POINTER
          STD    DP+2        CLEAR POSITION WITHIN CURRENT POT
          LDD    DC          CLEAR INPUT REQUESTED, TEXT MODE 
          LPC    7373 
          STD    DC 
          RETURN EXI5,RWC    ENTER READ/WRITE CONTROL 
 NLI      SPACE  4,10 
**        NLI - PROCESS NULL INPUT. 
* 
*         ENTRY  (A) = DP+3.
  
  
 NLI      LPN    4           CHECK *TRANSPARENT MODE* 
          ZJN    NLI1        IF NOT SET 
          LDD    CH+2 
          LPC    177
          ZJN    NLI1        IF NO CHARACTER DEFINED
          STD    T7          ENTER CHARACTER
          SHN    21-6        CHECK FOR ESCAPE 2 
          MJN    NLI2        IF ESCAPE 2
          LJM    RTC2 
  
 NLI1     LJM    MGR         IGNORE CHARACTER 
  
 NLI2     LJM    ESC         ENTER ESCAPE CHARACTER 
 NWL      SPACE  4,10 
**        NWL - NEW LINE. 
* 
*         WAIT FOR *EOT* FROM TERMINAL. 
  
  
 NWL      RETURN EXI1 
          MJN    NWL1        IF INPUT RECEIVED
          LJM    CTO
  
 NWL1     LDD    DP+3        CLEAR UPPER CASE 
          SCN    40 
          STD    DP+3 
          LJM    CRT2        PROCESS END OF LINE
          TITLE  READ MODE - SUBROUTINES. 
 ITM      SPACE  4,10 
**        ITM - ISSUE TERMINAL MESSAGE. 
* 
*         ISSUES MESSAGE TO TERMINAL. 
* 
*         ENTRY  (A) = ADDRESS OF FORMATTED MESSAGE.
* 
*         USES   (DP+1) = MESSAGE ADDRESS POINTER.
*                (DP+2) = MESSAGE BYTE POINTER. 
  
  
 ITM      ADC    7700        SET MESSAGE PSEUDO-POT POINTER 
          STD    DP+1 
          LDD    DP+2        CLEAR BYTE POINTER 
          LPC    7600 
          STD    DP+2 
          LDN    0           CLEAR OUTPUT CONTROL 
          STD    CH+2 
          LJM    /WTM/WTM4   INITIATE MESSAGE 
  
  
*         ENTERED HERE FROM SUBROUTINE *ROC* TO EXTRACT NEXT
*         MESSAGE CHARACTER TO BE RETURNED TO WRITE PROCESSOR.
  
 ITM1     LDM    ITMA-7700,DP+1  GET NEXT CHARACTER 
          STD    T7 
          LDD    DP+2        TOGGLE BYTE INDEX
          LMN    1
          STD    DP+2 
          LPN    1
          NJN    ITM2        IF UPPER CHARACTER 
          AOD    DP+1        INCREMENT MESSAGE ADDRESS
          LDD    T7 
          LPN    77          EXTRACT LOWER CHARACTER
          UJN    ITM3 
  
 ITM2     LDD    T7          EXTRACT UPPER CHARACTER
          SHN    -6 
 ITM3     STD    T7          SET CHARACTER
          ZJN    ITM4        IF END OF MESSAGE
          SOD    CH+4        PREVENT CHARACTER COUNT ON MESSAGE 
          LDD    T7 
          LJM    /WTM/ROCX   ISSUE CHARACTER
  
*         RESET LINE POINTERS AND EXIT. 
  
 ITM4     LDD    CH          CHECK TERMINAL TYPE
          LMC    /WTM/CWT 
          NJN    ITM5        IF NOT CORRESPONDENCE
          LDC    .CEOT       ENABLE INPUT 
          STI    DO 
          RETURN EXI1 
  
 ITM5     LDD    DP+2        RESET CURRENT WORD 
          SHN    -5 
          LMD    DP+2 
          SCN    17 
          STD    DP+2 
          LDD    DP          RESET CURRENT POT
          STD    DP+1 
          ZJN    ITM6        IF NO INPUT POT
          RJM    CEM         CLEAR EXTENDED MODE
          LJM    /CTL/BGI 
  
 ITM6     RJM    CSM         CHECK IF SMFIF PROCESSING
          NJN    ITM6.5      IF TERMINAL CONNECTED TO SMF 
          LDN    /TLX/RES    RESTART JOB
          RJM    ERQ
 ITM6.5   BSS    0
          LJM    X3RWC       ENTER READ/WRITE CONTROL 
  
  
**        TABLE OF TERMINAL MESSAGES. 
  
 ITMA     BSS    0
          LOC    0
  
 DELM     DATA   Z+ *DEL*"NL"+
 LOFM     DATA   Z+"NL" *OVL*"NL"+
 RILM     DATA   Z+"NL"*RE-ENTER LAST LINE*"NL"+
 EDBM     DATA   Z+"NL"EDITOR BUSY"NL"+ 
  
          LOC    *O 
 DLO      SPACE  4,10 
**        DLO - PROCESS LOST DATA.
* 
*         NOTIFY *TELEX* THAT A LOST DATA CONDITION OCCURED ON THE
*         TERMINAL LINE.
  
  
 DLO      LDN    1           SET LOST DATA
          STD    RQ+2 
*         UJN    NIP
          SPACE  4,10,10
**        NIP -  NO INPUT POT AVAILABLE.
* 
*         NOTIFY *TELEX* THAT NO INPUT WAS AVAILABLE. 
  
  
 NIP      LDN    /TLX/DLO    REQUEST LOST DATA PROCESSING 
          RJM    ERQ
  
*         ENTERED FOR REENTER LAST LINE MESSAGE.
  
 NIP1     LDN    RILM        ISSUE RE-ENTER LINE MESSAGE
          LJM    ITM
 TIC      SPACE  4,10 
**        TIC - TRANSLATE INPUT CHARACTER.
* 
*         ENTRY  (T7) = CHARACTER.
* 
*         EXIT   (A) = TRANSLATED CHARACTER.
*                (T7) = TRANSLATED CHARACTER. 
* 
*         USES   T1.
* 
*         CALLS  TCH. 
  
  
 PPT      IFNE   VPPT,0 
  
 TIC1     STD    T1          SET TABLE INDEX
          LDC    TITA        LOAD CONVERSION INDEX
          RJM    TCH
 TIC2     STD    T7 
  
 TIC      SUBR               ENTRY/EXIT 
          LDD    DP+3        CHECK CONVERSION INDEX 
          SHN    -7 
          NJN    TIC1        IF SPECIAL CONVERSION REQUIRED 
          LDM    TINT,T7     TRANSLATE CHARACTER
          UJN    TIC2 
  
 PPT      ELSE
  
 TIC      SUBR               ENTRY/EXIT 
          LDC    TITA        SET INPUT CONVERSION 
          RJM    TCH         TRANSLATE CHARACTER
          UJN    TICX        EXIT 
  
 PPT      ENDIF 
 WIC      SPACE  4,10 
**        WIC - WRITE INPUT CHARACTER.
* 
*         ENTRY  (T7) = CHARACTER.
*                (CH) = UPPER CHARACTER IF LOWER CHARACTER IS 
*                       TO BE STORED. 
*                IF (T7) = 0, AND UPPER CHARACTER IS TO BE PROCESSED, 
*                END OF LINE IS ASSUMED.  IN ORDER TO PREVENT 
*                CONFUSION BETWEEN THE DISPLAY CODE COLON *00* AND
*                END OF LINE, A *00* COLON IS PASSED TO *WIC* AS A
*                *200* CODE.
* 
*         EXIT   NONE.
* 
*         USES   CH, DP, DP+2, RQ+2, RQ+3, T0 - T6. 
* 
*         CALLS  ERQ, RDC, RLT. 
* 
*         MACROS ADCBM, RETURN. 
  
  
 WIC8     LPN    77          SET CURRENT WORD 
          SHN    17 
          STD    T6 
          SHN    -17         SET BYTE 
          STD    T5 
          NJN    WIC9        IF NOT START OF NEW WORD 
          LDN    ZERL 
          UJN    WIC80
  
 WIC9     LDD    DP+1        READ WORD
          SHN    3
          LMD    T6 
          ADCBM 
 WIC80    CRD    T0 
          LDD    T7          MERGE UPPER AND LOWER CHARACTERS 
          LPN    77          MASK FOR COLON 
          LMD    CH 
          STI    T5          STORE BYTE 
          LDD    DP+1        STORE WORD 
          SHN    3
          LMD    T6 
          ADCBM 
          CWD    T0 
          LDI    T5 
          ADD    T7 
          ZJN    WIC3        IF  END OF LINE
          AOD    DP+2        ADVANCE CHARACTER
          LPN    17 
          LMN    12 
          ZJN    WIC3        IF END OF WORD 
  
 WIC      SUBR               ENTRY/EXIT 
 WIC1     LDD    DP+2        CHECK CHARACTER NUMBER 
          SHN    21 
          PJN    WIC2        IF UPPER 
          LJM    WIC8 
  
 WIC2     AOD    DP+2        ADVANCE CHARACTER POINTER
          LDD    T7          CHECK CHARACTER
          SHN    6           STORE UPPER CHARACTER
          STD    CH 
          NJN    WICX        IF NOT END OF LINE 
          UJN    WIC1        FORCE END OF LINE
  
*         PROCESS END OF WORD.
  
 WIC3     LDD    DP+2        CHECK WORD NUMBER
          SHN    -4 
          LPN    7
          LMN    7
          ZJN    WIC5        IF END OF POT
          LDD    DP+2        ADVANCE WORD NUMBER, RESET CHARACTER 
          SCN    17 
          ADN    20 
          STD    DP+2 
          SHN    -4          CHECK WORD NUMBER
          LPN    17 
          SBN    5
          MJN    WICX        RETURN IF WORD 5 NOT REACHED 
          SBN    3
          PJN    WICX        RETURN IF POT REQUESTED
          LDC    200         SET *POT REQUESTED*
          RAD    DP+2 
          RJM    RLT         READ NEXT POT LINK 
          NJN    WIC4        IF POT LINKED
          LDD    DP+1        SET CURRENT POT
          STD    RQ+3 
          LDN    /TLX/LPT    REQUEST POT
          RJM    ERQ
 WIC4     LJM    WICX        RETURN 
  
*         PROCESS END OF POT. 
  
 WIC5     LDD    DP+2        RESET WORD AND CHARACTER 
          LPC    7400 
          STD    DP+2 
          RJM    RLT         READ NEXT POT LINK 
          ZJN    WIC7        IF POT NOT LINKED
          STD    DP+1        SET NEXT POT 
          LDD    DP+3 
          LPN    10 
          ZJN    WIC4        IF NOT BINARY MODE 
          RJM    RDC         READ VDCT
          SHN    21-6 
          MJN    WIC4        IF NOT READ DATA 
          LDD    DP          SET FIRST POT
          STD    RQ+3 
          LMD    DP+1        CHECK CURRENT POT
          ZJN    WIC6        IF FIRST EQUALS CURRENT
          LDD    DP+1        SET CURRENT POT
          STD    DP 
          STD    RQ+2 
          LDN    /TLX/RIN 
          RJM    ERQ
 WIC6     STD    RQ+3 
          UJN    WIC4        EXIT 
  
 WIC7     RETURN EXI1,NIP    PROCESS NO INPUT POT 
          SPACE  4,10 
          QUAL
 RDM      EQU    /RDM/RDM 
 X3RWC    EQU    /RDM/X3RWC 
 RDME     BSS    0           END OF READ MODE 
          TITLE  WRITE MODE - MAIN PROCESSOR. 
          QUAL   WTM
 WTM      SPACE  4,10 
**        WTM - WRITE MODE. 
* 
*         ENTRY  (DP+1) = FIRST POT OF OUTPUT.
*                (DP+2), CURRENT WORD = FIRST WORD OF OUTPUT. 
*                (DP+3)  *BINARY TRANSMISSION* STATUS 
*                (CH+2) = ESCAPE CONTROL. 
  
  
 WTM      PJN    WTM1        IF NO TERMINAL INPUT 
          LJM    CIS         CHECK INTERRUPT STATUS 
  
 WTM1     RJM    RLT         CHECK NEXT LINK
          NJN    WTM2        IF POT LINKED
          LDN    /TLX/RES    REQUEST MORE OUTPUT
          RJM    ERQ
 WTM2     LDD    DP+3        CHECK *BINARY TRANSMISSION*
          LPN    10 
          ZJN    WTM5        IF NOT BINARY
          RETURN EXI6,BWT 
  
*         SET WRITE PROCESSOR AND INITIATE OUTPUT.
  
  
*         ENTRY TO TRANSMIT EXTENDED MODE MESSAGE.
  
 WTM4     LDD    DP+3        SET EXTENDED CONVERSION
          SCN    2
          LMN    2
          STD    DP+3 
 WTM5     LDN    /CTL/WTP    SET WRITE PROCESSOR
          RJM    SCA
          STD    CH 
          LDN    0           CLEAR OUTPUT 
          LJM    WTC
 BWT      SPACE  4,10 
**        BWT - BINARY WRITE. 
  
  
 BWT      PJN    BWT1        IF NO TERMINAL INPUT 
          LJM    CIS         CHECK INTERRUPT STATUS 
  
*         ASSEMBLE OUTPUT CHARACTER.
  
 BWT1     RJM    ROC         READ OUTPUT CHARACTER
          MJN    BWT3        IF CONTROL BYTE
          SCN    2           CLEAR BIT SEVEN
          LMN    20          ADD VALID CHARACTER
          SHN    7
          STD    T6          STORE ASSEMBLY 
          SHN    -10
          LMN    30 
          NJN    BWT4        IF NOT BINARY FORMAT 
          LDD    T7 
          SHN    -1 
          LPN    1
          RAD    T6          MOVE BIT SEVEN TO BIT ZERO 
          AOD    DP+2        ADVANCE CHARACTER COUNT
          LDI    T5          GET LOWER 6 BITS 
          LPN    77 
          SHN    1
          LMD    T6          MERGE WITH ASSEMBLY
          STI    DO 
          AOD    CH+4        ADVANCE OUTPUT CHARACTER COUNT 
          SHN    -14
          ZJN    BWT2        IF NO OVERFLOW 
          LDN    /TLX/IAM    ISSUE ACCOUNTING MESSAGE 
          RJM    ERQ
 BWT2     LJM    EXI4        EXIT 
  
 BWT3     LJM    SOC         PROCESS CONTROL BYTE 
  
  
*         TERMINATE BINARY MODE OUTPUT. 
  
 BWT4     LCN    10          CLEAR BINARY MODE
          RAD    DP+3 
          SOD    DP+2        RESET CHARACTER POSITION 
          LDN    0           CLEAR ESCAPE CONTROL 
          STD    CH+2 
          STI    DO          CLEAR OUTPUT 
          LDN    1           SET CHARACTER COUNT NON-ZERO 
          STD    CH+1 
          RETURN EXI3,WTM5   CONTINUE OUTPUT
 CWT      SPACE  4,10 
**        CWT - CORRESPONDENCE CODE TERMINAL WRITE. 
  
  
 CWT      LDD    DP+3        CHECK CASE 
          LPN    40 
          SHN    12-5 
          LMD    T7 
          SHN    21-12
          PJN    CWT1        IF CORRECT CASE
          SHN    12-11
          PJN    CWT1        IF NO CASE SHIFT REQUIRED
  
*         PROCESS CASE SHIFT. 
  
          LDD    T7          SAVE CHARACTER 
          STD    CH 
          LDD    DP+3        TOGGLE CASE
          LMN    40 
          STD    DP+3 
          SHN    -5          SELECT CASE SHIFT CODE 
          LPN    1
          STD    T1 
          LDM    CWTA,T1     ISSUE CASE SHIFT 
          STI    DO 
          RETURN EXI3 
          LDD    CH          RESTORE CHARACTER
          STD    T7 
          LDC    CWT         RESET ENTRY ADDRESS
          STD    CH 
 CWT1     LDD    T7          ISSUE CHARACTER
          LPC    4377 
          UJN    WTC
  
 CWTA     BSS    0           CASE SHIFT CONTROL CHARACTERS
          CON    .CLC 
          CON    .CUC 
 AWT      SPACE  4,10 
**        AWT - *ASCII* TERMINAL WRITE. 
  
  
 AWT      LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMD    T7          ISSUE CHARACTER
*         UJN    WTC
 WTC      SPACE  4,10,10
**        WTC - WRITE TERMINAL CHARACTER. 
* 
*                ISSUES CURRENT CHARACTER TO TERMINAL.  THE 
*         NEXT CHARACTER IS READ AND RETURNED TO THE PROPER 
*         PROCESSING ROUTINE.  SPECIAL CHARACTERS ARE PROCESSED 
*         BEFORE RETURN.
* 
*         ENTRY  (A) = CHARACTER TO ISSUE TO TERMINAL.
*                (CH+2) = ESCAPE CONTROL. 
* 
*         EXIT   (T7) = NEXT CHARACTER TRANSLATED.
*                (CH+2) = UPDATED ESCAPE CONTROL. 
* 
*         ESCAPE CONTROL -
* 
*                4XXX  =  VALID CHARACTER POINTER XXX.
*                0100  =  ESCAPE 1. 
*                0200  =  ESCAPE 2. 
*                0300  =  *00* (POSSIBLE EOL) BYTE HAS BEEN 
*                         DETECTED.  THIS SITUATION WILL OCCUR
*                         WHEN THE LOWER CHARACTER OF AN
*                         OUTPUT BYTE IS FOUND TO BE ZERO.
*                         AT THIS POINT, FURTHER TESTING MUST 
*                         BE DONE TO DETERMINE WHETHER OR NOT 
*                         THIS ZERO CHARACTER IS PART OF
*                         AN END OF LINE OR IS FOLLOWED BY
*                         DATA.  THIS LATTER CONDITION IS A 
*                         FALSE END OF LINE AND THE ZERO
*                         CHARACTER MUST BE PROCESSED AS A
*                         COLON.
*                04XX  =  FALSE EOL HAS BEEN DETECTED.
*                         XX = NEXT OUTPUT CHARACTER. 
*                         (CHANGED BY *CMM* TO *05XX* BYTE.)
*                05XX  =  *CMM* HAS PROCESSED FALSE EOL.
*                         XX = NEXT OUTPUT CHARACTER. 
*                06XX  =  SUSPENDED CONTROL PROCESSING.  THIS 
*                         SITUATION OCCURS WHEN A CONTROL 
*                         CHARACTER PROCESSOR IS UNABLE TO
*                         TO DETERMINE WHETHER OR NOT A 
*                         SUSPECTED CONTROL CHARACTER IS
*                         FOLLOWED BY AN END OF LINE. 
*                         THIS WILL OCCUR WHEN THERE IS 
*                         NO FURTHER DATA IN THE CURRENT
*                         OUTPUT POTS AND THE DRIVER MUST 
*                         WAIT FOR FURTHER OUTPUT TO BE 
*                         ASSIGNED. 
  
  
 WTC      STI    DO          ISSUE OUTPUT CHARACTER 
  
*         CHECK INPUT LINE. 
  
 WTCX     RETURN EXI3 
          PJN    WTC2        IF NO TERMINAL INPUT 
          LJM    CIS         CHECK FOR INTERRUPT
  
*         CHECK ESCAPE CONTROL. 
  
 WTC2     LDD    CH+2        CHECK ESCAPE CONTROL 
          SHN    -6 
          ZJN    WTC5        IF NULL
          STD    T1 
          SBN    TECPL       TEST FOR VALID DATA BIT
          PJN    WTC5        IF VALID DATA SET
          LDM    TECP-1,T1   SET PROCESSOR ADDRESS
          STD    T1 
          LDD    CH+2        SAVE LOWER SIX BITS
          LPN    77 
          STD    T7 
          LJM    0,T1        PROCESS ESCAPE CONTROL 
  
*         GET NEXT OUTPUT CHARACTER.
  
 WTC5     RJM    ROC         GET NEXT CHARACTER 
          PJN    WTC7        IF NOT CONTROL BYTE
 WTC6     LJM    SOC
  
 WTC7     NJN    WTC8        IF NON-ZERO
          LJM    WTC17       CHECK POSSIBLE END OF LINE 
  
*         CHECK OUTPUT CHARACTER. 
  
 WTC8     SBN    74          CHECK FOR ESCAPE CHARACTER 
          MJN    WTC12       IF NOT ESCAPE 1 OR 2 
          ZJN    WTC10       IF ESCAPE 2
          SBN    76-74
          NJN    WTC12       IF NOT ESCAPE 1
          LCN    1
  
*         PROCESS ESCAPE CHARACTER. 
  
 WTC10    ADN    2           SET ESCAPE CHARACTER BIAS
          SHN    6
          STD    CH+2 
          LDD    DP+3        CHECK MODE 
          LPN    2
          ZJN    WTC12       IF NOT EXTENDED MODE 
          STI    DO          CLEAR OUTPUT ONE CYCLE 
          RETURN EXI3 
 WTC11    RJM    ROC         READ OUTPUT CHARACTER
          MJN    WTC6        IF CONTROL BYTE
          ADD    CH+2        ADD ESCAPE CHARACTER BIAS
          STD    T7 
          ADC    -214 
          MJN    WTC12       IF LEGAL CHARACTER 
          LDN    0           PROCESS INVALID CHARACTER
          STD    CH+2 
          LJM    WTC
  
*         PERFORM TRANSLATION.
  
 WTC12    LDD    T7          SAVE CHARACTER FOR MONITORING TERMINAL 
  
*         ENTRY TO FORCE OUTPUT CHARACTER.
*         (A) = (T7) = OUTPUT CHARACTER.
  
 WTC13    ADC    4000        ADD VALID CHARACTER BIT
          STD    CH+2 
 WTC14    RJM    TOC         TRANSLATE CHARACTER
          SHN    6
          PJN    WTC16       IF SPECIAL PROCESSING REQUIRED 
          AOD    CH+1        ADVANCE CHARACTER COUNT/LINE 
          AOD    CH+4        ADVANCE OUTPUT CHARACTER COUNT 
          SHN    -14
          ZJN    WTC15       IF NO OVERFLOW (4096 CHARACTERS) 
          LDN    /TLX/IAM    REQUEST ISSUE ACCOUNTING MESSAGE 
          RJM    ERQ
 WTC15    LJM    0,CH        ISSUE CHARACTER
  
*         PERFORM SPECIAL PROCESSING. 
  
 WTC16    SHN    -6          SET SPECIAL PROCESSOR INDEX
          STD    T1 
          STI    DO          CLEAR OUTPUT 
          LDM    TWSP,T1     PROCESS CHARACTER
          LJM    EXI3 
  
*         PROCESS POSSIBLE END OF LINE. 
  
 WTC17    LDC    300         SET OUTPUT CONTROL 
          STD    CH+2 
          STI    DO          CLEAR OUTPUT ONE CYCLE 
          RETURN EXI3 
 WTC18    RJM    ROC         GET NEXT CHARACTER 
          PJN    WTC21       IF NOT CONTROL BYTE
          LJM    SOC
  
  
*         ENTRY FROM CONTROL CHARACTER PROCESSORS.
*         (A) = FALSE CONTROL BYTE VALUE. 
  
 WTC19    STD    CM          SAVE FALSE CONTROL BYTE
          LDD    CH+2        CHECK OUTPUT CONTROL 
          LMC    300
          NJN    WTC20       IF NOT SUSPENDED COLON 
          STD    CM 
          SOD    DP+2        BACK UP CHARACTER
 WTC20    LDD    CM 
 WTC21    ADC    400         SET ESCAPE CONTROL 
          STD    CH+2 
          LDN    00          ISSUE COLON
          STD    T7 
          LJM    WTC14
  
  
**        TECP - TABLE OF ESCAPE CONTROL PROCESSORS.
  
 TECP     BSS    0
          LOC    1
  
          CON    WTC11       *0100* - ESCAPE 1. 
          CON    WTC11       *0200* - ESCAPE 2. 
          CON    WTC18       *0300* - POSSIBLE *EOL*. 
          CON    WTC8        *04XX* - FALSE *EOL*.
          CON    WTC8        *05XX* - *04XX* AFTER *CMM*. 
          CON    SOC1        *06XX* - SUSPENDED OUTPUT CONTROL. 
  
 TECPL    BSS    0
          LOC    *O 
 TWSP     SPACE  4,10 
**        TWSP - TABLE OF SPECIAL WRITE PROCESSORS. 
  
  
 TWSP     BSS    0
          QUAL   TRN
          LOC    0
  
 NLO      CON    /WTM/WTC    NULL 
 ANL      CON    /WTM/ANL    *ASCII* TERMINAL NEW LINE
 ACR      CON    /WTM/ACR    *ASCII* TERMINAL CARRIAGE RETURN 
 CNL      CON    /WTM/CNL    CORRESPONDENCE CODE END OF OUTPUT LINE 
 CCR      CON    /WTM/CCR    CORRESPONDENCE CODE CARRIAGE RETURN
 CLF      CON    /WTM/CLF    CORRESPONDENCE CODE LINE FEED
 CBS      CON    /WTM/CBS    CORRESPONDENCE CODE BACKSPACE
  
          LOC    *O 
          NOREF  NLO
          QUAL   *
          TITLE  WRITE MODE - SUBROUTINES.
 ROC      SPACE  4,10 
**        ROC - READ OUTPUT CHARACTER.
* 
*         EXIT   (T5) = OUTPUT BYTE ADDRESS.
*                (T7) = LOWER 12 BITS OF (A). 
*                (A) = POSITIVE - 
*                      (A) = OUTPUT CHARACTER.
*                (A) = NEGATIVE - 
*                      (A) = 400000B + CONTROL BYTE VALUE, OR,
*                            770001 (END OF POT). 
* 
*         USES   DP+2, T7, T0 - T5. 
* 
*         MACROS ADCBM. 
  
  
*         PROCESS ODD (LOWER) CHARACTER.
  
 ROC9     LPN    7           SET BYTE NUMBER
          STD    T5 
          AOD    DP+2        ADVANCE CHARACTER NUMBER 
          SHN    -4          READ DATA WORD 
          LPN    7
          SHN    17 
          LMD    DP+1 
          SHN    3
          ADCBM 
          CRD    T0 
          LDI    T5          EXTRACT LOWER CHARACTER
          LPN    77 
 ROC10    STD    T7          SET CHARACTER
*         UJN    ROCX 
  
  
*         ROC - ENTRY.
  
 ROC      SUBR               ENTRY/EXIT 
          LDD    DP+1        CHECK CURRENT POT POINTER
          SHN    -6 
          LMN    77 
          NJN    ROC1        IF NOT MESSAGE PSEUDO-POT POINTER
          LJM    /RDM/ITM1   GET MESSAGE CHARACTER
  
 ROC1     LDD    DP+2        CHECK CHARACTER NUMBER 
          SHN    21 
          MJN    ROC9        IF ODD CHARACTER 
  
*         PROCESS EVEN (UPPER) CHARACTER. 
  
          LPN    77          CHECK WORD STATUS
          LMN    75 
          NJN    ROC2        IF NOT END OF WORD AND END OF POT
          LDC    .ECP 
          UJN    ROCX 
  
 ROC2     LPN    7
          NJN    ROC3        IF NOT END OF WORD 
          STD    T5          SET BYTE 0 
          LDN    21-12       ADVANCE WORD AND SET ODD CHARACTER 
          RAD    DP+2 
          UJN    ROC4 
  
 ROC3     LMN    5           SET BYTE NUMBER
          STD    T5 
          AOD    DP+2        ADVANCE CHARACTER
 ROC4     SHN    -4          SET ADDRESS OF WORD
          LPN    7
          SHN    17 
          LMD    DP+1 
          SHN    3
          ADCBM 
          CRD    T0          READ WORD
          LDI    T5          EXTRACT UPPER CHARACTER
          SHN    -6 
          NJN    ROC6        IF NOT CONTROL BYTE
          LDI    T5 
          ZJN    ROC7        IF ZERO BYTE 
          SBN    TSOCL
          PJN    ROC8        IF NOT CONTROL BYTE
          ADN    TSOCL
 ROC5     LMC    400000 
 ROC6     LJM    ROC10
  
*         CHECK FOR END OF LINE.
  
 ROC7     AOD    T5          ADVANCE BYTE POINTER 
          LMN    5
          ZJN    ROC5        IF END OF WORD 
          LDI    T5 
          ZJN    ROC7        IF NO DATA IN NEXT BYTE
 ROC8     LDN    0           ISSUE COLON
          UJN    ROC6 
 SOC      SPACE  4,10 
**        SOC - SET OUTPUT CONTROL. 
* 
*         ENTRY (A) = OUTPUT CONTROL BYTE SET BY *ROC*. 
  
  
 SOC4     RJM    RLT         CHECK POT LINK 
          NJN    SOC5        IF LINKED
          LDC    /CTL/RWC1   SET REENTRY ADDRESS
          STD    DP+4 
          UJN    SOC6 
  
*         SET NEXT POT. 
  
 SOC5     STD    DP          SET POT POINTER
          LDD    DP+1        DROP CURRENT POT 
          STD    RQ+3 
          LDN    /TLX/DRP 
          RJM    ERQ
          LDD    DP          SET CURRENT POT
          STD    DP+1 
          RJM    RLT         CHECK THIS POT LINK
          NJN    SOC7        IF POT LINKED
  
*         REQUEST ADDITIONAL OUTPUT.
  
 SOC6     LDN    /TLX/RES    REQUEST ADDITIONAL OUTPUT
          RJM    ERQ
 SOC7     LDN    0           CLEAR LINE POSITION
          STD    DP+2 
          STI    DO          CLEAR OUTPUT 
          LJM    EXI4        EXIT 
  
  
*         SOC - ENTRY/EXIT. 
  
 SOC      SHN    21-20       CHECK BIT 20 
          MJN    SOC4        IF SET, THEN END OF POT
          AOD    DP+2        ADVANCE CHARACTER POINTER
  
*         CHECK CONTROL BYTE. 
  
 SOC1     LDD    T7          CHECK CONTROL BYTE 
          ZJN    SOC3        IF END OF LINE 
          LMN    2R"IB" 
          ZJN    SOC2        IF INTERNAL END OF BLOCK 
          LDD    DP+3        CHECK MODE 
          SHN    21-3 
          PJN    SOC2        IF NOT BINARY
          SOD    DP+2        TERMINATE BINARY MODE
          LJM    BWT4 
  
*         EXIT TO CONTROL BYTE PROCESSOR. 
  
 SOC2     LDN    /TLX/RES    REQUEST ADDITIONAL OUTPUT
          RJM    ERQ
 SOC3     LDM    TSOC,T7     SET REENTRY ADDRESS
          LJM    EXI6        EXIT 
 TSOC     SPACE  4,10 
**        TSOC - TABLE OF OUTPUT CONTROL BYTE PROCESSORS. 
*         INDEXED BY CONTROL CODE.
  
  
 TSOC     BSS    0
          LOC    0
  
          CON    EOL         END OF LINE
          CON    EOB         END OF BLOCK 
          CON    ECB         END OF CORRESPONDENCE BLOCK
          CON    ATI         AUTO INPUT 
          CON    LOF         LOG OFF USER 
          CON    TPI         TRANSPARENT INPUT
          CON    BNI         BINARY INPUT 
          CON    BNO         BEGIN BINARY OUTPUT
          CON    EOL         UNUSED - TREAT AS END OF LINE
          CON    BEO         BEGIN EXTENDED OUTPUT
          CON    EOL         UNUSED - TREAT AS END OF LINE
          CON    EOS         END OF STRING
          CON    IEB         INTERNAL END OF BLOCK
          CON    ETI         EXECUTIVE AUTO MODE INPUT
  
 TSOCL    BSS    0
          LOC    *O 
 SRC      SPACE  4,10 
**        SRC - SEND REPEATED CHARACTER.
* 
*         ENTRY  (A) = REPEAT COUNT.
*                ((DO)) = CHARACTER.
* 
*         EXIT   ((DO)) = 0.
* 
*         USES   CH, CH+1.
* 
*         MACROS RETURN.
  
  
 SRC2     STI    DO          CLEAR DATA OUTPUT
  
 SRC      SUBR               ENTRY/EXIT 
          STD    CH+1        SET REPEAT COUNT 
          ZJN    SRC2        IF NULL COUNT
          LDM    SRC         SET RETURN ADDRESS 
          STD    CH 
          RETURN EXI3 
          SOD    CH+1        DECREMENT REPEAT COUNT 
          ZJN    SRC1        IF COUNT EXHAUSTED 
          LJM    EXI4 
  
 SRC1     STI    DO          CLEAR DATA OUTPUT
          LJM    0,CH        RETURN TO CALLER 
 TOC      SPACE  4,10 
**        TOC - TRANSLATE OUTPUT CHARACTER. 
* 
*         ENTRY  (T7) = CHARACTER.
* 
*         EXIT   (A) = TRANSLATED CHARACTER.
*                (T7) = TRANSLATED CHARACTER. 
* 
*         USES   T1.
* 
*         CALLS  TCH. 
  
  
 PPT      IFNE   VPPT,0 
  
 TOC1     STD    T1          SET TABLE INDEX
          LDC    TOTA        LOAD CONVERSION INDEX
          RJM    TCH
 TOC2     STD    T7 
  
 TOC      SUBR               ENTRY/EXIT 
          LDD    DP+3        CHECK CONVERSION INDEX 
          SHN    -7 
          NJN    TOC1        IF SPECIAL CONVERSION REQUIRED 
          LDM    TOPT,T7     TRANSLATE CHARACTER
          UJN    TOC2 
  
 PPT      ELSE
  
 TOC      SUBR               ENTRY/EXIT 
          LDC    TOTA        SET OUTPUT CONVERSION
          RJM    TCH         TRANSLATE CHARACTER
          UJN    TOCX        EXIT 
  
 PPT      ENDIF 
          TITLE  WRITE MODE - CONTROL BYTE PROCESSORS.
***       OUTPUT CONTROL BYTES. 
* 
*         THE OUTPUT CONTROL BYTES ALLOW A USER PROGRAM TO CONTROL
*         CERTAIN DRIVER FUNCTIONS. 
 EOL      SPACE  4,10 
***       0000   END OF LINE. 
* 
* 
*         THIS CONTROL BYTE CAUSES THE TERMINAL TO BE POSITIONED TO 
*         THE BEGINNING OF THE NEXT LINE.  THE REMAINDER OF THE WORD
*         IN WHICH THE *END OF LINE* OCCURS IS DISCARDED. 
  
  
 EOL      LDD    DP+2        CLEAR WORD AND CHARACTER POINTERS
          SCN    17 
          LMN    12 
          STD    DP+2 
          LDD    DP+3        CHECK FOR BINARY MODE
          LPN    10 
          NJN    EOL2        IF BINARY MODE 
  
*         ISSUE NEW LINE TO TERMINAL AND RESET OUTPUT MODE. 
*         IF 66B IS A CONTROL CHARACTER, THEN THE TERMINAL IS 
*         A TYPE *D* TRANSLATION TABLE TERMINAL AND THE OUTPUT
*         MODE MUST REMAIN *EXTENDED*.  IF NOT, THEN THE
*         OUTPUT MODE MUST BE RESET TO THAT INDICATED IN THE
*         TERMINAL TABLE. 
  
          LDN    66          CHECK IF *66* IS CONTROL CHARACTER 
          STD    T7 
          RJM    TOC
          SHN    21-13
          PJN    EOL1        IF *D* TYPE TERMINAL 
          RJM    CEM         CLEAR/RESET EXTENDED MODE
 EOL1     LDC    .INL        ISSUE NEW LINE 
          STD    T7 
          LJM    WTC13
  
 EOL2     LMD    DP+3        CLEAR BINARY MODE
          STD    DP+3 
          LDN    0           CLEAR CHARACTER COUNT
          STD    CH+2        CLEAR ESCAPE CONTROL 
          LJM    WTM5        CONTINUE OUTPUT
 EOB      SPACE  4,10 
***       0001   END OF BLOCK.
* 
* 
*         THIS CONTROL BYTE IS USED TO TERMINATE OUTPUT BEFORE
*         THE END OF POT IS REACHED.  THE REMAINDER OF THE POT IS 
*         DISCARDED AND THE TERMINAL IS NOT POSITIONED TO THE 
*         START OF THE NEXT LINE. 
* 
*         THIS CONTROL BYTE MUST BE FOLLOWED BY AN END-OF-LINE. 
  
  
 EOB      LDN    1RA
          RJM    CLT         CHECK FOR LINE TERMINATION 
 EOB1     LDN    0           CLEAR CHARACTER POSITION 
          STD    DP+2 
          STD    CH+1        RESET CHARACTER COUNT
          STD    CH+2        CLEAR ESCAPE CONTROL 
          STI    DO          CLEAR OUTPUT 
          LJM    X3RWC
 EOB      SPACE  4,10 
**        0002   END OF CORRESPONDENCE BLOCK. 
* 
* 
*         SPECIAL END OF BLOCK PROCESSING FOR POSSIBLE
*         CORRESPONDENCE TERMINALS. 
*         THIS CODE ENABLES INPUT IF CORRESPONDENCE TERMINAL, 
*         OTHERWISE IT IS TREATED AS A *0001* BYTE. 
* 
*         THIS CONTROL BYTE MUST BE FOLLOWED BY AN END-OF-LINE. 
  
  
 ECB      LDN    1RB
          RJM    CLT         CHECK FOR LINE TERMINATION 
          LDD    CH          CHECK TERMINAL TYPE
          LMC    CWT
          NJN    EOB1        IF NOT CORRESPONDENCE TERMINAL 
          LDC    .CEOT       ENABLE INPUT 
          STI    DO 
          RETURN EXI1 
          UJN    EOB1 
 ATI      SPACE  4,10 
***       0003   AUTO INPUT.
* 
* 
*         THIS CONTROL BYTE MUST BE FOLLOWED BY AN END OF LINE
*         AND TERMINATES OUTPUT.
*         THE WORD CONTAINING THE AUTO INPUT CONTROL BYTE IS
*         MOVED TO THE FIRST WORD OF THE POT FOR SUBSEQUENT 
*         INPUT WHICH MUST FOLLOW IMMEDIATELY.
  
  
 ATI7     LDN    1RC         REENTER WRITE MODE 
*         LDN    1RM         (CONTROL BYTE 0015B) 
 ATIB     EQU    *-1
          LJM    WTC19
  
*         ATI - ENTRY.
  
 ATI      LDC    LDNI+1RC    CONTROL BYTE TO REENTER WRITE MODE 
          STM    ATIB 
          LDC    MDS         SET UP CALL TO SUBROUTINE MDS
          STM    ATIA 
          LDN    1RC
 ATI1     RJM    CLT         CHECK FOR LINE TERMINATION 
          RJM    CKL         CHECK *LIST* STATUS
          MJN    ATI7        IF FILE BEING LISTED 
          RJM    RDC         READ VDCT
          LPN    2
          NJN    ATI3        IF AUTO INPUT MODE SET 
          LDD    DC+4        CHECK VDCT INTERLOCK 
          ZJN    ATI2        IF NOT INTERLOCKED 
          LDN    2           SET AUTO INPUT MODE
          RAD    DC 
          TTADD  VDCT 
          CWD    DC 
          UJN    ATI3        SET WORD/BYTE NUMBER 
  
 ATI2     LDN    /TLX/SAI    REQUEST SET AUTO INPUT 
          RJM    ERQ
  
 ATI3     LDD    DP+2        SET WORD NUMBER
          SHN    16 
          STD    T6 
          SHN    -17         SET BYTE NUMBER
          STD    T5 
          SOD    T5 
          LDD    DP+1 
          SHN    3           READ DATA WORD 
          LMD    T6 
          ADCBM 
          CRD    T0 
          LDN    0           CLEAR BYTE 
          STI    T5 
          STD    CH+2        CLEAR ESCAPE CONTROL 
          RJM    MDS         RESTORE WORD AND SET FIRST WORD
*         RJM    RSW         (CONTROL BYTE 0015)
 ATIA     EQU    *-1
          SCN    17 
          SHN    5
          LMD    DP+2 
          SBN    2           DECREMENT CHARACTER NUMBER 
          STD    DP+2 
          LPN    17 
          STD    CH+1        SET INPUT LINE CHARACTER COUNT 
          LDD    DP+3        CLEAR BINARY AND EXTENDED MODES
          SCN    12 
          STD    DP+3 
          LDD    DC          CHECK MODE 
  
 ATI4     SHN    21-1 
          MJN    ATI6        IF AUTO MODE SET 
          LDD    DC+4        CHECK FOR DRIVER REQUEST 
          ZJN    ATI5        IF NOT DRIVER REQUEST
          LJM    X3RWC       ENTER READ WRITE CONTROL 
  
 ATI5     RETURN EXI3        WAIT FOR TELEX 
          RJM    RDC         READ VDCT
          UJN    ATI4        CHECK FOR AUTO MODE
  
 ATI6     LPN    2           SET NORMAL/EXTENDED MODE BIT 
          RAD    DP+3 
          LJM    /CTL/BGI    BEGIN INPUT
 LOF      SPACE  4,10,10
***       0004   LOG OFF USER.
* 
* 
*         THIS BYTE LOGS OFF THE USER.  IT MUST BE THE FIRST
*         BYTE OF OUTPUT AND MUST BE FOLLOWED BY AN END-OF-LINE.
  
  
 LOF      RJM    CKL         CHECK *LIST* STATUS
          MJN    LOF2        IF FILE BEING LISTED 
          LDD    CH+1        CHECK LINE COUNT 
          NJN    LOF2        IF NOT FIRST BYTE
          LDN    1RD
          RJM    CLT         CHECK FOR LINE TERMINATION 
          LDN    1           SET NORMAL LOGOFF
          STD    RQ+2 
          LDN    /TLX/FLO    FORCE LOGOUT 
          RJM    ERQ
 LOF1     LJM    EOB1 
  
 LOF2     LDN    1RD
          UJN    TPI2        REENTER WRITE MODE 
          SPACE  4,10,10
***       0005   SET TRANSPARENT INPUT. 
* 
* 
*         THIS CONTROL BYTE SETS TRANSPARENT INPUT FOR THE NEXT INPUT 
*         REQUEST. IT MUST APPEAR IN THE FIRST BYTE OF A WORD 
*         AND BE FOLLOWED BY AN END-OF-LINE.
* 
*         TRANSPARENT INPUT ALLOWS ALL CHARACTERS TO BE TRANSMITTED 
*         TO THE CPU PROGRAM. 
  
  
 TPI      RJM    CKL         CHECK *LIST* STATUS
          MJN    TPI1        IF FILE BEING LISTED 
          LDD    DP+2        CHECK BYTE 
          LPN    17 
          LMN    2
          NJN    TPI1        IF NOT FIRST BYTE
          LDN    1RE
          RJM    CLT         CHECK FOR LINE TERMINATION 
          LDD    DP+3        SET TRANSPARENT MODE 
          SCN    14 
          LMN    4
          STD    DP+3 
          UJN    LOF1 
  
 TPI1     LDN    1RE
  
*         ENTRY FROM *LOF2*.
  
 TPI2     LJM    WTC19       REENTER WRITE MODE 
          SPACE  4,10,10
***       0006   SET BINARY INPUT.
* 
* 
*         THIS CONTROL BYTE SETS BINARY INPUT FOR THE NEXT INPUT
*         REQUEST.  THE CONTROL BYTE MUST BE THE FIRST BYTE OF A WORD.
*         THE NEXT 2 BYTES ARE THE TERMINATION CONDITIONS AS FOLLOWS -
* 
*         THE FIRST BYTE (BYTE 1) IS THE MAXIMUM NUMBER OF CHARACTERS 
*         TO BE RECEIVED BEFORE THE INPUT IS TERMINATED.  IF THE
*         VALUE IS 0, 1 IS ASSUMED. 
* 
*         THE SECOND CONTROL BYTE (BYTE 2) IS A TERMINATION CODE. 
*         WHEN A CHARACTER IS RECEIVED FROM THE TERMINAL WHICH
*         MATCHES THE BOTTOM 8 BITS OF THIS BYTE, THE INPUT OPERATION 
*         IS TERMINATED.  IF BIT 13 OF THIS BYTE IS SET, NO TERMINATION 
*         CHARACTER IS ASSUMED. 
* 
*         EXIT   (CH) = TERMINATION CHARACTER.
*                (CH+1) = CHARACTER COUNT.
  
  
 BNI5     LDN    1RF
          UJN    TPI2        REENTER WRITE MODE 
  
*         BNI - ENTRY.
  
 BNI      RJM    CKL         CHECK *LIST* STATUS
          MJN    BNI5        IF FILE BEING LISTED 
          LDD    DP+3        CLEAR BINARY MODE
          SCN    10 
          STD    DP+3 
          LDD    CH+1        CHECK CHARACTER COUNT
          NJN    BNI5        IF NOT FIRST BYTE
          RJM    SWA         SET WORD ADDRESS 
          CRD    CM          READ DATA WORD 
          LDD    CM+3        CHECK FOR TERMINATION
          ADD    CM+4 
          NJN    BNI5        IF NOT TERMINATED
          LDD    CM+1        SET CHARACTER COUNT
          NJN    BNI2 
 BMI1     LDN    1
 BNI2     STD    CH+1 
          ADC    -MXIC-1
          MJN    BNI4        IF NOT MORE THAN INTERACTIVE MAXIMUM 
          ADC    -MXTC+MXIC  TERMINAL CHARACTER COUNT 
          PJN    BNI3        IF NOT MORE THAN TRANSACTION MAX 
          RJM    RDC         READ VDCT
          SHN    21-4 
          MJN    BNI4        IF TRANSACTION MODE
 BNI3     RJM    RDC         READ VDCT
          SHN    21-6 
          MJN    BMI1        IF READ DATA MODE
 BNI4     LDD    CM+2        SET TERMINATION CHARACTER
          STD    CH 
          LDN    7           ENTER BINARY OUTPUT CONTROL BYTE 
          STD    ZR 
          LDD    DP+1        STORE FIRST WORD 
          SHN    3
          ADCBM 
          CWD    ZR 
          LDN    0
          STD    ZR 
          LDN    2           SET CHARACTER 2
          STD    DP+2 
          LDN    10          SET BINARY MODE
          RAD    DP+3 
          LJM    X3RWC       ENTER READ/WRITE CONTROL 
 BNO      SPACE  4,10 
***       0007   BEGIN BINARY OUTPUT. 
* 
* 
*         THIS CONTROL BYTE INITIATES BINARY OUTPUT.  IT MUST 
*         APPEAR IN THE FIRST BYTE OF OUTPUT. 
  
  
 BNO      LDD    DP+3        CLEAR BINARY MODE
          SCN    10 
          STD    DP+3 
          LDD    CH+1        CHECK CHARACTER COUNT
          NJN    BNO1        IF NOT FIRST BYTE
          LDN    10          SET BINARY TRANSMISSION
          RAD    DP+3 
          RETURN EXI1,BWT    ENTER BINARY WRITE 
  
 BNO1     LDN    1RG
  
*         ENTRY FROM *BEO1*.
  
 BNO2     LJM    WTC19       REENTER WRITE MODE 
 BEO      SPACE  4,10,10
***       0011   BEGIN EXTENDED OUTPUT. 
* 
* 
*         THIS CONTROL BYTE INITIATES EXTENDED MODE OUTPUT. 
*         IT MUST APPEAR IN THE FIRST BYTE OF THE OUTPUT LINE.
  
  
 BEO      BSS    0           ENTRY
          LDD    CH+1 
          NJN    BEO1        IF NOT FIRST BYTE
          LJM    WTM4        INITIATE EXTENDED OUTPUT 
  
 BEO1     LDN    1RI
          UJN    BNO2        REENTER WRITE MODE 
 EOS      SPACE  4,10,10
***       0013   END OF STRING. 
* 
* 
*         THIS BYTE ACTS AS A LOGICAL LINE TERMINATOR WHEN
*         FOLLOWED BY AN END OF LINE.  THE TERMINAL CARRIAGE
*         WILL NOT BE REPOSITIONED AND OUTPUT WILL CONTINUE 
*         WITH THE NEXT LINE OF DATA. 
  
  
 EOS      LDN    1RK         CHECK FOR LINE TERMINATION 
          RJM    CLT
          STD    CH+1        CLEAR CHARACTER COUNT
          STD    CH+2        CLEAR CONTROL BYTE 
          RJM    ROC         FORCE LINE SKIP IF IN BYTE 4 
          LMC    .ECP        CHECK IF END OF POT REACHED
          NJN    EOS1        IF NOT END OF CURRENT POT
          LMC    .ECP 
          LJM    SOC         SET OUTPUT CONTROL 
  
 EOS1     LDD    DP+2        REPOSITION TO READ NEXT WORD 
          SCN    17 
          LMN    12 
          STD    DP+2 
          RJM    CEM         CLEAR EXTENDED MODE
          RETURN EXI3,WTM5   CONTINUE OUTPUT
 IEB      SPACE  4,10,10
**        0014   INTERNAL END OF BLOCK. 
* 
* 
*         THIS CONTROL BYTE IS USED INTERNALLY BY *1TO* ONLY TO 
*         TERMINATE OUTPUT BEFORE THE END OF POT IS REACHED.  THE 
*         REMAINDER OF THE POT IS DISCARDED, THE TERMINAL IS NOT
*         REPOSITIONED TO THE BEGINNING OF THE NEXT LINE, AND ANY 
*         SPECIAL MODES (E.G., EXTENDED OR BINARY TRANSMISSION) 
*         WILL REMAIN SET.  THIS BYTE MUST APPEAR AS THE FIRST BYTE 
*         OF A WORD, AND MUST BE FOLLOWED BY AN END OF LINE.
  
  
 IEB      LDD    DP+2        CHECK CHARACTER POSITION 
          LPN    17 
          LMN    2
          NJN    IEB1        IF NOT FIRST BYTE IN WORD
          LDN    1RL         CHECK FOR LINE TERMINATION 
          RJM    CLT
          STD    DP+2        CLEAR CHARACTER POSITION 
          STI    DO          CLEAR OUTPUT 
          RETURN EXI3,/CTL/RWC1 
  
 IEB1     LDN    1RL
          LJM    WTC19       REENTER WRITE MODE 
 ETI      SPACE  4,10 
**        0015   EXECUTIVE AUTO INPUT.
* 
*         THIS CONTROL BYTE IS INTENDED TO BE USED BY *IAFEX* FOR 
*         AUTO MODE INPUT. THE WORD IN WHICH THE CONTROL BYTE OCCURS
*         IS USED AS THE FIRST N CHARACTERS OF THE INPUT LINE.
*         N MUST BE EVEN AND LESS THAN 9. 
* 
*         THIS CONTROL BYTE MUST BE FOLLOWED BY AN END-OF-LINE. 
  
  
 ETI      LDC    LDNI+1RM    CONTROL BYTE TO REENTER WRITE MODE 
          STM    ATIB 
          LDC    RSW         SET UP CALL TO SUBROUTINE RSW
          STM    ATIA 
          LDN    1RM
          LJM    ATI1        AUTO MODE INPUT PROCESSING 
 CKL      SPACE  4,10,10
**        CKL - CHECK LIST STATUS.
* 
*         EXIT   (A) = NEGATIVE IF FILE LIST IN PROGRESS. 
* 
*         USES - (T1-T5)
  
  
 CKL      SUBR               ENTRY/EXIT 
          TTADD  VROT        READ *VROT*
          CRD    T1 
          LDD    T1+4        LOAD STATUS BYTE 
          SHN    21-6        SHIFT *LIST* STATUS BIT
          UJN    CKLX        RETURN 
 CLT      SPACE  4,10,10
**        CLT - CHECK FOR LINE TERMINATION. 
* 
*         CHECKS CURRENT OUTPUT FOR LINE TERMINATION. 
* 
*         ENTRY  (A) = NEXT OUTPUT CHARACTER IF NOT END OF LINE.
* 
*         EXIT   TO CALLING ROUTINE IF LINE TERMINATED. 
*                TO WRITE MODE IF LINE NOT TERMINATED.
*                LINE TERMINATION CAN BE EXPLICIT IN THE CASE OF
*                A VALID END OF LINE FOLLOWING THE CURRENT LINE 
*                POSITION, OR IT MAY BE IMPLICIT IN THE CASE OF THERE 
*                BEING NO FURTHER DATA, EITHER ASSIGNED OR ON 
*                MASS STORAGE.
*                IN THE EVENT THAT NO DETERMINATION CAN  BE MADE
*                BECAUSE THE DRIVER IS AT THE END OF THE CURRENT
*                POT STRING BUT OUTPUT IS WAITING ON MASS STORAGE,
*                OR IF THE JOB IS CURRENTLY IN EXECUTION, 
*                EXIT IS TO READ/WRITE CONTROL WITH SUSPENDED CONTROL 
*                STATUS SET IN (CH+2).
* 
*         USES   T0 - T5, CM, CM+1, (MA)-(MA)+5.
* 
*         CALLS  RDC, RLT, ROC. 
  
  
 CLT      SUBR               ENTRY/EXIT 
          STD    CM          SAVE CALLING CODE
          LDD    MA          SAVE POINTER WORD
          CWD    DP 
          RJM    ROC         READ NEXT CHARACTER
          LMC    .ECP 
          ZJN    CLT3        IF END OF CURRENT POT
          LMC    .ECP 
  
*         CHECK NEXT OUTPUT BYTE FOR END OF LINE. 
  
 CLT1     SHN    1           CHECK FOR END OF LINE
          LMN    1
          STD    CM+1        STORE FLAG (ZERO IF END OF LINE) 
 CLT2     LDD    MA          RESTORE POINTER WORD 
          CRD    DP 
          LDD    CM+1        CHECK FLAG 
          ZJN    CLTX        IF END OF LINE 
          LJM    CLT6 
  
*         ADVANCE TO NEXT POT.
  
 CLT3     STD    DP+2        CLEAR POINTERS 
          STD    CM+1 
          RJM    RLT         CHECK POT LINK 
          ZJN    CLT4        IF POT NOT LINKED
          STD    DP+1        SET NEXT POT 
          RJM    ROC         READ NEXT CHARACTER
          UJN    CLT1 
  
*         CHECK FOR ADDITIONAL OUTPUT.
  
 CLT4     RJM    RDC         READ VDCT
          SHN    21-13
          MJN    CLT2        IF DRIVER REQUEST
          LDD    DC+4 
          NJN    CLT5        IF OUTPUT ASSIGNED 
          TTADD  VROT        CHECK JOB STATUS 
          CRD    T0 
          LDD    T0+4 
          LPC    2001 
          LMN    1
          ZJN    CLT2        IF NOT EXECUTING AND NO OUTPUT 
  
*         SUSPEND CONTROL UNTIL FURTHER OUTPUT IS ASSIGNED. 
  
 CLT5     LDD    MA          RESET POINTER WORD 
          CRD    DP 
          LDD    CM          SET SUSPENDED CONTROL
          ADC    600
          STD    CH+2 
          RETURN EXI3,/CTL/RWC1  ENTER READ/WRITE CONTROL 
  
*         REENTER WRITE MODE IF NO TERMINATOR.
  
 CLT6     LDD    DP+3        CHECK *BINARY* MODE
          SHN    21-3 
          MJN    CLT7        IF SET 
          LDD    CM          SET OUTPUT CHARACTER 
          LJM    WTC19       REENTER WRITE MODE 
  
 CLT7     SOD    DP+2        BACK UP CHARACTER
          LJM    BWT4        EXIT BINARY MODE 
 MDS      SPACE  4,10 
**        MDS - MOVE DATA WORD TO START OF POT. 
* 
*         MOVE THE WORD CONTAINING THE AUTO INPUT CONTROL BYTE
*         TO THE FIRST WORD OF THE POT FOR SUBSEQUENT INPUT.
* 
*         ENTRY  (TO - T4) = DATA WORD. 
* 
*         EXIT   (A) = DATA FOR UPDATING (DP+2).
* 
*         USES   T6.
* 
*         MACROS ADCBM. 
  
  
 MDS      SUBR               ENTRY/EXIT 
          LDD    DP+1        MOVE DATA WORD TO START OF POT 
          SHN    3
          ADCBM 
          CWD    T0 
          LDD    DP+2        SET FIRST WORD 
          LPC    0617        CLEAR POT WORD POINTER 
          STD    DP+2 
          UJN    MDSX        RETURN 
 RSW      SPACE  4,10 
**        RSW - RESTORE WORD. 
* 
*         THE WORD IN WHICH THE CONTROL BYTE 0015 OCCURS IS USED
*         AS THE FIRST N CHARACTERS OF THE INPUT LINE.
* 
*         ENTRY  (T0 - T4) = DATA WORD. 
* 
*         EXIT   (A) = DATA FOR UPDATING DP+2.
* 
*         USES   DP, T6.
* 
*         MACROS ADCBM. 
  
  
 RSW      SUBR               ENTRY/EXIT 
          LDD    DP+1        RESTORE WORD 
          STD    DP 
          SHN    3
          LMD    T6 
          ADCBM 
          CWD    T0 
          LDD    DP+2        SET FIRST WORD 
          UJN    RSWX        RETURN 
          TITLE  WRITE MODE - SPECIAL CHARACTER PROCESSORS. 
 ANL      SPACE  4,10 
***       *ASCII* TERMINAL SPECIAL OUTPUT PROCESSING. 
 ANL      SPACE  4,10 
***       NEW LINE. 
* 
* 
*         (1.)   ISSUE *CR* TO TERMINAL.
*         (2.)   ISSUE *LF* TO TERMINAL.
*         (3.)   IF USER HAS NOT SPECIFIED A DELAY COUNT, SET N = 2.
*                OTHER WISE, SET N = USER SPECIFIED DELAY COUNT.
*         (4.)   IF TERMINAL IS NOT IN TAPE MODE, ISSUE N *NUL* CODES.
*                OTHERWISE, ISSUE N *DEL* CODES.
  
  
 ANL      LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMC    .ACR        ISSUE *CR* 
          STI    DO 
          RETURN EXI3 
          LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMC    .ALF+20000  ISSUE *LF*, REPEAT COUNT = 2 
          UJN    ACR1 
 ACR      SPACE  4,10 
***       CARRIAGE RETURN.
* 
* 
*         (1.)   ISSUE *CR* TO TERMINAL.
*         (2.)   IF USER HAS NOT SPECIFIED A DELAY COUNT, SET N = 3.
*                OTHER WISE, SET N = USER SPECIFIED DELAY COUNT.
*         (3.)   IF TERMINAL IS NOT IN TAPE MODE, ISSUE N *NUL* CODES.
*                OTHERWISE, ISSUE N *DEL* CODES.
  
  
 ACR      LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMC    .ACR+30000  ISSUE *CR*, REPEAT COUNT = 3 
 ACR1     STI    DO 
          SHN    -14         SAVE DELAY COUNT 
          STD    CH+1 
          LDC    .ICR+4000
          STD    CH+2        ISSUE *CR* TO MONITOR
          RETURN EXI3 
          RJM    RDC         READ VDCT
          LPN    1
          ZJN    ACR2        IF NOT TAPE MODE 
          LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMC    .ADEL       ISSUE *DEL*
          UJN    ACR3 
  
 ACR2     LDD    DP+3        TOGGLE ON ODD PARITY 
          LPN    1
          LMC    .ANUL       ISSUE *NUL*
 ACR3     STI    DO 
          LDD    DC+1        CHECK USER DELAY COUNT 
          SHN    -3 
          LPN    37 
          ZJN    ACR4        IF NOT SPECIFIED 
          SBN    1           REPEAT COUNT = USER DELAY - 1
          STD    CH+1 
 ACR4     LDD    CH+1        SEND REPEATED CHARACTER
          RJM    SRC
          LDC    AWT         RESET ENTRY ADDRESS
          STD    CH 
          LJM    WTCX        CONTINUE WRITE 
 CBS      SPACE  4,10 
***       CORRESPONDENCE CODE TERMINAL SPECIAL OUTPUT PROCESSING. 
 CBS      SPACE  4,10 
***       BACKSPACE.
* 
* 
*         ISSUE *BS* TO TERMINAL. 
  
  
 CBS      SOD    CH+1        DECREMENT CHARACTER COUNT
          PJN    CBS1        IF NOT BEGINNING OF LINE 
          LDN    0           CLEAR CHARACTER COUNT
          STD    CH+1 
          UJN    CBS2 
  
 CBS1     LDC    .CBS        SET *BS* 
 CBS2     LJM    WTC         ISSUE CHARACTER
 CCR      SPACE  4,10 
***       CARRIAGE RETURN.
* 
* 
*         ISSUE N *BS* CODES TO TERMINAL, WHERE N IS THE NUMBER OF
*         CHARACTERS ON THE CURRENT LINE. 
  
  
 CCR      LDC    .CBS        ISSUE *BS* 
          STI    DO 
          UJN    CNL1        SET REPEAT COUNT = CHARACTER COUNT 
 CNL      SPACE  4,10 
***       NEW LINE. 
* 
* 
*         (1.)   ISSUE *NL* TO TERMINAL.
*         (2.)   ISSUE *LC* TO TERMINAL.
*         (3.)   ISSUE N *IL* CODES TO TERMINAL, WHERE N = CHARACTER
*                COUNT OF LINE DIVIDED BY 8.
  
  
 CNL      LDC    .CNL        ISSUE *NL* 
          STI    DO 
          RETURN EXI1 
          LDD    DP+3        CLEAR UPPER CASE 
          SCN    40 
          STD    DP+3 
          LDC    .CLC        ISSUE *LC* 
          STI    DO 
          RETURN EXI1 
          LDC    .CIL        ISSUE *IL* 
          STI    DO 
  
*         SET REPEAT COUNT. 
  
          LDD    CH+1        REPEAT COUNT = CHARACTER COUNT / 8 
          SHN    -3 
          STD    CH+1 
 CNL1     RJM    RDC         READ VDCT
          LDD    DC+1        ADD USER SPECIFIED DELAY COUNT 
          SHN    -3 
          LPN    37 
          ADD    CH+1 
          RJM    SRC         SEND REPEATED CHARACTER
 CNL2     LDC    CWT         RESET ENTRY ADDRESS
          STD    CH 
          LJM    WTCX        CONTINUE WRITE 
 CLF      SPACE  4,10 
***       LINE FEED.
* 
* 
*         (1.)   ISSUE *LF* TO TERMINAL.
*         (2.)   ISSUE *IL* TO TERMINAL.
  
  
 CLF      LDC    .CLF        ISSUE *LF* 
          STI    DO 
          RETURN EXI1 
          LDC    .CIL        ISSUE *IL* 
          STI    DO 
          UJN    CNL2        RESET ENTRY ADDRESS
          SPACE  4,10 
          QUAL
 WTM      EQU    /WTM/WTM 
 WTME     BSS    0           END OF WRITE MODE
          TITLE  UTILITY SUBROUTINES. 
 BUP      SPACE  4,10 
**        BUP - BACK UP POINTERS. 
* 
*         ENTRY  NONE.
* 
*         EXIT   (DP - DP+4) UPDATED. 
* 
*         USES   DP+2, T5, T6.
* 
*         CALLS  RLT. 
  
  
 BUP5     SOD    DP+2        DECREMENT CHARACTER NUMBER 
  
 BUP      SUBR               ENTRY/EXIT 
          LDD    DP+2        CHECK CHARACTER NUMBER 
          LPN    17 
          NJN    BUP5        IF NOT FIRST CHARACTER OF WORD 
          LDD    DP+1        CHECK CURRENT POT
          LMD    DP 
          NJN    BUP2        IF NOT FIRST POT 
          LDD    DP+2        CHECK WORD NUMBER
          SHN    5
          LMD    DP+2 
          LPC    7000 
          ZJN    BUPX        IF FIRST WORD
 BUP1     LCN    20-11       DECREMENT WORD NUMBER, SET LAST CHARACTER
          RAD    DP+2 
          UJN    BUPX 
  
 BUP2     LDD    DP+2        CHECK CURRENT WORD 
          LPC    160
          NJN    BUP1        IF NOT FIRST WORD OF POT 
          LDD    DP+1        SAVE CURRENT POT 
          STD    T6 
          LDD    DP          SET FIRST POT
 BUP3     STD    DP+1 
          RJM    RLT         READ LINK TABLE
          LMD    T6 
          ZJN    BUP4        IF CURRENT POT REACHED 
          LMD    T6          SET NEXT POT 
          UJN    BUP3        LOOP 
  
 BUP4     LDD    DP+2        SET LAST WORD, LAST CHARACTER
          LPC    7000 
          LMC    371         SET *POT REQUESTED*
          STD    DP+2 
          LJM    BUPX        RETURN 
 CEM      SPACE  4,10,10
**        CEM - CLEAR EXTENDED TRANSMISSION MODE. 
* 
*         SET/RESET EXTENDED TRANSMISSION MODE DEPENDING
*         UPON MODE IN *VDCT*.
* 
*         EXIT   (A) = (DP+3).
* 
*         USES   DP+3.
* 
*         CALLS  RDC. 
  
  
 CEM      SUBR               ENTRY/EXIT 
          LDD    DP+3        CLEAR EXTENDED MODE
          SCN    2
          STD    DP+3 
          RJM    RDC         READ *VDCT*
          SHN    1-3         SET EXTENDED/NORMAL MODE 
          LPN    2
          RAD    DP+3 
          UJN    CEMX        RETURN 
 CSM      SPACE  4,10 
**        CSM - CHECK IF SCREEN MANAGEMENT INTERFACE. 
* 
*         EXIT   (A) .NE. 0 IF SMFIF PROCESSING.
  
  
 CSM      SUBR               ENTRY/EXIT 
          TTADD  VFST 
          CRD    DC 
          LDD    DC+3 
          LPC    7700 
          UJN    CSMX        RETURN 
 CUT      SPACE  4,10 
**        CUT - CLEAN UP TERMINAL TABLE.
* 
*         CLEARS ALL INFORMATION FROM THE TERMINAL TABLE OF THE 
*         LOGGED OUT USER, LEAVING VROT SET COMPLETE. 
* 
*         USES   T0 - T5. 
  
  
 CUT      SUBR               ENTRY/EXIT 
          LDN    ZERL 
          CRD    T0 
          LDN    0
          STD    T5 
 CUT1     TTADD  VUIT 
          ADD    T5 
          CWD    T0          CLEAR OUT TERMINAL TABLE 
          AOD    T5 
          SBN    VTTL 
          NJN    CUT1        IF MORE WORDS TO CLEAR 
          AOD    T4          SET COMPLETE BIT IN VROT 
          TTADD  VROT 
          CWD    T0 
          UJN    CUTX        EXIT 
 ERQ      SPACE  4,10 
**        ERQ - ENTER CIRCULAR REQUEST QUEUE. 
* 
*         ERQ IS USED TO PLACE AN ENTRY IN THE DRIVER CIRCULAR REQUEST
*         QUEUE FOR *TELEX* TO PROCESS. 
* 
*         ENTRY  (A) = REQUEST CODE.
*                (RQ+1 - RQ+3) = PARAMETERS.
*                (TN) = TERMINAL NUMBER.
* 
*         EXIT   IN UPDATED.
*                (A) = 0. 
*                (RQ+1 - RQ+3) = 0. 
* 
*         CALLS  NONE.
* 
*         USES   IN+3, IN+4, RQ - RQ+3. 
* 
*         MACROS ADCRA, LDCDQ, LMCDQ. 
  
  
 ERQ1     AOD    IN+4        ADVANCE IN 
          SHN    -14
          RAD    IN+3        ADD OVERFLOW 
 ERQ2     LDCDQ  2           UPDATE IN
          CWD    IN 
          LDN    0           EXIT ERQ WITH A=0
          STD    RQ+1        CLEAR REQUEST BUFFER 
          STD    RQ+2 
          STD    RQ+3 
  
*         ERQ - ENTRY.
  
 ERQ      SUBR               ENTRY/EXIT 
          ADC    2000        ADD FUNCTION BIAS
          STD    RQ 
          LDD    IN+3        ENTER REQUEST
          SHN    14 
          ADD    IN+4 
          ADCRA 
          CWD    RQ 
          LMCDQ  4+VDSL 
          NJN    ERQ1        IF *IN* NOT EQUAL TO LIMIT-1 
          LDC    0           RESET IN = FIRST 
 .ERQA    EQU    *-1
          STD    IN+4 
          SHN    -14
          STD    IN+3 
          UJN    ERQ2 
 RDC      SPACE  4,10,13
**        RDC - READ VDCT TERMINAL TABLE ENTRY. 
* 
*         EXIT   (DC - DC+4) = VDCT TERMINAL TABLE ENTRY. 
*                (A) = (DC) FIRST BYTE OF VDCT. 
* 
*         USES   DC - DC+4. 
* 
*         MACRO  TTADD. 
  
  
 RDC      SUBR               ENTRY/EXIT 
          TTADD  VDCT 
          CRD    DC 
          LDD    DC 
          UJN    RDCX 
 RLT      SPACE  4,10 
**        RLT - READ LINK TABLE.
* 
*         RLT WILL READ THE LINK TABLE. 
* 
*         ENTRY  (DP+1) = POT POINTER IN LINK TABLE.
* 
*         EXIT   (A) = NEXT POT.
* 
*         USES   T0 - T5. 
* 
*         CALLS  NONE.
* 
*         MACROS ADCPL. 
  
  
 RLT      SUBR               ENTRY/EXIT 
          LDD    DP+1        SET BYTE NUMBER
          LPN    3
          STD    T5 
          LDD    DP+1        READ LINK WORD 
          SHN    -2 
          ADCPL 
          CRD    T0 
          LDI    T5          RETURN WITH NEXT LINK
          UJN    RLTX 
 RPC      SPACE  4,10 
**        RPC - READ PREVIOUS CHARACTER.
* 
*         ENTRY  NONE.
* 
*         EXIT   (A) = PREVIOUS CHARACTER.
*                IF PREVIOUS CHARACTER IS LOWER,
*                (T0 - T0+4) = DATA WORD. 
*                (T5) = BYTE NUMBER.
*                (T6) = WORD NUMBER.
* 
*         USES   T0 - T5. 
* 
*         CALLS  BUP, SWA.
  
  
 RPC1     LDD    CH          SET CHARACTER
          SHN    -6 
  
 RPC      SUBR               ENTRY/EXIT 
          RJM    BUP         BACK UP POINTERS 
          LDD    DP+2        CHECK CHARACTER NUMBER 
          SHN    21 
          PJN    RPC1        IF UPPER CHRACTER
          LPN    7           SET BYTE 
          STD    T5 
          RJM    SWA         SET WORD ADDRESS 
          CRD    T0 
          LDI    T5          SET CHARACTER
          LPN    77 
          UJN    RPCX        RETURN 
 SCA      SPACE  4,10 
**        SCA - SET CONTROL ADDRESS.
* 
*         RETURNS CONTROL WORD FROM TRANSLATION TABLE.  THIS MAY
*         BE THE ADDRESS OF A PROCESSING ROUTINE OR THE INPUT PROMPT
*         CHARACTER DEFINED FOR THAT TRANSLATION TABLE. 
* 
*         ENTRY  (A) = CONTROL ADDRESS NUMBER.
* 
*         EXIT   (A) = CONTROL WORD OR ADDRESS. 
* 
*         USES   T0 - T5. 
* 
*         CALLS  NONE.
  
  
          IFNE   VPPT,0,1 
 SCA3     LDM    TCTA,T5
  
 SCA      SUBR               ENTRY/EXIT 
          STD    T5          SET CONTROL WORD NUMBER
          LDD    DP+3        CHECK TRANSLATION TABLE
          SHN    -7 
          IFNE   VPPT,0,1 
          ZJN    SCA3        IF NO SPECIAL TRANSLATION
          STD    T1 
 PPT      IFNE   VPPT,0 
          SBN    NPPT 
          PJN    SCA1        IF CM RESIDENT TABLE 
          LDM    TITA,T1     SELECT TABLE 
          SBN    TCTAL
          RAD    T5 
          UJN    SCA2 
  
 PPT      ENDIF 
 SCA1     LDD    T5          READ CORRECT WORD
          SHN    -2 
          SBN    TCTAL/4
          ADM    TITA,T1
          ADCTR 
          CRD    T0 
          LDD    T5          SELECT CORRECT BYTE
          LPN    3
          STD    T5 
 SCA2     LDI    T5 
          UJN    SCAX 
 SWA      SPACE  4,10,10
**        SWA - SET WORD ADDRESS. 
* 
*         SET ADDRESS OF CURRENT WORD OF CURRENT POT. 
* 
*         ENTRY  (DP+1) = CURRENT POT.
*                (DP+2) = WORD POINTER. 
* 
*         EXIT   (A) = CM ADDRESS OF CURRENT WORD (ABSOLUTE). 
* 
*         MACRO  ADCBM. 
  
  
 SWA      SUBR               ENTRY/EXIT 
          LDD    DP+2        SET WORD 
          LPC    160
          SHN    21-6 
          LMD    DP+1        SET POT POINTER
          SHN    3           TIMES 10B
          ADCBM              ADD POT BUFFER ADDRESS 
          UJN    SWAX 
 TCH      SPACE  4,10,7 
 PPT      IFNE   VPPT,0 
  
***       TCH - TRANSLATE CHARACTER.
* 
*         ENTRY  (A) = INPUT OR OUTPUT POINTER. 
*                (T1) = TRANSLATION TABLE INDEX.
*                (T7) = CHARACTER TO BE TRANSLATED. 
* 
*         EXIT   (A) = TRANSLATED CHARACTER.
* 
*         USES   T0 -T4, T7.
* 
*         MACROS ADCTR. 
  
  
 TCH1     LDD    T7          READ CORRECT WORD
          SHN    -2 
          ADI    T2 
          ADCTR 
          CRD    T0 
          LDD    T7          READ CORRECT BYTE
          LPN    3
          STD    T7 
 TCH2     LDI    T7 
  
*         TCH - ENTRY/EXIT. 
  
 TCH      SUBR               ENTRY/EXIT 
          ADD    T1          ADD TRANSLATION TABLE INDEX
          STD    T2          SAVE TABLE POINTER 
          LDD    T1          CHECK TRANSLATION INDEX
          SBN    NPPT 
          PJN    TCH1        IF CM RESIDENT TABLE 
          LDI    T2          SET TABLE ADDRESS
          RAD    T7          ADD CHARACTER ADDRESS
          UJN    TCH2        TRANSLATE CHARACTER
  
 PPT      ELSE
  
***       TCH - TRANSLATE CHARACTER.
* 
*         VERSION ASSEMBLED FOR NO PPU RESIDENT TRANSLATION 
*         TABLES. 
* 
*         ENTRY  (A) = INPUT OR OUTPUT POINTER. 
*                (T7) = CHARACTER TO BE TRANSLATED. 
* 
*         EXIT   (A) = TRANSLATED CHARACTER.
*                (T7) = TRANSLATED CHARACTER. 
* 
*         USES   T7, T0 - T4. 
* 
*         MACROS ADCTR. 
  
  
 TCH      SUBR               ENTRY/EXIT 
          STD    T2          SAVE TABLE POINTER 
          LDD    DP+3        ADD TRANSLATION TABLE INDEX
          SHN    -7 
          RAD    T2          SET CM TABLE ADDRESS POINTER 
          LDD    T7          READ CORRECT WORD
          SHN    -2 
          ADI    T2 
          ADCTR 
          CRD    T0 
          LDD    T7          READ CORRECT BYTE
          LPN    3
          STD    T7 
          LDI    T7 
          STD    T7 
          UJN    TCHX        EXIT 
  
 PPT      ENDIF 
 WTO      SPACE  4,10 
**        WTO - WAIT TIME OUT.
* 
*         ENTRY - (A) TIME DELAY IN HALF SECONDS. 
* 
*         USES   CH, DP+2, DP+4.
* 
*         MACROS RETURN.
  
  
 WTO      CON    0           ENTRY
          STD    DP+2 
          LDM    WTO
          STD    CH 
          RETURN EXI3 
          LDD    IT 
          NJN    WTO1        IF HALF SECOND 
          LJM    MGR         EXIT 
  
 WTO1     SOD    DP+2 
          NJN    WTO2        IF TIME NOT ELAPSED
          LDD    CH          RESET REENTRY ADDRESS
          STD    DP+4 
 WTO2     LJM    EXI7 
          TITLE  DRIVER EXIT PROCESSING.
 MXE      SPACE  4,10 
**        MXE - PROCESS MULTIPLEXER ERROR.
* 
*         ENTRY  (A) = FUNCTION WHICH TIMED OUT, IF ENTERED AT *MXE0*.
*                (CM - CM+4) = EST ENTRY. 
* 
*         EXIT   (IR+2) = 3/ FN, 9/ ESTORD. 
  
  
 MXE0     STD    T1          SAVE FUNCTION CODE WHICH FAILED
          LDD    IA 
          CRD    IR          SET TO RE-WRITE INPUT REGISTER 
          LDD    T1          FUNCTION CODE
          SHN    11 
          ADM    TEQN,ME     EST ORDINAL
          STD    IR+2 
          LDD    IA          RE-WRITE INPUT REGISTER
          CWD    IR 
  
  
 MXE      LDD    CM          CHECK EQUIPMENT STATUS 
          SHN    21-10
          PJN    MXE1        IF NOT *CTS* 
          LDM    TNTD,ME     ADVANCE TERMINAL NUMBER
          RAD    TN 
          LJM    ITD2        PROCESS NEXT MULTIPLEXER 
  
 MXE1     LDN    0           SET MULTIPLEXER ERROR
          STD    ME 
 DRP      SPACE  4,10 
**        DRP - PROCESS DRIVER EXIT.
* 
*         ENTRY  (ME) = MULTIPLEXER ERROR STATUS. 
* 
*         MACRO  EXECUTE. 
  
  
  
 DRP      LDD    MA          WRITE INPUT REGISTER FOR *1RP* 
          CWM    RPPB,ON
          EXECUTE 1RP,= 
          RJM    RPP         READ PP RESIDENT 
          STM    MSD         CLEAR MASS STORAGE DRIVER DESIGNATOR FLAG
          STD    T1 
 DRP1     LDM    TEQN,T1     MOVE TABLES
          STM    PPFW,T1
          AOD    T1 
          ADC    TEQN-RESE
          MJN    DRP1        IF NOT END OF PPU MEMORY 
          EXECUTE 1TN        DO POST PROCESSING 
          TITLE  RESIDENT TRANSLATION TABLE.
          SPACE  4,10 
*         LAST LOCATION OF DRIVER CODE. 
  
 TCTA     BSS    0           LWA DRIVER/FWA CONTROL TABLE 
  
  
*         RESIDENT TRANSLATION TABLE ADDRESSES. 
  
 TINT     EQU    TCTA+TCTAL  INPUT TRANSLATION
 TOPT     EQU    TINT+200    OUTPUT TRANSLATION 
 .LL      BSS    1
 TTY      TRANS  TX=(*ASCII* TERMINAL, 64 CS.),IP=7155
          TRES   PPU
 TTY      SPACE  4,10 
***       TTY - *ASCII* TERMINAL, 64 CHARACTER SET. 
* 
*         USA STANDARD CODE FOR INFORMATION INTERCHANGE.
*         USAS X3.4-1968 REVISION OF X3.4-1967. 
* 
*         TERMINAL IDENTIFIER = *CR*. 
  
  
**        INPUT CONVERSION. 
* 
*         INDEXED BY *ASCII* CHARACTER VALUE. 
  
  
          ORG    INP
          LOC    0
  
 00       INASC  7640,BRK    NUL  FIRST CHARACTER OF A BREAK
 01       INASC  7641        SOH  START OF HEADING
 02       INASC  7642        STX  START OF TEXT 
 03       INASC  7643,ETX    ETX  END OF TEXT 
 04       INASC  7644        EOT  END OF TRANSMISSION 
 05       INASC  7645        ENQ  ENQUIRY 
 06       INASC  7646        ACK  ACKNOWLEDGE 
 07       INASC  7647        BEL  BELL
 08       INASC  7650,DPC    BS   BACKSPACE 
 09       INASC  7651        HT   HORIZONTAL TABULATION 
 0A       INASC  7652,NLI    LF   LINE FEED 
 0B       INASC  7653        VT   VERTICAL TABULATION 
 0C       INASC  7654        FF   FORM FEED 
 0D       INASC  7655,CRT    CR   CARRIAGE RETURN 
 0E       INASC  7656        SO   SHIFT OUT 
 0F       INASC  7657        SI   SHIFT IN
  
 10       INASC  7660        DLE  DATA LINK ESCAPE
 11       INASC  7661        DC1  DEVICE CONTROL 1 (X-ON) 
 12       INASC  7662        DC2  DEVICE CONTROL 2
 13       INASC  7663        DC3  DEVICE CONTROL 3 (X-OFF)
 14       INASC  7664        DC4  DEVICE CONTROL 4 (STOP) 
 15       INASC  7665        NAK  NEGATIVE ACKNOWLEDGE
 16       INASC  7666        SYN  SYNCHRONOUS IDLE
 17       INASC  7667        ETB  END OF TRANSMISSION BLOCK 
 18       INASC  7670        CAN  CANCEL
 19       INASC  7671        EM   END OF MEDIUM 
 1A       INASC  7672        SUB  SUBSTITUTE
 1B       INASC  7673,DLN    ESC  ESCAPE
 1C       INASC  7674        FS   FILE SEPARATOR
 1D       INASC  7675        GS   GROUP SEPARATOR 
 1E       INASC  7676        RS   RECORD SEPARATOR
 1F       INASC  7677        US   UNIT SEPARATOR
  
 20       INASC  55          SP   SPACE 
 21       INASC  66          EX   EXCLAMATION POINT 
 22       INASC  64          DQ   DOUBLE QUOTE (DIARESIS) 
 23       INASC  60          NM   NUMBER SIGN 
 24       INASC  53          DS   DOLLAR SIGN 
 25       INASC  63          PC   PERCENT 
 26       INASC  67          AM   AMPERSAND 
 27       INASC  70          AP   APOSTROPHE
 28       INASC  51          OP   OPENING PARENTHESIS 
 29       INASC  52          CP   CLOSING PARENTHESIS 
 2A       INASC  47          AS   ASTERISK
 2B       INASC  45          PL   PLUS
 2C       INASC  56          CM   COMMA (CEDILLA) 
 2D       INASC  46          MI   MINUS (HYPHEN)
 2E       INASC  57          PD   PERIOD (DECIMAL POINT)
 2F       INASC  50          SL   SLANT 
  
 30       INASC  33          0
 31       INASC  34          1
 32       INASC  35          2
 33       INASC  36          3
 34       INASC  37          4
 35       INASC  40          5
 36       INASC  41          6
 37       INASC  42          7
 38       INASC  43          8
 39       INASC  44          9
 3A       INASC  7400        CL   COLON 
 3B       INASC  77          SC   SEMICOLON 
 3C       INASC  72          LT   LESS THAN 
 3D       INASC  54          EQ   EQUALS
 3E       INASC  73          GT   GREATER THAN
 3F       INASC  71          QM   QUESTION MARK 
  
 40       INASC  7401,ECI    AT   COMMERCIAL AT 
 41       INASC  01          A
 42       INASC  02          B
 43       INASC  03          C
 44       INASC  04          D
 45       INASC  05          E
 46       INASC  06          F
 47       INASC  07          G
 48       INASC  10          H
 49       INASC  11          I
 4A       INASC  12          J
 4B       INASC  13          K
 4C       INASC  14          L
 4D       INASC  15          M
 4E       INASC  16          N
 4F       INASC  17          O
  
 50       INASC  20          P
 51       INASC  21          Q
 52       INASC  22          R
 53       INASC  23          S
 54       INASC  24          T
 55       INASC  25          U
 56       INASC  26          V
 57       INASC  27          W
 58       INASC  30          X
 59       INASC  31          Y
 5A       INASC  32          Z
 5B       INASC  61          OB   OPENING BRACKET 
 5C       INASC  75          RVS  REVERSE SLANT 
 5D       INASC  62          CB   CLOSING BRACKET 
 5E       INASC  7402,ECI    CF   CIRCUMFLEX
 5F       INASC  65          UL   UNDERLINE 
  
 60       INASC  7407        GV   GRAVE ACCENT
 61       INASC  7601        A    LC
 62       INASC  7602        B    LC
 63       INASC  7603        C    LC
 64       INASC  7604        D    LC
 65       INASC  7605        E    LC
 66       INASC  7606        F    LC
 67       INASC  7607        G    LC
 68       INASC  7610        H    LC
 69       INASC  7611        I    LC
 6A       INASC  7612        J    LC
 6B       INASC  7613        K    LC
 6C       INASC  7614        L    LC
 6D       INASC  7615        M    LC
 6E       INASC  7616        N    LC
 6F       INASC  7617        O    LC
  
 70       INASC  7620        P    LC
 71       INASC  7621        Q    LC
 72       INASC  7622        R    LC
 73       INASC  7623        S    LC
 74       INASC  7624        T    LC
 75       INASC  7625        U    LC
 76       INASC  7626        V    LC
 77       INASC  7627        W    LC
 78       INASC  7630        X    LC
 79       INASC  7631        Y    LC
 7A       INASC  7632        Z    LC
 7B       INASC  7633        LB   LEFT BRACE
 7C       INASC  7634        VL   VERTICAL LINE 
 7D       INASC  7635        RB   RIGHT BRACE 
 7E       INASC  7636        TL   TILDE (OVERLINE)
 7F       INASC  7637,NLI    DEL  DELETE (RUBOUT) 
 TTY      EJECT 
**        OUTPUT CONVERSION.
*         INDEXED BY DISPLAY CODE VALUE.
  
  
          ORG    OTP
          LOC    0
  
 00       OTASC  3A          COLON
 01       OTASC  41          A
 02       OTASC  42          B
 03       OTASC  43          C
 04       OTASC  44          D
 05       OTASC  45          E
 06       OTASC  46          F
 07       OTASC  47          G
  
 10       OTASC  48          H
 11       OTASC  49          I
 12       OTASC  4A          J
 13       OTASC  4B          K
 14       OTASC  4C          L
 15       OTASC  4D          M
 16       OTASC  4E          N
 17       OTASC  4F          O
  
 20       OTASC  50          P
 21       OTASC  51          Q
 22       OTASC  52          R
 23       OTASC  53          S
 24       OTASC  54          T
 25       OTASC  55          U
 26       OTASC  56          V
 27       OTASC  57          W
  
 30       OTASC  58          X
 31       OTASC  59          Y
 32       OTASC  5A          Z
 33       OTASC  30          0
 34       OTASC  31          1
 35       OTASC  32          2
 36       OTASC  33          3
 37       OTASC  34          4
  
 40       OTASC  35          5
 41       OTASC  36          6
 42       OTASC  37          7
 43       OTASC  38          8
 44       OTASC  39          9
 45       OTASC  2B          PL   PLUS
 46       OTASC  2D          MI   MINUS (HYPHEN)
 47       OTASC  2A          AS   ASTERISK
  
 50       OTASC  2F          SL   SLANT 
 51       OTASC  28          OP   OPENING PARENTHESIS 
 52       OTASC  29          CP   CLOSING PARENTHESIS 
 53       OTASC  24          DS   DOLLAR SIGN 
 54       OTASC  3D          EQ   EQUALS
 55       OTASC  20          SP   SPACE 
 56       OTASC  2C          CM   COMMA (CEDILLA) 
 57       OTASC  2E          PD   PERIOD (DECIMAL POINT)
  
 60       OTASC  23          NM   NUMBER SIGN 
 61       OTASC  5B          OB   OPENING BRACKET 
 62       OTASC  5D          CB   CLOSING BRACKET 
 63       OTASC  25          PC   PERCENT 
 64       OTASC  22          DQ   DOUBLE QUOTE (DIARESIS) 
 65       OTASC  5F          UL   UNDERLINE 
 66       OTASC  21          EX   EXCLAMATION POINT 
 67       OTASC  26          AM   AMPERSAND 
  
 70       OTASC  27          AP   APOSTROPHE
 71       OTASC  3F          QM   QUESTION MARK 
 72       OTASC  3C          LT   LESS THAN 
 73       OTASC  3E          GT   GREATER THAN
 74       OTASC  40          AT   COMMERCIAL AT 
 75       OTASC  5C          RVS  REVERSE SLANT 
 76       OTASC  5E          CF   CIRCUMFLEX
 77       OTASC  3B          SC   SEMICOLON 
  
*         EXTENDED CHARACTER SET (ESCAPE 1).
  
 7600     OTASC              NULL 
 7601     OTASC  61          A    LC
 7602     OTASC  62          B    LC
 7603     OTASC  63          C    LC
 7604     OTASC  64          D    LC
 7605     OTASC  65          E    LC
 7606     OTASC  66          F    LC
 7607     OTASC  67          G    LC
  
 7610     OTASC  68          H    LC
 7611     OTASC  69          I    LC
 7612     OTASC  6A          J    LC
 7613     OTASC  6B          K    LC
 7614     OTASC  6C          L    LC
 7615     OTASC  6D          M    LC
 7616     OTASC  6E          N    LC
 7617     OTASC  6F          O    LC
  
 7620     OTASC  70          P    LC
 7621     OTASC  71          Q    LC
 7622     OTASC  72          R    LC
 7623     OTASC  73          S    LC
 7624     OTASC  74          T    LC
 7625     OTASC  75          U    LC
 7626     OTASC  76          V    LC
 7627     OTASC  77          W    LC
  
 7630     OTASC  78          X    LC
 7631     OTASC  79          Y    LC
 7632     OTASC  7A          Z    LC
 7633     OTASC  7B          LB   LEFT BRACE
 7634     OTASC  7C          VL   VERTICAL LINE 
 7635     OTASC  7D          RB   RIGHT BRACE 
 7636     OTASC  7E          TL   TILDE (OVERLINE)
 7637     OTASC  7F          DEL  DELETE
  
 7640     OTASC  00          NUL  NULL (MEDIA FILL) 
 7641     OTASC  01          SOH  START OF HEADING
 7642     OTASC  02          STX  START OF TEXT 
 7643     OTASC  03          ETX  END OF TEXT 
 7644     OTASC  04          EOT  END OF TRANSMISSION 
 7645     OTASC  05          ENQ  ENQUIRY 
 7646     OTASC  06          ACK  ACKOWLEDGE
 7647     OTASC  07          BEL  BELL
  
 7650     OTASC  08          BS   BACKSPACE 
 7651     OTASC  09          HT   HORIZONTAL TABULATION 
 7652     OTASC  0A          LF   LINE FEED 
 7653     OTASC  0B          VT   VERTICAL TABULATION 
 7654     OTASC  0C          FF   FORM FEED 
 7655     OTASC  ,ACR        CR   CARRIAGE RETURN 
 7656     OTASC  0E          SO   SHIFT OUT 
 7657     OTASC  0F          SI   SHIFT IN
  
 7660     OTASC  10          DLE  DATA LINK ESCAPE
 7661     OTASC  11          DC1  DEVICE CONTROL 1 (X-ON) 
 7662     OTASC  12          DC2  DEVICE CONTROL 2
 7663     OTASC  13          DC3  DEVICE CONTROL 3 (X-OFF)
 7664     OTASC  14          DC4  DEVICE CONTROL 4 (STOP) 
 7665     OTASC  15          NAK  NEGATIVE ACKNOWLEDGE
 7666     OTASC  16          SYN  SYNCHRONOUS IDLE
 7667     OTASC  17          ETB  END OF TRANSMISSION BLOCK 
  
 7670     OTASC  18          CAN  CANCEL
 7671     OTASC  19          EM   END OF MEDIUM 
 7672     OTASC  1A          SUB  SUBSTITUTE
 7673     OTASC  1B          ESC  ESCAPE
 7674     OTASC  1C          FS   FILE SEPARATOR
 7675     OTASC  1D          GS   GROUP SEPARATOR 
 7676     OTASC  1E          RS   RECORD SEPARATOR
 7677     OTASC  1F          US   UNIT SEPARATOR
  
*         EXTENDED CHARACTER SET (ESCAPE 2).
  
 7400     OTASC              NULL 
 7401     OTASC  40          AT   COMMERCIAL AT 
 7402     OTASC  5E          CF   CIRCUMFLEX
 7403     OTASC              NULL 
 7404     OTASC  3A          CL   COLON 
 7405     OTASC  11          DC1  DEVICE CONTROL 1 (X-ON) 
 7406     OTASC  13          DC3  DEVICE CONTROL 3 (X-OFF)
 7407     OTASC  60          GV   GRAVE ACCENT
  
 7410     OTASC  ,ACR        CR   CARRIAGE RETURN 
 7411     OTASC  0A          LF   LINE FEED 
 7412     OTASC  ,ANL        NL   NEW LINE (CR/LF)
 COR      TRANS  CD=400,RD=CRD,CL=CCL,SL=CSL,WT=CWT,TX=(CORRESPONDENCE/T
,EXT, 64 CS.),IP=7155,TC=COR
          TRES   CM 
 COR      SPACE  4,10 
***       COR - CORRESPONDENCE/TEXT , 64 CHARACTER SET. 
* 
*         STANDARD CORRESPONDENCE KEYBOARD. 
*         TYPE ELEMENT 1167029 (COURIER). 
*         CORRESPONDENCE LINE CODE. 
* 
*         TERMINAL IDENTIFIER = *ATTN*. 
  
  
**        INPUT CONVERSION. 
* 
*         INDEXED BY CORRESPONDENCE CODE CHARACTER. 
  
  
          ORG    INP
          LOC    0
  
*         LOWER CASE INPUT CONVERSION.
  
 00       INCOR  55          SP   SPACE 
 01       INCOR  62               1/2 
 02       INCOR  7624        T    LC
 03       INCOR  7612        J    LC
 04       INCOR  37          4
 05       INCOR  7617        O    LC
 06       INCOR  7614        L    LC
 07       INCOR  50          SL   SLANT 
  
 10       INCOR  40          5
 11       INCOR  70          AP   APOSTROPHE
 12       INCOR  7605        E    LC
 13       INCOR  7620        P    LC
 14       INCOR              NULL 
 15       INCOR              NULL 
 16       INCOR              NULL 
 17       INCOR              NULL 
  
 20       INCOR  35          2
 21       INCOR  57          PD   PERIOD
 22       INCOR  7616        N    LC
 23       INCOR  54          EQ   EQUALS
 24       INCOR  7632        Z    LC
 25       INCOR              NULL 
 26       INCOR              NULL 
 27       INCOR              NULL 
  
 30       INCOR  41          6
 31       INCOR  7611        I    LC
 32       INCOR  7613        K    LC
 33       INCOR  7621        Q    LC
 34       INCOR  40,CSF      UC   UPPER CASE SHIFT
 35       INCOR  7650,DPC    BS   BACKSPACE 
 36       INCOR  7667        EOB  END OF BLOCK
 37       INCOR  0,CSF       LC   LOWER CASE SHIFT
  
 40       INCOR  34          1
 41       INCOR  7615        M    LC
 42       INCOR  7630        X    LC
 43       INCOR  7607        G    LC
 44       INCOR  33          0
 45       INCOR  7623        S    LC
 46       INCOR  7610        H    LC
 47       INCOR  7631        Y    LC
  
 50       INCOR  42          7
 51       INCOR  7622        R    LC
 52       INCOR  7604        D    LC
 53       INCOR  77          SC   SEMI-COLON
 54       INCOR  7664        STO  STOP CODE 
 55       INCOR  55,NWL      NL   NEW LINE
 56       INCOR  7652,NLI    LF   LINE FEED 
 57       INCOR  7651        HT   TAB 
  
 60       INCOR  36          3
 61       INCOR  7626        V    LC
 62       INCOR  7625        U    LC
 63       INCOR  7606        F    LC
 64       INCOR  44          9
 65       INCOR  7627        W    LC
 66       INCOR  7602        B    LC
 67       INCOR  46          MI   MINUS 
  
 70       INCOR  43          8
 71       INCOR  7601        A    LC
 72       INCOR  7603        C    LC
 73       INCOR  56          CM   COMMA 
 74       INCOR  55,EOT      EOT  END OF TRANSMISSION 
 75       INCOR  7666        IL   IDLE
 76       INCOR  7673        PF   PREFIX
 77       INCOR  7670        DEL  DELETE
  
*         UPPER CASE INPUT CONVERSION.
  
 100      INCOR  55          SP   SPACE 
 101      INCOR  61               1/4 
 102      INCOR  24          T
 103      INCOR  12          J
 104      INCOR  53          DS   DOLLAR SIGN 
 105      INCOR  17          O
 106      INCOR  14          L
 107      INCOR  71          QU   QUESTION
  
 110      INCOR  63          PC   PERCENT 
 111      INCOR  64          QT   DOUBLE QUOTE (DIARESIS) 
 112      INCOR  05          E
 113      INCOR  20          P
 114      INCOR              NULL 
 115      INCOR              NULL 
 116      INCOR              NULL 
 117      INCOR              NULL 
  
 120      INCOR  7401,ECI    AT   COMMERCIAL AT 
 121      INCOR  57          PD   PERIOD
 122      INCOR  16          N
 123      INCOR  45          PL   PLUS
 124      INCOR  32          Z
 125      INCOR              NULL 
 126      INCOR              NULL 
 127      INCOR              NULL 
  
 130      INCOR  66          CT   CENT(S) 
 131      INCOR  11          I
 132      INCOR  13          K
 133      INCOR  21          Q
 134      INCOR  40,CSF      UC   UPPER CASE SHIFT
 135      INCOR  7650,DPC    BS   BACKSPACE 
 136      INCOR  7667        EOB  END OF BLOCK
 137      INCOR  0,CSF       LC   LOWER CASE SHIFT
  
 140      INCOR  7634        +/-  PLUS/MINUS
 141      INCOR  15          M
 142      INCOR  30          X
 143      INCOR  07          G
 144      INCOR  52          CP   CLOSING PARENTHESIS 
 145      INCOR  23          S
 146      INCOR  10          H
 147      INCOR  31          Y
  
 150      INCOR  67          AM   AMPERSAND 
 151      INCOR  22          R
 152      INCOR  04          D
 153      INCOR  7400        CL   COLON 
 154      INCOR  7664        STO  STOP CODE 
 155      INCOR  55,NWL      NL   NEW LINE
 156      INCOR  7652,NLI    LF   LINE FEED 
 157      INCOR  7651        HT   TAB 
  
 160      INCOR  60          NM   NUMBER
 161      INCOR  26          V
 162      INCOR  25          U
 163      INCOR  06          F
 164      INCOR  51          OP   OPENING PARENTHESIS 
 165      INCOR  27          W
 166      INCOR  02          B
 167      INCOR  65          UL   UNDERLINE 
  
 170      INCOR  47          AST  ASTERISK
 171      INCOR  01          A
 172      INCOR  03          C
 173      INCOR  56          CM   COMMA 
 174      INCOR  55,EOT      EOT  END OF TRANSMISSION 
 175      INCOR  7666        NUL  IDLE
 176      INCOR  7673        PF   PREFIX
 177      INCOR  7670        DEL  DELETE
 COR      EJECT 
**        OUTPUT CONVERSION.
*         INDEXED BY DISPLAY CODE.
  
  
          ORG    OTP
          LOC    0
  
 00       OTCOR  53,UC       CL   COLON 
 01       OTCOR  71,UC       A
 02       OTCOR  66,UC       B
 03       OTCOR  72,UC       C
 04       OTCOR  52,UC       D
 05       OTCOR  12,UC       E
 06       OTCOR  63,UC       F
 07       OTCOR  43,UC       G
  
 10       OTCOR  46,UC       H
 11       OTCOR  31,UC       I
 12       OTCOR  03,UC       J
 13       OTCOR  32,UC       K
 14       OTCOR  06,UC       L
 15       OTCOR  41,UC       M
 16       OTCOR  22,UC       N
 17       OTCOR  05,UC       O
  
 20       OTCOR  13,UC       P
 21       OTCOR  33,UC       Q
 22       OTCOR  51,UC       R
 23       OTCOR  45,UC       S
 24       OTCOR  02,UC       T
 25       OTCOR  62,UC       U
 26       OTCOR  61,UC       V
 27       OTCOR  65,UC       W
  
 30       OTCOR  42,UC       X
 31       OTCOR  47,UC       Y
 32       OTCOR  24,UC       Z
 33       OTCOR  44,LC       0
 34       OTCOR  40,LC       1
 35       OTCOR  20,LC       2
 36       OTCOR  60,LC       3
 37       OTCOR  04,LC       4
  
 40       OTCOR  10,LC       5
 41       OTCOR  30,LC       6
 42       OTCOR  50,LC       7
 43       OTCOR  70,LC       8
 44       OTCOR  64,LC       9
 45       OTCOR  23,UC       PL   PLUS
 46       OTCOR  67,LC       MI   MINUS 
 47       OTCOR  70,UC       AS   ASTERISK
  
 50       OTCOR  07,LC       SL   SLANT 
 51       OTCOR  64,UC       OP   OPENING PARENTHESIS 
 52       OTCOR  44,UC       CP   CLOSING PARENTHESIS 
 53       OTCOR  04,UC       DS   DOLLAR SIGN 
 54       OTCOR  23,LC       EQ   EQUALS
 55       OTCOR  00,0        SP   SPACE 
 56       OTCOR  73,0        CM   COMMA 
 57       OTCOR  21,0        PD   PERIOD
  
 60       OTCOR  60,UC       NM   NUMBER SIGN 
 61       OTCOR  01,UC            1/4 
 62       OTCOR  01,LC            1/2 
 63       OTCOR  10,UC       PC   PERCENT 
 64       OTCOR  11,UC       DQ   DOUBLE QUOTE (DIARESIS) 
 65       OTCOR  67,UC       UL   UNDERLINE 
 66       OTCOR  30,UC       CT   CENT(S) 
 67       OTCOR  50,UC       AM   AMPERSAND 
  
 70       OTCOR  11,LC       AP   APOSTROPHE (SINGLE QUOTE) 
 71       OTCOR  07,UC       QU   QUESTION MARK 
 72       OTCOR              NULL 
 73       OTCOR              NULL 
 74       OTCOR  20,UC       AT   COMMERCIAL AT 
 75       OTCOR              NULL 
 76       OTCOR              NULL 
 77       OTCOR  53,LC       SC   SEMICOLON 
  
*         EXTENDED CHARACTER SET ( ESCAPE 1 ).
  
 7600     OTCOR              NULL 
 7601     OTCOR  71,LC       A    LC
 7602     OTCOR  66,LC       B    LC
 7603     OTCOR  72,LC       C    LC
 7604     OTCOR  52,LC       D    LC
 7605     OTCOR  12,LC       E    LC
 7606     OTCOR  63,LC       F    LC
 7607     OTCOR  43,LC       G    LC
  
 7610     OTCOR  46,LC       H    LC
 7611     OTCOR  31,LC       I    LC
 7612     OTCOR  03,LC       J    LC
 7613     OTCOR  32,LC       K    LC
 7614     OTCOR  06,LC       L    LC
 7615     OTCOR  41,LC       M    LC
 7616     OTCOR  22,LC       N    LC
 7617     OTCOR  05,LC       O    LC
  
 7620     OTCOR  13,LC       P    LC
 7621     OTCOR  33,LC       Q    LC
 7622     OTCOR  51,LC       R    LC
 7623     OTCOR  45,LC       S    LC
 7624     OTCOR  02,LC       T    LC
 7625     OTCOR  62,LC       U    LC
 7626     OTCOR  61,LC       V    LC
 7627     OTCOR  65,LC       W    LC
  
 7630     OTCOR  42,LC       X    LC
 7631     OTCOR  47,LC       Y    LC
 7632     OTCOR  24,LC       Z    LC
 7633     OTCOR              NULL 
 7634     OTCOR  40,UC       PM   PLUS-OR-MINUS 
 7635     OTCOR              NULL 
 7636     OTCOR              NULL 
 7637     OTCOR              NULL 
  
 7640     OTCOR  75,0        IL   IDLE
 7641     OTCOR  66,0        SOA  START OF ADDRESS
 7642     OTCOR  64,0        EOA  END OF ADDRESS
 7643     OTCOR              NULL 
 7644     OTCOR  74,0        EOT  END OF TRANSMISSION 
 7645     OTCOR              NULL 
 7646     OTCOR  67,0        ACK  ACKNOWLEDGE 
 7647     OTCOR              NULL 
  
 7650     OTCOR  ,CBS        BS   BACKSPACE 
 7651     OTCOR  57,0        HT   HORIZONTAL TAB
 7652     OTCOR  56,0        LF   LINE FEED 
 7653     OTCOR              NULL 
 7654     OTCOR              NULL 
 7655     OTCOR  ,CCR        CR   CARRIAGE RETURN (NO LINE FEED)
 7656     OTCOR  34,0        UCS  UPPER CASE SHIFT
 7657     OTCOR  37,0        LCS  LOWER CASE SHIFT
  
 7660     OTCOR              NULL 
 7661     OTCOR              NULL 
 7662     OTCOR              NULL 
 7663     OTCOR              NULL 
 7664     OTCOR  54,0        STO  STOP CODE 
 7665     OTCOR  01,0        NAK  NEGATIVE ACKNOWLEDGE
 7666     OTCOR  75,0        IL   IDLE
 7667     OTCOR  36,0        EOB  END OF BLOCK
  
 7670     OTCOR  77,0        DEL  DELETE
 7671     OTCOR              NULL 
 7672     OTCOR              NULL 
 7673     OTCOR  76,0        PF   PREFIX
 7674     OTCOR              NULL 
 7675     OTCOR              NULL 
 7676     OTCOR              NULL 
 7677     OTCOR              NULL 
  
*         EXTENDED CHARACTER SET (ESCAPE 2).
  
 7400     OTCOR              NULL 
 7401     OTCOR  20,UC       AT   COMMERCIAL AT 
 7402     OTCOR              NULL 
 7403     OTCOR  ,CNL        NL   NEW LINE (CR/LF)
 7404     OTCOR  53,UC       CL   COLON 
 7405     OTCOR              NULL 
 7406     OTCOR              NULL 
 7407     OTCOR              NULL 
  
 7410     OTCOR  ,CCR        CR   CARRIAGE RETURN 
 7411     OTCOR  ,CLF        LF   LINE FEED 
 7412     OTCOR  ,CNL        NL   NEW LINE (CR/LF)
 CORAPL   TRANS  CD=763,RD=CRD,WT=CWT,SL=CSL,CL=CCL,TX=(CORRESPONDENCE/A
,PL, 64 CS.),IP=7155,TC=COR 
          TRES   CM 
 CORAPL   SPACE  4,10,10
***       CORAPL - CORRESPONDENCE/APL, 64 CHARACTER SET.
* 
*         APL KEYBOARD. 
*         TYPE ELEMENT 1167987. 
*         CORRESPONDENCE LINE CODE. 
* 
*         TERMINAL IDENTIFIER = *A* - *ATTN*. 
  
  
**        INPUT CONVERSION
*         INDEXED BY CORRESPONDENCE CODE CHARACTER. 
  
  
          ORG    INP
          LOC    0
  
 00       INCOR  55          SP   SPACE 
 01       INCOR  7620        IS   SPECIFICATION ARROW 
 02       INCOR  24          T
 03       INCOR  12          J
 04       INCOR  37          4
 05       INCOR  17          O
 06       INCOR  14          L
 07       INCOR  50          SL   SLANT 
  
 10       INCOR  40          5
 11       INCOR  62          CB   CLOSE BRACKET 
 12       INCOR  05          E
 13       INCOR  20          P
 14       INCOR              NULL 
 15       INCOR              NULL 
 16       INCOR              NULL 
 17       INCOR              NULL 
  
 20       INCOR  35          2
 21       INCOR  57          PD   PERIOD
 22       INCOR  16          N
 23       INCOR  7606        ML   MULTIPLICATION
 24       INCOR  32          Z
 25       INCOR              NULL 
 26       INCOR              NULL 
 27       INCOR              NULL 
  
 30       INCOR  41          6
 31       INCOR  11          I
 32       INCOR  13          K
 33       INCOR  21          Q
 34       INCOR  40,CSF      UC   UPPER CASE SHIFT
 35       INCOR  7650,DPC    BS   BACKSPACE 
 36       INCOR  7667        EOB  END OF BLOCK
 37       INCOR  0,CSF       LC   LOWER CASE SHIFT
  
 40       INCOR  34          1
 41       INCOR  15          M
 42       INCOR  30          X
 43       INCOR  07          G
 44       INCOR  33          0
 45       INCOR  23          S
 46       INCOR  10          H
 47       INCOR  31          Y
  
 50       INCOR  42          7
 51       INCOR  22          R
 52       INCOR  04          D
 53       INCOR  61          OB   OPEN BRACKET
 54       INCOR  7664        STO  STOP CODE 
 55       INCOR  7403,NWL    NL   NEW LINE
 56       INCOR  7652,NLI    LF   LINE FEED 
 57       INCOR  7651        HT   TAB 
  
 60       INCOR  36          3
 61       INCOR  26          V
 62       INCOR  25          U
 63       INCOR  06          F
 64       INCOR  44          9
 65       INCOR  27          W
 66       INCOR  02          B
 67       INCOR  45          PL   PLUS
  
 70       INCOR  43          8
 71       INCOR  01          A
 72       INCOR  03          C
 73       INCOR  56          CM   COMMA 
 74       INCOR  7644,EOT    EOT  END OF TRANSMISSION 
 75       INCOR  7666        NUL  IDLE
 76       INCOR              PF   PREFIX
 77       INCOR              DEL  DELETE
  
 100      INCOR  55          SP   SPACE 
 101      INCOR  7621        GO   BRANCH ARROW
 102      INCOR  7624        TL   TILDE 
 103      INCOR  7612        NL   NULL OPERATOR 
 104      INCOR  7401,ECI    LE   LESS THAN OR EQUAL
 105      INCOR  7617        CI   CIRCLE
 106      INCOR  7614        QD   QUAD
 107      INCOR  75          RVS  REVERSE SLANT 
  
 110      INCOR  54          EQ   EQUALS
 111      INCOR  52          CP   CLOSING PARENTHESIS 
 112      INCOR  7605        EP   EPSILON 
 113      INCOR  47          AST  ASTERISK
 114      INCOR              NULL 
 115      INCOR              NULL 
 116      INCOR              NULL 
 117      INCOR              NULL 
  
 120      INCOR  7402,ECI    NG   NEGATION
 121      INCOR  7400        CL   COLON 
 122      INCOR  7616        RP   REPRESENTATION
 123      INCOR  63          DV   DIVIDE
 124      INCOR  7630        ID   IMBED 
 125      INCOR              NULL 
 126      INCOR              NULL 
 127      INCOR              NULL 
  
 130      INCOR  7634        GE   GREATER THAN OR EQUAL 
 131      INCOR  7611        IO   IOTA
 132      INCOR  70          QT   SINGLE QUOTE (APOSTROPHE) 
 133      INCOR  71          QU   QUESTION
 134      INCOR  40,CSF      UC   UPPER CASE SHIFT
 135      INCOR  7650,DPC    BS   BACKSPACE 
 136      INCOR              NULL 
 137      INCOR  0,CSF       LC   LOWER CASE SHIFT
  
 140      INCOR  60          DQ   DOUBLE QUOTE (DIARESIS) 
 141      INCOR  7615        MD   MODULUS 
 142      INCOR  7632        IN   INCLUSION (SUBSET)
 143      INCOR  7607        DL   DEL 
 144      INCOR  67          AN   AND 
 145      INCOR  7623        MX   MAXIMUM 
 146      INCOR  7610        DT   DELTA 
 147      INCOR  7631        TA   TAKE
  
 150      INCOR  73          GT   GREATER THAN
 151      INCOR  7622        RO   RHO 
 152      INCOR  7604        MN   MINIMUM 
 153      INCOR  51          OP   OPENING PARENTHESIS 
 154      INCOR  7664        STO  STOP CODE 
 155      INCOR  7403,NWL    NL   NEW LINE
 156      INCOR  7652,NLI    LF   LINE FEED 
 157      INCOR  7651        HT   TAB 
  
 160      INCOR  72          LT   LESS THAN 
 161      INCOR  7626        UN   UNION 
 162      INCOR  7625        DR   DROP
 163      INCOR  65          UL   UNDERLINE 
 164      INCOR  66          OR   OR
 165      INCOR  7627        OM   OMEGA 
 166      INCOR  7602        EV   EVALUATION
 167      INCOR  46          MI   MINUS 
  
 170      INCOR  64          NE   NOT EQUAL 
 171      INCOR  53          AL   ALPHA 
 172      INCOR  7603        IX   INTERSECTION
 173      INCOR  77          SC   SEMICOLON 
 174      INCOR  55,EOT      EOT  END OF TRANSMISSION 
 175      INCOR  7666        IL   IDLE
 176      INCOR              PF   PREFIX
 177      INCOR  7670        DEL  DELETE
 CORAPL   EJECT 
**        OUTPUT CONVERSION.
*         INDEXED BY DISPLAY CODE.
  
  
          ORG    OTP
          LOC    0
  
 00       OTCOR  21,UC       CL   COLON 
 01       OTCOR  71,LC       A
 02       OTCOR  66,LC       B
 03       OTCOR  72,LC       C
 04       OTCOR  52,LC       D
 05       OTCOR  12,LC       E
 06       OTCOR  63,LC       F
 07       OTCOR  43,LC       G
  
 10       OTCOR  46,LC       H
 11       OTCOR  31,LC       I
 12       OTCOR  03,LC       J
 13       OTCOR  32,LC       K
 14       OTCOR  06,LC       L
 15       OTCOR  41,LC       M
 16       OTCOR  22,LC       N
 17       OTCOR  05,LC       O
  
 20       OTCOR  13,LC       P
 21       OTCOR  33,LC       Q
 22       OTCOR  51,LC       R
 23       OTCOR  45,LC       S
 24       OTCOR  02,LC       T
 25       OTCOR  62,LC       U
 26       OTCOR  61,LC       V
 27       OTCOR  65,LC       W
  
 30       OTCOR  42,LC       X
 31       OTCOR  47,LC       Y
 32       OTCOR  24,LC       Z
 33       OTCOR  44,LC       0
 34       OTCOR  40,LC       1
 35       OTCOR  20,LC       2
 36       OTCOR  60,LC       3
 37       OTCOR  04,LC       4
  
 40       OTCOR  10,LC       5
 41       OTCOR  30,LC       6
 42       OTCOR  50,LC       7
 43       OTCOR  70,LC       8
 44       OTCOR  64,LC       9
 45       OTCOR  67,LC       PL   PLUS
 46       OTCOR  67,UC       MI   MINUS 
 47       OTCOR  13,UC       AST  ASTERISK
  
 50       OTCOR  07,LC       SL   SLANT 
 51       OTCOR  53,UC       OP   OPENING PARENTHESIS 
 52       OTCOR  11,UC       CP   CLOSING PARENTHESIS 
 53       OTCOR  71,UC       AL   ALPHA 
 54       OTCOR  10,UC       EQ   EQUALS
 55       OTCOR  00,0        SP   SPACE 
 56       OTCOR  73,LC       CM   COMMA 
 57       OTCOR  21,LC       PD   PERIOD
  
 60       OTCOR  40,UC       DQ   DOUBLE QUOTE (DIARESIS) 
 61       OTCOR  53,LC       OB   OPEN BRACKET
 62       OTCOR  11,LC       CB   CLOSE BRACKET 
 63       OTCOR  23,UC       DV   DIVIDE
 64       OTCOR  70,UC       NE   NOT EQUAL 
 65       OTCOR  63,UC       UL   UNDERLINE 
 66       OTCOR  64,UC       OR   OR
 67       OTCOR  44,UC       AN   AND 
  
 70       OTCOR  32,UC       QT   SINGLE QUOTE (APOSTROPHE) 
 71       OTCOR  33,UC       QU   QUESTION MARK 
 72       OTCOR  60,UC       LT   LESS THAN 
 73       OTCOR  50,UC       GT   GREATER THAN
 74       OTCOR  04,UC       LE   LESS THAN OR EQUAL
 75       OTCOR  07,UC       RVS  REVERSE SLANT 
 76       OTCOR  20,UC       NG   NEGATION
 77       OTCOR  73,UC       SC   SEMICOLON 
  
*         EXTENDED CHARACTER SET (ESCAPE 1).
  
 7600     OTCOR              NULL 
 7601     OTCOR  71,UC       AL   ALPHA 
 7602     OTCOR  66,UC       EV   EVALUATION
 7603     OTCOR  72,UC       IX   INTERSECTION
 7604     OTCOR  52,UC       MN   MINIMUM 
 7605     OTCOR  12,UC       EP   EPSILON 
 7606     OTCOR  23,LC       ML   MULTIPLICATION
 7607     OTCOR  43,UC       DL   DEL 
  
 7610     OTCOR  46,UC       DT   DELTA 
 7611     OTCOR  31,UC       IO   IOTA
 7612     OTCOR  03,UC       NL   NULL OPERATOR 
 7613     OTCOR              NULL 
 7614     OTCOR  06,UC       QD   QUAD
 7615     OTCOR  41,UC       MD   MODULUS 
 7616     OTCOR  22,UC       RP   REPRESENTATION
 7617     OTCOR  05,UC       CI   CIRCLE
  
 7620     OTCOR  01,LC       IS   SPECIFICATION ARROW 
 7621     OTCOR  01,UC       GO   BRANCH ARROW (GOTO) 
 7622     OTCOR  51,UC       RO   RHO 
 7623     OTCOR  45,UC       MX   MAXIMUM 
 7624     OTCOR  02,UC       TL   TILDE 
 7625     OTCOR  62,UC       DR   DROP
 7626     OTCOR  61,UC       UN   UNION 
 7627     OTCOR  65,UC       OM   OMEGA 
  
 7630     OTCOR  24,UC       ID   IMBED 
 7631     OTCOR  47,UC       TA   TAKE
 7632     OTCOR  42,UC       IN   INCLUSION (SUBSET)
 7633     OTCOR              NULL 
 7634     OTCOR  30,UC       GE    GREATER THAN OR EQUAL
 7635     OTCOR              NULL 
 7636     OTCOR              NULL 
 7637     OTCOR              NULL 
  
 7640     OTCOR  75,0        IL   IDLE
 7641     OTCOR  66,0        SOA  START OF ADDRESS
 7642     OTCOR  64,0        EOAL END OF ADDRESS
 7643     OTCOR              NULL 
 7644     OTCOR  74,0        EOT  END OF TEXT 
 7645     OTCOR              NULL 
 7646     OTCOR  67,0        ACK  ACKNOWLEDGE 
 7647     OTCOR              NULL 
  
 7650     OTCOR  ,CBS        BS   BACKSPACE 
 7651     OTCOR  57,0        HT   TAB 
 7652     OTCOR  56,0        LF   LINE FEED 
 7653     OTCOR              NULL 
 7654     OTCOR              NULL 
 7655     OTCOR  ,CCR        CR   CARRIAGE RETURN (NO LINE FEED)
 7656     OTCOR  37,0        LCS  LOWER CASE SHIFT
 7657     OTCOR  34,0        UCS  UPPER CASE SHIFT
  
 7660     OTCOR              NULL 
 7661     OTCOR              NULL 
 7662     OTCOR              NULL 
 7663     OTCOR              NULL 
 7664     OTCOR  54,0        STO  STOP CODE 
 7665     OTCOR  01,0        NAK  NEGATIVE ACKNOWLEDGE
 7666     OTCOR  75,0        IL   IDLE
 7667     OTCOR  36,0        EOB  END OF BLOCK
  
 7670     OTCOR  77,0        DEL  DELETE
 7671     OTCOR              NULL 
 7672     OTCOR              NULL 
 7673     OTCOR  76,0        PF   PREFIX
 7674     OTCOR              NULL 
 7675     OTCOR              NULL 
 7676     OTCOR              NULL 
 7677     OTCOR              NULL 
  
*         EXTENDED CHARACTER SET (ESCAPE 2).
  
 7400     OTCOR              NULL 
 7401     OTCOR  04,UC       LE   LESS THAN OR EQUAL
 7402     OTCOR  20,UC       NG   NEGATION
 7403     OTCOR  ,CNL        NL   NEW LINE (CR/LF)
 7404     OTCOR  21,UC       CL   COLON 
 7405     OTCOR              NULL 
 7406     OTCOR              NULL 
 7407     OTCOR              NULL 
  
 7410     OTCOR  ,CCR        CR   CARRIAGE RETURN 
 7411     OTCOR  ,CLF        LF   LINE FEED 
 7412     OTCOR  ,CNL        NL   NEW LINE (CR/LF)
 MEMAPL   TRANS  CD=303,TX=(MEMOREX 1240/APL 64 CS.),IP=7155
          TRES   CM 
 MEMAPL   SPACE  4,10 
***       MEMAPL - MEMOREX 1240/APL, 64 CHARACTER SET.
* 
*         APL KEYBOARD. 
*         ASCII LINE CODE.
* 
*         TERMINAL IDENTIFIER = *A*.
  
  
**        INPUT CONVERSION. 
*         INDEXED BY  *ASCII*  CHARACTER. 
  
  
          ORG    INP
          LOC    0
  
 00       INASC  7640,BRK    NUL  FIRST CHARACTER OF A BREAK
 01       INASC  7641        SOH  START OF HEADING
 02       INASC  7642        STX  START OF TEXT 
 03       INASC  7643,ETX    ETX  END OF TEXT 
 04       INASC  7644        EOT  END OF TRANSMISSION 
 05       INASC  7645        ENQ  ENQUIRY 
 06       INASC  7646        ACK  ACKNOWLEDGE 
 07       INASC  7647        BEL  BELL
 08       INASC  7650,DPC    BS   BACKSPACE 
 09       INASC  7651        HT   HORIZONTAL TAB
 0A       INASC  7652,NLI    LF   LINE FEED 
 0B       INASC  7653        VT   VERTICAL TAB
 0C       INASC  7654        FF   FORM FEED 
 0D       INASC  7655,CRT    CR   CARRIAGE RETURN 
 0E       INASC  7656        SO   SHIFT OUT 
 0F       INASC  7657        SI   SHIFT IN
  
 10       INASC  7660        DLE  DATA LINK ESCAPE
 11       INASC  7661        DC1  DEVICE CONTROL 1 (X-ON) 
 12       INASC  7662        DC2  DEVICE CONTROL 2
 13       INASC  7663        DC3  DEVICE CONTROL 3 (X-OFF)
 14       INASC  7664        DC4  DEVICE CONTROL 4 (STOP) 
 15       INASC  7665        NAK  NEGATIVE ACKNOWLEDGE
 16       INASC  7666        SYN  SYNCHRONOUS IDLE
 17       INASC  7667        ETB  END OF TRANSMISSION BLOCK 
 18       INASC  7670        CAN  CANCEL
 19       INASC  7671        EM   END OF MEDIUM 
 1A       INASC  7672        SUB  SUBSTITUTE
 1B       INASC  7673,DLN    ESC  ESCAPE
 1C       INASC  7674        FS   FILE SEPARATOR
 1D       INASC  7675        GS   GROUP SEPARATOR 
 1E       INASC  7676        RS   RECORD SEPARATOR
 1F       INASC  7677        US   UNIT SEPARATOR
  
 20       INASC  55          SP   SPACE 
 21       INASC  60          DQ   DIARESIS
 22       INASC  7402,ECI    NG   NEGATION
 23       INASC  72          LT   LESS THAN 
 24       INASC  7401,ECI    LE   LESS THAN OR EQUAL
 25       INASC  54          EQ   EQUAL 
 26       INASC  7634        GE   GREATER THAN OR EQUAL 
 27       INASC  73          GT   GREATER THAN
 28       INASC  64          NE   NOT EQUAL 
 29       INASC  66          OR   OR
 2A       INASC  52          CP   CLOSING PARENTHESIS 
 2B       INASC  51          OP   OPENING PARENTHESIS 
 2C       INASC  56          CM   COMMA 
 2D       INASC  45          PL   PLUS
 2E       INASC  57          PR   PERIOD
 2F       INASC  50          SL   SLANT 
  
 30       INASC  33          0
 31       INASC  34          1
 32       INASC  35          2
 33       INASC  36          3
 34       INASC  37          4
 35       INASC  40          5
 36       INASC  41          6
 37       INASC  42          7
 38       INASC  43          8
 39       INASC  44          9
 3A       INASC  62          CB   CLOSE BRACKET 
 3B       INASC  61          OB   OPEN BRACKET
 3C       INASC  77          SC   SEMICOLON 
 3D       INASC  46          MI   MINUS 
 3E       INASC  7400        CL    COLON
 3F       INASC  75          RVS  REVERSE SLANT 
  
 40       INASC  7620        IS   SPECIFICATION ARROW 
 41       INASC  7601        AL   ALPHA 
 42       INASC  7602        EV   EVALUATION
 43       INASC  7603        IX   INTERSECTION
 44       INASC  7604        MN   MINIMUM 
 45       INASC  7605        EP   EPSILON 
 46       INASC  65          UL   UNDERLINE 
 47       INASC  7607        DL   DEL 
 48       INASC  7610        DT   DELTA 
 49       INASC  7611        IO   IOTA
 4A       INASC  7612        NL   NULL OPERATOR 
 4B       INASC  70          QT   SINGLE QUOTE (APOSTROPHE) 
 4C       INASC  7614        QD   QUAD
 4D       INASC  7615        MD   MODULUS 
 4E       INASC  7616        RP   REPRESENTATION
 4F       INASC  7617        CI   CIRCLE
  
 50       INASC  47          AST  ASTERISK
 51       INASC  71          QU   QUESTION
 52       INASC  7622        RO   RHO 
 53       INASC  7623        MX   MAXIMUM 
 54       INASC  7624        TL   TILDE 
 55       INASC  7625        DR   DROP
 56       INASC  7626        UN   UNION 
 57       INASC  7627        OM   OMEGA 
 58       INASC  7630        ID   IMBED 
 59       INASC  7631        TA   TAKE
 5A       INASC  7632        SB   SUBSET
 5B       INASC  7636        RTK  RIGHT TACK
 5C       INASC  7407        DMD  DIAMOND 
 5D       INASC  7633        LB   RIGHT BRACE 
 5E       INASC  7606        ML   MULTIPLICATION
 5F       INASC  67          AN   AND 
  
 60       INASC  7621        GO   BRANCH ARROW
 61       INASC  01          A
 62       INASC  02          B
 63       INASC  03          C
 64       INASC  04          D
 65       INASC  05          E
 66       INASC  06          F
 67       INASC  07          G
 68       INASC  10          H
 69       INASC  11          I
 6A       INASC  12          J
 6B       INASC  13          K
 6C       INASC  14          L
 6D       INASC  15          M
 6E       INASC  16          N
 6F       INASC  17          O
  
 70       INASC  20          P
 71       INASC  21          Q
 72       INASC  22          R
 73       INASC  23          S
 74       INASC  24          T
 75       INASC  25          U
 76       INASC  26          V
 77       INASC  27          W
 78       INASC  30          X
 79       INASC  31          Y
 7A       INASC  32          Z
 7B       INASC  7613        LTK   LEFT TACK
 7C       INASC  53          DM   DOLLAR MARK 
 7D       INASC  7635        RB   RIGHT BRACE 
 7E       INASC  63          DV   DIVISION
 7F       INASC  7637,NLI    DEL  DELETE (RUBOUT) 
 MEMAPL   EJECT 
**        OUTPUT CONVERSION.
*         INDEXED BY DISPLAY CODE VALUE.
  
  
          ORG    OTP
          LOC    0
  
 00       OTASC  3E          CL   COLON 
 01       OTASC  61          A
 02       OTASC  62          B
 03       OTASC  63          C
 04       OTASC  64          D
 05       OTASC  65          E
 06       OTASC  66          F
 07       OTASC  67          G
  
 10       OTASC  68          H
 11       OTASC  69          I
 12       OTASC  6A          J
 13       OTASC  6B          K
 14       OTASC  6C          L
 15       OTASC  6D          M
 16       OTASC  6E          N
 17       OTASC  6F          O
  
 20       OTASC  70          P
 21       OTASC  71          Q
 22       OTASC  72          R
 23       OTASC  73          S
 24       OTASC  74          T
 25       OTASC  75          U
 26       OTASC  76          V
 27       OTASC  77          W
  
 30       OTASC  78          X
 31       OTASC  79          Y
 32       OTASC  7A          Z
 33       OTASC  30          0
 34       OTASC  31          1
 35       OTASC  32          2
 36       OTASC  33          3
 37       OTASC  34          4
  
 40       OTASC  35          5
 41       OTASC  36          6
 42       OTASC  37          7
 43       OTASC  38          8
 44       OTASC  39          9
 45       OTASC  2D          PL   PLUS
 46       OTASC  3D          MI   MINUS 
 47       OTASC  50          AST  ASTERISK
  
 50       OTASC  2F          SL   SLANT 
 51       OTASC  2B          OP   OPENING PARENTHESIS 
 52       OTASC  2A          CP   CLOSING PARENTHESIS 
 53       OTASC  7C          DM   DOLLAR MARK 
 54       OTASC  25          EQ   EQUALS
 55       OTASC  20          SP   SPACE 
 56       OTASC  2C          CM   COMMA 
 57       OTASC  2E          PR   PERIOD
  
 60       OTASC  21          DQ   DIARESIS
 61       OTASC  3B          OB   OPENING BRACKET 
 62       OTASC  3A          CB   CLOSE BRACKET 
 63       OTASC  7E          DV   DIVISION
 64       OTASC  28          NE   NOT EQUAL 
 65       OTASC  46          UL   UNDERLINE 
 66       OTASC  29          OR   OR
 67       OTASC  5F          AN   AND 
  
 70       OTASC  4B          QT   SINGLE QUOTE (APOSTROPHE) 
 71       OTASC  51          QU   QUESTION
 72       OTASC  23          LT   LESS THAN 
 73       OTASC  27          GT   GREATER THAN
 74       OTASC  24          LE   LESS THAN OR EQUAL
 75       OTASC  3F          RVS  REVERSE SLANT 
 76       OTASC  22          NG   NEGATION
 77       OTASC  3C          SC   SEMICOLON 
  
*         EXTENDED CHARACTER SET (ESCAPE 1).
  
 7600     OTASC              NULL 
 7601     OTASC  41          AL   ALPHA 
 7602     OTASC  42          EV   EVALUATION
 7603     OTASC  43          IX   INTERSECTION
 7604     OTASC  44          MN   MINIMUM 
 7605     OTASC  45          EP   EPSILON 
 7606     OTASC  5E          ML   MULTIPLICATION
 7607     OTASC  47          DL   DEL 
  
 7610     OTASC  48          DT   DELTA 
 7611     OTASC  49          IO   IOTA
 7612     OTASC  4A          NL   NULL OPERATOR 
 7613     OTASC  7B          LTK  LEFT TACK 
 7614     OTASC  4C          QD   QUAD
 7615     OTASC  4D          MD   MODULUS 
 7616     OTASC  4E          RP   REPRESENTATION
 7617     OTASC  4F          CI   CIRCLE
  
 7620     OTASC  40          IS   SPECIFICATION ARROW 
 7621     OTASC  60          GO   BRANCH ARROW
 7622     OTASC  52          RO   RHO 
 7623     OTASC  53          MX   MAXIMUM 
 7624     OTASC  54          TL   TILDE 
 7625     OTASC  55          DR   DROP
 7626     OTASC  56          UN   UNION 
 7627     OTASC  57          OM   OMEGA 
  
 7630     OTASC  58          ID   IMBED 
 7631     OTASC  59          TA   TAKE
 7632     OTASC  5A          SB   SUBSET
 7633     OTASC  5D          LB   LEFT BRACE
 7634     OTASC  26          GE   GREATER THAN OR EQUAL 
 7635     OTASC  7D          RB   RIGHT BRACE 
 7636     OTASC  7D          EQU  EQUIVALENCE 
 7637     OTASC  7F          DEL  DELETE
  
 7640     OTASC  00          NUL  NULL (MEDIA FILL) 
 7641     OTASC  01          SOH  START OF HEADING
 7642     OTASC  02          STX  START OF TEXT 
 7643     OTASC  03          ETX  END OF TEXT 
 7644     OTASC  04          EOT  END OF TRANSMISSION 
 7645     OTASC  05          ENQ  ENQUIRY 
 7646     OTASC  06          ACK  ACKNOWLEDGE 
 7647     OTASC  07          BEL  BELL
  
 7650     OTASC  08          BS   BACKSPACE 
 7651     OTASC  09          HT   HORIZONTAL TAB
 7652     OTASC  0A          LF   LINE FEED 
 7653     OTASC  0B          VT   VERTICAL TAB
 7654     OTASC  0C          FF   FORM FEED 
 7655     OTASC  ,ACR        CR   CARRIAGE RETURN 
 7656     OTASC  0E          SO   SHIFT OUT 
 7657     OTASC  0F          SI   SHIFT IN
  
 7660     OTASC  10          DLE  DATA LINK ESCAPE
 7661     OTASC  11          DC1  DEVICE CONTROL 1 ( X-ON ) 
 7662     OTASC  12          DC2  DEVICE CONTROL 2
 7663     OTASC  13          DC3  DEVICE CONTROL 3 ( X-OFF )
 7664     OTASC  14          DC4  DEVICE CONTROL 4 ( STOP ) 
 7665     OTASC  15          NAK  NEGATIVE ACKNOWLEDGE
 7666     OTASC  16          SYN  SYNCHRONOUS IDLE
 7667     OTASC  17          ETB  END OF TRANSMISSION BLOCK 
  
 7670     OTASC  18          CAN  CANCEL
 7671     OTASC  19          EM   END OF MEDIUM 
 7672     OTASC  1A          SUB  SUBSTITUTE
 7673     OTASC  1B          ESC  ESCAPE
 7674     OTASC  1C          FS   FILE SEPARATOR
 7675     OTASC  1D          GS   GROUP SEPARATOR 
 7676     OTASC  1E          RS   RECORD SEPARATOR
 7677     OTASC  1F          US   UNIT SEPARATOR
  
*         EXTENDED CHARACTER SET (ESCAPE 2).
  
 7400     OTASC              NULL 
 7401     OTASC  24          LE   LESS THAN OR EQUAL
 7402     OTASC  22          NG   NEGATION
 7403     OTASC  ,ANL        NL   NEW LINE (CR/LF)
          OTASC  3E          CL  COLON
 7405     OTASC              NULL 
 7406     OTASC              NULL 
 7407     OTASC  5C          DMD  DIAMOND 
  
 7410     OTASC  ,ACR        CR   CARRIAGE RETURN 
 7411     OTASC  0A          LF   LINE FEED 
 7412     OTASC  ,ANL        NL   NEW LINE (CR/LF)
 BLKEDT   TRANS  CD=204,TX=(*ASCII* BLOCK EDIT TERMINAL, 64 CS.),IP=7155
          TRES   CM 
 BLKEDT   SPACE  4,10 
***       BLKEDT - *ASCII* TERMINAL, BLOCK EDIT MODE, 64 CHAACTER SET.
* 
*         ASCII KEYBOARD. 
*         ASCII LINE CODE.
* 
*         TEMINAL IDENTIFIER = *B* (UPPER CASE).
  
  
**        INPUT CONVERSION. 
* 
*         INDEXED BY *ASCII* CHARACTER VALUE. 
  
  
          ORG    INP
          LOC    0
  
 00       INASC  7640        NUL  FIRST CHARACTER OF A BREAK
 01       INASC  7641        SOH  START OF HEADING
 02       INASC  7642        STX  START OF TEXT 
 03       INASC  7643,ETX    ETX  END OF TEXT 
 04       INASC  7644,EBT    EOT  END OF TRANSMISSION 
 05       INASC  7645        ENQ  ENQUIRY 
 06       INASC  7646        ACK  ACKNOWLEDGE 
 07       INASC  7647        BEL  BELL
 10       INASC  7650        BS   BACKSPACE 
 09       INASC  7651        HT   HORIZONTAL TABULATION 
 0A       INASC  7652,NLI    LF   LINE FEED 
 0B       INASC  7653        VT   VERTICAL TABULATION 
 0C       INASC  7654        FF   FORM FEED 
 0D       INASC  7655,EOL    CR   CARRIAGE RETURN 
 0E       INASC  7656        SO   SHIFT OUT 
 0F       INASC  7657        SI   SHIFT IN
  
 10       INASC  7660        DLE  DATA LINK ESCAPE
 11       INASC  7661        DC1  DEVICE CONTROL 1 (X-ON) 
 12       INASC  7662        DC2  DEVICE CONTROL 2
 13       INASC  7663        DC3  DEVICE CONTROL 3 (X-OFF)
 14       INASC  7664        DC4  DEVICE CONTROL 4 (STOP) 
 15       INASC  7665        NAK  NEGATIVE ACKNOWLEDGE
 16       INASC  7666        SYN  SYNCHRONOUS IDLE
 17       INASC  7667        ETB  END OF TRANSMISSION BLOCK 
 18       INASC  7670        CAN  CANCEL
 19       INASC  7671        EM   END OF MEDIUM 
 1A       INASC  7672        SUB  SUBSTITUTE
 1B       INASC  7673        ESC  ESCAPE
 1C       INASC  7674        FS   FILE SEPARATOR
 1D       INASC  7675        GS   GROUP SEPARATOR 
 1E       INASC  7676        RS   RECORD SEPARATOR
 1F       INASC  7677        US   UNIT SEPARATOR
  
 20       INASC  55          SP   SPACE 
 21       INASC  66          EX   EXCLAMATION POINT 
 22       INASC  64          QU   QUOTATION MARKS (DIARESIS)
 23       INASC  60          NM   NUMBER SIGN 
 24       INASC  53          DM   DOLLAR MARK 
 25       INASC  63          PC   PERCENT 
 26       INASC  67          AM   AMPERSAND 
 27       INASC  70          AP   APOSTROPHE
 28       INASC  51          OP   OPENING PARENTHESIS 
 29       INASC  52          CP   CLOSING PARENTHESIS 
 2A       INASC  47          AST  ASTERISK
 2B       INASC  45          PL   PLUS
 2C       INASC  56          CM   COMMA (CEDILLA) 
 2D       INASC  46          MI   HYPHEN (MINUS)
 2E       INASC  57          PR   PERIOD (DECIMAL POINT)
 2F       INASC  50          SL   SLANT 
  
 30       INASC  33          0
 31       INASC  34          1
 32       INASC  35          2
 33       INASC  36          3
 34       INASC  37          4
 35       INASC  40          5
 36       INASC  41          6
 37       INASC  42          7
 38       INASC  43          8
 39       INASC  44          9
 3E       INASC  7400        CL   COLON 
 3B       INASC  77          SC   SEMICOLON 
 3C       INASC  72          LT   LESS THAN 
 3D       INASC  54          EQ   EQUALS
 3E       INASC  73          GT   GREATER THAN
 3F       INASC  71          QM   QUESTION MARK 
  
 40       INASC  7401,ECI    AT   COMMERCIAL AT 
 41       INASC  01          A
 42       INASC  02          B
 43       INASC  03          C
 44       INASC  04          D
 45       INASC  05          E
 46       INASC  06          F
 47       INASC  07          G
 48       INASC  10          H
 49       INASC  11          I
 4A       INASC  12          J
 4B       INASC  13          K
 4C       INASC  14          L
 4D       INASC  15          M
 4E       INASC  16          N
 4F       INASC  17          O
  
 50       INASC  20          P
 51       INASC  21          Q
 52       INASC  22          R
 53       INASC  23          S
 54       INASC  24          T
 55       INASC  25          U
 56       INASC  26          V
 57       INASC  27          W
 58       INASC  30          X
 59       INASC  31          Y
 5A       INASC  32          Z
 5B       INASC  61          OB   OPENING BRACKET 
 5C       INASC  75          RVS  REVERSE SLANT 
 5D       INASC  62          CB   CLOSING BRACKET 
 5E       INASC  7402,ECI    CF   CIRCUMFLEX
 5F       INASC  65          UL   UNDERLINE 
  
 60       INASC  7407        GV   GRAVE ACCENT
 61       INASC  7601        A    LC
 62       INASC  7602        B    LC
 63       INASC  7603        C    LC
 64       INASC  7604        D    LC
 65       INASC  7605        E    LC
 66       INASC  7606        F    LC
 67       INASC  7607        G    LC
 68       INASC  7610        H    LC
 69       INASC  7611        I    LC
 6A       INASC  7612        J    LC
 6B       INASC  7613        K    LC
 6C       INASC  7614        L    LC
 6D       INASC  7615        M    LC
 6E       INASC  7616        N    LC
 6F       INASC  7617        O    LC
  
 70       INASC  7620        P    LC
 71       INASC  7621        Q    LC
 72       INASC  7622        R    LC
 73       INASC  7623        S    LC
 74       INASC  7624        T    LC
 75       INASC  7625        U    LC
 76       INASC  7626        V    LC
 77       INASC  7627        W    LC
 78       INASC  7630        X    LC
 79       INASC  7631        Y    LC
 7A       INASC  7632        Z    LC
 7B       INASC  7633        LB   LEFT BRACE
 7C       INASC  7634        VL   VERTICAL LINE 
 7D       INASC  7635        RB   RIGHT BRACE 
 7E       INASC  7636        TL   TILDE (OVERLINE)
 7F       INASC  7637        DEL  DELETE
 BLKEDT   EJECT 
**        OUTPUT CONVERSION.
*         INDEXED BY DISPLAY CODE VALUE.
  
  
          ORG    OTP
          LOC    0
  
 00       OTASC  3A          COLON
 01       OTASC  41          A
 02       OTASC  42          B
 03       OTASC  43          C
 04       OTASC  44          D
 05       OTASC  45          E
 06       OTASC  46          F
 07       OTASC  47          G
  
 10       OTASC  48          H
 11       OTASC  49          I
 12       OTASC  4A          J
 13       OTASC  4B          K
 14       OTASC  4C          L
 15       OTASC  4D          M
 16       OTASC  4E          N
 17       OTASC  4F          O
  
 20       OTASC  50          P
 21       OTASC  51          Q
 22       OTASC  52          R
 23       OTASC  53          S
 24       OTASC  54          T
 25       OTASC  55          U
 26       OTASC  56          V
 27       OTASC  57          W
  
 30       OTASC  58          X
 31       OTASC  59          Y
 32       OTASC  5A          Z
 33       OTASC  30          0
 34       OTASC  31          1
 35       OTASC  32          2
 36       OTASC  33          3
 37       OTASC  34          4
  
 40       OTASC  35          5
 41       OTASC  36          6
 42       OTASC  37          7
 43       OTASC  38          8
 44       OTASC  39          9
 45       OTASC  2B          PL   PLUS
 46       OTASC  2D          MI   HYPHEN (MINUS)
 47       OTASC  2A          AST  ASTERISK
  
 50       OTASC  2F          SL   SLANT 
 51       OTASC  28          OP   OPENING PARENTHESIS 
 52       OTASC  29          CP   CLOSING PARENTHESIS 
 53       OTASC  24          DM   DOLLAR MARK 
 54       OTASC  3D          EQ   EQUALS
 55       OTASC  20          SP   SPACE 
 56       OTASC  2C          CM   COMMA (CEDILLA) 
 57       OTASC  2E          PR   PERIOD (DECIMAL POINT)
  
 60       OTASC  23          NM   NUMBER SIGN 
 61       OTASC  5B          OB   OPENING BRACKET 
 62       OTASC  5D          CB   CLOSING BRACKET 
 63       OTASC  25          PC   PERCENT SIGN
 64       OTASC  22          QU   QUOTATION MARKS (DIARESIS)
 65       OTASC  5F          UL   UNDERLINE 
 66       OTASC  21          EX   EXCLAMATION POINT 
 67       OTASC  26          AM   AMPERSAND 
  
 70       OTASC  27          AP   APOSTROPHE
 71       OTASC  3F          QM   QUESTION MARK 
 72       OTASC  3C          LT   LESS THAN 
 73       OTASC  3E          GT   GREATER THAN
 74       OTASC  40          AT   COMMERCIAL AT 
 75       OTASC  5C          RVS  REVERSE SLANT 
 76       OTASC  5E          CF   CIRCUMFLEX
 77       OTASC  3B          SC   SEMICOLON 
  
*         EXTENDED CHARACTER SET (ESCAPE 1).
  
 7600     OTASC              NULL 
 7601     OTASC  61          A    LC
 7602     OTASC  62          B    LC
 7603     OTASC  63          C    LC
 7604     OTASC  64          D    LC
 7605     OTASC  65          E    LC
 7606     OTASC  66          F    LC
 7607     OTASC  67          G    LC
  
 7610     OTASC  68          H    LC
 7611     OTASC  69          I    LC
 7612     OTASC  6A          J    LC
 7613     OTASC  6B          K    LC
 7614     OTASC  6C          L    LC
 7615     OTASC  6D          M    LC
 7616     OTASC  6E          N    LC
 7617     OTASC  6F          O    LC
  
 7620     OTASC  70          P    LC
 7621     OTASC  71          Q    LC
 7622     OTASC  72          R    LC
 7623     OTASC  73          S    LC
 7624     OTASC  74          T    LC
 7625     OTASC  75          U    LC
 7626     OTASC  76          V    LC
 7627     OTASC  77          W    LC
  
 7630     OTASC  78          X    LC
 7631     OTASC  79          Y    LC
 7632     OTASC  7A          Z    LC
 7633     OTASC  7B          LB   LEFT BRACE
 7634     OTASC  7C          VL   VERTICAL LINE 
 7635     OTASC  7D          RB   RIGHT BRACE 
 7636     OTASC  7E          TL   TILDE (OVERLINE)
 7637     OTASC  7F          DEL  DELETE
  
 7640     OTASC  00          NUL  NULL (MEDIA FILL) 
 7641     OTASC  01          SOH  START OF HEADING
 7642     OTASC  02          STX  START OF TEXT 
 7643     OTASC  03          ETX  END OF TEXT 
 7644     OTASC  04          EOT  END OF TRANSMISSION 
 7645     OTASC  05          ENQ  ENQUIRY 
 7646     OTASC  06          ACK  ACKOWLEDGE
 7647     OTASC  07          BEL  BELL
  
 7650     OTASC  08          BS   BACKSPACE 
 7651     OTASC  09          HT   HORIZONTAL TABULATION 
 7652     OTASC  0A          LF   LINE FEED 
 7653     OTASC  0B          VT   VERTICAL TABULATION 
 7654     OTASC  0C          FF   FORM FEED 
 7655     OTASC  ,ACR        CR   CARRIAGE RETURN 
 7656     OTASC  0E          SO   SHIFT OUT 
 7657     OTASC  0F          SI   SHIFT IN
  
 7660     OTASC  10          DLE  DATA LINK ESCAPE
 7661     OTASC  11          DC1  DEVICE CONTROL 1 (X-ON) 
 7662     OTASC  12          DC2  DEVICE CONTROL 2
 7663     OTASC  13          DC3  DEVICE CONTROL 3 (X-OFF)
 7664     OTASC  14          DC4  DEVICE CONTROL 4 (STOP) 
 7665     OTASC  15          NAK  NEGATIVE ACKNOWLEDGE
 7666     OTASC  16          SYN  SYNCHRONOUS IDLE
 7667     OTASC  17          ETB  END OF TRANSMISSION BLOCK 
  
 7670     OTASC  18          CAN  CANCEL
 7671     OTASC  19          EM   END OF MEDIUM 
 7672     OTASC  1A          SUB  SUBSTITUTE
 7673     OTASC  1B          ESC  ESCAPE
 7674     OTASC  1C          FS   FILE SEPARATOR
 7675     OTASC  1D          GS   GROUP SEPARATOR 
 7676     OTASC  1E          RS   RECORD SEPARATOR
 7677     OTASC  1F          US   UNIT SEPARATOR
  
*         EXTENDED CHARACTER SET (ESCAPE 2).
  
 7400     OTASC              NULL NOT USED
 7401     OTASC  40          AT   COMMERCIAL AT 
 7402     OTASC  5E          CF   CIRCUMFLEX
 7403     OTASC  ,ANL        ANL  NEW LINE
 7404     OTASC  3A          CL   COLON 
 7405     OTASC  11          DC1  DEVICE CONTROL 1 (X-ON) 
 7406     OTASC              NULL 
 7407     OTASC  60          GV   GRAVE ACCENT
  
 7410     OTASC  ,ACR        CR   CARRIAGE RETURN 
 7411     OTASC  0A          LF   LINE FEED 
 7412     OTASC  ,ANL        NL   NEW LINE (CR/LF)
          SPACE  4,10 
          SPACE  4,10 
 RES      HERE
          ERRNG  IBUF-TCTA-LNPP TOO MANY PP RESIDENT TRANSLATION TABLES 
          ERRNG  MXTT-.T
          QUAL
 TNTT     EQU    /TRN/.T     TOTAL NUMBER OF TRANSLATION TABLES 
 LNPP     EQU    /TRN/LNPP
 NPPT     EQU    /TRN/NPPT
          QUAL   PRS
          SPACE  4,10 
*         CHECK PROGRAM OVERFLOW. 
  
 .L0      SET    .LL-OBUFE+3 OVERLAY LENGTH (PPU WORDS) 
 .L       SET    .L0/5+1     OVERLAY LENGTH (CM WORDS)
 .L       SET    .L/100+1    OVERLAY LENGTH (SECTORS) 
 .L       SET    .L*500-.L0  PPU WORDS LEFT IN SECTOR 
          QUAL   *
          TTL    1TN/2TN - INITIALIZATION AND COMPLETION. 
          TITLE 
          IDENT  1TN,PRG
          SST    .EST 
*COMMENT  1TN - INITIALIZATION / COMPLETION.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
*         BLOCK SEQUENCE DEFINITION.
  
          USE    MAIN 
 MANF     BSS    0
          USE    PRESET 
 PRSF     BSS    0
          USE    RESIDENT 
 RESF     BSS    0
          QUAL   INI
          SPACE  4,10 
***       INITIALIZATION. 
* 
* 
*         (1)  RESERVE MULTIPLEXERS AND CHANNELS. 
*         (2)  WAIT FOR *IAF* INITIALIZATION TO COMPLETE. 
*         (3)  INITIALIZE DRIVER. 
          SPACE  4,10 
***       COMPLETION. 
* 
* 
*         (1)  ISSUE DRIVER MAXIMUM CYCLE TIME MESSAGE. 
*         (2)  TERMINATE *TELEX* AND STIMULATOR IF RUNNING. 
          TITLE  INITIALIZATION COMPLETION. 
  
  
          USE    MAIN 
 INI      SPACE  4,10 
**        INI - INITIALIZATION. 
* 
*         ENTRY  (IR+1) = 6/, 1/TERMINATION FLAG, 5/. 
  
  
 INI      BSS    0           ENTRY
          RJM    IFP         INITIALIZE *COMPGFP* 
          LDD    IA          READ INPUT REGISTER
          CRD    IR 
          LDD    IR+1        CHECK CALL STATUS
          LPN    40 
          ZJN    INI1        IF INITIALIZATION
          LJM    TCP         TERMINATE CONTROL POINT
  
*         INITIALIZE CONTROL POINT. 
  
 INI1     STM    PPFW        TERMINATE EQUIPMENT DROP TABLE 
          LDN    1           INDICATE NO MUX FAILURE
          STD    ME 
          RJM    CET         CLEAR EQUIPMENT TABLES 
          RJM    IDS         INITIALIZE DRIVER STACK ADDRESS
  
*         SET CIRCULAR STACK REFERENCE ADDRESS. 
  
          LDD    CM+1        SET ADDRESS
          STM    TDQA 
          SHN    14 
          ADD    CM+2 
          STM    TDQA+1 
  
*         SET CM TRANSLATION TABLES REFERENCE ADDRESS.
  
          ADC    VDSL+5      ADD CIRCULAR STACK LENGTH
          ADN    TTTNL       ADD ID TABLE LENGTH
          STM    TTRA+1 
          SHN    -14
          STM    TTRA 
  
*         STORE TRANSLATION TABLE NAMES.
  
          LDN    TTTNL       SET LENGTH 
          STD    T1 
          LDD    CM+1        SET STACK ADDRESS
          SHN    6
          ADD    RA 
          SHN    6
          ADD    CM+2 
          ADC    VDSL+5      ADD STACK LENGTH 
          CWM    INIA,T1
  
*         SET TRANSLATION TABLES LOAD ADDRESS FOR *LCT*.
  
          STD    CH+1 
          SHN    -14
          STD    CH 
  
*         LOAD CM RESIDENT TRANSLATION TABLES.
  
          RJM    LCT         LOAD CM RESIDENT TRANSLATION TABLES
          RJM    STA         SET TRANSLATION TABLE ADDRESSES
          LDN    40          SET INITIALIZATION COMPLETE FLAG 
          RAD    IR+1 
          LDD    IA          WRITE INPUT REGISTER 
          CWD    IR 
  
*         SET POT LINK TABLE REFERENCE ADDRESS. 
  
          LDD    RA          SET POT LINK MEMORY ADDRESSES
          SHN    6
          ADN    VPLP 
          CRD    T5 
          LDD    T6 
          STM    TPLA 
          LDD    T7 
          STM    TPLA+1 
  
*         SET TERMINAL TABLES REFERENCE ADDRESS.
  
          LDD    RA          SET TERMINAL TABLE ADDRESSES 
          SHN    6
          ADN    VTTP 
          CRD    T5 
          LDD    T6 
          STM    TTTA 
          LDD    T7 
          STM    TTTA+1 
  
*         SET BUFFER MEMORY REFERENCE ADDRESS.
  
          LDD    RA          SET BUFFER MEMORY ADDRESS
          SHN    6
          ADN    VBMP 
          CRD    CM 
          LDD    CM+3 
          STM    TBMA 
          LDD    CM+4 
          STM    TBMA+1 
  
*         SET ADDRESS OF FIRST TERMINAL TABLE.
  
 INI3     LDD    DP+1        FIRST TERMINAL NUMBER
          STD    TN 
          LDD    RA          READ TERMINAL TABLE POINTER
          SHN    6
          ADN    VTTP 
          CRD    CM 
 INI4     LDN    VTTL        INCREMENT ADDRESS
          RAD    CM+2 
          SHN    -14
          RAD    CM+1 
          SOD    TN          DECREMENT TERMINAL COUNT 
          NJN    INI4        IF NOT ALL COUNTED 
          LDD    CM+1        SET FIRST TERMINAL ABSOLUTE ADDRESS
          SHN    6
          ADD    RA 
          SHN    6
          ADD    CM+2 
          STD    T7 
          SHN    -14
          STD    T6 
  
*         PRESET TERMINAL ROUTINE ADDRESSES.
  
          LDD    DP          SET TERMINAL COUNT 
          STD    TN 
          LDN    ZERL 
          CRD    CM 
          LDC    /CTL/ITSA   SET START ADDRESS
          STD    CM+4 
 INI5     LDD    T6 
          SHN    14 
          ADD    T7 
          ADN    VDPT 
          CWD    CM 
          LDN    VTTL 
          RAD    T7 
          SHN    -14
          RAD    T6 
          SOD    TN          DECREMENT TERMINAL COUNT 
          NJN    INI5        LOOP TO END OF TERMINALS 
  
*         INITIALIZE DRIVER DEBUG WORD. 
  
          LDD    RA          SET DEBUG WORD 
          SHN    6
          ADN    DBUG 
          CRD    CM 
          LDN    MNCT        SET INITIAL MINIMUM CYCLE TIME 
          STD    CM+1 
          LDD    RA 
          SHN    6
          ADN    DBUG 
          CWD    CM 
          LJM    /PRS/PRS 
  
*         INIA - TABLE OF TERMINAL NAMES. 
  
 INIA     BSS    0
          LOC    0
  
          VFD    "TNPP""TNCM"60/0 
  
 TTTNL    EQU    */5
          LOC    *O 
 ICP      SPACE  4,10 
**        IDS - INITIALIZE DRIVER STACK ADDRESS.
* 
*         ENTRY  (IR+4) = DRIVER CONTROL WORD POINTER.
*                (IDSB) = NUMBER OF NETWORK CONNECTIONS.
*                (IDSC) = NUMBER OF HIGH-SPEED CONNECTIONS. 
* 
*         EXIT   (CM+1 - CM+2) = DRIVER STACK ADDRESS.
*                (DP) = NUMBER OF PORTS.
*                (DP+1) = FIRST PORT NUMBER.
*                (DP+2) = LAST PORT NUMBER + 1. 
*                (IDSB) = NUMBER OF NETWORK TERMINALS.
*                (IDSC) = NUMBER OF HIGH SPEED TERMINALS. 
* 
*         USES   T1, T2, CM - CM+4, SI - SI+4.
* 
*         CALLS  CEF, SES.
* 
*         MACROS MONITOR. 
  
  
 IDS      SUBR               ENTRY/EXIT 
          RJM    CEF         CHECK CPU ACTIVITY 
          LDN    ZERL 
          CRD    SI          CLEAR STATUS INFORMATION 
          RJM    SES         SEARCH EST FOR EQUIPMENT(S)
          STD    DP          SET NUMBER OF TERMINALS
  
*         SET DRIVER CONTROL WORD DATA. 
  
          LDD    RA          READ DRIVER CONTROL WORD 
          SHN    6
          ADD    IR+4 
          CRD    CM 
          LDN    1           SET REPLY INTERLOCK
          STD    CM 
          LDD    DP          SET TERMINAL COUNT 
          STD    CM+3 
          LDC    /TRN/LNCM+TTTNL  SET CM TABLES LENGTH
          STD    CM+4 
          LDD    RA          REWRITE DRIVER CONTROL WORD
          SHN    6
          ADD    IR+4 
          CWD    CM 
  
*         SET NETWORK AND HIGH-SPEED CONNECTION COUNT IN
*         DRIVER CONTROL WORD TABLE TERMINATOR WORD.
  
 IDS1     ADN    1           ADVANCE TABLE ADDRESS
          CRD    CM          READ NEXT WORD OF TABLE
          STD    T2          SAVE WORD ADDRESS
          SHN    -14
          STD    T1 
          LDD    CM          CHECK FOR TABLE TERMINATOR 
          SHN    21-13
          MJN    IDS2        IF TABLE TERMINATOR
          LDD    T1          SET WORD ADDRESS 
          SHN    14 
          LMD    T2 
          UJN    IDS1        LOOP FOR NEXT WORD 
  
IDS2      LDD    T1          SET WORD ADDRESS 
          SHN    14 
          LMD    T2 
          CWM    IDSA,ON     WRITE TABLE TERMINATOR 
  
*         DROP PPU IF NO TERMINALS DEFINED. 
  
          LDD    DP          CHECK TERMINAL COUNT 
          NJN    IDS3        IF TERMINALS DEFINED 
          MONITOR DPPM       DROP PPU 
          LJM    PPR
  
*         WAIT FOR IAFEX CPU INITIALIZATION TO COMPLETE.
* 
*         IAFEX REPLY - 
*           (VDRL) = 12/0, 24/SA, 12/ TC, 12/ FT. 
*               SA = CIRCULAR STACK ADDRESS.
*               TC = TERMINAL (PORT) COUNT. 
*               FT = FIRST TERMINAL (PORT) NUMBER.
  
 IDS3     RJM    CEF         CHECK CPU ERROR FLAG 
          LDD    RA          CHECK IF *IAF* REPLIED YET 
          SHN    6
          ADD    IR+4        SET DRIVER CONTROL WORD ADDRESS
          CRD    CM 
          LDD    CM 
          NJN    IDS3        IF *IAF* HAS NOT REPLIED YET 
          LDD    CM+4        SET FIRST TERMINAL NUMBER
          STD    DP+1 
          RAM    /PRS/TTNA
          LPN    77          SET LAST TERMINAL NUMBER + 1 
          ADD    DP 
          STD    DP+2 
          LJM    IDSX        RETURN 
  
  
 IDSA     VFD    12/7777     TABLE TERMINATOR 
          VFD    12/0        UNUSED 
          VFD    12/0        UNUSED 
 IDSB     VFD    12/0        NUMBER OF NETWORK CONNECTIONS
 IDSC     VFD    12/0        NUMBER OF HIGH SPEED CONNECTIONS 
          TITLE  INITIALIZATION SUBROUTINES.
 ABT      SPACE  4,10 
**        ABT - ABORT JOB.
* 
*         ENTRY  (A) = MESSAGE ADDRESS. 
* 
*         USES   CM+1.
* 
*         CALLS  DFM. 
* 
*         MACROS MONITOR. 
  
  
 ABT      RJM    DFM         ISSUE DAYFILE MESSAGE
          LDN    PPET        SET ERROR FLAG 
          STD    CM+1 
          MONITOR CEFM
          LJM    DPP         DROP PP
 CCS      SPACE  4,10 
**        CCS - CHECK CHANNEL STATUS. 
* 
*         ENTRY  (A) = 7/ ,5/ CHANNEL NUMBER. 
* 
*         EXIT   (A) = 0 IF CHANNEL RESERVED. 
*                (T2) = CHANNEL NUMBER. 
* 
*         USES   T1, T2, T3, CM - CM+4. 
  
  
 CCS      SUBR               ENTRY/EXIT 
          LPN    37 
          STD    T2          SET CHANNEL NUMBER 
          MONITOR PRLM       PAUSE FOR PREVIOUS CHANNEL REQUEST 
          LDN    PPCP        READ PPU COMMUNICATION ADDRESS 
          CRD    CM 
          LDD    IA          SET PPU NUMBER 
          SBD    CM+4 
          SHN    -3 
          STD    T3 
          LDN    NCTAL       CHANNEL STATUS TABLE LENGTH
          STD    T1 
          LDC    CHTP        FWA OF CHANNEL TABLES
          CRD    CM 
          LDD    CM+2        READ CHANNEL STATUS TABLE
          SHN    14 
          LMD    CM+3 
          CRM    CCSA,T1
          LDM    CCSA,T2     COMPARE CHANNEL STATUS AND PPU NUMBER
          LMD    T3 
          LPN    37 
          UJN    CCSX        RETURN WITH COMPARISON STATUS
  
 CCSA     BSS    5*NCTAL     CHANNEL STATUS TABLE BUFFER
 CEF      SPACE  4,10 
**        CEF - CHECK ERROR FLAG. 
* 
*         EXIT   (CM - CM+4) = CP STATUS WORD.
* 
*         MACROS MONITOR. 
  
  
 CEF      SUBR
          PAUSE 
          LDD    CM+1 
          ZJN    CEFX        IF NO ERROR FLAG 
          LJM    DPP         DROP PP
 CES      SPACE  4,10 
**        CES - CHECK EQUIPMENT STATUS. 
* 
*         ENTRY  (CH - CH+4) = EST ENTRY. 
  
  
 CES      SUBR               ENTRY/EXIT 
          LDD    CH          CHECK EQUIPMENT
          SHN    21-10
          MJN    CESX        IF *CTS* MULTIPLEXOR, RETURN 
          LDD    CH+1        BUILD FUNCTION CODE INSTRUCTION
          LPN    77 
          LMC    FANI 
          STM    CESA 
          LPN    77          BUILD INACTIVE JUMP INSTRUCTION
          LMC    IJMI 
          STM    CESB 
          LPN    77          BUILD DISCONNECT INSTRUCTION 
          LMC    DCNI 
          STM    CESC 
          LDD    CH+4        BUILD FUNCTION CODE
          LPC    7000 
          ADN    3
 CESA     FAN.   MC 
          LDN    77          TIME OUT FUNCTION
 CES1     BSS    0
 CESB     IJM.   CESX,MC     IF FUNCTION ACCEPTED, RETURN 
          SBN    1
          NJN    CES1        IF NOT TIMED OUT 
 CESC     DCN.   MC 
          LDC    CESD 
          LJM    ABT         ABORT CONTROL POINT
  
 CESD     DATA   C* 667X FUNCTION REJECT.*
 DPP      SPACE  4,10,10
**        DPP - DROP PP.
  
 DPP      LCN    0           WAIT FOR *1AJ* TO COMPLETE 
          SBN    1
          NJN    *-1
          LDD    CP          SET CONTROL CARD BUFFER EMPTY
          ADN    CSPW 
          CRD    CM 
          LDD    CM+4 
          STD    CM+3 
          LDD    CP 
          ADN    CSPW 
          CWD    CM 
          LJM    TCP         TERMINATE CONTROL POINT
 CET      SPACE  4,10 
**        CET - CLEAR EQUIPMENT TABLES. 
* 
*         USES   T1.
  
  
 CET      SUBR               ENTRY/EXIT 
          LDC    TEQN 
          STD    T1 
 CET1     LDN    0
          STI    T1 
          AOD    T1 
          ADC    -10000 
          MJN    CET1        IF NOT END OF TABLES 
          UJN    CETX 
 RCH      SPACE  4,10 
**        RCH - RELEASE CHANNEL.
* 
*         ENTRY  (CH+1) = CHANNEL.
* 
*         EXIT   CHANNEL INACTIVE AND DROPPED, IF PREVIOUSLY RESERVED.
* 
*         CALLS  CCS. 
* 
*         MACROS DCHAN. 
  
  
 RCH      SUBR               ENTRY/EXIT 
          LDD    CH+1 
          RJM    CCS         CHECK CHANNEL STATUS 
          NJN    RCHX        IF NOT RESERVED BY THIS PP 
          LDD    T2 
          ADC    DCNI+40     ENSURE CHANNEL IS INACTIVE 
          STM    RCHA 
 RCHA     DCN.   **+40
          LDD    T2          RELEASE CHANNEL RESERVATION
          DCHAN 
          UJN    RCHX        RETURN 
 LCT      SPACE  4,10 
**        LCT - LOAD CM RESIDENT TRANSLATION TABLES.
* 
*         ENTRY  (CH - CH+1) = ABSOLUTE STARTING CM ADDRESS.
* 
*         EXIT   (CH - CH+1) = LWA+1 OF TRANSLATION TABLES. 
* 
*         USES   CH, T1, T7, CM - CM+4, ZR -ZR+4. 
  
*         MACROS MONITOR. 
  
  
 LCT      SUBR               ENTRY/EXIT 
          LDD    IR+1        SET CONTROL POINT NUMBER 
          LPN    37 
          RAM    LCTC+1 
          LDD    IA          SET INPUT REGISTER ADDRESS 
          STM    LCTC+2 
*         EXECUTE 9J*,=      TRANSLATION TABLE OVERLAYS 
          LDC    LCTD-1      SET FIRST OVERLAY NAME 
          STD    T7 
 LCT1     AOD    T7          ADVANCE TABLE
          LDI    T7          CHECK OVERLAY NAME 
          ZJN    LCTX        RETURN IF END OF TABLE 
          STM    LCTC+4 
          LDC    BUF         SET LOAD ADDRESS 
          STM    LCTA 
          ADN    5
          STM    LCTB 
          EXECUTE 1DL,= 
          LDD    MA          STORE INPUT REGISTER 
          CWM    LCTC,ON
 LCT2     LDN    1           SET NO DROP PP, NO QUEUE 
          STD    CM+1 
          MONITOR  RPPM      REQUEST PP 
          LDD    CM+1 
          ZJN    LCT2        IF NO PPU AVAILABLE
          STD    T1          SAVE PPU INPUT REGISTER ADDRESS
 LCT3     LDN    77          DELAY
          SBN    1
          NJN    *-1
          LDD    T1 
          CRD    CM 
          LDD    CM+1 
          LMM    LCTC+1 
          NJN    LCT2        IF LOADER TIMED OUT
          LDD    CM+2 
          LMC    7777 
          NJN    LCT3        IF LOADER NOT READY YET
          STD    CM+2 
          LDN    ZERL 
          CRD    ZR          CLEAR OUTPUT REGISTER
          LDD    OA 
          CWD    ZR 
          LDD    T1 
          CWD    CM 
 LCT4     LDN    77          DELAY
          SBN    1
          NJN    *-1
          LDD    OA          CHECK IF DATA READY
          CRD    CM 
          LDD    CM+4 
          ZJN    LCT4        IF DATA NOT READY
          LPN    77          SET WORD COUNT 
          ZJN    LCT5        IF NULL TRANSFER 
          STD    T1 
          LDD    MA          READ DATA
          CRM    BUF,T1 
 LCTA     EQU    *-1
          LDN    5*6         UPDATE BUFFER ADDRESS
          RAM    LCTA 
          LDD    OA          SET EMPTY FLAG 
          CWD    ZR 
          UJN    LCT4        LOOP 
  
 LCT5     LDM    BUF+4       SET WORD COUNT 
          SBN    1
          STD    T1          PPU WORD COUNT 
          SHN    2
          RAD    T1 
 LCT6     LDD    CH          STORE WORD 
          SHN    14 
          ADD    CH+1 
          CWM    BUF-5,ON 
 LCTB     EQU    *-1
          STD    CH+1        UPDATE CM ADDRESS
          SHN    -14
          STD    CH 
          LDN    4           UPDATE PPU ADDRESS 
          RAM    LCTB 
          LCN    4           DECREMENT BUFFER COUNT 
          RAD    T1 
          ZJN    LCT7        IF COMPLETE
          PJN    LCT6        IF NOT COMPLETE
 LCT7     LJM    LCT1        PROCESS NEXT TABLE 
  
 LCTC     VFD    18/3R1DL,6/,12/0,12/1R9,12/0 
  
 LCTD     CON    "ONCM" 
 MTT      SPACE  4,10,10
**        MTT - MODIFY TRANSLATION TABLES.
* 
*         MODIFY TRANSLATION TABLES TO CORRESPOND TO 63 CHARACTER 
*         SET INSTALLATION MODE.
* 
*         THIS SUBROUTINE IS RELOCATED TO AND EXECUTED WITHIN THE 
*         MULTIPLEXER OUTPUT BUFFER AREA. 
* 
*         USES   DI, DO, DP+2, DP+3, T6, T7, T0 - T4. 
* 
*         CALLS  RDP, SCA, TOC. 
* 
*         MACROS ADCTR. 
  
  
 MTTA     EQU    *
          LOC    OBUF 
  
 MTT      SUBR               ENTRY/EXIT 
          LDN    0           PRESET TRANSLATION TABLE INDICES 
          STD    DP+2 
          STD    DP+3 
          UJN    MTT2 
  
*         PROCESS TRANSLATION TABLE.
  
 MTT1     LDC    200B        ADVANCE TRANSLATION TABLE INDEX
          RAD    DP+3 
          SHN    -7 
          STD    DP+2 
 MTT2     LMN    TNTT        TOTAL NUMBER OF TRANSLATION TABLES 
          ZJN    MTTX        IF COMPLETE
          LDN    66          CHECK TABLE TYPE 
          STD    T7 
          RJM    /WTM/TOC 
          SHN    6
          PJN    MTT1        IF OLD TRANSLATION TABLE 
          LDN    0           SET SUBSTITUTION TABLE INDEX 
          STD    DO 
          STD    DI 
  
*         PRESET OUTPUT CONVERSIONS.
*         THE DISPLAY CODE VALUE OF THE CHARACTER TO BE SUBSTITUTED 
*         IS TRANSLATED TO COMMUNICATIONS LINE CODE AND SET 
*         IN TABLE *TOSV*.
  
 MTT3     LDM    TOSO,DO     SET SUBSTITUTION ORDINAL 
          STD    T7 
          LMC    7777 
          ZJN    MTT4        IF END OF OUTPUT CONVERSION
          RJM    /WTM/TOC    TRANSLATE OUTPUT 
          STM    TOSV,DO     STORE SUBSTITUTION VALUE 
          AOD    DO 
          UJN    MTT3        LOOP 
  
*         PRESET INPUT CONVERSIONS. 
*         THE CHARACTER TO BE MODIFIED IS FIRST CONVERTED TO
*         ITS EQUIVALENT COMMUNICATIONS LINE CODE.  THIS VALUE
*         WILL BE USED TO DETERMINE THE CHARACTERS LOCATION 
*         IN THE INPUT TRANSLATION TABLE, AND IS STORED IN
*         TABLE *TICO*. 
  
 MTT4     LDM    TICV,DI     CURRENT INPUT CHARACTER
          STD    T7 
          LMC    7777 
          ZJN    MTT6        IF END OF INPUT CONVERSIONS
          RJM    /WTM/TOC    TRANSLATE TO LINE CODE 
          SHN    -1          CALCULATE INPUT ORDINAL
          STD    T6 
          LPN    77 
          STD    T7 
          LDN    /CTL/RDP    DETERMINE TABLE TYPE 
          RJM    SCA
          LMC    /RDM/ARD 
          ZJN    MTT5        IF ASCII 
          LDD    T6          SET CORRESPONDENCE CASE
          SHN    6-11 
          LPC    100
          ADD    T7 
          STD    T6 
 MTT5     LDD    T6 
          LPC    177
          STM    TICO,DI     SET INPUT ORDINAL
          AOD    DI 
          UJN    MTT4        LOOP 
  
*         MODIFY OUTPUT CONVERSIONS.
  
 MTT6     SOD    DO          DECREMENT INDEX
          PJN    MTT7        IF NOT END OF OUTPUT CONVERSIONS 
          LJM    MTT9        ADVANCE TO INPUT CONVERSIONS 
  
 MTT7     LDM    TOTA,DP+2   SET TABLE BASE ADDRESS 
          STD    T7 
          LDD    DP+2        CHECK RESIDENCE
          SBN    NPPT 
          PJN    MTT8        IF CM RESIDENT 
          LDM    TOCO,DO     SET OUTPUT ADDRESS 
          RAD    T7 
          LDM    TOSV,DO     ENTER SUBSTITUTION VALUE 
          STI    T7 
          UJN    MTT6        LOOP TO NEXT CONVERSION
  
 MTT8     LDM    TOCO,DO     CALCULATE OUTPUT ADDRESS 
          LPN    3           SET BYTE INDEX 
          STD    T6 
          LDM    TOCO,DO     SET WORD ADDRESS 
          SHN    -2 
          RAD    T7 
          ADCTR              READ OUTPUT WORD 
          CRD    T0 
          LDM    TOSV,DO     ENTER SUBSTITUTION VALUE 
          STI    T6 
          LDD    T7          REWRITE WORD 
          ADCTR 
          CWD    T0 
          LJM    MTT6        LOOP TO NEXT CONVERSION
  
*         MODIFY INPUT CONVERSIONS. 
  
 MTT9     SOD    DI          DECREMENT INDEX
          PJN    MTT10       IF NOT END OF INPUT CONVERSIONS
          LJM    MTT1        LOOP TO NEXT TRANSLATION TABLE 
  
 MTT10    LDM    TITA,DP+2   SET TABLE BASE ADDRESS 
          STD    T7 
 PT       IF     DEF,VAVPT
          LMM    TOTA,DP+2   COMPARE TO OUTPUT TABLE ADDRESS
          ZJN    MTT9        IF NO OUTPUT TABLE 
 PT       ENDIF 
          LDD    DP+2        CHECK RESIDENCE
          SBN    NPPT 
          PJN    MTT11       IF CM RESIDENT 
          LDM    TICO,DI     SET INPUT ADDRESS
          RAD    T7 
          LDM    TISV,DI     ENTER SUBSTITUTION VALUE 
          STI    T7 
          UJN    MTT9        LOOP TO NEXT INPUT CONVERSION
  
 MTT11    LDM    TICO,DI     CALCULATE INPUT ADDRESS
          LPN    3           SET BYTE ADDRESS 
          STD    T6 
          LDM    TICO,DI     SET WORD ADDRESS 
          SHN    -2 
          RAD    T7 
          ADCTR              READ INPUT WORD
          CRD    T0 
          LDM    TISV,DI     ENTER SUBSTITUTION VALUE 
          STI    T6 
          LDD    T7          REWRITE WORD 
          ADCTR 
          CWD    T0 
          LJM    MTT9        LOOP TO NEXT CONVERSION
  
  
*         SUBSTITUTION TABLES.  THESE TABLES ARE USED TO
*         INDICATE THE INPUT AND OUTPUT SUBSTITUTIONS DESIRED.
*         THE INPUT AND OUTPUT TABLES ARE INDEPENDENT AND 
*         CHARACTERS MODIFIED FOR INPUT NEED NOT BE MODIFIED
*         FOR OUTPUT AND VICE VERSA.  THE TABLES ARE INDEXED
*         BY ORDINAL WITHIN THE TABLE AND THERE MUST BE A 
*         ONE WORD ENTRY IN EACH TABLE OF A SET TO INDICATE 
*         THE SUBSTITUTIONS DESIRED AND TO HOLD INTERMEDIATE
*         DATA CALCULATED BY *MTT*. 
* 
  
  
*         OUTPUT CONVERSION TABLES. 
* 
*         TOSO - TABLE OF DISPLAY CODE VALUES OF CHARACTERS 
*         TO BE SUBSTITUTED FOR THEIR CORRESPONDING CHARACTERS
*         IN TABLE *TOCO* WHEN OUTPUT.
  
 TOSO     BSS    0           SUBSTITUTION ORDINALS (DISPLAY CODE) 
          DATA   0
          DATA   63 
          DATA   7777        END OF TABLE 
  
*         TOCO - TABLE OF DISPLAY CODE CHARACTERS WHICH ARE TO
*         BE REPLACED BY THEIR CORRESPONDING CHARACTER IN TABLE 
*         *TOSO* WHEN OUTPUT. 
  
 TOCO     BSS    0           CURRENT ORDINALS (DISPLAY CODE)
          DATA   63 
          DATA   204
  
*         TOSV - TABLE OF SUBSTITUTION VALUES (COMMUNICATIONS 
*         LINE CODE) OF THEIR CORRESPONDING CHARACTERS IN TABLE 
*         *TOSO*. 
  
 TOSV     BSS    0           SUBSTITUTION VALUES (LINE CODE)
          DATA   0
          DATA   0
  
  
*         INPUT SUBSTITUTION TABLES.
* 
*         TICV - TABLE OF CHARACTERS WHICH ARE TO BE REPLACED 
*         BY THEIR CORRESPONDING CHARACTERS IN TABLE *TISV* 
*         WHEN INPUT. 
  
 TICV     BSS    0           CURRENT VALUES (DISPLAY CODE)
          DATA   0
          DATA   63 
          DATA   7777        END OF TABLE 
  
*         TISV - TABLE OR CHARACTERS WHICH ARE TO BE SUBSTITUTED
*         FOR THEIR CORRESPONDING CHARACTERS IN TABLE *TICV*
*         WHEN INPUT. 
  
 TISV     BSS    0           SUBSTITUTION VALUES (DISPLAY CODE) 
          DATA   63 
          DATA   204
  
*         TICO - TABLE OF INPUT TRANSLATION TABLE LOCATIONS 
*         OF THE CORRESPONDING CHARACTERS IN TABLE *TICV*.
  
 TICO     BSS    0           CURRENT ORDINALS (BIASED LINE CODE)
          DATA   0
          DATA   0
  
          LOC    *O 
 MTTL     EQU    *-MTTA 
          ERRNG  300B-MTTL   MINIMUM LENGTH OF MULTIPLEXOR BUFFER 
 PTM      SPACE  4,10,10
**        PTM - PRESET TRANSLATION TABLE MODIFICATION ROUTINE.
* 
*         RELOCATES ROUTINE *MTT* TO MULTIPLEXER OUTPUT BUFFER
*         IF SYSTEM IS IN 63 CHARACTER SET MODE.  IF SYSTEM 
*         IS IN 64 CHARACTER SET MODE, THE CALL TO *MTT* IS 
*         DISABLED AND CODE IS NOT RELOCATED. 
* 
*         USES   T7, T0 - T4. 
  
  
*         DISABLE CALL TO *MTT* IF IN 64 CHARACTER SET MODE.
  
 PTM2     LDC    /PRS/PRSC   DISABLE CALL TO *MTT*
          STM    /PRS/PRSC
  
*         PTM - ENTRY.
  
 PTM      SUBR               ENTRY/EXIT 
          LDN    IPRL        CHECK SYSTEM MODE
          CRD    T0 
          LDD    T0+2 
          LPN    1
          NJN    PTM2        IF SYSTEM IN 64 CHARACTER SET MODE 
          STD    T7          INITIALIZE RELOCATION
 PTM1     LDM    MTTA,T7     RELOCATE ROUTINE 
          STM    OBUF,T7
          AOD    T7 
          LMC    MTTL 
          NJN    PTM1        IF NOT COMPLETE
          UJN    PTMX        EXIT 
 SES      SPACE  4,10 
**        SES - SEARCH EST FOR EQUIPMENT. 
* 
*         EXIT   (A) = NUMBER OF TERMINALS TO PROCESS.
*                (IR+2) = STIMULATOR EST ORDINAL. 
*                (MUXP) = MULTIPLEXER TABLE INITIALIZED.
*                (IDSB) = NUMBER OF NETWORK TERMINALS.
*                TO *ABT* IF TOO MANY PORTS.
* 
*         USES   T4, T5, T6, T7, CH - CH+4, CM - CM+4, IR+2 - IR+4. 
* 
*         CALLS  CCS, CES, DCH, FTN, RCH. 
* 
*         MACROS MONITOR, RCHAN, SFA. 
  
  
 SES14    STM    PPFW,T4     TERMINATE EQUIPMENT DROP TABLE 
          LDN    ZERL        TERMINATE CM MUX TABLE 
          CRD    CM 
          LDD    RA 
          SHN    6
          ADC    MUXP+VMTN
          ADD    T4 
          CWD    CM 
          LDD    T5          PICK UP PORT COUNT 
  
 SES      SUBR               ENTRY/EXIT 
          LDC    VCPT*200+TFSW  READ IAF EJTO 
          CRD    CM 
          LDD    CM 
          STM    SESB 
          LDN    0           CLEAR EQUIPMENT INDEX
          STD    T4 
          STD    T5          CLEAR TERMINAL COUNT 
          STD    IR+2        CLEAR STIMULATOR EST ORDINAL 
          LDN    ESTP        READ EST POINTER 
          CRD    T6 
          LDN    TTEQ-1      INITIALIZE EST ORDINAL FOR SEARCH
          STD    T6 
          LDD    T6+2        SAVE LAST EST ORDINAL + 1
          STD    T7 
 SES1     AOD    T6          INCREMENT EST ORDINAL
          LMD    T7 
          ZJN    SES14       IF END OF EST
          SFA    EST,T6 
          ADK    EQDE 
          CRD    CH          READ EST ENTRY 
          ADK    EQAE-EQDE
          CRD    CM          READ EQUIPMENT ASSIGNMENT
          LDD    CH 
          LPN    2
          NJN    SES1        IF EQUIPMENT IS OFF OR DOWN
          LDD    CH+3 
          LMC    2RTT 
          NJN    SES1        IF EQUIPMENT NOT *TT*
          LDD    CM+3        SAVE UPPER ACCESS LEVEL LIMIT OF MUX 
          LPN    7
          STM    SESC 
          LDD    CM+4 
          ZJN    SES3        IF UNASSIGNED
          LMC    **          (IAF EJT ORDINAL)
 SESB     EQU    *-1
          ZJN    SES5        IF ASSIGNED TO IAF 
 SES2     UJN    SES1        CONTINUE EST SEARCH
  
 SES3     LDK    REQS        REQUEST ACTIVE EQUIPMENT 
          STD    CM+2 
          LDD    T6          RESERVE EQUIPMENT
          STD    CM+1 
          LMN    TTEQ 
          NJN    SES4        IF NOT PSEUDO EQUIPMENT
          LDD    CH+4        NUMBER OF NETWORK TERMINALS
          STM    IDSB 
          UJN    SES2        CONTINUE EST SEARCH
  
 SES4     MONITOR REQM
          LDD    CM+1 
          ZJN    SES2        IF EQUIPMENT NOT AVAILABLE 
 SES5     LDD    CH+1 
          RJM    CCS         CHECK CHANNEL STATUS 
          ZJN    SES6        IF CHANNEL RESERVED
          LDD    T2          RESERVE CHANNEL
          RCHAN 
  
*         CREATE MUX TABLE ENTRY. 
  
 SES6     LDN    ZERL        CLEAR ENTRY
          CRD    CM 
          LDD    CH+4        SET TERMINAL COUNT 
          LPC    777
          NJN    SES7        IF NUMBER OF TERMINALS DEFINED IN EST
          LDD    TH          SET DEFAULT TERMINAL COUNT 
 SES7     STM    TNTD,T4
          STD    CM+3 
          LDD    CH+4 
          LPC    7000 
          SHN    3
          ADD    CH+1 
          SHN    6
          STD    CM          SET CHANNEL AND EQUIPMENT
          LDC    *           SET UPPER ACCESS LEVEL LIMIT 
 SESC     EQU    *-1
          STD    CM+2 
          LDD    RA 
          SHN    6
          ADC    MUXP+VMTN
          ADD    T4 
          CWD    CM 
          LDN    0
          STD    CM+4        CLEAR FOR MONITOR REQUEST
          LDD    T6          SET EST ORDINAL FOR STIMULATOR 
          STD    IR+2 
          LDD    IA 
          CWD    IR 
          LDM    TNTD,T4     INCREMENT AND VERIFY TOTAL PORT COUNT
          RAD    T5          COUNT TOTAL NUMBER OF PORTS
          ADC    -MXMX*100-1
          PJN    SES10       IF PORT COUNT TOO LARGE
          LDD    T6          SET EST ORDINAL
          STM    TEQN,T4
          STM    PPFW,T4     SAVE FOR *STOP* AT INITIALIZATION
          AOD    T4 
          SBK    MXMX+2 
          PJN    SES10       IF TOO MANY MULPLIPLEXERS
          LJM    SES1        PROCESS NEXT MUX 
  
*         DROP ALL EQUIPMENT AND CHANNELS.
  
  
 SES10    LDD    T6 
          STM    TEQN,T4     SAVE LAST EQUIPMENT
          LDN    0
          STM    TEQN+1,T4   ZERO TERMINATOR WORD 
          STD    T4 
 SES11    LDM    TEQN,T4
          ZJN    SES13       IF END OF TABLE
          STD    CM+1 
          SFA    EST         READ EST ENTRY 
          ADK    EQDE 
          CRD    CH 
          LDN    0           RELEASE ACTIVE EQUIPMENT 
          STD    CM+2 
          MONITOR DEQM
          RJM    RCH         RELEASE CHANNEL
          AOD    T4          ADVANCE MUX INDEX
          UJN    SES11       PROCESS NEXT EQUIPMENT 
  
*         ABORT CONTROL POINT.
  
 SES13    STM    PPFW        TERMINATE EQUIPMENT DROP TABLE 
          LDC    SESA 
          LJM    ABT         ABORT CONTROL POINT
  
  
 SESA     DATA   C* TOO MANY MUX PORTS.*
 STA      SPACE  4,10,10
**        STA - SET TRANSLATION TABLE ADDRESSES.
* 
*         USES   T1, T2.
  
  
 STA      SUBR               ENTRY/EXIT 
          LDN    0           COPY RESIDENT OVERLAY NAMES
          STD    T1 
          STD    T2 
 STA1     LDM    STAA,T1
          STM    TRTN,T1
          ZJN    STA2 
          AOD    T1 
          UJN    STA1 
  
 STA2     LDM    STAB,T2     COPY TRANSLATION TABLE ADDRESSES 
          ZJN    STAX 
          STM    TITA,T2
          LDM    STAC,T2
          STM    TOTA,T2
          LDM    STAD,T2
          STM    TTTC,T2
          AOD    T2 
          UJN    STA2 
  
*         THE FOLLOWING TABLES ARE GENERATED BY MICROS DEFINED
*         BY THE TERMINAL TRANSLATION TABLES. 
  
*         STAA - TABLE OF OVERLAY NAMES.
  
 STAA     CON    "ONPP" 
  
*         STAB - TABLE OF INPUT TRANSLATION ADDRESSES.
  
 STAB     CON    "IAPP""IACM" 
  
*         STAC - TABLE OF OUTPUT TRANSLATION ADDRESSES. 
  
 STAC     CON    "OAPP""OACM" 
  
*         STAD - TABLE OF TERMINAL TYPE IDENTIFICATION CODES. 
  
 STAD     CON    "TCPP""TCCM" 
          TITLE  COMPLETION.
**        TCP - TERMINATE CONTROL POINT.
* 
*         ENTRY  (ME) = 0 IF MULTIPLEXER ERROR. 
*                (IR+1) = 6/, 1/TERMINATION FLAG, 5/. 
*                (IR+2) = 3/ FN, 9/ ESTORD. 
*                (IR+3) = STIMULATOR TERMINAL COUNT.
*                (IR+4) = 12/ STIMULATOR CHANNEL. 
* 
*         USES   T6, T7, CH - CH+4, CM - CM+4.
* 
*         CALLS  CCS, C2D, DFM. 
* 
*         MACROS DCHAN, MONITOR, SFA. 
  
  
 TCP      PAUSE 
          LDN    0           CLEAR EST INDEX
          STD    T7 
  
*         RELEASE ASSIGNED EQUIPMENT AND CHANNELS 
  
 TCP1     LDM    PPFW,T7     CHECK EQUIPMENT ENTRY
          NJN    TCP1.1      IF NOT END OF TABLE
          LJM    TCP5        CHECK MULTIPLEXER STATUS 
  
 TCP1.1   STD    CM+1 
          SFA    EST         READ EST ENTRY 
          ADK    EQDE 
          CRD    CH 
          LDN    0           RELEASE ACTIVE EQUIPMENT 
          STD    CM+2 
          LDD    CH+4 
          LPN    77 
          ZJN    TCP3        IF NOT AN ENTRY FOR A STIMULATOR 
          SBN    1
          ZJN    TCP2        IF *TELEX* STIMULATOR
          SBN    2-1
          NJN    TCP3        IF NOT *TRANSIM* STIMULATOR IN DIRECT MODE 
 TCP2     LDD    CH+1        DISCONNECT STIMULATOR CHANNEL
          LPN    37 
          RAM    TCPA 
 TCPA     DCN.   40+0 
 TCP3     MONITOR DEQM       DROP EQUIPMENT 
          RJM    RCH         RELEASE CHANNEL
          AOD    T7          ADVANCE MUX INDEX
          LJM    TCP1        CHECK EQUIPMENT ENTRY
  
*         PROCESS MULTIPLEXER FAILURE.
  
 TCP5     LDD    ME          CHECK MULTIPLEXER STATUS 
          ZJN    TCP6        IF EQUIPMENT FAILURE 
          LJM    TCP8 
  
*         SIGNAL LOSS OF DRIVER TO EXECUTIVE. 
  
 TCP6     LDD    RA          READ DRIVER STATUS WORD
          SHN    6
          ADD    IR+4        SET CONTROL WORD ADDRESS 
          CRD    CM 
          LDN    1           SET DRIVER-FAILURE FLAG
          STD    CM 
          LDD    RA          REWRITE DRIVER STATUS WORD 
          SHN    6
          ADD    IR+4        SET CONTROL WORD ADDRESS 
          CWD    CM 
  
*         ISSUE ERROR LOG AND DAYFILE MESSAGES. 
  
          LDD    IR+2        CHECK FAILURE STATUS 
          ZJN    TCP7        IF NOT CHANNEL TIMEOUT ERROR 
          SHN    -3 
          RJM    C2D         CONVERT UPPER TWO DIGITS OF EST ORDINAL
          STM    TCPE+1 
          LDD    IR+2        CONVERT LOWER DIGIT OF EST ORDINAL 
          LPN    7
          SHN    6
          ADC    2R0, 
          STM    TCPE+2 
          LDD    IR+2        SET FUNCTION NUMBER
          SHN    -11
          RAM    TCPE+4 
          LDC    TCPE+ERLN   MESSAGE TO  *ERRLOG* 
          RJM    DFM
          LDN    TCPE-TCPB   MESSAGE TO  *DAYFILE*
 TCP7     ADC    TCPB        EQUIPMENT FAILURE
          RJM    DFM
          LDD    SI+3 
          NJN    TCP8        IF NOT FIRST PASS
          UJN    TCP9 
  
 TCP8     LDN    ZERL        CONVERT DRIVER CYCLE TIME
          CRD    CM 
          LDD    SI+3        GET MAXIMUM CYCLE TIME 
          STD    CM+4 
          LDD    MA 
          CWD    CM 
          MONITOR RDCM       REQUEST DATA CONVERSION
          LDD    MA          SET UP MESSAGE 
          CRM    TCPC,ON
          LDM    TCPC 
          ZJN    TCP9        IF NO TIME ACCUMLATED
          LDC    TCPC        ISSUE MESSAGE
          RJM    DFM
  
 TCP9     LDN    ZERL        CONVERT REQUESTS FOR CPU 
          CRD    CM 
          LDD    SI          GET NUMBER OF REQUESTS 
          ZJN    TCP10       IF NONE
          STD    CM+4 
          LDD    MA 
          CWD    CM 
          MONITOR RDCM       REQUEST DATA CONVERSION
          LDD    MA          CONSTRUCT MESSAGE
          CRM    TCPD,ON
          LDC    TCPD 
          RJM    DFM         ISSUE DAYFILE MESSAGE
  
 TCP10    MONITOR DPPM       DROP PP
          LJM    PPR         EXIT TO PP RESIDENT
  
 TCPB     DATA   C* 667X MALFUNCTION.*
 TCPC     DATA   C*          SEC. 1TN CYCLE TIME.*
 TCPD     DATA   C*          KILO. 1TN REQUEST CPU.*
 TCPE     DATA   C*TTXXX, FN0, FUNCTION TIMEOUT.* 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
 QUAL$    SET    1
*CALL     COMSSSD 
 EST$     EQU    1           SELECT EST PROCESSOR 
 IFP$     EQU    1           SELECT REMOTE INITIALIZATION 
*CALL     COMPGFP 
*CALL     COMPRSI 
*CALL     COMPC2D 
  
 IFP      HERE               *COMPGFP* INITIALIZATION CODE
  
  
 BUF      EQU    PPFW        CENTRAL MEMORY OVERLAY LOAD BUFFER 
  
          QUAL   *
          TITLE  INITIALIZATION TABLES. 
          USE    RESIDENT 
*CALL     COMPMRQ 
          USE    PRESET 
  
          QUAL
**        INITIALIZATION TABLES AND ALL PRESET BLOCK CODE AFTER 
*         THIS POINT ARE USED AFTER THE DRIVER HAS BEEN LOADED
*         TO INITIALIZE THE DRIVER. 
  
  
          ERRNG  *-TCTA      DRIVER CODE OVERFLOWS PRESET TABLES. 
  
 TRAA     BSSZ   2           ADDRESSES OF RA REFERENCES 
 TRAA     HERE
          CON    0
  
 TDQA     BSSZ   2           DRIVER REQUEST QUEUE 
 TDQA     HERE
          CON    0
  
 TTRA     BSSZ   2           ADDRESSES OF TRANSLATION TABLE REFERENCES
 TTRA     HERE
          CON    0
  
 TTTA     BSSZ   2           ADDRESSES OF TERMINAL TABLE REFERENCES 
 TTTA     HERE
          CON    0
  
 TPLA     BSSZ   2           ADDRESSES OF POT LINK TABLE REFERENCES 
 TPLA     HERE
          CON    0
  
 TBMA     BSSZ   2           ADDRESSES OF BUFFER MEMORY REFERENCES
 TBMA     HERE
          CON    0
  
          CON    7777 
          TITLE  INITIALIZATION.
          QUAL   PRS
**        SAD - SET ADDRESSES.
* 
*         ENTRY  (T1) = ADDRESS OF INITIAL TABLE OF LOCATIONS 
*                       TO BE CHANGED.
* 
* 
*         EXIT   ABSOLUTE ADDRESSES SET.
* 
*         USES   T1, T2, T6, T7.
* 
*         CALLS  NONE.
  
  
 SAD      SUBR               ENTRY/EXIT 
  
*         SET ABSOLUTE ADDRESSES FROM TABLE.
  
 SAD1     AOD    T1          INCREMENT TO ADDRESS VALUE 
          LDI    T1 
          SHN    6
          MJN    SADX        IF END OF TABLES 
          ADD    RA 
          SHN    6
          ADM    1,T1 
          STD    T7 
          SHN    -14
          STD    T6 
          LDN    2
          RAD    T1 
  
*         ABSOLUTIZE INSTRUCTION ADDRESSES. 
  
 SAD2     LDI    T1 
          ZJN    SAD1        IF END OF TABLE
          STD    T2 
          LDD    T7          SET LOWER 12 BITS
          RAM    1,T2 
          SHN    -14         ADD OVERFLOW 
          ADD    T6 
          RAI    T2 
          AOD    T1 
          UJN    SAD2        LOOP 
 PRS      SPACE  4,10 
**        PRS - PRESET ROUTINE. 
* 
*         RELOCATE ALL ADDRESSES TO ABSOLUTE. 
*         LOAD MAIN PROCESSOR PROGRAM (2TN).
* 
*         ENTRY  (DP) = NUMBER OF PORTS.
* 
*         USES   CH, T1, CM - CM+4, DC - DC+4, DP - DP+4, IN - IN+4,
*                RQ - RQ+4, SI -SI+4, ZR -ZR+4. 
* 
*         CALLS  MTT, PMR, PTM, RPP.
* 
*         MACROS EXECUTE. 
  
  
 PRS      RJM    PMR         PRESET MONITOR REQUEST PROCESSOR 
          RJM    /INI/PTM    PRESET TRANSLATION TABLE MODIFICATION
          LDD    IA          LOAD MAIN PROGRAM
          STM    PRSD+2 
          STM    RPPB+4 
          LDD    MA 
          CWM    PRSD,ON
          SBN    1
          CRD    DP          COPY *1DL* CALL TO DIRECT CELLS
          LDC    OBUFE-5
          STM    RPPA 
          EXECUTE 1DL,= 
          EXECUTE 2TN,= 
          RJM    RPP         LOAD *2TN* 
  
*         PRESET ABSOLUTE ADDRESSES.
  
          LDC    TRAA-1      SET ADDRESSES
          STD    T1 
          RJM    SAD
          LDC    0           SET FIRST TERMINAL NUMBER
 TTNA     EQU    *-1
          SBN    1
          RAM    .TNA 
          LDM    TDQA+1 
          ADN    5
          STM    .ERQA
          SHN    -14         ADD OVERFLOW 
          ADM    TDQA 
          RAM    .ERQA-1
          LDN    ZERL 
          CRD    ZR          CLEAR ZERO WORD
          CRD    RQ          CLEAR STACK ENTRY WORD 
          CRD    SI          CLEAR STATUS INFORMATION 
          LDM    TDQA 
          SHN    6
          ADD    RA 
          SHN    6
          ADM    TDQA+1 
          ADN    2
          CRD    IN 
  
*         LOAD PP RESIDENT TRANSLATION TABLES.
  
          IFNE   VPPT,0      IF PP RESIDENT TABLES DEFINED
          LDN    0           SET FIRST TRANSLATION TABLE
          STD    CH 
          LDN    1R9         PRESET FIRST CHARACTER OF OVERLAY NAME 
          STD    DP+3 
 PRS1     LDM    TITA,CH     SET LOAD ADDRESS 
          SBN    TCTAL+5
          STM    RPPA 
          STM    PRSA 
          STM    PRSB 
          LDM    TRTN,CH     SET OVERLAY NAME 
          STD    DP+4 
          ZJN    PRS2        IF END OF TABLE
          LDD    MA          SAVE WORD BEFORE OVERLAY 
          CWM    **,ON
 PRSA     EQU    *-1
          SBN    1
          CRD    DC 
          LDD    MA          STORE INPUT REGISTER 
          CWD    DP 
          RJM    RPP         READ PROGRAM 
          LDD    MA          RESTORE WORD BEFORE OVERLAY
          CWD    DC 
          CRM    **,ON
 PRSB     EQU    *-1
          AOD    CH          ADVANCE TABLE
          UJN    PRS1 
          ENDIF 
  
 PRS2     RJM    /INI/MTT    MODIFY TRANSLATION TABLES
*         RJM    PRSC        (IF MODIFICATION NOT REQUIRED) 
 PRSC     EQU    *-1
  
*         CLEAR OUTPUT BUFFER AND START DRIVER
  
          LDC    OBUF        SET OUTPUT BUFFER ADDRESS
          STD    CH+1 
 PRS3     LDN    0           CLEAR OUTPUT BUFFERS 
          STI    CH+1 
          AOD    CH+1 
          LMC    OBUFE
          NJN    PRS3        LOOP TO END OF BUFFERS 
          STD    ME          PRESET MULTIPLEXER NUMBER
          LDD    HN          SET LOAD ADDRESS FOR PP RESIDENT 
          STM    RPPA 
          LDC    RTCL        READ REAL TIME CLOCK 
          CRD    CM 
          LJM    AVT6        ENTER MAIN PROGRAM 
  
  
 PRSD     VFD    18/3R1DL,6/VCPT,12/0,24/3R2TN
          QUAL
 TRTN     SPACE  4,10 
**        TRTN - TABLE OF RESIDENT TRANSLATION TABLE NAMES. 
  
 TRTN     BSS    NPPT+1 
          TITLE  INITIALIZATION SUBROUTINES.
  
  
**        IBUF - MULTIPLEXER INPUT BUFFER.
* 
*         OVERLAYS POINTERS USED BY PRS.
  
  
 IBUF     EQU    *-100
  
  
          USE    RESIDENT 
 RPP      SPACE  4,10 
**        RPP - READ PPU PROGRAM. 
* 
*         ENTRY  LOADER CALL STORED IN MESSAGE BUFFER.
* 
*         EXIT   (A) = 0. 
* 
*         USES   T1 - T7, CM - CM+4.
* 
*         CALLS  MRQ. 
  
  
 RPP      SUBR               ENTRY/EXIT 
 RPP1     LDN    1           SET NO DROP PP, NO QUEUE 
          STD    CM+1 
          LDK    RPPM        REQUEST PP 
          RJM    MRQ
 RPP2     LDN    77          DELAY
          SBN    1
          NJN    *-1
          LDD    OA 
          CRD    CM 
          LDD    CM 
          NJN    RPP2        IF REQUEST NOT PROCESSED 
          LDD    CM+1 
          ZJN    RPP1        IF NO PPU AVAILABLE
          STD    T1          SAVE PPU INPUT REGISTER ADDRESS
 RPP3     LDN    77          DELAY
          SBN    1
          NJN    *-1
          LDD    T1 
          CRD    CM 
          LDD    CM+1 
          LMM    RPPB+1 
          LPN    37 
          NJN    RPP1        IF LOADER TIMED OUT
          LDD    CM+2 
          LMC    7777 
          NJN    RPP3        IF LOADER NOT READY YET
*         LDN    0           SIGNAL LOADER THAT *1TN* IS READY
 RPP3.1   STD    CM+2 
          LDN    ZERL 
          CRD    T3          CLEAR OUTPUT REGISTER
          LDD    OA 
          CWD    T3 
          LDD    T1 
          CWD    CM 
 RPP4     LDD    T1          CHECK *1DL* OUTPUT REGISTER
          ADN    1
          CRD    CM 
          LDD    CM 
          LMN    DSWM 
          ZJN    RPP3        IF *1DL* PAUSING 
          LMN    DSWM&PRLM
          ZJN    RPP3        IF *1DL* PAUSING 
          LDD    T1          CHECK *1DL* INPUT REGISTER 
          CRD    CM 
          LDD    CM+2 
          LMC    7777        CHECK FOR TRANSFER RESYNCHRONIZATION 
          ZJN    RPP3.1      IF TRANSFER RESYNCHRONIZED 
          LDN    77          DELAY
          SBN    1
          NJN    *-1         IF NOT DONE DELAYING 
          LDD    OA          CHECK IF DATA READY
          CRD    CM 
          LDD    CM+4 
          ZJN    RPP4        IF DATA NOT READY
          LPN    77          SET WORD COUNT 
          ZJN    RPP5        IF NULL TRANSFER 
          STD    T2 
          LDD    MA          READ DATA
          CRM    TCTA,T2
 RPPA     EQU    *-1
          LDD    T2          UPDATE BUFFER ADDRESS
          SHN    2
          ADD    T2 
          RAM    RPPA 
          LDD    OA          SET EMPTY FLAG 
          CWD    T3 
          UJP    RPP4        LOOP 
  
 RPP5     LJM    RPPX        RETURN 
  
*         *1RP* REQUEST SET UP IN PRESET. 
  
 RPPB     VFD    18/3R1RP,6/VCPT,12/0,12/0,12/0 
  
  
**        TEQN - TABLE OF EST ORDINALS. 
* 
*         ENTRY  1 WORD.
* 
*         MULTIPLEXER EST ORDINAL.
  
  
 TEQN     BSS    MXMX+2 
  
  
**        TNTD - TABLE OF NUMBER OF TERMINALS PER DEVICE. 
* 
*         ENTRY  1 WORD.
* 
*         NUMBER OF TERMINALS FOR MULTIPLEXER.
  
  
 TNTD     BSS    MXMX+1 
  
  
**        TTTC - TABLE OF TERMINAL TYPE IDENTIFICATION CODES. 
  
  
 TTTC     BSS    TNTT 
  
  
**        TITA - TABLE OF INPUT TRANSLATION TABLE ADDRESSES.
  
  
 TITA     BSS    TNTT 
  
  
**        TOTA - TABLE OF OUTPUT TRANSLATION TABLE ADDRESSES. 
  
  
 TOTA     BSS    0
          TITLE  ESTABLISH *1TN* PROGRAM LOAD PARAMETERS. 
**        ESTABLISH *1TN* LOAD ADDRESS. 
  
  
*         CALCULATE LABELED BLOCK LENGTHS.
  
          USE    RESIDENT 
 RESE     BSS    0           END OF *RESIDENT* BLOCK
 RESL     EQU    RESE-RESF   LENGTH OF *RESIDENT* 
  
          USE    MAIN 
 MANE     BSS    0           END OF *MAIN* BLOCK
 MANL     EQU    MANE-MANF   LENGTH OF *MAIN* 
  
          USE    PRESET 
 PRSE     BSS    0           END OF *PRESET* BLOCK
 PRSL     EQU    PRSE-PRSF   LENGTH OF *PRESET* 
  
  
*         CALCULATE LOAD PARAMETERS.
  
 .1       SET    RESL+MANL+PRSL 
 .5       MAX    TNTT,5      SET TABLE ALLOWANCE
 .2       SET    .1+5+4+2    LENGTH + HEADER + SHORT PRU + EXR CALL 
 .3       SET    .2/500+1    NUMBER OF SECTORS REQUIRED 
 .2       SET    .1+5        OVERLAY LENGTH PLUS HEADER WORD
 .3       SET    .3*500-5    WORDS TO LOAD LESS SHORT PRU ALLOWANCE 
  
  
*         SET OVERLAY ORIGIN. 
  
          ORG    7776-.3+5-.5  SET *1TN* LOAD ADDRESS 
  
 PRG      BSSZ   .3-.2       FORCE BLOCKS UPPER 
  
  
*         CALCULATE AVAILABLE CORE IN PPU.
  
          IFNE   VPPT,0      IF PP RESIDENT TRANSLATION TABLES
 AVBL     SET    IBUF-TCTA-LNPP  AVAILABLE CORE FOR CODE. 
          ELSE               IF NO PP RESIDENT TRANSLATION TABLES 
 AVBL     SET    TRAA-TCTA   AVAILABLE CORE FOR CODE
          ENDIF 
          TTL    1TN - LOW SPEED INTERACTIVE TERMINAL DRIVER. 
          SPACE  4,10 
          END 
