My previous message to this group was sent erroneously.

I absolutely hate when it does that; I wanted to paste something into a message 
and it took that as a "send" request instead of pasting the text into the 
message. To prevent that, I'm not putting anything in the TO address until I'm 
ready to send it, locking the system and preventing it from misinterpreting me 
as transmitting a message I wasn't ready to send.

Anyway, I wrote to Bernd Oppolzer first, because I want to see full FPC made 
available on the 370, possibly the zSystem and find out if he's interested in 
getting involved in this.   So I need to ask: how can I get this? I originally 
wrote this group more than a year ago on the subject, then realized that I 
couldn't figure out what was going on without a reasonable cross-reference 
program, only to find there's nothing that's been done that can handle the UNIT 
statement or {$IF} and {$DEFINE}/{$IFDEF} statements.

So I came to realize I need to ask two things. How to get the flags and hooks 
added to the current sources and how do I enable any of the big-endian ports of 
FPC to cross-compile on Windows? (I do not want to have to put up a Linux box 
when I already have a copy of FPC running. The compiler is going to be text 
mode, of course, so I either don't need Lazarus or can't compile it and 
wouldn't anyway.)

I've been busy, I have other things I had to attend to, then I realized I 
couldn't figure out what was going on without a decent cross reference program, 
but nothing that's out there supports the UNIT construct, nor do they know how 
to skip over {$DEFINE} {$IF} {$ELSE}, and so I stopped to write one and I was 
busy with the work on that. I'm having trouble there, so I set it aside. 
Anyway, I came back and realized if I can get one of the Big Endian ports 
working I can just figure out what files it uses and then edit those to change 
the generated assembly language and/or the object files if it makes object 
files the way the Pascal 8000 compiler for the 370 from the Australian Atomic 
Energy Commission did back in the late 1970s and early 1980s did.

There are two things I'd like to find out to determine how it might be possible 
to get Free Pascal ported to the s370 series.

First, I want to add some of the compiler flags I mention in the description of 
my attempts on the WIKI to add the s370 and/or zSystem architecture, how do I 
get those flags - they do not break the build - added as hooks to the compiler 
sources so that eventually a {$DEFINE S370} statement can be added to get the 
compiler to build itself for the 370 (and possibly other defines depending on 
the machine and OS target}? There will eventually need a new directory for the 
files that the 370 and whatever OSs it uses supports, but, again, that's months 
away. I have to start over, and I have to start somewhere.

I know FPC makes better "write once, run anywhere" code capability 
than Java will ever touch. I wrote an application for 64-bit Windows 7 
that a customer needed. I took that same code over to a 32 bit PPC 
Macintosh running OS X 4.11 and the same program ran without change to 
the source code other than that the fonts are larger on the Mac so I had
 to shrink them a little to make the window fit. But the same unmodified
 code worked exactly the same on two different machines, two different 
operating systems, two different architectures. I have no doubt it would
 do the same thing re-compiled for Linux, without change.

I did another program 
where I used compile-time switches to set the values in a checkbox, and 
when I ran that program on Windows 7, it confirmed it's running Windows 
on an Intel little-endian 64-bit machine. The exact same unmodified 
program when compiled and run on my Mac and set the checkboxes in a 
window that told me it's a 32-bit big-endian BSD Darwin machine.

So, quoting from the commercials from US-based Wachovia Bank after it ate First 
Union Bank before it itself became digested by Wells Fargo Bank, "Let's get 
started."

So how would I get the constants and values added to include the s370 as a 
target for FPC? Would I submit them as a bug fix request as a patch through 
bugs.freepascal.org on Mantis or something else? I want to reserve a definition 
number for that processor, at least for now so it has a fixed identifier so 
eventually it can have its own PPU files and everything else in the toolchain.

Second, how do I create a cross-compiler that runs on Windows, for any of the 
big-endian processors, so that I can see what it has to generate code for the 
target machine? Given that, I can change the code to either change the 
generated object file - if it does direct object files - or the assembly 
language so it generates S370 assembly.

I can then run the compiler through itself to create a cross-compiler assembly 
for the 370. Then I can recompile the required modules, then take the 
assemblies, assemble them with a 370 assembler, producing an actual object 
module, then run the program against itself and the compiler will at least 
compile itself. Having done that, I can then create any necessary changes to 
implement anything needed to provide the equivalent functionality and rebuild 
the toolchain so it is native to the s370 and units to provide localized 
services can be created as needed.

I want to see something other than C and Cobol being available as current tools 
for implementing applications on the z/System mainframe. Maybe even being able 
to implement CICS transactions in Pascal the way it can be used to create 
full-blown Windows applications.

Any assistance anyone here can provide will be appreciated. Thank you.




Paul
 
________________________________
The Lessons of history teach us - if they teach us anything - that no one 
learns the lessons that history teaches us.
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to