On Jan 15, 2008, at 5:06 PM, Paul Gilmartin wrote:
Can you expand on this (or am I requesting too much
a freebie)?

But (open message to designers): No! KISS dammit!
OPEN SYSIN; QSAM GET until you come to the end; then
CLOSE. Treat all empty data sets alike. Don't go poking
around UCBs and JFCBs and TIOTs and ... to make an
arbitrary distinction between an empty DUMMY data set, and
an empty instream data set, and an empty DASD data set,
and an empty allocated Unix path, and an empty tape data
set, and an empty (virtual) card reader data set, and an
empty terminal data set.

Treat them all alike; to do otherwise only adds an
unwarranted astonishment factor.

I'll grant some leeway that the error recovery for
a terminal data set is justifiably different from
that for a noninteractive data set.


Believe it or not I was going to ask the same question but I wasn't going to add the additional info you did. But your added info did fuzz things up a bit (AFAIWC). Your TSO analogy "leeway" brought up a fuzzy memory from LONG ago and I just realized I have kept doing this up until I retired a few years ago. Whenever I would invoke a batch program (IEBGENER or SMPE or whatever) from the TSO session I remember putting in a /* as to the last line I wanted to enter. To me this signified EOF and unless there is a specific check in the program for a /* (not sure what JES send to the program other than EOF there is "probably" a check in the utility for a "/*" as the TMP has no other way to signify EOF to the program. My EXCP coding years does not refresh my memory as to what occurs at EOF other than bit (s) is set in one of the control blocks to indicate eof. There must be code in the TMP to do so, but I don't recall it.


For IBM-MAIN subscribe / signoff / archive access instructions,
send email to listserv@xxxxxxxxxxx with the message: GET IBM-MAIN INFO
Search the archives at