home *** CD-ROM | disk | FTP | other *** search
- MOSTHOST.MAC (Regular version)
- by Shad Muegge and Fred Brucker
-
- {:setup} * Set up MOSTHOST options
- -------------------------------------------------------------------------------
- -Configuration Items--------------Description----------------------------------
- -------------------------------------------------------------------------------
- {LIGH Y} Modem signal lights
- {SETV dospassword,PASSWORD} Password to access the DOS menu
- {SETV filedir,%_hom%MHFILE\} Directory for file transfer files
- {SETV datadir,%_hom%MHDATA\} Directory for user data file
- {SETV hotkeys,n} Hot keys (y/n)
- {SETV inact_time,120} Inactivity timer, seconds
- {SETV ring_string,RING} String sent from modem to indicate a ring
- {SETV connect_string,CONNECT} Result string for a successful connection
- -------------------------------------------------------------------------------
-
- {SETV pr_alarm,0} * Turn off protocol alarms
- {SETG %inact_time,time_out} * Set up GETString timer
- {RTRA y,9,0} * Filter tabs from input
- {CLEA}
- {PARM ,,,A}
- {SPOC y}
- {LOCA y}
- {SETE WF3}
- {RETURN}
-
- --------------------------------------------* General functions ---------------
- {:cls} * Clear the screen
- {SEND ^L}
- {RETURN}
-
- {:press_any_key} * Pause until a key is pressed
- {SEND ^J^MPress Any Key:}
- {GETS-H temp,1,PK}
- {:PK} {setv temp}
- {SEND ^J^M}
- {RETURN}
-
- {:dsp_file} * Display a file
- {IFEX %dump_file,,DF5} * IN: %dump_file
- {SETV count,0}
- {ROPE %dump_file,DF3}
- {:DF1} {READ dline}
- {SEND ^M%dline^J^M}
- {INCR count}
- {COMP count,23} {IFCO DF4}
- {GOTO DF1}
- {:DF2} {RCLOSE}
- {:DF3} {SETV dline}
- {SETV ch}
- {SETV count}
- {RETURN}
- {:DF4} {SETV count,0}
- {SEND ^MMore [Y],N,C: }
- {CALL get_key}
- {IFCO DF1}
- {COMP ch,n} {IFCO DF2}
- {COMP ch,y} {IFCO DF1}
- {COMP ch,c} {IFCO ,DF4}
- {SETV count,26}
- {GOTO DF1}
- {:DF5} {SEND ^J^M^GError: File not found: %dump_file}
- {CALL press_any_key}
- {RETURN}
-
- {:menu} * Get menu selection
- {SEND %prompt [%_tim]: } * OUT: %ch
- {CALL get_key} * %ch = ~, if user hit CR at prompt
- {IFCO MN1}
- {SEND ^J^M}
- {COMP ch,*} {IFCO time_out}
- {GOTO MN2}
- {:MN1} {SETV ch,~}
- {SEND ^J^M}
- {:MN2} {RETURN}
-
- {:get_key}
- {COMP hotkeys,y} {IFCO GK1}
- {GETS ch,1}
- {GOTO GK2}
- {:GK1} {GETS-H ch,1}
- {:GK2} {COMP ch}
- {RETURN}
-
- {:get_protocol} * Get protcol selection
- {PAUS-T 2}
- {CALL cls} * OUT: %protocol
- {SEND ┌───────────────────────────────────────────────────┐^J^M}
- {SEND │ Protocols │^J^M}
- {SEND └───────────────────────────────────────────────────┘^J^M}
- {SEND [Y] Ymodem^J^M}
- {SEND [G] Ymodem-G^J^M}
- {SEND [X] Xmodem^J^M}
- {SEND [Z] Zmodem^J^M}
- {SEND [H] HS/Link^J^M^J^M}
- {SETV prompt,Protocol:}
- {CALL menu}
- {COMP ch,~} {IFCO PG2}
- {COMP ch,z} {IFCO PG1}
- {COMP ch,y} {IFCO PG1}
- {COMP ch,g} {IFCO PG1}
- {COMP ch,x} {IFCO PG1}
- {COMP ch,h} {IFCO ,PG2}
- {:PG1} {SETV protocol,%ch}
- {:PG2} {RETURN}
-
- {:send_hslink} * HSLINK download subroutine
- {SEND ^J^MStart your HS/Link download now.^J^M}
- {CALL h_send}
- {COMP %_err,0}
- {RETURN}
-
- {:send_zmodem} * ZMODEM download subroutine
- {SEND ^J^MStart your Zmodem download now.^J^M}
- {CALL z_send}
- {COMP %_err,0}
- {RETURN}
-
- {:send_ymodem} * YMODEM download subroutine
- {SEND ^J^MStart your Ymodem download now.^J^M}
- {CALL yb_send}
- {COMP %_err,0}
- {RETURN}
-
- {:send_xmodem} * XMODEM-1K download subroutine
- {SEND ^J^MStart your Xmodem download now.^J^M}
- {IFEX %pr_file,,SX1}
- {CALL xk_send}
- {COMP %_err,0}
- {:SX1} {RETURN}
-
- {:recv_hslink} * HSLINK upload subroutine
- {SEND ^J^MStart your HS/Link upload now.^J^M}
- {CALL h_recv}
- {COMP %_err,0}
- {RETURN}
-
- {:recv_zmodem} * ZMODEM upload subroutine
- {SEND ^J^MStart your Zmodem upload now.^J^M}
- {CALL z_recv}
- {COMP %_err,0}
- {RETURN}
-
- {:recv_ymodem} * YMODEM upload subroutine
- {SEND ^J^MStart your Ymodem upload now.^J^M}
- {CALL yb_recv}
- {COMP %_err,0}
- {RETURN}
-
- {:recv_yg} * YMODEM-G upload subroutine
- {SEND ^J^MStart your Ymodem-G upload now.^J^M}
- {CALL yg_recv}
- {COMP %_err,0}
- {RETURN}
-
- {:recv_xmodem} * XMODEM-1K upload subroutine
- {SEND ^J^MStart your Xmodem upload now.^J^M}
- {CALL xc_recv}
- {COMP %_err,0}
- {RETURN}
-
- {:transfer_file} * Transfer a file upload & download
- {PUSH DL2}
- {COMP proto,sz} {IFCO send_zmodem} * IN: %proto
- {COMP proto,sy} {IFCO send_ymodem} * s + %protocol for downloads
- {COMP proto,sg} {IFCO send_ymodem} * r + %protocol for uploads
- {COMP proto,sx} {IFCO send_xmodem}
- {COMP proto,sh} {IFCO send_hslink}
- {COMP proto,rz} {IFCO recv_zmodem}
- {COMP proto,ry} {IFCO recv_ymodem}
- {COMP proto,rg} {IFCO recv_yg}
- {COMP proto,rx} {IFCO recv_xmodem}
- {COMP proto,rh} {IFCO recv_hslink}
- {SEND ^J^MInvalid protocol ^J^M}
- {CALL press_any_key}
- {COMP proto,sz} * Set a bad condition for return
- {:DL1} {SETV proto}
- {POPS}
- {RETURN}
- {:DL2} {PAUS 2}
- {RETURN}
-
- {:get_name}
- {SEND ^J^J^MEnter your name: } * Get a name from user
- {GETS lname} * OUT: %lname
- {COMP lname} * OUT: cond. flag set if null
- {RETURN}
-
- {:get_password} * Get a password
- {GETS-P pass}
- {RETURN}
-
- {:time_out} * Time out user
- {POPS-C} * Clear the stack
- {GOTO GBY}
-
- {:write_user} * Update user record in user file
- {ROPE %datadir%USER.MHS,WU3}
- {WOPE %datadir%$$$TEMP.MHS}
- {:WU1} {CALL read_rec}
- {COMP login_name,%u_temp1}
- {IFCO WU2}
- {CALL write_rec}
- {GOTO WU1}
- {:WU2} {CALL user_temp}
- {CALL write_rec}
- {GOTO WU1}
- {:WU3} {POPS} ** pop read_rec return addr
- {WCLO}
- {EXEC-N del %datadir%USER.MHS}
- {EXEC-N ren %datadir%$$$TEMP.MHS USER.MHS}
- {SETV u_temp1}
- {SETV u_temp2}
- {SETV u_temp3}
- {RETURN}
-
- {:write_rec} * Write a user record
- {WRIT %u_temp1} * IN: name
- {WRIT %u_temp2} * IN: password
- {WRIT %u_temp3} * IN: protocol
- {RETURN}
-
- {:read_user} * Read a user record
- {IFEX %datadir%USER.MHS,,RU3} * IN: %login_name
- {ROPE %datadir%USER.MHS,RU2}
- {:RU1} {CALL read_rec}
- {COMP lname,%u_temp1}
- {IFCO ,RU1}
- {CALL temp_user}
- {RCLO}
- {GOTO RU4}
- {:RU2} {POPS}
- {:RU3} {SETV password} * Indicate not found
- {:RU4} {SETV u_temp1}
- {SETV u_temp2}
- {SETV u_temp3}
- {RETURN}
-
- {:read_rec} * Read a user record
- {READ u_temp1} * OUT: name
- {READ u_temp2} * OUT: password
- {READ u_temp3} * OUT: protocol
- {RETURN}
-
- {:user_temp} * User data to temp
- {SETV u_temp1,%login_name}
- {SETV u_temp2,%password}
- {SETV u_temp3,%protocol}
- {RETURN}
-
- {:temp_user} * Temp to user data
- {SETV login_name,%u_temp1}
- {SETV password,%u_temp2}
- {SETV protocol,%u_temp3}
- {RETURN}
-
- --------------------------------------------* Login functions -----------------
-
- {:new_user} * Get new user information
- {SETV login_name,%lname}
- {SETV tries,0}
- {:NU1} {INCR tries}
- {COMP tries,3} {IFCO-G NU4}
- {SEND ^J^MEnter a password: }
- {CALL get_password}
- {COMP pass} {IFCO NU1}
- {SETV password,%pass}
- {SEND ^J^MRe-enter for verification: }
- {SETV tries,0}
- {:NU2} {INCR tries}
- {COMP tries,3} {IFCO-G NU4}
- {CALL get_password}
- {COMP password,%pass} {IFCO ,NU1}
-
- {:NU3} {SETV new_start,1}
- {CALL get_protocol}
- {SEND ^J^MSaving user information.}
- {WOPE-A %datadir%USER.MHS}
- {CALL user_temp}
- {CALL write_rec}
- {WCLO}
- {SETV SUCCESS,true}
- {:NU4} {SETV tries}
- {SETV lname}
- {SETV pass}
- {RETURN}
-
- {:login_user} * Login user
- {SETV SUCCESS} * OUT: %SUCCESS
- {SETV tries,0} * OUT: %login_name
- {:LU0} {INCR tries} * OUT: %password
- {COMP tries,3} {IFCO-G LU5} * OUT: %new_start
- {CALL get_name} * OUT: %protocol
- {IFCO LU0}
- {CALL read_user}
- {COMP password} ** null password means not found
- {IFCO ,LU3}
- {SEND ^J^J^MName not found in user list.^J^M}
- {SEND Is "%lname" correct? (Y/N)}
- {:LU1} {CALL get_key}
- {IFCO LU1}
- {COMP ch,y} {IFCO ,LU0}
- {SEND ^J^J^MLogin as a new user? (Y/N)}
- {:LU2} {CALL get_key}
- {IFCO LU2}
- {COMP ch,n} {IFCO GBY,new_user}
-
- {:LU3} {SETV tries,0}
- {:LU4} {INCR tries}
- {COMP tries,3} {IFCO-G LU5}
- {SEND ^J^Mpassword: }
- {CALL get_password}
- {COMP password,%pass}
- {IFCO ,LU4}
- {SETV SUCCESS,true}
-
- {:LU5} {SETV tries}
- {SETV lname}
- {SETV pass}
- {RETURN}
-
- --------------------------------------------* Dos functions--------------------
-
- {:change_dir} * Change Dir
- {SEND ^J^MCD }
- {GETS cd,70,CD1}
- {EXEC-N CD %cd}
- {:CD1} {SETV cd}
- {RETURN}
-
- {:do_dir} * Directory
- {CALL cls}
- {SEND ^J^MDIR }
- {GETS dir,70}
- {EXEC-N DIR /-p %dir > %datadir%DIR.TMP}
- {SETV dump_file,%datadir%DIR.TMP}
- {CALL dsp_file}
- {CALL press_any_key}
- {SETV dir}
- {RETURN}
-
- {:type_file} * Type a file
- {CALL cls}
- {SEND ^J^MTYPE }
- {GETS type,70,TF1}
- {SEND ^J^M}
- {SETV dump_file,%type}
- {CALL dsp_file}
- {CALL press_any_key}
- {:TF1} {SETV type}
- {RETURN}
-
- {:erase_file} * Erase a file
- {SEND ^J^M^J^M(CR to abort)}
- {SEND ^J^MERASE }
- {GETS erase,70,EF1}
- {COMP erase,*.*}
- {IFCO ,EF4}
- {SEND ^J^M*.* not allowed!}
- {CALL press_any_key}
- {GOTO EF1}
- {:EF4} {IFEX %erase,,EF2}
- {SEND ^J^MErase %erase (Y/N): }
- {:EF3} {CALL get_key}
- {IFCO EF3}
- {COMP ch,y} {IFCO ,erase_file}
- {EXEC-N ERASE %erase > nul}
- {GOTO EF1}
- {:EF2} {SEND ^J^MFile not found.}
- {GOTO erase_file}
- {:EF1} {SETV erase}
- {RETURN}
-
- {:copy_file} * Copy a file
- {SEND ^J^MCOPY }
- {GETS copy,70,CF1}
- {EXEC-N COPY %copy > nul}
- {:CF1} {SETV copy}
- {RETURN}
-
- {:rename_file} * Rename a file
- {SEND ^J^MREN }
- {GETS ren,70,RF1}
- {EXEC-N REN %ren > nul}
- {:RF1} {SETV ren}
- {RETURN}
-
- {:exit_to_dos} * Exit to dos with DOORWAY.EXE
- {COMP mspeed,local}
- {IFCO EX1}
- {EXEC-S DOORWAY PORT:%_pad:%_irq /M:600 /A:ON /V:D /O:T /S:* /C:DOS}
- {GOTO EX2}
- {:EX1} {SHELL-S}
- {:EX2} {RETURN}
-
- {:dos_download} * Download a file
- {SETV proto} * IN: %protocol
- {COMP protocol,}
- {IFCO ,DD1}
- {CALL get_protocol}
- {:DD1} {SEND ^J^MFile: }
- {GETS pr_file,70,DD2}
- {SETV proto,s%protocol}
- {SETV save_filedir,%filedir}
- {SETV filedir}
- {CALL transfer_file}
- {CALL cls}
- {SETV filedir,%save_filedir}
- {SETV save_filedir}
- {IFCO DD2}
- {SEND ^J^MUnsuccessful download}
- {CALL press_any_key}
- {:DD2} {SETV pr_file}
- {RETURN}
-
- {:dos_upload} * Upload a file
- {SETV proto} * IN: %protocol
- {COMP protocol,}
- {IFCO ,DU1}
- {CALL get_protocol}
- {:DU1} {COMP protocol,x}
- {IFCO ,DU2}
- {SEND ^J^MFile: }
- {GETS pr_file,70,DU3}
- {:DU2} {SETV proto,r%protocol}
- {SETV save_filedir,%filedir}
- {SETV filedir}
- {CALL transfer_file}
- {CALL cls}
- {SETV filedir,%save_filedir}
- {SETV save_filedir}
- {IFCO DU3}
- {SEND ^J^MUnsuccessful upload}
- {CALL press_any_key}
- {:DU3} {SETV pr_file}
- {RETURN}
-
- {:log_drive} * Log a drive
- {SEND ^J^MChange to which drive (A:, B:, C:, etc): }
- {GETS log,2,LD2}
- {:LD1} {SEND ^J^MChange to drive %log (Y/N)? }
- {CALL get_key}
- {IFCO LD1}
- {COMP ch,n} {IFCO LD2}
- {COMP ch,y} {IFCO ,LD1}
- {EXEC-N %log}
- {:LD2} {SETV log}
- {RETURN}
-
- {:dos_stuff} * Dos Menu
- {SEND ^J^MDos password: }
- {CALL get_password}
- {COMP pass,%dospassword}
- {IFCO ,DS3}
- {SETV pr_down} * Use current directories
- {SETV pr_up}
- {PUSH}
- {:DS1}
- {PAUS-T 2}
- {CALL cls}
- {SEND ┌───────────────────────────────────────────────────┐^J^M}
- {SEND │ DOS Commands │^J^M}
- {SEND └───────────────────────────────────────────────────┘^J^M}
- {SEND [A] Log New Drive^J^M}
- {SEND [C] Change Dir [U] Upload to current dir^J^M}
- {SEND [D] Directory [V] Download from current dir^J^M}
- {SEND [E] Erase File^J^M}
- {SEND [K] Copy File [Z] Run DOORWAY program (shell^J^M}
- {SEND [T] Type File to DOS in local mode)^J^M}
- {SEND [R] Rename File^J^M^J^M}
- {SETV prompt,DOS (CR to return)}
- {CALL menu}
-
- {COMP ch,~} {IFCO DS2}
- {COMP ch,a} {IFCO log_drive}
- {COMP ch,c} {IFCO change_dir}
- {COMP ch,d} {IFCO do_dir}
- {COMP ch,e} {IFCO erase_file}
- {COMP ch,k} {IFCO copy_file}
- {COMP ch,r} {IFCO rename_file}
- {COMP ch,t} {IFCO type_file}
- {COMP ch,u} {IFCO dos_upload}
- {COMP ch,v} {IFCO dos_download}
- {COMP ch,z} {IFCO exit_to_dos}
-
- {GOTO DS1}
- {:DS2} {POPS}
- {:DS3} {SETV pass}
- {SETV prompt}
- {RETURN}
-
- --------------------------------------------* Xfer functions-------------------
-
- {:dfiles} * Download a file
- {SETV proto} * IN/OUT: %protocol
- {COMP protocol,}
- {IFCO ,DX1}
- {CALL get_protocol}
- {:DX1} {SEND ^J^MFile: }
- {GETS pr_file,70,DX2}
- {SETV pr_file,%filedir%%pr_file}
- {SETV proto,s%protocol}
- {CALL transfer_file}
- {CALL cls}
- {IFCO DX2}
- {SEND ^J^MUnsuccessful download}
- {CALL press_any_key}
- {:DX2} {SETV pr_file}
- {RETURN}
-
- {:ufiles} * Upload a file
- {SETV proto} * IN/OUT: %protocol
- {SETV pr_file,%filedir}
- {COMP protocol,}
- {IFCO ,UF1}
- {CALL get_protocol}
- {:UF1} {COMP protocol,x}
- {IFCO ,UF2}
- {SEND ^J^MFile: }
- {GETS dfiles,70,UF3}
- {SETV pr_file,%pr_file%%dfiles}
- {IFEX %pr_file,,UF2}
- {SEND ^J^MFile already exists!^J^M}
- {CALL Press_Any_Key}
- {GOTO UF3}
- {:UF2} {SETV proto,r%protocol}
- {CALL transfer_file}
- {CALL cls}
- {IFCO UF3}
- {SEND ^J^MUnsuccessful upload}
- {CALL press_any_key}
- {:UF3} {SETV pr_file}
- {SETV dfiles}
- {RETURN}
-
- -------------------------------------------------------------------------------
-
- {:chat} * Chat w/word wrap
- {BEEP} {BEEP} {BEEP}
- {SETV chatc,3}
- {SEND ^J^M^J^M(Type 'bye' to exit chat mode)^J^M}
- {SEND ^J^M1> Hi %login_name, what's up?}
- {SEND ^J^M2>}
- {:CT1} {SETV chatl}
- {:CT2} {SEND ^J^M%chatc> %chatl}
- {INCR chatc}
- {GETS-AH chatl,70}
- {COMP chatl,bye} {IFCO CT5}
- {LENGTH %chatl}
- {COMP %_len,69} {IFCO-LE CT1}
- {SETV x,71}
- {:CT3} {DECR x}
- {COMP x,50} {IFCO-LE CT1}
- {SUBS ch,%x,1,%chatl}
- {COMP ch, } {IFCO ,CT3}
- {INCR x}
- {SUBS chatl,%x,255,%chatl}
- {:CT4} {COMP x,%_len} {IFCO-G CT2}
- {SEND ^H ^H}
- {INCR x}
- {GOTO CT4}
- {:CT5} {RETURN}
-
- -------------------------------------------------------------------------------
-
- {:time_online} * Elapsed time
- {SEND ^J^MTime online: %_elap^J^M}
- {CALL Press_Any_Key}
- {RETURN}
-
- --------------------------------------------* User info------------------------
-
- {:chg_name} * Get new login name
- {SEND ^J^M} * OUT: %lname
- {:CN1} {CALL get_name}
- {RETURN}
-
- {:chg_password} * Get new password
- {SEND ^J^M} * OUT: %pass
- {:CP1} {SEND ^J^MNew password: }
- {GETS pass,,CP1}
- {RETURN}
-
- {:chg_protocol} * Get new protocol
- {CALL cls} * OUT: %protocol
- {CALL get_protocol}
- {RETURN}
-
- {:save_user} * Save new information
- {SEND ^J^MSaving} * IN: %lname,%pass,%protocol
- {SETV login_name,%lname} * OUT: %login_name,%password
- {SETV password,%pass} * OUT: %uprot
- {SETV uprot,%protocol}
- {CALL write_user}
- {RETURN}
-
- {:fil_dir}
- {EXEC-N DIR %filedir%*.* > %datadir%DIR.TMP}
- {SETV dump_file,%datadir%DIR.TMP}
- {CALL cls}
- {CALL dsp_file}
- {CALL press_any_key}
- {RETURN}
-
- {:update_info} * User info menu
- {SETV lname,%login_name}
- {SETV pass,%password}
- {SETV uprot,%protocol}
- {PUSH}
- {:UI1} {CALL cls}
- {SEND ^J^M}
- {SEND ^J^M1. User name: %lname}
- {SEND ^J^M2. Password: %pass}
- {SEND ^J^M3. Protocol: %protocol}
- {SEND ^J^M}
- {SEND ^J^MCommand (CR to return) [%_tim]: }
- {CALL get_key}
- {IFCO UI2}
-
- {COMP ch,1} {IFCO chg_name}
- {COMP ch,2} {IFCO chg_password}
- {COMP ch,3} {IFCO chg_protocol}
- {GOTO UI1}
-
- {:UI2} {SEND ^J^MSave changes (Y/N)? }
- {CALL get_key}
- {IFCO UI3}
- {COMP ch,n} {IFCO UI3}
- {COMP ch,y} {IFCO ,UI2}
- {CALL save_user}
- {:UI3} {POPS}
- {SETV ch}
- {SETV lname}
- {SETV pass}
- {SETV protocol,%uprot}
- {RETURN}
-
- -------------------------------------------------------------------------------
-
- {:main_menu} * Main menu
- {SETV pr_down,%filedir} * Protocol download path
- {SETV pr_up,%filedir} * Protocol upload path
- {PUSH}
- {:MM1}
- {PAUS-T 2}
- {CALL cls}
- {SEND ┌───────────────────────────────────────────────────┐^J^M}
- {SEND │ Main Menu │^J^M}
- {SEND └───────────────────────────────────────────────────┘^J^M}
- {SEND [D] Download Files [T] Time online^J^M}
- {SEND [U] Upload Files [G] Goodbye^J^M}
- {SEND [F] File List [S] DOS Menu^J^M}
- {SEND [C] Chat [I] User Info^J^M}
- {SEND [P] Protocol (%protocol)^J^M^J^M}
- {SETV prompt,Main Menu}
- {CALL menu}
-
- {COMP ch,c} {IFCO chat}
- {COMP ch,f} {IFCO fil_dir}
- {COMP ch,s} {IFCO dos_stuff}
- {COMP ch,g} {IFCO MM3}
- {COMP ch,t} {IFCO time_online}
- {COMP ch,i} {IFCO update_info}
- {COMP ch,d} {IFCO dfiles}
- {COMP ch,p} {IFCO get_protocol}
- {COMP ch,u} {IFCO ufiles}
- {GOTO MM1}
-
- {:MM3} {SEND ^J^MAre you sure (Y/N)? }
- {CALL get_key}
- {IFCO MM1}
- {COMP ch,y} {IFCO ,MM1}
-
- {:MM2} {POPS}
- {RETURN}
-
- --------------------------------------------* Waiting for a call funcs--------
-
- {:user_edit}
- {SETV ed,%datadir%USER.MHS}
- {IFEX %ed,,UE1}
- {EDIT %ed}
- {:UE1} {GOTO wait_for_call}
-
- {:view_scroll}
- {SCROLL}
- {GOTO wait_for_call}
-
- {:shell_dos}
- {SHELL-S}
- {GOTO wait_for_call}
-
- {:wait_for_call}
- {SPOC n}
- {CLEAR}
- {DISP 1,29,4E, ^(COMMO^) HOST MODE }
-
- {DISP 4,29,0E,The Host with the Most}
- {DISP 8,29,0E, 1 - Login locally}
- {DISP 9,29,0E, 2 - Edit User File}
- {DISP 10,29,0E, 3 - View Scrollback}
- {DISP 11,29,0E, 4 - Shell to DOS}
- {DISP 12,29,0E, Q - Quit}
-
- {DISP 22,1,0E, Last user: %login_name (%mspeed)}
-
- {DISP 24,29,4e, Waiting for a Call }
- {DISP 20,1,, }
- {DISP 20,1,0E, Command: }
- {SETG 0,,l}
- {:WF1} {GETS mring,10,WF1}
- {SETG %inact_time,time_out}
- {DISP 24,29,07, }
- {COMP mring,1} {IFCO WF2}
- {COMP mring,2} {IFCO user_edit}
- {COMP mring,3} {IFCO view_scroll}
- {COMP mring,4} {IFCO shell_dos}
- {COMP mring,q} {IFCO WF3}
- {COMP mring,%ring_string} {IFCO ,Wait_for_call}
-
- {SPOC y}
- {DISP 24,29}
- {SEND ~ATA^M~}
-
- {SETL 45,wait_for_call}
- {DISP 20,1,7, Waiting for connect: }
- {LOOK %connect_string}
- {SETV mspeed,%_spe}
- {PAUS 1}
- {RETURN}
-
- {:WF2} {SETV mspeed,LOCAL}
- {LOCA y}
- {SPOC n}
- {RETURN}
-
- {:WF3} {CLEAR}
- {SETV-R _mh_mark} * Clean up variables
- {LOCA n}
- {RTRA-i n}
- {UNLOad} {}
-
- --------------------------------------------* Main BBS loop ------------------
-
- {:BBS}
- {SETV _mh_mark} * Set variable marker
- {SETV _mh_mark,mark}
- {:BB1} {CALL setup}
- {CALL Wait_For_Call}
- {CALL cls}
- {SEND ^J^M HOST MODE^J^M^J}
- {SEND Written in ^(COMMO^) macro language^J^M^J^J}
- {CALL login_user}
- {COMP success,TRUE}
- {IFCO ,GBY}
- {ELAP}
- {CALL main_menu}
- {:GBY}
- {SEND ^J^M^JThanks for calling...^J^M}
- {HANG y}
- {COMP success,TRUE}
- {IFCO ,GB1}
- {SEND Saving}
- {CALL write_user}
- {:GB1} {SETV success}
- {GOTO BB1}
-
- - end -
-