RFC 216

Telnet Access to UCSB's On-Line System

๐Ÿ“… published September 1971, from ietf

RFC 216 ๐ŸŽ€ Telnet Access To UCSB's Online System

okay bestie, RFC 216 is from September 1971, written by J. White at the UCSB Computer Research Lab. It's filed under categories D.3 and G.3, and it's NIC number 7546. The header doesn't list anything it obsoletes or updates, so there's no drama there ๐Ÿ’…


I. Motivation โœจ

okay so the NWG adopted a Telnet protocol, and UCSB built a teletype-compatible interface to their Online System (OLS) that follows it ๐Ÿ–ฅ๏ธ This Server Telnet answers connection requests that User Telnets send to socket number 1, host address 3. OLS isn't really a teletype system, and its biggest strength is its graphical display stuff. still, enough of it survives the Telnet transformation to make the whole thing worth building ๐Ÿ’œ

II. Limitations ๐Ÿ™ˆ

ngl, this part is a little sad. In this Telnet-style version of OLS, all curvilinear display the user makes on Levels II and III, Real and Complex, gets ignored by the System, so it never comes back through the Net. Same deal for special user-created characters. You can still build and store them, but their display gets suppressed, both while you're making them and later when you invoke them from the Type level ๐Ÿ˜ญ

Everything else the System displays gets relayed to you intact, though sometimes with a stylistic transformation first. For example, Greek characters show up as lower-case a-z. All of these transformations are described in detail in this document ๐ŸŒˆ

Then there's the fixed-screen stuff. Some parts of the System (the operators that edit user programs are the main ones) assume you have a fixed-screen display, and they act weird in a Telnet environment. On a fixed screen, the System can "remember" where a chunk of text was and jump back to underscore it. But Telnet's virtual teletype is a continuous medium that marches forward relentlessly, so that trick breaks. The underscoring doesn't get relocated. It just shows up on the current line, starting in the next available character frame ๐Ÿฆ‹

OLS normally assumes you have the specially designed double keyboard from Figure 1. This document defines conventions that let a Telnet user simulate that keyboard. In particular, it gives you a way to designate keys on the upper, or operator, keyboard โŒจ๏ธ

Figure 1. OLS Keyboard. [Please view the PDF version of this RFC.]

III. System Documentation ๐Ÿ“š

This document has three purposes:

  1. to describe the means by which a Telnet user simulates an OLS keyboard,
  2. to describe the transformations applied to output generated by the System, and
  3. to enumerate those aspects of the System which are unique to or behave differently for Network (Telnet) users.

Just so we're clear, this is not a user's manual for OLS ๐Ÿ™…โ€โ™€๏ธ There is one, and it's on file with the NIC. There should also be a copy in the NIC collection at each Network site, and you should check with your Station Agent. The manual is titled "UCSB On-Line System Manual" [NIC 5748], and its contents are current as of 1 January 71. A revision is being prepared and will be distributed when it's ready. Two tutorial manuals for OLS subsystems are coming too: one for MOLSF (Mathematically-Oriented Language Single-Precision Floating-Point) and one for COL (Card Oriented Language). COL is already published and being sent to the NIC for distribution, and MOLSF is nearly finished ๐Ÿ“–

The third OLS subsystem, NET, has already been documented in two RFCs, which is so iconic of it ๐Ÿ”ฅ They are "Network On-Line Operators" [21 April 71, RFC 121, NIC 5833] and "A User Telnet--Description of an Initial Implementation" [9 August 71, RFC 206, NIC 7176]. NET currently includes operators for system-call-level interaction with UCSB's NCP, a User Telnet, and an operator (invoked by ID on Level II) that returns the status of Network hosts ๐Ÿงš

If you have questions, the Computer Center staff are happy to help Network users ๐Ÿซถ There's an OLS consultant at (805) 961-4044. Questions about OLS, including stuff specific to using the System over the Network, can go to Jim White, UCSB's Technical Liaison, at (805) 961-3454. If he's not around, you can leave a message at the Computer Center Office at (805) 961-2261.

IV. System Access ๐ŸŽ€

the Network user is encouraged to explore the System, and you're invited to do so with these accounting parameters:

User Number: 196
Id Number: 57372
User Name: ARPA
Problem Name: (affiliation)-(name)
               in 16 characters or less
               (e.g., UCSB-White)

this kind of use isn't billed ๐Ÿค‘ Production users are asked to set up their own accounts with the Computer Center at (805) 961-2261, and those accounts are billed according to the rate structure in effect at the time.

V. Software Structure ๐Ÿ’…

This document describes a Network front-end to the Online System. It's logically separate from OLS itself. The front-end is called NETOLS from here on. NETOLS always answers connection requests directed to socket 1. When a Network user contacts it, NETOLS does the Network work needed to set up a duplex connection with that user. The number of these duplex connections, and so the number of Network users at once, is capped by an assembly parameter whose current value is five ๐Ÿ‘‘

Before the Network connection is set up, NETOLS gets a port into OLS for the user. There are sixty-four of these ports, and local, dial-up, and Network users all share them. If none are free, NETOLS aborts the connection sequence ๐Ÿ˜ญ

Once a port is secured and the Network connection is up, NETOLS pushes the _SYST_ key for you by sending OLS the 8-bit code for that key. That starts a login sequence, and you get these lines:

UCSB ON-LINE SYSTEM
ENTER USER NUBMER

reply with your user number. From that moment until the Network connection ends, NETOLS's sole function is being an interpreter. It takes your input and makes it meaningful to OLS, and it's also the point where curvilinear and special-character display gets thrown out ๐Ÿ™ˆ

When you break your Network connection to NETOLS, NETOLS logs you out of OLS for you if you haven't already. It does this by pushing _SYST_ _DOWN_, the same way it pushed the initial _SYST_. Then the OLS port you were using is released and goes back to the pool for other users ๐Ÿฆ‹ You can also log out of OLS and back on without breaking the Network connection. NETOLS doesn't care, since that action is transparent to it and it doesn't attach any special meaning to the key sequence that does it.

VI. Virtual OLS Keyboard โŒจ๏ธ

A major job of NETOLS is mapping between Telnet characters and the keys on an OLS keyboard (Figure 1). The lower, or operand, portion is pretty easy, since it's basically a standard typewriter keyboard ๐Ÿ’– Most of its keys map one-for-one onto Telnet characters. Upper-case letters map to letters, and lower-case letters and punctuation map to themselves. Every one-for-one mapping is in Figure 2. Here's how one line of that figure reads:

For ['half arrow' - see the PDF version of this RFC]:

The key labeled ['half arrow'] (meaning logical not) on the lower
portion of an OLS keyboard is struck by causing the user's User
Telnet to transmit '~' (tilde).

Now, the lower keys that aren't in Figure 2, plus all the keys on the upper keyboard, are what this doc calls non-standard keys. You type these in a specific way. Each one gets a character string called its name. Usually the name is the same as its label in Figure 1. For example, the name of the _SIN_ key is 'SIN'. (In the OLS User's Manual, upper-keyboard keys are shown by underscoring their labels, so you can tell _SIN_ apart from the three keys 'SIN'. Tricky, I know ๐Ÿ˜ญ)

Here's the rule: every non-standard key is struck by typing its name (or any unique abbreviation of it), preceded by a special prefix character and followed by a space ๐ŸŽ€

NETOLS reads the prefix, the name, and the space, then turns them into a single 8-bit code and forwards that to OLS ๐Ÿงš

The default prefix is the semi-colon (';'). It was picked because touch typists rest on it, so it's one of the home keys ๐Ÿ’œ You can change the prefix to any character listed in Figure 2. The procedure for doing that is in Section VII-B. If you ever need to send the prefix character straight through NETOLS to OLS, just type it twice in a row. So with the default prefix, ';;' turns into one semi-colon and gets relayed to OLS ๐Ÿซถ

Every non-standard key name is listed in Figure 3. Here's how one line of that figure reads:

For _SIN_:

They key denoted _SIN_ in the OLS User's Manual (the trigonometric
function sine) is named 'SIN', and hence is struck by typing
'SIN', preceded by the prefix and followed by a space.

so yeah, that's the first chunk of the spec, and the keyboard is set up โœจ (to be continued in part 2 ๐Ÿ’œ)

Okay so, with the default prefix ; in effect, SIN gets struck as ;SIN_ (the _ stands in for a space in these examples) ๐Ÿ’… Bestie, you can also shorten it to ;SI_ if you want, because the key is still uniquely identified ๐Ÿฆ‹ But going all the way down to ;S_ is a hard no ๐Ÿ™…โ€โ™€๏ธ A lone S can't tell apart all the keys whose names start with S. And you can type key names in upper or lower case, whatever vibe you're feeling โœจ

As you type each character of a non-standard key's name, NETOLS checks it against its table of key names ๐Ÿ‘€ If what you've typed so far can't possibly become a real name, that latest character gets ignored and a ? gets echoed back ๐Ÿ™ˆ So ;SJIN_ gets accepted as _SIN_. The sneaky J gets dropped with a question mark, and then JN_ goes through fine ๐Ÿ’– If you hit the terminating space and no single key is uniquely identified, you get a ? and the space gets ignored. So ;S_I_ is recognized as _SIN_, because the first space is

Figure 2. Keys With One-for-One Mappings

To Push         (OLS Explanation)        Send      (Telnet Explanation)

0-9             Decimal Digits           0-9         Decimal Digits
A-Z             Alphabetics              A-Z         UC Alphabetics
_-5             Greek Characters         a-z         LS Alphabetics
!               Exclamation Mark          !          Exclamation Mark
+               Plus Sign                 +          Plus Sign
_               Underscore                _          Underscore
-               Minus Sign                -          Minus Sign
@               Commercial At             @          Commercial At
/               Slash                     /          Slant
#               Number Sign               #          Number Sign
'               Apostrophe                '          Apostrophe
&               Ampersand                 &          Ampersand
$               Dollar Sign               $          Dollar Sign
*               Asterisk                  *          Asterisk
%               Percent                   %          Percent
=               Equal Sign                =          Equal Sign
TAB             Horizontal Tab           HT          Horiz. Tab. (_[)
:               Colon                     :          Colon
;               Semi-Colon                ;          Semi-Colon
[               Left Bracket              [          Left Bracket
]               Right Bracket             ]          Right Bracket
(               Left Parenthesis          (          Left Parenthesis
)               Right Parenthesis         )          Right Parenthesis
<               Less Than                 <          Less Than
>               Greater Than              >          Greater Than
,               Comma                     ,          Comma
"               Quotation Marks           "          Quotation Marks
?               Question Mark             ?          Question Mark
[half arrow]    Logical Not               ~          Tilde
|               Logical Or                |          Vertical Line
BACK            Backspace              BS, DEt       Backspace/Rubout
RETURN          Carriage Return           CR         Carr. Return (_M)
SPACE           Space                     SP         Space

Figure 2. Keys With One-for-One Mappings

Wait, that caption was a mistake on my part. The figure caption belongs below the table, so the lines above are the caption for the first table. Let me fix that and carry on properly from here ๐ŸŒธ

Figure 2. Keys With One-for-One Mappings

To Push          (OLS Explanation)          The Key Name Is

[circle .]           Multiply                       *          1
[circle +]           Add                            +
[circle -]           Subtract                       -
RETURN               Carriage Return                .
[circle /]           Divide                         /
L0                   Level 0                        0
LI                   Level I                        1
L II                 Level II                       2
L III                Level III                      3
L IV                 Level IV                       4
L V                  Level V                        5
L VI                 Level VI                       6
L VII                Level VII                      7
[circle +]           Add                            ADD        2
ARC                  Argument                       ARG
ATAN                 Arc Tangent                    ATAN
BACK                 Backspace                      BACK       3
CASE                 Case                           CASE
[cent sign]          Cent                           SignCENT
CLR                  Clear Tab                      CLEAR
CMPLX                Complex                        CMPLX
CON                  Contract                       CON
CONJ                 Conjugate                      CONJ
CONV                 Convolve                       CONV
COS                  Cosine                         COS
CTX                  Context                        CTX
DEL                  Delta                          DEL
DIFF                 Forward Difference             DIFF
DISPLAY              Display                        DISPLAY
[circle /]           Divide                         DIV        4
DWN                  Down                           DOWN
ENL                  Enlarge                        ENL
ENTER                Enter                          ENTER
ERASE                Erase                          ERASE
ESCAPE               Escape                         ESCAPE
EVAL                 Evaluate                       EVAL
EXP                  Exponentiate                   EXP
                     NETOLS Command                 FULLDUPLEX 5
                     NETOLS Command                 HALFDUPLEX
                     NETOLS Command                 HELP
ID                   Identity                       ID
INV                  Invert                         INV
[down arrow]         Line Feed Down                 LFDN
[up arrow]           Line Feed Up                   LFUP

Figure 3. Keys Represented As Strings

To Push           (OLS Explanation)        The Key Name Is

LIST                 List                         LIST
LOAD                 Load                         LOAD
LOG                  Logarithm                    LOG
                     NETOLS Command               LOGOUT
LS                   Left Shift                   LS
MAX                  Maximum                      MAX
MOD                  Modulus                      MOD
[circle .]           Multiply                     MULT         6
NEG                  Negate                       NEG
[half arrow]         Logical Not                  NOT          7
|                    Logical Or                   OR           8
PRED                 Predicate                    PRED
                     NETOLS Command               PREFIX
PROD                 Running Product              PROD
PT                   Point                        PT
PWR                  Power                        PWR
REAL                 Real                         REAL
REFL                 Reflect                      REFL
REPT                 Repeat                       REPT
RESET                Reset                        RESET
RETURN               Carriage Return              RETURN       9
RS                   Right Shift                  RS
0-9                  Superscript 0-9              S0-S9
SEL                  Select                       SELECT
SET                  Set Tab                      SET
                     NETOLS Command               SHIFT
SIN                  Sine                         SIN
SORT                 Sort                         SORT
SQ                   Square                       SQ
SQRT                 Square Root                  SQRT
                     NETOLS Command               STATE
STORE                Store                        STORE
SUB                  Substitute                   SUB
[circle -]           Subtract                     SUBTRACT     10
SUM                  Running Sum                  SUM
SYST                 System                       SYST
TEST                 Test                         TEST
TYPE                 Type                         TYPE
                     NETOLS Command               UNSHIFT
UP                   Up                           UP
USER                 User                         USER

Figure 3 (cont'd) Keys Represented As Strings

  1. Alternate names for [circle .], [circle +], [circle -], RETURN, and [circle /] are 'MULT', 'ADD', 'SUBTRACT', 'RETURN', and 'DIV', respectively. RETURN can also be represented as the single character CR (carriage return), as indicated in Figure 2.
  2. An alternate name for [circle +] is '+'.
  3. Alternates for BACK are the single characters BS (backspace) and DEL (rubout), as indicated in Figure 2.
  4. An alternate name for [circle /] is 'DIV'.
  5. NETOLS commands are explained in Section VII.
  6. An alternate name for [circle .] is 'MULT'.
  7. An alternate for '[half arrow]' is the single character '~' (tilde), as indicated in Figure 2.
  8. An alternate for '|' is the single character '[2 vertical lines]' (vertical line), as indicated in Figure 2.
  9. An alternate name for RETURN is '.'. RETURN can also be represented as the single character CR (carriage return), as indicated in Figure 2.
  10. An alternate name for [circle -] is '-'.

Notes for Figure 3.

Ignored (and a '?' echoed, indicating that 'S' alone is ambiguous).

At any point in the entry of a key name, the user can type either Altmode (ESC) or '?' ๐Ÿ™Œ NETOLS then figures out whether the characters already typed uniquely specify a key. If they do, it echoes the rest of that key's name and treats it as entered by the user ๐Ÿ’… A space typed afterward pushes the indicated key. If no single key is uniquely specified, NETOLS echoes Bel, which makes a bell run on many terminals ๐Ÿ”” It then waits for more of the key name from the user.

If, after at least one character of the key name has been entered and accepted by NETOLS (and before the terminating space is typed), the prefix is typed a second time, NETOLS discards all the characters already entered for that name. So ;CO;SIN_ is interpreted as _SIN_ ๐Ÿซถ If a carriage return is typed in that same context, the initial prefix gets discarded too. That means ;CO%S (where % denotes carriage return) is interpreted as the lower-keyboard key 'S' ๐Ÿงš


VII. NETOLS Commands ๐Ÿ’œ

A bunch of commands to LETOLS are defined, and this section describes all of them โœจ Each command is formatted the same way as the non-standard keys, which is why the command keywords show up in Figure 3. All of the conventions from Section VI apply to entering commands too. Just know that these commands are processed by NETOLS, not OLS, and they're only defined for Network users of OLS ๐ŸŒ

A. HELP ๐Ÿงš

The HELP command (invoked with ;HELP_ if ; is the prefix) shows the user the third column of Figure 3 ๐ŸŒธ It lists the names of all non-standard keys and the keywords for all defined NEOLS commands, in their collating sequence, on the user's virtual teletype ๐Ÿ“œ

B. PREFIX ๐Ÿฆ‹

Issuing the PREFIX command makes the next character typed become the prefix, provided it's one of the ones listed in Figure 2 ๐Ÿ’– So ;PREFIX_@ makes @ the prefix, and @PREFIX_; brings back the default situation ๐ŸŒˆ

C. SHIFT and UNSHIFT

okay so SHIFT is basically a vibe switch ๐ŸŽ€ It messes with lines 2 and 3 of Figure 2 (that chart from earlier, bestie ๐Ÿ’…). Once you send SHIFT, every upper-case letter you type comes out as a Greek character instead of a regular letter, and lower-case letters come out as regular letters instead of Greek. This is lowkey so useful if your User Telnet sends lower-case by default and you'd have to hold a shift key just to get capitals ๐Ÿซถ

UNSHIFT undoes SHIFT, no drama โœจ

D. FULLDUPLEX and HALFDUPLEX

FULLDUPLEX makes NETOLS echo back every character you type ๐Ÿฆ‹ HALFDUPLEX turns that echo off again. Half-duplex is the default, so you're already there, bestie ๐Ÿ’œ

E. STATE

STATE shows your current prefix, your mode of operation (HALFDUPLX or FULLDUPLEX), and your case convention (SHIFT IS ON or SHIFT IS OFF) right on your virtual teletype. It looks like this ๐Ÿงš

      PREFIX IS;
      HALFDUPLEX
      SHIFT IS OFF

F. LOGOUT

LOGOUT logs you out of OLS (that means _SYST_ _DOWN_ gets pushed) and cuts your Network connection to NETOLS. About three seconds pass between those two things ๐Ÿ’€ bye bye ๐Ÿ‘‹


VIII. OLS Display ๐ŸŒˆ

NETOLS hides everything except alphameric display before it reaches you ๐Ÿ™ˆ Alphameric display gets translated into the Telnet character set using Figures 4 and 5. Figure 4 covers every OLS display character with a one-for-one mapping. Here's how one line reads:

For '[half harrow]'

So the logical not, shown as '[half arrow]' on an OLS terminal, becomes '~' (tilde) in Telnet. Iconic ๐Ÿ’…

Alphabetics become upper-case alphabetics, and Greek characters become lower-case alphabetics. Numerics stay numerics, and a whole mix of punctuation maps to itself โœจ Carriage control characters get mapped too: line feed down turns into LF, TAB into HT, BACK into BS, and so on. Line feed up gets suppressed, and ERASE is represented as Bel ๐Ÿ””

Figure 5 is for the OLS display characters that turn into strings of Telnet characters. These strings are mostly stylistic takes on symbols that are peculiar to OLS. For example, the _ADD_ key normally shows up in List mode as '[circle +]', and in this Telnet implementation '(+)' is the attempt to capture that graphic ๐Ÿซถ Superscripts become underscored numerics, and carriage return becomes CR LF. RS is not really represented, because on an OLS display device it moves the beam to the upper left corner of the screen. It's treated as carriage return instead ๐Ÿซ 

To Display       (OLS Explanation)  OLS Sends  (Telnet Explanation)

(The figure captions and tables are kept exactly as in the original, so here they are in full.)


IX. Instructing a User Telnet

For local users, all echoing _that's done at all_ is done by OLS, so the terminal never echoes. In general, OLS does not echo the user's input. There are exceptions to this rule, but they are relatively few and mostly show up on the SYST level. Upper keyboard keys are never echoed except in List mode ๐ŸŽ€ The Network user is advised to set their telnet to full-duplex mode, meaning echo nothing. The FULLDUPLEX command in NETOLS exists because it can exist, but its use is not recommended ๐Ÿ™ƒ

Here's the full chart of mappings:

To Display       (OLS Explanation)  OLS Sends  (Telnet Explanation)
0-9                Decimal Digits     0-9        Decimal Digits
_-Z                Alphabetics        A-ZUC      Alphabetics
_-5                Greek Characters   a-z        LC Alphabetics
!                  Exclamation Mark   !          Exclamation Mark
+                  Plus Sign          +          Plus Sign
_                  Underscore         _          Underscore
-                  Minus Sign         -          Minus Sign
@                  Commercial At      @          Commercial At
/                  Slash              /          Slant
#                  Number Sign        #          Number Sign
'                  Apostrophe         '          Apostrophe
&                  Ampersand          &          Ampersand
$                  Dollar Sign        $          Dollar Sign
*                  Asterisk           *          Asterisk
%                  Percent            %          Percent
=                  Equal Sign         =          Equal Sign
TAB                Horizontal Tab.    HT.        Horiz. Tab (_I)
:                  Colon              :          Colon
;                  Semi-Colon         ;          Semi-Colon
[                  Left Bracket       [          Left Bracket
]                  Right Bracket      ]          Right Bracket
(                  Left Parenthesis   (          Left Parenthesis
)                  Right Parenthesis  )          Right Parenthesis
<                  Less Than          <          Less Than
>                  Greater Than       >          Greater Than
,                  Comma              ,          Comma
"                  Quotation Marks    "          Quotation Marks
?                  Question Mark      ?          Question Mark
[half arrow]       Logical Not        ~          Tilde
|                  Logical Or         |
                                      |          Vertical Line
BACK               Backspace          BS         Backspace
SPACE              Space              SP         Space
ENL/[up arrow]     Line Feed Up
CON/[down arrow]   Line Feed Down     LF         Line Feed ([up arrow]J)
_                  List Mode Space    _          Underscore
[shaded rectangle] List Mode Rubout   X          Upper-case X
_                  List Mode Pointer  _          Underscore
BREAK              Break              SP         Space
ERASE              Erase              BEL        Bell (_G)

             Figure 4. Characters With One-for-One Mappings

To Display          (OLS Explanation)              OLS Sends

:                     Post List                  (:)
[circle +]            List Mode Add              (+)
[circle -]            List Mode Subtract         (-)
[circle .]            List Mode Multiply         (*)
[circle /]            List Mode Divide           (/)
[arrow]               List Carriage Return       ([2 vertical lines])
RETURN                Carriage Return            CR LF
RS                    Reset to Upper Left        CR LF
[cent sign]           Cent Sign                  C BS [2 vertical lines]
0-9                   Superscript 0-9            0 BS _
                                                  -
                                                 9 BS _

              Figure 5. Characters Which Map Into Strings

OLS is meant to be used in character-at-a-time mode, so the user should set their User Telnet that way too. For users who only have a line-at-a-time mode, the end-of-line character should not be sent to NETOLS ๐Ÿ’…

NETOLS quietly flushes every Telnet control character it spots in the input stream, no comment ๐Ÿค Characters in the Telnet character set that mean nothing to NETOLS get echoed as '?' and then discarded. The only exceptions are LF (line feed) and NUL, which get flushed without comment too.


X. Examples ๐Ÿ“

A. LOGON

Here's the dialogue that logs a user onto OLS, using the user number from Section IV ๐ŸŒธ

TELNET ENTRY            OLS QUERY/RESPONSE

                                UCSB ONLINE SYSTEM
                                ENTER USER NUBMER (196)
196%                            ID NUMBER=
57372%                  USER NAME= (ARPA)
ARPA%                   JOB NAME= (UCSB-WHITE)
UCSB-WHITE%             AUTOSAVE CODE = integer
MOLSF %                 LOAD (MOLSF)
                                FILE LOADED

In this and the examples that follow, '%' stands for CR (carriage return). Entries echoed by OLS are in parentheses above. Swap in your own affiliation and name for 'UCSB-WHITE' โœจ This procedure loads the math subsystem of OLS. Want COL or NET instead? Just swap in that name for 'MOLSF' ๐Ÿฆ‹ To load a different subsystem (say COL) after you've logged in:

TELNET ENTRY                    OLS QUERY/RESPONSE
;SYST_                          WORK AREAS UPDATED
;LOAD _COL%                     LOAD (COL)
                                        FILE LOADED

Again, '_' stands for a space, not an underscore ๐Ÿ™ˆ

B. NEWTOWN-RAPHSON SQUARE ROOT APPROXIMATION

A simple user program can approximate the square root of a number N with the Newton-Rapshon iteration procedure ๐Ÿงฎ It gets the (k+1)th approximation from the kth using this algorithm:

X k+1= (xk+n/kk)/2

The following entries build the user program:

;LIST_)TYPE_%ENTER_N
;1_;REAL_;LOAD_;ENTER_;STORE_N
;TYPE_% ENTER_FIRST_GUESS
;1_;LOAD_;ENTER_;STORE_X
;TYPE_%#_OF_INTERATIONS?
;0_;LOAD_;ENTER_;STORE_N
;1_;REPT_(;LOAD_N ;/_X;+_X ;/_2
        ;STORE_X ; DISP_%/_X ;+_X ;/_2
;LIST_;STORE_;USER_;1_;SQRT_

To display the user program, enter:

;USER_;DISP_;SQRT_

When it runs, the program asks the user for the number N they want the square root of, an initial guess, and how many iterations to perform ๐Ÿ’– It then computes and displays the results of each iteration, and then calls itself so you can compute a second square root ๐Ÿ‘‘ Here's how it runs:

TELNET ENTRY                    OLS QUERY/RESPONSE

;USER_;1_;SQRT_                 ENTER N
3 ;ENTER_                               ENTER FIRST GUESS
1 ;ENTER_                               #OF ITERATIONS?
4 ;ENTER_                               2.       +00
                                        1.75     +00
                                        1.73214+00
                                        1.73205+00

                                        ENTER N
                etc.

C. Remote Job Entry

A file of card images can be built with the help of the COL subsystem of OLS ๐ŸŽ€ and then submitted as a batch job. Assuming COL is loaded, these entries build a card file that invokes the Fortran compiler:

;2_//jobname_JOB_(acct#,name , , , , , ,T) ; STORE_
//_EXEC_FORTGCLG ; STORE_
//FORT.SYSIN_DD_* ; STORE_
source-statement-1 ;STORE_

                ...
source-statement-N ; STORE_
/* ; STORE_

To display the completed file, type:

        ;3_;DISP_%

To submit the file, type:

        ;4_;SUB_%

To watch for it while it's executing, type:

        ;DISP_J%%%...

When execution is complete, you can pull up the 'printed' output with this dialogue ๐Ÿงš

TELNET ENTRY                    OLS QUERY/RESPONSE

;CMPLX_;LOAD_                   UNIT = (2314)
2314%                                   VOL=SER= (MVT180)
MVT180%                         DSNAME= (RJEOUT)
RJEOUT%                         MEMBER= (jobname)
Jogname%                                NOW LOADING
                                        FILE LOADED

Then you can examine the output by entering:

    ;2_;DISP_1%%%...
NOTE: Text within brackets describes non-ASCII characters that were part of the original document. Please see the PDF file for the original representation. ๐Ÿ“„๐Ÿ’œ
๐Ÿ“ฆ where this page comes from