IDENT 1MU,IMU
PERIPH
BASE MIXED
SST
*COMMENT 1MU - MAGNET AUXILIARY PROCESSOR.
COMMENT COPYRIGHT CONTROL SYSTEMS INC. 1993.
TITLE 1MU - MAGNET AUXILIARY PROCESSOR.
SPACE 4
*** 1MU - MAGNET AUXILIARY PROCESSOR.
* G. S. YODER. 93/09/23.
SPACE 4
*** *1MU* PERFORMS FUNCTIONS FOR MAGNET THAT DO NOT REQUIRE
* HARDWARE ACCESS TO TAPE UNITS.
SPACE 4
*** CALL.
*
*
*T RA+1 18/ *1MU*,1/0,5/ CP,36/ 0
SPACE 4
** ASSEMBLY CONSTANTS.
QUAL$ EQU 1 DEFINE UNQUALIFIED COMMON DECKS
SPACE 4
** COMMON DECKS.
*CALL COMPMAC
QUAL ATF
*CALL COMSATF
QUAL *
*CALL COMSCPS
QUAL DFS
QUAL$S EQU 1 DO NOT QUALIFY *COMSDFS*
*CALL COMSDFS
QUAL *
*CALL COMSEJT
*CALL COMSEVT
*CALL COMSMSP
LIST X
QUAL MTX
*CALL COMSMTX
QUAL *
LIST *
*CALL COMSPFM
*CALL COMSPIM
QUAL RSX
*CALL COMSRSX
QUAL *
*CALL COMSSSD
*CALL COMSSRU
*CALL COMSZOL
SPACE 4
** DIRECT LOCATION ASSIGNMENTS.
T8 EQU 16 TEMPORARY
T9 EQU 17 TEMPORARY
CN EQU 20 - 24 CENTRAL MEMORY BUFFER
ED EQU 25 EQUIPMENT DESCRIPTION
HP EQU 26 HARDWARE PARAMETERS
EO EQU 27 EST ORDINAL
ES EQU 30 EXTENDED STATUS
DS EQU 31 DEVICE STATUS
EI EQU 32 ERROR ITERATIONS
WP EQU 33 BID WINDOW POINTER (MTS/ATS)
BL EQU 34 - 35 BLOCK COUNT
UP EQU 36 USER OPTIONS, FLAGS
LG EQU 37 - 40 LENGTH OF LAST GOOD RECORD
EP EQU 41 - 42 ERROR PARAMETERS
EC EQU 43 ERROR CODE
LT EQU 44 LABEL TYPE, DEVICE TYPE, REQUESTED DENSITY
SP EQU 45 SOFTWARE OPTIONS
FM EQU 46 TAPE FORMAT AND NOISE BYTE DEFINITION
WC EQU 47 CM WORDS PER PRU
OV EQU 50 CHUNK COUNT - LONG BLOCKS
FO EQU 51 FAST ATTACH FILE FNT ORDINAL
AM EQU 52 FAST ATTACH FILE ACCESS MODE
RI EQU 53 - 54 RANDOM INDEX
FA EQU 57 LOCAL FNT ADDRESS
RS EQU 60 RETURN STATUS
FN EQU 61 FUNCTION NUMBER
MD EQU 62 DRIVER MODE FUNCTION
PA EQU 63 PARAMETER
PB EQU 64 PARAMETER
TITLE MACROS.
** OVERLAY CONTROL DEFINITIONS.
NOREF .I
NOREF .N
.I SET /MTX/MDFN*2
.N SET 0
OVLB MICRO 1,, 3M BASE OVERLAY NAME
ENTRY SPACE 4,10
** ENTRY - DEFINE OVERLAY ENTRY POINT.
*
*
* ENTRY NAME
PURGMAC ENTRY
ENTRY MACRO NAME
QUAL
NAME EQU *+1R".M"*10000
QUAL ".O"
ENDM
FCN SPACE 4,10
** FCN - DEFINE FUNCTION PROCESSOR.
*
*
* FCN NAME,FUN
*
* ENTRY *NAME* = NAME OF FUNCTION PROCESSOR.
* *FUN* = *COMSMTX* FUNCTION CODE.
FCN MACRO A,B
LOC .I/2
ERRNZ .I/2-B ERROR IN FUNCTION PROCESSOR DEFINITION
CON A/10000,A-A/10000*10000
.I SET .I+2
ENDM
OVERLAY SPACE 4
** OVERLAY - GENERATE OVERLAY CONSTANTS.
*
*
* OVERLAY (TEXT)
PURGMAC OVERLAY
OVERLAY MACRO TEXT
QUAL
.N SET .N+1
.M MICRO .N,1, 56789
.O MICRO 1,3, "OVLB"".M"
QUAL ".O"
TTL 1MU/".O" - TEXT
TITLE
IDENT ".O",OVL TEXT
*COMMENT 1MU - TEXT
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1993.
ORG OVL
LJM *
UJN *-2
ENDM
TITLE MAIN ROUTINES.
** 1MU - MAIN PROGRAM.
ORG PPFW
IMU RJM PRS PRESET
RJM UUF UPDATE UNIT FLAGS
RJM CSJ CHECK STAGING JOBS
RJM UDT PROCESS UDT REQUESTS
LDN ZERL
CRD CM
LDD RA CLEAR *1MU* ACTIVE
SHN 6
ADK /MTX/APS
CWD CM
MONITOR DPPM DROP PP
LJM PPR RETURN TO PP RESIDENT
UDT SPACE 4,10
** UDT - PROCESS UDT REQUESTS.
*
* ENTRY (UDTA) = ADDRESS OF FIRST UDT ENTRY.
*
* EXIT (UDTA) = ADDRESS OF FIRST UDT ENTRY.
*
* CALLS AUA, UAD.
UDT SUBR ENTRY/EXIT
UJN UDT6 CHECK FIRST UNIT
* NORMAL COMPLETION EXIT.
UDT1 LDN /MTX/NCP SET NORMAL COMPLETION
UJN UDT4 SET COMPLETION STATUS
* REQUEUE ON JOB ROLLED OUT EXIT.
UDT2 LDN /MTX/RJB SET REQUEUE ON JOB ROLLED OUT
UJN UDT4 SET COMPLETION STATUS
* ERROR RETURN EXIT.
UDT3 LDN /MTX/ERR SET ERROR STATUS
* SET REQUEST STATUS EXIT.
UDT4 STD RS SET REQUEST STATUS
* UPDATE UDT.
LDN 0 DO NOT COMPLETE FET
RJM RCP RETURN TO MAGNET CP
RJM UAD
ADK /MTX/UST2 UPDATE UDT PARAMETERS
CWM EI,TR
CWM DNCV,ON
ADK /MTX/UXRQ-/MTX/UST5-1 SET RESPONSE STATUS
CWD RS
* CHECK NEXT UNIT.
UDT5 RJM AUA ADVANCE UDT ADDRESS
ZJN UDTX IF END OF UNITS
UDT6 RJM UAD
ADK /MTX/UXRQ GET REQUEST
CRD RS
LDD RS
NJN UDT5 IF REQUEST IN PROGRESS OR COMPLETE
LDD FN
LPN 77
SBN /MTX/MDFN
MJN UDT5 IF NO REQUEST OR *1MT* REQUEST
SHN 1 SET *TFCN* INDEX
STD CN
SBN /MTX/MFUN*2-/MTX/MDFN*2
PJN UDT5 IF NOT *1MU* REQUEST
* PROCESS REQUEST.
LDN /MTX/RIP SET REQUEST IN PROGRESS FOR RECOVERY
STD RS
RJM UAD
ADK /MTX/UXRQ UPDATE REQUEST STATUS
CWD RS
ADK /MTX/UST1-/MTX/UXRQ SET UDT CELLS
CRM ED,TR
CRD LT
ADK /MTX/UST5-/MTX/UST4
CRM DNCV,ON
LDM TFCN,CN SET OVERLAY NAME
ADC 2L"OVLB"
RJM EXR LOAD OVERLAY
LDM TFCN+1,CN SET ENTRY ADDRESS
STD T1
LJM 0,T1 PROCESS REQUEST
TFCN BSS 0
FCN CUF,/MTX/CUF COMPLETE USER FET
FCN MAB,/MTX/MAB ISSUE MESSAGE AND ABORT REQUEST
FCN CJE,/MTX/CJE CHECK JOB ERROR FLAG
FCN PAF,/MTX/AFN AUXILIARY PROCESSOR FUNCTION
LOC *O
NCPX EQU UDT1 NORMAL COMPLETION EXIT
RJBX EQU UDT2 REQUEUE ON JOB ROLLED OUT EXIT
ERRX EQU UDT3 ERROR RETURN EXIT
SRSX EQU UDT4 SET REQUEST STATUS EXIT
TITLE SUBROUTINES.
AUA SPACE 4,10
** AUA - ADVANCE UDT ADDRESS.
*
* ENTRY (UDTA) = CURRENT UDT ADDRESS.
*
* EXIT (A) .NE. 0 IF NOT LAST UDT ON ENTRY.
* (A) = 0 IF LAST UDT ON ENTRY.
* (UDTA) = NEXT UDT ADDRESS IF NOT LAST UDT ON ENTRY.
* (UDTA) = FIRST UDT ADDRESS IF LAST UDT ON ENTRY.
AUA SUBR ENTRY/EXIT
LDK /MTX/UNITL
RAM UDTA
LMC 0
AUAA EQU *-1 (UDT LWA+1)
NJN AUAX IF NOT END OF UDT
LDC 0 SET TO FIRST ENTRY
AUAB EQU *-1 (UDT FWA)
STM UDTA
LDN 0 SET END OF UDT
UJN AUAX RETURN
CCP SPACE 4,10
** CCP - CHANGE TO USER CONTROL POINT.
*
* EXIT (A) = 0 IF CHANGE MADE.
* (A) .NE. 0 IF CHANGE NOT MADE.
*
* USES CM - CM+4, CN - CN+4, T1 - T1+4.
*
* CALLS UAD.
*
* MACROS MONITOR.
CCP SUBR ENTRY/EXIT
RJM UAD
ADK /MTX/UVRI GET EJT ORDINAL
CRD CN
SFA EJT,CN
ADK JSNE
CRD CM GET JOB STATUS
ADK SCHE-JSNE
CRD T1 GET CP NUMBER
LDD CM+4
LPC 176
LMN EXJS*2
NJN CCPX IF JOB ROLLED OUT OR INTERLOCKED
LDD T1+3 SET CP NUMBER
ADK RCMS+ALCS SET MOVE REJECT AND ALTERNATE CP
STD CM+1
MONITOR CCAM SET ACCESS TO USER CP
LDD CM+1
NJN CCPX IF CHANGE NOT MADE
AOM RCPB SET USER CP FLAG
LDD CP
ADK TFSW VERIFY JOB EJT ORDINAL
CRD CM
LDD CM
LMD CN
ZJN CCP1 IF CORRECT JOB
LDN 0
RJM RCP RETURN TO MAGNET CP
LDN 1 SET CHANGE NOT MADE
CCP1 LJM CCPX RETURN
HNG SPACE 4,10
** HNG - HANG PP ON SYSTEM ERROR.
*
* MACROS MONITOR.
HNG SUBR ENTRY
HNG1 MONITOR HNGM HANG PP
UJN HNG1 HANG PP
RCP SPACE 4,15
** RCP - UPDATE ACCOUNTING AND RETURN TO MAGNET CONTROL POINT.
*
* ENTRY (A) = FET COMPLETION STATUS IF .NE. 0.
* (A) = 0 IF NOT TO COMPLETE FET.
* (RCPA) = SRU INCREMENT.
* (RCPC) = BLOCKS SKIPPED COUNT.
*
* EXIT (RCPA) = 0.
* (RCPC) = 0.
*
* USES CM+1 - CM+4.
*
* MACROS MONITOR.
RCP SUBR ENTRY/EXIT
STD CM+4 SET FET COMPLETION STATUS
SHN -14
LMC 0 SET SRU INCREMENT
RCPA EQU *-1 (SRU INCREMENT)
STD CM+3
RCPB LDN 0
* LDN 1 (ASSIGNED TO USER CP)
ZJN RCPX IF NOT AT USER CP
LDM UDTA SET UDT ADDRESS
STD CM+1
LDC 0 SET BLOCKS SKIPPED
RCPC EQU *-1 (BLOCKS SKIPPED)
STD CM+2
MONITOR TIOM CHANGE TO MAGNET CP
* LDN 0
STM RCPA CLEAR SRU INCREMENT
STM RCPC CLEAR BLOCKS SKIPPED
SOM RCPB CLEAR USER CP FLAG
UJN RCPX RETURN
UAD SPACE 4,10
** UAD - SET UDT ADDRESS.
*
* ENTRY (UDTA) = UDT RELATIVE ADDRESS.
*
* EXIT (A) = UDT ABSOLUTE ADDRESS.
UAD SUBR ENTRY/EXIT
LDD RA
SHN 6
ADC 0 SET UDT ADDRESS
UDTA EQU *-1 (UDT ADDRESS)
UJN UADX RETURN
SPACE 4,10
** COMMON DECKS.
EJT$ EQU 1 ASEMBLE EJT PROCESSOR
FNT$ EQU 1 ASSEMBLE SYSTEM FNT PROCESSOR
IFP$ EQU 1 ASSEMBLE REMOTE INITIALIZATION CODE
*CALL COMPGFP
SPACE 4,10
** UDT DATA.
* *UST5*.
DNCV BSS 1 DENSITY AND CONVERSION MODE
ERSC BSS 1 ERROR SUB-CODE
BSS 3 RESERVED
USE OVERLAY
OVL EQU *+10 OVERLAY ORIGIN ADDRESS
TITLE ROUTINES OVERLAID BY FUNCTION PROCESSORS.
PRS SPACE 4,10
** PRS - PRESET PROGRAM.
*
* EXIT TO *PPR* IF NOT CALLED BY MAGNET.
* (UDTA) = FIRST UDT ADDRESS.
*
* CALLS IFP.
*
* MACROS MONITOR.
PRS SUBR ENTRY/EXIT
LDD CP
ADK JCIW
CRD CM
LDD CM+2
LMC MTSI
ZJN PRS1 IF CALLED BY MAGNET
LDC PRSA * 1MU INCORRECT CALL.*
RJM DFM
MONITOR ABTM
LJM PPR EXIT TO PPR
PRS1 RJM IFP INITIALIZE FILE PROCESSORS
LDD RA
SHN 6
ADK /MTX/UBUF GET UDT POINTERS
CRD CM
LDD CM+4 SET UDT FWA
STM AUAB
STM UDTA
LDD CM+2 SET UDT LWA+1
STM AUAA
LJM PRSX RETURN
PRSA DATA C* 1MU INCORRECT CALL.*
CCA SPACE 4,15
** CCA - CHECK CHANNEL ACCESS.
*
* ENTRY (A) = CHANNEL BYTE FROM EST ENTRY.
* (T8) = UNIT FLAG MASK.
* (T9) = UNIT FLAG BYTE INDEX.
* (CN - CN+4) = EST ENTRY *EQAE* WORD.
*
* EXIT UNIT FLAG SET IN *TUAC* IF UNIT ACCESSIBLE ON CHANNEL.
* (CM+3) = 0 IF UNIT ACCESSIBLE ON CHANNEL.
* (CN - CN+4) = EST ENTRY *EQAE* WORD.
*
* USES CM+3, T1.
CCA SUBR ENTRY/EXIT
STD T1 SAVE CHANNEL BYTE
SHN -11
LMN 4
NJN CCAX IF NO CHANNEL ACCESS
STD CM+3 INDICATE UNIT ACCESSIBLE
LDD T1 SET CHANNEL NUMBER
LPN 37
STD T1
LDM TUAA,T1 GET *TUAC* ADDRESS
ADD T9 SET BYTE ADDRESS
STD T1
LDD T8 SET UNIT FLAG IN *TUAC*
RAI T1
UJN CCAX RETURN
CES SPACE 4,20
** CES - CHECK EQUIPMENT STATUS.
*
* ENTRY (T8) = UNIT FLAG MASK.
* (T9) = UNIT FLAG BYTE INDEX.
* (UDTA) = UDT ADDRESS.
*
* EXIT UNIT FLAG SET IN *TUAC* ENTRIES FOR CHANNELS WITH
* ACCESS TO UNIT.
* UNIT FLAG SET IN *ACCM* IF UNIT ACCESSIBLE ON CHANNEL.
* UNIT FLAG SET IN *ASGM* IF UNIT AVAILABLE FOR
* ASSIGNMENT.
* UNIT FLAG SET IN *JBRO* IF JOB ROLLED OUT.
*
* USES CM - CM+4, CN - CN+4.
*
* CALLS CCA, UAD.
*
* MACROS MONITOR, SFA.
CES SUBR ENTRY/EXIT
* GET UDT AND EST INFORMATION.
RJM UAD
ADK /MTX/UXRQ GET PP REQUEST
CRD RS
ADK /MTX/UST1-/MTX/UXRQ GET EST ORDINAL
CRD ED
ADK /MTX/UVRI-/MTX/UST1 GET ASSIGNED EJT ORDINAL
CRD CN
SFA EST,EO
ADK EQDE GET CHANNEL STATUS
CRD CM
* CHECK UNIT ACCESSIBILITY.
LDD CM
LPN 3
LMN DWES
ZJN CES3 IF UNIT *DOWN*
LDD CM+1
RJM CCA CHECK PRIMARY CHANNEL ACCESS
LDD HP
SHN 21-7
PJN CES1 IF NOT CTS UNIT
LDD CM+3
ZJN CES2 IF UNIT ACCESSIBLE ON PRIMARY CHANNEL
CES1 LDD CM+2
RJM CCA CHECK SECONDARY CHANNEL ACCESS
LDD CM+3
CES2 ZJN CES5 IF UNIT ACCESSIBLE
CES3 LDD RS
NJN CES4 IF REQUEST IN PROGRESS OR COMPLETE
LDD FN
LPN 77
ZJN CES4 IF NO REQUEST
SBN /MTX/MDFN
PJN CES4 IF NOT *1MT* REQUEST
* REQUEUE *1MT* REQUEST ON INACCESSIBLE UNIT.
LDM UDTA SET UDT ADDRESS
STD CM+1
LDN 0 DO NOT CHECK UNIT BUSY
STD CM+2
MONITOR TDRM SET REQUEST IN PROGRESS
LDD CM+4
ZJN CES6 IF REQUEST NOT INTERLOCKED
RJM UAD
ADK /MTX/UXRQ GET REQUEST
CRD RS
LDK /MTX/RAC SET REQUEUE ON INACCESSIBLE UNIT
STD RS
RJM UAD
ADK /MTX/UXRQ REQUEUE REQUEST
CWD RS
CES4 UJN CES6 UPDATE JOB STATUS
* SET UNIT ACCESSIBLE.
CES5 LDD T8 SET UNIT ACCESSIBLE
RAM ACCM,T9
LDD CM
LPN 3
LMK ONES
NJN CES6 IF UNIT NOT *ON*
LDD T8 SET UNIT ASSIGNABLE
RAM ASGM,T9
* CHECK JOB STATUS.
CES6 SFA EJT,CN GET JOB STATUS FROM EJT
ADK JSNE
CRD CM
LDD CM+4
LPN 77
LMN EXJS*2
ZJN CES7 IF JOB EXECUTING OR UNIT NOT ASSIGNED
LDD T8 SET JOB ROLLED OUT
RAM JROM,T9
CES7 LJM CESX RETURN
CSJ SPACE 4,15
** CSJ - CHECK STAGING JOBS.
*
* USES CM - CM+4, CN - CN+4, T0 - T7.
*
* CALLS STM.
CSJ SUBR ENTRY/EXIT
LDD RA READ STAGE POINTER WORD
SHN 6
ADN /MTX/TAJP
CRD T3
LDD T3 CHECK FOR ENTRIES
STD T5 (T5) = ENTRIES LEFT, (T6-T7) = FWA TABLE
* PROCESS NEXT ACTIVE STAGE JOB TABLE ENTRY.
CSJ1 SOD T5 DECREMENT COUNT
MJN CSJX IF PROCESSED ALL ENTRIES
LDD T6
SHN 6
ADD RA
SHN 6
ADD T7
ADD T5
CRD CN READ ACTIVE STAGE JOB TABLE ENTRY
LDD CN
ZJN CSJ1 IF NO ENTRY PRESENT
* SEARCH INPUT QUEUE FOR JOB.
LDK QFTP SEARCH INPUT QUEUE FOR JOB
CRD T0 READ TABLE POINTER
CSJ2 SOD T2 DECREMENT OFFSET
MJN CSJ4 IF ALL ENTRIES CHECKED
LDN QFTE ADVANCE QFT ADDRESS
RAD T1
SHN -14
RAD T0
SHN 14
LMD T1
ADK JSNQ
CRD CM READ JSN AND QUEUE TYPE
LDD CM+4
SHN -11
LMK INQT
NJN CSJ2 IF NOT INPUT QUEUE FILE
LDD CM
LMD CN
NJN CSJ2 IF NO MATCH
LDD CM+1
LMD CN+1
NJN CSJ2 IF NO MATCH
CSJ3 UJN CSJ1 JOB FOUND IN INPUT QUEUE
* SEARCH EJT FOR JOB.
CSJ4 LDK EJTP SEARCH EJT FOR JOB
CRD T0 READ TABLE POINTER
CSJ5 SOD T2 DECREMENT OFFSET
MJN CSJ6 IF ALL ENTRIES CHECKED
LDN EJTE ADVANCE EJT ADDRESS
RAD T1
SHN -14
RAD T0
SHN 14
LMD T1
ADK JSNE
CRD CM READ JSN
LDD CM
LMD CN
NJN CSJ5 IF NO MATCH
LDD CM+1
LMD CN+1
NJN CSJ5 IF NO MATCH
UJN CSJ3 ENTRY FOUND IN EJT
* JOB MISSING, INFORM MAGNET.
CSJ6 LDD CN SET JSN
STD CM+1
LDD CN+1
STD CM+2
LDN /MTX/TJE SET TERMINATE JOB TABLE ENTRY
STD CM
LDN 0
STD CM+3
LDN 1
STD CM+4
RJM STM SEND *TDAM* TO MAGNET
LJM CSJX RETURN
STM SPACE 4,15
** STM - SEND *TDAM* TO *MAGNET*.
*
* ENTRY (CM - CM+4) = *MAGNET* REQUEST WORD.
*
* EXIT (A) = 0, IF REQUEST COMPLETED.
* (A) .NE. 0, IF *TDAM* WRITE REJECT.
* TO *PNR5* IF ERROR FLAG DETECTED.
*
* USES CM+1 - CM+4.
*
* MACROS DELAY, MONITOR, PAUSE.
STM SUBR ENTRY/EXIT
LDD MA WRITE REQUEST TO MESSAGE BUFFER
CWD CM
STM1 LDN 1 SET WRITE FUNCTION
STD CM+1
LDC MTSI SET *MAGNET* SUBSYSTEM IDENTIFICATION
STD CM+2
LDD HN SET WORD COUNT
STD CM+3
LDK /MTX/RCAL SET ADDRESS OF *RESEX* REQUEST BUFFER
STD CM+4
MONITOR TDAM
LDD CM+1
ZJN STMX IF NO ERROR
SBN 4
ZJN STMX IF *MAGNET* NOT ACTIVE (IGNORE)
ADN -1+4
NJN STMX IF ERROR OTHER THAN STORAGE MOVE (IGNORE)
DELAY
PAUSE
LDD CM+1
ZJN STM1 IF ERROR FLAG NOT SET
LJM STMX RETURN
UUF SPACE 4,15
** UUF - UPDATE UNIT FLAGS.
*
* ENTRY (UDTA) = FIRST UDT ADDRESS.
*
* EXIT UNIT STATUS FLAGS RETURNED TO MAGNET.
* CHECK UNIT ACTIVITY FLAG SET IF CHANGE IN UNIT STATUS.
* REQUEST REQUEUED ON INACCESSIBLE UNITS WITH *1MT*
* REQUESTS.
* (UDTA) = FIRST UDT ADDRESS.
*
* USES T1, T2, T3, T8, T9, CM - CM+4.
*
* CALLS AUA, CES.
UUF SUBR ENTRY/EXIT
* INITIALIZE *TUAA* TABLE AND UNIT MASK.
LDK /MTX/CST INITIALIZE CST ADDRESS
STD T1
LDK TUAC INITIALIZE *TUAC* ADDRESS
STD T2
UUF1 LDD RA SET CST ADDRESS
SHN 6
ADD T1
ADK /MTX/CPST READ CHANNEL NUMBER
CRD CM
LDD CM+4
ZJN UUF2 IF END OF CHANNELS
LDD CM+3 SET CHANNEL NUMBER
LPN 37 SET CHANNEL NUMBER
STD T3
LDD T2 SET *TUAC* ADDRESS
STM TUAA,T3
LDN /MTX/CSTE ADVANCE CST ADDRESS
RAD T1
LDN 5 ADVANCE *TUAC* ADDRESS
RAD T2
UJN UUF1 CHECK NEXT CST ENTRY
UUF2 STD T9 INITIALIZE UNIT FLAG BYTE INDEX
LDC 4000 INITIALIZE UNIT FLAG MASK
STD T8
* CHECK UNIT.
UUF3 RJM CES CHECK EQUIPMENT STATUS
RJM AUA ADVANCE UDT ADDRESS
ZJN UUF5 IF ALL UNITS CHECKED
LDD T8 ADVANCE UNIT MASK
SHN -1
NJN UUF4 IF NOT END OF BYTE
AOD T9 ADVANCE BYTE INDEX
LDC 4000 RESET MASK FOR NEW BYTE
UUF4 STD T8
UJN UUF3 CHECK NEXT UNIT
* RETURN UNIT FLAGS TO MAGNET.
UUF5 LDK /MTX/CST+/MTX/CUAC INITIALIZE *CUAC* ADDRESS
STD T1
UUF6 LDD RA SET *CUAC* ADDRESS
SHN 6
ADD T1
CWM TUAC,ON UPDATE ACCESS FLAGS
UUFA EQU *-1 (*TUAC* ADDRESS)
LDN 5 ADVANCE *TUAC* ADDRESS
RAM UUFA
LDK /MTX/CSTE ADVANCE *CUAC* ADDRESS
RAD T1
LMC /MTX/CST+/MTX/MCHAN*/MTX/CSTE+/MTX/CUAC
NJN UUF6 IF MORE CHANNELS TO PROCESS
LDD RA
SHN 6
ADK /MTX/ACCU
CRD CM GET PREVIOUS ACCESSIBLE UNITS
CWM ACCM,ON UPDATE ACCESSIBLE UNITS
ADK /MTX/ASGU-/MTX/ACCU-1
CRD CN GET PREVIOUS ASSIGNABLE UNITS
CWM ASGM,ON UPDATE ASSIGNABLE UNITS
ADK /MTX/JBRO-/MTX/ASGU-1
CWM JROM,ON UPDATE JOB STATUS FLAGS
LDD CM
LMM ACCM
NJN UUF7 IF CHANGE IN UNIT STATUS
LDD CM+1
LMM ACCM+1
NJN UUF7 IF CHANGE IN UNIT STATUS
LDD CN
LMM ASGM
NJN UUF7 IF CHANGE IN UNIT STATUS
LDD CN+1
LMM ASGM+1
ZJN UUF8 IF NO CHANGE IN UNIT STATUS
UUF7 LDN ZERL
CRD CM
LDC 4000
STD CM
LDD RA
SHN 6
ADK /MTX/CUAF SET CHECK UNIT ACTIVITY FLAG
CWD CM
UUF8 LJM UUFX RETURN
TUAA SPACE 4,10
** TUAA - TABLE OF *TUAC* ADDRESSES INDEXED BY CHANNEL NUMBER.
*
*T, 12/ TADD
*
* TADD = ADDRESS OF *TUAC* ENTRY FOR CHANNEL.
TUAA BSSZ 40
TUAC SPACE 4,10
** TUAC - *CUAC* WORDS OF *CST* IN *CST* ORDER.
*
*T, 16/ UNITA,44/ 0
*
* UNITA = MASK OF UNITS ACCESIBLE ON CHANNEL
TUAC BSSZ /MTX/MCHAN*5
USTB SPACE 4,10
** USTB - UNIT STATUS FLAGS ASSEMBLY BUFFER.
*
* BUFFER FOR MAGNET CELLS *ACCU*, *ASGU*, AND *JBRO*.
USTB BSSZ 3*5
ACCM EQU USTB *ACCU*
ASGM EQU USTB+5 *ASGU*
JROM EQU USTB+2*5 *JBRO*
IFP HERE CODE TO INITIALIZE SYSTEM FNT PROCESSOR
OVERLAY (CIO OPERATIONS.)
TITLE COMPLETE USER FET.
CUF SPACE 4,10
** CUF - COMPLETE USER FET.
* COMPLETES THE FET AND HANDLES SPECIAL REQUIREMENTS
* FOR CLOSE CODES.
*
*T 12/ 0,12/ CUF,18/,18/ RETURN CODE
*
* CALLS CCR, CUL, CUP, PRS.
ENTRY CUF
RJM PRS PRESET
LCN 1 SEARCH FOR SPECIAL PROCESSOR
STD T1
CUF1 LDN 2
RAD T1
LDM CUFB,T1
ZJN CUF2 IF END OF TABLE
LMM ECIO COMPARE WITH I/O REQUEST
LPC 774
NJN CUF1 IF NO MATCH
LDM CUFB+1,T1 EXECUTE SPECIAL PROCESSOR
STM CUFA
RJM *
CUFA EQU *-1
CUF2 LDD PA COMPLETE FET
LPN 77
SHN 14
LMD PB
SCN 3 INSURE COMPLETE BIT SET
ADN 1
RJM CCR COMPLETE CIO REQUEST
LJM NCPX EXIT
CUFB BSS 0 TABLE OF CIO CODES NEEDING SPECIAL CARE
CON 170,CUL CLOSE/UNLOAD
CON 174,CUL CLOSE/UNLOAD
CON 330,CUP CLOSER
CON 350,CUP CLOSER
CON 370,CUP CLOSER/UNLOAD
CON 374,CUL CLOSER/RETURN
CON 0 END OF TABLE
CUL SPACE 4,10
** CUL - CLOSE/UNLOAD PROCESSOR.
*
* EXIT TO *RET1*.
*
* USES FA, CM - CM+4, CN - CN+4.
*
* CALLS CCR, FAD, HNG, *0DF*.
*
* MACROS EXECUTE.
CUL3 RJM HNG HANG
CUL SUBR ENTRY/EXIT
LDM FNTA SET FNT ADDRESS
STD FA
NFA FA,R
ADK FSTL
CRD CN GET TAPE FILE FST
LDD CN
LMD EO
NJN CUL3 IF EST ORDINAL NOT CORRECT
LDM ECIO SET RETURN/UNLOAD FLAG FOR *0DF*
SHN -2
LPN 1
LMN 1
STM B0DF-1
EXECUTE 0DF,B0DF DROP FILE
SHN -14
STD T1 SAVE *0DF* STATUS
LDN 0 SET STATUS WORD
RJM FAD SET FET ADDRESS
ZJN CUL2 IF FET STATUS NOT IN FL
CRD CM READ FET STATUS
LDD PA
LPN 77
SHN 14
LMD PB
SCN 3
ZJN CUL1 IF SET COMPLETE BIT ONLY
LMD CM+4 SET COMPLETION STATUS
SCN 2
LMD CM+4
STD CM+4
SHN -14
LMD CM+3
LPN 77
LMD CM+3
STD CM+3
CUL1 LDD CM+4 SET COMPLETE BIT
SCN 1
LMN 1
STD CM+4
LDN 0 SET STATUS WORD
RJM FAD SET FET ADDRESS
CWD CM UPDATE FET STATUS
LDN 0
CUL2 RJM CCR UPDATE BLOCK COUNT AND RETURN TO MAGNET CP
LDN ZERL
CRD CM
LDK /MTX/RTF SET RETURN FILE REQUEST
STD CM
RJM UAD
ADK /MTX/UFRQ
CWD CM
LJM NCPX EXIT
CUP SPACE 4,10
** CUP - CHECK USER PROCESSING ON CLOSER.
*
* EXIT (PA - PB) = UPDATED IF NEEDED.
*
* USES CM - CM+4.
*
* CALLS FAD.
CUP SUBR ENTRY/EXIT
LDM FETO
SHN 21-11
PJN CUP1 IF UP NOT SELECTED
LDD PA CHECK ERROR CODE
LPN 3
SHN 14
ADD PB
SHN -12
NJN CUPX IF ERROR
LDM ECIO SET TO RETURN END OF REEL
LPC 774
LMC 2001
STD PB
UJN CUPX RETURN
CUP1 LDD LT
SHN 21-12
PJN CUPX IF NOT LABELED
LDM FETO
SHN 21-5
MJN CUPX IF EXTENDED LABELS
LDM FETL
SHN -6 FET LENGTH - 5
SBN 10
MJN CUPX IF FET NOT LONG ENOUGH FOR LABEL PORTION
LDN 14 SET WORD TO READ
RJM FAD SET FET ADDRESS
ZJN CUP3 IF ADDRESS NOT IN FL
CRD CM READ FET + 14
AOD CM+4
LPN 77
LMN 1R9+1
NJN CUP2 IF NO OVERFLOW
LDN 100-1R9-1+1R0
RAD CM+4
SHN -6
LMN 1R9+1
NJN CUP2 IF NO OVERFLOW
LDC -1R9*100-100+1R0*100
RAD CM+4
AOD CM+3
LPN 77
LMN 1R9+1
NJN CUP2 IF NO OVERFLOW
LDN 100-1R9-1+1R0
RAD CM+3
CUP2 LDN 14 SET WORD TO WRITE
RJM FAD SET FET ADDRESS
CWD CM UPDATE REEL NUMBER IN FET
CUP3 LJM CUPX RETURN
TITLE ABORT CIO REQUEST.
MAB SPACE 4,25
** MAB - ISSUE MESSAGE AND ABORT REQUEST.
*
*
*T UXRQ 12/ 1,12/ MAB,12/,12/ PA,12/ PB
*
* PB = *COMSMTX* ERROR CODE IF .NE. 0.
* PB = 0 IF TO USE ERROR CODE IN UDT.
* PA = *COMSMTX* ERROR SUB-CODE IF *PB* IS ERROR CODE.
*
*T, EXIT 12/ 2,12/ MAB,12/,12/ PA,12/ PB
*
* PB = *COMSMTX* ERROR CODE USED IN ABORT PROCESSING.
* PA = ERROR SUB-CODE.
*
* CALLS CCR, C2D, DFM, FAD, HNG, MFM, NWE, OPM, PRS, STM, TME,
* UAD, VAE.
*
* MACROS MONITOR.
ENTRY MAB
RJM PRS PRESET
LDD PB
NJN MAB1 IF ERROR CODE SPECIFIED IN CALL
LDM ERSC SET SUB-CODE
STD PA
LDD EC SET ERROR CODE
ZJN MAB3 IF NO ERROR CODE
STD PB
MAB1 SBN /MTX/MERC
MJN MAB4 IF VALID ERROR CODE
MAB3 RJM HNG HANG
MAB4 LDN 0 SET STATUS WORD
RJM FAD CHECK FET ADDRESS
NJN MAB5 IF FET WITHIN FL
LDN ZERL
MAB5 CRD CN
LDD CN+3 TERMINATE FILE NAME FOR MESSAGE ASSEMBLY
SCN 77
STD CN+3
LDM TUEM,PB SET MESSAGE ADDRESS
NJN MAB6 IF DEFINED
LDD PB
RJM C2D
STM TERR+6
LDC TERR SET HARDWARE ERROR MESSAGE
MAB6 RJM IDF ISSUE MESSAGE
LDM TSPC,PB
ZJN MAB7 IF NO SPECIAL PROCESSOR
STD T1
RJM 0,T1
MAB7 LDD BL
NJN MAB8 IF NOT FIRST BLOCK
LDD BL+1
SBN 2 0 OR 1 CONSIDERED FIRST BLOCK
PJN MAB8 IF NOT FIRST BLOCK
LDM TAME,EC
ZJN MAB8 IF NO SPECIAL MESSAGE
RJM DFM
MAB8 LDD PB
LMN /MTX/ERM
NJN MAB9 IF NOT END OF REEL MESSAGE
LJM NCPX EXIT
MAB9 LDN 0 CLEAR ERROR PARAMETERS
STD EP
STD EI
LDD HP
SHN 21-7
MJN MAB10 IF CTS UNIT
LDN 0
STD EP+1
MAB10 LDD PB
SBN /MTX/MFAT
MJN MAB11 IF FATAL USER ERROR
SBN /MTX/EFT-/MTX/MFAT
ZJN MAB12 IF ERROR FLAG TERMINATION
LDD SP
SHN 21-0
MJN MAB11 IF IGNORE EP SET
LDM FETO
SHN 21-10
MJN MAB12 IF ERROR PROCESSING SET
LDD SP
SHN 21-1
PJN MAB11 IF NOT ACCEPT DATA WITHOUT EP SET
LDN 1 SET TO NOT RETURN ERROR CODE
STM MABA
UJN MAB12 DO NOT SET ERROR FLAG
MAB11 LDN PPET SET ERROR FLAG
STD CM+1
MONITOR CEFM
MAB12 LDM ECIO CHECK EXTERNAL CIO CODE
LPC 774
LMC 200
NJN MAB13 IF NOT CONTROL WORD READ
LDM MABA
LMN 1
ZJN MAB13 IF NOT RETURN ERROR CODE
LDM LVLN PRESERVE LEVEL NUMBER
SHN -6
LPN 74
RAM MABA-1
MAB13 LDM ECIO GET EXTERNAL CIO CODE
LPC 774
LMC 4001
MABA EQU *-1 (FET COMPLETION STATUS)
RJM CCR SET FET COMPLETE AND RETURN TO MAGNET CP
* CHECK FOR ERROR DURING *POSMF* REQUEST OR REEL SWAP.
LDM ECIO
LPC 774
LMC 110
NJN MAB14 IF NOT *POSMF* REQUEST
LDD UP SET END OF SET STATUS
LPC 7677
LMD HN
STD UP
MAB14 RJM UAD
ADK /MTX/UVRI
CRD CN
ADK /MTX/UFSN-/MTX/UVRI
CRD CM
LDD CN+4
LPN 26
LMN 20
ZJN MAB15 IF REEL ASSIGNED AND NOT END OF REEL
LDD UP
SCN 40
LMN 40 SET FILE POSITION INDETERMINATE
STD UP
MAB15 LDD CN+4
LPN 6
ZJN MAB17 IF NOT END OF REEL PROCESSING
SHN 21-1
MJN MAB16 IF NEXT VSN RETURNED
SOD CN+3 DECREMENT REEL NUMBER
UJN MAB17 CLEAR FLAGS
MAB16 AOD CM+4 INCREMENT SECTION NUMBER
SHN -14
RAD CM+3
MAB17 LDD CN+4
SCN 17 CLEAR DISPLAY AND END OF REEL FLAGS
STD CN+4
RJM UAD
ADK /MTX/UVRI
CWD CN
ADK /MTX/UFSN-/MTX/UVRI
CWD CM
LJM NCPX EXIT
IDF SPACE 4,10
** IDF - ISSUE DAYFILE MESSAGE WITH FILE NAME AND FET ADDRESS.
*
* ENTRY (A) = ADDRESS OF MESSAGE.
* (CN - CN+3) = FILE NAME.
*
* EXIT MESSAGE ISSUED TO DAYFILE.
*
* USES T1, T2.
*
* CALLS ACS, ANS, DFM.
IDF SUBR ENTRY/EXIT
STD T2 SAVE MESSAGE ADDRESS
LDC BFMS SET ASSEMBLY ADDRESS
STD T1
LDN 0 INITIALIZE MESSAGE ASSEMBLY
STI T1
LDD T2
RJM ACS ASSEMBLE MESSAGE TEXT
LDN CN
RJM ACS ASSEMBLE FILE NAME
LDC =Z* AT *
RJM ACS ASSEMBLE * AT *
LDM FETA SET FET ADDRESS
SHN 6
ADM FETA+1
RJM ANS ASSEMBLE FET ADDRESS
LDC =Z*.*
RJM ACS ASSEMBLE MESSAGE TERMINATOR
LDC BFMS ISSUE MESSAGE TO DAYFILE
RJM DFM
LJM IDFX RETURN
MFM SPACE 4,10
** MFM - MULTI-FILE MISSING MESSAGE.
*
* ENTRY (LG) = REQUESTED FILE SECTION NUMBER.
* (LG+1) = HIGHEST EXISTING FILE SECTION NUMBER.
*
* EXIT (LG - LG+1) = 0.
*
* USES CM - CM+4.
*
* CALLS C2D, DFM.
MFM1 LDC MFMD SET FILE IDENTIFIER NOT FOUND
STM MFMA
MFM2 LDC MFMC * FOUND SECTION NNNN.*
* LDC MFMD * FILE IDENTIFIER NOT FOUND.*
MFMA EQU *-1
RJM DFM
MFM3 LDN 2 SET END OF SET ERROR STATUS
RAM MABA-1
LDC 1001
STM MABA
MFM SUBR ENTRY/EXIT
LDD PB CHECK ERROR MESSAGE
LMN /MTX/IOS
ZJN MFM3 IF INCORRECT OPERATION AT END OF SET
LDD LG
ADD LG+1
ZJP MFM1 IF FILE IDENTIFIER NOT FOUND
LDD LG CONVERT REQUESTED FILE SECTION NUMBER
SHN -6
RJM C2D
STM MFMB+12
LDD LG
RJM C2D
STM MFMB+13
LDD LG+1 CONVERT FOUND FILE SECTION NUMBER
SHN -6
RJM C2D
STM MFMC+10
LDD LG+1
RJM C2D
STM MFMC+11
LDC MFMB * REQUESTED SECTION NNNN.*
RJM DFM
LDN 0 CLEAR PARAMETERS
STD LG
STD LG+1
LJM MFM2 ISSUE NEXT MESSAGE
MFMB DATA C* REQUESTED SECTION 0000.*
MFMC DATA C* FOUND SECTION 0000.*
MFMD DATA C* FILE IDENTIFIER NOT FOUND.*
NWE SPACE 4,10
** NWE - NO WRITE ENABLE.
*
* CALLS DFM, HNG.
NWE1 RJM HNG HANG
NWE SUBR ENTRY/EXIT
LDD PA
ZJN NWE1 IF NO SUB-CODE
SBN /MTX/MWSC
PJN NWE1 IF NOT VALID SUB-CODE
LDM TNWE,PA
ZJN NWEX IF NO ADDITIONAL MESSAGE
RJM DFM
UJN NWEX
OPM SPACE 4,10
** OPM - OUTPUT MESSAGE ON OPEN PARAMETER ERROR.
*
* ENTRY (EP) = CHARACTER POSITION OF FIELD IN ERROR.
*
* USES CM - CM+4.
*
* CALLS DFM.
*
* MACROS MONITOR.
OPM SUBR ENTRY/EXIT
LDN ZERL CONVERT DATA
CRD CM
LDD EP
STD CM+4
LDD MA
CWD CM
MONITOR RDCM
LDD MA
CRD CM
LDD CM+4
STM OPMA+12
LDC OPMA * FIELD BEGINNING AT NN NO COMPARE.*
RJM DFM
UJN OPMX RETURN
OPMA DATA C* FIELD BEGINNING AT 00 NO COMPARE.*
STM SPACE 4,30
** STM - MTS/ATS STATUS ERROR DEFINTION.
* GIVES ADDITIONAL DESCRIPTION OF STATUS ERROR MESSAGE.
*
* ISSUES ONE OF THE FOLLOWING MESSAGES FOR MTS.
*
* UNIT HAS MOTION PROBLEMS. (SEVERE START ERROR)
* SINGLE FRAME ERROR(S).
* LRC ERROR(S).
* CRC ERROR(S).
* POSTAMBLE ERROR.
* MULTI-TRACK PHASE ERROR.
* INCORRECT CHARACTER.
* PARITY ERROR.
*
* ISSUES ONE OF THE FOLLOWING MESSAGES FOR ATS.
*
* UNIT PROBLEMS. (UNIT CHECK)
* SINGLE FRAME ERROR.
* CRC ERROR.
* INCORRECT CHARACTER.
* PARITY ERROR.
*
* USES T1, T3.
*
* CALLS DFM.
STM SUBR ENTRY/EXIT
LDD HP
SHN 21-7
MJN STMX IF CTS
SHN 7-21
LPN 20
ZJN STM1 IF MTS CONTROLLER
LDN ATSM-MTSM
STM1 ADC MTSM-2 SET ADDRESS OF MESSAGE TABLE
STD T3
STM2 LDN 2 INCREMENT TO NEXT ENTRY
RAD T3
LDI T3
ZJN STM3 IF END OF TABLE
SHN 14 POSITION INDEX INTO DETAILED STATUS
STD T1
SHN 6 SET CORRECT SHIFT
LPN 77
LMC SHNI
STM STMA
LDM DSTS,T1 CHECK BIT
STMA SHN 0
PJN STM2 IF BIT NOT SET IN STATUS BYTE
STM3 AOD T3 GET MESSAGE ADDRESS
LDI T3
RJM DFM ISSUE MESSAGE
LJM STMX RETURN
TME SPACE 4,10
** TME - TAPE MANAGER ERROR.
*
* EXIT END OF SET STATUS SET.
* *TFM* ERROR MESSAGE ISSUED.
*
* CALLS DFM.
TME SUBR ENTRY/EXIT
LDD UP SET END OF SET FLAG
LPC 7677
LMD HN
STD UP
LDC TMMS
RJM DFM ISSUE MESSAGE
UJN TMEX RETURN
VAE SPACE 4,10
** VAE - ISSUE VSN ASSIGNMENT ERROR MESSAGE.
*
* USES T1, T3.
*
* CALLS ACS, DFM.
VAE SUBR ENTRY/EXIT
LDD PB
LMN /MTX/AME
ZJN VAE1 IF ACS MOUNT ERROR
LDC TRRJ&TACM
VAE1 LMC TACM SET MESSAGE TEXT ADDRESS
ADD PA
STD T3
LDI T3
ZJN VAEX IF NO MESSAGE
LDC BFMS SET ASSEMBLY ADDRESS
STD T1
LDN 0 INITIALIZE ASSEMBLY BUFFER
STI T1
LDC =Z* VSN *
RJM ACS ASSEMBLE PREFIX
LDC EVSN
RJM ACS ASSEMBLE VSN
LDI T3 SET MESSAGE TEXT ADDRESS
RJM ACS ASSEMBLE MESSAGE TEXT
LDC BFMS
RJM DFM ISSUE MESSAGE
LJM VAEX RETURN
PROC SPACE 4,10
** PROC - DEFINE MESSAGE PROCESSOR FOR MTS/ATS.
*
* PROC INDEX,BIT,ADDR
*
* *INDEX* = INDEX INTO MTS/ATS DETAILED STATUS.
* *BIT* = BIT TO CHECK IN STATUS BYTE.
* *ADDR* = ADDRESS OF MESSAGE TO ISSUE IF BIT SET.
PROC MACRO IN,BIT,AD
CON IN*100+21-BIT,AD
ENDM
MTSM SPACE 4,10
** MTSM - MTS MESSAGE PROCESSOR TABLE.
* ENTRY = 2 WORDS.
*
*T, 6/INDEX,6/SHIFT,12/ADDR
*
* INDEX INDEX INTO MTS/ATS DETAILED STATUS.
* SHIFT CORRECT SHIFT TO TEST DESIRED BIT.
* ADDR ADDRESS OF MESSAGE TO ISSUE IF BIT SET.
MTSM BSS 0
LOC 0
PROC 1,13,(=C* UNIT HAS MOTION PROBLEMS.*)
PROC 1,10,(=C* SINGLE FRAME ERROR.*)
PROC 1,7,(=C* LRC ERROR.*)
PROC 1,4,(=C* CRC ERROR.*)
PROC 1,0,(=C* POSTAMBLE ERROR.*)
PROC 3,11,(=C* MULTI-TRACK PHASE ERROR.*)
PROC 0,11,(=C* PARITY ERROR.*)
PROC 2,5,(=C* INCORRECT CHARACTER.*)
CON 0,=C* PARITY ERROR.* END OF TABLE
LOC *O
ATSM SPACE 4,10
** ATSM - ATS MESSAGE PROCESSOR TABLE.
* ENTRY = 2 WORDS.
*
*T, 6/INDEX,6/SHIFT,12/ADDR
*
* INDEX INDEX INTO MTS/ATS DETAILED STATUS.
* SHIFT CORRECT SHIFT TO TEST DESIRED BIT.
* ADDR ADDRESS OF MESSAGE TO ISSUE IF BIT SET.
ATSM BSS 0
LOC 0
PROC 0,12,(=C* UNIT PROBLEMS.*)
PROC 2,7,(=C* CRC ERROR.*)
PROC 2,10,(=C* CRC ERROR.*)
PROC 2,11,(=C* CRC ERROR.*)
PROC 2,6,(=C* SINGLE FRAME ERROR.*)
PROC 2,2,(=C* INCORRECT CHARACTER.*)
PROC 0,11,(=C* PARITY ERROR.*)
CON 0,=C* PARITY ERROR.* END OF TABLE
LOC *O
TACM SPACE 4,10
** TACM - TABLE OF ACF RESPONSE MESSAGES FOR *AME* ERROR.
*
* INDEXED BY *COMSATF* RESPONSE CODE.
TACM INDEX
INDEX /ATF/NSA,(=Z* NOT IN REQUESTED ACS.*)
INDEX /ATF/URL,(=Z* UNREADABLE OPTICAL LABEL.*)
INDEX /ATF/VNL,(=Z* NOT IN ACS LIBRARY.*)
INDEX /ATF/MXFE
TNWE SPACE 4,10
** TNWE - TABLE OF MESSAGES FOR *NWE* ERROR.
*
* INDEXED BY *NWE* SUB ERROR CODE.
TNWE INDEX
INDEX /MTX/WTB,(=C* 200 BPI WRITE INCORRECT.*)
INDEX /MTX/LNE,(=C* LABEL NOT EXPIRED.*)
INDEX /MTX/MWSC
TRRJ SPACE 4,10
** TRRJ - TABLE OF MESSAGES FOR *RRJ* ERROR.
*
* INDEXED BY *RRJ* SUB ERROR CODE.
TRRJ INDEX
INDEX /MTX/WRD,(=Z* NOT WRITE ENABLED.*)
INDEX /MTX/NLB,(=Z* NOT LABELED.*)
INDEX /MTX/CAD,(=Z* CANNOT ACCESS FILE DATA.*)
INDEX /MTX/WVS,(=Z* INTERNAL VSN MISMATCH.*)
INDEX /MTX/MRSC
TUEM SPACE 4,10
**** TUEM - TABLE OF USER ERROR MESSAGES.
* ALL USER ERRORS ARE FATAL UNLESS THEY ARE ALSO CONTAINED
* IN THE FOLLOWING TABLE.
TUEM INDEX
INDEX /MTX/BEI,(=Z* BOT/EOT ENCOUNTERED, *)
INDEX /MTX/ERM,(=Z* END OF TAPE, *)
INDEX /MTX/BTA,(=Z* BLANK TAPE, *)
INDEX /MTX/NWE,(=Z* NO WRITE ENABLE, *)
INDEX /MTX/BCW,(=Z* BUFFER CONTROL WORD ERROR, *)
INDEX /MTX/RAF,(=Z* READ AFTER WRITE, *)
INDEX /MTX/IOS,(=Z* END OF SET INCORRECT REQUEST, *)
INDEX /MTX/BAE,(=Z* BUFFER ARGUMENT ERROR, *)
INDEX /MTX/SCI,(=Z* CODED I/O NOT SUPPORTED, *)
INDEX /MTX/TPE,(=Z* JOB ABORTED BY TAPE MANAGER, *)
INDEX /MTX/AME,(=Z* ACS MOUNT ERROR, *)
INDEX /MTX/RRJ,(=Z* REEL ASSIGNMENT REJECTED, *)
INDEX /MTX/LAM,(=Z* LABEL MISSING, *)
INDEX /MTX/LCE,(=Z* LABEL CONTENT ERROR, *)
INDEX /MTX/LBE,(=Z* TRAILER BLOCK COUNT ERROR, *)
INDEX /MTX/LPE,(=Z* LABEL PARAMETER ERROR ON OPEN, *)
INDEX /MTX/LIT,(=Z* INCORRECT LABEL TYPE, *)
INDEX /MTX/IXL,(=Z* XL BUFFER/FET PARAMETER ERROR, *)
INDEX /MTX/MFM,(=Z* MULTI-FILE NOT FOUND, *)
INDEX /MTX/EFT,(=Z* ERROR FLAG TERMINATION, *)
INDEX /MTX/SYE,(=Z* SYSTEM ERROR, *)
INDEX /MTX/FPI,(=Z* FILE POSITION INDETERMINATE, *)
INDEX /MTX/OPA,(=Z* WRONG PARITY, *)
INDEX /MTX/BTL,(=Z* BLOCK TOO LARGE, *)
INDEX /MTX/BNE,(=Z* BLOCK SEQUENCE ERROR, *)
INDEX /MTX/STE,(=Z* STATUS ERROR, *)
INDEX /MTX/CMF,(=Z* CHANNEL MALFUNCTION, *)
INDEX /MTX/RDR,(=Z* READY DROP, *)
INDEX /MTX/FRJ,(=Z* FUNCTION REJECT, *)
INDEX /MTX/WEO,(=Z* UNIT HUNG UP ON EOP OR BUSY, *)
INDEX /MTX/CRJ,(=Z* CONNECT REJECT, *)
INDEX /MTX/ERA,(=Z* ERASE LIMIT, *)
INDEX /MTX/PLO,(=Z* POSITION LOST, *)
INDEX /MTX/RCE,(=Z* REPOSITION CORRECTED ERROR, *)
INDEX /MTX/MWT,(=Z* MARGINALLY WRITTEN TAPE, *)
INDEX /MTX/WVF,(=Z* WRITE VERIFY FAILURE, *)
INDEX /MTX/TME,(=Z* WRITE TAPE MARK FAILURE, *)
INDEX /MTX/TCF,(=Z* TAPE CLEANER FAULT, *)
INDEX /MTX/BFR,(=Z* READ ID BURST FAILURE, *)
INDEX /MTX/BFW,(=Z* WRITE ID BURST FAILURE, *)
INDEX /MTX/MERC
TERR DATA Z* ERROR CODE 00,*
* TAME - TABLE OF ADDITIONAL MESSAGES TO BE ISSUED IF ERROR
* OCCURS ON THE FIRST BLOCK OF THE TAPE.
TAME INDEX
INDEX /MTX/BTL,(=C* TAPE FORMAT PROBABLY WRONG.*)
INDEX /MTX/BNE,(=C* TAPE FORMAT PROBABLY WRONG.*)
INDEX /MTX/MERC
TSPC SPACE 4,10
** TSPC - TABLE OF SPECIAL PROCESSORS.
TSPC INDEX
INDEX /MTX/NWE,NWE
INDEX /MTX/IOS,MFM
INDEX /MTX/TPE,TME
INDEX /MTX/AME,VAE
INDEX /MTX/RRJ,VAE
INDEX /MTX/LPE,OPM
INDEX /MTX/MFM,MFM
INDEX /MTX/STE,STM
INDEX /MTX/MERC
TITLE CHECK JOB ERROR FLAG.
CJE SPACE 4,15
** CJE - CHECK JOB ERROR FLAG.
*
*
*T UXRQ 12/ 1,12/ CJE,12/,12/ PA,12/ PB
*
* PA = 0.
* PB = 0.
*
*T, EXIT 12/ 2,12/ CJE,12/,12/ PA,12/ PB
*
* PA = 0.
* PB = 0 IF NOT TO ABORT *CIO* REQUEST.
* PB .NE. 0 IF TO ABORT *CIO* REQUEST.
*
* CALLS CCR, PRS.
ENTRY CJE
RJM PRS PRESET
LDD CP READ ERROR FLAG
ADN STSW
CRD CM
LDD CM+1
LMN ODET
ZJN CJE1 IF OPERATOR DROP
LMN TAET&ODET
ZJN CJE1 IF USER BREAK TWO
LMN FSET&TAET
ZJN CJE1 IF FORCED ERROR
LMN FSET
SBN SPET
MJN CJE2 IF NOT SPECIAL PROCESSING ERROR
CJE1 AOD PB SET TO ABORT REQUEST
CJE2 LDN 0 DO NOT COMPLETE FET
RJM CCR COMPLETE REQUEST
LJM NCPX EXIT
TITLE COMMON DATA AREA.
SPACE 4,10
** UDT DATA.
* *UFRQ*.
FREQ BSS 1 FILE REQUEST
FRST BSS 1 FILE REQUEST STATUS
BSS 2 RESERVED
FNTA BSS 1 LOCAL FNT ADDRESS
* *UCIA*.
ICIO BSS 1 INTERNAL CIO CODE
FETL BSS 1 FET LENGTH - 5 AND SKIP COUNT
SKPC BSS 1 SKIP COUNT
FETA BSS 2 FET ADDRESS
* *UCIB*.
ECIO BSS 1 EXTERNAL *CIO* CODE
FETO BSS 1 FET OPTIONS
LVLN BSS 1 LEVEL NUMBER / MLRS
MLRS BSS 2 MLRS
* *UDS1* - *UDS3*.
DSTS BSS 3*5 DETAILED STATUS
* *UESN*.
EVSN BSS 5 EXTERNAL VSN, FLAGS
* *UMSG* AND MESAGE TERMINATOR.
TMMS BSSZ 4*5 TAPE MANAGER MESSAGE
BSSZ 1 TERMINATOR
SPACE 4,10
TITLE SUBROUTINES.
CCR SPACE 4,15
** CCR - COMPLETE CIO REQUEST.
*
* ENTRY (A) = FET COMPLETION CODE IF .NE. 0.
* (A) = 0 IF NOT TO COMPLETE FET.
*
* EXIT PP ASSIGNED TO MAGNET CONTROL POINT.
* BLOCKS SKIPPED COUNT CLEARED IN UDT.
*
* USES CM - CM+4.
*
* CALLS RCP, UAD.
CCR SUBR ENTRY/EXIT
RJM RCP COMPLETE FET AND RETURN TO MAGNET CP
RJM UAD
ADK /MTX/UBLC GET BLOCKS SKIPPED
CRD CM
LDN 0 CLEAR BLOCKS SKIPPED
STD CM+4
RJM UAD
ADK /MTX/UBLC UPDATE UDT
CWD CM
UJN CCRX RETURN
FAD SPACE 4,10
** FAD - SET FET ADDRESS.
*
* ENTRY (A) = OFFSET OF WORD IN FET.
*
* EXIT (A) = ADDRESS + RA IF FET ADDRESS IN FL.
* (A) = 0 IF FET ADDRESS NOT IN FL.
FAD1 LDN 0 SET ADDRESS ERROR
FAD SUBR ENTRY/EXIT
STD T0 SAVE WORD OFFSET
LDM FETA
SHN 14
ADM FETA+1
ADD T0
SHN 14
SBD FL
SHN 6
PJN FAD1 IF ADDRESS NOT IN FL
SHN 14
ADD FL
ADD RA
SHN 6
UJN FADX RETURN
SPACE 4,10
** COMMON DECKS.
*CALL COMPACS
*CALL COMPANS
*CALL COMPC2D
SPACE 4,10
** *0DF* BUFFER.
B0DF EQU *+1 *0DF* OVERLAY BUFFER
ERRNG BFMS-B0DF-ZDFL CHECK LENGTH OF *0DF*
TITLE OVERLAID SUBROUTINES.
PRS SPACE 4,10
** PRS - PRESET *CUF*, *MAB*, AND *CJE* FUNCTIONS.
*
* EXIT PP ASSIGNED TO USER CONTROL POINT.
*
* CALLS CCP, UAD.
PRS SUBR ENTRY/EXIT
RJM UAD
ADK /MTX/UFRQ GET CIO PARAMETERS
CRM FREQ,TR
ADK /MTX/UDS1-/MTX/UFRQ-3 GET DETAILED STATUS
CRM DSTS,TR
ADK /MTX/UBLC-/MTX/UDS1-3 GET BLOCK ACCUMULATOR
CRD CM
ADK /MTX/UMSG-/MTX/UBLC GET TAPE MANAGER MESSAGE
CRM TMMS,TR
CRM TMMS+5*3,ON
ADK /MTX/UESN-/MTX/UMSG-4 GET EXTERNAL VSN
CRM EVSN,ON
LDN 0 TERMINATE VSN FOR MESSAGE ASSEMBLY
STM EVSN+3
LDD CM+4 SAVE BLOCKS SKIPPED
STD T8
RJM CCP CHANGE TO USER CP
ZJN PRS2 IF CHANGE MADE
LDD FN
LMN /MTX/CJE
NJN PRS1 IF NOT CHECK JOB ABORT
LJM NCPX RETURN NORMAL COMPLETION STATUS
PRS1 LJM RJBX SET RECALL ON JOB ROLLED OUT
PRS2 LDD T8
ZJN PRS3 IF NO BLOCKS SKIPPED
STM RCPC SET BLOCKS SKIPPED
LDC ITPO*100 SET SRU INCREMENT
STM RCPA
PRS3 LJM PRSX RETURN
OVERLAY (PROCESS AUXILIARY FUNCTION.)
PAF SPACE 4,10
** PAF - PROCESS AUXILIARY FUNCTION REQUEST.
*
* REQUEST FORMAT -
*
* 12/ 0,12/ *AFN*,12/ 0,12/ PM,12/ FC
*
* PM OPTIONAL PARAMETER.
* FC FUNCTION CODE.
*
* CALLS CJA, HNG, IAM, IRM, LGA, RVS, USP, VME, VSE.
ENTRY PAF ENTRY
LDD PB
SBN /MTX/AFMX
MJN PAF1 IF VALID FUNCTION CODE
RJM HNG HANG PP
PAF1 LDM TAFN,PB
STD T1
LJM 0,T1 PROCESS FUNCTION
TAFN SPACE 4,10
** TAFN - TABLE OF *AFN* REQUEST FUNCTION CODES.
TAFN INDEX
INDEX /MTX/AFRA,IAM ISSUE REEL ASSIGNMENT MESSAGES
INDEX /MTX/AFRR,IRM ISSUE REEL RETURN MESSAGES
INDEX /MTX/AFLA,LGA LOG STATISTICAL ACCUMULATORS
INDEX /MTX/AFNV,RVS RETURN NEXT VSN
INDEX /MTX/AFUS,USP INITIATE UNIT SWAP
INDEX /MTX/AFCJ,CJA CLEAR JOB ASSIGNMENT
INDEX /MTX/AFVE,VSE ISSUE VSN MOUNTED EVENT
INDEX /MTX/AFME,VME ISSUE VSN EVENT AFTER ACS MOUNT ERROR
INDEX /MTX/AFMX TERMINATE TABLE
IAM SPACE 4,10
** IAM - ISSUE REEL ASSIGNMENT MESSAGES.
*
* CALLS IRA, IVM.
IAM BSS 0 ENTRY
RJM IVM ISSUE NEXT VSN ASSIGNED MESSAGE
RJM IRA ISSUE REEL ASSIGNED MESSAGE
LJM NCPX EXIT
IRM SPACE 4,10
** IRM - ISSUE REEL RETURN MESSAGES.
*
* CALLS IPT, IRR, LCE.
IRM BSS 0 ENTRY
RJM LCE LOG CORRECTED ERRORS
RJM IPT ISSUE PRU-S TRANSFERRED MESSAGE
RJM IRR ISSUE REEL RETURNED MESSAGE
LJM NCPX EXIT
LGA SPACE 4,10
** LGA - LOG STATISTICAL ACCUMULATORS.
*
* CALLS IPT, LCE, UAD.
LGA BSS 0 ENTRY
RJM UAD
ADK /MTX/UERC GET CORRECTED ERROR ACCUMULATORS
CRD CM
LDD CM
SHN -3
NJN LGA1 IF THRESHOLD REACHED
LDD CM+1
LPN 77
NJN LGA1 IF THRESHOLD REACHED
LDD CM+2
SHN -11
NJN LGA1 IF THRESHOLD REACHED
LDD CM+3
NJN LGA1 IF THRESHOLD REACHED
LDD CM+4
SHN -11
ZJN LGA2 IF THRESHOLD NOT REACHED
LGA1 RJM LCE LOG CORRECTED ERRORS
RJM UAD
ADK /MTX/UBLC GET BLOCKS TRANSFERRED ACCUMULATORS
CRD CM
LDD CM
NJN LGA2 IF THRESHOLD REACHED
LDD CM+2
ZJN LGA3 IF THRESHOLD NOT REACHED
LGA2 RJM IPT ISSUE PRU-S TRANSFERRED MESSAGES
LGA3 LJM NCPX EXIT
RVS SPACE 4,10
** RVS - RETURN NEXT VSN.
*
* CALLS AFA, IFA, RRS, UAD.
*
* MACROS ENDMS.
RVS BSS 0 ENTRY
* SET VSN FILE ACCESS AND READ ENTRY.
RJM UAD
ADK /MTX/UVRI
CRD CN
LDD CN+1 SET VSN FILE RANDOM ADDRESS
LPN 77
STD RI
LDD CN+2
STD RI+1
ADD RI
ZJN RVS4 IF NO RANDOM ADDRESS PRESENT
LDN RVFO SET VSN FILE ORDINAL
STD FO
LDN 2 PRESET ERROR STATUS
STD T9
LDN PTRM SET READ READ ALLOW MODIFY ACCESS
STD AM
RJM IFA INITIALIZE VSN FILE ACCESS
NJN RVS3 IF ERROR
RJM RRS READ VSN FILE SECTOR
ZJN RVS1 IF RANDOM ADDRESS ERROR OR NOT FULL SECTOR
SHN -21
STD T9 SET READ ERROR STATUS
NJN RVS2 IF READ ERROR
RVS1 ENDMS
RVS2 LDN RFAS RETURN VSN FILE
RJM AFA
RVS3 SOD T9
MJN RVS5 IF NO ERROR
NJN RVS4 IF NOT READ ERROR
LDM RDCT
SHN 21-12
MJN RVS4 IF NOT RECOVERABLE ERROR
LDN /MTX/RDL REQUEUE ON TIME DELAY
LJM SRSX SET REQUEST STATUS
* RETURN SYSTEM ERROR.
RVS4 LDK /MTX/SYE SET SYSTEM ERROR
STD EC
LJM ERRX RETURN ERROR
* SET ENTRY OFFSET.
RVS5 RJM UAD GET VSN REQUEST
ADK /MTX/UESN
CRD CM
ADK /MTX/UISN-/MTX/UESN
CRD T1
LDD CN VERIFY JOB EJT ORDINAL
LMM BFMS+2+5*/RSX/VDFI
NJN RVS4 IF INCORRECT EJT ORDINAL
LDD CN+3 SET ENTRY ORDINAL
STD T6
LDM BFMS+2+5*/RSX/VRLC+4
LPN 77 REEL COUNT
SBN 1
SBD T6
MJP RVS7 IF NO ENTRY FOR REEL
LDM BFMS+2+5*/RSX/VRLC+4
LPC 100
ZJN RVS6 IF NOT EQUIVALENCED VSN-S
LDD T6 ADJUST ORDINAL FOR EQUIVALENCED VSN-S
RVS6 RAD T6
SHN 2 SET VSN BUFFER OFFSET
RAD T6
* SET VSN-S FROM VSN FILE.
LDM BFMS+2+5*/RSX/VVSN,T6 SET EXTERNAL AND INTERNAL VSN
STD CM
STD T1
LDM BFMS+2+5*/RSX/VVSN+1,T6
STD CM+1
STD T1+1
LDM BFMS+2+5*/RSX/VVSN+2,T6
STD CM+2
STD T1+2
LDM BFMS+2+5*/RSX/VRLC+4
SHN 21-6
PJN RVS9 IF NOT EQUIVALENCED VSN-S
LDM BFMS+2+5*/RSX/VVSN+5,T6 SET INTERNAL VSN
STD T1
LDM BFMS+2+5*/RSX/VVSN+6,T6
STD T1+1
LDM BFMS+2+5*/RSX/VVSN+7,T6
STD T1+2
UJN RVS9 UPDATE UDT
* CHECK VSN RETURNED FROM *EOV2* LABEL.
RVS7 LDD CN+4
LPN 10
NJN RVS8 IF VSN RETURNED FROM *EOV2* LABEL
STD T1 CLEAR INTERNAL VSN
STD T1+1
STD T1+2
RVS8 LDD T1 SET EXTERNAL VSN TO INTERNAL VSN
STD CM
LDD T1+1
STD CM+1
LDD T1+2
STD CM+2
* UPDATE UDT.
RVS9 LDD CM+4 CLEAR SCRATCH VSN FLAG
SCN 40
STD CM+4
LDD CM CHECK FOR SCRATCH VSN
LMC 2R
NJN RVS10 IF NOT SCRATCH VSN
LMD CM
LMD CM+1
NJN RVS10 IF NOT SCRATCH VSN
LMD CM+1
LMD CM+2
NJN RVS10 IF NOT SCRATCH VSN
LDN 40 SET SCRATCH VSN
RAD CM+4
RVS10 RJM UAD
ADK /MTX/UVRI WRITE VSN FLAGS
CWD CN
ADK /MTX/UESN-/MTX/UVRI WRITE EXTERNAL VSN
CWD CM
ADK /MTX/UISN-/MTX/UESN WRITE INTERNAL VSN
CWD T1
LJM NCPX EXIT
USP SPACE 4,10
** USP - INITIATE UNIT SWAP.
*
* ENTRY (PA) = NEW UDT ADDRESS.
*
* EXIT (PA) = NEW UDT ADDRESS.
*
* CALLS CCP, HNG, UAD.
*
* MACROS MONITOR, NFA.
USP BSS 0 ENTRY
RJM UAD GET TAPE FILE FNT ADDRESS
ADK /MTX/UFRQ
CRD CM
LDD CM+4 SET FNT ADDRESS
STD FA
LDD RA SET NEW UDT ADDRESS
SHN 6
ADD PA
ADK /MTX/UST1 GET NEW EST ORDINAL
CRD CM
ADK /MTX/UVRI-/MTX/UST1 GET UNIT SWAP FLAG
CRD CN
LDD CM+2 SAVE NEW EST ORDINAL
STD T8
LDD CN+1
SHN 21-13
MJN USP1 IF UNIT SELECTED FOR UNIT SWAP
RJM HNG HANG - NO RETURN
USP1 RJM CCP CHANGE TO USER CP
NJN USP2 IF CHANGE NOT MADE
LDD T8 SET NEW EST ORDINAL
STD CM+1
LDN REQS SET REQUEST ACTIVE EQUIPMENT
STD CM+2
MONITOR REQM REQUEST NEW EQUIPMENT
LDD CM+1
NJN USP3 IF EQUIPMENT ASSIGNED
USP2 LDN /MTX/BEI SET UNIT SWAP FAILURE
STD EC
LJM ERRX RETURN ERROR STATUS
USP3 NFA FA,R SET FNT ADDRESS
ADK FSTL GET FST ENTRY
CRD CM
LDD CM
LMD EO
NJN USP4 IF INCORRECT EST ORDINAL
LDD CM+4
SHN 21-0
PJN USP5 IF FILE BUSY
USP4 RJM HNG HANG - NO RETURN
USP5 LDD T8 SET NEW EST ORDINAL
STD CM
LDD PA SET NEW UDT ADDRESS
STD CM+1
NFA FA,R UPDATE FST ENTRY
ADK FSTL
CWD CM
LDD EO SET OLD EST ORDINAL
STD CM+1
MONITOR DEQM DROP OLD EQUIPMENT
LJM NCPX EXIT
CJA SPACE 4,10
** CJA - CLEAR JOB ASSIGNMENT.
*
* CALLS CCP, RCP, UAD.
*
* MACROS MONITOR.
CJA BSS 0 ENTRY
RJM CCP CHANGE TO USER CP
NJP RJBX IF CHANGE NOT MADE
LDD EO SET EST ORDINAL
STD CM+1
MONITOR DEQM DROP TAPE EQUIPMENT
LDN 1 SET TO DECREMENT TAPE ACTIVITY
RJM RCP RETURN TO MAGNET CP
LDN ZERL
CRD CM
RJM UAD
ADK /MTX/UVRI CLEAR JOB ASSIGNMENT IN UDT
CWD CM
LDC OVRE ISSUE OVERCOMMITMENT EVENT
STD CM+4
SHN -14
STD CM+3
MONITOR EATM
LJM NCPX EXIT
VSE SPACE 4,10
** VSE - ISSUE VSN MOUNTED EVENT.
*
* EXIT VSN EVENT ISSUED.
*
* USES CN - CN+4.
*
* CALLS IVE, UAD.
VSE BSS 0 ENTRY
RJM UAD
ADN /MTX/UMST GET ACS VSN
CRD CN
LDD ED
SHN 21-1
MJN VSE1 IF ACS UNIT
RJM UAD
ADK /MTX/UVSN GET INTERNAL VSN
CRD CN
LDD CN+3
SHN 21-12
PJN VSE1 IF NOT SCRATCH TAPE
LDC 2R SET SCRATCH VSN
STD CN
STD CN+1
STD CN+2
VSE1 RJM IVE ISSUE VSN EVENT
LJM NCPX EXIT
VME SPACE 4,10
** VME - ISSUE VSN EVENT AFTER ACS VSN MOUNT ERROR.
*
* ENTRY (PA) = MOUNT ERROR TABLE ORDINAL.
*
* EXIT VSN EVENT ISSUED.
*
* USES CN - CN+4.
*
* CALLS IVE.
VME BSS 0 ENTRY
LDD RA
SHN 6
ADK /MTX/VET
ADD PA SET ADDRESS OF VSN WITH MOUNT ERROR
CRD CN
RJM IVE ISSUE VSN EVENT
LJM NCPX EXIT
TITLE FAST ATTACH FILE ACCESS ROUTINES.
AFA SPACE 4,15
** AFA - ISSUE *AFAM* FUNCTION.
*
* ENTRY (A) = *AFAS* IF TO ATTACH FILE.
* (A) = *RFAS* IF TO RETURN FILE.
* (FO) = GLOBAL FNT ORDINAL.
* (FA) = ACCESS MODE.
*
* EXIT (CM+1 - CM+4) = *AFAM* FUNCTION EXIT PARAMETERS.
*
* USES CM+1 - CM+4.
*
* MACROS MONITOR.
AFA SUBR ENTRY/EXIT
STD CM+3 SET SUBFUNCTION
LDD FO SET FNT ORDINAL
STD CM+4
LDD AM SET ACCESS MODE
STD CM+2
LDN 0 SET LOCAL FAST ATTACH FILE
STD CM+1
MONITOR AFAM ATTACH OR RETURN FILE
UJN AFAX RETURN
IFA SPACE 4,15
** IFA - INITIALIZE FAST ATTACH FILE ACCESS.
*
* ENTRY (FO) = GLOBAL FNT ORDINAL.
* (AM) = ACCESS MODE.
*
* EXIT (A) = 0 IF FILE ATTACHED.
* (A) .NE. 0 IF FILE NOT ATTACHED.
* MASS STORAGE DRIVER LOADED AND PRESET.
*
* USES T5 - T7, CM - CM+1.
*
* CALLS AFA.
*
* MACROS DELAY, PAUSE, SETMS, SFA.
IFA2 SFA FNT,FO
ADN FSTG GET FILE POINTERS
CRD T5
SETMS IO,RW
LDN 0 SET NO ERROR
IFA SUBR ENTRY/EXIT
IFA1 LDN AFAS ATTACH FILE
RJM AFA
LDD CM+1
ZJN IFA2 IF FILE ATTACHED
PAUSE
DELAY
LDD CM+1
ZJN IFA1 IF ERROR FLAG NOT SET
UJN IFAX RETURN WITH ERROR STATUS
RRS SPACE 4,15
** RRS - READ RANDOM SECTOR.
*
* ENTRY (RI - RI+1) = RANDOM ADDRESS.
*
* EXIT (A) .GT. 0 IF FULL SECTOR READ.
* (A) = 0 IF RANDOM ADDRESS ERROR OR NOT FULL SECTOR.
* (A) .LT. 0 IF READ ERROR.
* (T6) = TRACK IF NO ERROR.
* (T7) = SECTOR IF NO ERROR.
* SECTOR READ TO *BFMS* IF NO ERROR.
*
* CALLS CRA, RDS.
RRS1 LDN 0 SET ERROR
RRS SUBR ENTRY/EXIT
RJM CRA CONVERT RANDOM ADDRESS
MJN RRS1 IF INCORRECT RANDOM ADDRESS
LDC BFMS SET BUFFER ADDRESS
RJM RDS READ SECTOR
MJN RRSX IF READ ERROR
LDM BFMS+1 CHECK IF FULL SECTOR
SHN -6
UJN RRSX RETURN WITH STATUS
TITLE DAYFILE MESSAGE ROUTINES.
CBC SPACE 4,10
** CBC - CHECK BLOCK COUNT.
*
* ENTRY (T3 - T4) = BLOCKS TRANSFERRED COUNT.
*
* EXIT BLOCK COUNT MESSAGE ISSUED TO ACCOUNT FILE AND ERROR
* LOG IF NON-ZERO BLOCK COUNT.
*
* CALLS C2D, ITU.
CBC SUBR ENTRY/EXIT
LDD T3
ADD T4
ZJN CBCX IF NO BLOCKS TRANSFERRED
LDD T4
RJM C2D CONVERT BLOCK COUNT
STM IPTB+11
LDD T4
SHN -6
RJM C2D CONVERT BLOCK COUNT
STM IPTB+10
LDD T3
RJM C2D CONVERT BLOCK COUNT
STM IPTB+7
LDD T3
SHN -6
RJM C2D CONVERT BLOCK COUNT
STM IPTB+6
LDC IPTA SET MESSAGE ADDRESS
RJM ITU ISSUE MESSAGE
UJN CBCX RETURN
IPT SPACE 4,10
** IPT - ISSUE PRU,S TRANSFERRED TO ACCOUNT FILE.
*
* USES T1 - T7, CM - CM+4.
*
* CALLS CBC, UAD.
IPT SUBR ENTRY/EXIT
RJM UAD GET BLOCKS READ
ADK /MTX/UBLC
CRD T3
RJM CBC CHECK BLOCK COUNT
LDN ZERL
CRD CM
RJM UAD GET BLOCKS WRITTEN
ADK /MTX/UBLC
CRD T1
CWD CM CLEAR BLOCK ACCUMULATORS
LDC 2RW. SET *W.* IN MESSAGE
STM IPTB+13
RJM CBC CHECK BLOCK COUNT
UJN IPTX RETURN
IPTA VFD 60/-0 JOB SEQUENCE NUMBER AND SERVICE CLASS
IPTB DATA C*SCMT, 000, 00000000, R.*
IRA SPACE 4,10
** IRA - ISSUE REEL ASSIGNED MESSAGE.
*
* CALLS ITU, UAD.
*
* USES CM - CM+4.
IRA SUBR ENTRY/EXIT
RJM UAD STORE VSN
ADN /MTX/UVSN
CRD CM
LDD CM+3
SHN 21-2
MJN IRA1 IF DEFAULT LABEL
LDD CM
ADD CM+1
ADD CM+2
ZJN IRA1 IF NO VSN
LDD CM SET VSN
STM IRAB+6
LDD CM+1
STM IRAB+7
LDD CM+2
STM IRAB+10
UJN IRA2 ISSUE MESSAGE
IRA1 LDC 2R. ALTER MESSAGE FOR INDICATING NO VSN
STM IRAB+5
LDN 0
STM IRAB+6
IRA2 LDC IRAA SET MESSAGE ADDRESS
RJM ITU ISSUE MESSAGE
LJM IRAX RETURN
IRAA VFD 60/-0 JOB SEQUENCE NUMBER AND SERVICE CLASS
IRAB DATA C*AMAS, 000, .*
IRR SPACE 4,10
** IRR - ISSUE REEL RETURNED MESSAGE.
*
* USES CM - CM+4.
*
* CALLS ITU.
*
* MACROS SFA.
IRR SUBR ENTRY/EXIT
LDD HP
SHN 21-7
PJN IRR1 IF NOT CTS
LDC 2R56
STM IRRB+6
LDC 2R82 CHANGE TYPE TO *5682*
STM IRRB+7
LDC 2R.
STM IRRB+10
UJN IRR4 ISSUE MESSAGE
IRR1 SHN 21-10-21+7
PJN IRR2 IF NOT 639 TAPE UNIT
LDC 2R63
STM IRRB+6
LDC 2R9.
STM IRRB+7
UJN IRR4 ISSUE MESSAGE
IRR2 SHN 21-5+10-21
MJN IRR4 IF MTS TAPE UNIT
SFA EST,EO CHECK FOR CMTS
ADK EQDE
CRD CM
LDD CM
LPN 4
ZJN IRR3 IF NOT CMTS
LDC 2R8. CHANGE TYPE TO *698*
STM IRRB+7
LDN 2
RAM IRRB+6
IRR3 AOM IRRB+6 CHANGE TYPE TO *67X* (OR *698*)
IRR4 LDC IRRA SET MESSAGE ADDRESS
RJM ITU ISSUE MESSAGE
LJM IRRX RETURN
IRRA VFD 60/-0 JOB SEQUENCE NUMBER AND SERVICE CLASS
IRRB DATA C*AMRT, 000, 66X. *
ITU SPACE 4,15
** ITU - ISSUE TAPE USAGE MESSAGE.
*
* ENTRY (A) = ADDRESS OF MESSAGE.
*
* EXIT MESSAGE ISSUED TO ACCOUNT DAYFILE AND ERROR LOG.
*
* USES T3, CM - CM+4, CN - CN+4.
*
* CALLS DFM, UAD.
*
* MACROS SFA.
ITU SUBR ENTRY/EXIT
STD T3 SAVE MESSAGE ADDRESS
RJM UAD
ADK /MTX/UVRI GET EJT ORDINAL
CRD CM
SFA EJT,CM SET EJT ADDRESS
ADK JSNE GET JSN
CRD CM
ADK SCLE-JSNE GET SERVICE CLASS
CRD CN
LDD CM SET JSN
STI T3
LDD CM+1
STM 1,T3
LDD CN SET SERVICE CLASS
SHN -6
STM 4,T3
LDD EO
RJM C2D CONVERT LOWER TWO DIGITS OF EST ORDINAL
STM 11,T3 SET EST ORDINAL
LDD EO
SHN -6
ADC 2R 0
STM 10,T3 SET EST ORDINAL UPPER DIGIT
LDD T3 SET MESSAGE ADDRESS AND OPTION
ADC AJNN
RJM DFM ISSUE MESSAGE TO ACCOUNT FILE
LDD T3 SET MESSAGE ADDRESS AND OPTION
ADC EJNN
RJM DFM ISSUE MESSAGE TO ERROR LOG
LJM ITUX RETURN
IVM SPACE 4,10
** IVM - ISSUE VSN ASSIGNED MESSAGE TO USER DAYFILE.
*
* EXIT NEXT VSN MESSAGE ISSUED TO USER DAYFILE.
* TO REQUEUE REQUEST IF CP CHANGE NOT MADE.
*
* USES CM - CM+4.
*
* CALLS ACS, CCP, C2D, DFM, RCP, UAD, ZFV.
IVM SUBR ENTRY/EXIT
RJM UAD
ADK /MTX/UFRQ READ FILE REQUEST
CRD CM
ADK /MTX/UESN-/MTX/UFRQ READ VSN
CRM IVMA,ON
LDD CM+4 SET FNT ADDRESS
STD FA
RJM CCP CHANGE TO USER CONTROL POINT
NJP RJBX IF CHANGE NOT MADE
SFA EST,EO SET EST ADDRESS
ADK EQDE
CRD T5 GET EQUIPMENT MNEMONIC
LDD EO
SHN -3
RJM C2D CONVERT UPPER TWO DIGITS OF EST ORDINAL
STD CM+1
LDD EO
LPN 7 CONVERT LOWER DIGIT OF EST ORDINAL
ADN 1R0
SHN 6
STD CM+2
LDN 0
STD CM+3
NFA FA,R
ADK FNTL GET FILE NAME
CRD CN
LDD CN+3 TERMINATE FILE NAME
SCN 77
STD CN+3
LDC IVMA SET VSN ADDRESS
RJM ZFV ZERO FILL VSN
LDC BFMS SET ASSEMBLY ADDRESS
STD T1
LDC 1R *100 INITIALIZE MESSAGE ASSEMBLY
STI T1
LDN CM ASSEMBLE MNEMONIC AND EST ORDINAL
RJM ACS
LDC =Z* ASSIGNED TO *
RJM ACS
LDN CN ASSEMBLE FILE NAME
RJM ACS
LDC =Z*, VSN=*
RJM ACS
LDC IVMA ASSEMBLE VSN
RJM ACS
LDC =Z*.*
RJM ACS TERMINATE MESSAGE
LDC BFMS
RJM DFM ISSUE MESSAGE
RJM RCP RETURN TO MAGNET CONTROL POINT
LJM IVMX EXIT
IVMA BSSZ 5 VSN FROM UDT
LCE SPACE 4,15
** LCE - LOG CORRECTED TAPE ERRORS.
*
* EXIT CORRECTED ERRORS MESSSAGE ISSUED TO MAINTENANCE LOG IF
* NON-ZERO ERROR COUNT.
* CORRECTED ERROR COUNTS CLEARED.
*
* USES CM - CM+4, T1 - T5.
*
* CALLS DFM.
*
* MACROS SFA.
LCE SUBR ENTRY/EXIT
LDN ZERL
CRD T1
RJM UAD
ADC /MTX/UERC GET ERROR COUNTS
CRD CM
CRM CEMS+3*5,ON SET COUNTS IN MESSAGE
SBN 1
CWD T1 CLEAR ERROR COUNTS
ADK /MTX/UVSN-/MTX/UERC SET VSN IN MESSAGE
CRM CEMS+2*5,ON
LDD CM
ADD CM+1
ADD CM+2
ADD CM+3
ADD CM+4
ZJN LCEX IF NO RECOVERED ERRORS
LDN 0 CLEAR UNUSED FIELDS
STM CEMS+2*5+3
STM CEMS+2*5+4
SFA EST,EO GET EST INFORMATION
ADK EQDE
CRD CM
LDD HP
SHN 21-7
PJN LCE1 IF NOT CTS UNIT
LDD CM+3
SHN -7
ADN /DFS/TM0046
UJN LCE5 SAVE MESSAGE ID
LCE1 LDD CM
LPN 14
ZJN LCE2 IF NOT CMTS OR ISMT
SHN -3
UJN LCE3 STORE *TMID* TABLE INDEX
LCE2 LDD CM
SHN -6
LPN 7
LCE3 STD T1 STORE *TMID* TABLE INDEX
RAD T1
LDD HP CHECK IF 7 TRACK
SHN 21-0
PJN LCE4 IF 7 TRACK
AOD T1 INCREMENT INDEX TO 9 TRACK
LCE4 LDM TMID,T1 SET MESSAGE ID
LCE5 STM CEMS
LDD HN SET SYMPTOM CODE
STM CEMS+1
LDD CM+4 SET EQUIPMENT AND UNIT NUMBER
LPC 7017
STM CEMS+3
LDD EO SET EST ORDINAL
STM CEMS+1*5
LDN 4*5 SET MESSAGE LENGTH
STD CM+1
LDC CEMS+BMLN
RJM DFM LOG MESSAGE
LJM LCEX RETURN
SPACE 4,15
** CORRECTED ERRORS MESSAGE.
*
*T CEMS 12/MSGID,12/SYM,6/PP,6/CH,3/EQ,5/0,4/UN,12/0
*T, 12/EST,48/0
*T, 36/ VOLUME SERIAL NUMBER,12/0,12/REEL NUMBER
*T, 18/LATE DATA ERRORS,18/WRITE ERRORS,6/0,18/READ ERRORS
*
* MSGID MESSAGE IDENTIFICATION (DEVICE TYPE).
* SYM SYMPTOM CODE.
* PP PP NUMBER.
* CH CHANNEL.
* EQ EQUIPMENT NUMBER.
* UN UNIT NUMBER.
*
* EST EST ORDINAL.
CEMS VFD 12/0,12/0,6/0,6/0,6/0,6/0,12/0
VFD 12/0,48/0
VFD 36/0,12/0,12/0
VFD 18/0,18/0,6/0,18/0
SPACE 4,10
** TMID - TABLE OF MAGNETIC TAPE MESSAGE ID-S.
*
*T 12/ DEVICE MESSAGE ID
*
* NOTE - CODE DEPENDS ON ORDER OF TABLE.
TMID CON 0
CON /DFS/TM0053 CMTS/698
CON 0
CON /DFS/TM0057 ISMT/639
CON /DFS/TM0044 ATS/677
CON /DFS/TM0054 ATS/679
CON /DFS/TM0045 FSC/7 TRACK
CON /DFS/TM0056 FSC/9 TRACK
CON /DFS/TM0042 MTS/667
CON /DFS/TM0052 MTS/669
* CON /DFS/TM0046 AT (TABLE NOT USED
CON /DFS/TM0047 CT (TABLE NOT USED)
TITLE UTILITY SUBROUTINES.
IVE SPACE 4,10
** IVE - ISSUE VSN EVENT.
*
* ENTRY (CN - CN+2) = VSN.
*
* EXIT VSN EVENT ISSUED.
*
* USES CM+1, CM+3 - CM+4.
*
* MACROS MONITOR.
IVE SUBR ENTRY/EXIT
LDN EEVS SET ENTER EVENT
STD CM+1
LDN VSNE/10000 SET VSN EVENT
STD CM+3
LDD CN
ADD CN+1
ADD CN+2
STD CM+4
MONITOR EATM ISSUE VSN EVENT
UJN IVEX RETURN
ZFV SPACE 4,10
** ZFV - ZERO FILL VSN.
*
* ENTRY (A) = ADDRESS OF VSN.
*
* EXIT TRAILING BLANKS REMOVED FROM VSN.
* VSN TERMINATED WITH ZERO BYTE.
*
* USES T1, T2.
ZFV SUBR ENTRY/EXIT
STD T1 SET VSN ADDRESS
ADN 3
STD T2
LDN 0 TERMINATE VSN
ZFV1 STI T2
SOD T2
SBD T1
MJN ZFVX IF CHECK COMPLETE
LDI T2
LMC 2R
ZJN ZFV1 IF TWO BLANKS
LPN 77
NJN ZFVX IF NOT TRAILING BLANK
LDI T2
SCN 77
STI T2
UJN ZFVX RETURN
SPACE 4,10
** COMMON DECKS.
*CALL COMPACS
*CALL COMPCRA
*CALL COMPC2D
END