Software

The software part of the specification is the most difficult to state in precise terms This is partly attributable to the prevalence of an imprecise vocabulary in which several words can mean the same thing (monitor, executive, organizer), a practice that compels the specification writer to describe programs by function. Some of the difficulty may also be credited to the existence of the two distinct kinds of software systems programs (sometimes called utility programs or operator routines), which implement programming, and process programs, which implement data handling and control Avoid confusion by specifying programs in terms of the tasks that each is to perform

The designer must be very firm about receiving the systems programs in working order Although many of the programs are fixed for all systems, those which require the operation of peripherals may never have been tried on the exact configuration being specified.

Several of the programs listed in the sample specifica­tion (below) are optional Many users will not make the compiler a firm requisite, although most U S man­ufacturers include some version of FORTRAN in the software package The editor program is very valuable when paper tape is the programmer’s only high-speed communica­tion with the computer, but the editor program loses value if punched-card equipment is available. The process pro­grams are useful only to the extent to which they can be adapted to the application at hand. The current difficulty in this regard is simply that a compact and efficient software package cannot support a variety of applications, nor can a computer, properly sized for the application, support an oversized software package that has been designed to suit all occasions. It is hoped that in the future a truly modular approach to process software will allow the designer to specify a control system, equipment, and programs as easily as he has specified analog equipment in the past1 9 The software section of the sample specification follows

6. SOFTWARE

Specific software requirements to be furnished with this equipment are listed m the following sections In addition, each bidder shall include a description of all software available (including extra price where applicable) for the specific configuration (core memory, peripherals, etc ) described in this specification

A complete listing of the software documentation available for the specified configuration shall be supplied

6.1 Executive

An executive monitor oriented to on-line real-time proces­sing shall be provided The monitor shall reside on the disk, along with the processor and library routines, and shall utilize the disk for scratch storage if necessary. Foreground-background processing shall be required Foreground operations shall include provision for both resident (in-core) and nonresident (core-disk swapping) real-time programs. Both the monitor and real-time programs shall be protected against inadvertent destruc­tion by a background program.

The monitor shall provide automatic interrupt, context switching and storing, programmable priority-interrupt structure, nested-interrupt inquiries, program-pnonty queries, and linkages and facilities for handling all devices included m this specification. Device-independent I/O programming shall be provided. The monitor shall provide for reentrant subroutine execution The maximum time that the monitor disables interrupts shall be stated

6.2 Compiler

A FORTRAN compiler shall be provided to allow programming in English and mathematical-like state­ments The compiler shall be capable of operating in a real-time environment and, as a minimum, of meeting the following requirements

Compliance with ASA Standard X3.9-1966 FORTRAN.

Intermixing of FORTRAN statements and assembly — language statements by macros or other suitable means.

Provision for reenu. nt subroutines.

Provision for queuing and utilization of priority interrupts in real time

6.3 Assembler

A symbolic assembler program shall be provided which processes a machine-oriented language. The assembler shall provide pseudo instructions for the purpose of defining symbols, reserving memory, linking subroutines, and controlling mput/output options. The assembler shall provide macroinstruction capability.

6.4 Correction Program

A correction program shall be provided which shall enable corrections and additions to be made on source programs by inputting the source program into memory (limited by the capacity of the memory) and making corrections through the keyboard. The output shall be a new program taken from memory which includes the corrected state­ments.

6.5 Diagnostic and Utility Programs

Programs shall be provided to assist programmers during the debugging phase of program development. These programs shall include, but not be limited to, the following features

Clearing all or part of memory Modifying memory from the keyboard.

Printing all or part of memory under specified conditions.

Inserting and deleting breakpoints.

Initiating a jump on condition to any part of memory. Additional features shall be listed in the bid response.

6.6 Input/Output Programs

Input/output drivers shall be provided for all peripheral devices required in this specification. The drivers shall provide for testing device status and executing data transfers. The tests used for each device, the device address (logical and hardware), and the number of interrupts, by level, shall be indicated in the bid response

6 7 Maintenance Programs

Maintenance programs shall be provided which enable testing of the entire central processor and all peripheral equipment Testing shall include the memory instruction set, central control, arithmetic section, priority interrupts, and each peripheral

6 8 Delivery Form

All software shall be delivered as individual paper tapes. Where more than one program (e g., loader and monitor) resides on a tape, the individual tapes will also be supplied This requirement does not apply for the library decks for FORTRAN and assembly language

6 9 Documentation

Three sets of all software manuals shall be provided All paper tapes shall be accompanied by a source program listing.