I guess the HP150 counts as a 'classic computer'...
I have an HP150 (origianl model, 9" CRT) on my bench, and amongst other
things it's reporting touchscreen problems in the POST. This is quite
common with such machines, and nearly always means that one or more of
the IR beams was blocked during the test. This is often due to dirt
build-up on the faces of the opto-devices. it can be due to failure of
the devices themselves.
The touchscreen electroncis is mounted on a frame-shaped PCB that fits
just behind the front bezel. The interface to the rest of the machine is
1 10 pin header plug. From what I rmemeber (and I do have pinouts and
shcematics), there are 3 +12V pins, 3 ground pins, a -12V pin and 3
signals :
A clcok input (to touchscreen) that moves the IR beam on to the next position
A synv output (from the touchscreen) which indicates that the last IR
beam is being sampled (or maybe last + 1) I would ahve to check
A data output which indicates if the currently selected beam is open or
blocked.
These signals are all at odd voltage levels (the touchscreen cirucitry is
4000 series CMOS running off a 10V supply obtained from the +12V rail).
HP use transsitors on the CPU PCB to get them to/from TTL levels. they
then end up on the pins of an 8042 microcontroller which also handles the
keyboard and beeper.
Connecting a logic analyser to these signals indeed shows that there are
some beams that appear blocked. The obvious thing is to be able ot
determine which ones so I know which optodevices to test/inspect.
I can think of several ways of doing this :
Count the clock pulses on the logic analyser screen :-)
Make a circuit -- a handful of logic chips, shfit registers, etc that
connects to the touchscreen, generates the clock signal, etc and displys
the state of each beam on a separate LED. Probably possible with the
contents of my junk box, and anywas as I've said, I like soldering.
Ditto, but use a microcontroller. It keeps the chip count down, bnt it's
probably more work for me.
The command list for the 8042 on the HP150 CPU board (in one of the HP
manuals) includes a command to test which IR beams are blocked (this is
not the same as reporting the touchscreen corrdinates). Unfotunately, (a)
you can't use this if the makhine is scannign the keyboard and (b) the
description seems incomplete. It says that this command will return 2
bytes giving the numbers of any blocked berams. Well, with only 16 birs
(and 36 beams), it can't be a bit vector. It also says that if both bytes
are 0xff, then no beams are blocked, if one is 0xff then only one beam is
blocked (specified by the other byte). What happens if more than 2 beams
are blocked? More importantly, since to use this command you have to
disable interrupts and stop the keyboard scanning, it's not going to be
possible to do it from interpretted BASIC. And the programming lanaugages
on this old version of MS-DOS are not that pleasant...
iI can't find an HP diagnostic that gives detailed information on
touchscreen problems, or any reference to one.
Any suggestions/comments?
-tony