Page 1
HEWLETT-PACKARD HP 00041-15043 HP-IL Development Module OWNER’S MANUAL...
Page 2
This manual has been re-typeset using the text and code from the original HP manual. As such, copyright remains with HP. Large parts of the text were OCRed while others were retyped. The front and back covers have a white background because printers always leave a blank band around the page, so it is better not to have a background.
Sending Identify Messages..................38 Sending Arbitrary Messages...................39 Boolean Functions ....................40 Non-Decimal Input and Output................42 Reading and Writing of the HP-IL IC Registers............44 Receiving Messages in Idle Mode ................45 Appendix A: Care, Warranty, and Service Information...........47 Appendix B: Null Characters..................49 Appendix C: HP-41 HP-IL Integrated Circuit..............51...
9) Read or write any register in the HP-IL integrated circuit. This manual assumes that you are familiar with the HP-IL protocol as specified in the HP-IL System Intro- ductory Guide to the Hewlett-Packard Interface Loop, by Kane, Harper, and Ushijima (Osborne-McGraw Hill, Berkeley, 1982).
HP-41 to monitor and display the HP-IL messages as they go around the loop. In SCOPE SCOPE mode, the HP-41 will no longer source frames, but it will merely display the mnemonic of a re- ceived message and then echo the message on to the next device.
Page 8
Section 1: HP-IL Analyzer Now that the scope is ready, initiate the HP-IL transaction that you wish to observe. Keystrokes Frame Received Display AAD 1 AAD 1 TAD 1 TAD 1 DAB 16 DAB 16 Until now the messages have been staying in the display for .5 seconds. Press and start the sequence again.
Page 9
Section 1: HP-IL Analyzer To review the messages that have just been received, press , which sets the pointer to the start of the ← sequence. Keystrokes Frame Received Display 00 AAU ← You can now single step through the buffer using...
How to Read This Section The programs in this section have been listed differently from the HP-41 manual. The listing is similar to that produced by trace mode. Line numbers are not used because they are irrelevant to the program. In some cases, multiple program steps are used on the same line.
Section 2: Example Programs Program: WGPIO Description: Writes a control register of an HP-IL to GPIO interface (HP 82165A/HP 82166A). Input: The X-register contains the new contents of the register, the Y-register contains the number of the register to be changed.
Get the address into the X-register, untalk the GPIO, and return. *LBL 00 Manual I/O is very simple. The HP-IL module stores the selected address in RREG register 4 of the HP-IL chip STO 02 Return the address in register-X and register 02.
Input: None. Output: Sets HP-IL register 0 to 64 (CA), sets HP-IL register 3 to 64 (AIDY), and sets user flag 18, which enables the INTR routine. *L8L "ENBINTR" 3 ENTER^ 64 WREG Set HP-IL register 3 to 64 (AIDY).
Results in the display. Warnings: This program is not quite as fast as an HP-16C, nor does it handle word sizes as large as sixty-four bits. Remember that the largest number is thirty-two bits long, and the actual number of bits viewable is dependent upon the current base.
Page 16
Section 2: Example Programs *LBL "8" 8 STO 00 RDN GTO 01 *LBL "-" Various arithmetic and logical operations: - GTO 01 *LBL "+" + GTO 01 *LBL "*" * GTO 01 *LBL "/" / GTO 01 *LBL "OR " Note the trailing space.
Warnings: This program is slow enough that the HP-IL module will time out and give a transmit error. In order to drive this program, a controller program must be written with the development module. This program is given on page 17.
Page 18
Send 0 (no SRQ) or 128 (SRQ). GTO "ETO" *LBL "1378" CF 25 --- SDI --- 1213214004 OUTBIN 49 OUTBIN Send “HP-41” and ETO. GTO "ETO" *LBL "13791" CF 25 --- SAI --- 0 OUTBIN Send DAB 0 and ETO.
INTR will not be executed. This program assumes that the con- troller is sending IDY’s around the loop. The next IDY to go around will have the service request bit set, and the controller will ask the HP-41 for status. *LBL "SENDA"...
Page 20
Section 2: Example Programs Get rid of FRAV? or FRNS?. *LBL 01 RFRM...
Additionally, the HP-IL integrated circuit is reset whenever the HP-41 goes into idle mode unless the AIDY bit in the HP-IL integrated circuit is set. This bit imposes constraints upon the operation of the loop. To avoid these constraints various functions, such as...
The development module handles some of its errors differently from the way the HP-41 handles its errors. Flag 25 is still used to trap errors, but the flag is not cleared by an error. Instead, an error code is returned to the X-register.
SCOPE Displays HP-IL messages Description: Displays HP-IL message mnemonics and stores them in the buffer if store mode is selected. Messages can be delayed from 0 to 1.5 seconds. The delay for IDY messages is always zero. Input: When executed from a program, the X-register is the number of messages to be received before ex- iting.
Page 24
Sets user flag 33 Description: When user flag 33 is set, the HP 82160A HP-IL module functions will not and can not access the loop. Setting this flag will prevent the HP-IL module from searching the loop for a printer. While flag...
Page 25
Section 3: Reference Section Input: X, an integer number from 0 through 255, and user flags 0 through 7. Output: X, an integer from 0 through 255, and user flags 0 through 7. Warnings: Any number from 0 through 999 will be converted to an integer; only the low eight bits will be used.
1771 bytes. The buffer size will be rounded up to the next larger increment of seven bytes if X is not a multiple of seven. If the HP-41 does not have enough memory for the buffer, it will pack the memory and ask you to try again.
Page 27
Description: Prints the bytes in the buffer in hexadecimal format. The bytes are printed starting from the buffer pointer and ending at the end of the buffer. If the HP 82143A printer is plugged in, it will be used for printing.
LA and sends SDA before reading. If CA is not set, then LA is not set and an SDA is not sent. X bytes are input from HP-IL and stored into the buffer starting at the current pointer. The transfer is terminated by one of the following conditions: 1) ETO.
Page 29
Section 3: Reference Section 4) Reaching the end of the buffer. The END OF BUF error is generated. 5) Sixty seconds after the most recent message is received; the TIME OUT error is generated. 6) Pressing any key generates the TIME OUT error.
Section 3: Reference Section E. Buffer Output BUF-XA Convert a string to a number in X Description: Converts a string representation of a number into the X-register. Starting at the buffer pointer, X bytes are taken as the ASCII representation of a number, whose value is returned to X. Characters which do not fall into the set of the digits zero through nine, the radix indicator “.”, the exponent indicator “E”, and the Line Feed character are ignored.
Page 31
NRD handshake performed. An ETO will be sent after the desired number of bytes has been sent. Input: The X-register contains the count of bytes. Output: The data messages are sent to the active listeners on HP-IL. Warnings: Does not wait for an SDA.
Section 3: Reference Section F. Buffer Comparisons All of these comparison functions act just like the comparison functions in the HP-41. If the question being asked is true, the display will contain , or execution will continue with the next step. If the question is false, the display will contain , or execution will continue after skipping a step.
Section 3: Reference Section G. ALPHA Register Functions ASIZE? X gets the number of characters in ALPHA Description: Returns the number of characters contained in the ALPHA register. Leading nulls are ignored. Input: ALPHA register. Output: The X-register contains the number of characters in the ALPHA register; the stack is lifted. A-XL Removes the leftmost ALPHA character and puts it in X Description: The decimal value of the leftmost character in the ALPHA register is placed in the X-register.
Page 34
Section 3: Reference Section A-XX The Xth ALPHA character’s value is placed in X Description: The decimal value of the Xth ASCII character in the ALPHA register is placed in the X- register. The character in the ALPHA register is left untouched. The original position in X is saved in the LASTX-register.
ETO is not sent after execution. At least one and no more than seven data bytes will be output by OUTBIN Input: The integer part of X is output. Output: Data bytes to the active listeners on HP-IL. OUTBINY Output bytes from X, using Y as the number of bytes to send Description: Same as except that the number of bytes transmitted is determined by the Y-register.
Section 3: Reference Section I. Sending Command Messages These functions use the same output routine as that in section H. All of these functions will set CA before execution, as it is a violation of protocol for a non-controller to send any of these messages. Sends AAU Description: Sends the Auto Address Unconfigure command.
Page 37
Section 3: Reference Section Sends LPD message Description: Sends the Loop Power Down command. Sends NRE message Description: Sends the Not Remote Enable command. Sends REN message Description: Sends the Remote Enable command. Sends SDC message Description: Sends the Selected Device Clear command. Sends the TAD message specified in X Description: Sends a Talker Address command.
Section 3: Reference Section J. Sending Ready Messages Sending ready messages is performed in the same manner as sending command messages. In certain cases the time out and error checking are not performed because a message is not returned. Those functions which do not expect a message to return will explicitly state this.
Page 39
The HP-41 waits for the NRD message to return. If anything else returns, a FRNS ERR error is gener- ated. The saved data message is sent out on the loop. The HP-41 waits for an ETO to return. If anything else returns, an is generated.
Section 3: Reference Section K. Sending Identify Messages. Sends an IDY message, returns data bits to X Description: Sends out an Identify message with the data bits set to zero. CA is set before execution. When the message returns, the eight data bits are pushed on the stack. If the message does not return within ten seconds, a TIME OUT error is generated and -1 is pushed on the stack.
Reads the already present message into X, Y registers Description: Reads registers one and two of the HP-IL integrated circuit and puts them on the stack where the X-register contains the three control bits and Y-register contains the eight data bits of the message.
OUT OF RANGE is given. Note that this error does not return an error number, and behaves exactly like an HP-41 error. ANDs the X-register and Y-register and returns to X Description: Performs a boolean AND between the X-register and the Y-register. Returns the result to the X-register with stack lift enabled.
Page 43
Tests to see if the Xth bit of Y is set Description: works like all the rest of the HP-41 test instructions. The test is for the Xth bit of the BIT? number in the Y-register to see if it is set. If...
Section 3: Reference Section N. Non-Decimal Input and Output BININ Inputs a number in binary Description: The keyboard is redefined so that the only digit keys which are active are . Any other key terminates numeric entry and is executed. Input: Output: An integer in the X-register.
Page 45
Section 3: Reference Section Output: The display shows X in octal. HEXVIEW Shows the value of X in hexadecimal Description: The display shows the value of the X-register in hexadecimal. The distance between the com- mas in the display is given by the current FIX value. The normal display of the X-register is restored using ←...
Section 3: Reference Section O. Reading and Writing of the HP-IL IC Registers. WREG Writes X to HP-IL register number in Y Description: Writes to a given register. Y-register contains the register number, the X-register contains the new contents of the register.
If you do, the first digit in the first digit string in your program will be inserted between every instruction step. The easiest way to exit this mode is to pull the HP-IL module out of the HP-41. To repair the damage,...
CAUTION Always turn off the HP-41 before connecting or disconnecting any module or pe- ripheral. Failure to do so could result in damage to the HP-41 or disruption of the system’s operation. • Keep the contact area of the module free of obstructions, Should the contacts become dirty, carefully brush or blow the dirt out of the contact area.
ALPHA register if the last character (before appending) was a null. If the last character in the ALPHA register is a null, then – while you enter characters to append – the HP- 41 acts as if the register is empty, and displays only the characters that you are appending. (The cursor sign (_) is present in the display while you append characters.) However, the ALPHA register itself properly...
Page 52
Appendix B: Error Messages 5) ALPHA Strings in Data or Stack Registers. If you store an ALPHA string containing nulls in a data or stack register, none of the nulls will be displayed when you view (or print) the contents of that register (as with ).
SSRQ – Send Service Request Note: SLRDY and CLIFCR are self-resetting bits (resetting occurs 1-2 μsec after end of write pulse.) Reading R0 returns the value of CLIFCR, which will always be a logic zero by the time the HP-41 reads it. Control...
Page 54
Appendix C: HP-41 HP-IL Integrated Circuit Data bits Register 2 Read 2 Write DI7-DI0 – Input Data Bit DO1-DO0 – Output Data Bits Parallel Poll Register 3 R/W *OSCDIS *AIDY PPIST PPEN PPOL *OSCDIS – Oscillator Disable *AIDY – Automatic IDY Sourcing in Idle Mode PPIST –...
Page 55
Figure 1 – Initialization Transitions. Automatic IDY mode The HP-IL integrated circuit will not be reset in idle mode if the AIDY bit is set, which allows for two pos- sibilities: 1) If CA is true, then IDYs will be automatically generated. No handshaking of the IDYs will be per- formed.
FRNS ERR – all – A message was not received as sent. INVALID REG WREG ⎫ ⎪ The HP-IL register specified does not exist. ⎬ ⎪ RREG ⎭ NO BUFFER – all – A buffer has not been created with...
Page 58
A message was not received after a time specified by the function specified. TRANSMIT ERR – none – If flag 33 is set, execution of any HP-IL module functions will cause this error. The development module does not generate this error.
Sends NRE message. Inputs a number in octal. OCTIN Shows the value of X in octal. OCTVIEW Keeps the HP-41 in execution mode. Tests the ORAV bit true. ORAV? ORs the X-register and Y-register and returns to X. Output binary from X.
Page 60
Sends UNL message. Sends UNT message. Writes a message using X, Y waiting for ORAV. WFRM Writes X to HP-IL register number in Y. WREG ASCII number in X is put to left of ALPHA. X-AL ASCII number in X is put to right of ALPHA.