[Search] [txt|pdf|bibtex] [Tracker] [WG] [Email] [Nits]

Versions: 00 01                                                         
TN3270E Working Group                                      Thomas Brawn
Internet Draft: <draft-ietf-tn3270e-ohio-00.txt>        IBM Corporation
Expiration Date: tbd                                       Stephen Gunn
                                                 Attachmate Corporation

                Open Host Interface Objects for TN3270E

Status of this Memo

   This document is an Internet-Draft.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its Areas,
   and its Working Groups.  Note that other groups may also distribute
   working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other documents
   at any time.  It is inappropriate to use Internet-Drafts as
   reference material or to cite them other than as "work in
   progress."

   To view the entire list of current Internet-Drafts, please check
   the "lid-abstracts.txt" listing contained in the Internet-Drafts
   Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
   (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au
   (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US
   West Coast).

Abstract

The purpose of this memo is to define an object oriented interface to
TN3270E.


Brawn & Gunn                 Informational                      Page 1Ù

Ohio-00              Open Host Interface Objects          September 1998


Copyright Notice

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

Table of Contents

   1.0 Introduction...................................................2
   2.0 Object Definitions.............................................3
   2.1 Ohio...........................................................3
   2.2 OhioField......................................................5
   2.3 OhioFields.....................................................5
   2.4 OhioManager....................................................6
   2.5 OhioOIA........................................................6
   2.6 OhioPosition...................................................7
   2.7 OhioScreen.....................................................7
   2.8 OhioSession....................................................7
   2.9 OhioSessions...................................................8
   3.0 Acknowledgements...............................................8
   4.0 References.....................................................9
   5.0 How to Contact the Authors.....................................9
   Appendix A - Ohio Java Mapping....................................10
   Appendix B - Ohio ActiveX IDL Mapping.............................16
   Appendix C - Sendkeys Mnemonics...................................27


1.0 Introduction
   The following is the Ohio containment hierarchy:
      OhioManager:  Contains one:
         OhioSessions:  Contains a collection of:
            OhioSession:  Contains one:
               OhioScreen:  Contains one of each of:
               OhioOIA:  The operator information area
               OhioFields:  Contains a collection of:
                  OhioField:  A field in the presentation space

   The Ohio inheritance hierarchy is:
      Ohio:  Base class
         OhioManager
         OhioSessions
         OhioSession
         OhioScreen
         OhioOIA
         OhioFields
         OhioField


Brawn & Gunn                 Informational                      Page 2Ù

Ohio-00              Open Host Interface Objects          September 1998


2.0 Object Definitions

   OMG IDL Version 2.1 is used to define the following objects.  For a
   mapping of the IDL to Java, see Appendix A - Ohio Java Mapping.  For
   a mapping of the IDL to ActiveX IDL, see Appendix B - Ohio ActiveX
   IDL Mapping.

   Note:  "1" based counting is used throughout this standard for both
   positions (the first position on the screen is position 1, not
   position 0) and sizes (the first item in a collection is item 1, not
   item 0).


2.1 Ohio

   Interface Ohio {

      // Properties
      Readonly enum OHIO_DIRECTION {
         OHIO_DIRECTION_FORWARD,
         OHIO_DIRECTION_BACKWARD
      };

      Readonly enum OHIO_TYPE {
         OHIO_TYPE_UNKNOWN,
         OHIO_TYPE_3270,
         OHIO_TYPE_5250,
         OHIO_TYPE_VT
      };

      Readonly enum OHIO_STATE {
        OHIO_STATE_DISCONNECTED,
        OHIO_STATE_CONNECTED
      };

      Readonly enum OHIO_PLANE {
         OHIO_PLANE_TEXT,
         OHIO_PLANE_COLOR,
         OHIO_PLANE_FIELD,
         OHIO_PLANE_EXTENDED
      };



Brawn & Gunn                 Informational                      Page 3Ù

Ohio-00              Open Host Interface Objects          September 1998


      Readonly enum OHIO_COLOR {
         OHIO_COLOR_BLACK,
         OHIO_COLOR_BLUE,
         OHIO_COLOR_GREEN,
         OHIO_COLOR_CYAN,
         OHIO_COLOR_RED,
         OHIO_COLOR_MAGENTA,
         OHIO_COLOR_WHITE,
         OHIO_COLOR_YELLOW
      };

      Readonly enum OHIO_EXTENDED {
         OHIO_EXTENDED_HILITE,
         OHIO_EXTENDED_COLOR,
         OHIO_EXTENDED_RESERVED,
         OHIO_EXTENDED_HILITE_NORMAL,
         OHIO_EXTENDED_HILITE_BLINK,
         OHIO_EXTENDED_HILITE_REVERSEVIDEO,
         OHIO_EXTENDED_HILITE_UNDERSCORE,
         OHIO_EXTENDED_COLOR_DEFAULT,
         OHIO_EXTENDED_COLOR_BLUE,
         OHIO_EXTENDED_COLOR_RED,
         OHIO_EXTENDED_COLOR_PINK,
         OHIO_EXTENDED_COLOR_GREEN,
         OHIO_EXTENDED_COLOR_TURQUOISE,
         OHIO_EXTENDED_COLOR_YELLOW,
         OHIO_EXTENDED_COLOR_WHITE
      };

      Readonly enum OHIO_FIELD {
         OHIO_FIELD_ATTRIBUTE,
         OHIO_FIELD_PROTECTED,
         OHIO_FIELD_NUMERIC,
         OHIO_FIELD_PEN_SELECTABLE,
         OHIO_FIELD_HIGH_INTENSITY,
         OHIO_FIELD_HIDDEN,
         OHIO_FIELD_RESERVED,
         OHIO_FIELD_MODIFIED
      };

      Readonly enum OHIO_UPDATE {
         OHIO_UPDATE_HOST,
         OHIO_UPDATE_CLIENT
      };


Brawn & Gunn                 Informational                      Page 4Ù

Ohio-00              Open Host Interface Objects          September 1998


      Readonly enum OHIO_OWNER {
         OHIO_OWNER_UNKNOWN,
         OHIO_OWNER_APP,
         OHIO_OWNER_MYJOB,
         OHIO_OWNER_NVT,
         OHIO_OWNER_UNOWNED,
         OHIO_OWNER_SSCP
      };

      Readonly enum OHIO_INPUTINHIBITED {
         OHIO_INPUTINHIBITED_NOTINHIBITED,
         OHIO_INPUTINHIBITED_SYSTEM_WAIT,
         OHIO_INPUTINHIBITED_COMMCHECK,
         OHIO_INPUTINHIBITED_PROGCHECK,
         OHIO_INPUTINHIBITED_MACHINECHECK,
         OHIO_INPUTINHIBITED_OTHER
      };

   };


2.2 OhioField

   Interface OhioField {

      // Properties
      Readonly OhioPosition Start;
      Readonly OhioPosition End;
      Readonly long Length;
      Readonly boolean Modified;
      Readonly boolean Protected;
      Readonly boolean Numeric;
      Readonly boolean HighIntensity;
      Readonly boolean PenSelectable;
      Readonly boolean Hidden;
      Readonly boolean Normal;
      Read/Write string Text;
      Readonly OHIO_FIELD Attribute;

      // Methods
      byte Ù GetData(OHIO_PLANE);

   };


2.3 OhioFields

   Interface OhioFields {


Brawn & Gunn                 Informational                      Page 5Ù

Ohio-00              Open Host Interface Objects          September 1998


      // Properties
      Readonly long count;

      // Methods
      OhioField Item(long);
      Void Refresh();
      OhioField FindByString(string target, OhioPosition start,
         OhioPosition end, OHIO_DIRECTION direction,
         boolean IgnoreCase);
      OhioField FindByPosition(OhioPosition);

   };


2.4 OhioManager

   Interface OhioManager {

      // Properties
      OhioSessions Sessions;

      // Methods
      OhioSession FindSession(string configurationResource,
                              string sessionName);

   };


2.5 OhioOIA

   Interface OhioOIA {

      // Properties
      Readonly boolean Alphanumeric;
      Readonly boolean APL;
      Readonly boolean Numeric;
      Readonly boolean InsertMode;
      Readonly OHIO_OWNER owner;
      Readonly OHIO_INPUTINHIBITED InputInhibited;
      Readonly long ProgCheckCode;
      Readonly long CommCheckCode;
      Readonly long MachineCheckCode;

      // Methods

      // Events
      OIAChanged()

   };


Brawn & Gunn                 Informational                      Page 6Ù

Ohio-00              Open Host Interface Objects          September 1998


2.6 OhioPosition

   Interface OhioPosition {

      // Properties
      long Row;
      long Column;

   };


2.7 OhioScreen

   Interface OhioScreen {

      // Properties
      Readonly Attribute OhioPosition Cursor; // Position of cursor
      Readonly Attribute OhioOIA OIA; // OIA object for this Screen
      Readonly Attribute OhioFields Fields; // Collection of fields
      Readonly Attribute long Rows; // Number of rows in Screen
      Readonly Attribute long Columns; // Number of columns in Screen
      Readonly Attribute string Text; // Entire Screen as text string

      // Methods
      bytes Ù  GetData(long BuffLen, OhioPosition Start,
                        OhioPosition End, OHIO_PLANE Plane);
      OhioPosition FindString(string text, OhioPosition Start,
                              OhioPosition End, PS_DIR Dir,
                              boolean IgnoreCase);
      void SendKeys(string text, OhioPosition insertPosition);
      void PutString(string text, OhioPosition insertLocation);

      // Events
      CursorMoved(cursor position)
      ScreenChanged(screen delta, OHIO_UPDATE, OhioPosition pos,
                    OhioPosition  pos);
      SizeChanged - tbd

   };


2.8 OhioSession

   Interface OhioSession {


Brawn & Gunn                 Informational                      Page 7Ù

Ohio-00              Open Host Interface Objects          September 1998


      // Properties
      Readonly string configurationResource;
      Readonly  string sessionName;
      Readonly OHIO_TYPE sessionType;
      Readonly OHIO_STATE connected;
      Readonly OhioScreen Screen;

      // Methods
      void Connect();
      void Disconnect();

      // Events
      SessionChanged(OHIO_UPDATE);

   };


2.9 OhioSessions

   Interface OhioSessions{

      // Properties
      long count;

      // Methods
      OhioSession Item(long);
      OhioSession Item(string);
      Void Refresh();

      // Events

};


3.0 Acknowledgments
   This document is a product of the TN3270E Working Group.

   The authors wish to thank the following individuals for their
   contributions to this standard:
      Mark McMillan, IBM Corporation
      Hemant Nanivadekar, Attachmate Corporation
      J. Burke Ryder, Attachmate Corporation
      Blair Cooper, Attachmate Corporation
      Brian L. Henry, Attachmate Corporation


Brawn & Gunn                 Informational                      Page 8Ù

Ohio-00              Open Host Interface Objects          September 1998


4.0 References
   1) International Business Machines Corporation, "eNetwork Personal
      Communications Version 4.2 for Windows 95 and Windows NT Host
      Access Class Library", September 1997.
   2) International Business Machines Corporation, "Host On-Demand
      Version 2.0 Host Access Class Library for Java Reference",
      October 1997.
   3) Attachmate Corporation, "EXTRA! Objects SDK Reference Guide for
      C++", October 1997.


5.0 How to Contact the Authors
   Thomas Brawn
   IBM Corporation
   4205 S. Miami Blvd
   RTP, NC  27709
   e-mail:  brawntj@us.ibm.com
   phone:  919-254-8301

   Stephen Gunn
   Attachmate Corporation
   3617 131st Ave. S.E.
   Bellevue, Washington  98006
   e-mail:  stevegu@attachmate.com
   phone:  425-649-6221


Brawn & Gunn                 Informational                      Page 9Ù

Ohio-00              Open Host Interface Objects          September 1998


Appendix A - Ohio Java Mapping


//
//
// Ohio -- Base interface for all Ohio Interfaces
//
//
public interface Ohio
{
   public Object getVendor();

   // enum OHIO_DIRECTION
   public static final int OHIO_DIRECTION_FORWARD  = 0;
   public static final int OHIO_DIRECTION_BACKWARD = 1;

   // enum OHIO_TYPE -- used by OHIOSession.SessionType
   public static final int OHIO_TYPE_UNKNOWN = 0;
   public static final int OHIO_TYPE_3270    = 1;
   public static final int OHIO_TYPE_5250    = 2;
   public static final int OHIO_TYPE_VT      = 3;

   // enum OHI_STATE -- used by OHIOSessionEvents.onSessionChanged
   public static final int OHIO_STATE_DISCONNECTED = 0;
   public static final int OHIO_STATE_CONNECTED    = 1;

   // enum OHIO_PLANE - used by OHIOScreen.getData
   public static final int OHIO_PLANE_TEXT     = 1;
   public static final int OHIO_PLANE_COLOR    = 2;
   public static final int OHIO_PLANE_FIELD    = 4;
   public static final int OHIO_PLANE_EXTENDED = 8;

   // type OHIO_COLOR - used by OHIOScreen.getData(COLOR)
   public static final int OHIO_COLOR_BLACK   = 0;
   public static final int OHIO_COLOR_BLUE    = 1;
   public static final int OHIO_COLOR_GREEN   = 2;
   public static final int OHIO_COLOR_CYAN    = 3;
   public static final int OHIO_COLOR_RED     = 4;
   public static final int OHIO_COLOR_MAGENTA = 5;
   public static final int OHIO_COLOR_WHITE   = 7;
   public static final int OHIO_COLOR_YELLOW  = 14;

   // OHIO_EXTENDED  -- used by OhioScreen.getData(EXTENDED)
   public static final int OHIO_EXTENDED_HILITE   = 0xC0;
   public static final int OHIO_EXTENDED_COLOR    = 0x38;
   public static final int OHIO_EXTENDED_RESERVED = 0x07;


Brawn & Gunn                 Informational                     Page 10Ù

Ohio-00              Open Host Interface Objects          September 1998


   // OHIO_EXTENDED >> 6
   public static final int OHIO_EXTENDED_HILITE_NORMAL       = 0;
   public static final int OHIO_EXTENDED_HILITE_BLINK        = 1;
   public static final int OHIO_EXTENDED_HILITE_REVERSEVIDEO = 2;
   public static final int OHIO_EXTENDED_HILITE_UNDERSCORE   = 3;

   // (OHIO_EXTENDED>>3) & 7
   public static final int OHIO_EXTENDED_COLOR_DEFAULT   = 0;
   public static final int OHIO_EXTENDED_COLOR_BLUE      = 1;
   public static final int OHIO_EXTENDED_COLOR_RED       = 2;
   public static final int OHIO_EXTENDED_COLOR_PINK      = 3;
   public static final int OHIO_EXTENDED_COLOR_GREEN     = 4;
   public static final int OHIO_EXTENDED_COLOR_TURQUOISE = 5;
   public static final int OHIO_EXTENDED_COLOR_YELLOW    = 6;
   public static final int OHIO_EXTENDED_COLOR_WHITE     = 7;

   // type OHIO_FIELD -- used by OhioScreen.getData(FIELD)
   public static final int OHIO_FIELD_ATTRIBUTE      = 0xC0;
   public static final int OHIO_FIELD_PROTECTED      = 0x20;
   public static final int OHIO_FIELD_NUMERIC        = 0x10;
   public static final int OHIO_FIELD_PEN_SELECTABLE = 0x08;
   public static final int OHIO_FIELD_HIGH_INTENSITY = 0x04;
   public static final int OHIO_FIELD_HIDDEN         = 0x0C;
   public static final int OHIO_FIELD_RESERVED       = 0x02;
   public static final int OHIO_FIELD_MODIFIED       = 0x01;

   // enum OHIO_UPDATE - used by OhioScreenEvents.onScreenChanged
   public static final int OHIO_UPDATE_HOST   = 0;
   public static final int OHIO_UPDATE_CLIENT = 1;

   // enum OHIO_OWNER -- used by OhioOIA.owner
   public static final int OHIO_OWNER_UNKNOWN  = 0;
   public static final int OHIO_OWNER_APP      = 1;
   public static final int OHIO_OWNER_MYJOB    = 1;
   public static final int OHIO_OWNER_NVT      = 2;
   public static final int OHIO_OWNER_UNOWNED  = 3;
   public static final int OHIO_OWNER_SSCP     = 4;

   // enum OHIO_INPUTINHIBITED - used by OhioOIA.InputInhibited
   public static final int OHIO_INPUTINHIBITED_NOTINHIBITED  = 0;
   public static final int OHIO_INPUTINHIBITED_SYSTEM_WAIT   = 1;
   public static final int OHIO_INPUTINHIBITED_COMMCHECK     = 2;
   public static final int OHIO_INPUTINHIBITED_PROGCHECK     = 3;
   public static final int OHIO_INPUTINHIBITED_MACHINECHECK  = 4;
   public static final int OHIO_INPUTINHIBITED_OTHER         = 5;
}

public interface OhioManager
{


Brawn & Gunn                 Informational                     Page 11Ù

Ohio-00              Open Host Interface Objects          September 1998


   // Properties
   public OhioSessions getSessions();

   // Methods
   public OhioSession findSession(String configurationResource,
                                  String sessionName);

}

public interface OhioSessions extends Ohio
{

   // Properties
   public int getCount();

   // Methods
   public OhioSession Item(int sessionNumber);
   public OhioSession Item(String sessionName);
   public void refresh();

}

public interface OhioSession extends Ohio
{

   // Properties
   public String getConfigurationResource();
   public boolean isConnected();
   public String getSessionName();
   public int getSessionType();
   public OhioScreen Screen;

   // Methods
   public void connect();
   public void disconnect();

   // Events
   public void addSessionListener(OHIOSessionListener listener);
   public void removeSessionListener(OHIOSessionListener listener);
}

public interface OhioScreen extends Ohio {

   // Properties
   public OhioPosition getCursor();
   public void setCursor(OhioPosition position);
   public OhioOIA getOIA();
   public OhioFields getFields();
   public int getRows();


Brawn & Gunn                 Informational                     Page 12Ù

Ohio-00              Open Host Interface Objects          September 1998


   public int getColumns();
   public String getText();

   // Methods
   public byteÙ getData(OhioPosition start,
                         OhioPosition end,
                         int plane);
   public OhioPosition findString(String text,
                                  OhioPosition start,
                                  OhioPosition end,
                                  int direction,
                                  boolean ignoreCase);
   public void sendKeys(String text,
                        OhioPosition location);
   public void putString(String text,
                         OhioPosition location);

   // Events
   public void addScreenListener(OHIOScreenListener listener);
   public void removeScreenListener(OHIOScreenListener listener);

}

public interface OhioScreenListener
{
   public void onScreenChanged(int inUpdate,
                               OhioPosition inStart,
                               OhioPosition inEnd);

}

public interface OhioOIA extends Ohio
{

   // Properties
   public boolean isAlphanumeric();
   public boolean isAPL();
   public int getCommCheckCode();
   public int getInputInhibited(); // Uses OHIO_INPUT_INHIBITED
   public int getMachineCheckCode();
   public boolean isNumeric();
   //public boolean isInsertMode();
   public int getOwner();          // Uses OHIO_OWNER
   public int getProgCheckCode();

   // Methods


Brawn & Gunn                 Informational                     Page 13Ù

Ohio-00              Open Host Interface Objects          September 1998


   // Events
   public void addOIAListener(OhioOIAListener listener);
   public void removeOIAListener(OhioOIAListener listener);

}

public interface OhioOIAListener
{
   public void onOIAChanged();
}

public interface OhioFields extends Ohio
{

   // Properties
   public int getCount();

   // Methods
   public OhioField Item(int fieldIndex);
   public void refresh();
   public OhioField findByString(String targetString,
                                 OhioPosition startPos,
                                 OhioPosition endPos,
                                 int dir, // Uses OHIO_DIRECTION
                                 boolean ignoreCase);
   public OhioField findByPosition(OhioPosition targetPosition);

}

public interface OhioField extends Ohio
{

   // Properties
   public OhioPosition getStart();
   public OhioPosition getEnd();

   public int getLength();

   public int getAttribute();  // Uses OHIO_FIELD enumeration
   public boolean isModified();
   public boolean isProtected();
   public boolean isNumeric();
   public boolean isHighIntensity();
   public boolean isPenSelectable();
   public boolean isHidden();

   public String getText();
   public void setText(String text);


Brawn & Gunn                 Informational                     Page 14Ù

Ohio-00              Open Host Interface Objects          September 1998


   // Methods
   public byteÙ getData(int targetPlane);  // Uses OHIO_PLANE

}

public interface OhioPosition {
   // Properties
   public int getRow();
   public int getColumn();
   public void setRow(int);
   public void setColumn(int);

}




Brawn & Gunn                 Informational                     Page 15Ù

Ohio-00              Open Host Interface Objects          September 1998


Appendix B - Ohio ActiveX IDL Mapping


//+--------------------------------------------------------------------+
//º OPEN HOST INTERFACE OBJECT (OHIO) INTERFACE DEFINITIONS            º
//+--------------------------------------------------------------------+
//º  IOhioManager                Manager provides access to a...       º
//º     IOhioSessions               Collection of...                   º
//º        IOhioSession                Sessions, which has a...        º
//º           IOhioScreen                 Screen containing an...      º
//º              IOhioOIA                    OIA, and a...             º
//º              IOhioFields                 Collection of...          º
//º                 IOhioField                  Fields                 º
//º                                                                    º
//º  IOhioPosition               1-based Row/Col Position used         º
//º                                                                    º
//+--------------------------------------------------------------------+
import "oaidl.idl";
import "ocidl.idl";

//+--------------------------------------------------------------+
//º OHIO DATA TYPES                                              º
//+--------------------------------------------------------------+
typedef v1_enumÙ enum OHIO_DIRECTION
{
   OHIO_DIRECTION_FORWARD                       = 0,
   OHIO_DIRECTION_BACKWARD                      = 1

} OHIO_DIRECTION;

//+---------------------------------------------+
//º SESSION DATA TYPES                          º
//+---------------------------------------------+
typedef v1_enumÙ enum OHIO_TYPE
{
   OHIO_TYPE_UNKNOWN                            = 0,
   OHIO_TYPE_3270                               = 1,
   OHIO_TYPE_5250                               = 2,
   OHIO_TYPE_VT                                 = 3

} OHIO_TYPE; // USED BY IOhioSession.SessionType

typedef v1_enumÙ enum OHIO_STATE
{
   OHIO_STATE_DISCONNECTED                      = 0,
   OHIO_STATE_CONNECTED                         = 1

} OHIO_STATE; //USED BY IOhioSessionEvents.OnSessionChanged


Brawn & Gunn                 Informational                     Page 16Ù

Ohio-00              Open Host Interface Objects          September 1998


//+---------------------------------------------+
//º SCREEN DATA TYPES                           º
//+---------------------------------------------+
typedef v1_enumÙ enum OHIO_PLANE
{
   OHIO_PLANE_TEXT                              = 1,
   OHIO_PLANE_COLOR                             = 2,
   OHIO_PLANE_FIELD                             = 4,
   OHIO_PLANE_EXTENDED                          = 8

} OHIO_PLANE; //USED BY IOhioScreen.GetData

typedef long OHIO_COLOR; //USED BY IOhioScreen.GetData(COLOR)
const   long OHIO_COLOR_BLACK                   = 0;
const   long OHIO_COLOR_BLUE                    = 1;
const   long OHIO_COLOR_GREEN                   = 2;
const   long OHIO_COLOR_CYAN                    = 3;
const   long OHIO_COLOR_RED                     = 4;
const   long OHIO_COLOR_MAGENTA                 = 5;
const   long OHIO_COLOR_WHITE                   = 7;
const   long OHIO_COLOR_YELLOW                  = 14;

typedef long OHIO_EXTENDED; //USED BY IOhioScreen.GetData(EXTENDED)
const   long OHIO_EXTENDED_HILITE               = 0xC0;
const   long OHIO_EXTENDED_COLOR                = 0x38;
const   long OHIO_EXTENDED_RESERVED             = 0x07;

//OHIO_EXTENDED>>6
const   long OHIO_EXTENDED_HILITE_NORMAL        = 0;
const   long OHIO_EXTENDED_HILITE_BLINK         = 1;
const   long OHIO_EXTENDED_HILITE_REVERSEVIDEO  = 2;
const   long OHIO_EXTENDED_HILITE_UNDERSCORE    = 3;

//(OHIO_EXTENDED>>3)&7
const   long OHIO_EXTENDED_COLOR_DEFAULT        = 0;
const   long OHIO_EXTENDED_COLOR_BLUE           = 1;
const   long OHIO_EXTENDED_COLOR_RED            = 2;
const   long OHIO_EXTENDED_COLOR_PINK           = 3;
const   long OHIO_EXTENDED_COLOR_GREEN          = 4;
const   long OHIO_EXTENDED_COLOR_TURQUOISE      = 5;
const   long OHIO_EXTENDED_COLOR_YELLOW         = 6;
const   long OHIO_EXTENDED_COLOR_WHITE          = 7;


Brawn & Gunn                 Informational                     Page 17Ù

Ohio-00              Open Host Interface Objects          September 1998


typedef long OHIO_FIELD; //USED BY IOhioScreen.GetData(FIELD)
const   long OHIO_FIELD_ATTRIBUTE               = 0xC0;
const   long OHIO_FIELD_PROTECTED               = 0x20;
const   long OHIO_FIELD_NUMERIC                 = 0x10;
const   long OHIO_FIELD_PEN_SELECTABLE          = 0x08;
const   long OHIO_FIELD_HIGH_INTENSITY          = 0x04;
const   long OHIO_FIELD_HIDDEN                  = 0x0C;
const   long OHIO_FIELD_RESERVED                = 0x02;
const   long OHIO_FIELD_MODIFIED                = 0x01;

typedef v1_enumÙ enum OHIO_UPDATE
{
   OHIO_UPDATE_HOST                             = 0,
   OHIO_UPDATE_CLIENT                           = 1,

} OHIO_UPDATE; //USED BY IOhioScreenEvents.OnScreenChanged

//+---------------------------------------------+
//º OIA DATA TYPES                              º
//+---------------------------------------------+
typedef v1_enumÙ enum OHIO_OWNER
{
   OHIO_OWNER_UNKNOWN                          = 0,
   OHIO_OWNER_APP                              = 1,
   OHIO_OWNER_MYJOB                            = 1,
   OHIO_OWNER_NVT                              = 2,
   OHIO_OWNER_UNOWNED                          = 3,
   OHIO_OWNER_SSCP                             = 4

} OHIO_OWNER; //USED BY IOhioOIA.Owner

typedef v1_enumÙ enum OHIO_INPUTINHIBITED
{
   OHIO_INPUTINHIBITED_NOTINHIBITED            = 0,
   OHIO_INPUTINHIBITED_SYSTEM_WAIT             = 1,
   OHIO_INPUTINHIBITED_COMMCHECK               = 2,
   OHIO_INPUTINHIBITED_PROGCHECK               = 3,
   OHIO_INPUTINHIBITED_MACHINECHECK            = 4,
   OHIO_INPUTINHIBITED_OTHER                   = 5

} OHIO_INPUTINHIBITED; //USED BY IOhioOIA.InputInhibited


Brawn & Gunn                 Informational                     Page 18Ù

Ohio-00              Open Host Interface Objects          September 1998


//+--------------------------------------------------------------+
//º IOhio                                                        º
//+--------------------------------------------------------------+
//º Base interface for all OHIO interfaces                       º
//+--------------------------------------------------------------+

   object,
   uuid(10065CA3-E921-11D1-B2DF-0060080708DC),
   dual,
   helpstring("IOhio Interface"),
   pointer_default(unique)
Ù
interface IOhio : IDispatch
{
   id(99),propgetÙ HRESULT Vendor (out,retvalÙ IDispatch** outValue);
}

//+--------------------------------------------------------------+
//º IOhioPosition                                                º
//+--------------------------------------------------------------+
//º Zero is a "don't care" value.                                º
//+--------------------------------------------------------------+

   object,
   uuid(25BEAEFC-B795-11D1-B2D1-0060080708DC),
   dual,
   helpstring("IOhioPosition Interface"),
   pointer_default(unique)
Ù
interface IOhioPosition : IOhio
{
   id(1), propputÙ HRESULT Row   (inÙ         long   inRow   );
   id(1), propgetÙ HRESULT Row   (out,retvalÙ long* outRow   );

   id(2), propputÙ HRESULT Column(inÙ         long   inColumn);
   id(2), propgetÙ HRESULT Column(out,retvalÙ long* outColumn);
};

//+--------------------------------------------------------------+
//º IOhioOIA                                                     º
//+--------------------------------------------------------------+

   object,
   uuid(25BEAEF2-B795-11D1-B2D1-0060080708DC),
   dual,
   helpstring("IOhioOIA Interface"),
   pointer_default(unique)
Ù


Brawn & Gunn                 Informational                     Page 19Ù

Ohio-00              Open Host Interface Objects          September 1998


interface IOhioOIA : IOhio
{
   id(0 ),propgetÙ HRESULT Text (out,retvalÙ BSTR* outValue);

   id(1 ),propgetÙ HRESULT Alphanumeric (out,retvalÙ
                                          VARIANT_BOOL* outValue);
   id(2 ),propgetÙ HRESULT APL (out,retvalÙ VARIANT_BOOL* outValue);
   id(3 ),propgetÙ HRESULT Numeric (out,retvalÙ
                                     VARIANT_BOOL* outValue);
   id(4 ),propgetÙ HRESULT InsertMode (out,retvalÙ
                                        VARIANT_BOOL* outValue);

   id(10),propgetÙ HRESULT ProgCheckCode (out,retvalÙ
                                           long* outValue);
   id(11),propgetÙ HRESULT CommCheckCode (out,retvalÙ
                                           long* outValue);
   id(12),propgetÙ HRESULT MachineCheckCode (out,retvalÙ
                                              long* outValue);

   id(20),propgetÙ HRESULT Owner (out,retvalÙ
                                   OHIO_OWNER* outValue);
   id(21),propgetÙ HRESULT InputInhibited (out,retvalÙ
                                        OHIO_INPUTINHIBITED*  outValue);
};


   object,
   uuid(45896ACE-BCF8-11D1-B2D3-0060080708DC),
   dual,
   helpstring("IOhioOIAEvents Interface"),
   pointer_default(unique)
Ù
interface IOhioOIAEvents : IUnknown
{
   id(0)Ù HRESULT OnOIAChanged();
};

cpp_quote("EXTERN_C const IID IID_DOhioOIAEvents;")

   uuid(45896AD0-BCF8-11D1-B2D3-0060080708DC),
   hidden,
   helpstring("DOhioOIAEvents Interface"),
Ù
dispinterface DOhioOIAEvents
{
properties:
methods:
   id(0)Ù HRESULT OnOIAChanged();
};


Brawn & Gunn                 Informational                     Page 20Ù

Ohio-00              Open Host Interface Objects          September 1998


//+--------------------------------------------------------------+
//º IOhioField                                                   º
//+--------------------------------------------------------------+

   object,
   uuid(25BEAEF4-B795-11D1-B2D1-0060080708DC),
   dual,
   helpstring("IOhioField Interface"),
   pointer_default(unique)
Ù
interface IOhioField : IOhio
{
   id(0), propputÙ HRESULT Text (inÙ BSTR inValue);
   id(0), propgetÙ HRESULT Text (out,retvalÙ BSTR* outValue);

   id(1), propgetÙ HRESULT Start (out,retvalÙ IOhioPosition**
                                   outValue);
   id(2), propgetÙ HRESULT End (out,retvalÙ IOhioPosition** outValue);
   id(3), propgetÙ HRESULT Length (out,retvalÙ long* outValue);

   id(10),propgetÙ HRESULT Attribute (out,retvalÙ OHIO_FIELD*
                                       outValue);
   id(11),propgetÙ HRESULT Modified (out,retvalÙ VARIANT_BOOL*
                                      outValue);
   id(12),propgetÙ HRESULT Protected (out,retvalÙ VARIANT_BOOL*
                                       outValue);
   id(13),propgetÙ HRESULT Numeric (out,retvalÙ VARIANT_BOOL*
                                     outValue);
   id(14),propgetÙ HRESULT PenSelectable (out,retvalÙ
                                           VARIANT_BOOL* outValue);
   id(15),propgetÙ HRESULT Hidden (out,retvalÙ VARIANT_BOOL*
                                    outValue);
   id(16),propgetÙ HRESULT HighIntensity (out,retvalÙ
                                           VARIANT_BOOL* outValue);
   id(17),propgetÙ HRESULT Normal (out,retvalÙ VARIANT_BOOL*
                                    outValue);

   id(30)        Ù HRESULT GetData (inÙ OHIO_PLANE
                                 inPlane,out,retvalÙ VARIANT* outData);
};


Brawn & Gunn                 Informational                     Page 21Ù

Ohio-00              Open Host Interface Objects          September 1998


//+--------------------------------------------------------------+
//º IOhioFields                                                  º
//+--------------------------------------------------------------+

   object,
   uuid(25BEAEFA-B795-11D1-B2D1-0060080708DC),
   dual,
   helpstring("IOhioFields Interface"),
   pointer_default(unique)
Ù
interface IOhioFields : IOhio
{
   id(0), propgetÙ HRESULT Item (inÙ long inIndexOrKey,out,retvalÙ
                                  IOhioField** outElement);
   id(1), propgetÙ HRESULT Count (out,retvalÙ long *pVal);
   id(10)        Ù HRESULT Refresh ();

   id(20)        Ù HRESULT FindByPosition (inÙ IOhioPosition*
                         inPosition,out,retvalÙ IOhioField** outField);
   id(21)        Ù HRESULT FindByString (inÙ BSTR inString,
                                    inÙ IOhioPosition* inStart,
                                    inÙ IOhioPosition* inEnd,
                                    inÙ OHIO_DIRECTION inDir,
                                    inÙ VARIANT_BOOL inIgnoreCase,
                                    out,retvalÙ IOhioField** outField);

   id(DISPID_NEWENUM),propget,restricted Ù HRESULT
                              _NewEnum(out,retvalÙ IUnknown** outEnum);
};

//+--------------------------------------------------------------+
//º IOhioScreen                                                  º
//+--------------------------------------------------------------+

   object,
   uuid(25BEAEEE-B795-11D1-B2D1-0060080708DC),
   dual,
   helpstring("IOhioScreen Interface"),
   pointer_default(unique)
Ù
interface IOhioScreen : IOhio
{
   id(0), propgetÙ HRESULT OIA (out,retvalÙ IOhioOIA** outOIA);
   id(1), propgetÙ HRESULT Fields (out,retvalÙ IOhioFields** outOIA);

   id(2), propgetÙ HRESULT Text (out,retvalÙ BSTR* outText);


Brawn & Gunn                 Informational                     Page 22Ù

Ohio-00              Open Host Interface Objects          September 1998


   id(10),propgetÙ HRESULT Rows (out,retvalÙ long* outRows);
   id(11),propgetÙ HRESULT Columns (out,retvalÙ long* outColumns);
   id(12),propputÙ HRESULT Cursor (inÙ IOhioPosition* inPos);
   id(12),propgetÙ HRESULT Cursor (out,retvalÙ IOhioPosition**
                                    outPos);

   id(20)        Ù HRESULT SendKeys (inÙ BSTR inKeys,
                                      inÙ IOhioPosition* inPos);

   id(22)        Ù HRESULT FindString (inÙ BSTR inString,
                                        inÙ IOhioPosition* inStart,
                                        inÙ IOhioPosition* inEnd,
                                        inÙ OHIO_DIRECTION inDir,
                                        inÙ VARIANT_BOOL inIgnoreCase,
                                        out,retvalÙ IOhioPosition**
                                           outPos);
   id(23)        Ù HRESULT PutString (inÙ BSTR inText,
                                       inÙ IOhioPosition* inStart);

   id(30)        Ù HRESULT GetData (inÙ IOhioPosition* inStart,
                                     inÙ IOhioPosition* inEnd,
                                     inÙ OHIO_PLANE inPlane,
                                     out,retvalÙ VARIANT* outData);
};


   object,
   uuid(45896AC5-BCF8-11D1-B2D3-0060080708DC),
   dual,
   helpstring("IOhioScreenEvents Interface"),
   pointer_default(unique)
Ù
interface IOhioScreenEvents : IUnknown
{
   id(0)Ù HRESULT OnScreenChanged (inÙ OHIO_UPDATE inUpdate,
                                    inÙ IOhioPosition* inStart,
                                    inÙ IOhioPosition* inEnd);
};


Brawn & Gunn                 Informational                     Page 23Ù

Ohio-00              Open Host Interface Objects          September 1998


cpp_quote("EXTERN_C const IID IID_DOhioScreenEvents;")

   uuid(45896AC7-BCF8-11D1-B2D3-0060080708DC),
   hidden,
   helpstring("DOhioScreenEvents Interface"),
Ù
dispinterface DOhioScreenEvents
{
properties:
methods:
   id(0)Ù HRESULT OnScreenChanged (inÙ OHIO_UPDATE inUpdate,
                                    inÙ IOhioPosition* inStart,
                                    inÙ IOhioPosition* inEnd);
};

//+--------------------------------------------------------------+
//º IOhioSession                                                 º
//+--------------------------------------------------------------+

   object,
   uuid(25BEAEF6-B795-11D1-B2D1-0060080708DC),
   dual,
   helpstring("IOhioSession Interface"),
   pointer_default(unique)
Ù
interface IOhioSession : IOhio
{
   id(0), propgetÙ HRESULT Screen (out,retvalÙ IOhioScreen**
                                    outScreen);

   id(1), propgetÙ HRESULT Connected (out,retvalÙ OHIO_STATE*
                                       outValue);
   id(2)         Ù HRESULT Connect ();
   id(3)         Ù HRESULT Disconnect ();

   id(10),propgetÙ HRESULT ConfigurationResource(out,retvalÙ BSTR*
                                                  outValue);
   id(11),propgetÙ HRESULT SessionName (out,retvalÙ BSTR* outValue);
   id(12),propgetÙ HRESULT SessionType (out,retvalÙ OHIO_TYPE*
                                         outValue);
};


   object,
   uuid(45896ACA-BCF8-11D1-B2D3-0060080708DC),
   dual,
   helpstring("IOhioSessionEvents Interface"),
   pointer_default(unique)
Ù


Brawn & Gunn                 Informational                     Page 24Ù

Ohio-00              Open Host Interface Objects          September 1998


interface IOhioSessionEvents : IUnknown
{
   id(0)Ù HRESULT OnSessionChanged  (inÙ OHIO_STATE inState);
};

cpp_quote("EXTERN_C const IID IID_DOhioSessionEvents;")

   uuid(45896ACC-BCF8-11D1-B2D3-0060080708DC),
   hidden,
   helpstring("DOhioSessionEvents Interface"),
Ù
dispinterface DOhioSessionEvents
{
properties:
methods:
   id(0)Ù HRESULT OnSessionChanged  (inÙ OHIO_STATE inState);
};

//+--------------------------------------------------------------+
//º IOhioSessions                                                º
//+--------------------------------------------------------------+

   object,
   uuid(25BEAEF8-B795-11D1-B2D1-0060080708DC),
   dual,
   helpstring("IOhioSessions Interface"),
   pointer_default(unique)
Ù
interface IOhioSessions : IOhio
{
   id(0), propgetÙ HRESULT Item    (inÙ VARIANT inIndexOrKey,
                                out,retvalÙ IOhioSession** outElement);
   id(1), propgetÙ HRESULT Count   (out,retvalÙ long *pVal);
   id(10),       Ù HRESULT Refresh ();

   id(DISPID_NEWENUM),propget,restricted Ù HRESULT
                              _NewEnum(out,retvalÙ IUnknown** outEnum);
};

//+--------------------------------------------------------------+
//º IOhioManager                                                 º
//+--------------------------------------------------------------+

   object,
   uuid(25BEAF00-B795-11D1-B2D1-0060080708DC),
   dual,
   helpstring("IOhioManager Interface"),
   pointer_default(unique)
Ù


Brawn & Gunn                 Informational                     Page 25Ù

Ohio-00              Open Host Interface Objects          September 1998


interface IOhioManager : IOhio
{
   id(0), propgetÙ HRESULT Sessions     (out,retvalÙ
                                          IOhioSessions** outSessions);

   id(1)         Ù HRESULT FindSession  (inÙ BSTR inConfigResource,
                                          inÙ BSTR inSessionName,
                               out,retvalÙ IOhioSession** outSession);
};


Brawn & Gunn                 Informational                     Page 26Ù

Ohio-00              Open Host Interface Objects          September 1998


Appendix C - SendKeys Mnemonics

   This table contains the list of mnemonic keywords valid in the
   OhioScreen::SendKey() method.  Mnemonic keywords adhere to the
   following rules:

      1) Keywords are enclosed in square brackets "Ù".
      2) Keywords are case insensitive (for example, AttnÙ is
         identical to attnÙ).
      3) Literal square brackets must be doubled.

   Example SendKey strings:

      abcpf1Ù           Sends character keys "abc" followed by the
                         PF1 AID key
      backspaceٍxÙÙ   Sends 3270 backspace key followed by the 3
                         characters "xÙ"
      xyzCLEARÙ       Sends characters "xyz" followed by 3270 Clear
                         AID key


+----------------+-----------------------+------------+----------------+
º                º        3270           º  IBM HACL  º Extra! Objects º
º    Mnemonic    º Function Description  º Equivalent º   Equivalent   º
+----------------+-----------------------+------------+----------------+
º attnÙ         º Attention AID key     º attnÙ     º <Attn>         º
+----------------+-----------------------+------------+----------------+
º clearÙ        º Clear AID key         º clearÙ    º <Clear>        º
+----------------+-----------------------+------------+----------------+
º cursorselectÙ º Cursor Select AID key º crselÙ    º <CursorSelect> º
º                º                       º            º <PenSelect>??? º
+----------------+-----------------------+------------+----------------+
º enterÙ        º Enter AID key         º enterÙ    º <Enter>        º
+----------------+-----------------------+------------+----------------+
º sysreqÙ       º System Request        º sysreqÙ   º <SysReq>       º
+----------------+-----------------------+------------+----------------+
º pa1Ù          º Program Attention 1   º pa1Ù      º <Pa1>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pa2Ù          º Program Attention 2   º pa2Ù      º <Pa2>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pa3Ù          º Program Attention 3   º pa3Ù      º <Pa3>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf1Ù          º Program Function 1    º pf1Ù      º <Pf1>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf2Ù          º Program Function 2    º pf2Ù      º <Pf2>          º
º                º  AID key              º            º                º


Brawn & Gunn                 Informational                     Page 27Ù

Ohio-00              Open Host Interface Objects          September 1998


+----------------+-----------------------+------------+----------------+
º pf3Ù          º Program Function 3    º pf3Ù      º <Pf3>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf4Ù          º Program Function 4    º pf4Ù      º <Pf4>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf5Ù          º Program Function 5    º pf5Ù      º <Pf5>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf6Ù          º Program Function 6    º pf6Ù      º <Pf6>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf7Ù          º Program Function 7    º pf7Ù      º <Pf7>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf8Ù          º Program Function 8    º pf8Ù      º <Pf8>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf9Ù          º Program Function 9    º pf9Ù      º <Pf9>          º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf10Ù         º Program Function 10   º pf10Ù     º <Pf10>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf11Ù         º Program Function 11   º pf11Ù     º <Pf11>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf12Ù         º Program Function 12   º pf12Ù     º <Pf12>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf13Ù         º Program Function 13   º pf13Ù     º <Pf13>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf14Ù         º Program Function 14   º pf14Ù     º <Pf14>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf15Ù         º Program Function 15   º pf15Ù     º <Pf15>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf16Ù         º Program Function 16   º pf16Ù     º <Pf16>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf17Ù         º Program Function 17   º pf17Ù     º <Pf17>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf18Ù         º Program Function 18   º pf18Ù     º <Pf18>         º
º                º  AID key              º            º                º


Brawn & Gunn                 Informational                     Page 28Ù

Ohio-00              Open Host Interface Objects          September 1998


+----------------+-----------------------+------------+----------------+
º pf19Ù         º Program Function 19   º pf19Ù     º <Pf19>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf20Ù         º Program Function 20   º pf20Ù     º <Pf20>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf21Ù         º Program Function 21   º pf21Ù     º <Pf21>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf22Ù         º Program Function 22   º pf22Ù     º <Pf22>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf23Ù         º Program Function 23   º pf23Ù     º <Pf23>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º pf24Ù         º Program Function 24   º pf24Ù     º <Pf24>         º
º                º  AID key              º            º                º
+----------------+-----------------------+------------+----------------+
º tabÙ          º Tab forward to next   º tabÙ      º <Tab>          º
º                º  unprotected field    º            º                º
+----------------+-----------------------+------------+----------------+
º backtabÙ      º Back Tab - tab to     º backtabÙ  º <BackTab>      º
º                º  previous unprotected º            º                º
º                º  field                º            º                º
+----------------+-----------------------+------------+----------------+
º upÙ           º Cursor up             º upÙ       º <Up>           º
+----------------+-----------------------+------------+----------------+
º downÙ         º Cursor down           º downÙ     º <Down>         º
+----------------+-----------------------+------------+----------------+
º rightÙ        º Cursor right          º rightÙ    º <Right>        º
+----------------+-----------------------+------------+----------------+
º leftÙ         º Cursor left           º leftÙ     º <Left>         º
+----------------+-----------------------+------------+----------------+
º fastupÙ       º Cursor up two rows    º fastupÙ   º <Up><Up>       º
+----------------+-----------------------+------------+----------------+
º fastdownÙ     º Cursor down two rows  º fastdownÙ º <Down><Down>   º
+----------------+-----------------------+------------+----------------+
º fastrightÙ    º Cusor right two       º fastrightÙº <Right2>       º
º                º  positions            º            º                º
+----------------+-----------------------+------------+----------------+
º fastleftÙ     º Cursor left two       º fastleftÙ º <Left2>        º
º                º  positions            º            º                º
+----------------+-----------------------+------------+----------------+
º homeÙ         º Home                  º homeÙ     º <Home>         º


Brawn & Gunn                 Informational                     Page 29Ù

Ohio-00              Open Host Interface Objects          September 1998


+----------------+-----------------------+------------+----------------+
º newlineÙ      º New line - move to    º newlineÙ  º <NewLine>      º
º                º  first unprotected    º            º                º
º                º  field on next or     º            º                º
º                º  subsequent line      º            º                º
+----------------+-----------------------+------------+----------------+
º resetÙ        º Reset - clear         º resetÙ    º <Reset>        º
º                º  keyboard lock and    º            º                º
º                º  clear insert mode    º            º                º
+----------------+-----------------------+------------+----------------+
º insertÙ       º Insert mode - turns   º insertÙ   º <Insert>       º
º                º  on insert mode for   º            º                º
º                º  all subsequent       º            º                º
º                º  keystrokes until     º            º                º
º                º  resetÙ              º            º                º
+----------------+-----------------------+------------+----------------+
º backspaceÙ    º Destructive Backspace º backspaceÙº <Backspace>    º
º                º  - move cursor one    º            º                º
º                º  position left, deleteº            º                º
º                º  character, shift     º            º                º
º                º  remainder of field   º            º                º
º                º  one position left.   º            º                º
+----------------+-----------------------+------------+----------------+
º deleteÙ       º Delete at cursor,     º deleteÙ   º <Delete>       º
º                º  shift remainder of   º            º                º
º                º  field one position   º            º                º
º                º  left                 º            º                º
+----------------+-----------------------+------------+----------------+
º eraseinputÙ   º Erase input - clear   º erinpÙ    º <EraseInput>   º
º                º  all unprotected      º            º                º
º                º  fields               º            º                º
+----------------+-----------------------+------------+----------------+
º eraseeofÙ     º Erase from cursor to  º eraseeofÙ º <EraseEOF>     º
º                º  end of field,        º            º                º
º                º  inclusive            º            º                º
+----------------+-----------------------+------------+----------------+
º dupÙ          º Duplicate             º dupÙ      º <Dup>          º
+----------------+-----------------------+------------+----------------+
º fieldmarkÙ    º Field Mark            º fieldmarkÙº <FieldMark>    º
+----------------+-----------------------+------------+----------------+


Brawn & Gunn                 Informational                     Page 30Ù