The 12555 dual D/A board is actually a 'point plot' display board, not a
'vector'
display.
Normally a 2 usec point is plotted for each X/Y data word sent to the board.
I
suspect your looking at the Z axis signal 'backwards'. A point is plotted
on the
CRT in only 2 usec.
The 12555 works like this...
Send a X/Y data word and the Z axis signal will unblank the beam and plot a
point on the CRT, then re-blank the beam. This is done for all points in
the display
list, then set the Control FF on the board to start the 20 ms. display
refresh timer.
About 20 ms after Control is set, the Flag FF will set, generating an IRQ.
This
is a signal that its time to clear Control and send the display list to the
board over
again.
If your not using the Z axis blanking, the board may well be working
properly.
The D/A converter outputs are only kept valid during the Z axis unblanking
signal
if you send the board data quickly. The 12555 will output stable levels as
long as
your not sending it data, so it could be used to program power supplies,
etc.
But when driving an oscilloscope, its strictly a point-plot device.
I have several systems with the known-good 12555 boards installed, using
several
different display tubes (most common being the 1335 variable persistence
display).
I also have 1 system that has a much newer version of this board, based on a
D/A chip rather than transistors and resistors. This newer version of the
board
was shipped in E-series CPU's used in vibration control / analysis systems.
Oddly enough it has the same DCPC transfer issues as the original 12555's,
so
I'm not at all sure its an 'improved' version of the board.
I could test your code on both versions of the dual D/A board, with and
without
Z axis blanking and report what I see (I can always take digital photos).
Can you send me HPASM compatible source for your code, or an ABS binary
image?
One last point...
Are you terminating the outputs of the 12555? Your 'glitch' drawing below
suggests
you might not have termination and the deflection signal is simply
overshooting its
final value.
Unloaded the 12555 will produce about a 10 volt signal. This can generate
nasty
glitches with an impedance mismatch at the scope inputs.
I have some old data sheets on the 12555 that describe how to set the RC
values
for the display refresh timer, etc. If needed I can look this info up for
you.
----- Original Message -----
From: "Christian Corti" <cc at corti-net.de>
To: "General Discussion: On-Topic and Off-Topic Posts"
<cctalk at classiccmp.org>
Sent: Sunday, December 18, 2005 12:37 PM
Subject: Re: HP 1000
On Sun, 18 Dec 2005, Bob Shannon wrote:
The 12555 generates its Z axis signal based
(indirectly) on the I/O
backplane
timing.
In a faster machine (E and F series) a new set of X/Y values can be
loaded into
the registers before the Z axis signal is done. This will produce a
glitch.
If your using this board in an E or F series processor, I'd recommend one
of
two approaches to work around this issue.
1. use programmed I/O rather than DCPC (DMA) transfers.
2. Double up each point sent, sending the same X/Y values at least twice.
I'm not using DMA, nor do I use the Z axis signal for blanking. We've
scoped some signals on the card, and I really don't know what is going on
on this card. The Z signal appears just when the glitch starts and stays
active just before the new value arrives. So either you have a long Z
signal and always the glitches at the beginning, or you only have a very
short pulse which is not long enough to have something useful on the
screen. (The 12555 is used on the HP 2100S)
The glitch I am talking about depends from the distance the point has to
go, and is opposite of the direction! That means e.g if the dot is at the
center position of the scope and I let it move to the bottom center
position, I get a very strongly visible glitch to the top, the longer the
distance the longer the glitch (verified by Y-T scoping the signals using
the Z signal as trigger). This must come somewhere from the digital part
of the D/A card, and that's why I need the schematics to understand how it
works.
I hope the following will help a bit
(O=current position, | and - transition, X=final position, .. glitch)
.
.
O
| ..O----X X----O..
|
|
X
Christian