[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.2 ^$DEVICE

FreeM implements several important pieces of functionality in the ^$DEVICE SSVN.

The first subscript of ^$DEVICE represents the I/O channel of an OPENed device.

The following values for the second subscript are supported:

$DEVICE

Returns the value of $DEVICE for the specified I/O channel.

$X +R -U -D

Returns the horizontal cursor position of a terminal device. Only valid if the I/O channel is 0.

$Y +R -U -D

Returns the vertical cursor position of a terminal device. Only valid if the I/O channel is 0.

CHARACTER +R -U -D

Returns the character set of the specified I/O channel; always M in the current implementation.

INPUT_BUFFER +R +U -D

Returns or sets the contents of the input buffer for the specified I/O channel. Data populated in this node will remain in the buffer until subsequent READ command(s) remove it. This can be used to perform input buffer stuffing, i.e., to fill out an interactive form programmatically.

NAME +R -U -D

Returns the operating system’s name for the file, device, or socket attached to the specified I/O channel.

FD +R -U -D

Returns the UNIX file descriptor of the specified I/O channel.

MODE +R -U -D

Returns one of READ, WRITE, READWRITE, or APPEND, depending on the mode in which the specified I/O channel was opened.

EOF +R -U -D

Returns 1 if the I/O channel has encountered an end-of-file condition; 0 otherwise. Only valid if the I/O channel is connected to a sequential file.

LENGTH +R -U -D

Returns the length of the file connected to the I/O channel. Only valid if the I/O channel is connected to a sequential file.

NAMESPACE +R -U -D

Returns the current mnemonic-space in use for the referenced I/O channel. Always X364 for terminals and blank for sequential files.

TYPE +R -U -D

Returns either 1,FILE, 2,SOCKET, or 4,TERMINAL, depending on the device type associated with the specified I/O channel.

OPTIONS -R -U -D

The following subscripts reside beneath ^$DEVICE(<io-channel>,"OPTIONS"), and this subscript may not be accessed without one of the following third-level subscripts being specified:

DSW +R +U -D

Sets or returns the current Device Status Word controlling terminal characteristics. Only valid for I/O channel 0.

TERMINATOR +R +U -D

Sets or returns the READ terminator for the specified I/O channel. Must be either $C(13,10) or $C(10). Currently only supported for socket devices (those having an I/O channel of 100-255).

TERMID +R -U -D

Returns the type of terminal connected to channel 0. Only valid for I/O channel 0.

ECHO +R +U -D

Enables or disables local echo of characters typed in a READ command. Only valid for I/O channel 0. Corresponds to bit 0 of the Device Status Word.

DELMODE +R +U -D

Enables or disables visual backspace during a READ command. Only valid for I/O channel 0. Corresponds to bit 2 of the Device Status Word.

ESCAPE +R +U -D

Enables or disables escape sequence processing during a READ command. Only valid for I/O channel 0. Corresponds to bit 6 of the Device Status Word.

CONVUPPER +R +U -D

Enables or disables automatic conversion to uppercase of alphabetical characters during a READ command. Only valid for I/O channel 0. Corresponds to bit 14 of the Device Status Word.

DELEMPTY +R +U -D

Enables or disables the automatic deletion of empty strings supplied to a READ command. Only valid for I/O channel 0. Corresponds to bit 19 of the Device Status Word.

NOCTRLS +R +U -D

TBD. Only valid for I/O channel 0. Corresponds to bit 20 of the Device Status Word.

CTRLOPROC +R +U -D

Enables or disables Ctrl-O processing during READ commands. Only valid for I/O channel 0. Corresponds to bit 21 of the Device Status Word.

NOTYPEAHEAD +R +U -D

Enables or disables typeahead buffering during READ commands. Only valid for I/O channel 0. Corresponds to bit 25 of the Device Status Word.

Example

The following example M code opens /etc/freem.conf and reads its contents line-by-line until the end of the file is reached.

 SET ^$JOB($JOB,"IOPATH")="/etc"   ; set I/O path to /etc
 OPEN 1:"freem.conf/r" ; open freem.conf for reading
 ;
 ; read until we run out of lines
 ;
 FOR  USE 1 READ LINE USE 0 QUIT:^$DEVICE(1,"EOF")  D
 . WRITE LINE,!
 ;
 CLOSE 1
 QUIT

[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on September 20, 2023 using texi2html 5.0.