TstHost version 1.43 1
TstHost version 1.43
--------------------
Features
--------
TSTHOST is a software written for TNC2 and clones with HOST
mode EPROM type TF8, TF23, TF24 etc. It is possible to use the
software with other TNCs set in KISS mode.
A TNC in KISS mode requires a serial driver (like TFPCX/TFPCR),
but don't forget to set the TNC in KISS mode BEFORE running
TSTHost.
A TNC in WA8DED Host mode requires a serial driver like
COMBIOS, MBBIOS etc. The GKJBIOS driver is an MBBIOS
compatible driver optimised for TSTHost, that detects the
special 16550A UART. For the driver configuration, run
GKBIOCFG.EXE and follow the instructions displayed on the screen.
TSTHOST offers from 2 to 8 independent communication channels,
where every channel has a 300 lines receive buffer, circular
keyboard buffer to recall the ten previous commands, automatic
text justification, up to 8 simultaneous YAPP (with resume
and yappC options) or ASCII file transfers, up to 8 PMS
channels with RLI-type forward with a master BBS. All received
data can be saved in a disk file. Every session may have a
different callsign.
There is a separated window for monitoring, and it is possible
to capture in a file all the traffic displayed in that window.
The text entered from the keyboard is recognised as commands to
run for every COMMAND mode session, while in CONVERSATION mode is
sent to the connected station. For this reason it is not
possible to switch in conversation mode if the session is not
connected. The exception is the Monitor window, where all
keyboard data is transmitted as Unproto packets.
For every session there is a receive buffer, useful to review
all the received data. By receiving data from a channel not
actually selected, the related callsign in the status line will
blink. All unconnected channels are set by default to PMS
sessions. So, when an user connects your station, he goes into
the personal mailbox system, but if YOU connect a user the
channel is set for a normal conversation mode. Naturally, you
have a specific command to switch a PMS session into conversation
mode and vice-versa. During a PMS session, the user can read and
write messages, view the users directory, up or download programs
TstHost version 1.43 2
with the YAPP protocol. The PMS session can also run external
server programs, send a Break to other PMS users, talk the
sysop.
Incoming connection in a PMS windows, may be managed from an
external filtering program, called CON_FILT.EXE
TSTHost automatically recognises the standard password format,
and the extended MD2 algorithm. The standard password format
accepts from one to ten letters, but normally all the
programs require five letters for the password.
Other features are the Unproto list capability and a full forward
protocol MBL-RLI or FBB COMPRESSED type, even if the the BBS
require a password for the access.
The program can also extract any 7plus code from the unproto or
pms messages, and write this code to a file, for furter
processing. TstHost support remote SERVER technique and PG program
to increase the pms command for particoular applications.
At the end, is supported also the Macro Commands, that may be
active for any channels, without restriction.
The communication in HOST-mode between the PC and the TNC has
a 3 seconds timeout. After this time, if the program does not
receive a reply from the TNC, attempts to synchronise the serial
port.
TstHost version 1.43 3
Tsthost with TNC in KISS or BAYCOM modem (/K)
----------------------------------------------
You need the driver TFPCR or TFKISS for KISS mode, TFPCX for
modem BAYCOM. TFPCX version 2.10 supports both the KISS and the
BAYCOM modes.
Using a KISS-mode TNC, set the TNC in KISS mode manually or
with the appropriate command line switch of the
TFPCR/TFPCX/TFKISS driver.
TFPCX uses the IRQ 253 for the internal communications, the
other drivers uses the IRQ 254.
Load the driver
Load TSTHost with the command: TSTHOST /T /I254 (or /I253)
/T sets TSTHost to use the TFPCX/R driver, and /I254 sets
the IRQ for the driver communication.
NOTE: when started, TSTHost automatically sends the commands to
the driver: JHOST1, USERS NbrOfChannels, @U0
Example for TFPCR or TFKISS:
TFKISS command line parameters
TSTHOST /T /I254
Example for TFPCX:
TFPCX command line parameters
TSTHOST /T /I253
WARNING: I have noticed that TFPCR version 3.30 does not
work properly with high speed transfers over 400 cps (G3RUH 9600
baud). I don't know the reason, but version 2.10 of TFKISS and
TFPCX does not have this bug.
The sound and BAYCOM modem (/Sx)
---------------------------------
Some baycom drivers, like tfpcx, speed up the sound timer used by
tsthost to generate delay and sound temporization: the resul is
that the sound is unaudible or distort. To avoid this, the
parameters /SX may be added to the tsthost startup command line,
where X is a value between 1 and 1000.
TstHost version 1.43 4
Pratically, this is a delay multiplier factor, a sound of 1
seconds, if the /S500 is present, will became lenght 500 secods!
THIS is one of the reasons for which this parameters MUST NOT BE
USED if not needed. Do not use this parameters with tnc in
hostmode, kissmode, or generally, if the sound is correct without
it. General paramters, may be /S200 for baycom at 1200 baud, and
/400 for baycom at 2400 baud, you may change to your preference.
Tsthost with the standard HOST mode (/H)
-----------------------------------------
Configure GKJBIOS or other COMBIOS drivers for the correct
serial port parameters. Load the driver in memory
Load TSTHost with the command TSTHOST /H /Cx /Bzzzz
where /H selects the software to use the standard host mode, x
is the serial port where you have connected the TNC (1..8),
zzzz is the baud rate of the port. TSTHost supports a data
transfer rate of 9600, 19200 and 38400 baud.
NOTE: when started, TSTHost automatically sends the commands to
the TNC: JHOST1, USERS NbrOfChannels, Z0, @U0
At the end of the program, you must remove from memory the
serial driver with the command: GKJBIOS U. For instance:
GKJBIOS
TSTHOST /H /C1 /B19200
GKJBIOS U
NOTE: You may replace the gkjbios or any type of combios driver
with the FOSSIL type driver, the program recognize automatically
the driver and use it.
Tsthost with DRSI driver (/D)
------------------------------
This interface permit to use tsthost with RSI driver that return
the data in the wa8ded host compatible mode, laki DEDHOST provided
with BPQ.
- Configure your drsi driver for your work condition
- Load TstHost with the command TSTHOST /D /Ixx, where:
/D tell tsthost to use a drsi driver
/Ixx XX is the communication vector used by the driver, and must
be given in DECIMAL mode.
NOTE: when started, TSTHost automatically sends the commands to
the driver: JHOST1, USERS NbrOfChannels, @U0
TstHost version 1.43 5
Tsthost with 2 or more tnc
--------------------------
You may connect two or more interfaces to the program. This
can be done with the TFPCX v2.10 driver. This driver supports up
to 8 interfaces like KISS, BAYCOM, MODEM etc. This is only a
small description, because the complete documentation of the
commands is shipped with the driver files.
Since the driver may support up to 8 port, the driver have
a command to define which channels assign to which port. The
extended host command is @PO xxxxxxxx. Each 'x' is a value between
0 and the number of installed interfaces. 0 is the first
interface, 1 the second, etc. TSTHost uses 8 channels so you must
define 8 digits.
Of course, if you use the driver for one interface only,
the @PO command is not requested, because all channels are
assigned to that interface.
Here are some examples:
1) We have two TNCs, connected to COM1 and COM2. The TNCs
are already set in KISS mode, the baud rate is 19200 baud, we
want to assign channels 1234 to the TNC on COM1, channels 5678
to the TNC on COM2.
TFPCX -PKISS1 -PKISS2 -B19200:19200 -CH8
TSTHOST /T /I253
To assign the channels type the command: PARAM 0 @PO 00001111
(This command can also be written in the tsthost.cfg file)
2) We have 2 TNC and a BAYCOM modem. The BAYCOM modem is
connected to COM1, 1200 baud; a TNC is on COM2 at 19200 bauds, the
second TNC is on COM3, IRQ10, 38400 baud. The two TNCs are
already set in KISS mode. We to want assign channels 123 to the
BAYCOM, 456 to the first TNC, and 78 to the second TNC.
TFPCX -PCOM1 -PKISS2 -PKISS3:03E8:10 -B1200:19200:9600 -CH8
TSTHOST /T /I253
To assign the channels, type the command PARAM 0 @PO 00011122
(This command can be executed from the tsthost.cfg file)
3) A TNC in KISS mode, already set in KISS mode, on COM1,
19200 baud.
TFPCX -PKISS1 -B19200 -CH8
TSTHOST /T /I253
In this case the command @PO is not requested.
TstHost version 1.43 6
Memory usage
------------
TstHost use the memory dinamically. This means that the memory
will be request to the system when needed, and released when not
more requested. But, some type of data, like revision buffer and
channel structure, cannot be released.
Actually tsthost need about 500 Kbyte of memory to run, this for a
standard use, and all pc that have installed almost 640 kbyte may
run tsthost. But others memory usage may be needed:
1) TFPCX-TFPCR, if used, need about 64K
2) Unproto list, (little mode), require 24K
3) RUN command, and generally any other application like the
SERVER that require a shell to operating system, need memory for
command.com and the program to execute.
4) Compressed data received with forward and uproto list require
other 19K.
Expanded memory and /NOEMS command
----------------------------------
TstHost detect and use EMS memory if found in the sistem. EMS
memory may free up to 240Kbyte of conventional memory.
If you have any problem using the expanded memory, you can
disable the function with the command line switch /NOEMS. For
example: TSTHOST /H /B19200 /C1 /NOEMS
Extended memory and /NOXMS command
----------------------------------
TstHost detect and use XMS memory if found in the sistem. XMS
memory may free up to 210Kbyte of conventional memory, and is
accessed via the HYMEM.SYS driver. (or equivalent). Note that XMS
memory management is slow referred to EMS and conventional memory.
TstHost priority are: first fill in EMS, next if needed in XMS,
next if needed in conventional memory.
Command line parameters /NOXMS tell thsthost to not use XMS
memory, for example: TSTHOST /H /B19200 /C1 /NOXMS
TstHost version 1.43 7
Reduction of RX buffers, /Rsize command
---------------------------------------
If you do not have memory for all your applications, you may free
memory reducing the size of the rx buffer. Normally any buffer
have a capacity of 300 lines. The /Rsize permit to define the
number of line allocated in the review buffer, from 100 to 750.
Any line cost 82 bytes.
For example, with TSTHOST .... /R200, you may free:
(300-200)x82x9=73800 byte, 73K
This command do not affect buffer allocated in EMS memory, that
have always 300 line.
Number of channels, /K parameters
---------------------------------
This parameter is useful to reduce the numeber of channel used in
tsthost. Application may be in old eprom that not manage more of 4
channel, or to reduce the memory usage. Is possible to define
from2 to 8 channel, 8 default: for example, to set up 4 channel,
add the parameters /K4 to the tsthost command line.
Unproto list size, /U parameters
--------------------------------
Tsthost always attempt to set the unproto list size to 800
messages. If you have memory occupation problems, this parameters
is useful to reduce the memory usage: Available value start from
200 to 800, 800 default: To set the unproto list size to at most
400 messages, add the parameters /U400 to the tsthost command
line.
VGA mode
--------
Add the parameter /VGA to the command line, to get 43 or 50
screen lines on an EGA or VGA monitor.
Example: TSTHOST /H /B19200 /C3 /VGA
TstHost version 1.43 8
Extended interface for data request, switch /V
----------------------------------------------
Starting from version 1.41 TstHost will provide a new method to
access particoular information about the status of the program and
the tasks. Extended data request will be done trought the
internally irq service vector, normally 101, 65Hex. This vector
may be redefined with the command line parameter /V, that accept
in input a DECIMAL value. For example:
TSTHOST ... /V100
Tsthost tell tsthost to use irq number 100, 64Hex, instead of 101
NOTE: TSTHOST REQUIRE AN EXCLUSIVE ACCESS TO THIS VECTOR.
Read also the section about TSTHOST.IRQ vector.
Programs, servers, pgs, may interrogate this irq in order to
obtain info about general parameters of tsthost and or tasks. The
info will be returned in a structure here described, that is a
static area into tsthost. For this reason, if you need to mantain
information between two or more calls to the irq, you must copy
the previsuly information in an area of your program, because the
new irq call will cause the overwrite of the previusly info.
Program that require info, must be call the irq vector with the AL
register set to 0, AH set to the specified channel to investigate.
When return from the irq routine, if any error was detect,
register AH is set to not 0 value, and AL will contain the number
of channel supported by tsthost. Normally AL is 8, but it may be
loss if tsthost was start with the /K switch in order to reduce
the number of channels. Actually the unique error possible is to
investigate a channel that not exist.
If success, register AH will be 0, AL will contain again the
maximum number of available channels, and ES:BX will point to the
info structure.
NEVER, NEVER AND NEVER WRITE INTO THIS AREA. YOU MAY ONLY READ.
WRITING INTO THIS AREA PROBABLY WILL CAUSE THE CRASH OF THE
SYSTEM!
TstHost version 1.43 9
Here is the format of the information structure. Like C
convention, all char array are null terminated.
struct info
{ // THIS VALUE ARE GLOBALS, NOT CHANNEL DEPANDANT.
//===============================================
unsigned char THVH; //TstHost version, high value
unsigned char THVL; //TstHost version, low value
int MAXCHANNEL; //Number of channel available i tsthost
char DRVTYPE; //Driver type, 1 real host, 0 tfpc, 2 drsi
char PORT; //If real host, com port
unsigned int BAUDRATE;//If real host, baudrate
int INTNO; //If tfpcx/r, irq vector used by driver
char TstHostCall[10]; //Callsign of the sistem, with ssid
char UListEnable; //If not 0, unproto list is active
char Wpath[81]; //tsthost WorkDir
char Upath[101]; //tsthost UserDir. If more than one path
//is defined, the multiple path are
//separated by a space.
char HomeBbs[10]; //HomeBbs Callsign
char HomeAlias[10]; //homebbs alias call, null if undefined
// THIS FIELDS ARE CHANNEL DEPANDANT
//====================================================
int chstatus; //0 channel is disconnected
//1 standard connection, I have connect
// another OM
//2 PMS connection, a remote user is
// connected on my pms
//3 PMS connection, HomeBbs have connect
// my pms to do forward.
//4 PMS connection, my pms have connect
// HomeBbs to do forward
//5 UNPROTO connection, i have connect
// HomeBbs to request unproto mail.
char SuppCall[10]; //If not null, extra callsign for the
//channel (command AX PORT)
char UserCall[10]; //call of the connected station, with ssid
// THIS FIELDS ARE VALID ONLY FOR USER THAT HAVE CONNECT
// MY PMS, chstatus=2 o 3
//=====================================================
char UIname[13]; //User name
long UILastConnTime; //in sec dal 1970, last connection date
long UILastMsgList; //in sec, last messaged listed date
long UINbrConn; //number of connection for this user
long UIThisConnTime; //in second, this date at connection
unsigned int SysFlag; //actual SYS flag for the user
};
TstHost version 1.43 10
TSR interface for monitor data, TSRMON command
----------------------------------------------
This interface permits to an external program to manage the data
received on the monitor port: this function is an open door to
many possibility..... an example may be an external program that
monitor a packet cluster emission, analize the log, and perform
the desidered actions, like hf shack frequency change, or
other.... there are multiple applications.
The external manger may be a device driver, or a tsr program
loaded before tsthost. The manager talk with tsthost with an
interrupt vector, and receive from tsthost all the data that
tsthost receive on the monitor port: this means that the data
received by the external manager will reflect the status of the
monitor set with the AX MONITOR command inside tsthost. The switch
/F and /T of the ax monitor command are ingnored, even if present,
the manager will receive always the original data. Note that the
external manager do not substitute the internal management of
tsthost, all the native function will continue to work.
The activation and the link with the external manager is performed
with the command TSRMON, with this sintax:
TSRMON IRQVECT
IrqVect is the irq number, express in DECIMAL notation, that
tsthost call to send the monitor data to the manager. To disable a
previusly enable manager, use 0 like vector parameter.
Since tsthost cannot known how your manager is construct, or what
interrupt it may use, is not possible use by tsthost any sort of
control. USE THIS COMMAND WITH CARE, do not set invalid irq vector
or non-existant manager, or probably your pc crash.
Tsthost call the manager loading in the CPU register the
appropriate paramenters, and next issue the interrupt specified in
the tsrmon command. The manager, will receive the data with this
sintax:
AH: always 0
AL: this is the channel number, but since for the moment the
interface support only the monitor port, also this parameters
will be 0.
BX: This register tell you the type of the packet received. Again,
since only monitor is actually supported, only 3 value are
TstHost version 1.43 11
supported:
4 header without data, like control packet, RR, RNR... and
the connection/disconnection frame.
5 header with data, like UI beacon frame, or I frame. Note
that this is only the header, the effective data will be
received with the next packet.
6 data of the previusly packet type 5.
Type 4 and type 5 are the header exactly like you may see in
the monitor port, already decoded, like:
fm IK1GKJ to BEACON ctl UI^ pid F0
SI: Tell you how many byte are present in the packet, on the other
words, the size of the packet. The max size that you may
receive are 256 bytes.
CX:DX in the form segment:offset are the address of a memory
location where the data are stored. WARNING, this is a READ
ONLY memory, do not attempt to write anything here, or you
system may crash.
And now, some little rules to write a good interface program for
tsthost:
- Tsthost is stopped while your program is in execution, so write
fastest and little code.
- DO NOT USE THE TSTHOST STACK, use you dedicated stack in your
program. The tsthost stack is sized for tsthost usage, your
program may saturate it.
- DO NOT USE dynamic allocation in the far heap, you may lock the
tsthost memory management. If you need dinamic memory inside you
program, allocate a zone at the starting time and use it.
- DO NOT ALTER the tsthost register. Before modify, save it on the
stack or other area, and restore them before return to tsthost.
- And, to finish, DO NOT WRITE ANYTHING IN THE AREA POINTED BY
CX:DX.
TstHost version 1.43 12
Short cut keys
--------------
ALT F1 Automatic transmission of the password.
ALT F2 Displays the MHEARD list
(depending on the driver/TNC software)
ALT F3 Enables the monitor traffic to IUSC
ALT F4 Disables the monitor traffic
ALT F5 Set monitor traffic to U
ALT F6 Like the command ULIST L
ALT F7 Enable the file selection for file DIR
ALT F8 Display the message in the pms list
ALT F10 Turn off the new mail indicator.
CONTROL ESC or F10 Switches command<>conversation mode.
PAGE UP Activates review buffer, or if already active
displays the previous page.
PAGE DOWN Displays next page in review buffer
SHIFT UP One line up in review mode
SHIFT DOWN One line down in review mode
CONTROL PAGE DOWN Quit from review mode
CONTROL HOME Top of review buffer
CONTROL END Bottom of review buffer
ENTER In command mode: executes the command.
In conversation mode: transmits the text.
In both mode, if the revision buffer is active,
it will be disabled.
CURSOR UP Recalls the previous line from kbd buffer.
CURSOR DOWN Recalls the next line from the kbd buffer.
F1...F8 Switches to session 1 to 8
F9 Switches to the Monitor window
CTRL-F1..F10 User defined.
SHIFT-F1..F10 User defined.
CTRL_BACKSPACE Clears from cursor to the previous word.
CTRL_LEFT Moves the cursor one word to the left
CTRL_RIGHT Moves the cursor one word to the right
HOME Moves the cursor at the beginning of the line
END Moves the cursor at the end of the line
BACKSPACE Deletes char to the left of the cursor
DELETE Deletes char under the cursor
INSERT Inserts mode toggle
ESCAPE Clears the current line
CTRL-Y Deletes the current line (internal ).
TstHost version 1.43 13
Path of the files
-----------------
There isn't a particular directory for the TstHost installation,
but you MUST create, within that directory, three subdirectories
with the names: MAIL, PG, USERS.
This can be a standard installation:
\TSTHOST
|-PG
|-MAIL
|-USERS
|-UPLOAD
|-TSTHOST.EXE
|-TSTHOST.DOC
|-TSTHOST.PSW File for automatic password
|-TSTHOST.CFG Configuration file for the program
|-TSTHOST.ENT Input text when connect the pms
|-???????.ENT Selective text when connect the pms
|-TSTHOST.HLP Help file for pms
|-TSTHOST.SYS Password file for remote pms access.
|-TSTHOST.PGS List/description of the available PG server
|-TSTHOST.USR User database, managed by tsthost
|-TSTHOST.IRQ Irq identification, managed by tsthost
|-???????.ULS Unproto list file, created/used by TSTHOST
|-???????.CON Connection file for Homebbs, created by the user
|-TSTHOST.HBB Automatic routing file
|-TSTHOST.SHD Tnc configuration file when shutdown program
|-TSTHOST.CRN Command file executed every hours.
|-TSTHOST.IN Mail import file
|-TSTHOST.LOG created from TSTHOST if LOG=ON
|-TSTHOST.BID Bid file, managed by TSTHOST
|-TSTHOST.EXT File estension definition, created by the user
|-TSTHOST.MAC Macro definition file, created by the user
|-TSTHOST.DMS PMS messages database, created/used by TSTHOST
|-TSTHOST.HRT HROUTE database file, managed by tsthost.
|-DBFMSG.OLD Old messages database, created/used by TSTHOST
|-Files for source command (if you create source files)
Detailed description of files and directory:
PG - Server directory
You must place the PMS server in this directory. If this directory
does not exist, the PMS PG command does not work.
The next section of the manual describes the PG Server.
TstHost version 1.43 14
MAIL - Messagges directory
The bulletins/personal messages of the PMS will be stored in
this directory. If this path does not exist, the electronic mail
section of the PMS does not work properly.
USERS - Users directory
This is the directory that the users access with the W, YU
YD commands. This is the only path that can point to other
parts of your hard disk. If not otherwise specified, TSTHost
uses the path USERS from the directory where tsthost.exe is
loaded. You can specify any other drive/directory with the
USERDIR command.
UPLOAD - Users upload directory
This is the directory where will be stored any file uploaded by a
pms users with the YU command. If you do not create this
directory, the YU PMS command will not work.
WORKDIR - Standard work directory
The default value is the directory where tsthost.exe is loaded,
but you can select any other drive/directory with the WORKDIR
command. This path is used for the WRITEBUF, RECORD, SEND, YPUT,
YREC and MAILCOPY commands. With these commands, unless the
filename does not contain a specified drive and/or path, the
file will be accessed in the WORKDIR path. For instance,
by executing the command WRITEBUF TEXT, the contents of the
review buffer will be written in a file called TEXT in the
directory that you have specified with the WORKDIR command, but
WRITEBUF E:\ASC\TEXT will write the buffer into a file called
TEXT in E:\ASC. The purpose of this command is to separate the
tsthost files in capture, YAPP receive and the other files.
TSTHOST.IRQ - Internal interrupt detection
Due to the new interface for request data in tsthost, that use an
irq vector to request the info, program that use this new
interface must known the vector used by tsthost.
This file is created when tsthost start, and deleted when tsthost
ends, and its unique purpose is to tell the program that use the
new tsthost interface about the irq vector used by tsthost.
Internally, this file, that reside in the tsthost.exe directiry,
have only this line:
TstHostInterruptVector=XX
TstHost version 1.43 15
Where XX is a decimal number that is the irq used by tsthost. This
file is important, so never put this file READ ONLY ann never
manipulate the contents written by tsthost.
TSTHOST.USR - Users database
This sistem file is managed from tsthost, and are created in the
tsthost.exe directory. Actually, the program store in this file
only the name of the user and the date of the last connection.
This is the format:
struct UInfo
{
char call[7]; /* user callsign */
char name[13]; /* user name */
long LastConnTime; /* in sec. from 1970, last conn date */
long LastMsgList; /* date of the last message listed */
long NbrConn; /* number of connection fo this user */
long ThisConnTime; /* data at connection time */
char PrivDir[31]; /* user private directory */
char reserved[61]; /* riserved */
}; /* 128 byte every record */
TSTHOST.HBB - Automatic routing file
This simple ascii file, managed directly from sysop, have the
purpose to assign an automatic routing for all locally generated
message that do not have one. Messege that have a specified
routing will not be althered.
The format of the file is simple: Any invalid line is ignored. A
valid line have the format CALL @ BBS, where CALL and BBS are
callsign WITHOUT ssid.
If there is, for example, a line like this: IK1MSL @ IK1ZZZ, and i
write a message with SP IK1MSL @ IK1ABC, the message will not be
tuched, but, SP IK1MSL, will be transformed into SP IK1MSL@IK1ZZZ.
TSTHOST.HRT - Hierarchical routing database.
--------------------------------------------
TstHost support the hierarchical routing addressing. Any bbs have
a supplementary address that provide a more powerful addressing
method. An hierachical address may be in the form:
TstHost version 1.43 16
IK1MSL.IPIE.ITA.EU, where IK1MSL is the bbs callsign, and the rest
are the hierachical address. For any pms incoming message, tsthost
detect this address, and store it in the binary file TSTHOST.HRT.
Next, when a message need to be forwarded to homebbs, if the h-
address is known, it will be proposal to the bbs with the @ route
in order to provide a complete callsign.
Any h-address may be volatile or permanent, where volatile means
that tsthost may automatically change (default value) the hroute
reading the info from the incoming messages on the pms. If the
hroute is fixed, tsthost never change the route even detect that
an incoming message have a different hroute for that call.
Normally you do not need to manipulate the hroute file, but
tsthost provide the command HROUTE (see later) to set or change
hroute address for a specified call.
This is the structure of the TSTHOST.HRT file:
struct hroute{
char type; 0=variable, 1=permament;
char call[7]; callsign
char hroute[35]; H address;
long sx; left node;
long dx; right node;
} 51 total bytes.
The file is a binary tree, where the first entry is the radix, and
the alphabetically lower callsign are in the left node, the other
in the right node. Double key are not allowed. A variable record
is automatically updated from the information that the program
receive during the reception of a message. A permanent record is
fixed, and may be updated only from the keyboard.
TSTHOST.PSW - Automatic password file
This file contains the password for those systems that require
an access password, like BBS and node sysop.
The next manual section describes this aspect with more details.
If you do not need any password, or do not need an automatic
password, do not create this file. Anu line starting with the
'#' symbol is a remark and is ignored.
TstHost version 1.43 17
TSTHOST.SYS - Password file for PMS SYS command
This file is similar to the tsthost.psw file. The format is:
CALLSIGN_without_ssid VALIDATION_FLAG PASSWORD
every line start with a callsign without SSID, a space, a
validation flag and the user password not longer than 255
alphanumeric characters. Only the users write here may do the SYS
command. For instance:
IK1GKJ 3 aabbcc
IK1MSL 1 8873mnhbkjAST
Flag is a bit field:
1 means that user may access with the YD, W, V to any drive
and path of your system, but may YU only in the UPLOAD path.
2 is like 1, but the user may access to any disk and path also
for write a file (YU)
4 means that the user may do the DOS command.
8 means that the user may do yapp transfer even the yapp is
disabled in the pms. (command PYAPP)
16 means that the user may access to all message in the pms,
exatcly like if hi is the sysop on the keyboard. Access including
the editing of the mail header. (EM, FA, FR commands)
32 means that the user may do the shutdowm remote command /E?
In the example above, IK1GKJ may read and write in any part of
your system (1+2=3), IK1MSL instead may read in all your disk, but
write only in the UPLOAD directory.
TSTHOST.CFG - Automatic configuration file
This is an ASCII text file, that contains the command
sequence for the automatic configuration. This file will be
searched by TSTHost when started and, if present, the program
executes all the commands in the file. Every line is a
command. This file can contain any TSTHost command. Any line
starting with the '#' symbol is a remark and will be ignored.
The line length MUST not exceed 78 characters.
TSTHOST.SHD - Shutdown configuration file
Like the tsthost.cfg file, this file contains the command
sequence that is executed at the program shutdown.
TstHost version 1.43 18
???????.ULS - Unproto list file
This file is created and managed by the program. When you
activate the unproto list the program reads this file, if
present, so TSTHost can handle the message list from the last
number received. When you close the list or shutdown the
system, the program saves the content of the list in this disk
file. If this file is not found or you delete it, the program
will ask to the HomeBBS the Unproto message starting from number
one. The extension filename is always ".ULS", while the filename
is the callsign of homebbs without ssid.
TSTHOST.ENT - PMS connection text
This is an ASCII text file. When a remote user connects the
PMS system, TSTHost sends the content of this text file (if
found) to the user before the PMS command prompt.
WARNING: Do not use the square brackets '[' and ']' in this file,
because they are used for SID forward protocol.
???????.ENT - Selective PMS connection text
???? means a callsign without ssid. When an user connect your psm,
tsthsearch for the existance, in the path where are stored
tsthost.exe, of that file, and if found, it will be send to the
user instead of the standard pms text and tsthost.ent. Is
poossible create empty files: in this mode at the connect time
will be send only the pms prompt.
TSTHOST.HLP - PMS help file
This is an ASCII text file. When the remote user connected to
the PMS issues the HELP command, TSTHost sends the content of
this file to the user, otherwise sends the message 'NO HELP' if
the file is not present on the system.
TSTHOST.PGS - PMS PG server list
Another ASCII file. It can be created by the sysop according to
his requests, because it is related to the PG section. When a
user connected to the PMS issues the command PG without
arguments, TSTHost sends the contents of this file to the user, or
the message NO PG AVAILABLE if the file does not exists. This file
can be used to list and describe the available PG server programs.
TstHost version 1.43 19
TSTHOST.LOG - Connections log
This file will be created and managed by TSTHost when the
LOG command is ON. It contains the list of the connections
with callsign, date and time.
SOURCE files
These files are similar to the tsthost.cfg file, but will
be executed only when you type the command. This is useful
to activate specific configurations on demand. Any line starting
with the '#' symbol is considered a remark and is ignored.
TSTHOST.CRN - Command file executed every hours
This command file is executed, if exist, every hours. The must be
put in the same directory of tsthost.exe, and must be edit in a
pure ASCII form. NOTE: any command may be put into this file,
because tsthost do not execute any type of control, but please,
put command that have a sense!
The format is simple:
- any line starting with a # is a comment and ignored.
- any hour block start with *
- any line after the hours block is considered like tsthost
command, exactly like if the command was entered from the keyboard
- any hours block end at the start of new hours block, or at the
end of file.
- multiple hours interval may be specified in the form * HH-HH
- Line lenght must not exceeded the 80 characters.
Example:
* 12 <-- executed at 12:00
CMD1
* 13-15 <-- executed at 13,14,15
CMD2
CMD3
* 00-23 <-- executed every hours
CMD4
CMD5
TstHost version 1.43 20
TSTHOST.BID - Bid file
This is a very important file, and must NOT be altered or deleted.
The purpose of this file is to have a list of the received bid and
to store the number of the last bid used by tsthost. But what is a
BID? Simple, think to a bid like a word that unique identify a
message. Every time a new message will be created, from tsthost or
other bbs, a unique bid will be appended to the message, this to
avoid duplicate.
For example, assume that i forward the message XX to homebbs, the
message have bid YY. Next i use the command FA to force again the
forward of this message to homebbs. When homebbs receive the
proposal, it detect that the bid YY was already received, and
refuse the message.
The internal bid of tsthost are a sequential numbers and a string,
you callsign: 12345-IK1GKJ
(1->2->3->..65535->1->2 etc etc).
Now, if you delete or lose this file, you obtain 2 things:
1) will be lose the list of the received bid, this is a little
problem, at most, if you receive forward from more than one bbs,
is possible that you receive a duplicate message.
2) tsthost must restart the bid sequence, and this is a great
problem. For example, tsthost have created and forwarded ten
message, this messages have bid from 1 to 10. Now, if you delete
the file, tsthost must restart the sequence from 1, but since your
homebbs have already received bid 1..10, it will refuse any your
message with bid number under 11.
To avoid this problem, you can use the command NBID, to assign an
high value to the bid number. This is a emergency solution,
because assume that you know what was the last bid number used by
tstshost..... The best thing is to NOT DELETE or altered this
file. Pleas note that the NBID command must be used ONLY for
emergency situation, normally you MUST NOT usa this command.
When tsthost start, if the bid file do not exist, the program ask
for its creation (normally the first time you start tsthost).
Insert Y to create the file, (and if the file was lost do the
command NBID BID_NUMBER), or N to exist and provide a backup copy.
TSTHOST.BID a routing file of 3001 record. Every record is long 13
byte, and is the bid of the message (char[13]). The first record
is an exception, it have two unsigned integer number (ascii
format), separated by space; the first is the next internal bid
that tsthost will be use, the other is the first record to
overwrite into the tsthost.bid file.
TstHost version 1.43 21
TSTHOST.IN - Mail import file
This is an ASCII text file. The purpose is to allow SERVER and
PG programs to add messages to the PMS. The file
presence is tested every minute and processed, when found.
TSTHost searches in this file a sequence of SP or SB commands.
Note that you MUST use the correct syntax. When processed, a
line starting with SP or SB is searched, discarding the others. If
such line is found, the next one is considered the message title
and the others are the message text. A line starting with /EX
ends the message.
Example:
SP IK1AAA @ IK1MSL < IK1BBB
message title
message line 1
message line 2
....
/EX
SB ALL @ EU
message title
message line 1
message line 2
....
/EX
The TO field MUST be specified, the ROUTE (@) and FROM (<)
fields are optional. If the route field is specified, the message
will be forwarded to the HomeBBS. If the FROM field is not
specified, the default value of the PMS callsign will be used.
NOTE: The line length MUST NOT exceed 80 characters.
TstHost version 1.43 22
TSTHOST.DMS - PMS messages database
This is a binary file, and is used by TSTHost to maintain
the messages list in the MAIL directory. Do not alterate this
file if you do not know what you are doing!. The easiest method to
destroy all messages is to delete this file, so be careful ......
This is the tsthost.dms file structure, for those
programmers interested in writing server programs:
struct dirmes {
char type; /* type of message BPT */
char status; /* status of message NFKYHX */
long number; /* number of message */
int da_year; /* creation date, year */
char da_day; /* day */
char da_mon; /* mounth */
unsigned char ti_min; /* creation time, minutes */
unsigned char ti_hour; /* hour */
unsigned char ti_hund; /* hundredths of seconds */
unsigned char ti_sec; /* seconds */
char to[7]; /* destination, TO field */
char route[7]; /* destination BBS, @ field */
char from[7]; /* sender, FROM field */
char title[61]; /* message title */
char frombbs; /* bit field:
bit 0 =1 if received in forward, 0 if local
bit 6 =1 if the msg contain the string /ACK
bit 7 =1 if the msg contain 7plus code */
char startbbs[7]; /* BBS where the message started*/
char bid[13]; /* BID or MID of the message */
char rcvbbs[7]; /* BBS that have fwd the msg */
char free[4]; /* reserved */
}; /* total 128 bytes */
All char fields end with a 0 byte, according to the C default.
The message is decoded with the number field. The message is in
the MAIL directory: the filename correspond to the NUMBER
field and the extension is .MES. The filename is always 8 chars
long, right aligned by padding the remaining left positions with
ASCII '0's. For instance, if NUMBER is 4, the message
filename will be 00000004.MES
The message number is consecutive and, when the server
appends a new message, it has to read the last record from
tsthost.dms and increment the number field to obtain the new
message number.
WARNING: all fields in the dirmes structure must be always be
set; for instance, if the @ route is not requested, you MUST set
it, so *dirmes.route=0;
DO NOT ALTER THIS FILE WHILE TSTHOST IS RUNNING !
TstHost version 1.43 23
TSTHOST.EXT - File extension for automatic execution
----------------------------------------------------
When you do the DIR command, the contents of the directory is
displayed on the windows screen. Now, if you press the ENTER key
on a filename, tsthost will search a corrispondance between the
EXTENSION of the selected file and the contents of the tsthost.ext
file. If the corrispondance is not found, or the file tsthost.ext
does not exist, the pressure of the enter key is ignred. Instead,
if the corrispondance exist, tsthost, (if you have the needed
memory), will execute the specified ds program defined for that
corrispondance. You may execute, .bat, .com and .exe program.
The format of the tsthost.ext file is simple:
-Any line mut be long not more of 80 charactes. ONE line for ext.
-Any valid line start with a . followed by the extension and next
by the instruction to execute fot that extension.
There are two symbol that tsthost may substitute with the name of
the selected file.
1) the character "&"
For the first & found, tsthost will substitute the symbol with the
full path and filename for the selected file. The related command
is called from the tsthost directory.
2) the character "!"
For the first ! found, tsthost will subsitute the symbol with ONLY
the filename of the selected file, next change to drive and path
of the selected file, and executed the related command.
Example: current displayed directory is D:\BIN, and the selected
file is MARCO.ARJ
1) assuming to have a line like this in tsthost.ext:
.ARJ C:\UTILITY\AVIEW & /K /J
When you press return, tsthost will execute:
RUN C:\UTILITY\AVIEW D:\BIN\MARCO.ARJ /K /J
2) assuming you have a line like this in tsthost.ext file:
.ARJ C:\UTILITY\AVIEW ! /K /J
When you press return, tsthost will execute:
D:
CD \BIN
RUN C:\UTILITY\AVIEW MARCO.ARJ /K /J
TstHost version 1.43 24
THE MACRO COMMANDS
------------------
What is a macro?
----------------
First, what is macro? A macro is a sequence of command that
tsthost will execute automatically, sequentially, exactly like you
type the same commands from the keyboard. The command may be data
to send to the remote station, or command for tsthost, or macro
relative command. It is very important understantd the the command
will be executed sequentially: this means that we need some
interrupt point to stop the sequence, otherwise the macro will
never stop and continue to its end without do the request result.
Again, we are intelligent, but the macro no, macro are very
stupid, so you must instruct tsthost exactly what to do.
How start a macro? Simple typing its name in the cmd mode of
tsthost. Every time you type something that is not recognized like
a tsthost command, the program will search in the tsthost.mac file
if exist a macro with that name. If the macro do not exist, or the
file tsthost.exe do not exist, the command is simple declared
invalid. If the macro exist, the macro will be executed. A
flashing "M" will appear on the status line to display that a
macro is active on that channel.
How to stop a macro? The command is MABORT, and have a immediate
effect: macro will be stopped, and the channel remain in the state
that was at the moment in which the macro was stopped.
The macro support all tsthost command, with a little exception,
and have a subset of internal commands, valid only for macro
execution. Is possible insert also a name of another macro like
command, but in this case the new macro replace the existing one
in the execution.
The macro support command parameters, up to 8. This parameters,
are identified by the symbol %1..%8, that are translated into the
literal parameters passed from the line where the macro was
started. For example, if the macro named PIPPO, have a line like
this: 10 SAY YGET %1
and will be started with PIPPO MYPROG.ARJ, the line 10 will be
transformed into: 10 SAY YGET MYPROG.ARJ
But, if you start the macro with PIPPO without parameters, the
line will not be transformed, and will be processed literally.
TstHost version 1.43 25
NOTE:
Any line, in the macro structure, that is preceeded by + sign,
will be executed ONLY if the channel is connected. For example,
the statement +SAY ...., will be executed if the channel is
connected, skipped otherwise. SAY .... instaed, will be always
executed. Do not put space between the + sign and the command.
Macro specified command
-----------------------
NOTE: the command may be written in upper case or lower case. Some
of those command will refer to a line number: Yes, the macro have
the line number, like the basic language, but this number will be
explaned next in the relative section of the tsthost.mac
structure. For the moment, you need to know that if you refear to
a line number that do not exist in your macro, the macro will not
produce an error, but will go to the existent numeber immediately
highest of the number that you have specified. This means two
things: if the inexisted number is lower of the lowest existent
number, the macro will be restarted. If the inexistant number is
higher than the highest existent number the macro will be stopped,
beacuse you reach the end of macro.
* DELAY XX
XX is a number to specify how second the macro must wait before
process the next instruction. This is a REALLY important command
in the connection statement. For example, assuming you connect a
station, and open a record file. The record command will fail,
because you have send the command CONNECT, but immediately open
the record file. In this very little time, probably the tnc does
not have tell tsthost that the channel is conected, so tsthost
will refuse to open the file.
ALWAYS ADD A LITTLE DELAY AFTER A CONNECT STATEMENT.
* DISPLAY TEXT
Simple display the message TEXT on the screen example:
10 DISPLAY Hallo boys
* IFYAPPACTIVE XX
XX is the line number where tsthost will go if, when process this
line, there is a yapp transfer active on the macro channel.
TstHost version 1.43 26
* IFNOTYAPPACTIVE XX
XX is the line number where tsthost will go if, when process this
line, there is not a yapp transfer active on the macro channel.
* IFYAPPERROR XX
XX is the linenumber where tsthost will go if the latest executed
yapp was stopped due to an error. NOTE: reading this variable will
clear the yapp error status, so you cannot use it two or more
times. After reading the error status, you may read it again only
after a new yapp transfer.
* IFNOTYAPPERROR XX
XX is the linenumber where tsthost will go if the latest executed
yapp was succesfully terminated. NOTE: reading this variable will
clear the yapp error status, so you cannot use it two or more
times. After reading the error status, you may read it again only
after a new yapp transfer.
* IFFILESEND XX
XX is the linenumber where tsthost will go if, when process this
line, there is a file transfer active (SEND command).
* IFNOTFILESEND XX
XX is the linenumber where tsthost will go if, when process this
line, there is not a file transfer active (SEND command).
* IFUNDEFPAR PARNUMBER LINENUMBER
Jump to line LINENUMBER if the parameters PARNUMBER (1..8) is
undefined. For example, the macro PIPPO have this lines:
10 IFUNDEFPAR 1 100
20 SAY YGET %1
If started with PIPPO MYPROG.ARJ line 10 and 20 will be executed,
but if started with PIPPO without arguments, after processing the
line 10, the macro will jump to line 100.
* IFULSELECTED LINENUMEBER
Jump execution to linenumber if esist one or more messages
selected for reception in the unproto list.
* GOTO XX
XX simple is the line number where tsthost will go.
TstHost version 1.43 27
* SAY DATA DATA DATA...... [CTRL-?]
This statem,ent tell tsthost to send DATA.. to the remote station,
is like when you are connected and type something to the keyboard
in the CONV mode. DATA will be send to the remote station. You may
also use the tsthost SEND command to send long data to the remote
station.
A say instruction that start exatcly with CTRL-? Where ? is an
alphabetical character, is translated by tsthost into the
equivalent CTRL code. For example, the line 10 SAY CTRL-Z will
send the ctrl-z characters (ascii 26) to the remote connected
station. Note that you cannot use more that one ctrl instruction
for line. Again, while tsthost always append the CR carriage
return to any nomral SAY instruction, the CR is NOT appended to
the CTRL line.
* WAITSTRING TIME (LINENUMBER) STRING TO WAIT
This statement is more complex. Tsthost when process this
instruction wait for not more of TIME seconds to receive the
"STRING TO WAIT" from the tnc. If "STRING TO WAIT" was not
received in TIME seconds, the cprogram will go to the line number
specified in LINENUMBER. All field are needed in this instruction,
and () are mandatory aroud the linenumber value.
* WAITDISC [XX]
This statement simple wait until the channel is disconnected. If
the chanel is connected, no other macro line will be processed
until the channel will be free. If anything follow waidisc,
example WAITDISC X, the program wait until ALL channel are
disconnected
* WAITCONN
Simple wait that the channel is connected before continue.
TstHost version 1.43 28
TstHost.mac macro file format
-----------------------------
Another simple file in the format, more complex is write macro
that work right hi!
- Any line MUST NOT have more of 80 characters.
- Any line that start with a # characters, and any empty line is
ignored.
A macro start with its name. The macro may be executed on the
cirrent channel, or may have a specified channel: this is needed
on a multiport system, where a call, for example, may reched only
trought a specified port. If i hae two radio port in my system,
and my bbs frequency is associated on the channel 5,6,7,8m surely
i cannot connect it on the channel 3, no?
A macro stop when a new macro start or when the end of file was
reached.
To define a macro name, the line must start with the ":" character
followed by the macro name. Macro name may have not more of 20
characters, and may be followed by a number to specify which
channel will be used for that macro. Obviusly, the channel number
must not be highest of the number of channel defined for tsthost.
Here is two example:
:PIPPO
This macro will be executed on the actually current channel.
:GIOVANNI 5
This macro will be executed on the channel number 5. You may also
use channel 0, monitor, for a macro, but remember that you cannot
do connection on the monitor channel.
Any other line in the macro definition start with a line number,
that is a sort of label, followed by a space, and by the command
to execute. NOTE: line number must be in sequential up order,
tsthost do not do a sort order for the macro line number.
Ogni altra riga della macro inizia con un numero di riga, che
particamente e' una etichetta, seguito da uno spazio e dai comandi
associati a quel numero di riga. Attenzione, non potete mettere
numeri di riga fuori sequenza. I numeri devono essere in ordine
crescente, tsthost non effettua l'ordinamento.
For example: right bad
10 PIPPO 20 PIPPO
20 LUPO 18 LUPO
TstHost version 1.43 29
You may use line number from 1 to 32767. 0 cannot be used because
is an internal number, and from 32768 will be considered negative
number from tsthost and are invalid in the macro.
Pratically, a macro may have an aspect like this:
:NAME [OPTIONAL CHANNEL]
10 INSTRUCTION ...
20 INSTRUCTION ....
...
.... ETC.
TSTHOST commands not active in the macro
----------------------------------------
This commands are not available in the macro:
DIR, ULIST LIST, because open a window in tsthost, and require an
active presence on the tsthost keyboard.
SOURCE, because i cannot do a preliminary control over the
contents of a command file.
TSTHOST commands that require an detailed arguments
---------------------------------------------------
This commands, may be used in a macro structure, but require that
the arguments is specified in the command line.
SEND, YPUT, because if you do not do the arguments open a windows
that permits the directory selection.
RUN, because if executed without parameters shell to dos without
reenter in tsthost until the operator do not type EXIT to exit
from the shell.
TstHost version 1.43 30
Macro example
-------------
:PIPPO 2
10 CONNECT IK1MSL-8
20 DELAY 2
25 +RECORD POSTA
30 +SAY RM
35 +SAY KM
40 +SAY B
This is a really simple macro. It connect my bbs on channel 2,
note the delay instruction please. Next opne a record file, and
queue in the bbs the needed command to read and kill my mail, next
disconnect. All the macro, are executed in a unique time. When the
macro stop, probably the connection is again active, but all the
needed bbs command was done. When the bbs disconnect, tsthost
automatically close the POSTA file, and nexty i can examine it to
read my mail. Note again that line 25..40 are executed only if a
connection was done, due to the + sign before the commands.
Here is a more complex macro. In this macro, i assume that the
prompt of my bbs is "IK1MSL BBS =>". Again, my bbs ask for a
password with the password prompt "PASSWORD?".
>>For the password please read the relative section in the doc<<
:MSL 3
5 WAITDISC
10 CONNECT IK1MSL-8
12 DELAY 2
14 +WAITSTRING 30 (1000) PASSWORD?
16 +PASSWORD
18 +WAITSTRING 30 (1000) IK1MSL BBS =>
#
40 +YD VARIE\PIPPO.ARJ
42 +WAITSTRING 30 (100) IK1MSL BBS =>
44 +IFYAPPERROR 40
46 +GOTO 1000
#
100 +IFYAPPACTIVE 42
110 +SAY
120 +WAITSTRING 30 (1000) IK1MSL BBS =>
130 +GOTO 44
#
1000 DISC
TstHost version 1.43 31
005: wait until the channel is free.
010: connect my bbs using channel number 3. Again note the little
delay to recognize the connection. All the other line will be
executed only if connected, due the + sign on the start of
the command.
014: wait for not more of 30 seconds the password request. If not
received, sonthing is wrong. Bbs may be crashed or may be out
of program due to dos operation. In this case i will go to
line 100, where force a disconnection and stop the macro.
016: send my password.
018: and wait for the bbs prompt. Again, max time wait is 30
seconds, if in this time the prompt was not received,
assuming that something is wrong, and go to line 1000 for
disconnect and stop.
040: ask to download the file PIPPO.ARJ, that are in the VARIE\
directory, using yapp protocol.
042: wait for not more of 30 seconds to obtain the bbs prompt,
that signal the and of the yapp transfer. 30 is a little
number but do not have now a great importance.
044: when the prompt is received, if i have an error ask again the
file going to the line 40.
046: no error, so go to line 1000, disconnect and stop macro.
100: due to the statement in line 42, if after 30 seconds i do not
receive the bbs prompt, tstshost macro will jump here. First
test if the yapp transfer is again active. If is active, ask
for more time jumping again in line 42.
110: if the transfer is stopped, but i have not received a prompt,
is possible that i have an abirt yapp. fbb 515c have a ad bug
in the abotrt yapp routine: it stop to send data, but do ot
confirm the abort to the corrispondance with the correct
sequence. Due to this, 90% of case the remote station wait
for an abort ack from fbb while fbb have already stop the
yapp transfer. To avoid this, and resyncronize the
communication with the bbs, i will send an empty line, to
force the bbs to emit its prompt.
120: wait here the prompt. Again, if not received, disconnect on
1000. May be that there was not an error in the yapp, is
possible that the bbs is crash.
130: if receive the prompt, jump on line 44 to test the yapp
status.
This macro is not yet perfect. The problem is that if you continue
to receive error on the yapp transfer, the macro will
continue to ask for the file. But this is only an example,
you may surely study a macro without this problem.
Obviusly, macro, prompt, timing, password are only example, you
must insert the appropriate value for you needed.
TstHost version 1.43 32
AUTOMATIC PASSWORD
------------------
The TSTHOST.PSW file contains the passwords to use with those
systems where it is requested for the access. The file format is:
CALL STRING_TO_SEARCH PASSWORD
CALL is the callsign for the referred password. WHITOUT SSID
STRING_TO_SEARCH is the system prompt when the password is
being requested, max 50 character long with no spaces, PASSWORD
is your password, up to 255 alphanumeric characters without
spaces.
Example:
IK1MSL IK1MSL-8> abcdef
IK1MSL Password? 123456
IK1GKJ IK1GKJ-8> ABCEDF
Warning: Upper and lower case are ignored in the string being
searched, but are important in the password string.
Here are some example for the BBS prompt, that can solve any
doubt, and make you write the correct tsthost.psw. In the example,
my demo password is ABCDEF
IK1MSL-8> 11 22 33 44 55 [0123.... IK1MSL-8> ABCDEF
Password? IK1MSL-8> 11 22 33 .... IK1MSL-8> ABCDEF
IK1MSL-8> Password? 11 22 33 ..... Password? ABCDEF
IK1MSL-8> Password ? 11 22 33 .... ? ABCDEF
As you have seen, the string being searched is ALWAYS the LAST
word or characters that came before the password code.
If the BBS prompt is:
Insert your password 11 22 33 44 55
and you insert in your tsthost.psw file:
Insert your password ABCDEF
TSTHost will interpret "Insert" as the string to be matched, and
"your" as your password. This is an error! The correct form in
tsthost.psw must be:
password ABCDEF
TstHost version 1.43 33
NOTE: if you insert like call an '*', the program will not test
the equivalence between the line and the connected call, but only
the equivalence between the prompt received and the prompt in the
line of the file. So if you use this capability, make sure to put
the * lines at teh end of the file, to avoid confusion.
IMPORTANT, PLEASE READ
----------------------
This information are not valid for the automatic connection for
forward and unproto mail request, since they have a particoular
protocol.
When you do the PASsword command, or press the ALT-F1 key, tsthost
will start the serching of the password with the comparation of
the task callsign and the callsign declared in tsthost.psw
If you do direct connection, this work without any problem, but
look for this example. I connect a node IK1GKJ-7. Ok, IK1GKJ is
the task callsign. Now i send to the node, the command to connect
my bbs, IK1MSL-8, and the node connect my station with IK1MSL-8.
Now IK1MSL-8 will ask for the password, i press ALT-F1 or type
PASsword command, and tsthost emit an error message!
Why? Because for the tnc you are connected to IK1GKJ-7, not
IK1MSL-8, since the link to ik1msl was done in the NODE, and NOT
in your TNC link.
So tsthost will search an abbination for the password prompt with
IK1GKJ and not IK1MSL, and since do not found it, declare an
error. To avoid this, PASSWORD command accept a parameters; if you
do the command:
PASSWORD IK1MSL
Tsthost will ignore the connected callsign and execute a search
for IK1MSL callsign, ignoring the task call, IK1GKJ in thist
example. For frequently connection with password trought node, you
may find useful to program the related PASSWORD CALLSIGN in one of
the 20 programmable function key, to emulate the ALT-F1 short cut.
TstHost version 1.43 34
FORWARD, UNPROTO list, CHANNEL 8 and automatic password
------------------------------------------------------------
FIRST READ THIS: In this section, channel 8 is to be intended if
the program is setup for all 8 channel. If you have change the
number of available channel with the /K command, the forward-
unproto request will be done on the last available channel. For
example, if you ha start tsth with the command /K4, channel 8 here
is to be intended like channel 4.
TSTHost connects the HomeBBS for forward or unproto list on
channel 8 only. If this channel is BUSY, the program waits and
retries to connect the station when this channel is free. For the
forward, the program always calls the master BBS to allow the
reverse forwarding but the unproto list is requested only if
active and there are some selected messages.
NOTE: in a multiport system (multiport TFPCX), you MUST ensure
that the channel 8 is associated to the same port of the HomeBBS.
Again, since it is possible that the program calls the station
while you are already connected to the HomeBBS on another channel,
it is suggested to set for channel8 a unique SSID (AX25 PORTCALL
command).
???????.CON - HomeBbs connection file
-------------------------------------
This file permit to define exactly how to connect you homebbs in
order to ask for unproto messages or do forward procedure. You
need a file for any homebbs used, the name of the file is the
callsign of the bbs without ssid, the exetnsion is always .CON,
and the file must reside in the directory where is tsthost.exe.
For example, my homebbs is IK1MSL-8, so i have a file called
IK1MSL.CON
The file have this rules:
- Any line must be at most 80 characters lenght.
- Any empty line, and any line that start with # is ignored.
- Any other line must start with a valid command.
Actually, four are the supported command:
TstHost version 1.43 35
- C, tell to tsthost that this is a connection line. The format
is: C (CALL-SSID) CONNECTION COMMAND. The () are needed, and the
callsign inside is the callsign of the connection. CONNECTION
COMMAND is the command to perform in order to connect that
station.
- S, change the answer return prompt on the connection command.
This is normally used only for that node that do not have standard
return messages. Normally all node return CONNECTED in case of
right connection, or FAILURE or BUSY in case of a failed
connection. This messages are already defined internally to
tsthost, and do not need to be redefined. But some node may
return, for example, CONNE instead of CONNECTED, ECHEC instead of
FAILURE, OCCUP instead of BUSY. The command:
S CONNE ECHEC OCCUP
advise tsthost that from this point all the connection messages
will have that messages. The redefinition will remain active until
a new redefinition will be made.
ALL 3 PARAMETERS MUST BE SPECIFIED.
- L COMMAND VALUE, This command is used to setup particoular
parameters in the TNC. All data after the L command is sent to the
tnc, like command. The command must have the WA8DED host sintax,
parameters modified have effect only on the connection channel,
and will be restored to the orginal value at the end of the
connection.
- $ PASSWORD PROMPT. If you bbs require a password to access it,
you may define here the password request prompt. This is the
oldest HPASPROMPT command. For more details about automatic
password, and configuration file, see the related section.
Here is some example, referred to my homebbs IK1MSL-8, so to the
file IK1MSL.CON:
#bbs may be reached directy, so
C (IK1MSL-8) C IK1MSL-8
| | |
| | |--from here to end the connection command.
| |----------callsign of the connection
|---------------tsthost command
TstHost version 1.43 36
#bbs is reached directly trough digipeaters
C (IK1MSL-8) C IK1MSL-8 VIA IK1ABC IK1QWE
#More complex, bbs need node and digipeaters to be reached.
#First, i need to connect the node IK1AAA-7
#
C (IK1AAA-7) C IK1AAA-7
#
#now, i need to connect the node IK1PIP-2, but here i have some
#problem. First, the node AAA-7 do not use the C command to
#connect, but use X. Next, the return message for busy is not BUSY
#but OCCUP, the other messages are standard.
#
S CONNECTED FAILURE OCCUP
C (IK1PIP-2) X IK1PIP-2
#
#Ok, now i may connect my homebbs IK1MSL-8, but warning. PIP use
#standard connection messages, so i must first redefine the
#previously altered messages. PIP do not heard directly ik1msl-8
#so i need to use the digipeaters IK2DED
#
S CONNECTED FAILURE BUSY
C (IK1MSL-8) C IK1MSL-8 VIA IK2DED
#This bbs may be reached directly, but require a password to
#access it. Password prompt is PASSWORD?
#I will use maxframe 3 for this connections.
#
L O 3
$ PASSWORD?
C (IK1MSL-8) C IK1MSL-8
TstHost version 1.43 37
FORWARD protocol
----------------
The PMS can forward with a master BBS according to the standard
MBL/RLI or FBB COMPRESSED protocol. Any BBS may connect the PMS
and forward data, but the PMS will send the message only to
the BBS defined with the HOMEBBS command.
The PMS will send to the HomeBBS all the messages that have
a specified route set ( @Field not blank), and locally created.
If a received message has been forwarded by another BBS, it
will be forwarded to the connected BBS only if the callsign
of the connected BBS is not the same of the callsign stored in
the RCVBBS field.
For personal messages, they will be forwarded only if the
addressee of the message has not read it.
In the message list, the letter 'L' near the type/status of the
message shows that this message was written locally, otherwise
the message was received by the forwarding activity.
You may always connect Home Bbs and send your mail, but to have
forward, you must be enabled from the sysop of the bbs. So contact
the sysop and ask for this feature, if you are interesting.
To do this, the sysop of Home Bbs must:
1) Create a forward file like this:
#
A IK1GKJ
P B
R
B IK1GKJ
F IK1GKJ
C C IK1GKJ
----------
#
If you also need the @AMSAT messages, the sysop must add
the G AMSAT statement after the F IK1GKJ line
2) Edit the BBS.SYS file, and add your CALLSIGN to the list
3) Edit your record and change the bbs field, now it must be set
not to bbs callsign, but to YOUR callsign. (NH command.)
This info is for fbb type bbs, i do not know how work the other
sotware.
TstHost version 1.43 38
Problem to connect for UNPROTO and FORWARD
------------------------------------------
TstHost use to call homebbs for fwd or unproto message a simple
protocol. First, will be connected the bbs, always on the channel
8, using HNode if set, or directly. Next TstHost wait until
receive the from the BBS, the SID and/or PASSWORD request, the
order is not rilevant. But the SID must be received, (sid is the
string [FBB-5.15-ABFHM$] or similar). The program MUST receive
this string, because from the sid the program can detect the type
of protocol to use.
Now, tsthost wait for a bbs prompt. When the bbs prompt is
received, the sequence is completed, and forward or unproto list
request may started.
The bbs prompt, is a char > at the end of a line. This may do a
problem on some bbs, since many sysops have set the char > into
the welcome text on their bbs. In the normal connection this is
not a problem, but with a remote protocol yes, because if tsthost
receive this character, it think that it is the bbs prompt, and
the sequence was not corrected.
For example, if the bbs welcome text have a line line this:
HALLO MARIO, FOR HELP TYPE THE COMMAND >
surely you will not be able to start fwd or unproto, because the
character > at the end of the line confuse tsthost.
But, this line, HALLO MARIO, TYPE > TO HELP, do not do any type
of problem.
If you have this problem, you may ask to the sysop bbs to set you
like a real bbs. The bbs never send text to real bbs, but when
connected send only the prompt (or password request).
NOTE: If you cannot start fwd o unproto list, and cannot solve the
problem, to obtain help, please switch on the fwd channel,
manually start a fwd or unproto request, and when disconnected, do
the command WRITEBUF ABC. Next send me a message whit the contents
of the ABC file, so i can examine it.
Another common problem, using FBB compressed mode forward only, is
that when your homebbs must send mail to you, its send FF and mark
the message like forwarded. This is a bug into fbb, to solve, you
must connect your homebbs, and set your default bbs to your
callsign, with the command NH YOURCALL
TstHost version 1.43 39
PMS INTERFACE
-------------
Every channel of the software is a PMS and a normal connection
channel at the same time. All non-connected channels are set by
default in PMS mode. This means that a remote user that connects
your station will operate in PMS mode.
But, if YOU issue the Connect command, the channel becomes a
normal conversation channel.
There is an exception to this. When the software starts, if one
or more channel in your TNC are already connected for any
reasons, they are conversation channels, not PMS. The reason is
that it is impossible to know if those channels have been
connected by us or by a remote user.
You can switch from PMS or NORMAL channel mode with the
commands TALK (from PMS to NORMAL, for example after a chat with
the remote user), and PMS (from NORMAL to PMS). You cannot
switch a session if the task is not stand-by. The PMS cannot be
executed if there is an active file transfer on the channel (YAPP,
send or capture). A TALK command has no effect if the PMS on
that channel is processing a user command.
Moreover, you cannot switch a window to conversation mode that is
already active in PMS mode. This is correct because you cannot
chat with a user, or your text will interfere with his PMS
activity. You have to switch to TALK mode before chatting.
MAIL WORD FLASH IN SCREEN
-------------------------
When a new mail for you arrive on the pms interface, the word MAIL
will flash in the screen.
To stop flashing, you MUST press ALT-F10 key or do the LM command
from KEYBOARD; i have used this soluction for two reasons:
1) TSTHOST.DMS is not in memory, and scan it to see if your mail
is already read cost some time.
2) a PIRATE user may connect your pms with your callsign, read
your mail, and next kill this message. I case 1) the line will
flash off, and you do not see that new mail was arrived. With this
system, you may note that mail is arrived, even if that mail was
killed or read.
TstHost version 1.43 40
PRIVATE DIRECTORY FOR PMS USERS
-------------------------------
For any user connected to the PMS interface is possible define a
private directiry with the utility program MAINTUSR, provided with
TstHost. The user that connect your pms if have defined a PRIV
directory will may access it with the virtual drive prefix P: The
user will access to any subdirectory of the priv, but not to an
eventually upper directory. For example, assuming exist this tree:
C:\TSTDATA\PRIV\LEVEL1\LEVEL2
Is defined like priv dir C:\TSTDATA\PRIV for IK1GKJ, and
C:\TSTDATA\PRIV\LEVEL1 for IK1MSL.
With the prefix P: (es YD P:xxx) IK1GKJ will access to
C:\TSTDATA\PRIV, LEVEL1 and LEVEL2.
while IK1MSL will access only to C:\TSTDATA\PRIV\LEVEL1, LEVEL2.
NOTE: Even is possible (BUT NOT RECOMENDED) to use MAINTUSR with
tsthost active, if you change a path for an user already connected
to the pms, the new path will not became active until the user
disconnect and reconnect.
THE SERVER
----------
What is the server? The server are programs com or exe that must
be exist in the tsthost.exe directory. When a personal message
arrive to your pms interface, and tsthost detect a server (see
SERVER command), tsthost copy the contents of this message to a
file, next execute the related com or exe file and pass like
argument the name of this file. This is a standard forward file,
so the first line will contain SP SERVERNAME < IK1AAA, next line
will be the title of the messages, next to end the contents of the
messages. Server may do anything, but any return message from the
server to sender must go into the tsthost.in file. When the server
stop the execution, control return to tsthost, messaged copied
will be deleted, original message will be put into K state.
Remember that will server are running, tsthost is stopped.
TstHost version 1.43 41
PG SERVER
---------
The PG servers are programs written to expand the capability of
the software. They MUST be placed in the directory PG, one level
below the location of tsthost.exe. As the system is inactive
while executing the PG servers, they must be small and use the
minimum machine time. The displayed image is saved during the
program execution. The server must NOT access the video RAM
directly.
The server receives the following command-line:
argv[0] Drive\path\servername;
argv[1] Callsign of the user, with ssid
argv[2] Server level, 0 the first call, up to 255 the next.
argv[3...] User-specified parameters, each word is a separated
argument.
The server data output (with printf() and putf()) is transmitted
to the user.
The server may return:
0 - The output of the server is sent to the user and returns
to the PMS prompt
1 - The output of the server is sent to the user and the server is
called again. Level incremented
2 - The output of the server is executed like a PMS command, and
the user is reconnected to the PMS interface.
3 - The output of the server is executed like a PMS command, and
the server is called again. Level incremented.
4 - The output of the server is sent to the user and the server is
called again. Level NOT incremented.
128..255 - The output of the server is sent to the user and the
server is called again. The level will be set equal to the PG
return code
NOTE for 2 and 3: The output must be maximum 80 chars long,
and must start at the line beginning; the line must NOT start
with a carriage return or line feed. The server must NEVER
return another PG command.
TstHost version 1.43 42
For instance, this is a very simple ECHO server that returns to
the user all he have typed, until the user types BYE:
#include
#include
main(int argc, char **argv)
{
int i,mode;
sscanf(argv[2],"%d",&mode);
if(!stricmp(argv[3],"BYE") && mode)
{
printf("\nBest 73\n");
return 0;
}
printf("\nHallo %s, you have send:\n",argv[1]);
for(i=3;i CALL List all messages for CALL
L@ ROUTE List all messages for that route.
LS STRING List all messages that have STRING in the title.
LM List all my messages
LN (FKHYX) List all messages in status N,F,K,H,Y,X
LQ List all messages not yet forwarded.
LP List all P messages
LB List all B messages
LT List all T messages
To activate the message window, do the appropriate list command.
The window will display the related messages, next you may move in
the window withthe classic cursor movement keys: UP, DOWN, HOME,
END, PAGE UP, PAGE DOWN. The ESCAPE key will end the session.
In list mode, you can edit, change status or type, read or reply
to a messages...... Simple move the highlited bar on the
intersting messages and press one of thos combination of keys:
ALT-I The more complex, is used to change status, title,
destination etc... To move around the fields, use the TAB
or RETURN keys. To end the operation, move to the
field and press RETURN. ESCAPE will abort the operation.
ALT-H If the message is in H state, will became N, otherwise it
will be change in H state.
ALT-K Kill the message. No other operation is available.
TstHost version 1.43 49
ALT-F All the messages in N state that do not have a routing,
will be add to forward list queue. For any other case, if
the status of the message is N it will became F, otherwise
change to F state.
RETURN Read the message
CTRL-RETURN Read the message, but with the RLINE expanded.
NOTE: while reading, you can move into the message with the
classic direction keys. Press ESCAPE to end the reading session
and return into the list window.
ALT-E Edit the message.
ALT-R SEND REPLY, make a return message to the sender of the
selected message.
CTRL-R Like ALT-R, but will put the contents of this message into
the text of the reply message.
ALT-C SEND COPY, make a copy of the message.
ALT-M Mailcopy, to copy/append the the highlited mail to a file.
NOTE: ALT-R, CTRL-R, ALT-C, ALT-M open another window in the
screen. In this window you may specify a filename to add at the
end of the new message. If you do not need to add external file,
simple press enter on the empty field. Instead, if you need to add
file, type here the name. If the filename do not have a specified
path, this file will be searched in the WORKDIR directory. If you
do not remember were is the file, you may press the F2 key, that
open another window for a selection from a list.
The ALT-C command also have to specify the address and optionally
the destination bbs for the message. Use tha TAB or RETURN key to
move in the field.
ESCAPE always abort the operation.
While editing the message, the internal editor do any type of
movement with the direction keys and ist combination with the
CONTROL KEY. CTRL-Y delete a line. Press F2 to end the editing, or
F8 to abort. At the end of the edit session, you will enter again
in the list window.
TstHost version 1.43 50
* K
For more simplex operation, killing of the message may be done
also directli from the keyboard. K command accept all estension
provided for the L command.
* S CALL [@ ROUTE] [+FILENAME]
* SB CALL [@ ROUTE] [+FILENAME]
* SP CALL [@ ROUTE] [+FILENAME]
* SR[R] MESSAGE_NUMBER [+FILENAME]
* SC MESSAGE_NUMBER CALL [@ROUTE] [+FILENAME]
The 'SP' sets the message to Personal, that means that only the
addressee can read the message. The 'SB' sets the message to
Bulletin, that means that anybody can read the message. If the
'SB' or 'SP' are not expressly specified, (the 'S' command), the
program assigns the 'P' mode for any valid CALL, otherwise the 'B'
mode.
SR automatically replies with a P-type message to the sender of
the specified message number. The title of the message will be
"Re:" and the title of the original message.
SRR work like SR, but insert in the editor a copy of the contents
of message_number
SC send a copy of the specified message number to CALL.
During those command, you cannot switch the task, but you
must terminate the message editing session. If +FILENAME exists,
the content of the specified file is appended to the end of your
message. If FILENAME has a drive/path specification, the file is
read from the selected location, otherwise it will be searched in
the WORKDIR path.
TstHost version 1.43 51
PMS COMMAND FROM KEYBOARD
-------------------------
* ACK [H | Y | N]
This command enable the ack of any message received that contain
the string /ACK in the first column of oe of the line of the
received messages. The ack is like a return answer confim that
your pms have received the message. The confirmation of the
reception of the message is automatically returned to the sender
of the message.
Y enable the ack function, N disable, H make the ack message, but
put it in held state, this means that the ack message is locked,
and will not be returned until you unlock it.
* BMail [ON | OFF]
Enable disable the MAIL FOR section in the beacon. If enable, will
be shown a list of callsign for which exist mail in the pms.
* BReak [callsign | ALL] text
Send text to the callsign connected on PMS. Using ALL instead of
callsign will send text on all PMS connected users. The break will
be send only for the pms station that are in idle state.
* CH8RESERVED ON | OFF
If on, the channel 8, (or the latest channel available if you have
start tsthost with channel limitation parameter), may be connected
only by homebbs or halias
* ENdmessage filename | OFF
This command defines a file that will be automatically added at
the end of any message written with the S?/SR functions of the
PMS. If the S?/SR command already have the +FILENAME extension,
first will be added the FILENAME contents, then the ENDMESSAGE
contents.
OFF Disables this function.
If ENDMESSAGE does not have a specified path, it will be searched
in the program directory.
TstHost version 1.43 52
* EXPORT N | F
This command export to a disk file called EXPORT.FWD the messages
that normally will be forwarded to homebbs. The file format is the
standard MBL-RLI forward type.
N means that the messages are exported and not marked F
F means that the messages are exported and marked F
* FBbmode ON OFF
Enable (default) or disable the fbb compressed forward mode. This
type of forward require about 32 kbyte of memory for the
compression routine, if the program do not found enough memory to
start the compressed forward, automatically switch to the MBL/RLI
forward type.
* FREverse ON OFF
Enable (default) or disable the reverse forwarding. If freverse is
OFF, tsthost will call homebbs ONLY if there are mail to send in
the pms. With freverse ON, tsthost will call homebbs for
forwarding even if there are not mail to send.
* FTIME 0..60 minutes
Every FTIME minutes, the PMS will connect the master BBS asking
for the forward. Any value below 5 disables the function, and
the forward is performed only if the HomeBBS calls your station.
* FWD
Manual start of the forward with the HomeBBS.
* HAlias CALL-SSID
To define an extra callsign that will be considered like a homebbs
when connected.
* HIeraddr TEXT | OFF
Is a field of max 23 characters, used to define your hierarchical
address, for example .IPIE.ITA.EU
OFF disable the function. This field, if present, is used with
RLine command.
TstHost version 1.43 53
* HOmebbs CALL-SSID
Defines the BBS where the PMS messages have to be transmitted,
those with the routing field (@) set. SSID must be specified, as
IK1MSL is different from IK1MSL-8. For example:
HOMEBBS IK1MSL-8
NOTE: if you change HomeBbs callsign, and the unproto list is
active, the list for the previsuly homebbs will be closed and will
be open a list for the new homebbs.
* HRoute CALL [/V | /P ROUTE]
This command set or display the hroute address for a callsign.
Given in the form HROUTE CALL, display the h-address for that
call, if known, reading the file tsthost.hrt.
Given in the form CALL /V (or /P) ROUTE set or change the haddress
for that callsign. /V means volatile, tsthost may change the
hroute if detect a new hroute for that callsign. /P means that the
route is fixed, and cannot be changed automatically from tsthost.
If the ROUTE paameters is not provided, the call will be set or
changed to an empty haddress, if the ROUTE parameter is provided,
the haddress are set for that call with the specified route.
* LBHeld ON | OFF
Any bulletins locally generated will be put in status HELD. This
meand that only the sysop and the sender of the message may accest
to this mail.
* LPHeld ON | OFF
Like LBHELD, but works on personal mail
* MAIlcopy [number... IK1GKJ @IK1GKJ] [filename]
Append to filename any valid combination of the specified
arguments. You may specify a list of number, a sender callsign if
preceeded by <, a destination callsign (>), a routing (@) or any
comabination of those parameters. The latest arguments must always
be the fil were append the messages. If file name does not have a
drive/path specification, the file will be written in the workdir
directory.
TstHost version 1.43 54
* MSGHEADER ON | OFF
Enable/disable the pms message header, (TST HOST .... LOCAL TIME
.....)
* NBID bidnumer (1...65535)
To assign a new bid start sequence. DO NOT USE THIS COMMAND IF YOU
DO NOT KNOW WHAT YOU ARE DOING!!. Read TSTHOST.BID section before.
If you do this command without parameters, simple will be
displayed the next internal bid number.
* PMS
The current task is switched in PMS mode, for instance after a QSO
with the remote user that called you. The user returns to the PMS
prompt. You cannot switch if you have any active file transfer in
the channel (YAPP, record, send). See the TALK command.
* PYAPP [ON | OFF]
Enable disable yapp function of pms.
* RIng [ON | OFF]
Ring work with the PMS command T, used by an user to call the
sysop. If ON (default), calling sysop is enabled, if OFF no.
* RLine ON | OFF
If ON, when your PMS forward a message, your R: line will be added
to the message, if OFF no. WARNING: with RLine ON, you will be
considered exactly like a regular bbs, so, if a user use a command
SR on your mail, the return address will be YOURCALL@YOURCALL
insted of YOURCALL@YOURHOMEBBS. If @YOURCALL is not defined in the
homebbs and/or adiacent bbs inhis forward file, mail sent to you
vill never arrive to you, this because you are not a bbs in the
regular path. Whit off this is not a problem, because your mail
will be returned to your homebbs, and homebbs is know in the path.
But, some server have the capability to communicate one to another
trougth the RLine, and in this case, if you do not enable RLine
this type of server cannot work properly. So see you need.....
TstHost version 1.43 55
* SAvemsg +/-TOFIELD +/-@ROUTE +/- CALL List all messages for CALL
L@ ROUTE List all messages for that route.
LS STRING List all messages that have STRING in the title.
LM List all my messages
NOTE: Any users have access to all bulletin and personal
messages addressed to his callsign or that he have sent. Killed
messages will never be listed.
XR work exactly like R, but while R compress the R line like fbb,
XR display those line completely.
* B
Disconnects the system.
* DOS DOS_COMMAND
If enabled, TSTHost executes the specified DOS command.
TstHost version 1.43 58
* I
List the users connected to the PMS interface.
NOTE: Only the stations connected to the PMS are listed. Channels
not in PMS-mode are not listed. Display also the available virtual
drive.
* N NAME
Register your name.
* PG [[NAMESERVER] SERVER PARAMETERS]
If called without arguments, the program sends to the user the
contents of the file TSTHOST.PGS, if exist, otherwise sends NO
PG AVAILABLE. In this way it is possible for the sysop to have
some PG servers not declared. A user will not execute the servers
but the sysop, or a restricted group of users, can easily
activate these extra services.
If the server name parameter is specified, the program executes
the specified server. The output of the server is sent back to
the user.
* SYS
When the user performs the SYS command, his callsign will be
searched in the TSTHOST.SYS file, and, if found, the system
requires a password, codified with the standard five letters and
also with the MD2 system. The user may answer with one of the two
modes. If the user enters the corrected password, to the user will
be assigned some privileges, specified in tsthost.sys file by the
flag parameters. See tsthost.sys section for info about flags
The password prompt is the PMS callsign without SSID, with _PMS>
and the password request, like:
IK1GKJ_PMS> 5 1 3 7 6 [0123456789]
To cancel previusly authorization, you may repeat the sys command
and do a bad or null password. If you change the flag in
tsthost.sys while a user with a valid authorization is connected,
the new flag will not have effect until the current authorization
will not be cleared.
TstHost version 1.43 59
* S CALL [@ROUTE] * SB CALL [@ROUTE] * SR MSG_NBR
* SP CALL [@ROUTE] * SC MSG_NBR CALL [@ROUTE]
Stores a message into the PMS. SB is for bulletin messages, SP
for personal mail. The field @ROUTE is optional. If specified,
the message will be forwarded to the specified HomeBBS. If the P
or B types are not expressly specified, the program automatically
assignes the P type for any valid CALL, otherwise the B type.
SR replies a P-type message to the sender of a specific message.
SC send a copy of message number # to call.
To terminate the message editing, send CTRL-Z or /EX in the first
text column.
* T
Calls the sysop of the connected PMS. You are always connected to
the PMS interface until the sysop do not switch it in TALK mode.
* V FILENAME
Display to the users the contents of an ascii file. File must be
in USERSDIR or its subdirectory.
* YD FILENAME
Sends to the user the specified file using YAPP protocol. The
file must be in the USERS (USERDIR command) directory or its
subdirectories.
* YU FILENAME
TSTHost receives a file from the user, with the YAPP protocol.
The Resume option is always enabled, so if the transfer stops for
any reason, the user can reconnect the system and restart the file
transfer from the point where he was arrived. The file will be
put in the USERS\UPLOAD directory.
After any succesfull or interrupt transfer, the system will advise
the sysop with a mail on the pms that a new upload was done.
* W [PATH]
Display the contents of the USERDIR directory.
* ?
Sends to the user the contents of the TSTHOST.HLP file. If this
file do not exist, the user receives the message NO HELP
AVAILABLE.
TstHost version 1.43 60
* @ [CALL | ALL] TEXT
Interrupts the user CALL, that must be connected to the PMS
interface, by notifying the TEXT message. If you use ALL like
callsign, the break will be sent to all pms channel.
* /EW /ER /ED /E@
The command permits a remote shutdown, and the WRD@ characters
work like in the keyboard EXIT command. To do /E? remote command,
the users require a SYS validation with the value of 32 present in
the TSTHOST.SYS file.
TstHost version 1.43 61
UNPROTO LIST
------------
When a FBB BBS receives a new message, emits a special Unproto
frame with the message description. Also, it is possible to get
the BBS message list without connecting the system.
With those features, a user with the PC active all the day can
receive and maintain the list of the messages present on the BBS.
It is not needed to connect the BBS to get the message list, too.
To use this feature you must be enabled on the BBS system so, if
you need the Unproto list, contact the Sysop.
Even if you are not enabled, the program can create a list by
intercepting the Unproto messages, but cannot resyncronize with
the BBS system if a packet is lost.
NOTE: to use the unproto list, monitor channel must be open for
the Unproto frames, letter U. AX MON U, AX MON US, AX MON UC,
AX MON USC are correct, some other modes without the 'U' aren't !
The Unproto list can save in memory up to 800 message headers, but
to avoid memory consumation, you may specifi the unproto size via
the /U command line parameters.
The HOmebbs command sets the BBS from which the Unproto list is
accepted. You must specify the callsign SSID, because IK1GKJ is
different from IK1GKJ-8.
You can set up to 20 fields that are automatically selected when
received, like is possible to set up to 20 fields that will not be
inserted in the list. The list can be obtained without user
operations, or by issuing a special command (please read the
section about channel 8 on the manual), even if the BBS requires
an access password. Unproto list is transferred with the
compressed FBB protocol. This protocol requires about 19K of RAM
for the message decoding.
The received files are then put into the PMS interface, and me
next view with the L command, that access to the pms function of
tsthost. The received file have the same proprierty of the
standard file received in forward, so may have /ACK, SAVEMAIL
function etc...
TstHost version 1.43 62
Unproto List is directly connected with the HomeBbs callsign,
since is this callsign that generate the unproto frame. The
information received by tsthost, is stored in a file that have
".ULS" like extension, and the call without ssid of your homebbs
like name. File is stored in the tsthost.exe directory. So is
simple have multiple unproto list. If you receive for example, two
list, from two bbs, when you change homebbs tsthost change the
list information, and are ready to work with the other bbs.
IMPORTANT NOTE
--------------
Some programs allow the use of unproto frames with the poll bit
set, that is not a problem for the Unproto list. However, in
certain conditions, this can become a problem.
For instance, you are connected to your HomeBBS on channel 1.
TSTHost emits a Sync Unproto frame towards your HomeBBS, for
the Unproto list. The HomeBBS, when receives the Unproto frame
with the poll bit set, returns you a DM frame. This is correct
since your monitor channel is not connected.
But your AX25 interface receives the DM frame , and then it is
redirected to the channel 1 where you are connected, to disconnect
the link. In this case you are disconnected by your TNC, while
for the BBS you are still connected.
To avoid this problem, TSTHost starts by sending the @U0 command
to disable the poll bit in unproto frames. Maybe some Eproms or
Driver do not recognise the command (as far as I know, only TFPCR
v2.10) and if the Eprom/Driver starts with the poll bit set you
cannot fix the problem so you'll be randomly disconnected by the
system.
TstHost version 1.43 63
UList Subcommands
-----------------
Use these commands after the ULIST prefix, for instance:
ULIST QUERY 122
* Autoselect +/-TO_Field +/- CALL all addressed to call
UL L< CALL all send from call
UL L@ ROUTE all with the specified route
UL LS AABB all that have AABB in the title
UL LX all the messages in X state
UL LQ all the messages market to be received (*)
UL LR all the message received
UL LN all the new arrived messages
Note: The commands LX LQ LR LN are static, so do not follow the
really list status, but reflect the status of the message when the
UL L command was done
In the unproto list window, the key + select all message present
in the list for reception, the key - deselct all the messages
selected for the reception, useful for selective list.
* Merge filename
The purpose of the command is to merge the contents of the unproto
list in memory with an unproto list on a file. In this manner, is
possible make server, program, or other, that transform the
standard bbs connection list, to an unproto list compatible.
The union work in conjunction with all the filtering selection for
the active unproto list, autoselect, notselect, pmsg..... Filename
will be searched for default in the workdir, if a path is not
directly specified.
Order, or not order, for the message in the merge file are not
important, they will be sorted with the unproto in memory. But the
file must have a unproto format compatible, data must be stored
exatcly like if they was received via radio.
TstHost version 1.43 65
Here is the format for the unproto list, and the format for our
file. Lines cannot have more of 80 characters, any line invalid is
discarded, any valid line have the form:
NUMBER TYPE SIZE TO [@ROUTE] FROM DATE TITLE
| | | | | | | |--title of the message
| | | | | | |--date of the msg, es:DDMMYY
| | | | | |--call of the sender without ssid
| | | | |--routing, optional, no ssid
| | | |--addressee of the message, without ssid
| | |-- a number, is the size of the message.
| |-- type, a characters, may be P,A,B,T
|-- number of the message.
Right example:
123 P 3214 IK1GKJ@IK1MSL IK1VCQ 110293 TEST
124 B 1233 TUTTI @ITA IK1MSL 110293 TEST 1
125 P 12345 IK1MSL IK1GKJ 110293 TEST 2
You must do the right number of element and correct spaces
* Not +/-TO_Field +-IK1GKJ @IK1GKJ] [filename]53
* MSGHEADER ON | OFF ....................................54
* NBID bidnumer (1...65535) .............................54
* PMS ...................................................54
* PYAPP [ON | OFF] ......................................54
* RIng [ON | OFF] .......................................54
* RLine ON | OFF ........................................54
* SAvemsg +/-TOFIELD +/-@ROUTE +/-