home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 8
/
CDASC08.ISO
/
VRAC
/
THP111.ZIP
/
TINYHOST.DOC
< prev
next >
Wrap
Text File
|
1993-08-10
|
98KB
|
2,375 lines
TINYHOST
V 3.31
10 August 1993
Copyright (C) 1991-93 by Bruce A. Krobusek
A small, personal, Host / BBS program for
IBM PC's and compatibles
Created by : Bruce A. Krobusek
5950 King Hill Drive
Farmington, NY 14425
TinyHost BBS : 716-924-4193
CompuServe : 74106,1335
1.0 INTRODUCTION 1
1.1 What is TinyHost? 1
1.2 Why TinyHost? 2
1.3 What is a SysOp? 2
1.4 Quick Start 3
2.0 INSTALLATION and SETUP 3
2.1 Host System Requirements 3
2.2 Connecting System Requirements 3
2.3 Installation of TinyHost 4
2.4 Running TinyHost 4
2.5 Modem Requirements 4
2.6 Modifying the TINYHOST.CFG File 5
2.6.1 Descriptor Summary 6
2.6.2 Communications Specific Descriptors 6
BAUD - Beginning baud (bps) rate 6
CARRIER - Monitor Carrier Detect select 7
HANGUP - Modem hangup string 7
INIT - Modem initialization string 7
IRQ - COM port IRQ select 8
ISDN - ISDN support select 8
PORT - COM port to be used 8
RESET - Modem reset string 8
RINGBACK - Ringback mode select 8
2.6.3 Security Level Descriptors 8
ACCESS - Directory access security level 8
BOOT - Warm boot security level 9
CHDIR - Change directory security level 9
DOWNLOAD - Download security level 9
OVERWRITE - File overwrite security level 9
PRIVATE - Private message security level 9
PUBLIC - Public message security level 9
SHELL - DOS Shell security level 9
SYSOP - SysOp security level 10
TYPE - Type (display file) security level 10
UPLOAD - Upload security level 10
UPLOAD_DIR - Default Upload directory 10
USER - User account information 10
VIEW - View User List security level 11
2.6.4 General Descriptors 11
CHAT - Chat mode default 11
DBUG - Debug information enable 11
EVENT - Event time 11
EXTERNAL - External protocol definition 11
LOG - Log file enable 11
SCRNSAVER - Screen saver timeout 11
SOUND - Local sounds On/Off 12
START - TinyHost start-up directory 12
2.7 Setting up Access Levels 12
2.8 Setting up a Default Upload Directory 14
2.9 Custom Display Files - Welcome, Bulletin, and Logoff 14
3.0 OPERATION 15
3.1 Ringback Operation 15
3.2 TinyHost Operation 15
3.3 File Oriented Commands 17
3.3.1 File Transfers 17
3.3.2 Changing Directories 17
3.3.3 List Directory 18
3.3.4 Typing out a File 18
3.4 Message Commands 18
3.4.1 Reading Messages 18
3.4.2 Entering a Message 19
3.4.3 Editing a Message 19
3.4.4 Killing (Deleting) Messages 20
3.4.5 Viewing User List 20
3.5 Miscellaneous Commands 20
3.5.1 Expert Mode 20
3.5.2 Operator Page 21
3.5.3 Shelling-to-DOS 21
3.5.2 Executing a Warm Boot 21
3.6 Command Chaining 21
3.7 User Inactivity and Disconnects 22
3.8 Quitting a TinyHost Session 22
4.0 ADVANCED TOPICS 22
4.1 General Notes 22
4.2 ISDN Support 22
4.3 External Protocols 23
4.4 Shelling-to-DOS 24
4.5 High-Speed Modems 25
5.0 TROUBLESHOOTING TIPS 25
5.1 General Comments 25
5.2 System Hang (Lockup) 26
5.3 Error in User Account 26
5.4 Modem Fails Reset 26
5.5 Modem Fails Initialization 26
5.6 Phone Call Not Answered 27
5.7 Garbage After Connect 27
5.8 Immediate Connect and Logoff 27
5.9 Garbage During Logon 27
5.10 Added Message Not Displayed 28
5.11 THREMOTE.BAT Not Found 28
5.12 TinyHost Doesn't Hangup 28
6.0 MISCELLANEOUS INFORMATION 28
6.1 What is Shareware? 28
6.2 Distributing TinyHost 29
6.3 License Information 29
6.4 Warranty Information 29
6.5 Program Support 30
6.6 New User Logons 31
6.7 Message File Format 31
6.8 Logging User Activity 32
6.9 SysOp Specific Notes 32
6.10 Using TinyHost with DesqView 32
6.11 Known Program Limits 32
6.12 TinyHost Plus 33
Brand and product names used throughout this document are
trademarks or registered trademarks of their respective holders.
1.0 INTRODUCTION
1.1 What is TinyHost?
TinyHost is a small, personal, Host / BBS program I have
developed for IBM PC's and compatibles. It permits the transfer
of files (using modems) between two computers without the
requirements or overhead of other programs, particularly the
full-fledged BBS programs.
TinyHost has the following features:
* Operation can be via COM1, COM2, COM3, or COM4 using a
Hayes compatible modem, and at rates of 300 to 115.2K bps.
* Selectable IRQs for non-standard COM port interrupts.
Supports IRQs 2, 3, 4, 5, and 7.
* Supports XModem, XModem/CRC, and 1K-XModem (sometimes
called YModem) as internal file transfer protocols.
* Up to 6 external file transfer protocols can be
implemented.
* Supports up to 100 users (registered version) with 11
security levels. The Shareware version supports up to 10
users.
* Supports Ringback mode, which permits easy use of a voice
phone line for data communications.
* A text file that resides on the host system can be viewed
without downloading.
* Supports Personal and Public mail, and SysOp Comments.
Entry of Personal and Public mail can be set to a minimum
security level.
* The actions of a remote user are echoed to the local
screen.
* Unauthorized users are not able to logon to TinyHost.
* Using the security level feature, access can be restricted
to one directory or the entire system can be available.
* An Operator Chat function exists to permit the local
operator to chat on-line with the remote user.
* Shelling-to-DOS while connected remotely can be permitted.
* Support has been added for ISDN phone systems.
* Uploads and/or downloads can be restricted to a minimum
security level.
* Depending upon a user's security setting, all uploads can
be directed to a default Upload directory.
Page 1
* User activity can be logged to a file.
* TinyHost performs a self-check on execution to ensure
that it has not been tampered with by, for instance, a
virus.
* TinyHost is just that - tiny! The executable file is less
than 100K, and the program only requires approximately
150K of system RAM to run in.
Your version of TinyHost should include the following files:
THOSTxxx.EXE - TinyHost's executable. The xxx
refer to the version number of
the program
TINYHOST.DOC - The TinyHost manual in printer
ready form (PRINT TINYHOST.DOC)
TINYHOST.WEL - A sample welcome file
TINYHOST.CFG - A sample configuration file
THREMOTE.BAT - Sample batch file for Shell-to-DOS
ZMXMIT.BAT - Batch file for DSZ ZModem downloads
ZMRCV.BAT - Batch file for DSZ ZModem uploads
REGISTER.FRM - Ready-to-print registration
form (PRINT REGISTER.FRM)
HISTORY.TXT - A file describing the release
history of TinyHost
READ.ME - A short text file describing
TinyHost
IN-NODE.LST - A text file with a list of all
current Intelec nodes (BBSes)
1.2 Why TinyHost?
Why did I create TinyHost? I needed a method to transfer
files with friends without hassle. I also found that, since I use
computers at work and at home, I was constantly leaving needed
files at one location or another, which resulted in duplicated
(or lost) effort.
TinyHost is also ideal for the company that needs to keep in
touch with remote employees, such as a sales force. With the file
transfer and message capability, it is easy to provide a single
transfer point for up-to-date information.
TinyHost was written using Borland's C++, and consumes
approximately 150K bytes of memory space when running. The small
memory requirements, along with the small .EXE and other
associated files, permits even floppy-disk based systems to be
used for TinyHost operation.
1.3 What is a SysOp?
When the term SysOp is used in this manual it refers to the
person who installs TinyHost on his computer (you), decides who
can logon to his system, and what directories they are able to
access.
Page 2
1.4 Quick Start
It is recommended that the manual be read before trying to
use TinyHost. However, it is always tempting to fire up a new
program to see how it works. To print out the manual and
registration form, simply enter PRINT TINYHOST.DOC and PRINT
REGISTER.FRM at your DOS command prompt.
Here is a summary of what must be changed (at a minimum) to
get TinyHost to work.
First, the following comments assume that the target system
has a hard disk (Drive C), and that TinyHost will have its own
directory. Create a directory called TINYHOST in the root (main)
directory of the hard disk (C:\TINYHOST). Then create a sub-
directory called BIN within the TINYHOST directory
(C:\TINYHOST\BIN). Copy the THOSTxxx.EXE, TINYHOST.CFG, and
TINYHOST.WEL files to the C:\TINYHOST\BIN subdirectory. Then move
to this directory.
Using an ASCII editor (even EDLIN will do), edit the
TINYHOST.CFG file as follows: set the PORT descriptor to the
serial port that the modem is connected to (1, 2, 3, or 4). Set
the BAUD descriptor to the initial data rate of the modem,
usually the fastest speed of the modem (valid values are 300,
1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, and 115200).
Finally, edit one of the default USER accounts (or create a new
one) and create an account with your name, a password, and your
security level (8 or 9 is adequate). Exit your editor and save
all of these changes.
To run TinyHost, simply enter THOSTxxx.EXE at the DOS prompt
and, after a few seconds of setup, TinyHost should respond with
its standby screen while it waits for a call.
2.0 INSTALLATION and SETUP
2.1 Host System Requirements
TinyHost does not need an elaborate system in order to be
used. A minimal system would consist of a single floppy drive,
256K RAM, any type of display, a serial port, a Hayes compatible
modem, and MS-DOS 3.1 or later. TinyHost supports COM1-4 using,
by default, the normal hardware interrupts for each port (IRQ4
for COM1 and COM3; IRQ3 for COM2 and COM4). Other IRQs are also
supported, with a choice between 2, 3, 4, 5, or 7. ANSI.SYS must
also be loaded or local information may not be displayed
properly.
2.2 Connecting System Requirements
Any type of system and communications package should work
with TinyHost. Communications requirements are 8 bits, no parity,
and 1 stop bit.
Page 3
2.3 Installation of TinyHost
It is recommended that TinyHost be installed in its own sub-
directory. The directory that holds THOSTxxx.EXE is called the
"execution directory", and it is here that the .CFG and other
TinyHost specific files should be kept. Only two files are needed
for operation - THOST.EXE and TINYHOST.CFG. Specific information
as to the expected config file format follows in section 2.6.
Please remember that user accounts MUST be created prior to using
TinyHost - the program does not permit new user logon!
For security reasons, it is STRONGLY suggested that the
TinyHost execution directory be different from the start-up
directory!
2.4 Running TinyHost
To start TinyHost, move to the execution directory and type
"THOSTxxx", where the 'xxx' refers to the version number of
TinyHost.
2.5 Modem Requirements
TinyHost expects a modem that supports the Hayes compatible
command set and ASCII return codes. Because of the many different
modem configurations (switch settings) there would be no point in
attempting to provide a definitive setup for each. However, I can
describe what TinyHost expects - refer to the manual for your
modem to see how to make it fit these needs.
Most modems support two types of result codes - numeric
values (non-verbose) and ASCII strings (verbose). TinyHost
expects to receive verbose result codes of the following types:
OK - Informs the host that the modem has executed the
command string successfully.
RING - Informs the host that an incoming call has been
detected.
CONNECT - Denotes that the modem has made a 300 bps
connection.
CONNECT 1200 - A 1200 bps connection.
CONNECT 2400 - A 2400 bps connection.
CONNECT 4800 - A 4800 bps connection.
* CONNECT 7200 - A 7200 bps connection.
CONNECT 9600 - A 9600 bps connection.
* CONNECT 14400 - A 14.4K bps connection.
CONNECT 19200 - A 19.2K bps connection.
Page 4
CONNECT 38400 - A 38.4K bps connection
CONNECT 57600 - A 57.6K bps connection
CONNECT 115200 - A 115.2K bps connection
* Please refer to Section 4.5 on High Speed modems for
further information on supporting this CONNECT response.
Most modems support a switch setting that controls the state
of the RS-232 Data Terminal Ready (DTR) handshake line. The
switch setting can either force DTR TRUE at all times at the
modem, or it can be set to permit the host computer to control
DTR. If DTR is supported with the selected host computer and
modem, then a modem hangup string will be unnecessary as TinyHost
will toggle DTR when it wishes to drop carrier. However, if DTR
is unavailable, then the modem hangup string must be defined (see
HANGUP below) or TinyHost will be unable to terminate a call and
will never drop carrier.
2.6 Modifying the TINYHOST.CFG File
When TinyHost is run it looks for TINYHOST.CFG in its
execution directory. If it doesn't find it the program aborts. If
the file is located, TinyHost reads in the information that it
needs to run. The config file can be created or modified using a
simple ASCII editor. If the editor used places an EOF character
($1A) at the end of the file, make sure that at least one blank
or commented line is at the end of the file.
Each line in the config file can be up to 80 characters in
length. At any point in the line a comment can be added by
placing a pound sign (#) in the line - everything following it
will be ignored.
TinyHost requires specific information to run. To this end I
have implemented what I call 'descriptors' which denote what type
of information is specified on the line. The descriptor must
begin in the first column of the line. The descriptor can be in
either upper or lower case, it must be followed by a colon (:),
and the descriptor must be spelled properly. If a required
descriptor does not exist TinyHost will abort and display an
error message. Descriptors can be defined in any order.
The descriptors fall into three categories: communications,
security, and general. The following table summarizes each
descriptor, with more detailed information in the following
sections.
Embedded spaces must be eliminated from any descriptor
command line - especially from the USER account fields. For
instance, a USER descriptor account such as:
USER:Joe,De User,Password,8
is invalid because of the embedded space in the user's last name.
Page 5
The valid way to set up this account would be:
USER:Joe,DeUser,Password,8
2.6.1 Descriptor Summary
*BAUD - Beginning baud (bps) rate
CARRIER - Monitor Carrier Detect select
HANGUP - Modem hangup string
*INIT - Modem initialization string
IRQ - COM port IRQ setting
+ISDN - ISDN support select
*PORT - COM port to be used
RESET - Modem reset string
RINGBACK - Ringback mode select
ACCESS - Directory access security level
BOOT - Warm boot security level
CHDIR - Change directory security level
DOWNLOAD - Download security level
OVERWRITE - File overwrite security level
PRIVATE - Private message security level
PUBLIC - Public message security level
+SHELL - DOS Shell security level
SYSOP - SysOp security level
TYPE - Type (display file) security level
UPLOAD - Upload security level
UPLOAD_DIR - Default upload directory
*USER - User account information
VIEW - View User List security level
CHAT - Chat mode default
DBUG - Debug information enable
EVENT - Event time
+EXTERNAL - External Protocol definition
LOG - Log file enable
#SCRNSAVER - Screen saver timeout
#SOUND - Local sounds On/Off
*START - TinyHost start-up directory
* Required Descriptor
+ Explained in Advanced Topics section
# Available in Registered versions only
2.6.2 Communications Specific Descriptors
The following are the descriptors used in setting up TinyHost
communications. Sample uses are given for each command.
BAUD - This specifies the baud (bps) rate that the TinyHost
serial port is to operate at. Legal values are 300, 1200, 2400,
4800, 9600, 14400, 19200, 38400, 57600, and 115200. BAUD is
required. In addition, the COM port baud rate may be locked at
Page 6
the specified value by adding ",LOCK" after the baud rate:
BAUD:19200,LOCK
This has been added for use with error-correcting modems. When
using this mode the proper command(s) must be added to the modem
init string to lock the modem's serial port communications rate
as well.
For further information on the use of high-speed modems refer to
Section 4.5.
CARRIER - Specifies whether or not the modem's Carrier Detect
(CD) handshake should be monitored. A 'Y' or 'N' is expected.
Monitoring the CD line permits TinyHost to see if a caller has
been disconnected unexpectedly. CARRIER is optional.
CARRIER:Y # Monitor CD for disconnect
HANGUP - Specifies the command string necessary to tell the
modem to hang up the phone (go on hook). Refer to the section on
modem requirements (2.5) to see if this string is necessary.
HANGUP is Optional.
HANGUP:ATH0 # Sample hangup (on hook) command
INIT - This is the initialization string used to configure
the modem. INIT is required. The string included with TinyHost
includes some modem commands that are necessary for proper
operation:
INIT:ATE0M0Q0V1X2S0=0S2=43 # Sample init string
E0 - Controls echo from the modem. Must be
set to 0, which is for no echo. Required.
M0 - Controls the modem speaker. A value of
0 turns the speaker off. Optional.
Q0 - Determines the kind of result codes sent
by the modem. Must be set for 0 (result
codes sent). Required.
V1 - Determines the type of result codes sent.
Must be set to 1 which specifies English
(ASCII) codes are sent. Required.
X2 - Selects extended modem result codes. Must
set to 2 or greater. Required.
S0 - Determines the number of rings on which
the modem will answer the phone. Must be
set to 0. Required.
S2 - Sets the value of the escape code for the
modem. Must be set to 43 ("+"). Required.
Note that, unlike some other communications programs, a ^M
combination should not be added to the end of the string.
Page 7
IRQ - Permits setting a non-standard IRQ for the COM port.
Valid IRQs are 2, 3, 4, 5, and 7. If IRQ is not present then the
standard interrupt for the specified COM port is assumed.
IRQ:5 # Denotes IRQ5 is interrupt for the COM port
ISDN - Specifies whether or not ISDN support should be used.
A 'Y' or 'N' setting is expected. Refer to section 4.2 for
further information regarding ISDN support.
ISDN:Y # Enable ISDN support
PORT - This specifies the COM port that is to be used. Valid
values are 1, 2, 3, or 4. PORT is required.
PORT:1 # Use COM port 1
RESET - Specifies the command string necessary to reset the
modem. If RESET is specified then the modem must default to
verbose text responses for proper TinyHost operation. RESET is
optional.
RESET:ATZ # Modem reset string
RINGBACK - Specifies whether or not TinyHost will operate in
ringback mode. RINGBACK is not required - TinyHost will default
to Ringback Enabled Mode.
RINGBACK:Y # Enable Ringback mode
2.6.3 Security Level Descriptors
ACCESS - Can be used to specify a security level needed to
access a directory. Up to 25 Access restrictions can be defined.
If no access restrictions are specified then anyone with CHDIR
permission can move to any system drive or directory. This could
be troublesome when floppy drives are specified and they contain
no diskettes. ACCESS expects a valid directory path (up to the
DOS limit of 63 characters), followed by a comma, followed by a
numeric value between 0 and 10 indicating a security level. A
typical ACCESS descriptor would be:
ACCESS:C:\TINYHOST\BIN,9
which would limit access to the C:\TINYHOST\BIN directory to
users with a security level of 9 or greater.
A default access value can also be specified as follows:
ACCESS:DEFAULT,9
This means that any unspecified directories can only be accessed
by users with a security level of 9 or greater. This will make
Page 8
securing a typical computer system much easier. Access settings
are reloaded with the Warm Boot command. See section 2.7 for
further information.
BOOT - Specifies the security level needed to perform a warm
boot of the host system. This command can be used with Overwrite
to update TinyHost's config file from a remote location. If Boot
security is not specified then no user will have Boot permission.
BOOT expects a numeric value between 0 and 10.
BOOT:9 # Security level to execute a Warm Boot
CHDIR - Specifies the minimum security level necessary to be
able to move between directories of the system. If not specified
then no security level will be permitted to change directories.
CHDIR expects a numeric value between 0 and 10.
CHDIR:3 # Sets Change Directory security to 3
DOWNLOAD - Specifies the minimum security needed to download
a file from TinyHost. DOWNLOAD expects a numeric value between 0
and 10. If it is not specified then anyone can download a file.
DOWNLOAD:3 # Sets Download security level to 3 or greater
OVERWRITE - Specifies the security level needed for file
overwrite permission. This can be used to update TinyHost's
config file remotely when used with the Warm Boot command. If
Overwrite security is not specified then no user will have
Overwrite permission. OVERWRITE expects a numeric value between 0
and 10.
OVERWRITE:9 # Sets Overwrite security level to 9 or greater
PRIVATE - Specifies the minimum security level needed to
enter a private message. PRIVATE expects a numeric value between
0 and 10. If it is not specified than anyone can leave a private
message.
PRIVATE:3 # Sets Private message entry to 3 or greater
PUBLIC - Specifies the minimum security level needed to
enter a public message. PUBLIC expects a numeric value between
0 and 10. If it is not specified than anyone can leave a public
message.
PUBLIC:3 # Sets Public message entry to 3 or greater
SHELL - Used to set the security level for executing the
Shell-to-DOS function. Refer to Section 4.4 for further
Page 9
information. SHELL is optional.
SHELL:9 # Sets DOS Shell security to 9 or greater
SYSOP - Specifies the minimum security level necessary to
perform SysOp level functions. SysOp functions include the
ability to delete Public mail, and read and delete SysOp
Comments. SYSOP expects a numeric value between 0 and 10. If
it is not specified then remote SysOp privileges will be
disabled.
SYSOP:9 # Sets SysOp security level at 9
TYPE - Specifies the minimum security needed to execute the
[T]ype command to display a file. TYPE expects a numeric value
between 0 and 10. If it is not specified then anyone can display
a file.
TYPE:3 # Sets [T]ype minimum security level at 3
UPLOAD - Specifies the minimum security needed to upload a
file to TinyHost. UPLOAD expects a numeric value between 0 and
10. If it is not specified then anyone can upload a file.
UPLOAD:3 # Sets Upload security level to 3 or greater
UPLOAD_DIR - Specifies a path and security level for uploads
to TinyHost. UPLOAD_DIR expects a path to a directory to store
the files, along with the minimum security level needed to
override this feature.
UPLOAD_DIR:C:\TINYHOST\UPLOAD,7
For users with a security level less than 7, this would place
their uploaded files in the C:\TINYHOST\UPLOAD directory. See
section 2.8 for further information.
USER - Defines a user account. The line should contain (in
order) the users first name (15 characters maximum), last name
(30 characters), password (8 characters), and security level (2
characters). Items must be separated by a
comma (,). The security level should be specified by a numerical
string ranging in value from 0 to 10, with 10 being the highest
permissible security level. At least one, and up to 100 (10 for
the Shareware version), user accounts can be created. User
accounts are reloaded when the Warm Boot command is executed.
The following USER descriptor:
USER:Joe,Shmoe,JOEUSER,7 # User with security of 7
creates a user account for Joe Shmoe with the password of
JOEUSER. Joe has a security level of 7.
Page 10
VIEW - Minimum security necessary to perform a View User List
function. It may be desired to prevent lower level users from
viewing the names of the TinyHost user base, and setting VIEW
high enough will do this. View expects a numeric value between 0
and 10. Not specifying a VIEW security level will result in all
users being able to view the User List.
VIEW:3 # Sets View Users security level at 3
2.6.4 General Descriptors
CHAT - Specifies the default setting for Chat Mode on
TinyHost execution. A 'Y' enables Operator Chat; a 'N' disables
it. CHAT is optional, and defaults to enabled.
CHAT:Y # Enable Operator Chat on start-up
DBUG - Set to 'Y' will direct TinyHost to display modem
response information on the local monitor. This can be very
useful when trying to troubleshoot a modem initialization
problem. DBUG is optional, and defaults to disabled.
DBUG:Y # Enables display of modem responses
EVENT - Used to set a time for TinyHost to quit and return to
DOS. The time must be entered in 24-hour (military) format (0000-
2359, 0000 = midnight). All four digits must be entered. If a
user is logged on when the Event time occurs, TinyHost will not
exit until the user has logged off. The Event time is reset when
executing a Warm Boot.
EXTERNAL - Used to add an external protocol (such as ZModem)
for use with TinyHost file transfers. Refer to Section 4.3 for
further information. EXTERNAL is optional.
LOG - Enables the logging of user activity to a file. LOG
expects a 'Y' or 'N' setting. LOG is optional.
LOG:Y # Logs user activity to TINYHOST.LOG
SCRNSAVER - Enables the resident TinyHost screen saver, and
can also specify an inactivity timeout (in seconds).
SCRNSAVER:Y,300 # Screen saver on with 5 minute wait
If a timeout value is not specified, a default of 2 minutes will
be used. After the screen is blanked, an incoming call or local
keyboard activity will bring the display back. Note that whatever
key is pressed locally WILL be passed to the TinyHost program.
This function is only available in the registered versions of
TinyHost and TinyHost Plus.
Page 11
SOUND - Specifies whether or not the embedded Tinyhost sound
effects (bells or beeps) are echoed to the local system. This is
handy for those that have a system running at home and dislike
hearing the beeps at all hours of the day and night. This does
*not* affect the beeps associated with an Operator Chat page. A
'Y' lets all sounds echo to the local system; a 'N' turns them
off.
SOUND:N # Disables local beeps
This function does not intercept any embedded Control-G
characters (ASCII "bells") in any user created files such as the
Welcome file. SOUND is also only available in the registered
versions of TinyHost and TinyHost Plus.
START - Specifies the start-up directory for TinyHost. This
is the directory that TinyHost moves to after its initialization
is complete. This is also the directory that is available to the
remote user that logs onto TinyHost so care should be taken that
no sensitive files are available for download from this
directory. START is required. A terminating backslash should not
be used except when specifying a root directory that is being
used for the start-up directory.
START:C:\TINYHOST # Directory at initial logon
2.7 Setting up Access Levels
The first thing to remember is that if a user's account
hasn't been created in the TINYHOST.CFG file he will never be
able to log on! (See Section 6.6 for a method to permit new users
to log on).
From there, things get a little more complicated (but not
*too* complicated!). The SysOp will have to make decisions as to
how much system access to give to the user accounts he creates.
It is recommended that security level 10 be used to deny access
to items such as the floppy drives, etc. when a hard disk based
system is used. Trying to remotely access a floppy drive that
does not have a diskette in it will cause TinyHost to hang.
As noted above, a remote user can be restricted to the Start-
Up directory for his uploads and downloads. This is accomplished
by setting the CHDIR access to a higher level than that of the
remote user.
To limit access to other areas of the system, the ACCESS
descriptor should be used. For instance, it is recommended that
only the SysOp have remote access to the sub-directory that
contains the TinyHost program, config file, and message files.
Since there is no specific file upload or download restrictions,
permitting access to these files (particularly the config file)
would then give access to the entire user log.
Entire disk drives (floppy, hard, and RAM) can be locked out
Page 12
by simply setting up the following ACCESS descriptor:
ACCESS:X:,10
This would force a security level of 10 or greater to access
drive X. As long as no user (SysOp included) has a security of
10, then no access of drive X is possible. To lock out the root
directory of a drive the descriptor would be changed to:
ACCESS:X:\,10
Note the trailing backslash after the drive designation. This is
the only time that the backslash is necessary. To lock out a
particular directory:
ACCESS:C:\TINYHOST\BIN,9
would permit access to the TINYHOST\BIN subdirectory by people
with security levels of 9 or greater. Note that a trailing
backslash should not be used when specifying a complete directory
path.
For example, suppose that one wanted to have two separate
subdirectories, each with its own access level, within the
TINYHOST directory. Assuming that one directory is called LEVEL7
and the other is LEVEL8, the directory structure would look like
this:
C:\ --- TINYHOST --+--- LEVEL7
|
+--- LEVEL8
|
+--- BIN
Also, assume that the access levels within TINYHOST.CFG are set
as follows:
ACCESS:C:\TINYHOST\BIN,9
ACCESS:C:\TINYHOST\LEVEL7,7
ACCESS:C:\TINYHOST\LEVEL8,8
Users with a security level of 7 or higher would be permitted
access to the LEVEL7 directory. A security level of 8 or more
would be required to be able to move to the LEVEL8 directory. And
a level of 9 or 10 (probably a SysOp) would have access to the
BIN directory where all of the important TinyHost files are kept.
By adding the following line:
ACCESS:DEFAULT,9
the system is also further protected by setting a default access.
This means that any directory not explicitly mentioned in an
ACCESS descriptor can only be accessed by a user with a security
level of 9 or greater. Specifying a default access level does not
use one of the 25 standard ACCESS directory resources.
Page 13
The config file that has been included with the TinyHost
package is set up to lockout floppy drives A and B. Overwrite,
boot permission, default directory access, and SysOp security
levels are set to that of the "SysOp", Sam Sysop.
2.8 Setting up a Default Upload Directory
To give a SysOp better control over what files are available
to his/her users, TinyHost can place any or all uploads into a
default directory for review at a later time. The descriptor
format to enable this function is:
UPLOAD_DIR:<directory path>,<security level>
where <directory path> is the complete path to the directory
where the uploads are to be stored, and <security level> is the
minimum security level needed to override this function. For
example:
UPLOAD_DIR:C:\TINYHOST\UPLOAD,7
would place all files uploaded by users with security levels of
0-6 in a directory named C:\TINYHOST\UPLOAD. Users with a
security level of 7 or higher would have their uploads left in
the TinyHost system directory they are in at the time.
TinyHost will verify on start-up that the Default Upload
directory exists. If a valid security level is not given then a
default of 0 (zero) is assumed. This would disable the Default
Upload directory option.
Any UPLOAD security level also specified in the config file
is still in force. For instance, if an UPLOAD security level of 2
is specified, then users with a security level of 0 or 1 will not
be able to upload any files at all. Users with a security of 3-6
would have their uploads re-directed to the UPLOAD_DIR directory.
A security level of 7 or higher would then be needed to override
this default upload directory setting.
2.9 Custom Display Files - Welcome, Bulletin, and Logoff
TinyHost permits the creation of three display files by the
SysOp that are shown at different points within the program.
TINYHOST.WEL is displayed after a connection has been made and
before a user has logged on. TINYHOST.BUL is displayed after the
logon process has been successfully completed. TINYHOST.BYE is
shown after the user has logged off. A sample TINYHOST.WEL has
been included on the TinyHost disk.
Each file can have any number of lines, but each line should
be no more than 80 characters long, and should be terminated with
a carriage return and line feed. If the file is longer than 20
lines TinyHost will pause at the 21st line (and every 21st line
thereafter).
Page 14
These files should be placed in the same directory that
THOSTxxx.EXE and TINYHOST.CFG reside (the execution directory).
If any of the display files do not exist TinyHost will continue
on its merry way!
3.0 OPERATION
3.1 Ringback Operation
Ringback mode has been implemented to permit using the same
phone line for both voice and data communications. To access
TinyHost when ringback is implemented the caller must first dial
into the computer and permit the phone to ring at least once (or
permit the modem to detect at least one ring). Then the caller
should hang up and wait at least 8 seconds before redialing the
computer. As long as the redial is done within 1 minute of the
first call, TinyHost will answer the phone and data
communications can begin. If more than 1 minute elapses then
TinyHost resets and begins waiting for the first ring.
3.2 TinyHost Operation
TinyHost is a very easy program to use - if for no other
reason than there aren't too many options with which to become
confused! After the program is started a status screen is
displayed on the local monitor. This information includes whether
or not TinyHost is in ringback mode, and, if so, whether or not
the program is waiting for the ringback. A local operator is also
able to view the progress of a remote connection since all
activity is echoed to the computer's monitor.
After TinyHost has been started, and while it is waiting for
a phone call, a status screen is displayed. Information such as
Ringback status (Enabled or Disabled), Chat Enabled or Disabled,
etc. is displayed. Pressing the Escape key ( <ESC> ) at this time
will exit TinyHost. A local user can logon by pressing <ENTER>
(or <RETURN>). The user will then be presented with the same
prompts that a remote user gets. Pressing <RETURN> again
(entering nothing for a First Name) will also cause an exit from
TinyHost.
Whether logging on locally or remotely, if logon is desired,
the user should enter his first name, last name, and password as
requested. It is permissible to string together any and all user
information (for instance, entering first and last name,
separated by a space, at the First Name prompt). It is not
recommended to enter ones password in this fashion as the
characters would be echoed to both the local and remote screens.
The names and password inputs are not case sensitive. TinyHost
does not permit retries when entering this information - if it is
entered improperly TinyHost will deny access and will hang up.
After the user successfully logs on, TinyHost checks to see
if any personal messages exist for the user. If so, TinyHost
beeps once, and displays a message that Personal Mail is waiting.
A check is also made for Public mail and SysOp Comments (security
Page 15
level permitting), and notices are displayed if either forms of
messages exist.
The user will then be presented with the Main Menu, which
displays the following command options. Either upper or lower
case characters can be used:
*D - Download a file from TinyHost to the user (if
permitted).
*U - Upload a file to TinyHost from the user (if
permitted). If the user's security level
permits, file overwrite is possible with or
without backup.
*C - If permitted, allows the user to move
between drives and directories of the system.
L - List the contents of the present directory.
*T - Types out (displays) a text file that resides
on the host system (if permitted).
*R - Read Personal or Public messages, or SysOp
comments (security level dependent).
*E - Enter a Personal or Public message or SysOp
comment. (Security level dependent)
*K - Kill Personal messages, or Private messages
or SysOp comments (security level dependent).
V - View User List (security level dependent).
S - Shell-to-DOS (security level dependent).
I - Displays an informative screen about TinyHost.
H - Display a Help screen ('?' can also be used).
X - Toggles TinyHost's Expert mode on and off.
When Expert mode is ON the longer menu and
informative messages are suppressed.
B - Re-display the logon Bulletin.
G - Goodbye. Ends the TinyHost connection.
O - Page the Operator (SysOp) for chatting.
W - Log off and reload the access, user, and event
info from the config file. Subject to permission.
This option is *not* displayed on the screen
- it is a SysOp secret!!
* Command Chaining possible
When using TinyHost, and reading this manual, text surrounded by
Page 16
angle brackets refer to names of keys, such as <F1> and <RETURN>.
Characters with square brackets around them ( [T] or [C] ) refer
to characters that, when entered, will execute that appropriate
action. Characters with curly braces ( {N} or {Y} ) denote
default actions (executed on pressing the <RETURN> key with no
other keys being pressed).
3.3 File Oriented Commands
3.3.1 File Transfers
TinyHost provides internal XModem, XModem/CRC, and 1K-Xmodem
upload and download capability (1K-XModem protocol is sometimes
known as YModem). All uploads and downloads take place from the
current directory that the user is in. If CHDIR access has not
been given, then file transfers take place from the Start-Up
directory.
Through the use of External Protocols TinyHost is able to
support other protocols such as ZModem. Refer to Section 4.3 for
further information on how to implement these.
Xmodem and XModem/CRC transfers appear as a single selection.
TinyHost will attempt to begin transfers using CRC as this is a
more reliable protocol than checksum. If CRC attempts are ignored
then the system will fall back to checksum.
When uploading a file to the TinyHost system, if the file
already exists the system will typically prevent overwriting the
existing file. The exception to this is if the OVERWRITE
descriptor has been set and the caller's security level matches
or is greater than that value. If this is the case then the user
will have the option of overwriting the existing file. If
overwrite is selected then the user will also be asked if a
backup of the current file is desired. If a backup already exists
then the current backup will be overwritten by the new backup (no
backups of backups are made!).
The overwrite option was added to permit updating TinyHost's
config file from a remote location. Since new users cannot
normally logon to TinyHost it is necessary to create an
appropriate account. By using both the overwrite and warm boot
capability the SysOp can download the existing config file,
modify it, upload it and overwrite the existing config file, then
tell TinyHost to load the new information.
Note that if a user logs on locally file transfers are not
permitted (for obvious reasons). However, the user can still go
through the motions to test the installation of any external
protocols. To aid in troubleshooting, TinyHost will display the
batch file command that would normally be sent to DOS.
3.3.2 Changing Directories
The Change Directory function of TinyHost acts much the same
as the chdir (or cd) function from DOS. When Change Directory has
Page 17
been chosen the program will prompt for a new directory. The same
type of input that is acceptable from a DOS command level is
suitable for TinyHost - entering two dots (..) will take TinyHost
to the next directory up the tree. Entering a complete path will
take the user to the specified directory. All of this is, of
course, assuming that the user has the necessary access to permit
moving around the host system. To ensure security of the host
system, TinyHost will return to the designated Start-Up directory
after a user has logged off.
3.3.3 List Directory
This function displays the files that reside in the currently
selected sub-directory of the system. First, the current
directory path is displayed. Then, any additional sub-directories
that exist are shown. Finally, the individual files in the
current directory are displayed along with their sizes.
3.3.4 Typing out a File
This function permits typing out (listing) a file that
resides on the TinyHost computer. It is strongly advised that
this function be used only to view text (ASCII) files. Viewing
binary files (those with .EXE, .COM, .ZIP, etc. extensions) can
cause VERY unpredictable results!
If the user has Expert Mode turned off when this feature is
selected, a cautionary message similar to the above paragraph
will be displayed, then the user will be prompted for a filename.
If Expert Mode is enabled, then the user will be immediately
prompted for the filename. If the file exists in the currently
selected directory, then it will be displayed. TinyHost will
pause every 21 lines and ask if it is to continue displaying the
file. TinyHost will also automatically wrap the screen display if
the line length exceeds 80 characters. TinyHost will keep track
of added line feeds to be sure that the display is paused
properly.
The maximum line length that TinyHost will support (without a
terminating carriage return or line feed) is 256 characters.
3.4 Message Commands
3.4.1 Reading Messages
When a user logs onto TinyHost a notification is given if any
Personal or Public mail is waiting, beeping once for Personal
mail. If the user's security level is high enough, a notification
of waiting SysOp Comments is also given. To read the messages,
enter 'R' at the Main Menu prompt. A choice will then be given to
read Personal ('P'), Public ('U'), or SysOp Comments ('C'). After
the second choice is made the message(s) are then displayed. If
more then one message is waiting, TinyHost pauses before
continuing on to the next message. The very first line of the
Page 18
message notes who the message is from, and the time and date that
the message was entered.
If no mail is waiting of the selected type, a message
reporting this is displayed. If the user does not have sufficient
security to read SysOp Comments a notification is given and the
Comments are not displayed.
3.4.2 Entering a Message
To Enter a message or SysOp Comment, enter an 'E' at the Main
Menu prompt. The user will be prompted for the type of message to
be left (Personal, Public, or SysOp Comment). After the selection
is made (taking into account any Personal or Public security
restrictions), a few notes regarding message input are displayed
along with a ruler line showing the length of a message line.
If entering a Personal (Private) message, the user will be
asked for the name of the person to send the message to. TinyHost
will then check to be sure that such a person exists in its user
base, so it is imperative that the user's name be spelled
correctly. To find out who exists in the user base, and to find
the proper spelling of names, a View User list can be done
(within security limits).
Up to 20 lines of 70 characters each may be entered. TinyHost
will automatically wrap input to the next line. When entering
the message, do not put a period in the first (leftmost) column.
This is how TinyHost distinguishes the end of a particular
message (see Section 6.7). To end the message input, enter a
blank line. At this point, the message can be edited, saved, or
aborted.
If the message is saved, TinyHost will automatically add the
sending individual's name, and the time and date the message was
entered, to the beginning of the message. The entire message will
then be saved into the appropriate message file.
3.4.3 Editing a Message
After entering a message, and before saving it, the message
can be edited using the following editing commands:
[L]ist - List the entire message
[I]nsert - inserts a line after the line number specified.
Entering a blank line will abort the insert process.
If the message length is already 20 lines then an
insert will not be permitted.
[D]elete - deletes the specified line
[E]dit - permits editing the specified line. After entering
the line number the user is asked to enter the source
string to be changed. TinyHost will do an exact, case
sensitive search and if a match is found then the user
Page 19
is prompted for the string to be substituted. If the
resulting line exceeds 70 characters then the end of
the line will be truncated to fit.
When editing the message is complete, the message can either
be [S]aved or [A]borted.
3.4.4 Killing (Deleting) Messages
TinyHost will retain all messages until they are deleted.
This is accomplished by entering a 'K' at the Main Menu prompt.
The user will then be prompted for the type of mail to delete -
Personal, Public, or SysOp Comments. The user is then asked if
all messages are truly to be deleted, and if the response is Yes,
then the entire mail file is deleted.
If the user's security is not high enough to delete Public
Mail or SysOp Comments, an appropriate message will be displayed
and the user will be returned to the Main Menu.
It must be stressed that when Killing Messages, ALL such
messages are deleted! There is presently no way, for instance, to
just delete one Private message out of the group. However, since
a DOS file delete is done, the file should be recoverable using
an easily available file recovery utility.
Non-deleted messages will hang around forever (or until the
next disk crash!). Personal messages, though, will make a minor
nuisance of themselves by beeping every time the user logs on.
This should help remind users to purge their old messages.
See Section 6.7 for information on editing the message files
off-line using an ASCII editor.
3.4.5 Viewing User List
To help users when entering Personal mail, a View User List
function has been added. Entering a 'V' at the Main Menu prompt
will display the list of users currently defined in TinyHost's
user base. Both the first and last name of the individuals are
displayed.
The View User List function can be restricted to higher
security levels simply by setting the VIEW descriptor value high
enough. This may be desired when TinyHost is open to new callers
(see Section 6.6), or when different security levels are
implemented. If the VIEW descriptor is not found in the
TINYHOST.CFG file, any users will be able to see the user list.
3.5 Miscellaneous Commands
3.5.1 Expert Mode
Entering an 'X' at TinyHost's Main Menu will toggle the
Expert User Mode on and off. When OFF, full menus and informative
Page 20
displays are given throughout TinyHost. When ON, these displays
are suppressed and only a line showing the valid character inputs
is displayed.
3.5.2 Operator Page
Entering an 'O' will page the operator for online chat.
This is assuming, of course, that the SysOp has enabled this
function. If Chatting is enabled, TinyHost will beep every two
seconds for 30 seconds to get the SysOp's attention. Any key
pressed during this time by the remote user will cancel the page.
On the local screen, TinyHost will display the name of the
user who initiated the page. If the SysOp wishes to chat then the
<F1> key should be pressed on the local keyboard. The remote user
and SysOp can then chat back and forth simply by typing their
messages. TinyHost will automatically wrap the input to the
following line. To end the Chat, the SysOp must press <F1> again.
While TinyHost is waiting for a call, the SysOp may enable or
disable the Chat function by pressing <F1>. The status of Chat is
shown on the local screen.
3.5.3 Shelling-to-DOS
Entering an 'S' will select the Shell-to-DOS function.
Depending upon the implementation the remote user will then be
taken to the DOS prompt of the TinyHost machine. To return to
TinyHost, the remote user must type 'EXIT' and hit <RETURN>.
Whether or not a remote user can execute this command is set
(in part) by the SHELL descriptor security level.
Because of the complexity of implementing this command at the
TinyHost level, further information can be found in Section 4.4
under Advanced Topics.
3.5.2 Executing a Warm Boot
As described above, the warm boot option has been included to
permit the SysOp to modify some settings remotely by updating and
reloading the config file. TinyHost normally only reads its
config file on initial start-up. Entering a 'W' will result in
TinyHost logging off (same as if Goodbye had been selected). The
program will then proceed to re-load its config file and retrieve
ACCESS, USER, and EVENT info - everything else in its
configuration (INIT, RESET, etc.) will remain untouched.
3.6 Command Chaining
Many commands can be used with Command Chaining. This is the
process of entering two pieces of information at the Main Menu
prompt, with a space separating the items. For instance, to type
Page 21
out the file FOOBAR.TXT from the current directory, the command
line would be:
T FOOBAR.TXT <return>
Command chaining can be used in or out of Expert Mode, and
currently works with file and message commands. Section 3.2 lists
the available TinyHost commands, and the ones where command
chaining can be used are marked with asterisks ('*').
3.7 User Inactivity and Disconnects
TinyHost monitors the COM port for keyboard activity to be
sure that a user is still out there and awake. If no keyboard
activity is seen for an extended period of time (at least 2
minutes) TinyHost will hang up and recycle itself. The total
length of time that TinyHost will wait depend upon what menu the
user is in when the inactive period begins. A 5 minute delay is
set when Viewing a file; a 2 minute delay exists at the Main Menu
prompt. This activity monitor can also handle disconnects that
occur in the middle of a logon session.
In addition, if the CARRIER descriptor has been set to 'Y',
TinyHost will monitor the status of the Carrier Detect (CD)
handshake from the modem. If at any time the CD handshake is
removed (denoting a broken connection), TinyHost will recycle
itself.
3.8 Quitting a TinyHost Session
For those users with a security level greater than or equal
to that set by the SYSOP descriptor, TinyHost offers a QUIT
command. When executed, this will take the user through the
standard logoff procedure. However, instead of recycling back to
the normal mode of waiting for an incoming call, TinyHost will
cease running and quit to DOS.
4.0 ADVANCED TOPICS
4.1 General Notes
The features covered in this section are NOT for the faint of
heart!! In order to implement these properly a good knowledge of
DOS, and of the system and environment that TinyHost is running
in, is essential!
4.2 ISDN Support
ISDN is a digital only phone system that is starting to
become more widespread. With ISDN there is no modem, no init
string, no result codes, and a fixed baud rate. All activity is
controlled using the serial ports handshake lines. To enable ISDN
Page 22
support, the following descriptor must be added to TinyHost's
config file:
ISDN:Y # Enable ISDN support
When ISDN is used, RINGBACK cannot be set to Yes, and a
modem HANGUP string cannot be defined. It is also suggested that
baud rate locking (for example, BAUD:9600,LOCK ) be used.
When in ISDN mode, the DTR line is not asserted, as it
is when in a modem application. TinyHost waits until the RING
handshake becomes active and then asserts DTR. TinyHost then waits
for DCD to be asserted to signify that a connection has been
established. To break the connection, TinyHost simply drops the
DTR handshake.
4.3 External Protocols
For those that want to use protocols other than XModem (such
as ZModem), TinyHost supports the use of external protocols. For
instance, the author uses DSZ (by Chuck Forsberg) to implement
ZModem file transfers. Up to 6 external protocols may be defined.
The descriptor format for defining an External protocol is:
EXTERNAL:<menu name>,<transmit batch>,<receive batch>
for example::
EXTERNAL:Zmodem,ZMXMIT,ZMRCV # Sample for ZModem
<menu name> - The name of the protocol. This string may be up
to 30 characters in length, and may include embedded spaces. This
string will be displayed to the user at the Protocol Select menu
within TinyHost - in this case, "ZModem".
<transmit batch> - The name of the batch file used to invoke
the external protocol when sending a file from TinyHost to the
User (TinyHost Download). This batch file must reside in the
TinyHost execution directory. In the above example, ZMXMIT will
have TinyHost look for a batch file named ZMXMIT.BAT in the
execution directory for downloads.
<receive batch> - The name of the batch file used to invoke
the external protocol when receiving a file from the User
(TinyHost Upload). This batch file must reside in the TinyHost
execution directory. In the above example, the name of the upload
batch file is ZMRCV.BAT.
The actual external protocol executable file must be in a
directory pointed to by the DOS path command. The .BAT file
extension should not be added when putting the filenames in the
descriptor field.
When an external protocol is selected, TinyHost starts a
secondary command processor (usually COMMAND.COM). TinyHost also
passes some necessary parameters to the batch file. These are, in
Page 23
order: 1) COM port number, 2) Port speed (baud rate), and 3) the
filename. The COM port and baud rate are passed as ASCII
characters.
Two sample batch files have been included. These can be used
with DSZ to implement ZModem transfers within TinyHost. For
instance, the batch file for a TinyHost Upload would be:
DSZ port %1 speed %2 rz %3
The batch file for a ZModem Download would be:
DSZ port %1 speed %2 sz %3
4.4 Shelling-to-DOS
The SHELL descriptor permits setting the minimum security
level necessary for accessing this command remotely. However, a
lot of behind-the-scenes effort has to be done to make this work.
In addition to the security level requirement, there must be
a THREMOTE.BAT file in the *exact* directory the user is in when
trying to shell out. There is a reason for this: Some SysOps may
not want their users dropping to DOS in their machine, but they
might want to make custom menus, programs, etc. available for
their use. By customizing a THREMOTE batch file for the area the
user is in, different functions can be implemented using the same
command.
When executing the Shell command, TinyHost passes two pieces
of data to the batch file (much like it does when using an
external protocol). First, the COM port number is passed, then
the Baud rate. Both are passed as ASCII character strings.
A sample THREMOTE.BAT file has been included with TinyHost.
This file shows how a shell-to-DOS function can be implemented
using the DOS CTTY command. When returning from calling this
batch file, TinyHost will automatically reset the CTTY value to
CON (the standard console).
Caution should be taken when using the CTTY command to
implement a DOS Shell. Depending upon circumstances that are
unclear, when at the DOS level via remote a backspace character
can sometimes cause the host system to go berserk. Unlimited
space characters appear to be sent, and a Control-C may or may
not work in halting them. The only cure appears to be to break
connection (hang-up).
When using CTTY, it is recommend that caution be used when
executing other programs remotely. Direct video writes cannot be
supported using this function, and system lockup may be
experienced. When finished with DOS operations, entering "EXIT"
at the DOS prompt will return to TinyHost. It is suggested that
the user return to the directory the Shell command was called
from. Failing to do so could cause the system to lock up.
Page 24
Also, if one were to hang up or suffer a broken connection
while in DOS, there is no way for TinyHost to recover and the
system would stay that way unless manually reset. A good solution
here is to use a utility called WATCHDOG (or something similar)
which automatically reboots the computer should the carrier be
lost.
4.5 High-Speed Modems
With the advent of the higher-speed modems (faster than 2400
baud) the life of the communications programmer became much more
difficult! The many different modes, speeds, and lack of command
and programming standards has made any attempt at universal modem
support incredibly difficult. The important things to remember
when dealing with these buggers is that the modem connect rate
can differ from the computer-to-modem serial port rate.
Even though TinyHost supports computer-to-modem serial rates
(sometimes referred to as Fixed DTE, modem speed conversion,
etc.) of 7200 and 14400 baud, many (most?) modems do not. Please
check your modem manual to see if these rates are supported
before setting them with the BAUD descriptor. When in doubt, use
the faster rates of 9600 or 19200.
If your modem should respond with a CONNECT 14400 message and
baud rate locking is not enabled, TinyHost will attempt to set
the serial port baud rate to 14400. If, as mentioned above, your
modem doesn't support that serial port rate, all information to
and from the remote user will be garbled. NOTE: there will be no
indication of trouble on the TinyHost local screen! All menus
will appear normal!
When using baud rate locking, both the TinyHost BAUD
descriptor and the modem INIT string must be configured properly.
With TinyHost this is easily done by adding ,LOCK following
the baud rate value in the BAUD descriptor. For example:
BAUD:19200,LOCK
will lock the computer-to-modem baud rate at 19200. For this to
work properly, the necessary modem command must have been
included in the modem INIT string to prevent the modem from
changing speeds.
5.0 TROUBLESHOOTING TIPS
5.1 General Comments
Although I have done my best to make TinyHost an easy-to-use
program, it is difficult (if not impossible) to take all of the
different port and modem combinations into account. Here are some
suggestions as to causes and cures of some common problems in
getting TinyHost to work.
Page 25
A helpful debug feature has been incorporated into TinyHost.
By adding the DBUG descriptor to a line in the TINYHOST.CFG file,
modem response information will be displayed on the local
monitor's screen. This can sometimes help pinpoint the problem
area.
5.2 System Hang (Lockup)
This failure is when the computer that is to be used locks up
as soon as TinyHost is executed. Chances are, the last sign of
life was the "Initialization..." message being displayed on the
monitor screen.
This is usually due to a problem with the selected serial
port. It is possible that the specified serial port does not
exist in the computer. When trying to use COM3 or COM4, it is
also possible that an non-standard COM interrupt is being used.
TinyHost defaults to IRQ4 for COM3; IRQ3 for COM4. If a different
interrupt is needed, use the IRQ descriptor to set the proper
one.
TinyHost can also hang the system if a remote user attempts
to access a floppy drive that does not have a diskette in it.
5.3 Error in User Account
This message will be displayed during the initialization
process. This will be caused by an embedded space somewhere
within the user account information. It could also be caused by
an invalid security level.
5.4 Modem Fails Reset
This will occur as TinyHost is being initialized. The program
attempts to reset the modem, and has received no response. The
expected response is an "OK" string.
A number of causes are possible. Make sure that the modem is
connected to the specified serial port, and that the default bps
rate being specified with the BAUD descriptor is one that the
modem's serial port can support. The modem could also be set (via
DIP switches or non-volatile RAM) to default to no result codes
or to numeric instead of verbose. The simplest solution is to
remove the RESET descriptor from the TINYHOST.CFG file.
5.5 Modem Fails Initialization
TinyHost displays a "Modem Initialization Failure" string
when this happens.
Again, a number of causes are possible. Make sure that the
modem is connected to the specified serial port, and that a valid
BAUD rate setting is being used. The initialization string also
must have the Q0, V1, and E0 modem commands set as shown (Q0
Page 26
forces the display of result codes; V1 specifies that result
codes as character strings rather than numbers; E0 turns off
command echo).
Make sure that the modem supports the serial port connect
rate that has been chosen. Many (most?) modems do not support
computer-to-modem connect rates of 7200 and 14400 baud. See
Section 4.5 for further high-speed modem information.
5.6 Phone Call Not Answered
If TinyHost does not answer the incoming call, make sure that
the phone line is properly plugged into the modem. Also, make
sure that the RINGBACK descriptor is set to 'N' (No).
5.7 Garbage After Connect
This problem will only be seen by the remote caller, and will
appear as all garbage characters being received instead of the
expected Welcome file (if used) or First Name prompt.
This is probably caused by different bps rate settings
between the TinyHost system and the remote caller. This can be
due to the Data Rate of the modem being locked to a particular
value by an initialization command (usually available only with
error correcting or MNP modems). Try adding (or removing) the
LOCK command of the BAUD descriptor.
If occasional incorrect characters are received, the problem
is probably due to a noisy phone connection between the two
systems.
5.8 Immediate Connect and Logoff
Although difficult to describe, this is when TinyHost answers
the phone, displays the requests for First Name, Last Name, and
Password, then logs off without the remote user doing anything.
The number of times each prompt is displayed can vary.
Essentially, the remote user is never given the chance to logon.
This is probably caused by an improper echo command setting
in the Modem Init string. Command Echo must be set to off by
using the E0 setting in the init string.
5.9 Garbage During Logon
Here, TinyHost answered the call, established communications,
but the remote user sees occasional garbage echoed during the
logon process, and he is not permitted access to the system.
The most likely cause is the remote users communications
package is incorrectly set. TinyHost expects the connecting
caller to be using 8-bits, no parity, and 1 stop bit.
Page 27
5.10 Added Message Not Displayed
This type of error usually occurs when a message is created
off-line, using an ASCII text editor. What happens is that a
message added via TinyHost does not appear to be added (appended)
to the original message file.
This is caused by the ASCII editor used to create the initial
text file adding an End-Of-Text (EOT or EOF, $1A) to the file
when it is saved. When adding a message via TinyHost, the new
message is simply added on to the existing file. The EOT
character is never erased or overwritten, and when it is seen
TinyHost assumes that the entire message file has been read. This
character can be removed from the message file using a hex
editor, and this problem can be avoided by ensuring that the
ASCII editor used will not add the EOT character.
5.11 THREMOTE.BAT Not Found
This error message will appear when a [S]hell-to-DOS has been
attempted and is unsuccessful. When a [S]hell is attempted
remotely, TinyHost looks in the current user directory for a copy
of this batch file. When it's found it is then executed. A batch
file of this name *must* be in any directory that a user can
attempt a [S]hell-to-DOS from.
5.12 TinyHost Doesn't Hangup
If TinyHost doesn't hangup (disconnect) after a call is
complete, the problem is probably due to a lack of a modem hangup
string specification in the TINYHOST.CFG file. Refer to Section
2.5 (Modem Requirements) for further information.
6.0 MISCELLANEOUS INFORMATION
6.1 What is Shareware?
TinyHost is being released as Shareware, which means that you
can try the program out *before* you buy it and make sure that it
will do what you want. If you find it of use, you are requested
to mail a contribution ($25 suggested) to the author to support
the continued development of this and other products. Please send
a check or money order (U.S. funds only) to:
Bruce A. Krobusek
5950 King Hill Drive
Farmington, NY 14425
For your $25 you will receive the latest registered version
of TinyHost on either 5 1/4 (360K) or 3 1/2 (720K) media (please
specify). The registered version of TinyHost has basically the
same functionality as the Shareware version, but:
Page 28
* Supports up to 100 users
* Includes the Screenblanker and Sound On/Off functionality
* Has exit delay removed
* Has registration reminder text removed
You will also receive a registered version of the next major
release of TinyHost, and notifications of future upgrades.
A ready-to-print registration form has been included with
TinyHost. Simply print out REGISTER.FRM using the DOS PRINT
command, fill it out, and return it with your check or money
order.
For those interested, quantity discounts are available.
Custom versions of TinyHost can also be created. Contact the
author for more information.
6.2 Distributing TinyHost
Even though TinyHost is Shareware it remains a
copyrighted program. As such, it may be freely copied and
distributed under the following guidelines:
* The author retains the sole right to sell the program
for a profit.
* The author grants users the right to copy and distribute
the Shareware (Unregistered) version of TinyHost so long
as all program and documentation files remain unaltered
and are distributed as a group.
* The program may not be bundled with any other hardware
or software without the permission of the author.
* Recognized users groups may charge a maximum of $5 for
duplication and/or distribution of TinyHost.
Registered users are requested to distribute only the
Shareware (Unregistered) version of TinyHost. There is no major
difference in functionality.
6.3 License Information
Unregistered users are granted a 60-day evaluation period.
After that time, they are expected to either register TinyHost or
cease using it.
Registered users may use TinyHost on more than one machine,
as long as there is no possibility of more than one copy being in
use at a time. Site licenses are available.
6.4 Warranty Information
The author (Bruce A. Krobusek) disclaims all warranties
expressed or implied as to the quality and performance of this
program (TinyHost). The author will not be held liable for any
lost profits, lost savings, or any other direct, indirect,
incidental, or consequential damages resulting from the use of
Page 29
this program. Your use of this program constitutes your agreement
to this disclaimer and your release of the author from any form
of liability or litigation.
6.5 Program Support
Now that the legal technicalities are out of the way, let me
state that I have done my best to ensure that TinyHost is error
free. However, that is not to imply that one might not find
errors that have been missed. If a problem should be found,
contact me through one of the avenues mentioned below and I will
do my best to correct it. Naturally, the more information that
can be supplied as to the nature of the bug the better chance I
will have of finding and squashing it!
I am also interested in receiving any comments or suggestions
regarding TinyHost. Although I have a few ideas for upcoming
enhancements, I am always interested in hearing what other people
think of TinyHost.
Here are some methods that can be used in contacting me,
starting with the most preferable:
TinyHost Support BBS - (716) 924-4193 USR Courier V.32bis
This is my personal BBS that is running TinyHost,
and it is available 24 hours a day. (Unless I happen
to be in the process of debugging a new release.)
Logon as NEW USER with the password GUEST. (This
may change as TinyHost Plus grows. Read the opening
screen for the latest logon and version info.)
Intelec Network - This is a national BBS network
There are nodes all over the U.S. and Canada,
with a few starting to appear in other nations.
I will monitor the Communications and Shareware
conferences for any messages addressed to me.
The latest Intelec node (BBS) list has been
included as IN-NODE.LST. There is probably a BBS
that carries Intelec near you.
CompuServe Informational Services - My account number
is 74106,1335. I usually logon daily.
Internet - via CompuServe:
74106.1335@compuserve.com
Micro Science BBS - (716) 594-1804 USR Dual Standard /
V.32bis. This Bulletin Board is located in
Rochester, NY, and is run by Larry Helber. The
latest version of TinyHost will always be available
as a free download. Do a file search (Z) and scan
for TINYHOST, or download THOST*.ZIP. There is also
a TinyHost support conference where messages can be
left and received. No BBS registration is required
for TinyHost download or support.
Page 30
Home Address - 5950 King Hill Drive
Farmington, NY 14425
6.6 New User Logons
Although TinyHost does not permit a new user to register,
there is a way to permit new users to logon. To do this, a user
account can be created, with a password, and this information can
be displayed as part of the TinyHost Welcome screen. For
instance, an account could be created with the name New User, the
password GUEST, and a security level of 0 (zero). A message could
be left as part of the TINYHOST.WEL screen stating that new users
should use this account to logon. These users would then be able
to access the files in the Start-Up directory, read Public mail,
and could leave any type of mail message. If the security levels
were set properly (the settings in the included TINYHOST.CFG file
would be fine), then the new user would not be able to do
anything else. This would be an easy way of leaving the TinyHost
system partially accessible to, for instance, the customers of a
company.
6.7 Message File Format
The TinyHost message files are standard ASCII text files.
Each file has the extension ".TH". Files for Personal mail
consist of filename made up of the user's first and last names.
The user's first name is used, with characters from the last name
being added to pad the filename for up to 8 characters (the DOS
limit). For instance, if the user's name is Joe Fabeets, then his
personal mail file will have the filename JOEFABEE.TH. Public
mail is stored in PUBLIC.TH; SysOp Comments are stored in
COMMENTS.TH.
Although TinyHost limits message input to 70 characters per
line and 20 lines, this is strictly a program limit. A message
file created off-line does not have to adhere to these
restrictions (although it is suggested that line length be kept
under 80 characters). When creating a message off-line, each line
should be terminated in a carriage return / line feed pair. The
end of the message should be marked with a period ('.') in the
first column of the terminating line, followed again by a
carriage return / line feed. This terminating period is not
displayed to the reader, but is used by TinyHost to determine the
end of the message.
By editing the Public Message file offline, the SysOp is able
to keep desired messages in the file while leaving room for new
messages.
It is important to note that the text editor used should
*not* add an End-of Text character (EOT or EOF, $1A) to the
message file. If it does then messages entered from within
TinyHost will not be added to that file.
Page 31
6.8 Logging User Activity
When the LOG feature is enable, TinyHost will keep track of
user activity in a text file called TINYHOST.LOG. This file will
be stored in the execution directory (with THOSTxxx.EXE, the
config file, etc.). Monitored activity includes all user logins
(including failures and wrong passwords), all files uploaded and
downloaded, and the times of logon and logoff. While the call is
in progress, information is stored in a file called TINYHOST.TMP.
After the user has logged off, this file is copied to the normal
log file. The file format is such that the most recent activity
is available at the beginning of the file.
6.9 SysOp Specific Notes
TinyHost offers some additional security protection that is
invisible to the SysOp. The TINYHOST.CFG, TINYHOST.LOG, and
THREMOTE.BAT files cannot be [T]yped or [D]ownloaded by users
with security levels less than that set by the SYSOP descriptor.
This adds some system protection in case a remote user gains
unexpected access to the directory containing those files.
6.10 Using TinyHost with DesqView
The author has had great success using TinyHost within a
DesqView window. Although the normal memory requirements are 150K
or so, more should be made available depending upon the TinyHost
features used. External protocols, another copy of COMMAND.COM
(when shelling to DOS), etc. all take up extra memory. Adjust the
DV memory allocation accordingly.
Also, when trying to shell to DOS from within a DV window, it
may be necessary to set the "Manage Printer Contention" option to
YES. I have no idea why - but it works.
6.11 Known Program Limits
A few areas exist where there are some known limitations:
First, I am somewhat confused as to the flexibility of
1K-XModem file transfers. The implementation within TinyHost
supports both CRC and checksum error detection, yet in the
testing that I have done I have never been able to implement a
1K-XModem checksum file transfer because the communications
package I was using did not support it. As TinyHost is currently
implemented it will attempt to start a CRC upload, and will retry
for a total of 30 seconds. If the upload does not begin in that
time it will fall back to attempting a checksum upload. However,
after TinyHost falls back to checksum it will not return to a CRC
mode of transfer. The upshot of all of this is that if it takes
more than 30 seconds to initiate a 1K-XModem upload using CRC
error checking then errors will occur and the upload will never
begin (assuming that your communications package does not support
1K checksum). If this happens simply abort the upload and begin
again.
Page 32
Secondly, file transfer errors have been observed when using
the 1K-XModem protocol at 1200 bps with Windows 3.0 and having
TinyHost running as a background task. The host machine was a
16MHz 386SX with 4Mb of RAM. These errors have *not* been seen
running TinyHost within DesqView at rates of up to 2400 bps. It
is entirely possible that by judicious time-slice selection
within Windows that this problem could be eliminated.
6.12 TinyHost Plus
An extended version of TinyHost (called TinyHost Plus) is now
available. TinyHost Plus has been created to permit adding many
advanced features that may be of interest, yet keep the original
TinyHost program the way it is - small and simple. This is not to
say that TinyHost will not be improved - just that it will not be
burdened with specialty functions.
TinyHost Plus (V1.10) presently has the following additional
features:
* The ability to dial another TinyHost/Plus system and
transfer up to 20 files (registered version; 5 Shareware),
all at a preset time, without operator assistance
* A Personal Directory option, where users of a specified
security level get their own directory that only they and
the SysOp can access remotely
* Call statistics since program execution or SysOp reset.
Number of calls (not counting the SysOp), number of
uploads and downloads, and number of [C]omments left are
displayed locally or available remotely. (Registered
version only.)
TinyHost Plus has also been released as Shareware, and is
available on the author's TinyHost Support BBS, CompuServe
(IBMBBS), and Micro Science BBS.
Page 33