⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc746.txt

📁 RFC 相关的技术文档
💻 TXT
📖 第 1 页 / 共 2 页
字号:
   Thus, the way for a program to work on all terminals with %TQBNK,   whether they know about sets or not, is:  to write a bliniking   picture, select some set other than your normal one (set 1 will do),   do %GOBNK, output the picture, and reselect set 0.  The picture will   blink, while you draw things in set 0.  To draw more blinking   objects, you must reselect set 1 and do another %GOBNK.  Simply   reselecting set 1 will not work on terminals which don't really   support sets, since they don't remember that the blinking objects are   "in set 1" and not "in set 0".   Erasing a blinking object should make it disappear, on any terminal   which implements blinking.  On bit matrix terminals, blinking MUST   always be done by XORing, so that the non-blinking background is not   destroyed.   %GOCLS, on a terminal which supports blinking but not sets, should   delete all blinking objects.  Then, the convention for deleting all   blinking objects is to select set 1, do a %GOCLS, and reselect set 0.   This has the desired effect on all terminals.  This definition of   %GOCLS causes no trouble on non-set terminals, since %GOCLS would   otherwise be meaningless to them.   To make blinking objects stop blinking but remain visible is possible   with a %GOVIS on a terminal which supports sets.  But in general the   only way to do it is to delete them and redraw them as permanent.                                  -8-NWG/RFC# 746                                         RMS 17-MAR-78 43976The SUPDUP Graphics ExtensionRectangles and XOR   Bit matrix terminals have their own operations that display list   terminals cannot duplicate.  First of all, they have XOR mode, in   which objects drawn cancel existing objects when they overlap.  In   this mode, drawing an object and erasing it are identical operations.   All %GOD.. commands act IDENTICALLY to the corresponding %GOE..'s.   XOR mode is entered with a %GOXOR and left with a %GOIOR.  Display   list terminals will ignore both commands.  For that reason, the   program should continue to distinguish draw commands from erase   commands even in XOR mode.  %TQXOR indicates a terminal which   implements XOR mode.  XOR mode, when set, remains set even if   graphics mode is left and re-entered.  However, it is wise to   re-specify it from time to time, in case output is lost.   Bit matrix terminals can also draw solid rectangles.  They can thus   implement the commands %GODRR, %GODRA, %GOERR, and %GOERA.  A   rectangle is specified by taking the current cursor position to be   one corner, and providing the address of the opposite corner.  That   can be done with either a relative address or an absolute one.  The   %TQREC bit indicates that the terminal implements rectangle commands.   Of course, a sufficiently intelligent bit matrix terminal can provide   all the features of a display list terminal by remembering display   lists which are redundant with the bit matrix, and using them to   update the matrix when a %GOMSR or %GOVIS is done.  However, most bit   matrix terminals are not expected to go to such lengths.                                  -9-NWG/RFC# 746                                         RMS 17-MAR-78 43976The SUPDUP Graphics ExtensionHow Several Process Can Draw On One Terminal Without Interfering WithEach Other:   If we define "input-stream state" information to be whatever   information which can affect the action of any command, other than   what is contained in the command, then each of the several processes   must have its own set of input-stream state variables.   This is accomplished by providing the %GOPSH command.  The %GOPSH   command saves all such input-stream information, to be restored when   graphics mode is exited.  If the processes can arrange to output   blocks of characters uninterruptibly, they can begin each block with   a %GOPSH followed by commands to initialize the input-stream state   information as they desire.  Each block of graphics output should be   ended by a %TDNOP, leaving the terminal in its "normal" state for all   the other processes, and at the same time popping the what the %GOPSH   pushed.      The input-stream state information consists of:         The cursor position         the state of XOR mode (default is OFF)         the selected set (default is 0)         the co-ordinate unit in use (physical dots, or virtual)            (default is physical)         whether output is going to the display screen or to a hardcopy            device (default is to the screen)         what portion of the screen is in use            (see "Using Only Part of the Screen")            (default is all)   Each unit of input-stream status has a default value for the sake of   programs that do not know that the information exists; the exception   is the cursor position, since all programs must know that it exists.   A %TDINI or %TDRST command should set all of the variables to their   default values.   The state of the current set (whether it is visible, and where its   center is) is not part of the input-stream state information, since   it would be hard to say what it would mean if it were.  Besides, the   current set number is part of the input-stream state information, so   different processes can use different sets.  The allocation of sets   to processes is the server host's own business.                                  -10-NWG/RFC# 746                                         RMS 17-MAR-78 43976The SUPDUP Graphics ExtensionUsing Only Part of the Screen:   It is sometimes desirable to use part of the screen for picture and   part for text.  Then one may wish to clear the picture without   clearing the text.  On display list terminals, %GOCLR should do this.   On bit matrix terminals, however, %GOCLR can't tell which bits were   set by graphics and which by text display.  For their sake, the   %GOLMT command is provided.  This command takes two cursor positions   as arguments, specifying a rectangle.  It declares that graphics will   be limited to that rectangle, so %GOCLR should clear only that part   of the screen.  %GOLMT need not do anything on a terminal which can   remember graphics output as distinct from text output and clear the   former selectively, although it would be a desirable feature to   process it even on those terminals.   %GOLMT can be used to enable one of several processes which divide up   the screen among themselves to clear only the picture that it has   drawn, on a bit matrix terminal.  By using both %GOLMT and distinct   sets, it is possible to deal successfully with almost any terminal,   since bit matrix terminals will implement %GOLMT and display list   terminals almost always implement sets.   The %TDCLR command should clear the whole screen, including graphics   output, ignoring %GOLMT.Errors:   In general, errors in graphics commands should be ignored.   Since the output and input streams are not synchronized unless   trouble is taken, there is no simple way to report an error well   enough for the program that caused it to identify just which command   was invalid.  So it is better not to try.   Errors which are not the fault of any individual command, such as   running out of memory for display lists, should also be ignored as   much as possible.  This does NOT mean completely ignoring the   commands that cannot be followed; it means following them as much as   possible: moving the cursor, selecting sets, etc. as they specify, so   that any subsequent commands which can be executed are executed as   intended.                                  -11-NWG/RFC# 746                                         RMS 17-MAR-78 43976The SUPDUP Graphics ExtensionExtensions:   This protocol does not attempt to specify commands for dealing with   every imaginable feature which a picture-drawing device can have.   Additional features should be left until they are needed and well   understood, so that they can be done right.Storage of Graphics Commands in Files:   This can certainly be done.  Since graphics commands are composed   exclusively of the ASCII characters 0 - 177, any file that can hold   ASCII text can hold the commands to draw a picture.  This is less   useful than you might think, however.  Any program for editing, in   whatever loose sense, a picture, will have its own internal data   which determine the relationships between the objects depicted, and   control the interpretation of the programs commands, and this data   will all be lost in the SUPDUP graphics commands for displaying the   picture. Thus, each such program will need to have its own format for   storing pictures in files, suitable for that program's internal data   structure.  Inclusion of actual graphics commands in a file will be   useful only when the sole purpose of the file is to be displayed.                                  -12-NWG/RFC# 746                                         RMS 17-MAR-78 43976The SUPDUP Graphics ExtensionNote: the values of these commands are represented as 8.-bit octalbytes.  Arguments to the commands are in lower case inside anglebrackets.The Draw commands are:Value   Name   Arguments101     %GODLR <p>                Draw line relative, from the cursor to <p>.102     %GODPR <p>                Draw point relative, at <p>.103     %GODRR <p>                Draw rectangle relative, corners at <p> and at the                current cursor position.104     %GODCH <string> <0>                Display the chars of <string> starting at the current                graphics cursor position.121     %GODLA <p>                Draw line absolute, from the cursor to <p>. The same                effect as %GODLR, but the arg is an absolute address.122     %GODPA <p>                Draw point absolute, at <p>.123     %GODRA <p>                Draw rectangle absolute, corners at <p> and at the                current cursor position.The Erase commands are:Value   Name   Arguments141     %GOELR <p>                Erase line relative, from the cursor to <p>.142     %GOEPR <p>                Erase point relative, at <p>.143     %GOERR <p>                Erase rectangle relative, corners at <p> and at the                current cursor position.144     %GOECH <string> <0>                Erase the chars of <string> starting at the current                graphics cursor position.161     %GOELA <p>                Erase line absolute, from the cursor to <p>.162     %GOEPA <p>                Erase point absolute, at <p>.163     %GOERA <p>                Erase rectangle absolute, corners at <p> and at the                current cursor position.                                  -13-NWG/RFC# 746                                         RMS 17-MAR-78 43976The SUPDUP Graphics ExtensionThe miscellaneous commands are:Value   Name   Arguments001     %GOMVR <p>                Move cursor to point <p>021     %GOMVA <p>                Move cursor to point <p>, absolute address.002     %GOXOR                Turn on XOR mode.  Bit matrix terminals only.022     %GOIOR                Turn off XOR mode.003     %GOSET <n>                Select set.  <n> is a 1-character set number, 0 - 177.004     %GOMSR <p>                Move set origin to <p>.  Display list terminals only.024     %GOMSA <p>                Move set origin to <p>, absolute address.006     %GOINV                Make current set invisible.026     %GOVIS                Make current set visible.007     %GOBNK                Make current set blink.  Canceled by %GOINV or %GOVIS.010     %GOCLR                Erase whole screen.030     %GOCLS                Erase entire current set (display list terminals).011     %GOPSH                Push all input-stream status information, to be restored                when graphics mode is exited.012     %GOVIR                Start using virtual co-ordinates032     %GOPHY                Resume giving co-ordinates in units of dots.013     %GOHRD <n>                Divert output to output subdevice <n>. <n>=0 reselects                the main display screen.014     %GOGIN <n>                Request graphics input (mouse, tablet, etc). <n> is the                reply code to include in the answer.015     %GOLMT <p1> <p2>                Limits graphics to a subrectangle of the screen. %GOCLR                will clear only that area.  This is for those who would                use the rest for text.                                  -14-NWG/RFC# 746                                         RMS 17-MAR-78 43976The SUPDUP Graphics ExtensionBits in the SMARTS Variable Related to Graphics:Note: the values of these bits are represented as octal 36.-bit words,with the left and right 18.-bit halfword separated by two commas as inthe normal PDP-10 convention.Name    Value      Description%TQGRF  000001,,0  terminal understands graphics protocol.%TQSET  000002,,0  terminal supports multiple sets.%TQREC  000004,,0  terminal implements rectangle commands.%TQXOR  000010,,0  terminal implements XOR mode.%TQBNK  000020,,0  terminal implements blinking.%TQVIR  000040,,0  terminal implements virtual co-ordinates.%TQWID  001700,,0  character width, in dots.%TQHGT  076000,,0  character height, in dots.%TRGIN  0,,400000  terminal can provide graphics input.%TRGHC  0,,200000  terminal has a hard-copy device to which output can                   be diverted.                                  -15-

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -