-------------------------------------------------------------- "cnet.device" An Experimental Amiga PCMCIA Network Card Driver -------------------------------------------------------------- V0.5 By Bruce Abbott (bhabbott@inhb.co.nz) Introduction: Many A1200 owners have been asking the question "will a PC-CARD work on my Amiga?". The usual reply to this is "No, because there are no drivers for the Amiga". It has also been suggested that the A1200 PCMCIA port is incompatible with the PC-CARD standard. With PC-CARD Modems and Ethernet cards being so cheap, it was only a matter of time before "Only the Amiga makes it possible". Thus I now present "cnet.device", an Amiga driver for the CNet CN40BC and Accton EN2216 PC-CARD ethernet adapters! Requirements: - A CNet CN40BC or Accton EN2216 PCMCIA Ethernet card. The following cards (and their owners) have also been reported to work:- - Socket Communications model AAA-1001 (Jimmy Nyholm) - DLink DE-650 (Marcus Klein) - SureCom EP-527 (Ondrej Filip) Note: 3COM cards are known to NOT work with the current driver. - An Amiga 1200 or Amiga 600. - Network software. Tested with AmiTCP 3.0b, Miami 2.0g and Envoy 2.0 - A network :^) Usage: Simply copy the file "cnet.device" to where you want it (usually "DEVS:networks/") and set up your network software for an ethernet driver. For AmiTCP 3.0 this would involve editing the "interfaces" file and adding a line like "cnet dev = devs:networks/cnet.device". Then you would start it up with "ifconfig cnet0 192.168.0.1". Performance: My network consists of an A1200 030/40MHz conected via co-ax cable to a 486DX-33 running Windoze 95. Software on the Amiga is AmiTCP3.0b and ch_NFS, and the pecee is using MSTCP/IP and SOSNT. This gives me access to the peecee drives on the Workbench. With this setup, file transfer speeds reach about 200KBytes/Sec. FTP transfers between my A1200 and an A600 with Viper630 (030/40MHz) have acheived 300KBytes/Sec. Limitations: Some advanced SANA-II functions are not working in this version. This should not affect normal operation. Do not try to run multiple protocol stacks on this driver, as the device can only operate with a single opener. The only way to remove the device is to re-boot! (even if it didn't open properly). The device does not handle "hot swapping" cards. However you can pull out and re-insert the card if you wish, just remember to reboot after- wards. New for V0.4 - You can safely remove the card, which will cause the device to go Offline. However it will _not_ go back online when re-inserted! On my A1200, the card sometimes refuses to initialise properly on power up. Simply unplugging and re-inserting it usually clears this error. I suspect that this may be caused by slow power supply startup, although there is the possibility that software may be involved. When properly initialised, the card runs perfectly, and has often been online for several days at a time. Configuration Procedure (New for V0.5) Often the card may still work OK even when power-up problems have made the PCMCIA attribute memory and ROM Station Address invalid. To allow operation under these circumstances, cnet.device will now try to read this info from a configuration file ("s:cnetdev.config") if the PCMCIA attribute memory is not found. To create the config file, first make sure that the card is working properly (usually plugging the card in after power on, but BEFORE attempting access, will ensure this). Then run the program "cnetconfig" which will read the required attributes from the card, and create the config file automatically. The format of the file is as follows:- - the CCR offset in hex eg. "$03F8" - an "=" - the ConfigID in hex eg. "$20" - a LineFeed - an "@" - the Hardware Station Address as 12 hex digits eg. "00C01E27D503" - another LineFeed Any other characters in the file will cause it to be rejected, so don't edit it with a word processor! Cnetconfig only needs to be run once (unless you change to another card). It will work either with or without network software running, and can also be useful for simply determining whether the card is working. Note to existing users: If you upgrade to V0.5 but do not create a config file, you may find that the card is less likely to work properly. This is because cnet.device no longer tries to jam fixed values into the CCR. Therefore, make sure that you run "cnetconfig" after installing the new device driver. Example Network Files Because many people seem to have trouble setting up an Ethernet network, I have included a copy of my own network configuration and startup script files, which you can use as a template for your own installation. Please change the username etc. However, you should use the same domain for all all local IP addresses ie. 192.168.0.x History: V0.1 First Aminet Release - It worked, just. V0.4 Second Aminet Release - Added several SANAII commands for compatibility with Miami. - Enabled interrupts during RemoteWrite. Should no longer cause serial port overruns. - Improved error checking in case of card initialisation failure. Now doesn't GURU if device is opened twice! Also tested it with Enforcer, which did not detect any illegal memory accesses. - Relaxed hardware address verification to accept the Accton EN2216. Now it might possibly work with other 'NE2000 compatible' cards. - Unrolled loops to improve data transfer speed. Now about 20% faster on an unexpanded A600. Code size got bigger as a result :( - Hack to fix problem with missed interrupts. Now the device clears the Gayle interrupt bits instead of letting card.resource do it. V0.5 Third Aminet Release - Accepts 802.3 packets (probably, untested). - Sets BROADCAST bit in io_flags when appropriate. - Now examines PCMCIA attribute memory to determine the value to write into the Card Configuration Register. This should work with all NE2000 compatible PCMCIA network cards, even those with different CCR offsets. - If attribute memory is not found, cnet.device tries to open the file "s:cnetdev.config" and read from it the Card Configuration Register offset, Configuration ID, and ROM Station Address. This often revives a card that did not power up properly. The 'cnetconfig' program is supplied for creating this file. Legal Mush: To encourage further development in PC-CARD devices for the Amiga, I am placing the source code for this project into the Public Domain. You can freely use or abuse it as you wish. I have also included some other authors' code for reference purposes, please respect their copyrights. Please note that this driver is not a finished product, and is almost certain to harbour a few bugs. Thus I will not be held responsible for any loss or injury that you may incur while using it. I cannot guarantee compatibility with your system. All I can say is it works for me.