[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