[Coco] Midwest VCF

gene heskett gheskett at wdtv.com
Tue Sep 27 10:38:11 EDT 2011

On Tuesday, September 27, 2011 09:44:22 AM Mark McDougall did opine:

> On 27/09/2011 9:55 PM, Steven Hirsch wrote:
> > The N8VEM group is a wonderful effort. They have a family of
> > high-quality designs for S-100 bus systems and have branched into a
> > number of interesting side-projects such as the one you describe.
> I was given an S-100 SRAM memory board the other day - a whopping 32KB
> of memory - with upwards of 5A supply on board! ;) Weighs a fair bit
> too...
> Regards,

I can remember building an S-100 ram board for a Cosmac Super Elf in the 
late '70's, a whopping 4k of static ram that cost us right at $400 for the 
bag of parts.  It worked, and that allowed me to build a box to control 
some u-matic tape machines and install the control tones for an automatic 
station break sequencer plus a new, digitally generated academy leader on a 
finished commercial without having to make yet another quality destroying 
dub copy before it was ready to air.

I built the very simple video it needed and it ran on 6 bytes of dma per 
vertical field, with digits 103 lines high so they could be seen and read 
from anyplace in the control room on 5" monitors.  Believe it or not, I 
still have both paper and tape copies of the code that did all that, and it 
didn't use near all that 4k of ram.  And it was still being used at KRCR in 
Redding CA in 1994, 15 years later.  No clue when Patsy Mullins might have 
rebuilt the station so it wasn't needed anymore.

The RCA 1802 mcu used has a quite unusual architecture of 16, 16 bit wide 
registers and 1, 8 bit wide accumulator, an almost RISC-like 1 byte wide 
command set, but could still manage to be extremely versatile.  It had no 
call and return commands to use subroutines, so RCA wrote a pair of re-
entrant bits of code that took advantage of the fact that any of its 
registers, could be made the program counter in a single byte command, so a 
subroutine call was switch to register 4, address byte,address byte.  The 
routine put the normal PC's register contents on the stack, then put those 
2 address bytes into the normal PC register, jumped back to the byte before 
it was called and switched the PC back to register 3 leaving register 4 
right where it started.  The return routine register 5 was pointed at 
reversed the process by pulling the stack and putting it back in register 
3.  With a clock that was .89 mhz, and 8 cycles of this clock for a 
complete machine cycle, I figured it was going to be too slow, but I put a 
flag write into the end of the loop, which was timed to start by the 
falling edge of the VDrive from the station sync generator, and was amazed 
to see the flag reset in the middle of line 21, almost exactly at the start 
of the video at the top of the picture.

I didn't even have an assembler when I wrote that program, just a hex 
monitor, so I looked up the byte I wanted in the 1802 programmers manual 
and used the hex keypad to put it into memory.  It could save to audio 
tape, so I also have an audio cart like radio stations used with 2 or 3 
copies of the program on it.  With a battery backup on it that would last 
long enough to get the standby generator running, the reload from tape 
wasn't needed very often.

I had not at that point in time, ever heard of the 6809.  Most of the world 
was running on 16 bit TI mainframes in those days.  We had one for 
accounting and its Dynax branded 14" cakepan covered platters were ok, but 
those 2  drives were a cantankerous POS, taking a safety park, requiring a 
full powerdown reset 2 to 10 times a day, despite the most meticulous 
calibration the manual had us doing about every other day.  I don't miss 
that a bit.

Cheers, gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
It's not whether you win or lose, it's how you place the blame.

More information about the Coco mailing list