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