Todd's ELF-ish gets gets a Video Interface System (VIS) #ELF #Homebrew


The blank space to the left of the memory expansion boards in the 16k RAM version of the ELF-ish is just screaming out to be filled with something.

So let's go for something big!

But first, I was getting a little concerned about the additive effects of propagation delays as the system continues to sprawl.  So I exchanged the pair of 4050 address bus and signal buffers of the expansion chassis with CD74HC4050 chips.  These are pin- and functional-compatible but use High-speed CMOS (hence the HC), so their propagation delay is an order of magnitude better than the originals (~6ns vs ~60ns).

Now on to filling that space.

Although us ELF fans love our CDP1861-based PIXIE graphics, it leaves a lot to be desired not only in resolution, but in the demands it places on the CPU and thus the entire system.

RCA released what they called the Video Interface System, or VIS.  This was a two-chip set, both big 40.6 guys; the CDP1869 and CDP1870.

The VIS is geared toward text use, so uses a character generator method.  This method stores the character code in "page" memory, or pmem, which is then used to address the character 6x8 bit-maps (6x9 for PAL) in "character" memory, or cmem.  The output of cmem is the row of dots which then get shifted out to the display.

The set could support a maximum resolution of 24 rows x 40 characters, for 960 characters on display, and a maximum of 256 unique characters.  Using the character generator method, this required only 1k for pmem, and up to 2k for cmem, for a total of 3k - less if you didn't need all of the possible characters.  The equivalent resolution in a fully bit-map display would have required 8k, which was still spendy at the time.

It also had some rudimentary color capability as well as the ability to hold an additional page of characters off-screen, with built-in scrolling features.  And, just for fun, it could also make sounds.

The CDP1870 provided lum, chrom, and comp-sync, which could be combined into a composite graphics signal and fed to a TV via an RF-modulator, or to a video monitor.  RCA also provided the CDP1876 version, which instead presented separate RGB and comp-sync outputs, for driving a video monitor.

I went with the CDP1876 option as my scan converter wants the RGBS lines.

Some of the advantages of the VIS over other similar contemporary systems were:

  • The VIS controlled pmem and cmem directly - the CPU is not involved in screen refresh at all!
  • The VIS maps these memory spaces back into memory-mapped I/O space during non-refresh times so the CPU can update the display
  • The VIS clock is completely independent of the CPU clock and operates asynchronously from it.
Although the memory is mapped into the memory-mapped I/O space, the control registers are accessed by CDP1802 N-lines.  The CDP1869 directly decodes these, and uses N=3 through N=7, so two-level I/O is a must if you want to do anything else.  Fortunately, the ELF-ish is already configured for two-level I/O, so we're good to go.

The data sheet does mention that it also supports the bit-map operation, if you would rather stick in an 8k memory system, although you'll need to map between the character oriented address and pixel (X,Y) positions through your software.

The data sheet shows this all tied together as a system including the CDP1871 keyboard encoder.

There are many features and options available, so you'll have to consult the documentation if you're interested in the details.

In addition to the data sheets, there's an article about the VIS starting on page 79 of the "Design Ideas Book for the CDP1802", which includes the schematic of the RCA VIS demo board.

Additional very good resources are the two application notes, ICAN-6953 "An Introduction to the Video Interface System (VIS) Devices-CDP1869 and CDP1870" and ICAN-7032 "CDP1800-Based Video Terminal Using the RCA Video Interface System VIS".

These, along with a number of other very good application notes can be found in the 1982 RCA publication, SSD-280 "RCA LSI Products - Applications".

I found a copy at bitsavers,

Join to automatically receive all group messages.