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