Banks of studio-grade VCRs under control of a 6502 in a fast-paced, on-air environment... I love mental the image of this!
Like Neil, I too fell into using the 65xx family by accident. The KIM-1 is what happened to be in stock at my local electronics store, and, to my 1979 noob sensibilities, it seemed as good an option as any for getting my feet wet. At the time I wasn't able to foresee just how richly that particular choice -- KIM and 6502 -- would reward me.
I'll mention two factors whose importance is pivotal, and the first is the MOS 6500 Family hardware and software
manuals included with my KIM-1.
Chuck Peddle famously procrastinated on creating those manuals -- humorous story, and the manuals themselves,
here -- but eventually he and his team delivered in spades.
Quote:
And what we were trying to do is make it so anybody could read it and do it. And they did. Those manuals, really and truly we were proud of them.
Well done !! The educational impact for me was enormous.
Hackability (new instructions)The other factor which makes the 65xx Family memorable for me is its hackability in terms of creating new instructions. (I mean full speed, hardware-based instructions, not software interrupts.) The scope is such that many plans remain on the drawing board -- I have accumulated far more ideas than I'll ever be able to implement! But off the top of my head I can think of 3 or 4 ventures that actually did get completed and successfully put in service (see below). Again I need to credit a legendary figure; Don Lancaster and the hacking described in his Cheap Video Cookbook were inspirational for me.
It's no small advantage that the 65xx relies so heavily on zero-page indirect accesses. Unlike those of other processor families, the 65xx "pointer registers" don't reside on-chip. This (and tracking the history of the SYNC pin) make it easily possible to snoop
or even hijack and subvert the fetches upon which an address calculation is about to be performed.
There's a more down-to-earth advantage when it comes to the 'C02 in particular. Unlike NMOS undefined opcodes, 'C02 undefined opcodes are all nominally NOPs, and for the most part they have highly predictable and exploitable behavior. Various possibilities are mentioned in more detail
here, but one quick example as a teaser is the single-cycle NOPs. Beside being extremely fast (single cycle), these truly *are* NOPs, which the CPU obligingly fetches for us then ignores. External hardware can easily detect a single-cycle NOP and perform a discrete response. Or, far more powerfully, the response may be to
modify the following instruction. This is similar to the escape "prefix" bytes used with x86, Z80 and 6809 (to name just a few).
-- Jeff
Here is a
very simple scheme that allows 'C02 single-cycle NOPs to produce a discrete response (a write to an output port).
This and the following posts show how an ordinary 6502 can be coaxed to produce the 20-bit extended addressing found on a 6509. I never built this circuit; but, as the thread reveals, Jim Brain successfully used it as the basis for his PLD-plus-65xx 6509 substitute. (Actual 6509's are scarce these days.)
This post touches on my first 'C02 hack, the so-called "time bomb" circuit which enabled my KIM-1 to momentarily or otherwise flip
the entire 64k address space all at once in order to access a total of 128K.
My
KK Computer features new registers, new instructions and also some new address modes. I may perhaps be guilty of getting carried away!
KK uses external microcode to coordinate with what the 'C02 is doing internally, but there's much that the 65xx family makes possible without resorting to that level of complexity.