[Coco] CoCoFEST! Challenge: CoCo DMA
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
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
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
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