Copyright: UltraPak Version 4.0 Help


Contents

Connecting a TNC

TNC Settings

Configuring UltraPak

UltraPak Menus

Function Keys

How to.....

Registering UltraPak

UltraPak Directory Structure

Remote Mode

The PBBS

The Unproto System

TNC Command Reference

Acknowledgements


Connecting a TNC

Connecting  your TNC to UltraPak is not difficult.  There are several parameters which need to be set up in both the TNC and in UltraPak correctly in order to enable proper communication between the two.

You need to take account of :

COM Port

Baud rate

Handshaking

Word length

Parity

COM Port

Choose whichever COM port suits you best.  COM 1 may have a mouse attached.  UltraPak is initially set up for COM 1, but this can be changed by clicking on the panel which displays the COM port on UltraPaks main screen or by selecting the appropriate option from the Configure menu.  COM 1 to 4 is available.   When you start up UltraPak for the first time, if the default COM port in the supplied ULTRAPAK.INI file (COM 1) is not available, you will receive an error message.  Click on OK to acknowledge the message but to let UltraPak carry on loading.  You can then change the COM port.  You will need to restart UltraPak to enable it to determine the link status of the TNCs streams.

Baud Rate

Again this is a matter of choice, though you should not set a rate lower than that which the TNC uses to communicate with the radio (normally 1200 or 9600 for VHF/UHF and 300 for HF).  UltraPak is set for 9600 baud but this can be changed by clicking on the panel which displays the current settings on UltraPaks main screen or by selecting the appropriate option from the Configure menu.  Baud rates from 300 to 19200 can be set.

Handshaking

You have two choices, as you would in connecting to any terminal program - whether to use hardware handshaking or software handshaking.  Both have advantages and disadvantages.

Earlier versions of UltraPak also needed access to the DCD line to determine the connected state of the TNC, but version 1.1 on does not.  The connect state of each stream from that version on is determined by monitoring the *** CONNECTED and *** DISCONNECTED strings sent by the TNC.

The connections to a standard 25-pin RS-232 port on a PC are listed below :

Pin 1	Frame Ground	FG
Pin 2	Transmitted Data	TXD
Pin 3	Received Data	RXD
Pin 4	Request To Send	RTS
Pin 5	Clear To Send	CTS
Pin 6	Data Set Ready	DSR
Pin 7	Signal Ground	SG
Pin 8	Data Carrier Detect	DCD
Pin 20	Data Terminal Ready	DTR

Hardware handshaking

Hardware handshaking requires the use of two handshaking lines between the PC and TNC in addition to the three lines required for data transmission (TXD, RXD and FG).  This is the only real drawback and, if this is not a problem, hardware handshaking is preferable.  The handshaking lines are RTS and CTS.  RTS is raised to indicate that the device is ready to send data.  CTS is raised to indicate that the device is ready to receive data.

If using hardware handshaking, the TNCs XFLOW command should be set to OFF.

Software handshaking

Software handshaking requires only three lines between the PC and TNC - TXD, RXD and ground (Transmit Data, Receive Data and ground).  Handshaking is achieved by control codes embedded in the data stream.  Normally Control-S (ASCII 19) stops data flow, and Control-Q (ASCII 17) starts data flow.  If using software handshaking, the TNCs XFLOW parameter should be set to ON.  The XON and XOFF characters referred to above can also be set in the TNC - these should be left as the defaults.

Setting up handshaking in UltraPak

Configuring UltraPak for either of the above handshaking methods above is simple.  Either click on the handshaking status window or click on the Configure menu and choose Port and then Handshaking.  Choose either Hard or Soft.

Remember to set the TNCs XFLOW  parameter correspondingly (ON for soft handshaking, OFF for hard)

Word length/Parity

Word length and parity are normally set to 8 data bits, 1 stop bit and no parity.  UltraPak is shipped with these settings as standard.  The settings may be changed by clicking on the settings status display or by selecting the appropriate option from the Configure menu.


Menus

UltraPak Menus

Menu Structure

File Menu

Edit Menu

Configure Menu

Transfers Menu

Options Menu

Stream Menu

Window Menu

PBBS Menu

Help Menu


File Menu

Save Settings (Sav button)

Saves all current user options (in ULTRAPAK.INI).  This option should not need to be used in normal operation, as all user options are automatically saved on exit from UltraPak if any have been changed during the current session.

 Note that if UltraPak is exited illegally, for example if the computer crashes or there is an interruption in power, then any settings modified during that session will not be saved.  For this reason, you might like to explicitly save your new settings without waiting until the end of the session.

Settings may also be saved by clicking on the Sav button or by pressing Shift-F11.

Exit (Exit button, Alt-X)

Ends the UltraPak session, prompting for confirmation if the Confirm on exit option is true.  If any user options have been changed during the session, all user options are saved in ULTRAPAK.INI.  Any open log files are automatically closed.  If there is an unsaved message in the Message Preparation Window, you will be asked if you wish to save it.

If the CONNECT log is being maintained then the time of ending the session is logged to the  CONNECT log file.  If the TNC Reset file option is selected, the TNC will be sent the commands in the file TNCRESET.SYS

The UltraPak session may also be ended by clicking on the Exit button, by pressing Alt-X, or by closing the window with the control box at the top left corner.


Edit Menu

Copy Receive Buffer (Buf button, F12)

Writes the selected contents of the Receive window (or the whole window if nothing is explicitly selected) to either the Windows Clipboard (the default), disc ,the printer or UltraPaks message buffer.

If a disc file is created,  by default it is stored in the \LOG subdirectory.

The copy buffer action may also be invoked by clicking the Buf button or pressing F12.

Note that the action is always carried out on the Receive Window for the current stream.

When selecting text to copy, you may find it useful to pause the Receive Window while you do so, otherwise any new incoming data will interfere with your selection.

Find...(Shift-F2)

Allows a piece of text to be searched for in the current Receive Window. The search may be case-sensitive or not.  If the search is successful, the text found is highlighted.

The search facility may also be invoked by pressing Shift-F2.

Find Next...(Shift-F3)

Continues a search initiated with the Find option, using the same search text.


Configure Menu

Set system time (Status display)

Runs the WINDOWS Control Panel, so that the system time can be adjusted. The system time is used by UltraPak to display an on-screen clock and to write entries to the current log file and the CONNECT log.  The format of the time display can be set to 12 or 24 hour display in User Options

The same action is invoked by clicking on the time status display

It is important to have the time set correctly, as many functions within the program depend on the system time being fairly accurate.

Set system date (Status display)

Runs the WINDOWS Control Panel, so that the system date can be adjusted. The system date is used by UltraPak to display an on-screen clock and to write entries to the current log file and the CONNECT log.  The format of the date display can be set to DD/MM/YY or MM/DD/YY in User Options.

Clicking on the date status display will also allow the date to be set.

Port Menu

User Options (F11)

Allows the user to change a variety of user-defined options within UltraPak.

The full list of options is :

Beep on Connect	Sound a beep (or WAV file) when connecting
Beep on Disconnect	Sound a beep (or WAV file) when disconnecting
Maintain connect log	Keep a log of start and end times of UltraPak sessions and times of all connects and disconnects
Type ahead	Selects whether to send each character to the TNC as it is typed, or whether to buffer entered text until a complete line is entered
Word-wrap	Automatic word-wrapping at end of line in the transmit window
Confirm on exit	Ask the user to confirm that the UltraPak session should be terminated
Annotate log file	Add log start and end times to log file
TNC INI file	Use a TNC initialisation file at UltraPak startup
TNC Reset File	Use a TNC reset file at the end of an UltraPak session
DAYTIME on startup	Set the TNCs date and time at the start of an UltraPak session (send the DAYTIME command)
Autolog	Open a log file automatically on connecting
Change TNC mode	Automatically change the TNC from COMMAND to CONVERSE or vice-versa when stream-switching
Always add sig	Automatically adds the signature file (SIGNATUR.TXT) to your messages
Streamdb/Chdouble	Selects the TNC command to double the stream switch character
Packet length	The length of packets in normal use
Screen width	The width of the transmit window (in characters).  This value doesnot  affect the receive window width
Editor	The filename of the editor to be used with UltraPak
Connect WAV file	Filename of the WAV file to be played on TNC connection
Disconnect WAV file	Filename of the WAV file to be played on TNC disconnection
Date/time format	Set date format to DD/MM/YY or MM/DD/YY and time format to 12 or 24 hour clock
Autosplit	Automatically split the Receive Window when connected to two or more stations
Split mode	Split Receive Window Horizontally or Vertically
TNCTime	Send DAYTIME command to TNC at startup
Max BBS messages	Maximum number of message number arguments to use in one Read command
Verbose	The command used by the local BBS to read messages verbosely (with routeing headers)
Connect log file	The filename, including full path, of the file to be used to log connections and disconnections

The user options may also be accessed by pressing the F11 key.

Streams

Allows the number of active Receive Windows,  and the stream-switch character and the stream or channel ID to be set up for each active window.  Also, the stream type may be set up, i.e. whether the streams are referred to as streams or channels.  Each active receive window must be allocated to a stream and a stream-switch character selected.  In this way, dual-port TNCs which have a different stream-switch character for the HF and VHF streams may be catered for.

YAPP

Allows configuration of YAPP transfers.  The packet length to be used with YAPP transfers, the YAPP timeout parameter, selection of normal or extended YAPP and auto-download may all be configured.

Remote

Configures Remote mode.  Allows selection of whether to allow remote access, maintenance of a log of remote activity, remote prompt and access to edit the remote authorisation, information and help files.

Unproto

Configures how FBB unproto message headers are handled.  Configures the following:

The BBS to monitor

The string to monitor for in incoming data

The last received message number

The life of messages in the message list in days

The maximum number of messages allowed in the message list

Selection of monitoring or not

Selection of status display or not

Allow resynchs

Maintain a resynch log

Whether to use a time schedule for downloads

Access to edit the schedule, auto-selection and auto-rejection files

Whether to collect private message headers

Whether to add private message headers to the Read list automatically

Colours Menu

Fonts Menu

PBBS

Allows the PBBS to be configured.  For a full description of the configuration of the UltraPak PBBS, see the PBBS configuration section.


Port Menu

COM Port (Status display)

Allows the COM port to be changed.  Valid ports are 1,2,3 and 4.  If a non-existent port, or a port used by another application, is selected an error is signalled.

The COM port may also be changed by clicking on the relevant status display on the main screen.

Handshaking (Status display)

Allows the method of handshaking to be set for the active port.  Valid methods are None, Hardware, Software or Both.

The handshaking method may also be changed by clicking on the relevant status display on the main screen.  The TNCs XFLOW parameter should be set OFF if hardware handshaking is chosen, and ON for software (XON/XOFF) handshaking.

Settings (Status display)

Allows the speed (baud rate), parity, number of data bits and number of stop bits to be set for the current port.  An invalid combination of settings will cause an error to be signalled.

Valid values are :

Speed :  300, 600, 1200, 2400, 4800, 9600 or 19200 baud

Parity :  None, even, odd, mark or space

Data bits :  6, 7 or 8

Stop bits :  1, 1.5 or 2

The settings may also be changed by clicking on the relevant status display on the main screen.

Buffers

Allows setting of the buffer sizes, in kilobytes, for the input (receive) buffer and output (transmit),buffer.  The minimum size is 1 kilobyte, the maximum size is 16 kilobytes.  Normally, the UltraPak defaults are sufficient.


Colours Menu

Receive Window Background

Modify the background colour of the Receive windows.

Receive Window Text

Modify the text colour of the Receive windows

Transmit Window Background

Modify the background colour of the Transmit window.

Transmit Window Text

Modify the text colour of the Transmit window


Fonts Menu

Receive Window

Modify the font and/or font attributes (bold, italic etc.) for the Receive windows text.

Transmit Window

Modify the font and/or font attributes (bold, italic etc.) for the Transmit window text.


Transfer Menu

Connect/Disconnect (Con button)

Toggles between the connect and disconnect command, depending on the TNCs current connect status for the stream.  If connected, UltraPak sends a Ctrl-C to put the TNC into command mode, and follows that with a D to force a hard disconnect.

If the TNC is not connected, UltraPak will display the current Connect List, allowing the user to choose the station to connect to or modify the connect list itself.  Note that the Con command button itself reflects the state of the TNC, being illuminated red if connected.  Also the connect LED at the bottom centre of the screen will illuminate red when connected.  The status displays reflect the connected state of the current stream.

The connect list is stored in a file called CONNLIST.TXT in the UltraPak home directory.

Connection and disconnection may also be invoked by clicking on the Con button.

Ascii Menu

YAPP Menu


ASCII Menu

Upload (Up button, F5)

Sends an ASCII text file to the TNC.  The file will be appended with a Control-Z character automatically by UltraPak.  The default directory in which uploaded files are fetched from is the \TXT subdirectory.

ASCII uploads may also be invoked with the Up button or F5.

If using UltraPak with no local echo and the TNCs ECHO ON (not recommended), you may find that the display in the Receive Window of the file sent is corrupted.  However, the text actually transmitted by the TNC is correct.

Download (Dwn button, F4)

Downloads and stores to disc an ASCII text file.  The default directory in which downloaded files are located is the \TXT subdirectory.

ASCII downloads may also be invoked with the Dwn button or F4.


YAPP Menu

Upload (Yup button, F7)

Sends a binary file, using the YAPP protocol.  A file transfer window opens when the transfer begins and continuously shows the status of the transfer, closing automatically when the transfer is complete. The menu item is disabled if the TNC is not in a connected state on the current stream.

By default, binary files are uploaded from the \BIN subdirectory.

YAPP uploads may also be invoked with the F7 key and the Yup button.

Download (Ydn button, F8)

Receives a binary file, using the YAPP protocol.  A file transfer window opens when the transfer begins and continuously shows the status of the transfer, closing automatically when the transfer is complete. The menu item is disabled if the TNC is not in a connected state on the current stream.

By default, binary files are downloaded into the \BIN subdirectory.

YAPP downloads may also be invoked with the F8 key and the Ydn button.


Options Menu
.

Options Menu

Print (Prt button)

Toggles the printer on and off.  When ON, everything that appears in the Receive window will be echoed to the printer also. The Prt command button reflects the state of the Printer toggle, being illuminated red if the toggle is ON.

The printer may also be toggled on and off with the Prt button.

The WINDOWS Print Manager may be invoked if necessary by clicking on the PMn button.

Log to disc (Log button, F2)

Toggles disc logging on and off.  When ON, everything that appears in the Receive window is also logged to disc.  If the Annotate log file option is chosen, then the time of opening and closing the log file is inserted into the log also. The Log command button reflects the state of the disc log toggle, being illuminated red if the toggle is ON.

By default, log files are stored in the \LOG subdirectory.

This toggle can also be operated with the Log button or the F2 key.

Set TNC Date/time (Day button)

Sends the DAYTIME command to the TNC, thus setting its time to that of the PC.  The menu item is disabled if the TNC is in a connected state on the current stream.

The action may also be invoked by clicking the Day button.

Note that if the TNCTime option is selected in the User Option window then the DAYTIME command is sent automatically at startup.

Prepare Message (Msg button, F3, Double-click Transmit Window)

Displays the Prepare Message screen, allowing the user to compose a message with a simple word-processor before either sending it straight to the TNC or storing it on disc for later use.  The width of the message window is defined by the Screen Width user option.

Note that word-wrapping is always invoked when using the Message Preparation facility, regardless of whether the Word Wrap option is selected or not..

This facility can also be invoked with the Msg button, the F3 key or by double-clicking on the Transmit Window.

Scripts Menu

Utilities Menu


Utilities Menu

DOS (DOS button, F9)

Shells out of the UltraPak session and into DOS.  The UltraPak session may be resumed by typing EXIT at the operating system prompt.

The operating system may also be accessed by clicking the DOS button or by pressing the F9 key.

Editor (Edit button)

Runs the editor as defined in User Options.  The default is the Windows Notepad, but any editor may be specified.

The editor may also be accessed by clicking the Edit button.

If the filename an/or path specified for the editor in User Options is invalid, UltraPak will flag an error.

File Manager (Fmn button)

Runs the Windows File Manager.

The File Manager is also accessed by clicking the Fmn button.

Print Manager (Pmn button)

Runs the Windows Print Manager.

The Print Manager is also accessed by clicking the Pmn button.


Stream Menu

Window n  (Alt-n,  Stream button n)

Switches the current output stream to n, where n is one of  the windows 0 to 9.  The actual stream or channel switched to depends on how streams have been set up.  The associated Receive Window will be displayed, or if the Receive Window is split and the new stream window is already displayed, any typed output to the TNC will be sent there.

The current stream is always ticked in the menu list.  Streams which are not active will be greyed out (disabled).

Show stream assignments

Displays a window showing the current assignment of streams or channels to each active Receive Window.

Verify Stream Status  (Ver button, Shift-F12)

Verifies the status of the current TNC stream or channel by issuing the CONNECT command to the TNC and monitoring the response.  All displays and button statuses are updated accordingly.  If AutoSplit is on and the verification finds  two streams connected, the Receive Window will be split.  Also, autologging will be activated if necessary.

You should use the stream verification if you suspect that UltraPak has been fooled into recognising a connection or disconnection falsely.  This can happen (though it is unlikely) where the *** CONNECTED or *** DISCONNECTED strings occur in received text.  It can also happen that UltraPak will miss a disconnection if it is transferring a binary file, as incoming data is passed directly to data buffers, bypassing the normal screen buffers.

Stream verification may also be performed by clicking the Ver button., or by pressing Shift-F12.


Window Menu

Split/Unsplit Receive Window  (Win button, Shift-F5)

Splits or unsplits the Receive Window.  If splitting, the choice of which window to place at the top (or left) and bottom (or right) is given, and the split mode can be chosen (horizontal or vertical).  Splitting can be done automatically when two connections are established by enabling the AutoSplit option.  Whenever the Receive Window is split, the identity of each window can be found in the two pairs of small panels to the left of the UltraPak title panel just above the Receive Windows.

The Receive Window may also be split and unsplit with the Win button or by pressing Shift-F5.

Go to Other Window  (Shift-F1)

Shifts the current stream to the one associated with the other Receive Window.  This option is only available when the Receive Window is split.

Shift-F1 will also switch to the other window.

Change Split Mode  (Shift-F4)

Changes the Receive Window split mode.  If set to horizontal split, changes to vertical, and vice-versa.

Shift-F4 also changes the split mode.

Pause/unpause Window (Shift-F6, Scroll Lock)

Holds all output from appearing in the current Receive Window.  Output is temporarily buffered until the window is unpaused.  While the window is paused a red PAUSED legend appears in the centre of the window. The window is unpaused by selecting the menu item again.  Sending any output to the Receive Window locally, i.e. from the keyboard, will automatically unpause the window, as will switching streams.  The temporary buffer will hold about 10 kilobytes of data and when the buffer reaches about 7 kilobytes the colour of the PAUSED legend will turn from red to yellow.  When the buffer reaches 10 kilobytes, the window is unpaused automatically.

Clear Receive Window (Clr button, F6)

Clears the current Receive Window.

The Receive Window may also be cleared by clicking the Clr button or by pressing the F6 key.

Note that the text, once cleared, is not  recoverable.


PBBS Menu

Forward

Initiates a forwarding session from the PBBS.

Show forwarding/downloading schedule

Displays the entries in the schedule file (SCHEDULE.SYS).  The next time when forwarding or downloading will occur is highlighted with an arrow (<==)

Sysop

Accesses the PBBS.  The same function is achieved by clicking the BBS button.

Clean up PBBS

Removes any orphaned message files from the PBBS area.


Unproto Menu

View Message list

Displays the current Message list.  Note that the list is processed first to remove any time-expired headers and remove any headers to limit the number to the allowed maximum.

View Read list

Displays the current Read list.  Entries in the Read list may have been added manually by you or automatically if you have an auto-selection file active (MSGSEL.SYS)

Read

Initiates a downloading session with the local BBS.  Note that if there are no message headers in the Read list, this command will be ignored.

Resynch

Manually forces a resynch packet to be sent.

Message list positions

Allows the positions of significant fields in the headers broadcast from the local BBS to be defined.


Help Menu

Contents

Displays the HELP contents screen.

Search for help on....

Displays the Search Dialog box.

Show function keys

Displays a window showing the assignment of function keys within UltraPak.  By holding down the Shift or Control keys, the shift-function key and control-function key assignments may be displayed.  Clicking on the Shift or Control buttons achieves the same result.  The window may optionally be forced to remain visible at all times by checking the Always on top box.

Register...

Displays the registration screen and allows the registration number and key to be entered.

About....

Information about UltraPak.

How to Use Help

Help on Help.


Function Keys

The functions keys F1 to F12 are used in UltraPak for the following functions :

Key	Function
F1	Help
F2	Log to disc (toggles ON/OFF)
F3	Prepare a message
F4	Download an ASCII file
F5	Upload an ASCII file
F6	Clear the Receive window
F7	Upload a binary file using YAPP protocol
F8	Download a binary file using YAPP protocol
F9	Shell out to DOS
F10	Access the menu bar
F11	Set User option
F12	Copy the receive buffer (to clipboard/disc/printer)
Shift-F1	Switch to other window
Shift-F2	Search for text in Receive Window
Shift-F3	Continue search initiated with Shift-F2
Shift-F4	Swap split mode (Horizontal/Vertical)
Shift-F5	Split/unsplit the Receive Window
Shift-F6	Pause/unpause the Receive Window
Shift-F7	Edit a script file
Shift-F8	Syntax check a script file
Shift-F9	Execute a script file
Shift-F10	Menu bar
Shift-F11	Save user options
Shift-F12	Verify stream status
Ctrl-F1	Displays the function key assignments window

Function key assignments can be conveniently displayed by selecting the Show function keys item from the Help menu or by pressing Ctrl-F1.  A window is displayed which lists the keys F1 to F12 and their functions.  Holding down the Shift or Control keys will display the Shift-F key or Control-F key combination and its function respectively.  Holding down the mouse button while on the Shift or Control buttons achieves the same effect.  You may keep the window on top by checking the Always on top box.


How to.....

Start UltraPak

Initialise and reset the TNC

Connect and disconnect

Use a CONNECT log

Prepare Messages

Use Word-wrap

Transfer ASCII Files

Transfer binary Files (YAPP)

Capture data to disc

Print

Use theStatus Displays

Use Multiple Receive Windows

Set User Options, Colours, Fonts

Use the Button Bar

Read BBS messages

Search for text

Copy text from the Receive Window

Use script files

Access other programs

End UltraPak


Starting UltraPak

UltraPak is started in the normal manner by double-clicking on the UltraPak icon or RUNning the program from the Program Manager.

There is a few seconds delay while UltraPak loads in the user options from ULTRAPAK.INI and loads in any connect list.  Additionally, if the TNC initialisation option has been specified then the file TNCINI.SYS is read and the commands within it sent to the TNC.  If the TNCTime option is selected then the DAYTIME command is sent to the TNC to set its date and time from the P.C. clock.

It is possible that errors may be generated at startup  - for instance if the TNC initialisation option has been specified and the TNCINI.SYS file cannot be opened, or the COM port specified is not valid.  Also, if ULTRAPAK.INI has become corrupted or accidentally deleted an error is flagged and the program will abort immediately.  In this case, if the file cannot be recovered, you should create a blank file called ULTRAPAK.INI in your WINDOWS directory and restart UltraPak.  The program will then resort to default values.

If UltraPak is unable to communicate with the TNC, either because the selected COM port  is invalid or in use, or because the baud rate/parity settings etc. are not correct (or the TNC is not connected to the computer !), then a warning is displayed and the option is given to either abort UltraPak or to carry on and run it anyway.  If settings need amending then you should of course run UltraPak anyway.

UltraPak determines the current state of each stream (connected or not) at startup and automatically splits the Receive Window if connected to two or more stations and AutoSplit is selected.  If Autologging is on and at least one stream is connected then a log file will be automatically opened.


TNC Initialisation

TNC Initialising and resetting

UltraPak offers the user the opportunity to send commands to the TNC every time that the program is started and when the program ends.  These commands are stored in files called TNCINI.SYS and TNCRESET.SYS respectively.

UltraPak is shipped with TNCINI.SYS and TNCRESET.SYS files, which are bare except for comments.  It is up to the user to prepare a custom version of each file for their own use.

The format of both files is similar and is one valid command to the TNC on each line.  Any line commencing with a hash (#) will be regarded as a comment and ignored.  All other lines will be sent to the TNC as if typed at the keyboard and it is the users responsibility to ensure that each line is syntactically correct.

If the TNC initialisation or reset option has been specified and the TNCINI.SYS or TNCRESET.SYS files cannot be opened, UltraPak will flag an error.

A sample TNCINI.SYS file might look like this :

# This is a sample TNCINI.SYS file

#

MYCALL G9XXX

MYPCALL G9XXX-1

ECHO OFF

#

# etc., etc.

Generally, since the TNC should store all settings in battery-backed RAM, it is not usually necessary to re-initialise it every time it is started up (though UltraPak will send the date and time automatically every time if TNCTime is selected).  Since UltraPak needs certain TNC settings to be correct in order to work properly, it might be useful to set those parameters up in a TNCINI.SYS file so that in the event of the TNC losing its settings it is simple to reload them.  Also, you may use more than one terminal program with your TNC.  In this case, it might be useful to send commands to change certain TNC parameters on exiting UltraPak by putting them in TNCRESET.SYS.

Choosing whether to initialise the TNC at startup and reset it on exit is done from the User Options window, selected from the Configure menu or by pressing F11.

UltraPak expects the TNCINI.SYS and TNCRESET.SYS files to be in the home directory, and will flag an error if it cannot find them there.


Connecting/Disconnecting

Connecting and disconnecting

There are several ways of issuing the CONNECT command to the TNC from UltraPak.

1)  Type the command at the keyboard.

2)  Take the Connect option from the Transfer menu.

3)  Click the Con button.

Options 2) and 3) will display the Connect List box, from which the user can select the station to connect to.  Click on the required stations entry in the list and then click the Connect button, or double-click on the entry.

The Connect List is also maintained from this window.  The Connect List is intended to be a friendly interface to issuing the connect command to a user-defined list of stations who are contacted frequently.  The list consists of two entries for each station  -  a simple mnemonic for the station and a string which is either a simple connect command, or a script file name if the station can only be connected to via nodes.

Adding a new station to the Connect List

1.	Click on the Add button

2.	In the maintenance window, enter the new stations description and the string to issue to the TNC to connect to the station.  Do not include the connect command itself, just the callsign and any digipeater station callsigns.

3.	Click the OK button.

For example, if you are adding an entry to the list for Freds PMS, you might enter the following:

Station :  Freds PMS

Connect string : G9XYZ-1

Alternatively, if you can only reach Fred by connecting through a node or two, you can create a script file to do the job for you and enter that script file name instead of a simple connect command.  The script file must end .SCT and UltraPak will recognise it as a script and execute it.

In this case, your entry for Fred might look like this:

Station :  Freds PMS

Connect string :  FRED.SCT

Amending an entry in the Connect List

1.	Click on the Amend button

2.	In the maintenance window, amend the entry for the station description and/or the connect string as required.

3.	Click the OK button

Removing an entry from the Connect List

1.	Click on the entry in the list to be removed to highlight it

2.	Click the Remove button

You may have up to 50 entries in the Connect List.  You should note that a null entry in either the station description or the connect string will not be allowed.

The Con button reflects the TNCs connect state for the currently selected stream by illuminating red when the TNC is connected.  Similarly the CONNECT LED at the bottom centre of the UltraPak screen illuminates.  Finally, the Connect Status panel and the status panel by each stream button indicate the station connected to.

The Con button and the menu act as a toggle.  Clicking either when connected will put the TNC into command mode and issue the D (for Disconnect) command, forcing a hard disconnect.

UltraPak can be configured to beep when the TNC connects or disconnects or both.  The beep issued may be either the default or a WAV file may be specified for either occurrence.  The absence of a valid WAV filename will cause the default beep to sound.  These options are set up in the User Options window, displayed by pressing F11.

Note:  If using a PC speaker driver (such as SPEAKER.DRV) to play WAV files, you will need to make sure that interrupts are enabled while the sound is playing, otherwise you may get PORT OVERRUN errors and lose incoming data when a sound is being played.  In the case of SPEAKER.DRV, this option can be enabled from Windows Control Panel (click on DRIVERS).

If the option has been taken to maintain a CONNECT log file then an entry will be written into the file at each connect or disconnect.  If AUTOLOG is set on, a log file will be opened when at least one stream is connected and closed when all streams are disconnected.


Connect Log

The CONNECT Log

UltraPak offers the user the option of maintaing a log of activity, i.e. logging the date and time of starting and stopping UltraPak and logging all connections and disconnections, including the stream id.

The log is maintained in a file specified by the user,  the default is CONNECT.LOG, located in the UltraPak home directory.

A typical extract from the CONNECT log looks like this :

Jul 9, 1994, 11:12:10        Connected to NNLAN  (STREAM B)

Jul 9, 1994, 11:23:14        Disconnected

Jul 9, 1994, 11:23:21        Connected to NNLAN  (STREAM B)

Jul 9, 1994, 11:29:18        Disconnected

If the option is used, it is recommended that the user keep watch on the size of the log file as it grows rapidly !  It is quite useful to maintain the CONNECT log on floppy disc as this may then help to satisfy licensing conditions regarding logkeeping

The CONNECT log option and the CONNECT log file name are set from the User Options window.


Preparing Messages

There are several ways of preparing messages in the UltraPak environment.  At the simplest level, the user can type character-by-character, each character being sent to the TNC immediately.  To do this, set the Type-ahead option in User options OFF.  Alternatively, if the Type-ahead option is selected, text can be typed and edited a line at a time in the Transmit Window, each line being sent to the TNC either when the Enter key is pressed or the text reaches the end of the line.  The width of the Transmit Window is determined by the Screen Width setting in User Options.  Which method is used is at the operators preference, but generally it is much more convenient to set Type-ahead ON and use the facility to edit the line before its sent to the TNC.  Also, the word-wrap facility can then be used.

Text typed in the Transmit Window will be word-wrapped if the Word-wrap option is specified.

If a message is to be prepared for later transmission (rather than on-line), it is possible to either use the editor, accessed by using the Edit button or from the Utilities option of the Options menu, or to use UltraPaks in-built message preparation facility.  If the external editor is used, the users choice of editor program can be specified in User Options

UltraPaks own message preparation facility is very convenient.  The facility is accessed by clicking on the Msg button, from the Prepare Message option on the Options menu or by double-clicking on the Transmit Window.

The message text is entered into the message window, with simple word-processing type facilities available.

 The  width of the Message Window is determined by the Screen Width setting in User Options, but can be varied as required while preparing the message by using the scroll bar.  The minimum width is 20 characters, the maximum is 80 characters.

When the text is prepared, the user can choose to send it to the TNC immediately, with the Send button, or store it on disc with the Save button.  Clicking the Clear button will clear the Message Window.   Alternatively, you can quit altogether, which will lose the current message and return you to the main window, with the Quit button, or hide the window but keep the current message with the Keep button.  If you choose Quit, and there is an unsaved message in the Message Window, you will be asked whether you would like to save it.  If you have selected the Always add sig option in User Options, whenever you clear the Message Window, you will always have the signature file (SIGNATUR.TXT) displayed.  If you prefer not to work like this, you can manually add the signature to a completed message by clicking the Sig button.

Text can be imported into the Message Window with the File button.  Clicking this button will display a file dialog box.  Choose the file to be loaded and click OK.  The file will then be inserted into the Message Window at the current cursor position.

The size of the text buffer for preparing the message is approximately 25 kbytes, and the proportion used is displayed in the bar beneath the window.

The message can be optionally appended with the Control-Z character (the default) by checking the box.


Word-wrap

User Options gives the choice of whether to use automatic word-wrapping or not.  Word-wrapping ensures that the text sent to the TNC will not have individual words broken because an end-of-line has been reached.

When using the Transmit Window to send text, the line typed will be word-wrapped if the word-wrap option is specified.  When using the Prepare Message facility, text will be word-wrapped regardless of the setting of the word-wrap option.

The point at which words will be wrapped is determined by the Screen Width setting in User Options.


ASCII File Transfers

UltraPak allows the transfer of ASCII files to and from disc.  Uploads can be invoked by clicking the Up button,  by selecting the ASCII option on the Transfer menu and clicking on Upload, or by pressing F5.

Downloads are invoked by clicking the Dwn button,  by selecting the Download menu item from the ASCII option under the Transfer menu, or by pressing F4.

By default, ASCII files for transferring are located in the \TXT subdirectory.

ASCII files being uploaded are automatically appended with a Control-Z character.

The Download feature is only available when the TNC is connected to another station.

For binary file transfers, e.g. programs or images, you should use the YAPP transfer facility.


YAPP File Transfers

Binary files (e.g. program files, images etc.) may be transferred via the YAPP protocol.  UltraPak supports this protocol and allows both uploads and downloads to be carried out.

Uploads and downloads can be initiated by choosing the YAPP option from the Transfer menu and clicking the appropriate menu item, by clicking on the Yup or Ydn buttons or by pressing F7 (Upload) or F8 (Download).

By default, binary files for uploading and downloaded files are stored in the \BIN subdirectory.

Note that you should wait for the appropriate prompt from the BBS before initiating the transfer, i.e wait for the BBS to say something like :

Ready to send file with YAPP protocol

When a transfer is initiated, UltraPak sends some commands to the TNC  :

CONOK OFF   (to prevent further connect attempts)

STREAMDB OFF   ( to prevent doubling up of the STREAMSW                   	        character)

TRANS   (to put the TNC into TRANSPARENT mode)

Additionally, when uploading, UltraPak sends PACLEN  n1,  where n1 is the YAPP packet length specified in User Options.

When returning from an upload, UltraPak will send PACLEN n2, where n2 is the normal packet length specified in User Options.

The YAPP file transfer window shows the name of the file being transferred, its size in bytes, the status of the transfer and the number of bytes transferred.  Additionally, for downloads only, the window shows the transfer rate, in bytes/sec.

The transfer may be aborted by clicking on the Abort button.  Note that aborting may take a while, depending on what data has been buffered.  If you want to abort the operation immediately then click the Kill button.  This will send the abort code to the other station and bring the TNC out of transparent mode regardless of what state the transfer is in.  If you abort or kill a download, you will probably find that the Receive Window will display a lot of garbage as the sending station empties its buffers before aborting.

The YAPP Timeout parameter is set by the user and is measured in seconds.  If, during a YAPP transfer, a period of inactivity reaches or exceeds the Timeout parameter the transfer will be aborted.  YAPP timeout is set in User Options.

IMPORTANT

You cannot operate multi-connects while transferring files with YAPP.  The normal stream-switch processing is entirely disabled.

Extended YAPP

From version 4.0 onwards, UltraPak offers extended YAPP protocol support.  This refers to the extensions to YAPP documented in the FBB BBS system.  What this comprises is two enhancements to the standard YAPP protocol as originally devised by WA7MBL:

1)  A checksum is added to each data block sent to further ensure the integrity of the transmitted data.  Remember that portions of the data path (e.g. the RS232 connection between your TNC and PC) are still unprotocolled!

2)  The ability to resume from a crash.

The second option is extremely useful.  If you are transferring a 100 kbyte file from your BBS and the transfer fails after you have downloaded 95 kbytes, it is annoying to say the least to have to restart it from the beginning!  Using extended YAPP, you would restart the transfer as normal, and UltraPak would detect that the file was partially downloaded already and negotiate with the remote system to resume the transfer at the point where it failed.

Using extended YAPP

There is little that you need to do to use extended YAPP.  Access the YAPP configuration window by selecting YAPP   from the Configure   menu, and select the Extended YAPP box.

Whenever you perform a YAPP transfer, UltraPak will detect whether the remote system is able to use extended YAPP and will automatically use it if possible.  The YAPP transfer status window will always tell you which protocol is being used - extended or normal.

Auto-download

There is an option in the YAPP configuration window to select Auto download.  What this means is that if UltraPak detects the YAPP INIT packet in incoming data, it will automatically initiate a YAPP download.  Generally it is better to leave this option off, to guard against a false triggering (though that is highly unlikely), but if you use Remote mode and want to allow remote users to upload binary files to your system you must select this option.

Error logging

YAPP transfers are sometimes awkward to get working straight away - frequently you need to make some configuration change to the TNC, e.g. handshaking method.  To assist you in determining where your YAPP transfers may be going wrong, an error log file is created and updated by the system and will give you some guidance as to just why the transfer is failing.  The error log for YAPP is called YAPP.ERR and is found in your UltraPak home directory.


Logging to Disc

Capturing data to disc

The Log button, or the Log to disc option from the Options menu allows logging of all data which appears in the Receive Window to disc.

The button, or menu option, acts as a toggle, so that logging to disc is alternately turned ON and OFF.  The status bar at the lower left of the display will indicate the current logging status and the Log button illuminates red if logging is active.

The F2 key also toggles logging activity.

If the Annotate log file option has been specified, then the log file will have the start and end time of the logging session stored.

By default, log files will be stored in the \LOG subdirectory.

Autologging

It is possible to set UltraPak to automatically open a log file every time a connection is established and close it again when a disconnection occurs.  This is sometimes useful, as it means that only activity during connections is logged. The option is set by checking the Autolog box in User Options.  The filename is set as UPKMMMDD.LOG, where MMM  is the month abbreviated to three letters, and DD  is the day of the month as a two-digit number.  The file is appended to as many times as necessary during the 24 hour period.  After 0000z a new file is opened.

If operating multi-connect, the Autolog file is opened at the first connection and is not closed until all stations are disconnected.

If Autolog is ON and you already have a log file open when you connect, the log file is left open and is not closed on disconnection, i.e. manual logging always overrides autologging.

Autolog files are located in the \LOG subdirectory.


Printing

The Prt button, or Print from the Options menu, acts as a printer toggle.  When ON, everything sent to the Receive Window will be printed to the printer.  There is no printer setup facility within UltraPak - all printing is delegated to the Windows Print Manager.

When printing is ON, the Prt button illuminates red as a reminder.  Also the status display at the bottom of UltraPaks main screen shows the Printer as ON or OFF.

Note that the WINDOW Print Manager can be invoked from UltraPak by clicking on the Pmn button.

If Print Manager is disabled and there is no printer connected or it is off-line, UltraPak will flag an error.


Status Displays

UltraPak has many panels displaying the status of the COM port, whether disc logging is active, who the TNC is connected to etc.   The displays are organised as four rows of panels, one above the Receive Window and three below the Transmit Window

Working from the left hand side of the screen, the top row of displays are:

Date	The current date, in the format DD/MM/YY   ACTIVE
Time	The current time, in the format HH:MM:SS     ACTIVE
Windows	Two pairs of panels which show which window is at the top (left) and bottom (right) of a split window display
COM Port	The currently selected COM port    ACTIVE
Port Settings	The currently selected settings of baud rate, data bits, parity, stop bits  ACTIVE
Handshaking	Type of handshaking selected   ACTIVE
Screen Width	The width of the Transmit Screen in characters
Mail	Warning that unread mail exists in the PBBS

Immediately beneath the Transmit Window are the ten buttons and the associated displays for the TNC stream status.  Each panel shows the callsign of the station connected on that stream.

Beneath the stream displays, working from left to right are:

Top row:

PMS status	The callsign of the station connected to the PMS, if any
Logging	Shows the status of disc logging
Printer	Whether the printer is ON or OFF
Current Stream	The stream currently selected for output
Connect status	The connect status of the current stream

Bottom row:

PBBS status	Displays the callsign of the station logged into the PBBS
Help	Displays a simple, context sensitive help prompt
Port Errors	Shows the last encountered port error.  Port errors are abbreviated thus: PO    Port Overrun PE    Parity Error FE    Framing Error RB   Receive buffer full TB   Transmit buffer full         ACTIVE
Connect LED	A simple LED type display to indicate the TNCs connected state
General	A general display of status where procedures are being carried out - e.g. ASCII file transfers
Receive Window buffer	Displays the percentage used of the Receive Window buffer for the current stream.
Windows resource monitor	Displays continuously the percentage of Windows resources used.

Several of the displays are ACTIVE, in the sense that by clicking the mouse when the cursor is over the display some action will be taken.  Generally, these are configuration options.  For instance, clicking on the COM port display will allow you to select a new COM port.  Clicking on the time display will run the WINDOWS Control Panel allowing you to change the system time.  (The port error display is only active in the sense that clicking on it clears the error display).

An active display can always be recognised by the mouse cursor changing to a vertical arrow when over the active display.


Options, Colours, Fonts

User Options, Colours, Fonts

Much of the UltraPak environment is definable by the user.  A range of options determine whether the programs announces connects and disconnects audibly, the width of the Transmit Window, whether transmitted text should be word-wrapped etc., etc.

Additionally, the colour and font used in both the Transmit and Receive Windows is completely under the control of the user.

It is likely that future releases of UltraPak will see more and more control passed to the user.  All user-defined values are stored in the initialisation file, ULTRAPAK.INI

User-defined options in Version 3.0

Parameter	Default	Purpose
~~~~~~~	~~~~~	~~~~~~
Beep on connect	No	Announce when TNC connects
Beep on disconnect	No	Announce when TNC disconnects
Maintain connect log	No	Keep a log of stop/start and all connects and disconnects
Type-ahead	Yes	Uses the Transmit Windows type-ahead buffer, so that a whole line can be typed and edited before sending to the TNC.  If OFF, each character typed is sent to the TNC immediately.
Word-wrap	Yes	Wrap transmitted text at whole words
Confirm on exit	Yes	Prompt the user to confirm that he/she wishes to exit
Annotate log file	Yes	Log start and end times of log sessions
TNC INI	Yes	Send TNC initialisation commands from a file
TNC RESET file	No	Send TNC reset commands from a file
DAYTIME on startup	Yes	Set the TNCs date and time on starting an UltraPak session
Autolog	No	Log all activity while connected
Change TNC mode	No	Automatically change the TNC mode from COMMAND to CONVERSE and vice-versa when switching from unconnected to connected streams and vice-versa
Always add sig	No	Adds the signature file (SIGNATUR.TXT) to the Message window whenever the window is cleared.  An error is flagged if the file SIGNATUR.TXT does not exist.
AutoSplit	No	Automatically split the Receive Window when connected to more than one station
Split Mode	H	Split the Receive Window Horizontally or Vertically
Streamdb/Chdouble	STREAMDB	Command to double received stream-switch characters
Packet length	128	Maximum packet length - normal operation
Screen width	75	Maximum line length in Transmit Window
Editor	NOTEPAD.EXE	Filename of editor to be used
Connect WAV file	None	Filename of WAV file to be used for connect bell sound
Disconnect WAV file	None	Filename of WAV file to be used for disconnect bell sound
Date/time format	DD/MM/YY 24 hour clock	Set the date format to DD/MM/YY or MM/DD/YY and the time format to the 12 or 24 hour clock
Max BBS messages	6	Maximum number of message numbers which may follow a Read command
Verbose	V	The command to issue to a BBS to perform a verbose (i.e. with routeing headers) message
CONNECT log file	C:\ULTRAPAK\CONNECT.LOG	The file in which to log connections and disconnections

User options are set up in UltraPak by pressing F11, or by selecting the appropriate item from the Configure Menu.

**  A note on fonts

Most fonts in Windows are proportionally spaced, i.e. the width taken by a character depends on what that character is, so an i will take less width than a w.  In a packet system where some data is in tabular form, such fonts may give strange, or at least unattractive, results.  For this reason UltraPak is shipped with the Terminal  and Courier fonts as default, as these are both monospaced fonts.  The Terminal font also displays graphic characters correctly.

For the same reason, the Prepare Message window is fixed Courier font.


Button Bar

The Button Bar

Most of the common functions within UltraPak are made accessible via the Button Bar, which lies just above the top row of status displays.  All options are reachable from the menus, but often it is more convenient to click on a button.  Also, some buttons double as indicators that functions are active.

The Button Bar in Version 2.2, reading from the left, performs these functions :

Con	Connect/disconnect toggle.  If not connected will allow you to connect.  If connected, will force a hard disconnect
Ver	Verify the status of the current TNC stream/channel
Up	Initiates uploading an ASCII (text) file
Dwn	Initiates downloading an ASCII (text) file
Yup	Initiates uploading a binary file
Ydn	Initiates downloading a binary file
Prt	Printer toggle.  Will turn the printer ON if off and vice versa
Log	Log to disc toggle.  Will turn disc logging ON if off and vice versa
Buf	Writes the currently selected text in the Receive Window to either the Windows Clipboard, disc, the printer or UltraPaks message buffer.  If no text is selected writes the whole Receive Window buffer.
Sav	Saves all user-defined options to disc.  Saving is done automatically on exit if any options have changed.
Pmn	Runs the Windows Print Manager.
Fmn	Runs the Windows File Manager.
DOS	Shells out to DOS.
Edit	Runs the system (user-defined) editor.
Day	Sends the DAYTIME command to the TNC - sets its time and date from the P.C.
Clr	Clears the current Receive Window.  (The text is NOT retrievable !)
Msg	Invokes UltraPaks message preparation utility.
Win	Splits/Unsplits the Receive Window
BBS	Accesses the PBBS
Exit	Exits UltraPak, saving all user-options if necessary and any connect list

Note that buttons will sometimes be disabled, depending on whether the TNC is connected or not, and what other actions UltraPak is performing.


Ending UltraPak

UltraPak can be ended by clicking on the Exit button, selecting Exit from the File menu, by pressing Alt-X, or by clicking the control box at the top left corner of the main window.

If the Confirm on exit option has been specified, you are asked to confirm that you really do want to quit UltraPak - clicking Cancel will return you to the program; click OK to quit.  All open files are closed, any entries to the CONNECT log or an open log file made and user-options saved if necessary.  If the TNC Reset file option is selected, the commands in TNCRESET.SYS will be sent to the TNC.  If any unsaved text remains in the Message Preparation Window, you will be asked if you wish to save it.

You should not normally terminate UltraPak while the TNC is connected to another station.


ULTRAPAK.INI

The initialisation file used by UltraPak to maintain user options, fonts, colours etc.  ULTRAPAK.INI should be located in the Windows  directory (normally \WINDOWS).

CAUTION !!

Be careful not to accidentally delete ULTRAPAK.INI !  UltraPak will not  start without it !  If the file should be accidentally deleted, the only course of action is to create a blank ULTRAPAK.INI in your WINDOWS directory and start UltraPak.  The program will work without problem, but will revert to default values for all user-defined options.


Registering UltraPak

How to Register UltraPak

UltraPak is distributed on a Shareware basis as an unregistered version.  This version is fully functional in all respects.  The only difference between the unregistered program and the registered one is that the unregistered program displays a registration reminder window for ten seconds every time you start the program.

It is not breaking any license agreement to continue to use UltraPak in its unregistered form for as long as you like.   It is a breach of the license to use a registered version if it is not registered to you!

I hope that you will like it enough to want to register it.

Registration costs 20 (twenty) pounds sterling.  Send a cheque, or P.O. (or cash by registered mail) to :

Tim Kearsley,

13, Newman Street,

Higham Ferrers,

RUSHDEN,

Northants,  NN10 8JP

England

In return you will receive a registration number and a key which you use to unlock UltraPak and remove the registration reminders.  The key is linked to your callsign, and you must send your callsign when registering.  Simply click on the Register... item in the Help menu, and enter the registration number, key and your callsign.  Keep both numbers safely, because if ULTRAPAK.INI gets corrupted you will need to re-enter them !

Please allow up to 14 days for turnaround, though usually its very much faster.

Note that from version 2.1 onwards, there is no separate manual for UltraPak - all help and guidance is on-line.

If possible, use the REGFORM.TXT file to register, as less problems are likely to arise when using a common format for ordering.

Remember, you must send your callsign when registering!


Baud Rate

The rate of data communication.  One baud is approximately one bit per second.

UltraPak defaults to a baud rate of 9600, but valid values are 300, 600, 1200, 2400, 4800, 9600 and 19200.


Handshaking

The means of ensuring that data is not lost between two pieces of equipment by overflow, i.e. data being sent by one piece of equipment before the other is ready.

Handshaking is done in hardware, by signals on a pair of lines, or in software by sending special Start (XON) and Stop (XOFF) signals inserted into the data stream.

UltraPak defaults to hardware handshaking but can be set to software, both or neither.


Word length

The length of each word or byte sent needs to be defined in terms of the number of data bits and the number of stop bits.

UltraPak defaults to 8 data bits and 1 stop bit, but data bits can be set to 6, 7 or 8 and stop bits can be set to 1, 1.5 or 2.


Parity

A parity bit is a bit added to the data to enable elementary error-checking.  For example, if even parity is selected, then a 1 will be added to the data if the number of 1s is odd, thus ensuring that the receiving equipment should always see an even number of 1s and enabling that equipment to recognise that an error has occurred if the number of 1s is odd.

UltraPak defaults to no parity, but can be set to Even, Odd, Mark or Space also.


COM Port

The port used on the computer for communication with external devices.  Most PCs have COM 1 and COM 2 available (though one of them may have a mouse connected) and COM 3 and COM 4 may be available also.

The COM port is for serial communication.

UltraPak will work with COM 1 through to 4.  The default is COM 1.


YAPP

The YAPP (Yet Another Packet Program) protocol was developed by Jeff Jacobsen, WA7MBL for the transfer of binary files.

UltraPak supports the original YAPP protocol and extended YAPP (checksum extension and crash resume) for binary uploads and downloads.


TNC Settings

UltraPak requires a number of TNC parameters to be specified correctly in order to function properly.

In some cases, the softwares functionality will be severely affected by inappropriate TNC settings.  The software is distributed with files (with a .TNC extension) intended to configure common TNCs correctly for UltraPak.  It is recommended that you use one of these files.

If you dont wish to use one of the config. files, the list of parameters which are important to UltraPaks correct operation are listed below.

Parameter	Setting	Comments
8bitconv	ON	Allows all 8 bits to be transmitted
Autolf	ON	Receive Window display will not function properly if not ON
Awlen	ON	Sets word length to 8 bits
BREAK	ON	UltraPak uses a BREAK signal to put the TNC into COMMAND mode.
Cbell	OFF	Not needed as the connect bell function is handled by UltraPak
Cmdtime	1	This should not be altered or UltraPak may not handle YAPP transfers properly
Command	3	If altered, UltraPak will not be able to put the TNC into COMMAND mode
Echo	OFF	This MUST  be set off or certain processing, notably the PBBS functions will be severely disrupted.
Flow	OFF	When working multi-connect, turning FLOW OFF will ensure that all windows are updated properly
Headerln	ON	Displays the information in monitored frames on a separate line from the frame header.  Essential for correct operation of the Unproto system
LCStream	ON	UltraPak requires stream identifiers to be upper case
MCON	OFF	Controls whether monitor traffic is shown when connected
Newmode	ON	Controls whether the TNC changes mode when disconnecting
Nomode	OFF	Controls the way the TNC behaves on connecting
Paclen		UltraPak has its own Paclen parameter stored in ULTRAPAK.INI.  When returning from a YAPP transfer, UltraPak will set the TNC to its own Paclen value.
Passall	OFF	Prevents the TNC from displaying corrupted packets when monitoring
Sendpac	13	UltraPak will not work properly if the Sendpac character is set to other than ASCII 13 (CR)
Start	17	The XON character.  ASCII 17 (Ctrl-Q) is normal. If a different character is used, software handshaking will not function properly
Stop	19	The XOFF character.  ASCII 19 (Ctrl-S) is normal If a different character is used, software handshaking will not function properly
Streamca	OFF	UltraPak does not expect the callsign to follow the stream-switch character.  Although stream-switching will function correctly with Streamca ON, the display will not filter out the callsigns
Streamdbl	ON	This must be left ON for the stream-switching to work reliably.  If set OFF, unexpected stream-switching is likely to occur.  KAM TNCs dont have this command available.
Streamsw	&7C	This value must match what is set in UltraPak.  Any character can be used in theory, but it is probably best to leave it as the | character (ASCII &7C)
Users	1 - 10	Should be set equal to the number of enabled Receive Windows.  Kantronics users should also set MAXUSERS to this value.
Xflow		Should be set ON for software handshaking and OFF for hardware handshaking
Xoff	19	As  for Stop above
Xon	17	As for Start above


Searching for Text

UltraPak has a Search facility, enabling a piece of text to be searched for in the Receive Window.  Searches can be sensitive to case or not.

To invoke a search, either select Find... from the Options Menu, or press Shift-F2.

Enter the piece of text to search for into the box.  Note that the default is for the search to be insensitive to case.  If you wish to make the search case-sensitive, leave the Ignore case check box unchecked.

Click on the OK button to begin the search.  If the piece of text is found, the first occurrence of it will be highlighted.  To continue searching for the same text, press Shift-F3.


Receive Window

The screen area where received text is displayed.  The Receive Window has a capacity of approximately 25 kilobytes.  When that capacity is exceeded, text is lost from the start of the buffer, so that the most recently received text is last to be lost.  The status of the Receive Window buffer is continuously displayed at the lower right corner of the main screen as a percentage used.

The contents of the buffer can be reviewed with the horizontal and vertical scroll-bars at the bottom and right-hand side of the window respectively.  The  Up-Arrow, Down-Arrow, Page Up, Page Down, Home and End keys can also be used to scroll the Receive Window a line at a time, a page at a time or to go to the top or bottom of the buffer respectively.


Transmit Window

The screen area where text is typed to be transmitted to the TNC.  The transmit window is only one line deep and text is sent immediately to the TNC when either the SENDPAC character is typed (RETURN), or the end of line is reached, as defined by the current screen width setting.  Text will be word-wrapped or not, according to the word-wrap setting.


UltraPak Directory Structure

When UltraPak is installed, you have the choice of where to install it.  The default directory is C:\ULTRAPAK but any other name may be chosen.

Beneath that home directory, UltraPaks setup program will create the following directory tree:

ULTRAPAK

BIN

LOG

MOTD

PBBS

PRIVATE

REMOTE

DOWNLOAD

BIN

TXT

UPLOAD

BIN

TXT

SCRIPTS

TXT

The function of each directory is thus :

BIN is used as the default location where any binary (i.e. program, image) files to be transferred by the YAPP protocol are located.  They may of course be located elsewhere if required.

LOG is the default location for log files to be stored.

MOTD is the location for message of the day (MOTD) files for your remote users.

PBBS is where the header index and all messages in the PBBS are stored.

REMOTE is the default top level directory for remote users.  It has subdirectories DOWNLOAD and UPLOAD for corresponding types of file transfer.  These in turn have BIN and TXT subdirectories for binary or ASCII transfers respectively.

SCRIPTS is where any script files you may use are located.

TXT is the default location for all ASCII files to be uploaded or downloaded.


TNC Commands

TNC Command Reference

The command reference indicates the syntax and useage of the TNC-2 command set.

The format of each definition is thus:

TItle

Parameters  Default

A description of the command.

The title is the command keyword.  The capitalised, red portion of the command is the minimum that can be entered for the command to be recognised.

The parameters are the type and range of the parameters, or arguments that the command expects.  Some commands have no parameters.

The default is what the command will use as a parameter or argument if none is supplied.

The description is a brief one, describing what action the command will invoke.

COMMANDS

~~~~~~~~~~

3rdparty	8bitconv	ADrdisp
AMonth	AUtolf	AWlen
Ax25l2v2	AXDelay	AXHang
BBSmsgs	Beacon	BKondel
BReak	BText	BUdlist
CALibra	CALSet	CANline
CANPac	CBell	CHeck
CLKadj	CMdtime	CMSg
CMSGDisc	COMmand	CONMode
Connect	CONOk	CONPerm
CONStamp	CONVers	CPactime
CR	CStatus	CText
CWid	CWLen	CWIDText
DAytime	DAYUsa	DELete
DIGipeat	Disconne	DISPlay
DWait	Echo	EScape
Flow	FRack	FUlldup
HEaderli	HEALled	HId
Id	K	KIll
KISs	LCAlls	LCok
LCStream	LFadd	LFIgnore
List	MAll	MAXframe
MCOM	MCon	MFilter
MHClear	MHeard	MNonax25
Monitor	MRpt	MStamp
MYAlias	MYcall	MYPcall
NEwmode	NOmode	NUcr
NULf	NULLs	Paclen
PACTime	PARity	PASs
PASSAll	PErsist	PMs
PIdcheck	PPersist	Read
RECOnnect	REDispla	RESET
RESptime	RESTART	REtry
RXblock	Screenln	SEND
SEndpac	SLottime	STArt
STATus	STExt	STOp
STREAMCa	STREAMDb	STReamsw
TRACe	Trans	TRFlow
TRIes	TXdelay	TXFlow
TXUifram	Unproto	USers
Xflow	XMitok	XOff
XON


Multiple Receive Windows
Using Multiple Receive Windows

Most TNCs have ten streams available (actually eleven, including the PMS stream) usually labelled A through J (PMS is stream K) or 0 to 9.  Separate connections can be maintained on these streams.  In practice, it is unusual for more than two or three streams to be in use at any one time.  However, UltraPak will allow all ten to be used if necessary.  The buttons and status displays just below the Transmit Window are used to switch between streams and to provide a simple display of the status of all streams at any time.

Switching between streams is achieved by clicking on the appropriate stream button, or by using the Alt key plus a key for whatever stream is required.  E.g to switch to stream H, you could either click on the H button or hold down Alt and press H.  You can also use the Stream menu to switch streams, but this is less efficient than the previous methods.  Each stream has its own independent Receive Window.

Note that when switching between streams the TNC remains in whatever mode it was in for the previous stream (i.e COMMAND or CONVERSE) unless you have selected the Change TNC mode option.  If that option is selected, UltraPak will send a Ctrl-C character to the TNC when switching to an unconnected stream from a connected one, or send CONV and a CR to the TNC when switching from an unconnected stream to a connected one.

It is also very important to remember that for the proper stream processing to be carried out by UltraPak, the stream-switch character used by the TNC and UltraPak MUST MATCH.  Equally, the STREAMDb option must be set to ON in the TNC (except for the KAM machines which dont have the STREAMDb command)

When switching between streams, the currently active stream will have the appropriate button illuminated red, and the current stream id. will be displayed.  Each button has the callsign of the station connected to (if any) on that stream displayed in the panel at the side of it.

If traffic arrives for a stream that is not the currently active one, the callsign on that stream will turn red, to indicate that new data has arrived.  You may view that new data by changing to that stream, when the callsign will revert to black.

Because of the way that UltraPak senses whether a new connection or disconnection has occurred on any given stream, it is possible (though very unlikely) that it can be fooled into reporting a false status.  If this seems to have occurred, you can interrogate the TNC to verify the status of all streams by clicking the Ver button.  UltraPak will update all displays to reflect the correct stream status.

Splitting the Receive Window

Optionally, you may choose to split the Receive Window when connected to two stations, so that traffic on both streams is visible on screen at the same time.

You can split the Receive Window at any time by clicking on the Win button, or by selecting the Split/Unsplit option from the Window menu.

A window will open allowing you to choose which stream window to put at the top (or left) and which at the bottom (or right).  The direction of window splitting can be chosen by clicking the appropriate option button to set the Split mode.

The Win button behaves as a toggle, so that clicking on it when the Receive Window is split will unsplit it and leave you with one window for the current stream.

If the AutoSplit option is chosen, then the Receive Window will split automatically when you connect to two stations.  The direction of screen splitting (i.e. horizontal or vertical split) depends on the Split Mode setting.  If you are working with a split screen and connected to more than two stations, then the third (undisplayed) window cannot be accessed until you unsplit the two displayed windows.

The AutoSplit facility will automatically unsplit the Receive Window when you revert to just one connection or if you connect to a third station.

(Note that, in the above discussion, a connection on the TNCs PMS stream does not count in deciding how many streams are connected.  So if you were connected on stream B, but also had a connection on stream K, AutoSplit would not split the Receive Window)

Swapping Windows and Window Formats

When using split Receive Windows, you may swap between the two displayed streams by using the Shift-F1 keys.

To change the split direction, use Shift-F4.


Menu Structure
UltraPaks Menu Structure

File ---------	Save settings
|	Exit
|
Edit --------	Copy Receive buffer...
|	Find...
|	Find Next...
|
Configure -	Set time...
|	Set date...
|	Port ------------------------------	COM Port...
|	|	Handshaking...
|	|	Settings...
|	|	Buffers...
|	User Options...
|	YAPP...
|	Remote...
|	Unproto...
|	Streams...
|	Colours -------------------------	Receive Window Background
|	|	Receive Window Text
|	|	Transmit Window Background
|	|	Transmit Window Text
|	|
|	Fonts ----------------------------	Receive Window
|	|	Transmit Window
|	|
|	PBBS...
|
Transfer ---	Connect/Disconnect
|	ASCII ----------------------------	Upload
|	|	Download
|	YAPP ---------------------------	Upload
|		Download
Options ----	Print
|	Log to disc
|	Set TNC date/time
|	Prepare Message
|	Scripts --------------------------	Edit script
|	|	Syntax check script
|	|	Execute script
|	Utilities --------------------------	DOS
|		Editor
|		File Manager
|		Print Manager
|
Stream -----	Window 0
|	Window 1
|	Window 2
|	Window 3
|	Window 4
|	Window 5
|	Window 6
|	Window 7
|	Window 8
|	Window 9
|	Show stream assignment
|	Verify Stream Status
|
Window ---	Split/unsplit Receive Window
|	Go to other window
|	Change split mode
|	Pause/unpause Receive Window
|	Clear Receive Window
|
PBBS ------	Forward
|	Show forwarding schedule
|	Sysop
|	Clean up PBBS
Unproto ----	View Message List
|	View Read List
|	Read
|	Resynch
|	Message list positions
|
Help --------	Contents
	Search for Help on...
	Show Function keys
	Register
	About...
	Help on Help


AutoSplit

AutoSplit is a facility which automatically splits the Receive Window whenever you connect to more than one station.  AutoSplit can be set from the User Options screen by checking the AutoSplit box.

If you use AutoSplit, or if you manually split the Receive Window, you should specify the Split Mode also, which determines the direction in which the window splits.


Split Mode

The split mode determines which way the screen will split when you connect to more than one station.  Setting split mode to H will split the window horizontally.  Setting split mode to V will split it vertically.

Split mode may be set from the User Options screen by clicking the appropriate option button.


Accessing Other Programs

It is possible to gain access to programs running outside UltraPak without ending the session, or even minimising UltraPaks window.

The following are accessible by clicking on UltraPaks Button Bar or by selecting from UltraPaks menus:

To run this:	Click this:
DOS	DOS button
Print Manager	Pmn button
File Manager	Fmn button
Editor	Edit button

Or you can select from the menus.


Copying Text

Copying Text from the Receive Window

It is possible to copy text from UltraPaks Receive Window to a variety of destinations in a very flexible manner.

If you want to copy the entire Window, click on the Buf button.  A small window will open, asking you to choose a destination for the text.  You may choose either the Windows Clipboard, a disc file, UltraPaks Message Buffer or the printer.  If you choose to copy the Window to  a disc file, a dialog box will open allowing you to choose a file-name.  Additionally, you will be asked if you wish to continue to log incoming data to this file.

If you wish to copy only a part of the Receive Window, select the text you wish to copy in the normal Windows manner, i.e. by clicking on the start of the text and dragging over the text you want to copy so that it is highlighted.  Click on the Buf button and the procedure is as before.

When copying, you will probably find it desirable to pause the Receive Window to make sure that incoming data does not interfere with making your selection.


Configuring UltraPak

Before you can begin to use UltraPak, there are a number of configuration options to check and maybe alter.  You also need to have taken account of certain TNC settings  for UltraPak to work properly.  For step-by-step guides on setting up UltraPak, see the file CONFIG.WRI, or click on the Configure icon in the ULTRAPAK program group.

Streams

It is vital that you set up streams properly.  TNCs use a stream-switching character (STREAMSW or CHSWITCH) to indicate a change of stream.  UltraPak monitors incoming text to watch for these characters, and to switch text to the correct stream (hence window) accordingly.  Obviously, for this to work, the TNC and UltraPak need to be set up similarly.  Usually, the stream-switch character is the vertical bar ( | ) which is ASCII code 124 or hex 7C, or sometimes the tilde character ( ~ ) which is ASCII code 126 or hex 7E.

To set up streams

Start up UltraPak and click on the Configure Menu.  Click on Streams....  A window  will open up, showing the current stream-switch character and stream ID associated with each window, 0 to 9.  The PMS stream details are also displayed.  This window in addition allows you to specify how many active windows you would like.  You should do this first.

Click on the Windows box and enter the number of active windows you want - any number between 1 and 10.  If you enter a number less than 10, you will see that the stream ID and stream-switch characters for the unused windows will grey out.  These windows are now disabled and you cannot alter parameters for them.  You should set the USERS parameter in the TNC to a similar number to ensure that incoming connections cannot be established on streams that you have effectively disabled.

With the correct number of windows selected, you may now enter the stream or channel that you want to be associated with that window, and the stream-switch character that will switch to that stream.  Often, you will want the stream-switch character to be the same for all windows.  In that case, enter the required character for Window 0 and click the Same button;  all windows will be set to the same character.

You can also identify which stream is associated with the PMS if appropriate and similarly enter a stream-switch character.  TNC-2 compatible TNCs have stream K set aside for the PMS usually, so enter K for the PMS stream in this case.  If there is no specific stream allocated to the PMS or PBBS, leave this field and the stream switch character field blank. If you leave any of the stream ID or stream-switch character fields empty for any other active window, UltraPak will signal an error.

For dual-port TNCs the stream-switch character is often set as  |  for the VHF port and  ~  for the HF port.  In this example, you can set up UltraPaks windows accordingly - making the first few windows HF streams with the  ~  character and the remaining windows VHF streams with the  |  character.

While you are using this configuration window, you can choose which nomenclature you want for the TNC streams - stream or channel.  TNC-2 users will want streams, but PK-88 users know them as channels.  Select whichever is appropriate.

When you are satisfied, click the OK button to save the choices.  Note that you MUST restart UltraPak before you can continue when any changes have been made to stream configuration.

When you are running UltraPak, you may see which stream is associated with each active window by selecting the Show stream assignments item from the Streams menu.

Other configuration

Most other configuration is to suit the users individual preferences.  However, the main configuration window contains another option, related to streams, which needs to be set up.

Most TNCs have a parameter called either STREAMDB or CHDOUBLE.  This controls whether stream-switch characters received as part of the data stream are doubled by the TNC to distinguish them from characters generated by the TNC to indicate a stream-switch.  In the TNC, this parameter should be set ON.  In UltraPak, you need to identify which command (STREAMDB or CHDOUBLE) your TNC uses and enter it in the box on the main configuration screen.  You reach the configuration screen by pressing F11.

In the KAM machines, there is no STREAMDB command.  In this case, leave the box empty.

PBBS configuration

See the section on configuring the PBBS.

Unproto configuration

See the section on configuring Unproto.


Acknowledgements

UltraPak would not have come to fruition except for the continuing help and support from a number of people.  Thanks go to the following in particular:

Mike, G8AMG for testing and putting up with my endless use of his BBS

John, G7DDU, Richard, G0VCW, Les G6DYU, Bill, G4ZDK and Roy, G3UGL for listening to my ramblings and never telling me to shutup.

Roley, G3VIR, for his help and encouragement.

Lowe of Matlock, for their generosity in helping with documentation on the KAM range.

Gerard, FC1EBN, for his generous help with FBB compression software.

Keith Norman, for his help in writing the compression DLL.

Haruyasu Yoshizaki, for the original Huffman source code.

Mick, G8CCV, for his encouragement, particularly with the unproto facilities.

Dave, G8TTK, for his help in development of FBB password support.

My family, for their understanding during the long periods I was sat in isolation in front of a screen.

All those who have commented and assisted with earlier versions of UltraPak.

Those kind individuals who have helped with beta-testing this product.  I emphasise most strongly that any remaining bugs are my responsibility, not theirs!

To the Big Brownie - you  know who you are.

Finally, now its too late, my thanks to Keith, the best friend anyone could ever have, who died very suddenly in December, 1994.  His encouragement, insane sense of humour and, above all, his love of life, remain an inspiration.  It is a bitter sadness to me that he never saw UltraPak come to fruition.  UltraPak is dedicated to his memory.

Tim Kearsley,  G4WFT,  November,  1995


Scripts Menu

Edit Script

Runs the system editor (defined in User Options) to enable a script file to be created or altered.

Syntax check script

Checks a script file line by line and reports on any line which is not syntactically correct.  Note that line numbers reported in the error report do not include  comment lines and blank lines, and do not therefore necessarily relate exactly to the line number in the script file.

Execute script

Runs a script file, executing each command and displaying a window for the duration of the script, showing which line is currently being executed.


Script file

A file consisting of a series of commands which UltraPak will execute.  Common functions, such as logging on to a BBS and collecting mail, may be automated by writing a suitable script file.  A script file always has the extension .SCT.


Using Script files

UltraPak includes a very simple script file utility to enable some tasks to be automated.  A script file is a file which consists of commands which UltraPak can understand and carry out.  Once a script file is invoked, operation continues entirely unattended until the file ends or an error occurs.  Commands are available to send text to the TNC, wait for incoming text, open and close log files, send ASCII and YAPP files, etc., etc.

General rules for creating a script file

A script file can be created using any text editor.  The file should always have the extension SCT, and be located in the SCRIPTS directory under the UltraPak home directory.  Commands can be upper or lower case, or mixed.  Labels must end with the colon character (:).  All spaces, except where embedded in text to be sent to the TNC or to be watched for in incoming text, are ignored.  Commands otherwise must follow the format shown in the Script Command Reference.  Any line beginning with a hash character (#) is treated as a comment and will not be processed.  Script commands are in the form:

COMMAND,ARGUMENT(S)

and the argument or arguments are always separated from the command with a comma or commas.

The total size of a script file must not exceed  250 lines, but remember that a comment line or blank line is not processed and does not therefore count in determining the size of the file.

The exact format of each command can be found in the Script Command Reference.

Checking a script file for syntax errors

UltraPak includes a facility to allow you to check a script file for any errors in syntax.  This is always a good idea, since otherwise UltraPak will execute the script until it encounters an error and then abort..

You can check a script file by selecting the appropriate item from the Scripts menu (under the Options menu) or by pressing Shift-F8.

When you have selected the file to check, UltraPak will go ahead and check it and display any lines found to be in error in a window, along with a brief description of why the line is not valid.  The error window will remain visible until you click the Close button, enabling you to edit the script file while the errors are displayed.  Re-check the edited script file and continue in this manner until no errors are reported.

Note:  UltraPak attempts to identify any errors in the syntax of commands and checks for any invalid filenames.  However, it does not  check at this stage for any other file related errors, such as the file not existing.  It is possible therefore, that a script file which checks O.K. at this stage may still fail when UltraPak attempts to execute it.

Executing a script

You can execute a script file by selecting the item from the Scripts menu, or by pressing Shift-F9.

While executing a script, UltraPak displays a small window which shows the line currently being executed and includes an Abort button to enable you to stop script execution early if necessary.  You should note that clicking the Abort button may not stop the script execution immediately - sometimes UltraPak may finish executing the current command before aborting.

A sample script file

To give an idea of what a script looks like, here is a very simple example, which logs on to a BBS through a couple of nodes, and aborts if the connection fails for any reason.

# Sample script.

# T. Kearsley, G4WFT, March, 1995

#Connect to the first node

OUT, C  NNLAN

#Wait for a connection, abort if not received within 30 seconds

CONN, 30, Abort

#Connect to the next node

OUT, C  HF3

#Wait  for the Connected line

LINEIN, 60, Connected to HF3, Abort

#Now connect to the BBS

OUT,  C GB7LWB

#And another wait !

LINEIN, 60, GB7LWB>, Abort

#Now weve connected, lets open a log file (could have set Autologging of course !)

OPENLOG, BBS.LOG

#And end there

END

#Put the commands to execute if we need to abort here

Abort:

# Put the TNC into command mode

CMD

#Send a disconnect

OUT,  D

#And end

END

That is a very simple example, but illustrates how a script can be built up.


Script commands

Script commands consist of a keyword and sometimes one or more arguments.  The keyword specifies the action to be taken, (e.g. OUT specifies that text is to be sent to the TNC) and the argument or arguments specifies data or parameters to apply to the keyword action.

The keyword always comes first and can be in upper or lower case or a mixture - the script interpreter in UltraPak is not case-sensitive.  The arguments are separated from the keyword by one or more commas.  Spaces, unless embedded within keywords or contained within text to be sent to, or received from, the TNC, are always ignored.  So the following script command:

IN,  45 ,BBS>,   No_connect

is, to the script interpreter, exactly the same as:

IN,45,BBS>,No_connect

Labels can consist of any string terminated with a colon ( : ).  Any line commencing with a hash character ( # ) will be treated by the interpreter as a comment and the rest of the line ignored.

Commands

OUT command

Description:  Sends text to the TNC

Format:  OUT, string

Comments:  Sends a text string to the TNC.  Text is appended with a carriage return.  The text is sent exactly as formatted in string .  Text to be sent does not require quotes around it (unless the text itself includes quotes).

Example:  OUT, CONNECT GB7LWB

IN command

Description:  Waits for a given time, for a string in received text.

Format:  IN,time, string, label

Comments:  Waits until string  is found in incoming text.  If after time  seconds have elapsed, the string has not been received, control branches to the line following label  in the script file.  Time  is expressed in seconds and can range from 1 to 32767.

Example:  IN, 30, Connected to GB7LWB, Abort

LINEIN command

Description:  Waits for a given time, for a line containing a string in received text.

Format:  LINEIN,time, string, label

Comments:  Very similar to the LINE command above.  LINEIN however waits after it has found string until it sees a carriage return (CR).  In all other respects, the command is identical to IN.

Example:  LINEIN, 30, Connected to GB7LWB, Abort

PWD command

Description:  Sends a string in response to a password request

Format:  PWD

Comments:  The PWD command sends a string of characters based on a set of numbers supplied to it and the contents of the file PWD.SYS.  The command is used in conjuntion with the LINEIN command, and uses as its argument the line retrieved by the most recent LINEIN command.  Thus the PWD command should always normally be immediately preceded by the LINEIN command in a script.

Example:  PWD

CONN command

Description:Waits for a connection on the stream

Format:CONN, time, label

Comments: Pauses script execution until a connection occurs on the current stream.  Otherwise, the action is as the IN command, i.e. if no connection has occurred within the time given in the time  argument, execution passes to the label specified.

Example:  CONN,60,Noconnect

DISCONN command

Description:Waits for a disconnection on the stream

Format:DISCONN,time,label

Comments: Pauses script execution until a disconnection occurs on the current stream.  Otherwise, the action is as the IN command, i.e. if no disconnection has occurred within the time given in the time  argument, execution passes to the label specified.

Example:  DISCONN,60,Stillconnected

OPENLOG command

Description:  Opens a log file

Format:  OPENLOG, Filename

Comments:  Opens a log file, just as though you had clicked the Log button, except that the filename is already supplied.  The filename should be specified complete with extension (normally .LOG) and will be opened in the \LOG subdirectory.  If a log file is already open, the command is ignored.  If the filename is invalid, script processing will abort with an error.

Example:  OPENLOG, MAIL1.LOG

CLOSELOG command

Description: Closes an open log file.

Format:  CLOSELOG

Comments:  Closes the open log file.  If there is no log file open, the command is ignored.

Example:  CLOSELOG

UP command

Description:  Uploads an ASCII file.

Format:  UP, Filename

Comments:  Uploads an ASCII file.  The file is opened, the contents of the file sent to the TNC, appended with a Control-Z, and the file closed. If the file is not found, script processing will abort with an error.  The file should be located in the \TXT subdirectory.

Example:  UP, MSG4.TXT

OPENASCII command

Description:  Opens a file ready for downloading an ASCII file.

Format:  OPENASCII,  Filename

Comments:  Opens an ASCII file for download.  The filename should be specified complete with extension (normally .TXT) and will be located in the \TXT subdirectory.  If the filename is invalid, script processing will abort with an error.  If there is already a file opened for download, the command is ignored.

Example:  OPENASCII, TNCMODS.TXT

CLOSEASCII command

Description:  Closes a file open for ASCII download.

Format:  CLOSEASCII

Comments:  Closes the open ASCII download file.  If there is no file open for download the command is ignored.

Example:  CLOSEASCII

YAPPUP command

Description:  Uploads a binary file using the YAPP protocol.

Format:  YAPPUP,  Filename

Comments:  Opens the file specified and sends it using the YAPP protocol for transferring binary files.  The file should be in the \BIN subdirectory.  If the file is not found, script processing will abort with an error.  Your script file should wait for the BBS prompt (e.g. Ready to receive with YAPP protocol) before issuing this command.

Example:  YAPPUP,  BBSMSG.ZIP

YAPPDOWN command

Description:  Downloads a binary file using the YAPP protocol.

Format:  YAPPDOWN

Comments:  The downloaded file will be located in the \BIN subdirectory.  Your script should wait for the BBS prompt (e.g. Ready to send with YAPP protocol) before issuing this command.

Example:  YAPPDOWN

PRINTON command

Description:  Turns the printer ON.

Format:  PRINTON

Comments:  Exactly similar action to clicking the Prt button.  Everything sent to the Receive Window will be echoed to the printer following the PRINTON command.  If Print Manager is not enabled and the printer is off line or not connected UltraPak will eventually flag an error.

Example:  PRINTON

PRINTOFF command

Description:  Turns the printer OFF.

Format:  PRINTFF

Comments:  Turns the printer off.

Example:  PRINTOFF

CLS command

Description:  Clears the current Receive Window.

Format:  CLS

Comments:  Performs exactly the same action as clicking the Clr button.

Example:  CLS

PAUSE command

Description:  Halts script file execution for a specified time.

Format:  PAUSE,  time

Comments:  Script file processing is suspended for time  seconds.  The pause time must be between 1 and 32767 seconds.

Example:  PAUSE,5

CMD command

Description:  Puts the TNC into COMMAND mode.

Format:  CMD

Comments:  Sends a BREAK signal to the TNC to force it into COMMAND mode.  Note that the TNC should have BREAK set ON.

Example:  CMD

MESSAGE command

Description:  Outputs a message box to the screen.

Format:  MESSAGE,  string

Comments:  Although this command is not really useful for true unattended script operation, it is included as it might be useful in a script debugging rôle if nothing else.  A message box, displaying  string  as the message is output, and will remain until the OK button is clicked.

Example:  MESSAGE,  BBS mail collection complete

GOTO command

Description:  Branches to the specified label.

Format:  GOTO,  label

Comments:  Allows the normal flow of script processing to be diverted to another part of the file.  If  label  cannot be found, script processing will abort with an error.  The label should be specified without the trailing colon.

Example:  GOTO,  Abort

WAIT command

Description:  Suspends script processing until the specified time.

Format:  WAIT,  time

Comments:  Allows script processing to be delayed until a particular time rather than for a particular duration (PAUSE command).  Time  should be specified as HH:MM [:SS].  The 24-hour clock should be used, and seconds are optional.  Note that the WAIT command can span a maximum of one day only, and if the  time  specified has already passed, the command will have no effect and processing will resume immediately.

Example:  WAIT,  22:10

END command

Description:  Terminates script processing.

Format:  END

Comments:  Stops any further script processing.  Note that if the last line of the script file is encountered an END command is executed automatically anyway.

Example:  END


Password support

Passwords

Many BBSs require you to supply a password on logging in.  Usually this takes the form of a set of numbers supplied by the BBS, to which you have to provide the correct response in order to log in successfully.  The response required is a string of characters, each character being that found in a string agreed between you and the sysop of the BBS, at the character positions corresponding to the numbers supplied by the BBS.  An example will make the mechanism clear:

Lets assume you agree the following string as your password string:

ahsstgCkjYTmmPLhwfDgsOiZZqPlsfMMNrEIhPP

You keep a copy of this, and the sysop of your local BBS sets it up at his end also.

Now, when you connect to the BBS, you receive a prompt something like this:

Password>  11  9  25  18  29

To gain access, you would have to reply to this with the string of characters corresponding to those positions in your password string, i.e.:

TjZfs

Anything else, would result in you being denied access!  Note that case is important as well.

Passwords are a useful extra measure of security against callsigns being borrowed by other people.  However, they represent an extra problem to be overcome if you log on to your local BBS automatically, using a script.

UltraPak provides a script command specifically to handle passwords - PWD.  The PWD command must be used in conjunction with the LINEIN script command.  Essentially, you use the LINEIN command to wait for the line containing the password prompt and follow it immediately with the PWD command to process the password line.  Here is an example script to illustrate its use:

OUT,C GB7BEN	<==  Issue the connect command

CONN,60,Abort	<==  Wait for the connection

LINEIN,60,Password>,Abort	<==  Wait for the password line

PWD	<==  Send the correct response

END	<==  Done!

Abort:	<==  Go here if not successful

CMD	<==  Put the TNC into command mode

OUT,D	<==  Issue a disconnect

DISCONN,60,Abort	<==  Wait for the disconnection

END	<==  Done!

Where does the PWD command look to get the characters to send in response to the numbers?  It looks in a file called PWD.SYS, which must be in the UltraPak home directory.  PWD.SYS, like most other files used by UltraPak, can contain comment lines, which are lines beginning with the hash character (#).  Obviously, if PWD.SYS does not exist, or is not in the correct directory, the PWD command will fail.  In fact, if the file cant be found, or any other error occurs, the PWD command returns a null string.

A sample script which you can use as a template for writing your own script for password management is included in the SCRIPTS directory under the filename PWD.SCT.


Pausing the Receive Window

Occasionally, you may find that you need to pause the Receive Window.  Usually, you would want to do this when selecting text from the window to copy elsewhere.  If you dont pause it, any incoming data will immediately destroy your selection and you will have to start again.

To pause the current Receive Window, press the Scroll Lock key, or press Shift-F6.  The red PAUSED legend will display in the centre of the Receive Window to show that output from the TNC is held.  The window will remain paused until any of the following occurs:

You unpause the window yourself, by pressing Scroll Lock again, or pressing Shift-F6

You send some text to the TNC

You switch streams

The pause buffer fills up

The final event is, of course, a safety valve, so that no incoming data is lost.  The pause buffer is approximately ten kilobytes, so you can usually pause the window for quite a time before it fills up.  When the buffer is about 70% full, the colour of the PAUSED legend changes from red to yellow, to warn you.

As soon as the window is unpaused, all buffered data is sent to the window to update the display.


Reading BBS Messages

UltraPak has a nice and easy point and click interface to reading messages from a BBS listing.  When you have connected to  a BBS and have a list of messages on the screen in front of you, you may invoke the easy-read facility by pointing to the first message you would like to read and double-clicking the mouse button.  You will notice a Message List window opens up at the top right hand corner of the main screen and will now contain the message header you selected.  You may continue selecting messages from the list in UltraPaks Receive Window in this manner until you have all you want to read listed in the Message List window.

You may position the mouse at any point within the message line when you double-click the mouse and you may position the Message List window where you wish.

When you have selected all the messages you want, click on the Read button to read them - as simple as that !  In UltraPaks User Options configuration window, there is a parameter called Max BBS messages.  This defaults to 6, but may be set to whatever you wish, up to a maximum of 99.  Its significance is that when the program issues the Read command to the BBS, it will only add message numbers up to a maximum of the Max BBS messages setting; if there are messages remaining in the Message List window, they will remain until you click the Read button again, or delete them, or click the Cancel button.

For example, if you have selected eight messages into the Message List window, and Max BBS messages is set to six, the first time you click the Read button, UltraPak will issue the Read command followed by six message numbers (the first six numbers in the list).  The two remaining messages will stay in the list until you click the Read button again (or Cancel etc.).

The Current messages display will always tell you how many messages you have in the list.  Once you have read all messages, the Message List window will disappear.

Deleting messages from the Message List

If you have selected a message by mistake, or change your mind, you may delete the message from the list by selecting it (clicking on it) and then clicking the Delete button.  Dont be confused about the action of the Delete button - it does not  attempt to delete the message from the BBS !  It merely removes the message from your selection.

Note that if you delete all messages from the list, the Read and Delete buttons will become disabled until you have at least one message in the list again.

Clicking the Cancel button will close the Message List window and remove all messages from the list.

Verbose reading

If you wish to read the messages verbosely  (i.e. include all routing information in the headers) then check the Verbose box.  By default, the box is unchecked.  The verbose read command varies a little from one BBS software to another - usually it is V or RH.  Which command you use is set up in User Options against Verbose.

Cautions

It should be remembered that UltraPaks point and click interface to reading BBS messages is only intended to be a convenience to the operator - it has no built-in intelligence.  So if you have selected a list of messages, and in the meantime the BBS has disconnected from you - you will not get much sense from the TNC !  Similarly, if you select a line which is not a valid message, the software will not detect it (though UltraPak does  look for a number at the start of a line to determine whether the line is likely to be a valid message header and hence will reject  a good range of invalid material).

If you are working with a split Receive Window, be aware that if you change streams between selecting messages and clicking the Read button, you will issue the Read command to the wrong stream !


3rdparty

ON or OFF

Allows or disallows messages to be left on the PMS for stations other than the callsign owning the PMS.  In the U.K. must be set to OFF unless licensed to do otherwise.


8bitconv

ON or OFF

Determines whether the high order bit (the MSB) of a byte is stripped before transmission from the TNC.  ON means the bit is not stripped, OFF means bit 7 is stripped off.  Bit 7 is always stripped off in COMMAND mode.


ADrdisp

ON or OFF

If ON, displays the callsigns of packets being monitored.


AMonth

ON or OFF

Controls how the month is displayed in dates.  ON displays the month in alphabetic form, (e.g. 23-JUL-94), OFF displays it in numeric form (e.g. 23/07/94).


AUtolf

ON or OFF

Controls whether a Line Feed character is automatically appended to each Carriage Return character recieved by the TNC on incoming packets.  ON means add a LF.  This command does not  affect transmitted packets - to add a LF character to transmitted packets use LFadd.


AWlen

7 or 8

Controls whether 7 or 8 data bits are used for data transmission between the serial port and the TNC.


Ax25l2v2

ON or OFF

Selects which version of the AX25 protocol is used.  ON uses Level 2, version 2.  OFF uses level 2, version 1.


AXDelay

0 to 180

Specifies the extra delay to be added after the transmitter is keyed, before commencing to send data.  The delay is additional to that specified by TXDelay.  The parameter is multiplied by 10 and the resulting delay is in milliseconds.  Used for repeater access.


AXHang

0 to 20

Repeater hang time.  The parameter is multiplied by 100 and the resulting delay is in milliseconds.


BBSmsgs

ON or OFF

When ON, certain messages to the terminal program are suppressed.  Its use is primarily to enable easy interfacing to some BBS software.


Beacon

Every or After  0 to 250

Transmits the Btext beacon text either every n seconds, or after n seconds after last transmission.  The parameter is multiplied by 10 to give the interval n seconds.


BKondel

ON or OFF

Determines the way in which the backspace key operates.  If ON, the backspace key operates normally, i.e. the character is deleted.  If OFF, the backspace key echoes a backslash (\) character.


BReak

ON or OFF

Controls the response of the TNC to a BREAK signal.  When ON the TNC enters command mode on receipt of a BREAK signal.


BText

Text.  Default is blank.

The text string which is sent  every time the Beacon command operates.


BUdlist

ON or OFF

Operates with the Lcalls and MONitor commands.  When ON, packets from stations not in the Lcalls list are not displayed.  When OFF, the converse is true.


CALibra

[Space], D, K, Q  No default

Calibrates the tones used by the TNC.  The parameters are not supplied on the command line, but used within CALIBRATE mode.  The parameters have the following actions:

[Space]  Switch to the other tone (i.e. LOW to HIGH, HIGH to LOW)

D  Pulse both tones alternately

K  Toggle the PTT line ON and OFF

Q  Quit CALIBRATE mode


CALSet

0 to 65535

Used with the CALibrate command to set the tones to calibrate the TNCs modem.


CANline

0 to 127  Default is 24 (Ctrl-X)

Sets the character which will cancel an entered line before sending it to the TNC.


CANPac

0 to 127  Default is 25 (Ctrl-Y)

Sets the character which will cancel a packet.


CBell

ON or OFF

Determines whether a bell character is sent to the TNC with the connect message.  ON means the bell character is sent.  OFF means no bell character is sent.


CHeck

0 to 250  Default is 30

The inactivity timer.  The paramter supplied is multiplied by 10 to give a time in seconds.  If there has been no activity after that time has elapsed the TNC will force a disconnect.


CLKadj

0 to 65535

Adjusts the TNCs internal clock.  The parameter supplied is used in a formula to determine a factor by which to adjust the TNC clock.


CMdtime

0 to 250  Default is 1

The TRANSPARENT mode timeout.  The parameter supplied is the timeout value in seconds.  Determines the timing for exiting from TRANSPARENT mode.

If the Cmdtime parameter is n seconds then to exit from TRANSPARENT mode, three Ctrl-C characters must be sent  within n seconds.


CMSg

ON or OFF

Determines whether a connect message (defined by Ctext) is sent when a station connects to your TNC.


CMSGDisc

ON or OFF

If set to ON, disconnects after an acknowledgement of the Ctext packet is received.


COMmand

0 to 127  Default is 3 (Ctrl-C)

Sets the character which will switch the TNC into COMMAND mode.


CONMode

CONV or TRANS

Sets the mode which the TNC will enter on connecting.  If set to CONV, the TNC will enter CONVERSE mode.  If set to TRANS, the TNC will enter TRANSPARENT mode.


Connect

No default.  Parameter supplied is the callsign of the station to connect to.

Attempts to establish a connection to the station whose callsign is supplied.  The connect may be VIA one or more repeaters.

Connect without parameters returns the current link state.


CONOk

ON or OFF

Determines whether your TNC can be connected to.  ON allows connects, OFF disallows connects.


CONPerm

ON or OFF

Selects temporary or permanent connection.  If ON, permanent connection is selected.  OFF selects temporary (normal) connections.


CONStamp

ON or OFF

Determines whether the date and time are appended to the CONNECT message.  ON appends the date and time, OFF disables time stamping.


CONVers

No default

Puts the TNC into CONVERSE mode.  The same effect can be achieved by entering K.


CPactime

ON or OFF

Enables or disables timed packet sending.  If ON, any unsent packets are sent after PACTime has elapsed.  If OFF timed sending is disabled.


CR

ON or OFF

Determines whether a carriage return (CR) character is appended to each packet or not.  ON appends a CR, OFF does not.


CStatus

No default

Displays the link status of all streams and identifies the current stream.


CText

Default is blank.

The message (up to 120 characters maximum) which is sent to a station connecting to your TNC.  CMsg must be ON for the text to be sent.


CWid

E or A  0 to 250

Sends the CW ID either Every, or After the parameter supplied multiplied by 100 seconds.  After means after the last transmission.


CWLen

1 to 9  Default is 6

Determines the speed at which the CW ID is sent.  The smaller the parameter supplied, the faster the CW is sent.  A value of 6 sends at around 20 words per minute, 3 sends at 40 wpm.


CWIDText

Default is blank

A short piece of text (up to 32 characters) which is sent in Morse if CWid is enabled, and at a speed set by CWLen.


DAytime

yymmddhhmm  No default

Sets or displays the TNCs date and time.  The date and time supplied must be in the format shown.  For example, 29th November, 1994 2.15 p.m. would be set thus:

DAytime 9411291415


DAYUsa

ON or OFF

Selects the format in which to print dates.  ON formats dates as mm/dd/yy, OFF formats dates as dd/mm/yy.


DELete

ON or OFF

Selects the DELETE character.  ON uses the [DEL] character (ASCII 127), OFF uses the [BACKSPACE] character (ASCII 8).


DIGipeat

ON or OFF

Determines whether digipeating is allowed through the TNC.  ON allows digipeating.  OFF disallows digipeating.


Disconne

No default

Initiate an immediate DISCONNECT.


DISPlay

A, C, H, I, L, M, T or no parameter

Displays various parameters, counters etc.  The display depends on the parameter supplied thus:

No parameter	Displays all parameters and their current values

A	Displays asynchronous port parameters

C	Displays special characters

H	Displays health parameters and counters

I	Displays ID parameters

L	Displays link parameters

M	Displays monitor parameters

T	Displays timing parameters


DWait

0 to 250  Default is 16

Specifies the extra delay to be inserted for digipeating.  The parameter supplied is multiplied by 10 and the result is the delay in milliseconds.


Echo

ON or OFF

Specifies whether characters entered into the TNC are echoed to the screen by the TNC.  ON echoes characters to the screen, OFF disables echoing.


EScape

ON or OFF

Determines how the ESCAPE character is displayed.  ON translates the ESCAPE character to $ (ASCII 36), OFF leaves the ESCAPE character as ASCII 27.


Flow

ON or OFF

Enables or disables flow control while data is being entered into the TNC.  ON disables output from the TNC while characters are being typed into it.  OFF enables TNC output while receiving input.


FRack

1 to 15  Default is 3

Specifies the time to wait for an acknowledgement before retrying the frame.  The parameter supplied is the time in seconds.


FUlldup

ON or OFF

Selects whether to use simplex or duplex mode.  ON uses duplex mode, OFF uses simplex mode.


HEaderli

ON or OFF

Selects whether the header and text of received packets when monitoring is on the same line or separate lines.  ON displays the header on a separate line.  OFF displays the header and text on the same line.


HEALled

ON or OFF

Determines whether the CON and STA LEDs behave normally or monitor software.  ON means the TNC will flash the CON and STA LEDs.  OFF means the CON and STA LEDs behave normally.


HId

ON or OFF

Enables or disables the sending of an ID packet every 9.5 minutes.  ON means the TNC will send an ID every 9.5 minutes (the ID is the station callsign). OFF disables the ID.


Id

No default

Force an ID packet to be sent.


K

No default

Enter CONVERSE mode.  This is equivalent to issuing the CONVers command.


KIll

Message number  No default

Kills (deletes) the message number supplied in the PMS.


KISs

ON or OFF

Setting KISS ON puts the TNC into KISS mode.  The TNC then behaves as a dumb packet assembler/disassembler.  To turn KISS OFF requires the controlling software to send a character ASCII 255.


LCAlls

Calls (up to 8)  Default is blank

The list of calls which are to be either accepted or rejected, depending on how BUdlist is set.


LCok

ON or OFF

Specifies whether case conversion is to be carried out on received text.  ON means that text is passed by the TNC unchanged.  OFF means that the TNC will change all lower-case text to upper-case.


LCStream

ON or OFF

Specifies whether to allow lower-case stream identifiers.  ON means the stream ID character will be forced to upper-case.  OFF means that the stream ID character will be unchanged.


LFadd

ON or OFF

Specifies whether to add a line feed character (LF) after each carriage return on transmitted packets.  ON means add a LF character, OFF means do not.


LFIgnore

ON or OFF

Specifies whether to ignore line feed characters in incoming text.  ON means ignore embedded LF characters, OFF means act on embedded LF characters.


List

No default

Lists the message headers in the PMS.


 MAll

ON or OFF

Determines whether all or only unconnected (UNPROTO) frames are monitored.  ON means that all frames are monitored.  OFF means that only unconnected frames are monitored.


MAXframe

1 to 7  Default is 4

Specifies the maximum number of outstanding unacknowledged frames which may be allowed at any given time.


MCOM

ON or OFF

Specifies whether all frames or only data frames should be monitored.  ON means that  all frames are monitored.  OFF means that only data frames are monitored.


MCon

ON or OFF

Determines whether frames are monitored while the TNC is connected.  ON means that frames are still monitored when the TNC is connected.  OFF means that monitoring ceases when the TNC is connected.


MFilter

Up to four characters  Default is blank

Specifies a comma-delimited list of up to four characters which will be filtered from incoming data.  The list consists of ASCII values of characters to be filtered.


MHClear

No default

Clears the MHEARD list (list of calls heard).


MHeard

No default

Display the list of calls heard.  The maximum number of entries in the list is 18.


MNonax25

ON or OFF

Specifies whether non-AX25 traffic should be monitored (e.g. NETROM level-4 traffic).  ON means that non-AX25 traffic is monitored, OFF that it is not.


Monitor

ON or OFF

Specifies whether to enable monitoring.  ON enables monitoring, OFF disables monitoring.


MRpt

ON or OFF

Specifies whether to display the digipeater path in monitored packets.  ON displays the callsigns of digipeating stations, OFF does not display them.


MStamp

ON or OFF

Selects whether monitored frames should have a time stamp or not.  ON time-stamps monitored frames, OFF does not time-stamp.


MYAlias

Callsign or identifier  Default is blank

Allows an alternative station identifier to be set up.  Useful for digipeating.


MYcall

Callsign  Default is NOCALL

Determines the station callsign.  Note that connections cannot be made until this is set.


MYPcall

Callsign  Default is NOCALL

Determines the callsign to be used for PMS (Personal Message System) operations.  Normally is set to the MYCALL parameter plus a SSID (substation ID).  E.g.  G9ZZZ-1.


NEwmode

ON or OFF

Determines how the TNCs mode changes on connection to another station.  If ON, the TNC mode changes to what is set in CONMode without waiting for the connection to be established.  If OFF, the TNC will switch to the mode specified in CONMode when the connection is established.


NOmode

ON or OFF

Specifies whether to allow explicit changes of mode.  If ON, the setting of NEwmode is ignored and mode changes must be initiated explicitly (i.e. by typing CONV, TRANS etc.).  If OFF, the TNC will switch according to NEwmode.


NUcr

ON or OFF

Specifies whether to send NULLS (i.e ASCII 0) after a carriage return (CR).  ON means send NULLS, OFF means do not send NULLS.  The number of NULLS sent is specified in the NULLs command.


NULf

ON or OFF

Specifies whether to send NULLS (i.e ASCII 0) after a line feed (LF).  ON means send NULLS, OFF means do not send NULLS.  The number of NULLS sent is specified in the NULLs command.


NULLs

0 to 30

Specifies the number of NULLS to send after a carriage return (CR) or line feed (LF) as specified in NUcr and NULf respectively.


Paclen

0 to 255  Default is 128

Specifies the maximum size of a packet.  Packets may be any size up to Paclen.


PACTime

E or A  0 to 250  Default is 10

Specifies the interval to be used for automatic sending of packets in TRANSPARENT mode, (and in CONVERSE mode if Cpactime is ON).  E sends packets Every interval, A sends packets After the interval has elapsed from last keyboard activity.  The interval is calculated as the parameter supplied multiplied by 100 milliseconds.


PARity

0 to 3

Specifies how the parity bit is set for communication between the TNC and terminal program.  The parameter supplied determines parity thus:

0  No parity

1  Odd parity

2  No parity

3  Even parity


PASs

0 to 127  Default is 22  (Ctrl-V)

Specifies which character is to be used as the PASS character.  The PASS character informs the TNC that the character following the PASS character should be transmitted as is rather than interpreted as a control or command to the TNC.  The parameter supplied represents the ASCII value of the character used.


PASSAll

ON or OFF

Specifies whether to accept packets which have invalid CRCs (Cyclic Redundancy Checks) or not.  ON means that packets with invalid CRCs will be accepted, OFF means that only packets with valid CRCs (i.e. error-free) will be accepted.


PErsist

0 to 255 Default is 127

Determines the probability of resending a frame in a given time (the Slottime).  The higher the value of the parameter supplied, the more likely the packet will be retransmitted.  A value of 255 means send without delay.


PMs

ON or OFF

Specifies whether to enable the PMS (Personal Message System) or not.  ON enables the PMS, OFF disables it.


PIdcheck

ON or OFF

Specifies whether to monitor PIDs of only F0 frames or monitor PIDs of all.  ON means monitor F0 only, OFF means monitor all.


PPersist

ON or OFF

Determines whether to use PErsist or Frack method of retry timing.  ON sets retry persistence, OFF sets Frack timeout method.


Read

Message number  No default

Reads the message from the PMS whose number is supplied.


RECOnnect

Call  No default

Commands the TNC to attempt to re-establish a link across a new path.  The parameter supplied is the callsign of the station to attempt to reconnect to.


 REDispla

0 to 127  Default is 18  (Ctrl-R)

Specifies the character to be used to command the TNC to redisplay the input line.  The parameter supplied is the ASCII value of the character to use.


RESET

No default

Resets the TNC to its default parameters.  ALL CUSTOMISED SETTINGS ARE LOST.


RESptime

0 to 250  Default is 10

Sets the delay before an acknowledgement packet (ACK) is sent.  The parameter supplied is multiplied by 100 to give the delay in milliseconds.


RESTART

No default

Resets the TNC but retains all customised settings.  Removing power from the TNC has the same effect as RESTART.


REtry

0 to 15  Default is 10

Specifies the number of retries to be made when attempting to transmit a packet before disconnecting.  Retry 0 means the TNC will retry an infinite number of times.


RXblock

ON or OFF

Specifies whether data from the TNC should be formatteded to aid computer processing.  ON means format specially, OFF means no special formatting.


Screenln

0 to 255  Default is 80

Specifies the maximum number of characters per displayed line.


SEND

Callsign  No default

Sends a message to the callsign supplied for storage in the TNCs PMS.


SEndpac

0 to 255  Default is 13  (CR)

Specifies the character to be used to force a packet to be sent. The parameter supplied is the ASCII value of the character to be used.


SLottime

0 to 255  Default is 10

Specifies the delay before random number generation for the PErsist retry method.  The parameter supplied is multiplied by 10 to give the delay in milliseconds.


STArt

0 to 255  Default is 17 (Ctrl-Q)

Specifies the character to be used to signal XON in software handshaking. The parameter supplied is the ASCII value of the character to be used.


STATus

No default

Commands the TNC to give the status of connection and ACK frames.


STExt

Text  Default is blank

Determines the text string to be used as a prompt for PMS users.  STExt will be sent when a station connects to the PMS.


STOp

0 to 255  Default is 19 (Ctrl-S)

Specifies the character to be used to signal XOFF in software handshaking. The parameter supplied is the ASCII value of the character to be used.


STREAMCa

ON or OFF

Specifies whether to show the callsign appended to the stream ID.  ON appends the station callsign to the stream ID, OFF does not.


STREAMDb

ON or OFF

Specifies whether to display the stream-switch character once or twice.  ON displays the stream-switch character twice, OFF displays it once.


STReamsw

0 to 255  Default is 124  (|)

Specifies the character used to signify a stream-switch. The parameter supplied is the ASCII value of the character to be used.


TRACe

ON or OFF

Selects whether to display data in hexadecimal or normally.  ON selects hexadecimal display of headers and data, OFF selects normal display.


Trans

No default

Puts the TNC into TRANSPARENT mode.


TRFlow

ON or OFF

Determines whether to use software flow control when in TRANSPARENT mode.  ON enables flow control, OFF disables it.


TRIes

0 to 15  No default

Specifies the number of retries for the current frame.  If TRIes is entered without an argument, the number of retries for the current unacknowledged frame is returned, or the last frame acknowledged if no unacknowledged frame exists.


TXdelay

0 to 120  Default is 30

Specifies the delay before sending data.  The TNC will wait TXdelay milliseconds before sending data after keying the transmitter.  The parameter supplied is multiplied by 10 to give the delay in milliseconds.


TXFlow

ON or OFF

Determines whether to use software flow control when in TRANSPARENT mode.  ON enables flow control, OFF disables it.


TXUifram

ON or OFF

Determines whether UNPROTO frames may be sent.  ON allows UNPROTO (UI) frames to be sent, OFF disallows them.


Unproto

Call  Default is CQ

Specifies the call to be used as the address for unconnected packets (e.g. Beacon packets).


USers

0 to 10  Default is 1

Specifies the maximum number of incoming connections allowed.


Xflow

ON or OFF

Specifies whether to use software (XON/XOFF) or hardware (RTS/CTS) flow control (handshaking).  ON specifies software flow control, OFF specifies hardware flow control.


XMitok

ON or OFF

Determines whether the PTT line may be activated by the TNC or not.  ON means the PTT may be activated, OFF means that the PTT line is disabled.


XOff

0 to 255  Default is 19 (Ctrl-S)

Specifies the character to be used to signal XOFF in software handshaking. The parameter supplied is the ASCII value of the character to be used.


XON

0 to 255  Default is 17 (Ctrl-Q)

Specifies the character to be used to signal XON in software handshaking. The parameter supplied is the ASCII value of the character to be used.


Personal Bulletin Board System

Personal Bulletin Board System (PBBS)

Overview

Sysop operation

Remote operation

Configuration

Forwarding


PBBS Overview

UltraPak from version 3.0 onward has a fully featured Personal Bulletin Board System (PBBS) built in.  Whereas many TNCs have a mailbox facility (often called a PMS or maildrop), UltraPaks PBBS includes extra features, such as automatic forwarding and reverse forwarding to another BBS.

The PBBS allows the sysop to list, read, send and kill messages within a familiar Windows environment.  Up to 400 messages may be stored, and up to 10 Megabytes of disc space allocated to the PBBS.  Messages may be up to 25 kilobytes each.  Commands such as List, Read and Kill, with all their associated options, are available at the click of a button, rather than typing at a command line.  Messages for reading or killing are selected from the Display Window with the mouse and may be selected singly or in contiguous or non-contiguous groups for maximum flexibility.  All buttons are disabled and re-enabled according to the status of the PBBS, saving time-wasting on inappropriate commands.

Configuration of the PBBS allows the user to:

•	define how much space to allow for messages

•	specify a BBS to forward messages to

•	allow or disallow third party traffic through the PBBS

•	control all aspects of forwarding

•	specify a hierarchical address (for forwarding)

and more besides.

From the remote users point of view, the UltraPak PBBS looks and feels just like most other PMSs, with commands to list, read and kill messages, and a useful help facility available.

When forwarding to other BBSs, UltraPak behaves as a smart BBS and uses the standard OK/NO forwarding protocol or FBB type compressed forwarding depending on the BBS it is forwarding to, ensuring compatibility with most modern BBS software.

Forwarding can be configured so that the PBBS will forward whenever you log off from it and there are messages to be forwarded, or a schedule of forwarding at times determined by you may be set up.  You, as sysop, are kept fully aware of what is happening by a selectable status window and a forwarding log can be maintained if required.

It should be noted however, that the UltraPak PBBS is NOT a full BBS, nor does it try to pretend to be.  It is a personal   BBS, and as such provides a simple interface which is quick and easy to learn and understand.  It is not multi-user.  If the PBBS is in use, either locally by the sysop or remotely by a user logged in, any other attempts to access the PBBS will result in a PBBS busy message.

The PBBS interface to the sysop is organised as a large Display Window, in which message headers are listed with a column of status displays and all control buttons in a panel beneath.

The PBBS is accessed by either selecting Sysop from the PBBS menu, or by clicking the BBS button.


Sysop

The sysop (System Operator)is the owner and controller of the PBBS.  The sysop has full access to all features available from the PBBS.  The sysop can list, read and kill all messages, regardless of type, status, originator or destination.  The sysop controls all forwarding options and other configuration.


PBBS - Sysop Operation

Access to the PBBS from UltraPak when you are the sysop is very different from accessing a PBBS or PMS remotely.  Instead of typing commands at a menu prompt, UltraPaks Windows style interface gives you access to all functions from buttons.  The action of each button is described in detail in this help screen.

Accessing the PBBS

Access to the PBBS from within UltraPak couldnt be simpler.  Either click the BBS button or select the Sysop option from the PBBS menu.

If the PBBS is in use (e.g. someone is logged in remotely, or forwarding is in progress), you will receive a message telling you that the PBBS is busy.  In most cases you will simply try later.  However, as sysop, you have the ability to force a disconnect on the PBBS stream and gain access in that way.  Bear in mind though, that this is a somewhat unfriendly action against the station logged in, and will disrupt any automatic forwarding.  It is not recommended.

On logging in to the PBBS, any unread messages to you will be displayed immediately as a header.  The headers are in the usual BBS format thus:

No.   TS  Size  To     BBS    From   Date      Time    Subject

----- --  ----  --     ---    ----   ----      ----    ----------

99    PN  899   G9XYZ         G9ABC  01/07/95  1645    9600 Baud

No	Message no. 99 in this PBBS

TS	Type and status - P = Personal and N = not read by G9XYZ

Size	Size of this message in bytes

To	Callsign the message is addressed to

BBS	Home BBS of G9XYZ

From	Callsign of the station originating the message

Date	Date that the message arrived in this PBBS

Time	Time that the message arrived in this PBBS

Subject	The subject for the message

A series of status displays at the left of the panel beneath the display window continuously indicates:

Total number of messages in the PBBS

Number of messages awaiting deletion

The space remaining in the PBBS (bytes)

The number of unread messages to the sysop

The number of messages held

The number of messages forwarded but not killed

These displays constantly reflect the state of the PBBS and are updated automatically.

To the right of the displays are the buttons:

List	Read	Kill	Reply	Held

L Mine	R Mine	K Mine	Edit	Purge

L From	Send	Renum

L To	S Bull	Conf	Bye

All functions of the PBBS are accessed through the buttons and a detailed description of the use of each one can be obtained by clicking on the button name above.

Generally, buttons are only enabled when they have a sensible function.  Thus, if there are no messages at all in the PBBS, all buttons are disabled except the Send and S Bull buttons and the Conf and Bye buttons.  If there are no messages addressed to you in the PBBS, the L Mine, R Mine and K Mine buttons are disabled, etc. etc.

Messages are selected for reading or killing by highlighting them in the Read Window.  Multiple selections may be made.  For reading, sending or editing a second window is displayed, whose function depends on the option selected.

Because all message headers are cached in memory, the PBBS is limited to a maximum of 400 messages at any time.  The space allowed for PBBS messages on disc is configurable by the sysop, between limits of 5 kilobytes to 10 Megabytes (9.999 actually).  The PBBS menu includes an option to clean up the PBBS, in case any message files have been left orphaned for any reason.

Configuration of the many PBBS and forwarding options is described fully in the Configuration section, while a full discussion of the forwarding aspects of the PBBS is described in the Forwarding section.


Message type

Messages in the PBBS can be of just two types:

P	Private

B	Bulletin

A private message is addressed to a particular person and cannot be read or killed by anyone other than that person or the person originating the message (or, of course the sysop)

A bulletin is addressed to a whole group of people and can be read by anyone.  Only the sysop or the bulletin originator can, however, kill a bulletin.


Message status

All messages in the PBBS have a status.  The status of the message depends on what type of message it is, and what has happened to that message.  The possible statuses are:

For a private message:

D	Deleted.  The message has been marked for killing but has not yet been killed.

F	Forwarded.  The message has been forwarded to another BBS.

H	Held.  The message is being held for the sysop to examine.

N	The message has not been read by the addressee.

Y	The message has been read by the addressee.

For a bulletin:

D	Deleted.  The bulletin has been marked for killing but has not yet been killed.

F	Forwarded.  The bulletin has been forwarded to another BBS.

H	Held.  The bulletin is being held for the sysop to examine.

$	No special status.


PBBS List button

 PBBS - List button

The List button works very simply and straightforwardly.  Clicking the List button will clear the PBBS Display Window and redisplay the headers of all messages in the PBBS, most recent first.  Headers are displayed in the normal BBS format:

No.   TS  Size  To         BBS      From      Date        Time   Subject

-----   ----  ------  ---          ------      -------       ------        ------    -----------

99     PN  899   G9XYZ               G9ABC   01/07/95  1645   9600 Baud

Note that the only time that the List button is disabled is if the PBBS is completely empty.

To selectively list message headers, use the L Mine, L From and L To buttons.


PBBS Read button

PBBS - Read button

The Read button is the means by which messages in the PBBS can be displayed for reading.  Before the button may be used, a message or messages must be selected from the Display Window.  Messages are selected by positioning the mouse pointer on the header line and clicking the left mouse button.  The header will then be highlighted.  Multiple selections may be made by combining the mouse click with the Shift or Control keys.

When the required messages have been selected, clicking the Read button will display the Read Window.  The Read Window has a large display area for the message and a status display below containing the details of message ID, message size, the originator of the message, the addressee, the BBS field, including any hierarchical address and the subject.

If more than one message was selected, the Prev and Next buttons will be active, and clicking those buttons will move through the selected messages.

If the message was addressed to the sysop, the message status will be changed to Y, indicating that it has been read.  Note that messages not addressed to the sysop, while they may still be read, do not have the message status changed.

As a shortcut, if only one message is to be read, double-clicking the mouse with the mouse pointer positioned on the appropriate header in the Display Window will read the message, exactly as if the message had been selected and the Read button clicked.

Once you have finished reading the message or messages, clicking either the OK or Cancel buttons will return you to the main PBBS window.

Messages addressed to the sysop may be read selectively by clicking the R Mine button.

The Read button will be disabled until at least one message header has been selected in the Display Window.


Hierarchical Address

To assist in the routeing of messages through the network, a system of hierarchical addressing has been developed.

A hierarchical address looks like this:

GB7LWB.#27.GBR.EU

It is termed hierarchical because each element of the address (separated by a dot), working from right to left, covers a narrower and narrower area.

In the example, each element has the following meaning:

EU	Europe

GBR	Great Britain

#27	A region within Great Britain

GB7LWB	The BBS

Hierarchical routeing means that a BBS can route a message to an appropriate BBS by progressively examining the address from the right.  If the BBS doesnt know the route to GB7LWB directly, it may well have a route to region #27, or if not, to GBR.  That BBS is then likely to have routes to the next level down, until by the time the message is in region #27, the routeing BBS will have a route to GB7LWB.

UltraPak uses hierarchical addressing when forwarding messages from the PBBS.


PBBS Kill button

PBBS - Kill button

The Kill button works in a similar way to the Read button.  Before the button can be used, one or more message headers must be selected from the Display Window.

As sysop, any message can be killed.  However, as a precaution, if the message to be killed has not been read, a warning message is issued before the message is killed, and the choice is available to carry on and kill the message or leave it untouched.

Messages are not killed immediately.  Rather, their status is changed to D (for Delete) and they will continue to be visible for the remainder of the PBBS session.  This is a deliberate philosophy, to enable the sysop to unkill messages by changing their status to something other than D by using the Edit button..  It is important to remember however, that the PBBS status display will continue to show the free space as though they have not been killed.  As a reminder though, the display does show the number of messages awaiting deletion.

Messages can be fully killed while in the PBBS session by using the Purge button.  Purging will remove all message headers with a status of D and remove the message text from disc.  You cannot recover fully killed messages!  Messages are fully killed automatically when you finish the PBBS session.  Once messages are fully killed, the status display is updated to show the extra space available.

To selectively kill messages addressed to the sysop, use the K Mine button.  Note that the K Mine button will not kill messages that have not been read.

The Kill button will be disabled until at least one message header has been selected in the Display Window.


PBBS Edit button

PBBS - Edit button

The Edit button allows you, as sysop, to change any of the following characteristics of any message in the PBBS:

The message type (i.e. personal or bulletin)

The message status

Who the message is addressed to

The BBS to which the message is addressed

Who the message is from

Clicking the Edit button displays a similar window to the one in which messages are read or written ready for sending.  The message as it exists currently will be displayed and any of the fields listed above may be amended.  Note that you cannot  edit the message text itself.

If you attempt to set a field to a value which is invalid you will receive an error message when you click the OK button.  Some fields also have field level validation built in.  In this case, if you enter an invalid value, the field will turn red when you try to leave it.

If you decide not to make any changes, clicking the Cancel button will return you to the main PBBS window and leave the message in its original state.  Clicking OK will make the changes permanent.

The Edit button is very useful if you kill a message and later in the same session decide that you want it back.  In this case, simply select the message in the Display Window, click the Edit button and change the status of D back to N or $, depending on whether the message is a private one or a bulletin.

Also, if you have several messages which are held (i.e. status is H) for your examination, you may change their statuses in a similar manner with the Edit button.

The Edit button does not allow editing of multiple messages - you must select each one individually.

The Edit button will be disabled until a message header has been selected in the Display Window.


PBBS Held button

PBBS - Held button

Messages in UltraPaks PBBS can have a status of H, which signifies that they are being held for examination by the sysop.  Typically, they will be messages which have been entered into the PBBS remotely, either from a remote user using the Send command or forwarded from a BBS.  In either case, if the PBBS is configured to do so, such messages will be held, so that they cannot be forwarded without the sysop editing their status.

To simplify the detection of these held messages, the PBBS has the Held button.  By clicking the Held button, you can display the headers of all held messages in the Display Window.  It is a simple matter then to read the messages and edit their status accordingly.

The Held button will be disabled if there are no held messages in the PBBS.


PBBS L Mine button

PBBS - List Mine button

The List Mine button (L Mine) will list the headers of all messages addressed to you, the sysop.  It provides a very quick and simple way of seeing immediately everything in the PBBS addressed to your callsign.  As always, with any of the List commands, headers are displayed chronologically, most recent first.

The messages may then be read singly or as a group by selecting them appropriately.  To read messages addressed to you without listing them first, use the R Mine button.

Note that any unread mail (i.e. status = N) addressed to you will be displayed automatically when you log into the PBBS.

The List Mine button is disabled if there are no messages in the PBBS addressed to you.


PBBS R Mine button

PBBS - Read Mine button

The Read Mine button is the quickest way to read all of the messages in the PBBS which are addressed to you, the sysop.  If you click the R Mine button, the first of your messages will be displayed in the Read Window.  Using the Prev and Next buttons you can browse up and down through all of them one by one.

If you only want to list your messages, perhaps to read just a selected one, use the L Mine button.

Each message as it is read will have its status changed to Y.

The Read Mine button is disabled if there are no messages in the PBBS addressed to you.


PBBS K Mine button

PBBS - Kill Mine button

The K Mine button allows you to quickly kill all messages addressed to you which have been read.  The latter point is important, as the K Mine button does not kill unread messages.

Messages killed are flagged with a status of D (delete) and remain in the PBBS until either purged by the sysop, or until the sysop logs out of the PBBS.  A message killed in error can have its status changed from D to unkill it.

You can kill an unread message, should you wish to do so, by using the Kill button.

The Kill Mine button will be disabled if there are no messages in the PBBS addressed to you.


PBBS L From button

PBBS - List From button

The L From button works very similarly to the L Mine button, except that it allows you to specify a callsign in the box alongside and will list all messages originated by that station.

For example, if you wanted to see if there was any mail in the PBBS from G9QQQ, you would enter G9QQQ in the box, click the L From button and any messages in the PBBS would be listed.

A similar function, but for messages addressed to a specific callsign is obtained by clicking the L To button.

The L From button will be disabled if the callsign box is blank.


PBBS L To button

PBBS - List To button

The L To button works very similarly to the L Mine button, except that it allows you to specify a callsign in the box alongside and will list all messages addressed to that station.

For example, if you wanted to see if there was any mail in the PBBS to G9QQQ, you would enter G9QQQ in the box, click the L To button and any messages in the PBBS would be listed.

A similar function, but for messages addressed from a specific callsign is obtained by clicking the L From button.

The L To button will be disabled if the callsign box is blank.


PBBS Renum button

PBBS - Renum button

The sysop has the facility to renumber the messages within the PBBS if he or she wants to.  Every message has a number assigned to it at the time it is created, whether it is from a remote user, the sysop, or forwarded in from a BBS.  These message numbers are assigned sequentially and are reset to 1 when 20,000 is reached.

The numbering inevitably becomes patchy, as messages are deleted and the numbering can be tidied up by clicking the Renum button.  Numbering is restarted from 1 and messages are numbered sequentially again, oldest first.  A message is displayed, indicating how many messages have been renumbered.

Important

You must be aware of a possible problem that could arise as a consequence of renumbering messages.

UltraPak automatically assigns every message a message ID at the time it is created.  The message ID is formed from the message number and the sysop call thus:

nnn_sysop

So if your call is G9XXX and the message number is 789, the message ID would be 789_G9XXX.

The message ID, once assigned, is never changed.  Suppose that yesterday your PBBS forwarded a message with message ID of 8_G9XXX to another BBS.  Since then you have renumbered your messages and now have just created message number 8.  If you now try to forward this message on to the other BBS it will probably fail!  The reason is that every message ID must be unique within each BBS, and the BBS you tried to forward to still has the earlier message with ID 9_G9XXX and will therefore reject your attempt to forward another message with that ID.  Similarly UltraPaks PBBS will reject any message header if it has an ID the same as a message already in the PBBS.

The problem is not too likely to happen, but you should be aware of it in case you start to have messages rejected.


PBBS Send button

PBBS - Send button

The Send button is used to post messages to others in UltraPaks PBBS.  It is equivalent to the SP command used in most BBSs, and generates a private message, though this can be changed easily to a bulletin.

Clicking the Send button displays the Send Window.  This is essentially identical to the Read Window in which messages can be read.  However, all fields with the exception of message number, message ID, message size and status can be entered or changed.

To send a private message, click the Send button.  When the Send Window is displayed, enter the callsign of the station the message is addressed to in the To: field.  Enter a BBS callsign, with a hierarchical address if appropriate in the @ field.  If the message is to be left in UltraPaks own PBBS leave the @ field blank.  The From field defaults to your own callsign and should not normally need to be changed.  The status of N cannot be changed.

Enter the message subject in the next field.  Finally, type the message in the large text window at the top.  These steps can be performed in any order of course.

As mentioned, the Send button assumes a private message.  However, the message can simply be changed to a bulletin if required.  Simply click the Bulletin option button.  The status will change to $ and the private message becomes a bulletin! You should make sure that the other fields are sensible for a bulletin of course.

If you need to make a fresh start in the message window, you may clear it by clicking the Clear button.  If the Always add sig option is selected, the signature file will be displayed.  Alternatively, if that option is off, the signature may be added by clicking the Sig button when the message is complete.

The File button allows you to select a text file which will then be loaded into the text window ready to be sent.

When your message is complete, simply click the OK button.  Assuming that there are no errors, the message will be saved and you are returned to the main PBBS window.  You will note that the new message header is added at the top of the Read Window.  If you change your mind and decide not to send the message, click the Cancel button.

The Send button is disabled if there are 400 messages in the PBBS or the PBBS has run out of disc space.


PBBS S Bull button

PBBS - Send bull button

The S Bull button is used to post messages to others in UltraPaks PBBS.  It is equivalent to the SB command used in most BBSs, and generates a bulletin, though this can be changed easily to a private message.

Clicking the S Bull button displays the Send Window.  This is essentially identical to the Read Window in which messages can be read.  However, all fields with the exception of message number, message ID, message size and status can be entered or changed.

To send a bulletin, click the S Bull button.  When the Send Window is displayed, enter the name of the group the message is addressed to in the To: field.  Enter  a distribution in the @ field.  If the message is to be left in UltraPaks own PBBS leave the @ field blank.  The From field defaults to your own callsign and should not normally need to be changed.  The status of $ cannot be changed.

Enter the message subject in the next field.  Finally, type the message in the large text window at the top.  These steps can be performed in any order of course.

As mentioned, the S Bull button assumes a bulletin.  However, the bulletin can simply be changed to a private message if required.  Simply click the Private option button.  The status will change to N and the bulletin becomes a private message!  You should make sure that the other fields are sensible for a private message of course.

If you need to make a fresh start in the message window, you may clear it by clicking the Clear button. If the Always add sig option is selected, the signature file will be displayed.  Alternatively, if that option is off, the signature may be added by clicking the Sig button when the message is complete.

The File button allows you to select a text file which will then be loaded into the text window ready to be sent.

When your message is complete, simply click the OK button.  Assuming that there are no errors, the message will be saved and you are returned to the main PBBS window.  You will note that the new message header is added at the top of the Read Window.  If you change your mind and decide not to send the message, click the Cancel button.

The S Bull button is disabled if there are 400 messages in the PBBS or the PBBS has run out of disc space.


PBBS Purge button

PBBS - Purge button

When a message is killed in UltraPaks PBBS it isnt removed immediately.  What happens is that the message is marked with a status of D (for deleted).  Until you log out of the PBBS nothing more is done with that message and it will continue to be displayed with any of the List commands and can be read as normal.  It will only finally be removed from the PBBS when you end your PBBS session by clicking the Bye button.

This policy of not removing killed messages immediately is entirely deliberate and allows the sysop to unkill messages by editing their status back to something other than D.  However, the free space remaining within the PBBS (displayed in the status displays) is not updated until the killed messages are finally removed.

You therefore have the option to remove killed messages yourself while still logged in to the PBBS.  This is the function of the Purge button.  Clicking the Purge button will immediately remove all messages in the PBBS with a status of D and free up the space they occupied in the PBBS.  You cannot recover messages purged.

The Purge button is disabled until there is at least one killed message in the PBBS.


PBBS Conf button

PBBS - Conf button

The Conf button allows you to configure the PBBS.  There are a number of parameters and options which need setting up.  Configuration is covered fully in another Help screen, but the options and parameters available are:

Remote access	ON/OFF

Forwarding 	ON/OFF

Forward on exit from the PBBS	ON/OFF

Third party traffic allowed	ON/OFF

Kill messages on forwarding	ON/OFF

Add header lines to forwarded messages	ON/OFF

Show progress window on forwarding	ON/OFF

Hold messages for forwarding	ON/OFF

Maintain a forwarding log	ON/OFF

Maximum space to allow the PBBS	(kilobytes)

Sysop callsign	(your callsign)

Your hierarchical address

The PBBS prompt

The BBS to forward messages to

The PBBS timeout	(minutes)

Forwarding schedule

See the configuration section for details of how to set these details.  The configuration window can also be displayed by selecting the PBBS option from the Configuration menu.


PBBS Bye button

PBBS - Bye button

The function of the Bye button is fairly obvious!  Click the Bye button when you wish to quit your session in the PBBS.

Several things happen automatically when you leave the PBBS:

1)  All changes to the list of message headers (which are cached in memory) are saved to disc.

2)  All messages with a status of D are removed completely from the PBBS and all message text deleted from disc, freeing up the space occupied in the PBBS.

3)  The PBBS is flagged as being available, so that a remote user may log in and use it.

4)  The PBBS window is closed and normal UltraPak operation is resumed.


PBBS Reply button

PBBS - Reply button

The Reply button is only available when a message header is highlighted in the Display window.  When you click it, the action is as if you were clicking the Send button, i.e. the system expects that you are sending a private message.  However, UltraPak will search the routeing headers in the message that you are replying to and extract the originating call and address, and supply that as the destination for your new message.

Additionally, the original subject is used as the new subject, with Re : inserted in front of it.  Any of the fields can of course be altered manually if required.

When using the Reply button, you have the option to include the original message in the text of your reply.  Select the Include original message box in the PBBS Main window to do so.  If you use this option, you can highlight text in the original message and click the Quote button to add the selected Quote mark to it.


PBBS Remote Operation

PBBS  -  Remote Operation

Using the UltraPak PBBS across a radio link, (i.e. as a remote  user rather than logging in within the program as sysop) is very similar to using any other PMS or BBS.

On connecting to your station, the remote user will receive the UltraPak SID and any other personalised prompt which you have set up in CTEXT.  He or she may then carry on an interactive connection with you as normal if you are there to respond.  Or, the remote user may access the PBBS by typing *PBBS  If your PBBS is on, UltraPak will respond by sending out the following:

The message you specified as the PBBS prompt in the configuration window

The number of bytes available in the PBBS

The number of messages in the PBBS

The menu prompt

Additionally, if the remote user has unread mail in the PBBS he or she will be informed, and the message headers listed.

The Remote Menu

The menu issued to a remote user looks like this:

Sysop PBBS  !/B/H/K/KM/L/LL/LM/R/RM/S/SB/SP/V >

where Sysop is your own sysop callsign.

Each command available from the menu is described in detail below.

!

The exclamation mark instructs UltraPak to send statistics about the PBBS.  The response is of the form:

      PBBS statistics

      ---------------------

No. messages           : 1

Free space                : 102238 bytes

Next message is no. : 15

Date/time                  : 05/07/95, 21:30

B(ye)

As expected, Bye is the quit command.  The PBBS will send a message thanking the remote user for calling and force a disconnect.

H(elp)

Issuing the H command instructs the PBBS to send its help message.  This is whatever you have entered in the file REMHELP.TXT.

K(ill)

The K command must be followed by a message number.  It is the command to kill a specific message number.  Only one number may be specified as an argument.

The result of the Kill command can be one of three possibilities:

1.	The message is successfully killed.  The message header is removed and the message deleted from disc immediately.

2.	The message number specified is not found.  No action taken except an error message issued to the remote user.

3.	The remote user does not have the right to kill the specified message.  Generally, a remote user may only kill the following messages:

•	A message originated by the remote user

•	A private message addressed to the remote user with status of Y (has been read)

K(ill) M(ine)

The KM command instructs the PBBS to kill all messages addressed to the remote user.  Note that only messages with status Y will be killed.  That is, unread or held messages will not be killed.

L(ist)

The L command is the general List command.  Issuing the L command will instruct the PBBS to list all message headers which the remote user is entitled to see.  In general, a remote user can list messages which:

1.	Were originated by the remote user

2.	Are bulletins with status other than H (held)

3.	Are private messages addressed to the remote user with status other than H (held)

L(ist) L(ast)

LL followed by a number lists that number of messages, most recent first.  For example, LL 5 will list the last five message headers in the PBBS.  The same rules apply as detailed in the List command.

L(ist) M(ine)

LM lists the message headers of all messages in the PBBS which are addressed to the remote user.  Similar rules apply as detailed in the List command.

R(ead)

The R command must be followed by  a number and is the general Read command.  The result of issuing the command is very similar to the Kill command in that one of three possibilities arises:

1.	The message is displayed for reading.  In this case, if the message was a private one addressed to the remote user, the message status will be changed to Y.

2.	The message could not be found.  An error message will be sent to the remote user.

3.	The user did not have the right to read the message.  Only messages which can be listed can be read.

S(end) (to sysop)

The S command on its own is an abbreviated way of sending a private message to the sysop.  It is exactly the same as issuing the SP sysop_call command.

The remote user is prompted for a subject title and after entering that, may type the message as required.  The end of the message is, as is conventional, signalled by sending a Ctrl-Z character or by typing /EX.  Either must be typed on a line by themselves.

The remote user will receive confirmation that the message has been saved, and what the message number is.  The number of bytes of space remaining in the PBBS is sent also.

In the (unlikely) event that the message is too large (either it is more than 25 kilobytes, or the PBBS is out of space) the message is not saved and the remote user is alerted to the error condition.

S(end) B(ulletin)

The SB command is only available if third party traffic is allowed in the PBBS (see Configuration).  If that is so, the remote user may send a bulletin to the PBBS.  If forwarding is on, it will in due course be forwarded on.

If third party traffic is not allowed, the remote user receives an appropriate message.

The SB command must be followed by a group name and a distribution.  For instance, if sending a bulletin to ALL at every BBS in the United Kingdom, you would send:

SB ALL @ GBR

If a distribution is not specified, the bulletin will not be forwarded from your own PBBS.

Think carefully before sending bulletins to wide distributions, especially to WW.  Does your message really need to go to every BBS in the world?

If accepted, the SB command prompts the user for a subject and then the message.  As with all variations of the Send command, the end of message is specified by sending Ctrl-Z or /EX on a line on its own.

S(end) P(rivate)

The SP command can be used to send a private message to another station, either at the local PBBS, or at a full service BBS elsewhere.  If the message is addressed to anyone other than the PBBS sysop, it will only be accepted if third party traffic is allowed in the PBBS.  Otherwise, an appropriate message will be sent to the remote user.

The SP command must be followed by a callsign and, optionally a BBS and a hierarchical address.  Thus, if you were sending a private message to G9XYZ whose home BBS is GB9ABC, you would type:

SP G9XYZ @ GB9ABC

If you further knew GB9ABCs full address, you might send:

SP G9XYZ @ GB9ABC.#35.GBR.EU

If you specify a hierarchical address, the PBBS will validate it and issue an error message if it is of an invalid format.

If the command is accepted, the user is prompted for a subject and then the message.  Ctrl-Z or /EX ends the message as normal.

V(erbose)

The V command is similar to the R command in all respects, except that any routeing headers associated with the message are displayed also.


PBBS Configuration

PBBS  -  Configuration

UltraPaks Personal Bulletin Board System (PBBS) needs a number of items configuring before you can start to use it.  Many of these are concerned with forwarding and if you dont intend to use the PBBSs forwarding facilities they can be ignored.

The PBBS configuration screen can be reached in two ways.  From UltraPaks main window, you can select the PBBS option from the Configure menu.  Or, if you are logged into the PBBS, you can click the Conf button.

The configuration screen consists of a number of check boxes and some text entry boxes.  Each configurable item is dealt with here in detail.

A step-by-step guide to configuring the PBBS can be accessed by clicking the Configuration icon in the UltraPak program group, or by viewing the file CONFIG.WRI in the UltraPak home directory.

Remote access

This check box determines whether the PBBS is accessible to remote users.  You may want to turn the PBBS off from time to time and if the box is unchecked a remote user attempting to use the PBBS will receive a  Sorry, the PBBS is unavailable message.

Forwarding

This determines whether your PBBS is allowed to forward messages to another BBS or not.  If you want to allow forwarding, check the box - leave it unchecked otherwise.

If you allow forwarding, a number of other options must be set, in particular a hierarchical address and a BBS callsign to forward to (or a script file name).

Forwarding can be set to happen at fixed times or every time you exit from the PBBS by setting other options described later.

Note that if you allow forwarding, UltraPak will signal an error if you leave the forwarding BBS field or hierarchical address fields blank.

3rd Party

It is most important to get this right.  In some countries it is illegal to allow third party traffic in your BBS without a change or variation in your amateur license.

If you do NOT want third party traffic in the PBBS leave the box unchecked.  If third party traffic is OK then check the box.

If you have disallowed third party traffic, then any remote user attempting to leave a message in your PBBS which is not addressed to you will receive a Third party traffic not allowed message.  You, as sysop, will also not be able to leave messages in the PBBS unless they are from, or to, your callsign.

Kill on forward

Another forwarding option.  If you check this box, UltraPak will kill immediately any messages successfully forwarded unless they are bulletins.  If you want messages to remain after forwarding, leave the box unchecked. Messages which have been successfully forwarded have a status of F.

Add header line

When messages are forwarded from one BBS to another, the path is recorded in the message headers.  Each BBS adds its own header line, which records the date and time the message arrived at the BBS, the message number and a few other items of information.  From the message headers, the complete path that the message took can be extracted.

If you want UltraPak to add its own header line to forwarded messages, check the box.  However, as UltraPaks PBBS is a personal BBS and not a full service BBS it is debatable whether header lines should be added.

Show status window

You have the option to have a status window displayed all the time that UltraPak is forwarding or reverse forwarding from its PBBS.  The window appears in the lower right corner of UltraPaks main window, but can be repositioned if required.

The window is quite useful, and shows the state of the forwarding session, i.e. the number of the message being processed and its status as Accepted or Rejected and how reverse forwarding is progressing.  It is a matter of personal taste whether you find it valuable or a distraction.  Check the box to have the window displayed.

Hold before forward

It is recommended that you check this box.  It gives you the option to have messages which have arrived from a remote user or a BBS flagged as Held (status H).  The held status means that the message is not eligible for forwarding and that it cannot be read or even listed by  a remote user (except the originator).  This is plainly useful to avoid undesirable material arriving or passing through your PBBS and being viewed by others.  It is obviously not an issue if third party traffic is not allowed.

If you check this box to have incoming messages held, you can inspect them at your leisure and use the Edit facility to change their status so that they become available for others to see and eligible for forwarding.

Forwarding log

Check this box if you wish UltraPak to maintain a log of forwarding activity.  If you use this facility, UltraPak will maintain a file called FORWARD.LOG in its home directory.  Every time any forwarding takes place, a record of messages sent and received is made in the file.  Entries take the form:

01/07/95, 13:50:59  Starting forwarding...

01/07/95, 13:51:01  SP G9XXX @ GB7LWB < G4WFT $7_G4WFT - Sent, accepted

01/07/95, 13:51:02  SB TEST @ GBR < G4WFT $8_G4WFT - Sent, accepted

01/07/95, 13:51:04  SP G4WFT @ G4WFT < G9XYZ - Received, accepted

01/07/95, 13:51:05  Ending forwarding...

You should keep an eye of the size of the FORWARD.LOG file if you use it.

Max size (kbytes)

This is where you tell UltraPak how much disc space to allow for messages in the PBBS.  The minimum space allowable is 5 kilobytes, the maximum is 9.999 Megabytes.

If you attempt to enter smaller or larger values than these UltraPak will set the minimum or maximum respectively.

If you reduce the size of the PBBS, UltraPak issues a warning message to remind you that if the space you have allowed is less than the space taken by existing messages, although you wont lose any messages, you will be unable to create any new messages until there is some space available.

Sysop call

This is simply an affirmation that your callsign is the one to regard as the sysop.  It can be something different of course, but it is difficult to see why it would be!  It is an error to leave the field blank and you will not be able to leave the field until it has something in it.

H. Addr

This is the hierarchical address of your PBBS.  If you want to have forwarding, you must put a valid hierarchical address here.  The address you enter is validated and an incorrect entry will be highlighted red.  See the help on forwarding for further discussion of hierarchical address.

PBBS prompt

If you want a personalised message to be sent out to remote users logging in to the PBBS, you can specify the message here.

Forward to BBS

This is the callsign of the BBS to which all forwarding from the PBBS will be done.  If you have specified forwarding to be on, it is an error to leave this field blank.

If you cannot access your BBS directly, but have to go through one or more nodes, you can specify a script file name here.  The script file must have the extension .SCT for UltraPak to recognise it correctly.

PBBS Timeout (mins)

This is the period of time, in minutes, which the PBBS will wait for activity before disconnecting the remote user or BBS.  You may specify a value from 1 to 30 minutes.

If you specify a long time the TNC timers may disconnect you before the timeout is reached.

Forward on exit from PBBS

This can be quite a convenient option for scheduling forwarding.  If you have this check box checked, UltraPak will forward any eligible messages whenever you log out of the PBBS as sysop.  If you have just left mail in there then it will be forwarded immediately.  If there are no eligible messages, however, no forwarding will be attempted and hence no reverse forwarding attempted.  It is important to remember this aspect if you want mail for you to be reverse forwarded from your local BBS.  You might want to consider having UltraPak carry out forwarding to a timed schedule - see the end of this Help section.

Use schedule

Selecting this option instructs UltraPaks PBBS to use a time schedule to initiate forwarding sessions.  The schedule is determined by you and is recorded in the file SCHEDULE.SYS, which must reside in the UltraPak home directory.

Entries in SCHEDULE.SYS consist essentially of a series of times, in 24-hour format, and in ascending order.  However, since the file is used also to schedule downloading sessions of messages in the Unproto Read list and script file execution, the time is followed by a letter F for a conventional forwarding session, D for a download session or S and a script file name to execute a script file.

Thus a typical SCHEDULE.SYS file could be like this:

0100 F

0900 D

1200 D

1500 D

1800 F

2200 D

In this case the system would initiate a conventional forwarding session at 0100, a download session at 0900, another download session at 1200 etc., etc.

The times in SCHEDULE.SYS must be in ascending order, as UltraPak will simply take the next time which is later than the current time as the next session.  If SCHEDULE.SYS does not exist, or does not contain any valid times, the Use schedule option for both conventional forwarding and downloading will be disabled.

Edit schedule

Click on the Edit schedule button to edit the SCHEDULE.SYS file.

Announce new mail

Select this item to have UltraPak announce new private mail for the sysop arriving by beeping or playing a WAV file.  If this item is selected, if the WAV file box contains a valid WAV file name, then that file will be played whenever new mail for the sysop arrives.  If the box is blank, the default beep will sound.  You can use the Browse... button to look for WAV files in your system.

Quote char

Enter in this box the character you want to use to quote a message or part of a message when replying to a message in the PBBS.


PBBS Forwarding

PBBS - Forwarding

UltraPaks PBBS is a little more than a PMS (Personal Mailbox System), which is why it doesnt have that title.  The main thing which distinguishes UltraPaks PBBS from the normal TNC-based PMS is its ability to forward, automatically, mail to a full BBS.  It will reverse forward too.

Overview

Forwarding is the name given to the process of passing mail from one BBS to another.  In simple terms, if you enter a message in UltraPaks PBBS and address it to a station at another BBS, UltraPak will, entirely automatically, pass that message on for you.  As a bonus, while it is connected to the BBS it will reverse forward any mail that is waiting for you.

Forwarding between modern BBSs follows a well-defined protocol and UltraPak too follows this protocol and behaves as a smart BBS.  Essentially, when UltraPaks BBS connects to a full BBS, it sends first of all a SID which tells the BBS what features UltraPaks PBBS will support.  As soon as the BBS responds by sending its own SID, UltraPak is ready to start sending mail.  All mail is sent by first sending a header, which tells the receiving BBS some basic details about the following message.  On receiving that header, the BBS can decide if it wants to accept it or reject it.  The main reason that it would reject it is if it had already received it, perhaps from another BBS.  In that case it will reply by sending NO, otherwise it will send YES, and UltraPak will carry on and send the message.

Once all messages have been forwarded, UltraPak switches into reverse forwarding mode.  Basically, the PBBS and full BBS swap roles, and the BBS will send headers and messages and UltraPak will be responding with YES or NO.  When all is finally done, the connection is broken.

As an alternative to the standard YES/NO protocol detailed above, UltraPak can also utilise FBB BBSs compressed forwarding protocol.  This is a little more efficient, since messages are compressed before being transmitted.  The reverse forwarding is interleaved with normal forwarding and generally the whole process is less demanding of bandwidth.  When the PBBS connects to another BBS the feature set is scanned and compressed forwarding will be used where the feature set supports it.

UltraPaks features

UltraPak has a number of facilities which make the process of forwarding a bit easier.  However, a number of things do need to be set up.  Configuration of the PBBS is not difficult and is covered fully in the Configuration section.  A step-by-step guide to configuration is contained in the file CONFIG.WRI in the main UltraPak directory.

When does forwarding happen?

You have basically three choices as to how you configure the PBBS to forward:

1.	Whenever you log out of the PBBS and there is mail to send

2.	At scheduled intervals

3.	Only when you manually start a forwarding session

The first option is quite convenient, as it keeps forwarding down to a minimum and ensures that it only happens when there is something to send.  The criteria for a message or bulletin to be forwarded are:

The destination BBS field is not blank and the message is N or $

The second option means setting up a forwarding schedule.

The file SCHEDULE.SYS can be used to set up a whole schedule for both conventional forwarding and downloading messages from the Unproto Read list.  The format of that file is covered fully elsewhere.

The important thing to note here is that, unlike the forward on exit from the PBBS option, forwarding will be initiated whether there is anything to forward from your PBBS or not  (because there might be something to reverse forward of course).  For this reason, you should not set too small an interval between forwarding sessions, to minimise unnecessary traffic on crowded frequencies.  It should be noted here also that you can turn forwarding off altogether by unchecking the Forwarding box in the configuration window.

The third option allows you to initiate forwarding manually.  To do this, select the Forward option from the PBBS menu.

You can set up all three options or any combination of course to suit your needs.

Where does UltraPak forward to?

You have to nominate the BBS to which forwarding should be directed.  This is done in the Forward to BBS box in the configuration window.  You should enter the BBS callsign in here, or, if you have to go through nodes to reach your local BBS, you can enter a script file name here and UltraPak will execute the script instead.

What if Im already connected to someone else when forwarding happens?

If you are using standard MBL/RLI forwarding then no problem!  UltraPak will search to find the next free stream or channel and initiate forwarding on that stream, leaving your first connection intact.  If you are connected to the same BBS as you forward to, then forwarding cannot take place.  However, if compressed forwarding is being used then there must be no other connections active.

Forwarding options

There are quite a few of these!  A brief description of whats available might help:

Kill on forward  -  This gives you the option to have UltraPak automatically kill all messages successfully forwarded.  Like most of the options its a matter of taste.  If you dont select this one, forwarded messages remain in the PBBS with a status of F.

Hold before forward  -  It is safer to leave this one on!  It means that any message which arrives in your PBBS from a remote user or is reverse forwarded in or downloaded is flagged with a status of H and cannot be read or listed by anyone but you until you change the status.  Also, it cant be forwarded on.  If you turn off this option, messages can arrive and be read before youve even seen them!

Add header line  -  Again it is a matter of taste and what you feel to be correct.  If you leave the option on, UltraPak will add a routeing header line to any messages it forwards.  Be aware that if the message is originated by you at the PBBS, anyone replying to it from a remote BBS by using the SR command will automatically address the message to your PBBS at the hierarchical address which you set up.  The implication of that is that BBSs need to have a route to your PBBS in order to forward it on.  One way around this is to include your own full BBS callsign in your hierarchical address:

e.g.   your hierarchical address could be  G4WFT.GB7LWB.#27.GBR.EU

Show status window  -  If you select this option, UltraPak will display a small window which will keep you informed as to what is happening during a forwarding session.  When the PBBS is forwarding, the result of each attempt to forward a message, i.e. accepted or rejected by the remote PBBS, is displayed.

Forwarding log  -  This allows you to have the program maintain a log file of all forwarding activity.  The file is called FORWARD.LOG and is located in the main UltraPak directory.

Errors in forwarding

If you find that forwarding is not working correctly, you should find an error log called FORWARD.ERR located in the LOG subdirectory.  Any errors that occur while attempting to forward cause an entry to be written to the error log.  An examination of the reported error should help to locate the problem.


SID

The SID (System IDentifier) is the mechanism by which a BBS informs another BBS of the forwarding features which it can support.

The SID takes the form of text enclosed by square brackets [ ].  There are usually three sections to a SID, each section delimited by a hyphen (-).

The first section is a brief description of the system, e.g. FBB or UPAK.

The second section is optional, but frequently consists of a version number, e.g. 5.15 or 3.0.

The final section is important information.  It consists of a string of letters, each of which indicates that the BBS sending the SID supports a particular feature.  Some letters and their meanings are:

A	Acknowledgment for private messages

B	Message compression

F	Batch forwarding

H	Hierarchical addressing

M	Message identifiers

$	Bulletin identifiers

If present, the $ character must be the last letter.

UltraPaks BBS uses five feature letters - B, F, H, M and $.

A typical FBB BBS would send a SID something like:

[FBB-5.15-ABFHM$]

UltraPaks SID is [UPAK-4.0-BFHM$]


Cleaning up the PBBS

UltraPaks PBBS consists of a file called PBBSMSGS.IDX and a file for each message in the PBBS.  The PBBSMSGS.IDX file is an index of the message headers, while each message file holds the actual message text.  Normally, the files are synchronised, that is, there is one message file for each header and vice-versa.

It is possible however, that a message file becomes orphaned.  That is, the message file has no corresponding header record in the index.  The most common reason for this to happen is if a remote user is disconnected from the PBBS part way through sending a message.  In this case, the message up to the disconnection exists as a file on disc, but no header is created.

To clean up these orphaned files, use the Clean up the PBBS option from the PBBS menu.  If any orphaned files were found they are deleted and a message flagged to say how many were found.  Alternatively, if the PBBS was clean, a no files deleted message is flagged.


Remote Mode

Overview

UltraPaks Remote mode allows other packet operators to log into your machine, upload or download ASCII or binary files, read files and access the PBBS.  You, as sysop can customise the messages users see on logging in, either globally or by setting individual messages for each of your authorised remote users.

Security of your system is ensured by an authorisation file maintained by the sysop, and by remote user access being restricted to a particular directory structure.  You can allocate a private directory to each of your remote users if you wish.  Help and information files for the Remote system are totally defined by you.

Activity by remote users can be logged to a file.

Security in Remote mode

It is clearly undesirable to allow all potential connections to your station to roam around your system uncontrolled and UltraPak maintains the security of your system in two ways.

Firstly, only users authorised by you can access the Remote mode at all.  So, you can allow exactly who you want into your system!

Secondly, authorised users can only access a directory specified by you and any directories below it.  When you install UltraPak, the installation routine creates the following directory structure for your remote users (assuming that you chose ULTRAPAK as the home directory).  If you dont specify a top-level directory for a remote user in the authorisation file, by default his top level directory is \ULTRAPAk\REMOTE.

ULTRAPAK

          |

          -----------------------------------------------------------

          |	  |

  REMOTE	       PRIVATE

          |

-----------------------------------------------

|	       |

     UPLOAD	DOWNLOAD

|	       |

---------------------------	       ----------------------------

|	|	       |	        |

           BIN	           TXT	    BIN	      TXT

Private directories

There is one exception to the above rule.  You can create a subdirectory under the PRIVATE directory which are accessible ONLY to an individual.  Simply create the directories as your remote users callsigns.  So, if you wanted to give G9QQQ a private area in your system, create the directory G9QQQ under PRIVATE.  G9QQQ will then be able to upload and download files from that area, but the directory will be inaccessible to all other stations.

The Remote Authorisation file (REMAUTH.SYS)

Access to your system is controlled by placing entries in the file REMAUTH.SYS, which must be located in your UltraPak home directory.  The format of an entry in REMAUTH.SYS is thus:

...

Callsign , Name , Directory

...

Each authorised user of your Remote mode has a one-line entry in REMAUTH.SYS.  The entry consists of the users callsign (with no SSID), the users personal name and a top level directory for that user.  As with most system files in UltraPak, a line beginning with a hash (#) character is treated as a remark line and is ignored.

Each line MUST contain the three commas, even if one or more fields are not used.  So, if you dont want to specify a top level directory for a user (he will then have the default) you would enter a line in REMAUTH.SYS like this:

G9QQQ , Peter ,

The personal name is used when the user logs on to Remote mode, when he or she will receive a Hello name, greeting.

•	You may temporarily unauthorise a user without removing his entry from REMAUTH.SYS by adding a hash in front of his callsign to make the entry a remark

Message of the Day (MOTD)

UltraPak allows you to send your remote users a message of the day (MOTD) as they log in.  This message can be aimed at all users or specific messages can be sent to selected users.

The way it is done is by creating message files in the directory MOTD, created under the home directory on installation.  If you wish to have a MOTD read by all remote users, create the message in the file ALL.TXT in MOTD.  If that file exists, the contents will be sent to every remote user.

To send a MOTD file to a specific user, create a message file in MOTD as CALLSIGN.TXT, where CALLSIGN is the callsign of the station who is to receive the message.  So, if you wanted G9XYZ to receive a particular message on login, create the message and save it as the file G9XYZ.TXT in the directory MOTD.

Note that every remote login receives the Hello... greeting, followed by any global MOTD, followed by any specific MOTD, in that order.

Logging remote activity

You can choose to have all remote activity logged if you wish.  If you select the logging option, UltraPak creates and maintains a file called REMOTE.LOG in the LOG subdirectory. The format of the file is similar to this:

13/09/95, 20:53:23 G9XYZ logged on

13/09/95, 20:53:37 ?

13/09/95, 20:54:21 i

13/09/95, 20:54:44 b

13/09/95, 20:54:49 G9XYZ logged off

As you can see, the time of logging on, logging off and each command issued during the session is logged.  If the PBBS is invoked, commands within the PBBS session are not logged.  Also, issuing the T command to talk to the sysop will enter a Logged off message to REMOTE.LOG, as the remote session is ended and a normal connect resumed.

The Remote Menu

To access the Remote menu and enter Remote mode, the user types *MENU on a line on its own.

The menu issued to the remote user on logging in is of the form:

Sysop: AP/AU/B/D/I/M/T/YD/YU/YW/? >

where Sysop is replaced by your callsign.  Each option is described in detail below, but the short description of each command is:

AP filename	-	ASCII Upload.  Uploads a file to a private directory.

AU filename	-	ASCII Upload.  Uploads a file to the UPLOAD\TXT directory.

B	-	Bye.  Quits remote mode.

D	-	UltraPak DOS.

I	-	Station information.

M	-	Mail.  Access the PBBS.

T	-	Talk to the sysop

YD filename	-	YAPP Download.  Downloads a file from the DOWNLOAD\BIN 	directory.

YU filename	-	YAPP Upload.  Uploads a file from the UPLOAD\BIN directory.

YW	-	List files available for YAPP download

?	-	This Help screen.

AP filename	(ASCII Upload (private))

Normally, ASCII files uploaded to your system by a remote user go into the \UPLOAD\TXT directory (see the AU command).  However, if you have created a private directory for the remote user, he may choose to upload files into that private area by using the AP command.  All other processing is as for the AU command.

AU filename	(ASCII Upload)

All uploads of ASCII (text) files go into the \UPLOAD\TXT directory, created at installation (except when using the AP command, see above).  On issuing the command, assuming the supplied filename is valid, the remote user is prompted to send the file, ending the transfer with /EX ot Ctrl-Z, just as you would end a message.

A confirmation of the successful transfer is sent, along with the number of bytes in the uploaded file.

B	(Bye)

Issuing the B command logs the user out of Remote mode and disconnects them.

D	(UltraPak DOS)

Typing the D command takes the remote user into a very rudimentary DOS-like environment.  UltraPak DOS exists mainly to make the navigation around the remote directories easier, and the commands available are limited:

CD	Change directory

DIR	Directory

PRIV	Go to private directory

TYPE	Type a file to the screen

YGET	Download a file with YAPP

YPUT	Upload a file with YAPP

B or Q	Bye or Quit - leave DOS mode

On entering DOS mode, the remote user is presented with a typical DOS prompt such as this:

C:\ULTRAPAK\REMOTE>

Thus the prompt always tells the remote user where he is.

DOS commands

CD  Directory	Changes directory.  If an attempt to change to a non-existent or unauthorised directory is made, an Invalid path error message is sent.  Typing CD without any argument always returns the remote user to the top level directory (usually C:\ULTRAPAK\REMOTE).  Typing CD .. takes the user one directory higher.

DIR	Lists the directories and files contained in the current directory.  Directories are listed first, followed by files in alphabetic order.  The file size in bytes and file date and time are listed.

PRIV	Takes the remote user to a directory only accessible to him.  The directory must be set up as the users callsign and be created as a subdirectory of the PRIVATE directory.

TYPE  Filename	Types an ASCII (text) file to the screen.

YGET  Filename	Downloads a file using the YAPP protocol.  The same effect is achieved by typing YD at the Remote menu.  All files available for YAPP download are in the DOWNLOAD\BIN directory or a private directory.

YPUT  Filename	Uploads a file using the YAPP protocol. The same effect is achieved by typing YU at the Remote menu. All files  uploaded with YAPP are in the UPLOAD\BIN directory or a private directory.

B or Q	Exits DOS mode and returns to the Remote menu.

I	(Station Information)

Typing I enables the remote user to get information about your system.  The information is held in the file REMINFO.TXT in the home directory.  A sample file is included in the distribution but you may customise it to suit yourself.  Any line in REMINFO.TXT beginning with the hash character (#) is regarded as a comment and not sent to the TNC.

M	(Mail)

The M command accesses the UltraPak PBBS and allows the remote user all the facilities of that system.

T	(Talk to sysop)

The T command sounds a bell on your machine and puts up an ALERT window, telling you that a remote user has called you.  The window tells you who called and at what time.  The command effectively ends the remote session and reverts to a normal connection, allowing your remote user to conduct a conversation with you, if you are available.  A new remote session can be invoked by typing *MENU again.

YD filename	(YAPP download)

Downloads a file, from \DOWNLOAD\BIN or a private directory, using the YAPP protocol.

YU filename	(YAPP upload)

Uploads a file, from \UPLOAD\BIN or a private directory, using the YAPP protocol.

YW	(List YAPP files)

Lists the files available in \DOWNLOAD\BIN for YAPP download.

?	(Help)

Help for the remote mode.  The help information is held in the file REMHELP.TXT, in the home directory.  A sample file is included in the distribution, but you may alter it to suit yourself.

Step by step guide to setting up Remote

1.	In the guide which follows, it is assumed that the UltraPak home directory is C:\ULTRAPAK.  If your setup is different, substitute the appropriate directory.

2.	Access the Remote configuration window by selecting Remote... from the Configure menu.

3.	Make sure that the Allow remote access box is checked.

4.	If you want to log remote users activity, check the Maintain remote log box.

5.	Enter a prompt to be sent to remote users on logging in in the Remote prompt box.

6.	Decide which stations you want to allow remote access to and edit the file C:\ULTRAPAK\REMAUTH.SYS to include a line for each station.

7.	Edit the file C:\ULTRAPAK\REMHELP.SYS if you want to change the supplied format for Remote help.

8.	Edit the file C:\ULTRAPAK\REMINFO.SYS to whatever you want to be sent to users who request information on your station.

9.	Click on OK to save the configuration.

10.	If you want to have a message file sent to all users on login, create the file ALL.TXT in the directory C:\ULTRAPAK\MOTD.

11.	If you want to have specific messages sent to particular users, create files as CALLSIGN.TXT in the directory C:\ULTRAPAK\MOTD, where CALLSIGN  is the users callsign.  For example, if you want to create a message file to be sent to G4WFT when he logs in, create the message file G4WFT.TXT in C:\ULTRAPAK\MOTD.

12.	If you want any of your authorised users to have private directories, create the directory as CALLSIGN  under C:\ULTRAPAK\PRIVATE, where CALLSIGN  is the users callsign.  So, if you wanted to give G4WFT a private area, create the directory G4WFT under C:\ULTRAPAK\PRIVATE.


The Unproto System

For an overview of what UltraPaks Unproto system is and waht it does, as well as a discussion of the pricniple of operation, see the Overview section.

For guidance on configuring Unproto, see the Configuration section and the file CONFIG.WRI.

For general help on using the Unproto system, see the Using section.

Overview

Configuration

Using


Unproto System Overview

The Unproto System

An overview

What is UltraPaks Unproto system?  Briefly, it is a means of constructing the list of messages held on your local BBS without ever logging on to it!  By using the Unproto system, you can create a mirror of the message headers held on your local BBS, both bulletins and private messages if you wish (though you cant read private mail addressed to others for obvious reasons!).  You can have UltraPak automatically select certain message headers and add them to  a Read list for later downloading or exclude certain headers from appearing in the Message list at all.  All messages downloaded appear in your own PBBS as though they had been forwarded to you (though they have a different message status).

Principle of operation

The Unproto system works with FBB BBS software.  FBB BBSs can be configured (and many are) to send out an unproto beacon every time a new message arrives at the BBS.  This beacon is the message header containing the following information:

16059  B  UPAK   GBR   G9ABC  951121  Version 4.0 is superb!

From left to right this beacon gives you:

The message number

The message type

The person or group the message is addressed to

The distribution area

The message originator

The date the message arrived at this BBS

The message title

This beacon is an unproto beacon, which means that it is addressed to a general audience, and in fact will be addressed to FBB.  So, such a beacon when viewed on your screen might look like this:

GB7LWB>FBB:

16059  B  UPAK   GBR   G9ABC  951121  Version 4.0 is superb!

To view this of course your TNC needs to have MONITOR ON!

Clearly, it is a fairly simple matter to monitor traffic and extract the data in these unproto beacons and hence build up the message list.  As you would expect though, there are small complications...

What if you miss a number?

So far, the situation is simple.  You collect the unproto beacons from your local BBS and build up your message list.  The BBS will put out a beacon for every number, whether it is a message on this BBS or whether it is a transient message that will be forwarded on.  Incidentally, in the latter case, the unproto beacon looks like this:

16070  #

The hash symbol tells you that the message number has been allocated to a message which is not resident on this BBS, i.e. it is probably a private message addressed to someone on another BBS.  The important thing to note though is that the beacons from the BBS include every single number.  What if, for whatever reason, your system misses one or more numbers?  There are two options really - you can choose to do nothing about it and acknowledge that youve missed something, or you can attempt to recover the missing headers.

Resynchronisation

Generally, you will want to recover the missing message numbers.  Your information is incomplete unless you do.  How do you go about it?  You use a system of resynchronisation.  Assume that your system is monitoring beacons and the last message number that you received was 16090.  You then receive a header for message number 16094.  If you use resynchronisation (and UltraPak lets you decide whether to or not) your system will immediately broadcast an unproto packet of its own, addressed to your local BBS, and telling it that it last received number 16090 and requesting a resend of the headers missed.  This resynch packet takes the form:

? 0040675D

and is essentially the last message number received, in hexadecimal, followed by a checksum, again in hex.  When the BBS receives that packet, as long as your callsign is validated to send resynch packets by your sysop, it will resend the headers you have missed.  This process of sending resynch packets ensures that your local system always has complete information.

While on the subject of resynching, if you have missed a lot of message numbers (because, for instance, your system has been switched off!) when you next start monitoring, and send the inevitable resynch packet, your BBS will almost certainly reply with a special unproto packet something like this:

G4WFT 16095 !

This in effect resets your message pointer to 16095 and then carries on as normal from that point.  This resetting is a necessary feature to ensure that huge lists of message headers are not broadcast due to stations having missed large blocks of data.

That is the principle of how the Unproto system works.  See the Configuration and Using sections for detailed help on how the UltraPak Unproto system is used.


Unproto System Configuration

Configuring the Unproto System

Preliminaries

Before attempting to configure and use the Unproto system, you should make sure that you understand the principle of operation - see the Overview section if you are unsure.

In particular, you can only use the Unproto system if you are in direct range of your local BBS.  You cannot use Unproto through a node or nodes.

There are several things that you need to do outside the UltraPak software to use the Unproto system:

1)  Inform your local sysop that you want to use unproto beacons and that you need to be set up at his end to send resynch requests.

2)  Set up the unproto path in the TNC.  This will be a command like:

UNPROTO GB7LWB

Obviously, you use your own BBS callsign.

3)  Remember that monitoring must be enabled by setting MONITOR ON or MONITOR 4 (for PK TNCs) so that unproto traffic will be passed to UltraPak.  You could include the MONITOR ON or appropriate command in your TNCINI.SYS file and a corresponding MONITOR OFF or similar command in TNCRESET.SYS, so that monitoring is only enabled while UltraPak is running.

Configuring UltraPak

Select the Unproto... option from the Configure menu:

1)  Enter the callsign of the BBS which you will be monitoring unproto beacons from into the BBS box.  Remember that you must have a direct path to this BBS or one using digipeaters.  You cannot pass unproto traffic through a node.

2)  Enter the string which UltraPak must look for to decide that the following information is FBB unproto beacons into the Monitor string box.  This will usually be the BBS callsign>FBB, e.g. GB7LWB>FBB.  However, see how your TNC shows monitor traffic to decide exactly how to enter this.

The Message list which UltraPak will create for you would obviously grow ad infinitum unless it is dealt with in some way.  UltraPak gives you two different ways to keep it in bounds - you can enter a message lifetime (in days) and UltraPak will then automatically delete messages older than that from the list.  Additionally, you can enter the maximum number of messages to be allowed in the list, and UltraPak will ensure that that number is never exceeded.  The maximum you specify always takes precedence over message lifetime, so that UltraPak will delete messages to reduce the list to its maximum size, even if that means deleting messages which are younger than the lifetime you have specified.

3)  Enter the number of days which should elapse before a message is removed automatically from the Message List into the Message Life box.  You should choose around four or five days normally.

4)  Enter the maximum number of messages which are to be allowed in the Message List into the Max no. msgs box.  This is the absolute maximum which UltraPak will not allow to be exceeded.  It takes precedence over the Message Life entered earlier.  You should keep this number as low as possible to aid speed of processing the Message List.  Usually 1000 is plenty.

5)  Select the Monitor Unproto box if you want to use the Unproto system.

6)  Select the Status Window box if you want UltraPak to display a status window when downloading messages.  This option is useful for watching progress, but you should probably deselect it unless you have a specific need to use it.  The reason is that, if you happen to have a config. or some other modal  window open when UltraPak tries to display the status window during a download session, the session will fail, as the software will be unable to display the status window.

7)  You should normally select the Resynch box to allow resynch packets to be sent, but read the file CONFIG.WRI for how to set up Unproto initially.

8)  Select the Resynch log box if you want UltraPak to maintain a log of resynch events.  After initial setting up, you should normally disable this.

9)  Select the Use schedule box if you want to have UltraPak download any messages in the Read list automatically to a timed schedule.  You can edit the schedule file by clicking the Edit Schedule... button.  Download entries in the schedule file have the format:

HHMM D

where HHMM is the time to download in 24-hour format and "D" is the code for downloading.  See the Using section for a full description of the schedule file.

10)  Decide if there are any categories of message which you DON'T want adding to the Message List and edit the Rejection file (MSGREJ.SYS)accordingly by clicking the Edit rejection button.  You can reject messages on the basis of who they are addressed to, who they are from and the content of the message title.  Full details are in the Using section.

11)  Decide if there are any categories of message which you  want adding to the Read List automatically and edit the selection file (MSGSEL.SYS) accordingly by clicking the Edit selection button.  You can select messages on the basis of who they are addressed to, who they are from and the content of the message title.  Full details are in the Using section.

12)  Decide how you want to handle private messages.  Although you can see the headers of private messages to others, you can't read the messages (unless you have sysop privilege).  If you would like private headers added to your Message list, select the Collect box.  If you would like private messages to be eligible for adding to the Read list, select the Auto-select box.  If you don't have sysop privilege, it would however be pointless to do the latter, as any download request of a private message, other than addressed to yourself, will be refused!

13)  Click on OK to save the configuration.

Confirming header information positions.

There is one final thing which needs to be done before Unproto is truly working.  You need to establish for certain the positions in the header lines from the BBS of the significant fields, i.e. the "To" address, the message type etc.  UltraPak lets you confirm this by examining a sample header and determing the field positions.

To confirm header field positions

1)  Make sure the TNC is on the monitoring frequency for the BBS and that you have configured Unproto as detailed above.  However, Resynch should NOT be selected (see the file CONFIG.WRI)

2)  Sooner or later you will see headers addressed to FBB.  Ignore lines that say simply a message number followed by "#" or "!!".  These are message numbers that are used by messages not resident at the BBS or a confirmation packet of the highest number at the BBS.

Wait for a proper header line.

3)  Once you have seen at least one full header, select Message List Positions from the Unproto menu.

4)  You should see a header displayed in the box at the top of the window.  The message type field should be highlighted.

5)  Click the appropriate option buttons at the left of the window and notw where the highlighted text is.  In each case the appropriate field should be highlighted.  If there is any discrepancy, position the cursor immediately to the left of the correct starting position and click the mouse button.  The new position will then be updated.  Once this task is completed, it should not be necessary again.  The default positions supplied should be OK anyway, but the option is included in case it is necessary.  Note that it is VITAL that these positions are correct for the Unproto system to work at all!

Once you have done the above, you should select the Unproto Config. window again and select Resynch.  Now the system will work properly and you will have the Message List build up in your own computer without ever logging on to your local BBS!


Using the Unproto System

Elements of the Unproto system

The Message List  (MSGLIST.SYS)

The Message list is contained in the file MSGLIST.SYS.  The list consists of received headers in chronological order.  Each time that UltraPak is started, or you view the list, it is processed to remove any headers which are older than the life time you set up in config. or any excess over the maximum number which you have allowed.

In addition to the header information, a line in MSGLIST.SYS may have a status code against it, at the far right hand side.  The header status can be:

*	The header has been selected for adding to the Read List

S	The header has been added to the Read List

R	The message has been downloaded

The Read List  (MSGREAD.SYS)

The Read List (MSGREAD.SYS) holds the headers of messages which have been selected for downloading.  Headers may be added by you or entirely automatically as the result of a selection criterion set up in the Selection file (MSGSEL.SYS).  Once a header has been successfully downloaded, it is removed from the Read List automatically.

Viewing the Message List.

The Message List can be viewed at any time by selecting View Message List... from the Unproto menu.  There is a delay of a few seconds while UltraPak loads the headers and does any processing necessary on the list.  The list can be scrolled through using the scroll bar as normal.  Status displays tell you how many messages are currently in the list and how many you have selected this session.

Selecting messages to put in the Read List

You can select any message in the list to go into the Read list for later downloading.  To select a message, simply click on the header line.  You will see an asterisk appear at the right hand side of the header, indicating that it is selected.  To cancel the selection, simply click on the header again.

Searching for messages

You can perform sophisticated searches for messages also.  You can search for messages from a particular callsign or range of callsigns, to a particular callsign or group, or search for a particular piece of text in the message subject field.

As an example, suppose that you wanted to search for all messages in the list from stations in Scotland.  Simply enter GM* in the From box in the Search frame and click the Search button.  UltraPak searches the list and displays a window with the result.  Note from the example that you can use wildcards in the search  -  an asterisk * matches any character or characters, while a question mark ? matches any single character.

If you wanted to find all messages with the word TNC in the subject field, you would enter TNC in the Subject contains box and click Search.  Again the result window is displayed.  You dont need wildcards with the subject search  -  UltraPak assumes that you want messages that contain the search text anywhere in the subject.

When the result window is displayed, you can then further select from that window any messages that you want to read by clicking on the header line as before.  If you want to put all the headers into the Read List, click the Select All button.  Deselect All does exactly as you would expect!  Finally, clicking OK adds any selections into the Read List, or Cancel if you change your mind.

Viewing the Read List

The Read List can be viewed at any time by selecting View Read List... from the Unproto menu.

You may also delete messages from the Read List by highlighting the messages you want to delete and clicking the Delete button.

Restricting what goes in to the Message List

By default, all headers that are sent out as unproto beacons are added to the Message List, including those of private messages if you have selected Collect private messages in the config. window.  You can however exclude certain headers from being added to your Message List by adding entries to a Rejection file (MSGREJ.SYS).

The Rejection file  (MSGREJ.SYS)

A sample rejection file is included with the UltraPak distribution.  Essentially, you can exclude messages on the basis of who they are from, who they are to or subject content.

Each line in MSGREJ.SYS consists of a keyword and an argument to that keyword.  Keywords can be FROM, TO or SUBJ.  Following the keyword is a string, which can contain wildcards.  Examples should clarify how the file is used.

Suppose you want to exclude the following:

1)  All messages addressed to SPACE

2)  All messages from any VK callsign

3)  All messages with the word Lottery in the subject field.

(Please recognise that these are examples only - I have no aversion to any of the groups mentioned!)

You would accomplish these exclusions by putting the following three lines in MSGREJ.SYS:

TO SPACE

FROM VK*

SUBJ Lottery

Remember that what follows the keyword is what you will exclude from the Message List.  The wildcards * and ? can be used to represent groups of characters or single characters respectively.  If you want to put comment lines in MSGREJ.SYS, use the hash symbol # as the first character - the line will then be ignored.

Remember that you can exclude ALL private messages by deselecting Collect private messages in the config. window.

Automatic selection into the Read List, the Selection file (MSGSEL.SYS)

In the same way that headers can be automatically rejected and not included in your Message List, you can similarly automatically include headers into your Read List.

The mechanism is identical to the Rejection file, except that you use a Selection file called MSGSEL.SYS.  The format of MSGSEL.SYS is identical to that of MSGREJ.SYS.

Say that you want to make sure that you read all the following messages:

1)  Anything addressed to WIN, WINDOWS, WIN95 etc.

2)  Anything from G9XYZ

3)  Any message containing the string FBB

Add these three lines to MSGSEL.SYS:

TO WIN*

FROM G9XYZ

SUBJ FBB

Simple, isnt it?!

Note that you dont need to add a line in MSGSEL.SYS to receive messages to your own callsign.  UltraPak assumes that you will always want to receive your own mail!  However, you could exclude your own mail by adding the appropriate line to MSGREJ.SYS!  As with the rejection file, any line beginning with a hash symbol is treated as a comment line and ignored.

Downloading messages in the Read List

The transfer of messages in the Read List into your PBBS is accomplished by using a compressed file transfer mechanism.  To manually start a download session, select Read... from the Unproto menu.  You must not have any other connections established, as the binary file transfer demands sole use of the TNC.  If you have selected the option to display a status window, that will show you how the transfer is progressing.  If for any reason the transfer aborts, you should find an entry in the error log file UNPROTO.ERR (in the LOG directory) which will help you determine why the transfer aborted.

When the transfer is complete, you will find the messages which were in the Read List available for you to read in the PBBS.  The Read List will be empty.  Messages downloaded in this manner are always given the status H (for Held) in your PBBS.  In this way you can download third party messages into your own PBBS even if you have third-party deselected in the PBBS config.  You will not however be able to change the message status to anything other than H or D, so remote users will not be able to gain access to those messages.

Scheduling Downloads

Although you can initiate a downloading session at any time manually, it is very convenient to schedule downloads to occur at various times during the day.  It is very simple to do this by making the appropriate entries in the file SCHEDULE.SYS.  If you want downloading sessions to occur at 10 oclock in the morning, 2 oclock in the afternoon and at 7 oclock in the evening put the following lines in SCHEDULE.SYS:

1000  D

1400  D

1900  D

See the section on The Schedule File for a full description of how to use SCHEDULE.SYS.


The Schedule File
The Schedule File  (SCHEDULE.SYS)

Several types of event can be scheduled to occur at predetermined times in the UltraPak system.  The file which controls this scheduling is called SCHEDULE.SYS and it resides in the UltraPak home directory.  Forwarding, compressed downloading and script file execution can all be scheduled through SCHEDULE.SYS.

Setting up scheduling

To have forwarding and downloading scheduled you need to select the Use schedule box in the PBBS and Unproto configuration windows.

The format of SCHEDULE.SYS

A line in the schedule file consists of a time in the format HHMM and a key letter which must be D (for download), F (for forwarding) or S (for script file).  If the key letter S is used, this must be followed by a valid script file name.

Here is a sample SCHEDULE.SYS file:

0300 F

0600 D

1200 S KILLMAIL

1800 F

2100 D

This would schedule forwarding sessions to occur at 3 a.m. and 6 p.m., downloading sessions at 6 a.m. and 9 p.m. and run the script file KILLMAIL.SCT at 12 noon.

The times in SCHEDULE.SYS must be in chronological order, earliest first, as UltraPak processes the schedule file by using the first time it finds AFTER the current time to determine what time to perform the next event and what to perform.

Obviously, if a script file is scheduled, the script file name must be valid and should be entered without the .SCT extension.  If UltraPak fails to find any valid times in SCHEDULE.SYS or cannot find SCHEDULE.SYS, scheduling for forwarding and downloading will be disabled automatically.

As always, a comment line can be inserted into SCHEDULE.SYS by starting it with a hash symbol (#).