language-Modula2-0.1: examples/Modula-2_Libraries/PMOS/sources/general/textvide.def
DEFINITION MODULE TextVideo;
(********************************************************)
(* *)
(* Low-level screen functions *)
(* *)
(* The function of this module is to look after *)
(* the low-level screen initialisation needed *)
(* by the text-mode modules GlassTTY and Windows. *)
(* This reduces the likelihood of conflicts *)
(* arising in programs which import both of those *)
(* modules. *)
(* *)
(* Programmer: P. Moylan *)
(* Last edited: 25 October 1993 *)
(* Status: OK *)
(* *)
(********************************************************)
(************************************************************************)
(* *)
(* WARNING WARNING WARNING *)
(* *)
(* The operations performed by this module are among the rare examples *)
(* where a programming error can cause physical damage to the *)
(* hardware. Do NOT attempt to modify anything in this module unless *)
(* you have a detailed understanding of how the video adaptors work. *)
(* In particular, beware of putting inappropriate values into the *)
(* registers of the 6845 video controller. *)
(* *)
(* It is normal for the screen picture to "bloom" or "bounce" after *)
(* a mode change (e.g. changing from a text mode to a graphics mode). *)
(* Some monitors are worse than others for this, but all should *)
(* regain synchronism after a second or so. A bright dot at the *)
(* centre of the screen or a "tearing" effect are NOT normal; if the *)
(* screen display goes crazy you should turn off the monitor and/or *)
(* reset the computer immediately, since it probably means that the *)
(* software is not compatible with your hardware. *)
(* *)
(* The procedures in this module are for the use of other library *)
(* modules such as GlassTTY and Windows. They should not normally *)
(* be called directly from applications programs. *)
(* *)
(* DISCLAIMER: This software is supplied "as is" with no warranty as *)
(* to its compatibility with your hardware. It has been tested on a *)
(* small sample of computers, but because of the wide variety of *)
(* video adaptors on the market it is impossible to be certain that *)
(* it will work correctly on all hardware configurations. *)
(* *)
(************************************************************************)
PROCEDURE VideoKind (VAR (*OUT*) ScreenSegment: CARDINAL;
VAR (*OUT*) BlackAndWhite: BOOLEAN);
(* Returns the segment of the screen memory, and a flag saying *)
(* whether we are using a monochrome adaptor. *)
PROCEDURE SetVideoMode (newmode: CARDINAL);
(* Sets the video mode, as defined in the BIOS. At present only *)
(* modes 3 (25*80 colour) and 7 (25*80 monochrome) are supported. *)
PROCEDURE RestoreOriginalMode;
(* Sets the video mode back to what it was before this program ran. *)
PROCEDURE SetTextPage (page: SHORTCARD);
(* Changes the active display page. *)
PROCEDURE PositionCursor (visible: BOOLEAN; position: CARDINAL;
blockcursor: BOOLEAN);
(* Displays a blinking screen cursor at the specified position. *)
END TextVideo.