Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0135/06/vtmvda.mac
There are 2 other files named vtmvda.mac in the archive. Click here to see a list.
00020	COMMENT* package for control of display terminals*; OPTIONS(/l/e);
00040	COMMENT* Copyright (c) Swedish National Defense Research Institute*;
00280	        UNIVERSAL VTMVDA
00300	        .DIRECTIVE .NOBIN
00320	        SALL
00340	;! No sorting of parameters, simple def of WRD macro
00360	        DEFINE WRD(X,T,L)<
00380	        C$==<X==C$>+1>
00400	        DEFINE WORD(X)<WRD(X,A,1)>
00420	        DEFINE REF(X)<WRD(X,R,1)>
00440	        DEFINE TEXT(X)<WRD(X,T,2)>
00460	        SYN WORD,INTEGER
00480	        SYN WORD,BOOLEAN
00500	        SYN WORD,CHARACTER
00520	        SYN REF,ARRAY
00540	
00560	        C$==2   ;! Initial offset (no prefix)
01720	INTEGER width; ! Screen width or less;
01740	INTEGER height; ! Screen height or less;
01860	REF termin
01880	REF termout
01900	BOOLEAN qechoenabled
01980	INTEGER trmtyp
02040	INTEGER trmspeed;
     
03040	;! Variables in a block are sorted in order:
03060	;! 1) Non-relocatable, 2) TEXT, 3) REF and ARRAY
03080	
03100	        IF1,<A$B==<R$B==<T$B==0>>> ;! Initial counters
03120	        DEFINE  WRD(X,T,L)<
03140	        IF2,<IFDEF X,<PRINTX ERROR X redefinition>
03160	        T'$B==<X==T'$B>+L>
03180	        IF1,<IFE T'$B,<T'$B==C$>
03200	        C$==C$+L>>
03240	BOOLEAN scrollallow; ! Allow <LF> to scroll the screen;
03340	BOOLEAN directcursoraddressing; !
03360	BOOLEAN allowcr;
03400	BOOLEAN synka; ! Cursor may be at wrong place on terminal screen;
03420	BOOLEAN unknownchar; ! Last read character was untreated char < ' ';
03440	BOOLEAN synchronizing; ! True during "synchronize" action only;
03460	INTEGER cpunumber; ! From monitor tables;
03480	INTEGER vt52; ! code for DEC VT52 terminal type;
03500	INTEGER minitec; ! code for TEC minitec terminal type;
03520	INTEGER elite; ! code for elite 2500 with auto-<LF> at <CR>;
03540	INTEGER kthelite; ! code for elite 2500 without auto-<LF> at <CR>;
03560	INTEGER infoton; ! code for infoton vista terminal type;
03580	INTEGER newelite; ! code for elite 1500 with auto-<LF> at <CR>;
03600	INTEGER newkthelite; ! code for elite 1500 without auto-<LF> at <CR>;
03620	INTEGER teletec; ! code for TEC teletec terminal type;
03640	INTEGER sattelite; ! code for INFOTON vistar sattelite;
03660	INTEGER tandberg; ! code for TANDBERG TDV 2000 terminal type;
03680	INTEGER beehive; ! code for minibee and BEEHIVE B 100 terminals;
03780	INTEGER cdc73s
03800	INTEGER cdc73p
03840	INTEGER elite3025; ! Datamedia Elite 3025 terminal;
03860	INTEGER elite1521; ! Datamedia Elite 1521 terminal;
03960	INTEGER vc404
03980	INTEGER vc414h
04020	INTEGER buginfoton; ! Infoton without erase line feature;
04040	INTEGER i200; ! Infoton I 200 terminal;
04060	INTEGER adm3a; ! ADM 3 A terminal;
04080	INTEGER vt100; ! Digital VT 100 terminal in Vt52 mode;
04100	INTEGER fut3; ! Reserved for future terminal models;
04120	INTEGER fut2; ! Reserved for future terminal models;
04140	INTEGER fut1; ! Reserved for future terminal models;
04160	INTEGER otherdisplay; ! Unknown display terminal;
04180	INTEGER maxterminals; ! 1 more than highest terminal type number;
04200	INTEGER ttyform; ! tty form setting before being called;
04360	INTEGER qverticalpos; !
04380	INTEGER qhorizontalpos;
04480	INTEGER widm1
04500	INTEGER heim1
04540	INTEGER ioindex; ! comment for sysout, used by outche;
04560	CHARACTER lowintens; ! change to low intensity on screen;
04580	CHARACTER highintens; ! change to high intensity on screen;
04600	CHARACTER up; ! cursor up;
04620	CHARACTER left; ! cursor left;
04640	CHARACTER right; ! cursor right;
04660	CHARACTER down; ! cursor movement codes;
04680	CHARACTER formfeed; ! ASCII character;
04700	CHARACTER eraseline; ! Erases rest of line on some terminals;
04720	CHARACTER delayer;
04740	CHARACTER home; ! code to move cursor to upper left screen corner;
04760	COMMENT* ON CDC 713-10, this code moves to lower left corner*;
04780	CHARACTER carriagereturn; ! ASCII character;
04800	CHARACTER altmode; ! ASCII ESCAPE character, decimal 27;
04820	CHARACTER restorechar; ! code which, when given from terminal
04840	;! causes screen to be restored (usually = altmode);
04860	CHARACTER linefeed; ! ASCII character;
04880	CHARACTER verttab; ! ASCII vertical tab character;
04900	CHARACTER null; ! ASCII character with decimal 0 value;
04920	CHARACTER tab; ! ASCII horizontal tab (HT) character;
04940	CHARACTER insline; ! inserts line on some terminal models;
04960	CHARACTER delline; ! deletes line on some terminal models;
04980	CHARACTER inschar; ! inserts character on some terminal models;
05000	CHARACTER delchar; ! deletes character on some terminal models;
05080	CHARACTER qgotchar;
05120	CHARACTER startblink; ! Code to start blinking on terminal screen;
05140	CHARACTER bell; ! ASCII character;
05160	CHARACTER stopblink; ! Code to stop blinking on terminal screen;
05180	CHARACTER fill; ! Character with decimal value 127, RUB OUT code;
05200	CHARACTER erasescreen; ! Code to make the whole screen blank;
05340	CHARACTER addressscreen; !
05360	
05380	BOOLEAN lineerasable; !
05400	BOOLEAN lineinsertable; !
05440	BOOLEAN addaltmode; ! Terminal control codes to be preceded by ESC;
05460	BOOLEAN upsingle; ! TRUE = no escape in front of cursor up;
05480	BOOLEAN downsingle;
05500	BOOLEAN leftsingle;
05520	BOOLEAN rightsingle;
05540	BOOLEAN homesingle;
05560	BOOLEAN clearsingle; ! TRUE = no escape in front clear screen;
05580	BOOLEAN linesingle; ! TRUE = no escape in front of clear line;
05660	BOOLEAN qdisplayoutput;
05700	BOOLEAN badscreen; ! Terminal screen may be jumbled;
05720	BOOLEAN controlchar; ! Last input char was terminal control code;
05740	BOOLEAN ttyqz; ! Local for QZ computer centre;
05760	BOOLEAN ttyzq; ! Local for QZ computer centre;
05780	
05960	TEXT deletline
05980	TEXT inserline
06000	TEXT deletchar
06020	TEXT eraseeol
06040	TEXT inserchar
06080	TEXT leftimage; ! Image with left code in first position;
06260	TEXT extraparameters;
06280	
06320	ARRAY screen ; ! TEXT ARRAY screen[0:height-1];
     
26540	IF2,<   PURGE C$,A$B,A$C,R$B,R$C,T$B,T$C
26560	        PURGE WRD,WORD,INTEGER,ARRAY
26580	        PURGE REF,BOOLEAN,INTEGER
26600	>
26620	  RADIX 10
26640	  qbel==7
26660	  qvt==11
26680	  qnul==0
26700	  qdel==127
26720	  qtab==9
26740	  qht==9
26760	  qcr==13
26780	  qlf==10
26800	  qesc=27
26820	  qff==12
26840	  RADIX 8
     
32940	END;