Bernd Mueller schrieb:
Holger Bruns wrote:
Holger Bruns schrieb:
I try to implement a direct port access. If this also leads to access errors, I should give it up. Embarassing.
Accessing ports is limited to ports < 03ffh, more ports cannot be released with fpioperm. This means to me, successful serial port access on higher addresses cannot yet be implemented with fpc. If this policy can be ruled out, let me know.

so you must use a very special serial hardware which is located on io address higher than $3ff. Seems unlikely to me. In your former post, you tried to access io address 1000 (decimal) this is $3e8 (hexadecimal) and should be an ordinary COM3. May be you are mixing up decimal vs. hexadecimal notation.

No, the "1000" means the size of a buffer, not a part address. The port address I try to use is 0xEC00, which is the base address for an UART on a PCI card. Linux sees this UART as /dev/ttyS2. Accessing the registers direcly should be easy, because 3 lines of assembler code should do this job:

function readport (portaddress: word): byte;
begin
asm
 mov %dx, portaddress
  inb %al,%dx
 mov readport, %al
end
end;

As long as the pascal syntax and the assembler syntax (instruction destination source) are both correct for fpc, this function should return the value of the selected port. This is all, what I try to do.


Best regards, Holger

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to