PPRS TIP/LIP Doc by Terry Fox WB4JFI


By Terry Fox, WB4JF

Instruction Manual For Version 5.5 TIP/LIP Dated August 4, 1984

This manual provides some instructions and information regarding the installation and use of the latest release from AMRAD of the TIP/LIP software for the Vancouver TNC board. The below information is provided on an as-is basis. No warranty regarding the proper operation of this software is implied.

This manual is designed to give the VADCG user some aid in using version 5.5 TIP/LIP from AMRAD. Each command will be described briefly, followed by some general information regarding operation of 5.5 TIP/LIP. Following this is a description on how to assemble TIP/LIP for various systems.

VADCG TNC TIP/LIP 5.5 Commands

The VADCG TNC can be commanded while in almost any mode of operation (such as connected, monitor, host, etc). A TIP/LIP command is indicated by sending (from the terminal interface) a .1 special character". This special character has varied from system to system, and is changeable at assembly time (TIP File special equate). The two most common special characters are the Data-Link-Escape (DLE), and the escape (ESC) ASCII characters.

AMRAD has traditionally used the DLE character, which is what TIP/LIP 5.5 uses as shipped. A DLE is sent by sending a CTL-P from the terminal . Sometimes the special character is sent first, while for other commands, the special character is sent last. Generally, if the command requires a parameter to be passed, the special character is sent last, while if the command does not require a parameter, the special character is sent first. The order of sending the special character is noted in each command description. In the following discussion, the special character is indicated as ↑P for control-P. Since some keyboards do not have an escape key (TRS-80 Ml for example), AMRAD has decided to continue to use the ↑P special character.


There are a number of special characters TIP/LIP recognize to do certain functions, which are outlined below.

↑P, Command Delimiter

As mentioned earlier, one special character is used to signify that the next character(s) will be a command. In the TIP/LIP software supplied by AMRAD, this special character is a control-P, or DLE (ASCII 10H

Sometimes the ↑P is issued before the command, while at other times, the ↑P is sent after the command, which has led to some confusion. As a general rule, if information is being passed to TIP/LIP (such as callsigns), the ↑PP should be issued AFTER the information. If the command is alter a flag or TIP/LIP status, the ↑P is generally issued before the command.

Packet Forwarding Character

Up to this release of TIP/LIP (5.5 Dated Aug. 10, 1984 or later) the packet forwarding character was a line-feed. Release 5.5 has changed this to be a carriage-return to be more standardized with the rest of computerdom. If the line-feed add switch is set, a linefeed will be inserted into the packet after the carriage-return.


There are two methods of controlling the flow of data between the TNC and the terminal. The first is with hardware (CTS/RTS lines), and the second is with CTL-S (stop) and CTL-Q (restart). Whenever CTL-S is issued, the issuing device (either the terminal or TNC) is telling the other device that it cannot accept any more data for now. This condition is cleared by having the device that sent the CTL-S issue a CTL-Q, which signifies that more data can now be received.

The SSID octet is set to 00-OFH by stripping all but bits 0 to 3 from the typed in character. SSID's of 0 to 9 can be directly entered, while SSID's of A to F must be entered by hitting a control-J to control-0, respectively. Admittedly this is a kludge, but it was too hard to modify the code in all places required to correct this problem, especially since these SSID's aren't used a lot yet. Future code will probably correct this.

↑PB, Display Baud Rate Table

The ↑PB command is used to request the HDLC channel baud rate commands. No actual changes are made, this command just displays the speed set commands to the user.

↑PC, Request a Connect to Another Station

This command is used to request a connection with another Amateur station using AX.25. The callsign is entered first , followed by the ↑PC. The callsign should be entered as outlined in the ↑PA command above. The TNC will then issue a connection request (through repeaters if they were set earl i er ) to the station in question a number of times. If that number is exceeded, TIP/LIP assumes that the station in question is not available, and discontinues sending the connection request.

Currently, TIP/LIP 5.5 attempts to connect five times before giving up. If a connection is established, the message:
*CNCT**K8MMO 0? is displayed as the station is proceeds to the connected mode.

↑PD, Request a Disconnect From the Other Station

The ↑PO command is issued to request a disconnect from the station this board is connected to. No parameters are passed with this command. When the disconnect is acknowledged, TIP/LIP indicates this by sending to the terminal the following message: *DISC**WB4APR1: where WB4APR1 is the callsign of the station just disconnected from.

↑PE /↑PNE, Turn On/Off Echo Mode Flag

The TNC normally operates with echo on. This means that all characters sent from the terminal to the TNC are echoed back to the terminal (this is called full-duplex). Some terminals echo the character they send out back to themselves (called half duplex). When using this type of terminal, the echo should be turned off in the TNC. This is accomplished by sending a ↑PNE command, for no echo. To turn the echo back on, send a ↑PE command. The default mode is with echo on, unless the TIP/LIP was assembled to initialize in host mode. When the TNC is hooked to a computer running as a host, the echo should be turned off, so the host terminal does not get confused by seeing its own characters coming back to it.

↑PG, Go To Program at 1600H (Machine Monitor)

This command is not available when using either an unmodified VADCG TNC, or an ASHBY board using 2716's. The TIP/LIP checks the first byte at 1600 Hex, if it is not a 8085 jump instruction (C3H), this command will be ignored. If TIP/LIP finds a C3H at location 1600 Hex, TIP/LIP calls the program at that location. When the program called is ready to exit back to TIP/LIP, it should clear anything it placed onto the stack, and then execute an 8085 return back to TIP/LIP.

↑PH / ↑PNH, Turn On/Off Host Mode

The ↑PH/↑PNH command turns on or off the host mode flag.

When the TNC operates in the host mode, frames are sent either when the maximum number of bytes allowed has been reached, after about one second after no additional characters are sent, or if a return or linefeed is found in the data from the host . Earlier versions of TIP/LIP tested for several terminating characters, and if any of the terminating characters are found, a frame is sent with all characters up to that point. Version 5.5 removed these tests, except for returns or linefeeds.

Host mode enable (↑PH) also turns off all linefeed insertion (saving old linefeed mode flag for later), and disables character echo. When host mode is turned off (↑PNH), the old linefeed insertion flag is re-instated, and echo mode is enabled.

To make interfacing the TNC to a host computer easier, when a connection is established, the DCD line (DB 25, pin 8) is set active. This simulates detection of carrier on a normal modem.

When a disconnection occurs, DCD is turned off, simulating loss of carrier. This can be used to tell the host computer that the other station is no longer there.

↑PI, Initialize The TNC Board

Sometimes it may be necessary to re-initialize the TNC board. This can be accomplished in hardware (by hitting the reset switch), or in software. The ↑PI command is the equivalent of powering the TNC down, then back up again. All data will be lost, any connections will be eliminated, and all defaults will be set to their power-up values. Earlier versions of TIP/LIP did NOT reset the 8273 properly, so the ↑PI command was flakey at best. Version 5.5 has corrected this.

↑PL, Set Linefeed Insertion Mode Flag

Version 5.5 changed the linefeed insertion logic from earlier versions. TIP/LIP 5.5 follows the AX.28 parameter 13 for linefeed insertion. There are three separate times when linefeed insertion could potentially be required after a return:

1. After a return has been detected in the received data.
2. Into the transmit data when the terminal/host sends a return.
3. After a locally (internal to the TNC) generated return.

The older TIP/LIP had one or two of these, but not all three . Some TNC boards send linefeeds after returns, while others do not. Some TNC's and/or terminals require linefeeds after returns, while others automatically expand returns to return/linefeed sequences. In order to satisfy a 11 possibilities, three flag bits are used in TIP/LIP 5.5. They are maintained in the three low-order bits of a single byte. They match the AX.28 linefeed insertion parameter, and are placed as follows:

Bit 0: 0 indicates no linefeed insertion after return detection in the received data from the link, while a 1 indicates a linefeed should be inserted whenever a return is detected in the received data.

Bit 1: 0 indicates no linefeed insertion after return detection into the transmitted data to the link, a 1 indicates a linefeed should be inserted into the data to be transmitted whenever a return is detected.

Bit 2: 0 indicates there should not be any linefeed insertion after returns locally generated by the TNC, while a 1 indicates that a linefeed should be sent whenever a return is locally generated by the TNC.

It should be noted that the above rules do not follow exactly the AX.28 specification, but they are an improvement over the older TIP/LIP operation.

The linefeed insertion parameter is changed by sending to the TNC a single character followed by the ↑PL command. TIP/LIP takes this character, strips all but bits 0, 1, and 2, and puts the result into the linefeed parameter flag. This means that ALL THREE bits MUST be set at the same time, as follows:

Sending an ASCII 1 character (31H) sets the receive LF on CR flag
Sending an ASCII 2 character (32H) sets the send LF on CR flag
Sending an ASCII 4 character (34H) sets the local LF on CR flag

Since all three flags are set simultaneously, the individual bit set commands must be combined as follows:

Sending an ASCII 0 char. (30H) turns off all linefeed insertion after return detection/generation. This is the default mode during host mode operation.

Sending an ASCII 5 char. (35H) turns on both the local LF on CR flag AND the LF on CR in received data flag, (5=4+1).

Sending an ASCII 7 char. (37H) turns on all three flags, forcing linefeed insertion after returns in all cases. This is the normal power-up default.

↑PM / ↑PNM, Enable/Disable Monitor Mode

TIP/LIP supports a mode of operation that allows one to eavesdrop on a channel. This is called monitor mode. In monitor mode, all frames are displayed, along with the complete address field of the frame. This way, a station can watch channel activity without connecting to anyone. This mode also allows roundtable discussions, bypassing connection operation requirements. If monitor mode is used for a long time however, any messages left to a station will soon scroll off a CRT screen.

Also, while in monitor mode, all frames are sent to the terminal.

This could be a problem if machine-level fields are sent on the channel, since TIP/LIP would send the machine code to the terminal as if it was ASCII, causing the terminal to do strange things. Version 5.5 TIP/LIP has added the command ↑PNM to turn off monitor mode, eliminating these problems. While in monitor mode is disabled, data is passed to the terminal/host only when a connection is established. To turn monitor mode back on, issue a ↑PM command. Monitor mode is defaulted on during normal initialization, or off if host mode is the default upon initialization.

↑PR/↑PNR, Set Repeater Mode On/Off and Set Repeater Call

The ↑PR/↑PNR command is used both to enable/disable operation through a repeater (or repeaters), and to set the calls of the repeater(s) to operate through.

Earlier versions of TIP/LIP allowed only one repeater to be used. Version 5.5 now allows multiple repeaters to be accessed (thanks to mods by Jon Bloom, KE3Z). To enable repeaters, type in the callsign(s) of the repeater(s) to be used, followed by the ↑PR command. TIP/LIP will take the data sent to it, change it to upper-case alpha or numeric (plus 4-bit SSID), and install the result into any frames to be sent. On multiple repeater chain operation, no delimiters are used between the repeater callsigns, but rather the string should be entered one directly after the other as follows: WB4JFI5W3VD 5WB4APR6W2FPY5↑PR

When a station becomes connected, if a repeater or repeater chain was used, the received repeater/repeater sequence will automatically be inserted into all frames. If a repeater sequence is detected, the sequence will be reversed automatically.

To turn off the repeater mode, send a ↑PNR command. All repeater call signs will be scrubbed from the buffer, and repeater operation will be terminated.

Repeater operation CANNOT be turned off or altered while connected to another station. This prevents accidental changes from causing link failure.

When using a repeater or multiple repeaters, the Tl timer (wait for acknowledgement delay) should be extended. This value is calculated automatically by TIP/LIP, but it may also be adjusted manually using the ↑PW command listed below.

↑PS / ↑PNS, Turn On/Off Special (Control) Character Operation

The ↑PS/↑PNS command turns On/Off special character recognition by the TIP/LIP. This one flag affects several different functions within TIP/LIP. ↑PS turns on special character operation, while ↑PNS turns off the special character operation.

This special character operation should not be confused with the special character used to issue commands to TIP/LIP. This flag controls whether or not TIP/LIP reacts to control characters sent by the terminal/host at certain key points, such as:

1. Should a frame be sent on linefeeds.
2. Should linefeeds be added into frames to be sent.
3. Should editing of terminal/host input characters be allowed.
4. Should CTL-S, CTL-Q handshaking be used between the terminal/host and the TNC.

This is a lot of varied operations to be controlled by a single flag. It is anticipated that these functions will eventually be broken up into separate flags. For now, the above mentioned functions are allowed if special characters are enabled (↑PS), or not allowed if special characters are disabled (↑PNS).

↑PT, Force Control Field to Certain Type

The ↑PT command is used to force the control field of the next frame to a certain type. The command is issued by first sending the hex representation of the control field, then sending the ↑PT command. 'For example, sending to TIP/LIP OF↑PT forces a DM type frame to be transmitted.

↑PW, Set Wait For ACK Delay Timer Value

The ↑PW command is used to alter the value of the Tl timer.

This timer is used to set a maximum amount of time to wait for an ACK after sending an information frame in connected mode. This timer is automatically adjusted by TIP/LIP for multiple repeater hops, but it may also be adjusted by the terminal/host if necessary. The Tl timer is a 16 bit number internally in TIP/LIP, so only the most-significant byte is adjusted using the ↑PW command. The value to be inserted into the most-significant byte is sent first, in hex, followed by the ↑PW command. 17 hex is the default value, which results in about a two second delay.

As an example, 17↑PW would reset the Tl timer back to close to the default value.

↑PX, Exit to Program at 2000 Hex

This command allows the TNC to exit TIP/LIP to another program, which would reside at 2000 hex. This command is NOT normally assembled into TIP/LIP. The ↑PX command allows for future programs to reside above TIP/LIP (such as a repeater module). It should be noted that the interrupt service routines can be set to conditionally jump to 2000+ hex, allowing a completely separate program to reside there. Users should exercise some caution before assembling this into the TIP/LIP.

↑PO, Set PID Value Command

As part of the AX.25 level 2 protocol, an extra field is located between the control and information fields of information frames. This field, called the Protocol Identifier (or PID) is used to show what type of level 3 protocol (if any) exists. it is beyond these instructions to describe all the possible values of the PID. For now, since there is no level 3 protocol in TIP/LIP this is indicated by sending an FO hex as the PID. if level 3 protocol work is being done, the PID must be changed to reflect the level 3 in use. The ↑PO command allows this change to be made. As in the ↑PT command above, a hex character followed by the command ↑PO is issued to alter the PID, such as OA↑PO to change the PID to a OA hex. All frames will then be sent with the new PID value until it is changed again, either by another ↑PO command, or hardware/software reset.

↑Pl - ↑P6 & ↑P9, HDLC Link Channel Speed Set

Commands ↑Pl to ↑P6 and ↑P9 are used to change the speed of the HDLC Link channel as follows:

↑Pl sets the link channel speed to 75 bps
↑P2 sets the link channel speed to 150 bps
↑P3 sets the link channel speed to 300 bps
↑P4 sets the link channel speed to 600 bps
↑P5 sets the link channel speed to 1200 bps
↑P6 sets the link channel speed to 2400 bps
↑P9 sets the link channel speed to 4800 bps

The default speed of the link channel is set to 1200 bps whenever TIP/LIP is initialized.

↑P7, Set Terminal Data Mask to 7 Bits Default 7 bits

When this command is issued, data in both directions through the TNC will be stripped to 7 data bits per character. This may be necessary for terminals that get confused when bit 7 is set.

This should be turned off whenever transferring machine-level programs by issuing the ↑P8 command.

↑P8, Set Terminal Data Mask to 8 Bits Default 7 bits

This command is used to change the terminal data mask to 8 bits, removing the bit 7 strip. It should be issued whenever transferring machine co.de or word-processor document files.