@Database "magplip" @Author "Marius Gröger" @(c) "Copyright © 1995-1996 Marius Gröger, All Rights Reserved." @$VER: magplip.guide 38.1 (12.05.98) @node Main "magPLIP" @{fg highlight}@{b} magPLIP -- SANA-II device driver parallel IP @{ub}@{fg text} (C) Copyright 1996 Marius Gröger This document describe the release 38.1 of magPLIP, compiled by Stefan Ruppert. @{b}TABLE OF CONTENTS@{ub} @{b}Intro@{ub} @{" Upgrade Information " link "Upgrade"} PLEASE READ THIS IF YOU'RE UPGRADING @{" Description " link "Description"} Why You need it! @{" Features " link "Features"} All in one glance @{" Requirements " link "Requirements"} What you need @{b}Connecting two Amigas together@{ub} @{" Installation " link "Installation"} What's needed to be done @{" Wiring " link "Wiring"} The hardware side @{b}Connecting an Amiga to a Linux/i386@{ub} @{" Installation " link "linPLIPInstallation"} @{" Wiring " link "linPLIPWiring"} @{b}Device Operation@{ub} @{" Configuration " link "Usage"} Options offered by the configuration file @{" Special Statistic Counters " link "SpecialStats"} SANA-II Special Statistic Counters @{b}Problems, Questions and Caveats@{ub} @{" Caveats " link "Caveats"} Caution! @{" Troubleshooting " link "Trouble"} Doesn't it work properly? @{" Bugs " link "Bugs"} Known Bugs @{b}Appendices@{ub} @{" Future plans " link "Future"} Things I will perhaps lay my hands on @{" History " link "History"} What's been done already @{" (C)/Credits/Author " link "Author"} Legal stuff, Thanks and How to contact me @endnode @node Upgrade "magPLIP - Upgrade Information" @next Description @prev Main @{fg highlight}@{b}Upgrade Information@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Please read this section carefully if you have some older revisions of PLIP or magPLIP installed. Especially users who currently work with @{b}magPLIP 37.2@{ub} or older should take care for some configuration changes. @{b}PLIP 38.xx users@{ub} should read the complete document from it's top to the end. @{" Upgrading from the old PLIP " link "ug_1"} @{" Upgrading from ParNET " link "ug_2"} @{" Upgrading from magPLIP releases 37.1 or 37.2 " link "ug_3"} @{" Upgrading from magPLIP releases 37.3 to 37.8 " link "ug_4"} @endnode @node ug_1 "magPLIP - Upgrading from the old PLIP" @next ug_2 @prev Main @{fg highlight}@{b}Upgrading from the old PLIP@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There might be a little confusion about the various PLIPs floating around. magPLIP was derived from PLIP 38.12 and has virtually been completely rewritten. Today both packages are in no way compatible, only the cable wiring is identical. So you may switch between both networks and check out which one suits your needs at best. If can't make up your mind, I would like to recommend magPLIP to you: · it is updated quite regularly · the work of several people coordinated by one guaratees a high level of functionality and fitness for it's purpose · it is extensively documented Don't worry about version numbers. On the Amiga, device driver version numbers should reflect the operating system requirements. As a SANA-II device only needs a 2.04 system, magPLIP sticks to a 37.x version number. I really don't know why the original version used 38.x. Both the old PLIP and magPLIP retrieve some of their run-time configuration from a preferences file located in the drawer "ENV:Sana2". To avoid any confusion with the old PLIP, I renamed not only the device's name to magPLIP but also the name of this configuration file. Thus magPLIP will only try to read the file "ENV:Sana2/magPLIP.config". @endnode @node ug_2 "magPLIP - Upgrading from ParNET" @next ug_3 @prev ug_1 @{fg highlight}@{b}Upgrading from ParNET@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ParNET is a stand-alone minimal network that allows to mount remote devices such as floppys, harddisks, etc. on a local machine. It has nothing to do with any PLIP version ever been made for the Amiga. @{b}ParNET's cable wiring differs from magPLIPs! Don't use ParNET cables with any PLIP version, or your computer's parallel port may be damaged!@{ub} I highly recommend to de-install ParNET and to install a TCP/IP package such as AmiTCP/IP or AS225R2 and magPLIP. This will also let you do ParNET-style remote device mountings, and in addition it will give you the full power of the world of internet. @endnode @node ug_3 "magPLIP - Upgrading from magPLIP releases 37.1 or 37.2" @prev ug_2 @next ug_4 @{fg highlight}@{b}Upgrading from magPLIP releases 37.1 or 37.2@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The configuration file format has slightly changed with release 37.2 regarding the meaning of the TIMEOUT parameter. Additionally, the old parameter ARBITRATIONDELAY is still supported but not longer used. The TIMEOUT is now a real time value to be given in micro-seconds. This gives the user a better control over the device's timeout behaviour as well as making configuration file copying to other machines easier. @endnode @node ug_4 "magPLIP - Upgrading from magPLIP releases 37.3 to 37.5" @prev ug_3 @{fg highlight}@{b}Upgrading from magPLIP releases 37.3 to 37.8@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No problems should occur if you already use a magPLIP release from 37.3 to 37.8. The configuration file format has not changed. The documentations has undergone some minor changes, reaching from correcting spelling errors to adding a few new sections. Read it if you have the time to do, ignore it if you are already happy with your set-up. Release 37.4 introduces the ability to use MTUs higher than 8192. The maximum MTU (no pleonasm :-) is now 128KBytes. Release 37.7 introduces 2 @{" SANA-II special statistic counters " link SpecialStats} that are non-standard. See also @{" Caveats " link Caveats}. Release 37.8 fixes a bug which prevented magPLIP from working with multiple protocol stacks simultaneously. Release 38.1 fixes a bug which may caused a complete system crash by large file transfers. It also fixes a bug in the online/offline functions which returned an error code by an online request if the driver was already online. It also comes with a new device driver called linplip.device to connect to a LinuxBox, which was developed by Stéphane Zermatten based on the V37.8 sources of magPLIP. The 38.1 release was compiled by Stefan Ruppert . @endnode @node Description "magPLIP - Description" @next Features @prev Upgrade @{fg highlight}@{b}Description@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @{b}What is PLIP ?@{ub} PLIP means Parallel Line IP, and means to run an IP network over the parallel port of a computer. However, IP is only the most popular sort of network which PLIP may be used for. In fact, as all other SANA II devices it is not bound to a particular protocol stack, and it is quite imaginable to run an Internet protocol and, for instance, an Appletalk protocol over the same line. To avoid confusion with other PLIP releases which can be found on Aminet I named my version magPLIP, referring to the initials of my name. 1994 saw the last release of the original Amiga PLIP device, which was written by Oliver Wagner and Michael Balzer. I was not fully satisfied with this last release, and so I was happy to have the source code and started rewriting it. The deeper I crept into the source, the more of the original code was thrown out. @{b}magPLIP is compatible to the original regarding the cable wiring. However, it is not compatible in the sense that it can communicate with machines that have the old PLIP installed. You need to replace older PLIP-software in order to successfully run magPLIP.@{ub} The original documentation of the plip.device published by Oliver Wagner and Michael Balzer reads: @{i}"PLIP is a network device driver conforming to the SANA2 standard. It allows linking of two Amigas using their parallel ports. [...] The complete low level transfer protocol is integrated in the device driver, including port arbitration handshaking and interrupt driven reads. Although the transfer process itself is cpu intensive, the device needs no cpu resources when no transfer is in progress. PLIP is intended as a low-cost networking solution, since the capabilities of the parallel hardware are somewhat limited. However, it gives much better results than SLIP and leaves the serial port free."@{ui} This gives a quick impression what PLIP and magPLIP are intended for. @{b}Support for slow Amigas@{ub} My version of PLIP has been written also keeping an eye on the employment of slow, MC68000 based Amigas. (I believe I'm not the only person who wants to blow again a bit of life in his old computer.) It seems to me that the other PLIP releases had some difficulties in this field, mainly arising out of badly chosen system thread priorities. Starting with release 37.2, the low-level transfer routines are written in assembly language. This gains another 25% speed improvement. The conversion to assembly was done by Jan Kratochvil and Martin Mares. @endnode @node Features "magPLIP - Features" @prev Description @next Requirements @{fg highlight}@{b}Features@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ · Much more line security through machine independent timeout handling · Compatible with original wiring · MTU configurable up to 128KBytes · SANA-II special statistic counters · Works fine also with 68000 based systems · Slightly changed protocol, allowing to be more flexible and extensible · Option to omit CRC checks · Much better configurable then the original · Major code cleanup, including the removal of assembler fragments, globals, errors · Several protocol stacks may use magPLIP simultaneously · Distributed as Freeware, complete source code is supplied · Can connect to a PC running Linux, using a LapLink cable. @endnode @node Requirements "magPLIP - Requirements" @next Installation @prev Features @{fg highlight}@{b}Requirements@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ · AmigaOS Release 2.04 or better · A networking package using the SANA-II network device interface. Suitable network packages include AmiTCP/IP, Envoy, and AS225R2. · 2 Amiga computers to be connected via magPLIP. · 1 Amiga and 1 PC computer running Linux 2.0.26 or higher to be connected via linPLIP. A PC with other operating systems will NOT do as an network node, see @{" here " link "ts_2"} why. @endnode @node Installer "magPLIP - Installer Script" @{fg highlight}@{b}Actions taken by the Installer-script@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Copy the device code to the proper place: @{b}AmigaShell> copy DEVS/Networks/magplip.device AMITCP:DEVS/Networks/@{ub} and/or @{b}AmigaShell> copy DEVS/Networks/linplip.device AMITCP:DEVS/Networks/@{ub} Then copy the configuration file to it's places: @{b}AmigaShell> copy ENV/Sana2/magPLIP.config ENVARC:Sana2/@{ub} @{b}AmigaShell> copy ENV/Sana2/magPLIP.config ENV:Sana2/@{ub} Finally, you may want to copy the documentation somewhere. Simply drag it's icon where you want to. @endnode @node Installation "magPLIP - Installation" @next Wiring @prev Requirements @{fg highlight}@{b}Installation of magplip.device@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Installing network drivers is really no fun, as you might already know. Rather than writing an installer script with artifical intelligence I decided to split the installation procedure into the installation of the binaries and a manual part. @{b}The first part@{ub} is best done by the supplied installer script. If you still want to do the installation manually then follow the steps described @{"herein" link Installer}. @{b}The second part@{ub} must be done by hand. As I guess the only hands around currently are yours, follow these steps: I explain here what to do if you want to integrate magPLIP in an AmiTCP/IP Release 4 based network. Other network packages and older AmiTCP/IP releases will require similar actions to be done. Please consult the according user manual to find out what you should do in such cases. On both systems you want to connect, load the file @{fg highlight}AMITCP:db/interfaces@{fg text} into you favorite text editor. Add the following lines: @{b} magplip0 DEV=AMITCP:DEVS/Networks/magplip.device UNIT=0 P2P NOARP ... WRITEREQ=32 IPREQ=32 magplip1 DEV=AMITCP:DEVS/Networks/magplip.device UNIT=1 P2P NOARP ... WRITEREQ=32 IPREQ=32@{ub} Don't type in the ellipsis, instead concatenate the lines to one. This tells AmiTCP/IP that there are two PLIP devices, only one of which you will actually use, however. To tell AmiTCP/IP which interface you want to use, load the file @{fg highlight}AMITCP:bin/startnet@{fg text} into you favorite text editor. Search the line where the default value for the parameter "IFACE" is set. It should look like this: @{b}.def IFACE slip0@{ub} On one of your systems, change this line into @{b}.def IFACE magplip0@{ub} On the other system, change this line into @{b}.def IFACE magplip1@{ub} It is of absolutely no matter which one you assign which magplip unit. The only really important thing is that you must use both units, if you use the standard PLIP @{" wiring " link "Wiring"} as introduced by the orignal authors, and which I recommend for compatibility reasons and safety. It is possible that PLIP doesn't immediately work correctly ith your system configuration. If this is the case, please read the @{" Configuration " link Usage} section. There you will find a lot of items you may use to adapt PLIP to your system. @endnode @node Wiring "magPLIP - Wiring" @next Usage @prev Installation @{fg highlight}@{b}Wiring for magplip.device@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In order to establish the physical connection between two Amigas, you will have to create a special wire. Do this very carefully, since a little fault may destroy your parallel port hardware. Note that the cable used to connect an Amiga to a PC is different ! See @{"here" link "linPLIPWiring"} for details. On all Amiga models except the Amiga 1000 you need a male DB25 connector. On an Amiga 1000 you need a female connector. The cable length should not exceed 4 meters. System 1 System 2 --------------------------- D0-D7 D0-D7 BUSY BUSY POUT POUT GND GND ACK STROBE STROBE ACK You can look up the pin assignment in your Amiga User Manual, Appendix A. @{b}Note that this cable differs from @{" ParNet " link "ug_2"}! Double check before using!@{ub} You may also cross the BUSY and POUT lines, in this case you must use the @{b}same@{ub} magPLIP unit on both sides. However I don't recommend this, since you gain nothing by this. There has been a schematic picture contributed by Colin Thompson. Please choose the viewing tool according to your AmigaOS Version. Display a @{" schematic picture " system "Display cable.iff"} using Display (AmigaOS 2.0) Display a @{" schematic picture " system "MultiView cable.iff"} using MultiView (AmigaOS 3.0) @{object cable.iff} @endnode @node linPLIPInstallation "magPLIP - Installation of linplip.device" @next linPLIPWiring @prev Requirements @{fg highlight}@{b}Installation of linplip.device@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes the installation of the linplip.device on an Amiga. See the file @{b}Installation@{ub} in the Linux directory of the distribution for instructions on how to set up your Linux-Box. @{b}Firstly@{ub}, run the supplied installer script. You can also do the installation manually, following the steps described @{"there" link Installer}. @{b}Secondly@{ub}, you need to configure your network package to use the linplip.device. Follow the manual of this package. Here is a short explanation on how to integrate the linplip.device in an AmiTCP/IP Release 4 based network. On the system you want to connect, load the file @{fg highlight}AMITCP:db/interfaces@{fg text} into you favorite text editor. Add the following lines: @{b} linplip0 DEV=AMITCP:DEVS/Networks/linplip.device UNIT=0 P2P NOARP ... WRITEREQ=32 IPREQ=32@{ub} Don't type in the ellipsis, instead concatenate the lines to one. This tells AmiTCP/IP that there is a PLIP device. To tell AmiTCP/IP which interface you want to use, load the file @{fg highlight}AMITCP:bin/startnet@{fg text} into you favorite text editor. Search the line where the default value for the parameter "IFACE" is set. It should look like this: @{b}.def IFACE slip0@{ub} On one of your systems, change this line into @{b}.def IFACE linplip0@{ub} Note that linplip.device completely ignores the unit number. You can set it to anything you want. It is possible that PLIP doesn't immediately work correctly in your system configuration. If this is the case, please read the @{" Configuration " link Usage} section. There you will find a lot of items you may use to adapt PLIP to your system. @endnode @node linPLIPWiring "magPLIP - Wiring used to connect an Amiga to a Linux-Box" @next Usage @prev linPLIPInstallation @{fg highlight}@{b}Wiring used by linplip.device@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To connect an Amiga to a PC running Linux, linplip expects you to use a so-called @{b}LapLink cable@{ub}. As it is the kind of cable used by Laplink and other MS-DOS and Window program, you should have no difficulties at all finding it at any computer store. Moreover, if your Amiga is an A1000, you'll need to switch some lines, as if you were connecting a printer to your computer. This cable should enable you to connect to ANY PC, even old ones. However, this kind of connection is particulary slow, even compared to a connection made between to PCs using the same LapLink cable. This is because such a connection uses a error line or the cable, called ~ERROR, which is ignored by the parallel port controller present on all Amigas. In case you are interested in in the working of the driver, or if you want to build your own cable, you can find a detailled description of the cable and the protocol used in the linux source code. (Linux/plip.c). @endnode @node Usage "magPLIP - Configuration" @next SpecialStats @prev Wiring @{fg highlight}@{b}Configuration of magPLIP@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ After being started, magPLIP reads it's configuration file located in @{b}ENV:Sana2/magPLIP.config@{ub}. This file should consist of a single line on which the following standard AmigaDOS template is applied: @{b}TIMEOUT/K/N,PRIORITY=PRI/K/N,MTU/K/N,BPS/K/N,RETRIES/K/N, SENDCRC/S,CD=COLLISIONDELAY/K/N,AD=ARBITRATIONDELAY/K/N, NOSPECIALSTATS@{ub} @{b}TIMEOUT@{ub} (optional keyword argument / number) PLIP polls the parallel port while transmitting or receiving any data byte. This value lets you specify after how much micro-seconds any transfer should be considered to be failed. magPLIP will abort it immediately and report a line error to the upper network layer (e.g. AmiTCP/IP). This parameter is good toy for peoply tracking down network errors. Defaults to 500000 µs = ˝ s. Minimum is 500 µs. Maximum is 999999 µs. @{b}PRI=PRIORITY@{ub} (optional keyword argument / number) Priority of the PLIP server task. A high value will decrease response times for communication. On 68000 based systems this should be a higher value than 20, otherwise some intuition actions such as window movement could make the driver miss packets. Defaults to 0. Minimum is -128. Maximum is 127. @{b}MTU@{ub} (optional keyword argument / number) @{b}M@{ub}aximum-@{b}T@{ub}ransfer @{b}U@{ub}nit. @{i}Must@{ui} be the same for both communication ends! This value is the largest packet size which can be transmitted in one go. It is important to understand the role of the MTU correctly. The upper network layer (typically an @{b}I@{ub}nternet @{b}P@{ub}rotocol), is responsible to create a series of packets out of the data which has to be transmitted. Therefore, IP ``knows'' the MTU of the network interface and creates appropriate packets. Choosing the ``right'' MTU depends in some way of your intended application. Simple internet services such as telnet, rsh or ping won't be affected by a large MTU, because the packets which are used for these protocols all fit into 1 or 2 KByte-Packets. However, if you use one system, say, as a file-server using NFS, the Amiga netfs, FTP, or an HTTP server, there will be the need to transfer larger blocks of data. A higher MTU is in this case recommendable. Defaults to 1024. Minimum is 256. Maximum is 128KB. @{b}BPS@{ub} (optional keyword argument / number) A dummy Bit-Per-Second value reported to SANA-2 user when being asked for it. Quite useless, I guess, but left for compatibility. Defaults to 100000. Minimum is 1. Maximum is 2^32-1. @{b}RETRIES@{ub} (optional keyword argument / number) Number of repeations when a arbitration error is detected. Defaults to 32. Minimum is 1. Maximum is 127. @{b}SENDCRC@{ub} (Switch) If you want to send the packets over the line with a CRC checksum, you should set this flag on the side which's packets you want to check. This may be only one both sides. I personally don't use the CRC feature, as all the problems I got so far came due to timeouts, if at all. Don't sending with CRC brings a little speed improvement. Please note that the TCP/IP protocol provides an own checksuming of their data, so only the small frame header added by magPLIP will be transferred without checksum. The chance of data corruption is in my opition quite small. @{b}CD=COLLISIONDELAY@{ub} (optional keyword argument / number) If accidently both sides want start sending at the same time, this situation is considered as a collision. In such cases, both sides stop their attempts to obtain the line. Instead, they will wait a specific time and try again. This parameter lets the user tell the device how long this time should be, measured in micro-seconds. If you experience line errors, you may play a bit with this parameter in order to fix them. It is important to mention that the collision delay time should be different for the both peer systems, otherwise there would a higher chance for further timeouts. The default values take care for this. Defaults to 0 µs for unit 0, 2000 µs for unit 1. Minimum is 0 µs. Maximum is 999999 µs. @{b}AD=ARBITRATIONDELAY/K/N@{ub} (optional keyword argument / number) This parameter is supported but has no more functionality. You should omit it and don't be bothered by this. @{b}NOSPECIALSTATS@{ub} (Switch) Setting this switch prevents magPLIP from responding on the SANA-II special statistics inquiry command. The intention of this is that the implemented special statistics are non-official and therefore violate the SANA-II standard in some way. In most cases, however, you should not care about this. I never get problems out of this. @endnode @node SpecialStats "magPLIP - SANA-II Special Statistic Counters" @next Caveats @prev Usage @{fg highlight}@{b}SANA-II Special Statistic Counters@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Release 37.7 introduces a new feature to magPLIP: Using the SANA-II special statistic counter feature, it is possible to inquire certain statistical information of magPLIP, that are special to this kind of network. The SANA-II standard requires, that along with each counter a descriptive text must be supplied. The following table lists these texts and the counter code number and describes them. Name SANA-II Code Description -------------------------------------------------------------------- TX Errors 0x01A40000 Number of transmission errors during packet sendings or receipts Collisions 0x01A40001 Number of collisions during the line arbitration phase These counters as well as the standard SANA-II statistics can, for instance, be monitored using the sana2meter tool release 37.2 (available on AMINET:comm/net/s2meter37.2.lha) See also the @{" Caveats " link Caveats} section for potential problems with this feature. @endnode @node Caveats "magPLIP - Caveats" @next Trouble @prev SpecialStats @{fg highlight}@{b}Caveats@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section tries to address some known problems. I will always try to give the user the necessary technical background to understand the problem and, if possible, to include a work-around. If any user has found a similar problem which is not mentioned in this document, he or she should contact @{" me " link Author} in order to append it to this section. @{b}magPLIP and intuition@{ub} On slow, 68000 based systems the magPLIP server should run at a higher priority than the input task. This way you loose a bit intuition speed during transfers, but you don't get line errors when just moving a window. @{b}magPLIP and SANA-II special statistic counters@{ub} The implementation of magPLIP tries to comply as much as possible to the SANA-II networking standard from Commodore. All required features such as packet type tracking are implemented. Some optional features such as packet multicast or broadcast are not supported. However, the special statistics as implemented violate the SANA-II standard in so far, as there are not official special statistic counters defined for a PLIP device. Thus, the implemented special statistic counters are inoffical and have been defined by me arbitrarily. For cases where any problem should occur out of this fact, there has been implemented the @{"NOSPECIALSTATS option " link Usage}. @{b}magPLIP and SANA-II packet type tracking@{ub} During the processing of the I/O command for registering a type to be kept track of by the device, the SANA-II specification defines the error condition that the type is alreay tracked. MagPLIP will never behave like this; instead it allows multiple users to register type tracking for the same type, maintaing an internal counter for the number of tracking requests. Thus, the tracking registries nest and the tracking will be ceased only if the the last user has untracked the type. Although this violates the SANA-II standard in some way, the modification is fully transparent to all device users. Especially since the tracking information is only read by the users, there is no reason why multiple users shouldn't be allowed to monitor the same type. It is debatable whether the corresponding statistic counters should be cleared whenever someone untacks a certain type. SANA-II states that stats are lost on untracking, so some crazy device user might rely on a fresh stat information on tracking the type again. @endnode @node Trouble "magPLIP - Troubleshooting" @next Bugs @prev Caveats @{fg highlight}@{b}Troubleshooting@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section will try to give some answers to the user, who failed to get magPLIP working with any special hardware- or software-setup. @{" Why can't I use my 3rd party I/O-card? " link "ts_1"} @{" Why can't I connect to NetBSD/i386? " link "ts_2"} @{" I get line errors while moving windows! " link "ts_3"} @{" I permanently get line errors! " link "ts_4"} @{" I can't get this damn think to work at all! " link "ts_5"} @endnode @node ts_1 "magPLIP - 3rd party I/O-cards" @next ts_2 @prev Trouble @{fg highlight}@{b}Why doesn't magPLIP work with my 3rd party I/O-card (Multiface@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Card, GVP I/O Extender, ...)?@{ub} magPLIP accesses the Amiga's parallel port hardware directly. Although this is not the preferred Amiga-way, it is still a legal thing and well supported by the operating system. Should there ever be built a new Amiga, and should it furthermore no longer have a CIA chip inside, the new adapted Kickstart wouldn't grant magPLIP access to a non-existent CIA. The counterpart to direct hardware access is to use a standardized Amiga device, parallel.device in this case. Such techniques are well known for serial port hardware and various trackdisk.device emulations. Unfortunately, parallel.devie has not been designed for the purpose of a computer-to-computer. So it lacks features such as control over data transfer direction and interrupts, which are essential for magPLIP. The only way to have magPLIP working with a 3rd party I/O-card would be to write individual low-level adapter routines for each hardware. @endnode @node ts_2 "magPLIP - Why can't I connect to Linux/i386 and NetBSD/i386" @next ts_3 @prev ts_1 @{fg highlight}@{b}Why doesn't magPLIP work with my or NetBSD system?@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A lot of email has reached me asking why magPLIP doesn't work with NetBSD. I appreciate this engagement of the users highly. The NetBSD OS doesn't yet support any PLIP (correct me if I'm wrong). I have been toying with porting magPLIP to NetBSD/Amiga, but--if this would be done at all--it would still require porting it to NetBSD/i386. An interesting question is however: Who will do this? Few people have already signalled their interest in doing the job. Contact me if you want to join this group, and I'll supply you with further information. @endnode @node ts_3 "magPLIP - Line errors when moving windows" @prev ts_2 @next ts_4 @{fg highlight}@{b}I get heavy line errors when dragging windows or screens!@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ See @{"caveats" link "Caveats"}. @endnode @node ts_4 "magPLIP - Permanent line errors" @next ts_5 @prev ts_3 @{fg highlight}@{b}I get heavy line errors all the time!@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are a lot parameters which influence transmission timing. You find an explanation of the in the @{" configuration " link Usage} section. -> Especially the TIMEOUT value's setting is likely to be the key to your problem. -> If you changed the @{b}COLLISIONDELAY@{ub} parameter by hand instead of using the default values, did you properly assign different values for both peer systems? If you use AmiTCP/IP, it may also help to increase the pool of read- and write requests in the file @{fg highlight}AMITCP:db/interfaces@{fg text} by altering the values assigned to the WRITEREQ and IPREQ keywords. If you use the AmiTCP/IP package, you should use the ping command to track down the error: @{b}AmigaShell> ping [host]@{ub} or @{b}AmigaShell> ping -f [host]@{ub} The -f option means "flood" and generates as much packets as possible. Invoked simultaneously on both sides reveals almost any error. @endnode @node ts_5 "magPLIP - General failure" @next Bugs @prev ts_4 @{fg highlight}@{b}I can't get this damn thing to work at all!@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> Check your @{" wiring " link "Wiring"}. -> Did you use both units, magplip0 and magplip1 ? -> Did you update both systems ? See also : @{" Installation for connecting Two Amigas" link "Installation"} @{" Installation for connection an Amiga to a Linux-Box" link "linPLIPInstallation" } @{" Usage " link "Usage"} @endnode @node Bugs "magPLIP - Known Bugs" @next Future @prev Trouble @{fg highlight}@{b}Known Bugs@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ · The arbitration is currently not as secure as it should be. If there is anyone interested in things like this, he/she is invited to get in touch with @{" me " link "Author"} in order to work it out. If you know further bugs, contact @{" me " link Author}. @endnode @node Future "magPLIP - Future plans" @next History @prev Bugs @{fg highlight}@{b}Future plans@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Perhaps I will implement some more features: · Some people are currently modify the Linux/i386 PLIP interface driver to provide a magPLIP compatibility mode. That would be faster than using the device linplip supplied with V38.1, since linplip works with a standard LapLink cable, but would not work on older PC. · Complete interrupt driven transfer Probably this slows down the thing... · Online configuration tool What's up, you GUI/Ys out there? Anybody volounteering for this task? If you have further suggestions, contact @{" me " link Author}. @endnode @node History "magPLIP - History" @next Author @prev Future @{fg highlight}@{b}Development history of magPLIP@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Release 38.1 · integrated Linux/i386 modifications made by Stéphane Zermatten. · bugfix: magPLIP may crashed in older version on large file transfers (ftp) · bugfix: magPLIP returned an error on a online/offline request if it was already in this state. Release 37.8 · bugfix: magPLIP can be used by multiple protocol stacks simultaneously. Release 37.7 · Statistical counters for transmission errors and collisions using SANA-II special stats · Improved documentation · schematic drawing included that shows the cable wiring Release 37.5 · on early startup time the MTU reported to protocol was not yet the customized value but the default setting; At least Envoy had problems with this bug · Frame buffer handling is now done dynamically, MTU can be set to values up to 128K. A large MTU increases performance for large data transfers such as in a file-server system. · Code more robust against initialization errors · ENV: settings are better checked for validity Release 37.4 · Some documentation changes · minor changes in the transfer code Release 37.3 · Timeout handling is now system independent and gives a great improvement to configuration and line security · ARBITRATIONDELAY no longer used, but supported for old config-files Release 37.2 · Performance has been significantly improved due to the transfer routines being rewritten in assembly language · internal code cleanups Release 37.1 · initial release @{b}Technical history of magPLIP@{ub} For more technical details, please refer to the source code. In the header section of each source file, you find the pseudo-keyword $HISTORY: after which follows the complete revision history of this file. @endnode @node Author "magPLIP - Copyright / Credits / Author" @prev History @{fg highlight}@{b}Copyright, Credits and Author Information@{ub}@{fg text} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @{b}Credits@{ub} Surely magPLIP would not be what it is today without so much support of a lot of people. Their questions, discussions, critics and personal improvements have helped making magPLIP today's most stable and fast parallel port SANA-II driver. @{fg highlight}Oliver Wagner@{fg text} and @{fg highlight}Michael Balzer@{fg text} have written the original PLIP device, introducing it to the Amiga. At this point my thanks go to these guys particularly for that they supplied the Amiga community with the source code, too. Even though the current source magPLIP has nearly nothing in common with the original, magPLIP would hardly exist without having been able to peek at the original. I also want to thank @{fg highlight}Jan Kratochvil@{fg text} and @{fg highlight}Martin Mares@{fg text}. They wrote the low-level transfer routines from scratch in assembly language. This way they could shorten magPLIP's round trip times by about 25%. The technical idea behind the timer.device controlled timeout handling as introduced with release 37.3 is the idea of @{fg highlight}Martin Mares@{fg text}. Thanks a lot. The MTU bug has been pointed out by @{fg highlight}John Hendrikxs@{fg text}. Some of his questions inspired me also to rewrite the frame buffer handling. The schematic drawing for the cable wiring has been contributed by @{fg highlight}Colin Thompson@{fg text}. I think that it greatly improves and clarifies the wiring section. Colin's original picture has been slightly modified by me to fit in an 8 color NTSC Low-Res screen. @{fg highlight}Detlef Wuerkner@{fg text} found and fixed a severe bug lurking inside the code since the first release of magPLIP. This bug would prevent magPLIP from working with multiple protocol stacks simultaneously. Most notably AmiTCP, Envoy and ShapeShifter 3.5 may be used now without mutually excluding the use of each other. Thanks a lot, Detlef! Finally I wish to thank all those who are not mentioned here but supported me with kind comments, questions and critics. Again, I ask everyone who has suggestions to magPLIP's implementation or even modified versions of magPLIP to tell me about it in order improve it even more. @{b}Legal stuff@{ub} PLIP (C) Copyright 1993-1994 Oliver Wagner, Michael Balzer magPLIP (C) Copyright 1995 Jan Kratochvil & Martin Mares (C) Copyright 1995-1996 Marius Gröger All Rights Reserved. This software is freeware. It is provided as-is and is subject to change; no warranties are made. All use is at your own risk. No liability or responsibility is assumed. It's strictly forbidden to include this archive in any kind of software collection except @{fg highlight}Fred Fish's AmigaLibrary@{fg text}, @{fg highlight}Meeting Pearls CD's@{fg text}, @{fg highlight}Aminet@{fg text}, @{fg highlight}Aminet CD's@{fg text} and @{fg highlight}BBS fileareas@{fg text}. This applies to the whole package, with the exception of the files in the Linux directory, which are released under the GNU Public Licence (GPL). See the file @{"GPL" link /Linux/GPL/main} in the @{"Linux directory" link /Linux/main} for details. Installer and Installer project icon (c) Copyright 1991-93 Commodore-Amiga, Inc. All Rights Reserved. Reproduced and distributed under license from Commodore. AmigaGuide, AmigaGuide.info, amigaguide.library, WDisplay, WDisplay.info (c) Copyright 1991-93 Commodore-Amiga, Inc. All Rights Reserved. Reproduced and distributed under license from Commodore. @{b}Contact@{ub} If you like this software, or have any suggestion how to improve it, or just want to complain about it, feel free to contact me: Linux related: Stéphane Zermatten Amiga related: Stefan Ruppert (mainly bug fixes) General concept: Marius Groeger @{b}NOTE:@{ub} Marius has stopped development on the Amiga, so don't bother him about the V38 release. @endnode