Dec 312017
 
An Automatic daily on/off program for ProComm.
File PROTIME.ZIP from The Programmer’s Corner in
Category Communications
An Automatic daily on/off program for ProComm.
File Name File Size Zip Size Zip Type
EEIR.CMD 14389 2605 deflated
HOST.CMD 2211 809 deflated
PROTIME.DOC 33094 9107 deflated
PROTIME.EXE 38688 27671 deflated

Download File PROTIME.ZIP Here

Contents of the PROTIME.DOC file


PROTIME.EXE

A program for automatic daily timed running of ProComm

by Pete Petrakis
Life Sciences Editorial Service
Annapolis, Maryland 21401

(NOTE TO USERS OF PROLOAD.EXE: ProTime.Exe supersedes ProLoad.Exe, which I
placed on Datastorm Technologies' bulletin board in late May 1987. If you
have downloaded ProLoad, I strongly recommend, as author of both programs,
that you discard ProLoad and use ProTime instead. Both programs perform
exactly the same job; that is, both allow automatic daily running of ProComm
with preset on and off times. However, this newer program, ProTime, does it
much better than ProLoad. The major improvement is in the speed of time-
checking to see if the preset time "window" for operations is still open.
ProLoad was a bit cumbersome, I confess: after each exit from ProComm to
ProLoad for a time check, ProLoad would reload and rerun ProComm. But
ProComm is a pretty big program, so reloading it took quite a while. This
meant that a lot of time was spent on the process of exiting for a time
check and re-entering.

ProTime does things the other way around: it is loaded and run by ProComm,
and periodic exits to check the time are executed through the "DOS" command
in a .CMD file. Since ProTime is a much smaller program than ProComm, its
periodic loading for time checks goes much faster. On my system, using a
disk cache, the exit from ProComm for a time check takes only about 3
seconds from start to finish. With a hard disk and no disk cache it still
takes only about 5 seconds.)


Introduction

PROCOMM.EXE (TM, Datastorm Technologies, Inc.) comes with a program called
TEF, which will load and run PROCOMM, with or without a command file, at
some predetermined time. TEF is useful but it doesn't do all the things I
wish it did. The key limitations are that TEF is good for only one
automatic loading of ProComm, it does not have a feature for automatic shut-
down of ProComm at a preset time, and it does not recycle to open that time
"window" automatically each day.

I needed a program that would not only load and run ProComm with a command
file at some predetermined time, but also would cause automatic termination
of ProComm at another predetermined time, simultaneously disabling
autoanswer in the modem. Since I am a freelance science writer with only
one employee (me) and a single telephone line, I wanted my system to be open
for my computer calls from distant places only during a specific period of
the day and to be unreceptive to computer calls the rest of the time.
Furthermore, I wanted that telecommunications window to open and close
automatically every 24 hours, so I could have a daily opportunity to contact
my computer from afar.

Specifically, I want to use ProComm in Host Mode so I can run my computer
from another computer when I am in another city. And when I don't need to
run it, I want callers to the home office to leave messages on my answering
machine instead of being bewildered by the whine from my modem. As a
practical matter, for me this means remote computer operations late at
night, when people are unlikely to be calling for a chat, and normal voice
operations during the day--all on the same telephone line. I also need a
way to set up ProComm so a client who wants a text from me can call my
computer between certain hours and download it, without my having to be
present.

Unfortunately, though ProComm is "aware" of the passage of time (for
example, in the WAITFOR and PAUSE commands), it can only count seconds and
doesn't know what time of the day it is. There is no command in the ProComm
command set that directs the program to check the computer's clock and take
some action at a particular hour and minute. Thus the problem for a ProComm
user who wants cyclic timed operation is how to make the system know when
it's time to quit waiting for calls, turn off the autoanswer on the modem,
put ProComm to sleep for the rest of the day, and make it start waiting for
calls at the same time the next day.

My solution to this problem was ProTime.Exe, a program I wrote in compiled
Microsoft QuickBasic. As with its predecessor, ProLoad, I place ProTime in
the public domain, along with sample .CMD files to accomplish both kinds of
timed operation (i.e., Host Mode operation and unsupervised file
downloading or uploading).


How ProTime Works

ProTime is run by ProComm, which is loaded and run in the normal way
(i.e., by entering PROCOMM /fcommandfile at the DOS prompt). Getting
ProTime into the act requires having command (.CMD) files for ProComm that
make use of the command, DOS "command", which causes ProComm to run some
other program, as discussed on p. 706 of the ProComm 2.4.1 reference manual.
In this case the program that is run is ProTime, and conveniently, for our
purposes, control is automatically returned to ProComm as soon as that other
program is finished.

ProTime has only one basic function--to check the computer's clock for the
current time and take some action based on what it finds. When ProTime is
run by ProComm, the first thing it does is check the current time. If the
current time falls between the preset on and off times, ProTime ends
immediately and passes control right back to ProComm. But if the current
time is not within the predefined operating period, ProTime does not end.
Instead it keeps checking the computer's clock until the "on" time is
reached. In this way, ProTime allows ProComm to run only between certain
times of the day.

Thus the first thing you have to do before running the ProComm/ProTime
combination is make the information about on and off times available to
ProTime. ProTime is designed to check the DOS "environment" for this
information, so that is where you must put it, using the SET command in DOS.


For example, if you wanted ProComm to operate between 1:00 a.m. and 7:00
a.m., you would type the following in DOS (before running ProComm with a
.CMD file that links it to ProTime):

C>SET ON=01:00
C>SET OFF=07:00

These times must be expressed as "military" time (a 24-hour clock); for
example, 21:00 instead of 9:00 pm, 00:00 instead of 12:00 pm (midnight),
01:00 instead of 1:00 am, 13:00 instead of 1:00 pm. If the hour is a
single-digit hour it need not be preceded by a zero. However, a single-
digit minute must be preceded by a zero, although it seems likely that most
people would time their on-off to the nearest quarter-hour rather than to to
some odd time like 05:02. Don't bother including seconds; they are
ignored. Hours and minutes must both be included, however.


Command Files for ProTime

The only way ProComm and ProTime can be made to work together is to design
ProComm's .CMD files in ways that force ProComm to terminate PERIODICALLY
(or in response to specific situations) and return to ProTime, so ProTime,
which knows how to do it, can check to see if the time for communications
has expired. If it has, ProTime waits until the starting time comes around
again before re-running ProComm. If the time has not expired, ProTime exits
back to ProComm and the designated command file, so ProComm can continue to
wait for calls.

Some specific examples may make things clearer. Here is a command file
designed to make the "parent" program, ProComm, and the "child" program,
ProTime, work together for periodic checking of the time, followed by
waiting for calls. The command file is called HOST.CMD, because it is
designed to make ProComm operate in the Host Mode. The critical parts of
the command file are in lower case letters and have explanatory remarks:


;HOST.CMD

START:
Clear
SET BAUDRATE 1200
SET PARITY NONE
SET DATABITS 8
SET STOPBITS 1
SET PORT COM1
SET FLOWCONTROL OFF
DOS "ProTime" ; Initial settings are made. Go check
; the time with ProTime.

; The time window is now open. Wait for the phone to ring.
Beginning:
Set Duplex Full
Transmit "AT S0=1!" ; Set modem to answer on first ring.
Clear
Set Duplex Half
Locate 1,0
Message "Modem set for autoanswer."
Message "Ring will trigger prompt for Host Mode password."
WaitFor "RING" 600 ; Wait 10 min. for phone to ring.
If WaitFor
Goto Ready ; Phone rang, so get ready for Host mode.
Else
Goto Check ; No ring in 10 min. Go check the time.
Endif

Ready:
Assign S1 "????????" ; Substitute your own password.
Pause 6 ; Wait 6 seconds for connection.
Transmit "Enter the password: "
Rget S1 8 45
If Failed
Transmit "Time's up. Goodbye.^M^J^J"
Goto Check ; 45 seconds up. Go check the time.
EndIf
WaitFor "NO CARRIER" 2 ; Did caller hang up?
If WaitFor
Message "Caller hung up."
Goto Check ; Caller hung up
EndIf
Find S1 "????????" ; Check for valid password.
If not found
Transmit "Sorry, you are not authorized.^M^J^J"
Goto Check ; Unauthorized user. Go check the time.
EndIf

Mode:
Transmit "Accepted.^M^J"
Transmit "Host Mode is ready. Now place your second call.^M^J"
Transmit "P.S. Don't forget to sign off from Host Mode with Ctrl-Z.^M^J^J"
HangUp

SET HOSTPSWD "????????" ; Substitute your own password.
SET SHELLPSWD "????????" ' Substitute your own password.

HOST ; Made it to Host Mode!

If Not Connected ; Host mode was disabled remotely with
; with Ctrl-Z
Goto Check ; Go check the time.
Endif

Check:
Set Duplex Full
Clear
HangUp
Transmit "AT S0=0!" ; Disable autoanswer.
DOS "ProTime" ; Run ProTime
Goto Beginning ; Back from ProTime, resume waiting for
; ring.


This command file causes ProComm to wait 10 minutes for the word "RING" to
come in from the modem (a Hayes or compatible set for "verbose" result
codes). If the phone rings during that wait, the program jumps to a segment
that asks for keyboard input from the caller. If the phone does not ring
during that period, the modem is taken out of autoanswer mode, and ProTime
is run to see if the time for remote operations has expired.

During these exits to ProTime for time-checking, the screen goes dark and
the current time is shown briefly. If the time window has not expired,
ProTime immediately returns to ProComm and HOST.CMD and the wait for the
phone to ring is resumed. This exit and re-entry is repeated about a minute
later. If the time HAS expired, ProTime goes into a "holding" action and
suspends the return to ProComm until the next day's cycle is due to start.
During holding, ProTime displays its logo, the times for the cycle, and the
current time. Meanwhile, because the modem is always taken out of
autoanswer mode each time there is an exit for time checking, there is no
danger of a voice caller being greeted with the sound of a modem carrier,
even though the modem remains turned on.

Notice that it takes two phone calls to activate Host Mode. The first
call triggers a call screening action. It elicits a request for the caller
to type a password. If the correct password is not received within 45
seconds, the program exits to ProTime for another time check and a new
loading of ProComm. This screening, requiring keyboard action from the
caller, is interposed between the waiting segment and actual Host Mode in
order to prevent an untimely ring from a voice caller from triggering Host
Mode and disrupting the cyclic time checking. It also prevents an
unauthorized computer caller from doing the same. If the password is
accepted, the caller is told to call again, the modem is hung up, Host Mode
is entered, and everything is now set up for Host Mode operations, which
will occur on the very next ring. If there is no response (voice caller,
probably) or if there is an incorrect password (unauthorized user), it's
hang up and go back to waiting for a ring, with periodic checking to see if
the time window has expired.

The waiting time for a phone ring can and probably should be longer than
in this example. Ten minutes waiting means about 6 loadings of ProComm each
hour, 48 disk accesses in an 8-hour time frame. That could mean needless
disk wear, and it would probably be better to make the waiting period
longer. In general, the longer the period you have set for operations, the
less frequently you need to check for its expiration, and the longer the
waiting period can be.

Keep in mind, however, that a waiting period of, say, 30 minutes could
cause practically 30 minutes of "overtime" waiting if the final waiting
period happened to start in the last few seconds of the time frame you
created when you first ran ProTime. You might want to take this possibility
into account when setting your "sign-off" time. ProLoad, the predecessor of
ProTime, had a limitation on how short you could make the waiting period.
If you set the waiting time too short with ProTime, an excessive proportion
of the timed cycles would be eaten up by recycling back and forth between
ProComm and ProTime, increasing the probability that the program would be in
the time-checking process when the phone rang and that the greater number of
rings required could trigger an answering machine. ProTime greatly reduces
these risks because the time checking and return to ProComm is much
speedier, taking only about 3-5 seconds with a hard disk.

You can practically eliminate disk access for the cyclic reloading of
ProTime, as well as speed up the loading process, if you have a disk cache
program or a RAM drive. If you have expanded memory and Frank Lozier's
EMMCACHE program (available on computer bulletin boards) you can set up the
disk cache in expanded memory and spare a lot of precious DOS RAM.

Here is another command file designed to work with ProTime. It allows one
of my clients to call my computer and download or upload a file when I'm not
present.


;FILEXFER.CMD

Clear
Set CR_Out CR_LF
Set Wrap On
Set FlowControl On
Set ASCII Echo On
Set BaudRate 1200
Set Parity None
Set DataBits 8
Set StopBits 1
Set Port Com1
Set Kermit BlockCheck 3
Emulate IBM3101
Clear
Dos "ProTime" ; Exit for initial time check

Start:
Set Duplex Full
Transmit "AT S0=1!"
Clear
Locate 1,0
Message "Waiting for client"

WaitFor "RING" 60
If WaitFor
Goto Answer
Else
Goto SignOff
EndIf

Answer:
Pause 6 ; Wait for connection to be made
If Not Connected
Message "No carrier detected." ; Caller hung up
Goto CheckOut
EndIf

Gosub Logo
TRANSMIT "^M^JHello. This is Pete Petrakis' computer.^M^J^J"

TRANSMIT "This is a do-it-yourself text transmission setup, and you are in^M^J"
TRANSMIT "control of the entire operation. (Pete might still be in bed or^M^J"
TRANSMIT "even in California).^M^J^J"

TRANSMIT "If you are not using ProComm.EXE for this transmission, hang up right^M^J"
Transmit "now, find ProComm, load it, and call me again. This setup works ONLY^M^J"
Transmit "with ProComm, using MS-DOS. I'll pause 10 seconds to see if you^M^J"
Transmit "hang up.^M^J^J"

Pause 10
If Not Connected
Goto SignOff
EndIf
Transmit "OK. I assume you are using ProComm.^M^J^J"

Transmit "Options:^M^J"
Transmit " 1. Receive a file from me^M^J"
Transmit " 2. Send a file to me^M^J^J"

Assign S1 " "
Prompt1:
Transmit "Enter 1 or 2 (within 1 minute): "
Rget S1 1 60
If Failure
Goto GetOut ; No keyboard action; might have
; been a voice caller
EndIf
Switch S1
Case "1"
Gosub Protocol ; Provide instructions to caller
Goto Upload ; Prepare to upload a file
EndCase
Case "2"
Gosub Protocol ; Provide instructions to caller
Goto Download ; Prepare to download a file
EndCase
EndSwitch
Goto Prompt1

Protocol:
TRANSMIT "^M^JFile transfer proceeds automatically when you're ready.^M^J^J"

TRANSMIT "Within 1 minute after I send you a protocol list, enter the number^M^J"
TRANSMIT "of the protocol you want, then select the SAME protocol at your end.^M^J"
Transmit "To select at your end, press the PAGE UP key if you're sending a file^M^J"
Transmit "to me, PAGE DOWN if you are receiving a file from me. Either will^M^J"
Transmit "produce ProComm's menu of available protocols. Tell your ProComm^M^J"
Transmit "the number of the protocol you want to use, then answer its prompt^M^J"
Transmit "for the name of the file you want to send or receive.^M^J^J"

Transmit "Any of the protocols will work, but ASCII is the poorest because it^M^J"
Transmit "lacks error checking. Use Kermit for really accurate error checking.^M^J"
Transmit "Kermit is especially good when the lines are noisy.^M^J^J"

Transmit "The file transfer starts as soon as you select the protocol at your^M^J"
Transmit "end and answer your system's prompt to name the file for sending or^M^J"
Transmit "receiving. This system will hang up as soon as the file transfer^M^J"
Transmit "is finished.^M^J^J"

Assign S1 "^M"
Transmit " Press Return to continue (within 1 min.)"
Rget S1 1 60 ; Give caller time to read screen
If Failure
Goto GetOut
EndIf
TRANSMIT "^M^J^JNow tell me what protocol you'll use to transfer this file:^M^J^J"
Transmit " 1. XModem^M^J"
Transmit " 2. Kermit^M^J"
Transmit " 3. Telink^M^J"
Transmit " 4. Modem7^M^J"
Transmit " 5. YModem^M^J"
Transmit " 6. YModem Batch^M^J"
Transmit " 7. ASCII (Least reliable; no error checking)^M^J"
Transmit " 8. Compuserve B^M^J"
Transmit " 9. WXModem^M^J^J"
Assign S1 " "
Return

Upload:
Transmit "Enter number (within 1 min.): "
Rget S1 1 60
If Failure
Goto GetOut
EndIf
Switch S1
Case "1"
Goto XModSend
EndCase
Case "2"
Goto KermSend
EndCase
Case "3"
Goto TelnkSend
Case "4"
Goto Mod7Send
EndCase
Case "5"
Goto YModSend
EndCase
Case "6"
Goto YBatchSend
EndCase
Case "7"
Goto AscSend
EndCase
Case "8"
Goto CompuSend
EndCase
Case "9"
Goto WXModSend
EndCase
Case "_Null"
Goto Upload
EndCase
EndSwitch

Download:
Transmit "Enter number (within 1 min.): "
Rget S1 1 60
If Failure
Goto GetOut
EndIf
Switch S1
Case "1"
Gosub GetName
Goto XModGet
EndCase
Case "2"
Gosub GetName
Goto KermGet
EndCase
Case "3"
Gosub GetName
Goto TelnkGet
Case "4"
Gosub GetName
Goto Mod7Get
EndCase
Case "5"
Gosub GetName
Goto YModGet
EndCase
Case "6"
Gosub GetName
Goto YBatchGet
EndCase
Case "7"
Gosub GetName
Goto AscGet
EndCase
Case "8"
Gosub GetName
Goto CompuGet
EndCase
Case "9"
Gosub GetName
Goto WXModGet
EndCase
Case "_Null"
Goto Download
EndCase
EndSwitch



GetName:
Assign S2 " "
Transmit "^M^JPlease enter the name of the file and press Return: "
Rget S2 13 60
If Failure
Goto GetOut
EndIf
Return


; SUBROUTINES FOR SENDING FILES

LOGO: ; Send Life Sciences Editorial Service logo
ISFILE "PROCOMM.MSG"
IF SUCCESS
TRANSMIT "^M^J"
SENDFILE ASCII "PROCOMM.MSG"
ENDIF
RETURN

XModSend: ; Send text with XMODEM protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Start XModem download at your end.^M^J"
Transmit "Press Return to start the transfer.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
SENDFILE Xmodem "CLIENT"
ENDIF
Goto CheckOut

KermSend: ; Send text with Kermit protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Start Kermit download at your end.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
Assign S1 "CLIENT"
Transmit "Receive"
Transmit S1
Transmit "^M"
KermServe SENDFILE S1
KermServe Finish
KermServe LogOut
EndIf
ENDIF
Goto CheckOut

TelnkSend: ; Send text with Telink protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Start Telink download at your end.^M^J"
Transmit "Press Return to start the transfer.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
SENDFILE Telink "CLIENT"
ENDIF
Goto CheckOut

Mod7Send: ; Send text with MODEM7 protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Start Modem7 download at your end.^M^J"
Transmit "Press Return to start the transfer.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
SENDFILE Modem7 "CLIENT"
ENDIF
Goto CheckOut

YModSend: ; Send text with YMODEM protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Start YModem download at your end.^M^J"
Transmit "Press Return to start the transfer.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
SENDFILE Ymodem "CLIENT"
ENDIF
Goto CheckOut

YBatchSend: ; Send text with YMODEM BATCH protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Start YModem Batch download at your end.^M^J"
Transmit "Press Return to start the transfer.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
SENDFILE BYModem "CLIENT"
ENDIF
Goto CheckOut

AscSend: ; Send text with ASCII protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Set up ASCII download at your end,^M^J"
Transmit "then press Return to start the transfer.^M^J^J"
Transmit "NOTE: ASCII texts will show on your screen,^M^J"
Transmit "but if they are in WordPerfect format you should^M^J"
Transmit "expect them to look a little strange (uneven lines,^M^J"
Transmit "lines overwriting other lines, odd characters, etc.).^M^J"
Transmit "But don't worry, everything should be normal when^M^J"
Transmit "you load them with WordPerfect.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
SENDFILE ASCII "CLIENT"
EndIf
ENDIF
Goto CheckOut

CompuSend: ; Send text with CompuServe B protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Start Compuserve B download at your end.^M^J"
Transmit "Press Return to start the transfer.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
SENDFILE CISB "CLIENT"
ENDIF
Goto CheckOut

WXModSend: ; Send text with Windowed XMODEM protocol
Assign S1 "^M"
ISFILE "CLIENT"
IF SUCCESS
Transmit "^M^JOK. Start Windowed XModem download at your end.^M^J"
Transmit "Press Return to start the transfer.^M^J"
Rget S1 1 60
If Failure
Goto GetOut
Else
SENDFILE WXmodem "CLIENT"
ENDIF
Goto CheckOut


; SUBROUTINES FOR RECEIVING FILES
XModGet: ; Receive text with XMODEM protocol
Transmit "^M^JOK. Start XModem upload at your end now.^M^J"
Pause 10
GetFile Xmodem S2

Goto CheckOut

KermGet: ; Receive text with Kermit protocol
Transmit "^M^JOK. Start Kermit upload at your end now.^M^J"
Pause 10
Transmit "Send "
Transmit S2
Transmit "^M"
GetFile Kermit
Goto CheckOut

TelnkGet: ; Receive text with Telink protocol
Transmit "^M^JOK. Start Telink upload at your end now.^M^J"
Pause 10
GetFile Telink S2
Goto CheckOut

Mod7Get: ; Receive text with MODEM7 protocol
Transmit "^M^JOK. Start Modem7 upload at your end now.^M^J"
Pause 10
GetFile Modem7 S2
Goto CheckOut

YModGet: ; Receive text with YMODEM protocol
Transmit "^M^JOK. Start YModem upload at your end now.^M^J"
Pause 10
GetFile Ymodem S2
Goto CheckOut

YBatchGet: ; Receive text with YMODEM BATCH protocol
Transmit "^M^JOK. Start YModem Batch upload at your end now.^M^J"
Pause 10
GetFile BYmodem S2
Goto CheckOut

AscGet: ; Receive text with ASCII protocol
Transmit "^M^JOK. Set up ASCII upload at your end now.^M^J^J"
Transmit "NOTE: ASCII texts will show on your screen,^M^J"
Transmit "but if they are in WordPerfect format you should^M^J"
Transmit "expect them to look a little strange (uneven lines,^M^J"
Transmit "lines overwriting other lines, odd characters, etc.).^M^J"
Transmit "But don't worry, everything should be normal when^M^J"
Transmit "they are loaded in WordPerfect.^M^J"
Pause 10
GetFile ASCII S2
Goto CheckOut

CompuGet: ; Receive text with CompuServe B protocol
Transmit "^M^JOK. Start Compuserve B upload at your end now.^M^J"
Pause 10
GetFile CISB S2
Goto CheckOut

WXModGet: ; Receive text with Windowed XMODEM protocol
Transmit "^M^JOK. Start WXModem upload at your end now.^M^J"
Pause 10
GetFile WXmodem S2
Goto CheckOut


; LEAVE THE PROGRAM
GetOut:
Transmit "^M^JTime's up. Please call back.^M^J"
Goto SignOff
CheckOut:
Transmit "^M^J^JDone. Signing off. Goodbye.^M^J"
SignOff:
HangUp
Set Duplex Full
TRANSMIT "ATS0=0!" ; Turn off modem autoanswer
Clear
Dos "ProTime" ; Check the time
Goto Start ; Loop back and resume waiting


This .CMD file assumes the caller is also using ProComm and allows
uploading or downloading by any of the nine protocols available on ProComm.
If the caller is downloading, the file he receives always has the same name
("CLIENT" in this example), although the file could be modified to prompt
the user for a file name, using the GET Sx command. If the caller wants to
upload, he must type in the name of the file he is sending, so a file by
that name can be opened on the current drive. As with the HOST.CMD file,
this .CMD file forces time checking with ProTime at intervals and after
events such as lost connections as well as completion of the file transfer.


Some Precautions

IMPORTANT! BE VERY SURE TO SHUT DOWN HOST MODE FROM THE REMOTE SIDE EACH
TIME YOU FINISH YOUR REMOTE OPERATIONS. Do this by entering Ctrl-Z with a
Return after a prompt, then entering the Shell Password when requested, as
discussed on p. 804 of the ProComm 2.4.1 Manual. If you sign off in the
standard way by simply entering a "G" (for goodbye), the periodic exits to
ProTime to check for expiration of the time frame WILL CEASE, and ProComm
might remain continuously in Host Mode, waiting for calls 24 hours a day
until you return from Tahiti or Monte Carlo. Meanwhile, no one will be able
to leave messages on your answering machine. If this is what you want,
fine. But in that case perhaps you didn't really need ProTime in the first
place. Actually, if you do forget to sign off with a Ctrl-Z, it is no
disaster, although it will add a little to your phone bill. Procomm is now
hung directly in Host Mode and waiting for calls, so you can call back right
away and sign off in the correct way--using Ctrl-Z. This will trigger an
immediate exit to ProTime for time-checking. Cyclic operation can then
resume.

As a precaution against power failures while you're away, you should
create or modify an AUTOEXEC.BAT file to contain the following lines:

SET ON=hh:mm
SET OFF=hh:mm
ProComm /fcommandfile

That way, as soon as the power comes back on and automatic rebooting is
completed, ProComm and ProTime will again be waiting together for your
long-distance calls during the block of time you designated before you left.
It's also advisable to turn off your monitor; you won't be needing it while
you're gone anyway.


Conclusion

I hope the creators of that excellent product, ProComm, will consider
building time windowing capability right into the program when they come out
with their next version. Meanwhile, if you need it, ProTime can do the job
of opening and closing a "window in time" for remote and unattended
operation of your computer. It doesn't do it in the optimum way, obviously,
especially since it requires two phone calls to get into Host Mode. But it
really does work.

Pete Petrakis
Life Sciences Editorial Service
Annapolis, Maryland


 December 31, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)