tutes-dump/site-tutorials/cdc6500.html

493 lines
19 KiB
HTML

<style type="text/css">
@import url('http://sdf.org/tutorials/tutorials.css');
.bbg {background-color: black; border-color: black;}
</style>
<h1>CDC 6500 Survival Guide</h1>
<p>The <a href="https://en.wikipedia.org/wiki/CDC_6000_series">CDC
6000 series</a> was a family of mainframe computers designed by
Seymour Cray and James E. Thornton and manufactured by Control Data
Corporation in the 1960s. The computers in the series were extremely
fast for their time and considered to be the first
supercomputers.</p>
<p>The <a href="http://www.livingcomputermuseum.org/">Living Computer
Museum</a> has recently refurbished and put on-line a
<a href="http://www.livingcomputermuseum.org/The-Collection/Exhibit-Hall.aspx#Mainframe">CDC
6500 supercomputer</a>. The system was originally used at Purdue
University from 1967 to 1989.</p>
<p>This document is a short guide for those interested in exploring the 6500's interactive command environment.</p>
<em>(<strong>Note:</strong> The author worked briefly with a CDC NOS computer
30 years ago, but all information below is based on study of the
referenced manuals and experimentation on LCM's
6500. The author apologizes for any inaccuracies and welcomes
corrections and improvement suggestions.)</em>
<h2 id="toc">Table of Contents</h2>
<ul>
<li><a href="#section-1">Connecting</a></li>
<li><a href="#section-2">Subsystems</a></li>
<li><a href="#section-3">File System</a></li>
<li><a href="#section-4">File Commands</a></li>
<li><a href="#section-5">Programming Commands</a></li>
<li><a href="#section-6">Text Editor</a></li>
<li><a href="#section-7">Messaging</a></li>
<li><a href="#section-8">Other System Commands</a></li>
<li><a href="#section-9">Disconnecting</a></li>
<li><a href="#section-10">File Sharing</a></li>
<li><a href="#section-11">File Transfer</a></li>
<li><a href="#references">References</a></li>
<li><a href="#plan">Future Improvements</a></li>
</ul>
<h2 id="section-1">Connecting</h2>
<ol>
<li>Start your telnet client and connect to host <code>tty.livingcomputermuseum.org</code> port <code>6500</code>.</li>
<li>After the <code>USER NUMBER</code> prompt enter your user name (your input will be concealed by the row of
Xs). You may need to type more slowly than you are used to with
other systems.</li>
<li>After the <code>PASSWORD</code> prompt type your password (your input will be concealed by the row of
Xs).</li>
<li>After the <code>RECOVER /SYSTEM:</code> prompt enter a
subsystem or other command. (Enter <code>RECOVER</code> to recover previously interrupted
session.)</li>
</ol>
<pre><samp>
[CONNECTED TO MUX6676 LINE 1]
16/08/24. 20.43.27.
LIVING COMPUTER MUSEUM 6500. NOS 1.3-485/11.
USER NUMBER
XXXXXXXXXXXXXXX &larr; 2.
PASSWORD
XXXXXXXX &larr; 3.
PORT : 5, TTY
RECOVER /SYSTEM:
</samp></pre>
<h2 id="section-2">Subsystems</h2>
<p>The 6500's Network Operating System (NOS) time-sharing system, the
Interactive Facility (IAF), includes a number of subsystems, similar
to applications on other computer systems, to provide various
functions to the user. Subsystems can be selected explicitly by
command (see below), or automatically when you select a primary
file.</p>
<p>Although the Null subsystem provides a general-purpose environment
with file and system utilities, in most cases you can move directly
between subsystems as needed without going through the Null
subsystem.</p>
<table>
<thead><tr><th>Subsystem</th><th>Function</th></tr></thead>
<tbody>
<tr>
<td><code>ACCESS</code></td>
<td>Messaging with other users connected to the 6500. </td>
</tr>
<tr>
<td><code>BASIC</code></td>
<td>Interactive BASIC language programming environment. </td>
</tr>
<tr>
<td><code>BATCH</code></td>
<td>Create and run batch jobs for non-interactive programs.</td>
</tr>
<tr>
<td><code>EXECUTE</code></td>
<td>Execute previously compiled programs.</td>
</tr>
<tr>
<td><code>FORTRAN</code></td>
<td>Interactive Fortran language programming environment. Uses FORTRAN Version 5 compiler.</td>
</tr>
<tr>
<td><code>FTNTS</code></td>
<td>Interactive Fortran language programming environment. Uses FORTRAN Extended Version 4 compiler.</td>
</tr>
<tr>
<td><code>NULL</code></td>
<td>A general-purpose environment for working with files and system status and settings (although most general commands are available in other subsystems as well). </td>
</tr>
</tbody>
</table>
<h2 id="section-3">File System</h2>
<p>A basic understanding of the 6500 file system is necessary to use
most IAF comands.</p>
<dl>
<dt><strong>Permanent files</strong></dt>
<dd>Permanent files are preserved by the system from their
creation until their deletion by user command. Each permanent file
is owned by a single user and is normally accessible only by its
owner, though it is possible to make files accessible by other
users as well.
<p>Two types of files are supported:</p>
<dl>
<dt><strong>Direct access</strong></dt>
<dd>Used for random access and database applications.</dd>
<dt><strong>Indirect access</strong></dt>
<dd>Common sequential access files, including program source
files.</dd>
</dl>
</dd>
<dt><strong>Temporary files</strong></dt>
<dd>Whenever an indirect access file is accessed, or a new indirect
access file created, the system first makes a temporary copy of the
file, to which are directed all references and updates to the
file. The temporary file must be saved in order for changes to be
applied to the permanent file. Unsaved changes will be discarded at
the end of the user's session.
<p>A temporary file is <em>not</em> created when a <em>direct
access</em> file is opened. Changes made to a direct access file
are immediately applied to the permanent file.</p></dd>
<dt><strong>Primary file</strong></dt>
<dd>The primary file is the temporary file, usually a program
source file, that a user is viewing, modifying, or executing at a
given time. Although a user session may simultaneously open
multiple temporary files, a given user may have only one primary
file at a time.
<p>The currently selected primary file automatically determines
the user's active subsystem. When a new indirect access file is
saved as a permanent file for the first time, the file system
records the active subsystem at the time. Then when the file is
selected as primary sometime later, the system automatically
activates the original subsystem.</p></dd>
<dt><strong>Local files</strong></dt>
<dd>Local files are the set of temporary files and direct access
files (permanent files) currently open by a particular job or user
session.</dd>
</dl>
<p>File names my be up to seven alphanumeric (upper-case) characters
and may not begin with a numeric character. The following file
names are reserved by the system:
<ul>
<li>INPUT</li>
<li>OUTPUT</li>
<li>PUNCH</li>
<li>PUNCHES</li>
<li>P8</li>
<li>SCR</li>
<li>SCR1</li>
<li>SCR2</li>
<li>SCR3</li>
<li>SCR4</li>
<li>ZZZZZ*</li>
</ul>
</p>
<h2 id="section-4">File Commands</h2>
<!-- Document commands: catlist, ...,lo=f, dayfile, edit, enquire,
...,f, get, pack (or prog?), passwor, purge, rename, reseq (or
prog?), text,
Documented in prog'ing: auto, list, ...,l=file, lnh, ...,l=file, new,
old, rnh, run, save
Maybe document: append, replace, xedit
Check command abbreviations
-->
<table>
<tbody>
<tr>
<td><code>CATLIST</code><br /><code>CATLIST,LO=F</code></td>
<td>List your permanent files. The second form generates a detailed list.</td>
</tr>
<tr>
<td><code>ENQUIRE</code><br /><code>ENQUIRE,F</code></td>
<td>Prints users terminal port number, current subsystem, primary file.
The second form lists user's local files</td>
</tr>
<tr>
<td><code>NEW,</code><em>file</em></td>
<td>Create a new file with the current subsystem and select as your primary file.</td>
</tr>
<tr>
<td><code>OLD,</code><em>file</em></td>
<td>Select existing permanent file as primary. Change subsystems if file type is different from current primary file.</td>
</tr>
<tr>
<td><code>LIST</code><br /><code>LNH</code></td>
<td>List primary file contents. The second form omits printing the system header.</td>
</tr>
<tr>
<td><code>GET,</code><em>file</em><br /><code>LIST,L=</code><em>file</em></td>
<td>Use <code>GET</code> and <code>LIST,L</code> together to list the contents of a file other than primary file. </td>
</tr>
<tr>
<td><code>SAVE</code><br /><code>SAVE,</code><em>old</em><code>=</code><em>new</em></td>
<td>Save contents of primary file as permanent file (creates permanent file). May need to use <code>PACK</code> first. <strong>Note:</strong> Use only the first time you create a file.<br />
The second form saves the primary file named <em>old</em> in a new permanent file named <em>new</em>.</td>
</tr>
<tr>
<td><code>REPLACE</code></td>
<td>Replace permanent file with current contents of primary file. May need to use <code>PACK</code> first. <strong>Note:</strong> Use when modifying previously created permanent file.</td>
</tr>
<tr>
<td><code>PACK</code></td>
<td>Compress multiple logical records in local file into single logical record.</td>
</tr>
<tr>
<td><code>PURGE,</code><em>file</em></td>
<td>Delete a permanent file</td>
</tr>
<tr>
<td><code>RENAME,</code><em>oldname</em><code>,</code><em>newname</em></td>
<td>Change the name of a permanent file</td>
</tr>
</tbody>
</table>
<h2 id="section-5">Programming Commands</h2>
<!-- document BATCH, EXECUTE here, too? -->
<p>The BASIC, FTNTS, and FORTRAN subsystems provide environments
for interactively creating, modifying, debugging, and running
programs:</p>
<table>
<tbody>
<tr><td><code>BASIC</code></td><td>Enter the BASIC subsystem. Uses the BASIC programming language interpreter.</td></tr>
<tr><td><code>FTNTS</code></td><td>Enter the FTNTS subsystem. Uses the FORTRAN Extended Version 4 compiler.</td></tr>
<tr><td><code>FORTRAN</code></td><td>Enter the FORTRAN subsystem. Uses the FORTRAN Version 5 compiler.</td></tr>
</tbody>
</table>
<p>The tree subsystems provide a development environment similar to
the original Dartmouth BASIC and versions of Microsoft BASIC for
microcomputers and early PCs.</p>
<h3 id="section-5-1">Program source files</h3>
<p>For all subsystems, program source code is stored in indirect
access files. The file's subsystem flag, set when first created,
indicates the file's source programming language (and compiler
version for Fortran source files).</p>
<p>Create new source files, list and select existing source files,
view contents, and save changes to source files using the file
commands documented above.</p>
<p>Each programming subsystem includes a simple editing function for
entering and modifying program source code in the primary file as follows:
<dl>
<dt>To add a source code line:</dt>
<dd>Type a new line sequence number followed by a space and then
a program statement. Source code lines will be stored and
compiled/executed in the order of line sequence numbers, so lines
can be entered in any order.</dd>
<dt>To modify a source code line:</dt>
<dd>Type line sequence number of the program statement to be
changed followed by a space and the modified program
statement.</dd>
<dt>To delete a source code line:</dt>
<dd>Type the line sequence number followed immediately by
the <code>Enter</code> key.</dd>
</dl>
</p>
<ul>
<li>In the BASIC subsystem, use line sequence numbers as the targets
of <code>GOTO</code> and other statements.</li>
<li>In the Fortran language subsystems (FORTRAN and FTNTS), the line
sequence numbers are <em>not</em> the same as the line label
numbers used by Fortran PRINT/WRITE/FORMAT, GO&nbsp;TO, and other
statements. Line label numbers should be inserted in necessary
lines between the line sequence number and program statement.</li>
<li>In the Fortran language subsystems, program statement text
Following the line sequence numbers may conform to or ignore
standard Fortran column rules at the programmer's choice.</li>
<li>In the BASIC subsystem, program statement without a preceding
line sequence number will be executed immediately and are not
added to the primary file. This is useful for testing statements
before modifying your program. Use <code>PRINT</code> statements
to display results of calculations, etc.</li>
</ul>
<table>
<tbody>
<tr><td><code>AUTO</code></td><td>Enter automatic line sequence
number mode. Enter program source statements in sequence after the
system-generated line numbers. Exit the mode by
pressing <code>Esc</code> key followed
by <code>Enter</code> key.</td></tr>
<tr><td><code>RESEQ</code></td><td>Renumber the source code lines
in the primary file, maintaining the original sequence. In BASIC
subsystem, target line numbers of GOTO and other
statements are adjusted appropriately.</td></tr>
<tr><td><code>RUN</code><br /><code>RNH</code><br /><code>RUN,MI=12625</code></td><td>For
the BASIC subsystem, runs the primary file program. The second
form omits printing of the system header.<br />The third form is
required to compile and run programs in the FTNTS
subsystem. (The <code>MI</code> argument sets the compiler field
length. As of this writing it is unknown if value 12625 is valid
for all programs.)<br /><em><strong>Note:</strong> As of this
wiriting, the author has not yet succeeded in compiling nor
running a program with the FORTRAN subsystem.</em></td></tr>
</tbody>
</table>
<h2 id="section-6">Text Editor</h2>
<p>Although the programming subsystems include basic functionality for entering and modifying program source code in the primary file, the NOS Text Editor program (<code>EDIT</code>) provides both advanced editing functions and the ability to edit other local files besides the primary file.</p>
<table>
<tbody>
<tr><td><code>EDIT</code><br /><code>EDIT,</code><em>file</em></td><td>Edit the primary file with Text Editor. The second form is for editing other local files.</td></tr>
<tr><td><code>END</code></td><td>Exit Text Editor</td></tr>
</tbody>
</table>
<h2 id="section-7">Messaging</h2>
<p>Use the ACCESS subsystem to communicate with other users connected
to the 6500.</p>
<table>
<tbody
<tr>
<td><code>ACCESS</code></td>
<td>Enter the ACCESS subsystem</td>
</tr>
<tr>
<td><code>USER,</code><em>userID</em></td>
<td>Find connected user's terminal port number</td>
</tr>
<tr>
<td><code>DIAL,</code><em>port</em><code>,</code><em>message</em></td>
<td>Send message to user.</td>
</tr>
</tbody>
</table>
<h2 id="section-8">Other System Commands</h2>
<table>
<tbody>
<tr>
<td><code>DAYFILE</code></td>
<td>List user's activity log.</td>
</tr>
<tr>
<td><code>PASSWOR,</code><em>old</em><code>,</code><em>new</em></td>
<td>Change user password from <em>old</em> to <em>new</em></td>
</tr>
</tbody>
</table>
<h2 id="section-9">Disconnecting</h2>
<table>
<tbody>
<tr>
<td><code>BYE</code><br /><code>GOODBYE</code><br /><code>LOGOUT</code></td>
<td>End user session and disconnect</td>
</tr>
<tr>
<td><code>HELLO</code><br /><code>LOGIN</code></td>
<td>End user session and return to log-in screen</td>
</tr>
</tbody>
</table>
<h2 id="section-10">File Sharing</h2>
<p>Share permanent files with other 6500 users.</p>
<table>
<tbody>
<tr>
<td><code>CHANGE,</code><em>file</em><code>/CT=PU,M=</code><em>mode</em></td>
<td>Give access mode <em>mode</em> to <em>file</em> to all 6500 users.
<br />Permission <em>mode</em>s: <code>A</code>=append, <code>E</code>=execute,
<code>M</code>=modify, <code>N</code>=remove perm., <code>R</code>=read,
<code>RA</code>=read+append, <code>RM</code>=read+modify, <code>W</code>=write</td>
</tr>
<tr>
<td><code>PERMIT,</code><em>file</em><code>,</code><em>user</em>[<code>=</code><em>mode</em>]...</td>
<td>Give access mode <em>mode</em> to <em>file</em> to <em>user</em>.
Default <em>mode</em> is read.</td>
</tr>
<tr>
<td><code>CATLIST,UN=</code><em>user</em></td>
<td>List permanent files in <em>user</em>'s catalog for which you have
been granted access permission.</td>
</tr>
<tr>
<td><code>OLD,</code><em>file</em><code>/UN=</code><em>user</em></td>
<td>Open permanent file <em>file</em> in <em>user</em>'s catalog (must have
been granted access permission).</td>
</tr>
</tbody>
</table>
<h2 id="section-11">File Transfer</h2>
<p>
In order to transfer data to or from the 6500, your best option is to copy and paste. If your having trouble pasting in programs, you may want to try using TeraTerm with after altering the line delay under Setup -> Additonal settings -> Copy and Paste -> Paste delay per line at about 250ms.
</p>
<h2 id="references">References</h2>
<ul>
<li id="rbas"><a
href="http://bitsavers.trailing-edge.com/pdf/cdc/cyber/lang/basic/19980300B_BASIC_Language_Version_2_Reference_Nov74.pdf">BASIC
Language Version 2 Reference Manual</a> (PDF). Control Data Corporation.
Oct. 1974. Accessed Oct. 8, 2016.</li>
<li id="rfx4"><a
href="http://bitsavers.trailing-edge.com/pdf/cdc/cyber/lang/fortran/60305600A_FTN_Extd_V4_Oct71.pdf">FORTRAN Extended Reference Manual Version 4</a> (PDF). Control Data Corporation. Oct. 22, 1971. Accessed Aug. 29, 2016.</li>
<li id="riaf"><a
href="http://bitsavers.trailing-edge.com/pdf/cdc/cyber/nos/60455250C_Interactive_Facility_Version_1_Reference_Aug79.pdf">Interactive
Facility Version 1 Reference Manual</a> (PDF). Control Data Corporation. Aug.
10, 1979. Accessed Aug. 17, 2016.</li>
<li id="rnos"><a
href="http://bitsavers.trailing-edge.com/pdf/cdc/cyber/nos/60435400C_NOS_Version_1_Reference_Manual_Volume_1_Dec76.pdf">NOS
Version 1 Reference Manual Volume 1 of 2</a> (PDF). Control Data Corporation. Dec.
3, 1976. Accessed Aug. 26, 2016.</li>
<li id="redit"><a
href="http://bitsavers.trailing-edge.com/pdf/cdc/cyber/nos/60436100C_NOS_Version_1_Text_Editor_Ref_Mar76.pdf">NOS
Version 1 Text Editor Reference Manual</a> (PDF). Control Data Corporation. Mar.
8, 1976. Accessed Aug. 17, 2016.</li>
</ul>
<h2 id="plan">Future Improvements</h2>
<p>The author would like to make the following improvements to this document:</p>
<ul>
<li>Document compilation and execution of programs with FORTRAN subsystem.</li>
<li>Text Editor command guide.</li>
<li>Batch subsystem guide.</li>
<li>Execute subsystem guide.</li>
</ul>
$Id: cdc6500.html,v 1.11 2016/11/12 15:34:38 papa Exp $