Chapter 31 ½ A Dual-Processor Desk-Top Computer: The HP 9845A 509
discusses the user environment and presents the internal storage format
for user programs. The system organization, including process and processor
synchronization, control, and communication, is outlined in Sec. III. Some
details of each LSI component are provided in Sec. IV. Section V focuses
on interprocessor communication and memory address sharing. The paper concludes
with some considerations about the primary I/O device, the CRT display.
II. The User Language and Internal Form of Programs
The language of the System 45 is ANSI BASIC, enhanced to include string and matrix operations, subprograms, program linking, tracing, formatted output, mass storage files, and graphics. To aid in readability, variable names have been extended from a single letter or a single letter followed by a single digit to include zero to fourteen lowercase letters, digits, and/or underscores following a single uppercase letter, Major design goals in implementation of the BASIC interpreter were:
2 Interactive operation, to allow the user to interrogate and change the values of program variables, even as the program proceeds
3 Maximizing speed of execution within the constraint of interactive operation
4 Allowing program lines to be parsed to a form from which they can be reconstructed, in a form similar to that in which they were originally entered
most flexible way of adding language capability. Second, optional ROMs, increasing language capability, may be plugged into an option ROM port, And finally, the fundamental machine capability which exists within every System 45 includes a fixed set of keywords. Tables of keywords associated with the above three mechanisms are searched in the sequence above (allowing an optional capability to override the capability of the basic machine). When a match is found, the character position of the keyword in the source line is placed in the upper half of the second word of the internal form buffer (Fig. 3), and a pointer, associated with the element of the linked list for which a match was found, is placed in the third word. This pointer actually points to the fourth word down from the end of the keyword (see Fig. 4), at which location the ROM code for execution of that statement is located. Two words up from the execution routine is a pointer to the routine which performs syntax analysis of the rest of the statement. The syntax supervisor uses this address to pass control to the next statement syntax routine.
The statement syntax routine shown in Fig. 4 for the IF statement immediately
passes control to the expression syntax routine, which determines the order
in which operations will be performed and which operands are used by each
operation. The expression syntaxer creates an internal form for expressions
which contains a set of operations that will be sequentially executed at
run time; the present activity is still part of storing the line. Each
operation consists of an operator pointer followed by zero or more operand
pointers. For example, the computation of A * B + C * D involves the multiplication
of A and B, followed by the multiplication of C and D, followed finally
by the sum of these two products, and consists of the three operations,
as illustrated in Fig. 5.