/*********************************************************************/         
/* Command       : FSTMNUCMDC                                        */         
/* Source Member : FSTMNUCMDC                                        */         
/* Source Type   : CLP                                               */         
/* Create Display file: CRTDSPF FILE(FSTMNUCMDD)                     */         
/* Create Command: CRTCLPGM PGM(FSTMNUCMDC)                          */         
/*********************************************************************/         
             PGM (&HEADG &OPTDES &CMDSTR)                                       
                                                                                
             DCLF       FILE(FSTMNUCMDD)                                        
             DCL        &HEADG *CHAR 50                                         
             DCL        &OPTDES *CHAR 602                                       
             DCL        &CMDSTR *CHAR 602                                       
             DCL        &CMDSTRT *CHAR 602  /* COMMAND STRING BUFFER */         
             DCL        &BINT   *CHAR 2     /* BINARY NUMBER HEX CODE*/         
             DCL        &I      *DEC  3 0                                       
             DCL        &K      *DEC  4 0    /* LIST NUMBER */                  
             DCL        &J      *DEC  3 0                                       
             DCL        &F      *DEC  3 0                                       
             DCL        &CMDS   *CHAR 512 ' '                                   
             DCL        &#MsgID        *CHAR    7                               
             DCL        &#MsgF         *CHAR    10                              
             DCL        &#MsgFLib      *CHAR    10                              
             DCL        &#MsgDta       *CHAR    200                             
                                                                                
     /*      MONMSG      ( CPF0000 MCH0000 )     Exec( GOTO Error ) */          
                                                                                
             CHGVAR     &I  50                                                  
SCANR:       /* SCAN RIGHT */                                                   
             IF ((%SST(&HEADG &I 1)) = ' ')  DO                                 
             CHGVAR     &I      (&I - 1)        /* HEADING LENGTH */            
             GOTO SCANR                                                         
             ENDDO                                                              
                                                                                
             /* MOVE TO CENTER */                                               
             CHGVAR     &J  ((50 - &I) /2)  /* MOVE TO TARGET POS */            
             CHGVAR     &K    1             /* FROM POSTION */                  
MOVE:                                                                           
             IF (&K <= &I) DO                                                   
             CHGVAR     %SST(&HEADG &J 1)  %SST(&HEADG &K 1)                    
             CHGVAR     %SST(&HEADG &K 1)  ' '                                  
             CHGVAR     &K    (&K + 1)                                          
             CHGVAR     &J    (&J + 1)                                          
             GOTO MOVE                                                          
             ENDDO                                                              
                                                                                
             RTVNETA    SYSNAME(&SYSNAM)                                        
                                                                                
             CHGVAR     &CMDSTRT    &CMDSTR   /* Command string buf */          
             CHGVAR     &BINT   %SST(&CMDSTRT 1 2)                              
             CHGVAR     &K      %BIN(&BINT)   /* NUMBER OF ENTRY */             
             IF (&K < 20) DO                                                    
              CHGVAR     &I      (20 - &K)                                      
              CHGVAR     &J      (&I * 30)                                      
              CHGVAR     &F      (&K *30 + 3)                                   
              CHGVAR     %SST(&CMDSTRT &F &J) ' '                               
             ENDDO                                                              
                                                                                
             CHGVAR     &BINT   %SST(&OPTDES 1 2)                               
             CHGVAR     &K      %BIN(&BINT)   /* NUMBER OF ENTRY */             
             IF (&K < 20) DO                                                    
              CHGVAR     &I      (20 - &K)                                      
              CHGVAR     &J      (&I * 30)                                      
              CHGVAR     &F      (&K *30 + 3)                                   
              CHGVAR     %SST(&OPTDES &F &J) ' ' /* clear unprinted */          
             ENDDO                                                              
                                                                                
             CHGVAR     &OPT01 %SST(&OPTDES 3 30)                               
             CHGVAR     &OPT02 %SST(&OPTDES 33 30)                              
             CHGVAR     &OPT03 %SST(&OPTDES 63 30)                              
             CHGVAR     &OPT04 %SST(&OPTDES 93 30)                              
             CHGVAR     &OPT05 %SST(&OPTDES 123 30)                             
             CHGVAR     &OPT06 %SST(&OPTDES 153 30)                             
             CHGVAR     &OPT07 %SST(&OPTDES 183 30)                             
             CHGVAR     &OPT08 %SST(&OPTDES 213 30)                             
             CHGVAR     &OPT09 %SST(&OPTDES 243 30)                             
             CHGVAR     &OPT10 %SST(&OPTDES 273 30)                             
             CHGVAR     &OPT11 %SST(&OPTDES 303 30)                             
             CHGVAR     &OPT12 %SST(&OPTDES 333 30)                             
             CHGVAR     &OPT13 %SST(&OPTDES 363 30)                             
             CHGVAR     &OPT14 %SST(&OPTDES 393 30)                             
             CHGVAR     &OPT15 %SST(&OPTDES 423 30)                             
             CHGVAR     &OPT16 %SST(&OPTDES 453 30)                             
             CHGVAR     &OPT17 %SST(&OPTDES 483 30)                             
             CHGVAR     &OPT18 %SST(&OPTDES 513 30)                             
             CHGVAR     &OPT19 %SST(&OPTDES 543 30)                             
             CHGVAR     &OPT20 %SST(&OPTDES 573 30)                             
REDISPLAY:                                                                      
             SNDRCVF                                                            
             IF (&IN03 ='1') GOTO END                                           
                                                                                
             CHGVAR     &IN71 '0'                                               
                                                                                
             IF ((&SELECT = 0 ) *OR (&SELECT > 20))  DO                         
             CHGVAR     &IN71     '1'                                           
             GOTO       REDISPLAY                                               
             ENDDO                                                              
                                                                                
             CHGVAR     &I     ((&SELECT - 1) * 30 + 3)                         
             CHGVAR     %SST(&CMDS 1 30)   %SST(&CMDSTRT &I 30)                 
                                                                                
             IF (&CMDS = ' '   ) DO                                             
             CHGVAR     &IN71     '1'                                           
             GOTO       REDISPLAY                                               
             ENDDO                                                              
                                                                                
             CALL QCMDCHK (&CMDS 512)                                           
             MONMSG CPF6801 EXEC(GOTO REDISPLAY)                                
                                                                                
             CALL QCMDEXC (&CMDS 512)                                           
                                                                                
             CHGVAR     &CMDS    ' '                                            
             CHGVAR     &SELECT  0                                              
             GOTO REDISPLAY                                                     
                                                                                
END: RETURN                                                                     
                                                                                
/*  --------------------------------------------------------------------  */    
/*  -  Error-handling routine                                          -  */    
/*  --------------------------------------------------------------------  */    
                                                                                
Error:                                                                          
                                                                                
   RCVMSG      MSGTYPE( *EXCP )                                            +    
               MSGDTA( &#MsgDta )                                          +    
               MSGID( &#MsgID )                                            +    
               MSGF( &#MsgF )                                              +    
               MSGFLIB( &#MsgFLib )                                             
   MONMSG      ( CPF0000 MCH0000 )                                              
                                                                                
   SNDPGMMSG   MSGID( &#MsgID )                                            +    
               MSGF( &#MsgFLib/&#MsgF )                                    +    
               MSGDTA( &#MsgDta )                                          +    
               MSGTYPE(*ESCAPE)                                                 
   MONMSG      ( CPF0000 MCH0000 )                                              
                                                                                
/*  --------------------------------------------------------------------  */    
/*  -  End of program                                                  -  */    
/*  --------------------------------------------------------------------  */    
ENDPGM                                                                          
