IDENT MDD,MDD PERIPH BASE MIXED SST DLYA,RDS,SSCP TITLE MDD - TWO PORT MUX MAINTENANCE DISPLAY. *COMMENT MDD - LEVEL=11. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. MDD SPACE 4,10 *** MDD - MAINTENANCE CHANNEL DISPLAY PREPROCESSOR. * * B. R. HANSON. 81/02/29. * R. A. ANDERSON. 85/09/18. * K. A. PRIEVE. 87/06/10. SPACE 4,10 *** THIS IS THE NOS OPERATING SYSTEM DEPENDENT RESIDENT * OVERLAY. THIS PROGRAM DETERMINES WHETHER THERE IS ALREADY A * COPY OF *SCI* RUNNING IN A PP. IF SO, IT TURNS ON *MDD* MODE * FOR THAT COPY (UNLESS NOS/VE IS RUNNING IN WHICH CASE *MDD* * MUST BE INITIATED FROM NOS/VE). IF *SCI* IS NOT CURRENTLY * EXECUTING, PP RESIDENT IS SAVED AND *SCI* IS LOADED FROM THE * CIP LIBRARY. THIS PROGRAM ALSO HANDLES THE UNIQUE *MDD* * STARTUP AND TERMINATION REQUIREMENTS FOR NOS. * * THIS VERSION OF *MDD* REQUIRES CIP TO BE AT LEVEL 9 OR * GREATER. SPACE 4,10 *** ERROR LOG MESSAGES. * * * MDD - ALREADY LOADED.* * *MDD* IS ALREADY RUNNING IN A PP. ONLY ONE COPY * CAN RUN AT A TIME. * MDD PP WILL DROP OUT. * ALERT STATUS IS SET. * * * MDD - BYE COMMAND EXECUTED.* * THE USER OF MDD HAS ENTERED THE BY COMMAND DIRECTING * MDD TO DROP OUT. * * * MDD - CONSOLE MUST BE UNLOCKED.* * AN ATTEMPT WAS MADE TO BRING MDD UP WITH THE CONSOLE * IN A LOCKED STATE. * MDD PP WILL DROP OUT. * ALERT STATUS IS SET. * * * MDD - IMPROPER ACCESS ATTEMPT.* * MDD WAS NOT INITIATED FROM EITHER A SYSTEM CONTROL POINT * OR WITH ENGINEERING ACCESS. * MDD WILL DROP OUT. * * * MDD - MR ERROR.* * A MAINTENANCE REGISTER ERROR WAS DETECTED DURING MDD * INITIALIZATION. * MDD WILL DROP OUT. * * * MDD - MUST BE INITIATED FROM NOS/VE.* * WHEN NOS/VE IS EXECUTING, *MDD* MUST BE INITIATED FROM * THE NOS/VE SIDE. * MDD PP WILL DROP OUT. * ALERT STATUS IS SET. * * * MDD - NOT ALLOWED ON THIS MAINFRAME.* * THE MAINFRAME DOES NOT HAVE NECESSARY HARDWARE TO * SUPPORT MDD. * MDD WILL DROP OUT. * ALERT STATUS IS SET. * * * MDD - NOT FOUND IN CIP DIRECTORY.* * MDD HAS SEARCHED THE CENTRAL MEMORY CTI DIRECTORY * AND NOT FOUND THE RESIDENT VERSION OF MDD. * MDD WILL DROP OUT. * ALERT STATUS IS SET. * * * MDD - VALIDATED.* * MDD HAS SUCCESSFULLY VALIDATED ITSELF AND HAS BEGUN * OPERATION. SPACE 4,10 * COMMON DECKS. *CALL COMPMAC *CALL COMPIOU *CALL COMSCPS *CALL COMSDST *CALL COMSEVT *CALL COMSIOU *CALL COMSPIM SPACE 4,10 **** DIRECT LOCATION ASSIGNMENTS. * * THE DIRECT CELLS *SM* THROUGH *CD+2* AND *SF* (27-36, 70) * CONTAIN HANDOFF DATA FOR *SCI*. THEY MUST NOT BE MOVED. * SEE NOS/VE DEVELOPMENT FOR ANY ADJUSTMENTS THAT MUST BE * MADE TO ENSURE COMPATIBILITY WITH *SCI*. SM EQU 27 *SCI* PP NUMBER AND *X.MDD* FLAG MD EQU 30 - 32 *SCI* ADDRESS A AND R-REGISTER UF EQU 33 UTILITY MODE FLAG CD EQU 34 - 36 CIP DIRECTORY POINTER CN EQU 40 - 44 SCRATCH BUFFER RN EQU 45 REGISTER NUMBER (COMPMRA) PP EQU 46 PP NUMBER PT EQU 47 PORT NUMBER W0 EQU 60 WORKING STORAGE W1 EQU 61 WORKING STORAGE W2 EQU 62 WORKING STORAGE W3 EQU 63 WORKING STORAGE W4 EQU 64 WORKING STORAGE W5 EQU 65 WORKING STORAGE W6 EQU 66 WORKING STORAGE W7 EQU 67 WORKING STORAGE SF EQU 70 *SCI* INITIATED BY *SDA* FLAG SPACE 4,10 ** ASSEMBLY CONSTANTS. * RR EQU 400000 CONSTANT VALUE FOR R REGISTER TITLE RESIDENT NOS DEPENDENT OVERLAY. ORG PPFW MDD SPACE 4,10 ** MDD - MONITOR DISPLAY DRIVER PREPROCESSOR. * * ENTRY (IR+4) = DESIRED PORT. MDD BSS 0 ENTRY RJM PRS PRESET RJM GSA ZJP MDD2 IF NO *SCI* PARAMETER TABLE RJM GSI GET *SCI* PARAMETER TABLE INTERLOCK RJM GSA CHECK IF *MDD* ACTIVE CRD CN LDD CN+4 SHN 21-13 PJN MDD1 IF *MDD* NOT ALREADY ACTIVE RJM CPN CHECK PORT NUMBER LJM MDD6 CLEAR MEMORY AND DROP PP MDD1 LDD CN+1 CHECK IF *SCI* ACTIVE LPN 77 ZJN MDD3 IF *SCI* NOT ACTIVE RJM GEA CHECK IF NOS/VE ACTIVE ADN D8TY CRD W0 LDD W0+3 LPN 77 SBN 2 ZJN MDD5 IF NOS/VE ACTIVE RJM AMB ACTIVATE *MDD* BITS RJM SMF SET C170 *MDD* FLAG RJM GSA GET *SCI* PARAMETER TABLE ADDRESS CWD CN WRITE FIRST WORD AND CLEAR INTERLOCK UJN MDD6 CLEAR MEMORY AND DROP PP MDD2 RJM GEA CHECK IF ANOTHER *MDD* ACTIVE ADN D7RS CRD W0 LDD W0+1 LPN 77 NJN MDD4 IF *MDD* ALREADY ACTIVE MDD3 LDC ELM3+ERLN * MDD - VALIDATED.* RJM DFM LJM LSC LOAD *SCI* (DOES NOT RETURN) MDD4 LDC ELM11+ERLN * MDD - ALREADY ACTIVE.* UJN ERR ISSUE MESSAGE AND DROP PP MDD5 RJM CSI CLEAR *SCI* PARAMETER TABLE INTERLOCK LDC ELM10+ERLN * MDD - MUST BE INITIATED FROM NOS/VE.* * UJN ERR ISSUE MESSAGE AND DROP PP * PROCESS FATAL *MDD* ERROR. ERR STM SASA INFORM ALERT ROUTINE RJM DFM ISSUE MESSAGE RJM SAS SET ALERT STATUS MDD6 MONITOR DPPM DROP PP LDC CPMA CLEAR LONG INSTRUCTIONS RJM CPM LJM PPR EXIT TO PP RESIDENT MRER SPACE 4,10 * PROCESS FATAL MAINTENANCE REGISTER ERROR. MRER LDC ELM1+ERLN * MDD - MR ERROR.* UJN ERR PROCESS FATAL ERROR TITLE MDD - SUBROUTINES. AMB SPACE 4,10 ** AMB - ACTIVATE *MDD* BITS. * * ENTRY (PT) = PORT NUMBER. * (CN - CN+4) = *SCI* PARAMETER TABLE WORD ONE. * * EXIT *MDD* ACTIVE BITS SET AND INTERLOCK CLEARED * IN *CN - CN+4*. AMB SUBR ENTRY/EXIT LDD PT SET PORT NUMBER SHN 6 ADC 1S11+1000 SET *MDD* ACTIVE AND REAL STATE BITS STD CN+4 LDD CN+1 SET SECONDARY BYTE CHANGED FLAG LPC 5377 AND CLEAR INTERLOCK BIT LMC 2000 STD CN+1 UJN AMBX RETURN CPM SPACE 4,10 ** CPM - CLEAR PP MEMORY. * * ENTRY (A) = FIRST WORD TO CLEAR. * * EXIT PP MEMORY CLEARED. * * USES T0. CPM SUBR ENTRY/EXIT STD T0 FIRST ADDRESS TO CLEAR LDN 0 CPM1 STI T0 AOD T0 SHN -14 ZJN CPM1 IF MORE MEMORY TO CLEAR UJN CPMX RETURN SPACE 4,10 * BEFORE DROPPING THE PP, MEMORY MUST BE CLEARED OF LONG * INSTRUCTIONS. NO LONG INSTRUCTIONS CAN BE ADDED BEFORE * THIS ADDRESS. CPMA EQU * CLEAR PP MEMORY ADDRESS CPN SPACE 4,15 ** CPN - CHECK PORT NUMBER. * * ENTRY (CN - CN+4) = *SCI* PARAMETER TABLE WORD ONE. * *SCI* PARAMETER TABLE INTERLOCKED. * * EXIT REQUESTED PORT SET IN *SCI* PARAMETER TABLE. * *SCI* PARAMETER TABLE INTERLOCK CLEARED. * * USES T1. * * CALLS GSA. CPN SUBR ENTRY/EXIT * CHANGE PORT NUMBER IF DIFFERENT PORT REQUESTED. LDD CN+4 GET CURRENT PORT SHN -6 LPN 7 LMD PT NJN CPN1 IF NOT CURRENTLY USING REQUESTED PORT LDD CN+1 CLEAR INTERLOCK LPC 7377 UJN CPN2 WRITE FIRST WORD CPN1 LDD PT SET NEW PORT NUMBER SHN 6 STD T1 LDD CN+4 LPC 7077 CLEAR OLD PORT LMD T1 ADD NEW PORT STD CN+4 LDD CN+1 SET SECONDARY BYTE CHANGED FLAG LPC 5377 AND CLEAR INTERLOCK BIT LMC 2000 CPN2 STD CN+1 RJM GSA GET *SCI* PARAMETER TABLE ADDRESS CWD CN WRITE FIRST WORD AND CLEAR INTERLOCK UJN CPNX RETURN CSI SPACE 4,10 ** CSI - CLEAR *SCI* PARAMETER TABLE INTERLOCK. * * EXIT INTERLOCK CLEARED. * * USES W0 - W0+3. * * CALLS GSA. CSI SUBR ENTRY/EXIT LDC 0#FFFF STDL W0 STDL W0+2 STDL W0+3 LDC 0#EFFF MASK FOR CLEAR INTERLOCK STDL W0+1 RJM GSA GET *SCI* PARAMETER TABLE ADDRESS RDCL W0 CLEAR INTERLOCK UJN CSIX RETURN GEA SPACE 4,10 ** GEA - GET *EICB* ADDRESS. * * EXIT (A) = *EICB* FWA. GEA SUBR ENTRY/EXIT LDC ** GEAA EQU *-2 (*EICB* FWA) UJN GEAX RETURN GPS SPACE 4,10 ** GPS - GET *PPR* SAVE AREA ADDRESS. * * EXIT (A) = *PPR* SAVE AREA FWA. GPS SUBR ENTRY/EXIT LDC ** GPSA EQU *-2 (*PPR* SAVE AREA ADDRESS) UJN GPSX RETURN GSA SPACE 4,10 ** GSA - GET *SCI* PARAMETER TABLE ADDRESS. * * EXIT (A) = *SCI* PARAMETER TABLE ADDRESS. * = 0 IF TABLE NOT DEFINED. GSA SUBR ENTRY/EXIT LDC ** GSAA EQU *-2 (*SCI* PARAMETER TABLE ADDRESS) UJN GSAX RETURN GSI SPACE 4,10 ** GSI - GET *SCI* PARAMETER TABLE INTERLOCK. * * EXIT INTERLOCK SET. * * USES W0 - W0+3. * * CALLS GSA. GSI SUBR ENTRY/EXIT GSI1 LDN ZERL CRDL W0 LDC 10000 INTERLOCK BIT STDL W0+1 RJM GSA GET *SCI* PARAMETER TABLE ADDRESS RDSL W0 SET INTERLOCK LDDL W0+1 LPC 10000 NJN GSI1 IF INTERLOCK WAS ALREADY SET UJN GSIX RETURN LSC SPACE 4,10 ** LSC - LOAD *SCI*. * * ENTRY (CN - CN+4) = *SCI* PARAMETER TABLE WORD ONE. * *SCI* PARAMETER TABLE INTERLOCKED. * * EXIT NO EXIT. LOADS *SCI* ON TOP OF *MDD* BOOT. * * CALLS AMB, GSA, SPD, SPP, SSH. LSC BSS 0 ENTRY * PREPARE FOR *SCI* LOAD. RJM SPD SET PP/PORT NUMBERS IN *D7RS* RJM GSA ZJN LSC1 IF NO *SCI* PARAMETER TABLE RJM AMB ACTIVATE *MDD* BITS AND CLEAR INTERLOCK LDD PP SET PP NUMBER RAD CN+1 RJM GSA WRITE WORD ONE AND CLEAR INTERLOCK CWD CN LSC1 RJM SPP SAVE *PPR* RJM SSH SET *SCI* HANDOFF DATA * CHANGE *MDD* TO *SCI* IN INPUT REGISTER. LDD IA GET CURRENT INPUT REGISTER CRD CM LDC 2RSC STD CM LDD CM+1 LPN 77 LMC 1RI*100 STD CM+1 LDD IA CWD CM * PLUG LONG INSTRUCTION IN BOOT CODE. *COMPDLI* DOES * NOT HANDLE LONG INSTRUCTIONS WITHIN *LOC* DIRECTIVES * WELL, SO THIS ONE IS PLUGGED EXPLICITLY. LDM LSCA+BTSA-1 LMC 1S15 CONVERT TO 16 BIT INSTRUCTION STML LSCA+BTSA-1 * MOVE CODE SO *SCI* DOES NOT OVERWRITE IT. LDN 1 READ DIRECTORY ENTRY STD CM LRD MD+1 LDD MD ADC RR CRML LSCA+T3,CM LDN LSCAL/4 MOVE BOOT STD CM LDD MA CWML LSCA,CM LDD MA CRML 0,CM * BOOT CODE FOR LOADING *SCI*. LSCA BSS 0 LOC 0 CON BTS-1 BSS 2 T3 CON 0,0,0,0 BTS LDD T3 STD BTSA LDD MD ADC RR+1 LRD MD+1 CRM **,T3+1 BTSA EQU *-1 * CRML **,T3+1 (CONVERTED TO LONG EXPLICITLY) LJM 100 START EXECUTING *SCI* LSCAL EQU *+3 ERRPL LSCAL-30 BOOT OVERWRITES HANDOFF DATA LOC *O SAS SPACE 4,10 ** SAS - SET ALERT STATUS. * * ENTRY (SASA) = MESSAGE ADDRESS. * * EXIT ALERT STATUS SET IF PROPER MESSAGE SENT. * * USES CM - CM+4. * * MACROS MONITOR. SAS SUBR ENTRY/EXIT LDC ** SASA EQU *-1 (ADDRESS OF MESSAGE) ADC -ALERT MJN SASX IF NO ALERT NEEDED LDN ZERL ISSUE ERROR LOG ALERT EVENT CRD CM ERRNZ EEVS CODE ASSUMES *EEVS* IS ZERO LDN ELAE STD CM+4 MONITOR EATM UJN SASX RETURN SMF SPACE 4,10 ** SMF - SET C170 *MDD* FLAG. * * USES W0 - W0+4. * * CALLS GEA. SMF SUBR ENTRY/EXIT RJM GEA ADN D7RS CRD W0 LDD W0+1 LPC 6777 LMC 1000 STD W0+1 RJM GEA REWRITE *D7RS* ADN D7RS CWD W0 UJN SMFX RETURN SPD SPACE 4,15 ** SPD - SET PP/PORT NUMBERS IN *D7RS*. * * ENTRY (PP) = PP NUMBER. * (PT) = PORT NUMBER. * * EXIT TO *MDD4* IF *MDD* ALREADY ACTIVE. * IN THIS CASE, THE *SCI* PARAMETER TABLE INTERLOCK IS * CLEARED. * * USES CM - CM+4. * * CALLS CSI, GEA, GSA. * * MACROS MONITOR. SPD SUBR ENTRY/EXIT RJM GEA GET *EICB* ADDRESS ADN D7RS STD CM+4 SHN -14 STD CM+3 LDN 2 SET NUMBER OF REQUESTS STD CM+1 LDN 10 SET C170 *MDD* FLAG LMD PT GET PORT NUMBER SHN 6 LMD PP GET PP NUMBER STM SPDB+4 LDD MA WRITE REQUESTS TO MESSAGE BUFFER CWM SPDA,CM+1 MONITOR UTEM LDD CM+1 ZJN SPDX IF OPERATION COMPLETE RJM GSA ZJN SPD1 IF NO *SCI* PARAMETER TABLE RJM CSI CLEAR *SCI* PARAMETER TABLE INTERLOCK SPD1 LJM MDD4 ISSUE ALREADY ACTIVE MESSAGE SPDA VFD 1/1,5/0,6/12D,6/36D,42/0 SPDB VFD 1/0,5/0,6/12D,6/36D,42/0 SPP SPACE 4,10 ** SPP - SAVE PP RESIDENT. * * EXIT *PPR* WRITTEN TO SAVE AREA. * * USES T0, W6, W7. * * CALLS GPS. * * MACROS SETMS. SPP SUBR ENTRY/EXIT SETMS NODRIVER CLEAR DRIVER PRESENT FLAG LDC ** SET WORD COUNT TO SAVE SPPA EQU *-1 SBN 1 STD W7 * MOVE UNBOOT TO DRIVER AREA. LDC .SPPCL/5 GET UNBOOT LENGTH STD W6 RJM GPS GET *PPR* SAVE AREA ADDRESS CWM SPPC,W6 RJM GPS GET *PPR* SAVE AREA ADDRESS CRM MSFW,W6 * WRITE *PPR*. LDC MSFW-1 SET EXECUTION ADDRESS ON RETURN STD T0 RJM GPS GET *PPR* SAVE AREA ADDRESS CWD T0 WRITE FIRST WORD OF *PPR* ADN 1 CWM 5,W7 WRITE REMAINDER OF *PPR* UJN SPPX RETURN SPACE 4,10 * BOOTSTRAP USED TO RELOAD PP RESIDENT (UNBOOT). SPPC BSS 0 LOC MSFW * CLEAR PP NUMBER AND C170 *MDD* FLAG FROM *D7RS*. LDK EIBP CRD CM LDD CM+3 SHN 14 LMD CM+4 ADN D7RS CRD CN LDD CN+1 CLEAR PP NUMBER, C170 *MDD* FLAG LPC 6000 STD CN+1 LDD CM+3 REWRITE *D7RS* SHN 14 LMD CM+4 ADN D7RS CWD CN * CLEAR PP MEMORY. LDC PPFW STD CM LDN 0 BTS1 STI CM AOD CM SHN -14 ZJN BTS1 IF MORE TO CLEAR MONITOR DPPM DROP PP LJM PPR EXIT TO PP RESIDENT LOC *O .SPPCL EQU *-SPPC+4 ERRNG PPFW-MSFW-.SPPCL BOOTSTRAP IS TOO LONG SSH SPACE 4,10 ** SSH - SET *SCI* HANDOFF DATA. * * EXIT (27) = PP NUMBER PLUS 2000. * (33) = 0, NOT UTILITY MODE. * (70) = 1, *SCI* NOT INITIATED BY *SDA*. SSH SUBR ENTRY/EXIT LDN 0 SET UTILITY MODE STD UF LDN 1 SET NOT *SDA* INITIATED FLAG STD SF LDD PP SET PP NUMBER LMC 2000 ADD *MDD* INITIATED FLAG STD SM UJN SSHX RETURN SPACE 4,10 * ERROR LOG MESSAGES. ELM1 DATA C* MDD - MR ERROR.* ELM3 DATA C* MDD - VALIDATED.* ELM4 DATA C* MDD - BYE COMMAND EXECUTED.* ALERT EQU * ONLY ALERT MESSAGES BELOW THIS ADDRESS ELM6 DATA C* MDD - CONSOLE MUST BE UNLOCKED.* ELM7 DATA C* MDD - NOT ALLOWED ON THIS MAINFRAME.* ELM8 DATA C* MDD - IMPROPER ACCESS ATTEMPT.* ELM9 DATA C* MDD - SCI NOT FOUND IN CIP DIRECTORY.* ELM10 DATA C* MDD - MUST BE INITIATED FROM NOS/VE.* ELM11 DATA C* MDD - ALREADY ACTIVE.* TITLE MDD PRESET. PRS SPACE 4,20 ** PRS - PRESET *MDD* BOOT. * * EXIT (MD - MD+2) = R-REGISTER FORMAT OF FIRST WORD OF * *SCI* IN CENTRAL MEMORY. * (PP) = PP NUMBER. * (PT) = PORT NUMBER. * (SPPA) = *PPR* LENGTH IN CM WORDS. * (GEAA - GEAA+1) = *EICB* FWA. * (GPSA - GPSA+1) = *PPR* SAVE AREA ADDRESS. * (GSAA - GSAA+1) = *SCI* PARAMETER TABLE ADDRESS. * * USES PT, CM - CM=4, W0 - W4. * * CALLS CKV, DLI, FCM, GEA, GPN. * * MACROS MONITOR. PRS SUBR ENTRY/EXIT LDK NCPL MOVE TO SYSTEM CONTROL POINT CRD CM AOD CM+1 MONITOR CCAM MOVE TO SYSTEM CONTROL POINT RJM GPN GET PP NUMBER RJM CKV CHECK VALIDATIONS LDC PLIB RJM DLI DEFINE LONG INSTRUCTIONS LDK EIBP SAVE *EICB* FWA CRD W0 LDD W0+3 RAM GEAA LDD W0+4 STM GEAA+1 LDC =C*SCI* RJM FCM FIND ADDRESS OF *SCI* LDD IR+4 CHECK PORT PARAMETER SBN 1 ZJN PRS1 IF PORT ZERO REQUESTED LDN 1 OTHERWISE PORT ONE PRS1 STD PT SAVE PORT NUMBER RJM GEA GET *EICB* ADDRESS ADN D7RS READ *PPR* SAVE AREA ADDRESS CRD W0 ADN D7RS+2-D7RS *SCI* PARAMETER TABLE ADDRESS CRD CM LDD W0+2 SAVE *PPR* WORD COUNT STM SPPA LDD W0+3 SAVE *PPR* BUFFER ADDRESS RAM GPSA LDD W0+4 STM GPSA+1 LDD CM+3 SAVE *SCI* PARAMETER TABLE ADDRESS RAM GSAA LDD CM+4 STM GSAA+1 LJM PRSX RETURN CKV SPACE 4,10 ** CKV - CHECK FOR PROPER VALIDATIONS. * * EXIT TO *ERR* IF *MDD* USE NOT ALLOWED. * * USES CM - CM+4. * * CALLS CUA. CKV SUBR ENTRY/EXIT LDK MABL CHECK MAINFRAME TYPE CRD CM LDD CM+1 SHN 21-13 MJN CKV3 IF NOT CYBER 180 LDN SSTL CHECK CONSOLE STATUS CRD CM LDD CM SHN 21-11 PJN CKV4 IF CONSOLE IS NOT UNLOCKED RJM CUA CHECK USER ACCESS NJN CKV1 IF SYSTEM ACCESS NOT ALLOWED LDD CM PJN CKVX IF MAINTENANCE ACCESS ALLOWED CKV1 LDC ELM8+ERLN * MDD - IMPROPER ACCESS ATTEMPT.* CKV2 LJM ERR ISSUE MESSAGE AND DROP *MDD* CKV3 LDC ELM7+ERLN * MDD - NOT ALLOWED ON THIS MAINFRAME.* UJN CKV2 ISSUE MESSAGE AND DROP *MDD* CKV4 LDC ELM6+ERLN * MDD - CONSOLE MUST BE UNLOCKED.* UJN CKV2 ISSUE MESSAGE AND DROP *MDD* FCM SPACE 4,15 ** FCM - FIND CIP MODULE. * * ENTRY (A) = ADDRESS OF THREE CHARACTER DISPLAY CODE NAME. * * EXIT (A) = OFFSET FROM R-REGISTER OF MODULE HEADER. * (R) = ADDRESS/100B OF MODULE HEADER. * (CD - CD+2) = A AND R-REGISTER FORMAT OF CIP * DIRECTORY. * TO *ERR* IF *SCI* NOT FOUND. * * USES T1, CM - CM+3, W0 - W3. * * CALLS GEA. FCM4 LDDL CM RETURN WITH ADDRESS ADN 1 SKIP CIP IDENTIFIER WORD SRD MD+1 SAVE R REGISTER STDL MD SAVE A REGISTER FCM SUBR ENTRY/EXIT STD T1 SAVE ADDRESS OF MODULE TO FIND RJM GEA GET *EICB* ADDRESS ADN DSCM+2 CRDL CM READ CIP POINTER LRD CM+1 SAVE CIP DIRECTORY POINTER SRD CD+1 LDDL CM STDL CD FCM1 STDL CM LRD CM+1 LMC RR ACTIVATE R REGISTER CRDL W0 LDD W0 ADD W1 ZJN FCM3 IF END OF DIRECTORY LDD W0 LMI T1 NJN FCM2 IF NO MATCH LDD W1 LMM 1,T1 ZJN FCM4 IF MATCH FCM2 LDDL W3 OFFSET TO NEXT MODULE HEADER RADL CM SHN -6 RAD CM+2 SHN -14 RAD CM+1 LDD CM LPN 77 UJN FCM1 FETCH NEXT ENTRY FCM3 LDC ELM9+ERLN * MDD - SCI NOT FOUND IN CIP DIRECTORY.* LJM ERR RETURN PP GPN SPACE 4,10 ** GPN - GET LOGICAL PP NUMBER. * * EXIT (PP) = LOGICAL PP NUMBER. * * USES T1 - T5. GPN SUBR ENTRY/EXIT LDK PPCP CRD T1 LDD IA SBD T1+4 SHN -3 STD PP SBN 12 MJN GPNX IF NOT UPPER BARREL LDN 6 RAD PP UJN GPNX RETURN SPACE 4,10 * COMMON DECKS. *CALL COMPCUA *CALL COMPDLI *CALL COMPMRA PLIB SPACE 4,10 PLIB LIST16 LIST OF 16 BIT INSTRUCTIONS SPACE 4 END