[fpc-devel] EBCDIC (was On a port of Free Pascal to the IBM 370)

steve smithers stevie at collector.org
Mon Jan 30 15:26:55 CET 2012

I have just found the thread discussing a port of FreePascal to the System/370
and I feel I have to correct some misinterpretations, mistakes and other
calumnies that have been thrown into the discussion.  First, my
qualifications.  I have been a developer of Assembler systems, both
applications and systems software since 1981.  I have worked on VS1, MVS (370,
XA, ESA), OS/390 and z/OS systems.  I have worked for many large blue chip
companies and for software houses (small) and computer manufacturer's (large).

In this first note, I will deal, mostly, with the character set issues;  Other
notes will follow - be warned.

Firstly, the easy one, the System/370 and related processors come with a large
supply of 8 bit bytes. :)

There seems to a common perception on the internet that EBCDIC does not have
codes for things like square or curly brackets.  This is untrue.  My little
magic EBCDIC reference card (Dated February 1975) lists them as; '}' - 0xD0,
'{' - 0xC0, '[' - 0xAD and ']' - 0xBD.  Square brackets seem to be "new" with
System/370 (1970's), but curly brackets are actually built into the naming
requirements of many systems modules for some odd reason.  As such, they have
always been in the character set.  I think the confusion may have arisen by
their absence on the original card punch keyboards.  But that was 50 years
ago, let's try and be a little more up to date than that!

A slightly later version of this reference card is available online at

'^' doesn't seem to be available, but my eyesight isn't what it was!
(VS/PASCAL, an MVS version of ISO pascal, uses -> as a digraph for this).  I
don't think there's anything else.

It should be noted that using Linux/390 doesn't remove the '^' problem.  IBM
display unit (3270) keyboards, being EBCDIC devices, won't have the '^' on
the keyboard so an alternative must be found.  (I'm assuming that Linux uses
3270 devices, maybe I'm wrong)

Finally, the suggestions about developing FreePascal/370 as an ASCII compiler
seem somewhat pointless to me.  Why would anyone want to use an ASCII compiler
on an EBCDIC system?  I accept fully that producing an EBCDIC version will
present problems, but if this compiler is actually going to be used by anyone,
these have to be overcome.

Steve Smith

More information about the fpc-devel mailing list