• Aucun résultat trouvé

constants and working areas may ·be defined in this manner

Dans le document Information Management System/360 for the (Page 67-71)

3. This working area defines all the segment search arguments used

by

the problem program. This SSA has been defined as a structure

but is assumed to be a contiguous character string in storage.

62

Example:Clowercase b's represent blanks) DCL 1 SSA NAME STATIC UNALIGNED,

2 SEG NAME CHAR(8) 2 SEG-QUAL CHAR(1) 2 SEG-KEY NAME CHAR(8) 2 SEG-OPERATOR CHAR(2) 2 SEG-KEY VALUE CHAR(6), 2 SEG=END=CHAR CHAR(1)

INITC'ROOTbbbb'), INITC'C'),

INITC'KEYbbbbb'), INIT C ' b=' } ,

INITC'}'):

Note: The UNALIGNED attribute is required for SSA data

interchange with IMS/360. The SSA character string must reside contiguously in storage. Assignment of variables to key values. for example, could result in the

construction of an invalid SSA if the key value had the ALIGNED attribute.

4. A working storage area entry defines the program segment I/O area. Message input and output areas should be defined as a static structure.

5. A level 1 declarative Csimilar to COBOL's linkage section)

describes the PCB statement first for the input terminal for the current message being processed, second for each output terminal other than the input terminal, and third for each data base Csee section on PCB formats). It is through this description that a PL/I program may access the status codes after a Data Language/I call.

6. This is a descriptive statement used to identify a binary number Cfullword) that represents the. "parameter count" of a call to

D~ta Language/I. The parameter count value equals the remaining parameters following the parameter count set off by commas~

7. This is a typical call used to read the input Csource) logical terminal,. The first time this call is executed with function equal to GET UNIQUE, the first line of the message that caused the message program to be scheduled will be brought into this program. If the input message consists of more than one line, subsequent lines can be obtained with a similar call but with the function equal to GET NEXT.

CALL PLITDLI Cparameter count, function, pcbname, segment I/O area):

8. This call is used to access data from a data base other than a teleprocessing data base. The format is the same as the one in Item 7 above-, except that the PCB refers to a data base and the segment search argument defines a particular data base segment.

9. This call is used to reply to an output logical terminal Csource) other than the terminal representing the source of the input message. If the output terminal is the same as the input

terminal, this call utilizes the input source PCB. The format is the same as the one shown in 7 above, but function must have a value of ISRT.

(

/ '

\

'-(

./

)

10. This END statement causes the batch program to return control to the region controller. Another statement that causes the batch program to return control to the region controller is the RETURN statement. The RETURN statement mayor may not immediately precede the END statement •

11. A language interface is provided for all programming languages.

This module is link-edited to the batch program and provides a common interface to IMS/360 and Data Language/I.

Assembler Language Message Program structure

See the preceding section, "Assembler Language Batch Program

Structure". The user should remember that an Assembler Language message program will receive upon entry a PCB parameter list address in register 1. The first address in this list is to the input/output terminal PCB.

Any alternate output destination PCB addresses follow and finally any data base PCB addresses. The last address in the list is signed negative.

THE LANGUAGE INTERFACE

The language interface module' provides the standard interface mechanism, which allows a message or batch processing program to communicate with IMS/360 for Data Language/I data base and message calls. A copy of this module must be link-edited wit~ each message or batch processing program. When the module is entered, the structure and addresses of the Data Language/I call are verified. If an invalid call structure is received. a nonblank status code is returned to the -message or batch processing program. In a Type 1, 2, or 3 processing region, if the PSB associated with the program to be executed contains information conflicting with the DBD, the task within that region will be

terminated. In a Type 3 batch processing region, if a call is issued that requires a PCB address and a PSB is not provided or is invalid, the application program in that Type 3 region is terminated.

The language interface is designed to handle all supported languages that interface with IMS/360-Data Language/I. Upon entry into the

language interface, a pointer to a parameter list is provided by the call structure.

Two types of parameter lists may be constructed: implicit lists and explicit lists. The COBOL program may use either type of list, and the language interface modifies the list as required to pass an implicit list to IMS/360. The list is restored to its original format before being returned to the application program. PL/I, on the other hand, allows only explicit parameter lists.

The following calls permit the standard entry points to the correct language interfaces and should be used for all data calls.

PLlI - CALL PLITDLI, ••••••

COBOL - CALL • CBLTDLI' ' ••••••

Assembler - CALL CBLTDLI, .... ' •••

Parameter List contents

The generated format of the parameter lists may be of interest to the application programmer (see Figure 35). The actual construction of these lists is accomplished by the CALL statement parameters in the high-level languages. The contents of these lists, as seen by IMS/360, are shown for information purposes.

The format for CALL parameter lists is standard and should be as shown in Figure 35.

r---,

IMPLICIT PARAMETER LIST CONTENTS

Bytes r---~---,

+0

1

Function address 1

1---1 +4 1 PCB address or PSB name address 1 1---"1 +S 1 Segment input/output area address

1

I---~---I +12 1 First Segment Search Argument address 1 I~---~---I +16

1

Next Segment Search Argument address 1

1---1 +20 1 L-__________________________________________________ Last Segment Search Argument address J 1

The high-order byte of the word containing the last parameter in an implicit parameter list contains an X'SO'

EXPLICIT PARAMETER LIST CONTENTS Bytes

+0 +4 +S +12 +14

*20 1+24

1

r---,

1 Parameter count address 1

I·---.;...---~---I

1 Function address 1

1---1 1 PCB address or PSB name address 1

1---" ---1

1 Segment input/output area address

I

1---1 I

First Segment Search Argument address

1

1---1 1

Next Segment Search Argument address

1 1---1 I

Last Segment Search Argument address 1

L ___________________________________________________ J

L _______________________________________________________ - _____________ _

Figure 35. Parameter list contents

Parameter count is a binary fullword count of the number of other parameters that exist in the parameter list,.

In PL/I. the function, PCB, segment I/O area, and segment search argument addresses are addresses of the dope vectors for the parameters.

The function and segment search argument should be defined as a

character string when PL/I is used. Segment input/output area should be a static structure when using PL/I. All PCB's can be structured to any level in PL/I.

Note that in those instances where the CALL statement references an input or terminal PCB, no SSA's may be used, and their addresses must not be in the parameter list.

Using an SPIE macro-instruction, the application language interface disables any interrupt traps set by the application program.

64

/'

Dans le document Information Management System/360 for the (Page 67-71)