A Session with a CYBER 960
Michael A. Covington
Artificial Intelligence Center
The University of Georgia
Introduction
This document will step you through a sample session compiling and executing a FORTRAN program on the CYBER 960 at cray-cyber.org. See also their command summary and usage notesI'll also show you how to access the easy-to-use BASIC system on the CYBER, which is very user-friendly and resembles other BASIC systems from Dartmouth to GW-BASIC.
Author's note: The very first computer I ever programmed was a Control Data 6400, in February, 1973. This CYBER 960 is its closest living relative. I stopped using CYBERs for productive work around 1986. The following notes were made on March 6th, 2004, with acute awareness that this will be one of my last-ever encounters with a CYBER.
File system
The CYBER file system is radically different from anything you've experienced under UNIX, DOS, or Windows. Specifically:The bizarre CPU architecture (designed for fast arithmetic and very little else) and the rest of the commands are documented elsewhere.
- Your program can only read and write local (temporary) files, not permanent files.
SAVE,localfile=permanentfile stores a copy of a local file as a permanent file.
GET,localfile=permanentfile retrieves a copy of a permanent file and makes it a local file.
ENQUIRE,F tells you what local files you have. Normally, the local files INPUT and OUTPUT are connected to your terminal.
CATLIST tells you what permanent files you have.
- Files are like tapes; you must rewind them when you want to get back to the beginning of the file. (REWIND,localfile.)
Putting this another way: Files are opened by your terminal session, not by the individual program that reads them. It's perfectly possible for one program to read part of a file, and then another program read the rest. The files does not go back to the beginning when another program opens it.
If the contents of a file seem to have disappeared, it probably needs rewinding.
- File names are limited to 7 characters. My personal practice is to use the last character to indicate the kind of file (F for FORTRAN source, C for COMPASS source, blank for executable object code).
- Text files aren't ASCII; they're in 6-bit "display code." In practice this means there aren't any lowercase letters, and you can't use ASCII codes in programming. Actually, there is also a 12-bit ASCII file type, but if you're using it, you're probably not a real CYBER purist.
Entering and Compiling a FORTRAN Program
Here's how I actually entered, compiled, and saved a small FORTRAN program.
Logging in
WELCOME TO THE NOS SOFTWARE SYSTEM. COPYRIGHT CONTROL DATA 1978, 1989. 94/03/06. 16.00.51. T020102 NETWORK OPERATING SYSTEM. 0. NOS 2.8.1 803/803. FAMILY: USER NAME: guest15 PASSWORD: your password T020102 - APPLICATION: iaf JSN: AAEU, NAMIAF /The / is the command prompt. What I typed is in lowercase, and most commands are echoed by the system in uppercase.
Editing a file
/screen,vt100 (Tell the CYBER I'm using a VT-100 terminal.) SCREEN,VT100. /fse,myprogf (Full-screen-edit the file MYPROGF.)I never entirely figured out the full-screen editor, but fortunately, it's not necessary to do so. The command area is at the upper left corner; just move the cursor there to type commands.
HELP will get you a guide to further editing commands.
QUIT will save your program to a local file and exit the editor.
Copying from the keyboard to a file
You may prefer to type directly onto a file from the keyboard (like cat >filename in UNIX). For instance, you may be pasting your file into your Telnet session from an editor on your PC. Here's how it's done:/copycr,input,myfile ? program foo(output) ? print *,"hello" ? end ? EOF. 1 FILE; 0 RECORDS; 3 LINES. /rewind,myfile REWIND,MYFILE.Note that empty lines are end-of-record marks when the CYBER is reading from the keyboard in this way. Make sure your program does not contain any empty lines. In FORTRAN programs, the usual alternative is to use comment lines that contain only the letter C in column 1.
The rest of my session
After editing my file with FSE, here's what I did next:/enquire,f (Look at a list of my local files) LOCAL FILE INFORMATION. FILENAME LENGTH/PRUS TYPE STATUS FS LEVEL FSEHELP 101 PM.* BOI (used by FSE) FSEPROC 17 LO. BOI (used by FSE) INPUT TT. (terminal input) INPUT* 1 IN.* EOR NAD MYPROGF 1 LO. BOI (the file I created) OUTPUT TT. (terminal output) ZZZWORK 148 LO. EOF NAD (who knows?) ZZZZTRM 4 LO. EOR NAD (who knows?) TOTAL = 8 /copy,myprogf,output (Copy my file to the terminal so I can see it) C A SAMPLE FORTRAN PROGRAM FOR THE CYBER PROGRAM MYPROG(OUTPUT) PRINT *, "HELLO, WORLD!" STOP END EOI. 0 FILES; 1 RECORD; 16 WORDS. /rewind,myprogf (Rewind it. IMPORTANT STEP!) REWIND,MYPROGF. /ftn,i=myprogf,b=myprog,l=0 (Compile MYPROGF, write binary onto MYPROG, no listing) .008 CP SECONDS COMPILATION TIME /myprog (Load and execute MYPROG) HELLO, WORLD! 0.006 CP SECONDS EXECUTION TIME. /save,myprogf=hellowf (Store MYPROGF as permanent file HELLOWF) /catlist (Look at my permanent files) CATALOG OF GUEST15 FM/CYBER 94/03/06. 16.08.27. INDIRECT ACCESS FILES HELLOWF 1 INDIRECT ACCESS FILE ON DISK. TOTAL PRUS = 1. /dayfile (View the system log of my session) 16.01.30.AAKY. 16.01.30.USER,GUEST15,,CYBER. 16.01.30.ABSC, T. 16.01.30.$RECOVER,OP=T. 16.01.42.SCREEN,VT100. 16.01.56.FSE,MYPROGF. 16.05.55.ENQUIRE,F. 16.06.19.COPY,MYPROGF,OUTPUT. 16.06.19. EOI ENCOUNTERED. 16.06.19. EOI. 0 FILES; 1 RECORD; 16 WORDS. 16.06.27.REWIND,MYPROGF. 16.07.50.FTN,I=MYPROGF,B=MYPROG,L=0. 16.07.51. .008 CP SECONDS COMPILATION TIME 16.07.55.MYPROG. 16.07.55. CM LWA+1 = 7636B, LOADER USED 25000B 16.07.55. STOP 16.07.55. 014000 MAXIMUM EXECUTION FL. 16.07.55. 0.006 CP SECONDS EXECUTION TIME. 16.08.23.SAVE,MYPROGF=HELLOWF. 16.08.27.CATLIST. 16.08.55.DAYFILE. USER DAYFILE PROCESSED. /logout (Goodbye, CYBER, it was nice knowing you!) UN=GUEST15 LOG OFF 16.09.20. JSN=AAEU SRU-S= 3.094 CHARACTERS= 5.949KCHS IAF CONNECT TIME 00.07.51. LOGGED OUT. Connection closed by foreign host.BASIC mode
The CYBER also has a very user-friendly mode for writing and running programs in BASIC, using line numbers for editing in the traditional way. (Commands such as SAVE and CATLIST still work.) Here's a transcript of a short BASIC session. Here my typing is in lighter type, and the system's responses are in boldface./basic OLD, NEW, OR LIB FILE:new FILE NAME:mybas READY. 10 print "This is a BASIC program" 20 print "2 + 2 = ",2+2 30 end list 10 PRINT "THIS IS A BASIC PROGRAM" 20 PRINT "2 + 2 = ",2+2 30 END READY. run THIS IS A BASIC PROGRAM 2 + 2 = 4 RUN COMPLETE. logout UN=GUEST15 LOG OFF 17.04.02. JSN=AAEY SRU-S= 1.056 CHARACTERS= 0.370KCHS IAF CONNECT TIME 00.00.53. LOGGED OUT. Connection closed by foreign host.The performance of the BASIC compiler should not be underestimated. It uses full 60-bit floating-point arithmetic just like FORTRAN. And it includes the Dartmouth MAT commands for matrix arithmetic.The predecessor of this BASIC environment was, in fact, the first programming environment that I ever used, back on one chilly day in February 1973. Enjoy!
These sessions took place on March 6, 2004. The date on the CYBER set 10 years into the past because of Y2K noncompliance. The time of day on the CYBER is German time (GMT+1), 6 hours ahead of Eastern Standard Time.
nor are they endorsed by, the University of Georgia or the University System of Georgia. |