TransNib V1.00 ============== Devised by Matt Francis (m.p.francis@newcastle.ac.uk) The disclaimer and copyright information cover all parts of this package. CREDITS ------- TransNibAm V3.11 (Amiga front-end) and TransNib64 V2.0 (C64 front-end) by Matt Francis. DISCLAIMER ---------- This package comes with no warranty, either expressed or implied. The author is in no way responsible for any damage or loss that may occur due to direct or indirect usage of this software. Use this software entirely at your own risk. If you damage any of your equipment as a consequence of using a cable designed in correct or incorrect accordance to the instructions given elsewhere in this document, I most definitely CANNOT be held responsible. Having said that, I (the author) have been using this system without problems for some time now. COPYRIGHT --------- This package is freely distributable, BUT all programs and documentation are copyright 1993 Matt Francis. The ReqTools library is copyright to Nico François. Permission is NOT given to re-release this package if it has been altered in any way. DISTRIBUTION ------------ Permission is given to include this program in a public archive (such as a BBS, FTP site or PD library) providing that all parts of the original distribution are kept intact. These are as follows: TransNib/TransNib.doc TransNib/TransNib.doc.info TransNib/TransNib.guide TransNib/TransNib.guide.info TransNib/TransNibAm/TransNibAm TransNib/TransNibAm/TransNibAm.info TransNib/TransNibAm/TransNibAm.guide TransNib/TransNibAm/TransNibAm.guide.info TransNib/TransNibAm.info TransNib/TransNib64/transnib64 TransNib/TransNib64/transnib64s TransNib/TransNib64/TransNib64.doc TransNib/TransNib64/TransNib64.doc.info TransNib/TransNib64.info TransNib.info Libs/reqtools.library No charge may be made for this program, other than a _reasonable_ copying fee, and/or the price of the media. INTRODUCTION ------------ TransNib is a fast, simple parallel data transfer protocol. It was designed to make linking any type of machine to any other type as easy as possible. All that is required is six 5V I/O lines at each end. It doesn't matter how fast or slow each machine is, as the protocol uses a two-line handshake procedure, ensuring the two machines cannot possibly go out of sync. TransNib was designed to be used simply to port data from one machine to another, so the only real requirement is a noise-free link, as there is no error checking. TransNib has been extensively used, without problems, over a three metre long cable. Any two computers supporting the TransNib V1.00 protocol can be linked. So far, front-ends for the TransNib V1.00 protocol exist for the Amiga and the Commodore 64. Anyone who is interested in writing a front end for another platform (or who has already written one) should contact me first (via e-mail) to discuss releasing the software as part of the TransNib suite. I will happily answer any queries about how to implement the TransNib protocol. Obviously, any documentation for the new program will be included, and full credit will be given in this document. I am especially keen on getting a TransNib program written for the PC, but please, contact me before releasing anything. THE PROTOCOL ------------ In all, six lines are used. Four are data lines, the other two being used for handshaking. The handshaking lines are designated data-ready (DRDY) and data-received (DRCV). This method is a trade-off between efficiency and stability. At the lowest level, nibbles are transfered as follows. Before a transfer begins, the sender should pull DRDY low and the receiver should pull DRCV low. The transfer procedure for one nibble is as follows: - Receiver starts waiting for DRDY to go high. - Sender puts nibble on data lines, pulls DRDY high and waits for DRCV to go high. - Receiver gets nibble, pulls DRCV high and waits for DRDY to go low. - Sender pulls DRDY low and waits for DRCV to go low. - Receiver pulls DRCV low and loops. - Sender loops. The file transfer protocol is extremely simple and is one-way, but allows for batch sends. The format of data for each file sent or received is as follows: - A filename (a string of characters terminated by a zero). A blank filename (ie. just the terminating zero) signals end of transfer. The filename must not include a path. Note that it is the receiver's responsibility to filter/translate the filename as appropriate. - The file size N (four bytes in least-significant to most- significant order). - N bytes of data. Software should cater for the "no-files" situation (ie. the first byte received is zero). CABLE ----- Please read the DISCLAIMER section if you haven't already. These details cover the Amiga<->C64 cable. Cables for other configurations will differ, but shouldn't be too hard to make up. You will need: - 25-pin D-type connector (female) to fit Amiga parallel port. - 22-pin edge connector to fit C64 user port. - Some cable (at least six-core, preferably more - eg. nine - in case extra lines are added in the future). - Solder, patience etc.. Connect the pins as follows (the numbers correspond to the Amiga's parallel port. The letters correspond to the C64's user port). Amiga 2 <-> C C64 3 <-> D 4 <-> E 5 <-> F 8 <-> K 9 <-> L A ground pin or pins at the Amiga end (pins 18-22 for example) should be connected to a ground pin or pins at the C64 end (pins 1, 12, A or N for example). Note of caution: it is imperative that you don't get the numbers confused! Secondly, some C64 user-port connectors are a bit dodgy in that they can be plugged in upside-down if you're not careful. It is advisable that you mark the upper surface of the plug in some way so it doesn't get put in the wrong way round (I've seen the consequences of this happening - the C64 survived perfectly, but the Amiga at the other end got totally geeked). HISTORY ------- V1.00 - First public release.