summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc189.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc189.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc189.txt')
-rw-r--r--doc/rfc/rfc189.txt1067
1 files changed, 1067 insertions, 0 deletions
diff --git a/doc/rfc/rfc189.txt b/doc/rfc/rfc189.txt
new file mode 100644
index 0000000..cfdc20e
--- /dev/null
+++ b/doc/rfc/rfc189.txt
@@ -0,0 +1,1067 @@
+
+
+
+
+
+
+Network Working Group R. T. Braden
+Request for Comments: 189 UCLA/CCN
+Obsoletes: RFC 88 (NIC 5668) 15 July 1971
+NIC 7133
+Category: D
+
+
+ INTERIM NETRJS SPECIFICATIONS
+
+ The following document describes the operation and protocol of the
+ remote job entry service to CCN's 360 Model 91. The interim protocol
+ described here will be implemented as a production service before the
+ end of July. Two host sites (Rand and UCLA/NMC) have written user
+ processes for the interim NETRJS, based on the attached document.
+ Questions on it should be addressed to CCN's Technical Liaison.
+
+ It is anticipated that the interim protocol will be superseded in a
+ few months by a revised NETRJS, but the changes will be minor. The
+ revision will bring the data transfer protocol of NETRJS into
+ complete conformity with the proposed Data Transfer Protocol DTP (see
+ RFC #171). The present differences between the DTP and NETRJS
+ protocols are:
+
+ (a) The format (but not the contents) of the 72 bit transaction
+ header of NETRJS must be changed to conform with DTP.
+
+ (b) The End-of-Data marker must be changed from X'FE' to X'B40F'.
+
+ (c) The initial "modes available" transaction of DTP must be
+ added.
+
+ (d) Some of the DTP error codes will be implemented.
+
+
+ No other protocol changes are presently planned, although some may be
+ suggested by operating experience with the interim protocol. When
+ the revised protocol has been fully specified, it will be implemented
+ with different ICP sockets than the interim protocol. This will
+ allow a site which wants to start using CCN immediately to convert
+ his protocol at leisure.
+
+ Some possible future extensions to NETRJS which have been suggested
+ are:
+
+ (1) A 7-bit ASCII option of data transfer connections, for the
+ convenience of PDP-10s.
+
+
+
+
+
+Braden [Page 1]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ (2) A "transparency" mode for input from ASCII remote sites, to
+ allow the transmission of "binary decks" (object decks) in
+ the job stream from these sites.
+
+ (3) More than one simultaneous virtual card read, printer, and
+ punch stream to the same virtual terminal.
+
+ Comments on the utility of these proposals or others for your site
+ would be appreciated.
+
+
+
+ Robert T. Braden
+ Technical Liaison
+ UCLA/CCN
+ (213) 825-7518
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Braden [Page 2]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ REMOTE JOB ENTRY TO UCLA/CCN
+ FROM THE ARPA NETWORK
+
+ (Interim Protocol)
+
+A. Introduction
+
+ NETRJS is the protocol for the remote job entry service to the 360
+ Model 91 at the UCLA Campus Computing Network (CCN). NETRJS allows
+ the user at a remote host to access CCN's RJS ("Remote Job Service")
+ sub-system, which provides remote job entry service to real remote
+ batch (card reader/line printer) terminals over direct communications
+ lines as well as to the ARPA Network.
+
+ To use NETRJS, a user at a remote host needs a NETRJS user process to
+ communicate with one of the NETRJS server processes at CCN. Each
+ active NETRJS user process appears to RJS as a separate (virtual)
+ remote batch terminal; we will refer to it as a VRBT.
+
+ A VRBT may have virtual card readers, printers, and punches. Through
+ a virtual card reader a Network user can transmit a stream of card
+ images comprising one or more OS/360 jobs, complete with Job Control
+ Language, to CCN. These jobs will be spooled into CCN's batch system
+ (OS/360 MVT) and run according to their priority. RJS will automati-
+ cally return the print and/or punch output images which are created
+ by these jobs to the virtual printer and/or card punch at the VRBT
+ from which the job came (or to a different destination specified in
+ the JCL). The remote user can wait for his output, or he can sign
+ off and sign back on later to receive it.
+
+ The VRBT is assumed to be under the control of the user's teletype or
+ other remote console; this serves the function of an RJS remote
+ operator console. To initiate a NETRJS session, the remote user must
+ execute the standard ICP (see RFC #165) to a fixed socket at CCN.
+ The result is to establish a duplex Telnet connection to his console,
+ allowing the user to sign into RJS. Once he is signed in, he can use
+ his console to issue commands to RJS and to receive status, confirma-
+ tion, and error messages from RJS. The most important RJS commands
+ are summarized in Appendix D.
+
+ Different VRBT's are distinguished by 8-character terminal id's.
+ There may be more than one VRBT using RJS simultaneously from the
+ same remote host. Terminal id's for new VRBT's will be assigned by
+ CCN to individual users or user groups who wish to run batch jobs at
+ CCN (contact the CCN Technical Liaison for details).
+
+
+
+
+
+
+Braden [Page 3]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+B. Connections and Protocols
+
+ Figure 1 shows conceptually the processes and protocols required to
+ use NETRJS. The operator console uses a duplex connection under the
+ Telnet third-level protocol (see RFC #158). The actual data transfer
+ streams for job input and output are handled over separate simplex
+ connections using a data transfer protocol.
+
+ We will use the term channel for one of these NETRJS connections, and
+ designate it input or output with reference to CCN. Each data
+ transfer channel is identified with a particular virtual remote dev-
+ ice -- card reader, printer, or punch. The data transfer channels
+ need be open only while they are in use, and different channels may
+ be used sequentially or simultaneously. NETRJS will presently sup-
+ port simultaneous operation of a virtual card reader, a virtual
+ printer, and a virtual punch (in addition to the operator console) on
+ the same VRBT process. RJS itself will support more than one reader,
+ printer, and punch at each remote terminal, so the NETRJS protocol
+ could easily be expanded in the future to allow more simultaneous I/O
+ streams to each Network user.
+
+ The remote user needs a local escape convention so he can send com-
+ mands directly to his VRBT process. These local VRBT commands would
+ allow selection of the files at his host which contain job streams to
+ be sent to the server, and files to receive job output from the
+ server. They would also allow the user to open data transfer chan-
+ nels to the NETRJS server process, and to close these connections to
+ free buffer space or abort a transmission.
+
+ When a VRBT starts a session, it has a choice of two ICP sockets,
+ depending upon whether it is an ASCII or an EBCDIC virtual terminal.
+ An EBCDIC virtual terminal transmits and receives its data as tran-
+ sparent streams of 8 bit bytes (since CCN is an EBCDIC installation).
+ It is expected that a user at an ASCII installation, however, will
+ want his VRBT declared ASCII; RJS will then translate the input
+ stream from ASCII to EBCDIC and translate the printer stream back to
+ ASCII. This will allow the user to employ his local text editor for
+ preparing input to CCN and for examining output. The punch stream
+ will always be transparent, for outputting "binary decks".
+
+ It should be noted that the choice of code for the operator console
+ connections is independent of declared terminal type; in particular,
+ they always use ASCII under Telnet protocol, even from an EBCDIC
+ VRBT.
+
+
+
+
+
+
+
+Braden [Page 4]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ NETRJS protocol provides data compression, replacing repeated blanks
+ or other characters by repeat counts. However, when the terminal id
+ is assigned by CCN, a particular network terminal may be specified as
+ using no data compression. In this case, NETRJS will simply truncate
+ trailing blanks and send records in a simple "op code-length-data"
+ form, called truncated format.
+
+C. Starting and Terminating a Session
+
+ The remote user establishes a connection to RJS via the standard ICP
+ from his socket U to socket 11 [sub] 10 (EBCDIC) or socket 13 [sub]
+ 10 (ASCII) at host 1, IMP 1. If successful, the ICP results in a
+ pair of connections which are in fact the NETRJS operator control
+ connections.
+
+ Once the user is connected, he must enter a valid RJS signon command
+ ("SIGNON terminal-id") through his console. RJS will normally ack-
+ nowledge signon with a console message; however, if RJS does not
+ recognize the terminal-id or has no available Line Handler for the
+ Network, it will indicate refusal by closing both operator connec-
+ tions. If the user attempts to open data transfer connections before
+ his signon command is accepted, the data transfer connections will be
+ refused by CCN with an error message to his console.
+
+ Suppose the operator input connection is socket S at CCN; S is the
+ even number sent in the ICP. Then the other NETRJS channels have
+ sockets at CCN with fixed relation to S, as shown in the table below.
+ Until there is a suitable Network-wide solution to the problem of
+ identity control on sockets, NETRJS will also require that the VRBT
+ process use fixed socket offsets from his initial connection socket
+ U. These are shown in the following table:
+
+ Channel CCN Socket Remote Socket
+ (Server) (User)
+
+ Telnet / Remote Operator Console Input S U + 3 \
+ \ Remote Operator Console Output S + 1 U + 2 / Telnet
+ Data / Card Reader #1 S + 2 U + 5
+ Transfer < Printer #1 S + 3 U + 4
+ \ Punch #1 S + 5 U + 6
+
+ Once the user is signed on, he can open data transfer channels and
+ initiate input and output operations as explained in the following
+ sections. To terminate the session, the remote user may close all
+ connections. Alternatively, the user may enter a SIGNOFF command
+ through his console; in this case, RJS will wait until the current
+ job output streams are complete and then itself terminate the session
+ by closing all connections.
+
+
+
+Braden [Page 5]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+D. Input Operations
+
+ A job stream for submission to RJS at CCN is a series of logical
+ records, each of which is a card image. A card image may be at most
+ 80 characters long, to match the requirements of OS/360 for job
+ input. The user can submit a "stack" of successive jobs through the
+ card reader channel with no end-of-job indication between jobs; RJS
+ recognizes the beginning of each new job by the appearance of a JOB
+ card.
+
+ To submit a job or stack of jobs for execution at CCN, the remote
+ user must first open the card reader channel. He signals his VRBT
+ process to issue Init (local = U + 5, foreign = S + 2, size = 8).
+ NETRJS, which is listening on socket S + 2, will normally return an
+ RTS command, opening the channel. If, however, it should happen that
+ all input buffer space within the CCN NCP is in use, the request will
+ be refused, and the user should try again later. If the problem per-
+ sists, call the Technical Liaison at CCN.
+
+ When the connection is open, the user can begin sending his job
+ stream using the protocol defined in Appendix A. For each job suc-
+ cessfully spooled, the user will receive a confirming message on his
+ console. At the end of the stack, he must send an End-of-Data tran-
+ saction to initiate processing of the last job. NETRJS will then
+ close the channel (to avoid holding buffer space unnecessarily). At
+ any time during the session, the user can re-open the card reader
+ channel and transmit another job stack. He can also terminate the
+ session and sign on later to get his output.
+
+ The user can abort the card reader channel at any time by closing the
+ channel (his socket S + 2). NETRJS will then discard the last par-
+ tially spooled job. If NETRJS finds an error (e.g., transaction
+ sequence number error or a dropped bit), it will abort the channel by
+ closing the connection prematurely, and also inform the user via his
+ console that his job was discarded (thus solving the race condition
+ between End-of-Data and aborting). The user needs to retransmit only
+ the last job. However, he could retransmit the entire stack
+ (although it would be somewhat wasteful) since the CCN operating sys-
+ tem enforces job name uniqueness by immediately "flushing" jobs with
+ names already in the system.
+
+ If the user's process, NCP, or host, or the Network itself fails dur-
+ ing input, RJS will discard the job being transmitted. A message
+ informing the user that this job was discarded will be generated and
+ sent to him the next time he signs on. On the other hand, those jobs
+ whose receipt have been acknowledged on the operator's console will
+ not be affected by the failure, but will be executed by CCN.
+
+
+
+
+Braden [Page 6]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+E. Output Operations
+
+ The user may wait to set up a virtual printer (or punch) and open its
+ channel until a STATUS message on his console indicates output is
+ ready; or he may leave the output channel(s) open during the entire
+ session, ready to receive output whenever it becomes available. He
+ can also control which one of several available jobs is to be
+ returned by entering appropriate operator commands.
+
+ To be prepared to receive printer (or punch) output from his jobs,
+ the user site issues Init (local = U + 4 (U + 6), foreign = S + 3 (S
+ + 5), size = 8), respectively. NETRJS is listening on these sockets
+ and should immediately return an STR. However, it is possible that
+ because of software problems at CCN, RJS will refuse the connection
+ and a CLS will be returned; in this case, try again or call the
+ Technical Liaison.
+
+ When RJS has output to send to a particular (virtual) terminal and a
+ corresponding open output channel, it will send the output as a
+ series of logical records using the protocol in Appendix A. The
+ first record will consist of the job name (8 characters) followed by
+ a comma and then the ID string from the JOB card (if any). In the
+ printer stream, the first column of each record will be an ASA car-
+ riage control character (see Appendix C); the punch output stream
+ will never contain carriage control characters.
+
+ NETRJS will send an End-of-Data transaction and then close an output
+ channel at the end of the output for each complete batch job; the
+ remote site must then send a new RFC (and ALL) to start output for
+ another job. This gives the remote site a chance to allocate a new
+ file for each job without breaking the output within a job. If the
+ user at the remote site wants to cancel (or backspace or defer) the
+ output of a particular job, he enters appropriate RJS commands on the
+ operator input channel (see Appendix D).
+
+ A virtual printer in NETRJS has 254 columns, exclusive of carriage
+ control; RJS will send up to 255 characters of a logical record it
+ finds in a SYSOUT data set. If the user wishes to reject or fold
+ records longer than some smaller record size, he can do so in his
+ VRBT process.
+
+ If RJS encounters a permanent I/O error in reading the disk data set,
+ it will notify the user via his console, skip forward to the next set
+ of system messages or SYSOUT data set in the same job, and continue.
+ In the future, RJS may be changed to send a Lost Data marker within
+ the data stream as well as a console message to the user. In any
+ case, the user will receive notification of termination of output
+ data transfer for each job via messages on his console.
+
+
+
+Braden [Page 7]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ If the user detects an error in the stream, he can issue a Backspace
+ (BSP) command from his console to repeat the last "page" of output,
+ or a Restart (RST) command to repeat from last SYSOUT data set or the
+ beginning of the job, or he can abort the channel by closing his
+ socket. If he aborts the channel, RJS will simulate a Backspace com-
+ mand, and when the user re-opens the channel the job will begin
+ transmission again from an earlier point in the same data set. This
+ is true even if the user terminates the current session first, and
+ re-opens the channel in a later session; RJS saves the state of its
+ output streams. However, before re-opening the channel he can defer
+ this job for later output, restart it at the beginning, or cancel its
+ output (see Appendix D). Note that aborting the channel is only
+ effective if RJS has not yet sent the End-of-Data transaction.
+
+ If the user's process, NCP, or host, or the Network itself fails dur-
+ ing an output operation, RJS will act as if the channel had been
+ aborted and the user signed off. In no case should a user lose out-
+ put from NETRJS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Braden [Page 8]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ Appendix A
+
+ Data Transfer Protocol in NETRJS
+
+
+1. Introduction
+
+ The records in the data transfer channels (for virtual card reader,
+ printer, and punch) are generally grouped into _transactions_ pre-
+ ceded by headers. The transaction header includes a sequence number
+ and the length of the transaction. Network byte size must be 8 bits
+ in these data streams.
+
+ A transaction is the unit of buffering within the Model 91 software.
+ Internal buffers are 880 bytes. Therefore, CCN cannot transmit or
+ receive a single transaction larger than 880 bytes. Transactions can
+ be as short as one record; however, those sites which are concerned
+ with efficiency should send transactions as close as possible to the
+ 880 byte limit.
+
+ There is no necessary connection between physical message boundaries
+ and transactions ("logical messages"); the NCP can break the "logical
+ message" arbitrarily into physical messages. At CCN we will choose
+ to have each logical message start a new physical message, so the NCP
+ can send the last part of each message without waiting for an expli-
+ cit request, but a remote site is not required to follow this conven-
+ tion.
+
+ Each logical record within a transaction begins with an "op code"
+ byte which contains the channel identification, so its value is
+ unique to each channel but constant within a channel. This choice
+ provides a convenient way to verify bit synchronization at the
+ receiver, and also allows an extension in the future to true "multi-
+ leaving" (i.e., multiplexing all channels within one connection in
+ each direction).
+
+ The only provisions for transmission error detection in the current
+ NETRJS protocol are (1) this "op code" byte to verify bit synchroni-
+ zation and (2) the transaction sequence number. At the urging of
+ Crowther, we favor putting an optional 16 bit check sum in the unused
+ bytes of the second-level header. It is currently assumed that if an
+ error is detected then the channel is to be aborted and the entire
+ transmission repeated. To provide automatic retransmission we would
+ have to put in reverse channels for ACK/NAK messages.
+
+
+
+
+
+
+
+Braden [Page 9]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+2. Character Sets
+
+ For an ASCII VRBT, NETRJS will map ASCII in the card reader stream
+ into EBCDIC, and re-map the printer stream to ASCII, by the following
+ rules:
+
+ 1. One-to-one mapping between the three ASCII characters | ~ \
+ which are not in EBCDIC, and the three EBCDIC characters
+ [vertical bar, not-sign and cent-sign] (respectively) which
+ are not in ASCII.
+
+ 2. The other six ASCII graphics not in EBCDIC will be
+ translated on input to an EBCDIC question mark (?).
+
+ 3. The ASCII control DC3 (the only one not in EBCDIC) will be
+ mapped into and from the EBCDIC control TM.
+
+ 4. The EBCDIC characters not in ASCII will be mapped in the
+ printer stream into the ASCII question mark.
+
+3. Meta-Notation
+
+ The following description of the NETRJS data transfer protocol uses a
+ formal notation derived from that proposed in RFC #31 by Bobrow and
+ Sutherland. (The NETRJS format is also shown diagramatically in
+ Figure 2.)
+
+ The derived notation is both concise and easily readable, and we
+ recommend its use for Network documentation. The notation consists
+ of a series of productions for bit string variables whose names are
+ capitalized. Each variable name which represents a fixed length
+ field is followed by the length in bits (e.g., SEQNUMB(16)). Numbers
+ enclosed in quotes are decimal, unless qualified by a leading X
+ meaning hex. Since each hex digit is 4 bits, the length is not shown
+ explicitly in hex numbers. For example, '1'(8) and X'FF' both
+ represent a string of 8 one bits. The meta-syntactic operators are:
+
+ | :alternative string
+ [ ] :optional string
+ ( ) :grouping
+ + :catenation of bit strings
+
+ The numerical value of a bit string (interpreted as an integer) is
+ symbolized by a lower case identifier preceding the string expression
+ and separated by a colon. For example, in "i:FIELD(8)", i symbolizes
+ the numeric value of the 8 bit string FIELD.
+
+
+
+
+
+Braden [Page 10]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ Finally, we use Bobrow and Sutherland's symbolism for iteration of a
+ sub-string: (STRING-EXPRESSION = n); denotes n occurrences of STRING
+ EXPRESSION, implicitly catenated together. Here any n >= 0 is
+ assumed unless n is explicitly restricted.
+
+
+4. Protocol Definition
+
+ STREAM <-- (TRANSACTION = n) + [END-OF-DATA]
+
+ That is, STREAM, the entire sequence of data on a particular open
+ channel, is a sequence of n TRANSACTIONS followed by an END-OF-DATA
+ marker (omitted if the sender aborts the channel).
+
+ TRANSACTION <-- THEAD(72) + (RECORD = r) + ('0'(1) = f)
+
+ That is, a transaction consists of a 72 bit header, r records, and f
+ filler bits.
+
+ THEAD <-- X'FF' + f:FILLER(8) + SEQNUMB(16) + LENGTH(32) + X'00'
+
+ Transactions are to be consecutively numbered in the SEQNUMB field,
+ starting with 0 in the first transaction after the channel is (re-)
+ opened. The 32 bit LENGTH field gives the total length in bits of
+ the r RECORD's which follow. For convenience, the using site may add
+ f additional filler bits at the end of the transaction to reach a
+ convenient word boundary on his machine; the value f is also
+ transmitted in the FILLER field of THEAD.
+
+ RECORD <-- COMPRESSED | TRUNCATED
+
+ RJS will accept intermixed RECORD's which are COMPRESSED or TRUNCATED
+ in an input stream. RJS will send one or the other format in the
+ printer and punch streams to a given VRBT; the choice is determined
+ when CCN establishes a terminal id.
+
+ COMPRESSED <-- '2'(2) + DEVID(6) + (STRING = p) + '0'(8)
+
+ STRING <-- ('6'(3) + i:DUPCOUNT(5))
+ This form represents a string of i
+ consecutive blanks
+
+ ('7'(3) + i:DUPCOUNT(5) + TEXTBYTE(8))
+ This form represents string of i consecutive
+ duplicated of TEXTBYTE.
+
+
+
+
+
+
+Braden [Page 11]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ ('2'(2) + j:LENGTH(6) + (TEXTBYTE(8) = j))
+ This form represents a string of j
+ characters.
+
+ The first two alternatives above in the STRING production begin with
+ count bytes chosen to be distinguishable from the (currently defined)
+ Telnet control characters. In a Telnet stream, the third count byte
+ would not be needed. This is irrelevant to the current NETRJS, but
+ it would allow the use of compression within a Telnet data stream.
+
+ TRUNCATED <-- '3'(2) + DEVID(6) + n:COUNT(8) + (TEXTBYTE(8) = n)
+
+ DEVID(6) <-- DEVNO(3) + t:DEVTYPE(3)
+
+ DEVID identifies a particular virtual device, i.e.,
+ it identifies a channel. DEVTYPE specifies the type
+ of device, as follows:
+
+ t = 1: Output to remote operator console
+ 2: Input from remote operator console
+ 3: Input from card reader
+ 4: Output to printer
+ 5: Output to card punch
+ 6,7: Unused
+
+ DEVNO(3) identifies the particular device of type t
+ at this remote site; at present only DEVNO = 0 is
+ possible.
+
+ END-OF-DATA <-- X'FE'
+ Signals end of job (output) or job stack (input).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Braden [Page 12]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ APPENDIX B
+
+ Telnet for VRBT Operator Console
+
+ The remote operator console connections use the ASCII Telnet
+ protocol as in RFC #158. Specifically:
+
+ 1) The following one-to-one character mappings are used for the
+ three EBCDIC graphics not in ASCII:
+
+ ASCII
+ in Telnet NETRJS
+
+ | [vertical bar]
+ ~ [not-sign]
+ \ [cent-sign]
+
+ 2) Initially all Telnet control characters will be ignored. In the
+ future we will implement the Telnet Break facility to allow a
+ remote user to terminate extensive console output from a
+ command.
+
+ 3) An operator console input line which exceeds 133 characters
+ (exclusive of CR LF) will be truncated by NETRJS.
+
+ 4) NETRJS will accept BS to delete a character, and CAN to delete
+ the current line. The sequence CR LF terminates each input and
+ output line. HT will be translated to a single space in RJS.
+ All other ASCII control characters will be ignored. NETRJS will
+ translate the six ASCII graphics with no equivalent in EBCDIC
+ into the character question mark ("?") on input.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Braden [Page 13]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ APPENDIX C
+
+ Carriage Control
+
+ The carriage control characters sent in a printer channel by NETRJS
+ conform to IBM's extended USASI code, defined by the following table:
+
+ CODE ACTION BEFORE WRITING RECORD
+
+ blank Space one line before printing
+ 0 Space two lines before printing
+ - Space three lines before printing
+ + Suppress space before printing
+ 1 Skip to channel 1
+ 2 Skip to channel 2
+ 3 Skip to channel 3
+ 4 Skip to channel 4
+ 5 Skip to channel 5
+ 6 Skip to channel 6
+ 7 Skip to channel 7
+ 8 Skip to channel 8
+ 9 Skip to channel 9
+ A Skip to channel 10
+ B Skip to channel 11
+ C Skip to channel 12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Braden [Page 14]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ APPENDIX D
+
+ Network/RJS Command Summary
+
+Terminal Control and Information Command
+
+ SIGNON First command of a session; identifies VRBT by giving
+ its terminal id.
+
+ SIGNOFF Last command of a session; RJS waits for any data
+ transfer in progress to complete and then closes all
+ connections.
+
+ STATUS Outputs on the remote operator console a complete
+ list, or a summary, of all jobs in the system for
+ this VRBT, with an indication of their processing
+ status in the Model 91.
+
+ ALERT Outputs on the operator console the special "Alert"
+ message, if any, from CCN computer operator. The
+ Alert message is also automatically sent when the
+ user does a SIGNON, or whenever the message changes.
+
+ MSG Sends a message to CCN computer operator or to any
+ other RJS terminal (real or virtual). A message from
+ the computer operator or another RJS terminal will
+ automatically appear on the remote operator console.
+
+Job Control and Routing Commands
+
+ Under CCN's job management system, the default destination for output
+ is the input source. Thus, a job submitted under a given VRBT will
+ be returned to that VRBT (i.e., the same terminal id), unless the
+ user's JCL overrides the default destination.
+
+ RJS places print and punch output described for a particular remote
+ terminal into either an Active Queue or a Deferred Queue. When the
+ user opens his print or punch output channel, RJS immediately starts
+ sending job output from the Active Queue, and continues this queue is
+ empty. Job output in the Deferred Queue, on the other hand, must be
+ called for by job name, (via a RESET command from the remote opera-
+ tor) before RJS will send it. The Active/Deferred choice for output
+ from a job is determined by the deferral status of the VRBT when the
+ job is entered; the deferral status, which is set to the Active
+ option when the user signs on, may be changed by the SET command.
+
+
+
+
+
+
+Braden [Page 15]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ SET Allows the remote user to change certain properties
+ of his VRBT for the duration of the current session;
+
+ (a) May change the default output destination to be
+ another (real or virtual) RJS terminal or the central
+ facility.
+
+ (b) May change the deferral status of the VRBT.
+
+ DEFER Moves the print and punch output for a specified job
+ or set of jobs from the Active Queue to the Deferred
+ queue. If the job's output is in the process of
+ being transmitted over a channel, RJS aborts the
+ channel and saves the current output location before
+ moving the job to the Deferred Queue. A subsequent
+ RESET command will return it to the Active Queue with
+ an implied Backspace (BSP).
+
+ RESET Moves specified job(s) from Deferred to Active Queue
+ so they may be sent to user. A specific list of job
+ names or all jobs can be moved with one RESET
+ command.
+
+ ROUTE Re-routes output of specified jobs (or all jobs)
+ waiting in the Active and Deferred Queues for this
+ VRBT. The new destination may be any other RJS
+ terminal or the central facility.
+
+ ABORT Cancels a job which was successfully submitted and
+ awaiting execution or is current executing in the
+ Model 91. If he cancelled job was in execution, all
+ output it produced ill be returned.
+
+Output Stream Control Commands
+
+ BSP (BACKSPACE) "Backspaces" output stream within current sysout data
+ set. Actual amount backspaced depends upon sysout
+ blocking but is typically equivalent to a page on the
+ line printer.
+
+ CAN (CANCEL) (a) On an output channel, CAN causes the rest of the
+ output in the sysout data set currently being
+ transmitted to be omitted. Alternatively, may
+ omit the rest of the sysout data sets for the job
+ currently being transmitted; however, the remain-
+ ing system and accounting messages will be sent.
+
+
+
+
+
+Braden [Page 16]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ (b) On an input channel, CAN causes RJS to ignore the
+ job currently being read. However, the channel
+ is not aborted as a result, and RJS will continue
+ reading in jobs on the channel.
+
+ (c) CAN can delete all sysout data sets for specified
+ job(s) waiting in Active or Deferred Queue.
+
+ RST (RESTART) (a) Restarts a specified output stream at the begin-
+ ning of the current sysout data set or, option-
+ ally, at the beginning of the job.
+
+ (b) Marks as restarted specified job(s) whose
+ transmission was earlier interrupted by system
+ failure or user action (e.g., DEFER command or
+ aborting the channel). When RJS transmits these
+ jobs again it will start at the beginning of the
+ partially transmitted sysout data set or, option-
+ ally, at the beginning of the job. This function
+ may be applied to jobs in either the Active or
+ the Deferred Queue; however, if the job was in
+ the Deferred Queue then RST also moves it to the
+ Active Queue. If the job was never transmitted,
+ RST has no effect other than this queue movement.
+
+ REPEAT Sends additional copies of the output of specified
+ jobs.
+
+ EAM Echoes the card reader stream back in the printer or
+ punch stream, or both.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Braden [Page 17]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ +---------------------------------+
+ | RJS |
+ +---------------------------------+
+ ^ | ^ | |
+ | v | v v
+ +------------------------------+
+ CCN -- Server | |
+ | NETRJS |
+ +------------------------------+
+ ^ | ^ | |
+ | v | v v
+ +----------+ +---------------+
+ | TELNET | | Data Xfer | (server)
+ | Server | | 3rd Level |
+ +----------+ +---------------+
+ ^ | ^ | |
+---------------------|-----|----------|-----|-----|-----------------
+ O | O | | | |
+ p | p | C| C| C|
+ e I | e O| I h| O h| P h|
+ ARPA r n | r u| n a| u a| u a|
+ a p | a t| p n| t n| n n|
+ Network t u | t p| u n| p n| c n|
+ o t | o u| t e| u e| h e|
+ r | r t| l| t l| l|
+---------------------|-----|----------|-----|-----|-----------------
+ | | | | |
+ | V | V V
+ +----------+ +---------------+
+ | TELNET | | Data Xfer | (user)
+ | Server | | 3rd Level |
+ +----------+ +---------------+
+ Remote ^ ^ | |
+ / "Virtual | | |
+ User / Remote Batch | V V
+ / Terminal" +------------------+
+ / | |
+ V | NETRJS |
+ +---------+ | User |
+ / |<------------->| Process |
+ / Console | | |
+ +____________| +------------------+
+ ^ | |
+ | V V
+ (file) (file) (file)
+
+
+ FIGURE 1. SCHEMATIC OF NETRJS OPERATION
+
+
+
+Braden [Page 18]
+
+RFC 189 Interim NETRJS Specifications July 1971
+
+
+ +------+ +------+ +-----------+ +---------------------+
+TRANSACTION <--> | X'FF'| |Filler| |Sequence | | Data Length |
+ | | | Count| | Number | | in bits |
+ +------+ +------+ +-----------+ +---------------------+
+ +------+
+ | X'00'| { RECORD } *
+ | |
+ +------+
+
+ <---- n text bytes ------>
+ +--+-----+ +--------+ +--------+ +--------+
+TRUNCATED <--> |11|Devid| | n (8) | | Text | . . . | Text |
+RECORD | | (6) | | | | (8) | | (8) |
+ +--+-----+ +--------+ +--------+ +--------+
+
+
+ / \
+ | +---+----+ | *
+ | |110| n | (n blanks) |
+ | | |(5) | |
+ | +---+----+ |
+ | |
+ +--+-----+ / +---+----+ +--------+ |
+COMPRESSED<--> |10|Devid|< |111| n | |Char- | (n replications |
+RECORD | | (6) | \ | |(5) | | acter | of "Character") |
+ +--+-----+ | +---+----+ +--------+ |
+ | |
+ | +--+-----+ +--------+ +--------+ |
+ | |10| n | | Text | . . .| Text | |
+ | | | (6) | | (8) | | (8) | |
+ | +--+-----+ +--------+ +--------+ |
+ \ /
+ +------+
+ | X'00'|
+ | |
+ +------+
+
+
+ FIGURE 2. DATA TRANSFER PROTOCOL IN NETRJS
+
+
+
+
+
+ [ This RFC was put into machine readable form for entry ]
+ [ into the online RFC archives by Tony Hansen 11/98 ]
+
+
+
+
+
+Braden [Page 19]
+