CRONEJP@UREGINA1.BITNET (Jonathan Crone) (01/07/89)
Seeing as how I find myself in the unfortunate position of having to do YET ANOTHER PROJECT.... I figured that I'd do something that would at least be applicable to my amiga.... Please consider that this is an alpha spec (IE I'm still screwing around with the idea) but that it IS going to have to be hammered out within about a week or so into a preliminary design spec.... I'd appreciate Net comment, Net ideas, Net sample code, Net sympathy etc I'd especially like to hear what some of the commodore people and Matt Dillon think. (ESP. Matt) Ok here it is.... as part of a class in hardware design, and software support of said hardware, I would like to come up with a cheap network for the amiga. My idea is as follows.... Utilizing the amiga serial port ( yeah, ok, its there, and I don't have any of the hardware manuals so I don't know how to use the parallel port as a simultaneous input and output device) as a relatively high speed output device (I seem to recall hearing over the net that the amiga can do about 100k bps out the serial port without a sweat, and about 200k bps with a lot of sweating ) I would like to build a network by tieing the transmit line of each system to the receive line of the next system in line, thus forming a ugly looking ring network. The hardwrae handshaking would be handled by connecting the RTS line of the sending system to the CTS line of the receiving system... The hardware interface would be primitively simple, DB25 connectors run to the amiga serial port, with two RJ11C 4 wire conectors on the back, one being the in line, and the other being the out. Only three wires would be used, the transmit/receive line, the request/clear to send line and a ground, but I'm trying to use parts that are in my junk box... The idea for the software is to create a network device... called NET: (now, i've programmed under microsloth dos, and unix, and on my amiga but i've never programmed a device driver, so if people can mail me sample device driver source code, like PIPE:, P:, NULL: I'd certainly appreciate it...) the idea is that access to the network would be as such, NET:0/df0:foo/glar/spam NET is the device name, the 0 is the net number, and the rest is the filespec for the remote system. The actual transmissions would be as follows, initiate packet. node number ANDed with 128 (is the idenifier for a initiate packet) is byte 1. length of packet (filepath/name) is byte 2. read or write is byte 3 rest of packet is the filepath/name packet terminator is NULL/001/NULL/001/NULL error packet is nodenumber ANDed with 64 (identifier for an error) byte 1 Packet to resend. byte 2 packet terminator data packet node number byte 1 packet number byte 2 packet length bytes 3 and 4 data packet two byte checksum packet terminator the receiving system would receive the packets, see if its for it, and if it isn't send it on. Obviously i'm still fleshing it together.... now for my questions. obviously i have to write a device driver for this thing. Now, does this device driver have to grab the serial port directly? or can it talk to SER: IS THIS THING FEASIBLE OR HAVE I BEEN DRINKING TOO MUCH ROOT BEER??? :-) (sorry for shouting.... :-) ) Will Lattice V5.0 be all that I need to accomplish this??? obviously a network watchdog program would be nice as well, obviously that should be in a window.... can cheapnet.device create error messaging that another task can catch and display??? Please send comments, corrections, etc. etc. to cronejp@uregina1.bitnet or if you cannot find this address, use cronejp@mcl.uucp and yes, I know that this is an imposition, but i really would like to write this thing to the point that i can get a mark for it then, maybe release it as a freely redistributable type of thing thanks very much.... Jonathan P. Crone CRONEJP@UREGINA1.BITNET cronejp@mcl.UUCP
ditto@cbmvax.UUCP (Michael "Ford" Ditto) (01/08/89)
In article <8901062235.AA12520@jade.berkeley.edu> CRONEJP@UREGINA1.BITNET (Jonathan Crone) writes: >I would like to build a network by tieing the transmit line of each system >to the receive line of the next system in line, thus forming a >ugly looking ring network. > >The hardwrae handshaking would be handled by connecting the >RTS line of the sending system to the CTS line of the receiving system... That's been done, and should work OK. >the receiving system would receive the packets, see if its for it, and >if it isn't send it on. Sounds OK, but the send-it-on criteria should include checking to see if the packet ORIGINATED from the current node, and discard it if so. Otherwise, sending to a node that is not connected will result in an infinite loop. If this is done, the first criteria could be eliminated, resulting in an ethernet-like "broadcast" network. >the idea is that access to the network would be as such, > >NET:0/df0:foo/glar/spam >now for my questions. obviously i have to write a device driver >for this thing. Now, does this device driver have to grab the serial port >directly? or can it talk to SER: I would recommend putting off the NET: handler for a while, seing that filesystem handlers are among the more obscure aspects of Amiga system programming. For example, you could first make a lower level device that allows sending a packet to a particular named port on a particular node. When that is working, you can make your NET: handler use the lower level net mechanism. The first step doesn't require writing a device driver at all; you could just have a message port to which processes could send requests. Making that a library or device might be a good idea, though. You could probably do all the necessary serial port access through the serial.device. Using SER: would be difficult. -- -=] Ford [=- "The number of Unix installations (In Real Life: Mike Ditto) has grown to 10, with more expected." ford@kenobi.cts.com - The Unix Programmer's Manual, ...!sdcsvax!crash!elgar!ford 2nd Edition, June, 1972. ditto@cbmvax.commodore.com
cmcmanis%pepper@Sun.COM (Chuck McManis) (01/08/89)
[Interesting article deleted, see the reference if you need to refresh your memory :-)] Another suggestion (I know superflouous) why make the Amiga do the actual networking? Build a "network tap" out of a Z80, SCC, 2kRAM, and 2k Eprom. (SCC = Serial Communications Controller). This requires 8 chips, 10 capacitors, 2 resistors, and 1 crystal. Since the serial controller can talk Appletalk (Apple uses the same one) and the parts to the whole system cost less than $25 retail you have a good start. The SCC has two serial ports, make one "appletalk" compatible with the RJ-11 connector, the other you can connect to the Amiga. Have the Z80 handle the CD/CSMA aspects of the network. You may want to replace the 2k ram chip with an 8k ram chip (32k is also available) that would raise the price by $5. The Z80 needs only 4 commands available SET Address, Send Status, Send Packet, and reset. The latter can be connected to the DTR line of the serial port for ease of use. Since there is some RAM on the "tap" you needn't worry to much about interrupt latency, and the SCC chip already knows how to do SDLC type framing so you are pretty much 60% there. Final suggestion, don't reinvent the wheel on protocols. Check out Comer's book or Tannenbaums book on networking and go for it. --Chuck McManis uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@sun.com These opinions are my own and no one elses, but you knew that didn't you.
sneakers@heimat.UUCP (Dan "Sneakers" Schein) (01/12/89)
[ Wanted: A line eater that works! ] Does anyone know of an AUX: like device that uses the PARALLEL port instead of the SERIAL port?!? Why? I have two Amiga 2000's sitting here, both using the serial ports (one running a BBS 24 hrs, the other running UUCP 3-4 hrs). What id like to do is run a cable between the PARALLEL port of both machines (similar to a RS-232 null modem cable). Then using an AUX: like device and special terminal prog- ram access machine B from machine A. Possible? Hell if I know, thats why I asked you :-). Im open to suggestions, comments, and or code samples. I know this method is limited by allowing for only one way communications with no file transfer, but thats all I need. My desk is just too small for 2 keyboards and 2 monitors! -- Dan "Sneakers" Schein {pyramid|rutgers|uunet}!cbmvax!heimat!sneakers Sneakers Computing 2455 McKinley Ave. Of course heimat is an Amiga. West Lawn, PA 19609 Doesn't everyone run UUCP & UseNet on an Amiga? Call: BERKS AMIGA BBS - 60+ Megs - 24 Hrs - 12/2400 Baud - 215/678-7691
Andrew@cup.portal.com (andrew scott lagodzinski) (01/14/89)
>[ Wanted: A line eater that works! ] > > Does anyone know of an AUX: like device that uses the PARALLEL port instead of > the SERIAL port?!? [ Line Eater, YUM! ] > >-- >Dan "Sneakers" Schein {pyramid|rutgers|uunet}!cbmvax!heimat!sneakers >Sneakers Computing >2455 McKinley Ave. Of course heimat is an Amiga. >West Lawn, PA 19609 Doesn't everyone run UUCP & UseNet on an Amiga? Don't quote me, but I believe the CNX: handler that runs under ConMan V1.3 will do what you want. Although you may have to write you own device driver (CheapNet.Device??), I have used this with Serial.Device but lacking an ANSI terminal it was of no more use than AUX: so I have been using AUX: . The Parallel.device may work for you, but you would have to write to William S. Hawes for all the details. Andrew@Cup.Portal.Com
scotty@ziggy.UUCP (Scott Drysdale) (01/14/89)
In article <5748.AA5748@heimat> sneakers@heimat.UUCP (Dan "Sneakers" Schein) writes: >[ Wanted: A line eater that works! ] > > Does anyone know of an AUX: like device that uses the PARALLEL port instead of > the SERIAL port?!? > > Why? I have two Amiga 2000's sitting here, both using the serial ports (one > running a BBS 24 hrs, the other running UUCP 3-4 hrs). What id like to do is > run a cable between the PARALLEL port of both machines (similar to a RS-232 > null modem cable). Then using an AUX: like device and special terminal prog- > ram access machine B from machine A. ... > I know this method is limited by allowing for only one way communications > with no file transfer, but thats all I need. My desk is just too small for > 2 keyboards and 2 monitors! i have some sample code that allows me to connect the parallel port of my amiga to that of an ibm clone (with single cut, single jumper mod to the ibm parallel card) so that the amiga can use the pc's hard disk. the speed i was getting wasn't awesome (slightly faster than a floppy through the filesystem, or around 25K per second), but it worked (*). the ibm parallel port needed fix so it would play bidirectionally. the amiga parallel port code is in the form of a device driver, but the actual read/write to the parallel port is easily extracted. (*) - i had one problem with it, and the folks at CATS couldn't help me on this one - i get access to the parallel port with the proper resource mechanisms, and everything's fine for a few minutes, then SOMETHING reprograms one of the bits normally assigned for centronics handshaking (which i'm using as a bidirectional line) to be an input or output only (forget which). if i disable interrupts around the parallell transfer part and reprogram the CIA then transfer and reenable interrupts, it works - but of course the serial port, mouse, etc get unacceptably jerky. anyways - interested? --Scotty > > >-- >Dan "Sneakers" Schein {pyramid|rutgers|uunet}!cbmvax!heimat!sneakers >Sneakers Computing >2455 McKinley Ave. Of course heimat is an Amiga. >West Lawn, PA 19609 Doesn't everyone run UUCP & UseNet on an Amiga? > > Call: BERKS AMIGA BBS - 60+ Megs - 24 Hrs - 12/2400 Baud - 215/678-7691
elg@killer.DALLAS.TX.US (Eric Green) (01/14/89)
in article <5748.AA5748@heimat>, sneakers@heimat.UUCP (Dan "Sneakers" Schein) says: > Why? I have two Amiga 2000's sitting here, both using the serial ports (one > running a BBS 24 hrs, the other running UUCP 3-4 hrs). What id like to do is > run a cable between the PARALLEL port of both machines (similar to a RS-232 > null modem cable). Then using an AUX: like device and special terminal prog- > ram access machine B from machine A. I just looked at the schematics in the back of my A500 manual, and it's quite possible indeed. Almost all the pins on the parallel port are connected straight to the CIA I/O pins, meaning they're bi-directional. Including things like "Paper Out", etc. You could easily do something like, say: use 8 pins for data input/output. Use Strobe/Ack for clocking the bytes (suitably cross-wired cable, since at first glance one appears to be hardwired interrupt-producing input & one hardwired output). Use, HMM, BUSY for direction turnaround (since this is a half-duplex port, after all). Set up a suitable low-level protocol. Use DNET or something like that, for the higher-level protocol. Presto. Can at least transfer files that way, I don't know about other stuff. Hardware, then, is fairly simple. For software, would have to write a network.device which grabbed the printer port from the parallel.device, have something wedged into the interrupt chain to handle handshaking, and then, if desired, a Dos-level handler a' la AUX:. I have two Amigae here, too, so I'll have to take a look & see exactly how difficult it'd be. I need to learn how to write device drivers anyhow... I've done something of the sort before on the 64, but the Amiga is no 64. > I know this method is limited by allowing for only one way communications > with no file transfer, but thats all I need. My desk is just too small for > 2 keyboards and 2 monitors! The only limit would be that offered by your networking protocol. As for the problem with your desk, I had the same problem. When we went house hunting, one priority was a whole room just for the computers & electronics junk. We thought we'd never use that much space... three walls covered with rough plywood tables (~$30 total), & a ton of shelves. Maybe two square inches of surface are visible now. -- Eric Lee Green ..!{ames,decwrl,mit-eddie,osu-cis}!killer!elg Snail Mail P.O. Box 92191 Lafayette, LA 70509 Netter A: In Hell they run VMS. Netter B: No. In Hell, they run MS-DOS. And you only get 256k.
aaron@madnix.UUCP (Aaron Avery) (01/14/89)
In article <5748.AA5748@heimat> sneakers@heimat.UUCP (Dan "Sneakers" Schein) writes: > Why? I have two Amiga 2000's sitting here, both using the serial ports (one > running a BBS 24 hrs, the other running UUCP 3-4 hrs). What id like to do is > run a cable between the PARALLEL port of both machines (similar to a RS-232 > null modem cable). Then using an AUX: like device and special terminal prog- > ram access machine B from machine A. You could always get some more serial ports!-) > Possible? Hell if I know, thats why I asked you :-). Im open to suggestions, > comments, and or code samples. Well, the code to look at is Andy Finkel's cport-handler on disk 1 from the 88 Philadelphia DevCon. > I know this method is limited by allowing for only one way communications > with no file transfer, but thats all I need. My desk is just too small for > 2 keyboards and 2 monitors! Why can't you use PAR: for this? Is it just due to the lack of an EOF? If so, the above code will probably do you just fine. -- Aaron Avery, ASDG Inc. "A mime is a terrible thing to waste." -- Robin Williams UUCP: {harvard|rutgers|ucbvax}!uwvax!nicmad!madnix!aaron ARPA: madnix!aaron@cs.wisc.edu
sneakers@heimat.UUCP (Dan "Sneakers" Schein) (01/17/89)
In a message long, long, long ago, I wrote: >[ Wanted: A line eater that works! ] > > Does anyone know of an AUX: like device that uses the PARALLEL port instead of > the SERIAL port?!? I have received several ideas (both on the net and via mail) on how to do this. When time allows im going to look into all suggestions and see if I cant get something working. Stay tuned.... Sneakers PS: Thanx to all who sent ideas! -- Dan "Sneakers" Schein {pyramid|rutgers|uunet}!cbmvax!heimat!sneakers Sneakers Computing 2455 McKinley Ave. Of course heimat is an Amiga. West Lawn, PA 19609 Doesn't everyone run UUCP & UseNet on an Amiga? Call: BERKS AMIGA BBS - 60+ Megs - 24 Hrs - 12/2400 Baud - 215/678-7691
shimoda@infohh.rmi.de (Markus Schmidt) (01/18/89)
In article <391@madnix.UUCP> aaron@madnix.UUCP (Aaron Avery) writes: >Well, the code to look at is Andy Finkel's cport-handler on disk 1 from the >88 Philadelphia DevCon. Where can I get this? Thanks Markus
walker@sas.UUCP (Doug Walker) (01/19/89)
In article <5748.AA5748@heimat> sneakers@heimat.UUCP (Dan "Sneakers" Schein) writes: > I know this method is limited by allowing for only one way communications > with no file transfer, but thats all I need. My desk is just too small for > 2 keyboards and 2 monitors! Why is it limited? The interface to the parallel.device is almost identical to the serial.device, the only exception being that you can't set flags that don't make sense in the setup (like bps). I am working on an AmigaDOS device driver to allow you to access another node's devices via some arbitrary communications medium. I certainly would expect the parallel port to be a prime candidate. I have played with it a little and have run into what may be parallel.device bugs, but the hardware is eminently capable of high- speed two-way data transfer. Right now I'm using DNET, but it seems to be a little flaky about dropping my connection. While I'm on the subject: has anybody had the following problem with DNET? 1. Side A writes to an already-open connection. The DWrite returns successfully. 2. Side B, which is doing a DRead (synchronous, not asynchronous read) never gets notified there is any data. 3. Side A, now getting desperate, sends a DNET EOF. 4. Side B never wakes up. 5. Side A terminates DNET. 6. You guessed it, side B never wakes up. DNET itself is up, since I can still initiate new transfers with PUTFILES and the like, but I can't blast that one connection loose short of sending a BREAK signal to the DNET process on side B.