[Coco] CoCoFEST! Challenge: CoCo DMA

Gene Heskett gheskett at shentel.net
Tue Mar 3 00:05:01 EST 2020

On Monday 02 March 2020 20:30:40 RETRO Innovations wrote:

> On 3/2/2020 7:29 PM, RETRO Innovations wrote:
> > http://www.go4retro.com/2020/02/26/direct-memory-access-possibilitie
> >s-on-the-tandy-color-computer/
> http://www.go4retro.com/2020/02/28/coco-dma-early-efforts/
> Jim
Jim, congrates and all that! My first experience at writing a program for 
a tv station used the dma capability of an  RCA 1892 microcontroller, 
circa 1978, for several things, the most impressive being the creation 
of a 2 digit plus decimal point character generator, needed to replace 
the dirty, noisey reproductions of a 10 second video count down with a 
modern dead frame accurate digitally generated "academy leader" which 
was in fact horribly inaccurate due to the video tape editing capability 
available to even the high priced left coast production houses of the 
day.  The need was brought about by our possession of a "station break 
sequencer" which could take a list of machines, 3/4" u-matics of the 
day, load the commercials tapes by hand and tell it what order they 
played in, which would then search the tapes for the queue tones on the 
2nd audio channel and park the machine in pause at the detection of the 
tones.  When it was time to do the break, a one button start ran it thru 
what you had set it to do.

As the only way to lay those tones was to copy a master tape that by then 
had several thousand play passes on it, then "dub" the commercial over 
the top of that copy, the on air results were horrible at best.

Observing how it was done, I saw that I could improve the timing AND get 
rid of the image damaging dub by laying the tones down on the finished 
commercial tape. But like topsey the project grew to need to replace the 
crappy academy leader with modern digitally generated countdown. I first 
wrote in a digital clock display but it was too small to see on a 5" 
from the switchers operating position up to 16 feet away.

So I came up with a system cpu clock driven counter to drive the 4 
address lines of a 74150 and a gang of diodes and logic that let me make 
characters 103 lines high and 2/3rds of a screen wide, that would decode 
a single byte of dma, triggered by the scan counter to start 50 lines 
down from the top of the screen with a byte of dma that enabled the top 
line of the character, then counted to 53 and wrote by dma, the data 
that would be the legs of the character down to the 150th line, at which 
point a 3rd dma cycle wrote the center horizontal line, a 4th dma cycle 
at line 153 then wrote the bottom legs of the character, a 5th cycle at 
200 lines wrote the bottom of the character until a 6th dma cleared the 
rest of the screen. Update those 5 bytes if needed for the next 1/10 
second during the vertical interval, wash, rinse and repeat until 2 
seconds before first video, when the video insert was turned back off.

I did all that while the chief was recovering from a heart attack and I 
was the acting chief, but I went on down the road in search of taller 
grass a couple months after he came back to work. I was back on the left 
coast in 1997 to see before it was too late, some kin in Salem OR at the 
time and wasted a phone call to Redding to catch up on old times. I put 
that little cosmac super elf to work doing that in early 79, and in 97 
they were still using it many times a day.

Equipment changes much faster than that in any tv station control room, 
so learning that it was still in use 18 years later impressed me, a lot. 

I should have bought the copyright back (I wrote it on their time so it 
was their's) and went into production making it. I was good to them as I 
left instructions as to how to change the software to update its 
ballistics to handle faster machines so it wasn't married to a Sony 2850 
for its last frame of accuracy. I would have had to make a lot more 
video hardware to do that w/o dma.

So I want to see how this works out, Jim, you have my attention.

This could easily be this decades "forgotten chip" as it will certainly 
enhance the coco's abilities. One thing I think is missing though, the 
1802, with its 16, 16 bit registers, dedicated one to act as the dma 
source address with auto-inc, so the cpld will need at least one such 
register to supply the read address (with an auto-inc,) and possibly 
another to supply the write address (also with auto-inc). And possibly a 
3rd with auto-dec to control how many bytes were to be moved if a burst 
was setup.

And finally, this would be an excellent time to overhaul the top page 
decoding to make room for all the i/o that would open up on a coco3. 
Something I've been ranting about since the cc3 came out.  There are 7 4 
byte wide locations that could easily be used for those registers hiding 
between the pia's, and 7 more 4 byte wide locations between the 2nd pia 
and the floppy controller. Allow those to be memory locations in main 
memory and you've got your dma registers.

> RETRO Innovations, Contemporary Gear for Classic Systems
> www.go4retro.com
> store.go4retro.com

Cheers, Gene Heskett
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>

More information about the Coco mailing list