| Newsgroups |
gmane.comp.emulators.hercules390.mvs |
| Message-ID |
<[email protected]> |
On Sat, 14 Sep 2019, Dave Kreiss [email protected] [H390-MVS] wrote:
> 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
>
Well, what I would call "an hack" ;-)
Well done!
Peppe.