On 2/21/2012 8:52 AM, McKown, John wrote:
I keep my HLASM source in z/OS UNIX files. "Just because I want to.". This works well for me. The only problem that I've run into is
when I edit with "vi" (yes, I get what I deserve). ISPF edit "knows" that if I replace "ABCD" with "EF",
it should only move the non-blank characters immediately to the right of the "ABCD" left. vi doesn't do this. This is really disruptive
of continuation characters in column 72. So, looked at FLOWASM. Wonderfully, one thing it allows is continuation of a statement without the
continuation character in column 72! So I thought it would be wonder to use and remove all the characters from column 72. Unfortunately, FLOWASM
uses RDJFCB on the DCB which describe the input dataset. This RDJFCB gets an RC of 4 when the input is a UNIX file.<sigh>. It appears that
the RDJFCB is really only used to pass back the DSN and volume of the input dataset to the assembler.
John,
In studying the FLOWASM code, I see the only reason there is an OPEN at all in
routine FLOW_SrcOpen is to handle long, variable-length records. If your records
are all <= 80 characters in length (which I assume they must be since you're not
currently a FLOWASM user), then it should be OK to let the assembler perform the
OPEN and READs for us.
I would change the following code from this:
DO , Do for OPEN processing
LA R2,FLOWDCB Point to the DCB
MVC FLOWMACW(FLOWRDFML),FLOWRDFM Copy model RDJFCB macro
RDJFCB ((2)), Read the JFCB
MF=(E,FLOWMACW) (same)
IF LTR,R15,R15,NZ If non-zero return code
LA R15,AXPCBAD Indicate OPEN failed
XR R0,R0 Set reason code = 0
ASMLEAVE , Leave the structure
ENDIF , EndIf
to this (only one line changed. See '<== HERE' comment):
DO , Do for OPEN processing
LA R2,FLOWDCB Point to the DCB
MVC FLOWMACW(FLOWRDFML),FLOWRDFM Copy model RDJFCB macro
RDJFCB ((2)), Read the JFCB
MF=(E,FLOWMACW) (same)
IF LTR,R15,R15,NZ If non-zero return code
XR R15,R15 Set return code = 0 <== HERE!
XR R0,R0 Set reason code = 0
ASMLEAVE , Leave the structure
ENDIF , EndIf
I believe this change will instruct the assembler to fall back to its own
internal OPEN and READ processing for SYSIN (or whatever DD you're using) which,
as you know, contains support for z/OS UNIX files.
Regards,
--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
310-338-0400 x318
[email protected]
http://www.phoenixsoftware.com/