IDENT 1TA,ITA
PERIPH
BASE MIXED
SST
QUAL$ EQU 1 DEFINE UNQUALIFIED COMMON DECKS
EOR$ EQU 1 DEFINE POSITION AFTER EOR
*COMMENT 1TA - IAF AUXILIARY FUNCTION PROCESSOR.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE 1TA - TIMESHARING AUXILIARY PROCESSOR.
SPACE 4,10
***** 1TA - TIMESHARING AUXILIARY PROCESSOR.
*
* K. E. ZINNEL. 70/03/09.
* R. E. TATE. 71/01/25.
* P. D. FARRELL. 75/02/07.
* A. D. FORET. 76/04/26.
* P. D. FARRELL 77/03/17.
* M. J. CARIDDI, L. K. TUTTLE 81/07/02.
SPACE 4,10
*** 1TA PROCESSES FUNCTIONS FOR *IAF* WHICH REQUIRE
* PP ACTION.
SPACE 4,10,25
*** CALLS.
*
*
* GROUP REQUEST.
*T 18/ *1TA*,6/ CP,6/ ,18/ RETURN ADDRESS,12/ PP
*
* CP CONTROL POINT.
* PP POT POINTER TO REQUEST QUEUE POT(S).
*
* SINGLE REQUEST.
*T 18/ *1TA*,6/ CP,12/ 40FC,12/ TN,12/ ARG
*
* REQUEST QUEUE FORMAT.
*T 24/ ,12/ FC,12/ TN,12/ ARG
*
* FC FUNCTION CODE.
* TN TERMINAL NUMBER.
* ARG POT POINTER OR REQUEST TYPE.
*
* VROT STATUS BITS USED.
* BIT 0 - COMPLETION STATUS BIT.
* BIT 11- ERROR RETURN.
SPACE 4,10,10
*** ACCOUNT FILE MESSAGES.
*
*
* CHARACTER ACCUMULATOR OVERFLOW -
* *UCCO, 000000.000KCHS.* = CHARACTERS OUT.
* *UCCI, 000000.000KCHS.* = CHARACTERS IN.
* *ABLQ, JSNN, YY/MM/DD, HH.MM.SS* INPUT FILE QUEUED
SPACE 4,10,10
** ROUTINES USED.
*
*
* 0AV - VERIFY USER NAME.
* 0QM - ISSUE QUEUE FILE ACCOUNTING MESSAGE.
SPACE 4,10
* COMMON DECKS.
*CALL COMPMAC
*CALL COMSACC
*CALL COMSCPS
*CALL COMSEJT
*CALL COMSEVT
*CALL COMSJIO
*CALL COMSJRO
*CALL COMSMSC
*CALL COMSMSP
*CALL COMSPFM
*CALL COMSPIM
*CALL COMSPRD
*CALL COMSREM
*CALL COMSSRU
*CALL COMSSSE
*CALL COMSTCM
*CALL COMSWEI
*CALL COMSZOL
TITLE PROGRAM EQUIVALENCES.
**** DIRECT LOCATION ASSIGNMENTS.
QF EQU 25 QFT ORDINAL
PW EQU 26 POT WORD COUNT
FP EQU 27 FIRST POT
CN EQU 30 - 34 VROT STATUS WORD BUFFER (5 LOCATIONS)
PA EQU 35 - 36 POT ADDRESS (2 LOCATIONS)
PP EQU 37 POT POINTER
DF EQU 40 - 44 DESIGNATED FILE NAME (5 LOCATIONS)
WC EQU 45 WORD COUNT
TT EQU 46 - 47 TERMINAL TABLE ADDRESS (2 LOCATIONS)
TN EQU IR+3 TERMINAL NUMBER
FN EQU 60 - 64 FILE NAME (5 LOCATIONS)
OT EQU 65 ORIGIN TYPE
NC EQU 66 NUMBER OF CONTROL POINTS
MF EQU 67 MESSAGE FLAG
SPACE 4,10
** MICRO DEFINITIONS.
TE OCTMIC TTEQ,2 TTY PSEUDO-EQUIPMENT MICRO
SPACE 4,10
**** PROGRAM EQUIVALENCES.
SYSN EQU 0 SYSTEM SECTOR NUMBER
CPSN EQU 1 C.P. AREA SECTOR NUMBER
NSVR EQU 6 NUMBER OF SERVICE CLASS VALIDATION RETRIES
EJTT EQU EJTR*2 EJT THRESHOLD
BUFFER SPACE 4,10,10
**** BUFFER DEFINITIONS.
FBUF EQU BFMS-502-LENF*5+1*5 NFL/INPUT/EOI BUFFER
CBUF EQU FBUF-504 CONTROL POINT AREA SECTOR BUFFER
ERRNG EPFW-CBUF-ZAVL CHECK *0AV* OVERFLOW
ERRNG BFMS-CBUF-ZQML CHECK *0QM* OVERFLOW
TITLE OVERLAY COMMUNICATION MACROS.
OVERLAY SPACE 4,10
** OVERLAY - GENERATE OVERLAY CONSTANTS.
*
* QUAL OVERLAY (TEXT),ADDR
*
* QUAL OVERLAY QUALIFIER NAME
* TEXT TEXT OF SUBTITLE.
* ADDR OPTIONAL LOAD ADDRESS, IF TO BE OTHER THAN *OVL*.
NOREF .M
PURGMAC OVERLAY
.M SET 0
MACRO OVERLAY,Q,T,A
LOCAL LADDR
QUAL
.M SET .M+1
USE LITERALS
.1 MICRO .M,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ
.3 MICRO 1,3, 3T".1"
Q_O EQU 1R".1"
Q MICRO 1,4, O_Q
TITLE ".3" - T
IDENT ".3","Q" - T
*COMMENT 1TA - T
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
ORG A OVL
"Q" LJM *
UJN *-2
QUAL Q
OVERLAY ENDM
ENTRY SPACE 4,10,10
** ENTRY - DEFINE OVERLAY ENTRY POINT.
*
* ENTRY NAME
*
* ENTRY *NAME* = NAME OF ENTRY ADDRESS.
PURGMAC ENTRY
ENTRY MACRO NAME
QUAL
NAME EQU *+1R".1"*10000
QUAL *
ENTRY ENDM
FCN SPACE 4,10,10
** FCN - DEFINE FUNCTION PROCESSOR.
*
* FCN NAME
*
* ENTRY *NAME* = NAME OF FUNCTION PROCESSOR.
NOREF .I
.I SET 0
MACRO FCN,L,A
LOC .I/2+1
L CON A/10000,A-A/10000*10000
.I SET .I+2
ENDM
SCLASS SPACE 4,15
** SCLASS - DEFINE SERVICE CLASS TABLE.
*
* SCLASS NM,MN,DF,ST,TX
*
* ENTRY *NM* = SERVICE CLASS NAME.
* *MN* = TWO CHARACTER MNEMONIC.
* *DF* = DAYFILE MESSAGE CHARACTER.
* *ST* = SHORT TEXT FOR *QFTLIST*.
* *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE.
*
* NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
* THIS MACRO.
PURGMAC SCLASS
SCLASS MACRO NM,MN,DF,ST,TX
.A IFC NE,$NM$SSSC$
.SCL RMT
INDEX NM,1R_DF TX
.SCL RMT
.SCLVSP RMT
INDEX NM,MN_MK TX
.SCLVSP RMT
.A ENDIF
SCLASS ENDM
SCL$ EQU 0 ONLY PROCESS CLASSES WITH JCB-S
*CALL COMSSCD
TITLE MAIN PROGRAM.
1TA SPACE 4,10
** 1TA - MAIN PROGRAM.
*
* LOADS AND EXECUTES THE VARIOUS FUNCTION PROCESSOR
* OVERLAYS.
*
* CALLS CHG, EXR, PPR, SPA, STA, UPP.
ORG PPFW
ITA LJM INI INITIALIZE
* ENTRY FROM FUNCTION PROCESSOR.
ITAX AOM ITAC INCREMENT TO NEXT ENTRY
* LJM DPP (IF SINGLE FUNCTION)
LMN VCPC
NJN ITA1 IF NOT THE END OF A POT
STM ITAC
LDC * READ UP NEXT POT
ITAA EQU *-1
STD PP
RJM UPP GET NEXT POT
ZJN ITA2 IF LAST POT PROCESSED
STM ITAA
RJM SPA SET POT ADDRESS
STM ITAB+1
SHN -14
ADC LDCI
STM ITAB
* MULTIPLE FUNCTION RETURN FROM *INI*.
ITA1 LDC * READ UP ENTRY
ITAB EQU *-2
ADC 0
ITAC EQU *-1
CRD IR
LDD TN
NJN ITA4 IF STILL MORE ENTRIES TO PROCESS
ITA2 LDD IA SET COMPLETION
CRD IR
LDN ZERL
CRD IR-3
ITAD LDC *
CWD IR
* ENTRY TO DROP PPU.
DPP MONITOR DPPM DROP PPU
LJM PPR RETURN TO PP RESIDENT
* SINGLE FUNCTION RETURN FROM *INI*.
ITA4 RJM STA SET TERMINAL TABLE ADDRESS
LDD IR+2 GENERATE FUNCTION CODE INDEX
SHN 1
STD T7
SBN TFCNL+1
MJN ITA6 IF LEGAL FUNCTION CODE
ITA5 LDN 0 SET NO ERROR FLAG
RJM CHG CONDITIONALLY HANG PP
UJP DPP DROP PP
** *1TA* FUNCTION LOAD.
*
* ENTRY (T7) = FUNCTION CODE INDEX.
ITA6 LDM TFCN-1,T7 SET PROCESSOR ADDRESS
ZJN ITA5 IF UNDEFINED FUNCTION
STM ITAE
LDM TFCN-2,T7 SET OVERLAY NAME
ZJN ITA7 IF NO OVERLAY REQUIRED
SHN 6
LMM OVL-4
SCN 77
ZJN ITA7 IF OVERLAY ALREADY LOADED
LDM TFCN-2,T7 LOAD OVERLAY
LMC 2L3T
RJM EXR LOAD OVERLAY
ITA7 LJM * PROCESS REQUEST
ITAE EQU *-1
TFCN SPACE 4,10
** TFCN - TABLE OF FUNCTION CODE PROCESSORS.
*
* ENTRY - TWO WORDS.
* WORD 1 = FUNCTION PROCESSOR OVERLAY NAME.
* WORD 2 = FUNCTION PROCESSOR ADDRESS.
TFCN BSS 0
FCN TFL ADJUST TIMESHARING EXECUTIVE FIELD LENGTH
FCN CIQ CREATE INPUT QUEUE ENTRY
FCN IAM ISSUE ACCOUNTING MESSAGES
FCN IRL INCREMENT RESOURCE LIMIT
FCN RJS RETURN JOB STATUS
LOC *O
TFCNL EQU *-TFCN LENGTH OF FUNCTION TABLE
TITLE GENERAL SUBROUTINES.
CCA SPACE 4,10
** CCA - COMPUTE CPA/PCPA ADDRESS.
*
* ENTRY (A) = CP/PCP NUMBER.
* (NC) = NUMBER OF CONTROL POINTS.
*
* EXIT (A) = CPA/PCPA ADDRESS.
CCA1 ADD NC
SHN 7
CCA SUBR ENTRY/EXIT
SBD NC
MJN CCA1 IF CONTROL POINT
ZJN CCA1 IF SYSTEM CONTROL POINT
SHN 7
CCAA ADC ** (PCP AREAS BASE ADDRESS)
UJN CCAX RETURN
CFN SPACE 4,10
** CFN - CHECK FILE NAME.
*
* ENTRY (A) = ADDRESS OF FILE NAME 1.
* (DF - DF+3) = FILE NAME 2.
*
* EXIT (A) = ZERO IF FILE NAMES MATCH.
*
* USES T3.
CFN SUBR ENTRY/EXIT
STD T3 SAVE ADDRESS OF FILE NAME
LDI T3 COMPARE FIRST TWO CHARACTERS
LMD DF
NJN CFNX IF NO MATCH
LDM 1,T3 COMPARE NEXT CHARACTERS
LMD DF+1
NJN CFNX IF NO MATCH
LDM 2,T3 COMPARE NEXT CHARACTERS
LMD DF+2
NJN CFNX IF NO MATCH
LDM 3,T3 COMPARE LAST CHARACTER
LMD DF+3
SCN 77
UJN CFNX RETURN
CHG SPACE 4,10
** CHG - CONDITIONALLY HANG PP.
*
* ENTRY (A) = ERROR FLAG.
*
* EXIT (A) = ZERO.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
CHG SUBR ENTRY/EXIT
STD CM+2 SET ERROR FLAG
LDM CHG GET ADDRESS WHERE ERROR DETECTED
STD CM+1
MONITOR CHGM CONDITIONALLY HANG PP
UJN CHGX RETURN
DPT SPACE 4,10
** DPT - DROP POTS.
*
* ENTRY (PP) = FIRST POT CHAIN TO BE DROPPED.
* (TN) = TERMINAL NUMBER.
*
* EXIT MONITOR FUNCTION TO DROP POT(S) COMPLETE.
*
* USES T1, CM - CM+4.
*
* CALLS ITF.
DPT SUBR ENTRY/EXIT
LDN ZERL CLEAR REQUEST WORD
CRD CM
LDC VDPO DROP POTS
STD CM
LDD PP
STD CM+3
RJM ITF ISSUE *TSEM* FUNCTION
UJN DPTX RETURN
ERX SPACE 4,10,10
** ERX - ERROR EXIT.
*
* EXIT COMPLETION BIT AND ERROR BIT SET IN VROT.
*
* USES CM+4.
*
* USES CN - CN+4.
*
* NOTE *ERX* IS ENTERED BY A RETURN JUMP TO ALLOW
* SAVING THE ADDRESS AT WHICH THE ERROR OCCURRED.
ERX CON 0 ENTRY / RETURN ADDRESS SAVED
RJM STT GET TERMINAL TABLE ADDRESS
ADK VROT
CRD CN
LDD CN+4 INSURE ERROR AND COMPLETION BIT SET
LPC 3776
LMC 4001
STD CN+4
RJM STT SET TERMINAL TABLE ADDRESS
ADK VROT
CWD CN
LJM ITAX DROP PP
ITF SPACE 4,10
** ITF - ISSUE *TSEM* FUNCTION.
*
* ENTRY (CM - CM+4) = *TSEM* REQUEST.
*
* USES T1, CM - CM+4.
*
* MACROS DELAY, MONITOR, PAUSE.
ITF SUBR ENTRY/EXIT
LDD TN
STD CM+4
LDD MA
CWD CM
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
ZJN ITF1 IF TIME TO REISSUE REQUEST
UJN ITF2 CONTINUE TO DELAY
MSR SPACE 4,10
** MSR - MASS STORAGE READ ERROR PROCESSOR.
*
* EXIT TO RRF1 TO SET UP ERROR EXIT CONDITIONS.
MSR SUBR ENTRY/EXIT
UJN RRF1 SET EXIT
RRF SPACE 4,20
** RRF - READ ROLLOUT FILE.
*
* ENTRY (A) = 0, READ SYSTEM SECTOR AND CPA SECTOR.
* (A) = CPSN, READ CPA SECTOR ONLY.
* (CN - CN+1) = ROLLOUT FILE ADDRESS.
*
* EXIT (A) = 0, IF NO ROLLOUT FILE OR IF READ ERROR
* ENCOUNTERED.
* (A) .NE. 0, IF ROLLOUT FILE READ WITHOUT ERROR.
* SYSTEM SECTOR READ INTO *BFMS*, IF REQUESTED.
* FIRST SECTOR OF CPA READ INTO *CBUF*.
*
* USES T5, T6, T7.
*
* CALLS RNS, RSS.
*
* MACROS ENDMS, SETMS.
RRF SUBR ENTRY/EXIT
STD T7 SET FIRST SECTOR TO READ
LDD CN+1 SET TRACK
STD T6
ZJN RRFX IF EMPTY ROLLOUT FILE
LDD CN
STD T5 SET EQUIPMENT
SETMS IO
LDD T7
NJN RRF2 IF NOT STARTING WITH SYSTEM SECTOR
* READ SYSTEM SECTOR.
RJM RSS READ SYSTEM SECTOR
NJN RRF1 IF ERROR IN SYSTEM SECTOR
LDM FNSS+4
SHN -6
LMN ROFT
ZJN RRF2 IF ROLLOUT FILE TYPE
ENDMS
RRF1 LDN 0
UJN RRFX RETURN, ROLLOUT FILE BAD
* READ CONTROL POINT AREA SECTOR.
RRF2 LDC CBUF READ FIRST SECTOR OF CPA
RJM RNS READ NEXT SECTOR
ENDMS
LDN 1 INDICATE GOOD ROLLOUT FILE
LJM RRFX RETURN
STT SPACE 4,10,10
** STT - SET TERMINAL TABLE ADDRESS.
*
* ENTRY (TT - TT+1) = TERMINAL TABLE ADDRESS.
*
* EXIT (A) = TERMINAL TABLE ADDRESS
STT SUBR ENTRY/EXIT
LDD TT
SHN 14
LMD TT+1
UJN STTX
SPACE 4,10
* COMMON DECKS.
*CALL COMPC2D
IFP$ SET 1 ASSEMBLE REMOTE INITIALIZATION
QFT$ SET 1 ASSEMBLE QFT ADDRESSING
EJT$ SET 1 ASSEMBLE EJT ADDRESSING
*CALL COMPGFP
MSR$ EQU 0 DEFINE PROGRAM PROCESSED DISK ERRORS
*CALL COMPRNS
*CALL COMPRSS
*CALL COMPSPA
*CALL COMPSTA
*CALL COMPUPP
USE OVERLAY
OVL EQU *+10
SPACE 4,10
IFP HERE
INI TITLE INITIALIZATION.
** INI - INITIALIZE *1TA*.
INI BSS 0
RJM IFP INITIALIZE *COMPGFP*
LDK NCPL GET NUMBER OF CONTROL POINTS
CRD CM
AOD CM+1 SET NUMBER OF CONTROL POINTS
STD NC
LDK PCPP SET FWA OF PCPA-S
CRD CM
LDD CM+3
SHN 14
LMD CM+4
SBK 200B
STM CCAA+1
SHN -14
LMC ADCI
STM CCAA
LDD IR+2 SET COMPLETION ADDRESS
SHN 6
ADD RA
SHN 6
ADD IR+3
STM ITAD+1
SHN -14
RAM ITAD
ERRNG *-OVL-4 *OVL* OVERLAYS PRESET CODE
LDN 0 CLEAR OVERLAY LOAD INDICATOR
STM OVL-4
LDD IR+2 SET POT POINTER FOR REQUEST QUEUE
SHN 6
MJN INI1 IF ONLY 1 FUNCTION
* PROCESS MULTIPLE FUNCTION CALL.
LDD IR+4
STD PP
STM ITAA
RJM SPA SET POT ADDRESS OF FIRST POT
STM ITAB+1
SHN -14
RAM ITAB
LJM ITA1 PROCESS MULTIPLE FUNCTION CALL
* PROCESS SINGLE FUNCTION CALL.
INI1 LDC -4000 CLEAR FUNCTION FLAG
RAD IR+2
LDC LJMI SET TO DROP PP
STM ITAX
LDC DPP
STM ITAX+1
LJM ITA4 PROCESS SINGLE FUNCTION CALL.
SPACE 4,10
** TEST FOR OVERFLOW.
OVERFLOW PPFW,EPFW OVERFLOW INTO DISK ERROR PROCESSOR
USE OVERFLOW
ERRNG CBUF-* OVERFLOW INTO *CBUF*
TFL OVERLAY (ADJUST TIMESHARING EXECUTIVE FIELD LENGTH.)
TFL SPACE 4,10,10
**** TFL - ADJUST TIMESHARING EXECUTIVE FIELD LENGTH.
*
*T, IR 24/ ,12/ 1,6/ ,18/ FL
*
* FL FIELD LENGTH REQUESTED.
TFL SPACE 4,10,10
** TFL - ADJUST TIMESHARING EXECUTIVE FIELD LENGTH.
*
* USES WC, CM - CM+4, IR - IR+4, T2 - T7.
*
* CALLS RSI.
ENTRY TFL
LDD IR+3
SHN 14
ADD IR+4
ADN 77
SHN -6
RJM RSI REQUEST STORAGE INCREASE/DECREASE
NJN TFL2 IF STORAGE INCREASE NOT AVAILABLE
LDN ZERL
CRD CM
LDD RA RESET TOTAL POTS AVAILABLE AND CLEAR FLAG
SHN 6
ADN VCPL
CRD T2
ADN VPAL-VCPL
CWD T2
SBN VPAL-VCPL
CWD CM INDICATE FL CHANGE COMPLETE
LDD CP READ FIELD LENGTH CONTROL WORD
ADN FLCW
CRD CM
LDD FL SET CURRENT FL AS RFL
STD CM+1
LDD CP
ADN FLCW
CWD CM
UJN TFL3 EXIT
TFL2 LDD IA SET PP RECALL
CRD IR
LDN ZERL
CRD CM
LDD MA
CWD IR
ADN 1
CWD CM
LDC 4000 SET TO NOT DROP PP
STD CM+1
MONITOR RECM
TFL3 LJM ITAX EXIT
SPACE 4,10
* COMMON DECKS.
*CALL COMPRSI
SPACE 4,10
** TEST FOR OVERFLOW.
OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR
CIQ OVERLAY (CREATE INPUT QUEUE ENTRY.)
CIQ SPACE 4,20
** CIQ - CREATE INPUT QUEUE ENTRY.
*
*T, IR 24/ ,12/ FC,12/ TN,12/ PP
*
* FC = FUNCTION CODE.
* TN = TERMINAL NUMBER.
* PP = POT POINTER LOGIN PARAMETERS.
*
* *1TA* WILL CREATE AN INPUT FILE AND A *QFT*
* ENTRY FOR A LOGIN. THE INPUT FILE WILL CONTAIN
* PRELIMINARY CONTROL CARDS FOR LOGIN. PARAMETERS
* ON THE CARDS ARE TAKEN FROM *VALIDUZ* FILE AND ARE
* USED FOR DEFAULT VALUES.
*
* IF NO INPUT QUEUE ENTRY CAN BE CREATED BECAUSE THE
* INFORMATION COULD NOT BE WRITTEN TO DISK (DUE TO A
* MASS STORAGE ERROR), AN ERROR CODE IS RETURNED TO *IAF*.
ENTRY CIQ ENTRY
LDC CSS0.1 INITIALIZE INSTRUCTION MODIFICATIONS
STM CSSG
LDC LDNI+2
STM CIQB
RJM PLI PRE LOG IN USER
LDN 0 CLEAR QFT ORDINAL
STD QF
LDC 101 CLEAR SECTOR
STD T1
LDC BFMS
RJM CBU CLEAR BUFFER
RJM CEF CHECK EJT FULL
CIQ0 RJM CSS CREATE SYSTEM SECTOR
RJM CIS CREATE INPUT SECTOR
* QUEUE FILE - WRITE QFT ENTRY.
LDN QFTE*5-1 SAVE QFT ENTRY
STD T4
CIQ1 LDM IOSS,T4
STM CIQA,T4
SOD T4
PJN CIQ1 IF MORE TO MOVE
RJM WDI WRITE DISK INFORMATION
PJN CIQ2 IF NO MASS STORAGE ERROR ENCOUNTERED
* MASS STORAGE ERROR ENCOUNTERED - RELEASE TRACKS AND RETRY.
LDN ZERL DROP TRACKS
CRD CM
LDD T5 EST ORDINAL TO DROP
STD CM+1
LDD T6 TRACK TO DROP
STD CM+2
MONITOR DTKM
SOM CIQB
CIQB LDN 2
* LDN 1 (AFTER FIRST TRY FAILED)
* LDN 0 (AFTER SECOND TRY FAILED)
NJP CIQ0 IF RETRY ATTEMPT NEEDED
* RETURN QFT ENTRY TO POOL. RETURN MASS STORAGE ERROR CODE
* CODE TO *IAFEX*.
LDD QF QFT ORDINAL
STD CM+1
LDN PQFT ENTRY IS IN QFT
STD CM+2
MONITOR MTRM
LDN 20 MASS STORAGE ERROR ENCOUNTERED
STD CN+4
RJM SPA
ADN VUTA
CWD CN
RJM ERX ERROR EXIT (EXIT TO *ITAX*)
CIQ2 LDN QFTE
STD T4
SFA QFT,QF
CWM CIQA,T4 WRITE QFT ENTRY
* ISSUE *ABLQ* ACCOUNTING MESSAGE.
LDC 2RAB
STM CBUF-2
LDC 2RLQ
STM CBUF-1
EXECUTE 0QM,CBUF ISSUE ACCOUNT MESSAGE
* REQUEST SCHEDULER.
LDN ZERL CLEAR PARAMETERS
CRD CM
AOD CM+2 SET QFT SCHEDULING OPTION
MONITOR RSJM
LJM ITAX TERMINATE
CIQA BSS QFTE*5 QFT ENTRY BUFFER
CBU SPACE 4,10
** CBU - CLEAR BUFFER.
*
* ENTRY (A) = FWA OF AREA TO CLEAR.
* (T1) = NUMBER OF CM WORDS TO CLEAR.
*
* EXIT BUFFER CLEARED.
*
* USES T1, T2.
CBU SUBR ENTRY/EXIT
STM CBUA SAVE ADDRESS TO START CLEARING
LDN 7
STD T2
LDD OA CLEAR OUTPUT REGISTER AND MESSAGE BUFFER
CWM CBUB,T2
CBU1 LCN 7
RAD T1
PJN CBU2 IF SEVEN OR MORE WORDS LEFT TO CLEAR
RAD T2 ADJUST WORD COUNT
CBU2 LDD OA
CRM *,T2
CBUA EQU *-1
LDN 7*5 ADVANCE BUFFER ADDRESS
RAM CBUA
LDD T1
ZJN CBUX IF COMPLETE
SHN 21-13
PJN CBU1 IF NOT COMPLETE
UJN CBUX RETURN
CBUB BSSZ 7*5
CEF SPACE 4,10
** CEF - CHECK EJT FULL.
*
* EXIT TO *SEC* IF NUMBER OF AVAILABLE ENTRIES IN THE EJT
* ARE .LT. *EJTT*.
*
* USES CM - CM+4.
CEF SUBR ENTRY/EXIT
LDK EJTP
CRD CM
LDD CM+3
SBN EJTT EJT THRESHOLD VALUE
PJN CEFX IF ENOUGH ENTRIES IN TABLE
LDN 40 *SYSTEM FULL*
RJM SEC SET ERROR CODE (NO RETURN)
CIS SPACE 4,10
** CIS - CREATE INPUT SECTOR.
*
* ENTRY SYSTEM SECTOR IN BFMS.
*
* EXIT INPUT CARDS CREATED IN FBUF.
* (WC) = CM WORD COUNT IN SECTOR
*
* USES T1, T3, WC.
*
* CALLS ACS, ANS, CBF, DV5, SEL.
CIS SUBR ENTRY/EXIT
LDC 101 CLEAR SECTOR
STD T1
LDC FBUF
RJM CBU CLEAR BUFFER
LDC FBUF+2 SET BUFFER ADDRESS
STD T1
LDC JNSS SET UJN HASH
RJM ACS
LDC CISG SET PERIOD
RJM ACS
RJM SEL SET EOL
LDC CISH SET USER CARD
RJM ACS
LDC CISB SET USERNAME
RJM ACS
LDC CISF SET COMMA
RJM ACS
LDC CISF SET COMMA
RJM ACS
LDC CISD SET FAMILY NAME
RJM ACS
LDC CISG SET PERIOD
RJM ACS
RJM SEL SET EOL
STM CISA STORE PLACE TO CONTINUE ASSEMBLY
LDN CISEL
RJM DV5 WORD COUNT TO TRANSFER
STD T2
LDD MA
CWM CISE,T2
SBD T2
CRM *,T2
CISA EQU *-1
LDD T1
ADN CISEL
ADC -FBUF+2
RJM DV5 DIVIDE BY 5
STD WC
LJM CISX RETURN
CISB BSS 5 USERNAME
CISC BSS 5 PASSWORD
CISD BSS 5 FAMILY NAME
CISE VFD 60/10L$RECOVER,O
VFD 60/4LP=T.
CISEL EQU *-CISE
CISF CON 1L, COMMA
CISG CON 1L. PERIOD
CISH VFD 36/5LUSER,
CSS SPACE 4,30
** CSS - CREATE SYSTEM SECTOR.
*
* CREATE SYSTEM SECTOR FOR INPUT FILE.
* CREATE AN *QFT* ENTRY FOR THE NEW FILE.
*
* ENTRY (CISB) = CREATION USER NUMBER.
* (CISD) = CREATE FAMILY NAME.
* (ABUF = ABUF+15) = VALIDATION ACCOUNT BLOCK.
* (IR+3) = TERMINAL NUMBER.
* (CSSC) = LOWER ACCESS LEVEL LIMIT FOR JOB.
* (CSSD) = UPPER ACCESS LEVEL LIMIT FOR JOB.
* (CSSE) = SERVICE CLASS.
* (QF) = 0, IF INITIAL *CSS* CALL (NO QFT ENTRY
* ASSIGNED).
* = QFT ORDINAL OF ASSIGNED ENTRY, IF INITIAL
* CALL TO *CSS* RESERVED AN ENTRY BUT THE
* SYSTEM SECTOR COULD NOT BE WRITTEN DUE TO
* AN I/O ERROR.
*
* EXIT (T5) = EQUIPMENT.
* (T6) = TRACK.
* (T7) = SECTOR.
* (QF) = QFT ORDINAL OF ASSIGNED ENTRY.
* *QFT* ENTRY IN IOSS.
* SYSTEM SECTOR CREATED IN BFMS.
* CORRECT EOI SET IN TRT.
*
* USES CM - CM+4, FN - FN+4, QF, T1, T2, T5, T6.
*
* CALLS CTE, GNB, RFI, RJC, SEC, STT, TLI.
*
* MACROS MONITOR.
CSS SUBR ENTRY/EXIT
LDN ZERL CLEAR PARAMETERS
CRD CM
LDN INPS SELECT INPUT DEVICE
STD CM+2
LDM CSSC SELECT ON LOWER ACCESS LEVEL OF JOB
ADN 40
SHN 6
STD CM+3
LDN 3 SET NUMBER OF SECTORS
STD CM+4
MONITOR RTCM ASSIGN MASS STORAGE SPACE
LDD CM+1 SET EQUIPMENT
STD T5
LDD CM+4 SET TRACK
STD T6
NJN CSS0 IF TRACK ASSIGNED
LDD QF QFT ORDINAL
ZJN CSS1 IF NO QFT ENTRY RESERVED
STD CM+1
LDN PQFT ENTRY IS IN QFT
STD CM+2
MONITOR MTRM RETURN QFT ENTRY TO POOL
* LDN 0
UJN CSS1 SET ERROR STATUS
CSS0 LJM CSS0.1 REQUEST QFT ENTRY
* LJM CSS2.1 (QFT ENTRY PREVIOUSLY REQUESTED/ASSIGNED)
CSSG EQU *-1
* REQUEST *QFT* ENTRY.
CSS0.1 LDN ZERL CLEAR FIRST WORD VALUE
CRD CM+3
LDN 7
STD CM+7 SET INTERLOCK BIT
LDN PQFT GET QFT ENTRY WITH JSN
RJM CTE CREATE TABLE ENTRY
NJN CSS2 IF QFT NOT FULL
LDN ZERL CLEAR PARAMETERS
CRD CM
LDD T5 SET EQUIPMENT AND TRACK TO DROP
STD CM+1
LDD T6
STD CM+2
MONITOR DTKM DROP TRACKS
LDN 40 FLAG *SYSTEM FULL* ERROR
CSS1 RJM SEC SET ERROR CODE (NO RETURN)
* FORMAT SYSTEM SECTOR AND *QFT* ENTRY.
CSS2 CRM IOSS,ON READ INTO SYSTEM SECTOR QFT
SBN 1
CRM OJSS,ON
LDC CSS2.1 BYPASS FORMATTING ON SUBSEQUENT CALLS
STM CSSG
LDD CM+1 SAVE QFT ORDINAL
STD QF
STM GQSS
LDD CP SET CREATING JOB JSN
ADK TFSW
CRD CM
SFA EJT,CM
ADK JSNE
CRM CJSS,ON
LDN 0
STM CJSS+2
STM PRSS
RJM STT GET TERMINAL TABLE ADDRESS
ADK VFST
CRD CM
LDM IOSS ADD JSN TO *VFST*
STD CM
LDM IOSS+1
STD CM+1
RJM STT
ADK VFST
CWD CM
CSS2.1 LDK RTCL SET ENTRY TIME
CRD CM
LDD CM
STM IOSS+ENTQ*5+3
LDD CM+1
STM IOSS+ENTQ*5+4
LDD T6 SET TRACK
STM IOSS+ENTQ*5+1
LDD T5 SET EQUIPMENT
STM IOSS+ENTQ*5
LDC NOQF*100 SET QUEUE FILE TYPE
STM IOSS+JSNQ*5+4
LDC **
CSSE EQU *-1 (SERVICE CLASS TO ASSIGN)
SHN 6
ADN IAOT SET ORIGIN TYPE
STM IOSS+SCLQ*5
LDN PDTL SET PACKED DATE AND TIME
CRD CM
LDD CM+2
STM CDSS+2
LDD CM+3
STM CDSS+3
LDD CM+4
STM CDSS+4
LDN IPRL SET DEFAULT KEYPUNCH MODE
CRD CM
LDD CM+2
SHN -13
STM JFSS
LDN 3 SET FLAGS - FILE IN ACTIVE QUEUE
STM FGSS
LDC 2RIN SET DISPOSITION CODE
STM DCSS
LDC MMFL SET MACHINE ID
CRD CM
LDD CM
STM RMSS
STM CMSS
LDN 3 SET FILE LENGTH IN SECTORS
STM FLSS+1
LDC FLSS GET ADDRESS OF SYSTEM SECTOR FILE LENGTH
RJM RFI SET FILE SIZE INDEX IN QFT ENTRY
LDD MA SET CREATION USER NUMBER
CWM ABUF+ACCN*5,ON
CWM CISD,ON SET CREATION FAMILY
SBN 2
CRM ACSS,ON
CRM FMSS,ON
SBN 2
CRM OASS,ON
CRM FOSS,ON
LDN 0 CLEAR CONTROL POINT AND SLID
STM CPSS
STM SLSS+1
LDM SLSS
SCN 77
STM SLSS
LDD PA GET TERMINAL NAME FROM POT
SHN 14
ADD PA+1
ADN VTRY
CRM TNSS,ON
LDD IR+3 SET TERMINAL NUMBER
STM TRSS
LDM ABUF+ATIS*5+1 SET INITIAL INTERACTIVE SUBSYSTEM
SHN -6
LPN 37
LMM ISSS
LPN 77
LMM ISSS
STM ISSS
LDM ABUF+APXI*5+3 SET INTERACTIVE PW EXPIRATION DATE
LPN 77
STM PESS
LDM ABUF+APXI*5+4
STM PESS+1
* MOVE FIRST HALF OF VALIDATION ACCOUNT BLOCK TO SYSTEM SECTOR.
LDN 0
STD T1
CSS3 LDM ABUF,T1
STM VASS,T1
AOD T1
LMC ABSS*5
NJN CSS3 IF NOT LAST BYTE
* SET USER INDEX/FAMILY ORDINAL/ACCESS LEVEL LIMITS INTO QFT.
LDM ABUF+AUIN*5+3 GET USER INDEX
LPN 77
STM IOSS+JSNQ*5+2
STD T1 FOR BANNER NAME
LDM ABUF+AUIN*5+4
STM IOSS+JSNQ*5+3
STD T2 FOR BANNER NAME
LDC * SAVE FO
CSSA EQU *-1 FAMILY ORDINAL - SET BY *PLI*
SHN 6 POSITION FO
RAM IOSS+JSNQ*5+2
LDM IOSS+INSQ*5+3 SET ACCESS LEVEL LIMITS
SHN -11
SHN 3
LMC *
CSSF EQU *-1 (LOWER ACCESS LEVEL LIMIT)
SHN 3
LMC *
CSSC EQU *-1 (INITIAL JOB ACCESS LEVEL)
SHN 3
LMC *
CSSD EQU *-1 (UPPER ACCESS LEVEL LIMIT)
STM IOSS+INSQ*5+3
* GENERATE UJN FOR JOB.
RJM GBN GENERATE BANNER NAME
LDN ZERL
CRD CM
LDD T1
STD CM
LDD T2
STD CM+1
LDD MA
CWD CM
CRM JNSS,ON
* SET TIME LIMIT AND CM AND EM SERVICE LIMITS.
LCN 0 PRESET LIMITS
STM JCSS
STM JESS
LDM CSSE GET JCB ADDRESS
RJM RJC
ZJN CSS4 IF JCB NOT DEFINED
ADN MCMT GET CM LIMIT
CRD CM
ADN MECT-MCMT GET EM LIMIT
CRD FN
LDD CM+2 SET LIMITS IN SYSTEM SECTOR
STM JCSS
LDD FN+2
STM JESS
CSS4 LDM VASS+AHTL*5+2 GET TIME LIMIT
RJM TLI COMPUTE TL/10B
SHN 3
STM JTSS+1
SHN -14
STM JTSS
* SET LOCAL FNT WORD.
LDD MA
CWM CSSB,ON
SBN 1
CRM FNSS,ON
LJM CSSX RETURN
CSSB VFD 42/0LINPUT,6/0,6/INFT,6/0
PLI SPACE 4,25
** PLI - PRE LOG IN USER.
*
* VALIDATES USER NUMBER AND PASSWORD.
*
* ENTRY (IR+4) = POT POINTER TO POT WITH
* LOGIN INFORMATION.
*
* EXIT IF VALID, USER INDEX AND ACCOUNT INFORMATION
* RETURNED TO TERMINAL TABLE AND USER VALIDATION FIELDS
* PRESET IN CONTROL POINT AREA.
* (CSSC) = LOWER ACCESS LEVEL LIMIT FOR JOB.
* (CSSD) = UPPER ACCESS LEVEL LIMIT FOR JOB.
* (CSSE) = SERVICE CLASS TO BE ASSIGNED.
* IF NOT VALID OR IF *0AV* ENCOUNTERED AN INACCESSIBLE
* DEVICE OR A MASS STORAGE ERROR, AN ERROR CODE IS
* RETURNED.
*
* USES OT, PP, T1, T2, T3, T5, T7, CM - CM+4, CN - CN+4,
* DF - DF+4, FN - FN+4.
*
* CALLS ERX, GFM, GFO, ITF, SPA, VPW, VSP, *0AV*.
*
* MACROS EXECUTE, MONITOR.
PLI SUBR ENTRY/EXIT
LDD IR+4 POT POINTER WITH LOGIN INFORMATION
STD PP
RJM SPA SET POT ADDRESS
ADN VFNA SET FAMILY NAME FOR 0AV
CRD CN
CRM CISD,ON
ADK VUNA-VFNA-1 GET USER NAME
CRD DF
CRM CISB,ON
LDD CN
NJN PLI2 IF FAMILY NAME SUPPLIED
LDD CN+4
NJN PLI1 IF FAMILY ORDINAL SUPPLIED
LDN 1 SET DEFAULT FAMILY ORDINAL
PLI1 RJM GFM GET FAMILY NAME
LDD FN+3
SCN 77
STD FN+3
LDN 0
STD FN+4
LDD MA
CWD FN
CRD CN
CRM CISD,ON
PLI2 LDD DF+3 CLEAR UI FIELD
SCN 77
STD DF+3
STM CISB+3
LDN 0
STD DF+4
STD CN+4
STM CISB+4
EXECUTE 0AV,CBUF
PJN PLI3 IF NO MASS STORAGE ERROR ENCOUNTERED
LDN 20 FLAG MASS STORAGE ERROR
LJM PLI19 SET ERROR CODE
PLI3 LDD T4 SAVE (T4)
STD T5
* CHECK FOR ACCOUNT FOUND.
LDN 0 SET INDEX
STD T7
LDD T1 CHECK USER INDEX
ADD T2
NJN PLI4 IF ACCOUNT FOUND
LJM PLI16 SET ERROR
* MOVE USER ACCOUNT BLOCK.
PLI4 LDI T3
STM ABUF,T7
AOD T3
AOD T7
LMC ARBS*5
NJN PLI4 IF NOT LAST BYTE
STD T2 INITIALIZE TABLE INDEX
* SET SERVICE CLASS.
LDM ABUF+ASC1*5+1 GET USER DEFAULT FOR INTERACTIVE ORIGIN
LPN 77
STD T1
PLI5 LDM TVSC,T2 SEARCH FOR VALID SERVICE CLASS
LMD T1
ZJN PLI6 IF MATCH FOUND
AOD T2 INCREMENT TABLE INDEX
LDN MXSC
SBD T2
MJN PLI8 IF END OF TABLE
UJN PLI5 CHECK NEXT ENTRY
PLI6 STD T3 CHECK IF SERVICE CLASS IS VALID FOR USER
LDN IAOT SET ORIGIN TYPE
STD OT
LDD T2 SET SERVICE CLASS
STM CSSE
PLI7 LDD MA GET VALIDATION MASK
CWM ABUF+ASCV*5,ON
SBN 1
CRD CN
LDM CSSE
RJM VSP VALIDATE SERVICE CLASS
ZJN PLI12 IF NO ERROR
LMN 3
PLI8 NJN PLI10 IF NOT SERVICE CLASS FULL
LDN NSVR NUMBER OF SERVICE CLASS VALIDATION RETRIES
PLIA EQU *-1
ZJN PLI11 IF NO MORE RETRIES POSSIBLE
SOM PLIA DECREMENT RETRY COUNT
LDC 3600 DELAY PRIOR TO RETRY
STD T1
PLI9 DELAY
SOD T1
NJN PLI9 IF NOT DONE DELAYING
UJN PLI7 RETRY SERVICE CLASS VALIDATION
PLI10 LDN 2&4 SET INVALID SERVICE CLASS ERROR
PLI11 LMN 4
STD CN+4
LJM PLI19 PROCESS ERROR
* GET FAMILY ORDINAL.
PLI12 LDD MA SET FAMILY NAME
CWM CISD,ON
SBN 1
CRD FN
LDN 1 DO NOT ADD FAMILY NAME TO FOT
RJM GFO GET FAMILY ORDINAL
ZJN PLI13 IF NO ERROR OCCURRED
LJM PLI16 SET ERROR
PLI13 RJM STT
ADK VUIT
CRD CM
LDD FN+4 INSERT FAMILY ORDINAL IN TERMINAL TABLE
STM CSSA
ADK VUFO
LDD CM+3
SCN 77
LMD FN+4
STD CM+3
RJM STT
ADK VUIT
CWD CM
* CHECK FOR VALID USER.
LDD RA CHECK TERMINAL TYPE
SHN 6
ADN VNTP
CRD DF
LDD DF+2
ZJN PLI14 IF NO NETWORK TERMINALS
SBD TN
SBN 1
MJN PLI17 IF NETWORK TERMINAL
PLI14 LDD T5 CHECK UI FLAG FROM *0AV*
NJN PLI16 IF UI EXCEEDS AUIMX
RJM VPW VALIDATE PASSWORD
NJN PLI16 IF INVALID PASSWORD
LDD T6
NJN PLI18 IF SECURITY COUNT NOT EXHAUSTED
LDN 1 FLAG *SECURITY COUNT EXHAUSTED* ERROR
PLI15 LJM PLI19 SET ERROR CODE
PLI16 LDN 0 FLAG *INVALID USER* ERROR
UJN PLI15 SET ERROR CODE
PLI17 LDD PA READ PASSWORD
SHN 14
LMD PA+1
ADN VPWA
CRD CM
LDD CM
ZJN PLI18 IF PASSWORD IS ZERO, BYPASS VALIDATION
RJM VPW VALIDATE PASSWORD
MJN PLI16 IF PASSWORD IS NOT VALID, ERROR EXIT
LDD PA CLEAR PASSWORD FIELD IN PARAMETER POT
SHN 14
LMD PA+1
ADN VPWA
CRD CM
LDN 0
STD CM
LDD PA
SHN 14
LMD PA+1
ADN VPWA
CWD CM
* DETERMINE VALID ACCESS LEVELS AND CATEGORIES FOR JOB.
PLI18 LDD PA GET LINE ACCESS LEVEL LIMIT
SHN 14
LMD PA+1
ADN VLAL
CRD CM
LDD CM+4 SET UPPER ACCESS LEVEL LIMIT TO LINE LIMIT
LPN 7
STD CM+3
LDN 0 SET LOWER ACCESS LEVEL LIMIT
STD CM+4
LDN IAOT
STD CM+2
LDN VJCS VALIDATE JOB CREATION PARAMETERS
STD CM+1
LDD MA
CWM ABUF+ASVW*5,ON SET SECURITY VALIDATION WORD
MONITOR VSAM
LDD MA
CRM ABUF+ASVW*5,ON READ UPDATED SECURITY VALIDATIONS
LDD CM+4 SAVE RESTRICTED ACCESS LEVEL LIMITS
STM CSSF
LDD CM+3
STM CSSD
LDD CM+2 SAVE INITIAL JOB ACCESS LEVEL
STM CSSC
LDD CM+1
ZJN PLI20 IF NO REJECT
LDN 10 FLAG *SECURITY VIOLATION* ERROR
PLI19 RJM SEC SET ERROR CODE (NO RETURN)
* USER SUCCESSFULLY VALIDATED.
* PUT VALIDATION IN POT AND TERMINAL TABLE.
PLI20 LDD PA
SHN 14
ADD PA+1
ADN VUTA
CWM ABUF+AAWC*5,ON
ADK VUTD-VUTA-1
CWM ABUF+ATPA*5,ON
LDM ABUF+ATPA*5+1
SHN 21-13
PJN PLI21 IF NORMAL MODE
LDN ZERL CLEAR REQUEST WORD
CRD CM
LDC VSCS SET CHARACTER SET MODE
STD CM
LDN 11
STD CM+2
RJM ITF ISSUE *TSEM* FUNCTION
PLI21 LJM PLIX RETURN
TSVC SPACE 4,10
** TSVC - TABLE OF VALID USER DEFAULT SERVICE CLASSES.
*
*T 12/ SUFFIX
* SUFFIX = ONE CHARACTER SUFFIX, RIGHT JUSTIFIED, FOR SERVICE
* CLASS.
TVSC INDEX
LIST D
.SCL HERE
LIST *
INDEX MXSC
SEC SPACE 4,10
** SEC - SET ERROR CODE.
*
* ENTRY (A) = ERROR CODE.
*
* EXIT TO *ERX*.
* ERROR CODE SET IN BYTE 4, WORD *VUTA* OF LOGIN POT.
*
* USES CN - CN+4.
*
* CALLS SPA, ERX.
SEC SUBR ENTRY
STD CN+4
RJM SPA
ADN VUTA
CWD CN
RJM ERX ERROR EXIT (NO RETURN)
SEL SPACE 4,10
** SEL - SET END OF LINE.
*
* ENTRY (T1) = LAST BYTE ASSEMBLED IN FBUF.
*
* EXIT (T1) = NEXT BYTE TO ASSEMBLE INTO IN FBUF.
*
* USES T1, T2.
*
* CALLS DV5.
SEL SUBR
LDI T1
ZJN SEL1 IF ZERO BYTE
AOD T1
SEL1 LDD T1
ADC -FBUF-2+5 ROUND UP
RJM DV5
STD T2
SHN 2 * 4
ADD T2 * 5
ADC FBUF+2-1
STD T1 POSSIBLE EOL
LDI T1
ZJN SEL2 IF EOL IN PLACE
LDN 5
RAD T1
SEL2 AOD T1 SET NEXT BYTE TO ASSEMBLE INTO
UJN SELX EXIT
VPW SPACE 4,10
** VPW - VALIDATE PASSWORD.
*
* ENTRY (PA - PA+1) = ADDRESS OF LOGIN POT.
* (ABUF) = VALIDATION FILE ENTRY.
*
* EXIT (A) = 0 IF PASSWORD VALID.
*
* USES CM - CM+4, DF - DF+4.
*
* CALLS CFN.
*
* MACROS MONITOR.
VPW SUBR ENTRY/EXIT
LDM ABUF+APWI*5+3 CHECK PASSWORD EXPIRATION DATE
LPN 77
STD CM+3
SHN 14
LMM ABUF+APWI*5+4
ZJN VPW1 IF NONEXPIRING PASSWORD
STD CM+4
LDN VEDS VALIDATE EXPIRATION DATE
STD CM+1
MONITOR VSAM
LDD CM+1
NJN VPWX IF PASSWORD EXPIRED
VPW1 LDD PA READ PASSWORD
SHN 14
LMD PA+1
ADN VPWA
CRD CM
LDD MA ENCRYPT PASSWORD
CWD CM
LDN REPS
STD CM+1
MONITOR RDCM
LDD MA
CRD DF
LDC ABUF+APWI*5
RJM CFN COMPARE PASSWORDS
UJP VPWX RETURN
WDI SPACE 4,20
** WDI - WRITE DISK INFORMATION.
*
* ENTRY (T5) = EQUIPMENT.
* (T6) = TRACK.
* (T7) = SECTOR.
* (BFMS) = SYSTEM SECTOR.
* (FBUF) = INPUT SECTOR.
* (WC) = WORD COUNT IN SECTOR.
*
* EXIT (A) = 0, IF NO ERRORS. THE SYSTEM SECTOR, THE INPUT
* SECTOR, AND THE EOI SECTOR ARE WRITTEN.
* .LT. 0, IF WRITE ERRORS ENCOUNTERED.
*
* USES FA, T1, T4, T7, KWC.
*
* CALLS CBU, WDS, WEI, WSS.
*
* MACROS SETMS, SFA.
WDI SUBR ENTRY/EXIT
* WRITE SECTORS.
SETMS IO,,BFMS
RJM WSS WRITE SYSTEM SECTOR
MJN WDIX IF MASS STORAGE ERROR
LDD T7 SET SECTOR LINKAGE
ADN 1
STM FBUF
LDD WC SET WORD COUNT
STM FBUF+1
LDC FBUF+WCSF
RJM WDS WRITE SECTOR
MJN WDIX IF MASS STORAGE ERROR
LDM FBUF SET NEXT SECTOR
STD T7
LDD T6 SET FIRST TRACK IN EOI SECTOR
STM FBUF+FTEI
LDD MA TRANSFER FNT/FST/DATE TO *FBUF*
CWM BFMS+2,TR
SBN 3
CRM FBUF+2,TR
LDN 75 CLEAR REMAINDER OF EOI
STD T1
LDC FBUF+2+3*5
RJM CBU CLEAR BUFFER
LDC FBUF
RJM WEI WRITE EOI SECTOR
MJN WDI1 IF MASS STORAGE ERROR
ENDMS
* LDN 0 INDICATE NO ERROR
WDI1 LJM WDIX RETURN
SPACE 4,10
* COMMON DECKS.
*CALL COMPACS
*CALL COMPANS
*CALL COMPCTE
TLI$ SET 1
*CALL COMPCVI
*CALL COMPDV5
*CALL COMPGBN
*CALL COMPRFI
*CALL COMPRJC
IF DEF,FA,1
ERR CHECK *COMPWSS* AND *COMPWEI*
*CALL COMPSFI
*CALL COMPSSE
GFM$ SET 1
GFO$ SET 1
*CALL COMPUFT
CJL$ EQU 1 CHECK IF SERVICE CLASS AT JOB LIMIT
CUV$ EQU 1 CHECK IF USER VALIDATED FOR SERVICE CLASS
*CALL COMPVSP
WEI$ EQU 1 USE ALTERNATE EOI BUFFER
*CALL COMPWEI
WCS$ SET 1 USE WRITE CONTINOUS SECTORS IN *COMPWSS*
*CALL COMPWSS
USE OVERLAY
ABUF EQU * USER ACCOUNT BLOCK
SPACE 4,10
** TEST FOR OVERFLOW.
OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR
USE OVERFLOW
ERRNG CBUF-* OVERFLOW INTO *CBUF*
IAM OVERLAY (ISSUE ACCOUNTING MESSAGES.)
IAM SPACE 4,25
*** IAM - ISSUE ACCOUNTING MESSAGES.
*
*T, IR 24/ ,12/ FC,12/ APTN,12/ 400B
*
* FC = FUNCTION CODE.
* APTN = ACCOUNTING PSEUDO TERMINAL NUMBER.
*
* REQUEST QUEUE FORMAT.
*T, IR 36/ ,12/ TN,10/ ,1/O,1/R
*
* TN = TERMINAL NUMBER.
* O = COMBINED INPUT/OUTPUT OVERFLOW FLAG.
* R = RESOURCE TYPE.
* = 0 IF OUTPUT.
* = 1 IF INPUT.
*
* EXIT ACCOUNTING MESSAGES ISSUED.
* TERMINAL TABLE SET TO COMPLETION STATUS.
*
* USES FP, PP, TN, WC, IR - IR+4, CM - CM+4, CN - CN+4,
* DF - DF+4.
*
* CALLS DFM, DPT, SJN, SPA, STA, TWD, UPP.
ENTRY IAM
RJM STT SET TERMINAL TABLE ADDRESS
ADK VROT
CRD CN
LDD CN+3 SET FIRST POT
STD FP
STD PP
LDN 0
STD WC
* PROCESS REQUEST POT.
IAM1 RJM SPA READ REQUEST WORD
ADD WC
CRD IR
LDD TN CHECK TERMINAL NUMBER
NJN IAM2 IF NOT TERMINATOR
LJM IAM4 COMPLETE PROCESSING
IAM2 RJM STA SET TERMINAL TABLE ADDRESS
ADK VUIT
CRD DF
ADK VFST-VUIT
CRD CM
LDD CM TRANSFER JSN
STM MSFA
LDD CM+1
STM MSFA+1
SFA EJT,DF+4
ADN SCLE
CRD CM
LDD CM
SHN -6
STM MSFA+4 SET SERVICE CLASS
LDD IR+4 SET RESOURCE TYPE
LPN 1
STD T1
LDM TRST,T1
STM MSFB+1
LDD MA SET OVERFLOW QUANTITY
CWM IAMA,ON
SBN 1
CRM MSFC,ON
LDC MSFA+AJNN ISSUE DAYFILE MESSAGE
RJM DFM
LDD IR+4
SHN 21-1
PJN IAM2.1 IF NO COMBINED OVERFLOW
LDC 2RCT SET COMBINED OVERFLOW
STM MSFB+1
LDD MA SET COMBINED OVERFLOW QUANTITY
CWM IAMB,ON
SBN 1
CRM MSFC,ON
LDC MSFA+AJNN ISSUE DAYFILE MESSAGE
RJM DFM
IAM2.1 AOD WC INCREMENT POT ADDRESS
LMN VCPC
NJN IAM3 IF NOT AT END OF POT
STD WC RESET TO FWA OF POT
RJM UPP UPDATE POT POINTER
ZJN IAM4 IF POT NOT LINKED
IAM3 LJM IAM1 CONTINUE PROCESSING
IAM4 STD CN+3 CLEAR POT POINTER
LDD FP DROP POTS
STD PP
RJM DPT
LDN ACPT RESET TERMINAL NUMBER
STD TN
AOD CN+4 SET COMPLETE
RJM STA
ADK VROT
CWD CN
LJM ITAX EXIT
IAMA DATA 10H 4.096 INPUT OR OUTPUT OVERFLOW QUANTITY
IAMB DATA 10H 16777.216 COMBINED INPUT/OUTPUT OVERFLOW QUANTITY
TRST SPACE 4,10
** TRST - TABLE OF RESOURCE TYPES.
TRST BSS 0
DATA 2HCO CHARACTERS OUT
DATA 2HCI CHARACTERS IN
MSF SPACE 4,10
** MSF - MESSAGE FORMAT FOR ACCOUNTING MESSAGES.
MSFA DATA 10HJSNA SC JOB NAME
MSFB DATA 6HUCXX, RESOURCE TYPE
MSFC DATA 10H Q.QQQ QUANTITY
DATA 6HKCHS. UNITS
CON 0 TERMINATOR
SPACE 4,10
** TEST FOR OVERFLOW.
OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR
IRL OVERLAY (INCREMENT RESOURCE LIMIT.)
IRL SPACE 4,20
*** IRL - INCREMENT RESOURCE LIMIT.
*
*T,IR 24/ ,12/ FC,12/ TN,12/ PP.
*
* FC = FUNCTION CODE.
* TN = TERMINAL NUMBER.
* PP = REQUEST POT POINTER.
*
* REQUEST POT FORMAT -
*T, 36/ 0, 6/ FC, 18/ SR.
* FC = *1RI* FUNCTION CODE.
* SR = RESOURCE INCREMENT.
*
* INCREMENT SRU LIMIT.
*
* THE REQUESTED SRU INCREMENT IS PLACED IN THE ROLLOUT
* FILE SYSTEM SECTOR FOR PROCESSING BY *1RI*, IF NO ERROR
* ENCOUNTERED FROM READING/UPDATING THE ROLLOUT FILE.
* IF A MASS STORAGE ERROR WAS ENCOUNTERED, AN ERROR CODE
* IS RETURNED TO *IAF*.
ENTRY IRL ENTRY
RJM STT SET TERMINAL TABLE ADDRESS
ADK VUIT
CRD CN
SFA EJT,CN+4 SET EJT ENTRY ADDRESS
ADN SCHE
CRD CN
LDN SYSN SET TO READ SYSTEM SECTOR AND CPA
RJM RRF READ ROLLOUT FILE
NJN IRL1 IF NO ERROR ON READ
LJM IRL6 RETURN ERROR CODE AND EXIT
IRL1 LDD IR+4 SET REQUEST POT POINTER
STD PP
RJM SPA READ REQUEST POT
CRD CM
LDD CM+4 SET REQUEST IN SYSTEM SECTOR
STM SRSS+4
LDD CM+3
STM SRSS+3
SHN -6
LMN RLIT
NJN IRL3 IF NOT TIME LIMIT REQUEST
LDM CBUF+2+SRUW*5 CHECK FOR VALIDATION LIMIT
LPC 5777 CLEAR TIME LIMIT EXCEEDED FLAG
STM CBUF+2+SRUW*5
SHN 6
PJN IRL3 IF NOT VALIDATION LIMIT
IRL2 RJM ERX ERROR EXIT
IRL3 LDM CBUF+2+SRUW*5 CHECK FOR SRU VALIDATION LIMIT
LPC 7377 CLEAR SRU LIMIT FLAG
STM CBUF+2+SRUW*5
SHN 10
MJN IRL2 IF VALIDATION LIMIT SET
SETMS IO,(RW),BFMS
LDN 0 SET SECTOR
STD T7
LDC BFMS+WCSF REWRITE SYSTEM SECTOR
STM WDSE
RJM WDS
MJN IRL6 IF MASS STORAGE ERROR ENCOUNTERED
LDM CBUF REWRITE CONTROL POINT AREA
SBN 1
STD T7
LDC CBUF+WLSF WRITE CONTROL POINT AREA SECTOR
RJM WDS
IRL5 MJN IRL6 IF MASS STORAGE ERROR ENCOUNTERED
ENDMS
RJM STT SET TERMINAL TABLE COMPLETE
ADK VROT
CRD CN
AOD CN+4
RJM STT
ADK VROT
CWD CN
LJM ITAX EXIT
IRL6 LDN 20 INDICATE MASS STORAGE ERROR ENCOUNTERED
STD CN+4
RJM SPA
ADN VUTA
CWD CN
RJM ERX EXIT (TO *ITAX*)
SPACE 4,10,10
** COMMON DECKS.
TLI$ SET 1 SELECT TIME LIMIT CONVERSION
*CALL COMPCVI
SPACE 4,10
** TEST FOR OVERFLOW.
OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR
ERRMI CBUF-* OVERFLOW INTO BUFFER AREA
SPACE 4,10,10
RJS OVERLAY (RETURN JOB STATUS.)
RJS SPACE 4,25
*** RJS - RETURN JOB STATUS.
*
*T,IR 24/ ,12/ FC,12/ TN,12/ PP.
*
* FC = FUNCTION CODE.
* TN = TERMINAL NUMBER.
* PP = POT POINTER.
*
* RETURN JOB STATUS.
*
* CALLED TO RETURN THE CURRENT JOB STATUS FOR
* THE *ENQUIRE* COMMAND.
*
* IF POSSIBLE THE CONTENTS OF THE CONTROL
* POINT MESSAGE BUFFER (MS1W) IS RETURNED. IF MS2W
* IS AVAILABLE, IT IS RETURNED INSTEAD OF MS1W.
*
* IF THE MESSAGE CANNOT BE READ BECAUSE THE
* FNT INTERLOCK IS SET AN ERROR STATUS IS
* RETURNED.
*
* *VROT* COMPLETION BIT NOT USED.
*
* ENTRY (CN - CN+4) = TERMINAL TABLE WORD VROT.
ENTRY RJS
LDN 0 CLEAR MESSAGE FLAG
STD MF
LDD IR+4
STD PP
LDN MS2W-MS1W+IN0W-MS2W SET *MS1W* + *MS2W* LENGTH
STD PW
RJM STT SET TERMINAL TABLE ADDRESS
ADK VUIT
CRD CN
SFA EJT,CN+4
STM RJSD+1
STD CM+4
SHN -14
STD CM+3
ADK LDCI
STM RJSD
LDN 0 SET INTERLOCK ON EJT
STD CM+1
STD CM+2
MONITOR UTEM
LDD CM+1
ZJN RJS1 IF INTERLOCKED
LDN 0
STD CM+1
LJM RJS10 RETURN ERROR STATUS
RJS1 LDM RJSD
LPN 77
SHN 14
ADM RJSD+1
ADK JSNE
CRD CM READ EJT ENTRY
ADN SCHE-JSNE
CRD CN
LDD CM+4
LPN 76
LMN EXJS*2
NJN RJS1.2 IF NOT AT A CONTROL POINT
LDD CN+3 CP NUMBER
SHN 7 SET CP ADDRESS
RJS1.1 ADN MS1W READ *MS1W* AND *MS2W*
CRM CBUF+2+MS1W*5,PW
ADN SRUW-IN0W READ *SRUW*
CRM CBUF+2+SRUW*5,ON
LJM RJS3 SET MESSAGE IN POT
RJS1.2 LMN PCJS*2&EXJS*2
NJN RJS2 IF NOT AT A PSEUDO CONTROL POINT
LDD CN+1 SET PCP ADDRESS
RJM CCA
UJN RJS1.1 READ PCPA FIELDS
RJS2 LMN SWJS*2&PCJS*2
NJN RJS2.1 IF NOT SERVICE WAIT STATUS
STM RJSG
RJS2.1 LDC CPSN READ CP AREA
RJM RRF READ ROLLOUT FILE
NJN RJS3 IF NO ERROR
LDC CBUF+2+MS2W*5 RETURN ERROR MESSAGE IN *MS2W*
STM RJSC
LDN IN0W-MS2W+1 SET *MS2W* MESSAGE LENGTH
STD PW
LDD MA
CWM RJSF,PW
SBD PW
CRM CBUF+2+MS2W*5,PW *WAITING - DEVICE INACCESSIBLE.*
LDN ZERL CLEAR *SRUW* WORD
CRM CBUF+2+SRUW*5,ON
LDN VCPC-1 *SRUW* OFFSET
SBD PW
STD T7
LJM RJS9 PUT MESSAGE IN *MS2W* AND RETURN
RJS3 LDC *
RJSG EQU *-1
NJN RJS3.1 IF NOT SERVICE WAIT STATUS
LDN IN0W-MS2W+1 SET *MS2W* MESSAGE LENGTH
STD PW
LDD MA
CWM RJSH,PW
SBD PW
CRM CBUF+2+MS2W*5,PW *WAITING - SERVICE LIMIT.*
UJN RJS3.2 CONTINUE
RJS3.1 LDM CBUF+2+MS2W*5
ZJN RJS4 IF NO *MS2W* MESSAGE
RJS3.2 LDC CBUF+2+MS2W*5 USE *MS2W* MESSAGE
STM RJSC
SBN 1
STM RJSA
LDC CBUF+2+IN0W*5-1
STM RJSB
ADN 1
STM RJSE
LDN IN0W-MS2W+1
UJN RJS5 SET *MS2W* MESSAGE LENGTH
RJS4 LDK MS2W-MS1W+1 SET *MS1W* MESSAGE LENGTH
RJS5 STD PW
LDN VCPC-1
SBD PW
STD T7
LDK ZERL ASSURE EOL IN AREA TO WRITE TO POT
CRM CBUF+2+MS2W*5,ON
RJSE EQU *-1
* CRM CBUF+2+IN0W*5,ON
LDC CBUF+2+MS1W*5-1 SET MESSAGE POINTER
RJSA EQU *-1
* LDC CBUF+2+MS2W*5-1
STD CM
RJS6 AOD CM
RJS7 LDC CBUF+2+MS2W*5-1
RJSB EQU *-1
* LDC CBUF+2+IN0W*5-1
SBD CM
ZJN RJS8 IF END OF MESSAGE
LDI CM
NJN RJS6 IF NOT TERMINATOR
AOD CM
LDN 0
STI CM CLEAR MESSAGE BUFFER
UJN RJS7 LOOP
RJS8 STM CBUF+2+SRUW*5 CLEAR NON-ACCUMULATOR BITS
LDM CBUF+2+SRUW*5+1
LPN 77
STM CBUF+2+SRUW*5+1
RJS9 RJM SPA SET POT ADDRESS
CWM CBUF+2+MS1W*5,PW WRITE MESSAGE TO POT
RJSC EQU *-1
* CWM CBUF+2+MS2W*5,PW
ADD T7 WRITE SRU-S TO POT
CWM CBUF+2+SRUW*5,ON
AOD MF SET MESSAGE FLAG
LDN ZERL
CRD CM
LDC * CLEAR EJT INTERLOCK
RJSD EQU *-2 (EJT ENTRY ADDRESS)
STD CM+4
SHN -14
STD CM+3
LDN 60
STD CM+1
MONITOR UTEM
LDD CM+1
ZJN RJS10 IF INTERLOCK CLEARED
LDN 0 SET NO ERROR FLAG
RJM CHG CONDITIONALLY HANG PP
RJS10 LDC VSJS
STD CM
LDD MF SET MESSAGE FLAG
STD CM+2
LDD PP SET POT POINTER
STD CM+3
LDD TN SET TERMINAL NUMBER
STD CM+4
LDD MA
CWD CM
RJS11 LDK ZERL
CRD CM
MONITOR TSEM
LDD CM+1
ZJN RJS13 IF *IAF* INACCESSIBLE OR ERROR
LMC 7777
NJN RJS13 IF REQUEST COMPLETE
PAUSE ST
LDC 3600 *TSEM* QUEUE FULL - DELAY AND RETRY
STD T1
RJS12 DELAY
SOD T1
ZJN RJS11 IF TIME TO REISSUE REQUEST
UJN RJS12 CONTINUE TO DELAY
RJS13 LJM ITAX EXIT
RJSF DATA C*WAITING - INACCESSIBLE DEVICE.*
CON 0,0,0,0 TERMINATING EOL BYTE
RJSH DATA C*WAITING - SERVICE LIMIT. *
CON 0,0,0,0 TERMINATING EOL BYTE
SPACE 4
** TEST FOR OVERFLOW.
OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR
END 1TA TIMESHARING AUXILIARY PROCESSOR.