Your Browser is not longer supported
Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...
{{viewport.spaceProperty.prod}}
&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
... |