This is only a preview of the October 2020 issue of Silicon Chip. You can view 40 of the 112 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Items relevant to "D1 Mini LCD BackPack with WiFi":
Items relevant to "Flexible Digital Lighting Controller, part 1":
Items relevant to "USB SuperCodec – part three":
Items relevant to "High Power Ultrasonic Cleaner – part two":
Articles in this series:
Purchase a printed copy of this issue for $10.00. |
THE MATROX ALT-256
the world's first graphics card!
Today’s graphics cards have awesome computing power, with teraflops of
processing speed, enabling amazingly realistic 3D graphics from cuttingedge custom silicon. Not this one, though. It’s made from bog-standard
through-hole chips and provides a less-than-awe-inspiring 256x240 pixel
display. But it’s a clever design; in fact, groundbreaking in its day.
E
arly home computers in the 1970s
generally had text-only screens.
The shape of each character (letter,
number or symbol) was stored in dedicated ROM ICs. By the late 1970s, there
was a hunger for graphics screens in
home computers. So Matrox, a Canadian company, came up with the
ALT-256.
This was the product which
launched their company, which later became a one billion dollar enterprise. They’re still in business today,
making video cards and other graphics products! See www.matrox.com
for more details.
The ALT-256 generated a 256 x 240
visible pixel display on a standard
composite video monitor. The card itself had a single video plane and contained 38 TTL (transistor-transistor
logic) ICs and 16 RAM (random access memory) ICs. The RAM ICs are
TMS4027 types, although the documentation cites them as the “4096”.
Each of these ICs has a storage ca100
Silicon Chip
pacity of 4096 bits, and each IC has a
one-bit (on/off) output. So there were
no shades of grey; the pixel is either
on or off.
However, with three cards combined, one output of each can be assigned to the R, G & B channels of a
colour video system. And in that case,
eight shades of grey are possible on a
monochrome monitor, or eight different colours (black, red, green, blue,
yellow, cyan, mauve and white) on a
colour monitor.
Later, Matrox produced the ALT512 which was more advanced than
the ALT-256, with twice the memory. This accommodated two video planes, so four shades of grey
could be attained from a single card
by displaying two pixels (one from
each plane) with different intensity
weighting simultaneously. We’ll get
to that a bit later.
When Matrox released the ALT-256
By Dr Hugo Holden
Australia’s electronics magazine
graphics card, around 1977, it was a
revolutionary step forward for S-100
computer owners interested in graphics. There was a review of the ALT256 in Byte Magazine in 1978. This
was one remark after mentioning that
three boards could enable animation
and a colour display:
For the Star Trek freak, now there
is available a real (if imaginary) universe to save, rather than a slow printer
banging out descriptions. For the artist, a canvas; the researcher, a window;
and the kids, an electronic sketch pad.
Perhaps the word “freak” should
have been “fan” to be more diplomatic.
However, those remarks are quite
profound when one considers what
computer graphics cards in modern
computers have evolved into. Byte
Magazine cited the price of the ALT256 board at $395, which is about
$1700 today. Then imagine having to
buy three of them!
Matrox also produced a companion
2480 card, to generate text, which can
siliconchip.com.au
Screen 1: a sample image I drew and loaded into the ALT256’s RAM. It may seem crude, but this was sci-fi type stuff
back in the late 70s. My monitor has an amber phosphor,
hence the colour; it is, in fact, monochrome.
be linked with the ALT-256 for a simultaneous text and graphics display. The
TV sync generators on these boards can
operate as a master or slave, and the
video signals either from the graphics
card or the text card can be mixed to
obtain one video output signal.
Circuit diagram
I searched the internet for a decent
scanned copy of the ALT-256 manual,
which included a circuit diagram and
the PCB component layout. I kept finding the same scan repeated over the net
in many places. It was kind of somebody to scan it in the past; however,
when they did, they accidentally left
page 84 blank. Wouldn’t you know it,
that just happened to be the central
section of the circuit diagram!
So I hunted around for months,
unable to find the full ALT-256 schematic. I was about to reverse engineer
the PCB. I tried to contact Matrox, but
unless you have a modern product of
theirs, it is very difficult.
I then found out there was an ALT256 card in a computer museum in
Canada, and they had the manual,
and the curator copied out the page
for me. That was quite a treasure hunt,
but it was very useful to have, and it
helped me to repair my board. The
block diagram from that manual is
reproduced in Fig.1, and the full circuit diagram that was so hard to find
is shown in Fig.2
It still amazes me what they were
are to achieve at the time, just with the
74-series TTL ICs and a small amount
of memory.
siliconchip.com.au
Screen 2: the same image as Screen 1 but shown in ‘reverse
video’. The card doesn’t have the capability to do this, so I
had to write the image into its memory with the pixel values
inverted (ie, one for zero and zero for one).
Sample ALT-256 screens
Matrox published a software package called MTXGRAPH, as a .PRN listing in the ALT-256 manual. Presumably, this was also on disk at the time,
but it would be very rare now. I plan
to assemble and test this software in
the future. For now, though, I had to
write my own program to test the card.
Screen 1 shows the image I drew,
displayed by the ALT-256. It started
as a 180kB, 256 x 240 pixel monochrome .BMP file which I processed
to convert into a format that the SOL20 computer could load and then display on the ALT-256.
I drew this image in “Microsoft Picture It” by tracing over some drawings
of the DeLorean. The wheel hubs were
the most difficult part. I found it best
Fig.1: the ALT-256 block diagram shows how the RAM array, comprising ICs
A32-47, feed into shift registers A27-28 and then the video generator to create
a continuous composite video signal. At the same time, the S100 bus interface
(A51-55) can write pixels via A1 & A9 or clear the screen via A1 & A19.
Australia’s electronics magazine
October 2020 101
Fig.2: the complete ALT-256 circuit diagram was hard to track down, but I’m so glad I managed to get a copy. It makes
working on the card a lot easier! It may seem complicated, but when you consider that it is a complete video system with
a computer interface, it’s actually quite elegant.
102
Silicon Chip
Australia’s electronics magazine
siliconchip.com.au
to draw in the native resolution, rather
than start with a higher-resolution file
and try to scale it down.
I also created an image file for the
reversed (negative) image shown in
Screen 2. This is easy to do in hardware by inverting the video signal (and
not the sync), but the ALT-256 does
not have this facility. So it required a
separate image file.
This ALT-256 card has likely not
produced any graphics since the
1970s, so it was a gratifying experience to see this image come up after
all the work required to process the
image file to suit the card.
Repairing my ALT-256
Actually, before I could display
those images, I had to repair the card
– a process which I shall now describe.
I acquired the ALT-256 card from
eBay. My experience with this card
is very little different than any other
vintage S-100 card from that era. There
are usually one or two faulty 74LS series TTL ICs, and in cases where there
are IC sockets, these sockets and the
IC pins require significant cleaning to
re-establish a good connection.
In the case of the ALT-256 though,
Matrox decided not to use any sockets for any of the ICs. This makes for
a more reliable card, especially after
more than 40 years. However, there
were two faulty ICs on the card I acquired (a 74LS367 and a 74LS04) in the
TV sync generator circuitry. So I had to
desolder them and replace them with
suitable, period-correct ICs.
I did the fault-finding with the aid
of the schematic and a 2465B Tektronix Oscilloscope. Also, somebody had
worked on this PCB in the past; three
jumpers were cut, one IC pin was cut
and a 7812 regulator IC had failed. One
TMS4027 RAM IC, A42, also required
replacing. One cannot acquire a card
of this age and expect it to be working off the bat.
Locating faulty RAM ICs
As you can see from Fig.3, the 16
RAM ICs are located in the upper-left
corner of the card and are labelled A32
through A47. You can figure out which
may be faulty based on looking at columns of pixels on the display. One
good thing about fault-finding graphics cards with video RAM is that the
screen image serves as the diagnostic
window.
Each of the TMS4027 RAM ICs looks
after an area of screen pixels in 16 vertical rows. If each row were 256 pixels high, then this would correspond
to the 4096 single-bit storage locations
within that IC.
While all of these locations can be
“written to” with software commands,
there are only 240 active scanning
lines on the monitor (the remainder
are in the blanked out vertical retrace
time), so only pixels on the Y-axis labelled 0 to 239 are visible. On the other
hand, on the x or horizontal axis, all
256 pixels are seen (labelled 0 to 255).
In this video card, coordinates x=0
and y=0, specified in the card’s registers, are at the top left-hand corner of
the video monitor.
With a RAM IC failure, the output
pin (pin 14 on the TMS4027) could
be stuck low or high. In the case it is
stuck high, 16 rows of vertical pixels
will be turned on. These will only be
seen easily if the background or all surrounding pixels are off. You can switch
all pixels off in BASIC. Assuming the
address jumpers on the PCB are set
so that A7, A6, A5, A4, A3 & A2 are
tied low, the Erase port address is 03:
OUT 3,0 ; sets all pixels off
Conversely, if a RAM IC output is
stuck low, to see it, all the pixels need
to be set on:
OUT 3,1 ; sets all pixels on
The Matrox ALT-512 was produced a shortly after the ALT-256 and has a display resolution of 512 x 256 pixels (or 256 x
256 with two layers). Further details on this board will be detailed in part two of this article next month.
Photo source: siliconchip.com.au/link/ab3y (https://deramp.com/)
siliconchip.com.au
Australia’s electronics magazine
October 2020 103
Fig.3: this diagram shows where each component is located on the card PCB. Most significantly, it shows the positions of
all 57 ICs. No doubt, mounting them all with the same orientation helped with the designer’s sanity.
104
Silicon Chip
Australia’s electronics magazine
siliconchip.com.au
Program to help find defective pixels (shown in Screen 3)
10 B=0
20 FOR X = 0 TO 255
30 OUT 1,(X+B)
40 OUT 2,X
50 OUT 0,1
60 IF (X+B) = 255 GOTO 100
70 NEXT X
80 B=16
90 GOTO 20
100 END
I run MBASIC in the operating system CP/M (Control Program for Microcomputers) on my SOL-20 computer.
To figure out which row of pixels is
defective (and therefore which IC), I
found it helped to plot two diagonal
lines spaced 16 pixels apart (the finished program is shown above), either
a black or a lit line. Select a 0 or a 1
for the pixel to be displayed (line 50)
depending on whether all the pixels
are previously off or on with the OUT
3 instruction above.
This program, when RUN, plots two
;
;
;
;
;
;
initialize offset
number of pixels
x coordinate
y coordinate
“1” plots an on pixel, “0” plots an off pixel
limit max x pixel coordinate to 255.
; set offset for second line
; plot second line
diagonal lines which can be used as a
RAM diagnostic to determine which
physical RAM IC is defective.
Firstly, if pixels are stuck on, use
“OUT 3,0” initially to set all pixels
off, and then change code line 50 to
be “OUT 0,1” and run the program.
(Conversely, if pixels are stuck off, type
“OUT 3,1” to set all pixels on and code
line 50 to be “OUT 0,0”).
Which IC looks after which column is shown in Fig.4. The boxes in
grey represent the lines plotted by
the BASIC program, called “locator
lines”. The columns looked after by
each RAM IC are shown at the top. As
can be seen, for this example (where
IC A42 has failed) the defect is in the
6th column.
Therefore, by examining the video
display, to see where the locator lines
and the defective pixel coincide, the
failed column can be found and the
IC corresponding to it physically located. The purpose of the lines being
diagonal is to make it easy to visually
count the pixels, which is very difficult if they are on the same row.
Physical ICs and pixel assignments for the ALT-256
Fig.4: this diagram shows which RAM ICs control which display columns, and how you can draw diagonal lines on the
screen to figure out which IC is faulty if the display is not right. A faulty RAM IC will usually cause either black or white
vertical stripes, but some faults could result in just one or a few pixels in those columns being stuck on or off.
siliconchip.com.au
Australia’s electronics magazine
October 2020 105
► Screen 3: RAM IC A42 had failed on
the ALT-256 card I bought, and here
is the display I got when drawing the
diagonal lines. By counting pixels, I
quickly pinpointed the faulty part.
► Screen 4: this is what the output of
the program looks like if you set all
the pixels on on the screen on first.
This would normally be used to find
a fault where columns of pixels were
stuck off. However, in my case they
were stuck on and you can see here
that this mode can still be used to
determine which RAM IC is faulty.
Screen 3 shows the result of running
this program with my eBay card. In this
example, IC A42 has failed, its output
pin 14 being stuck high.
Screen 4 shows what the screen
looks like when running the program
to detect a RAM output that’s stuck
low. The locator lines are plotted in
black, with all other pixels switched
on. It is straightforward to count along
the pixels on the x-axis to see that it is
column 6, 22, 38 etc that are defective
and we can then tell from Fig.4 that
A42 is responsible.
If there were single or more defec106
Silicon Chip
tive pixels, related to one or more
of the 4096 locations inside a single
TMS4027 IC, these would show up
somewhere in one of the columns provided by that IC.
Conclusion
So you can now see how computer
graphics got its start. As shown earlier, not long after the ALT-256 was
released, Matrox came along with the
more capable ALT-512, and I also got
my hands on one of these. I shall describe it in the follow-up article next
month.
Australia’s electronics magazine
One thing to note about the ALT256 is that, once you put the data into
graphics memory, there is no way to
read it back out. So if you want a copy
of what is on the screen, you have to
write that data elsewhere in general
memory too.
With the ALT-512, you can interrogate the graphics memory. This is
helpful say in a program like a light
pen, where you alter the pixel values
in graphics memory, then you want to
save the image you have drawn later.
More details on this will be published
next month.
SC
siliconchip.com.au
|