Copyright Digital Equipment Corp. All rights reserved.

VOLATILE

 The VOLATILE attribute indicates to the compiler that the  value
 of  an  object is subject to change at unusual points in program
 execution.   Normally,  during  execution,  an  object's   value
 generally  changes  only  when  another value is assigned to it,
 when it is passed as a writeable VAR parameter, when it is  read
 into  by  a READ, READLN, or READV procedure, or when it is used
 as the control variable of a FOR loop.

 In addition, the compiler expects to evaluate  the  object  only
 when it appears in an expression.

 The value of a volatile object may change as the  result  of  an
 action  not  directly  specified  in  the  program.   Thus,  the
 compiler assumes that the value of  a  volatile  object  can  be
 changed  or  evaluated  at  any  time  during program execution.
 Consequently, a volatile object  does  not  participate  in  any
 optimization based on assumptions about its value.

 The behavior of many  device  registers,  and  modifications  by
 asynchronous  processes and exception handlers, are two examples
 that demonstrate volatile behavior.

 See the "HP Pascal Language Reference Manual" for  the  complete
 description of using the VOLATILE attribute.