TNC-2 1.1.8 20 MAR 92 $F8 (16 bit checksum=21f8) Tucson Amateur Packet Radio TNC-2 Release 1.1.8 Firmware revision notes Note: The information in this package supplements, and in some cases supercedes, the information provided in the TAPR 1.1.7 command booklet. Overview: Release 1.1.8 provides new features and fixes a couple of small bugs. The frequently demanded host mode is now present, along with code that proposes a standard for polling other TNCs in a LAN without knowing all of the other TNCs' callsigns. NEW FEATURES Host mode Release 1.1.8 supports a layered, relatively easy-to-implement protocol set (QAFT, DLC, and BLP) that enables the robust connection of one or more computers or TNCs to a TNC-2's RS-232 port. A separately provided .ZIP archive available from TAPR contains documentation, a similarly poorly written host mode terminal program for a DOS machine, and even more poorly written protocol drivers in Microsoft C source. Warning: Host mode has not been thoroughly tested by either the author or TAPR. Please report any bugs to either or both for a hopefully prompt resolution of the problem. QRA or help for My path's fallen, and it can't get up QRA ("Who are you") pinging is supported in release 1.1.8. A QRA ping polls all of the TNCs within range. Each TNC hearing the QRA ping will transmit its identification packet within 1 to 16. This technique provides the names of all reachable TNCs and digipeaters to the new, roving, and emergency-use packeteer. Also see "ANSWRQRA" command. Note that the QRA function will not work if there are any digipeaters in the UNPROTO path. This somewhat, but not completely, helps limit a malevolent user's ability to seriously harm the network. Sending QRA ping: 1) Set the unprotocol callsign to QRA cmd: UNPROTO QRA 2) Manually send an unconnected packet cmd: CONVERSE ^C cmd: 3) In 1-16 seconds, if MONITOR is ON you should be receiving packets empty identification packets from other connectable and compatible TNCs. WB9FLW>ID: AD7I>ID: W5DID>ID: NEW COMMANDS ANSWRQRA ON|OFF Default: ON Setting ANSWRQRA to OFF disables the TNC's ping-response function. When the parameter is set ON, the TNC responds to non-digipeated UI frames addressed to QRA, within 1 to 16 seconds, with an empty ID packet. TNC-2 ignores QRA packets when ANSWRQRA is off. KISSM {immediate command} This command may be used to cause the TNC to immediately begin running the KISS code. Note this is a different protocol than used by TNC-2 QAFT/DLC/BLP. OUT nn 0<=nn<=255 The value 'nn' is sent to the TNC's z/80 i/o port 0BFH. Note that the last value 'nn' is sent to the i/o port frequently, but not immediately. In this context, 'frequently' means many times per second, and 'not immediately' means within at most 100ms. TXDIDDLE ON|OFF Default: ON The TNC sends NRZI 0s during TXDELAY/TXDELAYC intervals if TXDIDDLE is ON, and 7EH flags when it is OFF. TXDIDDLE should be kept ON unless you are certain the TNCs in your network require lengthy flagging intervals. A few 1.1.7 users (TXDIDDLE was forced to ON in 1.1.7) reported problems with other TNCs that require flags during TXDELAY/TXDELAYC for carrier detection. Now when this problem crops up, the 1.1.8 user has the ability to turn TXDIDDLE OFF and restore connectivity. FIXES o -Fixed the erroneous bbRAM failure indication that sometimes happened when the already-connected remote TNC reconnected through a different path. o -Repaired the transparent mode "TXFLOW ineffectiveness during XFLOW ON" bug. o -KISS has access to 75BAH bytes of free RAM Please send suggestions, comments, criticisms to Tucson Amateur Packet Radio, Inc., or direct to the TNC-2 evolution control substation maintained by Howard Goldstein N2WX@W4DPH CIS: 75006,702 GENIE: H.GOLDSTEIN5 FAX only: 1-813-321-5396 TNC-2 - The revolution hangs in there! Tucson Amateur Packet Radio P. O. Box 12925 Tucson, AZ 85732-2925 --------------------------------------------------------------------- Default Locations The default parameters for the various TNC 2 commands are located in the 1.1.8 EPROM. The defaults are documented here for those of you who wish to change them for particular applications (such as remotely located units, etc.). For release 1.1.8, the defaults table is found at address 0B98 hex. NOTE: In future releases of firmware, this location may change. There is a pointer at address 0055H which contains the location of the default area in Z80 low-byte/high-byte format. WARNING! The TNC 2 firmware does not check for valid defaults. If you program an invalid default (for example, parity 5), unpredictable results may occur. Be sure you double-check any defaults you change! The defaults are listed in the table below. All notes follow the table. EPROM Value Meaning Command Notes Address (Hex) (Hex) 0B98 21 33 DWAIT 33*10 mSec 0B99 00 0 AXHANG 0*100 mSec 0B9A 00 0 PACTIME EVERY/AFTER* 0B9B 0A 10 PACTIME 10*100 mSec 0B9C 21 33 DEADTIME 33*10 mSec 0B9D 0E 14 ACKTIME 14*10 mSec 0B9E 02 2 DLCTICKTIME (do not change this) 0B9F 01 1 CMDTIME 1*1 Sec 0BA0 21 33 TXDELAY 33*10 mSec 0BA1 05 5 reserved - must be 5 0BA2 1E 30 TXTMOTMR 30*1 Sec Note 1 0BA3 01 1 TODVAL 1*1 Sec Note 2 0BA4 39 57 IDVAL 57*10 Sec Note 3 0BA5 00 0 RESPTIME 0*100 mSecStream A 0BA6 00 0 RESPTIME 0*100 mSecStream B 0BA7 00 0 RESPTIME 0*100 mSecStream C 0BA8 00 0 RESPTIME 0*100 mSecStream D 0BA9 00 0 RESPTIME 0*100 mSecStream E 0BAA 00 0 RESPTIME 0*100 mSecStream F 0BAB 00 0 RESPTIME 0*100 mSecStream G 0BAC 00 0 RESPTIME 0*100 mSecStream H 0BAD 00 0 RESPTIME 0*100 mSecStream I 0BAE 00 0 RESPTIME 0*100 mSecStream J 0BAF 0C 12 CHECK 12*10 Sec Stream A 0BB0 0C 12 CHECK 12*10 Sec Stream B 0BB1 0C 12 CHECK 12*10 Sec Stream C 0BB2 0C 12 CHECK 12*10 Sec Stream D 0BB3 0C 12 CHECK 12*10 Sec Stream E 0BB4 0C 12 CHECK 12*10 Sec Stream F 0BB5 0C 12 CHECK 12*10 Sec Stream G 0BB6 0C 12 CHECK 12*10 Sec Stream H 0BB7 0C 12 CHECK 12*10 Sec Stream I 0BB8 0C 12 CHECK 12*10 Sec Stream J 0BB9 05 5 reserved - must be 5 0BBA 00 0 reserved - must be 0 0BBB 00 0 reserved - must be 0 0BBC 00 0 reserved - must be 0 0BBD 00 0 reserved - must be 0 0BBE 00 0 reserved - must be 0 0BBF 00 0 reserved - must be 0 0BC0 00 0 reserved - must be 0 0BC1 00 0 reserved - must be 0 0BC2 00 0 reserved - must be 0 0BC3 00 0 reserved - must be 0 0BC4 01 1 BEACON EVERY/AFTER*,DEF EVERY 0BC5 00 0 BEACON TIME (0 = never) 0BC6 9C 'N' MYCALL Note 4 0BC7 9E 'O' 0BC8 86 'C' 0BC9 82 'A' 0BCA 98 'L' 0BCB 98 'L' 0BCC 60 SSID 0 0BCD 00 0 must be 0 - end of callsign string 0BCE 40 ' ' MYALIAS Note 4 0BCF 40 ' ' 0BD0 40 ' ' 0BD1 40 ' ' 0BD2 40 ' ' 0BD3 40 ' ' 0BD4 60 SSID 0 0BD5 00 0 must be 0 - end of callsign string 0BD6 08 8 FRACK 8*1 Sec 0BD7 80 128 PACLEN 0BD8 0A 10 RETRY 0BD9 00 0 reserved - must be 0 0BDA 04 4 MAXFRAME 0BDB 07 7 AWLEN - must be 7 or 8 0BDC 03 3 PARITY EVEN Note 5 0BDD 00 0 AXDELAY 0BDE 02 2 TXDELAYC 0BDF 03 3 SLOTS 0BE0 7C '|' STREAMSW Character 0BE1 01 1 USERS 0BE2 0D ^M SENDPAC Character 0BE3 18 ^X CANLINE Character 0BE4 19 ^Y CANPAC Character 0BE5 03 ^C COMMAND Character 0BE6 08 ^H DELETE Character 0BE7 16 ^V PASS Character 0BE8 12 ^R REDISPLAY Character 0BE9 13 ^S STOP Character 0BEA 11 ^Q START Character 0BEB 13 ^S XOFF Character 0BEC 11 ^Q XON Character 0BED 00 0 NULLS 0BEE 00 0 SCREENLN 0BEF 0000 0 CLKADJ 0BF1 00 0 TAPRLATCH 0BF2 00 0 MFILTER 1st Parameter 0BF3 00 0 MFILTER 2nd Parameter 0BF4 00 0 MFILTER 3rd Parameter 0BF5 00 0 MFILTER 4th Parameter 0BF6 00 0 MFILTER 5th Parameter 0BF7 09 CMDS3 Note 7 0BF8 6A CMDS4 Note 8 0BF9 44 CMDS5 Note 9 0BFA 00 CMDS6 Note 10 0BFB 20 CMDS7 Note 11 0BFC 3D CMDS8 Note 12 0BFD 02 CMDS9 Note 13 0BFE 46 CMDS10 Note 14 0BFF 1F CMDS11 Note 15 0C00 60 CMDS12 Note 16 0C01 B8 CMDS13 Note 17 0C02 60 CMDS14 Note 18 0C03 00 0 MYDLCNUM 0C04 FE 254 DEFLTDLC 0C05 00 0 Last Beacon Time - default to 0 0C06 8D reserved - must be 08DH 0C07 00 0 reserved - must be 0 0C08 00 0 reserved - must be 0 0C09 00 0 reserved - must be 0 0C0A 00 0 reserved - must be 0 0C0B 00 0 reserved - must be 0 0C0C 00 0 reserved - must be 0 0C0D 00 0 reserved - must be 0 0C0E 00 0 reserved - must be 0 0C0F 00 0 reserved - must be 0 0C10 00 0 reserved - must be 0 0C11 00 0 reserved - must be 0 0C12 00 0 reserved - must be 0 0C13 00 0 reserved - must be 0 0C14 00 0 reserved - must be 0 0C15 00 0 reserved - must be 0 0C16 00 0 reserved - must be 0 0C17 00 0 reserved - must be 0 0C18 86 'C' UNPROTO CALL See Note 4 0C19 A2 'Q' 0C1A 40 ' ' 0C1B 40 ' ' 0C1C 40 ' ' 0C1D 40 ' ' 0C1E 60 SSID 0 0C1F 00 0 must be 0 - end of callsign string 0C25 MFLAGS Note 19 0C26 DFLAGS Note 20 0C27 CONFLAG Note 21 0C28 ENTRYSTA Note 22 0C29 ENT2 Note 23 NOTES Note 1 This is the timer which, when it is exceeded, increments the TXTIMEOUT Health counter. Note 2 TODVAL specifies the number of "ticks" the DAYTIME clock increments each second. It should always be set to 1. Note 3 IDVAL is not otherwise settable. It specifies the number of 10-second intervals which elapse between IDs when HID is ON. Note 4 Callsigns are encoded per the AX.25 standard document. A callsign consists of six (6) numbers and letters. The letters must be upper case and, if the callsign is less than six (6) elements long, must be right-filled with blanks. The ASCII values corresponding to the letters and numbers must be left-shifted one bit. The letters and numbers in HEX are: Char ASCII Call (BLANK) 20 40 A 41 82 B 42 84 C 43 86 D 44 88 E 45 8A F 46 8C G 47 8E H 48 90 I 49 92 J 4A 94 K 4B 96 L 4C 98 M 4D 9A N 4E 9C O 4F 9E P 50 A0 Q 51 A2 R 52 A4 S 53 A6 T 54 A8 U 55 AA V 56 AC W 57 AE X 58 B0 Y 59 B2 Z 5A B4 0 30 60 1 31 62 2 32 64 3 33 66 4 34 68 5 35 6A 6 36 6C 7 37 6E 8 38 70 9 39 72 A seventh callsign value is the secondary station ID (SSID). This is a value from 0 through 15 and is encoded as: Bit 7 6 5 4 3 2 1 0 0 1 1 D C B A 0 where D is the most significant bit and A the least in the binary value (0 through 15). Note 5 Parity for the asynchronous serial port is: Value Meaning 0 None 1 Odd 2 None 3 Even Note 6 Binary status and parameter elements (commands whose arguments are ON/OFF) are encoded as ON = TRUE = 1 OFF = FALSE = 0 Commands which are "negative-true logic" (FALSE = 1 and TRUE = 0) are indicated by trailing asterisks (*). There are several defaults that are encoded on a bit basis. These are listed below. Note 7 CMDS3 Bit Command Default 7- CMSG on/off 6- CONMODE trans/conv* 5- NULF on/off 4- NUCR on/off 3- LCOK on/off 2- PASSALL on/off 1- TXFLOW on/off 0- AX25L2V2 on/off Note 8 CMDS4 Bit Command Default 7- ESCAPE on/off 6- XMITOK on/off 5- DIGIPEAT on/off 4- LFADD on/off 3- BKONDEL on/off 2- DELETE on/off 1- ECHO on/off 0- BUDLIST on/off Note 9 CMDS5 Bit Command Default 7- CONSTAMP on/off 6- DAYUSA on/off 5- NEWMODE on/off 4- reserved 3- MCOM on/off 2- MALL on/off 1- HID on/off 0- HEADRLN on/off Note 10 CMDS6 Bit Command Default 7- STREAMCA on/off 6- STREAMDB on/off 5- reserved 4- reserved 3- reserved 2- 8BITCONV on/off 1- TRFLOW on/off 0- MSTAMP on/off Note 11 CMDS7 Bit Command Default 7- reserved 6- reserved 5- LCSTREAM on/off 4- reserved 3- NOMODE on/off 2- RXBLOCK on/off 1- HEALLED on/off 0- CBELL on/off Note 12 CMDS8 Bit Command Default 7- LFIGNORE on/off 6- CMSGDISC on/off 5- reserved 4- reserved 3- reserved 2- reserved 1- reserved 0- reserved Note 13 CMDS9 Bit Command Default 7- reserved 6- BBSMSGS on/off 5- reserved 4- reserved 3- reserved 2- reserved 1- reserved 0- reserved Note 14 CMDS10 Bit Command Default 7- reserved 6- reserved 5- reserved 4- reserved 3- reserved 2- reserved 1- reserved 0- reserved Note 15 CMDS11 Bit Command Default 7- reserved 6- MNONAX25 on/off 5- reserved 4- reserved 3- reserved 2- reserved 1- TXUIFRAM on/off 0- FIRMRNR on/off Note 16 CMDS12 Bit Command Default 7- reserved 6- ACKPRIOR on/off 5- TXDIDDLE on/off 4- KISS on/off 3- CHECKV1 on/off 2- reserved 1- reserved 0- reserved Note 17 CMDS13 Bit Command Default 7- reserved 6- reserved 5- reserved 4- reserved 3- reserved 2- BLP on/off 1- reserved 0- reserved Note 18 CMDS14 Bit Command Default 7- reserved 6- ANSWRQRA on/off 5- reserved 4- reserved 3- reserved 2- reserved 1- reserved 0- reserved Note 19 MFLAGS Bit Command Default 7- reserved 6- reserved 5- reserved 4- reserved 3- TRACE Off 2- MCON On 1- MRPT On 0- MONITOR On Note 20 DFLAGS Bit Command Default 7- reserved 6- reserved 5- reserved 4- reserved 3- reserved 2- reserved 1- reserved 0- reserved Note 21 CONFLAG Bit Command Default 7- reserved 6- reserved 5- reserved 4- FLOW On 3- CR On 2- reserved 1- FULLDUP Off 0- CONOK On Note 22 ENTRYSTA Bit Command Default 7- reserved 6- reserved 5- reserved 4- reserved 3- reserved 2- reserved 1- AUTOLF On 0- reserved Note 23 ENT2 Bit Command Default 7- reserved 6- reserved 5- reserved 4- reserved 3- reserved 2- XFLOW On 1- reserved 0- reserved