Re: MVT COBOL under MVS3.8j.

"Dave Kreiss [email protected] [H390-MVS]" <[email protected]>
Newsgroups gmane.comp.emulators.hercules390.mvs
Message-ID <CAFij0ir1kMK6Atutveba6pi0b0U4Dn1z=riDDj1nsAZYWb3X4g@mail.gmail.com>
Ok I think I have this figured out.  Of course I could of have broken
something else...

The TBGETALL appears to have a requirement that it must be in either the
first or second MASTAM.  In all my tests there are 3 so we take the a
branch to TBERR4 in TBGETALL:
         LA    R4,TBMASTAM
         C     R4,TBLASMTM
         BE    TBGTAL21            ONLY 1 MASTAM
         LA    R5,TBMSTMLG(R4)
         C     R5,TBLASMTM
         BNE   TBERR4              R5 NOT EQUAL TO TBLASMTM
I can see the storage obtain in the trace table just before the U16 abend.
In the TBGETSPC I see  check for the longest phase which is phase 1 and a
quick exit bypassing the GETMAIN for the 3rd MASTAM.
         CLI   DX0(R10),LONGPHS
         BE    TBGETXIT            THIS IS LONGEST PHASE
My solution is to zap that phase test to 0A the cross reference phase
preventing the third MASAM.  I have tested several old  programs and they
compile successfully now.
ZAP is simple:
//ZAP     EXEC PGM=AMASPZAP
//SYSPRINT DD  SYSOUT=*
//SYSLIB   DD  DSN=your COBOL steplib here,DISP=SHR
//SYSIN    DD  *
 NAME IKFCBL00 PH0TBST1
  VER 05F0 9504A000
  REP 05F0 950AA000
/*
This is my compile parameters:
//COBOL   EXEC COBUCLG,REGION=200K,
//             PARM=('LOAD,SUPMAP,SIZE=100K,BUF=5K',
//             'NOLIB,SXREF,DMAP,PMAP,VBREF')
The zap needs more tests but worked  for the simple hello world and my
other old COBOL program that does amortization.

Dave
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.