Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide Abstract This manual is a guide for programmers who are writing SCREEN COBOL requesters to be used in Pathway applications. Product Version Pathway/iTS 1.
Document History Part Number Product Version Published 110075 Pathway/TS D30+ July 1995 121308 Pathway/TS D40 December 1995 426751-001 Pathway/iTS 1.0 October 2000 Ordering Information For manual ordering information: domestic U.S. customers, call 1-800-243-6886; international customers, contact your local sales representative. Document Disclaimer Information contained in a manual is subject to change without notice.
Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide Index Examples Figures Tables What’s New in This Manual ix Manual Information ix New and Changed Information ix About This Manual xi Who Should Read This Manual Related Documentation xi xi Your Comments Invited xii Notation Conventions xiii 1.
1. Introduction to TCP and Terminal Application Programming (continued) Contents 1. Introduction to TCP and Terminal Application Programming (continued) Development Tools and Utilities (continued) Client/Server Development Tools 1-13 Transaction Processing Scenarios 1-13 Transaction From a Terminal 1-14 Transaction From an Intelligent Device 1-15 2.
3. Programming for Specific Terminals (continued) Contents 3.
5. Managing Transactions With the TMF Subsystem Contents 5.
. Processing Unsolicited Messages Contents 7.
. Processing Double-Byte Character Sets (continued) Contents 8. Processing Double-Byte Character Sets (continued) Example of Working-Storage Section and Screen Section 8-15 9. TCP SETMODE Functions and CONTROL Operations SETMODE Functions 9-1 CONTROL Operations 9-3 Pathway/iTS and CONTROL 26 CONTROL 26 Defined 9-3 9-4 How CONTROL 26 Works CONTROL 26 Initialization 9-4 9-5 Subsequent CONTROL 26 Calls 9-6 Testing TERMINATION Codes 9-6 10.
Figures Contents Figures Figure 1-1. Example of a Pathway/iTS Terminal Requester 1-15 Figure 1-2. Example of an IDS Requester Figure 2-1. Data Flow for a Business Task 2-3 Figure 2-2. Relationships Between Transaction Functions Figure 2-3. Creating SCREEN COBOL Requester Programs Figure 2-4. GDSX as a Front-End Process 2-21 Figure 4-1. Screen Numeric Input Procedure Declaration Figure 4-2. Screen Alphanumeric Input Procedure Declaration Figure 4-3.
Tables Contents Tables Table 1-1. Task and Manual Correspondences 1-1 Table 2-1. Considerations for Requester Programs 2-10 Table 3-1. IBM 3270 Terminal Subclasses and Screen Sizes Table 3-2. Minimum Character Separation for IBM 3270 Terminals Table 3-3. Screen Modes for 6520 Terminals Table 3-4. Minimum Character Separation for 6520 Terminals 3-12 Table 3-5. Screen Modes for 6540 Personal Computers 3-14 Table 4-1.
What’s New in This Manual Manual Information Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide Abstract This manual is a guide for programmers who are writing SCREEN COBOL requesters to be used in Pathway applications. Product Version Pathway/iTS 1.0 Part Number Published 426751-001 October 2000 Document History Part Number Product Version Published 110075 Pathway/TS D30+ July 1995 121308 Pathway/TS D40 December 1995 426751-001 Pathway/iTS 1.
What’s New in This Manual • • • • • Corrections and Enhancements to the Manual The discussion of User-Written User Conversion Procedures on page 4-2 has been corrected to reflect the use of pTAL and the nld utility. A repeated syntax error in the programming examples in Section 7, Processing Unsolicited Messages has been corrected. References to Compaq trademarks have been updated. References to obsolete products have been removed.
About This Manual This manual is a guide for programmers who are writing SCREEN COBOL requesters to be used in Pathway applications. It describes how to use the major features and capabilities available with SCREEN COBOL, such as transaction management and intelligent device support. This manual is intended to be used in conjunction with the Compaq NonStop™ Pathway/iTS SCREEN COBOL Reference Manual, which contains detailed reference information about the SCREEN COBOL programming language.
Your Comments Invited About This Manual Operator Messages Manual Guardian Procedure Errors and Messages Manual NonStop™ TM/MP Application Programmer’s Guide Describes all messages that are distributed by the Event Management Service (EMS), including those generated by NonStop™ TS/MP and Pathway/iTS processes. Describes the Guardian messages for NonStop™ Himalaya systems.
About This Manual Notation Conventions Notation Conventions General Syntax Notation The following list summarizes the notation conventions for syntax presentation in this manual. UPPERCASE LETTERS. Uppercase letters indicate keywords and reserved words; enter these items exactly as shown. Items not enclosed in brackets are required. For example: MAXATTACH lowercase italic letters. Lowercase italic letters indicate variable items that you supply. Items not enclosed in brackets are required.
About This Manual Notation for Messages Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide— 426751-001 xiv
1 Introduction to TCP and Terminal Application Programming This section introduces Pathway transaction processing applications, which you write and run with the assistance of the NonStop™ Transaction Services/MP (NonStop™ TS/MP) and Compaq NonStop™ Pathway/iTS software. The emphasis of this section is on applications that include SCREEN COBOL requesters for use with terminals or intelligent devices. Table 1-1.
Introduction to TCP and Terminal Application Programming Advantages of the Pathway Environment If you are writing SCREEN COBOL requesters that communicate with Compaq NonStop™ TUXEDO servers, refer also to the manuals for the NonStop™ TUXEDO system, particularly the Compaq NonStop™ TUXEDO System Application Development Guide and the NonStop™ TUXEDO System Pathway Translation Servers Manual.
Introduction to TCP and Terminal Application Programming Manageability The Compaq NonStop™ Remote Server Call/MP (RSC/MP) product facilitates client/server computing, allowing workstation applications to access Pathway servers. A number of packaged tools and utilities are commercially available for use with RSC/MP. • • • The Pathway environment helps you standardize program code. You can repeat and reuse code; you do not have to write the same requester and server programs over and over again.
Introduction to TCP and Terminal Application Programming Data Integrity Data Integrity If your database is corrupted by a hardware or software failure, you might need weeks to isolate and then correct the problem. Because an inaccessible or inconsistent database can have a dramatic, adverse effect on business operations, the Transaction Management Facility (TMF) subsystem, provided in the NonStop™ TM/MP product, was developed as a way of ensuring database consistency.
Introduction to TCP and Terminal Application Programming Other Fundamentals of NonStop™ Himalaya Systems Both the PATHMON process and the TCP can be configured as process pairs to support Pathway applications. When the PATHMON process is configured as a process pair, you are ensured the ability to control and monitor OLTP system operation even if the primary PATHMON process fails. When a TCP is configured as a process pair and the primary TCP fails, terminals controlled by the TCP can still be used.
Introduction to TCP and Terminal Application Programming • • • • Other Fundamentals of NonStop™ Himalaya Systems The PATHMON process can dynamically create additional copies of server processes at times of peak demand and delete the additional servers when activity slows again. You can add copies of requester and server programs to your Pathway application to maintain fast response time when the number of users or terminals increases.
Introduction to TCP and Terminal Application Programming Pathway Applications Pathway Applications Pathway applications consist of two types of programs: requester programs and server programs. This design allows application logic to be distributed near the resources it manages. For example, presentation services are located near terminal devices or workstations; database logic resides in server programs near that database.
Introduction to TCP and Terminal Application Programming • Requesters In distributed environments, server processes provide high performance by allowing you to use remote servers instead of performing multiple remote I/O operations, placing transaction processing close to system resources. Server Classes Server classes provide the following benefits: • • • • • You can minimize use of system resources—for example, processes and file opens—because server classes are shared and highly utilized.
Introduction to TCP and Terminal Application Programming Requesters multithreaded interface to terminals or intelligent devices. Finally, they provide support for both context-free and context-sensitive servers. Pathsend requesters are described in the NonStop™ TS/MP Pathsend and Server Programming Manual.
Introduction to TCP and Terminal Application Programming Client/Server Capabilities Client/Server Capabilities The RSC/MP product brings client/server capabilities to the Pathway environment by allowing you to move requester functions to a workstation.
Introduction to TCP and Terminal Application Programming Development Tools and Utilities Development Tools and Utilities When you are writing requester and server programs for your Pathway application, a variety of program development tools and utilities are available to you. These tools and utilities allow you to shorten the amount of time it takes to code, debug, and test your programs.
Introduction to TCP and Terminal Application Programming • • • • • The Pathmaker Application Generator Control access by a TCP to programs in a SCREEN COBOL library Copy programs from one SCREEN COBOL library to another Delete programs from a SCREEN COBOL library Reclaim file space by compressing SCREEN COBOL library files Convert a group of programs in a SCREEN COBOL library into a web client SCUP is described in the Compaq NonStop™ Pathway/iTS SCUP Reference Manual.
Introduction to TCP and Terminal Application Programming The Enable Product The Enable Product The Enable product, used with the Enscribe database record manager, is a tool that allows you to develop simple data management applications without using a conventional programming language.
Introduction to TCP and Terminal Application Programming Transaction From a Terminal Transaction From a Terminal Figure 1-1 illustrates the path of a transaction from a Pathway/iTS terminal, which is controlled by a SCREEN COBOL program executed by the TCP, to a Pathway server. For this example, consider a clerk at an order entry office who must update customer information for account number 1234567. 1. The clerk displays the order screen, a data entry screen, on a terminal.
Introduction to TCP and Terminal Application Programming Transaction From an Intelligent Device Figure 1-1. Example of a Pathway/iTS Terminal Requester NonStopTM Himalaya System Pathmon Environment PATHMON Server Class Request TCP Server Reply TERM-1 NonStop SQL/MP Account Database CDT 011.
Introduction to TCP and Terminal Application Programming Transaction From an Intelligent Device 3. The workstation application checks the input data, confirming that the account number entered has no more than seven characters. The workstation application then displays a new screen showing the customer information as it is currently recorded in the database. 4.
Introduction to TCP and Terminal Application Programming Transaction From an Intelligent Device Figure 1-2. Example of an IDS Requester NonStopTM Himalaya System Pathmon Environment PATHMON Server Class Request IDS TERM-1 TCP Server Reply NonStopTM SQL/MP Account Database CDT 012.
Introduction to TCP and Terminal Application Programming Transaction From an Intelligent Device Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide— 426751-001 1- 18
2 Designing Your Application To develop a functioning Pathway application, you must identify the individual transactions in your business operations, design and build the application database, and design and code requester programs and server programs. This section describes the design of transactions and databases for Pathway applications and the design of requester and server programs.
Designing Your Application Analyzing Data Flow Analyzing Data Flow Analyzing the flow of data involves identifying what information is required for a business task, determining the order in which that information is required, and specifying how the information is to be handled. To automate the order-processing tasks of the previously described distributorship, for example, you could analyze the flow of information as follows: 1.
Analyzing Data Flow Designing Your Application Figure 2-1. Data Flow for a Business Task 1. Accept: — Customer ID — Requested shipping date — Shipping instructions 2. 3. Accept: — List of ordered items — Quantity of each item 4. 5. Accept: 6. — Check customer ID. — Get customer's name and address. — Get order ID. — Confirmation Customer Information Order IDs \WHS — Check quantity available for delivery of each ordered item. — Calculate order cost. — Get customer balance and credit limit.
Designing Your Application Identifying Transaction Components Identifying Transaction Components After you have identified the Enter Sales transaction for the order-processing application, you list the functions performed by the transaction and group them either into data collection and validation operations or into database update operations.
Identifying Transaction Components Designing Your Application Figure 2-2.
Designing Your Application Protecting Transactions Protecting Transactions After listing and grouping the components of the Enter Sales transaction, you protect the integrity of each transaction, and ultimately the consistency of the database, with the TMF subsystem. The following pages outline how to integrate the TMF subsystem with your business transactions.
Designing Your Application Protecting Transactions billed for an order never received. Consequently, your basic criterion for database consistency is as follows: all database updates that are related to the order must be part of one TMF transaction. Any record modified or inserted by a database operation that is protected by the TMF subsystem is locked and unavailable to other transactions until the initial transaction ends successfully.
Designing Your Application Designing the Database Designing the Database The next step in developing a Pathway application is to design the database that will be accessed and updated by the application. Designing the database, which is a highly specialized activity typically performed by experienced database administrators, involves: • • Precisely identifying the meaning and use of the data as it exists in your business and specifying the database files and records that will store this data.
Physical Design Designing Your Application Physical Design You undertake the physical design of your database by selecting the appropriate file types and record keys for each of the files in the database.
Remote Duplicate Database Facility (RDF) Designing Your Application Remote Duplicate Database Facility (RDF) If disaster recovery of your database is important, the Remote Duplicate Database Facility (RDF) is available to maintain a copy of the database on a remote system. The RDF product monitors database updates audited by the TMF subsystem and applies those updates to the remote copy of the database.
Designing Your Application SCREEN COBOL Requesters SCREEN COBOL Requesters Screen programs for Pathway terminals perform a variety of front-end functions for your Pathway application and are typically written as single-threaded programs in the SCREEN COBOL language. This language offers a simple programming environment and screen-management system to drive 65xx terminals and IBM 3270 terminals.
SCREEN COBOL Requesters Designing Your Application As a programmer, your task is to create each required program unit. For each program unit, you use the text editor TEDIT to create a screen program as a SCREEN COBOL source file.
Designing Your Application • • • SCREEN COBOL Requesters The Environment Division declares the operating environment of the program unit and optionally allows modification of the TCP’s error-reporting operations. It contains one required section (the Configuration Section) and one optional section (the Input-Output Section). The Data Division defines the program data structures by their format and usage.
SCREEN COBOL Requesters Designing Your Application Example 2-1. Sample SCREEN COBOL Requester Program Structure (page 1 of 2) IDENTIFICATION DIVISION. PROGRAM-ID. Declares program unit name. ORDER ENVIRONMENT DIVISION. OBJECT COMPUTER. TERMINAL IS T16-6530 SPECIAL NAMES. ENTER F1,. . . BRIGHT IS BRIGHT PROTECTED IS PROTECTED Defines type of terminals this program unit will control. Defines special names for: 1. Function key names 2. Video attributes 3. Flow control data attributes DATA DIVISION.
Designing Your Application SCREEN COBOL Requesters Example 2-1. Sample SCREEN COBOL Requester Program Structure (page 2 of 2) PROCEDURE DIVISION. MAIN SECTION. PERFORM 0100 START . . . SCREEN MANAGER SECTION. DISPLAY ORDER-SCREEN ACCEPT ORDER-SCREEN UNTIL Displays operator screen and accepts data from screen. SERVER MANAGER SECTION. 0200 MOVE ORDER TO. . . BEGIN-TRANSACTION SEND ORDER-MSG TO. . . . . . REPLY CODE 0 YIELDS. . .
Designing Your Application IDS Requesters 3. After constructing an appropriate response, requesters reply to an unsolicited message by performing a REPLY TO UNSOLICITED MESSAGE statement. IDS Requesters Standard SCREEN COBOL requesters are screen oriented; they send data back and forth between the Working-Storage Section of the program and a terminal’s display screen by using screen templates defined in the Screen Section.
IDS Requesters Designing Your Application Program Structure The example in Example 2-2 outlines an IDS SCREEN COBOL requester program. Except for the inclusion of the Message Section and the deletion of the Screen Section, the structure of an IDS requester program is the same as that of a standard SCREEN COBOL requester program. Example 2-2. Sample IDS Requester Program Structure (page 1 of 2) IDENTIFICATION DIVISION. PROGRAM-ID. ORDER ENVIRONMENT DIVISION. OBJECT COMPUTER.
Designing Your Application Pathsend Requesters Example 2-2. Sample IDS Requester Program Structure (page 2 of 2) PROCEDURE DIVISION. MAIN SECTION. PERFORM 0100 START . . . DEVICE HANDLING SECTION. SEND MSG MSG-FORMAT Sends messages to and receives messages from intelligent device. SERVER MANAGER SECTION. 0200 MOVE ORDER TO. . . BEGIN-TRANSACTION SEND ORDER-MSG TO. . . REPLY CODE 0 YIELDS. . .
Designing Your Application • • Clients Using RSC/MP Write nested servers, which act as requesters by making requests to servers in other server classes, perhaps server classes managed by a different PATHMON process. Write context-sensitive servers (servers that retain information about the processing of previous requests). Pathsend procedure calls give you more flexibility than WRITEREAD calls for serverto-server communication.
Designing Your Application Requesters Using GDSX For information about designing and coding requesters with the RSC/MP product, refer to the Compaq NonStop™ Remote Server Call (RSC/MP) Programming Manual. Requesters Using GDSX The Extended General Device Support (GDSX) communications subsystem product simplifies the development of front-end processes and back-end processes for communication with I/O devices.
Requesters Using GDSX Designing Your Application coordinate multiple GDSX device handler tasks or the GDSX device handler task can directly communicate with a back-end line. Figure 2-4 shows the path of a transaction from a general device to a Pathway server through a GDSX process. Figure 2-4. GDSX as a Front-End Process NonStopTM Himalaya System PATHMON General Device Server Class LH GDSX IDS TCP Server General Device NonStop TM/MP General Device NonStop SQL/MP Database CDT 024.
Designing Your Application Dividing Function Between Requester and Server For further information about designing and coding GDSX processes, refer to the Extended General Device Support (GDSX) Manual. Dividing Function Between Requester and Server In designing a Pathway application, you must decide how to divide function between requester and server.
Designing Your Application Designing Applications for Batch Processing server classes if you ensure that the server program’s request and reply formats are consistent for all requesters. After you code and compile your server program, the server object code and library code are shared among all processes of the same server class. For information about designing and coding Pathway servers, refer to the NonStop™ TS/MP Pathsend and Server Programming Manual.
Designing Your Application Designing Applications for Batch Processing Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide— 426751-001 2- 24
3 Programming for Specific Terminals Compaq NonStop™ Pathway/iTS currently supports IBM 3270 terminals, the 6530 family of terminals (652x series, 653x series, and 654x series), any device that is recognized by the file system as a conversational-mode terminal, and any entity that is identified as an intelligent-mode device. Each type of device has its unique set of requirements. This section summarizes those requirements.
Controlling the Screen Modes Programming for Specific Terminals When running a SCREEN COBOL application on the IBM terminals, consider the following: • A single screen definition can be displayed successfully on any model as long as its logical screen size is less than or equal to the maximum physical screen size capability of the terminal.
Positioning the Screen Fields Programming for Specific Terminals Positioning the Screen Fields All fields must reserve a blank character position immediately before the field. For example: • • If a single-character field is to be located at line 2, column 2, on the terminal screen, then both character positions 2,1 and 2,2 must be reserved for that field.
Programming for Specific Terminals Using IBM 3270 Function Keys Using IBM 3270 Function Keys The IBM terminals have a unique set of function keys that can be used by a SCREEN COBOL application. The function keys are: • • • PA1 through PA3 PA4 through PA10 PF1 through PF24 The PA4 though PA10 keys are optional keys, and the values they transmit when pressed may vary from vendor to vendor.
Programming for Specific Terminals • Using Extended Field Attributes Use the mnemonic names in either the Screen Section or the Procedure Division of the program unit to refer to the color, highlight, or outline display attributes. For example: MNEMONIC-NAME-1 IS RED. When the program unit is run, the TCP determines which extended field attributes are supported by the terminal. • The TCP uses only the extended field attributes that the terminal supports.
Programming for Specific Terminals Using Extended Field Attributes The SET MINIMUM-ATTR and SET MINIMUM-COLOR statements cause the information in the working-storage definitions to be extracted and stored in a control block with other information related to the program unit. • • • • When a terminal or program unit is started, the TCP initializes the extended field attribute requirements of the program unit as follows: • • • No support for highlight display attributes is required.
Using Extended Field Attributes Programming for Specific Terminals Color, highlight, and outline display attributes associated with a mnemonic name declared in the SPECIAL-NAMES paragraph can be used in the TURN statement, which changes the display attributes of fields, as in the following example: TURN TURN TURN TURN ALERT TEMP BLUE BG-YELLOW ATTRS-AND-COLOR IN IN IN IN SCREEN-FIELD-01 SCREEN-FIELD-02 SCREEN-FIELD-03 SCREEN-FIELD-04 SHADOWED. SHADOWED. SHADOWED. SHADOWED.
Using Extended Field Attributes Programming for Specific Terminals You cannot use more than one foreground color (that is, the color of characters displayed on the terminal screen). In other words, you can assign only one foreground color display attribute to a single mnemonic-name. For example: LEGAL-MNEMONIC-6 IS RED. Attempting to combine more than one foreground color display attribute in a mnemonicname parameter results in a syntax error.
Programming for Specific Terminals Using Extended Field Attributes Using Outline Display Attributes Pathway/iTS supports the following outline display attributes on terminals in the IBM 3270 family: TOPLINE NOTOPLINE LEFTLINE NOLEFTLINE RIGHTLINE NORIGHTLINE BOTTOMLINE NOBOTTOMLINE BOXFIELD Note. BOXFIELD is equivalent to the combination of TOPLINE, LEFTLINE, RIGHTLINE, and BOTTOMLINE.
Programming for Specific Terminals • Using Extended Field Attributes You can combine one of the following highlight display attributes with one or more of the other highlight display attributes (that is, with BRIGHT, HIDDEN, MDTON, NUMERIC-SHIFT, or PROTECTED).
Using 6520 Terminals Programming for Specific Terminals Using 6520 Terminals When communicating with 6520 terminals in the Pathway environment, you need to consider: • • The rules for controlling the screen mode The rules for positioning the screen fields Controlling the Screen Modes The 6520 terminal has two screen modes, as shown in Table 3-3. You control which screen mode is used by a SCREEN COBOL screen definition. Table 3-3.
Using 6530 Terminals Programming for Specific Terminals Table 3-4.
Programming for Specific Terminals Internal Function-Key Queuing Internal Function-Key Queuing 6530 terminals have the unique capability of internally queuing a function key without a read operation being posted. When no terminal read operation is in progress and a terminal key is pressed, the function key value is stored inside the terminal. The value is read upon the next ACCEPT statement that the SCREEN COBOL program executes.
Programming for Specific Terminals Using Conversational Terminals Table 3-5.
Programming for Specific Terminals • • • Designating Conversational Terminals Responds to a set of input-control characters when the terminal is enabled to accept data Recognizes only keyboard characters, carriage returns, and line feeds (not function keys) Restricts the display field attributes to BELL and HIDDEN Designating Conversational Terminals You designate a conversational terminal by specifying the following clause in the OBJECT-COMPUTER paragraph of the Environment Division: TERMINAL IS CONVER
Programming for Specific Terminals Displaying Information Displaying Information The DISPLAY BASE statement establishes the current screen. A DISPLAY statement in conversational mode causes the TCP to write to the terminal display, which can be a screen, printer paper, and so forth. The DISPLAY statement presents output in order by rows. A screen field value appears on the screen at the column number position specified in the screen field description. Blank lines for formatting purposes are not generated.
Using Intelligent-Mode Devices Programming for Specific Terminals Using Intelligent-Mode Devices A SCREEN COBOL program operates in intelligent mode when it communicates with an intelligent device. An intelligent device is any device that can receive and reply to messages sent by the SEND MESSAGE statement in a SCREEN COBOL program.
Programming for Specific Terminals • Using Simulated Devices The following special registers have no meaning for programs that communicate with intelligent devices: REDISPLAY PW-QUEUE-FKEY-UMP PW-QUEUE-FKEY-TIMEOUT PW-TERMINAL-ERROR-OCCURRED TELL-ALLOWED • In order for a SCREEN COBOL program unit to communicate with an intelligent device, the OBJECT-COMPUTER paragraph of the Environment Division must specify that the terminal type is INTELLIGENT.
Programming for Specific Terminals Using Dial-in Terminals Using Dial-in Terminals When dial-in terminals are in use, the terminal control process (TCP) issues a CONTROL 11 operation (wait for modem connect) immediately after the terminal file is opened. At terminal startup time, no program unit or data area is attached to the terminal; therefore, the terminal is using a minimum of TCP resources while waiting for modem connect. When the terminal is stopped, the terminal file is closed.
Programming for Specific Terminals Using Dial-in Terminals Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide— 426751-001 3- 20
4 Writing User Conversion Procedures If you include a USER CONVERSION clause in a screen description entry, a message description entry, or a SEND MESSAGE statement, you must provide a corresponding user conversion procedure. The user conversion procedure lets you make your own validation checks or conversions of data passed between a SCREEN COBOL program and a terminal screen or intelligent device.
Writing User Conversion Procedures User-Written User Conversion Procedures CONVERSION clause as part of either a field definition or a SEND MESSAGE statement. User-Written User Conversion Procedures You can write your own user conversion procedures in the Portable Transaction Application Language (pTAL) and use the nld utility to link your procedures in the native TCP user library object file, PATHTCPL. In releases prior to D40, user conversion procedures were written in TAL.
Writing User Conversion Procedures Coding the User Conversion Procedures and Creating the User Library 2. Compile the source using pTAL as follows: PTAL/IN $MY.USERCNV.SLIB/user-conversion-object user-conversion-object is a pTAL object file. 3. Remove all compilation errors. 4. Build the user library using the nld utility as follows: NLD user-conversion-object $volume.ZPATHWAY.TCPLIB -UL-O native-user-library user-conversion-object is a pTAL object file.
Writing User Conversion Procedures Restrictions on User Conversion Procedures Restrictions on User Conversion Procedures Do not code your user conversion procedures to perform any I/O operations. Such I/O operations could interfere with the operation of the TCP. Screen Input Procedures Two procedures provide conversion during screen input, one procedure for input of numeric data items and the other for input of alphanumeric items.
Writing User Conversion Procedures Screen Input Procedures USERCODE is the value given in the USER CONVERSION field characteristic clause. This parameter can be used to select a particular type of conversion. ERROR is both an input and an output parameter. When the procedure is called, the parameter contains either 0 (indicating no error) or the number of a conversion error detected during the attempted standard conversion.
Writing User Conversion Procedures • Screen Output Procedures For the alphanumeric procedure, INTERNAL is a STRING parameter. INTERNAL^LEN represents the maximum number of bytes that the result of the conversion can occupy; therefore, the conversion routine should use INTERNAL^LEN to control the maximum amount of data moved to INTERNAL. Screen Output Procedures Two procedures provide conversion during screen output.
Writing User Conversion Procedures 3270 Key Mapping USERCODE contains the value given in the USER CONVERSION field characteristic clause. This parameter can be used to select a particular type of conversion. OUTPUT indicates where the string of characters for output to the terminal is to be placed. When the procedure is called, the location designated by this parameter contains the result of the standard conversion. OUTPUT^LEN contains the length of the output string.
3270 Key Mapping Writing User Conversion Procedures Declarations for the key-mapping procedure are shown in Figure 4-5. Figure 4-5. 3270 Key-Mapping Procedure Declaration PROC USER^3270^KEY^MAPPING ( AID, KEYNUM ); INT AID; INT .
3270 Key Mapping Writing User Conversion Procedures Table 4-1.
Intelligent Device Input Procedures Writing User Conversion Procedures Table 4-1. Mapping of Internal 3270 Key Number to Pathway/iTS Key Number (page 3 of 3) Undefined %075 -1 (Selector Pen Attn) Undefined %055 -1 (No AID--Display) Undefined %131 -1 (No AID--Printer) Other -- -1 * The AID byte value for this key varies from terminal vendor to terminal vendor. Refer to the manual that came with your terminal for the value.
Intelligent Device Input Procedures Writing User Conversion Procedures Figure 4-6.
Intelligent Device Input Procedures Writing User Conversion Procedures Figure 4-8. Device Alphanumeric Input Procedure Declaration PROC USER^ALPHA^INPUT^MSG^CONV ( USERCODE, ERROR, INPUT, INPUT^LEN, INTERNAL, INTERNAL^LEN, FILL^CHAR, FILL^OFF, RIGHT^JUSTIFIED, FIELD^RETURNED, FIELD^PRESENT ); INT INT STRING INT STRING INT STRING INT INT INT USERCODE; .ERROR; .EXT INPUT; .INPUT^LEN; .EXT INTERNAL; INTERNAL^LEN; .FILL^CHAR; FILL^OFF; .FIELD^RETURNED; .
Writing User Conversion Procedures Intelligent Device Output Procedures INTERNAL is where the TCP expects to find the results of the conversion routine; that is, it is the destination of the data from the INPUT parameter—of length INPUT^LEN— that the conversion routine has processed. INTERNAL^SCALE is a parameter in the numeric procedure only. The procedure should set it to the number of decimal places of the value stored in INTERNAL when it is a FIXED field.
Intelligent Device Output Procedures Writing User Conversion Procedures When USER CONVERSION is specified in a message entry, the TCP calls the numeric procedure for data moved from a numeric data field in working storage; it calls the alphanumeric procedure for data moved from an alphanumeric data field in working storage. When USER CONVERSION is specified in a SEND MESSAGE statement, the TCP calls the alphanumeric procedure regardless of the message data type.
Intelligent Device Output Procedures Writing User Conversion Procedures items cannot. Declarations for the numeric and alphanumeric device output procedures are shown in Figure 4-10 and Figure 4-11. Figure 4-10. Device Numeric Output Procedure Declaration PROC USER^NUMERIC^OUTPUT^MSG^CONV ( USERCODE, OUTPUT, OUTPUT^LEN, MAX^OUTPUT^LEN, INTERNAL, INTERNAL^SCALE, FILL^CHAR, FILL^OFF ); INT STRING INT INT FIXED INT STRING INT USERCODE; .EXT OUTPUT; .OUTPUT^LEN; MAX^OUTPUT^LEN .INTERNAL; INTERNAL^SCALE; .
Writing User Conversion Procedures Intelligent Device Output Procedures OUTPUT^LEN to the new length. In no case should OUTPUT^LEN be greater than MAX^OUTPUT^LEN. OUTPUT^LEN can vary from the user-defined length in cases of delimited-format messages. MAX^OUTPUT^LEN represents the maximum possible length of the particular converted output field. This value should be used to control the maximum amount of data moved to OUTPUT. INTERNAL points to the data to be converted.
5 Managing Transactions With the TMF Subsystem This section provides information about the Compaq Transaction Management Facility (TMF) subsystem for SCREEN COBOL programmers. It also briefly discusses PATHCOM and SPI parameter options for Pathway applications that use SCREEN COBOL requesters and the TMF subsystem.
TMF Application Structure Managing Transactions With the TMF Subsystem Figure 5-1. Pathway Application Programming for the TMF Subsystem COBOL85, C, C++, Pascal, TAL, ...
Managing Transactions With the TMF Subsystem TMF Programming in SCREEN COBOL trails (transaction logs) can include the identity of the transaction responsible for each database change. Servers should not reply to request messages until all work for the request has been completed. The contents of the reply message indicate the outcome of the request, which is one of the following: • • • All the work for the request was completed successfully. None of the work for the request was completed.
Managing Transactions With the TMF Subsystem SCREEN COBOL Verbs for the TMF Subsystem When END-TRANSACTION or ABORT-TRANSACTION is executed, the transaction identifier is discarded and can no longer be used. For the PATHCOM or SPI SUSPEND, STOP, or FREEZE commands, the effect of operating in transaction mode is like setting the STOP-MODE special register to a nonzero value; none of these commands can take effect until the terminal leaves transaction mode and the terminal STOP-MODE register is 0.
Managing Transactions With the TMF Subsystem SCREEN COBOL Verbs for the TMF Subsystem You should include an ON ERROR clause in each BEGIN-TRANSACTION statement and provide coding to check for file-system errors that could occur on any of the transaction statements. Failure to perform these checks could cause important parts of your application to fail.
Managing Transactions With the TMF Subsystem SCREEN COBOL Verbs for the TMF Subsystem The BEGIN-TRANSACTION statement indicates the restarting point to be used if a failure occurs while the terminal is in transaction mode. If the transaction fails for any reason, its database changes are backed out.
Managing Transactions With the TMF Subsystem SCREEN COBOL Special Registers for the TMF Subsystem IF RESTART-COUNTER > 2 ABORT-TRANSACTION DISPLAY "No" IN MSG MOVE 1 TO abort-flag. END-TRANSACTION Use The END-TRANSACTION statement indicates that the transaction is complete. When this statement is successfully executed, the database updates made by the transaction become permanent, the terminal leaves transaction mode, and the special register TRANSACTION-ID is set to SPACES.
Managing Transactions With the TMF Subsystem • Interaction Between the PATHMON Environment and the TMF Subsystem TRANSACTION-ID Executing BEGIN-TRANSACTION sets TRANSACTION-ID to the value of the transaction identifier. Executing END-TRANSACTION or ABORTTRANSACTION sets this register to SPACES. TRANSACTION-ID has this implicit declaration: 01 TRANSACTION-ID • PIC X(8). TERMINATION-STATUS Executing BEGIN-TRANSACTION sets the value of TERMINATION-STATUS to indicate the outcome of BEGIN-TRANSACTION.
Managing Transactions With the TMF Subsystem • • SET SERVER Command and the TMF Subsystem How is TCP checkpointing strategy affected by the settings you specify for the TMF parameter of the SET SERVER command? What problems are caused by using the TMF OFF option of the SET TERM or SET PROGRAM commands as a switch to turn TMF subsystem operation off for a SCREEN COBOL requester that is communicating with servers running under the TMF subsystem? Understanding the answers to these questions ensures the con
Managing Transactions With the TMF Subsystem Effect of TMF Parameters on SCREEN COBOL SEND Operations Effect of TMF Parameters on SCREEN COBOL SEND Operations Table 5-1 illustrates how the various combinations of settings of the TMF parameter in the PATHCOM SET TERM, SET PROGRAM, and SET SERVER commands affect a SCREEN COBOL SEND statement when the PATHMON process and the TMF subsystem are both running on the system.
Managing Transactions With the TMF Subsystem Timeouts on SEND Operations to Servers Table 5-1. SEND Operations With the TMF Subsystem (page 2 of 2) PATHCOM Commands Audited Files SET SERVER SET TERM SET PROGRAM TMF OFF TMF ON TMF ON SEND error 133 SEND statement executes5 SET SERVER SET TERM SET PROGRAM TMF OFF TMF OFF TMF OFF SEND error 133 SEND statement executes5 LEGEND Transaction Mode.
Managing Transactions With the TMF Subsystem TCP Checkpointing Strategy the transaction is automatically aborted by the file system. In such a case the requester program discovers that the transaction was aborted when it subsequently attempts to update the database (with another SEND statement) or issues an END-TRANSACTION statement.
Managing Transactions With the TMF Subsystem Precautions for Using TMF Parameters Precautions for Using TMF Parameters If a TMF error occurs and makes normal operation impossible, you should not try to solve the problem by setting the PATHCOM TMF parameter options to OFF.
Managing Transactions With the TMF Subsystem Precautions for Using TMF Parameters Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide— 426751-001 5- 14
6 Programming for Intelligent Devices Standard SCREEN COBOL requesters interact with a limited set of video display terminals. Standard requesters are screen-oriented; they send data from working storage to the display screen of a terminal by using screen templates defined in the Screen Section of the Data Division. Similarly, they receive data from the terminal into working storage by using Screen Section templates.
Programming for Intelligent Devices The SEND MESSAGE Statement The SEND MESSAGE Statement The SEND MESSAGE statement moves data from working storage to an external process (outside the PATHMON environment). The associated REPLY statement accepts data from the external process and moves it into working storage.
Programming for Intelligent Devices Using Delimiters and the RESULTING COUNT Clause Using Delimiters and the RESULTING COUNT Clause Among the IDS extensions to the SCREEN COBOL programming language is one that provides the ability to send and receive messages that contain message-delimiter and field-delimiter characters. The use of delimiters makes it possible for your requester and the external device or front-end process to exchange compact variable-length messages efficiently.
Sample Declarations Programming for Intelligent Devices 01 WS-ITEM2. 05 WS-ITEM2-CNT PIC 9(2) COMP. 05 WS-ITEM2-GROUP. 10 WS-ITEM2-DATA PIC X(1) OCCURS 1 TO 30 TIMES DEPENDING ON ws-item2-cnt. 01 WS-ITEM3. 05 WS-ITEM3-CNT PIC 9(2) COMP. 05 WS-ITEM3-GROUP. 10 WS-ITEM3-DATA PIC X(1) OCCURS 1 TO 30 TIMES DEPENDING ON ws-item3-cnt. 01 WS-ITEM4. 05 WS-ITEM4-CNT PIC 9(2) COMP. 05 WS-ITEM4-GROUP. 10 WS-ITEM4-DATA PIC X(1) OCCURS 1 TO 30 TIMES DEPENDING ON ws-item4-cnt. 01 WS-ITEM5. 05 WS-ITEM5-CNT PIC 9(2) COMP.
Processing Field Delimiters on Input Programming for Intelligent Devices The message template declares that the associated message will contain a field delimiter (a comma, by default) but no message delimiter. Each field in the message template is fixed in length, to accommodate the maximumsize data item, whereas the corresponding fields in working storage are variable in length and rely on the content of an associated count field to determine their length.
Using Message Delimiters Programming for Intelligent Devices For example, suppose you want to send the following message to the external device or process: BILL WINN,GIUSEPPE PINELLI,JOE BLOW,LING CHIN,SARAH HARRAH, To do so, you would move the following values to the specified working-storage locations: 'BILL WINN' '9' ws-item1-data ws-item1-cnt 'GIUSEPPE PINELLI' '16' ws-item2-data ws-item2-cnt 'JOE BLOW' '8' ws-item3-data ws-item3-cnt 'LING CHIN' '9' ws-item4-data ws-item4-cnt 'SARAH HARRAH' '
Using Delimited Format With Delimiters Turned Off Programming for Intelligent Devices Using Delimited Format With Delimiters Turned Off By declaring a message template to be delimited but turning off both the field and message delimiters, you can effectively create a new type of variable-length record format that has no prefix byte count or delimiters.
Using TRANSFORM Statements Programming for Intelligent Devices Using TRANSFORM Statements The TRANSFORM statement lets you move multiple data items from one place in working storage to another, converting them in the process by a single statement. You can achieve the same results without the TRANSFORM statement, but you must use a whole paragraph of MOVE statements to do so.
Programming for Intelligent Devices Example 1: Disassembling Input Messages 01 CONTROL-RECORD-2. 05 CTL-FLD-2 PIC X(10). 05 CTL-FLD-4 PIC X(10). 01 DATA-RECORD-1. 05 DATA-FLD-A PIC X(10). 05 DATA-FLD-B PIC X(10). 05 DATA-FLD-C PIC X(10). 05 DATA-FLD-D PIC X(10). 05 DATA-FLD-E PIC X(10). 01 DATA-RECORD-2. 05 DATA-FLD-F PIC X(10). 05 DATA-FLD-G PIC X(10). 05 DATA-FLD-H PIC X(10).
Programming for Intelligent Devices Example 1: Disassembling Input Messages 2. If the reply code in the transmission header indicates successful transmission (0 in the preceding case), the requester processes the message as either control information or application data, depending upon the value of the select code within the message itself. The requester does this by using a TRANSFORM statement as follows: DISASSEMBLE-MESSAGE.
Example 2: Assembling Output Messages Programming for Intelligent Devices Example 2: Assembling Output Messages The next example uses a TRANSFORM statement to gather a set of data values from diverse locations in working storage, to convert them from one format to another, and to assemble them into a completely different field structure to form a single record. That record will subsequently be sent, through a SEND statement, to a server process.
Using PRESENT IF Clauses Programming for Intelligent Devices When it is time to gather all of the specified data values from their diverse locations in working storage, convert them from alphabetic or numeric to alphanumeric format if necessary, and store them in the proper order into the data structure SERVER-RECORD-1, the requester can use a TRANSFORM statement such as the following: TRANSFORM data-fld-A, data-fld-H, data-fld-G, data-record-2, data-fld-B, data-fld-F YIELDS server-record-1 ON ERROR GO TO
Using PRESENT IF Clauses Programming for Intelligent Devices MSG-IN-FLAVOR2), the presence of the alias name, address, city, state, and ZIP fields is determined by bit-mask values contained earlier in the message. The Working-Storage Section declarations for MSG-IN-FLAVOR1 are as follows: WORKING-STORAGE SECTION. 01 WS-MSG-IN. 05 NAME 05 ADDRESS 05 CITY 05 STATE 05 ZIP 05 05 05 05 05 PIC PIC PIC PIC PIC ALIAS-NAME ALIAS-ADDRESS ALIAS-CITY ALIAS-STATE ALIAS-ZIP X(20). X(20). X(15). X(3). 9(5).
Using PRESENT IF Clauses Programming for Intelligent Devices 05 MS-ALIAS-CITY 05 MS-ALIAS-STATE 05 MS-ALIAS-ZIP PRESENT IF MS-ALIASNAME FIELD-STATUS IS FS-ADDRESS. PIC X(15) TO ALIAS-CITY PRESENT IF MS-ALIASNAME FIELD-STATUS IS FS-CITY. PIC 9(3) TO ALIAS-STATE PRESENT IF MS-ALIASNAME FIELD-STATUS IS FS-STATE. PIC 9(5) TO ALIAS-ZIP PRESENT IF MS-ALIASNAME FIELD-STATUS IS FS-ZIP.
Programming for Intelligent Devices Error Processing and Debugging Techniques When the MSG-IN-FLAVOR2 template is used for receiving incoming messages, the fields PRESENCE-MASK through ZIP are always physically present. Each single-bit elementary item within PRESENCE-MASK determines whether one of the ALIAS fields (following ZIP) is present.
FIELD STATUS Processing Programming for Intelligent Devices The following SEND MESSAGE statement shows the YIELDS clauses associated with the input messages: SEND MESSAGE MSG-3-OUT-M-1 REPLY CODE FIELD IS WS-MSG-4-IN-FROM-MSG-4-IN-CODE CODE 1 YIELDS MSG-3-IN CODE 2 YIELDS MSG-4-IN CODE 3 YIELDS MSG-3-IN CODE 4 YIELDS MSG-4-IN ON ERROR PERFORM IDS-SERVER-SEND-ERROR.
7 Processing Unsolicited Messages The unsolicited-message processing (UMP) feature of Compaq NonStop™ Pathway/iTS makes it possible for SCREEN COBOL requesters to accept and reply to unsolicited messages sent to them by processes that are outside the PATHMON environment. These external processes can reside anywhere within a Compaq Expand network.
Processing Unsolicited Messages Detecting the Arrival of Unsolicited Messages Detecting the Arrival of Unsolicited Messages Each requester program has its own unsolicited-message queue. In addition, each requester program has its own copy of the PW-UNSOLICITED-MESSAGE-QUEUED special register that is global to any program units called by that requester.
The PW-TCP-SYSTEM-NAME and PW-TCPPROCESS-NAME Special Registers Processing Unsolicited Messages The PW-TCP-SYSTEM-NAME and PW-TCPPROCESS-NAME Special Registers The read-only special registers, PW-TCP-SYSTEM-NAME and PW-TCP-PROCESSNAME, contain the system name and Guardian process name of the requester's TCP.
Processing Unsolicited Messages Unsolicited-Message TERMINATION-STATUS Values The ACCEPT verb in this example acts differently on a 6510 terminal than it does on other terminals. On a terminal that is not a 6510, the visible cursor position is unchanged because of the NO value in PW-USE-NEW-CURSOR; on a 6510, however, the PW-USE-NEW-CURSOR special register has no effect and the visible cursor moves to the screen location designated by a-field.
Processing Unsolicited Messages Pathway/iTS Error Codes Pathway/iTS Error Codes The following Pathway/iTS error codes can appear in the PATHMON log as the result of unsolicited-message processing. 3125 - MULTIPLE UNSOLICITED MESSAGES REJECTED DUE TO TERM STOP/SUSPEND Unsolicited messages were queued for a requester when the requester was stopped, suspended, or aborted, either programmatically or by operator command. The INFO field specifies the number of unsolicited messages that were rejected.
Processing Unsolicited Messages UMP Programming Examples 3242 - MULTIPLE UNSOLICITED MESSAGES REJECTED The TCP rejected one or more unsolicited messages and replied to their sender without delivering them to their target requester. This message is seen only if unsolicited messages are arriving and being rejected with sufficient frequency that the TCP cannot log individual error messages for each rejected unsolicited message.
Processing Unsolicited Messages Using Waited RECEIVE UNSOLICITED Statements Using Waited RECEIVE UNSOLICITED Statements Another way of detecting the arrival of unsolicited messages is to branch to a paragraph that issues a RECEIVE UNSOLICITED MESSAGE statement; the statement may or may not include a TIMEOUT clause. If there are no unsolicited messages currently queued, the RECEIVE UNSOLICITED statement acts as a waited input request comparable to ACCEPT.
Processing Unsolicited Messages Using ESCAPE ON UNSOLICITED MESSAGE Clauses Using ESCAPE ON UNSOLICITED MESSAGE Clauses One of the most common methods of detecting and reacting to unsolicited messages is the interrupt technique, whereby you include ESCAPE ON UNSOLICITED MESSAGE clauses in ACCEPT or SEND MESSAGE statements. Example 7-1 illustrates the use of such clauses with an ACCEPT statement; Example 7-2 does the same with a SEND MESSAGE statement. Example 7-1.
Processing Unsolicited Messages ESCAPE ON UNSOLICITED MESSAGE Design Considerations Example 7-2. UMP and the SEND MESSAGE Statement SEND-MESSAGE-AND-RECEIVE-REPLY. SEND MESSAGE request-message REPLY CODE "AA" YIELDS aa-reply ESCAPE ON UNSOLICITED MESSAGE TIMEOUT five-minutes ON ERROR GO TO analyze-error. PERFORM ONE OF aa-reply unsolicited-message-arrival DEPENDING ON TERMINATION-STATUS. GO TO send-message-and-receive-reply. AA-REPLY. * TERMINATION-STATUS = 1. This is a normal (expected) completion.
Processing Unsolicited Messages ESCAPE ON UNSOLICITED MESSAGE Design Considerations Applications for Intelligent Terminals If your application is for intelligent terminals, consider the following: • • You can use the interrupt method of responding to unsolicited messages (ESCAPE ON UNSOLICITED MESSAGE) with SEND MESSAGE statements in IDS requesters that communicate with front-end processes whether the front-end processes support the use of CONTROL 26.
Processing Unsolicited Messages Message Processing Requiring No Terminal Interaction Message Processing Requiring No Terminal Interaction Assume that an ACCEPT statement issued by a standard requester controlling a supported block-mode terminal is interrupted by the arrival of an unsolicited message. Also assume that the message requires no terminal input-output. For example, the message asks the requester to return statistics maintained in its working storage.
Processing Unsolicited Messages Message Processing Requiring Only Terminal Output Message Processing Requiring Only Terminal Output The next example illustrates the case where the arrival of an unsolicited message requires the displaying of information on the terminal whose I/O operation was interrupted. Assume that the unsolicited message contains latest price information that must be displayed to the terminal. Following message processing, the program reissues the interrupted ACCEPT operation.
Processing Unsolicited Messages Message Processing Requiring Both Input and Output Message Processing Requiring Both Input and Output The next example illustrates a case when the arrival of an unsolicited message requires that information be displayed on the terminal where I/O was interrupted and that the terminal operator enter a reply. Following message processing, the program reissues the interrupted ACCEPT operation.
Processing Unsolicited Messages Sending Unsolicited Messages to SCREEN COBOL Requesters Sending Unsolicited Messages to SCREEN COBOL Requesters Guardian processes send unsolicited messages to SCREEN COBOL requesters by using the appropriate TCP. An application that sends multiple unsolicited messages to a TCP should open the TCP only once and close it at the end of processing.
Unsolicited-Message Layout, Reply Layout, and Error Codes Processing Unsolicited Messages For requesters that are started by a PATHCOM RUN PROGRAM command, only the second method is appropriate because the logical name of the terminal is determined dynamically by the PATHMON process. The reply returned to the sender of an unsolicited message includes error information when either of the following is true: • • The supplied terminal name is not currently active.
Unsolicited-Message Layout Processing Unsolicited Messages The text that follows briefly describes each field. 01 UMP-MSG. Sent to the appropriate TCP by a Guardian process by making a WRITEREAD call with a read-count large enough to contain the reply header and reply text. The target SCREEN COBOL requester accepts the text portion by using a RECEIVE UNSOLICITED MESSAGE statement. 02 TCP-UMP-HDR. The header is seen only by the TCP (not by the SCREEN COBOL requester).
Unsolicited-Message Reply Layout Processing Unsolicited Messages 02 SCOBOL-MSG. CODE FIELD in the RECEIVE UNSOLICITED MESSAGE verb is relative to this point. 03 MSG-TEXT PIC X(number-of-characters). Text being sent to the SCREEN COBOL requester (can be null). If the fields PROTOCOL-ID, DEST-NODE, and DEST-TCP-PROC are not filled out in TCP-UMP-HDR, the TCP returns a file system security-violation error (48), with no data, in response to the unsolicited message.
Unsolicited-Message Reply Layout Processing Unsolicited Messages 03 REPLY-ID PIC 9(4) COMP VALUE 1. Reply identification number. Must be 1. 03 REPLY-VERSION PIC 9(4) COMP. Reply format version number. This number is less than or equal to the value of the MSG-VERSION field in the corresponding unsolicited message.
Processing Unsolicited Messages Unsolicited-Message Error Codes Unsolicited-Message Error Codes Table 7-1 lists the error codes returned by the TCP to the sender of an unsolicited message. The codes are passed through the ERROR-CODE field of the UMP-REPLY record. Table 7-1. Unsolicited-Message Error Codes Error Code Meaning 0 No errors. 1 Guardian procedure error occurred. 2 Target terminal suspended. 3 Target terminal queue full. (The TERM MAXINPUTMSGS configuration value has been exceeded.
Processing Unsolicited Messages UMP Configuration Parameters UMP Configuration Parameters The following PATHCOM configuration parameters support the processing of unsolicited messages: • SET TERM MAXINPUTMSGS number Specifies the total number of unsolicited messages that can be queued by the TCP for a particular requester at any one time.
8 Processing Double-Byte Character Sets As a Pathway application programmer, you can develop SCREEN COBOL program units that use double-byte character sets for selected devices. The TCP supports these devices with the aid of translation routines in the TCP user library. The TCP uses the Shift-JIS format as its internal representation of double-byte characters.
Processing Double-Byte Character Sets Determination of the Character Set In general, an IBM device must have double-byte character set (DBCS) capability, as defined in the IBM 3270 Information System Data Stream Programmer's Reference, to support the processing of double-byte characters. Determination of the Character Set By default, your Pathway application uses the character set supported by the device.
Processing Double-Byte Character Sets • Subscripting Considerations One 2-byte character and up to eight 1-byte Katakana or alphanumeric characters Katakana characters are not classed as alphanumeric characters in PIC A items. PIC A items can consist only of letters of the Roman alphabet or space characters. Note. If a data item contains fewer than the maximum number of characters allowed, the appropriate number of padding space characters are added to the right.
Processing Double-Byte Character Sets Developing SCREEN COBOL Programs for DoubleByte Character Sets : : PROCEDURE DIVISION. : : MOVE WS-KANJI-DATA TO WS-NAME-1. MOVE WS-BYTE-DATA(1) TO WS-UNDEFINED-DATA. The receiving data in this example (WS-UNDEFINED-DATA) is undefined because an individual byte of a double-byte character is meaningless. Arrays defined by using a PIC N clause, rather than a PIC X clause, are referred to in units of two bytes.
Processing Double-Byte Character Sets Environment Division CHARACTER-SET IS Statement The character-set-type provides support of national-use characters, that is, character sets that are not USASCII. The Compaq NonStop™ Pathway/iTS SCREEN COBOL Reference Manual lists the available character sets.
Processing Double-Byte Character Sets Data Division Data Division The Data Division describes the data that a SCREEN COBOL program creates, accepts as input, manipulates, or produces as input. As explained in the Compaq NonStop™ Pathway/iTS SCREEN COBOL Reference Manual, the Data Division has four sections. In developing Pathway applications for double-byte character sets, you define specific attributes in the Working-Storage Section, the Linkage Section, and the Screen Section of the Data Division.
Processing Double-Byte Character Sets Data Division Because variables defined with PIC X can contain mixed data—alphanumeric, numeric, and double-byte characters—you can combine double-byte characters with other data types in the Working-Storage Section by defining the entire data item with PIC X. • • If a VALUE clause is declared for a PIC N Working-Storage Section field, the value can consist only of characters from the Shift-JIS character set enclosed in quotation marks ("").
Data Division Processing Double-Byte Character Sets • Data items declared as PIC N in the Screen Section must declare the PIC N attribute before all other attributes: SCREEN SECTION. : 05 FIELD-10 • • AT 10, 20 PIC N MUST BE .... FILL .... USING WS-FIELD-10. The length of a double-byte-only data item can be 128 double-byte characters for a Screen Section entry. Each double-byte character occupies two bytes per data item in memory, for a maximum of 256 bytes.
Processing Double-Byte Character Sets Data Division Screen Section In the Screen Section of the Data Division, the REDEFINES clause allows the same screen field to be described in more than one way. The REDEFINES clause specifies that the screen field being defined is an alternate interpretation of a previously defined field: REDEFINES field-name-2 IBM 3270 terminals have a limitation that affects the use of Screen Section redefinitions.
Data Division Processing Double-Byte Character Sets Screen Section Considerations When you develop Pathway applications for double-byte character sets, you must consider the following when you write the Screen Section of the Data Division of your SCREEN COBOL program unit. Permissible Character-String Symbols In the Screen Section the character-string symbol N can be mixed with only the X, A, 9, 0, and B character-string symbols. Some examples are: SCREEN SECTION.
Processing Double-Byte Character Sets Data Division The TCP does the following when generating fields with possible double-byte characters that are to be written to a 3270 device: 1. Loads the data into the work buffer This operation includes all editing operations. It also ensures that the number of characters placed into the buffer does not exceed the size of the screen field. 2.
Processing Double-Byte Character Sets Data Division Additional Clause Considerations The following conventions are checked by the compiler for these screen-field characteristics clauses. The Compaq NonStop™ Pathway/iTS SCREEN COBOL Reference Manual discusses each of these clauses fully. A double-byte-only field is a field that is declared by using only Ns in the PICTURE clause character string. • • The ADVISORY clause cannot be associated with a field that allows only doublebyte data.
Processing Double-Byte Character Sets • Procedure Division The UPSHIFT clause is a valid screen-field attribute for PIC N fields, but it is useful only on mixed fields—for example, PIC N(10)A(10). The translation routines upshift lowercase characters on output to IBM 3270 devices configured to use 1-byte Katakana characters. Upshifting of lowercase characters is not done on input for these devices because they cannot generate lowercase characters.
Processing Double-Byte Character Sets Procedure Division IF...DOUBLEBYTE Statement The IF...DOUBLEBYTE statement tests for the existence of double-byte characters in an alphanumeric data item: IF data-name [ IS ] [ NOT ] DOUBLEBYTE Aligned double spaces are seen as %H2020 and are valid double-byte characters. A single space or a nonaligned space is not a double-byte character.
Example of Working-Storage Section and Screen Section Processing Double-Byte Character Sets Table 8-1.
Example of Working-Storage Section and Screen Section Processing Double-Byte Character Sets the Screen Section would be as follows: SCREEN SECTION. * * * * * * * * * * Data translation occurs, if necessary, for each field declared in these screen examples. Data translation consists of converting double-byte characters in external form to internal form (Shift JIS) on input or from internal form to device-specific external form on output.
Processing Double-Byte Character Sets 05 SS-KANJI-ONLY3 * * * * PIC N(10) at .... USING WS-KANJI-ONLY-FLD3. On outbound editing, the TCP ensures that the data displayed contains only DBCS characters. The program is aborted if this is not the case. On inbound editing, the TCP requires the operator to enter DBCS characters. 05 SS-ALPHA-NUMERIC-FLD3 * Example of Working-Storage Section and Screen Section PIC X(20) at .... USING WS-KANJI-ONLY-FLD4. No outbound or inbound editing is done.
Processing Double-Byte Character Sets Example of Working-Storage Section and Screen Section Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide— 426751-001 8- 18
9 TCP SETMODE Functions and CONTROL Operations As a Pathway application programmer, you might need to know the Guardian operating environment SETMODE functions and CONTROL operations used by the TCP. This section describes the TCP’s use of SETMODE functions and CONTROL operations. The Guardian Procedure Calls Reference Manual provides full descriptions of all SETMODE functions and CONTROL operations.
TCP SETMODE Functions and CONTROL Operations SETMODE Functions Table 9-2. TCP SETMODE Functions Operation Description 8 Set system transfer mode (default is configured). param1.15 = 0 conversational mode = 1 page mode param2 sets the number of retries for I/O operations. NOTE: param2 is used with 6530 terminals only.
TCP SETMODE Functions and CONTROL Operations CONTROL Operations CONTROL Operations CONTROL is used to perform device-dependent I/O operations. When you design an intelligent device support (IDS) requester to communicate with a front-end process (FEP), you are concerned with the CONTROL operations described in Table 9-3. CONTROL 26 is discussed in detail later in this section. Table 9-3.
TCP SETMODE Functions and CONTROL Operations CONTROL 26 Defined CONTROL 26 Defined CONTROL 26 is a CONTROL file system procedure call that allows nonprivileged processes to cooperate with one another in bringing about the orderly termination of outstanding read operations.
TCP SETMODE Functions and CONTROL Operations • CONTROL 26 Initialization Complete the outstanding read by specifying that an associated input operation within the FEP is still in progress and that the resultant data can be obtained by a subsequent read operation (return code = 189) The FEP must complete both the original read request and the CONTROL 26 call within the allotted five minutes or the TERMINATION-STATUS register is set to 14 and control passes to the SEND MESSAGE statement’s ON ERROR clause.
TCP SETMODE Functions and CONTROL Operations Subsequent CONTROL 26 Calls IOPROTOCOL = 1 IOPROTOCOL = 1 declares that the FEP does support CONTROL 26. In this case, the TCP opens the FEP with a nowait depth of 2 and then issues the CONTROL 26,1 call. If the FEP responds with 70, the TCP subsequently uses CONTROL 26 calls to terminate read requests prematurely.
TCP SETMODE Functions and CONTROL Operations Testing TERMINATION Codes Unsolicited Message Completions When a CONTROL 26 call is issued as the result of an escape on unsolicited message, th TERMINATION-STATUS register contains an index pointing to the location of ESCAPE ON UNSOLICITED MESSAGE clause in the SEND MESSAGE statement. Table 9-4 summarizes the various TERMINATION-SUBSTATUS values that should then be tested for.
TCP SETMODE Functions and CONTROL Operations Testing TERMINATION Codes Table 9-5. Timeout and Error Completions Terminatio nStatus Terminatio nSubstatus 1 40 A timeout occurred. The FEP assisted in terminating the outstanding read. No data was lost by the FEP and the context is intact. Perform whatever timeout recovery action is appropriate for your particular application. 1 188 A timeout occurred. The FEP assisted in terminating the outstanding read.
10 Handling Errors This section discusses the following topics related to error handling in SCREEN COBOL requesters: • • Terminal Errors Handling of SEND statement errors The Pathway to TUXEDO translation server can also return error messages to requesters. Information about these errors is given in the NonStop™ TUXEDO System Pathway Translation Servers Manual. Terminal Errors During terminal startup, the TCP retries, aborts, or suspends a terminal depending on the terminal error that had occured.
SEND Statement Errors Handling Errors SEND Statement Errors This subsection suggests ways to handle the processing of SEND statement errors. You can decide what is most appropriate to your particular application environment. For additional information about SEND and SEND MESSAGE errors, refer to the Compaq NonStop™ Pathway/iTS SCREEN COBOL Reference Manual.
Responding to SEND Errors Handling Errors Other causes, such as a security violation, could also result in error 4. Error 12 could be caused by a timeout error (termination substatus 40) when a server is in debug mode. If this situation occurs, the operator should do the following: Use the PATHCOM STATUS PATHMON command to find server classes in the LOCKED state. Identify the server program file for each locked server class.
Responding to SEND Errors Handling Errors Table 10-3. Requester SEND Errors for Configuration Problems Numeric Value Meaning 7 Message too large 8 Maximum reply too large These errors indicate that the SERVERPOOL (7) or MAXREPLY (8) parameter supplied in the PATHCOM SET TCP command at configuration time is smaller than that required by one of the message or reply definitions declared in the requester. No message is sent and no reply data is available.
Processing Variable-Length Server Replies Handling Errors Table 10-5. Requester SEND Error for Transaction-Mode Violation Numeric Value Meaning 13 Transaction-mode violation This error condition is essentially nonrecoverable. In this case, your ON ERROR code should send a message to the terminal telling the operator what is happening (such as SERVER NOT CONFIGURED FOR TMF, TERMINATING EXECUTION), log an error record to an appropriate server, and then perform a STOP RUN statement.
Processing Variable-Length Server Replies Handling Errors IF PROCESSING-STATE = "STOP" GO TO MAIN-PARAGRAPH-EXIT. . . MAIN-PARAGRAPH-EXIT. EXIT. NEW-NAME-QUERY. SEND new-name-request TO customer-data-base REPLY CODE 1 YIELDS new-name-reply ON ERROR GO TO analyze-error. CONTINUE-PROCESSING. * * * * * * * Process the returned names. Control passes here from the ANALYZE-ERROR paragraph when the number of names returned is greater than or less than 20.
A The MAKEUL Macro The MAKEUL macro performs pTAL compilations of user-written user conversion procedures and creates the TNS/R native user library for the TCP using the nld utility. The syntax and options are as specified below: MAKEUL command-option [command-option....] command-option is a space-separated list and can be one of the following: -src source-filename is the file name of the pTAL source file. -obj object-filename is the file name of the pTAL object file.
The MAKEUL Macro Examples The MAKEUL macro has the following features: • • • • If an option is specified twice, the second option is used. For example, if the -src option is specified twice with two different file names, the second -src option becomes effective. If the object file name and the library file name are the same, the object file name is overwritten with the library file name. At the end of execution of the macro, status information is displayed.
The MAKEUL Macro Error Messages For creating a user library file called USERLIB from the pTAL object file PTOBJ and sending the output to the file PTOUT, the syntax is as follows: > MAKEUL -obj PTOBJ -lib USERLIB -out PTOUT For creating a user library file called USERLIB from the pTAL source file PTSRC with the intermediate pTAL object file as PTOBJ and sending the output to the terminal, the syntax is as follows: > MAKEUL -src PTSRC -obj PTOBJ -lib USERLIB For creating a user library file called USERLI
The MAKEUL Macro Error Messages *ERROR* Source file is not an EDIT file (Code 101) : source-filename Cause. The specified source file name is not an EDIT type of file. Effect. The MAKEUL macro fails. Recovery. Specify a pTAL source file with the -src option. *ERROR* Source file specified does not exist : source-filename Cause. The specified pTAL source file does not exist. Effect. The MAKEUL macro fails. Recovery. Specify an existing pTAL source file with the -src option.
The MAKEUL Macro Error Messages *ERROR* Object file specified is not a pTAL object file (Code 700) : object-filename Cause. The specified object file is not a pTAL object file. This error will occur only when the user is trying to create a user library file from the pTAL object file by using the following command : > MAKEUL -obj object-filename -lib library-filename & > [-out output-filename] Effect. The MAKEUL macro fails. Recovery. Specify a pTAL object file with the -obj option.
The MAKEUL Macro Error Messages *ERROR* Illegal library file specified Cause. The specified library file is not a legal Guardian file name. Effect. The MAKEUL macro fails. Recovery. Specify a valid Guardian file as the user library file name. *WARNING* Unable to delete output file : output-filename. Error # error-number Cause. The specified output file is an existing file that could not be deleted because of the error specified in the error message. Effect.
Error Messages The MAKEUL Macro *ERROR* Illegal location specified for TCPLIB Cause. An invalid volume-subvolume name combination was specified as the location for TCPLIB. Effect. The MAKEUL macro fails. Recovery. Specify the correct location for TCPLIB. *ERROR* Invalid TCPLIB specified : tcplib-location.TCPLIB Cause. TCPLIB present in the location specified is not a valid TCPLIB. Effect. The MAKEUL macro fails. Recovery. Specify the location of a valid TCPLIB.
Error Messages The MAKEUL Macro *ERROR* Invalid pTAL compiler specified : ptal-location.PTAL Cause. The pTAL compiler in the specified location is not a valid pTAL compiler. Effect. The MAKEUL macro fails. Recovery. Specify the location of a valid pTAL compiler. *ERROR* pTAL does not exist in the location specified : ptal-location Cause. The pTAL compiler does not exist in the location specified. Effect. The MAKEUL macro fails. Recovery. Specify the correct location for the pTAL compiler.
The MAKEUL Macro Error Messages *ERROR* Illegal location specified for NLD Cause. An invalid volume-subvolume name combination was specified as the location for nld. Effect. The MAKEUL macro fails. Recovery. Specify the correct location for the nld utility. . *ERROR* Error(s) encountered during pTAL compilation. Please check the output file for details. Cause. Compilation errors were encountered while compiling the pTAL source file. Effect. The MAKEUL macro fails. Recovery.
The MAKEUL Macro Error Messages *WARNING* Warning(s) encountered during building the user library. Please check the output file for details. Cause. The nld utility reported warnings while building the user library. Effect. The MAKEUL macro terminates. Recovery. Check the output file and correct the warnings. *ERROR* File not properly secured for execution : filename Cause. The pTAL compiler or nld utility in the specified location does not have execution permission for the user running this macro.
Index Numbers 3270 terminals (Fujitsu) double-byte character sets 8-1/8-2, 8-4 screen space limitations 8-10/8-11 shift-out/shift-in characters 8-3, 8-10/8-11 3270 terminals (IBM) AID byte values 4-8/4-10 BELL support 3-9 color support 3-7/3-8 combining extended field attributes 3-9 cursor positioning 3-3 double-byte character sets 8-4 extended field attributes 3-4/3-10 highlight support 3-8 Kanji and Katakana characters 8-1/8-2 KANJI-KATAKANA keyword 3-10 key mapping 4-7/4-8 limitation on screen redefiniti
B Index Applications, Pathway (continued) overview 1-7 performance of 1-5, 1-8, 5-12 requester programs 1-8/1-9 requester structure, using TMF 5-2 security fundamentals 1-6 server classes 1-8 server languages 1-7 server processes 1-7 support for other environments 1-10 Attributes, screen field BELL display 3-9 color display 3-7/3-8 conversational terminals 3-15 highlight display 3-8 IBM 3270 terminals 3-4/3-10 outline display 3-9 Audit trails, TMF 1-4, 2-7, 5-2 Audited files 5-1, 5-5, 5-12 Automatic retry
D Index Conversational terminals (continued) displaying information 3-16 input-control characters 3-15 screen field attributes 3-15 Conversion See User conversion procedures Crossref product 1-11 Cursor positioning on screens 3-3 PW-USE-NEW-CURSOR register 7-3/7-4 Customer Information Control System (CICS) 1-10 D Data analyzing flow of 2-2 classes of 2-8 considerations for double-byte character sets 8-2/8-4 entry, SCREEN COBOL program unit 2-11 integrity 1-4 on conversational terminals 3-16 Data Division
E Index DISPLAY BASE statement 3-6, 3-16, 8-9 DISPLAY statement 8-9 Displaying information on conversational terminals 3-16 Distributed processing 1-5, 1-6 Distributed transaction processing (DTP) 1-6 Double-byte character sets ADVISORY clause 8-12 CHARACTER-SET IS statement 8-5, 8-13 clause considerations 8-12/8-13 data-item considerations 8-2/8-4 determining 8-2 device types supported 8-1 example program 8-15/8-17 FILL clause 8-12 IF statement 8-13 IF...
F Index ESCAPE ON TIMEOUT clause 3-13 ESCAPE ON UNSOLICITED MESSAGE clause 3-13, 7-2, 7-8/7-10 Event Management Service (EMS) 1-3 Examples 3-10 Extended field attributes, IBM 3270 terminals color 3-7/3-8 combinations allowed 3-9/3-10 highlight 3-8 initializing 3-6 other 3-9 outline 3-9 Extended General Device Support (GDSX) processes 1-9, 2-20/2-22 F Fault tolerance 1-4/1-5 FEP (front-end process) 2-16, 2-20/2-22, 9-1/9-2 Field delimiters processing on input 6-5 turning off 6-7 using on output 6-5/6-6 Fi
I Index I IBM 3270 terminals See 3270 terminals (IBM) Identification Division description 2-12 examples IDS 2-17 standard 2-14 IDS See Intelligent device support (IDS) IF statement 8-13 IF...
L Index Key-sequenced files 2-9 L Languages programming, for server programs 1-7 supported, IBM 3270 terminals 3-10 Layout of unsolicited messages 7-18 LENGTH clause 8-12 LENGTH MUST BE clause variant 8-12 Libraries PATHTCPL 4-2 SCREEN COBOL pseudocode 1-11, 2-12 Link managers 2-18 Linkage Section double-byte character sets 8-7 examples IDS 2-17 standard 2-14 LINKMON process description 2-18 NonStop™ RSC/MP, use by 2-19 relationship to NonStop™ RSC/MP 1-10 List-only, SCREEN COBOL program unit 2-11 LOGICA
N Index Multithreading advantages of 1-5 GDSX feature 2-20 N Names, mnemonic 3-5 nld utility 4-2, 4-3 No unsolicited message… (error 3177) 7-5 Nonaudited files 5-11, 5-12 Nonprivileged processes 9-4 NonStop™ Himalaya systems 1-4/1-6 NonStop™ Kernel Open System Services (OSS) operating environment, servers in 1-7, 2-22 NonStop™ Remote Server Call/MP (RSC/MP) product 1-10, 2-19 NonStop™ SQL/MP product 2-9 NonStop™ TS/MP product 1-2 NonStop™ TUXEDO system 1-10 Numeric fields input 4-4, 4-11 output 4-6, 4-15
R Index Pathway application programming development considerations 1-2/1-3 development tools 1-13 distributed processing 1-6 expansion fundamentals 1-6 fault tolerance 1-4/1-5 introduction 1-1 performance fundamentals 1-5 security fundamentals 1-6 Pathway applications See Applications, Pathway Pathway environment advantages 1-2/1-6 Pathway servers description 1-7 writing 1-2 Pathway/TS error codes See Errors Pathway/TS product 1-2 Performance improving 5-12 provided by server processes 1-8 Personal comput
S Index Read-only special registers See Special registers RECEIVE UNSOLICITED MESSAGE statement 7-2, 7-7 Records, database 2-8 Recovery, general information 10-1 REDEFINES clause 8-8/8-9 Relative files 2-9 Remote Duplicate Database Facility (RDF) 2-10 Remote Server Call/MP (RSC/MP) product See NonStop™ Remote Server Call/MP (RSC/MP) product 1-10 Replies, variable-length, server 10-5/10-6 REPLY CODE clause 6-2 REPLY TO UNSOLICITED MESSAGE statement 7-2 Requesters clients using NonStop™ RSC/MP 2-19 descript
S Index SCREEN COBOL See also individual divisions, sections, statements, and clauses compiler 2-12 devices supported 2-11 double-byte character sets 8-1/8-17 Enable, using to develop 1-13 Inspect product and 1-11 intelligent mode 3-17/3-18 Pathmaker application generator 1-12 program structure IDS 2-17/2-18 standard 2-12/2-15 requesters comparison of types 6-1 description 1-9 designing 2-11/2-18 GDSX alternative 2-21 sending unsolicited messages to requesters 7-14/7-15 SET MINIMUM-ATTR statement 3-5/3-6
T Index SET SERVER command (continued) TMF option 5-9, 5-12 SET TCP command MAXINPUTMSGLEN parameter 7-20 MAXINPUTMSGS parameter 7-5, 7-20 TERMPOOL parameter 7-20 SET TERM command IOPROTOCOL attribute 9-5/9-6 MAXINPUTMSGS parameter 7-4, 7-20 TMF option 5-9 SETMODE functions for 3270 devices connected by SNAX/XF 8-2 for intelligent devices 9-1/9-2 SF (Start Field) orders 8-1, 8-4 SFE (Start Field Extended) orders 8-1, 8-4 Shift-JIS format See Double-byte character sets Shift-out/shift-in characters 3270 te
T Index TCP (terminal control process) (continued) NonStop™ RSC/MP requesters 2-19 PATHTCPL object file 4-2 SETMODE functions performed by See SETMODE functions TDP (Transaction Delivery Process ) 2-19 TEDIT text editor 1-12, 2-12 TERMINAL IS statement 8-4 TERMINALINFO statement 3-6 Terminals 6520 See 6520 terminals 6530 See 6530 terminals block mode, designing for unsolicited messages 7-10 conversational description 3-14 unsolicited message processing for 7-10 devices supported 3-1 Fujitsu 3270 8-1/8-2 I
U Index TRANSACTION-ID special register 5-5, 5-8 TRANSFORM statement assembling output messages, example 6-11/6-12 disassembling input messages, example 6-8/6-10 using with intelligent devices 6-8 Translation errors 8-9 process, double-byte 8-1, 8-9 routines in TCP user library 8-1 TSCODE, GDSX process 2-20 TUXEDO system See NonStop™ TUXEDO system U UMP See Unsolicited message processing (UMP) Unsolicited message processing (UMP) 6530 terminal keyboard locking for 3-13 accepting 7-2 configuration paramet
V Index USERCODE device input declaration 4-12 device output declaration 4-15 screen input parameter 4-5 screen output parameter 4-7 Utilities, software development 1-11/1-13 V VALUE clause 8-7, 8-13 Value for MAXINPUTMSGS… (error 3240) 7-5 Variable-length message formats 6-7 Variable-length server replies 10-5/10-6 VARYING1 and VARYING2 message formats 6-7 Vendors, third-party 1-3 Visible cursor support 7-3/7-4 W When 3-1 Working-Storage Section double-byte character sets example Pathway application 8-
Y Index Compaq NonStop™ Pathway/iTS TCP and Terminal Programming Guide— 426751-001 Index -16