home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
OS2
/
ZOC121.ZIP
/
ZOC
/
SCRIPT
/
MINIHOST
< prev
next >
Wrap
Text File
|
1994-02-13
|
5KB
|
161 lines
#######################################################################
# #
# This script is a small host (like the one in ProComm(TM)) #
# #
# It's not fairly well tested but maybe someone is in the mood #
# to play around with it a bit more and make the result available #
# on the internet or packaged with ZOC #
# #
# It takes incoming calls and lets the user change directory, #
# show directories and send/receive files. #
# #
# Possible extensions: #
# * TYPE command to show ASCII files #
# * options for DIR (like /o or /a) #
# * other non-interactive shell commands (like DEL) #
# * page system owner for a chat #
# * more sophisticated timeout control for dropped connections #
# #
#######################################################################
// This SCRIPT requires the following options to be set
// * Host Echo On (Options, Terminal)
// * Ascii Delay 0 (Options, Transfer)
// Set script to exact mode and modem to
// auto answer
exact 1
send "ATS0=1"
// ENTRY
// * wait for connect and set serial speed
// * ask for password
// * hangup if pw wrong
:allover
wait CONNECT ;// wait for connect
wait "^M" ;// the stuff after connect is the speed
baud "%lastline%"
// show welcome screen
send "^[[2J"
send "Welcome!^M^J^M^J"
send "Enter Password :"
timeout 60
waitline
seta pass "%lastline%"
lower pass
rtrim pass
compa "%pass%" with "secret"
ifnequ goto endit ;// sorry hacker
seta curdir "C:\."
// MENU
// * show menu
// * call subroutine accordingly
:menu
timeout 300
seta choice " "
send "^M^J^M^J"
send "[%curdir%] Your Choice (cd/dir/zu/zd/exit) ? "
waitline
// forget it if WAITLINE timed out or if NO CARRIER occured
ifbrk goto endit
compa "%lastline%" with "NO CARRIER"
ifin goto endit
// text cosmetics for user input
seta choice "%lastline%"
lower choice
ltrim choice
rtrim choice
// change directory
compa "%choice%" with "cd"
ifequ call chdir
// show directory
compa "%choice%" with "dir"
ifequ call showdir
// receive file from remote station
// (upload from remote point of view)
compa "%choice%" with "zu"
ifequ call upload
// send file to remote station
// (download from remote point of view)
compa "%choice%" with "zd"
ifequ call download
// exit/hangup
compa "%choice%" with "exit"
ifequ goto endit
goto menu
// ENDIT
// * hang up line
// * do it all over
:endit
hangup
goto allover
#####################################################################
# SUBROUTINES #
#####################################################################
// CHANGE DIRECTORY
// * get input from user and store directory
// * append '.' to root directories (for sake of upload)
:chdir
send "^M^JEnter directory: "
waitline
seta curdir "%lastline%"
seta lastchar "%curdir%" -1
compa "%lastchar%" with "\"
ifequ seta curdir "%curdir%."
return
// SHOW DIRECTORY
// * run directory command with output redirection
// * show redirected output via ASCII upload
// * delete redirection file
:showdir
shell "dir %curdir% >shellout.tmp"
upload a "shellout.tmp"
shell "del shellout.tmp"
return
// RECEIVE FILE FROM REMOTE STATION
// * no USER input required (it's an upload from their point of view)
:upload
send "^M^JPlease start your Zmodem upload or press ^^X "
send "several times to abort. "
download z "%curdir%"
return
// SEND FILE TO REMOTE STATION
// * get a file name
// * (it's a download from their point of view)
:download
send "^M^JPlease enter the name of the file "
send "you want to receive from the ^M^J"
send "%curdir% directory: "
wait "^M"
seta file "%lastline%"
ltrim file
rtrim file
compa "%file%" with ""
ifnequ upload z "%curdir%\\%file%"
return