Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_3_19910112 - tvedit/dpycom.sai
There are no other files named dpycom.sai in the archive.
COMMENT Device independent display commands of the display package 
	<TV>DPY, in SAIL source!file format.  


	If you wish to use the package in a SAIL program, include

		REQUIRE "<TV>DPYCOM.SAI" SOURCE!FILE

	in your program.  If you wish to use only the functions of 
	the package but not the names of the command characters as 
	defined in this file, you should

		REQUIRE "<TV>DPY.SAI" SOURCE!FILE.

	The display package is documented in the comments of these two
	files as follows:

	   <TV>DPYCOM.SAI -- (this file) the ASCII characters and the 
			     associated display functions,

	   <TV>DPY.SAI    -- general operation of the display package,
			     TTY, insert, italic, and blink modes,
			     external DPY variables and procedures,
			     annotated example,

	and summarized in the file  <TV>DPYCOM.

	A number of display functions can be performed either by pass-
	ing a command character or string to the display package or by
	calling a special procedure.  Such commands are marked with an
	asterisk (*) in this file and are explained in <TV>DPYCOM.SAI.

	<TV>DPYCOM.SAI uses <TV>DPY.SAI as a source!file.
;
COMMENT
!		DEVICE INDEPENDENT DISPLAY COMMANDS
!
!	The following commands (characters or strings), when passed to 
!	the display package via the procedures  
!
!	   DPYCHR (char) -- to pass one character,
!	   DPYNCH (n, char) -- to pass  n  copies of a character, and
!	   DPYSTR (string) -- to pass a string,
!
!	perform the following display functions:
!
!
!  NUL =  '00,  ^@ -- Null character
!		Ignored by the display package.
 ;

DEFINE

  right = "'01",  COMMENT  ^A -- Move cursor right once (* DORIGH)
		From end of line move to beginning of next line, from 
		end of bottom line to beginning of top line.
		Clear TTY, insert, and blink modes.
		;

  down =  "'02",  COMMENT  ^B -- Move cursor down one line (* DODOWN)
		From bottom line move to top line, same column.  
		Clear TTY, insert, and blink modes.
		;

  left =  "'03",  COMMENT  ^C -- Move cursor left once (* DOLEFT)
		The inverse of RIGHT.  
		Clear TTY, insert, and blink modes.
		;

  up =	  "'04",  COMMENT  ^D -- Move cursor up one line (* DOUP)
		The inverse of DOWN.  
		Clear TTY, insert, and blink modes.
		;

  home =  "'05",  COMMENT  ^E -- Move cursor to upper left corner (*
		DOHOME)
		Clear TTY, insert, and blink modes.
		;

  LCA =   "'06";  COMMENT  ^F -- Load Cursor Address (* SETCUR(X,Y))
		Move cursor to the position given by the next two char-
		acters, the first of which is the column  x  and the
		second the line  y,  both in 1's complement.  (Top left 
		corner is column 0 line 0.)  Thus to move the cursor to
		(x, y)  transmit the string  LCA & LNOT(x) & LNOT(y).  
		If  x  (its rightmost seven bits) is greater than the 
		last column number of the display, current column is 
		assumed.  Similarly,  (y LAND '177) > last line number 
		refers to the current line.
		Clear TTY, insert, and blink modes.
		;
COMMENT The following functions are available on certain teletypes.  
!	The display package obays, simulates, or indicates them, 
!	allowing normal text to be passed through the display package 
!	to the screen.
!
!  BEL =  '07,  ^G -- Ring the bell
!
!  BS =   '10,  ^H -- Back Space
!		Move cursor left by one position, or leave in place if
!		cursor is at the beginning of a line.
!		Set TTY mode, clear insert and blink modes.
!
!  HT =   '11,  ^I -- Horizontal TAB
!		Simulate TAB by sending appropriate number of spaces
!		(see SPACE handling below).
!		
!  LF =   '12,  ^J -- Line Feed
!		Move cursor down to next line and clear the line, or
!		scroll if cursor is on the bottom line.
!		Cursor stays in the original column.
!		Set TTY mode, clear insert and blink modes.
!
!  VT =   '13,  ^K -- Vertical Tab
!		Indicate by writing "........" on the next line, move
!		cursor to line below that, and clear the line.
!		Cursor stays in the original column.
!		Set TTY mode, clear insert and blink modes.
!		
!  FF =   '14,  ^L -- Form Feed
!		Like Vertical Tab (above), except that "--------" is
!		written in place of "........".
!
!  CR =   '15,  ^M -- Carriage Return
!		Move cursor to the beginning of current line.
!		Clear insert and blink modes.
 ;
DEFINE

  StIt = "'16",  COMMENT  ^N -- Set Italic mode (* SETITA) (**)
		Subsequent text is displayed in italics.  Displays 
		without italic font (all IMSSS displays) display normal
		(roman) characters.
		;

  ClIt = "'17",  COMMENT  ^O -- Clear Italic mode (* CLRITA) (**)
		Subsequent text is displayed in roman.
		; 

  StIn = "'20",  COMMENT  ^P -- Set Insert mode (* SETINS) (**)
		Subsequent text is inserted as characters at the end of
		the line are lost.
		Clear TTY mode.
		;

  ClIn = "'21",  COMMENT  ^Q -- Clear Insert mode (* CLRINS) (**)
		Subsequent text overwrites.
		;

  IC =	 "'22",  COMMENT  ^R -- Insert a Character (* DOIC)
		Insert a blank character and move current character and
		rest of line right by one position.  Last character of 
		the line is lost.  
		No cursor movement.
		Clear TTY, insert, and blink modes.
		;

  IL =	 "'23",  COMMENT  ^S -- Insert a Line (* DOIL)
		Insert a blank line and move current line and rest of 
		page down by one line.  Bottom line is lost.  
		No cursor movement.
		Clear TTY, insert, and blink modes.
		;

  DC =	 "'24",  COMMENT  ^T -- Delete a Character (* DODC)
		Delete current character and move rest of line left by 
		one position.  Last position of the line will be blank.
		No cursor movement.
		Clear TTY, insert, and blink modes.
		;

  DL =	 "'25",  COMMENT  ^U -- Delete a Line (* DODL)
		Delete current line and move rest of page up by one 
		line.  Bottom line of the page will be blank.
		No cursor movement.
		Clear TTY, insert, and blink modes.
		; 

  EEOL = "'26",  COMMENT  ^V -- Erase to End Of Line (* DOEEOL)
		Clear rest of current line starting with current cursor
		position.
		No cursor movement.
		Clear TTY, insert, and blink modes.
		;
  EEOP = "'27",  COMMENT  ^W -- Erase to End Of Page (* DOEEOP)
		Clear rest of page starting with current line.
		No cursor movement.
		Clear TTY, insert, and blink modes.
		;

  CL =	 "'30",  COMMENT  ^X -- Clear Line (* DOCL)
		Clear current line (set it to blank).
		No cursor movement.
		Clear TTY, insert, and blink modes.
		;

  CP =	 "'31",  COMMENT  ^Y -- Clear Page (* DOCP)
		Clear screen, set cursor to home (top right corner).
		Set TTY mode, clear insert and blink modes.
		;

  BOX =	 "'32";  COMMENT  ^Z -- "BOX" character
		Display a special "BOX" character, or display an aste-
		risk on displays without the special character.
		Cursor moves right as with regular text.
		;

COMMENT
!
!  ESC =  '33,   ^[ -- Escape
!		Extended command prefix.  See next page for extended
!		commands.
!
!  FS =	  '34,   ^\ -- reserved, no-op for the time being.
!
!  GS =	  '35,   ^] -- reserved, no-op for the time being.
!
!  RS =	  '36,   ^^ -- reserved, no-op for the time being.
!
!  US =	  '37,   ^_ -- reserved, no-op for the time being.
!
!
!  SPACE = '40,
!		1.  If in TTY mode, move cursor right once, i.e., text 
!		is not overwritten with spaces.  Since cursor movement
!		is delayed by the package, spacing over a long distance
!		is fast and spaces (and TABs) at end of line are 
!		ignored.  Action at end of line is the same as for 
!		normal text characters (see below).
!
!		2.  If not in TTY mode, write one space character just 
!		as if it were a normal text character (see below), 
!		i.e., overwrite with a space.
!
!
!  NORMAL TEXT CHARACTERS (ASCII codes '41...'176)
!
!	1.  If in insert mode, text is inserted in front of the current
!	    character.  Current character and the rest of the line move
!	    right, and characters at last position of line are lost.
!	
!	2.  If not in insert mode, text on the screen is overwritten.
!
!	CURSOR MOVEMENT WITHIN A LINE:  Right by one position.  
!
!	CURSOR MOVEMENT FROM END OF A LINE OTHER THAN THE LAST:  To the 
!	beginning of next, and if in TTY mode, the newly entered line 
!	is cleared.
!
!	CURSOR MOVEMENT FROM END OF LAST LINE:
!
!	1.  If in TTY mode, scroll one line and place cursor to the
!	    beginning of bottom line.
!
!	2.  If not in TTY mode, place cursor to the beginning of top 
!	    line.
!
!
!  figures =   '41...'77,   !...?
!		Written as such.  
!		Cursor movement described above.
!
!  uppercase = '100...'137,  @A...Z[\]^_
!		Written as such.  
!		Cursor movement described above.
!
!  lowercase = '140...'176,  `a...z{|}~
!		Written as such on lowercase terminals (if LCDPY is
!		TRUE), written in upper case if LCDPY is FALSE.
!		Cursor movement described above.
!
!
!  DEL =       '177,   DELETE, RUBOUT
!		Delete the character on the left of the current char-
!		acter and move cursor left one position, or ring the
!		bell if cursor is already at the beginning of a line.
 ;
COMMENT  Extended Commands, prefixed with ESC;

DEFINE

  BB =   "('33 & ""a"")",
		COMMENT  Begin Blinking field (* DOBB) (**)
		Transmit a "begin blink" character to displays that
		have the blinking field feature and field delimiters
		that take a space on the screen (e.g., TEC).  Trans-
		mit a space to other displays.
		Set blink mode.
		;

  EB =	 "('33 & ""b"")",
		COMMENT  End Blinking field (* DOEB) (**)
		Transmit an "end blink" character to displays whose
		field delimiters take a space on the screen.  Trans-
		mit a space to other displays.
		Clear blink mode.
		;

  StBl = "('33 & ""c"")",
		COMMENT  Set Blink mode (* SETBLI) (**)
		Subsequent text is transmitted in blink mode provided
		that the display has blink mode (e.g., DATAMEDIA).
		;

  ClBl = "('33 & ""d"")",
		COMMENT  Clear Blink mode (* CLRBLI) (**)
		;

  StTT = "('33 & ""e"")",
		COMMENT  Set TTY mode (* SETTTY) (**)
		Subsequent text is displayed in teletype mode, with
		bottom line overflow causing the screen to scroll.
		Clear blink mode.
		;

  ClTT = "('33 & ""f"")";
		COMMENT  Clear TTY mode (* CLRTTY) (**)
		Subsequent text is displayed in display mode, with 
		bottom line overflowing to the top line.
		;


COMMENT(S):
!
!  (*)  The function is also available as a SAIL procedure.  Its name
!       is given after the asterisk.  See file <TV>DPY.SAI.
!	
! (**)  TTY, insert, italic, and blink modes are explained in 
!       <TV>DPY.SAI.
 ;


REQUIRE "<TVEDIT>DPY.SAI" SOURCE!FILE;   
COMMENT Declares the external variables and procedures of load!module 
	DPY.REL.
;
COMMENT  End of file  DPYCOM.SAI;