How is a Spectrum Landscape Handle Calculated?

Document ID : KB000049367
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Questions have been asked as to why we are selecting a landscape handle in multiples of four while installing Spectrum. Here is a brief explanation on this.

Solution:

A Spectrum Landscape handle is represented by a 32 bit binary number. However a Spectrum developer only uses the 14 highest significant bits. Also the last 2 digits within those 14 bits are masked (ignored). So basically Spectrum looks only at the 12 highest significant bits. It is because the last 2 digits are masked that you need to specify a landscape handle as a multiple of 4 (within the range of 4 - 16276).

So for example, if the landscape handle is decimal 4, the 14 bit binary is 0000 0000 0001 00. Here it is broken down into octets:

  1. 0000 ? 0x0
  2. 0000 ? 0x0
  3. 0001 ? 0x1
  4. 0000 ? 0x0
  5. 0000 ? 0x0
  6. 0000 ? 0x0
  7. 0000 ? 0x0
  8. 0000 ? 0x0
  • 0x00100000 = 0x100000

a, b, and c, are the 12 highest significant bits. These 14 highest significant bits should be converted to decimal 4.

In case your landscape handle is decimal 400 (14 bit binary is 0000 0110 0100 00), it will be:

  1. 0000 ? 0x0
  2. 0110 ? 0x6
  3. 0100 ? 0x4
  4. 0000 ? 0x0
  5. 0000 ? 0x0
  6. 0000 ? 0x0
  7. 0000 ? 0x0
  8. 0000 ? 0x0
  • 0x06400000 = 0x6400000

This conversion can be done easily using $SPECROOT/SS-Tools/lh_set with -c option. For example:

lh_set.exe -c 400

Landscape number 400 is equivalent to handle 0x6400000.