[fpc-pascal] Metaware
    Tom Walsh 
    tom at openhardware.net
       
    Mon Jun 18 16:26:06 CEST 2007
    
    
  
Heh, if you are reading this then you may know what Metaware is?
I've a large(!) body of code written over the years under the Metaware 
Professional Pascal compiler.  This code is to be translated to run on 
the fpc compiler.
I wonder if anyone out there has attempted such an endeavor and might 
give me some suggestions, or even some warnings about what I should 
watch out for?  I have found that there are some functional differences 
that Metaware has over fpc, one example is the yield() function which 
returns the intermediate result of a function call.  There are a few 
other functional differences, these should be able to be (re)written out.
Another "interesting feature" is a #define statement which is very much 
like a C macro:
#define ChMap(A,C) Vt220Map[A] := chr(c)
There are quite a bit of these '#defines' throughout this source.  I'm 
thinking that the fpc alias is not going to work very well here and that 
I would have to recode these defines as functions / procedures?
I had considered building a pre-processor to reformat the input to 
ppcx64 into a delphi style construction, but there are enough 
significant differences in source file structure and declarations that 
would make this a whole lot of work.  Probably would also be a headache 
to maintain such an animal as well (yacc?).
Here is a snippet of the first few lines of a pascal source:
========== begin ================
export (libdos4);
{ Include MetaWare libraries }
    pragma c_include('implement.pf');
    pragma c_include('language.pf');
...
...
    pragma c_include('dospriv.inc');
{ C routine package }
package FromC;
  pragma calling_convention(language.C);
  pragma routine_aliasing_convention(implement.global_aliasing_convention);
  type
    int = LongInt;
program libdos4_unit;
with
  defstd4,
  dospriv;
var
  KeySaveChar: char;
function DosKeyCharHave:
  boolean;
  begin
    return(FromC.rdchk(0) = 1);
  end;
========== snip =================
Anyhow, any thoughts that someone may have would be greatly appreciated!
TIA,
-- 
Tom Walsh - WN3L - Embedded Systems Consultant
http://openhardware.net http://cyberiansoftware.com http://openzipit.org
"Windows? No thanks, I have work to do..."
----------------------------------------------------
    
    
More information about the fpc-pascal
mailing list