{Begin SubSec Display Screen}
{Title Display Screen}
{Text

{index *PRIMARY* Video display screens}
{index *PRIMARY* Display screens}
{index *PRIMARY* Screens}

Interlisp-D supports a high-resolution bitmap display screen.  All printing and drawing operations to the screen are actually performed on a bitmap in memory, which is read by the computer hardware to become visible as the screen.  This section describes the functions used to control the appearance of the display screen.

{FnDef {Name SCREENBITMAP} {Args }
{Text
Returns the screen bitmap.
}}

{VarDef {Name SCREENWIDTH}}
{VarDef {Name SCREENHEIGHT}
{Text
Value is the width and height of the screen bitmap, respectively.
}}

{VarDef {Name WHOLEDISPLAY}
{Text
Value is a region that is the size of the screen bitmap.
}}



{index *PRIMARY* Background shade}

The background shade of the display window can be changed using the following function:

{FnDef {Name CHANGEBACKGROUND} {Args SHADE {anonarg}}
{Text
Changes the background shade of the window system.  {arg SHADE} determines the pattern of the background.  If {arg SHADE} is a texture, then the background is simply painted with it.  If {arg SHADE} is a {lisp BITMAP}, the background is tesselated (tiled) with it to cover the screen.  If {arg SHADE} is {lisp T}, it changes to the original shade, the value of {var WINDOWBACKGROUNDSHADE}.  It returns the previous value of the background.
}}


{FnDef {Name CHANGEBACKGROUNDBORDER} {Args SHADE {anonarg}}
{Text
On the Xerox 1108, changes the shade of the border of the display to {arg SHADE}, which should be a texture.  It returns the previous texture of the background border.  {fn CHANGEBACKGROUNDBORDER} is a no-op on the Xerox 1132.
}}

{VarDef {Name WINDOWBACKGROUNDSHADE}
{Text
Value is the default background shade for the display.
}}



{FnDef {Name VIDEOCOLOR} {Args BLACKFLG}
{Type NOSPREAD}
{Text
Sets the interpretation of the bits in the screen bitmap.  If {arg BLACKFLG} is {lisp NIL}, a 0 bit will be displayed as white, otherwise a 0 bit will be displayed as black.  {fn VIDEOCOLOR} returns the previous setting.  If {arg BLACKFLG} is not given, {fn VIDEOCOLOR} will return the current setting without changing anything.

Note:  This function only works on the Xerox 1100 and Xerox 1108.
}}


{FnDef {Name VIDEORATE} {Args TYPE}
{Text
Sets the rate at which the screen is refreshed.  {arg TYPE} is one of {lisp NORMAL} or {lisp TAPE}.  If {arg TYPE} is {lisp TAPE}, the screen will be refreshed at the same rate as TV (60 cycles per second).  This makes the picture look better when {index *PRIMARY* Video taping from the screen}video taping the screen.  Note: Changing the rate may change the dimensions of the display on the picture tube.  
}}



Maintaining the video image on the screen uses cpu cycles, so turning off the display can improve the speed of compute-bound tasks.  When the display is off, the screen will be white but any printing or displaying that the program does will be visible when the display is turned back on.  Note:  Breaks and {fn PAGEFULLFN} waiting ({PageRef Fn PAGEFULLFN}) turn the display on, but users should be aware that it is possible to have the system waiting for a response to a question printed or a menu displayed on a non-visible part of the screen.  The functions below are provided to turn the display off.

Note:  These functions have no effect on the Xerox 1108 display.

{FnDef {Name SETDISPLAYHEIGHT} {Args NSCANLINES}
{Text
Sets the display to only show the top {arg NSCANLINES} of the screen.  If {arg NSCANLINES} is {lisp T}, resets the display to show the full screen.  Returns the previous setting.
}}


{FnDef {Name DISPLAYDOWN} {Args FORM NSCANLINES}
{Text
Evaluates {arg FORM} (with the display set to only show the top {arg NSCANLINES} of the screen), and returns the value of {arg FORM}.  It restores the screen to its previous setting.  If {arg NSCANLINES} is not given, it defaults to 0.
}}



}{End SubSec Display Screen}