Norsk Data Elektronikk A/S is continuously working towards improvements and new extensions of the SINTRAN III operating system. New versions are released 3 or 4 times a year. It is our goal to synchronize the new editions of this manual with the new versions of the operating system, such that all functions of a particular version of SINTRAN III are described in the corresponding edition of the manual, and that all functions mentioned in the manual are contained in the corresponding version of the operating system.
Thus, this version of this manual is the SINTRAN III version of June 1976.
This manual is intended to give a brief description of the present operating system, SINTRAN III, which in a version especially generated and strictly suited for each particular NORD-10 configuration, is delivered together with other standard software packages by A/S Norsk Data-Elektronikk.
The reader of this manual will learn all the details about running SINTRAN III, how to make efficient application programs utilizing standard hardware and software features, and will be given a general idea of the structure of SINTRAN III.
Accordingly, this manual is recommended as the necessary documentation for any person (operator or programmer) approaching the problem of utilizing the efficient hardware and software facilities offered by the NORD-10 computer system.
The NORD-10 computer system is a medium scale, general purpose computer system which, because of the modular design, is actually a family of computer systems.
SINTRAN III is a multiprogramming, multi-lingual, real-time operating system that supervises the processing of user programs submitted to a NORD-10 computer system. SINTRAN III also relieves the user from program control, input/output and housekeeping responsibilities by monitoring and controlling input, loading, compilation, run preparation, execution and output of user programs.
SINTRAN III offers the user the most efficient facilities because it takes full advantage of the NORD-10 computer hardware resources. Many powerful operating system features are made possible by utilizing the efficient hardware of the NORD-10. This, in turn, makes multi-programming in real-time, timesharing and batch modes possible.
The system is highly modular and may be used for a wide range of NORD-10 configurations. Modularity allows memory resident systems of only 16K, expanding to mass storage systems including 256K main memory, disks, drums, etc. and connections to other NORD computers, thereby, allowing multiprocessing systems.
The philosophy behind SINTRAN III makes it especially suited for:
Process Control Systems
Business Oriented On-line Systems
Scientific Engineering Timesharing Systems
Data Communication Systems
Data Acquisition Systems
and combinations of these processed concurrently. This, because of the subsystems offered under SINTRAN III, helps to ease the user's implementation of applications.
SINTRAN III allows users to run real-time, timesharing and batch programs concurrently.
Time critical real-time processing always has higher priority than timesharing and batch processing. The number of programs that can be processed concurrently depends on factors such as; hardware configuration, operating modes and applications involved.
The SINTRAN III system may be used by a variety of people, ranging from those who want to run BASIC programs from interactive terminals, to those who want to control complicated equipment through the real-time processing facilities the system offers, and those who are responsible for the control of the computer system itself.
These different users may be categorized into three groups:
timesharing and batch users,
real-time users, and
system supervisors
Each group will have a different background and require different services by the system. This manual has been separated into sections describing functions concerning all user groups to sections with special interest for each group.
Another type of users, often referred to as the "parametric users", perform application oriented tasks such as data-entry or data-inquiry through real-time/timeshared terminal programs. These users will not be discussed in this manual.
This user group will normally access the system through a terminal or by submitting jobs for batch-processing from disk files containing the necessary commands and data or card decks to be entered by an operator.
Chapters 2 and 3 of this manual describe all commands and services available together with some examples of how to run various subsystems.
Timesharing and Batch users are known to the system by names which must be presented at the beginning of a terminal session or as the first command in a batch job.
The user name may be protected by a password chosen by the user to prevent unauthorized access to the system.
The user name must be established by those responsible for the system. Timesharing and Batch users access the system in its "background" processing mode, executing programs with a lower priority than time critical real-time programs executing in the "foreground" processing mode. The timesharing and batch processes are normally given processing time on an equal basis in a round-robin fashion.
During processing, the user may take advantage of the many functions provided by the SINTRAN III system, including an efficient FILE MANAGEMENT SYSTEM for saving programs or data in permanent or removable file-directories on disk packs, magnetic tapes and cassettes.
Certain commands related to real-time processing and for use by the system supervisors are not accessible by a timesharing/batch user, and if given, will issue an error message. These commands are described in Chapters 5 and 6.
The SINTRAN III system recognizes a special user name RT as a privileged user capable of controlling the real-time processing programs. This user name should also be protected by a password to prevent unauthorized access.
Chapter 5 describes the special commands and services. Chapter 4 describes topics such as; Priority Levels, Memory Management, Program Protection, Program Structures, Reservation of logical peripherals and units, and Communication between RT programs. Chapter 7 gives some examples of RT programs and how to load and activate their execution.
The user RT may also use the Timesharing and Batch facilities for program development and testing purposes.
Certain commands related to system supervision are not accessible by user RT and, if given, will issue an error message.
The SINTRAN III system recognizes the user name SYSTEM as the user with the most privileged possibilities, capable of creating and deleting users, creating file directories on different devices and entering them so that other users may access files. The user name SYSTEM should also be protected with a password.
Chapter 6 describes special commands and services, together with other information related to this user.
The user SYSTEM may also use the Timesharing and Batch facilities for program development and also has the user RT's capabilities.
The SINTRAN III system provides its users with a large set of control functions which may be activated by a command or from a program by a Monitor Call.
A Command may be entered from a terminal or a batch job file to be checked for validity, and cause the appropriate action to take place. The commands consist of three groups:
Background Commands
calling compilers, assemblers, editors, other subsystems and user programs
creating, deleting and maintaining files
reserving and releasing peripheral devices, etc.
These commands may be used by all users.
Real-Time Commands
starting and stopping RT programs
loading new RT programs using the RT loader
reserving and releasing peripheral devices on behalf of RT programs, etc.
These commands may only be used by the users RT and SYSTEM.
System Commands
starting and stopping the system
creating, entering and releasing file directories
creating and deleting users
allocating resources, etc.
These commands may only be used by the user SYSTEM.
All commands are described in Chapters 3, 4, 5, and 6 and a complete list is given in Appendix A.
A Monitor Call is a special hardware instruction allowing a user to invoke a large set of service functions, to be executed within the operating system on behalf of the calling program.
Also, some hardware instructions have restricted usage within a multi-programming, multiterminal operating system. Such instructions have a corresponding Monitor Call function.
As Monitor Call instructions can only be activated through programs written in MAC assembly or NORD PL languages, a set of small subroutines is available for programs written in FORTRAN. Sections 3.5 to 3.7, 7.6 and Chapter 9 give a detailed description of all available Monitor Call functions. A list of all Monitor Calls is given in Appendix B.
The minimum hardware configuration required to run SINTRAN III is:
NORD-10 standard CPU, including 16K words of main memory
Console terminal
Paper tape reader
The range of standard peripherals includes paper tape reader and punch, card reader and punch, Teletypes, alphanumeric and graphic display systems, line printers which print 60 to 1500 lines per minute, matrix plotters/printers, cassette tape input/output, magnetic tape stations, 7-track and 9-track, fixed head drums, cartridge disks, A/D-D/A equipment, facsimile transmitting interface modem interfaces and CAMAC interface.
Optional hardware:
Main memory up to 256K words, both core and solid state memory in the same system. Multiport access.
High-speed direct memory access channel 1M word/sec. in interleaved processing.
Up to 4 mass storage controllers (independent of types) used for system and user program storing.
No limitation in number of mass storage controllers and types for file and data storage.
Moving-head cartridge disks. Up to 4 cartridge disk units per controller and 4.6 or 9.2 Mbytes per unit. Average access time 47.5ms, 156K word/sec. transfer rate.
Moving-head disks. Up to 8 disk units per controller with a capacity of 3M or 66M bytes per unit. 38.5ms average access time, and 600K words/sec. transfer rate.
Fixed head drum. One drum unit per controller with capacity from 64K to 1024K words per unit. 10.5ms average access time, and 100K words/sec. transfer rate.
Magnetic tapes up to 4 units per controller, 7-track, 45 ips, 200, 556 or 800 bpi, 9-track, 75 ips, 800 or 1600 bpi.
follows ANSI STANDARD FORTRAN and has ISA Real-time Extensions. The user may call subroutines written in NORD PL and MAC from his FORTRAN program. FORTRAN programs may be executed in all three modes of operation. FORTRAN also has an interactive debugging facility.
is an interpreting, higher-level, interactive language especially suited for process control applications. NODAL may be executed in all three modes of operation and may call subroutines in NORD PL and MAC.
is an interpreter following Dartmouth College 71 specification. From his BASIC program, the user may call FORTRAN, NORD PL and MAC subroutines. Programs written in BASIC may be executed in timesharing and batch modes.
is a medium-level language especially suited for system programming. By using the NORD PL, the programmer will more quickly write and debug programs, more easily modify them, and make them more reliable and easier to read and understand than using the traditional assembly language. SINTRAN III is written in NORD PL.
SINTRAN III offers the user of mass storage systems a general purpose file management system for use of permanent files, scratch files, and peripheral device files. The system provides a flexible file security mechanism that allows the programmer to specify the degree of security desired. The files may be accessed in sequential or random mode.
SIBAS is a data base system where efforts are heavily placed on the users' possibilities of representing complex data structures and on the separation of application programs from the data base. SIBAS is an extensive tool for applications in business oriented on-line systems and ADP systems. SIBAS data handling routines follow the specification given in CODASYL DATA BASE TASK GROUP, APRIL 71 REPORT.
QED is an interactive program for editing text. It has extensive facilities for inserting, deleting, and changing lines of text, a line editing feature. Text may be read from and written onto any file. QED is extremely efficient for on-line program development.
The RUNOFF program will help the user to write reports under SINTRAN III by processing the raw text information held in a computer file and provide a printed document of a quality acceptable for publication. The control commands are few and easy to learn.
The Direct Digital Control packages running under SINTRAN III, MEAS, PROCSY and PROSO give the user extensive tools for implementing process control application in his NORD-10 computer. The packages control and process analog signals and perform conventional PID, cascade, ratio and other regulation functions.
The NORD Intelligent Data Terminal programs allow the user to communicate with Honeywell Bull 6000, IBM 360/370, CYBER 74 and Univac 1108/1110 machines through remote job entry terminal simulators.
In addition, subsystems also include scientific and statistical program libraries such as, the Scientific Subroutine Package (SSP) written in FORTRAN.
The terminal responds with the time of day, the date, and the word ENTER.
Type the user name, followed by cr (carriage return). You must be known by the system as a user before you may enter.
The terminal responds by printing PASSWORD.
Type your password. If you have none type cr. Remember that the password will not be echoed on your terminal.
The terminal responds with OK.
If the accounting system is active the terminal will print PROJECT-NUMBER. Answer this by typing a project number (a decimal number), followed by cr.
The terminal prints the character @. This means that it is expecting a command.
Type QED then cr (or RECOVER QED cr).
The terminal responds with
QED 3.4
*
This means that QED is ready to accept commands. (Refer to the QED Users Guide for details.)
As a very simple QED run, we will type a few lines of text, list them on the terminal, and write them on a file. Type A cr (this is the append command). Type the following lines:
THIS IS MY FIRST SYMBOLIC FILE cr
I AM GOING TO PUT IT ON A DISK FILE, cr
WITH THE NAME I-MADE-IT cr
(CTRL)L
When you finish a line with cr, QED responds with lf (line feed).
(CTRL)L is a control character which finishes your text. It is typed by pressing the control key and the L key simultaneously. It will not appear on your terminal.
2.2.1 The Execution of a BASIC Program from a QED File¶
It is possible to have a BASIC program on a disk file (written by QED – see Section 2.1). The above example should be changed as follows (assume that the disk file is named COMPLIC):
Answer by typing OLD cr.
The terminal responds
OLD FILE NAME _ _
Answer by typing COMPLIC cr
The terminal responds
WAIT FOR READY _ _
The READY message is given after the file has been fetched.
Files may also be manipulated directly from BASIC. If you have typed in a BASIC program, you can save it on a disk file by the SAVE command. SAVE "file-name" cr if it is a new file, or SAVE file name cr if the file already exits.
A file may be fetched from the disk by the command GET:
For a more detailed description of the FTN compiler and the binary loader (BRL), refer to the appropriate manuals.
It is assumed that the following symbolic FTN program is already on a disk file called MARY. It can be put there by QED, see Section 2.1:
PROGRAM MARY
WRITE (1,10)
10 FORMAT (*1 MARY HAS BEEN EXECUTED *)
STOP
END
EOF
Log in as described in steps 1 to 9 in Section 2.1.
Type FTN cr.
The terminal responds with
NORD FTN
$
The dollar sign means that the FTN compiler is ready to accept commands. Type:
COM MARY, TERM, "MARY" cr
The compiler will now compile your program, list it on the terminal, and put the resulting BRF code (Binary Relocatable Format) on a new file called MARY (or MARY:BRF).
If this file already exists, the quotation marks should not be used as they are used only when starting a new file. Note that the file MARY with your symbolic FTN program has the file type SYMB (MARY:SYMB) so the system can distinguish between the two MARY's. See Section 3.2.3 for further explanation.
In some systems, the terminal is not named TERM, but TELETYPE. In this case, the command in step 4 above should be
This is a command to fetch the loader (BRL, expanded by the run-time system).
The terminal responds by printing
BINARY LOADER
L*
L means that the loader is ready to accept commands. Type A MARY cr and your program will be loaded. After loading, the loader prints L.
If you wish you may type:
W1 cr
The loader responds by printing a table of entry points (in this case MARY = 060000), the address of the first free location, and the address of blank common.
Type S cr to start your program. The terminal will print
The set of FTN compiler commands includes, among others, CLC and DEBUG.
CLC cr, or
CLC octal number cr,
means if you list your program during compilation, every FTN statement will be preceded by an octal address, starting with the number in the CLC command. CLC cr is equivalent to CLC 0 cr.
This may be very useful for debugging purposes when the program is loaded. By looking at the entry point list from the loader (W1 command) and your compilation list, you will be able to locate every FTN statement in memory.
Some error messages (run-time errors) print the octal address at the beginning of the FTN statement where the error occurred. By means of the debugging routine DEBUG it is possible to execute the FTN statements, one by one, to introduce breakpoints and trace functions, to display the contents of the different variables and to change their values by referring to their names, etc. These functions are performed dynamically at run-time.
The debugging routine must be introduced as a reference point by the command DEBUG at compile time and loaded by the loader with the command A DEBUG.
This routine is most useful for FTN debugging. See the NORD STANDARD FORTRAN REFERENCE MANUAL (ND-60.011) for details.
Suppose the following simple NORD-PL program has been written onto the file NPL1 with the QED processor:
SUBR SORT % START OF SORT
INTEGER I1, I2, I3, I4
INTEGER ARRAY I1(12)
SORT:A=:0; * MON 4 % SET BREAK MODE
O:=I1
I1=:12
FOR I1 TO I2 DO
T=:1; * MON 1; MON 65 % INPUT 1 ELEMENT
A BZERO 7 % CLEAR PARITY BIT
A=: I1(I1)
OD
O=:I1
I0=: I2
FOR I1 TO I2 DO % PERFORM SORTING
I1 + 1 =:I3
FOR I3 TO I2 + 1 DO
IF I1(I1)<I1(I3) THEN
A=:I1(I1)
T=:I1(I3):=I1(I1)
A=:I1(I3)
FI
OD
OD
O=:I1; I1=:I2
A=:15; T=:1; * MON 2; MON 65 % CARRIAGE RETURN
A=:12; *MON 2; MON 65 % LINE FEED
FOR I1 TO I2 DO
A=:I1(I1)
T=:1; *MON 2; MON 65 % WRITE 1 CHARACTER
OD
*MON 0 % RETURN TO SINTRAN III
RBUS % END OF SORT
@EOF
The program will read 10 characters from the terminal, sort them in descending order by the ASCII code, and write them out on the terminal.
The programmer now wants to compile the NPL program, get a program listing on the terminal and write the object program on the symbolic file MAC2. This is done as follows:
Log in. Do as in steps 1 to 9 in Section 2.1. The terminal prints @.
Type NORD-PL cr. The terminal answers:
NORD-PL 74.12.07.
Type @DEV NPL1, 1, MAC2 cr
The compiler now prints the symbolic NPL program on the terminal and writes the symbolic MAC program (object program) on the file MAC2. Error messages are printed on the terminal.
The MAC assembly program should now be assembled by the MAC assembler and started as a MAC program.
For a complete description of the facilities offered by the NORD-PL compiler, see the manual NORD-PL Users' Guide.
In the following, we will use as an example, a program (written in MAC) that
outputs a question mark on the terminal
reads a file name from the terminal
opens the file
copies the file to the terminal
exits when it encounters the end-of-file character (027).
We assume this program is already on a file written by QED. The file has the name EXAMPLE. This file should be written in an orderly and readable manner.
Before writing the program on the file, one should use the QED-command MTO(0) to eliminate the tab characters, as our program EXAMPLE does not expand tab characters.
If some of the points below are not clear to you, consult your MAC Manual.
Log in as in Section 2.1 — steps 1 to 9.
Type MAC cr.
When MAC is ready to accept input from the terminal, it prints cr lf.
Type )CLEAR cr to clear tables, etc.
Type (WRTM cr to set MAC in write mode.
Type 040000/ to set current location counter to 040000.
MAC responds by printing the contents of location 040000 on the terminal.
Type )9ASSM EXAMPLE cr.
MAC will now assemble the file EXAMPLE.
When assembly is finished, MAC prints
TOR:040000 FILIN:040030
This means that the instruction labelled TOR is in location 040000, and the constantly labelled FILIN is in location 040030.
Type *:
MAC responds by printing 040031. This means that current location counter is now 040031, i.e., your program occupies locations 040000 < 040030.
Type ?
MAC responds by printing cr lf. This means that there are no undefined symbols, i.e., the assembly seems to be correct.
If there had been undefined symbols, or labels, say LAB1, you could type LAB1 and get the octal reference addresses. This would show you the address of the instruction or constant that referred LAB1.
Your program may be executed if you type
TOR! or 40000! (40000 is the default start address)
But if you want to execute the program many times, you should dump it on a disk file as follows:
Now your program will be dumped on a new file called EXAMPLE:PROG, with start address 040000. The start address is used when you apply the RECOVER command, and the restart address is used after the program has been interrupted (or it has terminated) and you type CONTINUE.
After the dump is finished, the terminal prints @. Type
EXAMPLE cr
and your program is fetched and entered. It will print ? on the terminal.
You may now copy a file to the terminal. Type
EXAMPLE cr
and you will get EXAMPLE:SYMB listed on the terminal.
If you should type the file name incorrectly, you will get an error message and return to the system (because of MON 065). To try once more, type CONTINUE cr.
After the execution of the program, you might like to see what the contents of FILIN (the file number of the opened file) was. Type:
LOOK-AT CORE cr.
The terminal responds READY:
Type 040030/.
The terminal responds 101 which is an octal file number. Type @ to get back to the system.
If you would like to see the contents of your registers when execution has finished, type
STATUS cr
and you will get a list of the register contents (A should be zero! ).
Finally, log out as in steps 19 to 21 in Section 2.1.
This chapter is related to the user category which uses the SINTRAN III system for program development, testing and executing programs in the background environment of the system.
The information in this chapter relates also to the users RT and SYSTEM, though their special tasks are described in Chapters 5 and 6.
This chapter describes the various services the users may obtain from the SINTRAN III system, and is divided into sections covering the many Commands, Monitor Calls and Utility functions the users may activate to acquire these services.
This name has been used to cover all users who activate the SINTRAN III system from an interactive terminal. This activation may consist of: typing commands to start execution of a program (whether it is a private program or a subsystem provided by ND), debugging the program by inspection and change of locations within the user's virtual memory space, or by typing source program lines through the editor QED for later compiling or assembling into a running program unit.
All these tasks may be executed in a multiprocessing, multiprogramming environment with many simultaneous users at their terminals, even local or remote batch processing, all requiring an equal share of the main system resource: the Central Processing Unit.
This resource is divided among the requestors so that available CPU time, after high-priority real-time processes have been executed, is given to each user in a short fraction of time, a time-slice, where the system is devoted to his task. As most users are not able to fully utilize the CPU for a complete time-slice, due to input or output of data from or to files or peripheral devices, this time-slice may be terminated by the system so that other users may have the CPU while the system performs the tasks of reading or writing data to and from the program.
In this way, the system will share the CPU resource between active terminals and other processes, and give each terminal a priority level which may later be used when selecting the process to be activated from those that are waiting and ready to continue their task.
The process described above is handled by the SCHEDULER part of the SINTRAN III system, where terminals are assigned a priority of 60, 50, 40 or 20, (octal) within a priority scheme ranging from 377 (octal) as highest priority to 0 as lowest priority.
A priority of 60 is assigned to a terminal process when typing a control character such as carriage return. The process is also given a time-slice of 1 second, thus, securing a fast response to the interactive user. If this is not enough, the user will receive 4 seconds more, but now on priority 50. If his program is still running, it will then be considered to be a CPU-bound program and put into the time-slice queue. Each program in the time slice queue will, in turn, have a time-slice with priority 40. The other programs waiting for time-slice will have priority 20. The size of the time slice may vary from 4 to 14 seconds, depending on the terminal activity.
This name has been used for users executing their tasks in different Batch Processors. The SINTRAN III system may have one or several independent Batch Processor tasks, each processor having its own priority.
A user may append Batch jobs to these processors by building Batch-Input-Files on disk or punched cards.
A Batch-Input-File contains all necessary commands and user data, and may contain one or more tasks. A task is, for instance, compiling a FORTRAN program. Another task could be loading and executing the program, etc. Tasks are activated with the same type of commands as for the interactive terminals.
As batch jobs are processed independently of the ongoing terminal activity for the same user, two special commands should be used to identify the user and to terminate the Batch-Input-File.
Batch-Input-Files on disk may be appended by the terminal user to the Batch-Processor-Queue with the command @APPEND-BATCH, or a deck of cards may be given to an operator.
A detailed description of the Batch-Processor and related commands is given in Section 3.7 — Batch Processing.
Almost all commands may be executed within a Batch-Job except those that are interactive. The commands themselves, including necessary parameters, must be contained on a single line or card.
This system, although it may be viewed as a separate system, is an integral part of the SINTRAN III, and adds powerful file management functions normally found on large computers.
A complete description is given in the manual NORD FILE SYSTEM, ND-60.052.
A short description of the most common commands is given in Section 3.5, and some special commands for the user SYSTEM is given in Chapter 6.
A short introduction to some of the file concepts is given below.
A 'file' in this context means a collection of records or blocks, ordered randomly or sequentially. The File Management System manipulates files on disks, drums, magnetic tapes, cassette tapes or standard peripherals. Files on disks, drums and magnetic tapes are treated in a uniform manner. The storage unit is always 1024 words (2K bytes), however, the user may address files with any other block size.
A file is named with a character string, and this name is used in all commands to the file system. When a file is accessed, the file name must be connected to a file number and this number is used in the access routines.
Each file has one owner who has to be defined as a user in SINTRAN III. The owner is normally the user who created the file. A file is always allocated in the owner's area on the mass storage device (directory). Each user may declare up to eight other users as friends and give them privileged access possibilities to his files. Other users are regarded as public users.
The File Management System provides individual protection of files, with separate protection modes for the owner, owner's friends and the public users access of the file.
Files are collected into file directories, containing files for one or more users. Each mass storage device maintained by the system (disks, drums and magnetic tapes) may be used to contain a file-directory, and is completely independent of all other devices. File-directories contained on removable media as disk packs or magnetic tape reels may be moved to other installations and used there.
Each device medium (pack or tape reel) to be used as a file-directory must be created with a name and entered before it can be used by the system. When a directory is not needed anymore, it must be released and dismounted. The next time it is needed, it must be mounted and entered again, etc.
The first file-directory entered (usually where SINTRAN III resides together with related subsystems) is regarded as the main directory. The main directory is the last directory that can be released, and it cannot be released if any users are logged in.
Before a user can establish files in a directory, the user name must have been defined in that directory by the @CREATE-USER command, and space must have been reserved by the @GIVE-USER-SPACE command. Such commands, which manipulate file-directories, are restricted so that only the user SYSTEM may activate them.
Users may be created on several file-directories, but must have been created on the residing main-directory. All information about a user's friends and their access privileges is kept in the main-directory, together with the user's declared password. Before logging in on a terminal or starting a batch-job, the user name must have been declared in the main-directory, but need not have space reserved on that directory.
Any directory entered may be declared as a default directory by the command @SET-DEFAULT-DIRECTORY. This means that the users need not specify the directory name when creating or accessing files in this directory. A user should not be given space in more than one default directory. If he has, he must still specify the directory name as a prefix to the file name. Main directory is always default.
3.2.2 Creating Files (Indexed and Contiguous Files)¶
A file may be created for the first time by the @CREATE-FILE command or by, for instance, the @OPEN-FILE or the @DUMP commands, with the file name surrounded by quotation marks. All subsystems and user program files may be created in the same way by simply enclosing the name in a pair of quotation marks.
Files created by the @CREATE-FILE command with the number of pages greater than zero are allocated on a contiguous area on the mass storage device and are defined as contiguous files. Such files may only be given more pages by means of the @EXPAND-FILE command.
Files created by the @CREATE-FILE command, (or created in other ways) with the number of pages equal to zero, may have their pages scattered throughout the mass storage device and are defined as indexed files. The size of these files may be expanded by new pages, dynamically, as the user writes onto the file. The indexes are kept on a separate page belonging to the file, so that an indexed file always needs one page more than a contiguous file with the same contents. Indexed files cannot be expanded by the @EXPAND-FILE command.
In addition to the file name, an alphabetical file type is added to the file name to designate the purpose of the file. This file type may be set by the user as a 4 character extension of the file name, separated by a colon (:). The following file types are used as default when creating/accessing files in various subsystems:
File Type
Description
:SYMB
symbolic program file
:BRF
binary relocatable file
:PROG
absolute program in executable format
:CORE
core-image file
:BIN
binary absolute program
:DATA
users data files
With these file types, a program may take advantage of the same name for all different files. The various subsystems will access the proper file as its input or output file when the file name is given. (See the example in Section 3.2.7.) Otherwise, the user is free to introduce any other file type when he creates a new file.
Files may also be created in one or more versions, that is, complete copies of the file, so that the last version written is version 1, the previous version is 2, etc. When a file is created in more than one version, the operating system will access the one with the highest number when opened for write (and afterwards change the version no. to 1) and the version 1 when opened for read.
The user may also specify a certain version of the file to be accessed by appending the version number to the file name and file type, separated by a semicolon (;). New versions of an existing file may be established by the command: @CREATE-NEW-VERSION , or by printing the version number within quotes by, for instance, the command: @OPEN-FILE FILE1:DATA; "4", R.
The command @CREATE-FILE FILEX;3,10 will create 3 versions of the file FILEX — each version with 10 pages.
A file may be accessed in many different ways. The access mode of a file is specified as a parameter to the OPEN-FILE command, and may be a combination of the following characters:
Character
Description
R
read access
W
write access
X
random access
A
append
C
common access (write allowed for more than one user simultaneously). Only allowed on contiguous files.
Only certain combinations are legal. See Sections 3.4.5.1 and 3.5.1.1.
The access mode may be restricted, either due to physical reasons or because the file is protected by some access modes. Legal access is defined for the three groups of users: Owner, Friends and Public users.
The legal access to a file may be changed by the @SET-FILE-ACCESS command for each user group, and may be a combination of the following characters:
Character
Description
R
read permitted
W
write permitted
A
append permitted (the file may be expanded)
C
common access permitted
D
directory access permitted (the file may be created, deleted, legal access mode changed and new versions created)
To allow a group of users access to his files the owner must have defined these users by the @CREATE-FRIEND command. Each defined friend may be declared with different access restrictions by the @SET-FRIEND-ACCESS command, and may be a combination of the following characters:
Character
Description
R
read permitted
W
write permitted
A
append permitted
C
common access permitted
D
directory access permitted, or
N
no access permitted
Thus, a friend’s access to a file is defined both by his access allowed in general (with the @SET-FRIEND-ACCESS command) and by the friend access permitted to the file in question (defined with the @SET-FILE-ACCESS command).
When accessing a file belonging to another user, the file name must be preceded by the user’s name enclosed in parenthesis. If the file in question does not reside on that user’s default file-directory, both the file-directory name and user’s name must precede the file name, the two first names are separated by a colon and enclosed in parenthesis.
Owners accessing files in other than the default directory must also let the file-directory name precede the file name, and the directory-name must be enclosed in parenthesis.
Default friend access when a friend is created is: read, write and append. See also Section 3.4.2.
(<file-directory-name>:<owner-name>) <filename>:<type>; version
where file-directory-name, owner name, and filename may consist of 1 to 16 characters, filetype may consist of 1 to 4 characters, and version-number range is from 1 to 256.
The names and file type may be abbreviated as long as it does not become ambiguous, and a special character, the "—", may be used to divide the names into subparts, each of which may also be abbreviated.
When a terminal or a batch job is initiated under SINTRAN III, it is first connected to the Command Interpreting Processor (CIP) which reads each command line from the terminal or batch input device, checks its validity, and performs the requested action. After a particular command is executed, or when a user-program or a subsystem terminates, the control is returned to the CIP.
In this manual, all commands shown are preceded by a @, which is the CIP’s leading character.
During a terminal session, this @ is printed automatically to indicate that the previous action is terminated and that SINTRAN III is ready for a new command. Note that this @ character should not be typed by the user.
When submitting batch jobs, or reading commands from other devices than the terminal, all commands must start with the @ character to recognize them as commands.
A command is a string of characters separated into words by a comma or a number of spaces. The first word is the command name, followed by parameter words if necessary.
In batch jobs the command name and all parameters must be contained on one line or card. In the terminal session missing parameters will be requested by CIP.
Certain parameters may take a default value which will be used if the parameter word is omitted, by giving the comma separators or by responding with a carriage return when the parameter is asked for.
Command names and parameter words may be abbreviated by giving sufficient characters to distinguish it from other permissible values. A special character, the “-”, is used to separate words in two or more distinct parts. Any part may be abbreviated as long as it doesn’t become ambiguous.
Consider, as an example, the commands @LOAD-BINARY and LIST-FILE. One way in which the first command may be typed is:
A terminal is activated by pressing the "escape"-key on the keyboard of the terminal.
The Command Interpreting Processor types out the time and date, and asks for the user’s identification (created for him by user SYSTEM) by typing out
ENTER
and waits for the name, terminating with a carriage return. A protecting password, chosen by the user himself, is asked for by typing out
PASSWORD:
and waits for the password to be typed. The password is only read by the CIP, and not typed out clearly at the terminal, to avoid unauthorized access to the system
When the user-name and correct password is checked, the CIP types out
OK.
If the user-name is not defined or an incorrect password is given, the ENTER line is repeated.
A project number is asked for if the accounting system has been initiated by the user SYSTEM. The project number is used to collect the computer time and terminal time a session has lasted.
The CIP types out
PROJECT NUMBER:
and waits for the user to type in the project number this session should be accounted to. When logging out, the duration of this session is typed out.
After this log-in procedure is finished, the CIP types the @ character, and waits for a command to be given.
For users that access the system through dialed-up telephone lines, the log-in procedure starts when the high-pitch-tone is heard. The "escape"-key may now be pressed. Terminals are normally connected in full duplex mode, which means that the user can type in simultaneously while the system is typing out. Such type-in's are hidden until the system retransmits, echos, the received characters in their proper place in the generated type-out. A certain amount of commands or other information may, in this manner, be sent to the system without being lost.
The previously mentioned password may easily be changed by the command
@CHANGE-PASSWORD ,
The old password must be correctly specified to change the password. A password may consist of any characters (including control characters) except carriage return.
After the log-in is performed, the pressing of the "escape"-key or "break"-key will interrupt a command, a subsystem or a user-program which is running, and control is returned to the CIP.
If a user-program or subsystem was active, a message indicating where the program was interrupted is typed out:
This command retrieves a program file previously created by the DUMP command, and starts execution of it.
The format is:
@RECOVER <filename>
When starting programs in the user's own file-directory, or subsystems under the user SYSTEM, the word RECOVER can be left out. The file name itself becomes a recovering command.
In other words, instead of typing:
@RECOVER MAC
@RECOVER FTN
@RECOVER BASIC
@RECOVER MYPROGRAM
one may simply type:
@MAC
@FTN
@BASIC
@MYPROG
The file type is by default :PROG. The execution begins at the start address specified in the @DUMP command.
The search in the file-directories will be performed as follows:
The file-directory, where the user giving the command is given space, will be searched first. If not found, the user SYSTEM's file-directory is searched.
If a user name is specified in the file name, only that user's file-directory will be searched.
This command saves the contents of the user's virtual memory plus the central registers on the specified file.
The format is:
@DUMP
where
must be a disk-file, which must be specified in the RECOVER command for later retrieval. The file type is by default :PROG.
is the address where the program should begin execution.
is the address where the program should be reentered with the @CONTINUE command.
The amount of virtual memory to be saved may be specified by the @MEMORY command, if not, values set by the previous @LOAD-BINARY, @PLACE-BINARY or @RECOVER commands will be in effect.
This command is used to start execution in the user's virtual memory, at an address specified.
The format is:
@GOTO-USER <address>
where the <address> is an octal value of the first instruction to be executed.
The command is usually used after the program has been interrupted, by means of the "escape"-key, and when the user wants to continue execution at the address where the interrupt occurred.
Remember that all opened files are closed when a program is terminated or aborted, unless the command @SET-PERMANENT-OPEN has been used.
Binary program files on disk or paper tape, previously created by the )BPUN command in the MAC assembler, may be loaded into the user's virtual memory by the following commands.
This command reads the specified file into user’s virtual memory and starts the execution of the program.
The address used for loading and starting is found in the program file, written there by the )BPUN command in MAC.
The format is:
@LOAD-BINARY
While loading, a checksum is generated and compared with the checksum-word in the program file itself. Execution will not be started if the checksum differs.
3.3.6 Examination of User's Registers and Memory Contents¶
Two commands have been implemented by which the user may inspect and change the contents of any memory location within the virtual memory space, and of the user-accessible registers.
This command may be used to examine and modify memory locations and registers.
The format is:
@LOOK-AT \<space-reference>
where \<space-reference> may be
MEMORY: meaning user's virtual memory space. This is allowed for all users.
SEGMENT: A real-time program segment on mass storage may be reached. A segment number must be given as an additional parameter. This is allowed only for the users RT and SYSTEM. A modification causes a permanent change of the specified location on the segment.
Locations of the common area for RT programs may be reached. This is allowed only for the users RT and SYSTEM. A modification takes place in the memory and leads only to a temporary change of the specified location. The next time SINTRAN is loaded, the "old" values are retained.
Locations of the memory image of the resident part of SINTRAN III on mass storage can be reached. This is allowed only for the user SYSTEM. A modification causes a permanent change of the specified location.
Locations of the resident parts of the SINTRAN III operating system can be reached. This is allowed only for the user SYSTEM. A modification takes place in the memory and leads only to a temporary change of the specified location. The next time the corresponding core-image is loaded to the memory, the "old" values are retained.
When the <space-reference> given has been checked for legality, and made available if mass storage segments are involved, the message READY is typed.
To examine a location, the octal address should be typed followed by a slash (/). The octal contents will then be printed. The contents may now be changed by typing an octal value, followed by a carriage return. If only a cr, without a new value, is given, the contents remain unchanged and the contents of the next location are printed.
If an asterisk (*) is typed, the current address will be printed.
The contents of registers can be addressed in the same way, using a single letter to specify the register. The letters are:
P, X, T, A, D, L, S, B.
When a character not mentioned above is typed, the command is terminated and control will return to normal control mode.
If locations on mass storage segments are changed, the pages will be written out so that "patches" will be made permanent. Locations changed in the user's virtual memory or the resident part of the operating system are changed temporarily. They may be altered when loading a user program or reloading the system.
This command is also mentioned in Sections 5.4 and 6.4.3.
This command may be used to see if a peripheral device as line printer, tape reader and so on is occupied by another user or free to use. It may also be activated concerning a file in one of the directories entered.
The format is:
@WHERE-IS-FILE
Where <file-name> may be any name defined for a peripheral device or for an existing file in an entered directory.
If not in use, the message "FREE TO USE" is printed, if already occupied the message
This command has been implemented to allow a user to execute a set of commands and other input responses, previously stored on a disk file, punched on paper-tape, or comprised of a card-deck.
The format is:
@MODE
where
is the file name or device unit from which SINTRAN III will now take input lines, until the end of file or another @MODE command is detected,