Post Reply 
smaller HP 82166A with 32-pin connector
09-06-2021, 07:37 AM (This post was last modified: 11-01-2021 08:29 AM by Klaus Overhage.)
Post: #21
RE: smaller HP 82166A with 32-pin connector
   
   
In the manual for the PANAME ROM there is a chapter about plotters, which deals with operating devices from other manufacturers with the help of the HP 82166A on the HP-41. The last 18 pages of this booklet
http://www.jeffcalc.hp41.eu/divers/files/jpc-15.pdf
describe how you can use the Canon X-710 without PANAME ROM. However, it remains unclear exactly how the plotter was connected to the HP 82166A. And so I tried it out myself.

I bought a Canon X-710 in the original box with all the accessories that were included at the time and shown in the manual. A CANON <-> CENTRONICS interface was not included. Then I built an adapter from the HP-82165 to the Canon printer with the help of the PIN assignment from this page https://gtello.pagesperso-orange.fr/cx07_e.htm. The same PIN assignment is also shown in the manual for the BASIC-Computer X-07. A KODAK Diconix 180si connected to this HP-82165 using a self-made cable works fine. I can print on it from the HP-41CX immediately after switching it on. This won't work with the Canon X-710. It does its self-test without any problems and prints all characters in the process, but it doesn't receive anything from the HP-41CX.

Then I tried to control the X-710 by hand using 8 switches for the 8 bits and a button for the strobe signal. This brought two important findings: First, if a printable character is present, it is printed immediately with Strobe without waiting for a carrier return or line feed. With all switches on high, i.e. 255, the plotter does not react at all. Second, contrary to the current standard, the X-710 only reacts to the change from low to high of the strobe signal. The Strobe signal is high when idle and the computer briefly sets it to low to indicate that a byte is ready.

Actually, this byte should also be available some time before and after the strobe, but the HP 82165 as well as the HP 82166A switch the 8 data lines to high resistance (TRISTATE) immediately after setting the strobe line high again, which is read by the X-710 as 255. Inverting the strobe line did not help either, nor did an extension of the DAVO signal with the help of registers R02 and R03 of the HP devices.

With an old 2-channel oscilloscope, I was able to track the temporal relationships and also see that the X-710 briefly sets its BUSY output to high to confirm the data transfer. I have come to the conclusion that the X-710 needs more time to take over the data after the strobe. With the help of the circuitry shown above from the two IC'S 74HCT573 and 4069, the data byte is now buffered. The STROBE signal goes directly to the plotter and is inverted for the LE input of the 74HCT573 using the 4069.

The BUSY output of the plotter goes directly to the RDYI input of the HP-82166A. However, the X-710 cannot pull the RDYI input to low. I had to install a 1k Ohm resistor from RDYI to GND so that the BUSY signal was recognized. The 5V supply voltage for the two ICs and the HP 82166A is generated by a WINOMO LM2596S LM2577S DC-DC converter from the battery voltage (6.2V) provided by the X-710.

Now everything works, as the linked video shows.
https://www.dropbox.com/s/n359qnu6ypsnus...M.mp4?dl=0

I wonder what kind of interface the author of the French article used back then. He writes:
"En fouillant plus a fond dans la boite; nous decouvrons un petit sac
contenant: une interface CANON <-> CENTRONICS, permettent le branchement a
un convertisseur HPIL lui meme relie a une la boucle HPIL."
That means translated:
"By digging deeper into the box; we discover a small bag containing: a CANON <-> CENTRONICS interface, allow connection to an HPIL converter itself is connected to the HPIL loop."

I don't think there was such an accessory from CANON. So who built it and how did it work?
Find all posts by this user
Quote this message in a reply
09-06-2021, 10:26 AM (This post was last modified: 09-06-2021 10:29 AM by J-F Garnier.)
Post: #22
RE: smaller HP 82166A with 32-pin connector
(09-06-2021 07:37 AM)Klaus Overhage Wrote:  I wonder what kind of interface the author of the French article used back then. He writes:
"En fouillant plus a fond dans la boite; nous decouvrons un petit sac
contenant: une interface CANON <-> CENTRONICS, permettent le branchement a
un convertisseur HPIL lui meme relie a une la boucle HPIL."
That means translated:
"By digging deeper into the box; we discover a small bag containing: a CANON <-> CENTRONICS interface, allow connection to an HPIL converter itself is connected to the HPIL loop."

I don't think there was such an accessory from CANON. So who built it and how did it work?

It wasn't from Canon of course. From the context "un petit coup de fil passé à Etienne", it is clear that it came from Etienne Poupée (SCIP). The goal was exactly to solve the problem you found: make the plotter compatible with the HP82166.
I wrote an article in Micro-Revue (French) on the use of the Tandy CGP115 (similar mechanism than the Canon) here:
http://www.jeffcalc.hp41.eu/divers/files/mr-07.pdf page 36.
where I described the (same) problem and my solution. I wasn't aware of the JPC article at the time.
You can try my BIRTH program for the plotter, it gave so nice graphics that it was actually used to illustrate several later Micro-Revue issues.

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
09-07-2021, 10:45 AM (This post was last modified: 09-07-2021 10:50 AM by KimH.)
Post: #23
RE: smaller HP 82166A with 32-pin connector
The idea of connecting the Plotter as you have done here - or even a RAM block - is now on my list, once it starts raining again.

Cool inspiration, thank you for that!

Have you tried working with the TRIGGER command and the GETO-line on the interface? My fist couple of attempts controlling Inputs from the 165A with a TRIGGER did not yield anything sensible. On top the documentation I can find regarding TRIGGER/GETO is not exactly great.

Any ideas are welcome!

(09-06-2021 07:37 AM)Klaus Overhage Wrote:  Actually, this byte should also be available some time before and after the strobe, but the HP 82165 as well as the HP 82166A switch the 8 data lines to high resistance (TRISTATE) immediately after setting the strobe line high again, which is read by the X-710 as 255. Inverting the strobe line did not help either, nor did an extension of the DAVO signal with the help of registers R02 and R03 of the HP devices.

With an old 2-channel oscilloscope, I was able to track the temporal relationships and also see that the X-710 briefly sets its BUSY output to high to confirm the data transfer. I have come to the conclusion that the X-710 needs more time to take over the data after the strobe. With the help of the circuitry shown above from the two IC'S 74HCT573 and 4069, the data byte is now buffered. The STROBE signal goes directly to the plotter and is inverted for the LE input of the 74HCT573 using the 4069.

The BUSY output of the plotter goes directly to the RDYI input of the HP-82166A. However, the X-710 cannot pull the RDYI input to low. I had to install a 1k Ohm resistor from RDYI to GND so that the BUSY signal was recognized. The 5V supply voltage for the two ICs and the HP 82166A is generated by a WINOMO LM2596S LM2577S DC-DC converter from the battery voltage (6.2V) provided by the X-710.

Now everything works, as the linked video shows.
https://www.dropbox.com/s/n359qnu6ypsnus...M.mp4?dl=0
Find all posts by this user
Quote this message in a reply
09-08-2021, 09:24 AM (This post was last modified: 09-08-2021 09:33 AM by Klaus Overhage.)
Post: #24
RE: smaller HP 82166A with 32-pin connector
I myself have no experience with the use of the GETO output. The GETO output is High in the idle state and is briefly lowered to low by the HP-41 TRIGGER command.

With my HP-82165A, high only means 3.9V. This is because all output lines within the HP 82165A that do not belong to the 16 data lines DA0-DA7 and DB0-DB7 are routed via a TTL IC with the name 74LS244.

This 74LS244 only has the task of protecting the output lines. Its two control inputs 1OE and 2OE (PIN 1 and 19) are connected to GND and thus the inputs are always switched through to the outputs. In my attempts with the Canon X-710 I think my HP-82165A would be defective because its DAVO = STROBE output only supplies 3.9V. Therefore I unsoldered the IC 74LS244, soldered in an IC socket and inserted a newly bought 74LS244. As a result, nothing has changed: DAVO and GETO ran 3.9V in the idle state. I find that strange, but I guess it's OK.

I ran this little program in the HP-41:
01 LBL TRI
02 LBL 01
03 TRIGGER
04 GTO 01
With my oscilloscope I could see that GETO changes from 3.9V to 0.2V for about 0.0007 seconds. In order to be able to do something with such a short pulse, you need an IC that can store it. For example two NAND gates as shown on page 155 of "Control the world with HP-IL".
https://www.friedmanarchives.com/Writing..._HP-IL.pdf

Or the set input of a 74LS74. Or a 74HC123 as described on page III.03 in the book "HP-41 Input / Output Board" and "IL2000 Interface System". You can also see this circuit on page 30 of the 3/1990 issue of PRISMA
https://de.calameo.com/read/00255147754c837634df9
https://calc.fjk.ch/bibliothek/prisma-zeitschriften/
The article continues on page 32 of the next issue 4/1990.
Find all posts by this user
Quote this message in a reply
09-08-2021, 01:59 PM
Post: #25
RE: smaller HP 82166A with 32-pin connector
Thanks a lot for that pointer Klaus!

Didn't know that Prisma was available in this fashion.

I have the book from Christoph Klug - the solution is a bit too complicated for what I wanted to do. But you have TRIGGER(ed) me to go find my Scope and see if I get what you get on the GETO line, datasheet does say 7-800 uS, so that fits. Maybe my DEVICE addressing is needing a review on my 71B. I'll come back once it starts raining again


(09-08-2021 09:24 AM)Klaus Overhage Wrote:  I myself have no experience with the use of the GETO output. The GETO output is High in the idle state and is briefly lowered to low by the HP-41 TRIGGER command.

With my HP-82165A, high only means 3.9V. This is because all output lines within the HP 82165A that do not belong to the 16 data lines DA0-DA7 and DB0-DB7 are routed via a TTL IC with the name 74LS244.

This 74LS244 only has the task of protecting the output lines. Its two control inputs 1OE and 2OE (PIN 1 and 19) are connected to GND and thus the inputs are always switched through to the outputs. In my attempts with the Canon X-710 I think my HP-82165A would be defective because its DAVO = STROBE output only supplies 3.9V. Therefore I unsoldered the IC 74LS244, soldered in an IC socket and inserted a newly bought 74LS244. As a result, nothing has changed: DAVO and GETO ran 3.9V in the idle state. I find that strange, but I guess it's OK.

I ran this little program in the HP-41:
01 LBL TRI
02 LBL 01
03 TRIGGER
04 GTO 01
With my oscilloscope I could see that GETO changes from 3.9V to 0.2V for about 0.0007 seconds. In order to be able to do something with such a short pulse, you need an IC that can store it. For example two NAND gates as shown on page 155 of "Control the world with HP-IL".
https://www.friedmanarchives.com/Writing..._HP-IL.pdf

Or the set input of a 74LS74. Or a 74HC123 as described on page III.03 in the book "HP-41 Input / Output Board" and "IL2000 Interface System". You can also see this circuit on page 30 of the 3/1990 issue of PRISMA
https://de.calameo.com/read/00255147754c837634df9
https://calc.fjk.ch/bibliothek/prisma-zeitschriften/
The article continues on page 32 of the next issue 4/1990.
Find all posts by this user
Quote this message in a reply
09-08-2021, 04:51 PM (This post was last modified: 11-01-2021 08:32 AM by Klaus Overhage.)
Post: #26
RE: smaller HP 82166A with 32-pin connector
   
   
I wanted to see whether I can switch an LED on and off with GETO. I would have loved to use GETLO for on and another output on the HP 82165A for off, but apart from the 16 data lines and 6 handshake lines, there are no other output lines on the HP 82165A. With 34 instead of 25 connections, the HP 82166 simply has more.

But with GETO first switch an LED on and then off again, that's possible. While looking for a 74LS74, I came across a 7474 with no letters in between. Didn't know that these TTL-ICs are also available without letters, is probably an early version, but behaves exactly like a 74LS74.

The data input PIN 2 of the 7474 was connected to the converted output PIN 6. At PIN 6 there was also a red LED against GND via a 330 ohm resistor.

The GETO output of the HP 82165A was connected to PIN 3 of the 7474. With each pulse on GETO, the level present at PIN 2 is saved in the 7474 and output inverted at PIN 6. So that it works, GND on PIN 21 of the HP 82165A must be connected to GND (or -) of the breakboard. Finally PIN 7 of the 74747 to - and PIN 14 to +5V, done.

The ittle program became one extra row:
01 LBL TRI
02 LBL 01
03 TRIGGER
04 STOP
05 GTO 01

Now it stops after TRIGGER puls GETO to low and the LED switch on. After pressing R/S TRIGGER puls GTO again and the LED switch off. And so on.

In my experiments the LED was off after switching on the voltage to the breakboard. Switching on and off by pressing R/S on the HP-41 worked without any problems.

We need more rain....
Find all posts by this user
Quote this message in a reply
09-09-2021, 04:56 AM
Post: #27
RE: smaller HP 82166A with 32-pin connector
(09-08-2021 04:51 PM)Klaus Overhage Wrote:  While looking for a 74LS74, I came across a 7474 with no letters in between. Didn't know that these TTL-ICs are also available without letters, is probably an early version, but behaves exactly like a 74LS74.

No, a standard TTL 7474 does not behave exactly like a Low-Power Schottky device. The std TTL part outputs can sink 16mA while the LS device outputs can only sink 8mA. See the datasheet.
https://www.ti.com/lit/ds/symlink/sn54ls74a-sp.pdf

Dave
Find all posts by this user
Quote this message in a reply
09-09-2021, 09:40 AM (This post was last modified: 09-09-2021 11:30 AM by KimH.)
Post: #28
RE: smaller HP 82166A with 32-pin connector
This TTL Versions should help with the differences.

Also for those of us dealing with OLD gear, this video might be helpful Logic IC Pitfalls

74HCT74 is ordered, didn't have any in my drawer

(09-09-2021 04:56 AM)Dave Frederickson Wrote:  
(09-08-2021 04:51 PM)Klaus Overhage Wrote:  While looking for a 74LS74, I came across a 7474 with no letters in between. Didn't know that these TTL-ICs are also available without letters, is probably an early version, but behaves exactly like a 74LS74.

No, a standard TTL 7474 does not behave exactly like a Low-Power Schottky device. The std TTL part outputs can sink 16mA while the LS device outputs can only sink 8mA. See the datasheet.
https://www.ti.com/lit/ds/symlink/sn54ls74a-sp.pdf

Dave
Find all posts by this user
Quote this message in a reply
09-11-2021, 06:01 PM (This post was last modified: 11-01-2021 08:35 AM by Klaus Overhage.)
Post: #29
RE: smaller HP 82166A with 32-pin connector
(09-06-2021 10:26 AM)J-F Garnier Wrote:  I wrote an article in Micro-Revue (French) on the use of the Tandy CGP115 (similar mechanism than the Canon) here:
http://www.jeffcalc.hp41.eu/divers/files/mr-07.pdf page 36.
where I described the (same) problem and my solution. I wasn't aware of the JPC article at the time.
You can try my BIRTH program for the plotter, it gave so nice graphics that it was actually used to illustrate several later Micro-Revue issues.
       
Thanks to you Jean-Francois,

your HP-41 program BIRTH has already given me a lot of pleasure. It worked right away with the Canon X-710. The first attached picture was created with my date of birth and the second with that of my wife. She likes it so much that she wants it bigger. I will try to rewrite your program on the plotter module and then use the HP 7470 simulation in pyilper to generate a PDF version and print it out in large format.

I translated your article into English with the help of http://www.babelfish.de and attached it below. This required a new OCR and the correction of all incorrectly recognized letters. I learned that babelfish can translate much better into English than into German. So if necessary, always first in English and then in German ...

The program BIRTH was logged directly from my HP-41CX with the printer simulation by pyilper. The BASIC program has not been tested and with the many 1, I and J I am not sure that I recognized all of them correctly.


Attached File(s)
.txt  mr-07 CGP-115 PRINTER INTERFACING.txt (Size: 7.67 KB / Downloads: 12)
Find all posts by this user
Quote this message in a reply
09-18-2021, 07:23 AM (This post was last modified: 11-01-2021 08:56 AM by Klaus Overhage.)
Post: #30
RE: smaller HP 82166A with 32-pin connector
       
I wanted to work through the last 18 pages of http://www.jeffcalc.hp41.eu/divers/files/jpc-15.pdf and stumbled upon the COM program. After the cube it printed the letters ABCDE and fghij in the largest possible font and they were then repeated smaller and smaller. But in the middle of the 6 repetition, with the character size 10 only ABCDE was output and then the printer made a reset and output the rest in text mode as readable graphic commands. This behavior is reproducible and my second X-710 also shows it.

After a long search and a lot of trial and error, I got it: The zero point is set with the command I for the last time when the cube is drawn. Namely where the three dashed lines meet. Actually, the printer only allows a distance of 999 points upwards or downwards from this point, which is approx. 20cm at 0.2mm per point. The continuous output of the large letters in the graphic mode exceeds this limit by far and if it reaches 2048 points, i.e. approx. 40 cm, then it is too much for the printer and it does a reset. So the author of the old article was never able to let his COM program run through in one piece! Maybe he started his experiments with a smaller character size and only set the value to 15 for publication.

The solution is to sprinkle the command I more often. I have expanded line 99 to include it. The original line only contains the letter S entered in alpha mode. If you insert an I and decimal 013 in front of it, which corresponds to the listing in the article after "I|S", then there is no longer a problem and the COM program runs exactly as shown in the article.

At the end of the article it becomes clear that at that time a French company called SCIP sold the printer together with an HP-82166A and an interface between the two. The English translation is attached below. I also wanted to attach the two HP-41 programs COM and CARAC as RAW files, but that is not possible here... (EDIT: unless you put them in an zip-archive!)

My second X-710 is an X-710E, the European version with a slightly different character set. The first attached picture shows the character set of the international X-710 and the second the European X-710E (printed with CARAC). However, you can only see the "X-710E" script on the underside of the printer. The top looks the same for both.


Attached File(s)
.txt  special file for plotter X 710.txt (Size: 17.17 KB / Downloads: 8)
.zip  RAW of COM and CARAC.zip (Size: 1.21 KB / Downloads: 3)
Find all posts by this user
Quote this message in a reply
09-20-2021, 04:47 PM (This post was last modified: 09-23-2021 01:19 PM by Klaus Overhage.)
Post: #31
RE: smaller HP 82166A with 32-pin connector
Many thanks to Dave Frederickson and KimH for their background information on TTTL ICs. According to my multimeter, only 4 mA flow from the output of the 7474 through the red LED and is therefore within the permitted range for an LS version. I am surprised how bright it shines with the little current. I found Jerry Walker's YouTube video about the "Logic IC Pitfalls" very instructive and understandable. That's why I immediately subscribed to the channel.

pyILPER contains a simulation of the HP-7470A plotter and can save the drawn image as a PDF. I wanted to try that out with the HP-41 BIRTH program from J-F Garnier. So as an intermediate step, a version for the Canon X-710 that uses the PANAME ROM was created. Since the plotter commands contained in this ROM are very similar to those of the HP plotter module, the changeover is almost done. And I wanted to know how it changed the running time: Instead of: 10 minutes and 34 seconds, the PANAME-Version needed only 9 minutes and 54 seconds for the 19071969 image.

The version with the plotter module took 15 minutes with the simulated HP-7470A, probably because of the conversion to a larger image. But the result looks really fantastic. And the generated PDF's are tiny! See for yourself:


Attached File(s)
.txt  BIRTH with PANAME ROM.txt (Size: 745 bytes / Downloads: 10)
.txt  BIRTH with Plotter Modul.txt (Size: 807 bytes / Downloads: 14)
.pdf  19071969.pdf (Size: 6.27 KB / Downloads: 15)
.pdf  17111941.pdf (Size: 5.89 KB / Downloads: 11)
.zip  RAW of BIRTH, BIRTHPA and BIRTPL.zip (Size: 1.04 KB / Downloads: 2)
Find all posts by this user
Quote this message in a reply
09-20-2021, 07:11 PM
Post: #32
RE: smaller HP 82166A with 32-pin connector
(09-20-2021 04:47 PM)Klaus Overhage Wrote:  pyILPER contains a simulation of the HP-7470A plotter and can save the drawn image as a PDF. I wanted to try that out with the HP-41 BIRTH program from J-F Garnier. So as an intermediate step, a version for the Canon X-710 that uses the PANAME ROM was created. Since the plotter commands contained in this ROM are very similar to those of the HP plotter module, the changeover is almost done.

The BIRTH program was really fascinating, running on a HP-41 35 years ago ! The Canon (or Tandy) printer/plotter was a great and affordable device (even if a HP82166 converter was needed) for the non-professional.

As mentioned in my original article, BIRTH was an adaptation of a HP-85 program from the Games Pac, that nowadays can still be found here:
https://www.series80.org/Programs/HP85-G...index.html

Original HP-85 program, for your reference:
Code:
10 DIM R(17,2),N$[32]
20 PRINTER IS 2
30 CLEAR @ DISP "ENTER YOUR NAME, PLEASE";
40 INPUT N$
50 DISP "ENTER YOUR BIRTHDAY,(MMDDYY)";
60 INPUT Z
70 C=INT(LOG(Z)-7)*.01
80 RANDOMIZE Z*.6142253371
90 I=INT(RND*10)+7
100 U1,U2=-INF @ L1,L2=INF
110 FOR J=1 TO I
120 R(J,1)=RND
130 IF R(J,1)>U1 THEN U1=R(J,1)
140 IF R(J,1)<L1 THEN L1=R(J,1)
150 R(J,2)=RND
160 IF R(J,2)>U2 THEN U2=R(J,2)
170 IF R(J,2)<L2 THEN L2=R(J,2)
180 NEXT J
190 GCLEAR
195 U=U2
200 U2=U2+(U2-L2)/16
210 SCALE L1,U1,L2,U2
220 MOVE R(1,1),R(1,2)
230 FOR J=1 TO 25
240 R(I+1,1)=R(1,1)
250 R(I+1,2)=R(1,2)
260 FOR K=1 TO I+1
270 BEEP INT(RND*90),INT(RND*20)
280 DRAW R(K,1),R(K,2)
290 IF K>I THEN 320
300 R(K,1)=C*(R(K+1,1)-R(K,1))+R(K,1)
310 R(K,2)=C*(R(K+1,2)-R(K,2))+R(K,2)
320 NEXT K
330 NEXT J
340 MOVE L1,U @ LABEL "     "&N$
350 GOSUB 390
360 COPY
370 GOSUB 390
380 STOP
390 FOR I=1 TO 9
400 PRINT
410 NEXT I
420 RETURN
430 END

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: