[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