I have been having discussions with Leon de Boer who is writing most of the FreeVision (FV) stuff. The project is being done to dispense with all copyright issues, and it seems that this has largely been achieved. I have ported the Objects unit to GPC, along with a few other units. The sticking point now is a number of the base units (drivers.pas, dialogs.pas and views.pas), which contain some assembler code. Some of these are in x86 assembler and some (determined by some IFDEFs) are in FPC assembler (which looks to me like the AT&T syntax).
There is no FPC syntax. FPC uses an modified NASM based internal assembler (which can do both AT&T and Intel), and also a pass through mode (DIRECT) which copies the code to the back-end file.
Since I understand neither of these, I can't proceed with the porting.
Send me the relevant pieces, and I'll try to pascal'ize them. Could you elaborate on the GPC modifications? Are they huge? If not, we can keep FV unified (FPC,GPC and maybe TP), and stuff all other garbadge away in the API which will be FPC/GPC/TP/platform specific. (see below)
One possible problem are the strings. We are touching the 255 character TP limit in the IDE, and converted it to Delphi style dynamical AnsiStrings.
I know GPC has some dynamical string, but I don't know how it works. Are they source compatible with ansistrings (auto allocate, auto deallocate?)? Length(s) should return length of string, and a setlength(s,len) should be defined that sets the length of string s to "len".
If you would like to help with porting these units, then do please get in touch. It would seem better to recode these assembler routines in Pascal than to convert the FPC assembler to something that GPC can understand (if it isn't already in that form).
In my opinion, if we can port these three units to GPC, then a working class library for GPC (which also supports several other Pascal compilers) is within reach.
Try to implement the FPC-API .
The original (copyright troubled) FV had a quite strict platform dependancy separation, and Pierre said he would try to achieve that in the new version also. (Pierre (Pierre Muller <muller@cerbere.u-strasbg.fr) is working on the FPC side of the project)
The API is nearly 90k platform independant code and average 50k platform dependant code. (which is mainly the mouse and keyboard driver)
The FPC (FV) API is downloadable from the FPC development page, contact Pierre for changes to API between current and new version.
Marco van de Voort (MarcoV@Stack.nl) http://www.stack.nl/~marcov/xtdlib.htm