Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Example

&pagelevel(4)&pagelevel

The following example shows the structure of an Assembler main program. The macro calls for structured programming with ASSEMBH (e.g. @IF) are not supported by ASSEMBH-BC (see the “ASSEMBH” manual [2]).

The sample program has the goal that access to all tapes with an archive number in the range ABC001 to ABC099 is to be restricted to the user's own ID (USER-ACCESS = *OWNER-ONLY).

         ...                                                          
         @CYCLE                                                       
MODIFY   DS    0H                                                     
         ...                                                          
         @PASS EXTNAME=MARENPS,PAR=STMT  CALL MAREN PROGRAM INTERFACE 
         @CAS2 RETFLAG,COMP=CLI          CHECK RETURN FLAG            
         @OF   RETFLAGA                  RETURN FLAG 'A' = OK         
         MVC   ANWVSN,ARCHIVNR           SET VSN IN STATEMENT         
         @IF   EQ                        SET NEXT FSEQ IN STATEMENT   
         CLC   FSEQ,=C'*001'             SUPPRESSED VOLUME?           
         @THEN                                                        
         MVC   ANWFSEQ,=C'0001'          IF YES - NEXT FSEQ = '0001'  
         @ELSE                                                        
         PACK  DOWO,FSEQ                 OTHERWISE ADD 1 TO FSEQ      
         AP    DOWO,=PL1'1'                                           
         UNPK  ANWFSEQ,DOWO+5(3)                                      
         OI    ANWFSEQ+3,X'F0'                                        
         @BEND                                                        
         @OF   RETFLAGE                  RETFLAG 'E' = NO MORE ENTRIES
         ...                                                          
         @OFRE                           ERROR EXIT                   
         ...                                                          
         @BEND                                                        
         @BEND                                                        
         ...                                                          
DOWO     DS    D                         WORKAREA                     
STMT     DS    Y(STMTEND)                AREA FOR MAREN STATEMENT     
         DC    CL2' '                                                 
         DC    C'//MOD-VOL-ATTR VOL=*INT(FROM='                       
ANWVSN   DC    CL6'ABC001'                                            
         DC    C',FROM-FSEQ='                                         
ANWFSEQ  DC    CL4'0001'                                              
         DC    C',TO=ABC099),'                                        
         DC    C'PROT=*PAR(USER-ACCESS='                              
         DC    C'*OWNER-ONLY)'                                        
STMTEND  EQU   *-STMT                                                 
         ...                                                          
         MARENA MF=L,LAYOUT=V8           AREA FOR MAREN CATALOG ENTRY 
         ...