The following predicates form a simple access mechanism to the Unix 
termcap library to provide terminal independent I/O for screen 
terminals. These predicates are only available on Unix machines. The 
SWI-Prolog Windows consoles accepts the ANSI escape sequences.
- tty_get_capability(+Name, 
+Type, -Result)
- 
Get the capability named Name from the termcap library. See 
termcap(5) for the capability names. Type specifies the type 
of the expected result, and is one of string,numberorbool. String results are returned as an atom, number result 
as an integer and bool results as the atomonoroff. 
If an option cannot be found this predicate fails silently. The results 
are only computed once. Successive queries on the same capability are 
fast.
- tty_goto(+X, 
+Y)
- 
Goto position (X, Y) on the screen. Note that the 
predicates
line_count/2 
and line_position/2 
will not have a well defined behaviour while using this predicate.
- tty_put(+Atom, 
+Lines)
- 
Put an atom via the termcap library function tputs(). This function 
decodes padding information in the strings returned by tty_get_capability/3 
and should be used to output these strings. Lines is the 
number of lines affected by the operation, or 1 if not applicable (as in 
almost all cases).
- set_tty(-OldStream, 
+NewStream)
- 
Set the output stream, used by tty_put/2 
and tty_goto/2 
to a specific stream. Default is user_output.
- tty_size(-Rows, 
-Columns)
- 
Determine the size of the terminal. Platforms:
- Unix
- 
If the system provides ioctl calls for this, these are used and tty_size/2 
properly reflects the actual size after a user resize of the window. As 
a fallback, the system uses
tty_get_capability/3 
using liandcocapabilities. In this case the 
reported size reflects the size at the first call and is not updated 
after a user-initiated resize of the terminal.
- Windows
- 
Getting the size of the terminal is provided for plwin.exe. The 
requested value reflects the current size. For the multi-threaded 
version the console that is associated with the
user_inputstream is used.