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

📄 rfc205.txt

📁 中、英文RFC文档大全打包下载完全版 .
💻 TXT
📖 第 1 页 / 共 2 页
字号:
                                   as a response segment.   AWRITE n,text   16 bit integer  Same as WRITE n, except characters                   n, followed by  are not stored in buffer if they                   n text bytes.   have a lower cursor address than                                   the value in S.   Here are some applications of these commands in URSA:   1. One elementary URSA terminal operation reads the screen from      position x up to (but not including) the current cursor position.      This could be done with the sequence of VCD command segments:                        SAVE                        CURSOR x                        SREAD   2. Another common operation in URSA is to remember the cursor, update      specific information on the screen, and replace the cursor.  This      can be done by the following 8 + n byte sequence of command      segments:Braden                                                          [Page 7]RFC 205          NETCRT - A CHARACTER DISPLAY PROTOCOL     6 August 1971                        SAVE                        CURSOR x                        WRITE n, text                        RESTORE   3. In URSA, the area in which a user is to type his response is      usually delimited on the left by a "Start Symbol" (graphic '[1]').      This is a historical remnant of the IBM 2260, which has only two      hardware read operators: read the full screen, and read from the      Start Manual Input Symbol ("SMI") to the cursor.  The SMI read      operation can be simulated easily on the VCD as follows:                        SAVE                        FIND '[1]'                        SREAD   4. The _Break_ (or _Transmit_) key on the VCD may serve the function      of the INTerrupt key on a CCI console (or ENTer on an IBM 2260).      URSA will often attempt to minimize Network traffic by sending a      sequence of commands (one message if allocation allows) like the      following:                                              -+            CURSOR m                           |            WRITE n, text                       - URSA writes a request            LOCAL                              |                                              -+                                              -+                       +-          +-+         |_ User types response                       |   _BREAK_   |         |      - -User Presses  | _TRANSMIT_  |key - - -+                       +-           -+        -+              SAVE                             |              CURSOR p                          - URSA reads response              SREAD                            |                                              -+      At other times, URSA might send the sequence:                CURSOR m                WRITE n,TEXT                LOCAL                READ  0      and wait for the INS from the user pressing _Break_ (or the      response segment triggered by the zero-length read if he presses      _Transmit_); then URSA will send the appropriate read command      sequence.Braden                                                          [Page 8]RFC 205          NETCRT - A CHARACTER DISPLAY PROTOCOL     6 August 1971F. NETWORK MESSAGE FORMATS   The VCD connects the server through ICP to a standard socket,   establishing thereby a pair of connections between the VCD and the   server.  Command segments (server-to-VCD) and response segments   (VCD-to-server) are sent over these connections, without regard to   physical message boundaries, using byte size 8.  The VCD is defined   to operate in a segment-at-a-time mode (rather than character-at-a-   time), with local echo.  Therefore, the server never echoes under   NETCRT.   In many cases URSA will send a sequence of command segments (as in   the examples of the preceding section) at once; if there is   sufficient allcocation they will be sent in the same message.   Response time may be improved, therefore, if the user site is able to   buffer ahead on command segments.  This buffering does raise break   synchronization problems, which are solved in the following manner   for reverse (server-to-user) break:      The server sends an INS on the control link and also a SYNC      command (X'80) on the data link to the VCD.  On receiving either,      the VCD enters Control State and then achieves synchronization      between the INS and BREAK; if the INS arrives first, the VCD      executes normally all commands buffered in his host, _except_ it      ignores LOCAL commands, until the SYNC appears.  Having achieved      synchronization, the VCD continues normal command interpretation      (without ignoring ensuring LOCAL commands).   By this means the server can regain control of the VCD to write new   information at any time.  For example, when URSA is used under   NETCRT, most WRITE or AWRITE sequences will be preceded by a BREAK   from the server, since URSA will not know the current state of the   VCD.  Even if URSA left the VCD in Control State, the user might have   manually returned his VCD to Local State by pressing _Reset_.   After receiving an INS, the VCD executes rather than ignores buffered   commands so that pending writes will not be lost in case that   processing at the user side has been held up temporarily.  The read   commands executed after the server sent an INS might be irrelevant to   a server, which can ignore the corresponding response segments.  In   order to do so, the server simply keeps matching counts of read   commands sent and corresponding response segments received.   Command segments will use the following formats:   Form 1 (No parameters)  q:OPCODE(8)      where q = X'80' means SYNCBraden                                                          [Page 9]RFC 205          NETCRT - A CHARACTER DISPLAY PROTOCOL     6 August 1971                X'91'   "   LOCAL                X'92'   "   ERASE                X'93'   "   BLANK                X'94'   "   UNBLANK                X'95'   "   SAVE                X'96'   "   RESTORE                X'97'   "   SREAD   Form 2 (16 bit integer)  q:OPCODE(8) + n:INTEGER(16)      where q = X'9E' means READ n            q = X'9C'   "   CURSOR n      In both cases, 0 <= n <= M x N   Form 3 (count and text) q:OPCODE(8) + n:LENGTH(16) + (TEXT(8) = n)      where q = X'9D' means WRITE            q = X'9A' means AWRITE            q = X'9F' and n=1 means FIND   A response segment, caused by a READ or SREAD command, has the   following format:      RESPONSE <-----X'A1' + CURSOR(16) + n:LENGTH(16) + (TEXT(8) = n)   where n > 0 is the number of characters actually read.  CURSOR(16) is   an integer giving the final cursor position after the corresponding   read command.  Note that the command READ 0 is permissible and may be   used by the server to find the current cursor position, or to find   out when the user presses _Transmit_.Braden                                                         [Page 10]RFC 205          NETCRT - A CHARACTER DISPLAY PROTOCOL     6 August 1971E.  SCREEN SIZE   For simplicity and consistency with URSA, we have chosen to treat the   cursor as a single integer.  This in turn means that VCD and server   must agree upon the number of columns M; it is also desirable for the   server to know N.   The agreement on M and N takes place through a one-sided negotiation.   The server is assumed to know what M and N values he can handle and   these are published for user sites.  When the VCD is first connected   to the server, the VCD must send an Open response segment with the   values M and N:      Open segment <---- X'B1' + M(8) + N(8) + X'0000'   If the VCD fails to send this segment or the server does not like the   values, the server closes the connections and the user is considered   logged off.Endnotes   [1] Graphic representation of start symbol: shaded triangle on its   side.Braden                                                         [Page 11]RFC 205          NETCRT - A CHARACTER DISPLAY PROTOCOL     6 August 1971                        +---------------+                        |               |                        | D I S P L A Y |                        +---------------+                                ^                                |                                | Refresh                                |                        +---------------+                        |     LOCAL     |    Address                        |     BUFFER    |<------------+                        +---------------+             |                         ^  ^       |                 |     +-----------+  text |  |       |                 |    /            |_______|  |       |                 |   |  KEYBOARD   |          |WRITE  |READ             |   +-------------+          |AWRITE |SREAD            |                            |       |                 |            control         |       v                 |                        +---------------+     +---------------+                        |      VCD      |     | CURSOR ADDRESS|                        |    CONTROL    |<--->|    REGISTER   |                        +---------------+     +---------------+                            ^       |                 ^                            |       |                 |                            |       |                 |                            |       |                 |                            |       |                 |                            |       |                 v                            |       |         +---------------+                            |       |         |       S       |                            |       |         |   REGISTER    |                            |       |         +---------------+                            |       v                        +---------------+                        |     COMM      |                        |   INTERFACE   |                        +---------------+                            ^       |                            |       |                            |       v                   COMMANDS           RESPONSES                       Network Connections              FIGURE 1.  VIRTUAL CHARACTER DISPLAY              ------------------------------------Braden                                                         [Page 12]RFC 205          NETCRT - A CHARACTER DISPLAY PROTOCOL     6 August 1971                      Keyboard Unlocked                    No Commands Executed                   +--------------------+                   |                    |           +------>|       LOCAL        |------+           |  +--->|       State        |      |           |  |    +--------------------+      |           |  |        |              |        |           |  |        |              |        |           |  |        |Break         |        |           |  |        |              |        |   INS received   LOCAL   |  |        | key          |        |           |  |        |  [send INS   |        |   Command |  |        |   and X'80'] |        |   Executed|  |        |              |Transmit|           |  | Reset  |              |        |           |  |        |              |  key   |           |  |  key   |              |        |           |  |        v              v        |           |  |   +--------------------+       |           |  +---|       Control      |<------+           |      |        State       |           +------|                    |            |     +--------------------+            |      ^            |      |  Keyboard locked,            |      |  Execute Commands            +------+   After INS is   received, LOCAL   command is ignored   until SYNC (X'80')   is encountered                    FIGURE 2.  VCD STATES                    ---------------------          [This RFC was put into machine readable form for entry]           [into the online RFC archives by Lorrie Shiota, 2/02]Braden                                                         [Page 13]

⌨️ 快捷键说明

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