| Newsgroups |
gmane.comp.emulators.hercules390.mvs |
| Message-ID |
<CAPcd4G_rL40jjuzMBsVnYz+FrC6fm8reZxXiquL_7+poJ7uNWQ@mail.gmail.com> |
"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."
This is a fundamental mistake.
A quick look at the source for IKFCBL00 reveals ...
TBNEWLG1 DC H'0'
69540021
TAM1Q EQU X'02'
69560021
TAM2Q EQU X'04'
69580021
LONGPHS EQU TAM2Q 69600021
TAM3Q EQU X'05'
69620021
TAM4Q EQU X'06'
69640021
TAM5Q EQU X'07'
69660021
TAM6Q EQU X'09'
So, the longest phase is Phase 4, not Phase 1.
Thus, this code:
CLI DX0(R10),LONGPHS
BE TBGETXIT THIS IS LONGEST PHASE
is testing to see if we are in Phase 4 so it doesnt try to getmain more
than the region available.
Joe
On Sat, Sep 14, 2019 at 1:43 AM Dave Kreiss [email protected] [H390-MVS]
<[email protected]> 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
>
>
>