home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
telecomm
/
storm100
/
storm.doc
< prev
next >
Wrap
Text File
|
1993-10-30
|
41KB
|
925 lines
Storm Main features:
GEM-based terminal in a window. Custom font and text routines for
high-speed operation.
Multiple editing windows and capture buffer window are resizable, and
moveable. Full word wrap is implemented. With MultiTOS, the number of
windows is limited only by available memory.
MultiTOS compatible. Uses memory sparingly and releases unused memory back
to the system.
Uses GEM clipboard for cutting and pasting text.
The script language is interpreted Basic, with powerful command extensions
for telecommunication. Basic runs in its own window.
Background dialing of multiple phone numbers.
No fixed limit on dial directory entries.
Background file transfer without requiring a reset-proof ramdisk.
File transfer modules are loadable and unloadable.
Terminal emulations are loadable and unloadable.
Windows-style menu dropdowns and hotkeys.
Support for extra serial ports on TT and MegaSTE as well as Falcon serial
port.
Capture buffer can be active at all times, not just when using terminal
screen. You can edit or scroll through the capture buffer while continuing
to capture text from the terminal or while uploading or downloading, or
dialing phone numbers, or running a Basic program.
Even without MultiTOS, this is a highly multitasking program.
Installation:
Create a folder and extract the contents of the LZH file into it.
STORM.PRG is the terminal program.
STORM.RSC is the resource file for the program.
Loadable file transfer modules
BPLUS.TRF: CompuServe BPlus file transfer.
XYMODEM.TRF: Xmodem and Ymodem.
ZMODEM.TRF: Zmodem.
Loadable terminal emulations
VIDTEX.EMU: CompuServe VIDTEX terminal emulation.
VT100.EMU: VT100 and VT52 terminal emulation.
HELP.INI is a help file for Storm Basic.
As you use the program, other files may be created. They are:
STORM.INI is the initialization file containing all the user defaults.
STORMKEY.INI contains the keyboard macro definitions.
DIALDIR.INI contains the dial directory entries.
Double-click on STORM.PRG to run the program. The menu bar and terminal
window will appear.
The terminal window always occupies a full 80 columns, which is full-width
on the normal ST monitors. The window is split into two pieces. The bottom
part is the typeahead window. The typeahead is five lines in ST Monochrome,
but only a single line in ST Medium resolution.
While you can't size the terminal window, you can move it around and
overlap it with other windows. You can even close it, and terminal
activity will continue on.
Using the mouse, you can select text from the terminal window. Just
position the mouse cursor where you want to start and press down the left
mouse button. Drag the mouse pointer to the ending location. When you
release the left mouse button, you will get a popup menu letting you choose
what to do with the selected text.
"Copy" copies it to the GEM clipboard. "Save" lets you save it as a text
file. "Xmit" sends it out the serial port. "Upload" copies it to the
GEM clipboard folder and then uploads it using the Ascii file transfer
protocol, and "Print" prints it to the parallel port.
To cancel out of the popup menu, press Escape or Undo, or click the left
mouse button outside the popup menu area.
====================================================
Using the Menu bar.
Try pressing Alt-F. The File menu dropdown should appear. Now you can use
the cursor keys to go up and down through the available menu items. Or,
use the left and right cursor keys to move to other menu dropdowns. (Note:
the Desk menu dropdown can only be accessed using the mouse, as it is
controlled exclusively by GEM).
Pressing the Return key selects the currently highlighted menu selection.
Escape or Undo exits.
Most menu items also have a keyboard shortcut key, which is underlined.
For example, press Alt-S (for the Settings menu) and then 'S' (or Alt-S)
for the Serial Port entry. You should see the serial settings dialog box
appear.
I think you will find this type of menu keyboard shortcut easier to
remember than assigning one unique key to every menu selection, because it
is easier to remember the first letters of words than dozens of wierd
control-shift-alt key combinations.
Dialog Boxes
If you looked at the serial port setup dialog, you will see that also has
keyboard shortcuts. Just press Alt-B for 'Baud' and the popup menu for
baud selection appears. Since there is no editable text in this dialog box,
you could have just pressed the letter 'B'. Or, click on the button beside
"Baud Rate".
You can scroll through the baud rate popup menu with the cursor keys, or
use the mouse. You have three ways to select an entry. Press return to
select an entry, or click on it with the mouse. Some baud rate entries have
underlined numbers. Press the appropriate number key to select those
entries.
To cancel, press Undo, or click the mouse outside the dropdown.
To exit the dialog press Return, or press Undo to cancel and exit.
Many popup menus have the current selection indicated with a checkmark.
The current selection is highlighted by default, unless the mouse is over
another entry.
=========================================
Capture buffer.
The capture buffer is available at any time by selecting it from the
Window menu, or by the keyboard shortcut ALT-2. (The terminal window
keyboard shortcut is ALT-1.) The capture window is a GEM-based editor in a
window. The window can be sized and moved anywhere on the screen. Cut and
paste uses the GEM clipboard.
You toggle capture on and off by selecting the first item in the Capture
menu. This item is either "Capture On" or "Capture Off", depending on
whether the capture is currently on or off. When capture is enabled, a
plus sign '+' appears beside the Capture menu heading. Note: Capture
strips out all control codes and escape sequences.
You don't have to have the terminal window on top, or even open, for
capture to operate. You don't even have to have the capture buffer window
open. This is particularly useful with high speed modems. You could turn
capture on, close the terminal window, switch to the capture buffer window,
and read messages at your own pace.
Editing text
In the capture buffer, or other editing windows, you can use the cursor
keys to move around. Up and down move up and down one line. Left and right
move up and down one line. Shift-left moves to the start of the line,
shift-right moves to the end. Shift-up moves up a screenful of text,
shift-down moves down a screenful of text.
Clr/Home moves to the start of text, Shift-Clr/Home moves to the end of
text in an editing window.
You can also position the cursor by using the mouse and clicking where you
want the cursor to appear.
'Delete' deletes the character under the cursor, backspace deletes to the
left of the cursor. Shift-delete deletes to the end of the line.
The number of lines and the current cursor location is displayed in an
information line at the top of the screen. This information line updates a
couple of times a second. (Continuous updating would have been too slow.)
Unlike the original Flash, this editor does full wordwrap, whether
inserting or deleting text. However, pressing the Return key forces a hard
end of line. Also, the editor will NOT slow down when editing large files,
and it allocates and releases memory dynamically.
When loading a file, an alert appears asking whether to wrap the text or
not. The program figures out what should be word wrapped by looking at the
ends of lines. A single space at the end of a line means a line gets
wrapped. By default, saving text will leave that space at the end of the
line whereas trailing spaces get removed from lines with hard returns. So
most files you save and load can still be wordwrapped.
Unfortunately some files may contain extra spaces at the ends of lines or
other formatting which should not be wrapped. You can choose not to word
wrap text files when loading them. In the Edit Window Settings dialog box
you have three choices for word wrapping when you load a file; Yes, No, and
Ask. 'Ask' means that an alert box will always appear (after you have
selected a file to load) asking you if you want to word wrap the file or
not. Choosing 'Yes' or 'No' in the settings dialog box instead of 'Ask'
means the alert box will not appear.
This setting is saved separately for the capture buffer, the typeahead,
and all other edit window, depending on what window is on top when the
dialog box appears. My recommendation is to set AutoWrap to "Yes" for the
Capture Buffer, and "Ask" for other edit windows.
Setting tab size and word wrap
The "Editor" selection in the "Settings" menu lets you select tab size and
line width. I recommend that you leave word wrap at 80 for the capture
buffer to avoid problems when capturing text.
Cutting and pasting
Move the mouse to where you want the text selection to start. Hold down
the left mouse button and drag the mouse in the direction you want to
select text. Moving past the window boundaries will scroll the window.
When you release the mouse button, you get a popup menu of choices; Cut,
Copy, Save, Delete, Upload, Xmit and Print. 'Cut' copies the text to the
clipboard and deletes it. 'Copy' copies the text to the clipboard and
leaves the original text intact. 'Delete' deletes the selected text
entirely. The other options were described previously for the terminal
window.
File Menu
"Save" saves the file to the filename it was originally loaded from. If
there is no filename associated with the window, then you are prompted for
a filename.
"Save As..." lets you save the text to a file. If the file on disk already
exists, you get the option of overwriting it, appending the current buffer
to it, or cancelling.
"Load..." lets you load a new file into the buffer. Any existing text is
lost.
"Clear" erases the buffer.
"Open" creates a new editing window and then lets you use the file selector
to load a file into it.
"Open New" creates a new editing window, initially empty.
While there is only one capture buffer, you can have multiple editing
windows. The number of windows is limited by GEM. With MultiTOS, there is
no fixed limit.
The File menu choices always act on whatever editing window which is
currently on top. If the terminal window is on top and the typeahead is
active, the File menu choices act on the typeahead.
Edit menu
"Paste" pastes the contents of the clipboard into the current editing
window. It's used when cutting and pasting between windows. Shift-Insert is
the keyboard shortcut to Paste text.
"Find" searches for text. If you want to search for a hard return, type
Control-M and a tiny 'c/r' symbol will appear. You can search forwards or
backwards, and select case-insensitive searches.
"Find Next" continues the previous search.
"Replace" is not yet implemented. This item is always disabled.
Capture menu.
The first item in the capture menu appears as "Capture On" if capture is
currently off, or "Capture Off" if capture is on. Press ALT-C twice to
toggle capture on or off.
"Erase Buffer" works just like the "Clear" option in the File menu, except
it only affects the capture buffer.
"New Capture" turns the capture buffer into a normal editing window and
creates a new capture buffer window. If you log on to several BBS'S or
online services, you can create a new capture buffer for each one.
"Save As..." acts like the "Save As..." in the File menu, but only acts on
the capture buffer. This is useful for saving the capture buffer from the
terminal screen without having to switch to the capture buffer window.
Window menu
The Window menu lists the available windows you can switch between. The
first three windows, Terminal, Capture, and Basic, are always available.
The next seven entries are for editing windows. When you open an editing
window, it is listed in the Window menu. The final entry is for the File
Transfer window, which is only active during file transfers.
You may wonder why there are slots for ten windows, when GEM only allows a
maximum of eight. Well, MultiTOS allows as many windows as memory permits.
Also, there is a German program that increases the number of windows,
though I have not been able to get it to work with my MegaSTE.
The Basic command TOPW n will force the specified window to the top. e.g.
"TOPW 1" puts the terminal window on top.
=========================================
Settings menu
Serial Port settings should work with all ST's and TT's. Most items should
be self-explanatory. Just click on the button, or press the keyboard
equivalent key to either pop up a menu or toggle a selection.
You should always have some sort of flow control enabled. Otherwise, if
you go into a menu or dialog box, text coming in the serial port will be
lost. If you are using a high-speed modem, I recommend CTS/RTS, otherwise
use XON/XOFF. You may need one of the serial patch programs if you have
one of the many TOS versions with broken serial port routines.
Terminal Settings
BS Erases controls whether backspace just moves the cursor backwards, or
erases the character as well (in the terminal screen). Other options are
Half Duplex, Reverse Video, adding line feeds to inbound and/or outbound
carriage returns, and whether text automatically continues on the next
line after the end of line is reached.
A popup menu for Emulation lets you choose terminal emulation. Currently
there are three choices, VT100, Vidtex, and TTY. TTY is a build-in dumb
terminal emulation.
IMPORTANT NOTE:
These are default settings that are activated when you first run the
program. In the dial directory editor you can choose specific terminal
settings for a particular BBS or online service. When you dial and make a
connection, your terminal settings are updated to reflect the dial
directory settings. If you haven't made ANY selections in the dial
directory editor, then the terminal settings are not changed.
Emulations
The terminal emulations dialog box lets you load, unload, and configure
the loadable terminal emulations. Currently available emulations include
TTY, VIDTEX, and VT100. There are slots for seven terminal emulations, six
of which can be loadable. (TTY is always resident).
Click on a slot marked "Empty" and select "Load" to load a new terminal
emulation.
Click on an occupied slot and you can select Unload or Config. (You cannot
unload TTY). Selecting Config brings up a configuration dialog box.
Typeahead
The typeahead window is located below the terminal screen window. You can
reach the typeahead window either by clicking the mouse inside it, or by
pressing the Insert key. Exit the typeahead window with the Escape key.
The typeahead window is actually a full editing window. You can load any
size file into it (using the File menu) as well as cut and paste to and
from it. You can compose complete messages inside it.
In the settings menu you can choose one of three keys which will transmit
the typeahead window out the serial port; Return, Control-Return, or
Keypad Enter. Once the typeahead is transmitted, the typeahead window is
cleared.
You can also choose whether carriage returns are added at the end of EACH
line, or just when hard returns are present. Some conferencing systems
will accept multiple lines with only one carriage return at the end.
Others limit lines to 80 characters.
"Prefix" and "Suffix" are text strings that are send at the start and end
of lines.
All control characters are automatically passed through directly to the
terminal screen. e.g. Control-S and Control-Q.
=======================================================
Modem Settings.
These are used by the dialer to dial numbers. The default values should
work for most modems.
Modem Init is sent once only, when you first run the program. Unless your
modem specifically requires a setup each time you run the program, I
suggest you leave this blank.
Wait XX seconds for connection allows you to set the delay before the
carrier detect times out.
Dial Prefix is the dialing command. Dial Suffix is send after the dialing
command and phone number. It is normally a single carriage return, entered
using Control-M.
Hardware DCD (Data Carrier Detect) works on all TT, MegaSTE and
Falcon serial ports.
Inter-Character delay is actually the number of vertical blank periods to
skip between sending characters to the modem. It should only be necessary
to set a delay for older modems. Most moderm modems will accept commands
at full speed.
Keyboard Macros
These let you assign strings to function keys and the cursor keys, both
normal and shifted. In some cases, terminal emulations may override cursor
key macros. In any case, the cursor key macros are only active when the
terminal window is active. The function key macros are active in whatever
window is currently on top.
Keyboard macros can also be defined as Basic commands. These are also
available at any time, even if a Basic program is currently running.
Macro strings are recorded in the STORMKEY.INI file. They are indexed
according to the GEM scan code they produce (in hexidecimal format),
modified to include information about shift-control-alt key status.
Example:
F1 returns a GEM scancode of 0x3b00 (hexadecimal) and is listed in the
STORMKEY.INI file under the heading [3b00].
Shift-F1 returns a GEM scancode of 0x5400 (hexadecimal). However, shift is
represented by 0x30000 (either left or right shift keys or both are
represented by 0x30000). So Shift-F1 is stored under the heading [35400].
Control is represented by 0x40000, ALT by 0x80000.
What this means is that most keystrokes that can be described by scancode
and shift-control-alt code can be inserted into the STORMKEY.INI file,
though there is no user interface for doing this at present - you have to
do it by hand.
The program first lets the keystroke get interpreted by the currently
active window. If the window uses/understands the keystroke, for example
in editing text, or dropping down a menu, then the keystroke is not looked
up in the STORMKEY.INI table. This is why cursor key macros are only
active in the terminal window, not in an editing window. Conversely,
control key macros are inactive in the terminal and typeahead windows.
Note: You cannot define a macro for any printable Ascii character.
You can also choose whether a keyboard macro is a command for the Basic
interpreter or not. Macros that are Basic commands actually interrupt any
Basic program that is running.
How Basic keys macros work.
Storm will create and initialize a new Basic interpreter for the key macro.
The macro can contain any Basic commands, or a command to run a Basic
program.
Normally, when the command finishes executing, the Basic interpeter will
pop back to the previously Basic and continue where it left off. However,
there are a few cases where this will not happen.
For example, if there is an error when running the program, the program
will stop and remain in the new Basic interpreter. To exit, type END. The
same thing happens if you press UNDO or the STOP command is executed.
Another situation that will leave you in the new Basic interpeter is if
you have a PAUSE, WAIT or other command in the key definition that pauses
execution. The solution there is to add an END at the end of the key
definition to ensure that you exit properly.
Note: Keyboard macros interrupt any currently running Basic program, at
the end of executing the current line, or if the current Basic in a WAIT
or PAUSE condition. Try defining a function key as "RUN "BUBBLE.BAS" for
example. You can keep pressing the function key to run new copies of the
program as much as you want.
ALT-key macro editor.
Lets you define Basic commands for Alt key combinations that are not used
by the menu bar handler. The Alt key macros are Basic commands by default.
You can edit the STORMKEY.INI file and manually change the UseBasic entry
if you must, and the Alt key editor will not set it back to using Basic.
If you want an ALT key macro to always clear the current editor window,
whether it is the typeahead, capture or whatever, try this:
if Alert(1,"[2][Erase?][Yes|No]")=1 then menu 1,4
Sample macros to hang up the modem.
(hardware method)
DTR OFF:PAUSE 1:DTR ON:END
(Software method)
PAUSE 1:TYPE"+++";:PAUSE 1:END
You need to put END at the end of macros with PAUSE or WAIT or POPUP and
other commands that don't execute immediately, else the new Basic
interpreter created for the macro won't exit.
Key macros are limited to 128 characters in length. However, macros
longer than 70 characters should be restricted to keys which are
not visible in the function key or alt key dialogs, otherwise the dialog
procedure will truncate the macro text.
The Find dialog and the Find Next dialog always look at the STORM.INI
profile
file [Search] section. This allows keyboard macros of the following form:
The following define Control-S to initiate a new forward search,
Shift-Control-S for a repeat forward search,
Control-R to initiate a new reverse search and
Shift-Control-R for a repeat reverse search.
The \" sequences are absolutely necessary to handle embedded quote
characters.
If you want the previous search text cleared out, add the statement:
SET \"STORM\",\"Search\",\"Text\",\"\"
to the appropriate macro.
[41f13]
UseBasic=1
Key="SET \"STORM\",\"Search\",\"Direction\",1:MENU 2,1"
;Control-S prompts for forward search
[71f13]
UseBasic=1
Key="SET \"STORM\",\"Search\",\"Direction\",1:MENU 2,2"
;Control-Shift-R calls repeat forward search
[41312]
UseBasic=1
Key="SET \"STORM\",\"Search\",\"Direction\",0:MENU 2,1"
;Control-R prompts for reverse search
[71312]
UseBasic=1
Key="SET \"STORM\",\"Search\",\"Direction\",0:MENU 2,2"
;Control-Shift-R calls reverse repeat search
Storm will automatically ignore these macros in the terminal screen and
typeahead, since control characters are required for the proper
operation of these areas.
Some Flash-compatible Alt-key macros.
ALT-A: f$ = FSEL$("\*.BAS",""):IF LEN(f$) THEN RUN f$
ALT-L: LFEED /
ALT-P: DUPLEX /
ALT-Q: CD FSELPATH$("")
ALT-R: x = DLOAD("XMODEM")
ALT-T: TOPW 1:MENU 4,2
ALT-X: MENU 1,10
=======================================
Dial Directory Editor
The dial directory editor is deceptively simple. There are two fields, one
for the BBS/online service name, another for the phone number. However, if
you double-click on a name you get a menu of additional choices; Serial
Setup, Terminal, and Auto-Logon.
Serial Setup lets you specify baud rate and other serial settings.
However, you cannot specify a particular serial port (on machines with
extra serial ports.) Instead, the dialer will use whatever serial port is
currently selected. The reason for this is that most people will probably
keep their modem on the same serial port, and if you do switch the modem to
another port, you won't want to have to go through the dial directory and
change the serial port for every entry.
Terminal lets you specify terminal preferences. e.g. Select Half Duplex
for Genie but full duplex for most others. These will override any default
settings you may have made and will be activated when the modem connects.
Auto-Logon lets you specify an auto logon file. This should be the
filename (without path or drive) of the Basic program that gets run when a
connection is made. The path for the auto-logon files is selected with the
Auto-Logon Path button in the dial directory editor.
As with function keys, the auto-logon Basic program is able to interrupt
any currently running Basic program and run in its own Basic interpreter.
When the logon finishes, any interrupted Basic program starts running
again.
The dialer entries are saved in a file named "DIALDIR.INI". That file is
similar in layout to the storm.ini file so I use much of the same code for
it.
Each entry is numbered in the DIALDIR.INI file from [1] to the number of
entries. However, blank entries don't get saved. You can change the serial
settings and terminal preferences by double clicking on a name. A popup
menu appears, then you go to the appropriate setup dialog.
DIALDIR.INI is saved every time you exit the program if there are changes
to be saved. Only if you actually set serial port settings or terminal
preferences are these entered into the dialdir.ini file. That saves a lot
of file space and simplifies matters if you have a 9600 baud modem and
always use the same settings.
In the STORM.INI file, in the [Dialer] section, there is a setting for
Entries. The default is Entries=60. Change this number to add or remove
the number of available entries in the dial directory editor. The number
of entries is limited only by memory.
Dialing
To dial, select "Dial" from Dial menu. Select names from the list of
available entries. You can select more than one name, and the list of
names will be dialed in order, until a connection is made.
The number of redials is zero by default. You can select 1 to 999 redials
and the program will redial the list that many times, until a connection
is made.
Dialing is handled in a vertical blank interrupt. So you can be editing
files, or whatever, while dialing is going on in the background. However,
the auto-logon is not done in the background. So if you are busy in the
menu bar or a file selector or a dialog box and a connection is made, the
logon will not start till you go back to the main program.
A special feature of Storm is that the dialer auto-logon creates a new copy
of the Basic interpreter and runs the auto-logon in that copy. When the
auto-logon terminates, control passes back to the original Basic
interpreter. This means that you can be in the middle of running a Basic
program and still dial and auto-logon. This applies even if the Basic
program was in the middle of a WAIT or PAUSE. However, the WAIT or PAUSE
will not be in effect during the auto logon. It will pick up where it left
off when the auto logon finishes.
When the auto-logon finishes, the Basic interpreter it was running it is
removed and the auto-logon program disappears from memory. However, if
there was an Basic error, then the auto-logon program will remain in
memory, together with an error message that will (hopefully) assist you in
figuring out what went wrong.
=====================================================
File Transfer Setup
File transfer protocols are loaded, unloaded, or configured via the
"Transfer Protocols" dialog box (Select File Transfer... from the Settings
Menu.) The transfer protocols included with this version include
BPLUS.TRF, ZMODEM.TRF and XYMODEM.TRF. The XYMODEM.TRF file handles
XMODEM, XMODEM-1K, YMODEM, and YMODEM-G protocols. The ZMODEM.TRF file
handles ZMODEM protocol. The BPLUS.TRF file does CompuServe BPlus file
transfer protocols including resumable downloads.
Select File Transfer from the Settings menu. Currently loaded protocols
are listed in the Transfer Protocols dialog box. There are slots for up to
seven loadable protocol modules, however the first slot is reserved for
ASCII file transfer, which is a build-in protocol. The empty slots are
marked with the word 'Empty'.
For a loaded protocol, the options are Unload and Config. Unload removes
the loaded protocol from memory. Config brings up the protocol
configuration dialog box, which is built-in to the transfer protocol
module.
If you select one of the "Empty" slots then the only available options is
Load, which brings up a file selector. Choose a transfer module and it
will be loaded into the blank slot.
Download Path
This button now appears in all the file transfer setup boxes. It brings up
a file selector that lets you choose the download directory. This sets the
global download path that applies to all file transfers. i.e. you only
need to set the download path ONCE, and not in each and every file
transfer setup.
File Transfers
The File menu includes two menu items, Download and Upload. When you
select one of these, the program interrogates each file transfer modules
for a list of available protocols, which it displays in a popup menu.
There are slots for up to twelve transfer protocols. (BPlus is started
automatically by CompuServe and so it doesn't appear in the popup menu.)
Depending on the transfer protocol, you may or may not get a file selector
box. Ymodem and Ymodem-G downloads receive the file name from the sending
system, so selecting either of them just brings up the file
transfer window.
Note: Currently you can only pick a single file for uploads and you cannot
use wildcards. You can use multiple files if you call a protocol
from Basic.
File transfer information is displayed in a file transfer window, which
can be moved around the screen and overlapped by other windows. All file
transfer serial operations are carried out in the vertical blank interrupt,
which permits background file transfer, with a few limitations.
The transfer protocols use a 64K buffer to hold file data being
transferred. As the buffer empties (during uploads) or fills (during
downloads) the main program periodically refills it or empties it as
appropriate. The only times you can run into problems are if you keep the
mouse in the menu bar, a file selector, or an alert box for an extended
period of time so that the transfer buffer fills up (during downloads) or
empties (during uploads). At 9600 baud, this takes about a minute. At 2400
baud it takes four minutes. You CAN keep any of the programs dialog boxes
or up on the screen as long as you wish without interrupting the file
transfer. If the file is smaller than the transfer buffer, you don't have
a problem. Obviously, you cannot quit the program during file transfer,
but you can edit, load, or save files and review the capture buffer. Note:
The 64K buffer is allocated at the start of a file transfer, and released
at the end.
This is not a true background file transfer in the sense of Shadow or
other such background file transfer programs, but on the positive side, it
doesn't require the setting aside of large amounts of memory for
reset-proof ramdisks.
When used with MultiTOS, you will be able to switch to other programs and
the file transfer will continue.
I don't currently have a module for Shadow support because I wanted to
work out the techniques for my own file transfer modules first. Shadow
support will simply be another loadable module.
With CompuServe BPlus file download, if a file already exists you get an
alert box with the options of cancelling the file transfer, overwriting
the file, or resuming the file transfer. Obviously, you should only resume
the file transfer if the file transfer was interrupted in the first
place.
Exiting
When exiting the program, you get a dialog box where you can select
whether to update the preference file, dial directory, and keyboard
macros. This is useful if you update these files using the Storm text
editor and don't want to have what you did overwritten. Or, you may want
to always come up with the same defaults. The buttons in this dialog box
are selected only if the corresponding ".INI" file has been changed.
The appropriate section of the STORM.INI file is:
[Exit]
SaveProfile=n
SaveDialDir=n
SaveFunctionKeys=n
If n is zero, then the ".INI" file is marked as "not changed" which means
that in the exit dialog box, the button corresponding to that file will
always be cleared.
You can also put in an entry: QuitDialog=0 which will prevent the exit
dialog from coming up at all. In any case, if none of the INI files have
been changed, and none of the edit buffers have been changed and not
saved, the exit dialog will not appear.
If you want to make manual changes to any of the .INI files, the correct
way is to load the file into the text editor, make the changes, save the
file, then quit the program and deselect the appropriate "Save" button in
the exit dialog. Even better, edit the file using a separate text editor.
Zmodem options.
Most of the time you can leave the options alone, but they are offered to
help you deal with unusual situations and special requirements.
CRC-32
Don't disable this unless you are having problems with a (probably very
old) Zmodem program. Even programs that don't support 32-bit CRC's should
know how to use the documented Zmodem way to tell the other size to use
16-bit CRC's.
Long Timeouts
You may need to enable this for Genie or other networks. Leave it off
otherwise, as it may slow down error recovery.
Escape Controls
Only needed for certain networks or environments that choke on control
codes. Slows down file transmission because two characters are send for
every control character.
Full Pathnames
Normally, only the bare filename is sent/received and downloaded files are
placed in the download directory. The full pathname feature may be useful
if you are transferring files and want certain files to go in specified
directories. In that case, set the default path to the root of the
destination drive. e.g. C:\. Zmodem will NOT create directories that don't
already exist!
Force Binary Mode
When uploading, the program will check the file to see if it's really a
text file. Any characters over 126 ascii, or wierd control characters, and
the file gets sent as binary. If you never upload text files with Zmodem,
or you don't care about carriage return/line feed translation, select this
option.
Autostart Transfers
This causes downloads to start automatically when the other system sends
the appropriate message to Storm. Only disable it if you are running on a
system that sends CAN (Control-X) for reasons other than starting Zmodem.
Or, if you suffer from a lot of line noise that might generate spurious
Control-X's.
Note: To force resumption a file download, you should use the Zm. Resume
options under the "Download" or "Upload" file menu.
Upload and Download file management options.
Upload options are commands sent to the receiver telling it how to decide
whether to actually transfer a file or not. For example, transfer only
files that are newer or longer. The receiver is free to accept or ignore
the file management commands.
Normally, it is the job of the file sender to specify file managment.
Download options can be used to override the file sender commands, or when
the sender never sends file management commands.
Some of the file management commands rely on comparing file timestamps in
the source and destinations systems. The file timestamps need to be
adjusted to GMT (Greenwich Mean Time) for transmission. Storm assumes that
the ST system file dates are based on the local time zone. In order to
tell Storm how to adjust the timestamp, you will need to set the
environment variable TZ to your local time zone, using the ENVIRON command
(described elsewhere). e.g ENVIRON "TZ=EST5". (You may also be able to set
the TZ environment variable from the Environment CPX.) The first three
letters are the abbreviation for your time zone, the digit is the number
of hours offset from GMT, which is the important part.
The most useful file management commands (in my opinion) are:
'Overwrite destination'
Always overwrites the destination file, erasing any existing file.
'Never overwrite'
If the file already exists, skip that file.
'Change name if file exists'
This protects you from accidentally overwriting a file. Changes the last
letter of the filename to a digit, starting at '0' and continuing to '9'
until a filename is found that doesn't already exist. If this fails, skips
that file.
If you don't choose any file management commands, and the sender doesn't
specify any either, then the default behaviour is to overwrite the
destination file, even if it already exists.
Ascii Upload/Download
This is a built-in file transfer. You can configure it through the transfer
protocols dialog box. There is no progress indicator for Ascii
transfers, though the Terminal window title bar will display the message
[Ascii UL] or [Ascii DL] while a transfer is in progress.
Available options for Upload are Strip Line Feeds, Prompting, Pause, and
Expand Blank Lines. Strip Line Feeds removes line feed characters.
Prompting lets you specify a prompt, up to four characters long, that the
program will wait for before sending the next line. You can also specify a
pause before sending the next line, in units of 1/2 second. It is possible
to combine the Pause and Prompt settings. If you use both, then the next
line gets send when the prompt is received or the pause internal expires,
whichever comes first. By default, the program will wait a maximum of five
seconds for the prompt before sending the next line, even if Pause is not
selected. If you have a system that is sometimes slow to respond, specify
a longer pause and select the Pause button.
Expand Blank Lines sends a single space when a blank line is encountered.
This is useful with systems that might otherwise ignore a blank line.
Ascii upload strips trailing blanks (except in the case of expanded blank
lines) to avoid problems with systems that reformat text and would leave
extra spaces in the middle of lines.
Ascii Download captures raw serial data from the serial port, including all
escape sequences and control codes. Options for Download include Add Line
Feeds and Control-Z is End of File. Add Line Feeds is needed if the other
end doesn't send line feeds and the terminal emulations is adding them.
Control-Z is End of File is useful if the other end sends a control-z at
the end of a download.
If you don't use the Control-Z option, then Ascii Download continues until
you abort the file transfer, either from the menu bar or from Basic.
If you started the Ascii Download from Basic, it may seem at first glance
that there is no way to abort the transfer since Basic is stuck in the
DLOAD command waiting for the transfer to complete. The following sample
program shows how to do it using Basic event trapping. It also illustrates
the use of WAIT during an event handler.
ON TIMER(2) GOSUB click
'Pause briefly before entering event handler to allow transfer to start.
TIMER ON
PRINT DLOAD("ASCII","DELETE.ME")
TIMER CLEAR
'N.B. Do NOT clear the timer event inside the timer event subroutine!
END
'The following subroutine is entered roughly two seconds after the start
'of the program. It waits for the string "end!" to indicate the end of the
'file transfer. It then stops further timer events and returns. Soon
'thereafter, the DLOAD function exits with a return code of 1, indicating
'that one file has been transferred. I have arbitrarily put a five minute
'timeout for the wait so that the file transfer will not continue forever.
click:
WAIT 300,"end!"
ABORT XFER:'Basic command to stop the file transfer
TIMER OFF
RETURN
The reason this method works is that Basic is suspended during file
transfers, but still checks for event traps. WAIT in an event trap is
allowed and Ascii Download still allows characters to be processed by
Basic (using the event trap technique) and in fact still allows capturing
of text by the capture buffer.
You might think that the TIMER(2) command would cause the "click:"
subroutine to be called every two seconds, but the timer event is turned
off automatically when the timer event handler is entered so that while
the WAIT command is executing, no futher timer events occur.
Ascii Upload is one of the options when selecting text from the terminal
screen or an editing window. The text is copied to the GEM clipboard as
"SCRAP.UPL" and then uploaded using all the Ascii Upload settings. The
"SCRAP.UPL" file is overwritten each time you upload a new block of text
and is automatically deleted when you exit the program.