home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR10
/
MOYAN51A.ZIP
/
HOST.BSC
< prev
next >
Wrap
Text File
|
1993-11-15
|
22KB
|
558 lines
\\ BOYAN HOST MODE Version 5.1.
\\ Please see the BOYAN User's Manual for complete documentation!
|InitHost
\IE-%AN,HOST[ \AM[H] ]
\IE-%AN,HOST[\DM24[Unable to load HOST module.]\AB]
\ZS \ST[Invoking host in %V3 mode...]
\DM1[ ╔═══════════════════════════════════════╗ ]
\DM2[ ║ Host Mode Initializing... ║ ]
\DM3[ ╠═══════════════════════════════════════╣ ]
\DM4[ ║ Press <Tab> for Sysop Menu. ║ ]
\DM5[ ║ Press <Esc> to quit Host Mode. ║ ]
\DM6[ ╚═══════════════════════════════════════╝ ]
\CP[None] \BB- \AV[0] \KO[0] \SP[0] \SL[0] \\ initialize host settings
\SVU[%UN] \IE+%UF,OFF[\SVU[]] \\ save current usage file name in %VU
\SVR[%AP] \\ save previous action module in %VR
\UF+[%V4`HOST.USE] \\ use HOST.USE as the usage log file
\UM[---- Host Mode Invoked -----]
\MV1[7] \II-"\AF,%V1[\SM7["\AF"[%V1"]] \\ This line checks to make sure
\\ that the \AF[blah..blah]
\\ command is included in macro #7
\CA+[ \GB[Welcome] | \GB[WaitForCall]
|WaitForCall
\EC- \LF- \KO[0] \SVN[] \SVO[waiting]
\IV3+LOCAL[\EC+ \LF+\SVI[41]\gb[local]]
\IV3-MODEM[\GB[Welcome]] \CA+[\GB[Welcome]]
\CS[%MM] \MA[3] \\ Change speed to modem's maximum.
AT&C1&D2X4S0=0{ \\ Tell modem not to auto-answer.
\WF[OK]~~ \\ Expect "OK" message back from modem.
\DM1[ ╔═══════════════════════════════════════╗ ]
\DM2[ ║ Host Mode Waiting for RING... ║ ]
\DM3[ ╠═══════════════════════════════════════╣ ]
\DM4[ ║ Press <Tab> for Sysop Menu. ║ ]
\DM5[ ║ Press <Esc> to quit Host Mode. ║ ]
\DM6[ ╚═══════════════════════════════════════╝ ]
\TO[255] \WF[RING] \\ Wait forever for "RING"
\TO[7] \SV0[%V2] \+V0[-1] \\ let %V0 = tot. number of rings - 1
\RE%V0[\WF[RING] \IW-[\GB[WaitForCall]] ] \\ Wait for %V0 additional rings.
~ATA{~ \\ Tell modem to establish connection.
\TO[45]\WL\WP[1]
\IF+MNP[\CS[%MM]\sv9[x]\GB[Welcome]] \\ Setting port speed for modem
\IF+ARQ[\CS[%MM]\sv9[x]\GB[Welcome]] \\ .
\IF+LAP[\CS[%MM]\sv9[x]\GB[Welcome]] \\ .
\IF+HST[\CS[%MM]\sv9[x]\GB[Welcome]] \\ .
\IF+38[\CS[%MS]~ \GB[Welcome]] \\ .
\IF+19[\CS[%MS]~ \GB[Welcome]] \\ .
\IF+96[\CS[%MS]~ \GB[Welcome]] \\ .
\IF+48[\CS[%MS]~ \GB[Welcome]] \\ .
\IF+24[\CS[%MS]~ \GB[Welcome]] \\ .
\IF+12[\CS[%MS]~ \GB[Welcome]] \\ .
\CS[%MS]~\GB[Welcome] \\ .
|Local
\zs Welcome Sysop! {{
\SV3[LOCAL]
\TVA[%VI] \ii-;,%VA[\gb[welcome]]
\SVN[%VA] \II+;,%VN[\LVN[%IM]]
\SVF[%VN] \II+ ,%VF[\LVF[%IM]]
\SVP[%VA] \II+;,%VA[\DVP[%II]] \II-;,%VP[\EM]
\SVL[%VP] \LVP[%IM]
\DVL[%II] \II-;,%VL[\EM]
\SVE[%VL] \LVL[%IM]
\DVE[%II] \II-"|.%VE[\EM]
\II+"|,%VE[\LV0[%IM]]
Enter your password: `\RV0*[15]
\IV0-%VP[\SVN[]{{ OK,{{You'll have to do it the hard way <G>!{{\gb[welcome]] \\ wrong password
\SN[%VN] \SVO[online]
\bl[StartTime] \gb[menu]
|Welcome
\EC+ \LF+ \CS[%MS]
\IV3+MODEM[\AV[6] \AL2[1] \AV[0] \PA[3] \PL]
{{{
Welcome to BOYAN 5.1 Host!{{
\ie+%V9,X[{(Error Correcting Modem Detected)]
\DM1[ ╔═══════════════════════════════════════╗ ]
\DM2[ ║ Host Mode Logging user in... ║ ]
\DM3[ ╠═══════════════════════════════════════╣ ]
\DM4[ ║ Press <Tab> for Sysop Menu. ║ ]
\DM5[ ║ Press <Esc> to quit Host Mode. ║ ]
\DM6[ ╚═══════════════════════════════════════╝ ]
\TO[40] Press <Enter> to begin: `{
\rvy[1]{{\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
\IW-[\GB[LogOff]] \SVX[OFF] \sv1[] \\ if no response, log user off!
Welcome to BOYAN Communications 5.0{{
\FE+%V4`WELCOME.MSG[\svz[%V4`WELCOME.MSG] \bl[list]] \\ Send "WELCOME.MSG"
\PL \iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]] \BL[GetName&PW] \iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
\IVN+[Try again.{ \BL[GetName&PW]]\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
\IVN+[Last try!{ \BL[GetName&PW]]\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
\IVN+[\GB[WrongPassword]]
\SN[%VN] \SVO[online] \bl[startTime]
\gb[MENU]
|GetName&PW
\SV0[] \SVP[] \SVL[1] \SVE[] { \\ user level set to 1
\\SV0[] \SVP[] \SVL[0] \SVE[] { \\ user level set at 0
Enter your FIRST & LAST name: `
\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]] \RVN[50] \IVN+[\EB]
\SVF[%VN] \II+ ,%VF[\LVF[%IM]] \\ set %VF = user's First name
\SV0[%VN] \DV0[%II]
\II+ ,%V0[\LV0[%IM] \SVN[%VF `%V0] \SV0[] | \SV0[] ]
\II+;,%VN[\SV0[%VN] \DV0[%II] \LVN[%IM] ] \\ parse "First Last;password"
Searching \SVI[40] \BL[SearchUserBase]{\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
\IVI+111[\GB[UserNotFound]]
\IVP+[No password for you in database!{ \SVN[] \EB ]
\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]] \UM[Logged in Host User %VI: %VN]
\IV0+[Enter your password: `\RV0*[15]]
\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
\IV0-%VP[\bl[secondtry]\IV0-%VP[\SVN[]]] \\ wrong password
|Secondtry
Wrong password, try again.{{Enter your password: `\RV0*[15]
|SearchUserBase \\ Search for %VN; set %VP=pwd, %VL=level.
\RE[\+VI[1] \IVI+111[\EB] .\TVA[%VI] \II+;,%VA[\EM]] \\ loop until `;' in %VA
\SVP[%VA] \LVA[%IM] \\ trim off name portion into %VA
\IVA-%VN[\GB[SearchUserBase] |else \SVN[%VA]]
\DVP[%II] \II-;,%VP[\EB] \\ if no ';' in remainder, we're done.
\SVL[%VP] \LVP[%IM] \\ trim off only password portion into %VP
\DVL[%II] \II-;,%VL[\EB]
\SVE[%VL] \LVL[%IM] \\ trim off user level portion into %VL
\DVE[%II] \II-"|.%VE[\EB] \\ %VE contains rest of user base entry
\LVL[%IM]
|UserNotFound
Did you enter your name correctly as '%VN' (y/N) ? `\RV8[1]
\IV8-Y[\SVN[] \EB]
\SV8[41] \SVI[none]
\RE[\TV9[%V8] \II-;,%V9[\SVI[%V8] \EM] \+V8[1] ] \\ search user base for blank #
\IVI+none[Sorry, user base is full! {\EB]
%VF, you will be registered as user #%VI.{
Please choose a password for this system :> `
\RVP*[15]
\IVP+[Blank passwords are not allowed.{{\GB[UserNotFound]]
Type your password again to confirm: `
\RV9*[15]
\IE-%VP,%V9[Your passwords didn't match!{\GB[UserNotFound]]
\UM[** New Host User %VI ** %VN, level %VL]
\SVE[ first called on %MO/%DA/%YR at %HR:%MI]
\af%V4Userdata.fil[` `++++++++++++++++++++++++++++++++++++++++++++]
\af%V4Userdata.fil[User # %VI, %VN, %Vp, %VE]
\af%V4Userdata.fil[%VN]
\TM%VI[%VN;%VP;%VL;%VE] \\ add entry to user base
|StartTime
\SVS[]\SVT[]\SVK[] \\ Clears timer variables
\SVS[%hr] \SVT[%MI] \\ sets hour and minute counters
\IVL+0[\SVK[30]] \\ sets user level time limits
\IVL+1[\SVK[50]] \\ .
\IVL+2[\SVK[75]] \\ .
\IVL+3[\SVK[90]] \\ .
\IVL+4[\SVK[120]] \\ .
\+VK[%MI]\SVK[%VK] \\ .
|Timer
\SVT[%MI] \ie-%VS,%HR[\+vt[60]]
\SV0[%VK] \+V0[-%VT] \ii+-,%v0[Sorry, your time limit has expired!{\sv0[x]]
|MENU
\ST[ » Press <Tab> for Sysop Menu. «] \KO[0]
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
\IVL+0[\svc[LRFZCONXG]] \\ sets the available commands for each user level
\IVL+1[\svc[LERFDUZCONXG]]
\IVL+2[\svc[LERKFDUZCOJNXGS]]
\IVX+ON[Boyan-Host Expert Menu <%VC> { \GB[MenuDispatch] ]
{`````````============================{
`````````` Boyan-Host Command Menu{
``````````----------------------------{
\II+L,%VC[ <L> List message titles{]
\II+E,%VC[ <E> Enter a new message{]
\II+R,%VC[ <R> Read a message{]
\II+K,%VC[ <K> Kill a message{]
\II+C,%VC[ <C> Comment to operator{]
``````````----------------------------{
\II+F,%VC[ <F> File listing{]
\II+D,%VC[ <D> Download files{]
\II+U,%VC[ <U> Upload files{]
\II+Z,%VC[ <Z> ZIP file contents{]
\II+J,%VC[ <J> Jump to DOS{]
``````````----------------------------{
\II+O,%VC[ <O> Operator page{]
\II+N,%VC[ <N> New password{]
\II+X,%VC[ <X> Expert mode toggle{]
\II+G,%VC[ <G> Goodbye{]
\II+S,%VC[ <S> Shut down host!{]
``````````============================{
\GB[MenuDispatch]
|MenuDispatch
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
\bl[timer]" Time remaining this call %V0 min.{
Your selection: `\RV0[1]
\II-%V0,%VC[Sorry, <%V0> is not a valid option.{\GB[Menu]]
\IV0+L[\GB[ListMsgs]]
\IV0+E[\GB[EnterMsg]]
\IV0+C[\GB[EnterComment]]
\IV0+R[\GB[ReadMsg]]
\IV0+K[\GB[KillMsg]]
\IV0+F[\GB[ListFiles]]
\IV0+D[\GB[Download]]
\IV0+U[\GB[Upload]]
\IV0+Z[\GB[ZipView]]
\IV0+O[\GB[OperatorPage]]
\IV0+J[\GB[Shell]]
\IV0+N[\GB[NewPassword]
\IV0+X[\GB[ToggleExpert]
\IV0+G[\GB[LogOff]]
\IV0+S[\GB[Shutdown]]
\GB[Menu]
|ListMsgs
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
Available messages:{
\DC[dir %V4*.msg /W > %B:#hosttmp.fil] \\ use DOS to list messages to file
\svz[%B:#hosttmp.fil] \bl[list] \\ List file contents to screen
\GB[Menu]
|EnterMsg
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
Type a name for your message (1-8 letters): ________^H^H^H^H^H^H^H^H
\RV0[8] \\ read in message name of up to 8 chars
\SV0[%V4%V0.msg] \\ make %V0 = full path\filename.msg
\FE+%V0[That message already exists.{ \GB[Menu]]
\GB[MsgHeader]
|EnterComment
Leaving a private comment for the System Operator...{
\SV0[%V4#comment.tmp]
\FE+%V0[\DC[DEL %V0]] \\ delete #comment.tmp if it already exists
\GB[MsgHeader]
|MsgHeader
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
\SV9[=========== From: %VN ==== %MO/%DA at %HR:%MI ===========]
\AF%V0[%V9]
\FE-%V0[Unable to create message file %V0.{ \GB[Menu]]
\AF%V0[]
Enter your message. Hit <Return> on empty line when message is complete.{{
%V9{{
\TO[100] \\ set 100-second timeout for each line
\SV9[1] \\ line number counter, starts at 1
\GB[GetMsgLines]
|GetMsgLines
\RE[%V9>" \RV8+[70] \IV8+[\EM] \AF%V0[%V8] \+V9[1]]
\GB[EnterOptions]
|EnterOptions
{Message options: [A]bort, [C]ontinue, [L]ist, or [S]ave ? `
\RV8[1]
\IV8+A[\DC[del %V0] Message aborted.{ \GB[Menu] ]
\IV8+S[\IV0+%V4#comment.tmp[\GB[SaveComment]]]
\IV8+S[Message saved.{ \UM[| Posted %V0] \GB[Menu] ]
\IV8+C[\GB[GetMsgLines]]
\IV8+L[{ \SVZ[%V0] \bl[list] ]
\GB[EnterOptions]
|SaveComment
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
Comment saved.{
\UM[| Left comment to operator]
\AF%V0[]
\SV1[%V4`COMMENTS.HOS]
\FE-%V1[\DC[ren %V0 COMMENTS.HOS] | \DC[type %V0 >> %V1] \DC[del %V0] ]
\GB[Menu]
|ReadMsg
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
Name of message to read: `\RV0[8]
\SV0[%V4`%V0.msg] \\ expand name to path\filename.msg
\FE-%V0[That message does not exist.{ \GB[Menu]]
\svz[%V0] \bl[list] \\ List file contents to screen
\GB[Menu]
|KillMsg
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
Name of message to kill: `\RV0[8]
\SV0[%V4%V0.msg] \\ expand name to path\filename.msg
\FE-%V0[That message does not exist.{ \GB[Menu]]
\DC[DEL %V0]
Message file %V0 deleted.{
\GB[Menu]
|ToggleExpert
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
\IVX+ON[\SVX[OFF] |ELSE \SVX[ON]]
\GB[Menu]
|List
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
\gv[]\ST[ » Press <Tab> for Sysop Menu. «]\sv1[0] \sv8[]
\re[\IV8+S[\em] \gv0[%VZ] \ii+^z,%v0[\em] %v0{ \+v1[1] \IV1+23[ \bl[prompts]]
{Hit ENTER to continue \RV[1]
\GV[]
|prompts
\iv3+modem[\ca-[\gb[cycle]]]
\IV8+X[\eb]
" " <More> <Quit> <Non-Stop> ` \rv1[1]
\IV1+M[\SV1[0]]
\IV1+Q[\SV1[0]\sv8[S]]
\IV1+N[\SV1[0]\sv8[x]]
\IV1+[\SV1[0]]
|ListFiles \\ list files in host directory
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
Files available for downloading:{
\DC[dir %V5*.* > %B:#hosttmp.fil] \\ use DOS to create list in temp. file
\svz[%B:#hosttmp.fil] \bl[list] \\ List file contents to screen
\GB[Menu]
|Download
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
\BL[SetProtocol] \\ selected protocol stored in %V9
\IV9+Q[\GB[Menu]] \\ back to files menu if no protocol
Enter name of file to download: `
\RV0[38]{ \\ read filename into %V0
\II+"\,%V0[\IVL-2[\GB[Menu]]] \\ need user level = 2 if "\" in filename
\II-"\,%V0[\SV0[%V5%V0]] \\ Otherwise, add host file path to name.
\II-*,%V0[\II-?,%V0[\FE-%V0[File not found.{ \GB[Menu] ]]]
Sending: %V0{
Protocol: <%V9>{
Start the download on your end now.{
\IV9+A[Press <Return> when ready: \WL{] \\ expect <CR> if ASCII download
\UL%V9-[%V0] \\ send file %V0 using protocol %V9
\IV9+A[^K] \\ send <Ctrl-K> to close ASCII download
{ Download `\IT+[successful. |ELSE unsuccessful.] {
\GB[Menu]
|Upload
\BL[SetProtocol] \\ selected protocol stored in %V9
\IV9+Q[\GB[Menu]] \\ back to files menu if no protocol
Enter name of file to upload: `
\RV0[38]{
\IV0+[\GB[Menu]] \\ back to menu if no filename entered
\II+"\,%V0[\IVL-2[\GB[Menu]]] \\ if "\" in filename, require level 2
\II-"\,%V0[\SV0[%V5%V0]] \\ Otherwise, add host file path to name.
\II-.,%V0[\SV0[%V0.]] \\ Add "." to filename if not there
\FE+%V0[File already exists.{ \GB[Menu]] \\ go back if file already here
Receiving: %V0{
Protocol: [%V9]{
Start the upload on your end now.{
\PA[3] \\ wait 3 secs before expecting file
\DL%V9-[%V0] \\ receive file %V0 using protocol %V9
{ Upload `\IT+[successful. |ELSE unsuccessful.] {
\GB[Menu]
|SetProtocol \\ returns the protocol letter selected, in %V9
\SV8[AXC1YG] \\ set %V8=all possible protocol letters
\IP+K[\SV8[%V8`K]] \\ add 'K' to list if Kermit available
\IP+L[\SV8[%V8`L]] \\ add 'L' to list if Megalink available
\IP+P[\SV8[%V8`P]] \\ add 'P' to list if MPt available
\IP+S[\SV8[%V8`S]] \\ add 'S' to list if Sealink available
\IP+Z[\SV8[%V8`Z]] \\ add 'Z' to list if Zmodem available
``````````=================={
`````````` Protocol Choices{
``````````------------------{
\II+A,%V8[ <A> ASCII{]
\II+C,%V8[ <C> CRC-Xmodem{]
\II+G,%V8[ <G> G-Ymodem{]
\II+K,%V8[ <K> Kermit{]
\II+L,%V8[ <L> Megalink{]
\II+P,%V8[ <P> MPt{]
\II+S,%V8[ <S> Sealink{]
\II+X,%V8[ <X> Xmodem{]
\II+Y,%V8[ <Y> Ymodem{]
\II+Z,%V8[ <Z> Zmodem{]
\II+1,%V8[ <1> 1K-Xmodem{]
`````````` <Q> QUIT{
``````````=================={
Your selection: `\RV9[1]
\IV9+Q[\EB]
\II+%V9,%V8[\EB] \\ if selection is ok, then end block.
Sorry, protocol <%V9> is not available.{
\GB[SetProtocol]
|ZipView
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
Available .ZIP files:{
\DC[dir %V5*.zip /w > %B:#hosttmp.fil]
\svz[%B:#hosttmp.fil] \bl[list] \\ List file contents to screen
Enter name of ZIP file to view: `
\RV9[8] \SV9[%V5%V9]
\FE-%V9.ZIP[File '%V9.ZIP' doesn't exist.{ \GB[Menu]]
\DC[pkunzip -v %V9 > %B:#hosttmp.fil]
\svz[%B:#hosttmp.fil] \bl[list] \\ List file contents to screen
\GB[Menu]
|OperatorPage
\iv3+modem[\ca-[\gb[cycle]]]\SV1[]
\II+%HR,01,02,03,04,05,06,07,08[Operator not available at this hour!{\GB[Menu]]
Paging operator for 20 seconds ...{
\SV8[%VF] \LV8[10] \\ set %V8 = first 10 letters of caller's first name
\DM1[ ╔═══════════════════════════════════════╗ ]
\DM2[ ║ Host Mode OPERATOR BEING PAGED ║ ]
\DM3[ ╠═══════════════════════════════════════╣ ]
\DM4[ ║ <G> = Gossip with %V8``````` ║ ]
\DM5[ ║ <Tab> = SYSOP Menu ║ ]
\DM6[ ║ <Esc> = ABORT Host Mode ║ ]
\DM7[ ║ Any other key if 'not available now'.║ ]
\DM8[ ╚═══════════════════════════════════════╝ ]
\AV[7] \AL2[20] \AV[0] {{
\RE[\IK+[\EM]] \\ Wait for any (local) keypress. If key='G', go to
\IE+%IK,G[\GB[Gossip]] \\ Gossip block. (Tab&Esc are handled as interrupts.)
Sorry, the operator isn't available now.{
\GB[Menu]
|Gossip
\gb[chat]
|Chat
\UM[| Chated with sysop ]
\ZS{Chat between @VF and Sysop {{Hello? {{
\TO[100] \\ set 100-second timeout for each line
\gb[ChatLines] \\ get message, line-by-line
|ChatLines
\iv3+modem[\ca-[\gb[cycle]]]
\ST[ » Press < "/ > to End Chat «] \KO[0]
\re[\IV8+"/[\em] \RV8+[74] \IV8+"/[\em] ] \\ read line of text into %V8
\GB[Menu] \\ ... and loop back for more.
|Shell
\UM[| Host user Jumped to DOS.]
{{
\IV3+LOCAL[\JD \GB[Menu]] \\ if Local Host test, just Jump to DOS.
\FE+%B:DOORWAY.EXE[\GB[Doorway]] \\ Branch if doorway.exe found.
Type "EXIT" to return to BOYAN-Host.{
\SV0[%B:#hosttmp.bat] \\ Create a new batch file #HOSTTMP.BAT
\FE+%V0[\DC[del %V0]] \\ which has three lines:
\AF%V0[CTTY COM%MD] \\ CTTY COM1 (or COM2,COM3,COM4)
\AF%V0[COMMAND] \\ COMMAND
\AF%V0[CTTY CON] \\ CTTY CON
\DC[%B:#hosttmp] \\ Then execute the batch file.
\GB[Menu]
|Doorway
Switch into the DOORWAY module of your communications program now, %VF.{
\DC[%B:DOORWAY COM%MD /V:D /L: /M:60 /S:* /C:dos] \\ invoke DOORWAY 60mins
\GB[Menu]
|Shutdown
Are you sure you want to Shut Down the host (y/N) ? `
\RV0[1]{
\IV0-Y[\GB[Menu]]
BOYAN Host shut down.{
\IV3+MODEM[\PA[2]\HU] \\ Pause & hang up.
\PA[2] \\ 2-second pause...
\AB \\ Abort script (goes to *WRAPUP block)
|NewPassword
Please type your current password (asterisks will echo): `
\RV8*[15]
\IV8-%VP[Wrong password!{ \GB[Menu]]
Type the new password you would like: `
\RV8*[15]
\IV8+[Blank passwords are not allowed.{ \GB[Menu]]
Type this password again to confirm: `
\RV9*[15]
\IE-%V8,%V9[Your passwords didn't match!{ \GB[Menu]]
\UM[| Caller changed password]
Your password has been changed.{
\SVP[%V8]
\TM%VI[%VN;%VP;%VL;%VE] \\ store change in host user base
\GB[Menu]
|WrongPassword
Sorry, too many attempts.{
\UM[| Incorrect password '%V0'; user denied entrance.]
\GB[LogOff]
|LogOff
{Thank you for using BOYAN host!{{
\IV3+MODEM[\PA[5]\HU~~~]
\GB[Cycle]
|Cycle \\ This block runs between all calls.
\IV3+MODEM[\HU \PL] \\ hang up & purge line if MODEM connection
\DM1,[Host cycled %VN at %HR:%MI.]
\UM[| Disconnected after %SL] \\ add host.use message
\PA[3] \SVN[] \SN[] \\ Erase the username from %VN
\GB[WaitForCall]
|*TAB \\ This runs automatically when <Tab> pressed
\IVO+waiting[\sv9[FHJVWPRST]] \\ available menu options if no caller logged in
\IVO+in-use[\sv9[CFGHJLVWPRST]]\\ available menu options if caller IS logged in
\IE-%AN,HOST[\AM[H]\EC+\LF+] \\ make sure we're using Host module
\IV3+MODEM[\PL]
\SV8[%VF] \LV8[10] \\ set %V8 to caller's first name (10 letters)
\KS \SV0[3]
``````````\DM12,%V0[ ╔═══════════════════════════════════════╗ ] \+V0[1]
``````````\DM12,%V0[ ║ SYSOP MENU %HR:%MI Boyan Host Mode ║ ] \+V0[1]
``````````\DM12,%V0[ ╠═══════════════════════════════════════╣ ] \+V0[1]
\II+C,%V9[\DM12,%V0[ ║ <C> = Cycle Host (Hang Up) ║ ] \+V0[1] ]
\II+F,%V9[\DM12,%V0[ ║ <F> = DOS File Manager ║ ] \+V0[1] ]
\II+G,%V9[\DM12,%V0[ ║ <G> = Gossip with %V8``````` ║ ] \+V0[1] ]
\II+H,%V9[\DM12,%V0[ ║ <H> = Host configuration section ║ ] \+V0[1] ]
\II+J,%V9[\DM12,%V0[ ║ <J> = Jump to DOS ║ ] \+V0[1] ]
\II+L,%V9[\DM12,%V0[ ║ <L> = Change caller's user Level ║ ] \+V0[1] ]
\II+P,%V9[\DM12,%V0[ ║ <P> = Change modem Parameters ║ ] \+V0[1] ]
\II+S,%V9[\DM12,%V0[ ║ <S> = Scroll-back buffer ║ ] \+V0[1] ]
\II+T,%V9[\DM12,%V0[ ║ <T> = Toggle 43/50-line mode (EGA/VGA)║ ] \+V0[1] ]
\II+V,%V9[\DM12,%V0[ ║ <V> = View HOST.USE usage log ║ ] \+V0[1] ]
\II+W,%V9[\DM12,%V0[ ║ <W> = View COMMENTS.HOS comment file ║ ] \+V0[1] ]
``````````\DM12,%V0[ ╟───────────────────────────────────────╢ ] \+V0[1]
\II+R,%V9[\DM12,%V0[ ║ <R> = RESUME Host Mode ║ ] \+V0[1] ]
``````````\DM12,%V0[ ║<Esc>= ABORT Host Mode ║ ] \+V0[1]
``````````\DM12,%V0[ ╚═══════════════════════════════════════╝ ]
\KO[30] \BB+ \KV0_[SYSOP OPTION: ] \BB- \RS
\II-%V0,%V9[\GB[*TAB]]
\IV0+R[\ST[Continuing script...] \IVO+in-use[\GB[Menu] | \GB[WaitForCall]] ]
\IV0+C[\GB[LogOff]]
\IV0+G[\GB[Gossip]]
\IV0+L[\GB[ChangeUserLevel]]
\IV0+F[\FM[%V4]]
\IV0+H[\CB[A] \IE-%AN,HOST[\AM[H]] ]
\IV0+J[\JD]
\IV0+P[\CM]
\IV0+W[\DC+[%LC %V4`COMMENTS.HOS]]
\IV0+S[\RB]
\IV0+T[\GL*]
\IV0+V[\DC+[%LC %UN]]
\GB[*TAB]
|ChangeUserLevel
\KS
\DM1[ ╔═══════════════════════════════════════╗ ]
\DM2[ ║ Setting Caller's User Level ║ ]
\DM3[ ╠═══════════════════════════════════════╣ ]
\DM4[ ║ <0> - New user (limited access) ║ ]
\DM5[ ║ <1> - Regular (messages & files) ║ ]
\DM6[ ║ <2> - SYSOP (Jump to DOS, etc.) ║ ]
\DM7[ ║ ( Press <Esc> to quit Host Mode. ) ║ ]
\DM8[ ╚═══════════════════════════════════════╝ ]
\KVL%VL[New level for %VF: ] \RS
{%VF, your user level is now %VL.{
\TM%VI[%VN;%VP;%VL;%VE] \\ store change in host user base
\GB[Menu]
|*WRAPUP
\IE-%AN,HOST[\EB]
\DM1[ ╔═══════════════════════════════════════╗ ]
\DM2[ ║ Host Mode Finished. ║ ]
\DM3[ ╠═══════════════════════════════════════╣ ]
\DM4[ ║ ║ ]
\DM5[ ║ Press <Alt-I> to re-invoke host. ║ ]
\DM6[ ╚═══════════════════════════════════════╝ ]
\UF- \IVU-[\UF+[%VU]] \\ close HOST.USE log; reopen prev. log.
\BB+ \AV[7] \\ sound effects back on
\AM[%VR] \\ change back to previous action module
\SV1[\AL3[0"] \RC \SK- \UM[| Disconnected after "%SL"]]