[Color Computer] Re:[coco] www on coco

L. Curtis Boyle curtisboyle at sasktel.net
Thu Nov 9 09:51:18 EST 2006

On Wed, 08 Nov 2006 21:55:11 -0600, George's Coco Address  
<yahoo at dvdplayersonly.com> wrote:

> Frank(and all),
>   My desire for sending and receiving email from a coco outweighs the  
> need
> for a laptop. It's a passion.
>   Meanwhile, I refuse to believe that a coco "Can't" do email on the
> internet. No one has ever explained exactly why it can't, other than
> something about "stacks" requiring too much memory.
>   Since the internet and TCP/IP works on packets, what's the big deal? We
> just use a hard drive/floppy/ramdisk to make memory. The "internet" will
> wait for the next packet or a request for a packet and process it  
> normally.
>  I'm ignorant in this part, but logic tells me that packets are packets  
> and
> a coco can send and receive packets.
>  Packets are sent to the intended modern PC at a rate that the modems can
> handle. If a coco is on a slow modem(9600), then the IP can provide for  
> that
> and wait for the next request for a packet.
>   I am constantly sending and receiving large files between my coco and  
> this
> PC at 9600 baud using Xmodem and Ymodem, depending on the file types.   
> These
> machines do it flawlessly and I can't see the problem. They use PACKETS!.
>  If anyone can explain exactly why a coco can't do this email thing then,
> possibly, I will understand. Simply claiming it can't is not good enough.
>   Please..... I'm not angry. I just want the TRUTH!
>   Since I started work at my new job at a machine shop, I've discovered  
> that
> they LOVE me because I am catching on and today, I actually wrote a  
> program
> to build a part.  I only made a few mistakes and my mentor showed me  
> what I
> did.
>  He  indicated that he was impressed that I did so well.
>  So why can't I get a handle as to why a coco can't do eMail?
>  "If you think you can't then, you can't. If you didn't know you can't  
> then,
> you can"  ME!
> BTW. .
>  CNC machines are really COOL!!!!  Gene Heskett was right. Modern  
> software
> and hardware is where it's at. If I needed to make a few hundred parts,  
> then
> this is the way.
>  However, I do "One Off" parts at home, so my coco is the way to go with
> CNC. I can wait(and watch) until the product is done. My little  
> dohicky(CNC
> center) is good to .0005/inch. Good enough for me..... as long as I can
> figure the math.

     I had started expermenting with this right before I lost all free time  
in my life (sigh).... and it IS possible. You _have_ to have fairly large  
storage (I would say a hard drive is pretty well required... not even a  
1.5MB RAM drive would cut it for certain websites), but you can negotiate  
packet size with the provider that you are logging in through (whether you  
use SLIP or PPP is immaterial), and you would have to write the TCP/IP  
driver either 1) as an actual OS-9 driver that passes along which packet #  
it has received to the calling program, and let it sort them out (you  
won't receive them in order), or 2) as part of the  
browser/email/newsreader program itself, which can then sort the packets  
out itself to begin with. One could even do some of the graphics (the  
additions I did to the 6309 version of VIEW, including GIF animation, were  
part of this experiment). I also did experiments on increasing modem  
speeds, and had some quite encouraging results. A few things to do there:  
1) use a large buffer serial driver (like SACIA/DACIA), 2) change SCF to  
be able to block read from the driver, like it block writes to GRFDRV (I  
had a scheme cooked up with 2 mode bit flags that would have to be present  
in both the driver and the descriptor to enable read and write buffering;  
if either was not set, it would go back to the single character driven  
mode it uses now, but if both had the bit set, it would allow up to 32  
chars at a time in a single transfer; this would allow one to mix  
buffered/unbuffered drivers, not crash if you mismatched a descriptor and  
driver, and allow specialized drivers that have buffering for only one of  
read/write to work as well), 3) change the program doing the reading to  
use the GetStat call to see if data is on the port, and depending on baud  
rate, wait for a small, set amount of time or a certain buffer size (the  
GetStat call also returns how many characters are waiting in the buffer to  
be read) before reading a whole chunk at a time. This last portion I  
actually had some test code done (without the buffered SCF), and I could  
_easily_ keep up with 9600 baud even with hardware text screen updates,  
and just about with 19200. With a buffered SCF, I am confident one could  
keep up pretty well. Then, it's just interpreting the HTML code after you  
receive all of the packets, put them all in order on the hard drive, and  
figure out what to divide into what files (html, images, etc.) One would  
pre-render graphics, and possibly convert the raw HTML code, into more  
Coco native formats to get the speed up when going through a web page.  
This is the other reason one would need a hard drive... this would take a  
lot of space. At the very least one would need a large, no-halt drive  
system (the No-Can2 and up boards with 8 MB of RAM could be used, and  
maybe 800 or 1.44MB floppy, but no-halt is pretty well mandatory unless  
you want to view pages offline).
     I did have a bare start on SLIP (PPP is much more complicated, and at  
the time I was just experimenting), but didn't get very far on that part  
of the project. I did get the PLAY command to handle many more sound  
formats, including a few from the web, and was optomizing VIEW for speed  
and handling more versions of GIF. I didn't/don't understand enough about  
how JPG works to figure out how to do that, which has become much more  
prevalent since then. I was also planning on adding more stuff to  
Windint/Grfdrv, including insert/delete column, and different font sizes  
(beyond the 8x8 and 6x8 we have now) into a new, 16K version of GRFDRV),  
but never got that far (I did bugfix Alan's last additions/optomizations,  
and added the filled circle/ellipse commands from the level 2 upgrade). I  
was going to add variable height fonts first, as that would be the  
easiest, and also allow more text on a screen (a 5 pixel high font could  
fit 40 rows on a 200 line screen, although you wouldn't have descenders at  
that point).
     I have actually been cleaning up the computer room recently, and have  
found a lot of my "planned for the future" notes (including adding Setstat  
calls for stereo sound, screensavers, etc.) that I would be happy to pass  
along to anybody on the current Nitros9 development team if they want to  
try implementing them. Enough code has changed since I worked on it that  
it would take me awhile to catch up, and I simply don't have the time  
anymore to dedicate to such large projects.

L. Curtis Boyle

More information about the Coco mailing list