The CDC 6000 series 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.
This document is a short guide for those interested in exploring the 6500's interactive command environment.
(Note: 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 LC's 6500. The author apologizes for any inaccuracies and welcomes corrections and improvement suggestions.)
USER NUMBERprompt 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.
PASSWORDprompt type your password (your input will be concealed by the row of Xs).
RECOVER /SYSTEM:prompt enter a subsystem or other command. (Enter
RECOVERto recover previously interrupted session.)
[CONNECTED TO MUX6676 LINE 1] 16/08/24. 20.43.27. LIVING COMPUTER MUSEUM 6500. NOS 1.3-485/11. USER NUMBER XXXXXXXXXXXXXXX ← 2. PASSWORD XXXXXXXX ← 3. PORT : 5, TTY RECOVER /SYSTEM:
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.
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.
| ||Messaging with other users connected to the 6500.|
| ||Interactive BASIC language programming environment.|
| ||Create and run batch jobs for non-interactive programs.|
| ||Execute previously compiled programs.|
| ||Interactive Fortran language programming environment. Uses FORTRAN Version 5 compiler.|
| ||Interactive Fortran language programming environment. Uses FORTRAN Extended Version 4 compiler.|
| ||A general-purpose environment for working with files and system status and settings (although most general commands are available in other subsystems as well).|
A basic understanding of the 6500 file system is necessary to use most IAF comands.
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.
Two types of files are supported:
Direct access: Used for random access and database applications.
Indirect access: Common sequential access files, including program source files.
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.
A temporary file is not created when a direct access file is opened. Changes made to a direct access file are immediately applied to the permanent file.
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.
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.
Local files are the set of temporary files and direct access files (permanent files) currently open by a particular job or user session.
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:
| ||List your permanent files. The second form generates a detailed list.|
| ||Prints users terminal port number, current subsystem, primary file. The second form lists user's local files|
| ||Create a new file with the current subsystem and select as your primary file.|
| ||Select existing permanent file as primary. Change subsystems if file type is different from current primary file.|
| ||List primary file contents. The second form omits printing the system header.|
| ||Use GET and LIST,L together to list the contents of a file other than primary file.|
| ||Save contents of primary file as permanent file (creates permanent file). May need to use PACK first. Note: Use only the first time you create a file. The second form saves the primary file named old in a new permanent file named new.|
| ||Replace permanent file with current contents of primary file. May need to use PACK first. Note: Use when modifying previously created permanent file.|
| ||Compress multiple logical records in local file into single logical record.|
| ||Delete a permanent file|
| ||Change the name of a permanent file|
The BASIC, FTNTS, and FORTRAN subsystems provide environments for interactively creating, modifying, debugging, and running programs:
| ||Enter the BASIC subsystem. Uses the BASIC programming language interpreter.|
| ||Enter the FTNTS subsystem. Uses the FORTRAN Extended Version 4 compiler.|
| ||Enter the FORTRAN subsystem. Uses the FORTRAN Version 5 compiler.|
The tree subsystems provide a development environment similar to the original Dartmouth BASIC and versions of Microsoft BASIC for microcomputers and early PCs.
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).
Create new source files, list and select existing source files, view contents, and save changes to source files using the file commands documented above.
Each programming subsystem includes a simple editing function for entering and modifying program source code in the primary file as follows:
To add a source code line: 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.
To modify a source code line: Type line sequence number of the program statement to be changed followed by a space and the modified program statement.
To delete a source code line: Type the line sequence number followed immediately by the
GOTOand other statements.
| || Enter automatic line sequence number mode. Enter program source statements in sequence after the system-generated line numbers. Exit the mode by pressing
| ||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.|
| || For the BASIC subsystem, runs the primary file program. The second form omits printing of the system header. The third form is required to compile and run programs in the FTNTS subsystem. (The
Although the programming subsystems include basic functionality for entering and modifying program source code in the primary file, the NOS Text Editor program (
EDIT) provides both advanced editing functions and the ability to edit other local files besides the primary file.
| ||Edit the primary file with Text Editor. The second form is for editing other local files.|
|edit,fn=lfn||Begin an edit session of the specified “local” file|
|reset||Reset current line pointer to first line|
|set;n||Set the current-line pointer by moving it +/- “n” lines relative to the current position.|
|f:/abc/||Find line with text “abc” and move the current-line pointer there|
|list;n||List “n” number of lines from the current line-pointer (pointer does not change)|
|extract||Copies the current line to the string buffer (a.k.a. “clipboard”)|
|add||Add one or more lines after the current line-pointer position|
|add<CR>$<CR>||Pastes the string buffer content below the current line|
|delete;n||Delete one or more lines beginning with the current line|
|rs:/abc/,/xyz/;n||Replace string “abc” with “xyz” in the current line “n” times|
| ||Exit Text Editor|
Use the ACCESS subsystem to communicate with other users connected to the 6500.
| ||Enter the ACCESS subsystem|
| ||Find connected user's terminal port number|
| ||Send message to user.|
| ||List user's activity log.|
| ||Change user password from old to new|
| ||End user session and disconnect|
| ||End user session and return to log-in screen|
Share permanent files with other 6500 users.
| || Give access mode mode to file to all 6500 users. Permission modes:
| ||Give access mode mode to file to user. Default mode is read.|
| ||List permanent files in user's catalog for which you have been granted access permission.|
| ||Open permanent file file in user's catalog (must have been granted access permission).|
In order to transfer data to or from the 6500, your best option is to copy and paste. If you're having trouble pasting in programs, you may want to try using TeraTerm after altering the line delay under Setup → Additonal settings → Copy and Paste → Paste delay per line to about 250ms.
The author would like to make the following improvements to this document: