HP 3000 Manuals

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