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

Reply via email to