Article View: bit.listserv.asm370
Article #404Re: Code page question
From: Tony Harminc
Date: Wed, 07 Sep 2005 20:27
Date: Wed, 07 Sep 2005 20:27
187 lines
8753 bytes
8753 bytes
The official IBM reference to this stuff is the Character Data Reference
Architecture (CDRA) Reference book SC09-2190, which has an accompanying
CD-ROM set with almost every table one could possibly want. I have never
found this book online, though it is surely out there somewhere.
IBM calls the invariant set the Syntactic Character Set, and it is assigned
Character Set (CS) number 640. (Don't confuse a CS number with a codepage
(CP) number.) There are 81 characters in it, and they are invariant in all
EBCDIC code pages, and also (but of course at different code points) in all
ASCII-and-derivatives code pages.
Here is the chart of CS640 from that book, edited slightly to compress the
alpha and numeric chars:
________________________________________________________________________
| Figure 43. Invariance of the Syntactic Character Set in Basic SBCS |
| Encoding Structures |
|_________________________ ______________ __________________ ____________|
| Character | GCGID | PC, ISO-7, ISO-8 | EBCDIC |
|_________________________|______________|__________________|____________|
| CAUTION: There are some coded character sets in use in which the |
| invariant property is not guaranteed. Among the ISO-7 and derived |
| codes, one more character, the exclamation mark (SP020000) is |
| allocated the invariant code point X'21'. It is not included in this |
| table, since it is not in the syntactic character set (CS 640). |
|_________________________ ______________ __________________ ____________|
| " (double quote) | SP040000 | 22 | 7F |
|_________________________|______________|__________________|____________|
| % (percent) | SM020000 | 25 | 6C |
|_________________________|______________|__________________|____________|
| & (ampersand) | SM030000 | 26 | 50 |
|_________________________|______________|__________________|____________|
| ' (apostrophe) | SP050000 | 27 | 7D |
|_________________________|______________|__________________|____________|
| ( 'left parenthesis' | SP060000 | 28 | 4D |
|_________________________|______________|__________________|____________|
| ) 'right parenthesis' | SP070000 | 29 | 5D |
|_________________________|______________|__________________|____________|
| * (asterisk) | SM040000 | 2A | 5C |
|_________________________|______________|__________________|____________|
| + (plus) | SA010000 | 2B | 4E |
|_________________________|______________|__________________|____________|
| , (comma) | SP080000 | 2C | 6B |
|_________________________|______________|__________________|____________|
| - (hyphen) | SP100000 | 2D | 60 |
|_________________________|______________|__________________|____________|
| . (period) | SP110000 | 2E | 4B |
|_________________________|______________|__________________|____________|
| / (slash) | SP120000 | 2F | 61 |
|_________________________|______________|__________________|____________|
| 0-9 | NDnn0000 | 30-39 | F0-F9 |
|_________________________|______________|__________________|____________|
| : (colon) | SP130000 | 3A | 7A |
|_________________________|______________|__________________|____________|
| ; (semi-colon) | SP140000 | 3B | 5E |
|_________________________|______________|__________________|____________|
| < (less than) | SA030000 | 3C | 4C |
|_________________________|______________|__________________|____________|
| = (equal) | SA040000 | 3D | 7E |
|_________________________|______________|__________________|____________|
| > (greater than) | SA050000 | 3E | 6E |
|_________________________|______________|__________________|____________|
| ? (question mark) | SP150000 | 3F | 6F |
|_________________________|______________|__________________|____________|
| A-I | Lx020000 | 41-49 | C1-C9 |
|_________________________|______________|__________________|____________|
| J-R | Lx020000 | 4A-52 | D1-D9 |
|_________________________|______________|__________________|____________|
| S-Z | Lx020000 | 53-5A | E2-E9 |
|_________________________|______________|__________________|____________|
| _ (underscore) | SP090000 | 5F | 6D |
|_________________________|______________|__________________|____________|
| a-i | Lx010000 | 61-69 | 81-89 |
|_________________________|______________|__________________|____________|
| j-r | Lx010000 | 6A-72 | 91-99 |
|_________________________|______________|__________________|____________|
| s-z | Lx010000 | 73-7A | A2-A9 |
|_________________________|______________|__________________|____________|
Tony H.
-----Original Message-----
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Steve Comstock
Sent: 6 September 2005 13:57
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Code page question
Keith Bower wrote:
> Strange that they didn't mention the ¬ "not" sign and ^ hat (or
circumflex)
> characters. They "move" around in EBCDIC too. Plus a few others.
> -Keith Bower
>
>
Right. My research has turned up (thanks to some help
from others on this list) the following in the XL C/C++
Programming Guide, p. 817:
"The POSIX Portable Character Set (PPCS) identifies the core set of 128
characters that are needed to write code and to run applications. Of
these, 13 characters are variant among the EBCDIC coded character sets."
This, it seems, was [one of] the original source[s] for my
note; however, I seem to have recorded the wrong 13 characters;
the doc specifies this set: [ ] { } \ ^ ~ ! # | ` $ @
So I am staying with this set in my course.
Thanks for your response.
Kind regards,
-Steve Comstock
Technical Details
Message-ID:
<14086DF97796@apios.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!newsfeed.news2me.com!newsfeed2.easynews.com!newsfeed1.easynews.com!easynews.com!easynews!sn-xit-02!sn-xit-06!sn-xit-14!supernews.com!149.173.6.116.MISMATCH!foggy!vm.sas.com!harminc.com!tonyShow Full Headers
Complete Article Headers
X-Google-Thread: fcdcb,917f9311970f3177
X-Google-Attributes: gidfcdcb,public
X-Google-Language: ENGLISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!newsfeed.news2me.com!newsfeed2.easynews.com!newsfeed1.easynews.com!easynews.com!easynews!sn-xit-02!sn-xit-06!sn-xit-14!supernews.com!149.173.6.116.MISMATCH!foggy!vm.sas.com!harminc.com!tony
From: Tony Harminc <tony@harminc.com>
Newsgroups: bit.listserv.asm370
Subject: Re: Code page question
Date: Wed, 7 Sep 2005 16:27:05 -0400
Organization: SAS Inc.
Lines: 187
Sender: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU>
Message-ID: <14086DF97796@apios.com>
NNTP-Posting-Host: mozart.unx.sas.com
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Trace: foggy.unx.sas.com 1126125373 20209 10.19.150.41 (7 Sep 2005 20:36:13 GMT)
X-Complaints-To: usenet@unx.sas.com
NNTP-Posting-Date: Wed, 7 Sep 2005 20:36:13 +0000 (UTC)
Comments: Gated by NETNEWS@VM.SAS.COM
Return-Path: <owner-assembler-list@LISTSERV.UGA.EDU>
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
Thread-Index: AcWzOqi3h9GAK173Rbed7qKHCL/ALAArKhvg
X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.cc.uga.edu id
j87KSBBv021210
Approved-By: Tony Harminc <tony@HARMINC.COM>
In-Reply-To: <431DD864.7090804@trainersfriend.com>
Return-Path: owner-assembler-list@LISTSERV.UGA.EDU
X-OriginalArrivalTime: 07 Sep 2005 20:36:11.0254 (UTC)
FILETIME=[C8817160:01C5B3EB]
X-Mime-Autoconverted: from 8bit to quoted-printable by mime827
Originator: daemon@mozart.unx.sas.com