[Coco] 6551 at 115200 bps (Roger's CoCo Net)

Roger Taylor operator at coco3.com
Sun Jan 18 16:51:52 EST 2009


At 03:11 PM 1/18/2009, you wrote:
>To Roger and all...
>Like most chips, 6551 was designed to work with a 1.8 MHz crystal 
>but sometimes a production run of a chip can be clocked little 
>faster. But looking over specs for the 6551, pushing the chip to 
>double speed is a bit of a hit and miss.
>
>The place where you get into real problems is reading the data at 
>those speed.  With only 15 clocks cycles to do the following...
>
>Test for new data
>Read the data
>Decide that to do with it.
>And then decide to loop for more data.
>
>As you can see, that's a lot of work do in only 15 clock cycles and 
>if you are not there in time to read the next byte then it's lost forever.

The third step can probably be left out.






>One advantage you have with CoCo Net Roger, you can design the data 
>transfer protocol so you don't to take too long in the read loop.

Yes, the 57600 bps (115200 if 2mhz) bitbanger routines are done and 
work well.
Since CoCoNet transfers predefined block sizes, a manual loop could 
coded tight that reads the 6551 data quickly.  I think it can be 
done.  Existing 6551-based terminal programs would probably barf if 
IRQ/FIRQ handles the receiving at 115200 bps.  I suppose 57600 bps by 
using a 1/2 speed crystal would give about 30 CPU cycles to read and 
store using an interrupt service routine?  FIRQ takes up how many 
cycles by itself?  Hmm.  57600 bps might not even be possible from 
existing CoCo comm programs.


>Roger's CoCo Net is one those "tight bits of code" that redefines 
>what you can with a CoCo.  The Internet has changed just everything 
>in our lifes and now the CoCo can be part of it.

Imagine requesting a URL from a BASIC program, a URL with appended 
variables, to a PHP script (oops! I meant Perl  :) ).  This gives the 
CoCo interactive capabilities. We could post game coordinates and 
other data to a multi-player server script which sends back our 
response as a file containing everybody's current information, 
etc.  HTTP PUT is not possible at this time, but a LOT can be 
"uploaded" or "put" to a web server by just appending variables to 
the URL, and having the "page" or script on the server process the 
appended stuff.  It'll work like a charm.  It has in my tests.

The simplicity of the CoCoNet system is almost silly.  It's a ROM Pak 
and a cable.  Without the ROM Pak, a CoCo 3 user could LOADM the 
patch right in and not even type EXEC and it's ready.  A 64k CoCo 2 
user would have to be in all-RAM mode to do the same.  So, a ROM Pak 
was the simplest way to get CoCoNet running, and so it is, acting as 
a virtual floppy controller and web access pak in one.  What could be 
even better?  WIRELESS for the same.

The Bluetooth Pak is on the table.  Fairly basic design.  Plug the 
little black pak in and BASIC/CoCoNet connects wireless to a PC using 
a cheap Bluetooth dongle.
It might sound complicated to some reading, but it's not.  Imagine 
booting into BASIC, seeing the cursor, typing DIR and the disk is 
actually located on a WEB SERVER somewhere.  Things like that are 
possible even from the bitbanger CoCoNet.


>Great going Roger.  My hat was off to you for the RAINBOW IDE, now I 
>got to find that hat again for CoCo Net.
>
>Steve (Zaxxon) Bjork


Well, Steve, guess who was my programmer idol growing up?  Every time 
I'd go into Radio Shack and drool over the demo games running or on 
the shelf, I saw "Steve Bjork" on all the cool stuff.  My hat's off 
to you as well.

-- 
Roger Taylor

http://www.wordofthedayonline.com




More information about the Coco mailing list