IDENT 1MD,MPR PERIPH BASE MIXED SST TITLE 1MD - MASS STORAGE ERROR MESSAGE PROCESSOR. *COMMENT 1MD - MS ERROR MESSAGE PROCESSOR. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 1MD SPACE 4,10 *** 1MD - MASS STORAGE ERROR MESSAGE PROCESSOR. * S. L. BETH 80/03/17. * R. M. DANISCH 85/12/31. * P. D. HAAS 86/07/01. SPACE 4,15 *** *1MD* IS CALLED BY THE MASS STORAGE DRIVERS AND THE 819 * INTERRUPT HANDLER TO ISSUE MASS STORAGE ERROR MESSAGES. FOR * 819 ERRORS, *1MD* MUST CONSTRUCT THE BML MESSAGE BEFORE * ISSUING IT. FOR ALL OTHER DEVICE TYPES, IT IS ASSUMED THE * DRIVER HAS ALREADY BUILT THE MESSAGE BEFORE CALLING *1MD*. * ONLY BML MESSAGES ARE ISSUED FOR 819 DEVICES. BUT BML, ERROR * LOG OR SYSTEM DAYFILE MESSAGES MAY BE ISSUED FOR OTHER DEVICE * TYPES. * * *1MD* MUST BE CM RESIDENT SINCE A LOAD FROM DISK MAY NOT BE * POSSIBLE IN A CONFIGURATION WHERE THE ONLY SYSTEM DEVICE IS * THE DEVICE TAKING ERRORS. 1MD SPACE 4,10 *** CALL FORMAT - * *T 18/ 1MD, 1/, 5/ SCP, 24/, 12/ F * * SCP = SYSTEM CONTROL POINT NUMBER. * F = 0 IF 819 DEVICE. * 1 IF NOT 819 DEVICE. 1MD SPACE 4,10 *** ERROR LOG MESSAGES. * * * 1MD - MESSAGES LOST.* - *1MD* WAS UNABLE TO FLUSH THE ERROR * BUFFER FAST ENOUGH TO KEEP UP WITH THE GENERATION OF * ERROR MESSAGES BY THE DRIVER(S). 1MD SPACE 4,20 *** BINARY MAINTENANCE LOG ENTRY FORMATS. * * GENERAL FORMAT - * *T 12/ ID, 4/ DT, 1/ 0, 7/ SC, 6/ PP, 6/ CH, 6/ 0, 6/ UN, 12/ 0 *T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 12/ MF, 12/ 0 *T, 12/ EC, 12/ CY, 12/ TS, 12/ LF, 12/ GS *T, 60/ DETAILED STATUS *T, 60/ . *T, 60/ . *T, 60/ . *T, 6/ UFC, 18/ OSR, 18/ ACR, 18/ ESR * * * EXTENDED MEMORY FORMAT - * *T 12/ ID, 4/ DT, 1/ 0, 7/ SC, 6/ PP, 6/ CH, 24/ 0 *T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 12/ MF, 12/ 0 *T, 12/ EC, 48/ 0 *T, 12/ FB, 12/ FS, 12/ WC, 24/ AD *T, 60/ ERROR DATA *T, 60/ ERROR DATA * * * 819 FORMAT - * *T 12/ ID, 4/ DT, 1/, 7/ SC, 36/ ACCESS PATH *T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 24/ 0 *T, 12/ PPID, 12/ BYTE COUNT, 36/ ERROR DATA *T, 60/ ERROR DATA *T, 60/ ERROR DATA *T, 60/ ERROR DATA * * * 887 / 9853 / 583X / 47444 FORMAT - * *T 12/ ID, 4/ DT, 1/0, 7/ SC, 6/PP, 6/CH, 6/EQ, 6/UN, 6/PN, 6/0 *T, 12/ EO, 6/ RC, 6/ FG, 12/ 0, 12/ MF, 12/ 0 *T, 12/ IF, 12/ F1, 12/ F2, 12/ F3, 12/ FF *T, 12/ RS, 12/ RB, 12/ ST, 12/ CY, 12/ TS *T, 16/ EXS, 16/ IDS, 16/ BSR, 12/ LCM *T, 04/ LCM, 16/ LFN, 16/ CRG, 16/ CRG, 08/ CRG *T, 08/ CRG, 16/ CRG, 16/ 000, 16/ 000, 04/ 000 *T, 12/ 000, 16/ TRG, 16/ TRG, 16/ TRG *T, 16/ SLS, 16/ SLS, 16/ SLS, 12/ SLS *T, 04/ SLS, 16/ SLS, 16/ SLS, 16/ SLS, 08/ DVS *T, 08/ DVS, 16/ DVS, 16/ DVS, 16/ DVS, 04/ DVS *T, 12/ DVS, 16/ DVS, 16/ DVS, 16/ DVS * * * COMMON FIELD DESCRIPTIONS - * * ID MESSAGE ID. SEE *COMSDFS*. * DT DRIVER TYPE. SEE *COMSDFS*. * SC SYMPTOM CODE. SEE *COMSDFS*. * PP PP NUMBER OF DRIVER. * CH CHANNEL NUMBER. * EQ EQUIPMENT (CONTROL MODULE/CONTROLLER) NUMBER. * UN UNIT NUMBER. * PN PORT NUMBER. * EO EST ORDINAL. * RC RETRY COUNT. * FG FLAGS (GENERAL) * BIT 41 UNUSED (ZERO). * BIT 40 UNUSED (ZERO). * BIT 39 SET IF NOT FIRST BLOCK OF MESSAGE. * BIT 38 SET IF NOT LAST BLOCK OF MESSAGE. * BIT 37 SET/CLEAR IF WRITE/READ OPERATION, * RESPECTIVELY. * BIT 36 SET/CLEAR IF UNRECOVERED/RECOVERED, * RESPECTIVELY. * CR RECOVERY CHANNEL. * MF MAINFRAME ID. * EC ERROR CODE. * CY CYLINDER AT SEEK TIME. * TS TRACK AND SECTOR AT SEEK TIME. * LF LAST FUNCTION ISSUED. * GS INITIAL GENERAL STATUS. * EXTENDED MEMORY FIELD DESCRIPTIONS - * * FB FLAG BITS * BIT 59 UNUSED (ZERO). * BIT 58 UNUSED (ZERO). * BIT 57 UNUSED (ZERO). * BIT 56 UNUSED (ZERO). * BIT 55 UNUSED (ZERO). * BIT 54 UNUSED (ZERO). * BIT 53 UNUSED (ZERO). * BIT 52 UNUSED (ZERO). * BIT 51 UNUSED (ZERO). * BIT 50 UNUSED (ZERO). * BIT 49 SET IF ERROR DATA WORD TWO PRESENT. * BIT 48 SET IF ERROR DATA WORD ONE PRESENT. * FS FUNCTION STATUS. * WC WORD COUNT. * AD EXTENDED MEMORY ADDRESS. * * * 819 FIELD DESCRIPTIONS - * * ACCESS PATH = HARDWARE PATH TO DEVICE. * PPID = INPUT REGISTER ADDRESS OF *1MD* PPU. * BYTE COUNT = ERROR DATA BYTE COUNT. * ERROR DATA = COPY OF DATA FROM *FLPP* DRIVER. * * * 887 / 9853 / 583X /47444 FIELD DESCRIPTIONS - * * IF = INITIAL FAULT CODE. * F1 = *T* REGISTER FAULT CODE (887 ONLY). * = CHANNEL STATUS FAULT CODE (9853/583X/47444 ONLY). * F2 = STATUS FAULT CODE. * F3 = RECOVERY FAULT CODE. * FF = FINAL FAULT CODE. * RS = RESERVED. * RB = RESIDUAL BYTE COUNT. * ST = SECTORS TRANSFERED SINCE SEEK. * EXS = EXECUTION STATUS (887 ONLY). * = ENDING STATUS (9853/583X/47444 ONLY). * IDS = IDLE STATUS (887 ONLY). * BSR = BIT SIGNIFICANT RESPONSE (887 ONLY). * LCM = LAST COMMAND. * LFN = LAST ISI/IPI ADAPTOR FUNCTION. * CRG = CHANNEL REGISTER. * TRG = *T* REGISTER. * SLS = SLAVE STATUS (INCLUDES 9853/583X/47444 DEVICE STATUS). * DVS = DEVICE STATUS (887 ONLY). * 895 (DMA ONLY) FIELD DESCRIPTIONS - * * UFC UPPER 4 BITS OF LAST FUNCTION. * OSR OPERATIONAL STATUS REGISTER. * ACR ADAPTOR CONTROL REGISTER. * ESR ERROR STATUS REGISTER. 1MD SPACE 4,10 * COMMON DECKS. *CALL COMPMAC QUAL$S EQU 1 DEFINE NO QUALIFICATION FOR *COMSDFS* *CALL COMSDFS *CALL COMSEVT *CALL COMSMSC *CALL COMSMSP *CALL COMSPIM TITLE MACRO DEFINITIONS. MACROS SPACE 4,10 ** MACRO DEFINITIONS. ** TBLM = GENERATE MASS STORAGE TABLES. * * TBLM EQ * EQ = MASS STORAGE EQUIPMENT MNEMONIC. PURGMAC TBLM TBLM MACRO EQ VFD 12/2R_EQ TEMP RMT .2 IF -DEF,P_EQ VFD 12/GEMX .2 ELSE 1 VFD 12/P_EQ TEMP RMT TMID RMT VFD 12/MLID_EQ TMID RMT ENDM TITLE ASSEMBLY CONSTANTS. **** ASSEMBLY CONSTANTS. * 819 GENERAL STATUS FIELDS. G1FD EQU 0 GROUP 1 STATUS FIELD UNFD EQU 1 UNIT FIELD CLFD EQU 2 CYLINDER ADDRESS EQFD EQU 3 3/ MUX CHANNEL, 9/ EST ORDINAL WCFD EQU 4 NUMBER OF ERROR PACKET WORDS ADFD EQU 5 HEAD AND SECTOR PCFD EQU 7 PREVIOUS CYLINDER PAFD EQU 10 PREVIOUS HEAD AND SECTOR EPFD EQU 11 START OF ERROR PACKET * ERROR PACKET FIELDS. G2FD EQU 0 GROUP 2 STATUS FIELD SBFD EQU 1 SUBSYSTEM STATUS CNFD EQU 2 CONTROLLER STATUS RTFD EQU 3 RETRY COUNT 1MD SPACE 4,10 ** DIRECT LOCATION ASSIGNMENTS. BA EQU 16 BML DATA BUFFER ADDRESS PA EQU 17 ERRLOG MESSAGE PARAMETER ADDRESS ED EQU 20 ERROR DATA POINTER WC EQU 21 PP WORD COUNT MT EQU 22 MESSAGE TYPE BC EQU 23 ERROR DATA BYTE COUNT CB EQU 24 CM WORD BYTE COUNT EP EQU 25 - 31 *EMB* POINTER WORD EH EQU 32 - 36 *EMB* HEADER WORD 1 EO EQU 37 ERROR MESSAGE OFFSET LN EQU 40 MESSAGE LENGTH EL EQU 41 *ERROR LOG MESSAGES ISSUED* FLAG ML EQU 42 MESSAGES LOST ACCUMULATOR MD EQU 43 - 47 MESSAGE DATA ADDRESS (5 LOCATIONS) CT EQU 57 CHANNEL TYPE EX EQU 60 - 64 *EMB* HEADER WORD 2 **** TITLE MAIN PROGRAM. ** MPR - BUFFERED I/O MESSAGE PROCESSOR. ORG PPFW MPR LDN EMBP FETCH *EMB* POINTER WORD CRD EP LDN ZERL INITIALIZE DIRECT CELLS CRD EL ERRNZ EL+1-ML CODE DEPENDS ON VALUE ERRNZ ML+1-MD CODE DEPENDS ON VALUE MPR1 LDD EP+1 SHN 14 READ *EMB* HEADER WORD 1 LMD EP+2 CRD EH ADN 1 READ *EMB* HEADER WORD 2 CRD EX LDD EH+3 *IN* SBD EX+3 *OUT* ZJP MPR7 IF NO MORE MESSAGES MPR2 LDD EX+3 *OUT* SBD EX+4 *LIMIT* MJN MPR3 IF *OUT* IN PROPER RANGE MONITOR HNGM *OUT* BEYOND *LIMIT* MPR3 LDD EP+1 READ NEXT MESSAGE HEADER INTO PP SHN 14 LMD EP+2 ADD EX+3 ADN 2 ALLOW FOR *EMB* HEADER CRD CM LDD CM+3 MESSAGE LENGTH IN CM WORDS ZJN MPR5 IF BUFFER TERMINATOR - RESET *EMB* *OUT* STD LN SHN 2 ADD LN STD WC MESSAGE LENGTH IN PP WORDS SBK BUFFL+1 MJN MPR4 IF MESSAGE WILL FIT IN BUFFER MONITOR HNGM MESSAGE TOO LARGE FOR BUFFER MPR4 LDD EP+1 READ COMPLETE MESSAGE INTO PP SHN 14 LMD EP+2 ADD EX+3 ADN 2 ALLOW FOR *EMB* HEADER CRM BUFF,LN LDD CM+4 SHN -13 STD T1 LDM MPRA,T1 SET PROCESSOR ADDRESS STD T1 RJM 0,T1 PROCESS MESSAGE LDD EX+3 UPDATE *OUT* ADD LN MPR5 STD EX+3 SBD EX+4 *LIMIT* MJN MPR5.1 IF *OUT* IN PROPER RANGE ZJN MPR5 IF *OUT* AT *LIMIT* MONITOR HNGM *OUT* BEYOND *LIMIT* MPR5.1 LDD EP+1 SHN 14 LMD EP+2 ADN 1 UPDATE *EMB* HEADER WORD 2 CWD EX LDD EH+3 *IN* SBD EX+3 *OUT* MPR6 NJP MPR2 IF MORE MESSAGES LJM MPR1 REREAD HEADER AND RECHECK MPR7 RJM GIL GET INTERLOCK, READ *EMB* HEADER WORD 1 LDD EH+1 COUNT MESSAGES LOST RAD ML ZJN MPR8 IF NO MESSAGES WERE LOST STD EL LDC MPRB+ERLN ISSUE * 1MD - MESSAGES LOST* MESSAGE RJM DFM MPR8 LDD EL ZJN MPR9 IF NO ERROR LOG MESSAGES WERE ISSUED LDN ZERL CRD CM LDK ELAE ISSUE *ERROR LOG ALERT* EVENT STD CM+4 MONITOR EATM MPR9 RJM CIL CLEAR INTERLOCK AND *1MD* ACTIVE FLAG NJP MPR6 IF THERE ARE MESSAGES IN THE BUFFER MONITOR DPPM DROP PP LJM PPR EXIT MPRA BSS 0 TABLE OF PROCESSOR ADDRESSES CON LOG NON-819 PROCESSOR CON FMM 819 PROCESSOR MPRB DATA C* 1MD - MESSAGES LOST.* TITLE MAIN PROCESSING ROUTINES. FMM SPACE 4,10 ** FMM - FORMAT AND ISSUE 819 BML MESSAGE. * * ENTRY (BUFF - BUFF+(EX+3)-1) = MESSAGE TO BE PROCESSED. * * USES BC, CB, CM+1, ED. * * CALLS CLM, CPD, DFM, FMT. FMM SUBR ENTRY/EXIT LDC BUFF+5 STD ED SET START OF ERROR DATA FMM1 RJM CLM CLEAR MESSAGE BUFFER * LDN 0 CLEAR CM WORD BYTE COUNT STD CB RJM FMT FORMAT BML DATA LDM WCFD,ED SET ERROR DATA BYTE COUNT ADN EPFD STD BC STM BYTM FMM2 RJM CPD COPY ERROR DATA LDN 6*5 SET *BML* MESSAGE BYTE COUNT STD CM+1 LDC BMLM+BMLN ISSUE BML DATA RJM DFM * LDN 0 CLEAR BYTE COUNT IN BML DATA STM BYTM LDD BC ZJP FMMX IF NO MORE DATA TO COPY LDM RTYM SET *NOT FIRST BLOCK* FLAG SCN 10 LMN 10 STM RTYM UJN FMM2 COPY ADDITIONAL DATA FMM SPACE 4,10 ** BML MESSAGE BUFFER. BMLM VFD 12/RM0006 819 MESSAGE ID SYMM BSS 1 SYMPTOM CODE PTHM BSS 3 PATH IDENTIFICATION ESTM BSS 1 EST ORDINAL RTYM BSS 1 RETRY COUNT MFIM BSS 1 MAINFRAME ID HUIM BSS 2 6/ FLAGS, 18/ HARDWARE IDENTIFICATION PPIM BSS 1 PPU IDENTIFICATION BYTM BSS 1 ERROR DATA BYTE COUNT ERDM BSS 22 ERROR DATA ENDM BSS 0 END OF BLOCK LOG SPACE 4,20 * LOG - LOG NON-819 MESSAGES. * * THIS ROUTINE ISSUES NON-819 ERROR MESSAGES. MESSAGES * MAY BE SENT TO THE BML, ERROR LOG OR SYSTEM DAYFILE. * * ENTRY (LN) = MESSAGE LENGTH IN CM WORDS. * (WC) = MESSAGE LENGTH IN PP WORDS. * (EP+1 - EP+2) = *EMB* ADDRESS. * (EX+3) = OFFSET TO MESSAGE HEADER IN *EMB*. * (BUFF - BUFF+(LN)-1) = MESSAGE TO BE PROCESSED. * * EXIT (EL) .NE. 0 IF ERROR LOG MESSAGE WAS ISSUED. * * USES CM+1, EL, MT. * * CALLS DFM, DV5, GEM. LOG SUBR ENTRY/EXIT LDN 0 STD EO LDM BUFF+4,EO SET MESSAGE TYPE STD MT LMN ELDY ZJN LOG2 IF ERROR LOG MESSAGE LMN MLDY&ELDY NJN LOG3 IF NOT BML MESSAGE LDD EP+1 GET *EMB* ADDRESS SHN 14 LMD EP+2 ADD EX+3 ADD OFFSET TO MESSAGE HEADER ADN 3 ALLOW FOR *EMB* AND MESSAGE HEADERS STD MD+4 SET CENTRAL MESSAGE DATA ADDRESS SHN -14 STD MD+3 LDD WC SBM BUFF+2,EO RJM DV5 RECALCULATE BYTE COUNT STD T0 SHN 2 ADM BUFF+2,EO INCLUDE RESIDUAL BYTE COUNT ADD T0 SBN 5 EXCLUDE HEADER WORD STD CM+1 LDC BMCN+MD UJN LOG4 ISSUE BML MESSAGE LOG2 LDM CM+2 PRESERVE ERRLOG ALERT FLAG RAD EL LOG3 LDM LOGA,MT SET DAYFILE SELECTION OPTION SHN 14 LMC BUFF+5 ISSUE DAYFILE MESSAGE LOG4 RJM DFM RJM GEM GENERATE ERRLOG MESSAGE UJP LOGX RETURN * TABLE OF DAYFILE SELECTION OPTIONS. LOGA INDEX INDEX MSDY,JNMN/10000 MASTER DAYFILE INDEX ELDY,ERLN/10000 ERROR LOG DAYFILE INDEX MLDY,BMLN/10000 MAINTENANCE LOG DAYFILE INDEX MLDY+1 TITLE SUBROUTINES. CCR SPACE 4,10 ** CCR - CALL CONVERSION ROUTINE. * * ENTRY (T5) = INDEX TO LAST CONVERSION ROUTINE USED. * * EXIT (T5) = INDEX TO CONVERSION ROUTINE USED. * * USES T1. * * CALLS CONVERSION ROUTINES LISTED IN *THCR*. CCR1 LDM THCR,T5 SELECT CONVERSION ROUTINE STD T1 RJM 0,T1 CONVERT HEX DATA CCR SUBR ENTRY/EXIT AOD T5 SBN THCRL MJN CCR1 IF NOT END OF *THCR* ZJN CCR0 IF VALID INDEX MONITOR CHGM CONDITIONAL HANG CCR0 STD T5 RESET INDEX UJN CCR1 SELECT CONVERSION ROUTINE THCR BSS 0 TABLE OF HEX CONVERSION ROUTINES CON C1P CON C2P CON C3P THCRL EQU *-THCR LENGTH OF TABLE CDA SPACE 4,10 ** CDA - CONVERT DISK ADDRESS FOR *ERMD* MESSAGE. * * ENTRY (A) = RELATIVE LOCATION OF DISK ADDRESS. * * EXIT (BA) = DATA ADDRESS ADVANCED. * * USES PA. * * CALLS C2D, C4D. CDA SUBR ENTRY/EXIT ADD EO STD BA LDC ERMD+3 SET PARAMETER ADDRESS STD PA RJM C4D CONVERT CYLINDER NUMBER LDI BA SHN -6 RJM C2D CONVERT TRACK NUMBER STM ERMD+11 LDI BA RJM C2D CONVERT SECTOR NUMBER STM ERMD+16 AOD BA UJN CDAX RETURN CIL SPACE 4,10 ** CIL - CLEAR *EMB* INTERLOCK AND RESET FLAGS. * * ENTRY (EP+1 - EP+2) = FWA OF *EMB*. * (EH - EH+4) = *EMB* INTERLOCK WORD 1. * (EX - EX+4) = *EMB* INTERLOCK WORD 2. * * EXIT (A) = (EH+4) = 0 IF *EMB* BUFFER IS EMPTY. * *1MD* ACTIVE CLEARED IF *EMB* BUFFER IS EMPTY. * *EMB* INTERLOCK CLEARED IN ALL CASES. CIL SUBR ENTRY/EXIT LDD EH+3 *IN* SBD EX+3 *OUT* ZJN CIL1 IF *EMB* EMPTY LDN 2 AVOID CLEARING *1MD ACTIVE* CIL1 LMN 3 INTERLOCK AND *1MD* ACTIVE LMD EH+4 CLEAR INTERLOCK, POSSIBLY *1MD ACTIVE* STD EH+4 LDN 0 CLEAR *MESSAGES LOST* STD EH+1 LDD EP+1 SHN 14 LMD EP+2 CWD EH LDD EH+4 UJN CILX RETURN CLM SPACE 4,10 ** CLM - CLEAR MESSAGE BUFFER. * * EXIT (A) = 0. * * USES T1. CLM SUBR ENTRY/EXIT LDN ENDM-BMLM-1 STD T1 CLM1 LDN 0 CLEAR BUFFER STM BMLM,T1 SOD T1 NJN CLM1 IF NOT END OF BUFFER UJN CLMX RETURN CMP SPACE 4,10 ** CMP - CONVERT BASIC MESSAGE PARAMETERS. * * ENTRY (EO) = BML MESSAGE OFFSET INTO *BUFF*. * * EXIT (CT) = CHANNEL TYPE. * * USES PA. * * CALLS CDA, C2D, C4D. CMP SUBR ENTRY/EXIT * INSERT PARAMETERS IN *ERMB* MESSAGE. LDM BUFF+3*5,EO CONVERT ERROR CODE RJM C2D STM ERMB+7 SET IN MESSAGE * INSERT PARAMETERS IN *ERMC* MESSAGE. LDM BUFF+1*5+2,EO SET CHANNEL SPECIFICATION STD CT LPN 37 CONVERT CHANNEL NUMBER RJM C2D STM ERMC+3 LDD CT EXTRACT CHANNEL TYPE LPN 40 STD CT ZJN CMP1 IF NON-CONCURRENT CHANNEL LDC 2RNC&2RCC CMP1 LMC 2RNC SET CHANNEL TYPE IN MESSAGE STM ERMC LDM BUFF+1*5+3,EO CONVERT UNIT NUMBER RJM C2D STM ERMC+10 * INSERT PARAMETERS IN *ERMD* MESSAGE. LDC BUFF+3*5+1 CONVERT DISK ADDRESS RJM CDA * INSERT PARAMETERS IN *ERME* MESSAGE. LDC ERME+14 SET PARAMETER ADDRESS STD PA LDD CT ZJN CMP2 IF NON-CONCURRENT CHANNEL LDM BUFF+10*5,EO SHN -6 CONVERT UPPER 4 BITS OF FUNCTION RJM C2D STI PA SET IN MESSAGE AOD PA CMP2 RJM C4D CONVERT LAST FUNCTION LDC 2L.. STI PA TERMINATE MESSAGE * INSERT PARAMETERS IN *ERMF* MESSAGE. LDC ERMG+5 SET PARAMETER ADDRESS STD PA RJM C4D CONVERT GENERAL STATUS UJP CMPX RETURN CPD SPACE 4,15 ** CPD - COPY ERROR DATA. * * ENTRY (BC) = ERROR PACKET BYTE COUNT. * (CB) = CM WORD BYTE COUNT. * (ED) = ADDRESS OF ERROR PACKET. * * EXIT *BML* BUFFER FILLED. * POINTERS UPDATED. * * USES BC, CB, ED, T2. CPD3 AOD T2 ADVANCE *BML* BUFFER COUNT LMN ENDM-ERDM ZJN CPD5 IF END OF BUFFER LDN 0 ZERO FILL BUFFER STM ERDM,T2 CPD4 UJN CPD3 LOOP ON ZERO FILL CPD5 STD BC LDD CB ZJN CPDX IF EVEN CM WORD BYTE COUNT CPD6 AOD ED ADVANCE ERROR DATA POINTER AOD CB LMN 5 NJN CPD6 IF NOT END OF CM WORD STD CB LDM RTYM CLEAR CONTINUATION FLAG SCN 4 STM RTYM CPD SUBR ENTRY/EXIT LDN 0 STD T2 CPD1 LDI ED COPY ERROR DATA STM ERDM,T2 AOD ED ADVANCE ERROR DATA POINTER AOD CB LMN 5 NJN CPD2 IF NOT FULL CM WORD STD CB CPD2 SOD BC DECREMENT BYTE COUNT ZJN CPD4 IF END OF ERROR DATA AOD T2 ADVANCE *BML* BUFFER POINTER LMN ENDM-ERDM NJN CPD1 IF NOT END OF *BML* BUFFER LDM RTYM SET CONTINUATION FLAG SCN 4 LMN 4 STM RTYM UJN CPDX RETURN CSD SPACE 4,10 ** CSD - CONVERT STATUS DATA. * * ENTRY (A) = 6/ PC, 12/ MA * PC = PARAMETER COUNT FOR MESSAGE BLOCK. * MA = MESSAGE ADDRESS FOR 1ST PARAMETER. * * USES PA, T6, T7. * * CALLS CCR. CSD1 RJM CCR CALL CONVERSION ROUTINE LDD T6 SHN 21-0 NJN CSD3 IF NOT MESSAGE BOUNDARY CSD2 LDC 200125 CSD3 STD T6 UPDATE SKIP CONTROL SHN 1-21 LMN 2 RAD PA ADJUST PARAMETER ADDRESS SOD T7 NJN CSD1 IF NOT END OF PARAMETERS CSD SUBR ENTRY/EXIT SBN 3 STD PA SHN -14 SET PARAMETER COUNT STD T7 ADN 1 ALLOW FOR TWO BYTE PARAMETERS RAD T7 UJN CSD2 SET SKIP CONTROL C1P SPACE 4,10 ** C1P - CONVERT FIRST PAIR OF HEX DIGITS. * * ENTRY (BA) = ADDRESS OF HEX DATA. * * EXIT (T2) = FIRST DIGIT OF NEXT PAIR. * (BA) = BUFFER ADDRESS ADVANCED. * * CALLS CHD. C1P SUBR ENTRY/EXIT LDI BA STD T2 SAVE DIGIT FOR NEXT CONVERSION SHN -4 RJM CHD CONVERT HEX DATA AOD BA UJN C1PX RETURN C2P SPACE 4,10 ** C2P - CONVERT SECOND PAIR OF HEX DIGITS. * * ENTRY (T2) = FIRST DIGIT OF PAIR. * (BA) = ADDRESS OF HEX DATA. * * EXIT (T2) = NEXT PAIR FOR CONVERSION. * * CALLS CHD. C2P SUBR ENTRY/EXIT LDD T2 LPN 17 EXTRACT FIRST DIGIT SHN 14 LMI BA SAVE NEXT PAIR OF HEX DIGITS STD T2 SHN -10 CONVERT HEX DATA RJM CHD UJN C2PX RETURN C3P SPACE 4,10 ** C3P - CONVERT THIRD PAIR OF HEX DIGITS. * * ENTRY (T2) = PAIR FOR CONVERSION. * (BA) = ADDRESS OF HEX DATA. * * EXIT (BA) = BUFFER ADDRESS ADVANCED. * * CALLS CHD. C3P SUBR ENTRY/EXIT LDD T2 RJM CHD CONVERT HEX DATA AOD BA UJN C3PX RETURN C4D SPACE 4,10 ** C4D - CONVERT FOUR OCTAL DIGITS. * * ENTRY (BA) = ADDRESS OF OCTAL DATA. * (PA) = ADDRESS TO STORE CONVERSION. * * EXIT (BA) = DATA ADDRESS ADVANCED. * (PA) = PARAMETER ADDRESS ADVANCED. * * CALLS C2D. C4D SUBR ENTRY/EXIT LDI BA SHN -6 CONVERT UPPER TWO DIGITS RJM C2D STI PA STORE CONVERSION AOD PA LDI BA CONVERT LOWER DIGITS RJM C2D STI PA STORE CONVERSION AOD BA AOD PA UJN C4DX RETURN C6D SPACE 4,15 ** C6D - CONVERT SIX OCTAL DIGITS. * * ENTRY (A) .GE. 0 IF DATA BEGINS ON HALF BYTE BOUNDARY. * .LT. 0 IF DATA BEGINS ON FULL BYTE BOUNDARY. * (BA) = ADDRESS OF OCTAL DATA. * (PA) = ADDRESS TO STORE CONVERSION. * * EXIT (BA) = DATA ADDRESS ADVANCED. * (PA) = PARAMETER ADDRESS ADVANCED. * * CALLS C2D, C4D. C6D1 LDI BA CONVERT TWO DIGITS RJM C2D STI PA SET CONVERSION IN MESSAGE AOD PA AOD BA CONVERT FOUR DIGITS RJM C4D C6D SUBR ENTRY/EXIT PJN C6D1 IF DATA ON HALF BYTE BOUNDARY RJM C4D CONVERT FOUR DIGITS LDI BA SHN -6 CONVERT TWO DIGITS RJM C2D STI PA SET CONVERSION IN MESSAGE AOD PA UJN C6DX RETURN FNT SPACE 4,10 ** FMT - FORMAT *BML* MESSAGE. * * ENTRY (ED) = ADDRESS OF ERROR MESSAGE DATA. * * USES T0, T1, CM - CM+4. FMT SUBR ENTRY/EXIT * SET SYMPTOM CODE AND DRIVER TYPE. LDI ED TEST UNRECOVERED DATA ERROR ERRNZ G1FD CODE IS VALUE DEPENDENT SHN 21-12 PJN FMT1 IF NOT UNRECOVERED DATA ERROR LDN RS0101-100 UJN FMT4 SET SYMPTOM CODE FMT1 SHN 12-2 PJN FMT2 IF NOT REQUEST ERROR LDN RS0104-100 UJN FMT4 SET SYMPTOM CODE FMT2 LDM EPFD+G2FD,ED CHECK ERROR RECOVERY SHN 21-6 PJN FMT3 IF NOT RECOVERED DATA ERROR LDN RS0102-100 UJN FMT4 SET SYMPTOM CODE FMT3 LDN RS0103-100 FMT4 ADC DHCD*400+100 STM SYMM * SET DATA PATH INFORMATION. LDM UNFD,ED CHECK UNIT NUMBER LPN 7 STM PTHM+1 SET VALUE IN BML MESSAGE LPN 4 ADN 2 CHANNEL (CONTROLLER) NUMBER STD T1 LDM EQFD,ED SET FLPP NUMBER SHN -11 SHN 1 STD T0 LDM EQFD,ED SET EST ORDINAL LPC 777 STM ESTM SFA EST SET DEVICE MNEMONIC ADK EQDE CRD CM LDD CM+3 ADC -2RDV STM EQFD,ED LDM EPFD+G2FD,ED CHECK WHICH FLPP FOUND ERROR SHN 0-13 ADD T0 ADJUST FLPP NUMBER SHN 6 STM MFIM LMD T1 STM PTHM SET RECOVERY PATH * SET RETRY COUNT + RECOVERY FLAGS. LDM UNFD,ED SET READ/WRITE FLAG SHN -5 LPN 2 STD T0 LDI ED ERRNZ G1FD CODE IS VALUE DEPENDENT SHN -12 LPN 1 EXTRACT UNRECOVERED STATUS RAD T0 LDM EPFD+RTFD,ED SET RETRY COUNT LPC 777 SBD HN MJN FMT5 IF .LE. 77 LCN 1 FMT5 ADD HN RECOVERY COUNT SHN 6 LMD T0 APPEND FLAGS STM RTYM LDD IA SET PP IDENTIFICATION STM PPIM LJM FMTX RETURN GEM SPACE 4,15 ** GEM - GENERATE ERRLOG MESSAGE FOR MASS STORAGE ERROR. * * ENTRY (EO) = BML MESSAGE OFFSET INTO *BUFF*. * (LN) = BML MESSAGE LENGTH. * (MT) = MESSAGE TYPE. * * EXIT (EL) = 1 IF ERRLOG MESSAGE ISSUED. * * USES T1, T5, T7, EL, LA, CM - CM+4. * * CALLS ACS, C2D, DFM. * * MACROS SFA. GEM3 STD LA SAVE MESSAGE TABLE ADDRESS GEM4 LDC ELMB+3 STD T1 SET ASSEMBLY ADDRESS LDN 0 STI T1 LDI LA APPEND MESSAGE TO PREFIX RJM ACS LDC ELMB+ERLN ISSUE ERRLOG MESSAGE RJM DFM AOD LA ADVANCE MESSAGE TABLE ADDRESS LDI LA NJN GEM4 IF NOT END OF TABLE LDN 1 STD EL SET ERRLOG ALERT STATUS GEM SUBR ENTRY/EXIT LDD MT LMN MLDY NJN GEMX IF NOT BML MESSAGE LCN 0 INITIALIZE INDEX STD T7 GEM0 AOD T7 ADVANCE INDEX SBK TMIDL ZJN GEMX IF END OF LIST LDM TMID,T7 GET NEXT MASS STORAGE MESSAGE ID LMM BUFF+1*5,EO NJN GEM0 IF MESSAGE ID DOES NOT MATCH LDM BUFF+2*5+1,EO LPN 1 ZJN GEMX IF RECOVERED ERROR LDM BUFF+2*5,EO STD T5 SET EST ORDINAL ZJN GEMX IF NO EST ORDINAL SPECIFIED LDK ESTP CHECK MAXIMUM EST ORDINAL CRD CM LDD T5 SBD CM+1 MAXIMUM MASS STORAGE EST ORDINAL + 1 PJN GEMX IF NOT VALID MASS STORAGE DEVICE SFA EST,T5 ADK EQDE READ EST ENTRY CRD CM LCN 0 INITIALIZE INDEX STD T7 GEM1 AOD T7 ADVANCE INDEX LDM TDVT,T7 CHECK NEXT MASS STORAGE DEVICE TYPE ZJP GEMX IF END OF LIST LMD CM+3 NJN GEM1 IF NOT MATCHING DEVICE TYPE LDD CM+3 STM ELMB GENERATE MESSAGE PREFIX LDD T5 LPN 7 SHN 6 SEPARATE PREFIX FROM MESSAGE ADC 2R0, STM ELMB+2 LDD T5 CONVERT REMAINDER OF EST ORDINAL SHN -3 RJM C2D STM ELMB+1 LDD LN CHECK MESSAGE LENGTH SBN 4 PJN GEM2 IF NOT BASIC MESSAGE LDC GEMA LJM GEM3 ISSUE BASIC ERRLOG MESSAGE GEM2 LDM TEMP,T7 SET PROCESSOR ADDRESS STD T7 LJM 0,T7 EXIT TO MESSAGE PROCESSOR GEMA CON ERMA CON 0 GIL SPACE 4,10 ** GIL - GET *EMB* INTERLOCK. * * ENTRY (EP+1 - EP+2) = FWA OF *EMB*. * * EXIT *EMB* INTERLOCK OBTAINED. * (EH - EH+4) = *EMB* HEADER WORD 1 REFRESHED. * * USES CM - CM+4, EH - EH+4. * * MACROS DELAY, MONITOR. GIL2 LDD EP+1 SHN 14 READ *EMB* HEADER WORD LMD EP+2 CRD EH GIL SUBR ENTRY/EXIT GIL1 LDK ZERL CRD CM LDD EP+1 FORMAT *UTEM* REQUEST STD CM+3 LDD EP+2 STD CM+4 MONITOR UTEM GET *EMB* INTERLOCK LDD CM+1 ZJN GIL2 IF INTERLOCK OBTAINED DELAY UJN GIL1 RETRY TITLE MESSAGE GENERATORS. PDA SPACE 4,10 ** GENERATE ERRLOG MESSAGES FOR *LDAM* TYPE DEVICES. PDA BSS 0 ENTRY PDB BSS 0 PDD BSS 0 PDG BSS 0 PDI BSS 0 PDJ BSS 0 PDK BSS 0 PDL BSS 0 PDM BSS 0 PDQ BSS 0 PDR BSS 0 PDX BSS 0 PDY BSS 0 PDZ BSS 0 RJM CMP CONVERT MESSAGE PARAMETERS * INSERT PARAMETERS IN *ERMI* THRU *ERMM* MESSAGES. LDC ERMI+2 SET PARAMETER ADDRESS STD PA LDN 5 NUMBER OF MESSAGES STD T7 PDA1 LDN 4 NUMBER OF PARAMETERS / MESSAGE STD T6 PDA2 RJM C4D CONVERT FOUR OCTAL DIGITS LDN 2 RAD PA ADVANCE PARAMETER ADDRESS SOD T6 NJN PDA2 IF NOT END OF MESSAGE AOD PA SOD T7 NJN PDA1 IF NOT END OF MESSAGES LDC PDAT LJM GEM3 ISSUE ERRLOG MESSAGES PDAT CON ERMA CON ERMB CON ERMC CON ERMD CON ERME CON ERMF CON ERMH CON ERMI CON ERMJ CON ERMK CON ERML CON ERMM CON 0 TITLE MESSAGE GENERATORS. PDC SPACE 4,10 ** GENERATE ERRLOG MESSAGES FOR CCC COUPLED DEVICES. PDC BSS 0 ENTRY RJM CMP CONVERT MESSAGE PARAMETERS * INSERT PARAMETERS IN *ERMZ* THRU *ERM5* MESSAGES. LDC ERMZ-1 SET PARAMETER ADDRESS STD PA LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX STD T5 LDN 24D NUMBER OF PARAMETERS IN MESSAGE BLOCK STD T7 PDC1 LPN 3 ZJN PDC2 IF CROSSING MESSAGE BOUNDARY LCN 1 PDC2 ADN 4 ADVANCE CONVERSION ADDRESS RAD PA RJM CCR CALL CONVERSION ROUTINE SOD T7 NJN PDC1 IF NOT END OF PARAMETERS * INSERT PARAMETERS IN *ERMX* MESSAGE. LDC ERMX+12 SET PARAMETER ADDRESS STD PA AOD BA ADJUST BML DATA ADDRESS LDI BA RJM CHD CONVERT CYBER I/F STATUS * INSERT PARAMETERS IN *ERMY* MESSAGE. LDC ERMY+6 SET PARAMETER ADDRESS STD PA AOD BA ADJUST BML DATA ADDRESS LDI BA STD T2 SAVE STATUS FOR *C3P* SHN -10 RJM CHD CONVERT CCC STATUS LDN 1R -1R0 SHN 6 INSERT BLANK SEPARATOR RAM -1,PA RJM C3P CONVERT REMAINDER OF STATUS LDD CT ZJN PDC3 IF NOT DMA PATH TO DEVICE * INSERT PARAMETERS IN *ERM6* MESSAGE. AOD BA ADJUST DATA ADDRESS LDC ERM6+7 STD PA RJM C6D CONVERT OPERATIONAL STATUS REGISTER * INSERT PARAMETERS IN *ERM7* MESSAGE. LDC ERM7+7 SET PARAMETER ADDRESS STD PA LCN 0 CONVERT ADAPTOR CONTROL REGISTER RJM C6D * INSERT PARAMETERS IN *ERM8* MESSAGE. LDC ERM8+7 SET PARAMETER ADDRESS STD PA RJM C6D CONVERT ERROR STATUS REGISTER LDC ERM6 PDC3 STM PDCTE SET / CLEAR END OF MESSAGES LDC PDCT LJM GEM3 ISSUE ERRLOG MESSAGES PDCT CON ERMA CON ERMB CON ERMC CON ERMD CON ERME CON ERMF CON ERMX CON ERMY CON ERMH CON ERMZ CON ERM1 CON ERM2 CON ERM3 CON ERM4 CON ERM5 PDCTE CON ERM6 CON ERM7 CON ERM8 CON 0 TITLE MESSAGE GENERATORS. PDE SPACE 4,10 ** GENERATE ERRLOG MESSAGES FOR EXTENDED MEMORY DEVICES. PDE BSS 0 ENTRY PDP BSS 0 * INSERT PARAMETERS IN *ERMB* MESSAGE. LDM BUFF+3*5,EO CONVERT ERROR CODE RJM C2D STM ERMB+7 SET IN MESSAGE * INSERT PARAMETERS IN *ERMG* MESSAGE. LDC BUFF+4*5+1 SET BUFFER ADDRESS ADD EO STD BA LDC ERMG+5 SET PARAMETER ADDRESS STD PA RJM C4D CONVERT STATUS * INSERT PARAMETERS IN *ERMN* MESSAGE. LDC ERMN+7 SET PARAMETER ADDRESS STD PA RJM C4D CONVERT WORD COUNT * INSERT PARAMETERS IN *ERMO* MESSAGE. LDC ERMO+5 SET PARAMETER ADDRESS STD PA RJM C4D CONVERT EXTENDED MEMORY ADDRESS RJM C4D LDC PDET LJM GEM3 ISSUE ERRLOG MESSAGES PDET CON ERMA CON ERMB CON ERMG CON ERMN CON ERMO CON 0 TITLE MESSAGE GENERATORS. PDF SPACE 4,10 ** GENERATE ERRLOG MESSAGES FOR 887 DEVICES. PDF BSS 0 ENTRY PDH BSS 0 LDN 0 PDF1 STM PDFA * INSERT PARAMETERS IN *ERMP* MESSAGE. LDM BUFF+3*5+4,EO CONVERT FAULT CODE RJM C2D STM ERMP+7 SET IN MESSAGE * INSERT PARAMETERS IN *ERMQ* MESSAGE. LDM BUFF+1*5+2,EO CONVERT CPP NUMBER SHN -6 RJM C2D STM ERMQ+3 LDM BUFF+1*5+2,EO CONVERT CCH NUMBER LPN 37 RJM C2D STM ERMQ+10 LDM BUFF+1*5+4,EO APPEND PORT DESIGNATOR ADC 2RA, STM ERMQ+11 LDM BUFF+1*5+3,EO CONVERT EQUIPMENT (CONTROLLER) NUMBER SHN -6 RJM C2D SHN 6 LMN 1R, STM ERMQ+15 LDM BUFF+1*5+3,EO CONVERT UNIT NUMBER LPN 77 RJM C2D STM ERMQ+21 PDF2 LDC PDNT SET LIST ADDRESS STD LA PDF3 LDM PDFT-PDNT,LA COPY MESSAGE LIST STI LA AOD LA ADVANCE LIST ADDRESS LMC PDNT+PDFTE-PDFT NJN PDF3 IF NOT END OF COPY LDD LN SBN 4 NJN PDF4 IF MESSAGE HAS MORE THAN FAULT CODE * LDN 0 STM PDNT+PDFTC-PDFT TERMINATE MESSAGE LIST LDC PDNT LJM GEM3 ISSUE ERRLOG MESSAGES * INSERT PARAMETERS IN *ERMD* MESSAGE. PDF4 LDC BUFF+4*5+3 CONVERT DISK ADDRESS RJM CDA * INSERT PARAMETERS IN *ERMS* MESSAGE. LDC ERMS+10 SET PARAMETER ADDRESS STD PA LDN 4 ADJUST BML DATA ADDRESS RAD BA LDM PDFA NJN PDF5 IF NOT 887 DEVICE LDI BA LPC 377 ISOLATE COMMAND CODE STI BA PDF5 LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX STD T5 RJM CCR CONVERT LAST COMMAND RJM CCR * INSERT PARAMETERS IN *ERME* MESSAGE. LDC ERME+14 SET PARAMETER ADDRESS STD PA RJM CCR CONVERT LAST FUNCTION RJM CCR LDC 2L.. TERMINATE MESSAGE STI PA * INSERT PARAMETERS IN *ERMR* MESSAGE. LDC ERMR+4 SET PARAMETER ADDRESS STD PA LDN 4 ITERATION COUNT STD T7 PDF6 AOD PA SKIP BLANK SEPARATOR RJM CCR RJM CCR CONVERT CHANNEL DATA SOD T7 NJN PDF6 IF MORE PARAMETERS LDN 1R -1R0 SHN 6 INSERT BLANK SEPARATOR RAM ERMR+14 LDD LN CHECK BML MESSAGE LENGTH SBN 10D PJN PDF8 IF MESSAGE INCLUDES STATUS BLOCKS LDN 0 PDF7 STM PDFTE SET / CLEAR END OF MESSAGES LDC PDFT LJM GEM3 ISSUE ERRLOG MESSAGES PDF8 LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX STD T5 LDN 10 ADJUST BML DATA ADDRESS RAD BA LDC 0 887 VS. 9853/583X/47444 PATH SELECTOR PDFA EQU *-1 NJP PDN1 IF 9853/583X/47444 DEVICE * INSERT PARAMETERS IN *ERMU* AND *ERMV* MESSAGES. LDC 7S12+ERMU+2 CONVERT STATUS DATA RJM CSD * INSERT PARAMETERS IN *ERMI* AND *ERMJ* MESSAGES. LDC 10S12+ERMI+2 CONVERT STATUS DATA RJM CSD LDC ERMT UJP PDF7 ISSUE ERRLOG MESSAGES PDFT CON ERMA CON ERMP CON ERMQ PDFTC CON ERMD CON ERME CON ERMR CON ERMS PDFTE CON ERMT CON ERMU CON ERMV CON ERMW CON ERMI CON ERMJ CON 0 TITLE MESSAGE GENERATORS. PDN SPACE 4,10 ** GENERATE ERRLOG MESSAGES FOR 9853/583X/47444 DEVICES. PDN BSS 0 ENTRY PEA BSS 0 DAS SSD 1X PEB BSS 0 DAS SSD 2X PEC BSS 0 DAS SABRE 1X PED BSS 0 DAS SABRE 1XP PEE BSS 0 DAS SABRE 2X PEF BSS 0 DAS SABRE 2XP PEG BSS 0 DAS ELITE 1X PEH BSS 0 DAS ELITE 1XP PEI BSS 0 DAS ELITE 2X (MP) PEJ BSS 0 DAS ELITE 2XP (MP) PEK BSS 0 DAS ELITE 3XP (MP) PEL BSS 0 DAS ELITE 4X (MP) PEM BSS 0 DAS SABRE 3XP (MP) PEN BSS 0 DAS SABRE 4X (MP) PEO BSS 0 DAS 3.5IN 1X PEP BSS 0 DAS 3.5IN 1XP PES BSS 0 DAS 3.5IN 2X (MP) PEU BSS 0 DAS 3.5IN 2XP (MP) PEV BSS 0 DAS 3.5IN 3XP (MP) PEW BSS 0 DAS 3.5IN 4X (MP) LDN 2 LJM PDF1 GENERATE ALL BUT STATUS MESSAGES PDNT EQU BFMS-76 ADDRESS OF MESSAGE LIST PDN1 LDC ERM9 PUT STATUS HEADER MESSAGE IN LIST STI LA AOD LA ADVANCE LIST ADDRESS LDC PDNT+100 STD PA SET MESSAGE ASSEMBLY ADDRESS STD CM LDI BA FWA OF RESPONSE PACKET LPN 17 SHN 14 LMM 1,BA FORM STATUS BLOCK LENGTH SHN -10 ADN 1 ALLOW FOR PADDING ON LAST SUBSTATUS SCN 1 STD BC SET OCTET COUNT SBN 12 PJN PDN5 IF LENGTH NOT TOO SHORT PDN3 SOD LA PDN4 LDN 0 TERMINATE LIST STI LA LDC PDNT LJM GEM3 ISSUE ERRLOG MESSAGES PDN5 SBK 200 PJN PDN3 IF LENGTH TOO LONG RJM CCR LDN 10 LENGTH OF BASIC RESPONSE PACKET PDN6 STD T7 ADN 1+2 INCLUDE ID WORD SCN 1 STD T4 ALLOW FOR PADDING RJM CCR PDN7 LDN 4 SET LOOP CONTROL STD T6 PDN8 LDC 2R INSERT LEADING BLANKS IN BUFFER STI PA AOD PA CONVERT TWO HEX DIGITS RJM CCR SOD T7 ZJN PDN9 IF END OF SUBSTATUS RJM CCR SOD T7 ZJN PDN9 IF END OF SUBSTATUS SOD T6 NJN PDN8 IF NOT END OF MESSAGE LINE LDN 1R &1R. PDN9 LMN 1R. SET END OF LINE SHN 6 STI PA TERMINATE MESSAGE LINE LDD CM STI LA PUT LINE IN MESSAGE LIST AOD PA STD CM FWA OF NEXT LINE AOD LA LDD T7 NJN PDN13 IF NOT END OF SUBSTATUS * LDN 0 SBD T4 DECREMENT STATUS LENGTH RAD BC MJN PDN9.1 IF END OF STATUS BLOCK NJN PDN9.2 IF NOT END OF STATUS BLOCK PDN9.1 LJM PDN4 TERMINATE LIST PDN9.2 LDD T4 LPN 1 ZJN PDN10 IF NOT PADDING OCTET RJM CCR SOD PA RESET PARAMETER ADDRESS PDN10 LDC 2R STI PA SET LEADING BLANKS IN BUFFER AOD PA RJM CCR CONVERT SUBSTATUS LENGTH SOD T0 MJN PDN11 IF INVALID SUBSTATUS LENGTH LPC 177 NJN PDN12 IF VALID SUBSTATUS PDN11 LDD BC PDN12 LJM PDN6 GENERATE NEXT MESSAGE LINE PDN13 LDC 2R BLANK FILL START OF MESSAGE STI PA STM 1,PA DONT RELIST SUBSTATUS HEADER STM 2,PA LDN 3 ADVANCE BUFFER ADDRESS RAD PA LJM PDN7 CONTINUE SUBSTATUS ON NEXT LINE TITLE MISCELLANEOUS. TDVT SPACE 4,10 ** TDVT - TABLE OF MASS STORAGE DEVICE TYPES. TDVT BSS 0 TABLE OF DEVICE TYPES TBL "MSEQ" CON 0 END OF TABLE TELM SPACE 4,10 ** TELM - TABLE OF ERRLOG MESSAGES. TELM BSS 0 TABLE OF MESSAGES ERMA DATA Z*UNRECOVERED MASS STORAGE ERROR.* ERMB DATA Z*ERROR CODE = NN.* ERMC DATA Z*NCH = CC, UN = UU.* ERMD DATA Z*CYL = YYYY, TRK = TT, SEC = SS.* ERME DATA Z*LAST CHANNEL FUNCTION = FFFFFF.* ERMF DATA H*GENERAL * ERMG DATA Z*STATUS = GGGG.* ERMH DATA Z*DETAILED STATUS.* ERMI DATA Z* 01=XXXX 02=XXXX 03=XXXX 04=XXXX.* ERMJ DATA Z* 05=XXXX 06=XXXX 07=XXXX 08=XXXX.* ERMK DATA Z* 09=XXXX 10=XXXX 11=XXXX 12=XXXX.* ERML DATA Z* 13=XXXX 14=XXXX 15=XXXX 16=XXXX.* ERMM DATA Z* 17=XXXX 18=XXXX 19=XXXX 20=XXXX.* ERMN DATA Z*WORD COUNT = CCCC.* ERMO DATA Z*XM ADDR = AAAAAAAA.* ERMP DATA Z*FAULT CODE = NN.* ERMQ DATA Z*CPP = PP, CCH = CCB, EQ = E, UN = UU.* ERMR DATA Z*CCH REG = DDDD EEEE OO C RRRR.* ERMS DATA Z*LAST COMMAND = CCCC.* ERMT DATA Z*IHD STATUS.* ERMU DATA Z* 01=AAAA 02=BBBB 03=CCCC 04=DDDD.* ERMV DATA Z* 05=EEEE 06=FFFF 07=GGGG.* ERMW DATA Z*DEVICE STATUS.* ERMX DATA Z*CYBER I/F STATUS = II.* ERMY DATA Z*CCC STATUS = CCC.* ERMZ DATA Z* SB00=SS SB01=SS SB02=SS SB03=SS.* ERM1 DATA Z* SB04=SS SB05=SS SB06=SS SB07=SS.* ERM2 DATA Z* SB08=SS SB09=SS SB10=SS SB11=SS.* ERM3 DATA Z* SB12=SS SB13=SS SB14=SS SB15=SS.* ERM4 DATA Z* SB16=SS SB17=SS SB18=SS SB19=SS.* ERM5 DATA Z* SB20=SS SB21=SS SB22=SS SB23=SS.* ERM6 DATA Z*OP STAT REG = OOOOOO.* ERM7 DATA Z*AD CNTL REG = AAAAAA.* ERM8 DATA Z*ER STAT REG = EEEEEE.* ERM9 DATA Z*9853/583X/47444 STATUS.* TEMP SPACE 4,10 ** TEMP - TABLE OF ERRLOG MESSAGE PROCESSORS. TEMP BSS 0 TABLE OF MESSAGE PROCESSORS TEMP HERE TMID SPACE 4,10 ** TMID - TABLE OF MASS STORAGE BML MESSAGE ID-S. TMID BSS 0 TABLE OF MESSAGE ID-S TMID HERE TMIDL EQU *-TMID LENGTH OF TABLE SPACE 4,10 ** COMMON DECKS. *CALL COMPACS CA EQU PA DEFINE CONVERSION ADDRESS LIST X *CALL COMPCHD LIST * *CALL COMPC2D *CALL COMPDV5 1MD SPACE 4,10 OVERFLOW BUFF SPACE 4,10 ELMB BSS 0 ERRLOG MESSAGE ASSEMBLY BUFFER BUFF EQU ELMB+5*5 MESSAGE BUFFER BUFFL EQU PDNT-BUFF ERRNG PDNT-BUFF-5*200 OVERFLOW END