SEGARRAYSTART (Array Segmentation Start Size)

The SEGARRAYSTART (Array Segmentation Start Size) command displays or sets the array size (in words) that the system uses to determine whether or not an array is to be paged. The SEGARRAYSTART command also displays the page size for paged arrays, the maximum size of an array, the overlay row size and the default SEGARRAYSTART size. The maximum long array size and page size for paged arrays cannot be changed. The overlay row size is changed using the OVERLAY option of the DL (Disk Location) command.

Note: The terms paged and segmented are synonyms. However, paged is the preferred term.

You can change the value of SEGARRAYSTART at any time. Any array row that the system subsequently allocates becomes paged or not paged according to the new value. If the size of the array row is greater than SEGARRAYSTART and the array row has not been marked as LONG or DIRECT, the array becomes a paged array.

You can use this command to slightly improve system performance by causing more arrays to be unpaged. Accesses to unpaged arrays are faster and need less interaction with the operating system than accesses to paged arrays.

On the other hand, a system whose memory is overloaded and is thrashing could be adversely affected if unpaged array sizes are set too large. For best results, this command must be used in a way that is appropriate to the particular system.

 Caution

  • If you increase the value of SEGARRAYSTART, some programs that worked correctly with the smaller value might fail with the larger value. The system might discontinue a program that uses the RESIZE intrinsic with the message REQUESTED MEMORY SIZE GREATER THAN 65535 WORDS.

  • If you transfer the halt/load unit to a different system, and the SEGARRAYSTART value is incompatible with the new system, SEGARRAYSTART is reset to the default value.

For more information about array row sizes and how they affect the overlay mechanism, refer to the OVERLAY option in the DL (Disk Location) command.

Syntax

── SEGARRAYSTART ─┬──────────────────────┬─────────────────────┤
                  ├─┬─────┬─<array size>─┤
                  │ └─ = ─┘              │
                  └─ * ──────────────────┘
                  

Explanation

SEGARRAYSTART

Displays the current SEGARRAYSTART settings as well as the page size for paged arrays. The page size is a fixed value set by the CPM firmware.

SEGARRAYSTART <array size>

Changes the value that the system uses to determine whether new arrays are to be paged. <array size> can be any integer from the paged array page size to the maximum long array size, inclusive. The maximum long array size sets the largest unpaged (LONG) array. An <array size> of 0 resets the segmentation start size to the default value.

SEGARRAYSTART *

Resets the array segmentation start size to the default size for the system.

Examples

Example 1

This example shows an example response given to a SEGARRAYSTART inquiry:

SEGARRAYSTART
  CURRENT ARRAY SEGMENTATION START SIZE: 32,768
  DEFAULT ARRAY SEGMENTATION START SIZE: 32,768
  MAXIMUM LONG ARRAY SIZE: 65,535
  PAGED ARRAY PAGE SIZE: 32,768
  OVERLAY AREA SIZE IN SECTORS: 504
  MAXIMUM ARRAY SIZE: 4,294,967,295

Example 2

This example causes a syntax error, because the array size is set too small:

SEGARRAYSTART = 200
SEGARRAYSTART VALUE TOO SMALL

Example 3

This example allows an unpaged array size of a minimum of 65,535 words:

SEGARRAYSTART 65535
  CURRENT ARRAY SEGMENTATION START SIZE: 65,535
  DEFAULT ARRAY SEGMENTATION START SIZE: 8,192
  MAXIMUM LONG ARRAY SIZE: 65,535
  PAGED ARRAY PAGE SIZE: 8,192
  OVERLAY AREA SIZE IN SECTORS: 504
  MAXIMUM ARRAY SIZE: 4,294,967,295