OpenVMS Undocumented Features


This is the most complete collection of undocumented features we can find for OpenVMS. Some of these have been around since the time when it was called VMS while others are more current and have been added to OpenVMS V8.n. These features:

  • Are NOT documented (if they were, they wouldn't belong here)
  • Are NOT supported by PARSEC Group or HP
  • Are NOT guaranteed to work
  • May NOT exist in all versions of OpenVMS; past, present and future
  • Are subject to change, removal, enhancement or being documented at the whim of OpenVMS engineering
  • May be fun to know the next time you play OpenVMS trivial pursuit
  • May help you get your job done easier and faster
  • May help you impress your boss with your knowledge of the obscure

F$GETSYI argument MAIN_MEMORY

The argument MAIN_MEMORY to the F$GETSYI lexical function returns a string of numbers indicating the use of memory on the system. The following command procedure extracts and displays the information

$! memory.com
$ delete /symbol /all /local
$ a_mem = f$getsyi("main_memory")
$ modified = f$integer ("%x''f$extract(0, 8, a_mem)'")
$ inuse = f$integer ("%x''f$extract(8, 8, a_mem)'")
$ free = f$integer ("%x''f$extract(16, 8, a_mem)'")
$ total = f$integer ("%x''f$extract(24, 8, a_mem)'")
$ show symbol /all /local
$ show memory /physical
$ exit

$ @memory
  A_MEM = "00000B1400012D160000C7D600020000"
  FREE = 51158 Hex = 0000C7D6 Octal = 00000143726
  INUSE = 77078 Hex = 00012D16 Octal = 00000226426
  MODIFIED = 2836 Hex = 00000B14 Octal = 00000005424
  TOTAL = 131072 Hex = 00020000 Octal = 00000400000
              System Memory Resources on 7-MAR-2007 13:48:05.64

Physical Memory Usage (pages): Total Free In Use Modified
  Main Memory (1024.00MB) 131072 51120 77123 2829

Of the physical pages in use, 5971 pages are permanently allocated to OpenVMS.

F$GETSYI arguments for checking hardware environment

There are four arguments to F$GETSYI that allow checking the hardware environment sensors that are available on a few of the Alpha systems. They are:

  • FAN_VECTOR
  • POWER_VECTOR
  • THERMAL_VECTOR
  • TEMPERATURE_VECTOR

FAN_VECTOR, POWER_VECTOR and THERMAL vector return an array of 16 two-character values indicating the status of each monitored system. The possible values are 00 - system failed, 01 - system OK, FF - sensor does not exist.

$ power = f$getsyi("power_vector")
$ show symbol power
  POWER = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01"
$ pstatus = f$integer (f$extract (30, 2, power))
$ show symbol pstatus
  PSTATUS = 1   Hex = 00000001  Octal = 00000000001

TEMPERATOR_VECTOR returns an array of 16 two-character values indicating the reading of each temperature in celsius. For each sensor which does not return a value, or does not exist, the value FF is returned.

$ temp = f$getsyi("temperature_vector")
$ show symbol temp
  TEMP = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33"
$ atemp = f$extract(30,2,temp)
$ show symbol atemp
  ATEMP = "33"
$ if atemp .nes. "FF" then write sys$output f$integer("%x''atemp'")
51

F$GETSYI arguments for paged and non-paged pool statistics

The arguments PAGED_POOL and NPAGED_POOL to F$GETSYI return a string indicating the status of paged and non-paged pool on the system. Each 8 characters in the string represents the number of bytes of pool.

  • The left most 8 characters represents the size in bytes of the largest free segment
  • The next 8 characters represent the number of bytes in use
  • The next 8 characters represent the total number of bytes free
  • The right most 8 characters represents the current size of the pool in bytes

 

$ npaged = f$getsyi("npaged_pool")
$ show symbol npaged
  NPAGED = "0023DD40004836C0003B294000836000"
$ write sys$output f$integer("%x''f$extract(0,8,npaged)'")
2350400
$ write sys$output f$integer("%x''f$extract(8,8,npaged)'")
4732608
$ write sys$output f$integer("%x''f$extract(16,8,npaged)'")
3877184
$ write sys$output f$integer("%x''f$extract(24,8,npaged)'")
8609792
$ paged = f$getsyi("paged_pool")
$ show symbol paged
  PAGED = "000F18A00015F020000F2FE000252000"
$ write sys$output f$integer("%x''f$extract(0,8,paged)'")
989344
$ write sys$output f$integer("%x''f$extract(8,8,paged)'")
1437728
$ write sys$output f$integer("%x''f$extract(16,8,paged)'")
995296
$ write sys$output f$integer("%x''f$extract(24,8,paged)'")
2433024
$ show memory /pool
              System Memory Resources on  7-MAR-2007 21:25:29.39

Dynamic Memory Usage:              Total        Free      In Use     Largest
  Nonpaged Dynamic Memory (MB)      8.21        3.69        4.51        2.24
  Bus Addressable Memory  (KB)    128.00      110.87       17.12      104.00
  Paged Dynamic Memory    (MB)      2.32        0.94        1.37        0.94
  Lock Manager Dyn Memory (MB)      2.83        0.53        2.29

F$GETSYI process and balance slot usage

The arguments BAL_SLOTS and PROC_SLOTS each return a string of numbers indicating the status of balance set slots and process slots on the system.

  • The left most 8 digits are 0
  • The next 8 digits are the number of slots in use
  • The next 8 digits are the number of slots free
  • The right most 8 digits are the total number of slots

$ bal = f$getsyi("bal_slots")
$ show symbol bal
  BAL = "000000000000001B0000004700000062"
$ write sys$output f$integer("%x''f$extract(8,8,bal)'")
27
$ write sys$output f$integer("%x''f$extract(16,8,bal)'")
71
$ write sys$output f$integer("%x''f$extract(24,8,bal)'")
98
$ prc = f$getsyi("proc_slots")
$ show symbol prc
  PRC = "000000000000001D0000004700000064"
$ write sys$output f$integer("%x''f$extract(8,8,prc)'")
29
$ write sys$output f$integer("%x''f$extract(16,8,prc)'")
71
$ write sys$output f$integer("%x''f$extract(24,8,prc)'")
100
$ show memory /slot
              System Memory Resources on 7-MAR-2007 21:05:54.60

Slot Usage (slots):                Total        Free    Resident     Swapped
  Process Entry Slots                100          71          29           0
  Balance Set Slots    (50)           98          71          27           0


First  Previous  Page 8 of 15  Next  Last

Please enjoy these features at your own risk. If you are aware of other features in OpenVMS which are currently undocumented, you may use our inquiry form to inform us. We may then add it to our list.

Cookie Manager

We use cookies to enhance the features of our web site. We don't set optional cookies unless you enable them. Using this tool sets a cookie on your device to remember your preferences. For more detailed information about the cookies we use, see our Cookies page.


Necessary Cookies

Necessary cookies enable core functionality such as security, network management, and accessibility. You may disable these by changing your browser settings, but this may affect how the website functions.


Preference Cookies

Preference cookies enable this site to remember information that changes the way the website behaves or looks.


Statistics Cookies

Statistic cookies help us to understand how visitors interact with the site by collecting and reporting information anonymously.


Marketing Cookies

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.


Cookies