[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