          CTEXT  CTI$MAINTENANCE DISPLAY MACROS.                        
 CTIMDM   SPACE  4,10                                                   
***       CTI$MAINTENANCE DISPLAY MACROS.                               
*         B. R. HANSON.      81/09/10.                                  
 CTIMDM   SPACE  4,10                                                   
***              *CTI$MAINTENANCE_DISPLAY_MACROS* DEFINES MACROS USED   
*         BY *CTM$SYSTEM_CONSOLE_INTERFACE*.                            
*                                                                       
*         BECAUSE OF THE WAY THE *CMND* AND *HELP* MACROS PASS          
*         VALIDATION INFORMATION, THEY MUST BE CONSECUTIVE LINES        
*         OF CODE FOR ANY COMMAND DEFINITION.                           
 CMND     SPACE  4,10                                                   
**        CMND - DEFINE COMMAND.                                        
*                                                                       
* XX      CMND   PROC,DTYPE,PTABL,(SYNTAX),(VALID)                      
*                                                                       
*         XX = TWO CHARACTER COMMAND MNEMONIC.                          
*         PROC = COMMAND PROCESSOR (MUST BE DEFINED BY *ROUTINE*).      
*         DTYPE = MEMORY DISPLAY TYPE.                                  
*         PTABL = PARAMETER TABLE ADDRESS (DEFAULT = CONTIGUOUS).       
*         SYNTAX = COMMAND SYNTAX (FOR *HELP* COMMAND).                 
*         VALID = LIST OF HARDWARE TYPES FOR WHICH COMMAND IS VALID.    
                                                                        
                                                                        
          PURGMAC  CMND                                                 
          MACRO  CMND,XX,PROC,DTYPE,PADR,SYNTAX,VALID                   
          LOCAL  PADDR,V                                                
                                                                        
*         SET COMMAND INDEX.                                            
                                                                        
          IFC    EQ,$PADR$$,1                                           
 PADDR    EQU    *                                                      
                                                                        
*         SET COMMAND VALIDATIONS.                                      
                                                                        
 V        SET    0                                                      
 .1       IFC    EQ,/VALID//                                            
          ERR    APPLICABLE HARDWARE MUST BE SPECIFIED                  
 .1       ELSE                                                          
 V        SET    0                                                      
          IRP    VALID                                                  
 V        SET    V+CMD$_VALID                                           
          IRP                                                           
 .1       ENDIF                                                         
 VAL_XX   SET    V                                                      
                                                                        
*         DEFINE COMMAND TABLE ENTRY IN *CMDS* REMOTE BLOCK.            
                                                                        
 CMDS     RMT                                                           
          CON    2R_XX                                                  
          VFD    10/V                                                   
          VFD    6/PROC_O                                               
          CON    PROC                                                   
          IFC    EQ,$DTYPE$$,2                                          
          CON    0,0                                                    
          ELSE   2                                                      
          CON    PADR PADDR                                             
          CON    DTYPE/10000                                            
          RMT                                                           
                                                                        
*         DEFINE SYNTAX TABLE ENTRY IN *HELP* REMOTE BLOCK.             
                                                                        
 HELP     RMT                                                           
          CODE   N                                                      
          CON    V,=C*SYNTAX*                                           
          CODE   *                                                      
          RMT                                                           
          ENDM                                                          
 HELP     SPACE  4,10                                                   
**        HELP - DESCRIBE COMMAND FOR *HELP* COMMAND.                   
*                                                                       
*         HELP   (XX  TEXT)                                             
*                                                                       
*         TEXT = COMMAND DESCRIPTION FOR COMMAND *XX*.                  
                                                                        
                                                                        
          PURGMAC  HELP                                                 
 HELP     MACRO  DEFIN                                                  
          LOCAL  V                                                      
          IFC    NE,$DEFIN$$,2                                          
 XX       MICRO  1,2,$DEFIN$                                            
 V        EQU    VAL"XX"                                                
 HELD     RMT                                                           
          CODE   N                                                      
          IFC    NE,$DEFIN$$,2                                          
          CON    V,=C*DEFIN*                                            
          ELSE   1                                                      
          CON    -0,0        END OF LIST                                
          CODE   *                                                      
          RMT                                                           
          ENDM                                                          
 ENTER    SPACE  4,10                                                   
**        ENTER - FORM INDEXED TABLES OF DATA.                          
*                                                                       
* ORD     ENTER  V1,V2                                                  
*                                                                       
*         ORD = ORDINAL * 10000.                                        
*         V1 = VALUE TO PLACE IN TABLE *TBLA*.                          
*         V2 = VALUE TO PLACE IN TABLE *TBLB*.                          
                                                                        
                                                                        
          PURGMAC ENTER                                                 
          MACRO  ENTER,ORD,V1,V2                                        
 ORD      EQU    TBLI*10000                                             
          NOREF  TBLI                                                   
 TBLI     SET    TBLI+1                                                 
          IFC    NE,$V1$$,3                                             
 TBLA     RMT                                                           
          CON    V1                                                     
          RMT                                                           
          IFC    NE,$V2$$,3                                             
 TBLB     RMT                                                           
          CON    V2                                                     
          RMT                                                           
          ENDM                                                          
 PRM      SPACE  4,10                                                   
**        PRM - DEFINE PARAMETER LIST FOR COMMAND.                      
*                                                                       
* VAR     PRM    ADDR,WC                                                
*                                                                       
*         VAR = PARAMETER NAME.                                         
*         ADDR = ADDRESS TO STORE VALUE.                                
*         WC = SIZE OF VALUE IN PP WORDS.                               
*                                                                       
*         IF *VAR* IS OMITTED THEN THIS PARAMETER HAS A                 
*         LIST OF SEVERAL NAMES WHICH MAY BE USED.  IN THIS             
*         CASE, *ADDR* IS THE ADDRESS TO STORE THE ADDRESS              
*         GIVEN IN THE SELECTED ALTERNATIVE.  IF *WC* IS                
*         OMITTED, THE PARAMETER MUST BE ONE OF THE ALTERNATIVES        
*         AND MAY NOT HAVE AN EQUIVALENCED VALUE.  IF *VAR*             
*         IS OMITTED, A LIST OF *PRMV* MACROS MUST FOLLOW WHICH         
*         DEFINE THE ALTERNATE NAMES FOR THIS PARAMETER.                
                                                                        
                                                                        
          PURGMAC  PRM                                                  
          MACRO  PRM,VAR,ADDR,WC                                        
          LOCAL  HDR                                                    
          QUAL                                                          
          NOREF  PRMC                                                   
 PRMC     SET    PRMC+1                                                 
 PRMV     DECMIC PRMC,4                                                 
          QUAL   *                                                      
 HDR      SET    WC 0                                                   
          NOREF  P"PRMV"                                                
          IFC    EQ,$VAR$$                                              
 P"PRMV"  CON    HDR+4000,V"PRMV",ADDR                                  
          ELSE                                                          
 P"PRMV"  CON    HDR,V"PRMV"                                            
 VAR      PRMV   ADDR                                                   
          ENDIF                                                         
          ENDM                                                          
                                                                        
 PRMC     SET    0                                                      
 PRMV     SPACE  4,10                                                   
**        PRMV - PARAMETER NAME DESCRIPTOR.                             
*                                                                       
* VAR     PRMV   ADDR                                                   
*                                                                       
*         THIS MACRO IS USED TO LIST OPTIONAL NAMES FOR A GIVEN         
*         PARAMETER.                                                    
*                                                                       
*         VAR = PARAMETER NAME.                                         
*         ADDR = ADDRESS TO STORE THE VALUE OR VALUE ITSELF.            
                                                                        
                                                                        
          PURGMAC  PRMV                                                 
          MACRO  PRMV,VAR,ADDR                                          
          LOCAL  PRML                                                   
 PRML     DECMIC PRMC,4                                                 
          NOREF  V"PRML"                                                
 PRMV     RMT                                                           
          IF     -DEF,V"PRML",1                                         
 V"PRML"  BSS    0                                                      
          CON    2R_VAR                                                 
          CON    P"PRML"                                                
          CON    ADDR                                                   
          RMT                                                           
          ENDM                                                          
 PRME     SPACE  4,10                                                   
**        PRME - END PARAMETER LIST.                                    
*                                                                       
*         PRME                                                          
                                                                        
                                                                        
          PURGMAC  PRME                                                 
 PRME     MACRO                                                         
          CON    0                                                      
 PRMV     HERE                                                          
          CON    0                                                      
          ENDM                                                          
 PRINT    SPACE  4,10                                                   
**        PRINT - PRINT LINE.                                           
                                                                        
                                                                        
          PURGMAC PRINT                                                 
 PRINT    MACRO  M                                                      
          LDC    M                                                      
          RJM    WAS         WRITE ASCII STRING                         
          ENDM                                                          
 MR       SPACE  4,10                                                   
**        MR - DESCRIBE MAINTENANCE REGISTER.                           
*                                                                       
* HV      MR     (STRING),(MODELS)                                      
*                                                                       
*         HV = HEXADECIMAL REGISTER VALUE (IGNORED).                    
*         STRING = DESCRIPTION.                                         
*         MODELS = MODEL(S) APPLICABLE.                                 
                                                                        
          PURGMAC  MR                                                   
          MACRO  MR,HV,STR,DISC                                         
          CON    0#;A                                                   
          BITCON (DISC)                                                 
          CON    =C*STR*                                                
          ENDM                                                          
 LOADOV   SPACE  4,10                                                   
***       LOADOV - LOAD AN OVERLAY AND RETURN.                          
*                                                                       
*         LOADOV  NAME,P                                                
*                                                                       
*         P       IF *P* IS SPECIFIED, CALL THE *LNO* ROUTINE IN THE    
*                 PRESET OVERLAY INSTEAD OF THE ONE IN THE RESIDENT     
*                 OVERLAY.                                              
                                                                        
                                                                        
          PURGMAC LOADOV                                                
 LOADOV   MACRO  NAME,P                                                 
          LOCAL  TAG                                                    
          LDC    NAME_O*10000+TAG                                       
 .A       IFC    EQ,$P$$                                                
          RJM    LNO                                                    
 .A       ELSE                                                          
          RJM    /PRESET/LNO                                            
 .A       ENDIF                                                         
 TAG      BSS    0                                                      
          ENDM                                                          
 STIAO    SPACE  4,10                                                   
**        STIAO - STORE INDIRECT AND ADD ONE.                           
*                                                                       
* TAG     STIAO  DC                                                     
                                                                        
                                                                        
          PURGMAC  STIAO                                                
          MACRO  STIAO,TAG,DC                                           
          MACREF STIAO                                                  
 TAG      STI    DC          PUT CHARACTER IN OUTPUT BUFFER             
          AOD    DC          UPDATE POINTER                             
          ENDM                                                          
 STILAO   SPACE  4,10                                                   
**        STILAO - STORE INDIRECT LONG AND ADD ONE.                     
*                                                                       
* TAG     STILAO DC                                                     
                                                                        
                                                                        
          PURGMAC  STILAO                                               
          MACRO  STILAO,TAG,DC                                          
          MACREF STILAO                                                 
 TAG      STIL   DC          PUT CHARACTER IN OUTPUT BUFFER             
          AOD    DC          UPDATE POINTER                             
          ENDM                                                          
 CTIMDM   SPACE  4,10                                                   
          ENDX                                                          
