home *** CD-ROM | disk | FTP | other *** search
-
- PARNET-PC V0.4 (02-SEP-93)
-
- A multi-host parallel network for PC's
-
- by S.A.Pechler
-
-
-
- NOTE: This text is written by a person with poor knowledge of the english
- language (me). When you discover some typo's, bad grammar, typical dutch
- expressions, etc., please let me know so I can correct them.
-
-
- Copyright Notice
-
- This PC-port of PARnet is based on the Amiga's PARNET.DEVICE. The
- original Parallel Port Network code (PPN code) is Copyright (c)
- 1989 by Matthew Dillon. The NET: handler and NET: file system is
- Copyright (c) 1988, 1989, 1990 by The Software Distillery.
- Ethernet is a trademark of Xerox Corporation.
-
-
- General Overview
-
- This is the PC version of the well known PARnet.device driver on
- the Amiga. It supports connections for two or MORE machines
- together via a common, custom parallel port cable (centronics)
- when using a special PARnet-interface. Without this interface it's
- only a point to point network. The transfer rate of the network is
- about 5.7KBytes/sec (5.3KBaud), but this varies on each type of
- machine. Currently there is only software available for testing
- the interface and a custom TCP/IP packet driver. With the packet
- driver you are able to interface with programs like Telnet, FTP,
- NFS and maybe even Novell-Lite. The PARnet NET:-device has not
- been ported yet.
-
-
- Software Overview
-
- At the moment, PARnet-PC contains only the kernel-routines of the
- PARnet device. It has less functions than the Amiga version, but it
- is built for integration in any other low-level packet switching
- applications (packetdrivers, NOS, etc.).
-
- A PARnet network is based on machine addresses and rendezvous
- ports. It looks a bit like Ethernet-style connection, but PARnet
- has the following limitations/features:
-
- - Each machine on the network must have a unique address in the
- range 1-254. (0 and 255 are reserved)
- - The network has no broadcast capability.
- - Multiple connections may exist between any two machines. This
- is done by including a destination port number in each packet.
- - Two different protocol can be used:
- DATA-GRAM protocol (used for sending semi-reliable data between
- machines)
- STREAM protocol (used for sending reliable data between
- machines)
-
- Currently, only the DATA-GRAM protocol is used in the PC version.
- The STREAM protocol is not even implemented in the Amiga
- parnet.device, so why bother about it.
- The portnumbers are embedded in the packets, but not interpreted
- by the kernel routines. This can be done in a higher level
- protocol.
-
- The following functions are implemented in the kernel:
- - Setting the hardware address and PARnet parallel port for this
- machine (ParAddress).
- - Checking for a packet on the line addressed to me
- (ParDataReady).
- - Read a pending packet (ParRead).
- - Write a packet (ParWrite).
-
-
- Low Level usage
-
- Before you can access the network you have to initialize the
- parallel card on which the cable is connected. You also have to
- set the PARnet hardware address of the current machine. These
- things are done by the ParAddress function. It requires two
- parameters: 1. the PARnet hardware address (2 bytes). This can be
- any number between 1 and 254.
- 2. the parallel card port address (2 bytes). In most
- cases this is 0378h for LPT1, 03bch for LPT2 or
- 0278h for LPT3. But also special parallel cards
- can be used, as long as they work in the same way.
-
- Reading of a packet can be done in two ways:
- - By polling; In this case you must have a continuous loop which
- calls the ParDataReady function. When data is on the line, this
- function will return a 1. Then call ParRead as fast as possible,
- otherwise you'll miss the packet. This way of reading is not
- very advisable. When other routines (like interrupts) take too
- much time, there is a chance that you lose packets.
-
- - Interrupt based; An incoming packet will always generate an
- interrupt on your parallel-card. The interrupt number that is
- generated, depends on the card number & jumper settings, but in
- most cases it will give an IRQ7 interrupt for LPT ports. You
- need to move the interrupt vector to your own routine in which
- you call ParDataReady. If a packet is pending it can be read
- immediately in some temporary buffer(s). It's better to use
- more than one buffer in case the main-program can't handle the
- incoming data very fast.
-
- Examples for these methods of packet reading, see the source codes
- GET.C (polling) and LISTEN.C (interrupt based).
-
- Writing a packet is more easy, just call the ParWrite function
- with the destination address, packet content and packet length.
- The kernel will do the rest for you.
-
- Examples for packet writing, see TALK.C or DUMP.C.
-
- The format of a PARnet packet is given in PARDEV.H. More
- information is written in the comments of the various test
- programs.
-
- The executables are compiled with the non-interface kernel
- version. If you want to build and use the interface, rename
- the PARKERN.OLD file to PARKERN.ASM and re-compile the sources.
-
-
- The Interface
-
- In this version of PARNET-PC it's not needed anymore to build a
- special PARnet interface when you have only 2 machines
- interconnected. If you want to have more on the same line, read
- the following to prevent burning CIA's:
-
-
- On PC's you will have to build a PARnet-interface before you can
- use the software. Despite of the enormous amount of Parallel- &
- Multi I/O cards fabricated for PC compatibles, only a few are
- compatible to eachother. n most cases the cards are so
- 'hard-built' (something like 'hard-coded'?) that they can only be
- used for output to printers. This in contradiction to the Amiga
- parallel-port, which is multifunctional (printers, digitizers,
- midi, etc).
-
- That's why I made a full centronics compatible interface which
- should work allright on most compatible parallel cards.
-
- A 'compatible parallel card' must have the following lines:
- - 8 data lines for output (pullups not needed)
- - 4 control lines for output; Strobe, Auto linefeed, Init and
- Select In. These lines must be pulled up!
- - 9 status lines for input; Error, Strobe, Auto linefeed, Init,
- Select In, Paper Out, Select, Acknowledge and Busy.
-
- If your card does not have this (yes, it's hard to check on new
- cards with only 1 chip), the interface won't work! In that case,
- go to a dump-shop and ask for a very old XT-parallel-card built
- with TTL-IC's.
-
- When you have the right card, then you can start building the
- interface.
- The following parts are needed:
-
- - 2x 74LS00
- - 2x 74LS07
- - 2x 74LS244
- - 2x 74LS273
- - 1x 25 pin Sub D connector female
- - 1x 25 pin Sub D connector male
- - 2x 100nF capacitors when the interface can not handle high
- speeds (see text how to connect them).
- - 11x 4.7 KOhm pullup resistors when you are going to connect
- only PC's with eachother. These are NOT NEEDED when you have at
- least one Amiga on the line.
-
- The schematic for the interface is shown in the file PARPC.IFF.
- It should provide enough information for the experienced
- soldering-iron-users. I've no PCB-layout for the interface yet,
- the prototype was built with SMD-IC's on a piece of cardboard
- some glue and a lot of wires. It was so small, that it could fit
- between the 2 sub-D connectors. So when somebody has a good
- PCB-layout program and lot's of time, can he build a PCB-layout
- for me? :-)
-
- There's one disadvantage of the interface: it needs power. Since
- a normal parallel-port does not provide +5V power, you'll need to
- get it from elsewhere. You can connect the circuit to an extern
- 5 volts adapter (like I did), or you can take a +5V line from the
- power-supply inside your computer (be sure you have the right
- one).
-
- Before plugging the interface in your computer, please recheck
- all connections and check it again with power on it (short
- circuits?). When powered, the outputs of the 74LS244's and the
- 74LS07's should be high (near +5 volts), when you have none of
- the inputs connected.
-
- When you think it's save enough, put the interface on the
- parallel-connector (ofcourse with the computer OFF), turn the
- computer on and check if it starts up normally.
-
- Now it's time to make the cable and the rest of the network
- (see next part).
-
- NOTE: If you get errors when transferring large amounts of data,
- try to connect 100nF capacitors from pin 6 (~WD) and pin 8
- (~RC) of the 74LS74A to ground (pin 7).
-
-
- Cable Connections
-
- When using PARnet, you have to make a special cable connection
- between the computers. These connections are NOT the same as in a
- standard 1-to-1 centronics printer cable, a LAPlink or other
- cables used with other software. You need a shielded(!) cable
- with at least 12 wires and on each end a 25 pin MALE Sub-D
- connector.
-
- The connections you make depends on whether you use the PARnet
- interface or not.
-
-
- Cable Connections with PARnet Interface
-
- When using the interface, the following connections need to be
- made:
- - Connect D7-D0, SEL, POUT and BUSY across,
- - Connect ACK (FLAG interrupt) to SEL locally AND across
-
-
- (2-9) D7-D0 ------------ D7-D0
- (12) POUT ------------ POUT
- PARNET <= (11) BUSY ------------ BUSY => PARNET
- INTERFACE (13) SEL --+------+-- SEL INTERFACE
- (10) ACK -/ \- ACK
- (18-22) GND ------------ GND
- (Or Amiga (Or Amiga
- parallel port) parallel port)
-
- Cable connections for the PARNET-PC INTERFACE (!)
-
-
-
- Cable Connections without an interface
-
- When you want to have a point-to-point network between only 2
- computers, you can connect the following cable directly to your
- parallel card. You can make a connection between a PC and an Amiga,
- or between 2 PC's.
-
-
- (2-9) D7-D0 ---------- D7-D0 (2-9)
- PC ( 1) STROBE ---------- BUSY (11) AMIGA
- PARALLEL <= (14) AUTOLF ---------- POUT (12) => PARALLEL
- CARD (16) INIT --+----+-- SEL (13) PORT
- (10) ACK -/ \- ACK (10)
- (18-22) GND ---------- GND (18-22)
-
- Cable connections between PC and Amiga WITHOUT(!) an interface
-
-
-
- (2-9) D7-D0 ---------- D7-D0 (2-9)
- PC ( 1) STROBE ---------- STROBE ( 1) PC
- PARALLEL <= (14) AUTOLF ---------- AUTOLF (14) => PARALLEL
- CARD (16) INIT --+----+-- INIT (16) CARD
- (10) ACK -/ \- ACK (10)
- (18-22) GND ---------- GND (18-22)
-
- Cable connections between 2 PC's WITHOUT(!) an interface
-
-
- ** NEVER PLUG IN AN UNMODIFIED CABLE BETWEEN THE COMPUTERS!
-
- ** DOUBLE CHECK YOUR CABLE BEFORE INSTALLATION!
-
-
- The Network
-
- This chapter is only for those who want to use the PARnet
- Interface to allow more than 2 computers to be connected on the
- same cable. Don't do the following things when you do not use the
- interface! (unless you like hot chips.)
-
- When you want to have more than 2 computers on the same line,
- continue the cable IN the sub-D connector of the 'last' machine
- (ok, either of the two when having only 2 machines).
-
-
- Sub-D connector in 2nd computer
- ========
- | 2 |
- | /\ |
- -------- -------
- cable from => | 3/\ | => cable to 3rd computer
- 1st computer -------- -------
- _ _ : : _ _
- |18/\ |
- -------- -------
- | |
- ========
-
- Keep the connections in a 'straight line'. Never make splits,
- stars or rings like these:
-
- Comp Comp Comp
- | / | \ / \ Comp-Comp-Comp
- Comp / | \ / \ |
- / \ Comp Comp Comp Comp--Comp Comp
- Comp Comp
-
- Examples of *WRONG* cable connections *good* connections
-
- When you have only PC's interconnected, you must place a pullup-
- resistor-pack in the interface of the LAST PC in the network.
- This can be done with 4.7 KOhm resistors in one interface or, to
- make it real good, resistors of 8.2 KOhm in either interface on
- each end in the line.
-
-
- 5V PC PC 5V PC PC 5V
- | | | | | | |
- PR4.7K--Iface Iface or: PR8.2K--Iface Iface--PR8.2K
- | | | |
- +-------+ +------+
-
- A PC-only network (needs additional pullup-resistors)
-
-
- When you have one or more Amiga's connected (which have built-in
- pullups), try placing them on the ends of the line. You can't
- connect more than 3 Amiga's (or 2 Amiga's and a PC) on the same
- line without buffering your CIA's.
-
- An example of a PC/Amiga PARnet network:
-
- +-----+ +---+ +-----+
- |Amiga| |PC | |Amiga|
- +--+--+ +-+-+ +--+--+
- | +--+--+ |
- | |Iface| |
- | +--+--+ |
- | | |
- +----------+-----------+
-
- In this configuration NO additional pullup-resistors are needed
- (they're in both Amiga's).
-
-
- Contacts & Updates
-
- Since this software is still in beta, many changes/bugfixes/
- optimalisation will occur. There's no stable source where you can
- get the latest version. I don't want to put this on Aminet yet or
- any other software distribution site, because the software is
- still 'BUGware' and has no functionality at all.
-
- If you *think* you have the latest version and you noticed a bug,
- or you made some optimalisations, wrote additional routines, etc,
- etc. Please contact me at:
-
- Internet: S.A.Pechler@bdk.tue.nl (or: bdaasp@rc5.urc.tue.nl)
- BITnet : bdaasp@heitue51
- UUCP : ..!mcsun!sun4nl!rc5.urc.tue.nl!bdaasp
- X.400 : c=nl;admd=400net;prmd=surf;o=tue;ou=urc;s=bdaasp
-
-
- Or by normal mail:
-
- S.A.Pechler
- Diederikstraat 66
- NL-5421 EX Gemert
- The Netherlands
-
-
- Thank you for having interest in PARnet-PC.
-