HPlogo Asynchronous Serial Communications Programmer's Reference Manual: HP 3000 MPE/iX Computer Systems > Chapter 7 Programming for PAD, DTC Telnet, Telnet/iX Server, and VT Devices

Virtual Terminal Access on MPE/iX Systems

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Glossary

 » Index

The Virtual Terminal (VT) service of Network Services (NS) is designed to allow applications on the MPE/iX remote host to access devices on local clients as if they were terminals. The VT service on an MPE/iX host will support connections from MPE/iX, MPE V, PCs, and HP-UX systems.

For details on the required hardware, software and network configurations for VT access on MPE/iX systems, as well as more general information on NS, refer to Getting Started With NS 3000/iX and NS 3000/iX Operations and Maintenance Reference Manual.

What's Included

This section includes information on:

  • Limits and restrictions that apply to VT connected devices.

  • Recommended programming practices for VT support.

General VT Restrictions

Only sessions, not jobs, can be established on the remote host by the local client; connections to the remote host under job control will be transparent to the application. This distinction is made for two reasons. First, some applications handle error recovery differently depending on whether the application is run from a session or a job. Second, most FCONTROLs and FDEVICECONTROLs are not supported in the job environment; they will often be ignored although no error is reported.

VT Programming Considerations

The following file system intrinsics can be used to control devices connected to an MPE/iX system via VT. For more information about the following intrinsics, refer to Chapter 8 “Intrinsics Reference” of this manual.

FCONTROL

Some FCONTROLs are not supported for use with VT. If a program uses an unsupported FCONTROL for a VT connected device, the VT driver will return a CCE condition code, but no device control action will take place. Any values returned in these calls may not be a true reflection of device control settings. These FCONTROLs include:

  • FCONTROL(10), set line speed.

  • FCONTROL(11), set line speed.

  • FCONTROL(22), return last read time.

  • FCONTROL(36), define parity setting.

  • FCONTROL(37), set terminal type and speed.

  • FCONTROL(40), determine current speed.

The following FCONTROLs are not supported when the remote device is a PC or an HP-UX client. VT will return a CCE condition code even though no device control will take place:

  • FCONTROL(23), disable parity generation and checking.

  • FCONTROL(24), enable parity generation and checking.

  • FCONTROL(38), set terminal type.

Additionally, for FCONTROL(38), not every terminal type will be supported for use with VT.

The following FCONTROLs are not supported when the remote device is an HP-UX client:

  • FCONTROL(26), disable binary mode.

  • FCONTROL(27), enable binary mode.

  • FCONTROL(28), disable user block mode.

  • FCONTROL(29), enable user block mode.

  • FCONTROL(34), allow printing of !!! when line deletion character is entered.

  • FCONTROL(35), prevent printing of !!! when line deletion character is entered.

The param of FCONTROL(41) is a 16-bit unsigned integer by reference. The value passed in bits (0:8) is used as a subsystem break character and the value passed in bits (8:8) is used as a read terminator. HP-UX (VT3K) and MPE V VT do not allow the subsystem break character to be redefined. Altering the read terminator, bits (8:8), is supported; however, bits (0:8) should be [CTRL]Y to keep existing subsystem break status unchanged, or set to 0 along with bits (8:8) to return to edited mode.

FDEVICECONTROL

The FDEVICECONTROL intrinsic is also supported on MPE/iX systems with VT connections. However, there are also several limitations on the device control operations they perform. The following discussion deals with parm1 values with 192 specified as controlcode.

Results will vary when an application uses an unsupported FDEVICECONTROL call. If the application host is an MPE/iX system, the VT driver will discard the FDEVICECONTROL and return a CCE condition code even though no device control action will take place. In situations where the application host supports a specific FDEVICECONTROL but the remote device does not, the VT driver will usually return an error to the application.

Unsupported FDEVICECONTROLs include:

parm1

Action

1

Specify terminal type or printer type file

2

Set read timeout value

3

Set line speed

4

Set echo

5

Set system break response

6

Set subsystem break response

7

Set timer

8

Return last input time

9

Set parity genration and checking

10

Set parity type

11

Set parity generation and checking

12

Set parity type

14

Set line deletion response

15

Set transparent editing mode

26

Enable/disable XON/XOFF flow control

27

Set XOFF timer value

30

Define read trigger character

32

Define read trigger character

36

Define backspace character

37

Define cancel line character

39

Define type 1 EOR character

40

Define single type 2 EOR character

41

Define subsystem break character

56

Specify data bits per character

64

Ignore parity error on input mode

72

Return PAD line speed

73

Set FCLOSE timeout value

74

Suppress the last form feed

FDEVICECONTROL(28)(block mode types supported) and FDEVICECONTROL(62) (set quiesce I/O) are not supported for use when the remote device is a PC or an HP-UX client.

FDEVICECONTROL(51) (set typeahead mode) is not supported on MPE V remote devices or PCs without appropriate NS software. Additionally, HP-UX (VT3K) supports single echo typeahead only.

FDEVICECONTROL(60) (flush typeahead buffer) and FDEVICECONTROL(61) (bypass typeahead buffer) only support MPE/iX remote devices or PCs with appropriate NS software.

The following FDEVICECONTROLs are supported with MPE/iX hosts and PC clients running appropriate software only. These FDEVICECONTROLs apply to functionality introduced in MPE/iX release 4.5 and PC code NS 2.1 version B.03.00. The FDEVICECONTROLs affected include:

  • FDEVICECONTROL(63), set single echo typeahead mode.

  • FDEVICECONTROL(65), set inter-byte timer.

  • FDEVICECONTROL(66), define multiple type 2 EOR characters (AEOR).

  • FDEVICECONTROL(67), define delete (DEL) to backspace (BS) mapping.

  • FDEVICECONTROL(68), enable/disable escape sequence read termination.

  • FDEVICECONTROL(69), enable/disable suppress echo of read termination characters.

FREAD and FWRITE

In general, VT will support the same size data buffers for FREAD and FWRITE as the DTC. Currently, VT services will accept data buffers up to 4096 bytes long. However, communicating with PC clients is limited to buffers no larger than 3500 bytes. When communicating with a PC client, VT will not support transfers larger than 3500 bytes. Data loss may occur if you exceed the 3500 byte buffer limitation.

Recommended Programming Practices

Application developers are encouraged to use programming practices that will facilitate successful operation in many different network configurations.

The following should be considered:

  1. Because the PC only supports a 3500 byte data buffer, applications should only issue FREADs and FWRITEs of less than 3500 bytes even though the DTC and other VT configurations may support larger buffers. If an application attempts to issue an FWRITE larger than the configuration supports, the data will not be processed. If the remote host detects a buffer size support issue on the local client, it will return a file system error FSERR32 to the application. However, in the case of data transfer between remote host and PC via a third system, the remote host will not detect the buffer size support issue; the application thus receives no error although the data is not processed.

  2. Application programs should check for device availability after IO requests. If a terminal logical device becomes unavailable, the application will receive a file system error FSERR24 indicating that the device is no longer available and that the application should terminate. This guideline minimizes unnecessary use of CPU resources.

  3. Use FCONTROL rather than FDEVICECONTROL whenever possible. Since not all FDEVICECONTROLs are supported on MPE V systems, an FDEVICECONTROL may not work properly.

  4. Use FFILEINFO with itemnum value 60 and FCONTROL(39) if you need to determine the network configuration. FFILEINFO with itemnum value 60 will return an item value corresponding to the terminal type of the device being accessed.

The item values returned from FFILEINFO are of the immediate device. For example, a network configuration involving a PAD connection to an HP 3000 and then a remote VT connection to another HP 3000 will return an item value 5 (NS Virtual Terminal). FCONTROL(39) will return the terminal type value 24 corresponding to the PAD device.

Feedback to webmaster