HP 9100A/B Interfacing Manual (09100-90031, 1970)
Model 9100A/B
HEWLETT-PACKARD CALCULATOR
CAUTION
IT IS POSSIBLE TO SEVERELY DAMAGE THE 9100 BY IM-
PROPER HANDLING OF THE SIGNALS ON THE 1/0 TER- ?)
MINALS. THE 9100 WARRANTY DOES NOT COVER THE RE-
PAIR OF SUCH DAMAGE.
HEWLETT (ly PACKARD
Interfacing Manual
HEWLETT-PACKARD CALCULATOR
Model 9100A/B
Copyright Hewlett-Packard Company 1970
P.O. Box 301, Loveland, Colorado, 80537 U.S.A.
09100-90031 Printed: FEB 1970
TABLE OF CONTENTS
SECTIONS
INTRODUCTION 1
GENERAL REMARKS ABOUT INTERFACING
Things That Can Be Done 6
Formats for Inputting Information 9
Formats for Outputting Information 10
Nature of The Electrical Signals V4
INTERFACING INWARDS
Remote Processing of Key-Codes 13:
Block Entry of Program Information 16
INTERFACING OUTWARDS
Output of Displayed Data 47:
Block Inspection of Program Information 18
CONTROL OF AN EXTERNAL DEVICE 19
SUMMARY OF 91001/0 SIGNALS 24
APPENDIX | - THE DISPLAY PROCESS 27
APPENDIX II - 9100 FUNCTIONAL DESCRIPTION
Director and Sync State 32
Key-Code Execution Process 34
Program Execution Process 39
Program Storage Process 40
The Director 42
APPENDIX III - RECOMMENDED CIRCUITS
Electrical Considerations 46
9100 Input Circuits 48
9100 Output Circuits 52
APPENDIX IV - A SURVEY OF -HP- PERIPHERALS
Magnetic Card Reader 54
-hp- 9120A Printer 55
-hp- 9125A Plotter 57
-hp-9160A Marked Card Reader 59
-hp- 9150A Display Monitor 60
The Other -hp- Peripherals 60
APPENDIX V - MISCELLANEOUS
The Octal Code Convention 61
The Key-Code Convention 62
Key-Code Execution Times 63
Core Memory Conventions 69
Assignment of Format Codes 72
)
TABLE OF CONTENTS
APPENDIX V - MISCELLANEOUS CONTINUED
The Print-After-Printer
A Comment on NHLD
AComment on YINH and YKDN
-hp- Connectors
LIST OF ILLUSTRATIONS
Figure
Figure
Forming and processing operations
Maximum repetition rate for ITBB and the Buffered Bits
Figure
Figure
Program segment for Figure 4
9100A output signals during program segment of Figure 3
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Floating point Display
Mixed Display
Character formation
Calculator output signals during the Display
Expansion of 153rd through 158th cm of Figure 4
9100A functional flowchart
9100B functional flowchart
Recommended input circuits
Recommended level sensing circuit
ODNOaAARWNHH
Pee ee
BWNrRO
Typical internal circuitry for 9100 Key Lines
9100 internal circuit for YKDN
9100 internal circuit for YDSP
9100 internal circuit for YINH
Figure 9100 internal circuit for NHLD and NDGO
Figure 9100 internal circuitry for YRUN, NFLT and YFLT
Figure 20 9100 internal circuit for YCHA
Figure 21 9100 internal circuit for YCOD
Figure 22 9100 internal circuit for YAFZ
Figure 23 9100 internal circuit for YSKIC
Figure 24 9100 internal circuit for YGNPS
Figure 25 9100 internal circuit for YRAD
Figure 26 9100 internal circuit for the Buffered Bits and ITBB
Figure 27 9100 internal circuit for the Buffered Words
Figure 28 9100 internal circuit for ADV
Figure 29 9100 internal circuit for ICHF
Figure 30 9100 internal circuit for |OPF
Figure 31 9100 internal circuit for HOUT
Pee ee
O©ODNOAG
74
75
76
77
12
19
23
27
27
28
31
35
43
45
47
47
48
48
48
48
49
49
50
50
50
50
51
51
52
52
52
53
53
53
TABLE OF CONTENTS
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure
Table
Table
Table
Table
Table
Table
Table
32
33
34
35
36
37
38
39
40
NOoapwne
LIST OF ILLUSTRATIONS
CONTINUED
9100 internal circuit for HEMT
9100 internal circuit for ISTP
Binary encodings
Binary coded octal on the Buffered Bits
Binary coded octal on the Key Lines
Core memory
Core locations of a data register
Pulse counting with [ADV and ITBB
-hp- connectors
LIST OF TABLES
Key-codes
1/0 terminals
Character codes and unblanking codes
Meaning of the Buffered Words
9100A key-code execution times
9100B key-code execution times
Assignment of key-codes for Format operations
53
53
61
61
62
69
70
74
77
26
28
30
63
66
72
INTRODUCTION
i pe =
This manual defines the Input/Output (1/0) capability of the rear terminals
of the 9100. It explains how the 9100 can be interfaced to digital devices such
as voltmeters, counters, printers, or other computing mechanisms. Explana-
tions of the standard peripherals such as the -hp- 9120A Printer, -hp- 9125A
Plotter and -hp- 9150A Calculator Monitor, are in Appendix IV. These explana-
tions illustrate the fundamental principles, and help the designer avoid compa-
tibility problems between his interface and the standard -hp- peripherals.
Whatever the user's application, he must design interfacing hardware that meets
both the requirements of his system and of the 9100. This manual explains the
requirements of the 9100. In doing so this manual assumes that the user is
familiar with the contents of the operating manual for his 9100.
The 9100A and the 9100B interface in the same way, except for some minor
differences. The differences will be pointed out when they occur. In this
manual 9100 means either the A or the B model.
Everyone who plans to construct an interface to a 9100 should read this entire
manual. Although a section may give a comprehensive explanation of an 1/0
option, there may well be additional factors that will affect its use in the
particular interface being planned. In writing this manual every effort has been
made to document all of the facts of interest to the designer of an interface.
Some of those facts resist organization. However, every presently known detail
and exception is mentioned some place in the manual.
A definition of terms is in order. These definitions are made for convenience
in forming subsequent explanations. Figure 1 illustrates some of these defini-
tions.
Run Mode Run Mode is a phrase that describes the type of Calculator be-
havior that occurs whenever the PROGRAM /RUN switch is in the
RUN position, and nothing is done on the |/0 terminals to over-
ride that setting.
Program Program Mode is a phrase that describes the type of Calculator
Mode behavior that occurs whenever the PROGRAM /RUN switch is in
the PROGRAM position.
Key-code The key-code is the basic unit of communication with the Calcula-
tor. Each key on the Keyboard is represented by a key-code. At
present it is sufficient to think of a key-code as just a code (with
some meaning, of course) that is not necessarily associated with
any particular piece of Calculator hardware. Key-codes are two-
digit binary coded octal numbers. See Appendix V or your operat-
ing manual.
Example: The STOP key has key-code 415.
Operation An operation is a Calculator activity that can be specified by sup-
plying a key-code (or,-in certain instances, a sequence of key-
codes), which will be performed in accordance with the overall
rules of Calculator behavior.
Examples of operations: + or 333, Format Stop or 42; — 41s, and
Go To (3) (9), or 44s— 03, — 11s. Any single key [say, Go To
() ( )] could be considered an “‘operation’’.
SCOPE OF THE
MANUAL
DEFINITIONS
2 INTRODUCTION
DEFINITIONS For our purposes an operation may originate in one of three ways; two of these
CONTINUED ways are similar and are grouped together.
Errand The dictionary defines an errand as a short trip taken to attend to
some business, especially for someone else, or, the object or pur-
pose of such a trip. We shall say the Calculator is running (or
processing) an errand if it is acting upon an operation that origi-
nated with its Keyboard or |,/O terminals (‘I/O terminals” in-
cludes the Magnetic Card Reader).
Errands can originate in two ways.
Keystroke A keystroke is an errand that originated at the Calculator Key-
board.
Remote A remote entry is an errand that originated at the |//O terminals.
Entry
The third way an operation can originate is as a program step read from pro-
gram memory.
Statement A statement is an operation that originated as a step in a program
that the Calculator is running. Sometimes it is convenient to call
a closely related sequence of program steps a ‘‘statement’’.
Example: We might refer to the ‘‘Go To (3) (9)"’ statement.
It should be understood that all statements originate as errands, since that is
the only way program steps can be stored in the Calculator memory.
We need some terms to describe what the Calculator may do as it performs an
operation.
Process Process is the general term used to denote whatever the Calculator
(verb) does to accomplish the operation at hand. One of the main activi-
ties of the Calculator is to process key-codes.
Process We will have occasion to describe four major sections of internal
(noun) Calculator logic. Each will be given a name using the word ‘‘pro-
cess’’.
Example: The Display Process
One of two things happen when an operation is processed.
Storage An operation can result in the storage of a program step into pro-
gram memory. This results in a statement. This will always be
the result of an errand performed while the Calculator is in Pro-
gram Mode.
Execution The Calculator executes an operation when it accomplishes the
primary meaning associated with the key-code, as opposed to
storing the key-code in the program memory.
Example: To execute the operation 36, (X) the Calculator performs
a multiplication, or completes the Format operation 42, — 36s,
whichever is called for.
INTRODUCTION
It should be pointed out that operations can be executed several ways. The
key-code 06s, for instance, can be executed three ways:
1) enter the digit 6 into the X Register, (normal execution).
2) as part of an address of the Calculator memory.
3) as part of the Format operation 42, — 06s, (Format 6).
Table 1. Key-codes.
KEY-CODE KEY KEY-CODE KEY
00 ie} 4 stop
01 1 42 eur
02 2 43 WF FLAG
03 3 44 GoTor nt)
04 4 45 PRINT / SPACE
05 5 46 END
06 6 47 SOgKNNS:
07 7 50 wxsy
10 8 51 | ster on
n 9 52 weey
12 e 53 wary
13 a 54 SET FLAG
14 & 55 Iy1
15 a 56 7
16 c 57 epneee
7 d 60 heat
20 CLEAR 61 ROL
21 . 62 TO POLAR
22 ROLL 4 63 ace —
23 xu 64 int x
24 you 65 Inx
25 66 TO RECT
26 ENTER EXP 67 hyper ¥
27 - 67** xu
30 437 70 sinx
31 Roy val tanz
32 CHG SIGN 72 arcy
33 + 73 cosx
34 rg 74 e
35 = 75 fog x
36 x 76 x
37 CLEAR 77* — | asusy/ return
40 you
*For 9100A’s key-code 77g causes the natural logarithm of
10.0 to appear in the X Register.
** 9100B only
A SIMPLIFIED
VIEW OF THE
9100
INTRODUCTION
This discussion references Figure 1. The Display Process is the closest thing
to an idling state that the 9100 has. The Display Process forms one register at
a time on the CRT. The Sync State changes the Display from one register to
the next, and also delays the start of the X Register until a pulse derived from
the powerline is received.
At the end of the formation of each register a check is made to see if there
is a new errand to be done. If there is not, the 9100 returns to the Display.
If there is a new errand the 9100 enters the key-code that identifies the errand,
and then processes the errand.
Processing is accomplished by determining which mode the 9100 is in and
going to the appropriate major process. If the 9100 is in Run Mode the Key-
Code Execution Process will execute the key-code.
At the end of the Key-Code Execution Process a check is made to see if the
9100 is running a program. (For errands the answer will always be no unless
the errand was Continue.) If the answer is no the 9100 returns to the Sync
State, and from there to the Display, unless another errand is ready, or sync is
removed.
To process an errand in Program Mode the 9100 stores the key-code as a
statement in a program. (The Step Program errand is an exception; it causes
a special Program Mode Display.)
If the 9100 is running a program the Program Execution Process gets the next
statement in the program and gives it to the Key-Code Execution Process, which
then returns to the Program Execution Process, unless the last statement was
Stop, Format, or Print. Those operations cause the 9100 to stop running the
program.
INTRODUCTION 5
) = GENERATION OF OPERATIONS => >= PROCESSING OF OPERATIONS =,
FR EXECUTION = J,
NORMAL
STATEMENTS:
FORMAT & ADDRESSING
KEYSTROKES
ERRANDS
REMOTE ENTRIES
prog Fo STORAGE
MODE GENERATION OFA
STATEMENT
= ~
Syne State
(Changes Register)
Te
Enter Key-Code
Tprocessine OF OPERATIONS
Program Storage Process
(Stores Statements)
(Gets next Statement)
!
|
|
|
|
1} Program Execution Process
1
1
Ll
Key-Code
Execution Process
Running
a Program?
THE DIRECTOR
Figure 1. Forming and processing operations.
6 GENERAL REMARKS ABOUT INTERFACING
THINGS THAT CAN BE DONE
In general, the things that can be accomplished by interfacing to the 9100 are
limited to the following:
1) Remote entry of any key-code;
2) Output of numerical data stored in the X, Y, or Z Registers;
3) Input and output of blocks of program steps;
4) Control of an external device.
THE OVERALL When devising a scheme for interfacing to the 9100 the user must be aware of
SCHEME the general sequence of internal events in the 9100. Figures 10 and 11 are
flowcharts that depict an equivalent of these internal processes, and show the
Input/Output (1/0) options associated with each process. A complete ex-
planation of Figures 10 and 11 is given in Appendices | and II.
For external 1/0 of numerical data and program information the general
scheme provides for two speeds of |,/O operation. There are slow (limited to
less than 30 characters per second) and fairly simple methods, and faster (up
to 2,000 characters per second) but more complicated methods. Control of
an external device can be relatively simple or quite difficult, depending upon
the application, and will be treated in a separate section. Figures 10 and 11 a:
show four major processes that characterize the 9100. In each of these pro- iw
cesses and their interconnecting logic there is at least one |//O option.
1/0 OPTIONS IN The Display Process has only output options (although it takes some input
THE DISPLAY signals as well as output signals to accomplish this), and the output data is
PROCESS limited to whatever data is currently displayed in the X, Y, and Z Registers.
This data may be withdrawn at a rate up to the rate at which the 9100 forms
the characters in the Display (less than a sixtieth of a second for one presenta-
tion of the three registers). The actual rate is up to the user. It may be as
slow as necessary.
1/0 OPTIONS IN The Program Execution Process has input and output options. Output data is
THE PROGRAM limited to information about the program currently stored in the core memory
EXECUTION of the 9100. While running a program the Calculator presents each new key-
PROCESS code from the program to the |_/O terminals prior to that key-code’s execution.
The input options to this process are the two ways to halt the execution of a
Program. If the STOP key is pressed on the Keyboard, or being properly entered
on the 1/0 terminals, the execution of the program will be interrupted and the
9100 will return to the Display Process. A Continue errand must then be used
to restart the program. The second way to interrupt the execution of a program
stops the Calculator prior to the execution of a key-code, and keeps it stopped
until it is released. During the time it is stopped there is no Display, or any w
other effective activity. For all practical purposes the 9100 is internally stop-
ped. When action resumes it will be as though the 9100 were never stopped.
Only one signal is involved in this mechanism and it is YSKIC (see Page 39).
GENERAL REMARKS ABOUT INTERFACING 7
THINGS THAT CAN BE DONE
The Key-Code Execution Process has only output options. In this instance, the 1/0 OPTIONS IN
information that is outputted is not numerical data, nor is it, strictly speaking, THE KEY-CODE
a key-code about to be executed by a program. The ouput will depend upon the EXECUTION
key-code being executed, whether the operation is a statement or an errand, PROCESS
and on the input signal YAFZ. The results are summarized below.
Print errands PRINT
A signal called HOUT is given, and automatically followed by key-code 00g. OPERATIONS
The key-code is not executed or otherwise used. It is just presented on
the 1/0 terminals after HOUT is.
Print statements
Same as for Print errands except that the 9100 will stop the execution of
the program and wait in the Display for a Continue errand to be entered.
(The 9120A Printer enters a remote Continue errand after a printing cycle
done in the context of a Program.)
Format errands FORMAT
1) YAFZ is not grounded: OPERATIONS
A signal called HFMT is given and followed automatically by key-
code 00s.
2) YAFZ is grounded:
HFMT is given and the 9100 stops everything to wait for the next
errand. Then that key-code is presented on the |,/O terminals,
and the 9100 returns to the Display. r
Format statements
1) YAFZ is not grounded:
Same as for Format errands except the Calculator will stop after
the execution of the Format statement. y
2) YAFZ is grounded:
Here the key-code following HFMT is the one after the Format in |
the program. Remember — that key-code is not internally used; |
it is merely presented on the |_/O terminals after HFMT is given. _
After that the 9100 returns to the Display, as the execution of the |
Program is interrupted. A Continue must be given to restart the _
program.
Appendix II contains some additional information about HOUT and HFMT.
NOTE |
Oe] On the 9100B there is no YAFZ on the |/0 terminals. In the
91008 it is as though there were a YAFZ and that it is always
grounded.
PROGRAM
STORAGE
PROCESS
ADDITIONAL
1/0 OPTIONS
GENERAL REMARKS ABOUT INTERFACING
ea = = ~ =
a
t
a
a
THINGS THAT CAN BE DONE
The Program Storage Process has input and output options. They are con-
cerned with the entry and inspection of the contents of the core memory.
THESE MECHANISMS ARE INTENDED FOR USE WITH PROGRAM INFORMA-
TION ONLY AND SHOULD NOT BE USED FOR THE ENTRY OR INSPECTION OF
NUMERICAL DATA. The output mechanism can access numerical data stored in
core memory; however, it would be extremely difficult to take advantage of it.
See Appendix V for what happens. By the same token the input mechanism of
the Program Storage Process can access registers that the user might like to
store data in. The user would have to go to great lengths to insure that the
data entered ended up as the intended numerical data in the register. These
170 mechanisms are quite useful, however, when dealing with program infor-
mation. The rate of entry or inspection is limited to 2,000 steps per second,
but can be as slow as desired.
The logic connecting the four major processes listed above has some |/O
options of its own. One input option is a slow method for the remote processing
of key-codes. If the 9100 is in Program Mode the rate of entry can be as high
as 30 key-codes per second. If the 9100 is in Run Mode the execution times
of the various key-codes are a limiting factor, with a practical maximum being
30 errands per second for even the shortest errands. This method parallels the
way the regular 9100 Keyboard works, and is also the easiest to employ. It has
a built in delay of 12 msec that allows contact bounce to end, should mechani-
cal devices be used to generate key-codes.
Also, the Calculator presents each new errand to the |//0 terminals.
A second group of input options deals with the synchronization of the Display
Process. Synchronization can be ignored if desired, thus saving time, or the
Display can be halted by making the 9100 wait in the Sync State. Control of
the synchronization mechanism is used by several of the |_/O options previously
mentioned.
GENERAL REMARKS ABOUT INTERFACING 9
Sra
FORMATS FOR INPUTTING INFORMATION
It is important that the user understand the sequence of key-codes that repre-
sent the entry of information during interfacing.
For entry of numerical data the sequence is exactly what it would be if those
operations were entered manually from the Keyboard. Several variations are
possible. The user should pick the one that best matches his application. For
instance, numerical data might always be formatted as a floating point number,
but a decimal point may or may not be part of the entry. Or, the input data
might be formatted as a fixed point number, allowing the 9100 to keep track
of the exponent. One important exception to this is when dealing with numbers
whose absolute values are less than 10-*. When entering a leading decimal
point followed by several zeros, only the first eight zeros are effective. If a
ninth zero is entered and then followed by a non-zero digit, the result is simply
decimal point - digit. The best way to see this is to try to enter such a number
manually from the Keyboard while the Display is set for floating point. Note
that the exponent does not increment from —9 to —10, but from —9 to -0.
The sequence of key-codes used to enter a program from the |,/O terminals
would be identical to that used for manual entry from the Keyboard. The start-
ing address must be set prior to the actual entry of program information.
Among the I/O terminals are six lines, NK20 - NK25, called Key Lines. They
are used to encode key-codes. A key-code is a binary coded octal number. Its
six line code is obtained, complemented, and then applied to the Key Lines. See
Appendix V. Note that a Key Line is either left alone or grounded. How the 9100
is made to accept the key-code depends upon which method is being used to
enter the key-code, and will be covered in the section titled INTERFACING IN-
WARDS.
There are some input signals that are not Key Lines. See page 24.
i
y NUMERICAL
DATA
:
ih
}
M
i
¢
?
\! REMOTE
PROGRAMMING
INPUT SIGNALS
10 GENERAL REMARKS ABOUT INTERFACING
FORMATS FOR OUTPUTTING INFORMATION
PROGRAM DATA Output data may be of two types: program steps and numerical data. Each
program step will appear as a binary coded octal number across six lines. The
user must select the starting address prior to beginning the actual inspection
process. After that, the address will increment in a straightforward manner, as
the Step Program operation is used to change the address.
NUMERICAL For any data to be obtained from the Display, be it program information or
DATA numerical data, the characters will be available in an order dependent upon the
Display itself. Strictly speaking, the Display is available as output data, and not
the contents of the X, Y or Z Registers*. What is available is this: starting with
the X Register, the rightmost character followed by those to the left until the
leftmost has been presented. Then the Y Register is presented in the same
way, followed by the Z Register.
Restricting our attention to presentation of individual characters, we find that
they may be presented in each of two ways. The first way is as a binary coded
decimal number across six lines. The second way is peculiar to the 9100 and
was provided to interface with the 9120A Printer. In the second way each
character except the decimal point is given two halves, and a code that cor-
responds to that particular half. These codes are used to unblank the beam of
the CRT as it moves through the Display. See Appendix | for complete details. w@
OUTPUT The six lines involved in the outputting of codes are called the Buffered Bits,
SIGNALS and are named F20B through F25B. Normally, they are all at ground and are
strobed to reveal a code by a signal called ITBB. For the next 500 nsec a code is
presented on the Buffered Bits.
When numerical data is transmitted from the 9100, the user must be able to
tell which register the data came from. Two lines called the Buffered Words
(F41B and F40B) make this possible. In contrast with the Buffered Bits, the
Buffered Words are continuously available to the user. The indications are of
a DC nature, except when internal transitions are in progress, but are valid only
while the 9100 is involved in the Display Process. See Table 4.
There are other output signals available on the |//O terminals. See page 24.
*The displayed registers can contain “blanked non-zero digits'’. See Appendix
|, Blank Characters, and Appendix V, Core Memory Conventions.
GENERAL REMARKS ABOUT INTERFACING
NATURE OF THE ELECTRICAL SIGNALS
Some of the outputs from the 9100 will be as short as 500 nsec while others
will be essentially DC. While the inputs to the 9100 will range from DC to
the millisecond range, they will be subject to 500 nsec sampling. Hence, the
user should pay close attention to the transition times of the signals he supplies
to the 9100: they should be as short as possible.
Because of those factors, problems in maintaining adequate logic levels at the
1/0 terminals or at the interface device can arise if the two are separated by a
distance of more than approximately three feet. Generally, these problems can
be solved by the use of suitable buffers. However, the use of long wires means
additional crosstalk. In order to insure maximum logic levels, one should use
coaxial cable with suitable driver circuitry.
CAUTION
IT IS POSSIBLE TO SEVERELY DAMAGE THE 9100 BY IM-
PROPER HANDLING OF THE SIGNALS ON THE 1/0 TER-
MINALS. THE 9100 WARRANTY DOES NOT COVER THE RE-
PAIR OF SUCH DAMAGE.
It is highly recommended that the user employ the suggested input circuit for
each input he wishes to use. See Appendix III. In no case may the user allow a
positive DC voltage to come in contact with an input to the Calculator.
The output circuits are less delicate than the input circuits. Still, no external
voltage should be applied to any of the outputs, except as shown in the recom-
mended level sensing circuit. Appendix IIl contains a recommended level sens-
ing buffer circuit.
For noise immunity it is strongly suggested that any output level sensing circuits
be referenced to —2V rather than ground. Because the outputs are often
generated by internal gating, there is a minimum impedance that can be put
from an output to ground, before the internal clamping action is unable to divert
current from the output. Thus, too low an input impedance on the sensing de-
vice will result in false outputs. This problem disappears and the sensing device
can become a true current sink as long as it is refrenced to —2V rather
than ground.
The 9100 uses negative-true logic. If an output terminal is more positive than
—2V that signal is a logical 0. If the terminal is more negative than —5V (for
level sensing by voltage) or supplying current (for current sink type sensors),
the output is a logical 1. If an input terminal is grounded the 9100 treats that
signal as a logical 0. If an input terminal is more negative than —8V or a high
impedance to ground the 9100 treats that signal as a logical 1.
TIMING
CABLE LENGTH
RECOMMENDED
CIRCUITS
SIGNAL LEVELS
12
SIGNAL TIMING
GENERAL REMARKS ABOUT INTERFACING
NATURE OF THE ELECTRICAL SIGNALS
All output signals except the Buffered Words and ISTP are pulses. The pulse
width is about 500 nsec (they are not
very sharp and their measurement is
open to interpretation). Many signals (ICHF, IADV, IOPF, etc.) occur at irreg-
ular intervals, depending upon what the 9100 is doing.
However, there are three output options that have a similar timing nature. They
are YCHA, YCOD and YGNPS output options. While they are being used pulses
on ITBB and the Buffered Bits will occur repeatedly as shown by Figure 2. This
is also the highest repetition rate that is ever found when outputting codes.
—}
o—
ITBB ‘
oo
F20B I
o—
F2iB i
|
wha te ae
F228
—t) = 66 wSEC
te = 500 nSEC
Lu
Lu
Lu
Lu
F238
F24B
F25B
-eo-o-o0-0
Figure 2. Maximum repetition rate for ITBB and the Buffered Bits.
INTERFACING INWARDS
REMOTE PROCESSING OF KEY-CODES
The following discussion references Figures 10 and 11.
Slow rate processing of remote entries is accomplished by applying key-codes to
the Key Lines (NK25 - NK20) in accordance with the scheme outlined in Appen-
dix V. In order to make the 9100 operate on an applied key-code all that is
necessary is to make YKDN go negative while the 9100 is displaying. Then
the key-code will be seized and processed. The 9100 will then come back to
the Display Process. This sequence of events is exactly the one used by the
Keyboard. In fact, the 9100 cannot tell the difference and almost all rules of
Calculator operation are in effect. However, entering the Pause key-code (57s)
will not halt execution of a program when that key-code is held on the Key
Lines during a Pause in a program.
In order to cause a key-code to be processed again, or to process another key-
code, set to the desired key-code and release YKDN (in either order) for at least
10 msec, and then let YKDN go negative again. Making YKDN go negative will
cause ONE use of the key-code. After the key-code is processed YKDN will no
longer cause the New Errand Qualifier to be met until YKDN is released for
about 10 msec and one pass through the Sync State has been completed.
Making YKDN go negative does not in itself cause the New Errand Qualifier to
be met. Twelve msec after YKDN goes negative an internal signal is generated
which actually causes the qualifier to be met. The 12 msec is provided to allow
contact bounce of the Keyboard switches to end. Hence, mechanical devices
can be used to form key-codes, if the above method with YKDN is used.
Roughly speaking, the maximum processing rate is determined in the following
way: 12 msec delay for YKDN (spent in the Display or possibly the Sync State)
plus a maximum of 5 msec to get back to the New Errand Qualifier (once in the
Display) plus processing time of the key-code (Run or Program Mode makes a
difference) plus maximum of 16 msec waiting for sync plus a minimum of 10
msec to reset YKDN.
Several variations are possible, depending upon how long it takes to process the
key-code and at what point in time YKDN goes negative. For instance, you could
get back to the Sync State and have to wait almost the entire 16 msec. Use
that time to recycle YKDN and set up the new key-code. But on the other hand,
you might get back to the Sync State just before the sync pulse and have to re-
cycle YKDN while in the Display. Another variable is the actual time spent form-
ing the registers, since the New Errand Qualifier is asked after every register.
If the Display is being formed in floating point the time per register is fixed at
about 5 msec. If, however, the Display is in fixed point, then the time spent
per register can be anywhere from less than 0.5 msec to about 5 msec. So it
is very difficult to state precisely how fast operations may be processed with the
slow method. A rule of thumb for digit entries and other operations with short
processing times is that a maximum of around 30 operations per second is
practical. If the 9100 is in Program Mode, then all the key-code processing
times are the same and short enough to allow the 30 per second limit.
There are things that could be done to enhance this method, but in every case
it is done by borrowing one or more ideas from the faster method.
SLOW RATE
PROCESSING
13
14
FAST RATE
PROCESSING
REMARKS
ABOUT EITHER
METHOD
INTERFACING INWARDS
REMOTE PROCESSING OF KEY-CODES
The main difference between slow rate processing and fast rate processing is
that in the fast case all ambiguity is removed about the various delays in the
Display and Sync State. In addition, there is no longer a 12 msec wait for
contact bounce to end. The limiting factor becomes essentially only the time
for the processing of the individual key-codes.
It is necessary to use YDSP if there is a series of key-codes to be processed
in a remote manner in the shortest possible time. If YDSP is used to cause the
New Errand Qualifier to be met, the qualifier will be met every time it is asked,
with no restrictions. If the same key-code were left on the Key Lines for a long
time while YDSP was at ground, that key-code would be processed repeatedly.
Thus, the user is responsible for changing the key-code on the Key Lines during
the processing of the key-code, if he is to maintain the sequence he desires.
Now he might find this hard to do for several reasons, some of which may
have to do with his source of key-codes. The thing to do in this case is ground
NHLD. Then when the 9100 is finished processing the key-code, it will come
back to the Sync State and wait there until NHLD is released (5 to 10 psec
would be plenty)* or NDGO is grounded for a few nsec. _In this way the user
may have as much time as necessary to formulate the next key-code, and yet
have it processed immediately when it is ready. See Appendix V for an impor-
tant remark about NHLD.
If the 9100 is in Run Mode there is a way to tell right away that the key-code
has been accepted, whether YKDN or YDSP was used to enter it. The first |OPF
that occurs after the onset of YKDN or YDSP indicates that the key-code has
been accepted. This method won't work for remote entry of program informa-
tion because there are subsequent events that require the key-code to remain
present on the Key Lines.
There is yet another way that the acceptance of a key-code can be determined,
and it works for most remote processing situations. The exceptions are a Con-
tinue errand, a Pause errand and the first two key-codes of a Go To ( ) ( )
errand in the 9100A or (when YAFZ is grounded) the first key-code of a Format
errand. The method is to use ICHF to indicate that the operation has been
processed, and that the 9100 is headed back towards the Display Process.
If the 9100 is running a program ICHF will not be given after most key-code
executions, not even in the case of a Pause. ICHF will be given only when the
9100 goes back to the Display Process to be available for use on errands. This
includes when a Stop operation is used to interrupt the execution of a program,
and the execution of the Format and Print statements. ICHF will be given after
every completed errand except as noted in the previous paragraph.
The disadvantage to using this method is that if control of the Sync State is not
employed the amount of time between ICHF and the next asking of the New
Errand Qualifier can vary between about 5 »sec and 16 msec, depending upon
the sync pulse. The problem is that there might not be much time to get the
next key-code set up if maximum speed remote processing is desired. If YDSP
is continually grounded during remote processing then the next key-code must
be set up in that time or there must be control of the Sync State to guarantee
time to set up the next key-code. If YKDN is being used, the 9100 will go back
*Releasing NHLD has its drawbacks. See the section titled ‘‘A Comment on
NHLD", Appendix V.
INTERFACING INWARDS 15
REMOTE PROCESSING OF KEY-CODES
to the Display Process anyway, and as much time as needed can be taken to
set up the next key-code.
So far the idea of remote processing of key-codes has assumed that the 9100
was not running a program. If it is, then the 9100 never even looks for new
errands unless there is a Pause in the program, and even then the New Errand
Qualifier is disabled insofar as YKDN is concerned. It is NOT disabled for YDSP.
YDSP should not be allowed to go to ground during the execution of a program.
This does not mean that a Stop errand cannot break in on the execution of a
program. The mechanism for that is in the Program Execution Process, and
the next ICHF after key-code 41, is put onto the Key Lines indicates that the
Stop errand has been accepted. All that is necessary is to put key-code 41,
on the Key Lines. It is not necessary that YKDN go negative. The execution of
the program will be interrupted, unless the key-code about to be executed by
the 9100 is 47, (Continue - it undoes the effect of the Stop)**. This is so since
the 9100 actually does the next step in the program before it finally stops.
The remote execution of the Go To and Format errands is subject to some
restrictions. See Appendix II.
**A Print would also result in a Continue.
16
PROGRAMMING
WITH YSKIC
INTERFACING INWARDS
BLOCK ENTRY OF PROGRAM INFORMATION
There is a method using YSKIC that allows storage of entire blocks of program
steps at a rate up to 2,000 key-codes per second. The significant difference
between this method and the other methods of entry is that with the other
methods all entries affect the contents of the X Register, while the method with
YSKIC does not. Another difference is that YSKIC can be used to set the rate
of information flow, rather than as in any of the other methods.
The method is to ground YRUN, NDGO, YDSP, and YSKIC. After a minimum of
250 usec after the New Errand Qualifier is asked YSKIC is made true for a
maximum of 150 psec. Rate control is achieved by taking more time before
letting YSKIC go true.
The method involving YSKIC enters the key-code three times. (See Figures 10
and 11.) The entry immediately following the New Errand Qualifier does not
count, and the key-code that is entered there is not used as long as it is not 51;
(Step Program—don't try to store it as part of a program). The desired key-
code must be set up prior to the second ‘‘Enter key-code’’, and last for at least
5 psec after YSKIC becomes true. After that the key-code can begin its re-
cycling process towards the next key-code.
YRUN, NDGO, and YSKIC should already be grounded (in any order) not later
than when YDSP reaches ground or all four may be grounded at once by
very fast low impedance clamps. This should be done while the 9100 is in the -
Display Process, or locked in the Sync State.
YDSP should remain at ground until the Program Storage Process has been
entered with the last key-code to be stored. YDSP must then be made true
before the New Errand Qualifier is asked again. NDGO can be made true at
the same time as YDSP, or later if desired. After YSKIC is made true to enter
the last key-code in the sequence, it can stay true. YRUN must remain at
ground for at least 5 psec after YSKIC goes true for the last key-code.
Prior to using this method for the block storage of program information, the
desired starting address of the program must be entered with one of the remote
methods, or from the Keyboard. This would be done with an End or Go To
errand.
Strictly speaking, it is possible (but difficult) to use the block entry method to
enter numerical data directly into a register (0 through 9 and a through d).
See Appendix V for the necessary re-ordering of the digits of the number prior
to the entry, and an explanation of the hazards involved.
It is not absolutely necessary to use YDSP to make the New Errand Qualifier be
met. It could be done with YKDN. By making YKDN be logical opposites of
both YRUN and YSKIC, a hybrid remote method can be developed for the block
storage of key-codes. Inside the Program Storage Process the path is exactly
the same. The major difference is that entries can be made (at a much slower
rate) with less sophisticated logic. There is no worry about multiple entries w
if the next key-code is not set up in time. YKDN must be recycled each time a
new entry is to be made. In between times the 9100 just displays the unaltered
X Register.
e
INTERFACING OUTWARDS
OUTPUT OF DISPLAYED DATA
Appendix | contains a complete explanation of character and register formation
in the Display Process. Data available for output is limited to the characters
visible in the Display, and a few other pieces of information, such as the register
currently being displayed. Note that characters can be blanks. However, not
all blank spaces in the Display are formed from blank characters. See Appen-
dix |. There are no provisions for remote setting of the Decimal Wheel, should
fixed point Display be required. Any output scheme that takes data from a
fixed point Display must have provisions for a Display that reverts to floating
point due to too large a number in the register.
It is more difficult to get numerical data out of the 9100