I'm not a COBOL expert but I think it is caused by the "after advancing"
- at least I seem to remember pondering this question at some point in
my career and that comes to mind as the cause. Not unique to COBOL 4.2

Alan

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On
Behalf Of Frank Swarbrick
Sent: Friday, January 15, 2010 19:34 
To: [email protected]
Subject: Re: sysout using machine control instead of ANSI control

Interesting.  The one very odd thing this system does is that it
declares it's output files as EXTERNAL.  A main program will open the
file and write the first line and then call a subprogram.  The
subprogram also has the file as EXTERNAL.

I was able to recreate it with the following program and subprogram:

Main program:

process noadv                              
identification division.                   
program-id.  noadv.                        
environment division.                      
input-output section.                      
file-control.                              
    select report-1 assign to report1.     
                                           
data division.                             
file section.                              
fd  report-1 external                      
    recording mode f.                      
01  report-1-record.                       
    05  report-1-cc             pic x.     
    05  report-1-data           pic x(132).
procedure division.                           
    open output report-1                      
    move all '-' to report-1-data             
    write report-1-record after advancing page
    call 'noadvsub'                           
    close report-1                            
    goback.                                   
end program noadv.                            

Sub program:
process noadv                              
identification division.                   
program-id.  noadvsub.                     
environment division.                      
input-output section.                      
file-control.                              
    select report-1 assign to report1.     
                                           
data division.                             
file section.                              
fd  report-1 external                      
    recording mode f.                      
01  report-1-record.                       
    05  report-1-cc             pic x.     
    05  report-1-data           pic x(132).
procedure division.                        
    move all '1' to report-1-data          
    write report-1-record after advancing 1
    move all '2' to report-1-data          
    write report-1-record after advancing 2
    move all '3' to report-1-data          
    write report-1-record after advancing 1
    move all '4' to report-1-data          
    write report-1-record after advancing 0
    move all '5' to report-1-data          
    write report-1-record                  
    goback.                                
end program noadvsub.                      

Still very strange, though.  Any thoughts as to why this is?

Thanks,
Frank
-- 

Frank Swarbrick
Applications Architect - Mainframe Applications Development
FirstBank Data Corporation - Lakewood, CO  USA
P: 303-235-1403


On 1/15/2010 at 6:19 PM, in message
<[email protected]>,
Frank Swarbrick <[email protected]> wrote:
> Is there any reason that an Enterprise Cobol 4.2 program running under
z/OS 
> 1.10 might use 'machine control' characters instead of ANSI
characters?
> 
> We have a vendor program that uses a rather complex shared I/O module,
and 
> it appears to be the only one that's doing it.  The writes themselves
are 
> pretty basic:
> 
>  X-000-RSP-PRINT.                                       
>      MOVE ZERO                   TO  PDA-RWA-REQ.       
> *                                                       
>      IF  RSP-PRINT-CC IS EQUAL TO '1'                   
>          GO TO X-000-RSP-LINE1.                         
>      IF  RSP-PRINT-CC IS EQUAL TO SPACE                 
>          MOVE 1                  TO  MSC-CC.            
>      IF  RSP-PRINT-CC IS EQUAL TO ZERO                  
>          MOVE 2                  TO  MSC-CC.            
>      IF  RSP-PRINT-CC IS EQUAL TO '-'                   
>          MOVE 3                  TO  MSC-CC.            
>      WRITE   RSP-PRINT   AFTER ADVANCING    MSC-CC.     
>      GO  TO  X-000-EXIT.                                
>  X-000-RSP-LINE1.                                       
>      WRITE   RSP-PRINT   AFTER ADVANCING    MSC-CC-01.  
>      GO  TO  X-000-EXIT.                                
> 
> MSC-CC-01 is in the SPECIAL-NAMES area as
> C01 IS MSC-CC-01.
> 
> I even tried changing this to
>      WRITE   RSP-PRINT   AFTER ADVANCING    PAGE.  
> and got the same result.
> 
> Anyway, the output is like this...
> record 1 is x'8B' (Immed skip to channel 1)
> record 2 is x'01' (write without spacing) followed by the first line
> record 3 is x'0B' (Immed space 1 line)
> record 4 is x'01 (write without spacing) followed by the second line
> record 5 is x'0B' (Immed space 1 line)
> 
> and on and on like that.  In SDSF it looks like there is one blank
line 
> after each non-blank line.
> 
> I can't seem to recreate the issue with just a simple program.
> 
> It's quite perplexing!
> 
> Thanks,
> Frank
> 

>>> 

The information contained in this electronic communication and any
document attached hereto or transmitted herewith is confidential and
intended for the exclusive use of the individual or entity named above.
If the reader of this message is not the intended recipient or the
employee or agent responsible for delivering it to the intended
recipient, you are hereby notified that any examination, use,
dissemination, distribution or copying of this communication or any part
thereof is strictly prohibited.  If you have received this communication
in error, please immediately notify the sender by reply e-mail and
destroy this communication.  Thank you.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to