Hello Hippo, thanks for the hint. I have a copy of Borland Pascal 7 inherited from my father. In fact I think I have learned programming with it when I was a kid, or with a previous version. Fascinating piece of software. But I prefer to build open tools with open tools :-)
Greetings, Bernd > Am 10.11.2023 um 00:37 schrieb Danilo Pecher via Freedos-devel > <freedos-devel@lists.sourceforge.net>: > > As far as I know the earlier Turbo-Pascal compilers (I think 5.5 and > earlier) have been freeware'd years ago. They can natively compile > 16bit code on Freedos and might be worth a try. You can find even > ancient versions of TP, like 3.0 on winworldpc, and I actually quite > like to go down memory lane once in a while, although I have ported > most of my projects to Watcom C by now. > > cheers, Hippo > > On Thu, 9 Nov 2023 at 23:44, Bernd Böckmann via Freedos-devel > <freedos-devel@lists.sourceforge.net> wrote: >> >> Btw, when compiling in large memory model via >> >> fpc -Wmlarge >> >> the pointer errors when compiling keyb are gone. There are some 20 >> remaining compile errors. Perhaps these can be solved. >> >> Bernd >> >> On 09.11.2023 23:38, Bernd Böckmann via Freedos-devel wrote: >>> Hello Aitor, >>> >>>> Could you please post the exact message you got from the compiler? >>> >>> For something like this "FarPointer(@Buffer)" I get the following >>> error message: >>> >>> "Error: Illegal type conversion: "Pointer" to "FarPointer"" >>> >>> My opinion is that this should be supported by the compiler, because >>> it is well defined for the small memory model I am working in. >>> >>> I looked into the keyb source code and tried to compile it with >>> FreePascal. One problematic line is for example: >>> >>> PWord ( ptr(m-1,1) )^ := m; { make it self-parented } >>> >>> Here, Ptr emits a far pointer, and PWord would cast this to a near >>> pointer. FreePascal complains about it. >>> >>> BUT the following at least gets accepted by the compiler: >>> >>> type PFarWord = ^Word; far; >>> >>> PFarWord ( ptr(m-1,1) )^ := m; { make it self-parented } >>> >>> This converts it to a typed FAR pointer, which than can be de-referenced. >>> >>> What is more concerning are error messages like: >>> >>> "Warning: Use of +offset(%ebp) is not compatible with regcall >>> convention", since there is not a trace of 32 bit instructions in the >>> code. >>> >>> Bernd >>> >>> >>> >>> >>> _______________________________________________ >>> Freedos-devel mailing list >>> Freedos-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/freedos-devel >> >> >> _______________________________________________ >> Freedos-devel mailing list >> Freedos-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/freedos-devel > > > _______________________________________________ > Freedos-devel mailing list > Freedos-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/freedos-devel _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel