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.
SPECIAL CHARACTERS
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.
Flow-Control
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.