MOVE 1 TO LENGTH-DATA OF QUS-VLEN-REC-4. MOVE 1 TO VAR-RECORDS((VAR-OFFSET + 12):1).

PERFORM CALCULATE-NEXT-OFFSET.

MOVE 3 TO CONTROL-KEY OF QUS-VLEN-REC-4.

MOVE 4 TO LENGTH-DATA OF QUS-VLEN-REC-4.

MOVE 37 TO BINARY-NUMBER.

MOVE BINARY-CHAR TO VAR-RECORDS((VAR-OFFSET + 12):4).

PERFORM CALCULATE-NEXT-OFFSET.

\

\Call the API to register the exit program.

CALL "QUSADDEP" USING EXIT-POINT-NAME OF MISC,

FORMAT-NAME OF MISC,

EXIT-PGM-NBR OF MISC, EXIT-PGM OF MISC, EXIT-PGM-DATA OF MISC,

BY CONTENT LENGTH OF EXIT-PGM-DATA OF MISC, VARREC, QUS-EC.

\

\If an exception occurs, the API returns the exception in t￿he

\error code parameter. The bytes available field is set to

\zero if no exception occurs and greater than zero if an

\exception does occur.

\

IF BYTES-AVAILABLE OF QUS-EC > ð

OPEN OUTPUT LISTING,

MOVE EXCEPTION-ID OF QUS-EC

TO EXCEPTION-ID OF BAD-ADD, WRITE LIST-LINE FROM BAD-ADD, STOP RUN.

\

STOP RUN.

\

\End of MAINLINE

\Calculate 4-byte aligned offset for next variable length￿ record

CALCULATE-NEXT-OFFSET.

COMPUTE BINARY-NUMBER = LENGTH-DATA OF QUS-VLEN-REC-4 + 12.

DIVIDE BINARY-NUMBER BY 4 GIVING BINARY-NUMBER REMAINDER ￿X. IF X = ð COMPUTE LENGTH-VLEN-RECORD OF QUS-VLEN-REC-4 =

LENGTH-DATA OF QUS-VLEN-REC-4 + 12

ELSE COMPUTE LENGTH-VLEN-RECORD OF QUS-VLEN-REC-4 = LENGTH-DATA OF QUS-VLEN-REC-4 + 12 + ( 4 - X ).

MOVE QUS-VLEN-REC-4 TO VAR-RECORDS(VAR-OFFSET:12).

COMPUTE VAR-OFFSET = VAR-OFFSET + LENGTH-VLEN-RECORD OF

QUS-VLEN-REC-4.

Register Exit Point

and

Add

Exit

Program—ILE

COBOL

Example

Refer

to

“Register Exit

Point and

Add Exit Program—ILE C Example” on pag

for

the original

example.

 

 

B-50System API Programming V4R1

Page 328
Image 328
IBM Version 4 manual Register Exit Point, By Content Length of EXIT-PGM-DATA of MISC, VARREC, QUS-EC