On 3/27/2023 2:45 AM, Jacob Kroon via fpc-pascal wrote:
Hi,

I have some old Pascal code that was compiled in a CPM environment using the Pascal/MT+ compiler from Digital Research. I'm trying to get this project to build in a modern environment, for a start using FreePascal.

First, is anyone aware of a tool for converting this dialect of Pascal to something that FreePascal will accept ?

Well, it is a very long time since I used Pascal MT+ the last time, and that was already on the x86 version (+30 years now), but the same things should still apply.

First of all, Pascal MT+ is more or less ISO7185 compatible, so you would have to use that mode in FPC if you don't want to change all those file reference (that's what's mostly different to a "real" Pascal :P )

As for the "external" vars (and possibly procedures/functions), it is not quite the same as the units in UCSD/Turbo/Delphi/FreePascal, but it had the possibility (due to source code size restrictions, you had only 64KB for OS, compiler and source code together) to compile different source files into separate object files, which then could be linked together with the linker. It is more of an "forward" declaration. In most cases, I would assume that you could actually copy all those source files that are being referenced into a single source file. Using units could work in a lot of cases, but which way to go might depend on your actual use case...


Ralf


Second, the old code contains a lot of:

var
foobar : external integer;

in sources that reference 'foobar', then there is a declaration in one of them:

var
foobar : integer;

As I understand it, in order to translate this to something that FreePascal understands, the variable needs to go in a "unit" and be part of its interface. Then, pascal sources that needs to reference the variable should use this unit. Is this the easiest way forward ?

I thought maybe I instead could adapt the syntax like:

var
foobar : integer; external;

but with this I still get undefined references when linking. Using units seems ok.

Bets regards
Jacob
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to