High -Level Screen Management Intrinsics Library Reference Manual HP 3000 MPE/iX Computer Systems Edition 1 Manufacturing Part Number: 32424-90002 E1187 U.S.A.
Notice The information contained in this document is subject to change without notice. Hewlett-Packard makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose. Hewlett-Packard shall not be liable for errors contained herein or for direct, indirect, special, incidental or consequential damages in connection with the furnishing or use of this material.
Preface High-Level Screen Management Intrinsic Library (Hi-Li) Reference Manual Printed HP Part Edition Printed in USA No. 32424-90002 E1187 Nov 1987 The information contained in this document is subject to change without notice. HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Hi-Li is intended to be used by programmers in any of the supported languages, which include COBOL, FORTRAN, and Pascal. The manual is organized to start with a discussion of how Hi-Li works, followed by detailed information about each intrinsic and a description of each data transfer method. The appendices contain error messages, sample programs, and information on supported terminals. In order to use Hi-Li effectively, you should be familiar with FORMSPEC, the VPLUS/V forms file designer.
Chapter 1 Introduction This chapter introduces the High-Level Screen Management Intrinsic Library (Hi-Li) and discusses how the intrinsics work with Hewlett-Packard's screen management system.
Figure 1-1. Hi-Li and the Screen Management Facility Each intrinsic performs several system-level functions. This allows you to keep your application design simple and reduces code maintenance resulting from system-level changes. As the screen management facility handles system-level details, you can concentrate on the actual functions your application needs to perform instead of the requirements for implementing those functions.
Figure 1-2. Hi-Li and the Transfer of Data Fetures of HI-LI The High-Level Screen Management Intrinsic Library (Hi-Li) has the following features: * High-level calls: Hi-Li intrinsics combine the most commonly used low-level terminal input/output procedures into 12 high-level calls. Application development is easier and more productive because you can concentrate on the function you want to perform and let Hi-Li do all the detail work.
uses the features of these terminals, see Appendix D. To make full use of the block mode features, you must use FORMSPEC/V to design your forms. Requirements Hi-Li intrinsics require the following software and hardware: * HP 3000 running under MPE/V or MPE/XL; * HP block mode terminal. About This Manual This manual is organized as follows: Chapter 1: Provides an overview of the Hi-Li intrinsics and the screen management facility, as well as a brief description of each chapter in the manual.
Chapter 2 Screen Management Intrinsics This chapter provides comprehensive information about the Hi-Li intrinsics. If you have never used the screen management facility, read this chapter before you begin using Hi-Li intrinsics to code your application.
Core Intrinsics. These intrinsics provide basic functionality. HPDSEND Passes application data to the operator's device and arranges it according to a scheme identified or provided by the application. HPDREAD Collects data from the operator's device and returns it to the application. HPDPROMPT Lets the application focus the operator's attention by altering and highlighting data when it is displayed at the terminal. Supporting Intrinsics.
instructions specified in the application. The instructions cover such things as the initialization of field displays, key label display, and the display of application messages in the message window. The HPDREAD intrinsic reads and collects the information that the operator supplies on the form. If any errors are detected, the HPDPROMPT intrinsic is called to alert the operator to the error by highlighting particular fields and/or displaying messages.
In the second way, you code your application to specify that you want the contents of the data buffer handled according to specifications in the forms file. This is the indirect method, which takes advantage of the Application-ready Buffer (ARB). Each of these six methods is discussed in detail in Chapter 4. The Application-ready Buffer. The purpose of the ARB is to represent data as the application expects to use it, and not necessarily as it appears on the screen.
| | | -32768..32767 | | | | | | | | DINT | S9(9) COMP | Integer | Integer **4 | | | | | | --------------------------------------------------------------------------------------------- Note: [n] represents the number of decimal digits How Hi-Li Intrinsic Parameters Operate The Hi-Li intrinsics act as a link between the application and the forms created with FORMSPEC/V. Table 2-2 shows how the information flow is controlled by various parameters as they are passed between Hi-Li and the application.
parameters can be collapsed so that they pass only one part, or pass a null value if they are not necessary to your application. This allows you to build in the feature set you currently need without having to enter "dummy" information you do not want to include. If you decide to use additional features at a later time, you can simply activate and/or expand the necessary parameter; you do not have to add an additional intrinsic call.
Table 2-3. Language Call Formats --------------------------------------------------------------------------------------------| | | | Language | Intrinsic Call Format | | | | --------------------------------------------------------------------------------------------| | | | COBOL | CALL "intrinsicname" USING parameter1 | | | parameter2 | | | parameter3 | | | . | | | . | | | . | | | | | | parametern.
5. You cannot following a to see the HPDREAD or 6. The following read sequences are allowed: a. b. call tHE HPDREAD and HPDPROMPT intrinsics directly call to HPDENABLETERM. This is because Hi-Li expects HPDSEND intrinsic that sets up the form. To call HPDPROMPT in this case, call HPDSEND first. A read call following a send and/or a prompt. A read call followed by a second read call with the 'doreread' option. 7. You cannot call HPDREAD or HPDPROMPT directly follow ing a call to HPDPRINTFORM.
Chapter 3 HI-LI Intrinsics This chapter describes each of the Hi-Li intrinsics and their parameters, presented in alphabetical order. Many of the descriptions include an example of how to code various parameter structures of the particular intrinsic in COBOL, Pascal and FORTRAN. Appendix C includes a sample program in each of these languages, illustrating more completely how to use the Hi-Li intrinsics to code an application.
parameters are common to most of the intrinsics, a discussion of their uses and their subparameters is given here. Refer to this section when you need information about how to use the globalpak and returnpak parameters. GLOBALPAK Provides the mechanism for information exchange among Hi-Li intrinsics. Parameter Descriptions expectedvuf An eight-byte character array that indicates the revision level of the intrinsics expected by the application. It should be in the format v.uu.
are using. You can initialize this parameter to A.00.00 for this release of Hi-Li unless you want to use the dontenableinput option of the HPDPROMPT promptpak parameter. If you want to use dontenableinput, set this parameter to a value equal to or greater than A.00.10. Once set, this parameter should not be changed. As future enhancements to Hi-Li occur, you will use this parameter to pass the version code for the version containing the features you decide to use.
returnmsg A 256-byte character array that represents a displayed message returned by the intrinsic. lastitemtype A four-byte integer that indicates what type of item terminated the read intrinsic. A zero (0) means the read intrinsic was terminated by the [ENTER] key or a function key. A one (1) means the read intrinsic was terminated by a field. lastitemnum A four-byte integer that indicates the identifier, that is number, of the function key or field that terminated the read intrinsic.
IF fieldname NE fieldname THEN FAIL "$PFK_3 = replacement string" This statement will never execute because the field will never be unequal to itself. "PFK_3" is the entry key that the HPDREAD intrinsic matches on if the function key f3 terminates the read. All text to the right of the "equals" sign up to 32 characters is copied to lastitemname, to be returned to the application. Examples COBOL: 01 returnpak.
Table 3-1. Summary of the Intrinsics --------------------------------------------------------------------------------------------| | | | Intrinsic | Function | | | | --------------------------------------------------------------------------------------------| | | | HPDCLOSEFORMS | Closes a forms file. | | | | | HPDDISABLETERM | Releases a device and optionally | | | reconfigures the device. | | | | | HPDENABLETERM | Enables a device and sets up the comarea if | | | not already done.
HPDCLOSEFORMS Closes a forms file that was opened by HPDOPENFORMS. Syntax HPDCLOSEFORMS globalpak, returnpak, formsfile Parameter Descriptions globalpak A compound parameter that passes information between intrinsics. For a complete description of this parameter, see "Global Parameters" in Chapter 3.
indicate the intrinsic features you do not want to use. 0 = ignore 0 = ignore 1 or 3 = do not enable touch sensing 2 or 3 = do not clear device screen devconfig A compound parameter that provides in put to and and receives output from the intrinsic. allolen A four-byte integer that indicates the size in bytes of the allocated configuration storage area. actualen A four-byte integer that indicates, in bytes, the actual length of configuration data.
returnpak A compound parameter that back from the intrinsic to For a complete description see "Global Parameters" in termpak 5 A compound parameter that passes information to the intrinsic. termfile passes information the application. of this parameter, Chapter 3. An 88-byte character array that indicates the name of the device to be enabled. bypassfeature A four-byte integer that is used by the application to indicate the intrinsic features you do not want to use.
key labels and the keys' functions. NOTE The HPDENABLETERM or HPDOPENFORMS intrinsic must be the first HiLi intrinsic you call. HPDGETDESIGN Retrieves design information for a particular forms file component. Syntax HPDGETDESIGN globalpak_II, returnpak, mode, keydescrpt, keysbuf, infobuflen, infobuf Parameter Descriptions globalpak_II A compound parameter. For a complete description of this parameter, see "Global Parameters" in Chapter 3.
positive, the number is the one assigned the component by the design facility. If the value is negative, the number indicates the order of the component within the design. infobuflen A four-byte integer that tells the intrinsic the length in bytes of the infobuf parameter. infobuf The area into which the information you have requested is returned from the intrinsic. The format of the information returned is specific to the type of design component you requested: file, form, or field.
1. File Information Retrieval Table 3-2. (mode = 1) INFOBUF Formats -------------------------------------------------------------------------------------------| | | | fileversion | four-byte integer | | | | | | infobuflen = 4 | | | | | | File version number that is a data/time stamp. | | | It is recorded when the forms file was last | | | compiled. | | | | | numforms | four-byte integer | | | | | | infobuflen = 8 | | | | | | Number of forms in the file.
2. Form Information Retrieval (mode = 2) -------------------------------------------------------------------------------------------| | | | formname | 32-byte character array | | | | | | infobuflen = 32 | | | | | | Form name. | | | | | formnum | four-byte integer | | | | | | infobuflen = 36 | | | | | | Form number. This number represents | | | the order of the form within the file | | | and may change if the forms file is | | | recompiled.
| | | | | infobuflen = 72 | | | | | | The field number according to the | | | order in which it was created. | | | | | fldlen * | four-byte integer | | | | | | infobuflen = 76 | | | | | | Field length in bytes. | | | | | databufoffst | four-byte integer | | | | | | infobuflen = 80 | | | | | | Position of the field in the data buffer, | | | offset from one. | | | | | fldenh | eight-byte character array | | | | | | infobuflen = 88 | | | | | | Field enhancement.
HPDGETENV Retrieves configuration elements of the current execution environment. Syntax HPDGETENV globalpak, returnpak, mode, envbufdescrpt, envbuf Parameter Descriptions globalpak A compound parameter that passes information between intrinsics. For a complete description of this parameter, see "Global Parameters" in Chapter 3.
(If) Mode Element (Supply) Length/Format -----------------------------------------------------------------------------------1 Library version An eight-byte character array 2 Native language A four-byte integer. The forms file must be open to use this mode. See the Native Language Support Reference Manual for the applicable codes. 3 Auto test option A four-byte integer. The forms file must have been opened or the device enabled to use this mode.
Discussion HPDGETENV is a special-purpose intrinsic meant for advanced programming applications. It allows your application to retrieve information about the current environment. You can request information about the environment for the following five elements: 1. Library version - This allows your application to determine which version of Hi-Li software is installed. 2. Native language identification - This allows your application to retrieve the NLS code assigned to the open forms file. 3.
HPDPRINTFORM Integrates text with a form and prints the result. Syntax HPDPRINTFORM globalpak, returnpak, formcntrl, fillcntrl, devicenum, datadescrpt, databuf Parameter Descriptions globalpak A compound parameter that passes information between intrinsics. For a complete description of this parameter, see "Global Parameters" in Chapter 3.
reformatted before the form and data are printed according to the specifications embedded in the form. You can use the following values: 0 = ignore reformatting specifications 1 = reformat data fillcntrl A compound parameter that tells HPDPRINTFORM to replace, or fill, blanks within fields when printing the form. The subparameters and the functions they represent are: filldesc A four-byte integer that specifies the degree of functionality.
generated telling you that only the first 2000 bytes of the field were filled. devicenum A four-byte integer providing input to and output from HPDPRINTFORM, that specifies the file number of the list file to which the form will be written. If you specify a zero, HPDPRINTFORM opens a list file named FORMLIST with a device class of LP.
HPDPROMPT Prompts the operator. Syntax HPDPROMPT globalpak, returnpak, promptpak, cursorposition, msg, fieldlist, labeldescrpt, labelbuf Parameter Descriptions globalpak A compound parameter that passes information between intrinsics. For a complete description of this parameter, see "Global Parameters" in Chapter 3.
U = underlined B = blinking resethilited A four-byte integer that tells HPDPROMPT whether or not to reset those fields that are highlighted due to errors. You can supply the following values: 0 = ignore the fields flagged in error 1 = reset the flagged fields dontenableinput A four-byte integer indicating that if the keyboard is locked, it should remain locked; it does not do an actual lock. You can supply the following values: 0 = ignore 1 = do not enable device to take operator input.
the operator is to begin entering data. It also tells HPDPROMPT to position the cursor at this field. The field must be an input field. A four-byte integer identifies the beginning field by number or screen order. A positive integer indicates a field number. A negative integer indicates screen order. If you supply a zero, HPDPROMPT moves the cursor to the first enhanced input field on the screen. If no fields are enhanced, the cursor is positioned at the first physical input field on the screen.
3 = fields listed in name format allocnt A four-byte integer that is not used by HPDPROMPT. actualcnt A four-byte integer that indicates the number of active entries in the list of fields. listentry Identifies the table of fields defined in your application. fieldident If you supplied a value of 1 or 2 for listtype, this is a four-byte integer that identifies a field. A positive number indicates field number. A negative number indicates screen order.
OR labeldescrpt is made up of the following set of subparameters: labelset A 36-byte character array specified by double backslashes followed by the USASCII character label set name. Specifying (double backslash) $RESET_FORM tells Hi-Li to reset function key labels to the base set specified for the current form. If a label set was not defined for the form, Hi-Li uses the forms file global set as the base set. Specifying spaces tells Hi-Li not to update the current function key labels.
adding a form to the forms file, defining a set of labels for the form, and building a one character, text only, screen image for the dummy form. Examples COBOL: 01 01 fieldlist. 05 listtype pic s9(8) 05 allocnt pic s9(8) 05 actualcnt pic s9(8) 05 listentry occurs 5 times. 10 fieldid pic s9(8) comp. comp. comp. comp. labeldescrpt. 05 descrptcnt pic s9(8) comp. 05 descrptentry occurs 8 times. 10 labelident pic s9(8) comp. 10 labelenh pic x(8).
HPDREAD Reads, edits, and transforms data, and returns the information to the application. Syntax HPDREAD globalpak, returnpak, readpak, readitems, cursorposition, datadescrpt, databuf, fieldlist Parameter Descriptions globalpak A compound parameter that passes information between intrinsics. For a complete description of this parameter, see "Global Parameters" in Chapter 3.
following values: 0 = ignore 1 = automatically read the terminal. The read termination item will always be identified as the ENTER key. bypassfeature readitems 3- 28 A four-byte integer that will be used for future Hi-Li implementations. At that time, you must supply the globalpak subparameter, expectedvuf, with a value equal to or greater than A.00.10. For this release of Hi-Li software, set bypassfeature to zero.
1 = field itemident A four-byte integer that identifies a termination item. If you have defined itemtype as a key, the ENTER key is 0, function key 1 is 1, and so on. If you have defined itemtype as field, a positive number indicates a field number and a negative number indicates screen order. readopt A four-byte integer that tells HPDREAD which read option you want to use.
of the lengths of all the fields in the form. All data is moved as type CHAR. See Chapter 4 for a description of each of the other five mapping methods. databuf A record that represents the application area that receives the data copied from fields on the form. It is passed as output from the intrinsic. fieldlist A compound parameter that allows your application to get a list of the fields that are flagged in error. This parameter is both input to and output from HPDREAD.
fieldident If you supplied a value of 1 or 2 for listtype, this is a four-byte integer. If you supplied 1, fields are identified by number. If you supplied 2, fields are identified by screen order. If you supplied a value of 3 for listtype, this is a 32-byte character array. Fields are identified with a USASCII character name. Discussion HPDREAD is one of the three core intrinsics that make up the screen management intrinsics.
INTEGER*4 ACTUALCNT EQUIVALENCE (FIELDLIST(1), LISTTYPE), + (FIELDLIST(2), ALLOCNT), + (FIELDLIST(3), ACTUALCNT)*j*Q EQUIVALENCE (FIELDLIST(4), FIELDID) For an example of how a record structure can be manipulated in FORTRAN, see the COLLECT_TXNS subroutine in the FORTRAN example program in Appendix C. Pascal: type itementry_rec = record itemtype : integer; itemident : integer; readopt : integer; end; readitems_rec = record itemcnt : integer; itementry : array [1..
indicate that you want to make consecutive calls to HPDSEND. Use this parameter if, for example, your application displays a header, and then appends a detail form. This insures that no data can be entered until the entire screen is displayed, eliminating the possibility of corrupting the screen display. The values you can specify are: 0 = ignore 1 = do not enable device to take operator's input; keeps a locked device from being unlocked.
1 or 3 = do not initialize fields with form specifications. 2 or 3 = do not force the operator's data display to be refreshed. formpak A compound parameter that acts as input to HPDSEND. It provides HPDSEND with specific information about displaying forms on the operator's terminal screen. It is made up of the following subparameters: formname A 32-byte character array that names the form to be displayed on the user's device.
3 = freeze and append - position at the end of the last form after the last form is frozen. chnglisttype A four-byte integer that is input to HPDSEND. It tells HPDSEND whether or not to apply application supplied change specifications to fields on the form. The values you can specify are: 0 = field change list is empty 1 = fields to change are identified by number 2 = fields to change are identified by name.
2 = toggle field type attribute 3 = toggle data type attribute 4 = change enhancement attribute 5 = change field type attribute 6 = change data type attribute 7 = toggle field error enhancement attribute. This does not return the enhancement to the application. 8 = change to field error enhancement attribute Note: For values 1, 2, and 3, toggle sets the attributes to the new value and returns the old value to the application.
If chngtype has a value of 7 or 8, the content of chngspec is ignored. See "Field Menu" in the VPLUS/V Reference Manual for definitions of the above enhancements, field types, and data types. cursorposition A four-byte integer or a 36-byte array of characters that identifies the field at which the operator is to begin entering data. It also tells HPDSEND to position the cursor at this field. The field must be an input field. A four-byte integer identifies the beginning field by number or screen order.
other five mapping methods. databuf A record passed as input to HPDSEND that represents the application area from which the data is copied to fields on the form. labeldescrpt A compound parameter that identifies for HPDSEND the key labels that your application will update. Function keys are labeled, by default, with the label strings defined in the forms file. labeldescrpt is made up of the following subparameters: descrptcnt A four-byte integer that indicates the number of labels to be updated.
For a discussion of the labelset subparameter, see the Discussion for HPDSEND that follows these parameters. labelbuf A byte array of characters that identifies for HPDSEND the application area that contains the label strings. For the HP3000, 16 bytes are sent to each label. Discussion HPDSEND is one of the three core intrinsics that make up the screen management intrinsics. Its role is to establish the overall context for an interactive transaction. The context is established by getting the form.
INTEGER*4 CHNGLISTTYPE INTEGER*4 LISTCOUNT EQUIVALENCE (FORMPAK(1), FORMNAME), + (FORMPAK(9), FORMPOSITION), + (FORMPAK(10), CHNGLISTTYPE), + (FORMPAK(11), LISTCOUNT) CHARACTER*44 FIELDIDENT(1,3) EQUIVALENCE (FORMPAK(12), FIELDIDENT) INTEGER*4 CHNGTYPE (11,3) CHARACTER*4 CHNGSPEC (11,3) EQUIVALENCE (FORMPAK(12) CHNGTYPE), + (FORMPAK(12), CHNGSPEC) INTEGER*4 LABELDESCRPT (25) INTEGER*4 DESCRPTCNT EQUIVALENCE (LABELDESCRPT(1), DESRPTCNT) INTEGER*4 LABELIDENT (3,8) CHARACTER*4 LABELENH (3,8) EQUIVALENCE (LABEL
HPDSETENV Allows your application to configure elements of the current execution environment. Syntax HPDSETENV globalpak, returnpak, mode, envbufdescrpt, envbuf Parameter Descriptions globalpak A compound parameter that passes information between intrinsics. For a complete description of this parameter, see "Global Parameters" in Chapter 3.
interaction. To use this mode, the forms file must have been opened or the device enabled. The values you can supply are: 0 = disable 1 = enable 78 Switch out of block mode An 88-byte character array that is the name of the device file you want to switch out of block mode. To use this mode, the device must have been enabled by HPDENABLETERM. 79 Switch into block An 88-byte character array that is the name of the device mode file you want to switch into block mode.
Chapter 4 Data Mapping Methods This chapter documents the six ways in which you can map data that you are moving between your application and the fields on a form. You indicate how you want to map the data by the values you assign the datadescrpt parameter of the HPDDSEND, HPDREAD, or HPDPRINTFORM intrinsic.
subparameters. The first four subparameters supply header information; the last six provide table information. You supply values for some or all of these subparameters, depending on the mapping method you are using. In some cases, a subparameter is not used by a particular method, but it must be passed. The particular values that you can supply for a particular mapping method are discussed under that method.
Examples ‘screen 10‘ COBOL: 01 datadescrpt pic s9(8) comp. FORTRAN: INTEGER*4 DATADESCRPT Pascal: var datadescrpt : integer; Data Transfer Method B This method of data transfer lets you move a subset of data starting with the first byte. You indicate this method by supplying 10 as the four-byte integer for descrpttype. Data is moved as a concatenated string from or to databuf. This method allows for no data type conversions.
by number and 30 if you want to identify fields by name. The offset and length of each field in the application data buffer is implicitly defined by the form. This means the application buffer must have the same layout as the form. The subparameters you must supply to use this data mapping method and their values are: descrpttype Supply a value of 20 to identify fields by number. Supply a value of 30 to identify fields by name. buflen A four-byte integer.
Pascal: type fldentry_rec = record fldid : packed array [1..32] of char; end; datadescrpt_rec = record descrpttype : integer; buflen : integer; rtnbuflen : integer; entrycnt : integer; fldentry : array [1..5] of fldentry_rec; end; var datadescrpt : datadescrpt_rec; Data Transfer Method D This data transfer method lets you move data to and from the fields referenced in the form, but the application buffer does not have to match the screen layout. All data must come from one buffer.
number of bytes you want to move. If you supply a zero, the length of the referenced field in the form data buffer is used by default. If you supply a negative value, no data is moved between the application and the form. rtnfldlen A four-byte integer. The number of field data bytes actually moved is returned here. typcnvcode Supply a four-byte integer to indicate the data type conversion you want performed.
CHARACTER*16 FLDID(3,5) EQUIVALENCE (DATADESCRPT(5), FLDID) For an example of how a record structure can be manipulated in FORTRAN, see the COLLECT_TXNS subroutine in the FORTRAN example program in Appendix C. Pascal: type fldentry_rec = record fldloc : integer; fldlen : integer; rtnfldlen : integer; typcnvcode : integer; fldid : packed array [1..32] of char; end; datadescrpt_rec = record descrpttype : integer; buflen : integer; rtnbuflen : integer; entrycnt : integer; fldentry : array [1..
passed anyway. entrycnt Supply a four-byte integer that represents the number of active field entries in the table. fldentry Identifies the table defined by your application. fldloc Supply a four-byte integer that represents the byte address of the field in the application data space. If you supply a zero, Hi-Li assumes the field is in databuf and the location of the field in the application data space is determined by applying the offset of the referenced field in the form data buffer to databuf.
INTEGER*4 RTNBUFLEN INTEGER*4 ENTRYCNT EQUIVALENCE (DATADESCRPT(1), DESCRPTTYPE(, + (DATADESCRPT(2), BUFLEN), + (DATADESCRPT(3), RTNBUFLEN), + (DATADESCRPT(4), ENTRYCNT) INTEGER*4 FLDLOC(12,5) INTEGER*4 FLDLEN(12,5) INTEGER*4 RTNFLDLEN(12,5) INTEGER*4 TYPCNVCODE(12,5) EQUIVALENCE (DATADESCRPT(5), FLDLOC), + (DATADESCRPT(5), FLDLEN), + (DATADESCRPT(5), RTNFLDLEN), + (DATADESCRPT(5), TYPCNVCODE) CHARACTER*16 FLDID(3,5) EQUIVALENCE (DATADESCRPT(5), FLDID) For an example of how a record structure can be manipu
using IEEE formatting rules. Examples COBOL: 01 datadescrpt FORTRAN: INTEGER*4 pic s9(8) comp. DATADESCRPT Pascal: var datadescrpt : integer; Summary of Data Mapping Methods Methods A, B, and C allow you to transfer data and subsets of data, but do not allow data type conversion. Method A is the simplest of the six methods: you can choose to transfer all data or no data. Methods B and C allow you to transfer subsets of data.
A B C D E F FEATURE 0-1 10 20-30 40-50 60-70 1000-1100 -------------------------------------------------------------------Actual field length returned by application X X X X Receive or send no data by field X X X X Field identified by name X X X Field identifed by number or screen order X X X Application may specify data type conversion X X X X Can mix field data initialization from forms and the application Supports data transfer between a form and multiple application buffers X X
4- 12
Appendix A Error Messages Hi-Li Errors and Exceptions See the returnpak parameter under "Common Parameters" for a description of error and exception reporting mechanisms. There are a number of cases where the error or exception code returned by the Hi-Li intrinsics is an "um brella" for errors returned by the underlying facilities. These cases are indicated by the commercial 'at' sign (@) to the right of the error or exception number.
-19 @ Unrecognized form positioning code passed. -18 Unable to decode the form name that was passed. -17 Terminal is not enabled. -16 @ Copying of application data to form failed. -15 @ Loading of application message into window area failed. -14 @ Screen painting failed. -13 @ Cursor positioning failed. -12 @ Attempt to obtain information about field failed. -9 Forms file is not open. -6 Communications area is not setup. 30 @ Field initialization data errors detected.
24 Read timed out. 31 Inactive function key (or field) terminated read. 33 @ Field editing data errors detected. 35 @ Field reformatting (finishing) data errors detected. 37 @ Buffer transformation warning detected. HPDPROMPT Errors and Exceptions: -40 @ Attempt to obtain field error bitmap failed (internal error). -39 Prompt call may only follow Send, Read, or another Prompt call. -38 Unrecognized window enhancement code passed. -31 @ Unable to reset form function key label set.
-5 Inappropriate file name passed. -3 @ Forms file open failed. -2 -1 Access denied; contact the person who supports use of this software. Unrecognized call protocol (programming language code) passed. HPDCLOSEFORMS Errors and Exceptions: -9 Forms file is not open. -7 @ Forms file close failed. -6 Communications area is not setup. -5 Inappropriate file name passed. HPDENABLETERM Errors and Exceptions: -11 Attempt to enable terminal which is currently enabled.
Thus: -301 = invalid length for file output; -302 = invalid length for form output; -303 = invalid length for field output; etc. -2xx Unrecognized key descriptor passed. Thus: -201 = unrecognized file level key descriptor; -202 = unrecognized form level key descriptor; -203 = unrecognized field level key descriptor; etc. -1xx No retrieval key specified. Thus: -101 = no file key; -102 = no form key; -103 = no field key; etc. -55 Invalid use of private mode.
-60 @ Attempt to configure language failed. -58 @ Attempt to return forms file language characteristic failed. -56 Unrecognized configuration mode code passed. -27 Terminal was switched out of block mode (and is not "enabled"). -17 Terminal is not enabled. -9 Forms file is not open. -6 Communications area is not setup. -5 Inappropriate file name passed. HPDPRINTFORM Errors and Exceptions: A-6 -88 Attempt to advance list file page failed. -86 Attempt to open list file failed.
-16 @ -12 @ Copying of application data to form failed. Attempt to obtain information about field failed. -9 Forms file is not open. -6 Communications area is not setup. 30 @ Field initialization data errors detected. 35 @ Field reformatting (finishing) data errors detected. 40 May not have filled all character positions in field(s). Errors and Exceptions Cross-Reference HP3000 Underlying facility by Hi-Li version: 1. A.@@.
-12 Vgetfieldinfo -8 Vcloseterm -7 Vcloseformf -4 Vopenterm -3 Vopenformf +30 Vinitform (data initialization error)* +33 Vfieldedits (data editing error)* +35 Vfinishform (data finishing error)* +37 Vgetbuffer (buffer transformation warning) +59 Vgetfield (field data content flagged) * 'sublayerstatus' will be zero; 'returnmsg' argument of 'RETURNPAK' parameter will contain designer's custom message (or standard catalog message if no custom message defined).
Appendix B VPLUS/V and HI-LI Intrinsics Comparison of VPLUS/V and Hi-Li Intrinsics The Hi-Li intrinsics consist of eleven intrinsics that provide a similar functionality to the current VPLUS/V intrinsics. Table B-1 lists each Hi-Li intrinsic and the corresponding VPLUS/V intrinsics that perform the same function. This table will be helpful if you currently use VPLUS/V intrinsics and plan to convert to using Hi-Li intrinsics. Table B-1.
--------------------------------------------------------------------------------------------| | | | HPDPRINTFORM | VFINISHFORM | | | VGETNEXTFORM | | | VINITFORM | | | VPRINTFORM | | | VPUTBUFFER | | | VPUTFIELD | | | VPUTTYPE | | | | --------------------------------------------------------------------------------------------- Comparison of VPLUS/V and Hi-Li Intrinsics (cont.
Appendix C Diagnostics and Sample Programs This appendix discusses the Hi-Li diagnostic facility and version utility, and provides sample application programs written in COBOL, FORTRAN, and Pascal that demonstrate the use of Hi-Li intrinsics. Hi-Li Diagnostics Trace Facility The Hi-Li intrinsic diagnostic facility is an application debugging tool that can be used to diagnose applications that use Hi-Li intrinsics. It shows: * * * intrinsic entry and exit, intrinsic formats, and parameter contents.
Formsfile = PAYROLL.WORK.ADMIN <<<< Leaving HPDOPENFORMS Returnpak.returnstatus = .sublayerstatus = >>>> Entered HPDCLOSEFORMS Globalpak.expectedvuf = A.00.10 .callprotocol = .comarealen = Formsfile = PAYROLL.WORK.ADMIN <<<< Leaving HPDCLOSEFORMS Returnpak.returnstatus = .sublayerstatus = >>>> Entered HPDDISABLETERM Globalpak.expectedvuf = A.00.10 .callprotocol = .comarealen = Termpak.termfile = .bypassfeature = Devconfig.allolen = 0 <<<< Leaving HPDDISABLETERM Returnpak.returnstatus = .
.doread = 0 .bypassfeature = 0 Readitems.itemcnt = 0 Datadescrpt.descrpttype = 10 Fieldlist.listtype = 0 <<<< Leaving HPDREAD Returnpak.returnstatus = 0 .sublayerstatus = 0 .lastitemtype = 0 .lastitemnum = 0 .lastitemname = $ENTER .numdataerrs = 0 Databuf (1st 4 bytes as char) = Bert " (1st 4 bytes as integer) = 1113944692 >>>> Entered HPDSEND Globalpak.expectedvuf = A.00.10 .callprotocol = 0 .comarealen = 300 Sendpak.dontenableinput = 0 .windowenh = .bypassfeature = 0 Formpak.formname = DEDUCTION .
Termpak.termfile = HPTERM .bypassfeature = Devconfig.allolen = <<<< Leaving HPDDISABLETERM Returnpak.returnstatus = .sublayerstatus = 0 0 0 0 Version Utility Hi-Li provides a utility program that you can run if you need to determine what version of the Hi-Li software you are running.
Figure C-1. Structure of the Application Program COBOL Sample Program $CONTROL LIST, MAP, VERBS IDENTIFICATION DIVISION. PROGRAM-ID. ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** COBOL-EXAMPLE. This application collects employee payroll deduction transactions and places the edited transactions into a file. For this application: Enter key = edit and file transaction; f8 = exit application; all other f keys = redo transaction.
RECORD CONTAINS 200 CHARACTERS DATA RECORDS ARE TXN-REC. 01 TXN-REC. 05 FILLER PIC X(200). WORKING-STORAGE SECTION. 01 01 01 01 01 01 01 01 01 01 01 C- 6 GLOBALPAK. 05 EXPECTEDVUF 05 CALLPROTOCOL 05 COMAREALEN 05 COMAREA PIC PIC PIC PIC X(8). S9(8) COMP. S9(8) COMP. X(300) VALUE LOW-VALUES. RETURNPAK. 05 RETURNSTATUS 05 SUBLAYERSTATUS 05 RETURNMSGLEN 05 RETURNMSG 05 LASTITEMTYPE 05 LASTITEMNUM 05 LASTITEMNAME 05 NUMDATAERRS 05 NUMCHNGFLDS PIC PIC PIC PIC PIC PIC PIC PIC PIC S9(8) COMP.
05 RESETHILITED PIC S9(8) COMP. 01 DONE-WITH-TRANSACTIONS PIC X. 01 ERROR-LOCATION PIC X(70). 01 DATA-ENTRY-ERRS PIC X. 01 NBR-TXN-COLLECTED PIC 9(4). 01 STOP-NOW PIC X. 01 UNUSED-PARM PIC S9(8) COMP VALUE ZERO. PROCEDURE DIVISION. A-000-START-PROGRAM. MOVE "N" TO STOP-NOW DONE-WITH-TRANSACTIONS. MOVE ZERO TO NBR-TXN-COLLECTED. PERFORM A-100-SETUP-FOR-WORK. PERFORM A-500-COLLECT-TRANSACTIONS UNTIL STOP-NOW = "Y" OR DONE-WITH-TRANSACTIONS = "Y". PERFORM A-900-CLEANUP-AFTER-WORK.
MOVE "PAYROLL.WORK.ADMIN" TO FFNAME OF FORMSFILE. CALL "HPDOPENFORMS" USING GLOBALPAK RETURNPAK FORMSFILE. IF RETURNSTATUS OF RETURNPAK NOT = 0 MOVE "Y" TO STOP-NOW MOVE "**** Routine: Setup For Work - Forms File Open" TO ERROR-LOCATION PERFORM Z-100-GET-ERROR-MESSAGE. ***** Setup the terminal.
OF CHNGENTRY(2). OF CHNGENTRY(2). MOVE "SUR_NAME" TO FIELD_ID MOVE 5 TO CHANGE-TYPE MOVE "O" TO CHANGE-SPEC OF CHNGENTRY(3). OF CHNGENTRY(3). OF CHNGENTRY(3). ***** MOVE 5 TO CHANGE-TYPE MOVE "O" TO CHANGE-SPEC Setup window message. MOVE 79 TO MSGLEN OF MSGFORWINDOW. MOVE "Fill in Deduction Transaction according to worksheet." TO MSGAREA OF MSGFORWINDOW. ***** Don't copy application data out to display. MOVE -1 TO DESCRPTTYPE OF DATADESCRPT. ***** Show Form.
CALL "HPDREAD" USING GLOBALPAK RETURNPAK READPAK UNUSED-PARM UNUSED-PARM DATADESCRPT DATABUF UNUSED-PARM. IF RETURNSTATUS OF RETURNPAK < 0 MOVE "Y" TO STOP-NOW MOVE "**** Routine: Read Edit and File - Terminal Read" TO ERROR-LOCATION PERFORM Z-100-GET-ERROR-MESSAGE. ***** Determine if operator wants to stop transaction collection. IF STOP-NOW NOT = "Y" AND RETURNSTATUS OF RETURNPAK = 0 IF LASTITEMTYPE OF RETURNPAK = 0 AND LASTITEMNUM OF RETURNPAK = 8 MOVE "Y" TO DONE-WITH-TRANSACTIONS.
B-200-PROMPT-OPERATOR. ***** ***** Get message text associated with first field flagged ***** with a data error. ***** MOVE RETURNMSGLEN OF RETURNPAK TO MSGLEN OF MSGFORWINDOW. MOVE RETURNMSG OF RETURNPAK TO MSGBUF OF MSGFORWINDOW. ***** No special Prompt instructions. MOVE ZERO TO REPAINTDATA OF PROMPTPAK. MOVE SPACES TO WINDOWENH OF PROMPTPAK. MOVE ZERO TO RESETHILITED OF PROMPTPAK. ***** ***** Display form with highlighted fields and error message in window.
FORTRAN Sample Program $CONTROL list on, tables on ! ! This application collects employee payroll deduction ! transactions and places the edited transactions into ! a file. ! ! For this application: Enter key = edit and file ! transaction; ! ! f8 = exit application; ! ! all other f keys = redo transaction. ! ! Each transaction entered by the operator is subjected to the ! data edits embedded within the input form.
CALL CLEANUP_AFTER_WORK ! PRINT *, + "Deduction transactions collected this session = ", + NBR_TXN_COLLECTED ! IF (STOP_NOW.EQ.
! INTEGER*2 ARRAY_INDEX ! ! Init Unused Parm which is used whenever intrinsic input ! parameter is not active. ! UNUSED_PARM = 0 ! ! Init Comarea to all zeros. ! ARRAY_INDEX = 1 DO WHILE (ARRAY_INDEX.LE.75) COMAREA(ARRAY_INDEX) = 0 ARRAY_INDEX = ARRAY_INDEX + 1 END DO ! ! Set Expected HP32424A Version. ! EXPECTEDVUF = "A.00.00 " ! ! Set Language for FORTRAN-77. ! CALLPROTOCOL = 210 ! ! Set Comarealen for 300 bytes.
TERMNAME = "HPTERM" TERMBYPASSFEAT = 0 ! CALL HPDENABLETERM (GLOBALPAK, RETURNPAK, TERMPAK, UNUSED_PARM) + + + ! IF (RETURNSTATUS.NE.
CHARACTER*32 FORMNAME INTEGER*4 FORMPOSITION INTEGER*4 LISTTYPE INTEGER*4 LISTCOUNT EQUIVALENCE (FORMPAK(1), FORMNAME), + (FORMPAK(9), FORMPOSITION), + (FORMPAK(10), LISTTYPE), + (FORMPAK(11), LISTCOUNT) CHARACTER*44 FIELD_ID(1,3) EQUIVALENCE (FORMPAK(12), FIELD_ID) INTEGER*4 CHANGE_TYPE (11,3) CHARACTER*4 CHANGE_SPEC (11,3) EQUIVALENCE (FORMPAK(12), CHANGE_TYPE), + (FORMPAK(12), CHANGE_SPEC) ! ! No special Send instructions ! SENDPAK(1) = 0 SENDPAK(2) = 0 SENDPAK(3) = 0 SENDPAK(4) = 0 ! ! Setup to get and
! CALL HPDSEND (GLOBALPAK, RETURNPAK, SENDPAK, FORMPAK, UNUSED_PARM, MSGFORWINDOW, DATADESCRPT, UNUSED_PARM, UNUSED_PARM, UNUSED_PARM) + + + + + + + + + ! IF (RETURNSTATUS.NE.0) THEN STOP_NOW = 1 ERROR_LOCATION = + "**** Routine: Collect Transactions - Form display" CALL UNBLOCK_MSG END IF ! ! Setup and loop on transaction until it can be filed. ! DATA_ENTRY_ERRS = 1 ! DO WHILE (DATA_ENTRY_ERRS.EQ.1 + .AND.STOP_NOW.EQ.0 + .AND.DONE_WITH_TXNS.EQ.
INTEGER*4 CHARACTER*79 MSGLEN MSGAREA EQUIVALENCE (MSGFORWINDOW(1), MSGLEN), (MSGFORWINDOW(2), MSGAREA) + ! INTEGER*4 DATADESCRPT(3) INTEGER*4 UNUSED_PARM INTEGER*2 INTEGER*2 INTEGER*2 CHARACTER*70 INTEGER*2 STOP_NOW DONE_WITH_TXNS NBR_TXN_COLLECTED ERROR_LOCATION DATA_ENTRY_ERRS ! ! ! INTEGER*4 READPAK(3) INTEGER*4 ENABLEREFORMAT EQUIVALENCE (READPAK(2), ENABLEREFORMAT) ! INTEGER*4 DATABUF(50) CHARACTER*200 DATAAREA EQUIVALENCE (DATABUF(1), DATAAREA) ! ! Enable data finishing.
! Determine if edit errors detected. ! IF (STOP_NOW.EQ.0 + .AND.DONE_WITH_TXNS.EQ.0) THEN ! IF (RETURNSTATUS.EQ.0) THEN DATA_ENTRY_ERRS = 0 ELSE DATA_ENTRY_ERRS = 1 END IF END IF ! ! Do we have a transaction that can be filed? ! IF (STOP_NOW.EQ.0 + .AND.DONE_WITH_TXNS.EQ.0) THEN ! IF (DATA_ENTRY_ERRS.EQ.0 + .AND.LASTITEMTYPE.EQ.0 + .AND.LASTITEMNUM.EQ.0) THEN ! ! Write Databuf to Transaction File.
$TITLE ' Prompt Operator' !***************************************************************! ! ! ! Prompt Operator ! ! ! !***************************************************************! ! SUBROUTINE PROMPT_OPERATOR ! IMPLICIT NONE ! COMMON /COM01/ GLOBALPAK COMMON /COM02/ RETURNPAK COMMON /COM07/ MSGFORWINDOW COMMON /COM10/ UNUSED_PARM COMMON /COM102/ STOP_NOW COMMON /COM101/ ERROR_LOCATION ! SYSTEM INTRINSIC HPDPROMPT ! INTEGER*4 GLOBALPAK(79) ! INTEGER*4 RETURNPAK(79) INTEGER*4 RETURNSTATUS INTEGER*4 RETU
END $TITLE ' Cleanup After Work' !***************************************************************! ! ! ! Cleanup After Work ! ! ! !***************************************************************! ! SUBROUTINE CLEANUP_AFTER_WORK ! IMPLICIT NONE ! COMMON COMMON COMMON COMMON COMMON /COM01/ /COM02/ /COM03/ /COM04/ /COM10/ GLOBALPAK RETURNPAK FORMSFILE TERMPAK UNUSED_PARM ! SYSTEM INTRINSIC HPDCLOSEFORMS, HPDDISABLETERM + ! INTEGER*4 INTEGER*4 INTEGER*4 INTEGER*4 INTEGER*4 GLOBALPAK(79) RETURNPAK(79) FORM
INTEGER*4 MSGLEN CHARACTER*1 MSGAREA(79) EQUIVALENCE (MSGFORWINDOW(1), MSGLEN), + (MSGFORWINDOW(2), MSGAREA) ! ! INTEGER*2 ARRAY_INDEX ! ARRAY_INDEX = 1 DO WHILE (ARRAY_INDEX.LE.
Pascal Sample Program $code_offsets on$ $tables on$ { This application collects employee payroll deduction transactions and places the edited transactions into a file. For this application: Enter key = edit and file transaction; f8 = exit application; all other f keys = redo transaction. Each transaction entered by the operator is subjected to the data edits embedded within the input form.
FORMPAK_REC = RECORD FORMNAME FORMPOSITION LISTTYPE LISTCOUNT CHNGENTRY END; : : : : : PACKED ARRAY [1..32] OF CHAR; INTEGER; INTEGER; INTEGER; ARRAY [1..3] OF CHNGENTRY_REC; MSG_REC = RECORD MSGLEN MSGAREA END; : : INTEGER; PACKED ARRAY [1..79] OF CHAR; DATADESCRPT_REC = RECORD DESCRPTTYPE BUFLEN RTNBUFLEN END; : : : INTEGER; INTEGER; INTEGER; DATABUF_REC = RECORD DATAAREA END; : PACKED ARRAY [1..
PROCEDURE HPDDISABLETERM ; INTRINSIC; $TITLE ' Display System Error'$ { ***************************************************************** * * * Display System Error * * * ***************************************************************** } PROCEDURE DISPLAY_SYSTEM_ERROR; BEGIN WRITELN ('Transaction entry facility detected system error at:'); WRITELN (ERROR_LOCATION); WRITELN ('**** The error message returned is:'); WRITELN (MSGFORWINDOW.MSGAREA:MSGFORWINDOW.
FORMSFILE); HPDDISABLETERM (GLOBALPAK, RETURNPAK, TERMPAK, UNUSED_PARM); END; { PROCEDURE CLEANUP_AFTER_WORK } $TITLE ' Prompt Operator'$ { ***************************************************************** * * * Prompt Operator * * * ***************************************************************** } PROCEDURE PROMPT_OPERATOR; BEGIN { Get error message. } UNBLOCK_MESSAGE; { No special Prompt instructions. } PROMPTPAK.REPAINTDATA := 0; PROMPTPAK.WINDOWENH := ; PROMPTPAK.
READPAK.ENABLEREFORMAT := 1; { No other special Read instructions. } READPAK.READTIME := 0; READPAK.DOREREAD := 0; { Indicate that all data in form, up to 200 bytes, is to be copied into application work space. } DATADESCRPT.DESCRPTTYPE := 10; DATADESCRPT.BUFLEN := 200; { Read form. } HPDREAD (GLOBALPAK, RETURNPAK, READPAK, UNUSED_PARM, UNUSED_PARM, DATADESCRPT, DATABUF, UNUSED_PARM); IF RETURNPAK.
END; { Do we need to prompt the operator to correct errors? } IF NOT STOP_NOW AND NOT DONE_WITH_TXNS THEN IF DATA_ENTRY_ERRS THEN IF (RETURNPAK.LASTITEMTYPE = 0) AND (RETURNPAK.LASTITEMNUM = 0) THEN PROMPT_OPERATOR ELSE { Operator pressed some key other than ENTER or EXIT so, clear data error flag to break loop (display refresh results).
FORMPAK.CHNGENTRY [2].CHANGE_TYPE := 5; FORMPAK.CHNGENTRY [2].CHANGE_SPEC := 'O'; FORMPAK.CHNGENTRY [3].FIELD_ID := 'SUR_NAME'; FORMPAK.CHNGENTRY [3].CHANGE_TYPE := 5; FORMPAK.CHNGENTRY [3].CHANGE_SPEC := 'O'; { Setup window message. } MSGFORWINDOW.MSGLEN := 79; MSGFORWINDOW.MSGAREA := 'Fill in Deduction Transaction according to worksheet.'; { Don't copy application data out to display. } DATADESCRPT.DESCRPTTYPE := -1; { Show Form.
ARRAY_INDEX := 1; WHILE ARRAY_INDEX <= 75 DO BEGIN GLOBALPAK.COMAREA [ARRAY_INDEX] := 0; ARRAY_INDEX := ARRAY_INDEX + 1; END; { Set Expected HP32424A Version. } GLOBALPAK.EXPECTEDVUF := 'A.00.00'; { Set Language for Pascal. } GLOBALPAK.CALLPROTOCOL := 500; { Set Comarealen for 300 bytes. } GLOBALPAK.COMAREALEN := 300; { Open the Transaction File. } APPEND (PAYTXN_FILE, 'PAYTXN'); { Open the Forms File. } FORMSFILE.FFNAME := 'PAYROLL.WORK.ADMIN'; HPDOPENFORMS (GLOBALPAK, RETURNPAK, FORMSFILE); IF RETURNPAK.
$TITLE ' Main Program'$ { ***************************************************************** * * * Main Program * * * ***************************************************************** } BEGIN STOP_NOW := FALSE; DONE_WITH_TXNS := FALSE; NBR_TXNS_COLLECTED := 0; SETUP_FOR_WORK; WHILE NOT STOP_NOW AND NOT DONE_WITH_TXNS DO COLLECT_TRANSACTIONS; CLEANUP_AFTER_WORK; WRITELN ('Deduction transactions collected this session = ', NBR_TXNS_COLLECTED); IF STOP_NOW THEN DISPLAY_SYSTEM_ERROR; END.
Appendix D Terminals Supported by HI-LI This appendix contains information about those terminals that are supported by the Hi-Li intrinsics, and discusses how Hi-Li uses their various features. In addition, sections about terminal buffer configuration and how to recover from unexpected program interruptions are provided. Refer to this appendix if you have any terminal dependent questions as you develop your application.
terminals on FORMSPEC's Terminal/Language Selection Menu. The HP 2392A Terminal. To use the security display enhancement feature on this terminal, you must specify the HP 262X and HP 239X family of terminals on FORMSPEC's Terminal/Language Selection Menu. The HP 2393A Terminal. To use the security display enhancement feature on this terminal, you must specify the HP 262X and HP 239X family of terminals on FORMSPEC's Terminal/Language Selection Menu. The HP 2394A Terminal.
When using a form, the terminal can issue the following message at run time: LINE IS FULL - RETURN TO CLEAR. This message means that there are too many characters on the line. must redesign and recompile the form. You The HP 2625A and HP 2628A Terminals. To use the security display enhancement feature of these terminals, you must specify the HP 262X and HP 239X families of terminals on the FORMSPEC Terminal/Language Selection Menu. The HP 2626A Terminal.
Modified Data Tag (MDT) This feature allows you to specify that only the fields that have been modified are transmitted to the computer. You do not need to take any action to use this feature. Extended Local Edits This feature allows the terminal to edit information as it is typed onto the form. You specify the editing you want to be done by entering the LOCALEDITS command in the field processing specification section of FORMSPEC.
REFRESH function key by calling the HPDSEND intrinsic and passing the $REFRESH form name token when a REFRESH key request is detected. With a design that includes a REFRESH function key, the following recovery procedures should be used when an unexpected program interruption occurs. If the interruption occurs because the BREAK key was pressed or because of a terminal power failure, control returns to MPE. To recover from this situation, take the following steps: 1.