[fpc-pascal] FPC on zSeries Mainframes

Mark Morgan Lloyd markMLl.fpc-pascal at telemetry.co.uk
Mon Jan 1 16:12:46 CET 2018

On 01/01/18 13:00, Graeme Geldenhuys wrote:
> Hi,
> I remember back in 2012 (I think) there was a large discussion about 
> implementing support for the zSeries IBM mainframes. The wiki had many 
> pages on the topic too.
>     http://wiki.freepascal.org/ZSeries
> Anybody know what actually happened with those efforts? Was there 
> something usable in the end?

There was a lot of discussion that boiled down to five things:

* Should the compiler (as distinct from the generated code) use EBCDIC 
and what effect did this have on collation order assumptions?

* Older members of the range used a proprietary floating-point format.

* Older members of the range didn't have dedicated stack operations and 
were restricted to a 12-bit relative addressing offset.

* Allowing for the unrestricted availability of 1980s operating systems 
that were restricted to the above, what should the target of an FPC 
implementation be?

* What assembler would be supported, allowing that IBM system software 
long described interfaces in terms of assembler macros?

One developer- who put a lot in the wiki- appeared to grind to a halt 
when he realised that it wasn't possible to generate a static 
cross-reference listing for the FPC compiler, due to the number of 
runtime decisions made based on the class of elements in the parse tree etc.

If I may express two personal opinions:

* My preferred target hardware would be the oldest that got stack and 
large-offset support, which was also where GCC started taking it fairly 
seriously. I believe there is at least one GCC port that targets older 
hardware (Paul Edwards?).

* My preferred target operating system would be VM/380, which is VM/370 
with what is effectively a DOS extender to allow it to compile programs 
that require >16 MegaOctets. My basis for this preference is that its 
lineage (Multics etc.) makes it pleasingly familiar to people used to 
PC-DOS and unix, I've been criticised by somebody who would prefer MVS 
on the basis that the interface macros are different but I consider this 
to be a detail since the code generation would probably be common.

Bernd Oppolzer is actively maintaining a derivative of the original "P" 
compiler on VM/370 http://bernd-oppolzer.de/job9.htm and I expect this 
to be bundled with the next release of the VM/370 "Sixpack" 
which will run on top of the Hercules emulator. I can't remember whether 
he was able to compile it using FPC, there were some string-expansion 
issues (relating to mainframes using fixed-length records) giving him 

Gotta go, venison's done :-)

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the fpc-pascal mailing list