COMDDCM 
COMMON
          CTEXT  COMDDCM - DISPLAY CENTRAL MEMORY.
 COMDDCM  SPACE  4,10 
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 COMDDCM  SPACE  4,10 
***       COMDDCM - DISPLAY CENTRAL MEMORY. 
* 
*         D. H. GAMBREL.     81/10/30.
 COMDDCM  SPACE  4,10 
***       *COMDDCM* DISPLAYS CENTRAL MEMORY USING A CALLER- 
*         SPECIFIED ROUTINE.
 DCM      SPACE  4,15 
***       DCM - DISPLAY CENTRAL MEMORY. 
* 
*         ENTRY  (A) = ADDRESS OF FIELD TABLE.
*                (CH) = DISPLAY CHANNEL.
*                (CP) = CONTROL POINT ADDRESS.
*                (T8) = SECURITY MODE.
*                (T6) = ADDRESS OF WORD FORMAT DISPLAY ROUTINE. 
*                *CMEI* DEFINED = USE *CMEI* TO DETERMINE CENTRAL 
*                     MEMORY EXTENSION STATUS.  OTHERWISE, THIS STATUS
*                     MUST BE PRESET INTO *DCMD* PRIOR TO CALLING 
*                     *DCM*.
*                *DCTY* DEFINED = USE *DCTY* TO DETERMINE THE NUMBER
*                     OF GROUPS OF EIGHT WORDS TO BE DISPLAYED (2 FOR 
*                     *CDC721* OR 4 FOR *CC545*). 
*                *DFIM* DEFINED .AND. *RLO$* NOT DEFINED = USE *DFIM* 
*                     TO CHANGE THE NUMBER OF GROUPS OF EIGHT WORDS 
*                     FROM 4 TO 2 WHEN *CDC721* IS BEING USED.
*                *OMT$* DEFINED = MANAGED TABLE LOGIC WILL BE OMITTED.
*                *RLO$* DEFINED = *COMDDCM* IS TO RESIDE IN AN OVERLAY. 
* 
*         USES   T3, T4, T5, T6, T7, YC, CM - CM+4. 
* 
*         XREF   COMPMAC, COMDDIS.
  
  
 DCM      SUBR               ENTRY/EXIT 
          SRD    T3          SAVE R REGISTER
          STD    T7          SET FIELD LOCATION 
          ADN    10          SET FIELD LIMIT
 .A       IF     MAC,DFIM 
 .A       IF     -DEF,RLO$
          DFIM   (ADN 4),*-1
 .A       ELSE
 .B       IF     DEF,//DCTY 
          SHN    -2+22       DECREMENT ENDING ADDRESS BY 4 IF *CDC721*
          SBM    DCTY 
          SHN    2
          ERRNZ  C545        CODE DEPENDS ON VALUE
          ERRNZ  C721-1      CODE DEPENDS ON VALUE
 .B       ENDIF 
 .A       ENDIF 
          STM    DCMB 
          LDD    CP          GET RA 
          ADN    FLSW 
          CRM    DCME,ON
 OMT$     IF     -DEF,OMT$
          LDN    2           OUTPUT COORDINATES 
          OAM    DCMC,CH
          LDD    RA          SET MANAGED TABLE BIAS 
          SHN    6
          ADM    -1,T7
          CRD    CM 
          LDM    -1,T7
          ZJN    DCM1        IF NO TABLE BIAS 
          RJM    D4S         DISPLAY TABLE ADDRESS
          RJM    D5F         DISPLAY 5 GROUPS 
          LDD    CM+3 
          LPN    77 
          SHN    14 
          ADD    CM+4 
 DCM1     STM    DCMA        SET TABLE ADDRESS
          SHN    -14
          LMC    ADCI 
          STM    DCMA-1 
 OMT$     ENDIF 
          LDC    BL01-4*YINC SET Y-COORDINATE 
          STD    YC 
          LDN    0           CLEAR WORD INDEX 
          STD    T5 
 DCM2     LCN    YINC        DECREMENT Y-COORDINATE 
          RAD    YC 
          OAN    CH+40       OUTPUT Y-COORDINATE
          LDD    XC          OUTPUT X-COORDINATE
          OAN    CH+40
 RLO$     IF     -DEF,RLO$
          LDM    1,T7        FORM DISPLAY ADDRESS 
 RLO$     ELSE
          LDM.   1,T7        FORM DISPLAY ADDRESS 
 RLO$     ENDIF 
          ADD    T5 
          STD    CM+1 
          SHN    -14
          ADI    T7 
          STD    CM 
          RJM    D4D         DISPLAY ADDRESS
          LDD    CM+1 
          RJM    D4D
          LDN    CM          SET POINTER TO ADDRESS 
          STD    T2 
          RJM    SMD         SECURE MEMORY DISPLAY
          ZJN    DCM2.1      IF WORD MAY BE DISPLAYED 
          LDN    DCMFL       DISPLAY SECURITY BLANKET 
          OAM    DCMF,CH
          LJM    DCM4.1      CONTINUE 
  
 DCM2.1   LDM    DCME+3 
          LPN    77 
          SHN    6
 OMT$     IF     -DEF,OMT$
          ADC    *
 DCMA     EQU    *-1
 OMT$     ENDIF 
          RAD    CM+1 
          SHN    -14
          RAD    CM 
          LDM    DCME+2 
          SHN    14 
          LMM    DCME+3 
          SHN    -6 
          RAD    CM 
 CMEI     IF     DEF,CMEI 
          LDM    CMEI 
 CMEI     ELSE
          LDC    0           GET CENTRAL MEMORY EXTENSION STATUS
 DCMD     EQU    *-1
 CMEI     ENDIF 
          ZJN    DCM3        IF NOT CENTRAL MEMORY EXTENSION
          LDD    CM          SET *R* REGISTER TO UPPER 12 BITS
          SHN    6
          STD    CM+4 
          SHN    6
          STD    CM+3 
          LRD    CM+3 
          LDN    40          FORCE USE OF *R* REGISTER
          UJN    DCM4        READ CM WORD TO DISPLAY
  
 DCM3     LDD    CM          READ CM WORD TO DISPLAY
          LPN    77 
 DCM4     SHN    14 
          LMD    CM+1 
          CRD    CM 
 RLO$     IF     -DEF,RLO$
          RJM    0,T6        DISPLAY WORD 
 RLO$     ELSE
          RJM.   0,T6        DISPLAY WORD 
 RLO$     ENDIF 
 DCM4.1   AOD    T5          ADVANCE WORD INDEX 
          LPN    7
          ZJN    DCM6        IF EIGHT WORDS 
 DCM5     LJM    DCM2        LOOP FOR 8 WORDS 
  
 DCM6     STD    T5 
          LCN    YINC        DECREMENT Y-COORDINATE 
          RAD    YC 
          LDN    2           ADVANCE FIELD INDEX
          RAD    T7 
          LMC    *
 DCMB     EQU    *-1
          NJN    DCM5        IF NOT END OF 4 (OR 2) FIELDS
          LRD    T3          RESTORE R REGISTER 
          LJM    DCMX        RETURN 
  
  
 OMT$     IF     -DEF,OMT$
 DCMC     DATA   6000,7656
 OMT$     ENDIF 
  
 DCME     VFD    60/0        *FLSW* 
 DCMF     DATA   C$  *********  SECURED AREA  *********$
 DCMFL    EQU    *-DCMF 
 SMD      SPACE  4,10 
**        SMD - SECURE MEMORY DISPLAY.
* 
*         *SMD* CHECKS WHETHER A WORD MAY BE DISPLAYED ON A SECURE
*         SYSTEM.  IF DSD$ IS DEFINED, THE WORD MUST BE WITHIN CMR
*         TO BE DISPLAYED.  OTHERWISE, IT MUST BE WITHIN THE CALLING
*         JOBS FL OR NFL. 
* 
*         ENTRY  (T8) = SECURITY MODE.
*                (T2) = POINTER TO ADDRESS TO CHECK (2 BYTES) 
* 
*         EXIT   (A) = 0 IF WORD AT ADDRESS WHICH MAY BE DISPLAYED. 
  
  
 SMD      SUBR               ENTRY/EXIT 
          LDD    T8          CHECK SECURITY MODE
          ZJN    SMDX        IF SYSTEM UNSECURED
 DSD$     IF     DEF,DSD$ 
          LDN    CMRL        GET CMR SIZE 
 DSD$     ELSE
          LDD    CP          GET CONTROL POINT RA, FL, AND  NFL 
          ADN    FLSW 
 DSD$     ENDIF 
          CRM    SMDA,ON
          LDI    T2          GET ADDRESS TO CHECK 
          LPN    77 
          SHN    14 
 RLO$     IF     -DEF,RLO$
          LMM    1,T2 
 RLO$     ELSE
          LMM.   1,T2 
 RLO$     ENDIF 
 DSD$     IF     -DEF,DSD$
          MJN    SMD2        IF ADDRESS POSSIBLY IN NFL 
 DSD$     ENDIF 
          SHN    -6 
          SBM    SMDA+4      CHECK ADDRESS
          MJN    SMD3        IF ADDRESS WITHIN PERMITTED AREA 
          LDN    1           SET REPLY
          UJN    SMDX        RETURN 
  
 DSD$     IF     -DEF,DSD$
 SMD2     SHN    -6 
          ADM    SMDA 
          SHN    6
          MJN    SMDX        IF ADDRESS NOT WITHIN NFL
 DSD$     ENDIF 
 SMD3     LDN    0           SET REPLY
          UJN    SMDX        RETURN 
  
 SMDA     VFD    60/0        *CMRL* OR *FLSW* 
          ENDX
