UVT100 User's Guide The UVT100 subroutine interface is designed to allow convenient access to the VT100 ANSI Mode Control Sequences as defined in chapter 3 of the VT100 Users Guide. The calling sequence for each function is described below, together with a description of the function. In order for cursor control of the VT100 to perform satisfactorily, the wraparound feature of the terminal driver should be disabled by issuing the MCR command "SET /NOWRAP=TI:" The VT100 must have its ANSI/VT52 setup toggle switch set to ANSI for these commands to work. This can be done manually, or a CALL UVT100(ANSI) can be issued to ensure the terminal is set to ANSI. Programs using UVT100 to write to a terminal must open the logical unit of the terminal with CARRIAGECONTROL='NONE' to disable Fortran carriage control. Standard Fortran CR/LF carriage control can be emulated by issuing a CALL UVT100(NEL) between each Fortran write. The format of a UVT100 call is CALL UVT100(cmd,num1,num2), where: cmd is the mode control command to be executed, num1,num2 are numeric parameters required for certain commands. Symbolics are defined for the 'cmd' parameter in the file UVT100.DAT. These symbolics match those provided in the VT100 Users Guide, and are provided for ease of operation. The following commands are implemented. CALL UVT100(CUP,line,column) position cursor to coordinates given by line and column. lines are numbered 1-24 and columns 1-80. a zero is treated as a one. CUP,0,0 is the equivalent of a HOME CURSOR. CALL UVT100(CUB,num) backspace the cursor num columns. a zero is treated as a one. cursor will not backspace beyond left margin. CALL UVT100(CUD,num) move the cursor down num lines. a zero is treated as a one. cursor will not move below bottom margin. CALL UVT100(CUF,num) forward the cursor num columns. a zero is treated as a one. cursor will not forward beyond right margin. CALL UVT100(CUU,num) move the cursor up num lines. a zero is treated as a one. cursor will not move up beyond top margin. CALL UVT100(DECDHL,num) define active line as top or bottom of a double-height line. num=0 is the top half, and num=1 is the bottom half. Page 2 UVT100 User's Guide CALL UVT100(DECDWL) define active line as a double width line. CALL UVT100(DECSWL) define active line as a single-width, single- height line. CALL UVT100(DECSC) save the active cursor coordinates. CALL UVT100(DECRC) restore the cursor to the saved coordinates. CALL UVT100(ED,num) erase the display. if num=0, erase from active cursor position to end of display. if num=1, erase from top of display to active cursor position. if num=2, erase entire display. CALL UVT100(EL,num) erase the line. if num=0, erase from active cursor position to the end of line. if num=1, erase from the beginning of line to the active cursor position. if num=2, erase entire line. CALL UVT100(SGR,num) set graphic rendition. the only attribute selectable for a VT100 without the advanced video option is reverse image, (num=7). num=0 turns all attributes off. CALL UVT100(NEL) position cursor to beginning of next line. CALL UVT100(SCS,num1,num2) select character set. num1=0 indicates G0 set. num1=1 indicates G1 set. num2=0 indicates United Kingdom set. num2=1 indicates standard ASCII set. num2=2 indicates special graphics set. in subsequent I/O, the G0 set is selected by a shift in , and the G1 set is selected by a shift out embedded in the data. CALL UVT100(SM,num) set DEC private mode. num is mode to be set. 1 = DECCKM (cursor key) 2 = DECANM (ANSI/VT52) 3 = DECCOLM (column) 4 = DECSCLM (scrolling) 5 = DECSCNM (screen) 6 = DECOM (origin) 7 = DECAWM (auto wrap) 8 = DECARM (auto repeating) 9 = DECINLM (interlace) CALL UVT100(RM,num) reset DEC private mode. num is the mode to be reset. see codes listed above for set mode. CALL UVT100(ANSI) this is a VT52-compatible command to ensure the terminal is set to ANSI mode. this should be the first command issued in your program if you are not sure the target terminal is set to ANSI mode. this command will be ignored if the terminal is already in ANSI mode.