There are just so many layers of ambiguity now in any event.

"How it displays" needs to be taken in the context that most (almost all)
terminals are now 3270 emulators running on boxes where ASCII or some form
of Unicode is the native character set. Most printers no longer process
EBCDIC directly. Almost every display shows some glyph that the hardware and
software uses to represent some ASCII or Unicode character that something
has mapped from the EBCDIC.

Any reliance on the visible glyph as an unambiguous indication of the
underlying bit pattern is going to be fraught.

Charles


-----Original Message-----
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Jonathan Scott
Sent: Monday, February 13, 2023 8:36 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: HLASM code page support enhancements

Ref:  Your note of Mon, 13 Feb 2023 09:23:37 -0700

gil writes:
> Wouldn't that limitation have applied to EBCDIC terms contains characters
> outside the invariant EBCDIC character set? such as:
>           CLI   L,C'['    or:
>           DC    C'['
> where it is not possible to determine the binary value from the written or
> printed form?

Yes, it is true that would not determine the binary value, but
it would still display unchanged on a terminal in the same code
page as the source.  In contrast, an ASCII or Unicode converted
character will not necessarily represent the same symbol unless
the conversion takes into account the original EBCDIC code page.

So to be more accurate, the problem was that the binary code for
an ASCII or Unicode character does not necessarily give the same
symbol as was coded in the EBCDIC source.

> Can the macro author PUSH the CCSID on entry and POP it on exit in order
to
> control the CCSID non-disruptively?

The CCSIDs for DC constants can be changed with ACONTROL, and
ACONTROL settings can be saved and restored with PUSH and POP.
However, I find it hard to imagine a meaningful use of this
capability within a macro.

The CCSIDs for self-defining terms and literals cannot be
changed within an assembly, as these may be evaluated multiple
times at different points regardless of the location at which
they appear in the original source.

> >     ...  All source files and listings are
> > assumed to be in the local EBCDIC code page as specified on the
> > EBCDIC option or assumed by default.
>
> Is this default affected by the CCSID tagging of z/OS UNIX source files?

HLASM is unaware of any such tagging.

As previously mentioned, you should refer to the APAR page on
the support site and the additional documentation page which it
references for full details.

  https://www.ibm.com/support/pages/apar/PH50915

Jonathan Scott, HLASM
IBM Hursley, UK

Reply via email to