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 <4b50b1c0.6f0f.008...@efirstbank.com>,
Frank Swarbrick <frank.swarbr...@efirstbank.com> 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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to