rfc205.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 732 行 · 第 1/2 页

TXT
732
字号
                                   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 1971


F. 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 SYNC



Braden                                                          [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 1971


E.  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 + =
减小字号Ctrl + -
显示快捷键?