23

Suppose you were trying to build a computer with a color graphics display in 1980, you have limited engineering resources and time to market is critical, so you want to get as many of the parts off the shelf as possible. Was there an off-the-shelf video chip available at that time that could be used? Requirements:

  • A bitmapped display, resolution as high as possible.

  • Some form of color.

  • It's for a workstation not a games machine, so there is no requirement for sprites or hardware scrolling.

If it makes a difference, the CPU is the 68000.

  • 2
    IIRC, the MC68000 was only being sampled in 1980, production quantities were not readily available until a year or so later. – hotpaw2 Sep 4 '17 at 6:36
  • You say this is workstation-class rather than home market, so I guess the budget for hardware would be reasonable? – Jules Sep 4 '17 at 12:05
  • 1
    @hotpaw2 - Wikipedia says samples in February 1980 with commercial availability in November. – Jules Sep 4 '17 at 12:11
  • @Jules Yes. Time to market is more important than cost. – rwallace Sep 5 '17 at 12:32
28

There were. A couple of examples are the Motorola MC6845 and the MC6847. These chips were flexible and allowed various resolutions and colors depending on how they were implemented.

The MC6845 was used in the Acorn BBC Micro, the Amstrad CPC and the IBM PC MDA and CGA video adapters.

The MC6847 was used in the Tandy TRS-80 [Model 1], the Acorn Atom, the Tandy Color Computer, the Dragon 32, and the V-Tech Laser 200.

Some companies made their own custom video chips and didn't allow anyone else use them. Examples would be Atari (TIA, ANTIC/GTIA, MARIA, Shifter), Commodore (VIC, VIC-II, TED, Agnus/Denise), Apple (with the IIgs), and Tandy (with the GIME in the CoCo3).

Other companies made video chips with fixed abilities, usually more powerful than the Motorola chips but with fixed resolutions, colors, and sprites, and sold them for other companies to use in their own systems.

Examples are General Instruments' AY-3-8900-1 (used in the Mattel Intellivision), Texas Instruments' TMS9918 (used in the MSX, TI-99/4(A), Coleco ADAM, and ColecoVision), and Yamaha's V9938 (used in various MSX2 systems), V9958 (used in various MSX2+ systems), and the V9990 (not sure where it was used).

  • 3
    The 6845 was not a standalone solution, it needed some external circuitry to actually read pixel data and convert it to pixel colours, but it supported higher resolutions, limited at the time by high DRAM prices. – berendi Sep 2 '17 at 17:47
  • 1
    The Yamaha chips and the proprietary controllers were AFAIK not available in 1980. – berendi Sep 2 '17 at 17:49
  • 2
    @berendi : As examples of the external circuitry needed around a MC6845, here is a photo of the famous IBM CGA adapter : upload.wikimedia.org/wikipedia/commons/5/55/…. Or the text-only MDA : upload.wikimedia.org/wikipedia/commons/5/55/… – TEMLIB Sep 3 '17 at 18:38
  • @TEMLIB Your two links appear to be the same image. – JAB Sep 4 '17 at 2:33
  • 1
    @JAB : Here is the MDA : upload.wikimedia.org/wikipedia/commons/a/a1/KL_MDA_Unknown.jpg ;-) I still have a CGA card, It is probably still working but I fried (30 years ago ?) one PCB trace near the 6 pins header when I tried to to plug a light pen. Because the MC6845 supports light pens... – TEMLIB Sep 4 '17 at 19:14
16

I designed a color graphics card for the Z80 ECB bus back in 1984 or so, based on the 6845.

The 6845 was "just" a timing and addressing generator. It was meant for character-based displays. So it divided the display area in character cells. Each character cell could span some horizontal pixels (to be serialized outside of the 6845) and some vertical scan lines. So it had:

  • the horizontal character number
  • the vertical text line number
  • the vertical pixel-in-character number.

This chip could easily be used for graphics as well as the necessary RAMs became available:

  • A character was e.g. defined to be 8 pixels wide and 8 pixels high.
  • The horizontal character number became the higher bits of the x pixel coordinate (the lower 3 bits generated by additional hardware clocked at 8 times the 6845 speed)
  • The vertical pixel-in-character number made the lower 3 bits of the y pixel coordinate.
  • The line number gave the higher bits of y.

My card was a 768*512 8-color RGB, memory-mapped occupying 384 KByte of address space (only the lower three bits of the byte used), with hardware zoom by 2 or 4 (reprogramming the 6845 and using a slower clock speed), resulting in 384*256 resp. 192*128, making it easier to see details on a "big" 14-inch CRT screen.

  • 1
    1984 is stretching the question a little, but up-voting anyway because your answer was interesting. – RichF Sep 2 '17 at 21:06
  • When the 6845 was available is the main thing. – wizzwizz4 Sep 3 '17 at 14:32
  • 1
    6845 is one of the realy early CRT controllers and arround since at least 1977. – Raffzahn Sep 3 '17 at 18:11
  • Some questions: in the simple case for a character display, who pointed to the glyph data? Did the 6845 output an address for those 8 bits, or did it simply say "you should draw this bit of the screen now, and it's character $14 line 5" and then you had to figure out where those 8-bits were in your own memory? – Maury Markowitz Sep 29 '17 at 14:04
  • The 6845 simply output the character address plus the vertical pixel-in-character number. You typically wired the 6845 character address to the text display RAM. The RAM's 8 data output lines (giving the ASCII code), together with the vertical pixel-in-character number, went to a 4KByte (12 address lines) character generator ROM, which produced the black-white pattern for 8 pixels. These were fed into a shift register, finally driving the video output line. – Ralf Kleberhoff Sep 29 '17 at 14:32
14

The Motorola MC6847, used in the TRS-80 Color Computer, or the Texas Instruments TMS9918 would be good candidates. Both were available in 1980, and could display 256x192 pixel colour images.

5

Bitmap displays are easy. Basically, all they require is some address counters and multiplexing logic. The only difficult part is getting adequate memory bandwidth to achieve adequate performance, and that's a fairly straightforward cost vs. performance trade-off. Things like sprites are used to increase what can be done with a given amount of memory bandwidth, but otherwise there's really nothing about straight bitmap that would require custom circuitry.

  • 3
    Right. A 74LS90 and a 74LS93 can be easily wired to count to 40 or 80 for display columns, while a 74LS393 can count pixel-within-row (bits 0-2) and rows (bits 3-7). A simple state machine (another 74LS93 as state counter, and a 74LS188 to decode state to logic activation controls) pulls data out of RAM (deasserting /DTACK to make sure the 68K is disconnected from the bus) for either character, then colour, then bitmap for the row of the character (text mode) or a foreground/background bitmap and a pair of colour values (graphics mode), combine with simple circuitry into video output. – Jules Sep 4 '17 at 16:44
  • 2
    You need those 5 chips for this control circuit, plus a handful of standard logic chips to turn the counter values into addresses, and a handful of registers to store temporary data. Entire system has about 15 ICs, and probably takes a competent designer much less than a week to put together, and that's assuming the designer has never done it before. If you're trying to optimize for production cost or space it's a little harder, but most 80s-era workstations didn't worry too much about either. They left that the home computer guys. – Jules Sep 4 '17 at 16:47
  • 2
    @Jules: Things can work out especially nicely if one is using DRAM and is willing to allocate a power-of-two number of bytes per row. Each access cycle consists of a number of clock phases where the horizontal counter is put on the bus, /RAS is asserted, the vertical counter is put on the bus, and data is read with /CAS. CPU accesses would require putting the lower and upper parts of the CPU address on the bus in order, along with /RAS and /CAS. – supercat Sep 4 '17 at 19:17
  • 1
    of course... and I guess that's at least part of the reason why the Sinclair Spectrum had such a weird memory layout. – Jules Sep 4 '17 at 20:15
5

In 1980? Ouch. That timeframe is pretty limiting for a 'workstation' using commodity chips stuff. If you eschew the custom chip route, and you didn't do something like license someone else's design (in 1980? E&S if you have the $$$. PERQ, maybe? Apollo?), I think about all you have are:

  • MC6845 (and numerous derivatives and second sources): CGA resolution, limited color graphics
  • TMS9918: CGA-ish resolution, limited color graphics
  • Dumb frame buffer: a la the Mac...some (v)ram and a video shift register (maybe something fun like the Fujitsu MB14241). Not that many chips, but without some pretty sophisticated tricks somewhere you won't get many color planes before you crushed a 68000 (1 almost did in the original Mac), so this is more in the realm of idle speculation.
  • Smart frame buffer: As above, but use another processor to handle most of the drawing tasks (bitblt, mouse, etc.). Trade hardware for software. Could be another 68000, or one of the 8-bitters (the 6809 was introduced in 1978). More chips, but much less risk than rolling your own silicon.

N.B. - the MC6847 was around before 1980, but as I recall it was intended to drive a TV and have very limited resolution, so isn't really a workstation graphics chip.

Now, if you could wait just another two years or so, the whole world changes. In particular:

  • 1982: NEC uPD7220, Up to 1k x 1k, 4-planes, fast and cascadeable for more colors. Second sourced by Intel and evolved into uPD72120 and uPD72220.
  • 1982: Thomson EF936x, described above, chips in the series from 512 x 256 to 512 x 1024 with lots of extras. Nice chips.
  • 1982: Various V-series derivatives of the TMS9918.
  • 1982: faster 68000s & 68010 for better frame buffers (and better performance in general).
  • 1983: the TI32010 DSP came out, which people did some very interesting graphics stuff with, but I don't think this really meets the OP's requirements :-)
  • 1984: the HD63484 chipset, awesome 4k x 4k and up to 16-bit color
  • 1984: the mc68020, frame buffers, again

Then in 1985 some folks started a company called ATI and things in the graphics world started to really change.

  • 1
    I think a more immediate change in 1985 was the introduction of the ARM processor. Those early Acorn workstations had much better video performance than anything else I saw for years. – Jules Sep 29 '17 at 10:41
  • I'm afraid compared to things like ATI, the Amiga 1000, the Atari ST and the Mac, the Acorn was irrelevant outside of the UK. – KJ Seefried Sep 30 '17 at 23:44
5

Well, beside building it from scratch with TTL components I guess that is. Right?

As already described you could go ahead and 'extend' some existing chips. But if you want an integrated graphics solution more like today's systems, the Thomson EF9365/66 would be the most appropriate selection.

Caveat: I'm not sure if they where already available in 1980, as the earliest data book I own, including them is from 1981.

Also, while in capabilities beyond what contemporary homecomputers did, they're still roughly within the limits of TV alike screens. But that border was quite lower back en and they have have been used like in a professional CAD setup with the EF936x driving a high-res graphics screen while commands and parametes where edited on a separate text screen. Windowing early 1980s style :))

Features included

  • Resolution 64x64, 128x128, 256x256 and 512x512 (last one only interlaced)
  • additionally 512x256 non interlaced on the EF9366
  • logical operation on a 4096x4096 space
  • DRAM controller for 16 and 64 k chips
  • lightpen support
  • (interrupt) signals for Lightpen, VBLANK and READY
  • (almost) unlimited number of bitplanes
  • 1,2,4 or 8 Bit per plane per pixel
  • on-chip character generator
  • scalable and rotatable character set (1..16 times width and height separate)
  • vector (line) drawing capabilities with 4 line types

Especially the last five points set it apart from any other controller at that time (I know). Al syncing signals, timing and pixel clock is provided by the controller, bitplane selection, shift register(s) and colour generation (from the clocked data) is to be added. This makes the EF936x series extreme flexible. A 512x512 diplay in 24 Bit colour wouldn't be a big deal. Since the plane addressing was quite flexible, the signal generation could add many tricks like a layer for transparency (TV overlay) or other special function modes.

I always wanted to build a graphics system using that chip, as examples where like out of the world for back then. The chips are still somewhere, but I never went through.

  • 1
    According to en.wikipedia.org/wiki/Thomson_EF936x those chips were only actually released in 1982, but upvoted anyway as an interesting example of what could be done around that time. – rwallace Sep 4 '17 at 0:08
  • 1
    Hard to decide without proof of real sales. I wouldn't realy trust Wiki on such dates. – Raffzahn Sep 5 '17 at 12:51
4

A lot of the coin operated video games of 1980's and early 1990's used 6845 or 6545 CRTC, plus a lot of game video were design around TTL chips with built in hardware character sprites for the slow CPU's. You can search for schematic of the game boards on the inter-web to get some ideas on how they are implemented. My favorite is QIX by Taito it uses 6545 with 2x 6809 CPU's.

3

It likely was not the graphics chips (or for that matter complexity of a solution built from non application specific chips) that limited practical high resolutions at a price point - you still need a framebuffer memory for a raster display, and even to realize, for example, a 1024x1024 resolution without any color or grayscale capability you would need 1 megabit (128 Kilobyte) of RAM - which was more than what some computers had as system memory, and expensive. Offering a high number of colors made this even worse, and adds the problem of needing to ímplement a good DAC (precision isn't as much the issue here as speed! BTW, dirty secret of most VGA cards: "true color" is not 32/24-bit but 18 bit in hardware. Look up some RAMDAC datasheets...).

Mid 70s to early 80s high resolution graphics systems tended to use vector-oriented graphics generators, that either constantly redrew the vectors from a program (like the IBM 2250) or used inherently persistent displays (like the Tektronix 4016, which is listed with a 1979 price of almost $20k)...

1

If you really wanted to save money, you could use the CPU to generate the display. Many older machines did that, notably the Sinclair ZX80.

Essentially all you need is a memory mapped buffer chip and an R2R DAC made of passive resistors, and then some output buffer op-amps. Possibly some kind of encoder if you wanted to output composite video or similar. You could even forego the DAC if you could live with basic digital colour.

Such a system would have a low resolution, limited by the CPU clock rate. To increase it you could use dual port RAM, with the CPU enabling the video side outputs and simply stepping through addresses as fast as possible. The outputs would create digital colour or feed an R2R DAC as above.

  • 2
    I was about to add an answer quite like this one, but saw this when I refreshed the page. This is a good idea for a low cost machine, but for a workstation class machine as OP described it would probably be difficult to justify: tying up the CPU for ~30% of the time for just drawing the screen is hard to justify for a machine whose selling point is likely to be power. But: if you have the budget for it, why not add an extra CPU to handle this? You'd need bus contention management, but you probably need that in a workstation anyway (you do have DMA, right?). The CPU could be a ... – Jules Sep 4 '17 at 16:14
  • 1
    ... relatively cheap one (say a 6502 or a Z80) and during the time it's not managing the display hardware could be used to offload simple operations (the 6502 is particularly good at memory bulk transfer operations -- being able to handle about 500KB of data per second if it doesn't need to perform any interesting transformations on it -- while a Z80A can manage about 400KB/second) such a bitmap copies, scrolling, etc. – Jules Sep 4 '17 at 16:21
  • As far as I understood did the OP ask for a high resolution bitmap display for a workstation, using standard components. not some cost saving hack – Raffzahn Sep 5 '17 at 12:52
  • R2R DACs, eg directly wired to FPGA outputs, are making kind of a comeback even in signal generators these days ... but there is quite a difference in the speed and linearity possible with today's CMOS outputs versus even purpose made but affordable FET switches 40 years ago.... – rackandboneman Sep 17 '17 at 11:50

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.