Vlterm Programmer's Reference - Avaya Support
Vlterm Programmer's Reference - Avaya Support
Vlterm Programmer's Reference - Avaya Support
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Vlterm</strong> <br />
Programmer’s <strong>Reference</strong>
Copyright © 1999, Lucent Technologies<br />
All Rights Reserved, Printed in U.S.A.<br />
This is the fifth edition of the <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>, document number 90446-01, written for the<br />
<strong>Vlterm</strong> Software Developer’s Kit.<br />
Notice<br />
Every effort was made to ensure that the information in this guide was complete and accurate at the time of<br />
printing. However, information is subject to change.<br />
Lucent Technologies makes no representation or warranties with respect to the contents of this guide and<br />
disclaims any other express or implied warranties, including implied warranties of merchantability or fitness for<br />
any particular purpose. Lucent Technologies reserves the right to revise this guide without obligation to notify any<br />
person or organization of such revision.<br />
If the supplied software is acquired by an agency or other part of the U.S. Government, the software and all its<br />
accompanying written materials are provided with Restricted Rights. Use, duplication, or disclosure by the<br />
Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and<br />
Workstation Program clause at 48 C.F.R. 252.227-7013 or in subparagraphs (c)(1) and (2) of the Commercial<br />
Computer Software - Restricted Rights clause at 48 C.F.R. 52.227-19, as applicable.<br />
All information contained in or disclosed by this document is considered confidential and proprietary by Lucent<br />
Technologies. By accepting this material the recipient agrees that this material and information contained therein<br />
is held in confidence and in trust. All use, disclosure and/or reproduction of any part of this publication not<br />
specifically authorized by Lucent Technologies is prohibited.<br />
Trademarks<br />
Mosaix Predictive Dialing System is a trademark of Lucent Technologies.<br />
The following are trademarks or registered trademarks of their respective companies or organizations:<br />
Chameleon, Chameleon HostLink, Extra!, InfoSwitch, KEA!, Microsoft, On Demand, PASSPORT, Reflection,<br />
Rumba, Windows, Windows NT, and Unix<br />
Other products and brand names are trademarks or registered trademarks of their respective holders.<br />
Obtaining Products<br />
To learn more about Lucent Technologies products and to order products, contact Lucent Direct, the direct-market<br />
organization of Lucent Technologies Business Communications Systems. Access their web site at<br />
www.lucentdirect.com. Or call the following numbers: customers 1 800 451 2100,<br />
account executives 1 888 778 1880 (voice) or 1 888 778 1881 (fax).<br />
Warranty<br />
Lucent Technologies provides a limited warranty on this product. Refer to the “Limited Use Software License<br />
Agreement” card provided with your package.<br />
Lucent Technologies Web Page<br />
The worldwide web home page for Lucent Technologies is:<br />
http://www.lucent.com
Contents<br />
1 Introduction to <strong>Vlterm</strong><br />
Agent Workstation Features ...................................................................2<br />
Switch Between Windows...............................................................3<br />
Multiple Step Script.........................................................................3<br />
Agent Workstation Software Configuration....................................3<br />
Agent Use Case Scenario ................................................................3<br />
System Requirements ............................................................................4<br />
Mosaix Terminal Emulation Applications .....................................5<br />
Host Terminal Emulation Applications ..........................................5<br />
Inter-Application Communications ................................................5<br />
2 Installing <strong>Vlterm</strong><br />
Installation Methods ..............................................................................9<br />
Command Line Options .........................................................................9<br />
<strong>Vlterm</strong> File <strong>Reference</strong> ..........................................................................10<br />
Core <strong>Vlterm</strong> Executable and Configuration Files ........................10<br />
DDE Configuration Files ..............................................................10<br />
3 Vlkeys.ini Configuration<br />
Toolbar Button Definitions...................................................................11<br />
Syntax ...........................................................................................12<br />
Sample File ...................................................................................14<br />
iii
iv Contents<br />
4 <strong>Vlterm</strong>.ini Configuration<br />
Sample <strong>Vlterm</strong>.ini File ........................................................................ 19<br />
<strong>Vlterm</strong>.ini File Configuration Settings................................................. 22<br />
[GLOBAL] ................................................................................... 22<br />
[SHELL] ....................................................................................... 25<br />
[WIN_TITLE] .............................................................................. 26<br />
[DDE_SESSION] ......................................................................... 26<br />
[FKEY_BUTTONS] .................................................................... 29<br />
[CNPn] ......................................................................................... 30<br />
5 Cut Commands<br />
Emulator Formats ................................................................................ 35<br />
Attachmate KEA! ......................................................................... 35<br />
Attachmate Extra! ........................................................................ 36<br />
Wall Data Rumba ......................................................................... 36<br />
WRQ Reflection ........................................................................... 36<br />
DRV ............................................................................................. 36<br />
ClipCut() .............................................................................................. 37<br />
6 Paste Commands<br />
@x ....................................................................................................... 39<br />
C() ........................................................................................................ 39<br />
ClipCopyBlock() ................................................................................. 40<br />
ClipGet() .............................................................................................. 41<br />
ClipSet() .............................................................................................. 41<br />
Cursor() ............................................................................................... 42<br />
Wall Data Rumba ......................................................................... 42<br />
Attachmate Extra! ........................................................................ 42<br />
CUTn|CVRn ........................................................................................ 43<br />
Date() ................................................................................................... 44<br />
Delay() ................................................................................................. 44<br />
Exit_<strong>Vlterm</strong> ......................................................................................... 45<br />
File() .................................................................................................... 45<br />
Find() ................................................................................................... 46
Contents v<br />
FocusRemain() .....................................................................................47<br />
FormatStr() ...........................................................................................47<br />
FormLoad() ..........................................................................................47<br />
Hide_Fkeys ..........................................................................................48<br />
Hide_Logon .........................................................................................48<br />
Input .....................................................................................................48<br />
LeftStr() ...............................................................................................49<br />
Lookup() ..............................................................................................49<br />
MathOnVars() ......................................................................................50<br />
Msg ......................................................................................................50<br />
Non-Reserved Word ............................................................................50<br />
OIA ......................................................................................................51<br />
Other() ..................................................................................................52<br />
Pause() .................................................................................................53<br />
Release .................................................................................................53<br />
Relink ...................................................................................................53<br />
RightStr() .............................................................................................53<br />
SendKeys .............................................................................................54<br />
SetVarn ................................................................................................54<br />
Parameters .....................................................................................54<br />
Subroutines ....................................................................................55<br />
ShellApp() ............................................................................................58<br />
Show_Fkeys .........................................................................................58<br />
Start_Auto_CNP ..................................................................................59<br />
Stop_Auto_CNP ..................................................................................59<br />
StrCat() .................................................................................................59<br />
TitleCaption .........................................................................................59<br />
ToggleTo() ...........................................................................................60<br />
VARn ...................................................................................................60<br />
Wait() ...................................................................................................60<br />
WaitForKey() .......................................................................................60<br />
WinFocus() ..........................................................................................61
vi Contents<br />
7 Automatic Cut and Paste<br />
Sample Files ......................................................................................... 64<br />
<strong>Vlterm</strong>.ini ..................................................................................... 64<br />
Vlkeys.ini ..................................................................................... 65<br />
8 Creating a DDE.ini File<br />
DDE.ini Files Introduction .................................................................. 67<br />
DDE.ini File Variables ........................................................................ 68<br />
DDE.ini File Sections .......................................................................... 70<br />
[DDE_CUTS] ............................................................................... 70<br />
[DDE_PASTECUTS] .................................................................. 70<br />
[DDE_PVAR] .............................................................................. 70<br />
[DDE_OIAKBD] ......................................................................... 70<br />
[DDE_CURSOR] ......................................................................... 70<br />
[DDE_WAITS] ............................................................................ 71<br />
[DDE_PAUSE] ............................................................................ 71<br />
[DDE_FINDS] ............................................................................. 71<br />
[DDE_OTHER] ........................................................................... 71<br />
[DDE_SENDTHRU] ................................................................... 71<br />
[DDE_SENDFKEYS] .................................................................. 72<br />
[DDE_SENDPFKEYS] keystroke ............................................... 72<br />
Additional Variables ........................................................................... 72<br />
DRV_DDE.ini File Example ............................................................... 72<br />
9 Configuring a Custom Form<br />
Loading a Form ................................................................................... 75<br />
Formn.ini File Setup ............................................................................ 76<br />
[GLOBAL] ................................................................................... 77<br />
[Objectn] ...................................................................................... 79<br />
Sample Form1.ini File ......................................................................... 86<br />
A Using the Format Function<br />
Numeric Formats ................................................................................. 91<br />
Predefined Numeric Formats ....................................................... 92<br />
User-Defined Numeric Formats ................................................... 93
Contents vii<br />
Date and Time Formats ........................................................................96<br />
Predefined Date and Time Formats ...............................................97<br />
User-Defined Date and Time Formats ..........................................97<br />
String Formats ....................................................................................100<br />
B Using the SendKeys Function<br />
Sample Configuration ........................................................................102<br />
Usage .................................................................................................103<br />
C Using the Like Operator .........................................................105<br />
D Emulator Special @x Keys......................................................107<br />
E ASCII and VT100 Control Sequences<br />
ASCII Characters ............................................................................... 111<br />
Numeric Pad ...................................................................................... 111<br />
F Emulator Specifics<br />
Attachmate .........................................................................................113<br />
Netware LAN WS ......................................................................113<br />
EXTRA! version 4.3 ...................................................................115<br />
EXTRA! Personal Client 6.x and<br />
EXTRA! Bundle for TCP/IP Version 6.2 ...................................116<br />
Hummingbird Communications Exceed ............................................121<br />
IBM Personal Communications 3270 ................................................123<br />
Irma 3270 ...........................................................................................124<br />
Single Irma 3270 Session ...........................................................124<br />
Multiple Irma 3270 Sessions ......................................................125<br />
MiniSoft PowerTerm .........................................................................126<br />
Netmanage Chameleon.......................................................................128<br />
HostLink 97 ................................................................................128<br />
Unixlink 97 Version 7.0 .............................................................131<br />
PDSI Psched Software DDE Interface ...............................................133<br />
Persoft SmarTerm ..............................................................................138<br />
Quarterdeck Procomm Plus 32 ..........................................................140<br />
Sendkeys ............................................................................................142
viii Contents<br />
Teknekron On Demand Software DDE Interface ............................. 144<br />
Upstanding Systems FASTerm for Windows ................................... 147<br />
Wall Data Rumba Office ................................................................... 152<br />
WRQ Reflection ................................................................................ 157<br />
WRQ R1 Sample ........................................................................ 158<br />
WRQ R2 Sample ........................................................................ 159<br />
WRQ R8 Reflection for Windows Sample ................................ 159<br />
WRQ R8 Reflection for IBM for Windows 95 Sample ............. 161<br />
Zephyr Development Passport 3270 Client ...................................... 164<br />
G Special EXTRA! Key Sequences ........................................ 169<br />
H Configuring For Driver Files................................................. 173<br />
I Error Messages<br />
STARTUP.BAS Module.................................................................... 175<br />
CONFIG.CNP Procedure Errors................................................. 175<br />
FOCUS_APPS Procedure Errors ................................................ 176<br />
HOST_LINK Procedure Errors .................................................. 176<br />
INIT_CNP Procedure Errors....................................................... 177<br />
FOCUS_APPS Procedure Error.................................................. 178<br />
CNP.BAS Module.............................................................................. 178<br />
CUT_DATA Procedure Error..................................................... 178<br />
PASTE_DATA Procedure Errors ............................................... 178<br />
SendDDEMessage Procedure Error............................................ 179<br />
SEND_KEY Procedure Errors.................................................... 179<br />
SEND_PFKEY Procedure Errors ............................................... 179<br />
SETUP_CNP Procedure Errors .................................................. 180<br />
TOGGLE_HOST Procedure Error.............................................. 180<br />
CP.FRM Module ................................................................................ 180<br />
AUTO_CNP.TIMER Procedure Error........................................ 180<br />
Form.Resize Procedure Errors .................................................... 181<br />
Menu_exit.Click Procedure Error ............................................... 181
Contents ix<br />
FKEYS.FRM Module.........................................................................181<br />
KeyButton.Click Procedure Errors..............................................181<br />
LOGON.FRM Module........................................................................182<br />
cmdLOGON.Click Procedure Errors ..........................................182<br />
Index.................................................................................................183
x Contents
Introduction to <strong>Vlterm</strong> 1<br />
<strong>Vlterm</strong> is a Windows application that runs on agent PCs that connect to a Mosaix<br />
Predictive Dialing System and a host terminal emulator or client application.<br />
<strong>Vlterm</strong> provides a visual interface to select Mosaix system agent features, manage<br />
the focus between the Mosaix system and host windows, and interact with<br />
windows using script commands. Use <strong>Vlterm</strong> to quickly integrate a VT100<br />
emulation window connected to a Mosaix system and an existing customer<br />
character-based emulation window, such as a 3270 terminal emulator.<br />
When the Mosaix system sends outbound call information to an agent<br />
workstation, it sends enough client data for an agent to initiate a conversation with<br />
the customer. However, the agent typically needs to view and update data on a host<br />
computer. To facilitate this host record lookup, <strong>Vlterm</strong> transfers a unique record<br />
identifier from the Mosaix system to a host window.<br />
As an inter-application tool, <strong>Vlterm</strong> can send information between Windows<br />
applications. For example, <strong>Vlterm</strong> can automate user input to a 3270 host system<br />
using data from a Mosaix system screen.<br />
Agents use their existing host connection software along with the Mosaix system<br />
connection software package and a <strong>Vlterm</strong> toolbar as shown in the following<br />
illustration.<br />
1
2 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Agent Workstation Features<br />
The <strong>Vlterm</strong> graphical user interface consists of a toolbar with up to six rows of<br />
twelve buttons located at the bottom of the PC screen. Agents can point and click<br />
with a mouse to select among the 72 possible toolbar buttons to issue commands<br />
to the system. You can also define a function key sequence for each button and<br />
configure it for intercept from the Mosaix system, host, or both. The types of<br />
actions you can configure for each button include:<br />
• Switch between windows<br />
• Initiate special Mosaix system releases<br />
• Issue a line release command (for example, record release, set recall, play<br />
message, or select alternate screen)<br />
• Run a multiple-step script of <strong>Vlterm</strong> commands
Switch Between Windows<br />
Introduction to <strong>Vlterm</strong> 3<br />
An agent can click a toggle button or press a function key sequence to set the focus<br />
to either the Mosaix system or a host window.<br />
Multiple Step Script<br />
You can configure a cut and paste or script button to copy a field of data from the<br />
Mosaix system window, set the focus to the host window, and paste the data into<br />
the host window.<br />
Agent Workstation Software Configuration<br />
You can configure the <strong>Vlterm</strong> toolbar labels, number of rows, window title, and<br />
the action that each button takes when selected. A vlkeys.ini configuration file<br />
controls the look and action of the toolbar. A vlterm.ini file contains configuration<br />
information on the number and types of windows with which to communicate and<br />
the scripts associated with toolbar actions.<br />
A button can issue a simple line release command to the system or run a script that<br />
performs multiple steps such as the following sequence of commands:<br />
1 Release the phone line.<br />
2 Navigate host screens.<br />
3 Input standard comments to the host screen.<br />
4 Release the current record.<br />
5 Set the focus for the session to wait for the next call.<br />
Agent Use Case Scenario<br />
1 An agent double-clicks the Mosaix Agent icon to start <strong>Vlterm</strong>. <strong>Vlterm</strong><br />
launches the specified system and host terminal emulator programs if they<br />
are not already running. <strong>Vlterm</strong> establishes a connection to each of these<br />
windows and displays a toolbar.<br />
2 The agent logs on to the host application and navigates to the record lookup<br />
data screen.<br />
3 The agent toggles to the Mosaix system window, logs on, joins a calling<br />
campaign, and waits to receive calls.
4 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
4 When a call is received, the agent clicks the record lookup button on the<br />
toolbar. <strong>Vlterm</strong> follows a configured script to cut account data from a field<br />
on the Mosaix system screen and query records on the host system. The<br />
focus remains on the host screen for data input.<br />
5 At the end of the conversation, the agent clicks one of the line release types<br />
on the toolbar.<br />
6 The agent finishes the host data input and releases the record to receive a<br />
new call.<br />
System Requirements<br />
The agent’s workstation must be a Microsoft Windows PC with sufficient system<br />
resources to run both a Telnet connection VT100 emulator for the Mosaix system<br />
and a host communications window. Check with the emulator vendors for<br />
recommended system requirements.<br />
<strong>Vlterm</strong> requires Windows 95, Windows 98 or Windows NT. <strong>Vlterm</strong> can<br />
communicate with Windows 95, 98, and NT 32-bit emulator applications if they<br />
can accept incoming data from another application using one of the following<br />
communications methods:<br />
• DDE<br />
• OLE automation<br />
• HLLAPI<br />
• SendKeys<br />
With the exception of SendKeys, implementation of each inter-application<br />
communication method is specific to individual emulator vendors.<br />
This document lists the major emulator vendor software packages that <strong>Vlterm</strong><br />
supports. Other software must be evaluated. Software modifications may be<br />
required for an unsupported emulator.
Mosaix Terminal Emulation Applications<br />
Introduction to <strong>Vlterm</strong> 5<br />
The Mosaix system terminal emulation application must be a DEC VT100<br />
emulation mode software product. The following list identifies three such<br />
applications:<br />
• Wall Data Rumba for UNIX/VAX<br />
• WRQ Reflection R2<br />
• Attachmate KEA! 340<br />
The emulator must support a TCP/IP Telnet connection type and have a DDE<br />
server interface, or the emulator, such as the Microsoft telnet.exe application, must<br />
work with SendKeys.<br />
Host Terminal Emulation Applications<br />
The type of host system and the type of terminals that can attach to the host<br />
determine the emulator software choice. If the host is an IBM mainframe, you<br />
usually use a 3270 series terminal emulator such as the following options:<br />
• Wall Data Rumba for Mainframe<br />
• Attachmate EXTRA! for Windows<br />
The IBM AS/400 minicomputer uses 5250 terminal emulation, such as Wall<br />
Data’s Rumba for AS/400.<br />
Some emulation vendors offer suites that integrate multiple terminal emulation<br />
types such as VT100, 3270, and 5250 into one package. Wall Data Rumba Office<br />
and Attachmate EXTRA! Enterprise are examples of these suites.<br />
Inter-Application Communications<br />
To integrate the Mosaix system at the agent desktop level with existing customer<br />
applications, some means of communications must exist. In broad terms, there are<br />
two options in the Microsoft Windows environment for applications to<br />
communicate.<br />
The first option is to use an Application Programming Interface (API) between the<br />
Mosaix system application and the customer application. For example, a customer<br />
using the Wall Data Rumba terminal emulation product can use the existing<br />
<strong>Vlterm</strong> capabilities to exchange data using Dynamic Data Exchange (DDE). DDE
6 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
is an API that Microsoft developed as a means to copy information between two<br />
Windows applications.<br />
A second option to consider if an API is not available is to simulate keystrokes<br />
with SendKeys.<br />
SendKeys<br />
<strong>Vlterm</strong> can send keystrokes to a Windows application to which <strong>Vlterm</strong> linked<br />
during startup if the emulator can accept keystrokes from a source other than the<br />
keyboard.<br />
Use the SendKeys method to send cut and paste information to a window that does<br />
not support an API server. To implement SendKeys, a sending application must<br />
set the Windows focus to the receiving application, then issue the SendKeys<br />
command to simulate the keystrokes needed to send the characters.<br />
There are limitations with SendKeys. SendKeys can’t pace the speed at which it<br />
sends information to the application. For example, you must insert fixed length<br />
pauses between SendKeys commands to allow the receiving application to display<br />
the next screen after a user presses Enter.<br />
In addition, after the focus has been sent to an application, SendKeys assumes the<br />
focus does not change. During a send operation in a multi-tasking environment<br />
(for example, Windows NT), another application, such as a print complete<br />
message window, can take the focus.<br />
The need to interact with the host window may involve more than sending an<br />
account number by simulation keystrokes. For 3270 host windows, for example,<br />
keyboard input is inhibited for a variable amount of time after pressing Enter<br />
(indicated by an OIA keyboard lock status).<br />
SendKeys would not be a sufficient solution if script commands must follow a<br />
script command that generates an OIA lock. An API solution is the more robust<br />
solution, although it generally takes more time to implement.<br />
DDE<br />
Dynamic Data Exchange is a method of communicating between Microsoft<br />
Windows applications. <strong>Vlterm</strong> is best suited to use this communication method.<br />
<strong>Vlterm</strong> acts as the DDE client; the host emulation software must be able to operate<br />
as a DDE server.
OLE<br />
Introduction to <strong>Vlterm</strong> 7<br />
If you need to receive status information from the host window or perform a<br />
reverse cut and paste from the host to the Mosaix system for inbound update, use<br />
DDE instead of simulating keystrokes.<br />
The commands to send information from client to server vary between emulation<br />
vendors. <strong>Vlterm</strong> uses modifiable DDE configuration files to define what DDE<br />
commands must be sent to an emulator. DDE can be configured using text-based<br />
.ini files to connect to, receive from, and send data to a DDE server application.<br />
Object linking and embedding (OLE) is a Microsoft Windows protocol that<br />
defines a method to exchange information between processes. Some 32-bit<br />
emulation applications written for Windows 95, 98, or NT support OLE.<br />
A specific OLE interface must be created for each application with which <strong>Vlterm</strong><br />
communicates. An OLE interface is supported for Attachmate EXTRA! Personal<br />
Client for Windows 95/NT.
8 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
Installing <strong>Vlterm</strong> 2<br />
Installation Methods<br />
The <strong>Vlterm</strong> installation includes all the files associated with the <strong>Vlterm</strong><br />
application and a pair of configuration (*.ini) files that a Lucent representative sets<br />
up based on the customer’s environment. There are three <strong>Vlterm</strong> installation<br />
methods. Regardless of which method you use, you need to place the customized<br />
configuration files on each agent workstation.<br />
Install <strong>Vlterm</strong> using any of the following methods:<br />
• Install <strong>Vlterm</strong> from the CD-ROM to a PC hard drive. Copy the mirror image<br />
of the hard drive to the agent workstations.<br />
• From each agent PC, access the <strong>Vlterm</strong> install routine from a shared network<br />
CD-ROM drive. Copy the customized configuration files to each agent<br />
workstation.<br />
• Install <strong>Vlterm</strong> onto each agent workstation directly from the <strong>Vlterm</strong><br />
CD-ROM. Copy the customized configuration files to each agent<br />
workstation.<br />
Command Line Options<br />
The <strong>Vlterm</strong> setup process automatically creates a Start menu option for <strong>Vlterm</strong>. If<br />
the <strong>Vlterm</strong> configuration files have non-standard names (for example, if you<br />
renamed the vlterm.ini and vlkeys.ini files), you can modify the Start menu option<br />
to include the specially named configuration files by setting the option’s<br />
associated properties:<br />
[path]vlterm.exe [“path\vlterm.ini”] [“path\vlkeys.ini”]<br />
<strong>Vlterm</strong> requires that you place quotation marks around each argument in the<br />
vlterm.exe command line (don’t include the brackets).<br />
9
10 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
The location of the <strong>Vlterm</strong> shortcut depends on your system’s operating system:<br />
• Windows 95<br />
c:\Windows\Start Menu\Programs\<strong>Vlterm</strong><br />
• Windows 98<br />
c:\Windows\Start Menu\Programs\<strong>Vlterm</strong><br />
• Windows NT<br />
c:\Winnt\Profiles\All Users\Start Menu\Programs\<strong>Vlterm</strong><br />
<strong>Vlterm</strong> File <strong>Reference</strong><br />
The following sections list <strong>Vlterm</strong>’s executable and configuration files.<br />
Core <strong>Vlterm</strong> Executable and Configuration Files<br />
VLTERM.EXE<br />
EXTDRV.EXE<br />
VLKEYS.INI<br />
VLTERM.INI<br />
DDE Configuration Files<br />
ACC_DDE.INI IRM_DDE.INI REF_DDE.INI<br />
CAB_DDE.INI KEA_DDE.INI RUM_DDE.INI<br />
DRV_DDE.INI MIN_DDE.INI RUM1_DDE.INI<br />
EXT_DDE.INI OND_DDE.INI SMA_DDE.INI<br />
FACE_DDE.INI PDSI_DDE.INI SPRY_DDE.INI<br />
FAS_DDE.INI PRO_DDE.INI TCP_DDE.INI<br />
HST_DDE.INI PTW_DDE.INI TER_DDE.INI<br />
IBM_DDE.INI<br />
IE4_DDE.INI<br />
QWS_DDE.INI WIN_DDE.INI
Vlkeys.ini Configuration 3<br />
The vlkeys.ini configuration file contains the parameters that control the look and<br />
actions for the <strong>Vlterm</strong> toolbar buttons. The vlterm.exe program reads the<br />
vlkeys.ini and vlterm.ini configuration files during startup.<br />
You can also associate function key sequences with toolbar buttons. This feature<br />
allows customers to use keystrokes instead of PC mouse operations in a terminal<br />
environment. A third-party tool from Desaware translates a function key sequence<br />
into the appropriate action.<br />
You can display up to six rows of twelve buttons. The 72 possible function key<br />
equivalents are organized by toolbar row.<br />
Toolbar Row # Key State Function Key<br />
1st row Unshifted F1-F12<br />
2nd row Shift F1-F12<br />
3rd row Control F1-F12<br />
4th row Alt F1-F12<br />
5th row Control+Shift F1-F12<br />
6th row Control+Alt F1-F12<br />
Toolbar Button Definitions<br />
Toolbar button definitions appear in the [VOICELINK_KEYS] section of the<br />
vlkeys.ini file.<br />
11
12 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Syntax<br />
Action<br />
For each toolbar button, the vlkeys.ini file contains a KEYn= definition line that<br />
includes six parameters.<br />
KEYn=action,session,label,focus~tooltip~color<br />
The commas separating the first four parameters in the key1 through key72<br />
configuration lines must be included. The remaining two parameters are optional.<br />
Examples<br />
key1=CNP1,0,Cut/Paste,1~Host record lookup~12<br />
key2=Ay,0,COM PTP,0~Co-Maker Promise to Pay~7<br />
key3=TGL9,9,Toggle,0~Switch focus between sessions~1<br />
key4=FRM1,9,Misc,0~Menu of misc release codes~7<br />
key5=CNP4,0,DONE,0~Release Record~4<br />
When you define a toolbar button, you can choose between five actions:<br />
• TGLn-toggle to session n<br />
The variable n specifies a session number. Use TGL9 to toggle through each<br />
of the sessions in succession rather than to a specific session.<br />
• CNPn-cut and paste n<br />
The variable n specifies a cut and paste script that is defined in the vlterm.ini<br />
file. See “[CNPn]” on page 30 for more information about cut and paste<br />
scripts.<br />
• A release code to send to the system<br />
For release codes, a CTRL A (SOH, ASCII hex 01, or ^A) precedes the key<br />
sequence value and a CTRL M (CR, ASCII hex 13, or ^M) follows it. In the<br />
previous example for key2, <strong>Vlterm</strong> sends the sequence ^AA^M to the Mosaix<br />
system. You can include a “y” after the release code, as in the key2 example,<br />
to automatically respond to the Mosaix system Are you sure? prompt.<br />
• FRMn-load a user-definable form<br />
For more information about custom forms, see Chapter 9, “Configuring a<br />
Custom Form,” beginning on page 75.
Vlkeys.ini Configuration 13<br />
Session<br />
The session parameter identifies the session in which <strong>Vlterm</strong> intercepts the<br />
function key. In other sessions, the function key is ignored. This parameter must<br />
be a valid session number. Use 0 for the Mosaix system emulator session, 1<br />
through n (host session number) for a host emulator session, or 9 to intercept the<br />
key in all <strong>Vlterm</strong> sessions.<br />
Label<br />
Focus<br />
The label parameter defines the text that appears on the button. Labels need to fit<br />
in the limited space on the toolbar button, typically seven characters. Use<br />
lowercase characters where possible; uppercase characters take more space.<br />
The focus parameter identifies the session that has the Windows focus at the end<br />
of the command. Use 0 for the Mosaix system emulator session or 1 through n<br />
(host session number) for a host emulator session. If you don’t define the focus<br />
parameter, the focus does not change.<br />
Tooltip<br />
A tool tip is text that appears when the mouse cursor is placed over a button when<br />
the <strong>Vlterm</strong> toolbar has the focus. Use this parameter for a longer description for<br />
the button than what the label allows. Tool tips are optional, and the last tilde (~)<br />
is required only if you set the color parameter.<br />
Color<br />
The color property defines the background color for the button on the GUI toolbar.<br />
Setting a button background color is optional, and the tilde (~) is not required if<br />
you don’t define a color. The following table contains color codes.
14 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Sample File<br />
NOTE The default color is set to 0 (black), which is the same as the default text<br />
color. Change the background color of the button to avoid a black-on-black<br />
toolbar button.<br />
0-Black 8-Gray<br />
1-Blue 9-Light Blue<br />
2-Green 10-Light Green<br />
3-Cyan 11-Light Cyan<br />
4-Red 12-Light Red<br />
5-Magenta 13-Light Magenta<br />
6-Yellow 14-Light Yellow<br />
7-White 15-Bright White<br />
To change the text color, use the Windows Display Properties, Font setting. The<br />
text change is workstation-wide, not toolbar button specific.<br />
; Generic keys<br />
; <strong>Vlterm</strong><br />
[VOICELINK_KEYS]<br />
; keyn=6 fields, first 4 separated by commas, last 2 by tilde:<br />
;; Unshifted<br />
; key1 through key12 correspond to F1 - F12<br />
Key1=TGL9,0,Toggle,~Switch focus between windows~7<br />
key2=CNP1,0,GetRec,~Get host record lookup~7<br />
key3=B,0,Done,~Get next Mosaix record~7<br />
key4=C,0,SetRcl,0~Set a Mosaix time and date recall~7<br />
key5=D,0,RclRel,0~Recall line release~7<br />
key6=E,0,Trnsfr,0~Transfer call~7<br />
key7=F,0,TrnRel,0~Transfer release~7<br />
key8=G,0,Dial,~Telephone dial command menu~7<br />
key9=H,0,MDial,~Managed dial command menu~7
key10=I,0,Misc,~Misc command menu~7<br />
key11=J,0,,~~7<br />
key12=K,0,Logout,~Log out of Mosaix~7<br />
; Shifted<br />
; key13 through key24 correspond to ShF1 - ShF12<br />
key13=L,0,Rel A,1~Line release A~7<br />
key14=M,0,Rel B,1~Line release B~7<br />
key15=N,0,Rel C,1~Line release C~7<br />
key16=O,0,Rel D,1~Line release D~7<br />
key17=P,0,Rel E,1~Line release E~7<br />
key18=Q,0,Rel F,1~Line release F~7<br />
key19=R,0,Rel G,1~Line release G~7<br />
key20=S,0,Rel H,1~Line release H~7<br />
key21=T,0,Rel I,1~Line release I~7<br />
key22=U,0,Rel J,1~Line release J~7<br />
key23=V,0,Rel K,1~Line release K~7<br />
key24=W,0,Rel L,1~Line release L~7<br />
Vlkeys.ini Configuration 15<br />
; Control<br />
; key25 through key 36 correspond to CtlF1 - CtlF12<br />
key25=X,,,~~<br />
key26=Y,,,~~<br />
key27=Z,,,~~<br />
key28=a,,,~~<br />
key29=b,,,~~<br />
key30=c,,,~~<br />
key31=d,,,~~<br />
key32=e,,,~~<br />
key33=f,,,~~<br />
key34=g,,,~~<br />
key35=h,,,~~<br />
key36=i,,,~~
16 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
; Alt<br />
; key37 through key 48 correspond to AltF1 - AltF12<br />
key37=j,,,~~<br />
key38=k,,,~~<br />
key39=l,,,~~<br />
key40=m,,,~~<br />
key41=n,,,~~<br />
key42=o,,,~~<br />
key43=p,,,~~<br />
key44=q,,,~~<br />
key45=r,,,~~<br />
key46=s,,,~~<br />
key47=t,,,~~<br />
key48=u,,,~~<br />
;key49 through key60<br />
key49=,0,,0~~7<br />
key50=,0,,0~~7<br />
key51=,0,,0~~7<br />
key52=,0,,0~~7<br />
key53=,0,,0~~7<br />
key54=,0,,0~~7<br />
key55=,0,,0~~7<br />
key56=,0,,0~~7<br />
key57=,0,,0~~7<br />
key58=,0,,0~~7<br />
key59=,0,,0~~7<br />
key60=,0,,0~~7<br />
;key61 through key 72<br />
key61=,0,,0~~7<br />
key62=,0,,0~~7<br />
key63=,0,,0~~7<br />
key64=,0,,0~~7
key65=,0,,0~~7<br />
key66=,0,,0~~7<br />
key67=,0,,0~~7<br />
key68=,0,,0~~7<br />
key69=,0,,0~~7<br />
key70=,0,,0~~7<br />
key71=,0,,0~~7<br />
key72=,0,,0~~7<br />
Vlkeys.ini Configuration 17
18 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
<strong>Vlterm</strong>.ini Configuration 4<br />
The vlterm.ini configuration file provides most of the specific information about<br />
the operating environment. For example, vlterm.ini includes parameters that<br />
control the emulator applications that must be started, the window title of each<br />
emulator window, specifications to communicate with an emulator, and the names<br />
of other .ini files. In addition, any script commands are organized within this<br />
configuration file as CNP sections.<br />
Standard Windows .ini file conventions are used. Sections enclosed in brackets [ ]<br />
can appear in any order within the file. All entries are unique; <strong>Vlterm</strong> reads them<br />
individually and they can appear in any order within the section. To include spaces<br />
in an entry, enclose the value following the equal sign in quotation marks (“ ”).<br />
Duplicate keywords or missing required entries generate an error message.<br />
Entries in the .ini files are not case sensitive. You can add comments by starting a<br />
line with a semi-colon or inserting a semi-colon in the middle of a line.<br />
NOTE Certain Windows versions have problems reading .ini configurations if<br />
spaces are used (instead of tabs) between configuration items or if a comment is<br />
startedonthesameline.<br />
The rest of this chapter contains a sample vlterm.ini file and descriptions of the<br />
sections in the vlterm.ini file.<br />
Sample <strong>Vlterm</strong>.ini File<br />
[GLOBAL]<br />
DEBUG=OFF<br />
MAX_SESSIONS=1<br />
MAX_CUTS=5<br />
MAX_PASTES=10<br />
19
20 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
NUMBER_CNPS=27<br />
NUMBER_VARS=15<br />
AUTO_INTERVAL=5<br />
AUTO_ENABLED=N<br />
Errorlog=N<br />
ShowSplashScreen=Y<br />
FunctionKeys=Y<br />
TblName=C:\program files\vlterm\table.txt<br />
[SHELL]<br />
HTERM0=C:\Progra~1\WallData\VT\Rumbavt.exe<br />
C:\Progra~1\WallData\VT\mosaix.WDU<br />
S_DELAY0=3<br />
HTERM1=C:\Progra~1\WallData\mframe\Rumbadsp.exe<br />
C:\Progra~1\WallData\mframe\host.WDU<br />
S_DELAY1=3<br />
[WIN_TITLE]<br />
HWIN0=Mosaix*<br />
HWIN1=Host*<br />
[DDE_SESSION]<br />
DDE_TIMEOUT=5<br />
DDE_DELAY0=3<br />
HOST_SERVER0=rumbavt<br />
HOST_TOPIC0=Mosaix.vtp<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=RUM_DDE.INI<br />
DDE_DELAY1=3<br />
HOST_SERVER1=rumbadsp
HOST_TOPIC1=SESSIONA.dsp<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=RUM_DDE.INI<br />
[FKEY_BUTTONS]<br />
DISPLAY_FKEYS = Y<br />
KEYS_FILE=<br />
FKEYS_ON_TOP=Y<br />
CAPTION=<strong>Vlterm</strong> for Rumba<br />
DISPLAY_TOOLTIPS=Y<br />
FKEYS_POSITION=Bottom<br />
ROW1=Y<br />
ROW2=Y<br />
ROW3=N<br />
ROW4=N<br />
ROW5=N<br />
ROW6=N<br />
[CNP1]<br />
CNP_NAME=Host Lookup<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
CNP_TYPE=2<br />
AUTO_CUT_COMPARE=<br />
NUMBER_CUT_COMMANDS=2<br />
NUMBER_PASTE_COMMANDS=6<br />
; row1, col1 row2, col2<br />
CUT_CMD1=(2,19,2,36)<br />
CUT_CMD2=(8,11,8,22)<br />
PASTE_CMD1=C(1)<br />
PASTE_CMD2=@E<br />
<strong>Vlterm</strong>.ini Configuration 21
22 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
PASTE_CMD3=OIA,*0*<br />
PASTE_CMD4=@T<br />
PASTE_CMD5=C(2)<br />
PASTE_CMD6=@E<br />
; END OF VLTERM.INI<br />
<strong>Vlterm</strong>.ini File Configuration Settings<br />
[GLOBAL]<br />
The vlterm.ini file contains several sections. Each section contains configuration<br />
settings. The following sections identify the sections and the corresponding<br />
settings.<br />
DEBUG<br />
DEBUG=[OFF|ON]<br />
The DEBUG setting lets you choose to use (ON) or suspend (OFF) tight error<br />
checking of the vlkeys.ini and vlterm.ini files during <strong>Vlterm</strong> startup. For example,<br />
if you disable DEBUG, <strong>Vlterm</strong> allows for mismatched values between the<br />
NUMBER_PASTE_COMMANDS= value and the actual number of paste<br />
command lines.<br />
Set the Debug value in all uppercase. For example:<br />
DEBUG=OFF<br />
MAX_SESSIONS<br />
MAX_SESSIONS=n<br />
MAX_SESSIONS identifies the number of sessions <strong>Vlterm</strong> controls (0–8). The<br />
Mosaix system session is 0. If you communicate with one host, enter<br />
MAX_SESSIONS=1. This is a required field.
<strong>Vlterm</strong>.ini Configuration 23<br />
MAX_CUTS<br />
MAX_CUTS=n<br />
MAX_CUTS identifies the maximum number of cut commands in any individual<br />
CNP section. Use this setting to allocate dynamic storage arrays for the<br />
commands. The MAX_CUTS value must be greater than or equal to the number<br />
of cut commands you define. The default is 10.<br />
MAX_PASTES<br />
MAX_PASTES=n<br />
MAX_PASTES identifies the maximum number of paste commands in any<br />
individual CNP. Use this setting to allocate dynamic storage arrays for the<br />
commands. The MAX_PASTES value must be greater than or equal to the number<br />
of paste commands you define. The default is 15.<br />
NUMBER_CNPS<br />
NUMBER_CNPS=n<br />
The NUMBER_CNPS value identifies the highest CNPn section number. For<br />
example, if you define three CNP sections, set NUMBER_CNPS to 3. The default<br />
is 1.<br />
NOTE The value for NUMBER_CNPS must match the number of CNPn<br />
sections that you define.<br />
AUTO_INTERVAL<br />
AUTO_INTERVAL=n<br />
AUTO_INTERVAL identifies the timer interval in seconds for automatically<br />
executing any CNP with CNP_TYPE=1, an automatic type CNP. The default is 3<br />
seconds.<br />
AUTO_ENABLED<br />
AUTO_ENABLED=[Y|N]<br />
AUTO_ENABLED lets you specify whether or not the timer for CNPs with<br />
CNP_TYPE=1 is enabled at startup. In many cases, the emulator sessions are not<br />
on the correct screen for the automatic CNP when <strong>Vlterm</strong> starts. The agent may
24 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
have to logon and navigate to the start screen before the timer can be enabled. The<br />
agent can enable the timer using a CNP script that uses the START_AUTO_CNP<br />
paste command.<br />
NUMBER_VARS<br />
NUMBER_VARS=n<br />
NUMBER_VARS identifies the number of global variables you define, based on<br />
the number of variables you need for the CNP sections. The default is 0. You can<br />
add variables to the vlterm.ini as VAR1 through VARn or as a SetVarn paste<br />
command, or the agent can enter the variables using the INPUT paste command.<br />
You can use SetVarn to conditionally set a variable from cut data, then refer to the<br />
variable in other CNP sections.<br />
VARn<br />
VARn=variable<br />
VARn allows you to define an initial value for a global variable. n is the global<br />
variable number. The variable value can be any text.<br />
ShowSplashScreen<br />
ShowSplashScreen=[Y|N]<br />
The default, Y, shows the splash screen at startup.<br />
TblName<br />
TblName=C:\Program Files\<strong>Vlterm</strong>\table.txt<br />
TblName identifies the path and file name for the file that contains lookup data.<br />
Configure this setting if you use the paste command Lookup(). The lookup file<br />
must be comma delimited. Do not specify a file name if you are not using the<br />
Lookup() function. The default is no file name.
<strong>Vlterm</strong>.ini Configuration 25<br />
ERROR_LOG<br />
ERROR_LOG=[Y|N]<br />
The ERROR_LOG option indicates whether or not <strong>Vlterm</strong> activates an error log.<br />
Y activates the error log. N inactivates the error log. The default value is N.<br />
When activated, <strong>Vlterm</strong> writes error messages to the vlterr.log, which is located in<br />
the same directory as the <strong>Vlterm</strong> executable (vlterm.exe).<br />
FunctionKeys<br />
FunctionKeys=[Y|N]<br />
FunctionKeys allows you to disable the function key intercept. A value of Y<br />
enables function key intercept. A value of N disables function key intercept. The<br />
default value is Y.<br />
With function key intercept enabled, each time an agent uses a PC keyboard<br />
function key, <strong>Vlterm</strong> evaluates the key against the vlkeys.ini configuration file<br />
settings to determine the corresponding user-defined action.<br />
[SHELL]<br />
HTERMn<br />
HTERMn=command_line<br />
HTERMn defines the command line that starts a session. Define one HTERMn<br />
line for each session that <strong>Vlterm</strong> controls. n is the session number. The Mosaix<br />
system must be session 0.<br />
The command line contains the path, executable file (.exe) name, and the session<br />
profile name. This is the same command that you would use to start the session<br />
from the Windows Start menu Run command. HTERMn is a required field.<br />
Example with short file names:<br />
HTERM0=C:\Progra~1\WallData\VT\Rumbavt.exe<br />
C:\Progra~1\WallData\VT\mosaix.WDU<br />
Example with long file names:<br />
HTERM0=C:\Program Files\WallData\VT\Rumbavt.exe C:\Program<br />
Files\WallData\VT\mosaix.WDU
26 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
S_DELAYn<br />
S_DELAYn=m<br />
S_DELAYn lets you set a value (in seconds) that causes a delay between<br />
launching the HTERMn session and the next operation. n is the session number.<br />
m is the number of seconds to delay.<br />
This is an optional parameter that you may need to use with slower systems or<br />
during remote testing over dial-up lines when you need to wait for the HTERMn<br />
application to start. The default is 3. If the S_DELAY value is greater than 60,<br />
<strong>Vlterm</strong> changes the value to 3.<br />
[WIN_TITLE]<br />
HWINn<br />
HWINn=window title text<br />
HWINn identifies a sessions window title. n is the session number.<br />
The text must exactly match the running emulator title so that <strong>Vlterm</strong> can identify<br />
with which windows to communicate. Spacing must be exact. The Windows title<br />
bar uses proportional fonts and compresses spaces making it difficult to determine<br />
the exact number of spaces present. The exact Windows title may change between<br />
release versions of an emulator vender. HWINn is a required field for each<br />
session.<br />
[DDE_SESSION]<br />
USE_DDEn<br />
USE_DDEn=[Y|N]<br />
USE_DDEn specifies whether a session uses DDE as its method of<br />
communication. n is the session number.<br />
If you set USE_DDEn to Y, the session to which <strong>Vlterm</strong> communicates must<br />
support DDE. When you use DDE, you can use any of the commands described<br />
in Chapter 5, “Cut Commands,” beginning on page 35 and Chapter 6, “Paste<br />
Commands,” beginning on page 39.
<strong>Vlterm</strong>.ini Configuration 27<br />
If the session does not use DDE as its method of communication, set USE_DDEn<br />
to N. <strong>Vlterm</strong> bypasses the remaining DDE section for this session. For example,<br />
set USE_DDEn to N (USE_DDE1=N) if the terminal emulator does not support<br />
DDE and you are using SendKeys functionality to send information to that<br />
emulator. When you don’t use DDE, you can use a limited set of cut and paste<br />
commands. See Appendix B, “Using the SendKeys Function,” beginning on page<br />
101 for a list of available SendKeys commands.<br />
The default is Y (indicating that the session uses DDE).<br />
HOST_SERVERn<br />
HOST_SERVERn=application name<br />
HOST_SERVERn identifies an emulators DDE application name. n is the session<br />
number.<br />
<strong>Vlterm</strong> uses HOST_SERVERn as the first of two DDE parameters required to<br />
specify a DDE server. It is typically the executable name.<br />
The application name is unique to each emulator.<br />
Emulator Application Name<br />
Rumba for the VAX rumbavt<br />
Rumba for the Mainframe rumbadsp<br />
RumbafortheAS/400 rumbawsf<br />
KEATerm 420 kt420<br />
KEATerm 340 kt340<br />
Reflection R2 r2win<br />
Reflection R4 r4win<br />
Reflection R8 r8win<br />
Irma Mainframe Display kt420
28 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
HOST_TOPICn<br />
HOST_TOPICn=profile name/identifier<br />
<strong>Vlterm</strong> uses HOST_TOPICn as the second of two DDE parameters required to<br />
specify a DDE server. n is the <strong>Vlterm</strong> session number. HOST_TOPICn is often the<br />
emulator profile name.<br />
The profile name or identifier value varies by emulator.<br />
Emulator Profile Name or Identifier<br />
Rumba for the VAX profile.vtp<br />
Rumba for the Mainframe profile.dsp<br />
Rumba for the AS/400 profile.wsf<br />
Reflection R2 RCL<br />
Reflection R8 CONTROL<br />
KEAterm 340/420 macro<br />
IRMA for windows SESSIONA (or B, C, etc. for session)<br />
DDE_TIMEOUT<br />
DDE_TIMEOUT=n<br />
DDE_TIMEOUT identifies the number of seconds before a DDE request times<br />
out. The default is 10 seconds. You may need to increase this number if host<br />
response time is unusually high.<br />
DDE_DELAYn<br />
DDE_DELAYn=m<br />
DDE_DELAYn defines for each session the number of seconds in a wait loop. n<br />
is the session number.<br />
Typically, this delay is not required. However, if a session is slow to respond for<br />
any reason, increase the number. The default is 3 seconds.
<strong>Vlterm</strong>.ini Configuration 29<br />
DDE_CONFIG_SESSIONn<br />
DDE_CONFIG_SESSIONn=file_dde.ini<br />
DDE_CONFIG_SESSIONn specifies the name of the DDE host configuration file<br />
for each emulator session with which <strong>Vlterm</strong> must communicate. n is the session<br />
number.<br />
vlterm.ini contains the DDE commands needed for each of the macro commands<br />
that interact with an emulator. More than one session can use the same file, or you<br />
can create a different file for each session even if the sessions use the same<br />
emulator.<br />
[FKEY_BUTTONS]<br />
DISPLAY_FKEYS<br />
DISPLAY_FKEYS=[Y|N]<br />
Y displays the function key toolbar. N does not display the toolbar. This is a<br />
required field.<br />
FKEYS_ON_TOP<br />
FKEYS_ON_TOP=[Y|N]<br />
FKEYS_ON_TOP determines whether a Windows API is used to keep the toolbar<br />
as the topmost window. You can use the SHOW_FKEYS and HIDE_FKEYS<br />
paste commands to dynamically change whether the toolbars are visible (for<br />
example, to hide them in selected sessions). FKEYS_ON_TOP is a required field.<br />
CAPTION<br />
CAPTION=title<br />
CAPTION sets the title on the main <strong>Vlterm</strong> button bar. The default title is “ ” or<br />
blank.
30 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
ROWn<br />
ROWn=[Y|N]<br />
ROWn determines which rows of the toolbar are visible. n is the number of a row<br />
of buttons (1–6).<br />
A value of Y displays the row. A value of N hides the row. The default is N. The<br />
following example tells <strong>Vlterm</strong> to display only the first two toolbar rows.<br />
ROW1=Y<br />
ROW2=Y<br />
ROW3=N<br />
ROW4=N<br />
ROW5=N<br />
ROW6=N<br />
Any rows can be omitted; the remaining rows are repositioned. <strong>Vlterm</strong> sizes the<br />
FKEYS form to the width of the screen for the current resolution.<br />
DISPLAY_TOOLTIPS<br />
DISPLAY_TOOLTIPS=[Y|N]<br />
DISPLAY_TOOLTIPS indicates whether tooltips appear when the Fkeys form<br />
has the focus. The default Y. You can activate this option from the pop-up menu<br />
on the toolbar form.<br />
FKEYS_POSITION<br />
FKEYS_POSITION=[TOP|BOTTOM]<br />
FKEYS_POSITION determines the starting position of the toolbar, either at the<br />
top or bottom of the screen. The default location is BOTTOM.<br />
[CNPn]<br />
CNPn sections identify a cut and paste script to execute. n specifies a number, 1<br />
through n. The maximum value for n is the value of NUMBER_CNPS in the<br />
[GLOBAL] section.
<strong>Vlterm</strong>.ini Configuration 31<br />
NUMBER_CUT_COMMANDS<br />
NUMBER_CUT_COMMANDS=n<br />
NUMBER_CUT_COMMANDS specifies the number of CUT_CMDs to execute.<br />
This is a required field.<br />
NUMBER_PASTE_COMMANDS<br />
NUMBER_PASTE_COMMANDS=n<br />
NUMBER_PASTE_COMMANDS specifies the number of PASTE_CMDs to<br />
execute. Gradually incrementing the number of commands and verifying partial<br />
results is a good way to test complex sequences. This is a required field.<br />
CUT_SESSION<br />
CUT_SESSION=n<br />
CUT_SESSION specifies the host session number from which to cut. The Mosaix<br />
system session is always 0. To cut from different sessions with a single agent<br />
command, use the CNPn paste command to branch to another [CNPn] section that<br />
contains CUT_SESSION=n set to a different number. This is a required field.<br />
PASTE_SESSION<br />
PASTE_SESSION=n<br />
PASTE_SESSION specifies the host session number to which to paste. The<br />
Mosaix system session is always 0. To paste to different sessions with a single<br />
agent command, use the CNPn paste command to branch to another [CNPn]<br />
section that contains PASTE_SESSION=n set to a different number. This is a<br />
required field.<br />
CNP_TYPE<br />
CNP_TYPE=n<br />
CNP_TYPE indicates the type of cut and paste. A value of 1 indicates an<br />
automatic cut and paste. If the CNP type is set to automatic, the CNP will execute<br />
at the time interval set in the AUTO_INTERVAL parameter in the [GLOBAL]<br />
section. If the AUTO_CUT_COMPARE in the [CNPn] section specifies a cut<br />
command number, the script compares the previous cut value against the specified<br />
cut command results to determine whether the rest of the script is executed.
32 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
A CNP_TYPE value of 2 indicates a manual cut and paste. This is the default.<br />
A CNP_TYPE value of 3 indicates logon. This is needed for any CNP command<br />
used as part of logon sequence. Other CNP commands, such as automatic, are<br />
ignored until logon is finished.<br />
A CNP_TYPE value of 4 indicates a DDE cut and paste. This is a hot link similar<br />
to an automatic cut and paste. The link is to the item contained in CUT_CMDn<br />
specified by AUTO_CUT_COMPARE in the session specified as the<br />
CUT_SESSION within the [CNPn]. This works just like the automatic cut and<br />
paste, but instead of performing a DDE cut based upon a timer, the link is told in<br />
the changed event.<br />
AUTO_CUT_COMPARE<br />
AUTO_CUT_COMPARE=n<br />
AUTO_CUT_COMPARE identifies the cut number used to compare data<br />
between outbound screen pops to determine if the field has changed since the last<br />
time it was automatically copied. This is a required field if the CNP_TYPE is<br />
type 1.<br />
CUT_CMDn<br />
CUT_CMDn=format<br />
CUT_CMDn identifies the command line format for each cut command. n begins<br />
with 1 and continues to the value set in NUMBER_CUT_COMMANDS. The<br />
highest value for n (the number of cut commands that you define) must equal the<br />
value of NUMBER_CUT_COMMANDS. Cut command numbers must be<br />
sequential.<br />
The command lines specified follow the same format as the paste command lines,<br />
with the exception that the action is limited to copying text from a specified area.<br />
The source window from which the text is copied is determined by the<br />
CUT_SESSION parameter.<br />
For information about cut command formats for various emulator applications,<br />
see Chapter 5, “Cut Commands,” beginning on page 35.
<strong>Vlterm</strong>.ini Configuration 33<br />
PASTE_CMDn<br />
PASTE_CMDn=a predefined script command or text to send<br />
PASTE_CMDn identifies a predefined script or text to send for each paste<br />
command. n begins with 1 and continues to the value set in<br />
NUMBER_PASTE_COMMANDS. The highest value for n (the number of paste<br />
commands that you define) must equal the value of<br />
NUMBER_PASTE_COMMANDS. Paste command numbers must be sequential.<br />
The session window to which paste command is directed is determined by the<br />
PASTE_SESSION parameter.<br />
For information about paste command formats, see Chapter 6, “Paste<br />
Commands,” beginning on page 39.
34 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
Cut Commands 5<br />
Define cut commands in the CNPn sections of the vlterm.ini file. See “[CNPn]”<br />
on page 30 for more information about setting up cut and paste actions in the<br />
vlterm.ini file. <strong>Vlterm</strong> uses cut commands to identify a location on a screen from<br />
which it copies a specified amount of data. Typically, you define paste commands<br />
that transfer and apply the copied data to another session(s). For information about<br />
paste command options, see Chapter 6, “Paste Commands,” beginning on page 39.<br />
Emulator Formats<br />
Different emulator applications use different formats to specify a cut location. The<br />
following sections define the cut command formats for a variety of emulators.<br />
Attachmate KEA!<br />
(page,row,column,length)<br />
You must include a page value. Use 1 for the Mosaix system page number. Each<br />
screen for each session should have its own unique page number. Row and column<br />
values begin with 1.<br />
For example, CUT_CMD1=(1,3,5,9) copies nine characters beginning at the third<br />
row and fifth column from the Mosaix system session.<br />
35
36 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Attachmate Extra!<br />
(PxxxxLyyyy)<br />
The xxxx variable is the presentation space starting position. Typically, it ranges<br />
from 1 through 1920 or the maximum number of characters on the screen. The<br />
yyyy variable is the length to cut.<br />
For example, CUT_CMD1=(P0165L0009) copies nine characters (Length)<br />
beginning at screen Position 165.<br />
Wall Data Rumba<br />
(rr1,cc1,rr2,cc2)<br />
The rr1 and cc1 variables specify the starting row and column for the cut. The rr2<br />
and cc2 variables specify the ending row and column for the cut. Rows range from<br />
1 through 24. Columns range from 1 to 80.<br />
For example, CUT_CMD1=(3,5,3,13) copies data beginning at the fifth column<br />
of the third row and ending at the thirteenth column of the third row.<br />
WRQ Reflection<br />
DRV<br />
(rr1,cc1,rr2,cc2)<br />
The rr1 and cc1 variables specify the starting row and column for the cut. The rr2<br />
and cc2 variables specify the ending row and column for the cut. Row values<br />
range from 0 through 23. Column values range from 0 through 79.<br />
For example, CUT_CMD1=(3,5,3,13) copies data beginning at the sixth column<br />
of the fourth row and ending at the fourteenth column of the fourth row.<br />
(row, col, len)<br />
Use this format to communicate to external interfaces that use the drv_dde.ini<br />
DDE configuration file.<br />
For example, CUT_CMD1=(3,5,9) copies nine characters beginning at the fifth<br />
column of the third row.
ClipCut()<br />
Cut Commands 37<br />
ClipCut(key_sequence~(row,col,len))<br />
ClipCut() Copies the contents of the emulator screen to the Windows clipboard.<br />
ClipCut() uses the key_sequence to return a string from a designated row and<br />
column position.<br />
Use ClipCut() when the emulator doesn’t support any other API. Use ClipCut() in<br />
conjunction with the SendKeys paste command. (See “SendKeys” on page 54 for<br />
more information.)<br />
Example<br />
CUT_CMD1=ClipCut(%ea%ec~(19,9,10))<br />
CUT_CMD2=ClipCut(~(20,9,10))<br />
The first cut command executes an Alt+E a Alt+E c key sequence (Edit menu,<br />
Select All option and Edit menu, Copy option) to place the screen contents on the<br />
Windows clipboard, then places the contents of row 19, column 9, length 10 into<br />
C(1). The second cut command places the contents of row 20, column 9, length 10<br />
from the same clipboard to C(2).
38 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
Paste Commands 6<br />
@x<br />
C()<br />
Define paste commands (PASTE_CMDn)intheCNPnsections of the vlterm.ini<br />
file. See “[CNPn]” on page 30 for more information about setting up vlterm.ini cut<br />
and paste commands. <strong>Vlterm</strong> uses paste commands to send a predefined script<br />
command or text to a <strong>Vlterm</strong> session. This chapter contains the commands<br />
available for PASTE_CMDn.<br />
In this chapter, special characters, such as brackets ([]), braces ({}), and the pipe<br />
symbol (|), are often used to illustrate the syntax of paste commands. Brackets and<br />
braces group items in syntax strings, and the pipe represents an or. Unless<br />
specifically noted, don’t include these characters in the actual paste commands.<br />
@x is a special keystroke command. See Appendix D, “Emulator Special @x<br />
Keys,” beginning on page 107 for a list of the commands that you can use with<br />
each vendor’s emulator software. Only the DDE interface type supports @x<br />
commands. Use SendKeys() as an alternative. For information about the<br />
SendKeys function, see “SendKeys” on page 54 and Appendix B, “Using the<br />
SendKeys Function,” beginning on page 101.<br />
C(n)[,Numeric][,Space][,Alphanum]<br />
The C(n) command pastes the contents of the previously cut data, which is held in<br />
cut variable C(n). n is the number of the CUT_CMDn script command line in the<br />
current CNP section.<br />
39
40 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
The numeric, space, and alphanum options modify the data held in the variable.<br />
C(n) Option Description<br />
C(n),Numeric Numeric removes all non-numeric characters.<br />
C(n),Space Space adds a space to the end of the cut data.<br />
C(n),Alphanum Alphanum removes all non-alphanumeric characters. Use this<br />
to eliminate tabs and other control characters that are<br />
sometimes passed from the VT emulators.<br />
Examples<br />
PASTE_CMD1=C(1)<br />
PASTE_CMD2=C(1),Numeric<br />
If the value of C(1) is ACCT234, PASTE_CMD1 contains ACCT234.<br />
PASTE_CMD2 contains 234.<br />
NOTE An alternative to using these paste options is the Format() command<br />
which provides more formatting control. See Appendix A, “Using the Format<br />
Function,” beginning on page 91 for more information.<br />
ClipCopyBlock()<br />
ClipCopyBlock(VarTo~VarClip~iRow~iCol~iLen)<br />
ClipCopyBlock() sets a variable to the row, column, and length position of another<br />
variable. Use ClipCopyBlock() to copy text from Windows applications that don’t<br />
support an API.<br />
Use this command with the ClipGet() command. For example, use ClipGet() to set<br />
a variable to hold the contents of the Windows clipboard, then use<br />
ClipCopyBlock() to set another variable to a sub-string of the first variable.<br />
The second variable is set with a sub-string of the contents of the ClipCopyBlock<br />
command. The portion of the first variable that is assigned to the second variable<br />
is the area of the clipboard defined by iRow, iCol, and iLen.<br />
Example<br />
PASTE_CMD1=SendKeys=%ea%ec<br />
PASTE_CMD2=ClipGet(1)<br />
PASTE_CMD3=ClipCopyBlock(2~1~5~9~10)
ClipGet()<br />
ClipSet()<br />
Paste Commands 41<br />
The SendKeys command copies the contents of a screen to the clipboard.<br />
ClipGet(1) places the clipboard text into VAR1. ClipCopyBlock(2~1~5~9~10)<br />
copies the block of text located at row 5, column 9, of length 10 from VAR1 to<br />
VAR2.<br />
ClipGet(n)<br />
Use ClipGet() with the ClipCopyBlock() command. ClipGet() assigns the<br />
contents of the Windows clipboard to VARn. Then, you can use ClipCopyBlock()<br />
or other commands to manipulate VARn.<br />
Example<br />
PASTE_CMD1=ClipGet(1)<br />
The contents of the Windows clipboard is assigned to VAR1.<br />
ClipSet({“string”|CUTn|VARn}~{Y|y|True|true})<br />
The ClipSet() command replaces the contents of the Windows clipboard with<br />
either a literal string, a cut, or a variable. A string argument requires quotation<br />
marks (“ ”). The final argument appends a carriage return after the string, cut<br />
value, or variable value. Use a Y or True value. The carriage return argument is<br />
not case sensitive. If you don’t include the final argument, <strong>Vlterm</strong> doesn’t add a<br />
carriage return after the string or variable.<br />
Example<br />
PASTE_CMD1=ClipSet(CUT1~True)<br />
The contents of CUT_CMD1 is placed in the Windows clipboard followed by a<br />
carriage return.
42 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Cursor()<br />
The Cursor option sets the cursor to a specific 3270 screen location. The following<br />
two sections describe the cursor command syntax for Wall Data Rumba and<br />
Attachmate Extra!.<br />
Wall Data Rumba<br />
Cursor(position) or Cursor(rr,cc)<br />
For Rumba, you can set the cursor position by specifying a presentation space<br />
location or using row and column values. Values for position can range from 1<br />
through 1920, which represent the total number of characters on a screen that<br />
contains 24 rows and 80 columns. For example, row 1 contains positions 1<br />
through 80, row 2 contains positions 81 through 160, and row 24 contains<br />
positions 1841 through 1920.<br />
Examples<br />
PASTE_CMD1=Cursor(0165)<br />
PASTE_CMD1=Cursor(3,5)<br />
Attachmate Extra!<br />
Cursor(Pnnnn)<br />
The nnnn represents the presentation space location. Values for nnnn can range<br />
from 1 through 1920, which represent the total number of characters on a screen<br />
that contains 24 rows and 80 columns. For example, row 1 contains positions 1<br />
through 80, row 2 contains positions 81 through 160, and row 24 contains<br />
positions 1841 through 1920.<br />
Example<br />
PASTE_CMD1=Cursor(P0165)
CUTn|CVRn<br />
CUTn|CVRn=string|CUTn|VARn:true_action:false_action<br />
Argument Description<br />
Paste Commands 43<br />
n The CUT or VAR command number from the current CNP.<br />
string or CUTn orVARn The value to compare to the cut data.<br />
true_action Must be either Next, Exit, or CNPn where n is a different<br />
CNP number than the CNP script that uses this command.<br />
The true_action argument controls the script flow when the<br />
comparison is true.<br />
false_action Must be either Next, Exit, or CNPn where n is a different<br />
CNP number than the CNP script that uses this command.<br />
The false_action argument controls the script flow when the<br />
comparison is false.<br />
The CUTn/CVRn command branches to another CNP sequence depending on a<br />
comparison between a variable and a string. If the comparison is true, the<br />
true_action is carried out. If the comparison is false, then the false_action is<br />
carried out. This is useful for making decisions based on screen content.<br />
CVRn is another method of referring to VARn. CVR represents a cut variable. Use<br />
CVRn only on the left side of the expression. Use VARn only on the right side of<br />
the expression.<br />
Examples<br />
PASTE_CMD1=CUT1=Ready:CNP2:Exit<br />
<strong>Vlterm</strong> compares the contents of CUT1 to the string “Ready.” If the comparison<br />
is true, the script branches to CNP2. If the comparison is false, the script stops.<br />
PASTE_CMD1=CVR1=:Next:CNP2<br />
<strong>Vlterm</strong> compares the contents of the variable VAR1, which is the same as CVR1,<br />
to a blank string. (When nothing appears between the equal sign and the colon,<br />
<strong>Vlterm</strong> interprets the string argument as a blank string.) If the comparison is true,<br />
the script executes the next paste statement. If the comparison is false, the script<br />
branches to CNP2.<br />
PASTE_CMD1=CUT1=VAR2:Next:CNP2
44 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Date()<br />
Delay()<br />
<strong>Vlterm</strong> compares the contents of the CUT1 to the variable VAR2. If the<br />
comparison is true, the script executes the next paste statement. If the comparison<br />
is false, the script branches to CNP2.<br />
Date(n,format_string)<br />
The Date command pastes the current date at the current screen location. Include<br />
a value greater than zero to specify current date plus n days. You can use the<br />
Format command structure to format the date. For more information, see “Using<br />
the Format Function” on page 91.<br />
Examples<br />
PASTE_CMD1=Date(7,mmddyy)<br />
Add 7 days to the current date and display it in the 041596 format.<br />
PASTE_CMD1=Date(-1,mm/dd/yy)<br />
Subtract 1 day from the current date and display it in the 04/15/96 format.<br />
PASTE_CMD3=”The time is: ”<br />
PASTE_CMD4=Date(0,hh:nn)<br />
Displays the current time in hh:nn format: The time is: 14:25<br />
Delay(n)<br />
The Delay(n) paste command causes <strong>Vlterm</strong> to pause for the specified amount of<br />
time. n is the number of seconds and can use decimal fractions.<br />
Example<br />
PASTE_CMD2=Delay(1.5)<br />
<strong>Vlterm</strong> pauses for 1 1/2 seconds.
Exit_<strong>Vlterm</strong><br />
File()<br />
Exit_<strong>Vlterm</strong> closes the <strong>Vlterm</strong> application.<br />
Paste Commands 45<br />
File({create|delete|append}~path|VARn~format|VARx~string|VARm)<br />
Use the File() paste command to create, append to, or delete an ASCII text file.<br />
The File() command supports three file formats: CRLF, QUOTECLRF, and<br />
COMMA. The CRLF format places a carriage return and a line feed after each<br />
data entry. QUOTECLRF places quotation marks around and adds a carriage<br />
return and line feed after each entry. The COMMA format places a comma after<br />
each data entry.<br />
The following table provides descriptions of the File() command arguments.<br />
Argument Description<br />
create Creates a new file or overwrites an existing file of the<br />
same name.<br />
delete Deletes the specified file.<br />
append Adds specified content to the end of an existing file or<br />
creates the specified file if it doesn’t exist.<br />
path|VARn The file name, including directory path, or a variable.<br />
format|VARx Specify CRLF to insert a carriage return and line feed<br />
after each entry, QUOTECRLF to insert quotation marks<br />
around each entry and a carriage return and line feed after<br />
each entry, or COMMA to insert a comma after each<br />
entry. If you set a variable equal to CRLF, QUOTECRLF<br />
or COMMA, you can use that variable in the File()<br />
command.<br />
string|VARm A string or variable to insert into the specified file.
46 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Find()<br />
You must define the File() command arguments in the specified sequence. The<br />
first argument must be one of the three actions (create, delete, or append). The<br />
second argument must include a valid drive, path, and file name. The third<br />
argument must be the file format, either CRLF, QUOTECRLF, or COMMA. The<br />
final argument must contain the data that the File() command puts into the file.<br />
Example<br />
PASTE_CMD1=SetVar1=h:\temp\m2s2276.txt<br />
PASTE_CMD2=SetVar2=123456789<br />
PASTE_CMD3=File(create~Var1~CRLF~Var2)<br />
This series of paste commands creates a new file (or overwrites an existing file)<br />
by the name of h:\temp\m2s2276.txt that contains the string 123456789.<br />
The Find() command supports two syntaxes:<br />
• Find(string,rr,cc):ntrue_action:false_action<br />
• Find(string,xxxx):true_action:false_action<br />
Argument Description<br />
string The value to compare to the screen data.<br />
rr,cc A row and column position to start the search.<br />
xxxx A single value, 1 through 1920, that represents the starting<br />
position for the string search. 1920 represents the total number of<br />
characters on a screen that contains 24 rows and 80 columns.<br />
true_action Must be either Next, Exit, or CNPn where n is a different CNP<br />
number than the CNP script that uses this command. The<br />
true_action argument controls the script flow when the<br />
comparison is true.<br />
false_action Must be either Next, Exit, or CNPn where n is a different CNP<br />
number than the CNP script that uses this command. The<br />
false_action argument controls the script flow when the<br />
comparison is false.<br />
Only the Rumba and Extra! emulators support the Find() paste command.
Paste Commands 47<br />
This function searches for a string in the paste session presentation space starting<br />
at a location specified by a row and column setting (rr,cc) or a single value that<br />
represents a specific position on the screen (xxxx). If the string is found, the<br />
true_action is carried out, if the string is not found the false_action is carried out.<br />
FocusRemain()<br />
FocusRemain(Y|y|N|n|True|true|False|false)<br />
The FocusRemain() option determines whether, when CNPn completes, <strong>Vlterm</strong><br />
directs the window focus to the most recent session that was set in the script. If<br />
you set FocusRemain() to N or False, <strong>Vlterm</strong> directs the focus to the session<br />
specified in the PASTE_SESSION parameter in the CNP session. FocusRemain()<br />
Y and N arguments are not case sensitive. True and False settings can be all lower<br />
case or use an initial capital letter.<br />
FormatStr()<br />
FormatStr({C(n)|VARn}~string)<br />
FormatStr() formats the contents of C(n)orVARnaccording the mask string and<br />
places the contents back into C(n) orVARn. Define the mask string using the<br />
Format() command. For more information, see “Using the Format Function” on<br />
page 91.<br />
Example<br />
PASTE_CMD1=SetVar1=123454678<br />
PASTE_CMD2=FormatStr(VAR1~#,###,###.00)<br />
PASTE_CMD3=MSG=VAR1<br />
VAR1 contains the string 12345678. After <strong>Vlterm</strong> applies the FormatStr<br />
command, VAR1 contains 12,345,678.00.<br />
FormLoad()<br />
FormLoad(n)<br />
FormLoad(n) causes <strong>Vlterm</strong> to read from the external configuration file<br />
FORMn.ini and load the form.
48 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Hide_Fkeys<br />
The Hide_Fkeys command hides the FKEYS form. Use this command to hide the<br />
FKEYS form during a host session.<br />
Hide_Logon<br />
Input<br />
Hide_Logon hides the predefined user input logon form. Hide_Logon is<br />
maintained for compatibility with previous <strong>Vlterm</strong> versions.<br />
Input=message:title:n<br />
Argument Description<br />
message The contents of the message box.<br />
title The message box title.<br />
n The variable number (VARn) in which <strong>Vlterm</strong> stores the<br />
agent-typed text.<br />
The Input command causes an InputBox, or message box, to appear. The box can<br />
display messages and prompt the agent to enter data into single text field. After<br />
the agent types text, then chooses OK, <strong>Vlterm</strong> places the text in the VARn variable<br />
for use in subsequent commands. You must define VARn in the [GLOBAL]<br />
section of the vlterm.ini file. The title appears in the message window title bar. For<br />
example:<br />
PASTE_CMD1=Input=Type Data Here:Data Entry Box:1<br />
PASTE_CMD2=MSG=VAR1<br />
PASTE_CMD1 causes <strong>Vlterm</strong> to display a message box titled Data Entry Box to<br />
the agent. The message box contains the Type Data Here prompt. <strong>Vlterm</strong> stores<br />
the information typed by the agent in VAR1. PASTE_CMD 2 uses the MSG<br />
command to display the VAR1 contents.
LeftStr()<br />
Lookup()<br />
Paste Commands 49<br />
LeftStr({C(n)|VARn}~x)<br />
LeftStr() Returns the defined number (x) of left-most characters from either a C(n)<br />
or a VARn script variable.<br />
Lookup(VARn~VARm)<br />
Lookup() uses VARn as input to search a table and return a corresponding VARm<br />
string.<br />
Example<br />
CUT_CMD1=ClipCut(%ea%ec~(1,1,4))<br />
PASTE_CMD1=SetVar1=CUT1<br />
PASTE_CMD2=Lookup(VAR1~VAR2)<br />
PASTE_CMD3=SendKeys=VAR2<br />
The example code cuts a four-digit number from one session and does a lookup in<br />
the table specified in the [GLOBAL] section of vlterm.ini. For example:<br />
TblName=C:\Program Files\<strong>Vlterm</strong>\table.txt<br />
A lookup file must use a comma delimited variable length format. You can<br />
generate this file with an application such as Microsoft Access. Each row in the<br />
table consists of two fields. The first field is the search string. The second field is<br />
the source string.<br />
Lookup File Example<br />
“2222”,”Phone Company”<br />
“2300”,”Nortel Meridian”<br />
“1332”,”Long Distance company”<br />
Use related script commands for debugging purposes to view the input file before<br />
<strong>Vlterm</strong> has translated the fields.
50 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
MathOnVars()<br />
Msg<br />
MathOnVars({VARn|CUTn}~{VARn|CUTn}~{+ | - | * | / | \ }~{x|VARn|CUTn})<br />
MathOnVars() provides the ability to do arithmetic on either a VARn or CUTn<br />
script variable. The first argument receives the result of the mathematical<br />
operation that uses argument two, an operator, and argument three. The variable x<br />
in argument 3 can be a literal number. Separate all arguments with the tilde (~)<br />
symbol.<br />
Example<br />
MathOnVars(VAR1~CUT2~+~3.1)<br />
Performs the following operation:<br />
VAR1 = C(2) + 3.1<br />
Msg={string|CUTn|VARn}<br />
The Msg option sends a specified message string to the agent using a message box.<br />
After the message appears, the agent must click OK to continue. For strings,<br />
quotation marks are optional. If you enclose a string in quotation marks, the<br />
quotation marks appear in the message box. If the Msg value is a cut variable, you<br />
must use the CUTn syntax. C(n) is not a valid value for the Msg command.<br />
Example<br />
PASTE_CMD1=Msg=This is the message<br />
PASTE_CMD2=Msg=CUT1<br />
Non-Reserved Word<br />
You can specify a non-reserved word in a paste command, which causes <strong>Vlterm</strong><br />
to send characters as keystrokes directly to the emulator. This can include ordinary<br />
alphanumeric characters or special characters used for screen or cursor<br />
manipulation commands. If the emulator doesn’t accept the format, a DDE error<br />
message is displayed:<br />
“Error Pasting to window-title. VB error code VB error message. CNPn CMDn.”<br />
The agent must click OK. <strong>Vlterm</strong> ends the current CNP script.
OIA<br />
Paste Commands 51<br />
Enclose the text string in quotation marks to include space characters.<br />
Example<br />
PASTE_CMD1=“ The text is: ”<br />
OIA,string,[n]<br />
Argument Description<br />
string Search string. <strong>Vlterm</strong> compares this string against the string the<br />
emulator sends.<br />
[n] OIA timeout, in seconds. This argument is optional. If you don’t<br />
specify a value for n, <strong>Vlterm</strong> defaults to 10 seconds. Include the<br />
brackets in the command.<br />
The OIA option causes <strong>Vlterm</strong> to wait for keyboard unlock. This applies to 3270<br />
emulations only (Wall Data Rumba and Attachmate Extra!).<br />
<strong>Vlterm</strong> issues a request to the emulator for OIA status in a loop, which contains a<br />
brief pause between each loop. If a clear indication is not received in that time,<br />
<strong>Vlterm</strong> issues the following message: “OIA searching for an unlocked status<br />
timed out.” The paste function is then exited.<br />
Issue the OIA command after any command that sends data to the host rather than<br />
just manipulating text or the cursor in the 3270 presentation space buffer.<br />
Rumba and Extra! use the following commands.<br />
Command Key Sequence<br />
Clear @C<br />
Enter @E<br />
PF1-24 (program function) @0-@9, @a-@o<br />
PA1-3 (program attention) @x-@z
52 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Other()<br />
The following table contains commonly used commands that don't require OIA.<br />
Command Key Sequence<br />
Tab @T<br />
Home @0<br />
Backtab @B<br />
Newline @N<br />
Erase EOF (end of field) @F<br />
NOTE Use the SendKeys function for commands not listed above or for use with<br />
other emulators. See Appendix B, “Using the SendKeys Function,” beginning on<br />
page 101 for more information.<br />
The string that the OIA looks for is different for each emulator package. You must<br />
identify the emulator string before setting up an OIA command. <strong>Vlterm</strong> interprets<br />
the string using the Like command format. See “Using the Like Operator” on<br />
page 105 for more information.<br />
Extra! Example<br />
PASTE_CMD2=OIA,*CLEAR*,[30]<br />
Where CLEAR is the search string and the asterisks (*) are wild card characters.<br />
The OIA timeout is set to 30 seconds.<br />
Rumba 3270 and AS400 Example<br />
PASTE_CMD2=OIA,*0*<br />
The string that Rumba sends is *0*. The OIA timeout value defaults to 10 seconds.<br />
Other(string)<br />
Use the DDE Other section to paste the string contents to the defined<br />
PASTE_SESSION.<br />
Example<br />
PASTE_CMD2=Other([EXIT()])<br />
This sends an exit command to the external OLE interface program.
Pause()<br />
Release<br />
Relink<br />
RightStr()<br />
Paste Commands 53<br />
Pause(n)<br />
The Pause option is supported only in Wall Data Rumba. Set the value of n in 1/2<br />
second intervals. The pause allows for host processing. The Pause option can be<br />
useful if the host sends data while the 3270 keyboard is in an unlocked state.<br />
Release=n or Release=VAL=x<br />
If the format is RELEASE=n, <strong>Vlterm</strong> sends a Mosaix system release key as<br />
specified in the vlkeys.ini file. n is the key number of the release sequence to send,<br />
1-72.<br />
If the format is RELEASE=VAL=x, <strong>Vlterm</strong> sends a release to the Mosaix system<br />
using the value x. x may be one character preceded by and followed by<br />
.<br />
A y may be added after the x character to automatically respond to the question<br />
“Are you sure?”<br />
Example<br />
PASTE_CMD2=RELEASE=VAL=Hy<br />
Sends Hy to the Mosaix system session.<br />
A relink may be necessary to re-establish a DDE connection to one of the<br />
HTERMn sessions. For example, Rumba drops all DDE links if a host Telnet<br />
session times out.<br />
RightStr({C(n)|VARn}~x)<br />
Returns x number of right-most characters from either a C(n) oraVARnscript variable.
54 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
SendKeys<br />
SetVarn<br />
Parameters<br />
SendKeys={string|C(n)|VARn|~NoFocusSet}<br />
You can use this function as the primary way to send keystrokes or cut data into a<br />
host session if it is not necessary or possible to communicate to a host emulator<br />
DDE server. It is still necessary to use DDE to get information from a window or<br />
to paste the output to a window. The PASTE_SESSION parameter in the CNPn<br />
section determines where the output will be sent.<br />
If the string ~NoFocusSet is included at the end of the SendKeys command line,<br />
the string ~NoFocusSet will be taken out of the string and the focus will not be<br />
changed or set after the command has been issued. This is important if your<br />
command displays a new dialog box or form.<br />
NOTE The new dialog box or form is not the initial form to which <strong>Vlterm</strong><br />
connected. <strong>Vlterm</strong> sets the focus to the original form or window unless you<br />
include the ~NoFocusSet string.<br />
Examples<br />
PASTE_CMD1=SendKeys=C(1)<br />
Send previously cut data placed in C(1) to the PASTE_SESSION host window.<br />
PASTE_CMD1=SendKeys={ENTER}<br />
Specify SendKeys={Enter} to wake up the Telnet session. The braces {} are<br />
required. To define special keystrokes, see “Using the SendKeys Function” on<br />
page 101.<br />
SetVarn={C(n)|VARn|CUTn|string|UserID|Date()|InString()|MidString()}<br />
Sets the script variable VARn to the contents of one of the listed parameters or<br />
subroutines.<br />
Define a SetVarn parameter using variables or a literal string.
Variable<br />
Literal<br />
Subroutines<br />
UserID<br />
Date()<br />
PASTE_CMD1=SetVar1=C(1)<br />
Sets VAR1 to the contents of C(1) or CUT_CMD1.<br />
Paste Commands 55<br />
If you enclose the literal string in quotation marks, the quotation marks aren’t<br />
included in the script variable.<br />
PASTE_CMD2=SETVAR2=hello there<br />
Sets VAR2 to the string hello there.<br />
PASTE_CMD3=SetVar2=“”<br />
Sets VAR2 to an empty string.<br />
The UserID, Date, InString, and Midstring subroutines are available only for use<br />
with the SetVarn command.<br />
The SetVarn UserID option for SetVar accesses the user’s Windows login ID.<br />
Example<br />
PASTE_CMD1=SetVar1=UserID<br />
PASTE_CMD2=Msg=Var1<br />
The series of paste commands displays the user’s login ID.<br />
SetVarn=Date(n,format)<br />
Use the SetVarn Date command option to include a date in a SetVarn routine.<br />
Assign to a variable a string, which represents the local PC date and time. Format
56 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
the string according to the existing Date() command capabilities (see “Date()” on<br />
page 44 for more information about the Date() command).<br />
Argument Description<br />
n The number of days to add to the current date (0 for the<br />
current date).<br />
format The format <strong>Vlterm</strong> uses to display the date using the<br />
FormatStr command options. See “Date and Time Formats” on<br />
page 96 for more information.<br />
Example<br />
PASTE_CMD1=SetVar1=Date(1,yyyymmdd)<br />
PASTE_CMD2=Msg=Var1<br />
The series of paste commands adds one day to the current date. For example, if the<br />
current date is October 27, 1999, the PASTE_CMD2 command adds 1 to the date<br />
and displays the date as 19991028.<br />
InString()<br />
SetVARn=(Start_Position~Source_string~Sub_string)<br />
SetVARn= InString(<br />
{C(n)|string|VARn|CUTn}<br />
~{C(n)|string|VARn|CUTn}<br />
~{C(n)|string|VARn|CUTn})<br />
Use the SetVarn InString() function to return the column position of a substring<br />
within a row of string characters. The InString function uses the following<br />
arguments.<br />
Argument Description<br />
Start_position The position of the search string to start searching for a<br />
substring. Required entry.<br />
Source_string The string to be searched<br />
Sub_string The sub-string to find within the searched string<br />
The result is to return the column that the search string was<br />
found within the string being searched.
Example<br />
SETVAR3=InString(1~CUT1~VAR2)<br />
Paste Commands 57<br />
The source string CUT1 is searched for the substring VAR2 starting at position 1.<br />
The first column position where VAR2 is located within CUT1 is assigned to<br />
VAR3.<br />
Midstring()<br />
Midstring(Source~Start~Length)<br />
SetVARn=MidString(<br />
{C(n)|string|VARn|CUTn}<br />
~{C(n)|string|VARn|CUTn}<br />
~{C(n)|string|VARn|CUTn})<br />
Use the SetVarn Midstring() function to return a specified number of characters<br />
from a string.<br />
Argument Description<br />
Source The string from which characters are extracted.<br />
Start Character position in the Source string from which to begin<br />
extracting.<br />
Length The number of characters to return from the Source string<br />
(optional parameter).<br />
Example<br />
SETVAR2=MidString(CUT1~VAR2~5)
58 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
ShellApp()<br />
ShellApp({string|VARn}~WinTitle)<br />
Use the ShellApp() option to determine if an application with WinTitle is currently<br />
running. If it is, the focus is set to that application. If the application is not<br />
currently running, the string parameter is used to launch the application and set<br />
focus to it.<br />
Examples<br />
ShellApp(Calc.exe~Calculator)<br />
Launches the Windows calculator program.<br />
CUT_CMD1=ClipCut(%ea%ec~(1,1,20))<br />
PASTE_CMD1=SetVar1=Notepad.exe<br />
PASTE_CMD2=StrCat(Var1~Cut1)<br />
PASTE_CMD3=ShellApp(Var1~Win_Title Here)<br />
CUT_CMD1 copies 20 characters beginning at row 1, column 1 of the<br />
CUT_SESSION window. PASTE_CMD1 assigns the executable name<br />
(notepad.exe) to VAR1. PASTE_CMD2 adds the string in CUT1 to VAR1. For<br />
example, VAR1 contains “notepad.exe c:\temp\filename.txt.” PASTE_CMD3<br />
launches Notepad using the CUT1 string as the argument.<br />
Show_Fkeys<br />
Argument Description<br />
string Path and executable file name to be started<br />
VARn String variable<br />
WinTitle Window title of application (can include a wildcard, for<br />
example Calc*). Use WinTitle to further qualify the file you<br />
want to open. WinTitle is optional.<br />
The Show_Fkeys option displays the toolbar. Use this command to make the<br />
FKEYS toolbar visible for a host session.
Start_Auto_CNP<br />
Start_Auto_CNP enables the automatic CNP timer.<br />
Stop_Auto_CNP<br />
StrCat()<br />
Stop_Auto_CNP disables the automatic CNP timer.<br />
StrCat(VARn~{CUTn|VARn|string})<br />
Use StrCat() to concatenate a string to the end of VARn.<br />
Example<br />
StrCat(VAR1~CUT1)<br />
Where VAR1 = VAR1 + (C(1) or CUT_CMD1).<br />
TitleCaption<br />
Paste Commands 59<br />
TitleCaption={VARn|string|CUTn}<br />
Use the TitleCaption paste command to change the Windows title of the <strong>Vlterm</strong><br />
button bar. Use quotation marks if you want them to appear in the title.<br />
Examples<br />
PASTE_CMD1=SetVar1=“New Title”<br />
PASTE_CMD2=TitleCaption=VAR1<br />
or<br />
PASTE_CMD1=TitleCaption=“New Title”<br />
or<br />
PASTE_CMD1=TitleCaption=CUT1
60 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
ToggleTo()<br />
VARn<br />
Wait()<br />
ToggleTo(n)<br />
The value of n is a session number from 0 to MAX_SESSIONS as defined in the<br />
vlterm.ini file.<br />
ToggleTo() sets the windows focus to the specified HTERMn session.<br />
The VARn option pastes the value of VARn into the active screen. You must define<br />
VARn in the [GLOBAL] section of vlterm.ini. You can set the value of VARn with<br />
the Input paste command or the SetVar paste command.<br />
Wait(n,string)<br />
This command is supported in Wall Data Rumba and WRQ Reflections only. This<br />
command tells the system to wait for a specific data string from the host, where n<br />
is number of seconds to wait.<br />
WaitForKey()<br />
WaitForKey(iKeyCode~iFocusWin)<br />
Argument Description<br />
iKeyCode ASCII value<br />
iFocusWin session 0 to MAX_SESSIONS<br />
WaitForKey() pauses the CNP script until the key specified by iKeyCode is<br />
pressed. After this key is pressed, focus is set to the session specified by<br />
iFocusWin, and the CNP script execution continues.
Example<br />
WinFocus()<br />
WaitForKey(13~0)<br />
Paste Commands 61<br />
Sets the focus to session 0 when the return key (ASCII 13) is pressed.<br />
WinFocus(HWINn~VARn)<br />
This command tests whether the session specified has the current focus. If it does,<br />
VARn is set to 1. If it doesn’t, VARn is set to 0.
62 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
Automatic Cut and Paste 7<br />
You can configure <strong>Vlterm</strong> to automatically copy information from the Mosaix<br />
system session VT100 emulator to any host session every time a field on the<br />
VT100 screen changes, such as when a new data record for a call appears.<br />
The automatic cut and paste copies a designated string of text from the Mosaix<br />
system emulator screen at specified intervals. If the copied string differs from the<br />
last copy, <strong>Vlterm</strong> assumes that a new record has been sent to the Mosaix system<br />
agent and carries out the automatic CNP commands. This typically consists of<br />
pasting the cut information to the host session.<br />
Set the number of cut commands, in the CNPn sectionofvlterm.ini,tozeroto<br />
execute the automatic cut and paste regardless of screen changes. For example,<br />
NUMBER_CUT_COMMANDS=0.<br />
Because of the limitations of the character-based Mosaix system interface, the<br />
examples in this chapter show additional configuration settings that control when<br />
the automatic compare takes place.<br />
The automatic compare is turned off after an agent logs off the job and after each<br />
automatic compare. This prevents a copy and paste from occurring while on the<br />
same record. This may occur if an agent views a different screen within the<br />
Mosaix system emulator with a goto screen2, for example. The automatic<br />
compare is turned on again once the agent selects record release.<br />
For a similar reason, the automatic cut and paste is turned off until the agent logs<br />
on and joins a job. You must configure a button to start the automatic cut and paste<br />
for the first record.<br />
63
64 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Sample Files<br />
<strong>Vlterm</strong>.ini<br />
The following sections contain sample vlterm.ini and vlkeys.ini files.<br />
[GLOBAL]<br />
NUMBER_CNPS=4<br />
MAX_SESSIONS=1<br />
AUTO_INTERVAL=3;attempt auto cut every 3 seconds<br />
AUTO_ENABLED=N ;do not enable auto compare on <strong>Vlterm</strong> startup<br />
[CNP1]<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
CNP_TYPE=1;CNP type 1 = automatic<br />
AUTO_CUT_COMPARE=1;1 = cut_cmd number to compare against<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=3<br />
CUT_CMD1=(0,64,0,73);compare this cut against the old cut to<br />
;determine whether a screen change has occurred<br />
PASTE_CMD1=C(1);if cuts are different, execute paste steps<br />
PASTE_CMD2=^M<br />
PASTE_CMD3=STOP_AUTO_CNP;stop checking while on current call<br />
[CNP2]<br />
CUT_SESSION=0;Begin auto cut and paste (AUTO)<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=1<br />
PASTE_CMD1=START_AUTO_CNP;used only at beginning of day or<br />
;session
Vlkeys.ini<br />
Automatic Cut and Paste 65<br />
[CNP3]<br />
CUT_SESSION=0;Log Off button click (LOGOFF)<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=RELEASE=VAL=A;send logoff release code to Mosaix<br />
PASTE_CMD2=STOP_AUTO_CNP;stop the auto cut cycle after<br />
;logging off<br />
[CNP4]<br />
CUT_SESSION=0;Release Record button click (DONE)<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=RELEASE=VAL=B;send release record code to Mosaix<br />
PASTE_CMD2=START_AUTO_CNP;start auto cut cycle to watch for<br />
;next record<br />
key1=CNP2,0,AUTO,0,START AUTO CNP,1<br />
key2=CNP3,0,LOGOUT,0,Request Logout<br />
key3=CNP4,0,DONE,0,Release Record,4
66 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
Creating a DDE.ini File 8<br />
<strong>Vlterm</strong> reads from external DDE.ini configuration files to get information it needs<br />
about specific emulator packages. DDE.ini files contain emulator-specific DDE<br />
commands that the <strong>Vlterm</strong> script commands need.<br />
By placing all the DDE commands into an external configuration file, the <strong>Vlterm</strong><br />
executable does not need to be modified to add DDE communications support for<br />
previously unsupported emulation packages.<br />
You can configure DDE.ini files. DDE.ini file content follows the standard<br />
Windows configuration (*.ini) file format.<br />
To communicate with <strong>Vlterm</strong> using DDE, an emulation package must meet the<br />
following requirements:<br />
• The emulation package must act as a DDE server.<br />
• Documentation for the DDE server command structure describes the<br />
emulation package’s functions in detail.<br />
• The emulation package supports the functionality that the solution requires,<br />
for example, cut and paste.<br />
DDE.ini Files Introduction<br />
Each script command in a vlterm.ini CNPn section that interacts with a host<br />
system generally depends on a series of DDE commands. The <strong>Vlterm</strong> DDE client<br />
must send these DDE commands in a particular order to the target emulation<br />
package operating as a DDE server.<br />
NOTE Not all DDE commands require arguments.<br />
The external DDE.ini file structure allows for a variable number of lines (entries)<br />
for each section as well as several commands and arguments in each line.<br />
67
68 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
There are currently 12 sections in the DDE.ini file. The OTHER section can be<br />
used as a general purpose section for unanticipated situations.<br />
The name of the DDE.ini file needs to be specified in the DDE_SESSION section<br />
ofthevlterm.inifile(see“[DDE_SESSION]”onpage26).<br />
Example<br />
; DDE host configuration files, one file for each session<br />
DDE_CONFIG_SESSION0=KEA_DDE.INI<br />
DDE_CONFIG_SESSION1=RUM_DDE.INI<br />
The first file for session 0, the Mosaix system session, has settings for<br />
Attachmate’s KEA! vt100 emulator. The second file is for Wall Data’s Rumba<br />
emulator going to session 1, a host session. You may have the same file in both<br />
entries if you use the same type of emulator for both sessions, but you must have<br />
a file name listed for each session used.<br />
Each section within the DDE.ini file may have associated variables. The <strong>Vlterm</strong><br />
code parses these variables and replaces with variable values that are known<br />
within the code. By using variables, <strong>Vlterm</strong> has access to dynamically changing<br />
values, such as when a string has been cut from an emulator screen.<br />
This chapter lists the variables in the sections to which they apply and the internal<br />
variables that are assigned to them. These variable declarations are found within<br />
the cnp.bas module in the DDE_MessageSend sub-routine.<br />
DDE.ini File Variables<br />
NumberOfLines=2<br />
Line1=LinkItem copyblock(&CutVar1&)<br />
Line2=LinkRequest<br />
Parameter Description<br />
NumberOfLines The number of lines in this sequence<br />
Line1 The first line in the sequence of events for a cut command<br />
LinkItem Tells <strong>Vlterm</strong> that a LinkItem DDE command will be used
Parameter Description<br />
copyblock() A literal text sting sent to the DDE Server<br />
& Field delimiter<br />
Example of a Cut Command for Rumba<br />
For a vlterm.ini [CNPn] section command configured as:<br />
CUT_CMD1=(1,1,1,5)<br />
And a RUM_DDE.ini file cut section defined as:<br />
Creating a DDE.ini File 69<br />
CutVar1 Internal variable, described later in this chapter as a cut command<br />
[DDE_CUTS]<br />
NumberOfLines=2<br />
Line1=LinkItem copyblock(&CutVar1&)<br />
Line2=LinkRequest<br />
<strong>Vlterm</strong> makes the following variable assignment:<br />
CutVar1 = (1,1,1,5)<br />
After the RUM_DDE.ini [DDE_CUTS] section Line1 is parsed and the variable<br />
substitutions are made, a DDE LinkItem request is sent to the DDE server of the<br />
emulation package. The request contains the following data:<br />
copyblock(1,1,1,5)<br />
The LinkRequest DDE command for Line2 would then be sent without<br />
parameters.<br />
The result would be that the text on the screen for CUT_SESSION=0 in location<br />
1,1,1,5 would be placed in the cut variable number 1, C(1), in the CNP section for<br />
later processing.<br />
The startup.bas module in the CONFIG_CNP subroutine reads the DDE.ini file<br />
information into <strong>Vlterm</strong> and places it into structures for each session. The<br />
DDE_MessageSend subroutine is then called and given the appropriate structure<br />
for the task to be performed.
70 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
DDE.ini File Sections<br />
Not all functions or sections are available for all emulators. Rumba was used as<br />
the first example of what commands to include. Although variables are generally<br />
associated with a specific section in the DDE.ini file, they may be used in other<br />
sections as needed. For example, the Chr1 and Chr13 variables represent the<br />
ASCII characters 1 (^A) and 13 (^M) respectively.<br />
[DDE_CUTS]<br />
CutVar1 = the string contents of a cut command from the vlterm.ini file.<br />
Example<br />
If CUT_CMD1=(1,1,1,5) in the vlterm.ini file, then CutVar1 = “(1,1,1,5)”.<br />
[DDE_PASTECUTS]<br />
PasteVar1 = the string contents of a previously cut item to paste to a session<br />
designated in the vlterm.ini file.<br />
Example<br />
If PASTE_CMD1=C(1) in the vlterm.ini file, the contents of C(1) are pasted to the<br />
session.<br />
[DDE_PVAR]<br />
PvarVar1 = the string contents of an internal VARn variable designated in the<br />
vlterm.ini file.<br />
[DDE_OIAKBD]<br />
Internal variables are not defined for this section.<br />
[DDE_CURSOR]<br />
CursorVar1 = the string contents of a CURSOR command designated in the<br />
vlterm.ini file.
[DDE_WAITS]<br />
Creating a DDE.ini File 71<br />
WaitSVar1 = the string contents of the first parameter before the comma (,) in the<br />
WAIT command designated in the vlterm.ini file.<br />
WaitSVar2 = the string contents of the second parameter after the comma (,) in the<br />
WAIT command designated in the vlterm.ini file.<br />
[DDE_PAUSE]<br />
PauseVar1 = the string contents of the PAUSE command designated in the<br />
vlterm.ini file.<br />
[DDE_FINDS]<br />
FindVar1 = the string contents of the first parameter separated by a comma (,) in<br />
the FINDS command designated in the vlterm.ini file.<br />
FindVar2 = the string contents of the second parameter separated by a comma (,)<br />
in the FINDS command designated in the vlterm.ini file.<br />
FindVar3 = the string contents of the third parameter separated by a comma (,) in<br />
the FINDS command designated in the vlterm.ini file.<br />
[DDE_OTHER]<br />
OtherVar1 = the string contents of the OTHER command designated in the<br />
vlterm.ini file. This variable may not be needed for this section.<br />
[DDE_SENDTHRU]<br />
PassVar1 = the string contents of text on a line designated in the vlterm.ini file, not<br />
associated with an internal function such as the PAUSE command.<br />
Example<br />
The PASTE_CMD1=X line in the vlterm.ini file sends the letter X to the session.
72 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
[DDE_SENDFKEYS]<br />
FKEYVar1 = the string contents of the first command designated in the vlkeys.ini<br />
file.<br />
NOTE If you need to include a “y” after this Mosaix system release code, use the<br />
[DDE_SENDTHRU] command structure.<br />
[DDE_SENDPFKEYS] keystroke<br />
PFKEYVar1 = the string contents of the PFK command designated in the<br />
vlkeys.ini file.<br />
Additional Variables<br />
Chr1 = Chr1 variable which holds the ASCII character 1, used in the<br />
[DDE_SENDFKEYS] command structure or as needed.<br />
Chr13 = Chr13 variable which holds the ASCII characters 13, used in the<br />
[DDE_SENDFKEYS] command structure or as needed.<br />
& = Acts as a field delimiter.<br />
“Text” = Other text placed on the line is passed through as is, text and variables<br />
must be separated by an ampersand (&) symbol.<br />
DRV_DDE.ini File Example<br />
Use the drv_dde.ini sample file as a template to create a new DDE configuration<br />
file when you need <strong>Vlterm</strong> to communicate with an emulator that’s not included<br />
in the “Emulator Specifics” appendix beginning on page 113. The following file<br />
provides samples of the association between script commands and their<br />
functionality.
Creating a DDE.ini File 73<br />
;*****************************************************************<br />
; DDE Host Configuration File<br />
; for Generic DDE Driver<br />
;<br />
; DRV_DDE.INI file for <strong>Vlterm</strong><br />
;*****************************************************************<br />
;This file contains parameters that control <strong>Vlterm</strong> DDE operation<br />
;including the all the supported commands for DDE specifications<br />
;for each emulator<br />
;This file is called from the <strong>Vlterm</strong>.ini file<br />
;The following sections handle particular <strong>Vlterm</strong> script<br />
;commands. For a particular script command, there is a<br />
;corresponding section which specifies the DDE commands<br />
;which will be sent to the DDE server to which <strong>Vlterm</strong> is<br />
;communicating.<br />
;The pseudo-command lines within these sections are interpreted by<br />
;<strong>Vlterm</strong> code and reconstructed into VB DDE commands.<br />
;Note the variable such as &CutVar1& which gets replaced by a value<br />
;defined in a <strong>Vlterm</strong> script command. For CutVar1, it would be<br />
;replaced ;by the contents of C(1) in a Paste_Cmd1=C(1) <strong>Vlterm</strong> script<br />
;command.<br />
[DDE_CUTS]<br />
;Handles the Cut_Cmd1=(row,col,len) script command<br />
NumberOfLines=3<br />
Line1=LinkExecute [CopyBlock(&CutVar1&)]<br />
Line2=LinkItem txtDDE<br />
Line3=LinkRequest<br />
[DDE_PASTECUTS]<br />
;Handles the Paste_Cmd1=C(1) script command<br />
NumberOfLines=1<br />
Line1=LinkExecute [SendKey(&PasteVar1&)]<br />
[DDE_PVAR]<br />
;Handles the Paste_Cmd1=VAR1 script command<br />
NumberOfLines=1<br />
Line1=LinkExecute [SendKey(&PvarVar1&)]<br />
[DDE_OIAKBD]<br />
;Handles the Paste_Cmd1=OIA script command<br />
NumberOfLines=3<br />
; The OIA word to search for is: *CLEAR*<br />
Line1=LinkExecute [OIA()]
74 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Line2=LinkItem txtDDE<br />
Line3=LinkRequest<br />
[DDE_CURSOR]<br />
;Handles the Paste_Cmd1=Cursor() script command<br />
NumberOfLines=1<br />
Line1=LinkExecute [Cursor(&CursorVar1&,&CursorVar2&)]<br />
[DDE_WAITS]<br />
;Handles the Paste_Cmd1=Wait() script command<br />
NumberOfLines=1<br />
Line1=LinkExecute [WaitFor(&WaitSVar1&,&WaitSVar2&)]<br />
[DDE_PAUSE]<br />
;Handles the Paste_Cmd1=C(1) script command<br />
NumberOfLines=1<br />
Line1=LinkExecute [Pause(&PauseVar1&)]<br />
[DDE_FINDS]<br />
;Handles the Paste_Cmd1=Find() script command<br />
NumberOfLines=3<br />
Line1=LinkExecute [Find(&FindVar1&,&FindVar2&,&FindVar3&)]<br />
Line2=LinkItem txtDDE<br />
Line3=LinkRequest<br />
[DDE_OTHER]<br />
;Handles the Paste_Cmd1=Other() script command<br />
NumberOfLines=1<br />
Line1=LinkExecute OtherVar1<br />
[DDE_SENDTHRU]<br />
;Handles the Paste_Cmd1=some_text script command<br />
NumberOfLines=1<br />
Line1=LinkExecute [SendKey(&PassVar1&)]<br />
[DDE_SENDFKEYS]<br />
;Handles the key1=W,0,label,~~7 vlkeys.ini command<br />
;Handles the Paste_Cmd1=Release=x script command<br />
;Handles the Paste_Cmd1=Release=VAL=x script command<br />
NumberOfLines=1<br />
Line1=LinkExecute [SendKey(&Chr1&FKEYVar1&Chr13&)]<br />
[DDE_SENDPFKEYS]<br />
NumberOfLines=0<br />
; END OF DRV_DDE.INI
Configuring a Custom Form 9<br />
You can create any number of formn.ini files that can be configured with any<br />
number of objects. The following list identifies available object types:<br />
• Button<br />
• Label<br />
• TextField<br />
• MaskTextField<br />
• ComboField<br />
• ListField<br />
• CheckBox<br />
Loading a Form<br />
You can call a form from either a button in the vlkeys.ini file or from a script in<br />
the vlterm.ini file.<br />
You can automatically fill a form with data gathered using a CNPn script. Text<br />
fields, list boxes, and combo boxes can be filled with static text or information cut<br />
from emulation screen objects based on vlterm.ini script commands specified for<br />
each object.<br />
All object types except Button can also interact with other script commands by<br />
passing variables back to the vlterm.ini script. Label objects pass the value of the<br />
Caption setting. The other objects pass the value of the Contents setting.<br />
If a CNPn script calls the form, loading the form should be the last command in a<br />
script sequence. The form can execute other CNPn script sequences when the<br />
form closes. For example you can configure an OK button to execute a CNPn<br />
script.<br />
75
76 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
An alternate method is to call a form that sets a variable associated with each form<br />
object. These variables can be maintained globally for subsequent script command<br />
reference.<br />
vlkeys.ini Example<br />
Call the form load command from the vlkeys.ini file:<br />
key1=FRM1,0,Info frm,0~Show the Information form~1<br />
The example in key1 looks for the file form1.ini in the same directory as the<br />
<strong>Vlterm</strong> executable file. The relationship between the .ini file and the action<br />
command is that the “1” in FRM1 corresponds to the “1” in form1.ini. Similarly,<br />
FRM2 looks for the form2.ini file.<br />
vlterm.ini Example<br />
Call the form load from a vlterm.ini script using the FormLoad(n) command:<br />
[CNP1]<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
CNP_TYPE=2<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=1<br />
CUT_CMD1=(1,64,1,73)<br />
;Load the FORM1.INI file<br />
PASTE_CMD1=FormLoad(1)<br />
The example in CNP1 looks for the file form1.ini in the same directory as the<br />
vlterm executable file. The relationship is the “1” in FormLoad(1) corresponds to<br />
the “1” in form1.ini. Similarly, FormLoad(2) looks for the form2.ini file.<br />
For more information about the FormLoad() command, see “FormLoad()” on<br />
page 47.<br />
Formn.ini File Setup<br />
This section identifies the sections of a formn.ini file and the configuration<br />
settings for each section.
[GLOBAL]<br />
Configuring a Custom Form 77<br />
ControlFocus<br />
ControlFocus=(n)<br />
ControlFocus specifies the object in the form that has initial focus when the form<br />
is opened. If the number defined is for a text object, the cursor flashes in that<br />
object.<br />
The value of n ranges from 1 to the number of objects.<br />
NumObjects<br />
NumObjects=(n)<br />
NumObjects identifies the total number of objects that you setup in the form. This<br />
number corresponds to the number of objects added in the Formn.ini file.<br />
The value of n can be greater than or equal to 1. There is no default setting.<br />
NumObjects is a required entry.<br />
Position<br />
Position=(left, top, width, height)<br />
Position determines the position and size of the form. These values are<br />
automatically changed if the variable UserSetSize is set to Y.<br />
Left, top, width, and height must be integer values. The default Position setting is<br />
(0,0,200,50).<br />
UserSetSize<br />
UserSetSize=[{Y|True}|{N|False}]<br />
You can let users change the size of the form by setting UserSetSize to Y or True.<br />
When set to Y or True, <strong>Vlterm</strong> saves the new window size setting. If you set the<br />
variable to N or False, users can modify the window size, but <strong>Vlterm</strong> does not save<br />
the user-defined setting.<br />
Acceptable values for UserSetSize are Y, N, True, or False. The default setting is<br />
N.
78 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
WindowStyle<br />
WindowStyle=[0|1]<br />
You can set the style for an open window. The choices are 1 (Modal), indicating<br />
that the user must respond before continuing, or 0 (Modeless), indicating that the<br />
user may use other windows while leaving this window open.<br />
Values for WindowStyle are 0 or 1. The default value is 1, Modal.<br />
CAUTION Try to provide a mechanism or procedure for the window to close<br />
after use. If too many windows are open, Windows will run out of system<br />
resources, slowing or halting your computer.<br />
UnloadOtherForms<br />
UnloadOtherForms=All<br />
If one or more forms are open, UnloadOtherForms unloads the forms. More than<br />
one form can be open at a time if the WindowStyle is set to 0.<br />
WindowTitle<br />
WindowTitle=string<br />
WindowTitle sets the string of text that appears in the window title bar.<br />
The default value is a blank string (“”).<br />
MinButton<br />
MinButton=[Y|N]<br />
MinButton determines whether a Minimize Window option appears on the form<br />
menu bar.<br />
MaxButton<br />
MaxButton=[Y|N]<br />
MaxButton determines whether a Maximize Window option appears on the form<br />
menu bar.
[Objectn]<br />
Action<br />
Configuring a Custom Form 79<br />
Action=CNPn<br />
When you define an action for a button object, you identify a specific CNPn to<br />
run. When an agent chooses the button, <strong>Vlterm</strong> performs all the cut and paste<br />
actions defined for the CNPn in the vlterm.ini file, then returns control to the form.<br />
The default value for Action is a blank string (“”), which means no action is taken.<br />
Apply the Action setting to Button objects.<br />
Cancel<br />
Cancel=[{Y|True}|{N|False}]<br />
Cancel sets the first command performed by the Button object to close the form<br />
that has been loaded without performing any Actions or Required checks.<br />
Acceptable values of Cancel are Y, N, True, or False. The default setting is N.<br />
Apply the Cancel setting to Button objects.<br />
Caption<br />
Caption=string<br />
Caption sets the text label for the specified object.<br />
Label objects can return the caption value as a VARn to the <strong>Vlterm</strong> script that calls<br />
the form. To pass the Caption value back to the script, define the object using the<br />
Object setting, then reference the object as a variable using the Parameters setting<br />
of a button object. See “Object” and “Parameters” on page 82 for more<br />
information.<br />
The default value for Caption is a blank string (“”).<br />
Apply the Caption setting to Button, CheckBox, and Label objects.
80 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
CloseForm<br />
CloseForm=[{Y|True}|{N|False}]<br />
CloseForm sets the last command performed by the Button object to close the<br />
form that has been loaded after performing all Contents items.<br />
Acceptable values of CloseForm are Y, N, True, or False. The default setting is N.<br />
Apply the CloseForm setting to Button objects.<br />
Contents<br />
Contents=[string, CNPn,C(n), ~ as the separator]<br />
Contents sets the initial value of the form object. For example, for a TextField<br />
object, the Contents value appears in the text field on the form. If you use a C(n)<br />
variable, the command places the contents of the last cut (stored in C(n)) into the<br />
text of the object. All cut and paste actions are performed within the CNPn and<br />
any other actions described. It’s a good idea to define a CNPn with only cut<br />
commands.<br />
Contents can appear on more than one line, each one being appended to the last.<br />
See “UseContentsData” on page 85 for more information.<br />
The default value for Contents is a blank string (“”).<br />
Apply the Contents setting to TextField, MaskTextField, and ComboField objects.<br />
FontBold<br />
FontBold=[True|False]<br />
FontBold sets the font to Bold (True) or Regular (False) for this object.<br />
The default value for FontBold is False.<br />
The FontBold setting applies to all objects.<br />
FontSize<br />
FontSize=n<br />
FontSize sets the font size for this object.<br />
The value of n can be an integer or decimal number. The default value is 8.25.<br />
The FontSize setting applies to all objects.
Configuring a Custom Form 81<br />
ForeColor<br />
ForeColor=n<br />
ForeColor sets the text color for each of the objects used. Color values range from<br />
0 to 15. See “Color” on page 13 for a table that correlates a number to a color.<br />
Valid settings for ForeColor are 0-15. The default is 0, which is black.<br />
The ForeColor setting applies to all objects except command buttons.<br />
Height<br />
Height=n<br />
Height specifies the height of the object. For Label, it is the maximum height of<br />
text that will show without being clipped off. Some objects have a minimum<br />
height. This is set by default.<br />
The value of n must be an integer. The default value is 10 or the objects minimum<br />
height.<br />
Assign a Height setting for the following object types: Button, Label, TextField,<br />
MaskTextField, ListField, and CheckBox.<br />
Left<br />
Mask<br />
Left=n<br />
Left specifies the left position of the object relative to the form.<br />
The value of n must be an integer. The default value is 0.<br />
Left applies to all objects.<br />
Mask=mask string<br />
Use the Mask setting a mask for data input into a MaskTextField. If you define a<br />
Mask, do not define the Contents setting with a CNPn and C(n).<br />
The default setting is a blank string (“”).<br />
The Mask setting applies to the MaskTextField object type.
82 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
MultiDelimiter<br />
MultiDelimiter=string<br />
MultiDelimiter defines the delimiter used between items if multiple items are<br />
selected. <strong>Vlterm</strong> inserts the MultiDelimiter string before each selected item, even<br />
if only one item is selected. If MultiDelimiter is left blank, <strong>Vlterm</strong> uses no<br />
characters between items within the object passed to the VARn. If you want to use<br />
a space as a delimiter, define MultiDelimiter=“ ” (quotation marks “ ” with a space<br />
between them).<br />
The default value for MultiDelimiter is a blank string (“”).<br />
The MultiDelimiter setting applies to the ListField object type.<br />
Object<br />
Object=string<br />
Object assigns a name to the contents of this object. With this object name, you<br />
can transfer the contents of this object to a vlterm script during a Button Action.<br />
Place the Object value in the Parameter setting for the Button. See “Action” on<br />
page 79 and “Parameters” on page 82 for more information.<br />
The default value for Object is a blank string (“”).<br />
The Object setting applies to the Label, TextField, MaskTextField, ComboField,<br />
ListField, and CheckBox object types.<br />
Parameters<br />
Parameters=Objectn<br />
Use the Parameters option to define the data (typically the Contents value for an<br />
object) that the form passes to the <strong>Vlterm</strong> script using variables (VARn). In the<br />
Parameters option, list the objects that you want placed in variables. To access the<br />
objects in a script, use a VARn in a PASTE_CMD command. If you don’t use a<br />
VARn in PASTE_CMD, <strong>Vlterm</strong> loads the object into a variable but never<br />
references it, then replaces the VARn value the next time the form object is used.<br />
The Action setting identifies the CNPn script that uses the variables identified in<br />
Parameters. See “Action” on page 79 for more information.<br />
The sequence of objects in the Parameters list determines the VARn to which<br />
they’re assigned. For example, the first object in the Parameters list corresponds<br />
to VAR1; the second object in the parameters list corresponds to VAR2.
Configuring a Custom Form 83<br />
For each object that you include in the Parameters list, define the Object setting in<br />
the corresponding Objectn section. Typically, you’ll use the Object section name<br />
as the Object setting. For example, to include the value of Object7 in the<br />
parameters list, set Object=Object7 in the [Object7] section. See the previous<br />
section, “Object,” for more information.<br />
In the Parameters value, use a tilde (~) to separate the object names to define more<br />
than one object. For example:<br />
Parameters=Object4~Object6~Object7~Object8<br />
The default value for Parameters is a blank string (“”). Parameters is a required<br />
entry.<br />
The Parameters setting applies to the Button and CheckBox object types.<br />
Password<br />
Password=[{Y|True}|{N|False}]<br />
The Password option, when the value is Y or true, sets a TextField object to<br />
display asterisks (*) as text is entered. Use this setting for a password or ID in<br />
login forms.<br />
Acceptable values of Password are Y, N, True, or False. The default setting is Y.<br />
Apply the Password setting to TextField objects.<br />
PasteIndex<br />
PasteIndex=n<br />
The value of n can be 1 to the total number of objects for the form.<br />
Required<br />
Required=[{Y|True}|{N|False}]<br />
Required sets the TextField object to Required before exiting the form.<br />
Acceptable values of Required are Y, N, True, or False. The default setting is Y.<br />
Apply the Required setting to TextField objects.
84 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
SQLContents<br />
SQLContents=[db name with path~db type~select statement]<br />
The contents are placed in the ListField or ComboField objects as selectable<br />
items. Each item of each field that is returned is parsed and placed in the list on its<br />
own line unless you use UseContentsData. (See “UseContentsData” on page 85<br />
for more information.)<br />
Example<br />
SQLContents=H:\CUSTOMER\DB~FoxPro 2.0;~select Value, code as<br />
ID from config<br />
The default value for SQLContents is empty.<br />
Use SQLContents with ListField and ComboField object types.<br />
TabIndex<br />
TabIndex=n<br />
TabIndex determines the order in which a Tab keystroke sets the focus to this<br />
object in relation to other objects with a TabIndex value.<br />
Set the value of n from 1 to the total number of objects on the form.<br />
TabIndex applies to all object types.<br />
Top<br />
Type<br />
Top=n<br />
The Top position of the object relative to the form.<br />
The value of n is an integer. The default value is 0.<br />
Top applies to all object types.<br />
Type=[Button|Label|TextField|MaskTextField|ComboField|ListField|CheckBox]<br />
Type identifies the type of object being configured. Each object type has<br />
configurations settings that are common with all other object types and<br />
configuration settings that are specific to that object. For ComboField, a single<br />
line with a pull-down ListField, all options are viewable unless the object height<br />
is insufficient, then a scroll bar appears.
Type does not have a default value. Type is a required setting.<br />
The Type option applies to all object types.<br />
Configuring a Custom Form 85<br />
UseContentsData<br />
UseContentsData=[{Y|True}|{N|False}]<br />
If you set UseContentsData to Y, the incoming Contents data is paired. The first is<br />
the display string; the second is the data string. For example, if Contents is<br />
“ID~1234~Name~Wally Smith,” the ListField or ComboField would display ID<br />
and Name, and the data associated with them would be 1234 and Wally Smith. See<br />
“Contents” on page 80 for more information.<br />
Acceptable values of UseContentsData are Y, N, True, or False. The default<br />
setting is N.<br />
Apply the UseContentsData setting to ListField and ComboField objects.<br />
Value<br />
Width<br />
Value={0|1|2}<br />
The Value setting determines the initial state of a CheckBox object.<br />
Setting Initial CheckBox Value<br />
0 Cleared (not selected)<br />
1 Selected (checked)<br />
2 Gray (CheckBox doesn’t accept input)<br />
The final CheckBox setting is passed back through the object property to the script<br />
section that called the form.<br />
Width=n<br />
Width sets the width of the object being loaded. For Label, it is the maximum<br />
width of text that can appear before being truncated.<br />
Set the value of n to an integer. The default value is 10 or the object’s minimum<br />
width.<br />
Apply the Width setting to all object types.
86 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Sample Form1.ini File<br />
[GLOBAL]<br />
WindowTitle=Customer Information<br />
WindowStyle=1<br />
NumObjects=8<br />
UserSetSize=N<br />
Position=0,7045,11985,1615<br />
ControlFocus=<br />
UnloadOtherForms=All<br />
MinButton=N<br />
MaxButton=N<br />
;This object is a button which has the text OK in it. When it<br />
is pressed, CNP24 is executed, and the form closes. It will<br />
pass four parameters to CNP24. The Object4 parameter refers<br />
to the contents of Object four on this form. It is passed to<br />
the CNP24 script as VAR1. Additional parameters would be VAR2,<br />
etc.<br />
[Object1]<br />
Type=Button<br />
Caption=OK<br />
Action=CNP24<br />
Parameters=Object4~Object6~Object7~Object8<br />
Cancel=N<br />
CloseForm=Y<br />
Left=700<br />
Top=5<br />
Width=<br />
Height=<br />
FontBold=Y<br />
FontSize=8.25<br />
[Object2]<br />
Type=Button
Caption=Cancel<br />
Action=<br />
Parameters=<br />
Cancel=Y<br />
CloseForm=Y<br />
Left=700<br />
Top=30<br />
Width=<br />
Height=<br />
FontBold=Y<br />
FontSize=8.25<br />
[Object3]<br />
Type=Label<br />
Caption=Account Num:<br />
Left=10<br />
Top=5<br />
Width=100<br />
Height=20<br />
FontBold=True<br />
FontSize=8.25<br />
ForeColor=0<br />
[Object4]<br />
Type=TextField<br />
Object=Object4<br />
Password=<br />
Contents=CNP27~C(1)<br />
Required=<br />
Left=100<br />
Top=5<br />
Width=350<br />
Height=<br />
Configuring a Custom Form 87
88 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
[Object5]<br />
Type=Label<br />
Caption=Date:<br />
Left=10<br />
Top=25<br />
Width=100<br />
Height=20<br />
FontBold=True<br />
FontSize=<br />
ForeColor=12<br />
[Object6]<br />
Type=MaskTextField<br />
Object=Object6<br />
Contents=<br />
Required=Y<br />
Mask=##/##/##<br />
Left=100<br />
Top=25<br />
Width=350<br />
Height=10<br />
FontBold=True<br />
FontSize=<br />
ForeColor=0<br />
[Object7]<br />
Type=ListField<br />
Object=Object7<br />
Contents=Home~Work~Cellular<br />
Contents=Fax~Pager<br />
Left=460<br />
Top=5<br />
Width=200<br />
Height=50
FontBold=True<br />
FontSize=8.25<br />
ForeColor=0<br />
MultiDelimiter=,<br />
[Object8]<br />
Type=ComboField<br />
Object=Object8<br />
UseContentsData=Y<br />
Contents=Red~1<br />
Contents=Yellow~2<br />
Contents=Green~3<br />
Contents=Blue~4<br />
Left=460<br />
Top=50<br />
Width=200<br />
FontBold=True<br />
FontSize=12<br />
ForeColor=12<br />
Configuring a Custom Form 89
90 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
Using the Format Function A<br />
The Format command displays a number, date, time, or string according to<br />
instructions contained in the format expression. The FORMAT command syntax<br />
is:<br />
FORMAT(fmt)<br />
The format expression (fmt) can be a commonly used format name or a string of<br />
display-format characters that specify how <strong>Vlterm</strong> displays the data. You can’t use<br />
different format expression types (numeric, date/time, or string) in a single (fmt)<br />
argument.<br />
The content in this appendix was adapted from the Microsoft Visual Basic Online<br />
Help.<br />
Numeric Formats<br />
To format numbers, you can use predefined formats or you can create user-defined<br />
formats with standard characters that have special meaning in a format expression.<br />
91
92 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Predefined Numeric Formats<br />
The following table shows the predefined numeric format names you can use.<br />
Format name Description<br />
General Number Displays the number as is, without thousand separators.<br />
Currency Displays the number with a thousand separator. If appropriate,<br />
displays negative numbers enclosed in parentheses; displays two<br />
digits to the right of the decimal separator.<br />
Fixed Displays at least one digit to the left and two digits to the right of<br />
the decimal separator.<br />
Standard Displays the number with a thousand separator and, if appropriate,<br />
displays two digits to the right of the decimal separator.<br />
Percent Displays the number multiplied by 100 with a percent sign (%)<br />
appended to the right; displays two digits to the right of the decimal<br />
separator.<br />
Scientific Uses standard scientific notation.<br />
Yes/No Displays No if number is 0, otherwise displays Yes.<br />
True/False Displays False if number is 0, otherwise displays True.<br />
On/Off Displays Off if number is 0, otherwise displays On.
User-Defined Numeric Formats<br />
Using the Format Function 93<br />
The following table lists the characters you can use to create user-defined number<br />
formats.<br />
Character Meaning<br />
Null string Display the number with no formatting.<br />
0 Digit placeholder. Display a digit or a zero. If there is a digit in the<br />
expression in the position where the 0 appears in the format string,<br />
display it; otherwise, display a zero in that position. If the number<br />
being formatted has fewer digits than there are zeros (on either side<br />
of the decimal) in the format expression, display leading or trailing<br />
zeros. If the number has more digits to the right of the decimal<br />
separator than there are zeros to the right of the decimal separator<br />
in the format expression, round the number to as many decimal<br />
places as there are zeros. If the number has more digits to the left of<br />
the decimal separator than there are zeros to the left of the decimal<br />
separator in the format expression, displays the extra digits without<br />
modification.<br />
# Digit placeholder. Display a digit or a blank space. If there is a digit<br />
in the expression where the # appears in the format string, display<br />
it; otherwise, display nothing in that position. This symbol works<br />
like the 0 digit placeholder, except that leading and trailing zeros<br />
aren’t displayed if the number has the same or fewer digits than<br />
there are # characters on either side of the decimal separator in the<br />
format expression.<br />
. (period) Decimal placeholder. The decimal placeholder determines how<br />
many digits are displayed to the left and right of the decimal<br />
separator. If the format expression contains only number signs to<br />
the left of this symbol, numbers smaller than 1 begin with a<br />
decimal separator. If you want a leading zero to always appear with<br />
fractional numbers, use 0 as the first digit placeholder to the left of<br />
the decimal separator. The actual character used as a decimal<br />
placeholder in the formatted output depends on the specified<br />
Number Format in the International section of the Microsoft<br />
Windows Control Panel. Some countries use a comma as the<br />
decimal separator.<br />
% Percentage placeholder. The expression is multiplied by 100. The<br />
percent character (%) is inserted in the position where it appears in<br />
the format string.
94 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Character Meaning<br />
, (comma) Thousand separator. The thousand separator separates thousands<br />
from hundreds within a number that has four or more places to the<br />
left of the decimal separator. Standard use of the thousand separator<br />
is specified if the format contains a comma surrounded by digit<br />
placeholders (0 or #). Two adjacent commas or a comma<br />
immediately to the left of the decimal separator (whether or not a<br />
decimal is specified) means to scale the number by dividing it by<br />
1000, rounding as needed. You can scale large numbers using this<br />
technique. For example, you can use the format string “##0,,” to<br />
represent 100 million as 100. Numbers smaller than 1 million are<br />
displayed as 0. Two adjacent commas in any position other than<br />
immediately to the left of the decimal separator are treated simply<br />
as a thousand separator. The actual character used as the thousand<br />
separator in the formatted output depends on the specified Number<br />
Format in the International section of the Control Panel. Some<br />
countries use a period as the thousand separator.<br />
E- E+ e- e+ Scientific format. If the format expression contains at least one digit<br />
placeholder (0 or #) to the right of E-, E+, e-, or e+, the number is<br />
displayed in scientific format and E or e is inserted between the<br />
number and its exponent. The number of digit placeholders to the<br />
right determines the number of digits in the exponent. Use E- or eto<br />
place a minus sign next to negative exponents. Use E+ or e+ to<br />
place a minus sign next to negative exponents and a plus sign next<br />
to positive exponents.<br />
: (colon) Time separator. The time separator separates hours, minutes, and<br />
seconds when time values are formatted. The actual character used<br />
as the time separator depends on the specified Time Format in the<br />
International section of the Control Panel.
Character Meaning<br />
Using the Format Function 95<br />
/ Date separator. The date separator separates the day, month, and<br />
year when date values are formatted. The actual character used as<br />
the date separator in the formatted output depends on the specified<br />
Date Format in the International section of the Control Panel.<br />
- + $ ( ) space Display a literal character. To display a character other than one of<br />
those listed, precede it with a backslash (\) or enclose it in quotation<br />
marks (“”).<br />
\ Display the next character in the format string. Many characters in<br />
the format expression have a special meaning and can’t be<br />
displayed as literal characters unless they are preceded by a<br />
backslash. <strong>Vlterm</strong> doesn’t display the backslash itself. Using a<br />
backslash is the same as enclosing the next character in quotation<br />
marks (“”). To display a backslash, use two backslashes (\\).<br />
Examples of characters that can’t be displayed as literal characters<br />
unless they are preceded by a backslash are the date- and timeformatting<br />
characters (a, c, d, h, m, n, p, q, s, t, w, y, and /:), the<br />
numeric-formatting characters (#, 0, %, E, e, comma, and period),<br />
and the string-formatting characters (@, &,, and !). “ABC”<br />
displays the string inside the quotation marks.<br />
Unless the (fmt) argument contains a predefined format, a format expression for<br />
numbers can have from one to four sections separated by semicolons.<br />
If you use The result is<br />
One section only The format expression applies to all values.<br />
Two sections The first section applies to positive values and zeros, the second to<br />
negative values.<br />
Three sections The first section applies to positive values, the second to negative<br />
values, and the third to zeros.<br />
Four sections The first section applies to positive values, the second to negative<br />
values, the third to zeros, and the fourth to null values.<br />
The following example has two sections: the first defines the format for positive<br />
values and zeros; the second section defines the format for negative values.<br />
“$#,##0;($#,##0)”
96 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
If you include semicolons with nothing between them, the missing section is<br />
displayed using the format of the positive value. For example, the following<br />
format displays positive and negative values using the format in the first section<br />
and displays “Zero” if the value is zero.<br />
“$#,##0;;\Z\e\r\o”<br />
Some sample format expressions for numbers are shown in the following table.<br />
(These examples all assume that the Country setting in the International section of<br />
the Control Panel is United States.) The first column contains the format strings.<br />
The other columns contain the output that results if the formatted data has the<br />
value given in the column headings.<br />
Format (fmt) Positive 5 Negative 5 Decimal .5 Null<br />
Null string 5 -5 0.5<br />
0 5 -5 1<br />
0.00 5.00 -5.00 0.50<br />
#,##0 5 -5 1<br />
#,##0.00;;;Nil 5.00 -5.00 0.50 Nil<br />
$#,##0;($#,##0) $5 ($5) $1<br />
$#,##0.00;($#,##0.00) $5.00 ($5.00) $0.50<br />
0% 500% -500% 50%<br />
0.00% 500.00% -500.00% 50.00%<br />
0.00E+00 5.00E+00 -5.00E+00 5.00E-01<br />
0.00E-00 5.00E00 -5.00E00 5.00E-01<br />
Date and Time Formats<br />
Numbers can also be used to represent date and time information. You can format<br />
date and time serial numbers using date and time formats or number formats<br />
because date and time serial numbers are stored as floating-point values. To<br />
format dates and times, use either the commonly used formats or create userdefined<br />
time formats using standard characters that have special meaning in a<br />
format expression.
Predefined Date and Time Formats<br />
The following table lists the predefined data format names.<br />
Format Name Description<br />
User-Defined Date and Time Formats<br />
Using the Format Function 97<br />
General Date Display a date or time or both. For real numbers, display a date and<br />
time; for example, 4/3/93 05:34 PM. If there is no fractional part,<br />
display only a date; for example 4/3/93. If there is no integer part,<br />
display time only; for example, 05:34 PM.<br />
Long Date Display a Long Date, as defined in the International section of the<br />
Control Panel.<br />
Medium Date Display a date in the same form as the Short Date, as defined in the<br />
International section of the Control Panel, except spell out the<br />
month abbreviation.<br />
Short Date Display a Short Date, as defined in the International section of the<br />
Control Panel.<br />
Long Time Display a Long Time, as defined in the International section of the<br />
Control Panel. Long Time includes hours, minutes, and seconds.<br />
Medium Time Display time in 12-hour format using hours and minutes and the<br />
AM/PM designator.<br />
Short Time Display a time using the 24-hour format, for example 17:45.<br />
The following table lists the characters you can use to create user-defined date and<br />
time formats.<br />
Character Meaning<br />
c Display the date as ddddd and display the time as ttttt, in that order.<br />
Only date information is displayed if there is no fractional part to<br />
the date serial number; only time information is displayed if there is<br />
no integer portion.<br />
d Display the day as a number without a leading zero (1-31).<br />
dd Display the day as a number with a leading zero (01-31).<br />
ddd Display the day as an abbreviation (Sun-Sat).<br />
dddd Display the day as a full name (Sunday-Saturday).
98 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Character Meaning<br />
ddddd Display a date serial number as a complete date (including day,<br />
month, and year) formatted according to the Short Date setting in<br />
the International section of the Windows Control Panel. The default<br />
ShortDateformatism/d/yy.<br />
dddddd Display a date serial number as a complete date (including day,<br />
month, and year) formatted according to the Long Date setting in<br />
the International section of the Control Panel. The default Long<br />
Date format is mmmm dd, yyyy.<br />
w Display the day of the week as a number (1 for Sunday through 7<br />
for Saturday.)<br />
ww Display the week of the year as a number (1-52).<br />
m Display the month as a number without a leading zero (1-12). If m<br />
immediately follows h or hh, the minute rather than the month is<br />
displayed.<br />
mm Display the month as a number with a leading zero (01-12). If m<br />
immediately follows h or hh, the minute rather than the month is<br />
displayed.<br />
mmm Display the month as an abbreviation (Jan-Dec).<br />
mmmm Display the month as a full month name (January-December).<br />
q Display the quarter of the year as a number (1-4).<br />
y Display the day of the year as a number (1-366).<br />
yy Display the year as a two-digit number (00-99).<br />
yyyy Display the year as a four-digit number (100-9999).<br />
h Display the hour as a number without leading zeros (0-23).<br />
hh Display the hour as a number with leading zeros (00-23).<br />
n Display the minute as a number without leading zeros (0-59).<br />
nn Display the minute as a number with leading zeros (00-59).<br />
s Display the second as a number without leading zeros (0-59).<br />
ss Display the second as a number with leading zeros (00-59).
Character Meaning<br />
Using the Format Function 99<br />
t t t t t Display a time serial number as a complete time (including hour,<br />
minute, and second) formatted using the time separator defined by<br />
the time Format in the International section of the Control Panel. A<br />
leading zero is displayed if the Leading Zero option is selected and<br />
the time is before 10:00 A.M. or P.M. The default time format is<br />
h:mm:ss.<br />
AM/PM Use the 12-hour clock and display an uppercase AM with any hour<br />
before noon; display an uppercase PM with any hour between noon<br />
and 11:59 PM.<br />
am/pm Use the 12-hour clock and display a lowercase am with any hour<br />
before noon; display a lowercase pm with any hour between noon<br />
and 11:59 PM.<br />
A/P Use the 12-hour clock and display an uppercase A with any hour<br />
before noon; display an uppercase P with any hour between noon<br />
and 11:59 PM.<br />
a/p Use the 12-hour clock and display a lowercase a with any hour<br />
before noon; display a lowercase p with any hour between noon<br />
and 11:59 PM.<br />
AMPM Use the 12-hour clock and display the contents of the 1159 string<br />
(s1159) in the win.ini file with any hour before noon; display the<br />
contents of the 2359 string (s2359) with any hour between noon<br />
and 11:59 PM. AMPM can be either uppercase or lowercase, but<br />
the case of the string displayed matches the string as it exists in the<br />
win.ini file. The default format is AM/PM.<br />
The following are examples of user-defined date and time formats.<br />
Format Display<br />
m/d/yy 12/7/58<br />
d-mmmm-yy 7-December-58<br />
d-mmmm 7-December<br />
mmmm-yy December 58<br />
hh:mm AM/PM 08:50 PM<br />
h:mm:ss a/p 8:50:35 p
100 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Format Display<br />
h:mm 20:50<br />
h:mm:ss 20:50:35<br />
m/d/yy h:mm 12/7/58 20:50<br />
String Formats<br />
Strings can also be formatted with Format[$]. A format expression for strings can<br />
have one section or two sections separated by a semicolon.<br />
If you use The result is<br />
One section only The format applies to all string data.<br />
Two sections The first section applies to string data, the second to Null values<br />
and zero-length strings.<br />
You can use any of the following characters to create a format expression for<br />
strings.<br />
Character Meaning<br />
@ Character placeholder. Display a character or a space. If there is a<br />
character in the string being formatted in the position where the @<br />
appears in the format string, display it; otherwise, display a space in that<br />
position. Placeholders are filled from right to left unless there is an !<br />
character in the format string.<br />
& Character placeholder. Display a character or nothing. If there is a<br />
character in the string being formatted in the position where the &<br />
appears, display it; otherwise, display nothing. Placeholders are filled<br />
from right to left unless there is an ! character in the format string.<br />
< Force lowercase. All characters are displayed in lowercase format.<br />
> Force uppercase. All characters are displayed in uppercase format.<br />
! Force placeholders to fill from left to right instead of right to left.
Using the SendKeys Function B<br />
The <strong>Vlterm</strong> SendKeys function is an adaptation of the SendKeys methodology.<br />
<strong>Vlterm</strong> SendKeys sends a single keystroke or multiple keystrokes to the active<br />
window as if they had been entered at the keyboard.<br />
<strong>Vlterm</strong> can send keystrokes to any Windows application as long as the receiving<br />
window is en emulation window to which <strong>Vlterm</strong> links during startup. The<br />
emulator must accept keystrokes from a source other than the keyboard. Use the<br />
SendKeys method to send information during cut and paste to a window that does<br />
not support DDE server.<br />
You can use the following <strong>Vlterm</strong> script commands with the SendKeys<br />
methodology:<br />
Cut Commands<br />
• ClipCut<br />
Paste Commands<br />
• SendKeys<br />
• ClipGet<br />
• ClipSet<br />
• ClipCopyBlock<br />
The content in this appendix was adapted from the Microsoft Visual Basic Online<br />
Help.<br />
101
102 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Sample Configuration<br />
The following sample shows a vlterm.ini file set up to use SendKeys.<br />
[SHELL]<br />
HTERM0=C:\win95\telnet.exe zurabi<br />
S_DELAY0=3<br />
HTERM1=notepad.exe c:\win95\config.txt<br />
S_DELAY1=3<br />
[WIN_TITLE]<br />
HWIN0=Telnet - zurabi<br />
HWIN1=config.txt - Notepad<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=<br />
HOST_TOPIC0=<br />
HOST_ITEM0=<br />
USE_DDE0=N<br />
DDE_CONFIG_SESSION0=<br />
DDE_DELAY1=3<br />
HOST_SERVER1=<br />
HOST_TOPIC1=<br />
HOST_ITEM1=<br />
USE_DDE1=N<br />
DDE_CONFIG_SESSION1=<br />
[CNP1]<br />
CNP_NAME=<br />
CUT_SESSION=0<br />
PASTE_SESSION=1
Usage<br />
CNP_TYPE=2<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=1<br />
CUT_CMD1=ClipCut(%ea%ec~(19,9,10))<br />
PASTE_CMD1=SendKeys=C(1)<br />
Using the SendKeys Function 103<br />
Each key on a keyboard is represented by one or more characters. To specify a<br />
single keyboard character, use the character itself. For example, to represent the<br />
letter A, use “A” for keytext (the string you use with the SendKeys command). If<br />
you want to represent more than one character, append each additional character<br />
to the one preceding it. To represent the letters A, B, and C, use “ABC” for<br />
keytext.<br />
The plus sign (+), caret (^), percent sign (%), tilde (~), and parentheses ( ) have<br />
special meanings to SendKeys. To specify one of these characters, enclose it in<br />
braces. For example, to specify the plus sign, use {+}. Brackets ([ ]) have no<br />
special meaning to SendKeys, but you must enclose them in braces because, in<br />
other applications, brackets do have special meaning that may be significant when<br />
dynamic data exchange (DDE) occurs. To send brace characters, use {{} and {}}.<br />
To specify characters that your system doesn’t display when you press a key (such<br />
as Enter or Tab) and keys that represent actions rather than characters, use the<br />
codes shown in the following table.<br />
Key Code Key Code<br />
Backspace {BACKSPACE} or {BS}<br />
or {BKSP}<br />
Break {BREAK}<br />
Caps Lock {CAPSLOCK} Clear {CLEAR}<br />
Del {DELETE} or {DEL} Down Arrow {DOWN}<br />
End {END} Enter {ENTER} or ~<br />
Esc {ESCAPE} or {ESC} Help {HELP}<br />
Home {HOME} Ins {INSERT}<br />
Left Arrow {LEFT} Num Lock {NUMLOCK}<br />
Page Down {PGDN} Page Up {PGUP}
104 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Key Code Key Code<br />
Print Screen {PRTSC} Right Arrow {Right}<br />
Scroll Lock {SCROLLLOCK} Tab {TAB}<br />
Up Arrow {UP} F1 {F1}<br />
F2 {F2} F3 {F3}<br />
F4 {F4} F5 {F5}<br />
F6 {F6} F7 {F7}<br />
F8 {F8} F9 {F9}<br />
F10 {F10} F11 {F11}<br />
F12 {F12} F13 {F13}<br />
F14 {F14} F15 {F15}<br />
F16 {F16}<br />
To specify keys used with any combination of the Shift, Ctrl, and Alt keys, precede<br />
the regular key code with one or more of the following codes.<br />
Key Code<br />
Shift +<br />
Control ^<br />
Alt %<br />
To specify that Shift, Ctrl, or Alt should be held down while other keys are<br />
pressed, enclose the key codes in parentheses. For example, to have the Shift key<br />
held down while E and C are pressed, use “+(EC).” To have Shift held down while<br />
E is pressed, followed by C being pressed without Shift, use “+EC.” To specify<br />
repeating keys, use the format {key number}; you must put a space between key<br />
and number. For example, {LEFT 42} represents pressing the Left Arrow key 42<br />
times; {h 10} represents pressing h ten times.<br />
NOTE SendKeys can’t send keystrokes to an application that is not designed to<br />
run in Microsoft Windows. Sendkeys also can’t send the Print Screen (PRTSC)<br />
key to any application.
Using the Like Operator C<br />
Use the Like operator to compare two string expressions. The syntax for the Like<br />
operator is:<br />
result=expression Like pattern<br />
If the expression matches the pattern, then the result is True; if there is no match,<br />
the result is False. If either the expression or the pattern is a Null, the result is also<br />
aNull.<br />
The case sensitivity and character sort order of the Like operator depend on the<br />
Option Compare statement. Unless otherwise specified, the default string<br />
comparison method for each module is Option Compare Binary; that is, string<br />
comparisons are case sensitive.<br />
Built-in pattern matching provides a versatile tool for string comparisons. The<br />
pattern-matching features allow you to use wildcard characters, such as those<br />
recognized by the operating system, to match strings. The wildcard characters and<br />
what they match are shown in the following table.<br />
Wildcard Character Matches in expression<br />
? Any single character<br />
* Zero or more characters<br />
# Any single digit (0–9)<br />
[charlist] Any single character in charlist<br />
[!charlist] Any single character not in charlist<br />
You can group one or more characters (charlist) enclosed in brackets ([ ]) to match<br />
any single character in the expression. Charlist can include almost any characters<br />
in the ANSI character set, including digits. The special characters left bracket ([ ),<br />
question mark (?), number sign (#), and asterisk (*) can be used to match<br />
105
106 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
themselves directly only by enclosing them in brackets. The right bracket ( ])<br />
cannot be used within a group to match itself, but it can be used outside a group<br />
as an individual character.<br />
In addition to a simple list of characters enclosed in brackets, charlist can specify<br />
a range of characters. Use a hyphen (-) to separate the upper and lower bounds of<br />
the range. For example, [A-Z] in pattern results in a match if the corresponding<br />
character position in an expression contains any of the uppercase letters in the<br />
range A through Z. Multiple ranges are included within the brackets without any<br />
delimiter. For example, [a-zA-Z0-9] matches any alphanumeric character.<br />
The following list contains other important rules for pattern matching:<br />
• An exclamation point (!) at the beginning of charlist means that a match is<br />
made if any character except the ones in charlist are found in expression.<br />
When used outside brackets, the exclamation point matches itself.<br />
• You can use a hyphen (-) either at the beginning (after an exclamation mark,<br />
if one is used) or at the end of charlist to match itself. In any other location,<br />
the hyphen is used to identify a range of ANSI characters.<br />
• When you specify a range of characters, they must appear in ascending sort<br />
order (from lowest to highest). [A-Z] is a valid pattern, but [Z-A] is not.<br />
• The character sequence [ ] is ignored; it is considered a zero-length string.<br />
In some languages, there are special characters in the alphabet that actually<br />
represent two separate characters. For example, several languages use the<br />
character “Ê” to represent the characters “a” and “e” when they appear together.<br />
The Like operator recognizes that the single special character and the two<br />
individual characters are equivalent. When a language that uses a special character<br />
is specified in the win.ini file (sLanguage), an occurrence of the special single<br />
character in either pattern or expression matches the equivalent two-character<br />
sequence in the other string. Similarly, a special single character in pattern<br />
enclosed in brackets (by itself, in a list, or in a range), matches the equivalent twocharacter<br />
sequence in expression.<br />
The content in this appendix was adapted from the Microsoft Visual Basic Online<br />
Help.
Emulator Special @x Keys D<br />
When you use the DDE connection type, you can send the special characters<br />
identified in the following table to the corresponding emulator. Send these<br />
character sequences using the PASTE_CMDn=Varn or PASTE_CMDn=@A<br />
commands.<br />
Special keystroke<br />
to send<br />
Equivalent<br />
<strong>Vlterm</strong><br />
command to<br />
script<br />
EXTRA!<br />
3270<br />
Irma<br />
3270<br />
Rumba<br />
3270<br />
Rumba<br />
5250<br />
@ @@ X X X<br />
Alt @A X X X<br />
Attention @A@Q X X<br />
Backspace @< X X X X<br />
Backtab (Left Tab) @B X X X X X<br />
Caps Lock @Y X<br />
Clear @C X X X X<br />
Rumba<br />
VAX<br />
Cmd Function Key @A@Y X =Control<br />
Key<br />
Copy @K X<br />
Cursor Down @V X X X<br />
Cursor Left @L X X X<br />
Cursor Right @Z X X X<br />
Cursor Select @A@J X<br />
Cursor Up @U X X X X<br />
107
108 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Special keystroke<br />
to send<br />
Equivalent<br />
<strong>Vlterm</strong><br />
command to<br />
script<br />
Delete Char @D X X X<br />
Dup @S@X X X<br />
End @q X<br />
Enlarge @M X<br />
Enter @E X X X X X<br />
Erase EOF @F X X X<br />
Erase Input @A@F X X =Remove<br />
Field + @A@+ X =Next<br />
Screen<br />
Field - @A@- X =Previous<br />
Screen<br />
Field Exit @A@E X =Find<br />
Field Mark @S@y X =Select<br />
Finish (Quit) @Q X<br />
Help @H X X<br />
Hexadecimal @A@X X =Compose<br />
Home @0 (zero) X X x X<br />
Insert @I X X X X<br />
Insert Toggle @A@I X<br />
Jump @J X<br />
Left Tab (Backtab) @B X X X X X<br />
Local Print @P X X<br />
New Line @N X<br />
Not Used @W X<br />
EXTRA!<br />
3270<br />
Irma<br />
3270<br />
Rumba<br />
3270<br />
Rumba<br />
5250<br />
Rumba<br />
VAX<br />
PA1 @x X X X =PF1<br />
PA2 @y X X X =PF2<br />
PA3 @z X X X =PF3
Special keystroke<br />
to send<br />
Equivalent<br />
<strong>Vlterm</strong><br />
command to<br />
script<br />
EXTRA!<br />
3270<br />
Irma<br />
3270<br />
Emulator Special @x Keys 109<br />
PA4 @+ X =PF4<br />
PA5 @% X<br />
PA6 @& X<br />
PA7 @ X<br />
PA8 @( X<br />
PA9 @) X<br />
PA10 @* X<br />
Rumba<br />
3270<br />
Page Down @v X<br />
Page Up @u X<br />
Rumba<br />
5250<br />
Rumba<br />
VAX<br />
PF1 @1 X X X X =F1<br />
PF2 @2 X X X X =F2<br />
PF3 @3 X X X X =F3<br />
PF4 @4 X X X X =F4<br />
PF5 @5 X X X X =F5<br />
PF6 @6 X X X X =F6<br />
PF7 @7 X X X X =F7<br />
PF8 @8 X X X X =F8<br />
PF9 @9 X X X X =F9<br />
PF10 @a X X X X =F10<br />
PF11 @b X X X X =F11<br />
PF12 @c X X X X =F12<br />
PF13 @d X X X X =F13<br />
PF14 @e X X X X =F14<br />
PF15 @f X X X X =F15<br />
PF16 @g X X X X =F16<br />
PF17 @h X X X X =F17
110 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Special keystroke<br />
to send<br />
Equivalent<br />
<strong>Vlterm</strong><br />
command to<br />
script<br />
PF18 @i X X X X =F18<br />
PF19 @j X X X X =F19<br />
PF20 @k X X X X =F20<br />
PF21 @l X X X X<br />
PF22 @m X X X X<br />
PF23 @n X X X X<br />
PF24 @o X X X X<br />
Print @P X X<br />
Print (PC) @A@t X<br />
Record Backspace @A@< X<br />
Reserved @X X<br />
EXTRA!<br />
3270<br />
Irma<br />
3270<br />
Reset @R X X X X<br />
Right Tab (Tab) @T X X X X X<br />
Shift @S X X<br />
Rumba<br />
3270<br />
Sys Request @A@H X X<br />
Tab @T X X X X X<br />
Test @A@c X<br />
Rumba<br />
5250<br />
Rumba<br />
VAX
ASCII and VT100 Control<br />
E<br />
Sequences<br />
ASCII Characters<br />
Unix host systems, such as the Mosaix system, interpret the following key<br />
sequences to control screen or cursor movement.<br />
ASCII Sequence Action<br />
^H Backspace<br />
^I Tab<br />
^J Line Feed<br />
^M Carriage Return<br />
^[ Escape<br />
Numeric Pad<br />
There are a number of DEC escape codes to change many areas of terminal<br />
operation such as keyboard, cursor, and display control. All of the DEC escape<br />
sequences may not be supported by the application handling VT emulation. The<br />
following table contains examples of common codes you can use.<br />
Escape Code<br />
^[P PF1<br />
^[Q PF2<br />
^[R PF3<br />
^[S PF4<br />
VT100 Keyboard<br />
Equivalent<br />
111
112 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
Emulator Specifics F<br />
This appendix contains descriptions and samples of various emulator packages<br />
that<br />
Attachmate<br />
<strong>Vlterm</strong> supports several emulators offered by Attachmate Corporation.<br />
Netware LAN WS<br />
This section pertains to Attachmate Netware LAN WS 1.2 (previously offered by<br />
Novell).<br />
<strong>Vlterm</strong> communicates to Netware LAN using an intermediary program called<br />
ntwrdrv.exe. <strong>Vlterm</strong> uses DDE to communicate to ntwrdrv.exe, and ntwrdrv.exe<br />
communicates to Netware LAN using HLLAPI.<br />
HLLAPI is required because the Attachmate application doesn’t support DDE<br />
server and doesn’t accept the SendKeys() command, which simulates keystrokes<br />
to perform a host record lookup during cut and paste.<br />
<strong>Vlterm</strong>.ini Settings for Netware LAN WS<br />
[SHELL]<br />
HTERM1=c:\3270wks\wslanwin.exe c:\3270wks\lanws.wsc<br />
HTERM2=c:\Program Files\<strong>Vlterm</strong>\ntwrdrv.exe /SN=A /Debug=Off<br />
[WIN_TITLE]<br />
HWIN1=A:ABC SESSION (LANWS.WSC)<br />
HWIN2=Attachmate Netware Lan WS 1.2<br />
113
114 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
[DDE_SESSION]<br />
HOST_SERVER1=<br />
HOST_TOPIC1=<br />
USE_DDE1=N<br />
DDE_CONFIG_SESSION1=<br />
HOST_SERVER2=NTWRDRV<br />
HOST_TOPIC2=Ntwrdrv.exe<br />
USE_DDE2=Y<br />
DDE_CONFIG_SESSION2=DRV_DDE.INI
EXTRA! version 4.3<br />
Emulator Specifics 115<br />
To start EXTRA! with particular session configurations and window sizes, open<br />
the sessions you want to configure in EXTRA!, size the windows, then save the<br />
layout. (From the Window menu, choose Save Layout.)<br />
Launch EXTRA! with the following Windows 95 command syntax:<br />
HWIN1=C:\Program Files\E!PC16\EXTRA!.EXE C:\ Program Files<br />
1\E!PC16\USER\HOST.EWL<br />
or<br />
HWIN1=C:\ PROGRA~1\E!PC16\EXTRA!.EXE<br />
C:\PROGRA~1\E!PC16\USER\HOST.EWL<br />
Sample <strong>Vlterm</strong>.ini for Attachmate EXTRA! version 4.3.<br />
[WIN_TITLE]<br />
HWIN0=KEA! 340 - MOSAIX<br />
HWIN1=EXTRA! A - Session1<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=keavt<br />
HOST_TOPIC0=macro<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=Kea_dde.ini<br />
DDE_DELAY1=3<br />
HOST_SERVER1=extra!<br />
HOST_TOPIC1=A<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=Ext_dde.ini
116 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
EXTRA! Personal Client 6.x and<br />
EXTRA! Bundle for TCP/IP Version 6.2<br />
Use EXTRA! Personal Client (EPC) 6.x 32-bit edition at sites running a 32-bit<br />
Windows environment such as Windows 95 or Windows NT. <strong>Vlterm</strong> can<br />
communicate with EXTRA! two different ways: SendKeys() and OLE.<br />
SendKeys() can be used without special adjustments in the 32-bit environment.<br />
EXTRA! supports OLE Automation, a Microsoft Windows standard for interprogram<br />
communications. As an OLE Automation server, EXTRA! exposes<br />
programmable objects like Session, Screen, and Toolbar, whose built-in<br />
functionality can be accessed by user-written applications. For example, you<br />
could write a PC application that transfers files between an IBM mainframe, AS/<br />
400, and VAX. You would not have to write the file transfer code, but merely<br />
invoke the file transfer functionality inherent in 3270, 5250, and VT Session<br />
objects. To access automation-enabled objects, you must use a macro or<br />
programming language that supports OLE Automation, such as the EXTRA!<br />
Basic language or Microsoft Visual Basic 3.0 or later.<br />
You control objects through their properties and methods using the dot syntax of<br />
object.property and object.method.<br />
For <strong>Vlterm</strong> to communicate to EPC using OLE, configure an additional<br />
application for each EPC emulation window required to which <strong>Vlterm</strong> connects.<br />
This additional application is called extdrv.exe, which is an external interface<br />
between <strong>Vlterm</strong> and EPC. <strong>Vlterm</strong> communicates to extdrv.exe using DDE.<br />
extdrv.exe communicates to EPC using OLE.<br />
Special Notes<br />
Consider the following recommendations when setting up a system that uses<br />
EXTRA!. See Appendix H, “Configuring For Driver Files,” beginning on page<br />
173, for further recommendations about configuring <strong>Vlterm</strong> to use a driver file for<br />
EXTRA!.<br />
• Note the relationship between the following:<br />
The [SHELL] section entry to start the extdrv.exe interface must specify a<br />
unique /SN= parameter for each instance:<br />
C:\Program Files\<strong>Vlterm</strong>\extdrv.exe /SN=MOSAIX /Debug=Off<br />
This parameter must be used in the corresponding [DDE_SESSION] section<br />
entries:
Emulator Specifics 117<br />
HOST_SERVER0=ExtDrv<br />
HOST_TOPIC0=MOSAIX<br />
The [WIN_TITLE] section must include:<br />
Extra Personal Client Driver - MOSAIX<br />
• EPC 6.1 uses a different method to send special key operations such as<br />
ENTER, CLEAR, or HOME.<br />
Send these instructions between angle bracket (< >) delimiters. For example,<br />
PASTE_CMD2=<br />
or<br />
PASTE_CMD2=<br />
See Appendix G, “Special EXTRA! Key Sequences,” beginning on page 169,<br />
for a complete listing.<br />
• If EXTRA! is installed using the Custom installation option, the API option<br />
must be selected for installation. Otherwise, the extdrv.exe drive cannot<br />
establish an OLE connection to EXTRA!.<br />
To confirm that EXTRA! OLE Automation support is available, create a<br />
macro using Learn. Play back the macro. If the macro playback is successful,<br />
OLE Automation is enabled in EXTRA!.<br />
Sample <strong>Vlterm</strong>.ini File for EXTRA! OLE<br />
[GLOBAL]<br />
MAX_SESSIONS=3<br />
MAX_CUTS=10<br />
MAX_PASTES=11<br />
NUMBER_CNPS=3<br />
NUMBER_VARS=9<br />
AUTO_INTERVAL=3<br />
AUTO_ENABLED=N<br />
VERSION=0<br />
[SHELL]<br />
HTERM0=c:\Program Files\<strong>Vlterm</strong>\EXTDRV.EXE /SN=MOSAIX /<br />
Debug=Off<br />
S_DELAY0=3
118 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
HTERM1=C:\Progra~1\E!PC\EXTRA.exe<br />
c:\Progra~1\E!PC\sessions\UNIXDE~1.edp<br />
S_DELAY1=3<br />
HTERM2=c:\Program Files\<strong>Vlterm</strong>\EXTDRV.EXE /SN=HOST /<br />
Debug=Off<br />
S_DELAY2=3<br />
HTERM3=C:\Progra~1\E!PC\EXTRA.exe<br />
c:\Progra~1\E!PC\sessions\Mainfr~1.edp<br />
S_DELAY3=3<br />
[WIN_TITLE]<br />
HWIN0=Extra Personal Client Driver - MOSAIX<br />
HWIN1=Unixde~1 - EXTRA! Personal Client<br />
HWIN2=Extra Personal Client Driver - HOST<br />
HWIN3=Mainfr~1 - EXTRA! Personal Client<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=ExtDrv<br />
HOST_TOPIC0=MOSAIX<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=DRV_DDE.ini<br />
DDE_DELAY1=3<br />
HOST_SERVER1=<br />
HOST_TOPIC1=<br />
HOST_ITEM1=<br />
USE_DDE1=N<br />
DDE_CONFIG_SESSION1=<br />
DDE_DELAY2=3<br />
HOST_SERVER2=ExtDrv<br />
HOST_TOPIC2=HOST<br />
HOST_ITEM2=
USE_DDE2=Y<br />
DDE_CONFIG_SESSION2=DRV_DDE.ini<br />
DDE_DELAY3=3<br />
HOST_SERVER3=<br />
HOST_TOPIC3=<br />
HOST_ITEM3=<br />
USE_DDE3=N<br />
DDE_CONFIG_SESSION3=<br />
DDE_TIMEOUT=20<br />
[FKEY_BUTTONS]<br />
DISPLAY_FKEYS=Y<br />
FKEYS_FILE=<br />
FKEYS_ON_TOP=Y<br />
CAPTION=<strong>Vlterm</strong><br />
ROW1=Y<br />
ROW2=Y<br />
ROW3=Y<br />
ROW4=N<br />
ROW5=N<br />
ROW6=N<br />
[CNP1]<br />
CNP_NAME=Main Cut and Paste Script<br />
CUT_SESSION=0<br />
PASTE_SESSION=2<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=5<br />
CUT_CMD1=(1,1,8)<br />
PASTE_CMD1=literal string<br />
PASTE_CMD2=<br />
;Set the Mosaix goto screen<br />
PASTE_CMD3=RELEASE=VAL=x<br />
Emulator Specifics 119
120 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
PASTE_CMD4=ToggleTo(3)<br />
PASTE_CMD5=FocusRemain(Y)<br />
[CNP2]<br />
CNP_NAME=Stop Extra driver to host session<br />
CUT_SESSION=2<br />
PASTE_SESSION=2<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=Other([exit()])<br />
PASTE_CMD2=CNP3<br />
[CNP3]<br />
CNP_NAME=Stop Extra driver to Mosaix session and <strong>Vlterm</strong><br />
CUT_SESSION=0<br />
PASTE_SESSION=0<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=Other([exit()])<br />
PASTE_CMD2=Exit_<strong>Vlterm</strong>
Hummingbird Communications Exceed<br />
Emulator Specifics 121<br />
Hummingbird Exceed Version 6.0 Multiplatform has been tested as a 3270<br />
emulator that communicates to a host system and a VT100 emulator that<br />
communicates to a Mosaix system using telnet. This section deals with issues<br />
specific to the Exceed emulator and <strong>Vlterm</strong>. <strong>Vlterm</strong> can communicate with<br />
Exceed using DDE. Exceed follows the Attachmate DDE convention.<br />
NOTE As a default, the DDE session numbers in the HOST_TOPIC=<br />
configuration are assigned in increasing numerical order depending on the order<br />
of executable startup.<br />
Special 3270 keystrokes are sent using the typical @x convention. See Appendix<br />
D, “Emulator Special @x Keys,” beginning on page 107 for more information.<br />
The cut area is specified by (PxxxLyyy) where P is the presentation space position,<br />
from 1 to 1920 representing row1 (positions 1 through 80) through row 24<br />
(positions 1841 through 1920). L represents the length of the string to cut.<br />
Example <strong>Vlterm</strong>.ini File for Exceed<br />
[SHELL]<br />
HTERM0=c:\hostex\programs\telnet.exe -P MOSAIX<br />
S_DELAY0=3<br />
HTERM1=c:\hostex\programs\tn3270.exe -P HOST<br />
S_DELAY1=3<br />
[WIN_TITLE]<br />
HWIN0=MOSAIX<br />
HWIN1=HOST<br />
[DDE_SESSION]<br />
DDE_DELAY0=6<br />
HOST_SERVER0=HOSTEX<br />
HOST_TOPIC0=1<br />
;NOTE: The DDE topic values seem to be assigned by the order<br />
;in which sessions are started. Maintaining a consistent<br />
;session start or is therefore very important.<br />
HOST_ITEM0=<br />
USE_DDE0=Y
122 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
DDE_CONFIG_SESSION0=HST_DDE.INI<br />
DDE_DELAY1=3<br />
HOST_SERVER1=HOSTEX<br />
HOST_TOPIC1=2<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=HST_DDE.INI<br />
DDE_TIMEOUT=10<br />
[CNP1]<br />
CNP_NAME=Sample host record lookup<br />
CUT_SESSION=1<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=4<br />
CUT_CMD1=(P2L16)<br />
PASTE_CMD1=SetVar1=C(1)<br />
PASTE_CMD2= VAR1<br />
PASTE_CMD3= @E<br />
PASTE_CMD4=Release=Val=hy
IBM Personal Communications 3270<br />
Emulator Specifics 123<br />
IBM Personal Communications (Pcomm) Version 4.0 has been tested with <strong>Vlterm</strong><br />
as a 3270 emulator to communicate to a host system. This section deals with issues<br />
specific to the Pcomm emulator and <strong>Vlterm</strong>.<br />
<strong>Vlterm</strong> can act as the DDE client and communicate with the Pcomm DDE server.<br />
Special 3270 keystrokes are sent using the typical @x convention. See Appendix<br />
D, “Emulator Special @x Keys,” beginning on page 107 for more information.<br />
Sample <strong>Vlterm</strong>.ini Settings for IBM Pcomm<br />
[SHELL]<br />
HTERM1=C:\PCOM\PCSWS.EXE c:\pcom\private\ss1.ws<br />
[WIN_TITLE]<br />
HWIN1= A - SuperSession 1<br />
[DDE_SESSION]<br />
DDE_DELAY1=3<br />
HOST_SERVER1=IBM3270<br />
HOST_TOPIC1= SessionA<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=IBM_DDE.INI<br />
[CNP1]<br />
CNP_NAME=Sample host record lookup<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=C(1)<br />
PASTE_CMD2=@E
124 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Irma 3270<br />
Irma Workstation for Windows (IWW) is unique among the emulators that <strong>Vlterm</strong><br />
supports. For IWW to respond to <strong>Vlterm</strong>’s DDE requests, it must be configured to<br />
execute a “quickscript” during startup to enable DDE serving. To create this<br />
configuration, copy the appropriate files from the <strong>Vlterm</strong> installation CD-ROM<br />
IRMA directory to the workstation’s IWW directory (default C:\IRMAWIN).<br />
Single Irma 3270 Session<br />
The files for a single 3270 session are described in the following table.<br />
hostA.qep This file associates a specific emulation session profile (for<br />
example, sessionA.emu) with a quickscript (for example,<br />
serverA.isx). Chaining this file with the IWW binary on the<br />
command line (for example, C:\irmawin\qexec.exe<br />
C:\irmawin\hostA.qep) causes IWW to load the session<br />
profile sessionA.emu and execute the quickscript<br />
serverA.isx. This file is predefined by Lucent and doesn’t<br />
need to be modified.<br />
serverA.isx This quickscript sets up DDE serving on IWW. It should be<br />
executed upon launching IWW and manually shut down after<br />
closing the emulation session. This file is predefined by<br />
Lucent and doesn’t need to be modified.<br />
serverA.isl This is an uncompiled version of the quickscript serverA.isx.<br />
It is a straight text file that outlines the DDE calls that IWW<br />
will accept. This file would have to be modified and<br />
recompiled to add additional DDE functionality. It is not<br />
recommend to change this file unless directed by Lucent or<br />
Attachmate.<br />
utils.isl This is a supplementary utilities quickscript for IWW that is<br />
called from serverA.isx. The utils.isl file provided by Lucent<br />
is an updated 1995 version that should replace any existing<br />
copy on the customer’s workstation. Only one copy of this<br />
file is required for multiple sessions. This file should not be<br />
modified in any way.
The customer needs to create one IRMA setup file.<br />
Multiple Irma 3270 Sessions<br />
Emulator Specifics 125<br />
sessionA.emu This file defines the customer’s emulation session profile. It<br />
contains information such as connection type, terminal<br />
display, key mapping, so on. The customer should create this<br />
file by following the steps outlined in the IWW User’s<br />
Guide.<br />
If you need to access more than one 3270 session with <strong>Vlterm</strong>, copy multiple<br />
instances of the files described in the previous section from the <strong>Vlterm</strong> installation<br />
CD-ROM to the customer’s IWW directory. The configuration files for each<br />
individual session are identified by an appended letter, for example, A for the first<br />
session, B for the second, C for the third, and D for the forth. For example, when<br />
using two IWW sessions with <strong>Vlterm</strong>, copy hostA.qep, hostB.qep, serverA.isx,<br />
serverB.isx, serverA.isl, serverB.isl, and one copy of utils.isl.<br />
You must create multiple sessionn.emu files for each connection. This can be a<br />
tricky procedure that requires a detailed understanding of the IWW User’s Guide.<br />
Each individual EMU session must be saved with an appended A, B, C or D<br />
depending on the number of emulation sessions. The best method to accomplish<br />
this is to create the first session, sessionA.emu. Once you save sessionA.emu,<br />
choose New Display from the File menu to create a second session (B) and<br />
configure its connection type. Save this second session as sessionB.emu. Repeat<br />
this procedure for the number of needed sessions.<br />
NOTE <strong>Vlterm</strong> supports only four concurrent IWW sessions (A, B, C, and D).<br />
The HTERMn entries in the vlterm.ini file must have a separate line for each<br />
session. The main binary in the IRMAWIN directory is named qexec.exe. This<br />
binary must be followed by the QEP file for a specific session. For example, the<br />
entries to configure two 3270 sessions would look like the following:<br />
HTERM0=C:\KEA\KEAVT.EXE C:\Program Files\<strong>Vlterm</strong>\MOSAIX.VTP<br />
MOSAIX session with Kea!<br />
HTERM1=C:\IRMAWIN\QEXEC.EXE C:\IRMAWIN\HOSTA.QEP Session A of<br />
Irma<br />
HTERM2=C:\IRMAWIN\QEXEC.EXE C:\IRMAWIN\HOSTB.QEP Session B of<br />
Irma
126 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
MiniSoft PowerTerm<br />
PowerTerm Version 5.1.2 has been tested as a Host emulator in a Windows NT 4<br />
environment with <strong>Vlterm</strong> version 4.x 32-bit edition.<br />
PowerTerm supports DDE server. Only one instance of PowerTerm can be used as<br />
a DDE server. PowerTerm doesn’t support unique DDE topic names to<br />
differentiate connections.<br />
If you use PowerTerm for the Mosaix system VT connection, you can use<br />
ClipCut() to copy information from the screen. Setting DDE=N to force vlkeys.ini<br />
file control character to send Mosaix releases is supported. PowerTerm accepts<br />
Sendkeys paste script commands, such as %e, to access that menu, but does not<br />
accept ordinary text to the screen.<br />
Send special keystrokes using the syntax. PowerTerm buffers<br />
keystrokes so that you can send data and press enter and have PowerTerm handle<br />
the pacing before sending the next data item.<br />
Sample <strong>Vlterm</strong>.ini File for PowerTerm<br />
[SHELL]<br />
HTERM1=\\Redfs01\custom\Alltel\MINISOFT\PTW\PTW32.EXE<br />
[WIN_TITLE]<br />
HWIN1=(A) T*<br />
[DDE_SESSION]<br />
DDE_DELAY1=3<br />
HOST_SERVER1=PTW<br />
HOST_TOPIC1=PSL<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=PTW_DDE.INI<br />
[CNP27]<br />
CNP_NAME=Main host record lookup<br />
CUT_SESSION=1<br />
PASTE_SESSION=1
Emulator Specifics 127<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=4<br />
;screen startRow startCol [endRow] endCol<br />
CUT_CMD1=(23 1 23 18)<br />
PASTE_CMD1=C(1)<br />
PASTE_CMD2=SetVar1=abc<br />
PASTE_CMD3=Var1<br />
PASTE_CMD4=literal string<br />
;Example of Buffered key input example, no need for OIA<br />
;PASTE_CMD1=1<br />
;PASTE_CMD2=<br />
;PASTE_CMD3=2<br />
;PASTE_CMD4=<br />
;PASTE_CMD5=3<br />
;PASTE_CMD6=
128 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Netmanage Chameleon<br />
HostLink 97<br />
This section deals with issues specific to the HostLink 97 emulator and <strong>Vlterm</strong>.<br />
<strong>Vlterm</strong> can communicate with HLLAPI, a High-Level Language Application<br />
Programming Interface, for communications between 3270 sessions.<br />
NOTE The HostLink Driver connection to <strong>Vlterm</strong> fails if the other applications<br />
(terminal or printer sessions) are not already open. To connect to such a window,<br />
use a wildcard(*) in the [WIN_TITLE] section of the vlterm.ini file.<br />
Chameleon Hostlink 97 Examples<br />
[WIN_TITLE]<br />
HWIN0=Telnet*<br />
HWIN1=HSLDRV32<br />
HWIN2=3270 Terminal*<br />
The HLLAPI driver Session Name should be A, and it must be one character in<br />
length.<br />
HTERM1=c:\Program Files\<strong>Vlterm</strong>\HSLDRV32.EXE /SN=A /Debug=ON<br />
Different versions of the software use different directory names. The directory<br />
names c:\Netmanag.95 and c:\Netmanag.32 look very much alike.<br />
NOTE Don’t confuse the Hostlink and Unixlink emulators. Although they are<br />
both produced by NetManage, Inc., they communicate with different machines.<br />
Sample <strong>Vlterm</strong>.ini File for Hostlink<br />
[GLOBAL]<br />
;DEBUG=ON<br />
MAX_SESSIONS=2<br />
MAX_CUTS=3<br />
MAX_PASTES=15<br />
NUMBER_CNPS=1<br />
NUMBER_VARS=3<br />
AUTO_INTERVAL=3<br />
AUTO_ENABLED=N
Emulator Specifics 129<br />
[SHELL]<br />
; Command lines for starting the emulator sessions.<br />
; The Mosaix system session is always session 0.<br />
HTERM0=TELNET.EXE 10.14.2.214<br />
s_delay0=3<br />
HTERM1=c:\Program Files\<strong>Vlterm</strong>\HSLDRV32.EXE /SN=A /Debug=OFF<br />
s_delay1=3<br />
;HTERM2=C:\NETMANAG.32\TN3270.EXE 168.61.2.18 1023<br />
HTERM2=C:\NETMANAG.32\TN3270.EXE -f<br />
C:\WINNT\Profiles\sh7790\Desktop\RJM.CFG<br />
s_delay2=3<br />
[WIN_TITLE]<br />
HWIN0=Telnet*<br />
HWIN1=HSLDRV32<br />
HWIN2=3270 Terminal*<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=<br />
HOST_TOPIC0=<br />
HOST_ITEM0=<br />
USE_DDE0=N<br />
DDE_CONFIG_SESSION0=<br />
DDE_DELAY1=3<br />
HOST_SERVER1=HSLDRV32<br />
HOST_TOPIC1=A<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=DRV_DDE.INI<br />
DDE_DELAY2=3<br />
HOST_SERVER2=
130 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
HOST_TOPIC2=<br />
HOST_ITEM2=<br />
USE_DDE2=N<br />
DDE_CONFIG_SESSION2=<br />
; DDE session timeout in seconds<br />
DDE_TIMEOUT=8<br />
[FKEY_BUTTONS]<br />
DISPLAY_FKEYS = Y<br />
ROW1=Y<br />
ROW2=Y<br />
ROW3=Y<br />
ROW4=Y<br />
FKEYS_ON_TOP=Y<br />
CAPTION=<strong>Vlterm</strong><br />
[CNP1]<br />
CNP_NAME=Main cut and paste<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=3<br />
NUMBER_PASTE_COMMANDS=4<br />
;ACCTNUM<br />
CUT_CMD1=ClipCut(%ea%ec~(6,23,11))<br />
;MARKET<br />
CUT_CMD2=ClipCut(~(5,23,2))<br />
;NPA<br />
CUT_CMD3=ClipCut(~(6,23,3))<br />
PASTE_CMD1=C(2)<br />
PASTE_CMD2=C(3)<br />
PASTE_CMD3=@E<br />
PASTE_CMD4=OIA,*CLEAR*
Unixlink 97 Version 7.0<br />
Emulator Specifics 131<br />
Chameleon Unixlink 97 by NetManage, Inc. has been tested as a host emulator in<br />
a Windows NT environment with <strong>Vlterm</strong> version 4.4 32-bit edition.<br />
NOTE The <strong>Vlterm</strong> SendKeys command cannot be used with Unixlink. Unixlink<br />
will not respond to Sendkeys.<br />
Unixlink supports HLLAPI for communications between 3270 sessions.<br />
You can paste special keys by using the @ character convention. For example,<br />
PASTE_CMD1=@E *<br />
The HLLAPI driver Session Name should be A, and it must be one character in<br />
length. For example,<br />
HTERM1=c:\Program Files\<strong>Vlterm</strong>\HSLDRV32.EXE /SN=A /Debug=ON<br />
Sample <strong>Vlterm</strong>.ini File for Unixlink<br />
[SHELL]<br />
HTERM0=C:\NETMANAG.32\TELNET.EXE<br />
s_delay0=3<br />
HTERM1=c:\Program Files\<strong>Vlterm</strong>\UXLDRV32.EXE /SN=A /Debug=ON<br />
s_delay1=3<br />
HTERM2=C:\NETMANAG.95\TN3270.EXE HOST.CFG<br />
s_delay2=3<br />
[WIN_TITLE]<br />
HWIN0=Telnet -*<br />
HWIN1=Unixlink Hllapi Driver 32 - A<br />
HWIN2=3270 Terminal*<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=<br />
HOST_TOPIC0=<br />
HOST_ITEM0=<br />
USE_DDE0=N<br />
DDE_CONFIG_SESSION0=
132 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
DDE_DELAY1=3<br />
HOST_SERVER1=UXLDRV32<br />
HOST_TOPIC1=A<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=DRV_DDE.INI<br />
DDE_DELAY2=3<br />
HOST_SERVER2=<br />
HOST_TOPIC2=<br />
HOST_ITEM2=<br />
USE_DDE2=N<br />
DDE_CONFIG_SESSION2=<br />
DDE_TIMEOUT=20<br />
[CNP1]<br />
CNP_NAME=CNP<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=8<br />
PASTE_CMD1=1<br />
PASTE_CMD2=@E<br />
PASTE_CMD3=OIA,*CLEAR*<br />
PASTE_CMD4=2<br />
PASTE_CMD5=@E<br />
PASTE_CMD6=OIA,*CLEAR*<br />
;PASTE_CMD7=C(1)<br />
PASTE_CMD7=SetVar1=abc123ABC!@#<br />
PASTE_CMD8=Var1
PDSI Psched Software DDE Interface<br />
Emulator Specifics 133<br />
PDSI Psched has been tested as an application with a DDE server with which<br />
<strong>Vlterm</strong> can communicate. The tested communications consist of sending a data<br />
record to effect a host record lookup. No cut or other type of paste command has<br />
been tested.<br />
This section of the appendix deals with issues specific to the Psched emulator and<br />
<strong>Vlterm</strong>.<br />
The following is an example of the string expected by PDSI. PATIENT is a fixed<br />
string representing the message type; all other tilde delimited strings are fields<br />
from the Mosaix system session.<br />
PATIENT~A123456~MOORE ~JOHN ~M~01/22/1976~714-474-7374~800-<br />
756-5640~AN~Neg<br />
Data Description Data From a Record on the Mosaix System<br />
Message Type PATIENT<br />
Donor ID A123456<br />
Last Name MOORE<br />
First Name JOHN<br />
Middle M<br />
Date of Birth 01/22/1976<br />
Home Phone # 714-474-7374<br />
Work Phone # 800-756-5640<br />
Blood Type AN<br />
CMV Status Neg<br />
Sample <strong>Vlterm</strong>.ini Settings for PDSI<br />
[SHELL]<br />
HTERM1=c:\cms\psched\psched.exe dde<br />
[WIN_TITLE]<br />
HWIN1=PheresiSched*
134 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
[DDE_SESSION]<br />
DDE_DELAY1=3<br />
HOST_SERVER1=PSched<br />
HOST_TOPIC1=Scheduling<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=PDSI_DDE.INI<br />
[CNP1]<br />
CNP_NAME=Main record lookup<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=8<br />
NUMBER_PASTE_COMMANDS=20<br />
;cut all the fields from the Mosaix Page2A screen<br />
;Reflection R2 format: (row1,col1,row2,col2) 0..79<br />
;Donor ID<br />
CUT_CMD1=(15,42,15,48)<br />
;Last Name<br />
CUT_CMD2=(0,45,0,68)<br />
;First Name<br />
CUT_CMD3=(0,6,0,20)<br />
;Middle Name<br />
CUT_CMD4=(0,24,0,38)<br />
;Date of Birth<br />
CUT_CMD5=(15,26,15,33)<br />
;Home Phone<br />
CUT_CMD6=(8,5,8,16)<br />
;Work Phone<br />
CUT_CMD7=(8,37,8,48)<br />
;Blood Type<br />
CUT_CMD8=(15,11,15,13)<br />
;CMV Status (actually part of Blood type field)<br />
;CUT_CMD9=(0,1,0,2)
Emulator Specifics 135<br />
PASTE_CMD1=Delay(.1)<br />
;set a tilde delimiter character between fields<br />
PASTE_CMD2=SetVAR1=~<br />
;Build up the DDE message to send to PDSI<br />
;Header description<br />
PASTE_CMD3=StrCat(VAR2~“PATIENT”)<br />
PASTE_CMD4=StrCat(VAR2~VAR1)<br />
;Donor ID<br />
PASTE_CMD5=StrCat(VAR2~CUT1)<br />
PASTE_CMD6=StrCat(VAR2~VAR1)<br />
;Last Name<br />
PASTE_CMD7=StrCat(VAR2~CUT2)<br />
PASTE_CMD8=StrCat(VAR2~VAR1)<br />
;First Name<br />
PASTE_CMD9=StrCat(VAR2~CUT3)<br />
PASTE_CMD10=StrCat(VAR2~VAR1)<br />
;Middle Name<br />
PASTE_CMD11=StrCat(VAR2~CUT4)<br />
PASTE_CMD12=StrCat(VAR2~VAR1)<br />
;Date of Birth<br />
PASTE_CMD13=StrCat(VAR2~CUT5)<br />
PASTE_CMD14=StrCat(VAR2~VAR1)<br />
;Home Phone<br />
PASTE_CMD15=StrCat(VAR2~CUT6)<br />
PASTE_CMD16=StrCat(VAR2~VAR1)<br />
;Work Phone<br />
PASTE_CMD17=StrCat(VAR2~CUT7)<br />
PASTE_CMD18=StrCat(VAR2~VAR1)<br />
;Blood Type<br />
; If the 3rdchar is blank, the string is only 2chars long.<br />
; evaluate the length, fill blood type and RH type depending<br />
on field length<br />
PASTE_CMD19=SetVar6=Midstring(CUT8~3~1)<br />
PASTE_CMD20=CVR6=:CNP6:CNP7
136 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
[CNP6]<br />
CNP_NAME=Main record lookup continuation 2 char Blood type<br />
CUT_SESSION=0<br />
PASTE_SESSION=0<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=3<br />
;Blood type<br />
PASTE_CMD1=SetVar7=MidString(CUT8~1~1)<br />
;RH type<br />
PASTE_CMD2=SetVar8=MidString(CUT8~2~1)<br />
PASTE_CMD3=CNP8<br />
[CNP7]<br />
CNP_NAME=Main record lookup continuation 3 char Blood type<br />
CUT_SESSION=0<br />
PASTE_SESSION=0<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=3<br />
;Blood type<br />
PASTE_CMD1=SetVar7=MidString(CUT8~1~2)<br />
;RH type<br />
PASTE_CMD2=SetVar8=MidString(CUT8~3~1)<br />
PASTE_CMD3=CNP8<br />
[CNP8]<br />
CNP_NAME=Main record lookup continuation<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=5<br />
;Blood Type<br />
PASTE_CMD1=StrCat(VAR2~VAR7)<br />
PASTE_CMD2=StrCat(VAR2~VAR1)
;Append a CMV Status value as a filler for now<br />
;PASTE_CMD=StrCat(VAR2~CUT9)<br />
;RH Type (equivalent to CMV?)<br />
PASTE_CMD3=StrCat(VAR2~VAR8)<br />
;send the string to PDSI<br />
;PASTE_CMD4=Msg=VAR2<br />
PASTE_CMD4=VAR2<br />
;clear VAR2 for next time<br />
PASTE_CMD5=SetVAR2=“”<br />
Emulator Specifics 137
138 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Persoft SmarTerm<br />
The following example pertains to SmarTerm for Windows 95/NT Version 7.0.<br />
Sample <strong>Vlterm</strong>.ini File for SmarTerm<br />
[SHELL]<br />
HTERM0=c:\PROGRA~1\Persoft\STOFFICE.EXE<br />
c:\PROGRA~1\Persoft\sessions\mosaix.stw<br />
S_DELAY0=3<br />
HTERM1=c:\PROGRA~1\Persoft\STOFFICE.EXE<br />
c:\PROGRA~1\Persoft\sessions\cmis.stw<br />
S_DELAY1=3<br />
[WIN_TITLE]<br />
HWIN0=SmarTerm Office - [mosaix.stw]<br />
HWIN1=SmarTerm Office - [cmis.stw]<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=SToffice<br />
HOST_TOPIC0=mosaix.stw<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=Sma_dde.ini<br />
DDE_DELAY1=3<br />
HOST_SERVER1=SToffice<br />
HOST_TOPIC1=cmis.stw<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=Sma_dde.ini<br />
DDE_TIMEOUT=10<br />
[CNP1]<br />
CNP_NAME=Main Cut and Paste record lookup<br />
CUT_SESSION=0
PASTE_SESSION=1<br />
CNP_TYPE=2<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=3<br />
;row 3, col 43, page 1, len 12<br />
CUT_CMD1=(3,43,1,12)<br />
;Home<br />
PASTE_CMD1=^[P4<br />
;Tab<br />
PASTE_CMD2=^I<br />
PASTE_CMD3=C(1)<br />
PASTE_CMD4=^M<br />
Emulator Specifics 139<br />
See Appendix E, “ASCII and VT100 Control Sequences,” beginning on page 111<br />
for a description of the control sequences shown in the sample file.
140 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Quarterdeck Procomm Plus 32<br />
Procomm supports a DDE server API interface. The emulator can be used for<br />
either the Mosaix system or host connection. This emulator is typically used when<br />
the connection to the host system requires asynchronous serial communication, or<br />
the emulated terminal type must be an asynchronous terminal such as Wyse50,<br />
IBM3101, VT220 or TVI925.<br />
Verified functionality using the Procomm Plus emulator:<br />
• Send characters to a Procomm session<br />
• Get characters from a specified location<br />
• Send Mosaix system line releases to a Procomm session<br />
<strong>Vlterm</strong>.ini Settings for Procomm Plus<br />
[SHELL]<br />
HTERM0=D:\PROWIN\PROGRAMS\PW3.EXE CONNECT TELNET “ZURABI”<br />
; use PW4 for version 4.5<br />
[WIN_TITLE]<br />
HWIN0=PROCOMM PLUS for Windows*<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=PW3<br />
; use PW4 for version 4.5<br />
HOST_TOPIC0=system<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=PRO_DDE.INI<br />
[CNP15]<br />
CNP_NAME=Test CNP sample cut<br />
CUT_SESSION=0<br />
PASTE_SESSION=0<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=3<br />
;Procomm format: (row column ret_string string_len)
Emulator Specifics 141<br />
;note a start count of row 0..23 and column 0..79<br />
;S0 is a predefined global variable in Procomm Aspect script<br />
language to hold the cut data<br />
;this cut command copies from row0, col3, len10.<br />
CUT_CMD1=(0 3 S0 10)<br />
PASTE_CMD1=Msg=Cut1<br />
PASTE_CMD2=C(1)<br />
;Use ASCII control codes to send special keystrokes, or use<br />
sendkeys instead.<br />
;This is a carriage return<br />
PASTE_CMD3=^M<br />
PRO_DDE.INI Sample File<br />
Use the pre-configured PRO_DDE.INI file to specify the DDE commands to send<br />
to Procomm during script command interpretation.<br />
[DDE_CUTS]<br />
NumberOfLines=3<br />
Line1=LinkExecute ASPECTCMD termgets &CutVar1<br />
Line2=LinkItem S0<br />
Line3=LinkRequest<br />
[DDE_PASTECUTS]<br />
NumberOfLines=1<br />
Line1=LinkExecute TRANSMIT &PasteVar1&
142 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Sendkeys<br />
The following sample portion of a vlterm.ini configuration file demonstrates the<br />
use of Sendkeys to interact with the Mosaix system using Microsoft Telnet and a<br />
simulation of a non-API customer application, such as Microsoft Notepad.<br />
[GLOBAL]<br />
MAX_SESSIONS=1<br />
MAX_CUTS=5<br />
MAX_PASTES=10<br />
NUMBER_CNPS=1<br />
NUMBER_VARS=5<br />
AUTO_INTERVAL=3<br />
AUTO_ENABLED=N<br />
VERSION=0<br />
[SHELL]<br />
HTERM0=telnet.exe mosaix<br />
S_DELAY0=3<br />
HTERM1=notepad.exe c:\Program Files\<strong>Vlterm</strong>\host.txt<br />
S_DELAY1=3<br />
[WIN_TITLE]<br />
HWIN0= Telnet - Mosaix<br />
HWIN1=Host.txt - Notepad<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=<br />
HOST_TOPIC0=<br />
HOST_ITEM0=<br />
USE_DDE0=N<br />
DDE_CONFIG_SESSION0=<br />
DDE_DELAY1=3<br />
HOST_SERVER1=
HOST_TOPIC1=<br />
HOST_ITEM1=<br />
USE_DDE1=N<br />
DDE_CONFIG_SESSION1=<br />
[CNP1]<br />
CNP_NAME=Main host record lookup<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=2<br />
NUMBER_PASTE_COMMANDS=8<br />
CUT_CMD1=ClipCut(%ea%ec~(1,1,4))<br />
CUT_CMD2=ClipCut(~(2,1,12))<br />
PASTE_CMD1=Delay(.5)<br />
PASTE_CMD2=SendKeys=C(1)<br />
PASTE_CMD3=Delay(.5)<br />
PASTE_CMD4=SendKeys={Enter}<br />
PASTE_CMD5=Delay(1)<br />
PASTE_CMD6=SendKeys=C(2)<br />
PASTE_CMD7=Delay(.5)<br />
PASTE_CMD8=SendKeys={Enter}<br />
Emulator Specifics 143
144 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Teknekron On Demand Software DDE Interface<br />
Teknekron On Demand has been tested as an application with a DDE server with<br />
which <strong>Vlterm</strong> can communicate. The tested communications consists of sending<br />
commands to invoke three functions in On Demand:<br />
• Start Recording<br />
• Stop Recording<br />
• Save the Recording<br />
No cut or any other paste commands have been tested.<br />
The following list describes the format of the three functions:<br />
• Start recording button (Caption ‘OD Start’). This button POKEs data to the<br />
DDE server in the following format:<br />
RECSTART;600;<br />
Where:<br />
RECSTART is the message header, and 600 is a timeout after which recording<br />
stops automatically.<br />
• Stoprecordingbutton(Caption‘ODStop’).ThisbuttonPOKEsdatatothe<br />
DDE server in the following format:<br />
RECSTOP;<br />
• Save recording button (Caption ‘OD Save’). This button POKEs data to the<br />
DDE server in the following format:<br />
RECSAVE;3451238590;ABTRHS;<br />
Where:<br />
RECSAVE is the message header. 3451238590 is the account number for the<br />
current call (this can be a caller phone number or a unique database<br />
identifier). ABTHRS is the job number.<br />
Example <strong>Vlterm</strong>.ini File From Thaya Communications<br />
NOTE The use of the OnD_DDE.ini file supports a VARn paste command only.<br />
The VARn paste command sends a DDE Execute command with the parameters<br />
specified in the CNPn paste commands.<br />
[SHELL]<br />
HTERM1=C:\Program Files\Teknekron Infoswitch\On<br />
Demand\OnDemandClient.exe<br />
S_DELAY1=3
[WIN_TITLE]<br />
HWIN1=DDE Server Window<br />
[DDE_SESSION]<br />
DDE_DELAY1=3<br />
HOST_SERVER1=Ondemand<br />
HOST_TOPIC1=sound<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=Ond_DDE.ini<br />
[CNP15]<br />
CNP_NAME=On Demand Start Recording<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=SetVar1=RECSTART;600;<br />
PASTE_CMD2=VAR1<br />
[CNP16]<br />
CNP_NAME=On Demand Stop Recording<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=SetVar1=RECSTOP;<br />
PASTE_CMD2=VAR1<br />
[CNP17]<br />
CNP_NAME=On Demand Save Recording<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
Emulator Specifics 145
146 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
NUMBER_CUT_COMMANDS=2<br />
NUMBER_PASTE_COMMANDS=7<br />
;Lead number<br />
CUT_CMD1=ClipCut(%ea%ec~(3,14,15))<br />
;Client description NOTE: ADJUST LOCATION!<br />
CUT_CMD2=ClipCut(~(3,14,4))<br />
;Keyword for save function<br />
PASTE_CMD1=SetVar1=RECSAVE;<br />
PASTE_CMD2=SetVar2=;<br />
;Append Lead number<br />
PASTE_CMD3=StrCat(VAR1~CUT1)<br />
PASTE_CMD4=StrCat(VAR1~VAR2)<br />
;Append Client description<br />
PASTE_CMD5=StrCat(VAR1~CUT2)<br />
PASTE_CMD6=StrCat(VAR1~VAR2)<br />
;Send the result<br />
PASTE_CMD7=VAR1<br />
OND_DDE.INI file<br />
[DDE_PASTECUTS]<br />
NumberOfLines=1<br />
Line1=LinkExecute &PvarVar1&<br />
[DDE_PVAR]<br />
NumberOfLines=1<br />
Line1=LinkExecute &PvarVar1&
Upstanding Systems FASTerm for Windows<br />
Emulator Specifics 147<br />
Upstanding Systems FASTerm Version 40.108.081 has been tested in a Windows<br />
95 environment with <strong>Vlterm</strong> version 4.x 32-bit edition. FASTerm supports DDE<br />
server. <strong>Vlterm</strong> acts as the DDE client to initiate and maintain a DDE session.<br />
<strong>Vlterm</strong> also sends commands to FASTerm to put characters to and get characters<br />
from the FASTerm window.<br />
You can paste special keys by using the information in the following table.<br />
Windows Key Name Description Notes<br />
LeftMouseButton Left mouse button unused<br />
RightMouseButton Right mouse button unused<br />
MiddleMouseButton Middle mouse button unused<br />
Alt Alternate key modifier<br />
Ctrl Control key modifier<br />
Shift Shift key modifier<br />
NumLock NumLock key<br />
ScrollLock Scroll lock key<br />
Backspace BACKSPACE key<br />
Break Used for control-break<br />
Clear CLEAR key not on most keyboards<br />
Delete DEL key<br />
DownArrow DOWN ARROW key<br />
End END key<br />
Enter ENTER key<br />
Escape ESC key<br />
Execute EXECUTE key not on most keyboards<br />
Help HELP key not on most keyboards<br />
Home HOME key<br />
Insert INS key<br />
LeftArrow LEFT ARROW key<br />
NumPad0 Numeric keypad 0 key
148 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Windows Key Name Description Notes<br />
NumPad1 Numeric keypad 1 key<br />
NumPad2 Numeric keypad 2 key<br />
NumPad3 Numeric keypad 3 key<br />
NumPad4 Numeric keypad 4 key<br />
NumPad5 Numeric keypad 5 key<br />
NumPad6 Numeric keypad 6 key<br />
NumPad7 Numeric keypad 7 key<br />
NumPad8 Numeric keypad 8 key<br />
NumPad9 Numeric keypad 9 key<br />
NumPadAdd Numeric keypad Add key<br />
NumPadDecimal Numeric keypad Decimal key<br />
NumPadDivide Numeric keypad Divide key<br />
NumPadEnter Numeric keypad Enter key<br />
NumPadMultiply Numeric keypad Multiply key<br />
NumPadSubtract Numeric keypad Subtract key<br />
PageDown PAGE DOWN key<br />
PageUp PAGE UP key<br />
Pause PAUSE key<br />
PrintScreen PRINT SCREEN key preempted by Windows<br />
RightArrow RIGHT ARROW key<br />
Select SELECT key not on most keyboards<br />
Separator Separator key not on most keyboards<br />
Space SPACEBAR<br />
Tab TAB key<br />
UpArrow UP ARROW key<br />
F1 F1 key<br />
F2 F2 key<br />
F3 F3 key
Windows Key Name Description Notes<br />
F4 F4 key<br />
F5 F5 key<br />
F6 F6 key<br />
F7 F7 key<br />
F8 F8 key<br />
F9 F9 key<br />
F10 F10 key<br />
F11 F11 key<br />
F12 F12 key<br />
Example <strong>Vlterm</strong>.ini File for FASTerm<br />
[SHELL]<br />
HTERM0=c:\PROGRA~1\walldata\VT\rumbavt.exe<br />
c:\PROGRA~1\walldata\VT\mosaix.wdu<br />
s_delay0=3<br />
HTERM1=H:\BIN\fastwin\FTWIN.EXE Environment:1<br />
s_delay1=3<br />
Emulator Specifics 149<br />
F13 F13 key not on most keyboards<br />
F14 F14 key not on most keyboards<br />
F15 F15 key not on most keyboards<br />
F16 F16 key not on most keyboards<br />
F17 F17 key not on most keyboards<br />
F18 F18 key not on most keyboards<br />
F19 F19 key not on most keyboards<br />
F20 F20 key not on most keyboards<br />
F21 F21 key not on most keyboards<br />
F22 F22 key not on most keyboards<br />
F23 F23 key not on most keyboards<br />
F24 F24 key not on most keyboards
150 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
[WIN_TITLE]<br />
HWIN0=MOSAIX*<br />
HWIN1= FASTerm - Environment:1<br />
[DDE_SESSION]<br />
HOST_SERVER0=rumbavt<br />
HOST_TOPIC0=MOSAIX.vtp<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=RUM_DDE.INI<br />
HOST_SERVER1=FASTerm<br />
HOST_TOPIC1=Environment:1<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=FAS_DDE.INI<br />
DDE_TIMEOUT=5<br />
[CNP35]<br />
CNP_NAME=Main host record lookup<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=6<br />
;(RowStart,ColStart,RowEnd,ColEnd)<br />
CUT_CMD1=(5,19,5,30)<br />
PASTE_CMD1=SetVar1=MidString(C(1)~1~12)<br />
PASTE_CMD2=Other(CursorHome)<br />
PASTE_CMD3=I<br />
PASTE_CMD4=Other(Tab)<br />
PASTE_CMD5=SENDKEYS=VAR1<br />
PASTE_CMD6=Other(Transmit)
[CNP36]<br />
CNP_NAME=Reverse Cut and Paste<br />
CUT_SESSION=1<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=3<br />
CUT_CMD1=(10,44 to 10,46)<br />
PASTE_CMD1 =C(1)<br />
;PASTE_CMD2=SetVar1=abc<br />
;PASTE_CMD3=Var1<br />
Emulator Specifics 151
152 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Wall Data Rumba Office<br />
Rumba for the Mainframe Classic configuration uses a DDE connection.<br />
Configure a Rumba profile setting to specify a DDE topic name. Under the menu<br />
option for Options API, specify a DDE Topic Name such as mosaix.vtp. Save the<br />
configuration to the profile file.<br />
The following vlterm.ini files are sample configurations for Rumba Office 95/NT<br />
and Rumba Office 2000.<br />
Rumba Office 95/NT V5.1 <strong>Vlterm</strong>.ini Example<br />
[SHELL]<br />
;Site path<br />
HTERM0=c:\apps\walldata\rumba\vt\rumbavt.exe<br />
c:\apps\walldata\rumba\vt\mosaix.wdu<br />
S_DELAY0=3<br />
HTERM1=c:\apps\walldata\rumba\mframe\rumbadsp.exe<br />
c:\apps\walldata\rumba\SessionA.wdm<br />
S_DELAY1=3<br />
HTERM2=c:\apps\walldata\rumba\mframe\rumbadsp.exe<br />
c:\apps\walldata\rumba\SessionB.wdm<br />
S_DELAY2=3<br />
HTERM3=c:\apps\walldata\rumba\mframe\rumbadsp.exe<br />
c:\apps\walldata\rumba\SessionC.wdm<br />
S_DELAY3=3<br />
[WIN_TITLE]<br />
HWIN0=mosaix - RUMBA UNIX Display<br />
HWIN1=sessiona - RUMBA Mainframe Display<br />
HWIN2=sessionb - RUMBA Mainframe Display<br />
HWIN3=sessionc - RUMBA Mainframe Display<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=rumbavt<br />
HOST_TOPIC0=mosaix.wdu<br />
HOST_ITEM0=<br />
USE_DDE0=Y
DDE_CONFIG_SESSION0=Rum_dde.ini<br />
DDE_DELAY1=3<br />
HOST_SERVER1=rumbadsp<br />
HOST_TOPIC1=sessiona.dsp<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=Rum_dde.ini<br />
DDE_DELAY2=3<br />
HOST_SERVER2=rumbadsp<br />
HOST_TOPIC2=sessionb.dsp<br />
HOST_ITEM2=<br />
USE_DDE2=Y<br />
DDE_CONFIG_SESSION2=RUM_DDE.INI<br />
DDE_DELAY3=3<br />
HOST_SERVER3=rumbadsp<br />
HOST_TOPIC3=sessionc.dsp<br />
HOST_ITEM3=<br />
USE_DDE3=Y<br />
DDE_CONFIG_SESSION3=RUM_DDE.INI<br />
DDE_TIMEOUT=10<br />
[CNP1]<br />
CNP_NAME=Main cut and paste<br />
CUT_SESSION=0<br />
PASTE_SESSION=3<br />
NUMBER_CUT_COMMANDS=2<br />
NUMBER_PASTE_COMMANDS=11<br />
;account number (row1,col1, row2,col2)<br />
CUT_CMD1=(6,18,6,34)<br />
;location code<br />
CUT_CMD2=(7,11,7,16)<br />
PASTE_CMD1=@0<br />
Emulator Specifics 153
154 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
PASTE_CMD2=@T<br />
PASTE_CMD3=UPD<br />
PASTE_CMD4=@T<br />
PASTE_CMD5=PRI<br />
PASTE_CMD6=@T<br />
PASTE_CMD7=C(1)<br />
PASTE_CMD8=Cursor(5,45)<br />
PASTE_CMD9=C(2)<br />
PASTE_CMD10=@E<br />
PASTE_CMD11=OIA,*0*<br />
Rumba Office 2000 <strong>Vlterm</strong>.ini Example<br />
[GLOBAL]<br />
;DEBUG=ON<br />
MAX_SESSIONS=1<br />
MAX_CUTS=20<br />
MAX_PASTES=10<br />
NUMBER_CNPS=1<br />
NUMBER_VARS=5<br />
AUTO_INTERVAL=3<br />
AUTO_ENABLED=N<br />
VERSION=0<br />
[SHELL]<br />
HTERM0=C:\Rumba200\Vt\Rumbavt.exe C:\Rumba200\Vt\MOSAIX1.VTP<br />
S_DELAY0=50<br />
HTERM1=C:\Rumba200\MFrame\Rumbadsp.exe<br />
C:\Rumba200\MFrame\COllECT1.DSP<br />
S_DELAY1=50
[WIN_TITLE]<br />
HWIN0=MOSAIX1 - RUMBA*<br />
HWIN1=COLLECT1*<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=rumbavt<br />
HOST_TOPIC0=mosaix1.vtp<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=RUM_DDE.INI<br />
DDE_DELAY1=3<br />
HOST_SERVER1=rumbadsp<br />
HOST_TOPIC1=collect1.dsp<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=RUM_DDE.INI<br />
Emulator Specifics 155<br />
[CONTROL_PANEL]<br />
; The control panel is maintained for prior compatibility<br />
only.<br />
; Use the FKEY_BUTTONS instead.<br />
DISPLAY_PANEL=N<br />
NUMBER_BUTTONS=0<br />
[FKEY_BUTTONS]<br />
DISPLAY_FKEYS=Y<br />
FKEYS_FILE=<br />
FKEYS_ON_TOP=Y<br />
CAPTION= <strong>Vlterm</strong> - MOSAIX RUMBA
156 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
ROW1=Y<br />
ROW2=Y<br />
ROW3=Y<br />
ROW4=Y<br />
ROW5=N<br />
ROW6=N<br />
[CNP1]<br />
CNP_NAME=C&P<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
CNP_TYPE=2<br />
AUTO_CUT_COMPARE=<br />
AUTO_CUT_COMPARE=<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=11<br />
CUT_CMD1=(14,2,14,18)<br />
PASTE_CMD1=UPDPRIIL<br />
PASTE_CMD2=@F<br />
PASTE_CMD3=C(1),NUMERIC<br />
PASTE_CMD4=@B<br />
PASTE_CMD5=@B<br />
PASTE_CMD6=@B<br />
PASTE_CMD7=@B<br />
PASTE_CMD8=@B<br />
PASTE_CMD9=@B<br />
PASTE_CMD10=@B<br />
PASTE_CMD11=@E
WRQ Reflection<br />
Emulator Specifics 157<br />
For <strong>Vlterm</strong> to interact with a single copy of Reflection software using the DDE<br />
API, use the default DDE settings that are stored in the Reflection software<br />
profile. For example, configure the vlterm.ini file with the following parameters<br />
to communicate to R2 using DDE:<br />
[DDE_SESSION]<br />
HOST_SERVER1=R2WIN<br />
HOST_TOPIC1=RCL<br />
HOST_SERVERx is the value configured in the WRQ profile for the WRQ DDE<br />
server name for that session. HOST_TOPICx is the required macro language “rcl”<br />
sub-topic. The default server name is the executable name, for example, R2WIN<br />
for the r2win.exe.<br />
For <strong>Vlterm</strong> to interact with multiple Reflection windows, you must modify the<br />
configuration of at least one of the session profiles to ensure the DDE connection<br />
names are unique among the Reflection windows.<br />
To change the server name for Reflection version 6.x and earlier<br />
For versions of Reflection earlier than 7.0, choose SETUP, DDE from the<br />
emulator menu to configure the DDE SERVER NAME. Specify a unique server<br />
name, for example:<br />
DDE SERVER NAME=MOSAIX<br />
or<br />
DDE SERVER NAME=HOST<br />
To change the server name for Reflection version 7<br />
1 Choose the Setup/View settings selection on the toolbar.<br />
2 Search for DDE Server Name.<br />
3 Select DDE Server Name.<br />
By default, Reflection sets R1WIN as the server name.<br />
4 Changethenametoauniqueidentifier.<br />
The recommended name is the name of the session, for example MOSAIX for<br />
the Mosaix system session.<br />
5 Search for Multipage Terminal.
158 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
6 Select Multipage Terminal.<br />
By default, Reflection sets Multipage Terminal to On.<br />
7 Change the selection to Off.<br />
Multipage Terminal set to off allows the session to store only one page of<br />
history. If more than one page of history is stored, <strong>Vlterm</strong> doesn’t cut the<br />
correct information the Mosaix session screen.<br />
8 Save the session and restart it.<br />
The DDE Server Enable option should be selected. Save the profile with this<br />
configuration, then use this profile on all agent stations.<br />
To send special characters to Reflection sessions, use the ASCII equivalents. For<br />
example, to send an Enter key, send the ASCII control sequence as:<br />
PASTE_CMD2=^M<br />
See Appendix E, “ASCII and VT100 Control Sequences,” beginning on page 111<br />
for more information.<br />
WRQ R1 Sample<br />
The following is a sample portion of a vlterm.ini file set up for WRQ R1.<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=TERM<br />
HOST_TOPIC0=RCL<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=Ref_dde.ini<br />
[CNP2]<br />
CNP_NAME=Paste ordinary and special characters<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=abc123<br />
PASTE_CMD2=^M
Emulator Specifics 159<br />
[CNP3]<br />
CNP_NAME=CNP to R1 to R1<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=1<br />
NUMBER_PASTE_COMMANDS=1<br />
;(row1,column1,row2,column2) counting from 0..79, 0..23<br />
CUT_CMD1=(0,8,0,16)<br />
PASTE_CMD1=C(1)<br />
WRQ R2 Sample<br />
To configure WRQ R2:<br />
Choose SETUP, DDE from the emulator menu to configure the DDE SERVER<br />
NAME.<br />
Specify a unique server name, for example,<br />
DDE SERVER NAME=MOSAIX<br />
or<br />
DDE SERVER NAME=HOST<br />
Ensure that DDE Server Enable is selected.<br />
WRQ R8 Reflection for Windows Sample<br />
The following is a partial vlterm.ini file set up for WRQ R8, Reflection for<br />
Windows version 4.10.<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=R8WIN<br />
HOST_TOPIC0=CONTROL<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=R841_DDE.INI
160 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
[CNP21]<br />
;R8 format (RnCn:RnCn)<br />
CUT_CMD1=(R1C1:R1C15)<br />
PASTE_CMD1=C(1)<br />
PASTE_CMD2=Other(RC_ENTERKEY)<br />
PASTE_CMD3=OIA<br />
PASTE_CMD4=some text<br />
Specify the R841_DDE.ini file as the DDE_CONFIG_SESSION. Note the syntax<br />
for <strong>Vlterm</strong> as a DDE client to execute a Reflection Basic command in<br />
PASTE_CMD2=Other() in the preceding example.<br />
R841_DDE.ini File<br />
[DDE_PASTECUTS]<br />
NumberOfLines=1<br />
Line1=LinkExecute rcTransmitANSI(“&PasteVar1&”)<br />
R8 Version 4.10 Special Keystroke Commands<br />
RC_ALTCURSORKEY RC_ATTNKEY RC_AU1KEY RC_AU2KEY<br />
RC_AU3KEY RC_AU4KEY RC_AU5KEY RC_AU6KEY<br />
RC_AU7KEY RC_AU8KEY RC_AU9KEY RC_AU10KEY<br />
RC_AU11KEY RC_AU12KEY RC_AU13KEY RC_AU14KEY<br />
RC_AU15KEY RC_AU16KEY RC_BACKSPACEKEY RC_BACKTABKEY<br />
RC_BACKWARDKEY RC_CLEARKEY RC_CLEARPARTITIONKEY RC_CURSORBLINKKEY<br />
RC_CURSORSELECTKEY RC_DELETECHARKEY RC_DELETEKEY RC_DELETEWORDKEY<br />
RC_DEVICECANCELKEY RC_DOWNDOUBLEKEY RC_DOWNKEY RC_DUPKEY<br />
RC_DUPLICATEKEY RC_ENTERKEY RC_ERASEEOFKEY<br />
RC_ERASEINPUTKEY RC_EXTGRKEY RC_F1KEY RC_F2KEY<br />
RC_F3KEY RC_F4KEY RC_F5KEY RC_F6KEY<br />
RC_F7KEY RC_F8KEY RC_F9KEY RC_F10KEY<br />
RC_F11KEY RC_F12KEY RC_F13KEY RC_F14KEY<br />
RC_F15KEY RC_F16KEY RC_F17KEY RC_F18KEY<br />
RC_F19KEY RC_F20KEY RC_F21KEY RC_F22KEY<br />
RC_F23KEY RC_F24KEY RC_FIELDADVANCEKEY RC_FIELDBACKSPACEKEY<br />
RC_FIELDDELIMKEY RC_FIELDEXITKEY RC_FIELDMARKKEY RC_FIELDMINUSKEY<br />
RC_FIELDPLUSKEY RC_FORWARDKEY RC_HELPKEY RC_HEXKEY<br />
RC_HOMEKEY RC_IDENTKEY RC_INSERTKEY
R8 Version 4.10 Special Keystroke Commands (Continued)<br />
Copyright © 1994 Walker Richer & Quinn, Inc.<br />
WRQ R8 Reflection for IBM for Windows 95 Sample<br />
Emulator Specifics 161<br />
RC_JUMPKEY RC_KEYCLICKKEY RC_KP0KEY RC_KP1KEY<br />
RC_KP2KEY RC_KP3KEY RC_KP4KEY RC_KP5KEY<br />
RC_KP6KEY RC_KP7KEY RC_KP8KEY RC_KP9KEY<br />
RC_KPDECIMALKEY RC_KPDIVIDEKEY RC_KPENTERKEY RC_KPMINUSKEY<br />
RC_KPMULTIPLYKEY RC_KPNUMLOCKKEY RC_KPPLUSKEY RC_LEFTDOUBLEKEY<br />
RC_LEFTKEY RC_LOCALHELPKEY RC_LUJUMPKEY RC_NEWLINEKEY<br />
RC_PA1KEY RC_PA2KEY RC_PA3KEY RC_PAGEDOWNKEY<br />
RC_PAGEUPKEY RC_PANLEFTKEY RC_PANRIGHTKEY RC_PARTITIONJUMPKEY<br />
RC_PAUSEKEY RC_PF1KEY RC_PF2KEY<br />
RC_PF3KEY RC_PF4KEY RC_PF5KEY RC_PF6KEY<br />
RC_PF7KEY RC_PF8KEY RC_PF9KEY RC_PF10KEY<br />
RC_PF11KEY RC_PF12KEY RC_PF13KEY RC_PF14KEY<br />
RC_PF15KEY RC_PF16KEY RC_PF17KEY RC_PF18KEY<br />
RC_PF19KEY RC_PF20KEY RC_PF21KEY RC_PF22KEY<br />
RC_PF23KEY RC_PF24KEY RC_PLAYKEY RC_PLUSCRKEY<br />
RC_PRINTKEY RC_PRINTPARTKEY RC_QUITKEY RC_RECORDKEY<br />
RC_RESETKEY RC_RIGHTDOUBLEKEY RC_RIGHTKEY RC_RULEKEY<br />
RC_SCREENFORMAT<br />
CHANGEKEY<br />
RC_SCROLLDOWNKEY RC_SCROLLLEFTKEY RC_SCROLLRIGHTKEY<br />
RC_SCROLLUPKEY RC_SETUPKEY RC_SLPAUTOENTERKEY<br />
RC_SYSREQSTKEY<br />
RC_UPKEY<br />
RC_TABKEY RC_TESTKEY RC_UPDOUBLEKEY<br />
The following is a sample of a vlterm.ini file set up for WRQ R8, Reflection for<br />
IBM for Windows 95, version 6.10.<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=R8WIN<br />
HOST_TOPIC0=CONTROL<br />
HOST_ITEM0=<br />
USE_DDE0=Y<br />
DDE_CONFIG_SESSION0=R861_DDE.INI
162 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
[CNP21]<br />
;R8 format (RnCn:RnCn)<br />
CUT_CMD1=(R1C1:R1C15)<br />
PASTE_CMD1=C(1)<br />
PASTE_CMD2=Other(rcIbmEnterKey)<br />
PASTE_CMD3=OIA<br />
PASTE_CMD4=some text<br />
Specify the R861_DDE.ini file as the DDE_CONFIG_SESSION. Note the syntax<br />
for <strong>Vlterm</strong> as a DDE client to execute a Reflection Basic command in<br />
PASTE_CMD2=Other() in the above example.<br />
Application is the Reflection object, with various methods to invoke such as<br />
transmit an ANSI character string.<br />
R861_DDE.ini File<br />
[DDE_PASTECUTS]<br />
NumberOfLines=1<br />
Line1=LinkExecute Application.TransmitANSI “&PasteVar1&”<br />
R8 Version 6.10 Special Keystroke Commands<br />
rcIbmAltCursorKey rcIbmAttnKey rcIbmAu1Key rcIbmAu2Key<br />
rcIbmAu3Key rcIbmAu4Key rcIbmAu5Key rcIbmAu6Key<br />
rcIbmAu7Key rcIbmAu8Key rcIbmAu9Key rcIbmAu10Key<br />
rcIbmAu11Key rcIbmAu12Key rcIbmAu13Key rcIbmAu14Key<br />
rcIbmAu15Key rcIbmAu16Key rcIbmBackspaceKey rcIbmBackTabKey<br />
rcIbmClearKey rcIbmClearPartitionKey rcIbmCursorBinkKey rcIbmCursorSelectKey<br />
rcIbmDeleteCharKey rcIbmDeleteKey rcIbmDeleteWordKey rcIbmDeviceCancelKey<br />
rcIbmDownDubleKey rcIbmDownKey rcIbmDupKey<br />
rcIbmDuplicateKey rcIbmEnterKey rcIbmEraseEofKey rcIbmEraseInputKey<br />
rcIbmExtGrKey rcIbmF1Key rcIbmF2Key rcIbmF3Key<br />
rcIbmF4Key rcIbmF5Key rcIbmF6Key rcIbmF7Key<br />
rcIbmF8Key rcIbmF9Key rcIbmF10Key rcIbmF11Key<br />
rcIbmF12Key rcIbmF13Key rcIbmF14Key rcIbmF15Key<br />
rcIbmF16Key rcIbmF17Key rcIbmF18Key rcIbmF19Key<br />
rcIbmF20Key rcIbmF21Key rcIbmF22Key rcIbmF23Key<br />
rcIbmF24Key rcIbmFieldDelimKey rcIbmFieldExitKey rcIbmFieldMarkKey<br />
rcIbmFieldMinusKey rcIbmFieldPlusKey rcIbmHelpKey
R8 Version 6.10 Special Keystroke Commands<br />
Copyright © 1994-1997 WRQ, Inc.<br />
Emulator Specifics 163<br />
rcIbmHexKey rcIbmHomeKey rcIbmIdentKey rcIbmInsertKey<br />
rcIbmKeyClickKey rcIbmLeftDoubleKey rcIbmLeftKey rcIbmNewLineKey<br />
rcIbmPa1Key rcIbmPa2Key rcIbmPa3Key rcIbmPageDownKey<br />
rcIbmPageUpKey rcIbmPanLeftKey rcIbmPanRightKey rcIbmPartitionJumpKey<br />
rcIbmPf1Key rcIbmPf2Key rcIbmPf3Key rcIbmPf4Key<br />
rcIbmPf5Key rcIbmPf6Key rcIbmPf7Key rcIbmPf8Key<br />
rcIbmPf9Key rcIbmPf10Key rcIbmPf11Key rcIbmPf12Key<br />
rcIbmPf13Key rcIbmPf14Key rcIbmPf15Key rcIbmPf16Key<br />
rcIbmPf17Key rcIbmPf18Key rcIbmPf19Key<br />
rcIbmPf20Key rcIbmPf21Key rcIbmPf22Key rcIbmPf23Key<br />
rcIbmPf24Key rcIbmPlusCrKey rcIbmPrintKey rcIbmPrintPartKey<br />
rcIbmResetKey rcIbmRightDoubleKey rcIbmRightKey rcIbmRuleKey<br />
rcIbmScrollDownKey rcIbmScrollLeftKey rcIbmScrollRightKey rcIbmScrollUpKey<br />
rcIbmSetupKey rcIbmSlpAutoEnterKey rcIbmSysReqstKey rcIbmTabKey<br />
rcIbmTestKey rcIbmUpDoubleKey rcIbmUpKey
164 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Zephyr Development Passport 3270 Client<br />
The Passport 3270 Client Version 5.0 by Zephyr Development Corporation is for<br />
Windows 95 systems. This section deals with issues specific to the Passport<br />
emulator and <strong>Vlterm</strong>. As with Chameleon’s Hostlink, <strong>Vlterm</strong> can communicate<br />
with Passport two different ways: SendKeys() and HLLAPI.<br />
Because the Passport package doesn’t support VT100 emulation, set up the<br />
configuration to run an alternate emulator for the VT100 connection to the Mosaix<br />
system.<br />
NOTE The Passport driver connection to <strong>Vlterm</strong> fails if the other applications<br />
(terminal or printer sessions) are not already open. In order to connect to such a<br />
window, use a wildcard(*) in the [WIN_TITLE] section of the vlterm.ini file.<br />
Examples<br />
[WIN_TITLE]<br />
;This line is for the Zephyr driver<br />
HWIN0= Hllapi*<br />
;This is the Passport session connection to MOSAIX.<br />
HWIN1=(A) Passport*<br />
;This is the Telnet connection to the Host.<br />
HWIN2= Telnet*<br />
Pasting regular text works by using SendKeys with the command:<br />
Paste_Cmd1=SendKeys =This is sample text.<br />
To paste of special keys is possible by de-referencing the key with the @ character.<br />
The example below illustrates the special character @ preceding E for <br />
[CNP1]<br />
CNP_NAME=Paste Special key for ENTER to Host<br />
CUT_SESSION=0<br />
PASTE_SESSION=1<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=1<br />
PASTE_CMD1=@E<br />
The HLLAPI driver Session Name should be A, it must be one character in length.<br />
HTERM0=c:\Program Files\<strong>Vlterm</strong>\ZWHLDR32.EXE /SN=A /Debug=OFF
Emulator Specifics 165<br />
NOTE The .dll file for the driver must be installed to c:\Program<br />
Files\<strong>Vlterm</strong>\passhll.dll. This is the same directory for the HLLAPI driver.<br />
Sample <strong>Vlterm</strong>.ini File for Passport 3270 Client<br />
[GLOBAL]<br />
DEBUG=OFF<br />
MAX_SESSIONS=2<br />
MAX_CUTS=3<br />
MAX_PASTES=15<br />
NUMBER_CNPS=4<br />
NUMBER_VARS=3<br />
AUTO_INTERVAL=3<br />
AUTO_ENABLED=<br />
[SHELL]<br />
HTERM0=C:\WINDOWS\TELNET.EXE<br />
s_delay0=3<br />
HTERM1=c:\Program Files\<strong>Vlterm</strong>\ZWHLDR32.EXE /SN=A /Debug=OFF<br />
s_delay1=3<br />
HTERM2=\PASSPORT.EXE C:\PROGRAM<br />
FILES\PASSPORT\PASSPORT.ZWS<br />
s_delay2=3<br />
[WIN_TITLE]<br />
; MOSAIX<br />
HWIN0=Telnet*<br />
; HLLAPI driver<br />
HWIN1=Hllapi*<br />
; HOST<br />
HWIN2=(A) Passport*<br />
[DDE_SESSION]<br />
DDE_DELAY0=3<br />
HOST_SERVER0=
166 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
HOST_TOPIC0=<br />
HOST_ITEM0=<br />
USE_DDE0=N<br />
DDE_CONFIG_SESSION0=<br />
DDE_DELAY1=3<br />
HOST_SERVER1=zwhldr32<br />
HOST_TOPIC1= A<br />
HOST_ITEM1=<br />
USE_DDE1=Y<br />
DDE_CONFIG_SESSION1=DRV_DDE.INI<br />
DDE_DELAY2=3<br />
HOST_SERVER2=<br />
HOST_TOPIC2=<br />
HOST_ITEM2=<br />
USE_DDE2=N<br />
DDE_CONFIG_SESSION2=<br />
; DDE session timeout in seconds<br />
DDE_TIMEOUT=20<br />
[FKEY_BUTTONS]<br />
DISPLAY_FKEYS = Y<br />
ROW1=N<br />
ROW2=Y<br />
ROW3=Y<br />
ROW4=N<br />
FKEYS_ON_TOP=N<br />
CAPTION=<strong>Vlterm</strong><br />
[CNP1]<br />
CNP_NAME=Paste only to Host<br />
CUT_SESSION=0<br />
PASTE_SESSION=1
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=3<br />
CUT_CMD1=ClipCut(%ea%ec~(2,4,30))<br />
PASTE_CMD1=C(1)<br />
PASTE_CMD2=Hello<br />
PASTE_CMD3=@E<br />
Emulator Specifics 167
168 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong>
Special EXTRA! Key Sequences G<br />
Use the following table to identify the Attachmate EXTRA! mnemonic command<br />
that represents a particular VT function key. When you specify a mnemonic in a<br />
<strong>Vlterm</strong> script, enclose it in angle brackets (). An online help file in the Macro<br />
Editor describes using Keyboard Mnemonics against emulator sessions. From the<br />
Macro Editor, select Help | Index | Key Mnemonics, PC-Host | VTFunction Keys.<br />
3270 Function<br />
Key Mnemonic<br />
5250 Function<br />
Key Mnemonic<br />
VT Function<br />
Key Mnemonic<br />
Attention Attn Attention Attn Backspace Backspace<br />
Backspace BackSpace Backspace BackSpace Break Signal Break<br />
Backtab (Left<br />
Tab)<br />
BackTab Backtab (Left<br />
Tab)<br />
BackTab Compose<br />
Sequence<br />
Compose<br />
Caps Lock CapsLock Begin Line BeginLine Cursor Down Down<br />
Clear Clear Clear Clear Cursor Left Left<br />
Cursor Down Down Command 1 PF1 Cursor Right Right<br />
Cursor Left Left Command 2 PF2 Cursor Up Up<br />
Cursor Left 2<br />
Columns<br />
Left2 Command 3 PF3 Escape Esc<br />
Cursor Right Right Command 4 PF4 F1 F1<br />
Cursor Right 2<br />
Columns<br />
Right2 Command 5 PF5 F2 F2<br />
Cursor Select CursorSelect Command 6 PF6 F3 F3<br />
Cursor Up Up Command 7 PF7 F4 F4<br />
Delete Char Delete Command 8 PF8 F5 F5<br />
Duplicate Dup Command 9 PF9 F6 F6<br />
169
170 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
3270 Function<br />
Key Mnemonic<br />
Enter Enter Command 10 PF10 F7 F7<br />
Erase EOF EraseEOF Command 11 PF11 F8 F8<br />
Erase Input EraseInput Command 12 PF12 F9 F9<br />
FieldMark FieldMark Command 13 PF13 F10 F10<br />
Home Home Command 14 PF14 F11 F11<br />
Insert Insert Command 15 PF15 F12 F12<br />
Left Tab (Back<br />
Tab)<br />
BackTab Command 16 PF16 F13 F13<br />
New Line NewLine Command 17 PF17 F14 F14<br />
Pen Select PenSel Command 18 PF18 F15 F15<br />
Print Print Command 19 PF19 F16 F16<br />
Reset Reset Command 20 PF20 F17 F17<br />
Shift ShiftOn Command 21 PF21 F18 F18<br />
System Request SysReq Command 22 PF22 F19 F19<br />
Tab (Right Tab) Tab Command 23 PF23 F20 F20<br />
PA1 PA1 Command 24 PF24 Find Find<br />
PA2 PA2 Cursor Down Down Insert Insert Here<br />
PA3 PA3 Cursor Down 2<br />
rows<br />
Down2 Hold Hold<br />
PF1 PF1 Cursor Left Left Keypad - Keypad -<br />
PF2 PF2 Cursor Left 2<br />
columns<br />
Left2 Keypad , Keypad ,<br />
PF3 PF3 Cursor Right Right Keypad Enter Keypad<br />
Enter<br />
PF4 PF4 Cursor Right 2<br />
columns<br />
5250 Function<br />
Key Mnemonic<br />
VT Function<br />
Key Mnemonic<br />
Right2 Keypad . Keypad .<br />
PF5 PF5 Cursor Select CursorSelect Keypad 0 Keypad 0<br />
PF6 PF6 Cursor Up Up Keypad 1 Keypad 1
3270 Function<br />
Key Mnemonic<br />
PF7 PF7 Cursor Up 2<br />
rows<br />
Special EXTRA! Key Sequences 171<br />
Up2 Keypad 2 Keypad 2<br />
PF8 PF8 Delete Char Delete Keypad 3 Keypad 3<br />
PF9 PF9 Duplicate Dup Keypad 4 Keypad 4<br />
PF10 PF10 End of Line EndLine Keypad 5 Keypad 5<br />
PF11 PF11 Enter Enter Keypad 6 Keypad 6<br />
PF12 PF12 Erase EOF EraseEOF Keypad 7 Keypad 7<br />
PF13 PF13 Erase EOL EraseEOL Keypad 8 Keypad 8<br />
PF14 PF14 Erase Input EraseInput Keypad 9 Keypad 9<br />
PF15 PF15 Field Exit FieldExit Next Screen Next<br />
PF16 PF16 Field Mark FieldMark PF1 PF1<br />
PF17 PF17 Field Minus FieldMinus PF2 PF2<br />
PF18 PF18 Field Plus FieldPlus PF3 PF3<br />
PF19 PF19 Help Help PF4 PF4<br />
PF20 PF20 Home Home Previous Screen Prev<br />
PF21 PF21 Insert Mode InsertMode Print Screen Print<br />
PF22 PF22 Insert Toggle Insert Remove Remove<br />
PF23 PF23 Left Tab (Back<br />
Tab)<br />
5250 Function<br />
Key Mnemonic<br />
BackTab Select Select<br />
PF24 PF24 New Line NewLine Setup Setup<br />
PA1 @x Tab Tab<br />
PA2 @y Enter Ctrl+M<br />
PA3 @z<br />
Print Print<br />
Reset Reset<br />
Right Tab (Tab) Tab<br />
Roll Down RollDown<br />
VT Function<br />
Key Mnemonic
172 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
3270 Function<br />
Key Mnemonic<br />
5250 Function<br />
Key Mnemonic<br />
Roll Up RollUp<br />
System Request SysReq<br />
Tab (Right Tab) Tab<br />
Copyright © 1996, Attachmate Corporation. All Rights Reserved.<br />
VT Function<br />
Key Mnemonic
Configuring For Driver Files H<br />
If the emulator you use communicates with HLLAPI, COM, or another<br />
proprietary API, you need to use a driver to communicate between <strong>Vlterm</strong> and the<br />
emulator. When this is the case, there are special vlterm.ini configuration<br />
considerations. Consider the following recommendations when setting up a<br />
<strong>Vlterm</strong> system that uses a driver:<br />
• The PASTE_SESSION= for a CNPn section should reference the driver<br />
session number instead of the emulator session.<br />
• After a paste, set the focus to the appropriate window using the ToggleTo(n)<br />
command with the FocusRemain(Y) command. This is necessary because<br />
the PASTE_SESSION= parameter in a CNPn section determines what<br />
session receives focus, yet the session to which you issue the paste<br />
commands is the hidden driver session, not the user display session.<br />
• Do not use the TGL9 action entry in the vlkeys.ini file. Use a specific TGLn<br />
to set the focus to a specific session. Otherwise, the toggle will switch<br />
between all sessions, including the hidden driver interface.<br />
• Configure an EXIT button to close the driver processes. See the following<br />
excerpt from a vlterm.ini file that shows an Attachmate EXTRA! driver<br />
example.<br />
[CNP2]<br />
CNP_NAME=Stop Extra driver to host session<br />
CUT_SESSION=2<br />
PASTE_SESSION=2<br />
NUMBER_CUT_COMMANDS=0<br />
NUMBER_PASTE_COMMANDS=2<br />
PASTE_CMD1=Other([exit()])<br />
PASTE_CMD2=CNP3<br />
173
174 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
• Note the relationship among the following (the example shows an<br />
Attachmate EXTRA! setup):<br />
The [SHELL] section entry to start the driver interface must specify a unique<br />
/SN= parameter for each instance:<br />
C:\Program Files\<strong>Vlterm</strong>\extdrv.exe /SN=MOSAIX /Debug=Off<br />
This parameter must be used in the corresponding [DDE_SESSION] section<br />
entries:<br />
HOST_SERVER0=ExtDrv<br />
HOST_TOPIC0=MOSAIX<br />
The [WIN_TITLE] section must include:<br />
Extra Personal Client Driver - MOSAIX
Error Messages I<br />
<strong>Vlterm</strong> displays error messages in the following format.<br />
STARTUP.BAS Module<br />
CONFIG.CNP Procedure Errors<br />
Text(6) To MAX_SESSIONS MUST be added to CP.FRM!<br />
Issued when MAX_SESSIONS is greater than five. A text box is defined in<br />
CP.FRM for each session to pass DDE data between the DDE client (<strong>Vlterm</strong>) and<br />
the DDE server. Currently 6 text boxes, TEXT0 - TEXT 5 are defined as a control<br />
array. These can’t be added dynamically at run time and must be added to the form<br />
at design time.<br />
Error in VLKEYS.INI key &i& is missing a comma. Every key entry must have 3<br />
commas.<br />
Issued when a key file is not found or three commas aren’t present for each key,<br />
1-48.<br />
175
176 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Error in Fkeys.ini key &i& is missing a comma. Every key entry must have 3<br />
commas.<br />
FKEYS.INI entries are in the same format as VLKEYS.INI for compatability.The<br />
same rules apply.<br />
Error Reading Configuration Files: &Error(Err)& &Err&<br />
Error exit for CONFIG.CNP. Check according to the Visual Basic error. One<br />
common error is Type Mismatch, which frequently occurs when a non-numeric<br />
field is used to subscript an array. The base cause is usually an incorrect format or<br />
omitted field.<br />
FOCUS_APPS Procedure Errors<br />
Error activating “ & HWIN(i) - &Err& &Error(Err)& . Check [WIN_TITLE] entry in<br />
vlterm.ini<br />
The ini title doesn’t match the emulator title. Check for exact window title<br />
description, including spacing.<br />
HOST_LINK Procedure Errors<br />
Unable to initiate DDE conversation with &HWIN(i)& &Error(Err)& &Err&. Check<br />
[DDE_SESSION] entries for HOST_SERVER and HOST_TOPIC in VLTERM.INI.<br />
When <strong>Vlterm</strong> issues a DDE error message, it has started the emulator sessions and<br />
is attempting to establish a DDE conversation with the emulators. The error<br />
message reports which session it is having trouble with, either session0 or<br />
session1.<br />
There may be several reasons for this error message:<br />
• The emulators have been launched, but the connections to the respective<br />
hosts have not been established. The emulator DDE server typically will not<br />
run unless the session is connected to a host system and ready for use.<br />
Test this by manually starting each session and logging in to each host, then<br />
run <strong>Vlterm</strong>. If <strong>Vlterm</strong> can start after manually starting each emulator, it is a<br />
timing issue with the [SHELL] section automatic launch of the emulators.
Error Messages 177<br />
Increase the delay entries between starting each emulator and trying to DDE<br />
link to the first one by changing:<br />
s_delay0=1000<br />
s_delay1=1000<br />
• The HOST_SERVER and HOST_TOPIC entries in the vlterm.ini file for the<br />
emulator session generating the error are incorrect. The HOST_SERVER<br />
entry is typically the executable name, the HOST_TOPIC entry is the profile<br />
name. For example, for Wall Data Rumba, it is:<br />
HOST_SERVER0=rumbavt<br />
HOST_TOPIC0=mosaix.vtp<br />
INIT_CNP Procedure Errors<br />
Incorrect command line parameter: Expected name of initialization file: (ex.<br />
C:\DSI \VLTERM.INI)<br />
The default location for the vlterm.ini is the current path with the name vlterm.ini.<br />
This message is issued if the optional file name specified on the command line<br />
does not have the extension .ini.<br />
An instance of <strong>Vlterm</strong> is currently running.<br />
<strong>Vlterm</strong> is already running. Check the Windows task list. Multiple copies of <strong>Vlterm</strong><br />
may not be run on the same workstation.<br />
Error setting window as Topmost &rc&<br />
The “loading” message could not be set as topmost, probably indicating that a<br />
window was already set as topmost. This message also appears when the Control<br />
Panel is used and could not be set as topmost.<br />
Unable to start Host session: &(i)& &Error(Err)&. Check [SHELL] entry for<br />
HTERM &i& in VLTERM.INI.<br />
An error occurred trying to Shell a session. Try running the exact command line<br />
from Program Manager to verify correct names.
178 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
FOCUS_APPS Procedure Error<br />
Error activating session” &(i)& - &Err& &Error(Err)& . Check [WIN_TITLE] entry<br />
in VLTERM.INI.<br />
The WIN_TITLE entry does not match the actual window title. Check spaces and<br />
exact spelling of the name.<br />
CNP.BAS Module<br />
CUT_DATA Procedure Error<br />
Unable to cut data for CNP &cur_CNP_num& CUT_CMD &i& . &Error(Err)&<br />
&Err&<br />
An error occurred during the cut. Note the complete error message and notify<br />
Custom Engineering.<br />
PASTE_DATA Procedure Errors<br />
Error Pasting to Host: Unable to clear OIA<br />
The host did not respond and unlock the keyboard in a 3270 session. Verify that<br />
the host is active.<br />
Error Pasting to Host: Wait command did not find selected text<br />
Reflections only. The time limit expired without receiving the expected text on a<br />
Wait command. Verify that the host is active and the text should be received on<br />
that screen.<br />
Error Pasting to &HWIN(cur_paste_sess)& . &Err& &Error(Err)& . CNP<br />
&cur_CNP_num& CMD &I&<br />
This message may appear for many reasons. Verify that the session is active and<br />
on the correct screen and that the command syntax is valid. Processing continues.
SendDDEMessage Procedure Error<br />
Error Messages 179<br />
The function “&sPasteCmd&” is not supported going to the<br />
“&ghWinCaptions(Session)&” emulator.<br />
The paste command cannot be executed because of a problem communicating to<br />
the intended session. Verify the xxx_DDE.ini file entries for the paste command<br />
task type. Invalid or missing DDE communications handling sections within a<br />
xxx_DDE.ini file will generate this error.<br />
SEND_KEY Procedure Errors<br />
Session &HWIN(0)& not active. Unable to continue processing.<br />
An attempt was made to send a release to Mosaix, but the Mosaix session was not<br />
active. Processing terminates and <strong>Vlterm</strong> must be restarted.<br />
Unable to send key to Mosaix: &Err& &Error(Err)&<br />
An error was trapped during the DDE send to the Mosaix session. Processing<br />
continues. If the error is 285 or another DDE type error, try the menu command<br />
RELINK DDE, particularly if a Telnet session may have timed out.<br />
SEND_KEY Error in SetActiveWindow<br />
An attempt was made to focus on the Mosaix window but Windows indicated that<br />
the task was not active. Find out why the Mosaix emulator isn't running.<br />
SEND_PFKEY Procedure Errors<br />
Session &HWIN(cur_focus_flag)& not active. Unable to continue processing.<br />
An attempt was made to send a PF Key to a host session, but the emulator task was<br />
not active.
180 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
Unable to send PF key to host: &Err& &Error(Err) & An error occurred during<br />
the DDE send.<br />
Processing continues.<br />
SETUP_CNP Procedure Errors<br />
Session &HWIN(cur_cut_sess)& not active. Unable to continue processing.<br />
The cut session in a CNP is not active.<br />
Session &HWIN(cur_paste_sess)& not active. Unable to continue processing.<br />
The paste session in a CNP is not active.<br />
TOGGLE_HOST Procedure Error<br />
Session &HWIN(key_event_ number)& not active. Unable to continue<br />
processing.<br />
The selected session in a TGL is not active.<br />
CP.FRM Module<br />
AUTO_CNP.TIMER Procedure Error<br />
Error in Auto CNP<br />
An error occurred in the automatic CNP timer routine. Call Mosaix Customer<br />
<strong>Support</strong>.
Form.Resize Procedure Errors<br />
Error Messages 181<br />
Error setting window as NONTopmost &rc&<br />
An error occurred when the Control Panel was minimized. Call Mosaix Customer<br />
<strong>Support</strong>.<br />
Error setting window as Topmost “ &rc&<br />
An error occurred when the Control Panel was maximized. Call Mosaix Customer<br />
<strong>Support</strong>.<br />
Menu_exit.Click Procedure Error<br />
Exit <strong>Vlterm</strong>: Are you sure?<br />
Exit verification from the popup menu.<br />
FKEYS.FRM Module<br />
KeyButton.Click Procedure Errors<br />
Error in KeyButton_Click<br />
This error may be caused by bad initialization data for the NUMBER_CNPS<br />
parameter in the vlterm.ini file. When VLTERM uses a key parameter to allocate<br />
memory for the program’s execution, it has the potential for an error. The value in<br />
the number of CNPS parameter, is used to dimension an array. When this number<br />
is too small, the array is not allocated with enough memory. This, in turn, causes<br />
a crash when the array is de-referenced beyond its bounds.<br />
This line from a vlterm.ini file shows such an example.<br />
NUMBER_CNPS=1 ;Thisline is insufficient for 27 cut and paste actions.<br />
The fact that the NUMBER_CNPS is one, means that the array only has one array<br />
item. When the array item for CNP5 is accessed, the KeyButton_Click routine<br />
brings up an error message.
182 <strong>Vlterm</strong> Programmer’s <strong>Reference</strong><br />
The error is solved with the correct number setting in vlterm.ini:<br />
NUMBER_CNPS=27 ;This line is the correct setting.<br />
The number used should match exactly the number of CNPs defined.<br />
LOGON.FRM Module<br />
cmdLOGON.Click Procedure Errors<br />
Mosaix LOGON and Password are required. Please retry.<br />
For the predefined host logon form, the host Logon and Password are required.<br />
Please retry.<br />
VERIFY PASSWORD must be entered.<br />
For the predefined host logon form, a change to the password requires an entry in<br />
theVERIFYPASSWORDfield.<br />
Your NEW PASSWORD is not the same as the VERIFY PASSWORD! Please<br />
reenter.<br />
For the predefined host logon form, a change in the new password field requires a<br />
matching entry in the VERIFY PASSWORD field.
Symbols<br />
@x<br />
paste command 39<br />
special keys 107–110<br />
A<br />
Action setting<br />
formn.ini 79<br />
vlkeys.ini 12<br />
API<br />
configuration considerations 173<br />
inter-application communications<br />
tool 5<br />
Application Programming Interface See<br />
API<br />
ASCII control sequences 111<br />
Attachmate<br />
emulator specifics 113–120<br />
EXTRA! @x keys 107–110<br />
EXTRA! Bundle for TCP/IP 116–120<br />
EXTRA! Cursor() paste command 42<br />
EXTRA! cut command format 36<br />
EXTRA! Enterprise 5<br />
EXTRA! for Windows 5<br />
EXTRA! key sequences 169<br />
EXTRA! mnemonic commands 169<br />
EXTRA! Personal Client 116–120<br />
EXTRA! v4.3 115<br />
KEA! 5, 27, 28<br />
KEA! cut command format 35<br />
Netware LAN WS 113–114<br />
OLE communications 116<br />
SendKeys communications 116<br />
AUTO_CUT_COMPARE setting,<br />
vlterm.ini 32<br />
AUTO_ENABLED setting, vlterm.ini 23<br />
AUTO_INTERVAL setting, vlterm.ini 23<br />
automatic cut and paste 63<br />
B<br />
Button object type, forms 75<br />
Index<br />
C<br />
C() paste command 39<br />
Cancel setting, formn.ini 79<br />
Caption setting<br />
formn.ini 79<br />
vlterm.ini 29<br />
CheckBox object type, forms 75<br />
ClipCopyBlock() paste command 40<br />
ClipCut() cut command 37<br />
ClipGet() paste command 41<br />
ClipSet() paste command 41<br />
CloseForm setting, formn.ini 80<br />
CNP_TYPE setting, vlterm.ini 31<br />
183
184 Index<br />
[CNPn] section, vlterm.ini<br />
cut command formats 35–37<br />
paste commands 39–61<br />
settings 30–33<br />
Color setting, vlkeys.ini 13<br />
COM configuration considerations 173<br />
ComboField object type, forms 75<br />
configuration files 10<br />
vlkeys.ini 11–17<br />
vlterm.ini 19–33<br />
See also vlkeys.ini sample files<br />
See also vlterm.ini sample files<br />
Contents setting, formn.ini 80<br />
control sequences 111<br />
ControlFocus setting, formn.ini 77<br />
copyblock, DDE.ini file variable 69<br />
Currency numeric format 92<br />
Cursor() paste command 42<br />
custom forms, loading 75<br />
cut commands<br />
formats 35–37<br />
SendKeys 101<br />
CUT_CMDn setting, vlterm.ini 32, 35–37<br />
CUT_SESSION setting, vlterm.ini 31<br />
CUTn|CVRn paste command 43<br />
CutVarn, DDE.ini file variable 69<br />
D<br />
date formats, FORMAT function 96–100<br />
General Date 97<br />
Long Date 97<br />
Medium Date 97<br />
sample format expressions 99<br />
Short Date 97<br />
user-defined date formats 97–100<br />
Date()<br />
paste command 44<br />
SetVarn subroutine 55<br />
DDE<br />
configuration files 10<br />
description 6<br />
inter-application communication<br />
tool 5<br />
vlterm.ini settings 26–29<br />
DDE.ini<br />
additional variables 72<br />
configuration settings 70–72<br />
copyblock variable 69<br />
CutVarn variable 69<br />
[DDE_CURSOR] section 70<br />
[DDE_CUTS] section 70<br />
[DDE_FINDS] section 71<br />
[DDE_OIAKBD] section 70<br />
[DDE_OTHER] section 71<br />
[DDE_PASTECUTS] section 70<br />
[DDE_PAUSE] section 71<br />
[DDE_PVAR] section 70<br />
[DDE_SENDFKEYS] section 72<br />
[DDE_SENDPFKEYS] section 72<br />
[DDE_SENDTHRU] section 71<br />
[DDE_WAITS] section 71<br />
file variables 68<br />
introducing 67<br />
Line variable 68<br />
LinkItem variable 68<br />
NumberOfLines variable 68<br />
sample file 72–74<br />
DDE_CONFIG_SESSIONn setting,<br />
vlterm.ini 29, 68<br />
DDE_DELAYn setting, vlterm.ini 28<br />
[DDE_SESSION] section, vlterm.ini<br />
settings 26–29
DDE_TIMEOUT setting, vlterm.ini 28<br />
DEBUG setting, vlterm.ini 22<br />
Delay() paste command 44<br />
DISPLAY_FKEYS setting, vlterm.ini 29<br />
DISPLAY_TOOLTIPS setting,<br />
vlterm.ini 30<br />
driver files<br />
configuration considerations 173<br />
EXTRA! recommendations 116<br />
DRV cut command format 36<br />
DynamicDataExchangeSee DDE<br />
E<br />
emulation applications<br />
@x Keys 107<br />
application names 27<br />
cut command formats 35–36<br />
emulator specifics 113–167<br />
Exceed 121–122<br />
EXTRA! Bundle for TCP/IP 116–120<br />
EXTRA! Personal Client 116–120<br />
EXTRA! v4.3 115<br />
Host systems 5<br />
IBM Pcomm 123<br />
identifier 28<br />
Irma 3270 124–125<br />
MiniSoft PowerTerm 126–127<br />
Mosaix system 5<br />
Netmanage Chameleon<br />
HostLink 128–130<br />
Netmanage Chameleon<br />
UnixLink 131–132<br />
Netware LAN WS 113–114<br />
PDSI Psched 133–137<br />
Persoft SmarTerm 138–139<br />
profile name 28<br />
Quarterdeck Procomm Plus 140–141<br />
Index 185<br />
SendKeys 142–143<br />
Teknekron On Demand 144–146<br />
Upstanding FASTerm for<br />
Windows 147–151<br />
Wall Data Rumba Office 152–156<br />
WRQ Reflection 157–163<br />
Zephyr Passport 3270 164–167<br />
error messages 175<br />
ERROR_LOG setting, vlterm.ini 25<br />
Exceed<br />
emulator specifics 121–122<br />
vlterm.ini sample file 121<br />
Exit_<strong>Vlterm</strong> paste command 45<br />
EXTRA!<br />
@x keys 107–110<br />
Bundle for TCP/IP 116–120<br />
Cursor() paste command 42<br />
cut command format 36<br />
driver file recommendations 116<br />
Enterprise 5<br />
for Windows 5<br />
mnemonic commands 169<br />
OLE communications 116<br />
Personal Client 116–120<br />
SendKeys communications 116<br />
special key sequences 169<br />
version 4.3 details 115<br />
vlterm.ini sample files 115, 117<br />
F<br />
File() paste command 45<br />
Find() paste command 46<br />
Fixed numeric format 92<br />
[FKEY_BUTTONS] section, vlterm.ini<br />
settings 29–30<br />
FKEYS_ON_TOP setting, vlterm.ini 29<br />
FKEYS_POSITION setting, vlterm.ini 30
186 Index<br />
Focus setting, vlkeys.ini 13<br />
FocusRemain() paste command 47<br />
FontBold setting, formn.ini 80<br />
FontSize setting, formn.ini 80<br />
ForeColor setting, formn.ini 81<br />
FORMAT function 91–100<br />
date formats 96–100<br />
numeric formats 91–96<br />
string formats 100<br />
syntax 91<br />
time formats 96–100<br />
FormatStr() paste command 47<br />
FormLoad() paste command 47<br />
formn.ini<br />
Action setting 79<br />
Cancel setting 79<br />
Caption setting 79<br />
CloseForm setting 80<br />
configuration settings 76–85<br />
Contents setting 80<br />
ControlFocus setting 77<br />
FontBold setting 80<br />
FontSize setting 80<br />
ForeColor setting 81<br />
[GLOBAL] section 77–78<br />
Height setting 81<br />
Left setting 81<br />
Mask setting 81<br />
MaxButton setting 78<br />
MinButton setting 78<br />
MultiDelimiter setting 82<br />
NumObjects setting 77<br />
Object setting 82<br />
object types 75<br />
[Objectn] section 79–85<br />
Parameters setting 82<br />
Password setting 83<br />
PasteIndex setting 83<br />
Position setting 77<br />
Required setting 83<br />
sample file 86–89<br />
SQLContents setting 84<br />
TabIndex setting 84<br />
Top setting 84<br />
Type setting 84<br />
UnloadOtherForms setting 78<br />
UseContentsData setting 85<br />
UserSetSize setting 77<br />
Value setting 85<br />
Width setting 85<br />
WindowStyle setting 78<br />
WindowTitle setting 78<br />
forms, loading 75<br />
function keys, toolbar equivalents 11<br />
FunctionKeys setting, vlterm.ini 25<br />
G<br />
General Date format 97<br />
General Number numeric format 92<br />
[GLOBAL] section<br />
vlterm.ini settings 22–25<br />
formn.ini 77–78<br />
H<br />
Height setting, formn.ini 81<br />
Hide_Fkeys paste command 48<br />
Hide_Logon paste command 48<br />
HLLAPI<br />
configuration 173<br />
Netmanage Chameleon HostLink 128<br />
Netmanage Chameleon<br />
UnixLink 131<br />
Netware LAN WS 113<br />
Zephyr Passport 3270 164<br />
Host systems emulation applications 5
HOST_SERVERn setting, vlterm.ini 27<br />
HOST_TOPICn setting, vlterm.ini 28<br />
HTERMn setting, vlterm.ini 25<br />
Hummingbird Communications Exceed<br />
emulator specifics 121–122<br />
HWINn setting, vlterm.ini 26<br />
I<br />
IBM<br />
Personal Communications<br />
emulator 123<br />
vlterm.ini sample file 123<br />
Input paste command 48<br />
installing <strong>Vlterm</strong><br />
command line options 9<br />
methods 9<br />
shortcut locations 10<br />
InString, SetVarn subroutine 56<br />
inter-application communications tools 5<br />
Irma<br />
@x keys 107–110<br />
emulator specifics 124–125<br />
Mainframe Display 27, 28<br />
multiple 3270 sessions 125<br />
single 3270 session 124<br />
K<br />
KEA! 5, 27, 28<br />
cut command format 35<br />
L<br />
Label object type, forms 75<br />
Label setting, vlkeys.ini 13<br />
Left setting, formn.ini 81<br />
LeftStr() paste command 49<br />
Like operator<br />
pattern matching rules 106<br />
syntax 105<br />
Line, DDE.ini file variable 68<br />
LinkItem, DDE.ini file variable 68<br />
ListField object type, forms 75<br />
Literal, SetVarn parameter 55<br />
Long Date format 97<br />
Long Time format 97<br />
Lookup() paste command 49<br />
Index 187<br />
M<br />
Mask setting, formn.ini 81<br />
MaskTextField object type, forms 75<br />
MathOnVars() paste command 50<br />
MAX_CUTS setting, vlterm.ini 23<br />
MAX_PASTES setting, vlterm.ini 23<br />
MAX_SESSIONS setting, vlterm.ini 22<br />
MaxButton setting, formn.ini 78<br />
Medium Date format 97<br />
Medium Time format 97<br />
Midstring, SetVarn subroutine 57<br />
MinButton setting, formn.ini 78<br />
MiniSoft<br />
PowerTerm 126–127<br />
vlterm.ini sample file 126<br />
Mosaix system emulation applications 5<br />
Msg paste command 50<br />
MultiDelimiter setting, formn.ini 82<br />
N<br />
Netmanage<br />
Chameleon HostLink 128–130<br />
Chameleon UnixLink 131–132<br />
HLLAPI 128, 131<br />
vlterm.ini sample files 128, 131
188 Index<br />
Netware LAN WS 113–114<br />
vlterm.ini sample file 113<br />
Non-Reserved Word paste command 50<br />
NUMBER_CNPS setting, vlterm.ini 23<br />
NUMBER_CUT_COMMANDS setting,<br />
vlterm.ini 31<br />
NUMBER_PASTE_COMMANDS<br />
setting, vlterm.ini 31<br />
NUMBER_VARS setting, vlterm.ini 24<br />
NumberOfLines, DDE.ini file variable 68<br />
numeric formats, FORMAT function 91–<br />
96<br />
Currency 92<br />
Fixed 92<br />
General Number 92<br />
On/Off 92<br />
Percent 92<br />
predefined numeric formats 92<br />
sample format expressions 96<br />
Scientific 92, 94<br />
Standard 92<br />
True/False 92<br />
user-defined numeric formats 93–96<br />
Yes/No 92<br />
NumObjects setting, formn.ini 77<br />
O<br />
Object Linking and Embedding See OLE<br />
Object setting, formn.ini 82<br />
object types, forms 75<br />
[Objectn] section, formn.ini 79–85<br />
OIA paste command 51<br />
OLE<br />
Attachmate EXTRA! 116<br />
inter-application communications<br />
tool 7<br />
On/Off numeric format 92<br />
Other() paste command 52<br />
P<br />
Parameters setting, formn.ini 82<br />
Password setting, formn.ini 83<br />
paste commands 39–61<br />
@x 39<br />
C() 39<br />
ClipCopyBlock() 40<br />
ClipGet 41<br />
ClipSet() 41<br />
Cursor() 42<br />
CUTn|CVRn 43<br />
Date() 44<br />
Delay() 44<br />
Exit_<strong>Vlterm</strong> 45<br />
File() 45<br />
Find() 46<br />
FocusRemain() 47<br />
FormatStr() 47<br />
FormLoad() 47<br />
Hide_Fkeys 48<br />
Hide_Logon 48<br />
Input 48<br />
LeftStr() 49<br />
Lookup() 49<br />
MathOnVars() 50<br />
Msg 50<br />
Non-Reserved Word 50<br />
OIA 51<br />
Other() 52<br />
Pause() 53<br />
Release 53<br />
Relink 53
RightStr() 53<br />
SendKeys 54, 101<br />
SetVarn 54–57<br />
Date() subroutine 55<br />
InString subroutine 56<br />
Literal parameter 55<br />
Midstring subroutine 57<br />
UserID subroutine 55<br />
Variable parameter 55<br />
ShellApp() 58<br />
Show_Fkeys 58<br />
Start_Auto_CNP 59<br />
Stop_Auto_CNP 59<br />
StrCat() 59<br />
TitleCaption 59<br />
ToggleTo() 60<br />
VARn 60<br />
Wait() 60<br />
WaitForKey() 60<br />
WinFocus() 61<br />
PASTE_CMDn<br />
paste commands 39–61<br />
vlterm.ini setting 33<br />
PASTE_SESSION setting, vlterm.ini 31<br />
PasteIndex setting, formn.ini 83<br />
Pause() paste command 53<br />
PDSI<br />
Psched Software DDE Interface 133–<br />
137<br />
vlterm.ini sample file 133<br />
Percent numeric format 92<br />
Persoft<br />
SmarTerm emulation<br />
application 138–139<br />
vlterm.ini sample file 138<br />
Position setting, formn.ini 77<br />
Index 189<br />
Q<br />
Quarterdeck<br />
Procomm Plus 32 details 140–141<br />
vlterm.ini sample file 140<br />
R<br />
Reflection<br />
cut command format 36<br />
emulation details 157–163<br />
R1 158<br />
R2 5, 27, 28, 159<br />
R4 27<br />
R8 27, 28, 159, 161<br />
special keystroke commands 160,<br />
162<br />
Release paste command 53<br />
Relink paste command 53<br />
Required setting, formn.ini 83<br />
requirements 4<br />
RightStr() paste command 53<br />
ROWn setting, vlterm.ini 30<br />
Rumba<br />
@x keys 107–110<br />
Cursor() paste command 42<br />
cut command format 36<br />
emulator details 152–156<br />
for AS/400 5<br />
for AS400 27, 28<br />
for Mainframe 5, 27, 28<br />
for UNIX/VAX 5, 27, 28<br />
Office 5<br />
S<br />
S_DELAY setting, vlterm.ini 26<br />
Scientific numeric format 92, 94
190 Index<br />
SendKeys<br />
Attachmate EXTRA! 116<br />
ClipCut() command 37<br />
description 6<br />
paste command 54<br />
sample configuration 102<br />
usage 103<br />
vlterm.ini sample file 142–143<br />
vlterm.ini script commands 101<br />
Zephyr Passport 3270 164<br />
Session setting, vlkeys.ini 13<br />
SetVarn paste command 54–57<br />
Date() subroutine 55<br />
InString subroutine 56<br />
Literal parameter 55<br />
Midstring subroutine 57<br />
UserID subroutine 55<br />
Variable parameter 55<br />
[SHELL] section, vlterm.ini<br />
settings 25–26<br />
ShellApp() paste command 58<br />
Short Date format 97<br />
Short Time format 97<br />
Show_Fkeys paste command 58<br />
ShowSplashScreen setting, vlterm.ini 24<br />
SQLContents setting, formn.ini 84<br />
Standard numeric format 92<br />
Start_Auto_CNP paste command 59<br />
Stop_Auto_CNP paste command 59<br />
StrCat() paste command 59<br />
string formats, FORMAT function 100<br />
system requirements 4<br />
T<br />
TabIndex setting, formn.ini 84<br />
TblName setting, vlterm.ini 24<br />
Teknekron<br />
On Demand 144–146<br />
vlterm.ini sample file 144<br />
TextField object type, forms 75<br />
time formats, FORMAT function 96–100<br />
Long Time 97<br />
Medium Time 97<br />
sample format expressions 99<br />
Short Time 97<br />
user-defined time formats 97–100<br />
TitleCaption paste command 59<br />
ToggleTo() paste command 60<br />
toolbar<br />
button definitions 11–14<br />
configuration syntax 12<br />
function key equivalents 11<br />
Tooltip setting, vlkeys.ini 13<br />
Top setting, formn.ini 84<br />
True/False numeric format 92<br />
Type setting, formn.ini 84<br />
U<br />
UnloadOtherForms setting, formn.ini 78<br />
Upstanding Systems<br />
FASTerm for Windows 147–151<br />
special FASTerm keys 147<br />
vlterm.ini sample file 149<br />
USE_DDEn setting, vlterm.ini 26<br />
UseContentsData setting, formn.ini 85<br />
UserID, SetVarn subroutine 55<br />
UserSetSize setting, formn.ini 77<br />
V<br />
Value setting, formn.ini 85<br />
Variable, SetVarn parameter 55
VARn<br />
paste command 60<br />
vlterm.ini setting 24<br />
vlkeys.ini<br />
Action setting 12<br />
Color setting 13<br />
configuring for a driver 173<br />
description 11<br />
Focus setting 13<br />
Label setting 13<br />
sample file 14<br />
Session setting 13<br />
syntax 12<br />
Tooltip setting 13<br />
[VOICELINK_KEYS] section 11–14<br />
vlkeys.ini sample files<br />
automatic cut and paste 65<br />
basic 14<br />
loading forms 76<br />
<strong>Vlterm</strong><br />
command line options 9<br />
configuration files 10<br />
DDE configuration files 10<br />
executable files 10<br />
file reference 10<br />
installation methods 9<br />
shortcut locations 10<br />
<strong>Vlterm</strong> toolbar<br />
button definitions 11–14<br />
configuration syntax 12<br />
function key equivalents 11<br />
vlterm.ini<br />
AUTO_CUT_COMPARE setting 32<br />
AUTO_ENABLED setting 23<br />
AUTO_INTERVAL setting 23<br />
automatic cut and paste 63<br />
CAPTION setting 29<br />
CNP_TYPE setting 31<br />
[CNPn] section 30–33<br />
Index 191<br />
configuring for a driver 173<br />
cut command formats 35–37<br />
CUT_CMDn setting 32, 35–37<br />
CUT_SESSION setting 31<br />
DDE_CONFIG_SESSIONn 29, 68<br />
DDE_DELAYn setting 28<br />
[DDE_SESSION] section 26–29<br />
DDE_TIMEOUT setting 28<br />
DEBUG setting 22<br />
description 19<br />
DISPLAY_FKEYS setting 29<br />
DISPLAY_TOOLTIPS setting 30<br />
ERROR_LOG setting 25<br />
[FKEY_BUTTONS] section 29–30<br />
FKEYS_ON_TOP setting 29<br />
FKEYS_POSITION setting 30<br />
FunctionKeys setting 25<br />
[GLOBAL] section 22–25<br />
HOST_SERVERn setting 27<br />
HOST_TOPICn setting 28<br />
HTERMn setting 25<br />
HWINn setting 26<br />
MAX_CUTS setting 23<br />
MAX_PASTES setting 23<br />
MAX_SESSIONS setting 22<br />
NUMBER_CNPS setting 23<br />
NUMBER_CUT_COMMANDS<br />
setting 31<br />
NUMBER_PASTE_COMMANDS<br />
setting 31<br />
NUMBER_VARS setting 24<br />
PASTE_CMDn 33, 39–61<br />
PASTE_SESSION setting 31<br />
ROWn setting 30<br />
S_DELAY setting 26<br />
sample file 19<br />
[SHELL] section 25–26<br />
ShowSplashScreen setting 24<br />
TblName setting 24
192 Index<br />
USE_DDEn setting 26<br />
VARn setting 24<br />
[WIN_TITLE] section 26<br />
vlterm.ini sample files<br />
automatic cut and paste 64<br />
basic 19<br />
Chameleon HostLink 128<br />
Chameleon UnixLink 131<br />
Exceed 121<br />
EXTRA! 4.3 115<br />
EXTRA! OLE 117<br />
FASTerm 149<br />
loading forms 76<br />
Netware LAN WA 113<br />
On Demand 144<br />
Passport 3270 165<br />
Pcomm 123<br />
PowerTerm 126<br />
Procomm Plus 140<br />
Psched 133<br />
Reflection R1 158<br />
Reflection R8 159, 161<br />
Rumba Office 2000 154<br />
Rumba Office 95/NT 152<br />
SendKeys 102, 142<br />
SmarTerm 138<br />
vt100 control sequences 111<br />
W<br />
Wait() paste command 60<br />
WaitForKey() paste command 60<br />
Wall Data<br />
Rumba @x keys 107–110<br />
Rumba Cursor() paste command 42<br />
Rumba cut command format 36<br />
Rumba for AS/400 5, 27, 28<br />
Rumba for Mainframe 5, 27, 28<br />
Rumba for UNIX/VAX 5, 27, 28<br />
Rumba Office 5, 152–156<br />
vlterm.ini sample files 152, 154<br />
Width setting, formn.ini 85<br />
[WIN_TITLE] section, vlterm.ini<br />
settings 26<br />
WindowStyle setting, formn.ini 78<br />
WindowTitle setting, formn.ini 78<br />
WinFocus() paste command 61<br />
WRQ<br />
Reflection cut command format 36<br />
Reflection emulation details 157–163<br />
Reflection R2 5, 27, 28<br />
Reflection R4 27<br />
Reflection R8 27, 28<br />
special keystroke commands 160,<br />
162<br />
vlterm.ini sample files 158, 159, 161<br />
Y<br />
Yes/No numeric format 92<br />
Z<br />
Zephyr Development<br />
HLLAPI 164<br />
Passport 3270 Client 164–167<br />
vlterm.ini sample file 165