Oppolzer - Informatik / Blog


Blog-Hauptseite      Neuester Artikel      Älterer Artikel      Neuerer Artikel      Älterer gleiche Kategorie      Neuerer gleiche Kategorie

ASSEMBLER-L - Eyecatcher (EPA-Kennung) an der Position EPA+5

Subject:

Re: Baseless problem

From:

Bernd Oppolzer <bernd.oppolzer@T-ONLINE.DE>

Reply-To:

IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU>

Date:

2013.04.11 23:43:04


Although the eyecatcher on SAVE (one byte length field at EPA+4 followed by the
message) seems to be kind of part of the OS linkage conventions, no other IBM
language processor like the PL/1 compiler or LE ever used it - I never
understood this. This discourages the use of SYSUDUMP for error diagnose
heavily. Same goes for the lack of forward save area chaining by LE - SYSUDUMP
is only capable of printing a forward save area chain, if the LSA pointers in
the save areas are filled correctly.

For decades, we tried to restore the forward chain on every call, by calling
special ASSEMBLER routines after every PL/1 procedure entry; just to have the
SYSUDUMP forward chain in the case of an error. What a mess! In the end, we
removed this, and wrote our own error recovery and dump printing routine, which
we use in every environment, and which does not rely on the forward chain, like
CEEDUMP - it restores the forward chain only in the error situation, when needed
- for us it works better than CEEDUMP, and it also works in environments where
we don't have LE - in an LE environment, the dump printing routine is called by
an LE exit and replaces CEEDUMP.

I sometimes had the impression that the designers of LE never talked with the
opsys people and both didn't talk with the compiler people and vice versa ...
how sad ...

Ok, I see one possible reason for this: LE has to work on EVERY opsys, and so
may not rely on features that are specific to a special opsys. This may be the
reasons for some of the trouble we have here.

Kind regards

Bernd




Am 11.04.2013 20:23, schrieb A.G.:
> M.S. wrote:
>> Amen. I saw it first in code in 1976, with the eyecatcher preceded by a
>> one-byte length field for the eyecatcher. That one byte length is
>> used by
>> the dump formatter to print the eyecatchers when formatting the save
>> area
>> chain.
>
> ... and the eyecatcher, the 3rd operand of SAVE reg[,T,*]
>
> 181          SAVE  (14,12),T,'ACMDXL00 &VERS &ASMDTE'
> 182+         B     24(0,15)                          BRANCH AROUND ID
> 01-SAVE
> 183+         DC    AL1(19)                           LENGTH OF IDENTIFIER
> 01-SAVE
> 184+         DC    CL8'ACMDXL00'                     IDENTIFIER
> 01-SAVE
> 185+         DC    CL8'  1.1 030'                     IDENTIFIER
> 01-SAVE
> 186+         DC    CL3'102'                          IDENTIFIER
> 01-SAVE
> 187+         STM   14,12,12(13)                      SAVE REGISTERS
> 01-SAVE
> 188          LR    R12,R15                  LOAD PGM BASE REG = EP
> ADDRESS
>
> The above was assembled 10 years ago by HLASM R4.0. The SAVE macro is at
> least 45 years old. Frequently the bytes following the eyecatcher /
> dump-id
> were used for version/PTF id's and for "global" address vector tables.
>
> A.G.
>

Blog-Hauptseite      Neuester Artikel      Älterer Artikel      Neuerer Artikel      Älterer gleiche Kategorie      Neuerer gleiche Kategorie