Intel X86 specific routines for unix platforms.

The x86 unit contains some of the routines that were present in the 1.0.X Linux unit, and which were Intel (PC) architecture specific.

These calls have been preserved for compatibility, but should be considered deprecated: they are not portable and may not even work on future linux versions.

Read data from a PC port

ReadPort reads one Byte, Word or Longint from port Port into Value.

Note that you need permission to read a port. This permission can be set by the root user with the call.

In case of an error (not enough permissions read this port), runtime 216 ( Access Violation) will occur.
,
Read bytes from a PC port

The procedural form of ReadPortB reads Count bytes from port Port and stores them in Buf. There must be enough memory allocated at Buf to store Count bytes.

The functional form of ReadPortB reads 1 byte from port B and returns the byte that was read.

Note that you need permission to read a port. This permission can be set by the root user with the call.

In case of an error (not enough permissions read this port), runtime 216 ( Access Violation) will occur.
,
Read longints from a PC port

The procedural form of ReadPortL reads Count longints from port Port and stores them in Buf. There must be enough memory allocated at Buf to store Count Longints.

The functional form of ReadPortL reads 1 longint from port B and returns the longint that was read.

Note that you need permission to read a port. This permission can be set by the root user with the call.

In case of an error (not enough permissions read this port), runtime 216 ( Access Violation) will occur.
,
Read Words from a PC port

The procedural form of ReadPortW reads Count words from port Port and stores them in Buf. There must be enough memory allocated at Buf to store Count words.

The functional form of ReadPortW reads 1 word from port B and returns the word that was read.

Note that you need permission to read a port. This permission can be set by the root user with the call.

In case of an error (not enough permissions read this port), runtime 216 ( Access Violation) will occur.
,
Write data to PC port

WritePort writes Value -- 1 byte, Word or longint -- to port Port.

You need permission to write to a port. This permission can be set with root permission with the call.
In case of an error (not enough permissions to write to this port), runtime 216 ( Access Violation) will occur.
Write byte to PC port

The first form of WritePortB writes 1 byte to port Port. The second form writes Count bytes from Buf to port Port.

You need permission to write to a port. This permission can be set with root permission with the call.
In case of an error (not enough permissions to write to this port), runtime 216 ( Access Violation) will occur.
Write longint to PC port.

The first form of WritePortB writes 1 byte to port Port. The second form writes Count bytes from Buf to port Port.

You need permission to write to a port. This permission can be set with root permission with the call.
In case of an error (not enough permissions to write to this port), runtime 216 ( Access Violation) will occur.
Write Word to PC port

The first form of WritePortB writes 1 byte to port Port. The second form writes Count bytes from Buf to port Port.

You need permission to write to a port. This permission can be set with root permission with the call.
In case of an error (not enough permissions to write to this port), runtime 216 ( Access Violation) will occur.
Set permission on IO ports

FpIOperm sets permissions on Num ports starting with port From to Value. The function returns zero if the call was successfull, a nonzero value otherwise.

Note:

- This works ONLY as root.
- Only the first 0x03ff ports can be set.
- When doing a FpFork, the permissions are reset. When doing a FpExecVE they are kept.

Extended error information can be retrieved with FpGetErrno
Set I/O privilege level
FpIoPL
sets the I/O privilige level. It is intended for completeness only, one should normally not use it.