System Variables
System variables are a special class of predefined variables, available to all program units. Their names always begin with an exclamation mark (!). System variables are used to set the options for plotting, to set various internal modes, to return error status, and perform other functions.
While keywords can be used to make changes to a plot, you may want to make the changes apply to all plots. The keywords affect only the command with which they are associated; their effect does not carry over into subsequent plots. The effects of system variables, on the other hand, remain until they are explicitly countered with a similar command. Many system variable fields have plotting keyword counterparts.
System variables have a predefined type and structure which cannot be changed. When an expression is stored in a system variable, it is converted to the type of the variable if necessary and possible.
Certain system variables are read only, and their values may not be changed. You may define new system variables with the DEFSYSV procedure.
 
note
For detailed information on each system variable, refer to the PV‑WAVE Reference.
Examples of system variable references are:
; Change the standard WAVE> prompt to a new string. 
!Prompt = 'Good Morning: ' 
; Store value of the cursor system variable !C in A. 
A = !C 
; Use !Radeg, a system variable containing a radians-to- degrees 
; conversion factor, to convert radians to degrees. 
PRINT, ACOS(a) * !Radeg 
; Set default plot title. !P is a structure, in which Title 
; is a field. 
!P.Title = 'Cross Section' 
If an error message appears that refers to the system variables !D, !P, !X, !Y, or !Z, the error message will contain an “expanded” name for the system variable. The “expanded” names of these system variables are:
*Device for !D
*Plot for !P
*Axis for !X, !Y, and !Z