[Coco] 6 Chip ^809 Computer -> Kipper SBC
Gene Heskett
gheskett at wdtv.com
Sun Mar 15 07:12:28 EDT 2015
On Sunday 15 March 2015 02:24:23 RETRO Innovations wrote:
> On 3/15/2015 12:55 AM, Gene Heskett wrote:
> > On Sunday 15 March 2015 01:37:17 RETRO Innovations wrote:
> >> On 3/14/2015 8:14 AM, Gene Heskett wrote:
> >>> Jim, this exactly the thinking that resulted in the coco shipping
> >>> with an address decoder that only decoded in slices $20 wide. So
> >>> the on-board I/O used up $40 bytes when in fact it needed $08
> >>> bytes to service the two PIA's.
> >>
> >> Which is why Tandy put the !SLENB signal on the bus. By using it
> >> and a decoder, you can make the onboard PIAs only respond to $08
> >> bytes of address space.
> >>
> >> Jim
> >
> > And !SLENB was driven true low by an external decoder? Plz explain
> > further as I never did fully understand that, and obviously it was
> > poorly understood by everyone, else we would have had a plethora of
> > i/o ports that were addressed at $FF04-$FF07 etc. It never happened
> > that I am aware of. If it is in fact that easy, I'd love to build
> > it & play with it.
>
> SLENB allows you to turn off the internal decoder. But, it doesn't
> have to be an all or nothing affair.
>
> PIA#1 appears at $ff00, appears for 4 bytes, and then has 31 mirrors.
> Let's say an external cart wants to put a PIA at $ff04-$ff07. Here's
> how they do it:
>
> You manuall decode $ff00 (put a 8 bit NAND gate on A15-A18, and then
> take the resulting active low output and feed it into a '138 decoder.
> Then, take A2/3/4 and feed them into the A/B/C inputs of the '138
> At this point, Y0 = $ff00, Y1 = ff04,
> Y2=08,Y3=0c,Y4=10,Y5=14,Y6=18,Y7=1c
>
> Tie Y1 to !SLENB and also as the enable for your new PIA.
Hmm, using a fast cmos version of a 138 for its rail to rail drive, one
could then tie a schotkey diode from all but Y0 back to !SLENB thereby
activating it for 7 new I/O slots. But how would that compare the costs
of those diodes to that of another NAND. Sounds like a wash for board
space. I wish my chip books were more up to date.
> Tada, Your New PIA will appear in the address space at $ff04 and only
> $ff04. The original PIA will show up everywhere else.
>
> You can extend the idea. Just decode any address that you want your
> new IO to appear at, and make a signal that goes low when any of those
> address are on the bus.
>
Which is why I automatically went to the wired or schotkey diode
pulldown.
> I assume that the Coco 3 will not let you map out $ff00-$ffff using
> the GIME memory mapper (if so, then you'd not be able to get back to
> the registers to map them back in). So, I think this is all you need
> to do to get your new PIA in place.
I don't think you can use the gime for that. IIRC reading someplace where
the top page was inviolate.
> I have no idea why people never did this, but it offers a nice
> additional area for IO.
The delays in the additional decoding will allow some narrow noise to get
to the /CS lines on the OEM PIA's. Because of that, we'd have to get
our address from a point in parallel with the on board 138's inputs.
And with more modern, read faster cmos versions that would give us the
138's function, we might be able to get /SLENB enough nanoseconds ahead
that the noise would not activate the on board PIA's at all.
Some google searching says the 74HC138 is 1/10 the power, and about 16ns
delay. Also available as HCT, rated at the same 16ns. Thats 4ns slower
that the LS family. Now if /SLENB was held down and had to wait on the
extra 138 function being non-Y0 to release it, that 4ns is a shrug. But
somehow we have to leave the other PIA alone for $FF20, so it gets more
complex. I think... Too early here. Way too early. But certainly
food for thought.
> Jim
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)
Genes Web page <http://geneslinuxbox.net:6309/gene>
More information about the Coco
mailing list