Re: MVT COBOL under MVS3.8j.
| 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