13.3.1 OpenVMS Alpha Run-Time Library Routines ................... 13–4
13.3.2 System Services . . ........................................ 13–4
13.4 Calling Routines ............................................ 13–5
13.4.1 Determining the Type of Call (OpenVMS) ...................... 13–5
13.4.2 Defining the Argument (OpenVMS) ........................... 13–6
13.4.3 Calling the External Routine (OpenVMS) ...................... 13–7
13.4.4 Calling System Routines (OpenVMS). . . ....................... 13–8
13.4.4.1 System Routine Arguments (OpenVMS) .................... 13–8
13.4.4.2 Calling a System Routine in a Function Call (OpenVMS) ....... 13–11
13.4.4.3 Calling a System Routine in a Procedure Call (OpenVMS) ...... 13–13
13.4.5 Checking the Condition Value(OpenVMS) ...................... 13–13
13.4.5.1 Library Return Status and Condition Value Symbols
(OpenVMS) . . ........................................ 13–15
13.4.6 Locating the Result (OpenVMS).............................. 13–15
13.5 Establishing and Removing User Condition Handlers (OpenVMS) ...... 13–15
13.6 Examples (OpenVMS) ........................................ 13–19
14 Using the REFORMATUtility
14.1 Running the REFORMAT Utility ................................ 14–1
14.2 ANSI-to-TerminalFormat Conversion ............................ 14–2
14.3 Terminal-to-ANSIFormat Conversion ............................ 14–3
14.4 REFORMAT Error Messages . . . ................................ 14–4
15 Optimizing YourCompaq COBOL Program
15.1 Specifying Optimization on the Compiler Command Line ............. 15–1
15.2 Specifying Alignment of Data for Optimum Performance ............. 15–5
15.3 Using COMP Data Items for Speed ............................. 15–5
15.4 Other Ways to Improve the Performance of Operations on Numeric
Data ...................................................... 15–7
15.4.1 Mixing Scale Factors and Data Types . . ....................... 15–7
15.4.2 Limiting Significant Digits. . ................................ 15–7
15.4.3 Reducing the Compexity of Arithmetic Expressions ............... 15–7
15.4.4 Selection of Data Types (OpenVMS)........................... 15–8
15.5 Choices in Procedure Division Statements . . ....................... 15–8
15.5.1 Using GO TO DEPENDING ON Instead of IF,GO TO ............ 15–8
15.5.2 Using Indexing Instead of Subscripting . ....................... 15–9
15.5.3 Using SEARCH ALL Instead of SEARCH ...................... 15–9
15.5.4 Selecting Hypersort for Sorting Tasks . . ....................... 15–9
15.5.5 Minimizing USE Procedures with LINKAGE SECTION References
....................................................... 15–10
15.6 I/O Operations ............................................. 15–10
15.6.1 Using the APPLYClause . . ................................ 15–10
15.6.1.1 Using the PREALLOCATION Phrase of the APPLYClause ..... 15–10
15.6.1.2 Using the EXTENSION Phrase of the APPLYClause . . . ....... 15–11
15.6.1.3 Using the DEFERRED-WRITE Phrase of the APPLYClause .... 15–11
15.6.1.4 Using the FILL-SIZE ON Phrase of the APPLYClause . . ....... 15–12
15.6.1.5 Using the WINDOW Phrase of the APPLYClause ............. 15–12
15.6.2 Using Multiple Buffers..................................... 15–12
15.6.3 Sharing Record Areas ..................................... 15–13
15.6.4 Using COMP Unsigned Longword Integers ..................... 15–15
15.7 Optimizing File Design (OpenVMS) .............................. 15–15
15.7.1 Sequential Files . . ........................................ 15–15
xi