C move src_line line_nbr
C\
C\ Record the status code as data
C\
C movel status data
C\
C\ Record where status located in data
C\
C eval data_off = 1
C eval data_len = 5
C eval data# = 1
C\
C\ For illustration purposes, dump the program object
C\
C eval %SUBST(objl:1:3ð) = pgm_name .1/
C eval %SUBST(objl:31:3ð) = lib_name
C eval %SUBST(objl:61:1ð) = '\PGM'
C eval objl# = 1
C\
C\ Call the Report Software Error API
C\
C call 'QPDLOGER'
C parm pgm_name
C parm exception msgid 12
C parm msgkey 4
C parm line_nbr
C parm 'Y' joblog 1
C parm data
C parm datapt
C parm data#
C parm objl
C parm objl#
C parm qusec
C\
C\ If an error on the API call, then indicate a terminal error
C\
C qusbavl ifgt ð
C 'Terminal err'dsply
C end
C else
C\
C\ If error within \PSSR, then indicate \PSSR error
C\
C '\PSSR error' dsply
C end
C\
C\ No matter how the program got to the \PSSR, end the program
C\
C move '1' \inlr
C return
C endsr
Appendix B. Original Examples in Additional Languages B-121