IDENT TLX,TLX
PERIPH
BASE MIXED
SST
*COMMENT TLX - TERMINAL ACTION PROCESSOR.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE TLX - TERMINAL ACTION PROCESSOR.
SPACE 4,10
*** TLX - TERMINAL ACTION PROCESSOR.
* G. R. MANSFIELD 72/02/08.
* L. K. TUTTLE 79/04/19. (RESEQUENCED).
SPACE 4,10
** *TLX* MAY BE CALLED BY A CPU PROGRAM TO ALTER
* TERMINAL CONTROL IN IAF.
SPACE 4,10
*** CALL.
*
*
*T 18/ *TLX*,6/ AR,12/ CODE,6/ SF,18/ PAR
* AR AUTO RECALL
* CODE FUNCTION CODE
* SF SUBFUNCTION (FUNCTIONS 12 AND 15)
* PAR PARAMETER FOR FUNCTION
SPACE 4,10
*** DAYFILE MESSAGES.
*
*
* * INCORRECT TERMINAL REQUEST.* = AN UNKNOWN FUNCTION CODE,
* OR A REQUEST THAT REQUIRES *SSJ=* FROM A NON-*SSJ=*
* PROGRAM.
*
* * TLX - ARGUMENT ERROR.* = PARAMETER ADDRESS OUT OF RANGE.
*
* * TLX - RPV ALREADY SET.* = FUNCTION 0, EXTENDED REPRIEVE
* BIT ALREADY SET.
*
* * REQUEST IS VALID ONLY FROM A NETWORK TERMINAL.* =
* THE TERMINAL IS NOT A NETWORK TERMINAL OR THE CONNECTION
* IS NOT ONLINE.
*
* * USER CANNOT SWITCH FROM A SECONDARY APPLICATION.* =
* A TERMINAL CANNOT REQUEST TO SWITCH TO ANOTHER APPLICATION
* IF IT IS ALREADY CONNECTED TO A SECONDARY APPLICATION (IAF).
*
* * APPLICATION NAME IS REQUIRED.* = WHEN SWITCHING
* APPLICATIONS, AN APPLICATION NAME MUST BE SPECIFIED IF THE
* JOB IS CURRENTLY CONNECTED TO A PRIMARY APPLICATION (IAF).
*
* * THIS CONNECTION IS ALREADY LOANED.* = THIS CONNECTION IS
* ALREADY LOANED, SO ANOTHER SWITCH IS NOT POSSIBLE UNTIL
* THE CONNECTION RETURNS TO IAF. (THIS SHOULD NEVER OCCUR)
SPACE 4,10
*** ACCOUNT FILE MESSAGES.
*
*
* *ACAB.* = SECONDARY APPLICATION ABORTED CONNECTION.
*
* *ACAE.* = IAF INTERNAL ERROR DURING APPLICATION SWITCH.
*
* *ACAF.* = SECONDARY APPLICATION NETTED OFF OR FAILED.
*
* *ACAI.* = USER NOT VALIDATED FOR SECONDARY APPLICATION.
*
* *ACAR.* = SECONDARY APPLICATION TERMINATED CONNECTION.
*
* *ACAS, APLNAME.* = APPLICATION SWITCH TO *APLNAME*.
*
* *ACAU.* = SECONDARY APPLICATION REFUSED CONNECTION, NOT
* AVAILABLE, OR AT CONNECTION LIMIT.
SPACE 4,10
* COMMON DECKS.
*CALL COMPMAC
*CALL COMSCPS
*CALL COMSJCE
*CALL COMSPIM
*CALL COMSREM
*CALL COMSEJT
*CALL COMSEVT
*CALL COMSSSD
TITLE MACRO DEFINITIONS.
FCNP SPACE 4,25
** FCNP - FUNCTION TABLE MACRO.
*
* FCNP PROC,CODE,NI,DT
*
* PROC = FUNCTION PROCESSOR ENTRY POINT.
* CODE = IAF FUNCTION CODE.
* NI = ACTION WHEN NOT INTERACTIVE CONNECTION STATUS (*NICS*).
* IGN = IGNORE REQUEST.
* PRO = PROCESS REQUEST.
* DT = ACTION WHEN DETACHED CONNECTION STATUS (*DTCS*).
* IGN = IGNORE REQUEST.
* PRO = PROCESS REQUEST.
* SUS = SUSPEND JOB.
*
* TABLE ENTRY GENERATED.
*
*T 12/ PROC ADR,12/ CODE,6/ NI,6/ DT
*
* NI AND DT FIELDS ARE DEFINED AS FOLLOWS
* 0 = IGNORE REQUEST.
* 1 = PROCESS REQUEST.
* 2 = SUSPEND JOB.
PURGMAC FCNP
FCNP MACRO P,C,N,D
MACREF FCNP
CON P,C
.1 SET 7777B
.2 SET 7777B
ECHO 3,A=(IGN,PRO),B=(0,1)
IFC EQ,$N$A$,2
STOPDUP
.1 SET B
IFEQ .1,7777B,1
ERR INCORRECT *NI* PARAMETER
ECHO 3,A=(IGN,PRO,SUS),B=(0,1,2)
IFC EQ,$D$A$,2
STOPDUP
.2 SET B
IFEQ .2,7777B,1
ERR INCORRECT *DI* PARAMETER
VFD 6/.1,6/.2
ENDM
ABORT SPACE 4,10
** ABORT - ERROR PROCESSOR MACRO.
*
* ABORT ADDR
*
* ADDR = FWA OF ERROR MESSAGE FOR DAYFILE.
PURGMAC ABORT
ABORT MACRO A
MACREF ABORT
LDC A
LJM ERR PROCESS ERROR EXIT
ENDM
ERROR SPACE 4,10
** ERROR - TRANSFER FILE ERROR PROCESSING MACRO.
*
* ERROR CODE,X
*
* CODE = RETURN STATUS CODE.
* X = PREPROCESSING OPTION.
* = R, REINSTATE CALLER-S FNT.
* = B, CHANGE BACK TO CALLER-S CP AND REINSTATE CALLER-S FNT.
*
* CALLS CCP, RCF, SRS.
PURGMAC ERROR
ERROR MACRO C,X
MACREF ERROR
.A IFC NE,$X$$
.B IFC EQ,$X$B$
RJM CCP CHANGE BACK TO CALLER-S CP
.B ENDIF
RJM RCF REINSTATE CALLER-S FNT
.A ENDIF
LDN C
LJM SRS SET RETURN STATUS
ERROR ENDM
SPACE 4,10
** DIRECT LOCATION ASSIGNMENTS.
CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
TT EQU 25 - 26 TERMINAL TABLE ADDRESS (2 LOCATIONS)
TA EQU 27 IAF CONTROL POINT ADDRESS (RA).
TW EQU 30 - 34 TERMINAL REQUEST WORD (5 LOCATIONS)
TN EQU TW+4 TERMINAL NUMBER
CS EQU 35 CONNECTION STATUS
FN EQU 36 - 42 FNT ENTRY
FS EQU 43 - 47 FST ENTRY
FA EQU 60 ADDRESS OF FNT ENTRY IN CALLER-S NFL
PP EQU 61 POT POINTER
PA EQU 62 - 63 POT ADDRESS
RC EQU 64 - 65 RECALL COUNTERS
TITLE MAIN PROGRAM.
SPACE 4,10
** TLX - MAIN PROGRAM.
*
* EXIT TO FUNCTION PROCESSOR.
* (TA) = IAF RA.
* (TW) = FUNCTION CODE.
* (TW+1 - TW+3) = ZERO.
* (TW+4) = (TN) = TERMINAL NUMBER.
* (CS) = CONNECTION STATUS.
ORG PPFW
TLX RJM PRS PRESET PROGRAM
LJM * PROCESS REQUEST
TLXA EQU *-1
* FUNCTION REQUEST EXIT.
*
* ENTRY (TW - TW+4) = FORMATTED *TSEM* REQUEST.
TLXX LDN 10D ALLOW RECALL IF *TSEM* QUEUE FULL
RJM ITF ISSUE *TSEM* FUNCTION
DPP MONITOR DPPM DROP PP
LJM PPR EXIT TO PP RESIDENT
TFCN SPACE 4,10
** TFCN - TABLE OF FUNCTION CODE PROCESSORS.
*
* ENTRY = 3 WORDS.
*
*T 12/ ADDR,12/ CODE,6/ NI,6/ DT
* ADDR ADDRESS OF FUNCTION PROCESSOR
* CODE FUNCTION CODE FOR *TSEM* REQUEST.
* NI ACTION WHEN CONNECTION STATUS IS *NICS*.
* 0 = IGNORE REQUEST.
* 1 = PROCESS REQUEST.
* DT ACTION WHEN CONNECTION STATUS IS *DTCS*.
* 0 = IGNORE REQUEST.
* 1 = PROCESS REQUEST.
* 2 = SUSPEND JOB.
TFCN BSS 0
LOC 0
FCNP SIA,VSDT,IGN,PRO SET INTERRUPT ADDRESS
FCNP CIA,VCDT,IGN,PRO CLEAR INTERRUPT ADDRESS
FCNP CCR,VCDT,IGN,SUS CLEAR CHARGE REQUIRED
FCNP SCS,VSCS,IGN,PRO SET CHARACTER SET
FCNP PAR,VPTY,IGN,SUS SET PARITY
FCNP STS,0000,PRO,PRO RETURN STATUS
FCNP SPM,VSDT,IGN,PRO SET PROMPT OFF
FCNP SPM,VCDT,IGN,PRO SET PROMPT ON
FCNP PSF,VSDT,IGN,SUS PROCESS SORT FLAG CHANGE
FCNP REC,VREC,IGN,SUS RECOVER JOB
FCNP TWF,VCSM,PRO,PRO TRANSFER WORKFILE
FCNP SSM,VSDT,IGN,SUS SET SCREEN MODE
FCNP SSM,VCDT,IGN,SUS CLEAR SCREEN MODE
FCNP SWS,0000,IGN,PRO SET NFL WORD *SLMN*
FCNP LTI,0000,PRO,PRO LOOK FOR TYPED AHEAD INPUT
FCNP PDT,VDTJ,PRO,PRO DETACH JOB
FCNP SEM,VSDT,IGN,PRO SET USER EFFECT MODE
FCNP SEM,VCDT,IGN,PRO CLEAR USER EFFECT MODE
FCNP APS,VTLF,IGN,PRO SWITCH APPLICATIONS
FCNP RLC,0000,IGN,PRO RESTART LOANED CONNECTION
TFCNL BSS 0 TABLE LWA+1
LOC *O
TITLE FUNCTION PROCESSORS.
SIA SPACE 4,10
*** FUNCTION 0.
*
* SET PROGRAM TERMINAL CONTROL.
* SET INTERRUPT ADDRESS = PAR.
SIA LDD CP READ ENTRY/EXIT CONTROL WORD
ADN TIAW
CRD CM
ADN EECW-TIAW
CRD CN
LDD IR+3 VALIDATE REQUEST ADDRESS
LPN 77
SHN 14
PJN SIA1 IF FLAG ADDRESS
ADN 21 ADD EXCHANGE PACKAGE
SIA1 LPC 377777
ADD IR+4
SHN -6
SBD FL
MJN SIA2 IF VALID
ABORT ERIR * INCORRECT TERMINAL REQUEST.*
SIA2 LDD IR+3 ENTER INTERRUPT ADDRESS
LPN 77
STM SIAB+3
LDD IR+4
STM SIAB+4
LDD CN CHECK EXTENDED REPRIEVE SET
SHN 21-12
PJN SIA3 IF EXTENDED REPRIEVE NOT SET
ABORT ERRA * TLX - RPV ALREADY SET.*
SIA3 LDD MA ENTER *UADM* SUB-FUNCTION
CWM SIAB,ON
LDN 1
STD CM+1 *UADM* WORD COUNT
STD CM+2 SPECIFY NO DROP OF PP
MONITOR UADM
LDD HN SET MASK FOR RECOVERY WORD
RJM URW UPDATE RECOVERY WORD
NJP DPP IF NOT ON-LINE JOB
* COMMON ENTRY TO SET *VSTT*.
SIA4 LDN VSTT SET WORD NUMBER
STD TW+2
SIAA LDN 59D SET BIT NUMBER
* LDN 57D (CHARGE REQUIRED)
* LDN 55D (SET/CLEAR USER EFFECT MODE)
* LDN 53D (SET/CLEAR PROMPT MODE)
* LDN 52D (SET/CLEAR SORT FLAG)
* LDN 49D (SET/CLEAR SCREEN MODE)
STD TW+3
LJM TLXX EXIT
* *UADM* FUNCTION TO SET/CLEAR TERMINAL INTERRUPT ADDRESS.
SIAB CON CSFS SET VARIABLE FIELD
CON TIAW WORD TO SET
CON 18D*100+18D FIELD TO SET AND WIDTH
CON 0,0 VALUE FIELD
CIA SPACE 4,10
*** FUNCTION 1.
*
* CLEAR TERMINAL CONTROL.
* CLEAR INTERRUPT ADDRESS.
CIA LDD CP READ ENTRY/EXIT CONTROL WORD
ADN TIAW
CRD CM
ADN EECW-TIAW
CRD CN
LJM SIA3 CLEAR ENTRY/EXIT WORD
CCR SPACE 4,10
*** FUNCTION 2.
*
* CLEAR *CHARGE* REQUIRED.
CCR LCN 59D-57D SET BIT NUMBER
RAM SIAA
UJN SIA4 PROCESS REQUEST
SCS SPACE 4,10
*** FUNCTION 3.
*
* SET CHARACTER SET MODE.
* SETS OR CLEARS EXTENDED CHARACTER SET MODE.
*
* ENTRY PAR = (IR+4) = 0, SET NORMAL MODE.
* = 1, SET EXTENDED MODE.
* = 2, RESTORE ENTRY MODE.
* = 10, SET NORMAL MODE, RESET ENTRY MODE.
* = 11, SET EXTENDED MODE,RESET ENTRY MODE.
SCS LDD IR+4 SET ARGUMENT
STD TW+2
SBN 3
MJN SCS3 IF VALID ARGUMENT
SBN 10-3
MJN SCS1 IF INCORRECT ARGUMENT
SBN 12-10
MJN SCS2 IF VALID ARGUMENT
SCS1 ABORT ERIR * INCORRECT TERMINAL REQUEST.*
SCS2 AOM SCSA INDICATE RESET ENTRY MODE
SCS3 LDD CS
LMK OLCS
ZJP TLXX IF ON-LINE JOB, ENTER REQUEST
NFA RC1N READ RECOVERY WORD FROM NFL
CRD CM
LDD CM+3 CLEAR CURRENT CHARACTER SET
SCN 7
STD CM+3
SHN -3 SAVE INITIAL CHARACTER SET
LPN 7
STD T1
LDD IR+4
LPN 7
LMN 2
ZJN SCS4 IF RESTORE ENTRY MODE
LMN 2
STD T1
SCS4 LDD T1 SET NEW CURRENT CHARACTER SET
RAD CM+3
SCSA LDN 0
* LDN 1 (RESET ENTRY MODE)
ZJN SCS5 IF NO RESET NEEDED
LDD CM+3 RESET ENTRY MODE
SHN -3+22
SCN 7
LMD T1
SHN 3
STD CM+3
SCS5 NFA RC1N REWRITE RECOVERY WORD
CWD CM
LJM DPP DROP PP
PAR SPACE 4,10
*** FUNCTION 4.
*
* SET TERMINAL PARITY.
*
* ENTRY PAR = (IR+4) = 0, SET EVEN PARITY.
* = 1, SET ODD PARITY.
PAR LDD IR+4 CHECK ARGUMENT
STD TW+3
SBN 2
MJP TLXX IF VALID ARGUMENT, ENTER REQUEST
ABORT ERIR * INCORRECT TERMINAL REQUEST.*
STS SPACE 4,30
*** FUNCTION 5.
*
* RETURN TERMINAL STATUS.
*
* ENTRY (IR+3 - IR+4) = 6/ L,18/ PAR
*
* L = LENGTH OF RETURN BUFFER (2 IF NOT SPECIFIED).
* PAR = ADDRESS OF PARAMETER WORD.
*
* EXIT TERMINAL STATUS RETURNED TO USER.
*
*T PAR 42/TERMINAL ID, 6/SUB, 12/TN
*T, PAR+1 3/ ,3/ NT,6/ CS,4/,8/ NDT,18/ INT,6/ TC,12/ STATUS
*T, PAR+2 42/TERMINAL NAME, 18/0 (IF *L* .GT. 2)
*
* SUB = SUBSYSTEM.
* TN = TERMINAL NUMBER.
* NT = NETWORK TYPE.
* CS = CONNECTION STATUS.
* NDT = NETWORK TERMINAL DEVICE TYPE.
* INT = INTERRUPT ADDRESS IF SET.
* TC = TRANSMISSION CODE.
* 0 = ASCII.
* 1 = CORRESPONDENCE.
* 2 = NIXDORF.
* 3 = NETWORK.
*
* STATUS - BIT
*
* USER FORMAT EFFECTORS 6
* BRIEF MODE 5
* TAPE MODE 4
* FULL DUPLEX 3
* CURRENT CHARACTER SET 2 (EXTENDED IF SET)
* ENTRY CHARACTER SET 1 (EXTENDED IF SET)
* PARITY 0 (ODD IF SET)
*
* IF CONNECTION STATUS IS NOT ONLINE, STATUS WILL BE RETURNED
* BUT THE ONLY VALID FIELD WILL BE *CS*. ALL OTHER FIELDS
* WILL BE ZERO EXCEPT *TERMINAL ID* WHICH WILL BE BLANK.
*
* CALLS GPA, RRR, SDT, SNI, SRR, STA, STI.
*
* MACROS ABORT.
STS4 ABORT ERIR * INCORRECT TERMINAL REQUEST.*
STS LDD IR+3 VALIDATE RETURN ADDRESS
SHN 14
STD T7 SAVE RETURN BUFFER LENGTH
ADD IR+4
SHN -6
SBD FL
PJN STS4 IF INVALID ADDRESS
LDD T7
SBN 3
MJN STS0 IF NOT EXTENDED STATUS
LDN ZERL PRESET TERMINAL NAME
CRD FN
LDN PSNI
STM STSB
STS0 LDD CS
LMN OLCS
NJP STS3 IF NOT ON LINE
LDN VTTL READ TERMINAL TABLE
STD T1
RJM SRR SET R-REGISTER TO IAF RA
RJM STA
CRM TTTA,T1
RJM RRR RESTORE R-REGISTER
* SET TERMINAL IDENTIFICATION.
RJM SNI SET NETWORK IDENTIFICATION
STD T2
NJN STS1 IF NETWORK TERMINAL
RJM STI SET MUX TERMINAL IDENTIFICATION
* FORMAT TERMINAL PARAMETERS.
STS1 LDD CP SET INTERRUPT ADDRESS
ADN TIAW
CRD CN
LDN 0
STD CN
STD CN+1
LDD CN+3
SCN 77
STD CN+3
LDM TTTA+VDPT*5+3
STD T1
LPN 1 SET PARITY BIT
STD CN+4
LDD T1 SET DUPLEX BIT
SHN 3-6
LPN 10
RAD CN+4
LDM TTTA+VDCT*5+0
STD T1
SHN 4-0 SET TAPE MODE BIT
LPN 20
RAD CN+4
LDD T1 SET BRIEF MODE FLAG
SHN 5-7
LPN 40
RAD CN+4
LDD T1 SET CHARACTER SET MODE
SHN 2-3
LPN 4
RAD CN+4
LDD CM+4 SET TRANSMISSION CODE
LPN 77
RAD CN+3
LDD TN SET TERMINAL NUMBER
STD CM+4
LDM TTTA+VSTT*5+3 SET SUBSYSTEM
STD T1
LMD CM+3
SCN 77
LMD T1
STD CM+3
LDD T1 SET ENTRY CHARACTER SET MODE
SHN 1-6
LPN 2
RAD CN+4
LDM TTTA+VSTT*5
SHN 6-7
LPC 100 SET FORMAT EFFECTOR BIT
RAD CN+4
LDD T2 CHECK IF NETWORK TERMINAL
ZJP STS2 IF NOT NETWORK TERMINAL
LDD T7
SBN 3
MJN STS1.1 IF NOT EXTENDED STATUS
RJM SRR SET R-REGISTER TO IAF RA
LDD TA GET TERMINAL NAME TABLE POINTERS
SHN 6
ADN VTNP
CRD FN
LDD FN+1
LPN 77B
SHN 6
ADD TA
SHN 6
ADD FN+2
ADD TN ADD TERMINAL NUMBER
CRD FN READ NETWORK TERMINAL NAME
RJM RRR RESTORE R-REGISTER
LDN 0 CLEAR UNUSED BITS
STD FN+4
LDD FN+3
SCN 77
STD FN+3
STS1.1 RJM SDT SET DEVICE TYPE AND TRANSMISSION CODE
LDD T0 SET NETWORK TYPE
SHN 6-12
LPC 100
ADD HN
STS2 LMD CS SET CONNECTION STATUS
STD CN
* WRITE STATUS INTO USER BUFFER.
RJM GPA GET PARAMETER WORD ADDRESS
CWD CM
ADN 1
CWD CN
STSB UJN STS2.1 DROP PP
* PSN (IF EXTENDED STATUS)
ADN 1
CWD FN
STS2.1 LJM DPP DROP PP
* PROCESS SPECIAL STATUS.
STS3 LDD MA
CWM STSA,ON
SBN 1
CRD CM
LDN ZERL
CRD CN
LDN 0
UJN STS2 WRITE STATUS
STSA VFD 42/1H ,18/0
SPM SPACE 4,10
*** FUNCTIONS 6 AND 7.
*
* SET/CLEAR PROMPT MODE BIT IN *VSTT*
SPM LCN 59D-53D SET BIT 53 *VSTT*
RAM SIAA
LDN 1 SET MASK FOR RECOVERY WORD
RJM URW UPDATE RECOVERY WORD
NJP DPP IF NOT ON-LINE JOB
LJM SIA4 PROCESS REQUEST
PSF SPACE 4,10
*** FUNCTION 10B.
*
* SET OR CLEAR SORT FLAG.
*
* ENTRY PAR = SUBFUNCTION CODE, SORT FLAG VALUE TO SET.
* = 0, CLEAR SORT FLAG, FILE SORTED.
* = 1, SET SORT FLAG, FILE UNSORTED.
PSF LDD IR+4 CHECK FUNCTION CODE
ZJN PSF1 IF ONE, SET FLAG
SBN 1
ZJN PSF2 IF ZERO, CLEAR FLAG
ABORT ERIR * TLX - INCORRECT TERMINAL REQUEST.*
PSF1 AOD TW
PSF2 LCN 59D-52D SET BIT NUMBER
RAM SIAA
LJM SIA4 PROCESS REQUEST
REC SPACE 4,10
** FUNCTION 11B.
*
* RECOVER JOB.
*
* JSN IS FOUND IN BITS 23-0 OF THE REQUEST.
REC LDD IR+3 TRANSFER JSN
STD TW+1
LDD IR+4
STD TW+2
LDN ZERL
CRD CM
LDD CP CLEAR MESSAGE
ADK MS1W
CWD CM
LDN RODS SET TO ROLLOUT AND DISABLE
STD CM+1
MONITOR ROCM
LJM TLXX EXIT
SPACE 4,35
** FUNCTION 12B.
*
* TRANSFER WORKFILE.
*
* ENTRY (IR+3 - IR+4) = 6/ TF,18/ ADDR
*
* TF = TRANSFER FUNCTION.
* 0 = TRANSFER TO SUBSYSTEM.
* 1 = TRANSFER FROM SUBSYSTEM.
*
* ADDR = ADDRESS OF PARAMETER WORD.
*
*T ADDR 12/ FNTR,12/ FNTS,12/ SSID,12/0,11/ ST,1/ C
*
* FNTR = FNT OFFSET IN RECEIVER-S NFL.
* FNTS = FNT OFFSET IN SOURCE-S NFL.
* SSID = RECEIVER-S SUBSYSTEM ID.
* ST = RETURN STATUS CODE (SEE *COMSREM*)
* C = COMPLETION BIT.
*
* EXIT SUBFUNCTION 0 - TO *TWR*.
* SUBFUNCTION 1 - TO *SRS*.
*
* CALLS AST, CCP, CSP, CLF, CPR, GPA, GSC, RCF, RTE, SPJ, SRS,
* TWR.
*
* MACROS ABORT, ERROR, NFA.
TWF LDD CP GET NFL FL
ADN FLSW
CRD CM
ADN SEPW-FLSW GET SPECIAL ENTRY POINTS
CRD T1
RJM GPA GET PARAMETER WORD ADDRESS
CRD CN
LDD T1
SHN 21-2
MJN TWF2 IF SSJ=
TWF1 ERROR RSSI RETURN SUBSYSTEM INACCESSIBLE STATUS
TWF2 LDD IR+3
SHN -6
NJN TWF3 IF TRANSFER FROM SUBSYSTEM
LDD CS
LMN OLCS
NJN TWF1 IF NOT ON LINE
TWF3 LDD CN+1 VALIDATE SOURCE FNT OFFSET
STD FA
ADC -FNTN
PJN TWF5 IF NOT TOO SMALL
TWF4 ERROR RSFN RETURN FILE NOT FOUND STATUS
TWF5 LDD CM
SHN 6 NFL FL
SBD CN+1
MJN TWF4 IF SOURCE NFL OFFSET TOO LARGE
NFA CN+1,R GET FNT/FUT
CRD FN
CRD FS
ADN FUTL-FNTL
CRM TWFB,ON
LDD IR+3 CHECK TRANSFER FUNCTION
SHN -6
ZJN TWF7 IF TRANSFER TO SUBSYSTEM
SBN 1
NJN TWF6 IF INCORRECT TRANSFER FUNCTION
LJM TWF17 PROCESS TRANSFER FROM SUBSYSTEM
TWF6 ABORT ERIR * TLX - INCORRECT TERMINAL REQUEST.*
* TRANSFER WORKFILE TO SUBSYSTEM.
TWF7 RJM SFB SET FILE BUSY
ZJN TWF8 IF FILE NOT PREVIOUSLY BUSY
ERROR RSFB RETURN FILE BUSY STATUS
TWF8 LDD FN+4 CHECK FILE TYPE
SHN -6
SBN LOFT
ZJN TWF10 IF LOCAL FILE TYPE
TWF9 ERROR RSIT RETURN INCORRECT FILE TYPE STATUS
TWF10 LDD FN+3 CHECK ACCESS MODE
LPN 1
NJN TWF9 IF READ ONLY
LDD FS+1 VERIFY TRACK CHAIN EXISTS
ZJN TWF9 IF NO TRACK CHAIN
LDD CN+2 CHECK *SSID*
ADC -SMSI
ZJN TWF11 IF *SMF* *SSID*
ERROR RSSK RETURN UNKNOWN *SSID* STATUS
TWF11 LDC FECF*10000B GET SUBSYSTEM *SSCT* ENTRY
ADD CN+2
RJM AST
SHN 21-13
MJN TWF12 IF SUBSYSTEM ACCESSIBLE
ERROR RSSI RETURN SUBSYSTEM INACCESSIBLE STATUS
TWF12 RJM GSC GET SUBSYSTEM CP NUMBER
* CHANGE FILE TYPE, ACCESS MODE IN SOURCE-S FNT ENTRY.
LDD FN+4 SET *LIBRARY* FILE TYPE
LPN 77
ADC LIFT*100
STD FN+4
AOD FN+3 SET WRITE LOCKOUT BIT
NFA CN+1,R
CWD FN
* WRITE FNT/FST INTO SUBSYSTEM NFL.
RJM CSP CHANGE TO SUBSYSTEM CONTROL POINT
NJN TWF13 IF CHANGE MADE
ERROR RSSI,R RETURN SUBSYSTEM INACCESSIBLE STATUS
TWF13 LDM CSPB
ZJN TWF14 IF CP CHANGED AND *SMF* THERE
ERROR RSSI,B RETURN SUBSYSTEM INACCESSIBLE STATUS
TWF14 RJM CLF CREATE LOCAL FNT ENTRY
LDN 30 SET ALTER ONLY MODE
RAD T4
LDD FN+4 SET *LIBRARY* FILE TYPE
STD T5
LDD FS+4 CLEAR FILE BUSY STATUS
LMN 1
STD FS+4
NFA CN,R
CWD T1
ADN FSTL-FNTL
CWD FS
ADN FUTL-FSTL
CWM TWFB,ON
* CHANGE BACK TO CALLER CONTROL POINT.
RJM CCP CLEAR ALTERNATE CP ASSIGNMENT
RJM GPA GET PARAMETER WORD ADDRESS
CWD CN WRITE FUNCTION PARAMETER WORD
* LDN 0 INDICATE CONNECTION
* STD TW+3
LDN 0
RJM ITF ISSUE *TSEM* FUNCTION
LDN 77 LOOP UNTIL CONNECTION SET
STD T1
TWF15 DELAY
LDD TT GET *VFST*
SHN 14
LMD TT+1
ADN VFST
CRD CM
LDD CM+3 CHECK CONNECT CODE
SHN -6
NJN TWF16 IF CONNECTION SET
SOD T1
NJN TWF15 IF NOT TIMEOUT
* SET TIMED EVENT ROLLOUT AND PP RECALL.
TWF16 RJM RTE REQUEST TIMED/EVENT ROLLOUT
LJM TWR TRANSFER WORKFILE FUNCTION RECALL
* TRANSFER WORKFILE FROM SUBSYSTEM.
TWF17 RJM CPR CHECK PREMATURE RECALL
NJN TWF16 IF PREMATURE
RJM RCF REINSTATE CALLER-S FNT ENTRY
RJM SFN SET FILE NOT BUSY
LDD CS CHECK CONNECTION STATUS
LMN OLCS
ZJN TWF18 IF ON LINE
LMN NICS&OLCS
ZJN TWF19 IF NOT INTERACTIVE
LJM SPJ SUSPEND JOB
TWF18 LDN 1 INDICATE DISCONNECTION
STD TW+3
LDN 0
RJM ITF ISSUE *TSEM* FUNCTION
TWF19 LDN RSSN SET SWITCH NORMAL RETURN STATUS
LJM SRS SET RETURN STATUS
TWFA CON 0 CALLER EJT ORDINAL
TWFB VFD 60/0 WORKFILE FUT ENTRY
SSM SPACE 4,10
*** FUNCTIONS 13B AND 14B.
*
* SET/CLEAR SCREEN MODE BIT IN *VSTT*.
SSM LCN 59D-49D SET BIT 49 *VSTT*
RAM SIAA
LJM SIA4 PROCESS REQUEST
SWS SPACE 4,25
*** FUNCTION 15B.
*
* SET WORD *SLMN*.
*
* ENTRY (IR+3 - IR+4) = 6/ W,18/ ADDR
*
* W = READ OR WRITE NFL WORD *SLMN*.
* 0 = READ.
* 1 = WRITE.
* ADDR = ADDRESS OF PARAMETER WORD.
*
* PARAMETER WORD FORMAT -
*
*T 53/ 0,1/ SM,6/ TM
* SM = SCREEN MODE FLAG.
* 0 = LINE MODE.
* 1 = SCREEN MODE.
* TM = TERMINAL MODEL. AN ORDINAL FROM 1 TO 63 DECIMAL.
* ZERO MEANS TYPE UNKNOWN. SEE TABLE OF CORRESPONDING
* TERMINAL ORDINALS, *TCTO*, IN *COMCGTO* FOR MORE
* INFORMATION.
*
* EXIT TERMINAL WORD *SLMN* READ OR WRITTEN.
SWS LDD IR+3 CHECK READ OR WRITE
SHN -6
ZJN SWS2 IF READ *SLMN*
SBN 1
ZJN SWS4 IF WRITE
SWS1 ABORT ERIR * INCORRECT TERMINAL REQUEST.*
SWS2 NFA SLMN GET WORD *SLMN*
CRD T2
RJM GPA GET PARAMETER WORD ADDRESS
CWD T2
SWS3 LJM DPP DROP PP
SWS4 RJM GPA GET PARAMETER WORD ADDRESS
CRD T2
LDD T6
LPC 177
STD T6
NFA SLMN GET *SLMN*
CRD T1
LDD T5
LPC 7600
LMD T6
STD T5
NFA SLMN WRITE *SLMN*
CWD T1
UJN SWS3 RETURN
LTI SPACE 4,10
*** FUNCTION 16B.
*
* LOOK FOR TYPED AHEAD INPUT.
*
* ENTRY PAR = ADDRESS FOR RETURN DATA.
*
* EXIT (PAR) = 0 IF NO DATA TYPED AHEAD.
*
* CALLS GPA, RRR, SRR, STA.
LTI LDN ZERL PRESET ZERO RETURN
CRD CN
LDD CS
LMK OLCS
NJP LTI2 IF NOT ONLINE
RJM SRR SET R-REGISTER TO IAF RA
RJM STA SET TERMINAL TABLE ADDRESS
ADN VROT CHECK FOR PREPROCESSED INPUT
CRD CM
LDD CM+1
STD CN+4
NJN LTI1 IF INPUT PRESENT
LDD TA TIMESHARING REFERENCE ADDRESS
SHN 6
ADN VNTP TERMINAL TABLE POINTER
CRD CM
LDD CM+2
ZJN LTI1 IF NO NETWORK TERMINALS DEFINED
SBN 1 (A) = HIGHEST MUX TERMINAL NUMBER
SBD TN
PJN LTI1 IF A MUX TERMINAL
LDD TA IAF REFERENCE ADDRESS
SHN 6
ADN VMST TERMINAL STATUS MESSAGE WORD
CRD CM
LDD CM+1
SHN 6
ADD TA
SHN 6
ADD CM+2
ADD TN
CRD CM READ TERMINAL MESSAGE WORD
LDD CM+4 INPUT TYPEAHEAD QUEUE POINTER
STD CN+4
LTI1 RJM RRR RESTORE R-REGISTER
LTI2 RJM GPA GET PARAMETER WORD ADDRESS
CWD CN
LJM DPP EXIT
PDT SPACE 4,10
*** FUNCTION 17B.
*
* DETACH JOB FROM TERMINAL.
PDT LDD CS CHECK CONNECTION STATUS
LMK OLCS
NJP DPP IF NOT ONLINE
LDN PDRC SET PROGRAM INITIATED DETACH REASON CODE
STD TW+2
LJM TLXX SEND *TSEM* REQUEST
SEM SPACE 4,10
** FUNCTION 20 AND 21B.
*
* SET/CLEAR USER EFFECT MODE BIT IN *VSTT*.
SEM LCN 59D-55D SET BIT 55 IN *VSTT*
RAM SIAA
LDC 400 SET MASK FOR RECOVERY WORD
RJM URW UPDATE RECOVERY WORD
NJP DPP IF NOT ON-LINE JOB
LJM SIA4 PROCESS REQUEST
APS SPACE 4,10
*** FUNCTION 22B.
*
* PROCESS APPLICATION SWITCH.
*
* ENTRY (IR+3 - IR+4) = PARAMETER WORD ADDRESS.
* (TN) = TERMINAL NUMBER.
* (TA) = IAF REFERENCE ADDRESS.
* (TW) = *TSEM* REQUEST VALUE.
* (CS) = CONNECTION STATUS.
*
*T,PAR 42/ANAME, 18/0
*T,PAR+1 - PAR+5 REMAINDER OF COMMAND LINE.
*
* ANAME = NEXT APPLICATION NAME.
*
* EXIT TO *TLXX* TO MAKE *TSEM* REQUEST FOR SWITCH.
*
* CALLS CKA, DFM, RRR, SNI, SPA, SRR, STA.
*
* MACROS ABORT, DELAY, MONITOR.
APS LDN 6 SET WORD COUNT
STD T1
RJM CKA CHECK APPLICATION NAME ADDRESS
CRM APSC,T1
LDD CS CHECK CONNECTION STATUS
LMN OLCS
NJP APS7 IF NOT ONLINE CONNECTION STATUS
RJM SNI CHECK IF NETWORK TERMINAL
ZJP APS7 IF NOT A NETWORK TERMINAL
RJM SRR SET R-REGISTER TO IAF RA
RJM STA SET TERMINAL TABLE ADDRESS
ADK VDCT
CRD CM READ UP *VDCT*
RJM RRR RESTORE R-REGISTER
LDD CM+1
SHN 21-13 CHECK PRIMARY CONNECTION BIT
MJP APS10 IF CONNECTION ALREADY LOANED
SHN 1 CHECK SECONDARY CONNECTION BIT
PJN APS1 IF IAF NOT SECONDARY APPLICATION
LDM APSC
ZJN APS0 IF NO APPLICATION SPECIFIED
LMC 2RAB CHECK FOR *ABORT*
NJP APS8 IF NOT ABORT APPLICATION
LDM APSC+1
LMC 2ROR
NJP APS8 IF NOT ABORT APPLICATION
LDM APSC+2
LMC 1RT*100
NJP APS8 IF NOT ABORT APPLICATION
APS0 UJN APS2 CONTINUE
APS1 LDM APSC GET APPLICATION NAME
ZJP APS9 IF NO NAME SPECIFIED
LMC 2RIA
NJN APS2 IF NOT *APPSW,IAF*
LDM APSC+1
SHN -6
LMN 1RF
ZJP APS11 IF *APPSW,IAF*
APS2 LDN ZERL
CRD CM
APS3 LDN 1 SET POTS REQUIRED
STD CM+1
MONITOR TGPM MAKE POT REQUEST
LDD CM+1
ZJP APS6 IF IAF NOT ACTIVE
LMC 7777
NJN APS5 IF POTS AVAILABLE
LDC 600 SET DELAY
STD T1
APS4 DELAY
SOD T1
NJN APS4 IF DELAY NOT COMPLETE
UJN APS3 REISSUE REQUEST
APS5 LDD CM+1 SET POT POINTER
STD PP
STD TW+3 SAVE POINTER IN REQUEST
LDC 1 SET LOGOUT TYPE IN REQUEST
STD TW+2
LDN VCPC-1
STD T1
RJM SRR SET R-REGISTER TO IAF RA
RJM SPA SET POT ADDRESS
ADN 1
CWM APSC,T1 WRITE NAME AND TEXT TO POT
RJM RRR RESTORE R-REGISTER
* TERMINATE ACCOUNT FILE MESSAGE.
LCN 0 INITIALIZE MESSAGE INDEX
STD T1
APS5.1 AOD T1 INCREMENT MESSAGE INDEX
LDM APSC,T1
ZJN APS5.2 IF END OF NAME
LPN 77
NJN APS5.1 IF NOT END OF NAME
LDM APSC,T1 ADD PERIOD TERMINATOR TO MESSAGE
LMN 1R.
STM APSC,T1
UJN APS5.3 STORE END OF LINE IN MESSAGE
APS5.2 LDC 1R.*100 ADD PERIOD TERMINATOR TO MESSAGE
STM APSC,T1
APS5.3 LDN 0 STORE END OF LINE IN MESSAGE
STM APSC+1,T1
LDC APSB+ACFN
RJM DFM ISSUE ACCOUNT MESSAGE
LDN RODS SET DISABLE OPTION
STD CM+1
MONITOR ROCM
APS6 LJM TLXX EXIT
APS7 ABORT ERNT NETWORK TERMINAL COMMAND ONLY
APS8 ABORT ERSA INCORRECT SECONDARY APPLICATION SWITCH
APS9 ABORT ERNR APPLICATION NAME REQUIRED
APS10 ABORT ERAL CONNECTION ALREADY LOANED
APS11 ABORT ERCS CANNOT SWITCH TO CURRENT APPLICATION (IAF)
APSB DATA 6LACAS, ACCOUNT MESSAGE HEADER
APSC BSSZ 6*5 APPLICATION NAME AND Z PARAMETER
BSSZ 2*5 TERMINATOR WORDS
RLC SPACE 4,20
*** FUNCTION 23B.
*
* RESTART LOANED CONNECTION.
*
* ISSUE APPROPRIATE ACCOUNTING AND DAYFILE MESSAGES AND
* RESTART, DETACH, OR TERMINATE THE RETURNED JOB.
*
* ENTRY (TN) = TERMINAL NUMBER.
* (TA) = IAF REFERENCE ADDRESS.
* (TW) = *TSEM* REQUEST VALUE.
* *VROT*, BYTE 2 CONTAINS THE LOAN STATUS VALUE.
*
* EXIT TO *DPP* IF CONTROL POINT NOT TO BE ABORTED.
* TO *ERR1* IF CONTROL POINT TO BE ABORTED.
*
* CALLS DFM, ITF, RRR, SRR, STA.
*
* MACROS MONITOR.
RLC BSS 0 ENTRY
RJM SRR SET R-REGISTER TO IAF RA
RJM STA SET TERMINAL TABLE ADDRESS
ADK VROT
CRD CN READ *VROT*
RJM RRR RESTORE R-REGISTER
LDD CN+2 GET LOAN STATUS VALUE
NJN RLC0 IF A VALUE DEFINED
LDN ERLS SET ERROR STATUS
STD CN+2
RLC0 LDM TACM,CN+2
ZJN RLC1 IF NO ACCOUNTING MESSAGE
STM RLCA+1
LDC RLCA+ACFN ISSUE ACCOUNT MESSAGE
RJM DFM
RLC1 LDM TLSM,CN+2 GET APPROPRIATE DAYFILE MESSAGE
ZJP RLC2 IF NO DAYFILE MESSAGE
RJM DFM ISSUE DAYFILE MESSAGE
RLC2 LDD CN+2
STD T1 SAVE LOAN STATUS VALUE
SBN LDLS
ZJN RLC2.1 IF LINE DISCONNECT IN SECONDARY
LDN 0 CLEAR LOAN STATUS VALUE IN *VROT*
STD CN+2
RJM SRR SET R-REGISTER TO IAF RA
RJM STA
ADK VROT
CWD CN REWRITE *VROT*
RJM RRR RESTORE R-REGISTER
RLC2.1 LDM TPSR,T1 GET SPECIAL PROCESSOR ADDRESS
ZJP DPP IF NO SPECIAL PROCESSING NECESSARY
STM RLCB
LJM * JUMP TO PROCESSOR
RLCB EQU *-1
RLC3 LDN PIDL SET DETACH VALUE IN EJT PARAMETER BLOCK
STD TW+2
LDC VDTJ *TSEM* REQUEST TYPE
STD TW
UJN RLC5 CONTINUE
RLC4 LCN SARC SET FORCE LOGOFF VALUE IN EJT PARAM. BLOCK
STD TW+2
LDC VTLF *TSEM* REQUEST TYPE
STD TW
RLC5 LDN 0 CLEAR MESSAGE FROM MESSAGE BUFFER
STD CM
LDD CP
ADK MS1W
CWD CM
LDN 0
RJM ITF ISSUE *TSEM* REQUEST
LJM ERR1 ABORT
RLCA DATA 5LACXX.
CON 0 END OF BUFFER
TACM SPACE 4,10
** TABLE OF ACCOUNT MESSAGES.
*
* INDEXED BY LOAN STATUS VALUE (DEFINED IN *COMSREM*).
TACM INDEX
INDEX SCLS,2RAB
INDEX SVLS,2RAI
INDEX SOLS,2RAF
INDEX SFLS,2RAF
INDEX SULS,2RAI
INDEX STLS,2RAR
INDEX SRLS,2RAU
INDEX SALS,2RAU
INDEX SLLS,2RAU
INDEX ERLS,2RAE
INDEX MXLS
TLSM SPACE 4,10
** TABLE OF LOAN STATUS MESSAGES.
*
* INDEXED BY LOAN STATUS VALUE (DEFINED IN *COMSREM*).
TLSM INDEX
INDEX SCLS,(=C* SECONDARY APPLICATION ABORTED CONNECTION.*)
INDEX SVLS,(=C* USER NOT VALIDATED FOR SECONDARY APPLICATION.
,*)
INDEX SOLS,(=C* SECONDARY APPLICATION NETTED OFF.*)
INDEX SFLS,(=C* SECONDARY APPLICATION FAILED.*)
INDEX SULS,(=C* UNKNOWN SECONDARY APPLICATION.*)
INDEX STLS,(=C* SECONDARY APPLICATION PROCESSING COMPLETE.*)
INDEX SRLS,(=C* SECONDARY APPLICATION REFUSED CONNECTION.*)
INDEX SALS,(=C* SECONDARY APPLICATION NOT AVAILABLE.*)
INDEX SLLS,(=C* SECONDARY APPLICATION CONNECTION LIMIT.*)
INDEX ERLS,(=C* RETRY APPLICATION SWITCH.*)
INDEX LDLS,(=C* LINE WAS DISCONNECTED WHILE LOANED.*)
INDEX MXLS
TPSR SPACE 4,10
** TABLE OF PROCESSORS FOR SECONDARY CONNECTION RETURN.
*
* INDEXED BY LOAN STATUS VALUE (DEFINED IN *COMSREM*).
TPSR INDEX
INDEX SCLS,RLC4
INDEX SVLS,ERR1
INDEX SOLS,ERR1
INDEX SFLS,ERR1
INDEX SULS,ERR1
INDEX SRLS,ERR1
INDEX SALS,ERR1
INDEX SLLS,ERR1
INDEX ERLS,RLC3
INDEX LDLS,RLC3
INDEX MXLS
TITLE SUBROUTINES.
CCP SPACE 4,10
** CCP - CLEAR ALTERNATE CONTROL POINT ASSIGNMENT.
*
* EXIT ALTERNATE CONTROL POINT ASSIGNMENT CLEARED.
*
* USES CM+1.
*
* MACROS MONITOR.
CCP SUBR ENTRY/EXIT
LDC ALCS SET ALTERNATE CP FLAG
STD CM+1
MONITOR CCAM CLEAR ALTERNATE CP ASSIGNMENT
UJN CCPX RETURN
CKA SPACE 4,10
** CKA - CHECK ADDRESS.
*
* THIS ROUTINE CALCULATES THE ABSOLUTE ADDRESS FROM THE
* RELATIVE ADDRESS IN IR+3 - IR+4.
*
* ENTRY (IR+3 - IR+4) = ADDRESS.
* (T1) = WORD COUNT MINUS ONE.
*
* EXIT (A) = ABSOLUTE ADDRESS.
CKA2 LDD IR+3 LOAD ABSOLUTE ADDRESS
SHN 6
ADD RA
SHN 6
ADD IR+4
CKA SUBR ENTRY/EXIT
LDD IR+3
SCN 37
NJN CKA1 IF OUT OF RANGE
LDD IR+3
SHN 14
LMD IR+4
ADD T1
SHN -6
SBD FL
MJN CKA2 IF < FL - WORD COUNT
CKA1 ABORT ERAE *TLX - ARGUMENT ERROR*
CLF SPACE 4,15
** CLF - CREATE LOCAL FNT ENTRY.
*
* ENTRY (TWFA) = CALLER EJT ORDINAL.
*
* EXIT (CN) = FNT ORDINAL IF ENTRY CREATED.
* (T1 - T4) = FILE NAME.
* TO ERROR PROCESSOR IF NO NFL AVAILABLE OR
* FILE LIMIT.
*
* USES T1 - T6, CM - CM+4.
*
* MACROS ERROR, MONITOR, SFA.
CLF SUBR ENTRY/EXIT
LDC 2RWK SET FILE NAME
STD T1
LDM TWFA GET JSN
SFA EJT
ADK JSNE
CRD T2
LDN 0
STD T4
STD T5
LDD MA SET FILE NAME IN MB
CWD T1
LDN CRFS CREATE LOCAL FNT ENTRY
STD CM+1
MONITOR PLFM
LDD CM+1 SAVE FNT ORDINAL
STD CN
LDD CM+4
ZJN CLFX IF FILE CREATED
* FILE NOT CREATED, PROCESS ERROR STATUS.
SHN 21-2
PJN CLF1 IF NOT NFL INCREASE NEEDED
ERROR RSNP,B RETURN NO SPACE IN NFL STATUS
CLF1 ERROR RSFL,B RETURN FILE LIMIT STATUS
CPR SPACE 4,20
** CPR - CHECK PREMATURE RECALL.
*
* ENTRY (CS) = CONNECTION STATUS.
* (CN - CN+4) = FUNCTION PARAMETER WORD.
* (TWFA) = CALLER EJT ORDINAL.
*
* EXIT (A) = 0 IF DISCONNECT STATUS.
* (A) .NE. 0 IF ONE OF THE FOLLOWING IS TRUE -
* 1. CONNECTION STATUS IS ON LINE AND *SMF* FIELD
* OF *VFST* .NE. 0.
* 2. WORKFILE FNT ENTRY STILL EXISTS IN
* SUBSYSTEM NFL.
*
* USES T2 - T6, CM - CM+4.
*
* CALLS CCP, CSP, GSC, RRR, SRR, STA.
*
* MACROS NFA, SFA.
CPR SUBR ENTRY/EXIT
LDD CS CHECK CONNECTION STATUS
LMN OLCS
NJN CPR1 IF NOT ON LINE
RJM SRR SET R-REGISTER TO IAF RA
RJM STA READ TERMINAL TABLE WORD *VFST*
ADN VFST
CRD CM
RJM RRR RESTORE R-REGISTER
LDD CM+3 CHECK *SMF* FIELD
SHN -6
NJN CPRX IF *SMF* CONNECTED
CPR1 RJM GSC GET SUBSYSTEM CP NUMBER
ZJN CPRX IF *SMF* GONE
RJM CSP SET ALTERNATE CP ASSIGNMENT TO SUBSYSTEM
ZJN CPRX IF *SMF* GONE AND CP NOT CHANGED
LDM CSPB
NJN CPR1.1 IF CP CHANGED BUT *SMF* NOT THERE
NFA CN,R CHECK FOR FNT ENTRY IN SUBSYSTEM NFL
CRD T2
RJM CCP CLEAR ALTERNATE CP ASSIGNMENT
LDC 2RWK CHECK FOR WORKFILE
LMD T2
NJN CPR2 IF NOT WORKFILE
LDM TWFA GET JSN
SFA EJT
ADK JSNE
CRD CM
LDD CM
LMD T3
NJN CPR2 IF NOT WORKFILE
LDD CM+1
LMD T4
NJN CPR2 IF NOT WORKFILE
LDN 1
UJN CPR3 RETURN PREMATURE STATUS
CPR1.1 RJM CCP CLEAR ALTERNATE CP ASSIGNMENT
CPR2 LDN 0 RETURN DISCONNECT STATUS
CPR3 UJP CPRX RETURN
CSP SPACE 4,15
** CSP - SET ALTERNATE CONTROL POINT ASIGNMENT TO SUBSYSTEM.
*
* ENTRY (CSPA) = SUBSYSTEM CONTROL POINT NUMBER.
* (CN+2) = SUBSYSTEM ID.
*
* EXIT (A) = 0 IF *SMF* GONE AND CONTROL POINT NOT CHANGED.
* .NE. 0 IF CONTROL POINT CHANGED.
* (CSPB) .NE. 0 IF *SMF* GONE AND CONTROL POINT CHANGED.
*
* USES T2, CM - CM+4.
*
* CALLS AST.
*
* MACROS DELAY, MONITOR, PAUSE.
CSP3 LDD CP CHECK SUBSYSTEM ID
ADK JCIW
CRD CM
LDD CN+2
LMD CM+2
STM CSPB SET *SMF* FLAG
LDN 1 SET CONTROL POINT CHANGE MADE
CSP SUBR ENTRY/EXIT
CSP1 LDM CSPA GET SUBSYSTEM CP NUMBER
LMC ALCS SET ALTERNATE CP FLAG
STD CM+1
MONITOR CCAM SET ALTERNATE CP ASSIGNMENT
LDD CM+1
ZJP CSP3 IF CHANGE MADE
PAUSE ST
LDC 3600
STD T2
CSP2 DELAY
SOD T2
NJN CSP2 IF STILL DELAYING
LDC FEAF*10000B GET *SSAT* ENTRY
ADD CN+2
RJM AST
ZJN CSPX IF *SMF* NOT PRESENT
SFA EJT GET EJT ADDRESS
ADN SCHE GET SCHEDULING DATA
CRD CM
LDD CM+3 GET CP NUMBER
LPN 77
STM CSPA RESET SUBSYSTEM CP NUMBER
UJP CSP1 TRY AGAIN
CSPA CON 0 *SMF* CONTROL POINT NUMBER
CSPB CON 0 *SMF* FLAG
ERR SPACE 4,10
** ERR - PROCESS ERROR.
*
* ENTRY (A) = FWA OF ERROR MESSAGE FOR DAYFILE.
*
* EXIT TO *PPR*.
* DAYFILE MESSAGE ISSUED.
* CONTROL POINT ABORTED.
*
* CALLS DFM.
*
* MACROS MONITOR.
ERR RJM DFM ISSUE DAYFILE MESSAGE
ERR1 MONITOR ABTM ABORT CONTROL POINT
LJM PPR EXIT TO PP RESIDENT
* ERROR MESSAGES.
ERAE DATA C* TLX - ARGUMENT ERROR.*
ERIR DATA C* INCORRECT TERMINAL REQUEST.*
ERRA DATA C* TLX - RPV ALREADY SET.*
ERNT DATA C* REQUEST IS VALID ONLY FROM A NETWORK TERMINAL.*
ERSA DATA C* USER CANNOT SWITCH FROM A SECONDARY APPLICATION.*
ERNR DATA C* APPLICATION NAME IS REQUIRED.*
ERAL DATA C* THIS CONNECTION IS ALREADY LOANED.*
ERCS DATA C* USER CANNOT SWITCH TO CURRENT APPLICATION.*
GPA SPACE 4,10
** GPA - GET PARAMETER ADDRESS.
*
* ENTRY (IR+3 - IR+4) = ADDRESS.
*
* EXIT (A) = ABSOLUTE ADDRESS.
* TO *ERR* IF ADDRESS OUT OF RANGE.
*
* MACROS ABORT.
GPA1 LDD IR+3
LPN 77
SHN 6
ADD RA
SHN 6
ADD IR+4
GPA SUBR ENTRY/EXIT
LDD IR+3 VALIDATE ADDRESS
LPN 77
SHN 14
ADD IR+4
SHN -6
SBD FL
MJN GPA1 IF NOT OUT OF RANGE
ABORT ERAE * TLX - ARGUMENT ERROR.*
GSC SPACE 4,15
** GSC - GET SUBSYSTEM CONTROL POINT NUMBER.
*
* ENTRY (CN+2) = SUBSYSTEM *SSID*.
*
* EXIT (CSPA) = SUBSYSTEM CP NUMBER.
*
* USES T1 - T5.
*
* CALLS AST.
*
* MACROS SFA.
GSC SUBR ENTRY/EXIT
LDC FEAF*10000B GET *SSAT* ENTRY
ADD CN+2
RJM AST
ZJN GSCX IF *SMF* GONE
SFA EJT GET EJT ADDRESS
ADN SCHE GET SCHEDULING DATA
CRD T1
LDD T4 GET CP NUMBER
LPN 77
STM CSPA SAVE SUBSYSTEM CP NUMBER
UJN GSCX RETURN
ITF SPACE 4,10
** ITF - ISSUE *TSEM* FUNCTION.
*
* ENTRY (TW - TW+4) = *TSEM* REQUEST.
* (A) = NUMBER OF RECALLS TO TRY IF *TSEM* QUEUE FULL.
*
* USES CM - CM+4, RC - RC+1.
*
* MACROS DELAY, MONITOR, PAUSE.
ITF SUBR ENTRY/EXIT
STD RC RECALL FLAG
STD RC+1 RECALL COUNTER
LDD MA
CWD TW
ITF1 LDK ZERL
CRD CM
MONITOR TSEM
LDD CM+1
ZJN ITFX IF *IAF* INACCESSIBLE OR ERROR
LMC 7777
NJN ITFX IF REQUEST COMPLETE
PAUSE ST
LDC 3600 *TSEM* QUEUE FULL - DELAY AND RETRY
STD T1
ITF2 DELAY
SOD T1
NJN ITF2 IF STILL DELAYING
SOD RC+1
NJN ITF1 IF TIME TO REISSUE REQUEST
LDD RC
ZJN ITF1 IF NO RECALL
UJP RCL RECALL PP
RCF SPACE 4,10
** RCF - REINSTATE CALLER FNT.
*
* ENTRY (CN+1) = CALLER FNT ORDINAL.
*
* EXIT CALLER WORKFILE FNT REWRITTEN WITH THE WRITE
* LOCKOUT BIT CLEARED AND FILE TYPE = *LOFT*.
*
* USES CM - CM+4.
*
* MACROS NFA.
RCF SUBR ENTRY/EXIT
NFA CN+1,R GET FNT ENTRY
CRD CM
LDD CM+3 CLEAR WRITE LOCKOUT BIT
SCN 1
STD CM+3
LDD CM+4 SET *LOCAL* FILE TYPE
LPN 77
ADC LOFT*100
STD CM+4
NFA CN+1,R
CWD CM
UJN RCFX RETURN
RCL SPACE 4,10
** RCL - RECALL PPU.
*
* EXIT TO *PPR*.
*
* MACROS MONITOR.
RCL BSS 0 ENTRY
LDD MA WRITE *TLX* CALL
CWD IR
LDN ZERL
CRD CM
LDN PTMF SET TIMED RECALL
STD CM+1
MONITOR RECM
LJM PPR EXIT TO PP RESIDENT
RTE SPACE 4,10
** RTE - REQUEST TIMED EVENT ROLLOUT.
*
* EXIT TIMED/EVENT ROLLOUT REQUESTED.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
RTE SUBR ENTRY/EXIT
LDD CP READ TIMED EVENT ROLLOUT WORD
ADN TERW
CRD CM
LDD CM SET EJT ORDINAL
STD CM+4
LDK WRKE/10000 SET EVENT
STD CM+3
LDC 777 SET TIME
STD CM+2
LDD MA WRITE *ROCM* PARAMETERS TO MB
CWD CM
LDN ROTE SET TIMED/EVENT ROLLOUT
STD CM+1
MONITOR ROCM
UJN RTEX RETURN
SDT SPACE 4,15
** SDT - SET DEVICE TYPE.
*
* ENTRY (TN) = TERMINAL NUMBER.
* (TA) = IAF RA.
*
* EXIT (CN+1) = DEVICE TYPE.
* (CN+3) = TRANSMISSION CODE.
* (T0)-(T4) = VMST ENTRY.
*
* USES T0 - T4.
*
* CALLS RRR, SRR.
SDT SUBR ENTRY/EXIT
RJM SRR SET R-REGISTER TO IAF RA
LDD TA GET FWA OF MESSAGE STATUS TABLE
SHN 6
ADN VMST
CRD T0
LDD T0+1 SET TABLE ADDRESS OF TERMINAL
SHN 6
ADD TA
SHN 6
ADD T0+2
ADD TN
CRD T0 READ TABLE ENTRY
LDD T0+1 SET DEVICE TYPE
LPC 377
STD CN+1
LDD CN+3 SET TRANSMISSION CODE
SCN 77
ADN 3
STD CN+3
LDD T0 SAVE (T0)
STM SDTA
RJM RRR RESTORE R-REGISTER
LDM SDTA RESTORE (T0)
STD T0
UJN SDTX RETURN
SDTA BSS 1 (T0)
SFN SPACE 4,10
** SFN - SET FILE NOT BUSY.
*
* ENTRY (CN+1) = CALLER FNT ORDINAL.
*
* EXIT CALLER-S WORKFILE SET NOT BUSY.
*
* USES CM - CM+4.
*
* MACROS NFA.
SFN SUBR ENTRY/EXIT
NFA CN+1,R GET FST ENTRY
ADN FSTL
CRD CM
LDD CM+4 CLEAR FILE BUSY STATUS
SCN 1
LMN 1
STD CM+4
NFA CN+1,R WRITE FST
ADN FSTL
CWD CM
UJN SFNX RETURN
SNI SPACE 4,10
** SNI - SET NETWORK IDENTIFICATION.
*
* ENTRY (TN) = TERMINAL NUMBER.
* (TA) = IAF RA.
*
* EXIT (A) = ZERO IF NOT NETWORK TERMINAL.
* (CM - CM+4) = *NAMIAF * IF A NETWORK TERMINAL.
*
* USES CM - CM+4.
*
* CALLS RRR, SRR.
SNI SUBR ENTRY/EXIT
RJM SRR SET R-REGISTER TO IAF RA
LDD TA READ NETWORK TERMINAL POINTERS
SHN 6
ADN VNTP
CRD CM
RJM RRR RESTORE R-REGISTER
LDD CM+2 GET FIRST NETWORK TERMINAL NUMBER
ZJN SNIX IF NO NETWORK TERMINALS
SBN 1
SBD TN
MJN SNI1 IF NETWORK TERMINAL
LDN 0
UJN SNIX RETURN
* SET NETWORK TERMINAL IDENTIFICATION.
SNI1 LDD MA MOVE TERMINAL NAME TO (CM - CM+4)
CWM SNIA,ON
SBN 1
CRD CM
UJN SNIX RETURN
SNIA DATA 10LNAMIAF
SPJ SPACE 4,10
** SPJ - SUSPEND JOB.
*
* EXIT TO *RCL*.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
SPJ BSS 0 ENTRY
LDN ZERL
CRD CM
LDN ROSU JOB SUSPENSION OPTION
STD CM+1
MONITOR ROCM
LJM RCL RECALL PP
SRS SPACE 4,10
** SRS - SET RETURN STATUS.
*
* ENTRY (A) = RETURN STATUS CODE.
* (CN - CN+4) = TRANSFER FUNCTION PARAMETER WORD.
*
* EXIT TO *DPP*.
* RETURN STATUS, COMPLETE BIT SET IN TRANSFER FUNCTION
* PARAMETER WORD.
*
* CALLS GPA, SFN.
SRS SHN 1
LMN 1 SET COMPLETE BIT
STD CN+4
SHN -1
ZJN SRS1 IF NORMAL RETURN STATUS
SBN RSFB
ZJN SRS1 IF FILE BUSY RETURN STATUS
SBN RSFN&RSFB
ZJN SRS1 IF FILE NOT FOUND STATUS
RJM SFN SET FILE NOT BUSY
SRS1 RJM GPA GET PARAMETER WORD ADDRESS
CWD CN WRITE FUNCTION PARAMETER WORD
LJM DPP DROP PP
STI SPACE 4,10
** STI - SET TERMINAL IDENTIFICATION.
*
*
* ENTRY (TA) = IAF RA.
* (TTTA) = USER TERMINAL TABLE.
*
* EXIT (CM - CM+4) = TERMINAL IDENTIFICATION CODE.
* = *TTY* IF UNDEFINED.
*
* USES T1, T3, CM - CM+4.
*
* CALLS RRR, SRR.
STI SUBR ENTRY/EXIT
LDM TTTA+VDPT*5+3 SET TRANSLATION TABLE INDEX
SHN 0-7
LPN 37
STD T1
LDN 0
STD T3
RJM SRR SET R-REGISTER TO IAF RA
STI1 LDD T3
SBN VTSR-VDRL-1
ZJN STI2 IF THROUGH TESTING ALL DRIVERS
LDD TA READ DRIVER STACK POINTER
SHN 6
ADN VDRL
ADD T3
CRD CM
AOD T3 INCREMENT DRIVER STACK POINTER INDEX
LDD CM+4 GET DRIVER FIRST TERMINAL NUMBER
ADD CM+3 CALCULATE DRIVER LAST TERMINAL NUMBER
SBN 1
SBD TN
MJN STI1 IF NOT THIS DRIVER
LDD CM+1 SET DRIVER STACK ADDRESS
LPN 37
SHN 6
ADD TA
SHN 6
ADD CM+2
ADN 4 READ STACK *LIMIT* POINTER
CRD CM
LDD CM+3 SET IDENTIFICATION TABLE ADDRESS
LPN 77
SHN 6
ADD TA
SHN 6
ADD CM+4
ADD T1 ADD TRANSLATION TABLE INDEX
CRD CM READ TRANSLATION TABLE ID WORD
LDD CM CHECK TERMINAL ID
NJN STI3 IF DEFINED
STI2 LDD MA SET DEFAULT
CWM STIA,ON
SBN 1
CRD CM
STI3 RJM RRR RESTORE R-REGISTER
LJM STIX RETURN
STIA DATA 10LTTY
TWR SPACE 4,10
** TWR - TRANSFER WORKFILE FUNCTION RECALL.
*
* EXIT TO *RCL*.
* RECALL SET FOR TRANSFER WORKFILE FROM SUBSYSTEM.
TWR BSS 0 ENTRY
LDD IR+3 SET TRANSFER FROM SUBSYSTEM
LPN 77
LMC 100
STD IR+3
LJM RCL RECALL PP
URW SPACE 4,15
** URW - UPDATE RECOVERY WORD.
*
* ENTRY (A) = MASK TO UPDATE NFL RECOVERY WORD (*RC1N*).
*
* EXIT (A) = 0, IF ON-LINE JOB.
* .NE. 0, IF NOT ON-LINE.
* (RC1N) UPDATED IF NOT ON-LINE.
*
* USES CN, CM - CM+4.
*
* MACROS NFA.
URW SUBR ENTRY/EXIT
STD CN
LMC -0
STM URWA
LDD CS
LMK OLCS
ZJN URWX IF ON-LINE JOB
* UPDATE RECOVERY WORD IN NFL.
NFA RC1N READ RECOVERY WORD
CRD CM
LDD CM+4 CLEAR BIT IN RECOVERY WORD
LPC **
URWA EQU *-1 (RECOVERY WORD MASK)
STD CM+4
LDD TW
LMC VCDT
ZJN URW1 IF CLEAR BIT FUNCTION
LDD CN SET BIT IN RECOVERY WORD
RAD CM+4
URW1 NFA RC1N REWRITE RECOVERY WORD
CWD CM
UJN URWX RETURN
SPACE 4,10
* COMMON DECKS.
*CALL COMPAST
PIR$ EQU 1 SELECT ASSEMBLY OF *PIR* FOR IAF R-REG
*CALL COMPSRR
*CALL COMPSFB
*CALL COMPSTA
SPACE 4
*CALL COMPSPA
USE PRESET
TITLE PRESET AND BUFFERS.
** THE FOLLOWING CODE MAY BE OVERLAID.
* TTTA - TERMINAL TABLE BUFFER.
TTTA EQU *
PRS SPACE 4,15
** PRS - PRESET PROGRAM.
*
* EXIT (TW+1 - TW+3) = ZERO.
* (TA) = IAF RA.
* (CS) = CONNECTION STATUS.
* (TWFA) = EJT ORDINAL OF CALLER.
* IF (CS) IS NOT *OLCS*, TW AND TA EXIT CONDITIONS
* ARE NOT ESTABLISHED.
*
* USES CS, TN, T7, CM - CM+4, CN - CN+4, TW - TW+3.
*
* CALLS AST, CRS, PIR.
*
* MACROS ABORT, SFA.
PRS SUBR ENTRY/EXIT
RJM CRS CHECK RECALL STATUS
ZJN PRS1 IF NOT AUTO RECALL
RJM PIR PRESET WITH IAF R-REGISTER
LDD IR+2 CHECK FUNCTION CODE
SHN 1
ADD IR+2
STD T7
SBK TFCNL
PJN PRS1 IF INCORRECT CODE
LDM TFCN,T7 SET ADDRESS PROCESSOR
STM TLXA
ZJN PRS1 IF UNDEFINED FUNCTION
LDD CP
ADK SEPW
CRD CM
LDD CM
SHN 21-2
MJN PRS2 IF CALLER IS *SSJ=* PROGRAM
LDD IR+2 CHECK FUNCTION CODE
LMN 11B
NJN PRS2 IF NOT *RECOVER* REQUEST
PRS1 ABORT ERIR * INCORRECT TERMINAL REQUEST.*
PRS2 LDM TFCN+1,T7 SET *TSEM* FUNCTION
STD TW
LDD CP READ EJT ORDINAL
ADN TFSW
CRD CM
LDD CM
STM TWFA SAVE EJT ORDINAL
SFA EJT READ EJT ENTRY
ADK JSNE
CRD CM
LDD CM+4 GET CONNECTION STATUS
SHN -7
LPN 17
STD CS
LMN OLCS
NJN PRS5 IF NOT ON LINE
STD TW+1 CLEAR REQUEST BUFFER
STD TW+2
STD TW+3
LDD CP GET THE TERMINAL NUMBER
ADK TTNW
CRD CM
LDD CM+1
STD TN
LDC FECF*10000B+IFSI FETCH IAF *SSET* ENTRY
RJM AST
SHN 21-13
PJN PRS9 IF IAF NOT ACCESSIBLE
* RJM PIR (CALL SHOULD BE HERE)
PRS4 LJM PRSX RETURN
* PROCESS OFF-LINE STATUS.
PRS5 LDM TFCN+2,T7
STD CM+1
LDD CS
LMN DTCS
ZJN PRS7 IF DETACHED
LDD CM+1
SHN -6
STD CM+1
PRS7 LDD CM+1
LPN 77
LMN 1
ZJN PRS4 IF TO PROCESS WITHOUT IAF
LMN 2&1
ZJN PRS9 IF TO SUSPEND
PRS8 LJM DPP IGNORE REQUEST
* SUSPEND JOB.
PRS9 LDD CP
ADK EOJW
CRD CN
LDD CN
SHN -11
LMK SUJT
NJN PRS8 IF NOT SUSPEND TERMINATION OPTION
LJM SPJ SUSPEND JOB
SPACE 4,10
* COMMON DECKS WHICH MAY BE OVERLAID.
*CALL COMPCRS
EJT$ EQU 0
*CALL,COMPGFP
SPACE 4,10
OVERFLOW
SPACE 4,10
END