Calculators

Manual / Guide · 1970

HP 9100A/B Interfacing Manual (09100-90031, 1970)

Read the PDF ↗

Hewlett-Packard's February 1970 manual for connecting peripherals and instruments to the 9100A and 9100B through their I/O connectors, with a caution that improper signals can severely damage the calculator.

Author
Hewlett-Packard
Year
1970
Type
Manual / Guide
Credit
Hewlett-Packard; scan via the HP Computer Museum, hpmuseum.net.

← Back to the Reference Library

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