Handling Execution Errors [ HP RPG/XL Programmer's Guide ] MPE/iX 5.0 Documentation
HP RPG/XL Programmer's Guide
Handling Execution Errors
If an error occurs while you're executing an RPG program, an error
message (and often an error number) is displayed. If the error is a file
error, the File Information Display is produced automatically along with
an Error Dump (you can request error dumps independently, if you wish).
The sections which follow in this chapter discuss error messages, Error
Dumps and the File Information Display in detail.
If you're executing a program in session mode, the error message and File
Information Display are shown on your terminal. In job mode, error
messages are displayed on the operator's console and the File Information
Display is saved with the job listing. It is a good idea, when running
in job mode, to capture the messages and file information in a disc file.
This gives you more flexibility in scheduling your jobs and lets you
examine results at a later time. The following RUN command executes the
program GL50 and redirects error information to the existing disc file,
MESSFL:
:RUN GL50;STDLIST=MESSFL
Error Messages
There are four types of error messages: RPG, IMAGE, USWITCH and BUFCHK.
RPG errors are general errors such as arithmetic overflow and matching
record sequence errors. TurboIMAGE errors originate in the TurboIMAGE
subsystem and you may see these errors if you're using an IMAGE database
in your program. You may see USWITCH and BUFCHK errors if you're using
the USWITCH Source or the BUFCHK features of RPG, respectively.
Each type of error message has a different format and is documented
separately. RPG, USWITCH and BUFCHK errors are documented in Appendix B
of the HP RPG Reference Manual. TurboIMAGE errors are explained in the
TurboIMAGE/XL Database Management System manual. It is important,
therefore, to learn to recognize these three types of message formats so
that you will know where to find explanations and remedial procedures for
them.
RPG Errors. Most of the error messages you see when running an RPG
program are RPG error messages. RPG errors are detected by the software
that performs the basic RPG processing. They also include errors
occurring in software that RPG interfaces with, such as VPLUS, RSI, and
KSAM.
Appendix B of the HP RPG Reference Manual contains a complete description
of the RPG errors and actions that you can take to correct the errors.
Identifying RPG Errors
Figure 7-3 shows a typical RPG error message. Lines relating to RPG
errors are shaded. You identify an RPG error by the line,
*** RPG ERROR ***
You identify the specific error by the error number line,
1. FATAL FILE ERROR, FILENAME=DACCOUNT
Figure 7-3. An RPG Execution Error
Changing the Way RPG Errors Are Handled
Normally, when an RPG error occurs, a message is displayed and the user
(or console operator) selects a particular action to take. The operator
can ignore the error and continue, skip the line in error and continue or
terminate the program. If you do not want the operator or user to make
these choices for specific error situations, you can enter the actions to
take within your program. You can do this using either (or both) the
Header Specification or the *ERROR field.
Use the Header Specification to enter the responses you want RPG to make
when an error occurs. For instance, you might want the operator to
handle errors except when an input file sequence error occurs. When
input sequence errors occur, you want to continue processing and use your
own error handling instead. (Use the *ERROR field to find out the error
number, then code your own RPG operations to handle the error.) Figure
7-4 shows a Header Specification that suppresses normal RPG processing
for input file sequence errors (the program includes code to handle these
errors).
Figure 7-4. Providing a Response to RPG Errors Using the Header Specification
Comments
1 This Header Specification changes the default error handling for
input file sequence errors.
Column 55 contains N to specify that the error message for
sequence errors be suppressed. Instead of the normal response
to sequence errors, take the action entered in column 58.
Column 58 contains 0 to ignore input file sequence errors and to
continue program execution.
TurboIMAGE Errors. If you're using an TurboIMAGE database, you may see
TurboIMAGE errors. To find the explanation and remedies for TurboIMAGE
errors, see the TurboIMAGE/XL Database Management System manual.
Figure 7-5 shows what an TurboIMAGE read error message looks like.
Figure 7-5. An TurboIMAGE Error
USWITCH Errors. USWITCH errors may occur when you use the USWITCH Source
feature (column 16 in the Header Specification). Appendix B of the HP
RPG Reference Manual contains a complete description of the USWITCH
errors and recovery procedures for them.
These are the USWITCH error messages you may encounter:
I/O ERROR ON $STDLIST
I/O ERROR ON $STDIN
INVALID INPUT DATA
UNEXPECTED END OF FILE
Figure 7-6 shows what a typical USWITCH error display looks like.
Figure 7-6. A USWITCH Error
BUFCHK Errors. BUFCHK errors are data buffer handling errors that may
occur when you use the BUFCHK Defaults feature (column 28 in the Header
Specification). Appendix B of the HP RPG Reference Manual contains a
complete description of the BUFCHK errors and recovery procedures for
them.
These are the BUFCHK error messages you may encounter:
INTERNAL OR INTRINSIC ERROR
ATTEMPTED UPDATE BEFORE INPUT OF FIRST RECORD.
ATTEMPTED UPDATE ON SAME RECORD OR ON AN INTERVENING "ADD" RECORD.
ATTEMPTED LOCKING FILE AT BOTH RECORD-LEVEL AND FILE-LEVEL
Figure 7-7 shows what a typical BUFCHK error display looks like.
Figure 7-7. A BUFCHK -4 Error
The File Information Display
You see the File Information Display (often referred to as "tombstone")
when an error occurs that involves a file. File Information Displays
give additional information about the error. File Information Displays
are discussed in the operating system intrinsics and error messages
manuals.
The File Information Display is shown in short form when the file cannot
be opened for processing. This happens, for example, when the file does
not exist in the group or account specified. The shaded portion of
Figure 7-8 shows what the short form looks like.
Figure 7-8. Short Form of the File Information Display
Once a file is opened for processing and an error occurs, additional file
information is given in the File Information Display. This information
should help in clarifying the exact cause of the error. In Figure 7-9,
for example, RPG error number 1 occurred for the file, DACCOUNT. The File
Information Display gives detailed information about DACCOUNT.
Figure 7-9. Long Form of the File Information Display
The Error Dump
The Error Dump shows the contents of certain areas in memory when a
program terminates due to execution errors. For example, the Error Dump
shows fields and their contents and the settings of indicators.
Executable program code is not listed in the Error Dump.
You get the Error Dump automatically when file errors occur. Otherwise,
you must specifically request it. You should always request dumps for
production programs. The next four sections explain how to request an
Error Dump and the information it contains.
Creating an Error Dump File. It is usually more convenient to write the
Error Dump to a disc file rather than display it. Before executing the
program, create an empty disc file for the Error Dump.
The following operating system command creates the disc file, DUMPRPG,
that is in a format that can be used to save Error Dumps,
:BUILD DUMPRPG;REC=-80,16,F,ASCII;DISC=512,8
Requesting an Error Dump. You can get an Error Dump automatically by
entering an S in the Error Log Field (column 55) of the Header
Specification. The dump is produced whenever an RPG error occurs. If
you only want certain errors to trigger a dump, put an N in column 55 or
leave it blank. Then enter an error response for those errors (which
include a dump) into the Error Response Field (columns 56-71).
(Alternatively, if you leave the Error Log Field blank and an error
occurs, the operator can select response 5. Response 5 terminates the
program and produces a dump.)
This figure shows a Header Specification that requests an Error Dump
whenever an RPG error occurs.
Figure 7-10. Requesting an Error Dump
Comments
1 This Header Specification requests an Error Dump and directs it
to a disc file.
Columns 7-14 name the disc file, DUMPRPG, that contains the
Error Dump.
Column 55 is S to request an Error Dump if an error occurs. The
program terminates immediately. When you use S, you cannot use
the Response Field (columns 56-71) to enter error responses.
Parts of the Error Dump. Program information is shown in the Error Dump
in logical groupings with appropriate titles. The dump is easy to read.
Figure 7-11 (spread over several pages) shows an Error Dump of the
program in Figure 4-23 (see the compiler listing for this program in
Figure 6-11 through Figure 6-16).
The first part of the dump, LIBRARY POINTERS, shows the addresses of the
pointers to various tables and storage areas used by the program. Each
pointer contains the address of the first word of the table or storage
area.
*** LIBRARY POINTERS ***
lib_pointer pointer = 40200010
run-time globals pointer = 40200078
indicators pointer = 40200170
work area pointer = 40200230
alpha field pointer = 4020025C
numeric field pointer = 40200AC4
LDA buffer pointer = 00000000
UDATE field pointer = 40200ACA
UDAY field pointer = 40200ADD
UMONTH field pointer = 40200AEA
UYEAR field pointer = 40200AE4
ERROR field pointer = 40200AA5
alt collating seq tbl pointer = 00000000
file translation tables pointer = 00000000
file extension tables pointer = 40200DF4
workstation table pointer = 40200AF8
first file table pointer = 40200ED0
first record buffer pointer = 402010F0
level info pointer = 00000000
matching record info pointer = 00000000
first chain table pointer = 00000000
table/array tables pointer = 402012D0
first RLABL pointer = 00000000
terminal control table pointer = 00000000
current input proc. pointer = 40100081
get_rec() proc. pointer = 401000A1
Figure 7-11. The Error Dump - LIBRARY POINTERS
After the LIBRARY POINTERS section, the RUN-TIME GLOBALS DATA AREA is
displayed. This area contains run-time control and status information.
For example, one piece of information is the file number for a message
file used in the program. The first part of the globals area for the
program in Figure 4-11 is shown below.
*** RUN-TIME GLOBALS DATA AREA ***
H Col 16: user switch source = 0
H Col 17: UDATE source = 0
H Col 49: message control on record length error = 0
Date and number format: 0
Packed Decimal -1: OOOOOO1D
Packed Decimal +0: OOOOOOOC
Packed Decimal +1: OOOOOO1C
Run-time File Table count: 2
Run-time File Table size (bytes): 260
Table/Array Table count: 2
Table/Array Table size (bytes): 68
local data area size (bytes): 0
$STDLIST output record length (bytes): 81
User Message File number: 0
Current Line number: 504
Loop Counter: 0
Min size: 0
H Col 41: Request Page Alignment = 0
H Col 47: Don't skip to new page = 0
H Col 44: OK to move spec. chars = 0
in RPG logic cycle: 1
Match Descending in record matching: 2
Match Primary in record selection: 0
Match Records in record selection: 0
OK to end program: 0
In block mode: 1
Running Interactively: 1
NLS Catalog opened: 0
DS move done: 0
perform numeric validation: 1
uswitches used flag: 0
error parameter: 0
temporary storage: 0
$CONTROL EXCQUIT flag: 0
LDA file number: 0
$CONTROL NEWSAVE flag: 0
.
.
.
Figure 7-11. The Error Dump - RUN-TIME GLOBALS DATA AREA
The next two figures show the contents of the File Table Areas for each
file processed in the program. The first file shown is TERMINAL and the
second is DACCOUNT (these names are shaded in the figures).
The first section of each figure shows general information about the
file. For example, TERMINAL is a WORKSTN file whose designation is
DEMAND. Following the general information is the contents of the file
buffer (RECORD BUFFER (ASCII)). Then, the contents of the FILE TABLE are
listed in hexadecimal notation. The FILE TABLE contains all of the
control information used to process the file and may prove helpful in
determining the cause of file errors. The WORKSTATION EXTENSION TABLE
follows the FILE TABLE if the file is a WORKSTN file; the IMAGE EXTENSION
TABLE follows if the file is a TurboIMAGE file. They give information
relevant to those file types.
Refer to Table 7-1 through Table 7-3 for descriptions of positions in the
FILE, IMAGE EXTENSION and WORKSTATION EXTENSION TABLES. (A "word" in
Table 7-1 through Table 7-3 is 32 bits long.)
*** FILE TABLE AREA ***
FILE NAME = TERMINAL
MPEXL FILE NUMBER = -1 DEVTYPE = WORKSTN (ACTUAL = DISC)
FILE TYPE UPDATE FILE DESIGNATION DEMAND
RECORD FORMAT 256B, IR/B, VARIABLE SEQUENTIAL
RECORD BUFFER (ASCII)
FILE TABLE
40200ED0: FFFFFFFF 5445524D 494E414C 574F524B 53544E20
40200EE4: 00000000 00000000 00000000 00000002 00000006
40200EF8: 00000000 00000000 00000000 00000000 00000000
40200F0C: 00000000 00000000 00000000 00000001 00000000
40200F20: 00000000 00000000 00000100 00000001 00000000
40200F34: 402010F0 00000000 00000000 00000000 00000000
40200F48: 00000000 00000000 00000000 00000000 00000000
40200F5C: 40200AF8 00000000 00000000 00000000 00000000
40200F70: 00000000 00000000 00000000 00000000 00000000
40200F84: 00000000 00000000 00000000 00000001 01000000
40200F98: 00000000 00000000 00000000 00000000 00000000
4O2OOFAC: 00000000 00000000 00000000 00000000 00000000
40200FC0: 00000000 00000000 00000000 00000000 00000000
WORKSTATION EXTENSION TABLE
40200AF8: 00000000 00000000 00000000 00000000 00000000
40200B0C: 00000001 00000000 00000000 00000001 00000001
40200B20: 00000001 00000000 00000000 00000000 00000000
40200B34: 00000000 00000000 0000000B 00000000 FFFFFFF7
40200B48: 00000000 40A00000 40200ED0 00000000 00000000
.
.
.
Figure 7-11. The Error Dump - TERMINAL File and Workstation Tables
FILE NAME = DACCOUNT
MPEXL FILE NUMBER = 1 DEVTYPE = DISC (ACTUAL = DISC)
FILE TYPE UPDATE FILE DESIGNATION CHAINING
RECORD FORMAT 200B, IR/B, FIXED RANDOM
RECORD BUFFER (ASCII)
FILE TABLE
40200FD4: 00000001 44414343 4F554E54 44495343 20202000
40200FE8: 00000000 00000000 00000000 00000002 00000004
4O2OOFFC: 0000000F 00000001 00000000 00000000 00000006
40201010: 00000000 00000002 00000000 00000000 00000000
40201024: 00000000 00000000 000000C8 00000001 00000000
40201038: 40201208 00010100 00000001 00000001 00000000
4020104C: 00000000 00000000 00000000 00000000 00000000
40201060: 00000000 40200DF4 00000000 00000000 00000000
40201074: 00000000 00000000 00000000 00000000 00000000
40201088: 00000000 00000000 00000000 00000101 01000000
4020109C: 00000000 00000000 00000000 00000000 00000000
402010B0: 00000000 00000000 00000000 00000000 00000000
402010C4: 00000000 00000000 00000000 00000000 00000000
IMAGE EXTENSION TABLE
40200DF4: 00014D41 524B4554 20202020 57524954 45522020
40200E08: 4143434F 554E542D 4E4F2020 20202020 20202020
40200E1C: 20202020 442D4143 434F554E 54532020 20202020
40200E30: 00000011 3CAElOOO 00004192 40200DF4 00CA0000
40200E44: 00000000 00000000 00000000 00000000 00000000
40200E58: 00000004 00000005 00000040 00000001 00000000
40200E6C: 00000000 00000000 00000000 00000000 00000000
40200E80: 00000000 00000001 00000003 00000000 00000000
40200E94: 00000000 00000000 00000000 00000000 00000000
40200EA8: 40200EC4 40200ECA 00000000 00000000 00000000
4O2OOEBC: 00000000 00000000 00000000 00000000 00000000
40200ED0: FFFFFFFF 5445524D 494E414C 574F524B 53544E20
40200EE4: 00000000 00000000 00000000 00000002 00000006
40200EF8: 00000000 00000000 00000000 00000000 00000000
.
.
.
Figure 7-11. The Error Dump - DACCOUNT File and Extension Tables
After the File Table area, all indicator settings are listed as shown in
this figure.
*** LEVEL INDICATORS ***
LO = ON Ll = OFF L2 = OFF L3 = OFF L4 = OFF
LS = OFF L6 = OFF L7 = OFF L8 = OFF L9 = OFF
*** FUNCTION KEY INDICATORS ***
FO = OFF Fl = OFF F2 = OFF F3 = OFF F4 = OFF
FS = OFF F6 = OFF F7 = OFF F8 = OFF F9 = OFF
*** COMMAND KEY INDICATORS ***
KA = OFF KB = OFF KC = OFF KD = OFF KE = OFF
KF = OFF KG = OFF KH = OFF KI = OFF KJ = OFF
KK = OFF KL = OFF KM = OFF KN = OFF KP = OFF
KQ = OFF KR = OFF KS = OFF KT = OFF KU = OFF
KV = OFF KW = OFF KX = OFF KY = OFF
*** HALT INDICATORS ***
HO = OFF Hl = OFF H2 = OFF H3 = OFF H4 = OFF
H5 = OFF H6 = OFF H7 = OFF H8 = OFF H9 = OFF
*** OVERFLOW INDICATORS ***
OA = OFF OB = OFF OC = OFF OD = OFF
OE = OFF OF = OFF OG = OFF OV = OFF
LR = OFF MR = OFF IP = OFF
*** USER INDICATORS ***
Ul = OFF U2 = OFF U3 = OFF U4 = OFF U5 = OFF
U6 = OFF U7 = OFF U8 = OFF
*** OTHER INDICATORS ***
01 = OFF 02 = OFF 03 = OFF 04 = OFF
OS = OFF 06 = OFF 07 = OFF 08 = OFF 09 = OFF
Figure 7-11. The Error Dump - INDICATORS
The contents of alphanumeric and numeric fields are listed next, as shown
in the following figure. To see the contents of a particular field, find
the field's address in the compiler Symbol Table listing, then locate
that address using the address column at the left margin. For example,
the ADDR column in the Symbol Table listing for the field ACTION contains
000002a4 (in hexadecimal). Adding the offset address (40200010) of
lib_pointer in the LIBRARY POINTERS section of the Error Dump, the actual
address for ACTION is 402002B4. Since ACTION is an alphanumeric field,
it takes up six bytes. The shaded area in the Alphanumeric Fields
section shows the contents of ACTION (it is blank).
*** ALPHANUMERIC FIELDS ***
4020025C:
4020029D:
402002DE:
4020031F: ADD MODE CH
40200360: ANGE MODE INQUIRY MODE DELETE MODE
402003A1: EXIT
402003E2: SELECT
40200423: MODE WITH FUNCTION KEY
40200464: MAKE CHANGES AND HIT ENTER (F7 TO CANCEL CHANGE)
402004A5:
402004E6: YOU MAY NOT CHANGE ACCOUNT NUM
40200527: BER OR LAST NAME (F7 TO CLEAR) INVALID KEY (F7
40200568: TO CLEAR) EX
402005A9: ISTING ACCOUNT NUMBER
402005EA: INVALID ACCOUNT NUMBER
4020062B: PRESS F5 AGAIN TO CONFIRM DELETE (F7 TO
4020066C: CANCEL DELETE)
402006AD:
402006EE:
4020072F:
.
.
.
*** NUMERIC FIELDS ***
40200AC4: 0000000000000030988F00000000000000000000000000000000009F0000000000
40200AE4: 088F00000000003F00000000000000000000000
Figure 7-11. The Error Dump - ALPHANUMERIC and NUMERIC FIELDS
The last part of the formatted dump lists table and array information.
Each table and array is listed in the order in which it appears in the
program. For each table and array, control information is printed first
followed by an ASCII dump of the table or array's contents. In the
following figure, the arrays MSG and LBL are printed (they are defined in
lines 25 and 26 of the source program).
** TABLES AND ARRAYS ***
ARRAY DEFINED ON LINE NUMBER = 25
COMPILE TIME ARRAY, NO SEQUENCE, ALPHAMERIC, NOT ALTERNATING
ENTRY LENGTH 79 POINTER TO ARRAY = 4020041C NO. OF ENTRIES = 20
HEX DUMP OF T/A CONTROL INFORMATION
402012D0: 403BBC08 00000002 00000000 00000000 00000000
402012E4: 00000000 00000000 00000001 00000001 0000004F
402012F8: 00000014 0000004F 00000019 4020041C 00000000
4020130C: 00000000 00000000
ASCII DUMP OF ARRAY
4020041C :
SELECT MODE WITH FUNCTION KEY
4020045D :
MAKE CHANGES AND HIT ENTER (F7 TO CANCEL CHANGE)
4020049E :
.
.
.
ARRAY DEFINED ON LINE NUMBER = 26
COMPILE TIME ARRAY, NO SEQUENCE, ALPHAMERIC, NOT ALTERNATING
ENTRY LENGTH 16 POINTER TO ARRAY = 4020034E NO. OF ENTRIES = 8
HEX DUMP OF T/A CONTROL INFORMATION
40201314: 00000000 00000002 00000000 00000000 00000000
40201328: 00000000 00000000 00000000 00000001 00000010
4020133C: 00000008 00000010 0000001A 4020034E 00000000
40201350: 00000000 00000000
ASCII DUMP OF ARRAY
4020034E :
ADD MODE CHANGE MODE INQUIRY MODE D
4020038F :
ELETE MODE EXIT
Figure 7-11. The Error Dump - TABLES AND ARRAYS
Table 7-1. The File Table
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 0 | | Number returned by FOPEN intrinsic |
| | | |
| 1-2 | | File name |
| | | |
| 3-4 | | Device type name |
| | | |
| 5-7 | | Line number for line printer channel control |
| | | |
| 8 | | File type: |
| | | 0 = Input file |
| | | 1 = Output file |
| | | 2 = Update file |
| | | 3 = Display file |
| | | 4 = Combined file |
| | | |
| 9 | | File designation: |
| | | 0 = Secondary input file |
| | | 1 = Blank |
| | | 2 = Primary input file |
| | | 3 = Record address file |
| | | 4 = Chaining file |
| | | 5 = Table or array file |
| | | 6 = Demand file |
| | | |
| 10 | | File organization: |
| | | 1-7 = Sequential or direct access file (allocate 1-7 buffers) |
| | | 8-9 = Sequential or direct access file (allocate 2 buffers) |
| | | 00 = Neither an ADDROUT nor a direct-access file |
| | | 10 = An ADDROUT file |
| | | 11 = A direct-access file |
| | | 13 = A KSAM file |
| | | 14 = An ISAM file |
| | | 15 = A TurboIMAGE file |
| | | |
| 11 | | Processing mode: |
| | | 0 = A sequential file |
| | | 1 = A random-access file |
| | | 2 = An indexed file processed sequentially between limits |
| | | |
| 12 | | Overflow indicator (if this is a printer file): |
| | | 122-128 = OA-OG |
| | | 129 = OV |
| | | |
-----------------------------------------------------------------------------------------------
Table 7-1. The File Table (Continued)
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 13 | | File conditioner: |
| | | 0 = File can be used unconditionally |
| | | 179-186 = U1-U8 |
| | | |
| 14 | | The key length (in bytes) of a RAF or TurboIMAGE file |
| | | |
| 15 | | Line printer carriage control |
| | | |
| 16 | | Record address type: |
| | | 0 = A sequential file or a direct access file not processed by ch|ining
| | | or a RAF |
| | | 1 = A file processed by chaining or a RAF |
| | | 2 = A KSAM, ISAM or TurboIMAGE file processed by alphanumeric key|
| | | 3 = A KSAM, ISAM or TurboIMAGE file processed by packed numeric k|y
| | | |
| 17 | | Number of user labels: |
| | | 0 = Standard label only |
| | | 1-9 = Standard label with 1-9 user labels |
| | | |
| 18 | | File format: |
| | | 0 = Fixed length records |
| | | 1 = Variable length records |
| | | |
| 19 | | Number of extents |
| | | |
| 20 | | Type of file translation table: |
| | | 0 = None |
| | | 1 = User-defined |
| | | 2 = EBCDIC |
| | | 3 = EBCDIK |
| | | |
| 21 | | New page starting line number for line printer files; or record number|
| | | adjust for direct file |
| | | |
| 22 | | Record length in bytes |
| | | |
| 23 | | Block length in bytes |
| | | |
| 24 | | Pointer to translation table |
| | | |
| 25 | | Pointer to file record buffer |
| | | |
| 26 | 0 | Enable current data check flag |
| | | |
-----------------------------------------------------------------------------------------------
Table 7-1. The File Table (Continued)
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 26 | 1 | Enable new record check flag |
| | | |
| 26 | 2 | Enable update record check |
| | | |
| 26 | 3 | Look-ahead file flag: |
| | | 0 = Not used as a look-ahead file |
| | | 1 = Used as a look-ahead file |
| | | |
| 27 | 0 | Terminate method flag: |
| | | 0 = End-of-file field in File Description Specification is blank |
| | | 1 = End-of-file field in File Description Specification contains |
| | | (all records must be processed before program termination) |
| | | |
| 27 | 1 | Run-time SPECIAL file flag: |
| | | 0 = Not a SPECIAL file |
| | | 1 = A SPECIAL file |
| | | |
| 27 | 2 | Overflow line passed flag |
| | | |
| 27 | 3 | Append to end-of-file flag |
| | | |
| 28 | 0 | NOLOCK Continuation line flag |
| | | |
| 28 | 1 | Lock/unlock option flag |
| | | |
| 28 | 2 | Printing mode flag |
| | | |
| 29 | | Pointer to label exit name or SPECIAL file processing routine |
| | | |
| 30 | | Pointer to error exit subroutine |
| | | |
| 31 | | Pointer to BYPASS field name |
| | | |
| 32 | | Pointer to RDEXIT routine name |
| | | |
| 33 | | Pointer to *CONTD field for RAF |
| | | |
| 34 | | Pointer to RAF chain table |
| | | |
| 35 | | Pointer to WORKSTN Extension Table (Table 7-3) |
| | | |
| 36 | | Pointer to TurboIMAGE Extension Table (Table 7-2) |
| | | |
| 37 | | Pointer to control level table or overflow line number (if this is a p|inter file)
| | | |
-----------------------------------------------------------------------------------------------
Table 7-1. The File Table (Continued)
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 38 | | Matching Field table pointer or form length (number of lines) if |
| | | this is a printer file |
| | | |
| 39 | | Matching or control level field in current record: |
| thru | | For control level fields: |
| 41 | | Word 39, byte 1 = 1 (Level 1 is present) |
| | | Word 39, byte 2 = 1 (Level 2 is present) |
| | | Word 39, byte 3 = 1 (Level 3 is present) |
| | | Word 40, byte 0 = 1 (Level 4 is present) |
| | | Word 40, byte 1 = 1 (Level 5 is present) |
| | | Word 40, byte 2 = 1 (Level 6 is present) |
| | | Word 40, byte 3 = 1 (Level 7 is present) |
| | | Word 41, byte 0 = 1 (Level 8 is present) |
| | | Word 41, byte 1 = 1 (Level 9 is present) |
| | | For matching fields: |
| | | Word 39, byte 0 = 1 (match fields are present) |
| | | Word 39, bytes 1-3 = Unused |
| | | |
| 42 | 0 | ISAM flag: |
| | | 0 = File opened is not a ISAM file |
| | | 1 = File opened is an ISAM file |
| | | |
| 42 | 1 | KSAM flag: |
| | | 0 = File opened is not a KSAM file |
| | | 1 = File opened is a KSAM file |
| | | |
| 42 | 2 | Print file flag |
| | | |
| 42 | 3 | Other file open flag (equals 1 if this file references another opened |ile)
| | | |
| 43 | 0 | Run-time end-of-file flag (equals 1 when end-of-file detected) |
| | | |
| 43 | 1 | KSAM file open flag (equals 1 if file currently opened is a KSAM file)|
| | | |
| 43 | 2 | Record number flag (equals 1 when the first record number is 1) |
| | | |
| 43 | 3 | OK-to-use flag (equals 1 when the file is not inhibited by U1-U8) |
| | | |
| 44 | 0,1 | Multiname file usage flag |
| | | |
| 44 | 2 | Locking flag (equals 1 when locking specified) |
| | | |
| 45 | | Binary key for KSAM or TurboIMAGE file |
| | | |
| 46 | | Record-identifying indicator |
| | | |
-----------------------------------------------------------------------------------------------
Table 7-1. The File Table (Continued)
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 47 | | Sequence number from Input Specification (columns 15-16) |
| | | |
| 48 | | Start of first trailer field |
| | | |
| 49 | | Offset from header to current trailer field |
| | | |
| 50 | | Trailer field length |
| | | |
| 51 | | File parameters |
| | | |
| 52 | | File access options |
| | | |
| 53 | | Pointer to move-fields routine |
| | | |
-----------------------------------------------------------------------------------------------
Table 7-2. The TurboIMAGE Extension Table
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 0-2 | | TurboIMAGE database name |
| | | |
| 3-4 | | Password (LEVEL) identification (8 bytes) |
| | | |
| 5-8 | | First (ITEM) key name (16 bytes) |
| | | |
| 9-10 | | New key file (KEYFL) name |
| | | |
| 11-14 | | Data set name (16 bytes) |
| | | |
| 15-24 | | TurboIMAGE communication area (10 STATUS words) |
| | | |
| 25 | | Open mode: |
| | | 1 = Read/Write Shared mode |
| | | 2 = Update Shared mode |
| | | 3 = Exclusive mode |
| | | |
| 26 | | I/O mode: |
| | | 2 = Serial read |
| | | 3 = Backward serial read |
| | | 4 = Directed read |
| | | 5 = Chained read |
| | | 6 = Backward chained read |
| | | 7 = Associative read |
| | | 8 = Primary associative read |
| | | 9 = Sequential read |
| | | 10 = Backward sequential read |
| | | 11 = Chained sequential read |
| | | 12 = Backward chained sequential read |
| | | |
| 27 | 0 | First record flag (blank, zero or 1) |
| | | |
| 27 | 1 | Duplicate flag (blank or zero) |
| | | |
| 27 | 2 | Random flag (blank, C or R) |
| | | |
| 28 | | Database check (equals 1 if database is open) |
| | | |
| | | The next seven items (words 29-35) are used with the BUFCHK option: |
| | | |
| 29 | | BUFCHK specification |
| | | |
| 30 | | CDC response |
| | | |
-----------------------------------------------------------------------------------------------
Table 7-2. The TurboIMAGE Extension Table (Continued)
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 31 | | NRC response |
| | | |
| 32 | | UPC response |
| | | |
| 33 | | Must repoint |
| | | |
| 34 | | Dirty here |
| | | |
| 35 | | Needs reset |
| | | |
| 36 | | TurboIMAGE type: |
| | | 0 = Non-TurboIMAGE |
| | | 1 = TurboIMAGE |
| | | 2 = HP |
| | | |
| 37 | | Starting location of key field |
| | | |
| 38 | | Dslock duration |
| | | |
| 39 | | Generic key length (in bytes) |
| | | |
| 40 | | Generic relation: |
| | | 0 = Equal |
| | | 1 = Greater than |
| | | 2 = Greater than or equal to |
| | | |
| 41 | | Indicator index for generic relation |
| | | |
| 42 | | BUFCHK record number |
| | | |
| 43 | | BUFCHK address |
| | | |
| 44 | | Unused |
| | | |
| 45 | | Unused |
| | | |
| 46 | | Pointer to user status array |
| | | |
| 47 | | Pointer to current key value |
| | | |
| 48 | | Pointer to previous key value |
| | | |
| 49 | | Pointer to File Table |
| | | |
-----------------------------------------------------------------------------------------------
Table 7-3. The WORKSTN Extension Table
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 0 | | Forms file used |
| | | |
| 1 | | Batch file used |
| | | |
| 2 | | Trace file used |
| | | |
| 3 | | Block mode flag (equals 1 when block mode is in effect) |
| | | |
| 4 | | Function key labels flag (equals 1 when function keys are enabled) |
| | | |
| 5 | | BREAK key flag (equals 1 when BREAK key enabled) |
| | | |
| 6 | | Batch search direction: |
| | | 0 = Reverse |
| | | 2 = Forward |
| | | |
| 7 | | Auto-read done flag (equals 1 when auto-read is finished) |
| | | |
| 8 | | Release WORKSTN flag |
| | | |
| 9 | | WORKSTN type: |
| | | 0 = VPLUS |
| | | 1 = RSI |
| | | 2 = CONSOLE |
| | | |
| 10 | | Number of forms to download |
| | | |
| 11 | | Trace file open number |
| | | |
| 12 | | Input event number (less than or equal to 12) |
| | | |
| 13 | | Form field number |
| | | |
| 14 | | Form field length |
| | | |
| 15 | | Activity or event number |
| | | |
| 16 | | Previous batch record number |
| | | |
| 17 | | Error message display interval |
| | | |
| 18 | | Pointer to user status array |
| | | |
| 19 | | Pointer to RSI start field |
| | | |
-----------------------------------------------------------------------------------------------
Table 7-3. The WORKSTN Extension Table (Continued)
-----------------------------------------------------------------------------------------------
| | | |
| Word | Byte | Meaning |
| | | |
-----------------------------------------------------------------------------------------------
| | | |
| 20 | | Pointer to terminal identification field |
| | | |
| 21 | | Pointer to main File Table for WORKSTN |
| | | |
| 22-25 | | Saved file name |
| | | |
| 26-29 | | Forms file name |
| | | |
| 30-33 | | Batch file name |
| | | |
| 34-37 | | Trac file name |
| | | |
| 38-57 | | Error message array |
| | | |
| 58 | | VPLUS communications area |
| thru | | |
| 157 | | |
| | | |
-----------------------------------------------------------------------------------------------
MPE/iX 5.0 Documentation