[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Networking Apple II'ss with each other and for Internet?



Al Todd wrote:

>One of my project ideas from many years ago was to use the Apple II 16 pin
>game connector inside the Apple II (not the external 9 pin game connector)
>to create a network capability for these computers. This game port has
>output capability with the annuciator soft switches as well as input ability
>with the game push buttons. With this I/O capability you can create a simple
>serial interface that could be the basis of an Apple II network, without
>additional hardware or the use of a slot.  In fact this feature is the only
>really useful item detailed in the original Apple Red Book. It is mostly a
>software solution so it becomes more of an intellectual progamming problem
>rather than a hardware interfacing problem. Definition of protocols,
>handshaking, collision detection and avoidance all have to be delt with. If
>memory serves me I think Don Lancaster mentioned in one of his articles,
>that this inbuilt serial capability is very fast, if  handled efficiently
>with machine language code. Where this idea could go is anyones guess, but
>it would require very little hardware, a couple of Apple II's and some time
>to work through the details. If it were successful, it would show, again,
>just how far ahead of the times the original Apple II was in 1977.

I made the same observation in '96, and in April of that year developed
a set of assembler routines that would permit up to 16 computers to
be bussed together through a game port annunciator/pushbutton
connection.  It functions much like Ethernet, but at TTL levels and
software speeds.  Synchronization is by means of a software "digital
PLL" and timing is "trimmed" on each byte transferred.  Maximum
packet length is 256 bytes, plus header.

Raw signalling speed--implemented entirely in software running at
the standard (approx. 1MHz) Apple II speed--is 72.89 kilobits/sec.
With framing overhead, this works out to about 7K bytes/sec.

I have all the basic media-level protocols working (arbitration,
collision detection and backoff, error checking, retry) and did the
beginning of some client/server-type protocols to move chunks of
memory from one machine to another, execute commands on a
remote machine, etc.

I've been wanting to get back to it for a couple of years, just for
the fun of it (and to create a retro-net of a dozen Apple II's doing
a distributed computation!  ;-)

If anyone is interested, I wouldn't mind sharing the code I've
developed.  It might be a springboard for someone with more
interest in the higher-level protocols.

-michael

 Email:  mjmahon@aol.com
 Home page:  http://members.aol.com/MJMahon/