[comp.sys.apple] BBoard protocols

paul@athertn.Atherton.COM (Paul Sander) (09/11/89)

In article <8909092230.AA26919@uunet.uu.net>, king@ivory.UUCP (Steven King) writes:
> Although I haven't tried it myself, I think that if properly done an interrupt
> driven system wouldn't lose characters.  You set up a large queue (probably
> about 1 to 5 K).  Whenever a character comes in from the remote system it 
> triggers and interrupt and is stored in the queue.  Now, when the graphics
> routine *finally* gets done with what it's doing the queue is searched for 
> incoming characters.  With this kind of set up you'd only lose characters if
> you had MASSIVE amounts of text coming in; enough to overflow the queue.  Most
> applications (say, calling the local BBS or calling into work) don't deal with
> that much data at once.  There's usually a prompt that will come up ahead of
> time ([MORE] after a page of text, f'rinstance) that will let the graphics
> routine catch up.  If there was a problem of queue overflow, the computer
> could possibly send an XOFF or some other sort of handshaking when the queue
> started getting full, let the queue get printed, and send XON to start the
> flow again.  Using the double-hi-res screen probably WOULD be painfully slow,
> though!

Two things:  A 2K buffer is all that is needed to store a single screenful
of text.  Most systems I've ever used that stream their output without some
sort of automatic paging understand XON-XOFF protocol, so implementing the
queue with high- and low-water marks and sending appropriate handshaking
characters shouldn't let any characters go.

Second, using hi-res graphics text doesn't have to be slow.  It all depends on
how you do it.  I've gotten such things working on a ][ Plus, though  it
still wasn't fast enough to keep up with 1200 bps while scrolling.  But it
did run fairly fast when drawing characters (in a 7x12 grid instead of the
more conventional 7x8 grid) and scrolling was quick to the eye.

[Jason Blochowiak wrote:]
> > The one thing I
> > haven't seen yet is a transfer protocol that lets you continue with other
> > things normally. As in, while the term program & BBS are (bi-directionally?)
> > exchanging files, you can go on with viewing posts.
> 
> A couple years ago in college some friends and I tried to design such a beast.

[stuff about the "Houghton Terminal Protocol omitted]

> > Of course, the BBS would need
> > a packet interpreter as a front end to keep the BBS itself from having to deal
> > with the nasty details.
> 
> You hit upon one of our problems.  This was going to be a BIG project, just
> to design the specs.  Then we'd have to sit down and write the end-user
> programs (I was going to write the Apple version, using the double-hi-res
> screen like we talked about above) and someone would have to write a BBS that
> would take advantage of all of it.  Most of us were trying to graduate at
> the time, and it was just too much for us.
> 
[stuff about Amigas and "Diga!" omitted]

There's a guy named Asko Kauppi in Finland who's taking on this challenge.  He's
designed a suitable protocol, and was finding people to develop it along with
a number of applications before starting his duty in The Service.  I'll forward
a copy of this article to him to see if he wants to begin a discussion of his
progress here.
-- 
Paul Sander        (408) 734-9822       | If a machine is powerful enough
paul@Atherton.COM                       | to have a DWIM button, why bother
{decwrl,sun,pyramid}!athertn!paul       | with the button?  -- Eric Black

kadickey@phoenix.Princeton.EDU (Kent Andrew Dickey) (09/11/89)

In article <12526@athertn.Atherton.COM> paul@athertn.Atherton.COM (Paul Sander) writes:
>[stuff about Amigas and "Diga!" omitted]
>
>There's a guy named Asko Kauppi in Finland who's taking on this challenge.  He's
>designed a suitable protocol, and was finding people to develop it along with
>a number of applications before starting his duty in The Service.  I'll forward
>a copy of this article to him to see if he wants to begin a discussion of his
>progress here.

I should like to remind people that several years ago a program called
Cat-fur was written.  It allowed two users to chat while simultaneously
sending a file (or disk).  Similar programs appeared about the same time
allowing a transfer to occur IN BOTH DIRECTIONS at the same time--both
sides would be sending and receiving at once.

Although most of these programs were designed specifically for the Apple
Cat modem, the reason was simple--the Apple Cat had a special mode of
half duplex 1200 baud in its 300 baud model.  That is, for the price of
the 300 baud model, these special programs could achieve 1200 baud
transfer rates!  No special tricks were invlolved--it just relied on the
fact that the Apple Cat 300 baud modem was a very impressive piece of
technology:  It contained a 8 bit D/A converter (for creating the
Touch-Tone signals), independent send/receive baud rates (along with
fully adjustable carrier tones, too--you could use a 300 baud carrier
during 1200 baud transmissions if you so desired...or have the receive
line receiving at 1200 baud while sending data at 300 baud), an option
for a touch-tone decoder chip, and option for BSR control, and option
for a serial port add-on (so that an external modem or printer could be
hooked up), control for an external tape drive (so that you could build
your own answering machine), etc.

Actually, everything but the touch-tone decoder chip was built-in--all
of the other 'add-ons' were merely adapters.

So, in terms of this 'chat' option being a new idea--it most certainly
is not.  Cat-Fur is at least 5 years old, if not more.  It most
certainly is older than the wide-spread acceptance on 1200 baud.

			Kent Dickey
kadickey@phoenix.Princeton.EDU

mikes@ncsuvx.ncsu.edu (Michael Steele) (09/12/89)

In article <12526@athertn.Atherton.COM> paul@athertn.Atherton.COM (Paul Sander) writes:
>[Jason Blochowiak wrote:]
>>> The one thing I
>>> haven't seen yet is a transfer protocol that lets you continue with other
>>> things normally. As in, while the term program & BBS are (bi-directionally?)
>>> exchanging files, you can go on with viewing posts.

	I am at a Computer Theme program here at NC State and we are working
	on such a Beast for UNIX.  What we plan to do is write a
	multi-windowing interface for the Apple IIGS, IBM, Mac, Amiga, and
	Atari ST that will use a standard Packet switched interface to a
	UNIX based system.  It will have the concepts of a striped down X
	windows: allowing multiple sessions on different computers and
	transparent file transfers.  

Michael Steele		mikes@ncsuvx.ncsu.edu
			mikes@shumv1.ncsu.edu
			netoprms@ncsuvm.bitnet
-- 
Michael Steele		mikes@ncsuvx.ncsu.edu
			mikes@ncsuctix.ncsuvx.ncsu.edu
			netoprms@ncsuvm.bitnet

T8M-KAUP@FINTUVM.BITNET (Asko Kauppi) (09/24/89)

   -< Sorry, it got a bit too long. Important things start on line 38... >-

On September the 10th, Paul Sander wrote:

> There's a guy named Asko Kauppi in Finland who's taking on this challenge.
> He's designed a suitable protocol, and was finding people to develop it along
> with a number of applications before starting his duty in The Service.  I'll
> forward a copy of this article to him to see if he wants to begin
> a discussion of his progress here.

    Yes, that might be appropriate. There hasn't been much progress, though,
    as I had to start my 11 months in "The Service" in June. Still got 225
    days to go... All the same, I try to get further with my idea even in the
    primitive army conditions. I have a Zenith CGA 8086 portable with me, so
    I'm not complitely tied to pure paper. I have also found that long marches
    are quite good situations for letting the ideas flow in my head. Try it:
    some 20 kilometers carrying a 30kg sack and you're bound to get a solution
    to your problem...  ;-)

    So far, I have re-designed my communications protocol at least five or six
    times, the first ones dating as far as July 1988. During each pass, the
    protocol has gotten better and better, simpler and simpler. I certainly
    AM a perfectionist, so only the absolutely best is good enough for me.
    At the moment, my 'baby' is nearly finished. I still want to give it one
    more pass to get all the details written clearly and understandably:
    My current notes were of no help to anyone else but me myself. When I
    get the thing 'clean' enough, I'll probably send it over for public
    discussion. I doubt you could come up with better solutions than I have
    (well, I've spent a year developing it, haven't I...), but all the same
    you must be curious and certainly must have varying opinions on some
    aspects. Just wait and see (and hope I have enough spare time among my
    combat training).

    Here are SOME main points of my protocol:

        The goal: To give powerful remote windowing and graphics abilities
                  at even as low a bandwidths as 1200 bps.

        The means: 1) Use MACROS. Often used command sequences can be stored
                      on the terminal's (disk) storage and later on called
                      with varying parameters.

                   2) Use asyncronous bitstring transfer. Long pieces of data
                      (text, picture bitmaps, files...) are transferred at
                      the connection's 'spare time', using various priorities.
                      Other, more important packets are sent prior to these
                      (files up/download at the background, pictures appear
                      gradually when everything else is going on normally...)
                      Comparable to multitasking vs. monotasking.

                   3) ALL data fields are of dynamical length. If we need
                      sharp coordinates, we give them 16 bits each, if not,
                      some 6 might be enough. The coordinate system is of
                      NAPLPS type: (0,0) - (1,1) and between.

                   4) Use heavy, automatic compressing.

     Other points: - CAD-like graphics are created using AbiScript, a sort
                     of a binary coded subset of PostScript (19 commands).

                   - BOBs (Blitter OBjects: Amiga terminology) are included
                     for the sake of remote arcade (and other) games. Some
                     people will just LOVE it|

                   - Sampled sound, of course - with multiple channels...

    If it sounds a bit too ambitious, I can assure you that my purpose by
    no means is to do it all at once. It is nice to have the total protocol
    defined before you start implementing any of it: you won't have to make
    any of those irritating 'extensions' all standards are filled with.
    The next thing to do after proof-reading the final(?) protocol papers
    will be to deside, which areas to implement first. I think I'll start
    with the drawing commands without any windowing, sound, fonts, BOBs
    or any extra. After that I'll perhaps introduce windowing and then all
    the rest... At some point, someone should put up a nice BBS program
    for my magnificient (it is|) protocol. Quite a lot of work to do,
    at least when you're alone and in the army...

    Anyway, thanks for following this far - you must be truly interested on
    the subject. If you want to reach me, it might be easier by conventional
    post (I get holidays every 2 weeks or so) sent directly to the army base.
    I do have other things to do on my holidays than replying KBs of electronic
    mail...

              Yours binary,
                               / Asko /

  Army addr: Oppilas Kauppi AP, KrhJ/AUK/PorPr, PL 5, 27911 HRINNE, FINLAND
_____________________________________________________________________

    Asko Kauppi     alias      T8M-KAUP at FINTUVM.BITNET  (BitNet
                                           MAMMUTTI.UTU.FI (InterNet
  Student of Physics
   Turku University    addr: Kakskerrantie 176, 20960 Turku, FINLAND
      Finland          tel : +358 (9)21 588 359 / 588 434

blochowi@rt5.cs.wisc.edu (Jason Blochowiak) (09/26/89)

	Pardon the sarcasm, but does it come with a kitchen sink? The reason
that standards have extensions is because nobody (not even someone with a
protocol as grandio-, uh, magnificent as yours) can predict what will work well
in the real world. Perhaps defining a prioritized pseudo multi-channel mux/de-
mux would work out well, even with some form of optional automatic compression.
However, it would seem that design of the higher layers would be more efficient
if they were optimized around a _tested_ data transfer layer. This might not be
quite so important, but we are talking about micros here, and if you're worried
about low bandwidth (1200 bps) communication, you're probably not talking
about people with 50Mhz 68040 machines...

--
                 Jason Blochowiak - back at school (again).
             blochowi@garfield.cs.wisc.edu or jason@madnix.UUCP

            "What's up pruneface?" - Bugs Bunny in the year 2000