[Coco] Shell i=/t1& slowdown

Gene Heskett gene.heskett at verizon.net
Fri Sep 7 10:50:53 EDT 2007


On Friday 07 September 2007, Willard Goosey wrote:
>>Date: Thu, 06 Sep 2007 09:12:10 -0400
>>From: Gene Heskett <gene.heskett at verizon.net>
>>
>>And the serial mouse is the single biggest improvement you can make
>>to using a mouse on the coco.
>>
>>As for the driver for the mouse, that was part of a cc3io conversion and I
>>don't believe that code survived past about 1.17 of nitros9, a decade or
>>longer ago.
>
>The are drivers are in Nitros9 for serial mice.  One for logitech
>protocol and one for microsoft protocol, and a version of each for a
>6551 or 6552.  Rather any of this is still your code...

Unforch, all of my rs232 stuff, and the wp-rs I used for the 2nd monitor, have 
all had their hardware addresses 'adjusted' to fit the VERY limited I/O 
addressing space the coco3, with its hunger for a section of that valuable 
real estate for the gime's use, and level 2 os9 ISTR made using that area 
above the gime's less than appetizing.  ISTR the top $40 bytes were again off 
limits due to the automatic rom accesses there for IRQ handling, or some such 
but my memory is pretty hazy after all these years.

>>Likewise the incorporation of the co80 code so a 2nd monitor could be used
>>also seems to have fallen by the wayside.
>
>Oh wow!  That's cool.  The GIME didn't melt?

The gime wasn't involved with that at all, the WP-RS cartridge that drove a 
Maggy PC-80 amber screen monitor was just another 4 byte wide I/O port, which 
for some reason totally beyond me, straddled a 4 byte boundary, using 2 bytes 
of each 4 byte block.  As there was an extra gate on the card, that obviously 
got fixed.  But all that was hard coded in the driver, with only the base 
address in the descriptor.  The driver had to rebuilt to use the new offsets 
from the descriptors base address obtained at init time.

Rant mode on...

Actually, there is quite a bit of I/O addressing space available in the coco3 
if one could handily access the scs decoding and kill it except to the 4 
bytes starting at $FF00, and $FF20.  And to compound the felony, and a felony 
it was, the stock disk controller, which needed 8 byte sized addresses, was 
also defaulted to a 32 byte wide response block.  Mistaken design choices 
there wasted another 24 bytes, room for 6 more of these 4 byte wide devices.

The shacks laziness in designing that cost us 80 bytes of what should have 
been usable I/O space below $FF7F ($FF7C-FF7F blocked by the mpi although the 
other 3 bytes might have been usable.).  In the usual 4 byte wide coco 
hardware, that's room enough for 20 more 4 byte wide devices!

/Rant mode..

I think the main reason this was never done is because it would have been a 2 
part kit in some cases, one part to be installed in the coco3 to disable it 
for the ghosted but invalid addresses, and one part in each cartridge that 
didn't have that fine grained an address decoder in it.  Most however did 
have proper decoding but at the wrong address to peacefully co-exist.  Since 
there were more cards than available addresses, it was up to each of us to 
find his own solution for these addressing clashes.  Generally, the driver 
would be happy if the descriptor was updated, the singular exception to that 
being the WP-RS I have which required the driver rebuild when I fixed its 
address decoding.  I also had a WordPack II, which was a similar card but in 
a much cheaper cream colored blow-molded case but I didn't investigate it all 
that much and I believe I sold it, probably to someone here at the time.  I 
didn't have a schematic for that one unforch.

The WP-RS has a rather extensive lookup table that the driver loads into the 
chip at init time, and some of these can be adjusted to make the working part 
of the WP-RS screen considerably larger by reducing the blanking area around 
the text and adding a 25th line of text, all that can be supported in its 
measly 2k of ram.  I made liberal use of those adjustments, the downside 
being that the pixel clock was fixed, so the synch rates went up, the 
vertical to around 70hz, and the horizontal to something in the 18khz range.

As that was faster, the pc-80 never complained nor was it in danger of a 
meltdown.  Its going too slow that kills things in the h-scan because slow 
gives the ferrite time to saturate.  When that happens, the currents rise to 
many amps in a microsecond, with the usually predicted results, the plastic 
mirror pops and the smoke that makes it all work gets away. :)

>Willard

-- 
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 ten o'clock... Do you know where your AI programs are?"  -- Peter Oakley



More information about the Coco mailing list