Home » Archimedes archive » Acorn User » AU 1995-04.adf » !Internet_StarterPak » !SLIPdial/Scripts/automagic
!SLIPdial/Scripts/automagic
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1995-04.adf » !Internet_StarterPak |
Filename: | !SLIPdial/Scripts/automagic |
Read OK: | ✔ |
File size: | 2805 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
#slipdial # Script to automatically dial Demon at 0100 every morning. ############################################################ # For this script to work correctly, two modem configuration # options are required, and a property of !TCPIP is assumed: # # * The modem must make DCD follow the actual state of # the carrier from the remote modem (i.e. it must NOT # hold DCD high while on-line. On my Hayes compatible # modem this is option &C1. # # * The modem must hang up if on-line when DTR goes low. # On my Hayes compatible modem this is option &D2. # # * I assume all future version of !TCPIP will toggle # DTR low when they exit. # # The script works as follows: when !TCPIP quits (either # manually or on a 'tcp hangup' timeout), it pulls DTR # low. The modem hangs up (&D2). Then, since there is no # longer a remote carrier present, DCD goes low (&C1). # The script has a DCD alarm, which calls the dcd_drop # function and eventually the hangup function. # # DCD can also go low (the carrier can also be dropped) # due to line noise or Demon hanging up. # # Since the hangup function can also get called on an # on-line timeout timer (see later), it kills !TCPIP. # # So - call termination (dropped carrier, !TCPIP exiting, # or on-line timeout) will always result in the modem being # placed back on-hook, and !TCPIP being killed. ############################################################ # Configure and build user menu. call configure call makemenus # Setup serial port driver USR port %wport %prtnum speed %speed set protocol slip # Define the phone number set phonenum 01132984848 # Setup an alarm for automatic dialing alarm /repeat /time=01:00 /id=everyday "call demon" # Do absolutely nothing until the alarm triggers # or a menu selection is made :loop message /close wait /event goto loop exit ############################################################ # The following 5 functions are called from the user menu # or by a timer. Each defines nntp and smtp. These are # values substituted into the !TCPIP startup script. Hence # the :domail function defines 'nntp' to be '#nntp' since # it wishes to comment out all the nntp configuration in # the AutoExec script. ############################################################ ############################################################ # Call Demon (this is automatically triggered # # It sets 'timed' to 'yes' for various timers to be set. # Call Demon, and jump to the 'loggedin' routine. ############################################################ :demon set timed yes set nntp nntp set smtp smtp call dialup goto loggedin ############################################################ # A mail download # # Call Demon, and jump to the 'loggedin' routine. ############################################################ :domail set timed yes set nntp #nntp set smtp smtp call dialup goto loggedin ############################################################ # A news download # # Call Demon, and jump to the 'loggedin' routine. ############################################################ :donews set timed no set nntp nntp set smtp #smtp call dialup goto loggedin ############################################################ # News and mail # # Call Demon, and jump to the 'loggedin' routine. ############################################################ :doboth set timed no set nntp nntp set smtp smtp call dialup goto loggedin ############################################################ # Interactive session # # Call Demon, and jump to the 'loggedin' routine. ############################################################ :interact set timed no set nntp #nntp set smtp #smtp call dialup goto loggedin ############################################################ # Dial Demon. # # Create an AutoExec file for !TCPIP, claim and initialise # the modem. Dial Demon. Login and set protocol. Capture # and display MOTD. Wait for Demon to setup their SLIP # service. ############################################################ :dialup # The call hasn't failed (yet!) set failed no # See below... set waittime 4 set starttime 0 set stoptime 0 # Create a !TCPIP AutoExec file make <TCPIP$Dir>.AutoTempl <TCPIP$Dir>.AutoExec # Claim and initialise the modem if (!claim 3) goto call_failed message /close init ATZ sleep 2 send ATQ0V1M0 if (!wait /del=5 OK) goto call_failed # Try to dial Demon retry 50 15 if (!dial /nodial=30 /nocar=10 /busy=5 %phonenum) call call_failed # Successful connect. Login if (!wait /del=20 ogin:) goto call_failed send %nodename # Send password. Also remember current time set starttime %$time if (!wait /del=20 word:) goto call_failed send %password # Send protocol. if (!wait /del=50 ocol:) goto call_failed send %protocol # Get current time. Work out difference between now and when we # had just sent our nodename. Halve it. Wait that long after the # MOTD. This is intended to give a rough idea of speed the Demon # machines are running at - i.e. the longer it takes to log on, # the longer we have to wait before the SLIP service is running. set stoptime %$time set waittime {eval "%stoptime-%starttime"} set waittime {eval "%waittime DIV 2"} if (?eq %waittime 0) set waittime 1 # Get MOTD, and IP address message /capture="IP" /end="HELLO" /maxlines=9 /centre ipget 158. if (!wait /del=30 HELLO) goto call_failed wait /delay=%waittime "a while" return 1 ############################################################ # Call setup failed. # # * Couldn't claim device # * Couldn't initialise modem # * Couldn't get an answer # * Timed out during login # * Timed out waiting for MOTD # # Mark the call as failed, inform the user and release # the device. ############################################################ :call_failed set failed yes message "Call setup failed" /centre release return 0 ############################################################ # Successfully logged in. # # (Not strictly true -- will arrive here from call_failed # too. Therefore check %failed and return). ############################################################ :loggedin if (?eq %failed yes) return 1 # Set an alarm if this call is timed. This is so that we don't # spend too long on-line unattended. :) if (?eq %timed yes) alarm /time=+00:00:20 /id=timeout "goto hangup" # Fire up !TCPIP task /name="TCP/IP" <TCPIP2$dir>.!Run # Watch for DCD to drop (i.e. the modem has hung up). alarm /dcd "goto dcd_drop" # Wait for a hangup. This loop terminates on the timeout alarm # (if set) or the DCD alarm. :hupwait message /close wait /event goto hupwait ############################################################ # DCD has dropped. # # Cancel the timeout alarm (if it exists). ############################################################ :dcd_drop alarm /cancel=timeout goto hangup ############################################################ # Hangup the line # # Arrive here after a DCD drop (or a timeout alarm). Kill # !TCPIP (if it's not already dead!). Inform the user of # a successful finish. Release the serial device. Wait a # couple of seconds for RISC OS to sort its life out. # Compute a news transfer rate (if any news arrived). # Optionally start TTFN and Newsbase (see later). Trim # the DemHist file, and return. ############################################################ :hangup # Kill !TCPIP task /kill="TCP/IP" # Inform the user message "Call finished successfully" /centre # Release the serial line and let RISC OS sort itself. release pause 2 # Compute news rate (if any arrived!) set newsExists {?file <Mail$Dir>.folder.DemNews} case %newsExists when 1 2 3; set nrate {newsrate Dem}; message "news rate %nrate cps" /centre when 0; message "no news downloaded" /centre endcase unset newsExists unset nrate # Optionally fire up !TTFN and !Newsbase # Neither are started if this was a timed call. # Each is only started only if it is not already running. if (!?eq %timed yes) if (!?task TTFN) task /name="TTFN" <TTFN$Dir>.!Run if (!?eq %timed yes) if (!?task Newsbase) task /name="Newsbase" <NewsBase$Dir>.!Run # Trim the DemHist file and return call trimfile <NNTP$Dir>.DemHist return 1 ############################################################ # Trim a file # # Time the file in %p1 by checking if it is 5000 bytes or # longer. This is achieved by copying the last 200 lines # into a temporary file and then moving the temorary file # over the original. ############################################################ :trimfile if (?lt {?file/size %p1} 5000) return copy/tail=200 %p1 %p1-T;delete %p1;move %p1-T %p1 return 1 ############################################################ # Configuration # # Read the system configuration information or call setup # if a config file doesn't exist ############################################################ :configure set filename {?file/expand slipdial:demonconfg} if (!?file %filename) call setup open/read/id=conf/error="return" %filename read/id=conf/eof="goto closeconf" wport read/id=conf/eof="goto closeconf" prtnum read/id=conf/eof="goto closeconf" speed read/id=conf/eof="goto closeconf" nodename read/id=conf/eof="goto closeconf" password read/id=conf/eof="goto closeconf" mercury :closeconf close/id=conf return ############################################################ # Setup # # Ask the user for various parameters (note that this # script doesn't use the mercury information ############################################################ :setup input/prompt="Enter Serial Block Driver Name" wport input/prompt="Enter Serial Port Number (if relevant)" prtnum input/prompt="Enter Your Modem->Computer Speed (bps):" speed input/prompt="Enter Your Demon Nodename:" nodename input/prompt="Enter Your Password:" password input/prompt="Enter Your Mercury PIN:" mercury open/id=conf/write %filename write/id=conf %wport write/id=conf %prtnum write/id=conf %speed write/id=conf %nodename write/id=conf %password write/id=conf %mercury close/id=conf return 1 ############################################################ # Make menus ############################################################ :makemenus menu "Mail:call domail" "News:call donews" "Both:call doboth" "Interactive:call interact" "Quit:quit" return 1
00000000 23 73 6c 69 70 64 69 61 6c 0a 0a 23 20 53 63 72 |#slipdial..# Scr| 00000010 69 70 74 20 74 6f 20 61 75 74 6f 6d 61 74 69 63 |ipt to automatic| 00000020 61 6c 6c 79 20 64 69 61 6c 20 44 65 6d 6f 6e 20 |ally dial Demon | 00000030 61 74 20 30 31 30 30 20 65 76 65 72 79 20 6d 6f |at 0100 every mo| 00000040 72 6e 69 6e 67 2e 0a 0a 23 23 23 23 23 23 23 23 |rning...########| 00000050 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000080 23 23 23 23 0a 23 20 46 6f 72 20 74 68 69 73 20 |####.# For this | 00000090 73 63 72 69 70 74 20 74 6f 20 77 6f 72 6b 20 63 |script to work c| 000000a0 6f 72 72 65 63 74 6c 79 2c 20 74 77 6f 20 6d 6f |orrectly, two mo| 000000b0 64 65 6d 20 63 6f 6e 66 69 67 75 72 61 74 69 6f |dem configuratio| 000000c0 6e 0a 23 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 |n.# options are | 000000d0 72 65 71 75 69 72 65 64 2c 20 61 6e 64 20 61 20 |required, and a | 000000e0 70 72 6f 70 65 72 74 79 20 6f 66 20 21 54 43 50 |property of !TCP| 000000f0 49 50 20 69 73 20 61 73 73 75 6d 65 64 3a 0a 23 |IP is assumed:.#| 00000100 0a 23 20 20 2a 20 54 68 65 20 6d 6f 64 65 6d 20 |.# * The modem | 00000110 6d 75 73 74 20 6d 61 6b 65 20 44 43 44 20 66 6f |must make DCD fo| 00000120 6c 6c 6f 77 20 74 68 65 20 61 63 74 75 61 6c 20 |llow the actual | 00000130 73 74 61 74 65 20 6f 66 0a 23 20 20 20 20 74 68 |state of.# th| 00000140 65 20 63 61 72 72 69 65 72 20 66 72 6f 6d 20 74 |e carrier from t| 00000150 68 65 20 72 65 6d 6f 74 65 20 6d 6f 64 65 6d 20 |he remote modem | 00000160 28 69 2e 65 2e 20 69 74 20 6d 75 73 74 20 4e 4f |(i.e. it must NO| 00000170 54 0a 23 20 20 20 20 68 6f 6c 64 20 44 43 44 20 |T.# hold DCD | 00000180 68 69 67 68 20 77 68 69 6c 65 20 6f 6e 2d 6c 69 |high while on-li| 00000190 6e 65 2e 20 4f 6e 20 6d 79 20 48 61 79 65 73 20 |ne. On my Hayes | 000001a0 63 6f 6d 70 61 74 69 62 6c 65 0a 23 20 20 20 20 |compatible.# | 000001b0 6d 6f 64 65 6d 20 74 68 69 73 20 69 73 20 6f 70 |modem this is op| 000001c0 74 69 6f 6e 20 26 43 31 2e 0a 23 0a 23 20 20 2a |tion &C1..#.# *| 000001d0 20 54 68 65 20 6d 6f 64 65 6d 20 6d 75 73 74 20 | The modem must | 000001e0 68 61 6e 67 20 75 70 20 69 66 20 6f 6e 2d 6c 69 |hang up if on-li| 000001f0 6e 65 20 77 68 65 6e 20 44 54 52 20 67 6f 65 73 |ne when DTR goes| 00000200 20 6c 6f 77 2e 0a 23 20 20 20 20 4f 6e 20 6d 79 | low..# On my| 00000210 20 48 61 79 65 73 20 63 6f 6d 70 61 74 69 62 6c | Hayes compatibl| 00000220 65 20 6d 6f 64 65 6d 20 74 68 69 73 20 69 73 20 |e modem this is | 00000230 6f 70 74 69 6f 6e 20 26 44 32 2e 0a 23 0a 23 20 |option &D2..#.# | 00000240 20 2a 20 49 20 61 73 73 75 6d 65 20 61 6c 6c 20 | * I assume all | 00000250 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 6f |future version o| 00000260 66 20 21 54 43 50 49 50 20 77 69 6c 6c 20 74 6f |f !TCPIP will to| 00000270 67 67 6c 65 0a 23 20 20 20 20 44 54 52 20 6c 6f |ggle.# DTR lo| 00000280 77 20 77 68 65 6e 20 74 68 65 79 20 65 78 69 74 |w when they exit| 00000290 2e 0a 23 0a 23 20 54 68 65 20 73 63 72 69 70 74 |..#.# The script| 000002a0 20 77 6f 72 6b 73 20 61 73 20 66 6f 6c 6c 6f 77 | works as follow| 000002b0 73 3a 20 77 68 65 6e 20 21 54 43 50 49 50 20 71 |s: when !TCPIP q| 000002c0 75 69 74 73 20 28 65 69 74 68 65 72 0a 23 20 6d |uits (either.# m| 000002d0 61 6e 75 61 6c 6c 79 20 6f 72 20 6f 6e 20 61 20 |anually or on a | 000002e0 27 74 63 70 20 68 61 6e 67 75 70 27 20 74 69 6d |'tcp hangup' tim| 000002f0 65 6f 75 74 29 2c 20 69 74 20 70 75 6c 6c 73 20 |eout), it pulls | 00000300 44 54 52 0a 23 20 6c 6f 77 2e 20 54 68 65 20 6d |DTR.# low. The m| 00000310 6f 64 65 6d 20 68 61 6e 67 73 20 75 70 20 28 26 |odem hangs up (&| 00000320 44 32 29 2e 20 54 68 65 6e 2c 20 73 69 6e 63 65 |D2). Then, since| 00000330 20 74 68 65 72 65 20 69 73 20 6e 6f 0a 23 20 6c | there is no.# l| 00000340 6f 6e 67 65 72 20 61 20 72 65 6d 6f 74 65 20 63 |onger a remote c| 00000350 61 72 72 69 65 72 20 70 72 65 73 65 6e 74 2c 20 |arrier present, | 00000360 44 43 44 20 67 6f 65 73 20 6c 6f 77 20 28 26 43 |DCD goes low (&C| 00000370 31 29 2e 0a 23 20 54 68 65 20 73 63 72 69 70 74 |1)..# The script| 00000380 20 68 61 73 20 61 20 44 43 44 20 61 6c 61 72 6d | has a DCD alarm| 00000390 2c 20 77 68 69 63 68 20 63 61 6c 6c 73 20 74 68 |, which calls th| 000003a0 65 20 64 63 64 5f 64 72 6f 70 0a 23 20 66 75 6e |e dcd_drop.# fun| 000003b0 63 74 69 6f 6e 20 61 6e 64 20 65 76 65 6e 74 75 |ction and eventu| 000003c0 61 6c 6c 79 20 74 68 65 20 68 61 6e 67 75 70 20 |ally the hangup | 000003d0 66 75 6e 63 74 69 6f 6e 2e 0a 23 0a 23 20 44 43 |function..#.# DC| 000003e0 44 20 63 61 6e 20 61 6c 73 6f 20 67 6f 20 6c 6f |D can also go lo| 000003f0 77 20 28 74 68 65 20 63 61 72 72 69 65 72 20 63 |w (the carrier c| 00000400 61 6e 20 61 6c 73 6f 20 62 65 20 64 72 6f 70 70 |an also be dropp| 00000410 65 64 29 0a 23 20 64 75 65 20 74 6f 20 6c 69 6e |ed).# due to lin| 00000420 65 20 6e 6f 69 73 65 20 6f 72 20 44 65 6d 6f 6e |e noise or Demon| 00000430 20 68 61 6e 67 69 6e 67 20 75 70 2e 0a 23 0a 23 | hanging up..#.#| 00000440 20 53 69 6e 63 65 20 74 68 65 20 68 61 6e 67 75 | Since the hangu| 00000450 70 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 61 |p function can a| 00000460 6c 73 6f 20 67 65 74 20 63 61 6c 6c 65 64 20 6f |lso get called o| 00000470 6e 20 61 6e 0a 23 20 6f 6e 2d 6c 69 6e 65 20 74 |n an.# on-line t| 00000480 69 6d 65 6f 75 74 20 74 69 6d 65 72 20 28 73 65 |imeout timer (se| 00000490 65 20 6c 61 74 65 72 29 2c 20 69 74 20 6b 69 6c |e later), it kil| 000004a0 6c 73 20 21 54 43 50 49 50 2e 0a 23 0a 23 20 53 |ls !TCPIP..#.# S| 000004b0 6f 20 2d 20 63 61 6c 6c 20 74 65 72 6d 69 6e 61 |o - call termina| 000004c0 74 69 6f 6e 20 28 64 72 6f 70 70 65 64 20 63 61 |tion (dropped ca| 000004d0 72 72 69 65 72 2c 20 21 54 43 50 49 50 20 65 78 |rrier, !TCPIP ex| 000004e0 69 74 69 6e 67 2c 0a 23 20 6f 72 20 6f 6e 2d 6c |iting,.# or on-l| 000004f0 69 6e 65 20 74 69 6d 65 6f 75 74 29 20 77 69 6c |ine timeout) wil| 00000500 6c 20 61 6c 77 61 79 73 20 72 65 73 75 6c 74 20 |l always result | 00000510 69 6e 20 74 68 65 20 6d 6f 64 65 6d 20 62 65 69 |in the modem bei| 00000520 6e 67 0a 23 20 70 6c 61 63 65 64 20 62 61 63 6b |ng.# placed back| 00000530 20 6f 6e 2d 68 6f 6f 6b 2c 20 61 6e 64 20 21 54 | on-hook, and !T| 00000540 43 50 49 50 20 62 65 69 6e 67 20 6b 69 6c 6c 65 |CPIP being kille| 00000550 64 2e 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 |d..#############| 00000560 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000580 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a |###############.| 00000590 0a 23 20 43 6f 6e 66 69 67 75 72 65 20 61 6e 64 |.# Configure and| 000005a0 20 62 75 69 6c 64 20 75 73 65 72 20 6d 65 6e 75 | build user menu| 000005b0 2e 0a 63 61 6c 6c 20 63 6f 6e 66 69 67 75 72 65 |..call configure| 000005c0 0a 63 61 6c 6c 20 6d 61 6b 65 6d 65 6e 75 73 0a |.call makemenus.| 000005d0 0a 23 20 53 65 74 75 70 20 73 65 72 69 61 6c 20 |.# Setup serial | 000005e0 70 6f 72 74 0a 64 72 69 76 65 72 20 55 53 52 0a |port.driver USR.| 000005f0 70 6f 72 74 20 25 77 70 6f 72 74 20 25 70 72 74 |port %wport %prt| 00000600 6e 75 6d 0a 73 70 65 65 64 20 25 73 70 65 65 64 |num.speed %speed| 00000610 0a 73 65 74 20 70 72 6f 74 6f 63 6f 6c 20 73 6c |.set protocol sl| 00000620 69 70 0a 0a 23 20 44 65 66 69 6e 65 20 74 68 65 |ip..# Define the| 00000630 20 70 68 6f 6e 65 20 6e 75 6d 62 65 72 0a 73 65 | phone number.se| 00000640 74 20 70 68 6f 6e 65 6e 75 6d 20 30 31 31 33 32 |t phonenum 01132| 00000650 39 38 34 38 34 38 0a 0a 23 20 53 65 74 75 70 20 |984848..# Setup | 00000660 61 6e 20 61 6c 61 72 6d 20 66 6f 72 20 61 75 74 |an alarm for aut| 00000670 6f 6d 61 74 69 63 20 64 69 61 6c 69 6e 67 0a 61 |omatic dialing.a| 00000680 6c 61 72 6d 20 2f 72 65 70 65 61 74 20 2f 74 69 |larm /repeat /ti| 00000690 6d 65 3d 30 31 3a 30 30 20 2f 69 64 3d 65 76 65 |me=01:00 /id=eve| 000006a0 72 79 64 61 79 20 22 63 61 6c 6c 20 64 65 6d 6f |ryday "call demo| 000006b0 6e 22 0a 0a 23 20 44 6f 20 61 62 73 6f 6c 75 74 |n"..# Do absolut| 000006c0 65 6c 79 20 6e 6f 74 68 69 6e 67 20 75 6e 74 69 |ely nothing unti| 000006d0 6c 20 74 68 65 20 61 6c 61 72 6d 20 74 72 69 67 |l the alarm trig| 000006e0 67 65 72 73 0a 23 20 6f 72 20 61 20 6d 65 6e 75 |gers.# or a menu| 000006f0 20 73 65 6c 65 63 74 69 6f 6e 20 69 73 20 6d 61 | selection is ma| 00000700 64 65 0a 3a 6c 6f 6f 70 0a 6d 65 73 73 61 67 65 |de.:loop.message| 00000710 20 2f 63 6c 6f 73 65 0a 77 61 69 74 20 2f 65 76 | /close.wait /ev| 00000720 65 6e 74 0a 67 6f 74 6f 20 6c 6f 6f 70 0a 65 78 |ent.goto loop.ex| 00000730 69 74 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23 |it..############| 00000740 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000770 0a 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |.# The following| 00000780 20 35 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 | 5 functions are| 00000790 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 74 68 65 | called from the| 000007a0 20 75 73 65 72 20 6d 65 6e 75 0a 23 20 6f 72 20 | user menu.# or | 000007b0 62 79 20 61 20 74 69 6d 65 72 2e 20 45 61 63 68 |by a timer. Each| 000007c0 20 64 65 66 69 6e 65 73 20 6e 6e 74 70 20 61 6e | defines nntp an| 000007d0 64 20 73 6d 74 70 2e 20 54 68 65 73 65 20 61 72 |d smtp. These ar| 000007e0 65 0a 23 20 76 61 6c 75 65 73 20 73 75 62 73 74 |e.# values subst| 000007f0 69 74 75 74 65 64 20 69 6e 74 6f 20 74 68 65 20 |ituted into the | 00000800 21 54 43 50 49 50 20 73 74 61 72 74 75 70 20 73 |!TCPIP startup s| 00000810 63 72 69 70 74 2e 20 48 65 6e 63 65 0a 23 20 74 |cript. Hence.# t| 00000820 68 65 20 3a 64 6f 6d 61 69 6c 20 66 75 6e 63 74 |he :domail funct| 00000830 69 6f 6e 20 64 65 66 69 6e 65 73 20 27 6e 6e 74 |ion defines 'nnt| 00000840 70 27 20 74 6f 20 62 65 20 27 23 6e 6e 74 70 27 |p' to be '#nntp'| 00000850 20 73 69 6e 63 65 0a 23 20 69 74 20 77 69 73 68 | since.# it wish| 00000860 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74 20 6f 75 |es to comment ou| 00000870 74 20 61 6c 6c 20 74 68 65 20 6e 6e 74 70 20 63 |t all the nntp c| 00000880 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 6e 0a |onfiguration in.| 00000890 23 20 74 68 65 20 41 75 74 6f 45 78 65 63 20 73 |# the AutoExec s| 000008a0 63 72 69 70 74 2e 0a 23 23 23 23 23 23 23 23 23 |cript..#########| 000008b0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 000008e0 23 23 23 0a 0a 23 23 23 23 23 23 23 23 23 23 23 |###..###########| 000008f0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000920 23 0a 23 20 43 61 6c 6c 20 44 65 6d 6f 6e 20 28 |#.# Call Demon (| 00000930 74 68 69 73 20 69 73 20 61 75 74 6f 6d 61 74 69 |this is automati| 00000940 63 61 6c 6c 79 20 74 72 69 67 67 65 72 65 64 0a |cally triggered.| 00000950 23 0a 23 20 49 74 20 73 65 74 73 20 27 74 69 6d |#.# It sets 'tim| 00000960 65 64 27 20 74 6f 20 27 79 65 73 27 20 66 6f 72 |ed' to 'yes' for| 00000970 20 76 61 72 69 6f 75 73 20 74 69 6d 65 72 73 20 | various timers | 00000980 74 6f 20 62 65 20 73 65 74 2e 0a 23 20 43 61 6c |to be set..# Cal| 00000990 6c 20 44 65 6d 6f 6e 2c 20 61 6e 64 20 6a 75 6d |l Demon, and jum| 000009a0 70 20 74 6f 20 74 68 65 20 27 6c 6f 67 67 65 64 |p to the 'logged| 000009b0 69 6e 27 20 72 6f 75 74 69 6e 65 2e 0a 23 23 23 |in' routine..###| 000009c0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 000009f0 23 23 23 23 23 23 23 23 23 0a 3a 64 65 6d 6f 6e |#########.:demon| 00000a00 0a 73 65 74 20 74 69 6d 65 64 20 79 65 73 0a 73 |.set timed yes.s| 00000a10 65 74 20 6e 6e 74 70 20 6e 6e 74 70 0a 73 65 74 |et nntp nntp.set| 00000a20 20 73 6d 74 70 20 73 6d 74 70 0a 63 61 6c 6c 20 | smtp smtp.call | 00000a30 64 69 61 6c 75 70 0a 67 6f 74 6f 20 6c 6f 67 67 |dialup.goto logg| 00000a40 65 64 69 6e 0a 0a 23 23 23 23 23 23 23 23 23 23 |edin..##########| 00000a50 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000a80 23 23 0a 23 20 41 20 6d 61 69 6c 20 64 6f 77 6e |##.# A mail down| 00000a90 6c 6f 61 64 0a 23 0a 23 20 43 61 6c 6c 20 44 65 |load.#.# Call De| 00000aa0 6d 6f 6e 2c 20 61 6e 64 20 6a 75 6d 70 20 74 6f |mon, and jump to| 00000ab0 20 74 68 65 20 27 6c 6f 67 67 65 64 69 6e 27 20 | the 'loggedin' | 00000ac0 72 6f 75 74 69 6e 65 2e 0a 23 23 23 23 23 23 23 |routine..#######| 00000ad0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000b00 23 23 23 23 23 0a 3a 64 6f 6d 61 69 6c 0a 73 65 |#####.:domail.se| 00000b10 74 20 74 69 6d 65 64 20 79 65 73 0a 73 65 74 20 |t timed yes.set | 00000b20 6e 6e 74 70 20 23 6e 6e 74 70 0a 73 65 74 20 73 |nntp #nntp.set s| 00000b30 6d 74 70 20 73 6d 74 70 0a 63 61 6c 6c 20 64 69 |mtp smtp.call di| 00000b40 61 6c 75 70 0a 67 6f 74 6f 20 6c 6f 67 67 65 64 |alup.goto logged| 00000b50 69 6e 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23 |in..############| 00000b60 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000b90 0a 23 20 41 20 6e 65 77 73 20 64 6f 77 6e 6c 6f |.# A news downlo| 00000ba0 61 64 0a 23 0a 23 20 43 61 6c 6c 20 44 65 6d 6f |ad.#.# Call Demo| 00000bb0 6e 2c 20 61 6e 64 20 6a 75 6d 70 20 74 6f 20 74 |n, and jump to t| 00000bc0 68 65 20 27 6c 6f 67 67 65 64 69 6e 27 20 72 6f |he 'loggedin' ro| 00000bd0 75 74 69 6e 65 2e 0a 23 23 23 23 23 23 23 23 23 |utine..#########| 00000be0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000c10 23 23 23 0a 3a 64 6f 6e 65 77 73 0a 73 65 74 20 |###.:donews.set | 00000c20 74 69 6d 65 64 20 6e 6f 0a 73 65 74 20 6e 6e 74 |timed no.set nnt| 00000c30 70 20 6e 6e 74 70 0a 73 65 74 20 73 6d 74 70 20 |p nntp.set smtp | 00000c40 23 73 6d 74 70 0a 63 61 6c 6c 20 64 69 61 6c 75 |#smtp.call dialu| 00000c50 70 0a 67 6f 74 6f 20 6c 6f 67 67 65 64 69 6e 0a |p.goto loggedin.| 00000c60 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |.###############| 00000c70 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000c90 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 |#############.# | 00000ca0 4e 65 77 73 20 61 6e 64 20 6d 61 69 6c 0a 23 0a |News and mail.#.| 00000cb0 23 20 43 61 6c 6c 20 44 65 6d 6f 6e 2c 20 61 6e |# Call Demon, an| 00000cc0 64 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 27 6c |d jump to the 'l| 00000cd0 6f 67 67 65 64 69 6e 27 20 72 6f 75 74 69 6e 65 |oggedin' routine| 00000ce0 2e 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |..##############| 00000cf0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000d10 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 3a |##############.:| 00000d20 64 6f 62 6f 74 68 0a 73 65 74 20 74 69 6d 65 64 |doboth.set timed| 00000d30 20 6e 6f 0a 73 65 74 20 6e 6e 74 70 20 6e 6e 74 | no.set nntp nnt| 00000d40 70 0a 73 65 74 20 73 6d 74 70 20 73 6d 74 70 0a |p.set smtp smtp.| 00000d50 63 61 6c 6c 20 64 69 61 6c 75 70 0a 67 6f 74 6f |call dialup.goto| 00000d60 20 6c 6f 67 67 65 64 69 6e 0a 0a 23 23 23 23 23 | loggedin..#####| 00000d70 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000da0 23 23 23 23 23 23 23 0a 23 20 49 6e 74 65 72 61 |#######.# Intera| 00000db0 63 74 69 76 65 20 73 65 73 73 69 6f 6e 0a 23 0a |ctive session.#.| 00000dc0 23 20 43 61 6c 6c 20 44 65 6d 6f 6e 2c 20 61 6e |# Call Demon, an| 00000dd0 64 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 27 6c |d jump to the 'l| 00000de0 6f 67 67 65 64 69 6e 27 20 72 6f 75 74 69 6e 65 |oggedin' routine| 00000df0 2e 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |..##############| 00000e00 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000e20 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 3a |##############.:| 00000e30 69 6e 74 65 72 61 63 74 0a 73 65 74 20 74 69 6d |interact.set tim| 00000e40 65 64 20 6e 6f 0a 73 65 74 20 6e 6e 74 70 20 23 |ed no.set nntp #| 00000e50 6e 6e 74 70 0a 73 65 74 20 73 6d 74 70 20 23 73 |nntp.set smtp #s| 00000e60 6d 74 70 0a 63 61 6c 6c 20 64 69 61 6c 75 70 0a |mtp.call dialup.| 00000e70 67 6f 74 6f 20 6c 6f 67 67 65 64 69 6e 0a 0a 23 |goto loggedin..#| 00000e80 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000eb0 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 44 69 |###########.# Di| 00000ec0 61 6c 20 44 65 6d 6f 6e 2e 0a 23 0a 23 20 43 72 |al Demon..#.# Cr| 00000ed0 65 61 74 65 20 61 6e 20 41 75 74 6f 45 78 65 63 |eate an AutoExec| 00000ee0 20 66 69 6c 65 20 66 6f 72 20 21 54 43 50 49 50 | file for !TCPIP| 00000ef0 2c 20 63 6c 61 69 6d 20 61 6e 64 20 69 6e 69 74 |, claim and init| 00000f00 69 61 6c 69 73 65 0a 23 20 74 68 65 20 6d 6f 64 |ialise.# the mod| 00000f10 65 6d 2e 20 44 69 61 6c 20 44 65 6d 6f 6e 2e 20 |em. Dial Demon. | 00000f20 4c 6f 67 69 6e 20 61 6e 64 20 73 65 74 20 70 72 |Login and set pr| 00000f30 6f 74 6f 63 6f 6c 2e 20 43 61 70 74 75 72 65 0a |otocol. Capture.| 00000f40 23 20 61 6e 64 20 64 69 73 70 6c 61 79 20 4d 4f |# and display MO| 00000f50 54 44 2e 20 57 61 69 74 20 66 6f 72 20 44 65 6d |TD. Wait for Dem| 00000f60 6f 6e 20 74 6f 20 73 65 74 75 70 20 74 68 65 69 |on to setup thei| 00000f70 72 20 53 4c 49 50 0a 23 20 73 65 72 76 69 63 65 |r SLIP.# service| 00000f80 2e 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |..##############| 00000f90 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000fb0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 3a |##############.:| 00000fc0 64 69 61 6c 75 70 0a 0a 23 20 54 68 65 20 63 61 |dialup..# The ca| 00000fd0 6c 6c 20 68 61 73 6e 27 74 20 66 61 69 6c 65 64 |ll hasn't failed| 00000fe0 20 28 79 65 74 21 29 0a 73 65 74 20 66 61 69 6c | (yet!).set fail| 00000ff0 65 64 20 6e 6f 0a 0a 23 20 53 65 65 20 62 65 6c |ed no..# See bel| 00001000 6f 77 2e 2e 2e 0a 73 65 74 20 77 61 69 74 74 69 |ow....set waitti| 00001010 6d 65 20 34 0a 73 65 74 20 73 74 61 72 74 74 69 |me 4.set startti| 00001020 6d 65 20 30 0a 73 65 74 20 73 74 6f 70 74 69 6d |me 0.set stoptim| 00001030 65 20 30 0a 0a 23 20 43 72 65 61 74 65 20 61 20 |e 0..# Create a | 00001040 21 54 43 50 49 50 20 41 75 74 6f 45 78 65 63 20 |!TCPIP AutoExec | 00001050 66 69 6c 65 0a 6d 61 6b 65 20 3c 54 43 50 49 50 |file.make <TCPIP| 00001060 24 44 69 72 3e 2e 41 75 74 6f 54 65 6d 70 6c 20 |$Dir>.AutoTempl | 00001070 3c 54 43 50 49 50 24 44 69 72 3e 2e 41 75 74 6f |<TCPIP$Dir>.Auto| 00001080 45 78 65 63 0a 0a 23 20 43 6c 61 69 6d 20 61 6e |Exec..# Claim an| 00001090 64 20 69 6e 69 74 69 61 6c 69 73 65 20 74 68 65 |d initialise the| 000010a0 20 6d 6f 64 65 6d 0a 69 66 20 28 21 63 6c 61 69 | modem.if (!clai| 000010b0 6d 20 33 29 20 67 6f 74 6f 20 63 61 6c 6c 5f 66 |m 3) goto call_f| 000010c0 61 69 6c 65 64 0a 6d 65 73 73 61 67 65 20 2f 63 |ailed.message /c| 000010d0 6c 6f 73 65 0a 69 6e 69 74 20 41 54 5a 0a 73 6c |lose.init ATZ.sl| 000010e0 65 65 70 20 32 0a 73 65 6e 64 20 41 54 51 30 56 |eep 2.send ATQ0V| 000010f0 31 4d 30 0a 69 66 20 28 21 77 61 69 74 20 2f 64 |1M0.if (!wait /d| 00001100 65 6c 3d 35 20 4f 4b 29 20 67 6f 74 6f 20 63 61 |el=5 OK) goto ca| 00001110 6c 6c 5f 66 61 69 6c 65 64 0a 0a 23 20 54 72 79 |ll_failed..# Try| 00001120 20 74 6f 20 64 69 61 6c 20 44 65 6d 6f 6e 0a 72 | to dial Demon.r| 00001130 65 74 72 79 20 35 30 20 31 35 0a 69 66 20 28 21 |etry 50 15.if (!| 00001140 64 69 61 6c 20 2f 6e 6f 64 69 61 6c 3d 33 30 20 |dial /nodial=30 | 00001150 2f 6e 6f 63 61 72 3d 31 30 20 2f 62 75 73 79 3d |/nocar=10 /busy=| 00001160 35 20 25 70 68 6f 6e 65 6e 75 6d 29 20 63 61 6c |5 %phonenum) cal| 00001170 6c 20 63 61 6c 6c 5f 66 61 69 6c 65 64 0a 0a 23 |l call_failed..#| 00001180 20 53 75 63 63 65 73 73 66 75 6c 20 63 6f 6e 6e | Successful conn| 00001190 65 63 74 2e 20 4c 6f 67 69 6e 0a 69 66 20 28 21 |ect. Login.if (!| 000011a0 77 61 69 74 20 2f 64 65 6c 3d 32 30 20 6f 67 69 |wait /del=20 ogi| 000011b0 6e 3a 29 20 67 6f 74 6f 20 63 61 6c 6c 5f 66 61 |n:) goto call_fa| 000011c0 69 6c 65 64 0a 73 65 6e 64 20 25 6e 6f 64 65 6e |iled.send %noden| 000011d0 61 6d 65 0a 0a 23 20 53 65 6e 64 20 70 61 73 73 |ame..# Send pass| 000011e0 77 6f 72 64 2e 20 41 6c 73 6f 20 72 65 6d 65 6d |word. Also remem| 000011f0 62 65 72 20 63 75 72 72 65 6e 74 20 74 69 6d 65 |ber current time| 00001200 0a 73 65 74 20 73 74 61 72 74 74 69 6d 65 20 25 |.set starttime %| 00001210 24 74 69 6d 65 0a 69 66 20 28 21 77 61 69 74 20 |$time.if (!wait | 00001220 2f 64 65 6c 3d 32 30 20 77 6f 72 64 3a 29 20 67 |/del=20 word:) g| 00001230 6f 74 6f 20 63 61 6c 6c 5f 66 61 69 6c 65 64 0a |oto call_failed.| 00001240 73 65 6e 64 20 25 70 61 73 73 77 6f 72 64 0a 0a |send %password..| 00001250 23 20 53 65 6e 64 20 70 72 6f 74 6f 63 6f 6c 2e |# Send protocol.| 00001260 0a 69 66 20 28 21 77 61 69 74 20 2f 64 65 6c 3d |.if (!wait /del=| 00001270 35 30 20 6f 63 6f 6c 3a 29 20 67 6f 74 6f 20 63 |50 ocol:) goto c| 00001280 61 6c 6c 5f 66 61 69 6c 65 64 0a 73 65 6e 64 20 |all_failed.send | 00001290 25 70 72 6f 74 6f 63 6f 6c 0a 0a 23 20 47 65 74 |%protocol..# Get| 000012a0 20 63 75 72 72 65 6e 74 20 74 69 6d 65 2e 20 57 | current time. W| 000012b0 6f 72 6b 20 6f 75 74 20 64 69 66 66 65 72 65 6e |ork out differen| 000012c0 63 65 20 62 65 74 77 65 65 6e 20 6e 6f 77 20 61 |ce between now a| 000012d0 6e 64 20 77 68 65 6e 20 77 65 0a 23 20 68 61 64 |nd when we.# had| 000012e0 20 6a 75 73 74 20 73 65 6e 74 20 6f 75 72 20 6e | just sent our n| 000012f0 6f 64 65 6e 61 6d 65 2e 20 48 61 6c 76 65 20 69 |odename. Halve i| 00001300 74 2e 20 57 61 69 74 20 74 68 61 74 20 6c 6f 6e |t. Wait that lon| 00001310 67 20 61 66 74 65 72 20 74 68 65 0a 23 20 4d 4f |g after the.# MO| 00001320 54 44 2e 20 54 68 69 73 20 69 73 20 69 6e 74 65 |TD. This is inte| 00001330 6e 64 65 64 20 74 6f 20 67 69 76 65 20 61 20 72 |nded to give a r| 00001340 6f 75 67 68 20 69 64 65 61 20 6f 66 20 73 70 65 |ough idea of spe| 00001350 65 64 20 74 68 65 20 44 65 6d 6f 6e 0a 23 20 6d |ed the Demon.# m| 00001360 61 63 68 69 6e 65 73 20 61 72 65 20 72 75 6e 6e |achines are runn| 00001370 69 6e 67 20 61 74 20 2d 20 69 2e 65 2e 20 74 68 |ing at - i.e. th| 00001380 65 20 6c 6f 6e 67 65 72 20 69 74 20 74 61 6b 65 |e longer it take| 00001390 73 20 74 6f 20 6c 6f 67 20 6f 6e 2c 0a 23 20 74 |s to log on,.# t| 000013a0 68 65 20 6c 6f 6e 67 65 72 20 77 65 20 68 61 76 |he longer we hav| 000013b0 65 20 74 6f 20 77 61 69 74 20 62 65 66 6f 72 65 |e to wait before| 000013c0 20 74 68 65 20 53 4c 49 50 20 73 65 72 76 69 63 | the SLIP servic| 000013d0 65 20 69 73 20 72 75 6e 6e 69 6e 67 2e 0a 73 65 |e is running..se| 000013e0 74 20 73 74 6f 70 74 69 6d 65 20 25 24 74 69 6d |t stoptime %$tim| 000013f0 65 0a 73 65 74 20 77 61 69 74 74 69 6d 65 20 7b |e.set waittime {| 00001400 65 76 61 6c 20 22 25 73 74 6f 70 74 69 6d 65 2d |eval "%stoptime-| 00001410 25 73 74 61 72 74 74 69 6d 65 22 7d 0a 73 65 74 |%starttime"}.set| 00001420 20 77 61 69 74 74 69 6d 65 20 7b 65 76 61 6c 20 | waittime {eval | 00001430 22 25 77 61 69 74 74 69 6d 65 20 44 49 56 20 32 |"%waittime DIV 2| 00001440 22 7d 0a 69 66 20 28 3f 65 71 20 25 77 61 69 74 |"}.if (?eq %wait| 00001450 74 69 6d 65 20 30 29 20 73 65 74 20 77 61 69 74 |time 0) set wait| 00001460 74 69 6d 65 20 31 0a 0a 23 20 47 65 74 20 4d 4f |time 1..# Get MO| 00001470 54 44 2c 20 61 6e 64 20 49 50 20 61 64 64 72 65 |TD, and IP addre| 00001480 73 73 0a 6d 65 73 73 61 67 65 20 2f 63 61 70 74 |ss.message /capt| 00001490 75 72 65 3d 22 49 50 22 20 2f 65 6e 64 3d 22 48 |ure="IP" /end="H| 000014a0 45 4c 4c 4f 22 20 2f 6d 61 78 6c 69 6e 65 73 3d |ELLO" /maxlines=| 000014b0 39 20 2f 63 65 6e 74 72 65 0a 69 70 67 65 74 20 |9 /centre.ipget | 000014c0 31 35 38 2e 0a 69 66 20 28 21 77 61 69 74 20 2f |158..if (!wait /| 000014d0 64 65 6c 3d 33 30 20 48 45 4c 4c 4f 29 20 67 6f |del=30 HELLO) go| 000014e0 74 6f 20 63 61 6c 6c 5f 66 61 69 6c 65 64 0a 77 |to call_failed.w| 000014f0 61 69 74 20 2f 64 65 6c 61 79 3d 25 77 61 69 74 |ait /delay=%wait| 00001500 74 69 6d 65 20 22 61 20 77 68 69 6c 65 22 0a 72 |time "a while".r| 00001510 65 74 75 72 6e 20 31 0a 0a 23 23 23 23 23 23 23 |eturn 1..#######| 00001520 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00001550 23 23 23 23 23 0a 23 20 43 61 6c 6c 20 73 65 74 |#####.# Call set| 00001560 75 70 20 66 61 69 6c 65 64 2e 0a 23 0a 23 20 20 |up failed..#.# | 00001570 2a 20 43 6f 75 6c 64 6e 27 74 20 63 6c 61 69 6d |* Couldn't claim| 00001580 20 64 65 76 69 63 65 0a 23 20 20 2a 20 43 6f 75 | device.# * Cou| 00001590 6c 64 6e 27 74 20 69 6e 69 74 69 61 6c 69 73 65 |ldn't initialise| 000015a0 20 6d 6f 64 65 6d 0a 23 20 20 2a 20 43 6f 75 6c | modem.# * Coul| 000015b0 64 6e 27 74 20 67 65 74 20 61 6e 20 61 6e 73 77 |dn't get an answ| 000015c0 65 72 0a 23 20 20 2a 20 54 69 6d 65 64 20 6f 75 |er.# * Timed ou| 000015d0 74 20 64 75 72 69 6e 67 20 6c 6f 67 69 6e 0a 23 |t during login.#| 000015e0 20 20 2a 20 54 69 6d 65 64 20 6f 75 74 20 77 61 | * Timed out wa| 000015f0 69 74 69 6e 67 20 66 6f 72 20 4d 4f 54 44 0a 23 |iting for MOTD.#| 00001600 0a 23 20 4d 61 72 6b 20 74 68 65 20 63 61 6c 6c |.# Mark the call| 00001610 20 61 73 20 66 61 69 6c 65 64 2c 20 69 6e 66 6f | as failed, info| 00001620 72 6d 20 74 68 65 20 75 73 65 72 20 61 6e 64 20 |rm the user and | 00001630 72 65 6c 65 61 73 65 0a 23 20 74 68 65 20 64 65 |release.# the de| 00001640 76 69 63 65 2e 0a 23 23 23 23 23 23 23 23 23 23 |vice..##########| 00001650 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00001680 23 23 0a 3a 63 61 6c 6c 5f 66 61 69 6c 65 64 0a |##.:call_failed.| 00001690 73 65 74 20 66 61 69 6c 65 64 20 79 65 73 0a 6d |set failed yes.m| 000016a0 65 73 73 61 67 65 20 22 43 61 6c 6c 20 73 65 74 |essage "Call set| 000016b0 75 70 20 66 61 69 6c 65 64 22 20 2f 63 65 6e 74 |up failed" /cent| 000016c0 72 65 0a 72 65 6c 65 61 73 65 0a 72 65 74 75 72 |re.release.retur| 000016d0 6e 20 30 0a 0a 23 23 23 23 23 23 23 23 23 23 23 |n 0..###########| 000016e0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00001710 23 0a 23 20 53 75 63 63 65 73 73 66 75 6c 6c 79 |#.# Successfully| 00001720 20 6c 6f 67 67 65 64 20 69 6e 2e 0a 23 20 0a 23 | logged in..# .#| 00001730 20 28 4e 6f 74 20 73 74 72 69 63 74 6c 79 20 74 | (Not strictly t| 00001740 72 75 65 20 2d 2d 20 77 69 6c 6c 20 61 72 72 69 |rue -- will arri| 00001750 76 65 20 68 65 72 65 20 66 72 6f 6d 20 63 61 6c |ve here from cal| 00001760 6c 5f 66 61 69 6c 65 64 0a 23 20 74 6f 6f 2e 20 |l_failed.# too. | 00001770 54 68 65 72 65 66 6f 72 65 20 63 68 65 63 6b 20 |Therefore check | 00001780 25 66 61 69 6c 65 64 20 61 6e 64 20 72 65 74 75 |%failed and retu| 00001790 72 6e 29 2e 0a 23 23 23 23 23 23 23 23 23 23 23 |rn)..###########| 000017a0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 000017d0 23 0a 3a 6c 6f 67 67 65 64 69 6e 0a 69 66 20 28 |#.:loggedin.if (| 000017e0 3f 65 71 20 25 66 61 69 6c 65 64 20 79 65 73 29 |?eq %failed yes)| 000017f0 20 72 65 74 75 72 6e 20 31 0a 0a 23 20 53 65 74 | return 1..# Set| 00001800 20 61 6e 20 61 6c 61 72 6d 20 69 66 20 74 68 69 | an alarm if thi| 00001810 73 20 63 61 6c 6c 20 69 73 20 74 69 6d 65 64 2e |s call is timed.| 00001820 20 54 68 69 73 20 69 73 20 73 6f 20 74 68 61 74 | This is so that| 00001830 20 77 65 20 64 6f 6e 27 74 0a 23 20 73 70 65 6e | we don't.# spen| 00001840 64 20 74 6f 6f 20 6c 6f 6e 67 20 6f 6e 2d 6c 69 |d too long on-li| 00001850 6e 65 20 75 6e 61 74 74 65 6e 64 65 64 2e 20 3a |ne unattended. :| 00001860 29 0a 69 66 20 28 3f 65 71 20 25 74 69 6d 65 64 |).if (?eq %timed| 00001870 20 79 65 73 29 20 61 6c 61 72 6d 20 2f 74 69 6d | yes) alarm /tim| 00001880 65 3d 2b 30 30 3a 30 30 3a 32 30 20 2f 69 64 3d |e=+00:00:20 /id=| 00001890 74 69 6d 65 6f 75 74 20 22 67 6f 74 6f 20 68 61 |timeout "goto ha| 000018a0 6e 67 75 70 22 0a 0a 23 20 46 69 72 65 20 75 70 |ngup"..# Fire up| 000018b0 20 21 54 43 50 49 50 0a 74 61 73 6b 20 2f 6e 61 | !TCPIP.task /na| 000018c0 6d 65 3d 22 54 43 50 2f 49 50 22 20 3c 54 43 50 |me="TCP/IP" <TCP| 000018d0 49 50 32 24 64 69 72 3e 2e 21 52 75 6e 0a 0a 23 |IP2$dir>.!Run..#| 000018e0 20 57 61 74 63 68 20 66 6f 72 20 44 43 44 20 74 | Watch for DCD t| 000018f0 6f 20 64 72 6f 70 20 28 69 2e 65 2e 20 74 68 65 |o drop (i.e. the| 00001900 20 6d 6f 64 65 6d 20 68 61 73 20 68 75 6e 67 20 | modem has hung | 00001910 75 70 29 2e 0a 61 6c 61 72 6d 20 2f 64 63 64 20 |up)..alarm /dcd | 00001920 22 67 6f 74 6f 20 64 63 64 5f 64 72 6f 70 22 0a |"goto dcd_drop".| 00001930 0a 23 20 57 61 69 74 20 66 6f 72 20 61 20 68 61 |.# Wait for a ha| 00001940 6e 67 75 70 2e 20 54 68 69 73 20 6c 6f 6f 70 20 |ngup. This loop | 00001950 74 65 72 6d 69 6e 61 74 65 73 20 6f 6e 20 74 68 |terminates on th| 00001960 65 20 74 69 6d 65 6f 75 74 20 61 6c 61 72 6d 0a |e timeout alarm.| 00001970 23 20 28 69 66 20 73 65 74 29 20 6f 72 20 74 68 |# (if set) or th| 00001980 65 20 44 43 44 20 61 6c 61 72 6d 2e 0a 3a 68 75 |e DCD alarm..:hu| 00001990 70 77 61 69 74 0a 6d 65 73 73 61 67 65 20 2f 63 |pwait.message /c| 000019a0 6c 6f 73 65 0a 77 61 69 74 20 2f 65 76 65 6e 74 |lose.wait /event| 000019b0 0a 67 6f 74 6f 20 68 75 70 77 61 69 74 0a 0a 23 |.goto hupwait..#| 000019c0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 000019f0 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 44 43 |###########.# DC| 00001a00 44 20 68 61 73 20 64 72 6f 70 70 65 64 2e 0a 23 |D has dropped..#| 00001a10 0a 23 20 43 61 6e 63 65 6c 20 74 68 65 20 74 69 |.# Cancel the ti| 00001a20 6d 65 6f 75 74 20 61 6c 61 72 6d 20 28 69 66 20 |meout alarm (if | 00001a30 69 74 20 65 78 69 73 74 73 29 2e 0a 23 23 23 23 |it exists)..####| 00001a40 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00001a70 23 23 23 23 23 23 23 23 0a 3a 64 63 64 5f 64 72 |########.:dcd_dr| 00001a80 6f 70 0a 61 6c 61 72 6d 20 2f 63 61 6e 63 65 6c |op.alarm /cancel| 00001a90 3d 74 69 6d 65 6f 75 74 0a 67 6f 74 6f 20 68 61 |=timeout.goto ha| 00001aa0 6e 67 75 70 0a 0a 23 23 23 23 23 23 23 23 23 23 |ngup..##########| 00001ab0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00001ae0 23 23 0a 23 20 48 61 6e 67 75 70 20 74 68 65 20 |##.# Hangup the | 00001af0 6c 69 6e 65 0a 23 0a 23 20 41 72 72 69 76 65 20 |line.#.# Arrive | 00001b00 68 65 72 65 20 61 66 74 65 72 20 61 20 44 43 44 |here after a DCD| 00001b10 20 64 72 6f 70 20 28 6f 72 20 61 20 74 69 6d 65 | drop (or a time| 00001b20 6f 75 74 20 61 6c 61 72 6d 29 2e 20 4b 69 6c 6c |out alarm). Kill| 00001b30 0a 23 20 21 54 43 50 49 50 20 28 69 66 20 69 74 |.# !TCPIP (if it| 00001b40 27 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 64 |'s not already d| 00001b50 65 61 64 21 29 2e 20 49 6e 66 6f 72 6d 20 74 68 |ead!). Inform th| 00001b60 65 20 75 73 65 72 20 6f 66 0a 23 20 61 20 73 75 |e user of.# a su| 00001b70 63 63 65 73 73 66 75 6c 20 66 69 6e 69 73 68 2e |ccessful finish.| 00001b80 20 52 65 6c 65 61 73 65 20 74 68 65 20 73 65 72 | Release the ser| 00001b90 69 61 6c 20 64 65 76 69 63 65 2e 20 57 61 69 74 |ial device. Wait| 00001ba0 20 61 0a 23 20 63 6f 75 70 6c 65 20 6f 66 20 73 | a.# couple of s| 00001bb0 65 63 6f 6e 64 73 20 66 6f 72 20 52 49 53 43 20 |econds for RISC | 00001bc0 4f 53 20 74 6f 20 73 6f 72 74 20 69 74 73 20 6c |OS to sort its l| 00001bd0 69 66 65 20 6f 75 74 2e 0a 23 20 43 6f 6d 70 75 |ife out..# Compu| 00001be0 74 65 20 61 20 6e 65 77 73 20 74 72 61 6e 73 66 |te a news transf| 00001bf0 65 72 20 72 61 74 65 20 28 69 66 20 61 6e 79 20 |er rate (if any | 00001c00 6e 65 77 73 20 61 72 72 69 76 65 64 29 2e 0a 23 |news arrived)..#| 00001c10 20 4f 70 74 69 6f 6e 61 6c 6c 79 20 73 74 61 72 | Optionally star| 00001c20 74 20 54 54 46 4e 20 61 6e 64 20 4e 65 77 73 62 |t TTFN and Newsb| 00001c30 61 73 65 20 28 73 65 65 20 6c 61 74 65 72 29 2e |ase (see later).| 00001c40 20 54 72 69 6d 0a 23 20 74 68 65 20 44 65 6d 48 | Trim.# the DemH| 00001c50 69 73 74 20 66 69 6c 65 2c 20 61 6e 64 20 72 65 |ist file, and re| 00001c60 74 75 72 6e 2e 0a 23 23 23 23 23 23 23 23 23 23 |turn..##########| 00001c70 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00001ca0 23 23 0a 3a 68 61 6e 67 75 70 0a 0a 23 20 4b 69 |##.:hangup..# Ki| 00001cb0 6c 6c 20 21 54 43 50 49 50 0a 74 61 73 6b 20 2f |ll !TCPIP.task /| 00001cc0 6b 69 6c 6c 3d 22 54 43 50 2f 49 50 22 0a 0a 23 |kill="TCP/IP"..#| 00001cd0 20 49 6e 66 6f 72 6d 20 74 68 65 20 75 73 65 72 | Inform the user| 00001ce0 0a 6d 65 73 73 61 67 65 20 22 43 61 6c 6c 20 66 |.message "Call f| 00001cf0 69 6e 69 73 68 65 64 20 73 75 63 63 65 73 73 66 |inished successf| 00001d00 75 6c 6c 79 22 20 2f 63 65 6e 74 72 65 0a 0a 23 |ully" /centre..#| 00001d10 20 52 65 6c 65 61 73 65 20 74 68 65 20 73 65 72 | Release the ser| 00001d20 69 61 6c 20 6c 69 6e 65 20 61 6e 64 20 6c 65 74 |ial line and let| 00001d30 20 52 49 53 43 20 4f 53 20 73 6f 72 74 20 69 74 | RISC OS sort it| 00001d40 73 65 6c 66 2e 0a 72 65 6c 65 61 73 65 0a 70 61 |self..release.pa| 00001d50 75 73 65 20 32 0a 0a 23 20 43 6f 6d 70 75 74 65 |use 2..# Compute| 00001d60 20 6e 65 77 73 20 72 61 74 65 20 28 69 66 20 61 | news rate (if a| 00001d70 6e 79 20 61 72 72 69 76 65 64 21 29 0a 73 65 74 |ny arrived!).set| 00001d80 20 6e 65 77 73 45 78 69 73 74 73 20 7b 3f 66 69 | newsExists {?fi| 00001d90 6c 65 20 3c 4d 61 69 6c 24 44 69 72 3e 2e 66 6f |le <Mail$Dir>.fo| 00001da0 6c 64 65 72 2e 44 65 6d 4e 65 77 73 7d 0a 63 61 |lder.DemNews}.ca| 00001db0 73 65 20 25 6e 65 77 73 45 78 69 73 74 73 0a 77 |se %newsExists.w| 00001dc0 68 65 6e 20 31 20 32 20 33 3b 20 73 65 74 20 6e |hen 1 2 3; set n| 00001dd0 72 61 74 65 20 7b 6e 65 77 73 72 61 74 65 20 44 |rate {newsrate D| 00001de0 65 6d 7d 3b 20 6d 65 73 73 61 67 65 20 22 6e 65 |em}; message "ne| 00001df0 77 73 20 72 61 74 65 20 25 6e 72 61 74 65 20 63 |ws rate %nrate c| 00001e00 70 73 22 20 2f 63 65 6e 74 72 65 0a 77 68 65 6e |ps" /centre.when| 00001e10 20 30 3b 20 6d 65 73 73 61 67 65 20 22 6e 6f 20 | 0; message "no | 00001e20 6e 65 77 73 20 64 6f 77 6e 6c 6f 61 64 65 64 22 |news downloaded"| 00001e30 20 2f 63 65 6e 74 72 65 0a 65 6e 64 63 61 73 65 | /centre.endcase| 00001e40 0a 75 6e 73 65 74 20 6e 65 77 73 45 78 69 73 74 |.unset newsExist| 00001e50 73 0a 75 6e 73 65 74 20 6e 72 61 74 65 0a 0a 23 |s.unset nrate..#| 00001e60 20 4f 70 74 69 6f 6e 61 6c 6c 79 20 66 69 72 65 | Optionally fire| 00001e70 20 75 70 20 21 54 54 46 4e 20 61 6e 64 20 21 4e | up !TTFN and !N| 00001e80 65 77 73 62 61 73 65 0a 23 20 4e 65 69 74 68 65 |ewsbase.# Neithe| 00001e90 72 20 61 72 65 20 73 74 61 72 74 65 64 20 69 66 |r are started if| 00001ea0 20 74 68 69 73 20 77 61 73 20 61 20 74 69 6d 65 | this was a time| 00001eb0 64 20 63 61 6c 6c 2e 0a 23 20 45 61 63 68 20 69 |d call..# Each i| 00001ec0 73 20 6f 6e 6c 79 20 73 74 61 72 74 65 64 20 6f |s only started o| 00001ed0 6e 6c 79 20 69 66 20 69 74 20 69 73 20 6e 6f 74 |nly if it is not| 00001ee0 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 | already running| 00001ef0 2e 0a 69 66 20 28 21 3f 65 71 20 25 74 69 6d 65 |..if (!?eq %time| 00001f00 64 20 79 65 73 29 20 69 66 20 28 21 3f 74 61 73 |d yes) if (!?tas| 00001f10 6b 20 54 54 46 4e 29 20 74 61 73 6b 20 2f 6e 61 |k TTFN) task /na| 00001f20 6d 65 3d 22 54 54 46 4e 22 20 3c 54 54 46 4e 24 |me="TTFN" <TTFN$| 00001f30 44 69 72 3e 2e 21 52 75 6e 0a 69 66 20 28 21 3f |Dir>.!Run.if (!?| 00001f40 65 71 20 25 74 69 6d 65 64 20 79 65 73 29 20 69 |eq %timed yes) i| 00001f50 66 20 28 21 3f 74 61 73 6b 20 4e 65 77 73 62 61 |f (!?task Newsba| 00001f60 73 65 29 20 74 61 73 6b 20 2f 6e 61 6d 65 3d 22 |se) task /name="| 00001f70 4e 65 77 73 62 61 73 65 22 20 3c 4e 65 77 73 42 |Newsbase" <NewsB| 00001f80 61 73 65 24 44 69 72 3e 2e 21 52 75 6e 0a 0a 23 |ase$Dir>.!Run..#| 00001f90 20 54 72 69 6d 20 74 68 65 20 44 65 6d 48 69 73 | Trim the DemHis| 00001fa0 74 20 66 69 6c 65 20 61 6e 64 20 72 65 74 75 72 |t file and retur| 00001fb0 6e 0a 63 61 6c 6c 20 74 72 69 6d 66 69 6c 65 20 |n.call trimfile | 00001fc0 3c 4e 4e 54 50 24 44 69 72 3e 2e 44 65 6d 48 69 |<NNTP$Dir>.DemHi| 00001fd0 73 74 0a 72 65 74 75 72 6e 20 31 0a 0a 23 23 23 |st.return 1..###| 00001fe0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00002010 23 23 23 23 23 23 23 23 23 0a 23 20 54 72 69 6d |#########.# Trim| 00002020 20 61 20 66 69 6c 65 0a 23 0a 23 20 54 69 6d 65 | a file.#.# Time| 00002030 20 74 68 65 20 66 69 6c 65 20 69 6e 20 25 70 31 | the file in %p1| 00002040 20 62 79 20 63 68 65 63 6b 69 6e 67 20 69 66 20 | by checking if | 00002050 69 74 20 69 73 20 35 30 30 30 20 62 79 74 65 73 |it is 5000 bytes| 00002060 20 6f 72 0a 23 20 6c 6f 6e 67 65 72 2e 20 54 68 | or.# longer. Th| 00002070 69 73 20 69 73 20 61 63 68 69 65 76 65 64 20 62 |is is achieved b| 00002080 79 20 63 6f 70 79 69 6e 67 20 74 68 65 20 6c 61 |y copying the la| 00002090 73 74 20 32 30 30 20 6c 69 6e 65 73 0a 23 20 69 |st 200 lines.# i| 000020a0 6e 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 |nto a temporary | 000020b0 66 69 6c 65 20 61 6e 64 20 74 68 65 6e 20 6d 6f |file and then mo| 000020c0 76 69 6e 67 20 74 68 65 20 74 65 6d 6f 72 61 72 |ving the temorar| 000020d0 79 20 66 69 6c 65 0a 23 20 6f 76 65 72 20 74 68 |y file.# over th| 000020e0 65 20 6f 72 69 67 69 6e 61 6c 2e 0a 23 23 23 23 |e original..####| 000020f0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00002120 23 23 23 23 23 23 23 23 0a 3a 74 72 69 6d 66 69 |########.:trimfi| 00002130 6c 65 0a 69 66 20 28 3f 6c 74 20 7b 3f 66 69 6c |le.if (?lt {?fil| 00002140 65 2f 73 69 7a 65 20 25 70 31 7d 20 35 30 30 30 |e/size %p1} 5000| 00002150 29 20 72 65 74 75 72 6e 0a 63 6f 70 79 2f 74 61 |) return.copy/ta| 00002160 69 6c 3d 32 30 30 20 25 70 31 20 25 70 31 2d 54 |il=200 %p1 %p1-T| 00002170 3b 64 65 6c 65 74 65 20 25 70 31 3b 6d 6f 76 65 |;delete %p1;move| 00002180 20 25 70 31 2d 54 20 25 70 31 0a 72 65 74 75 72 | %p1-T %p1.retur| 00002190 6e 20 31 0a 0a 23 23 23 23 23 23 23 23 23 23 23 |n 1..###########| 000021a0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 000021d0 23 0a 23 20 43 6f 6e 66 69 67 75 72 61 74 69 6f |#.# Configuratio| 000021e0 6e 0a 23 0a 23 20 52 65 61 64 20 74 68 65 20 73 |n.#.# Read the s| 000021f0 79 73 74 65 6d 20 63 6f 6e 66 69 67 75 72 61 74 |ystem configurat| 00002200 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 |ion information | 00002210 6f 72 20 63 61 6c 6c 20 73 65 74 75 70 0a 23 20 |or call setup.# | 00002220 69 66 20 61 20 63 6f 6e 66 69 67 20 66 69 6c 65 |if a config file| 00002230 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 0a 23 | doesn't exist.#| 00002240 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00002270 23 23 23 23 23 23 23 23 23 23 23 0a 3a 63 6f 6e |###########.:con| 00002280 66 69 67 75 72 65 0a 73 65 74 20 66 69 6c 65 6e |figure.set filen| 00002290 61 6d 65 20 7b 3f 66 69 6c 65 2f 65 78 70 61 6e |ame {?file/expan| 000022a0 64 20 73 6c 69 70 64 69 61 6c 3a 64 65 6d 6f 6e |d slipdial:demon| 000022b0 63 6f 6e 66 67 7d 0a 69 66 20 28 21 3f 66 69 6c |confg}.if (!?fil| 000022c0 65 20 25 66 69 6c 65 6e 61 6d 65 29 20 63 61 6c |e %filename) cal| 000022d0 6c 20 73 65 74 75 70 0a 6f 70 65 6e 2f 72 65 61 |l setup.open/rea| 000022e0 64 2f 69 64 3d 63 6f 6e 66 2f 65 72 72 6f 72 3d |d/id=conf/error=| 000022f0 22 72 65 74 75 72 6e 22 20 25 66 69 6c 65 6e 61 |"return" %filena| 00002300 6d 65 0a 72 65 61 64 2f 69 64 3d 63 6f 6e 66 2f |me.read/id=conf/| 00002310 65 6f 66 3d 22 67 6f 74 6f 20 63 6c 6f 73 65 63 |eof="goto closec| 00002320 6f 6e 66 22 20 77 70 6f 72 74 0a 72 65 61 64 2f |onf" wport.read/| 00002330 69 64 3d 63 6f 6e 66 2f 65 6f 66 3d 22 67 6f 74 |id=conf/eof="got| 00002340 6f 20 63 6c 6f 73 65 63 6f 6e 66 22 20 70 72 74 |o closeconf" prt| 00002350 6e 75 6d 0a 72 65 61 64 2f 69 64 3d 63 6f 6e 66 |num.read/id=conf| 00002360 2f 65 6f 66 3d 22 67 6f 74 6f 20 63 6c 6f 73 65 |/eof="goto close| 00002370 63 6f 6e 66 22 20 73 70 65 65 64 0a 72 65 61 64 |conf" speed.read| 00002380 2f 69 64 3d 63 6f 6e 66 2f 65 6f 66 3d 22 67 6f |/id=conf/eof="go| 00002390 74 6f 20 63 6c 6f 73 65 63 6f 6e 66 22 20 6e 6f |to closeconf" no| 000023a0 64 65 6e 61 6d 65 0a 72 65 61 64 2f 69 64 3d 63 |dename.read/id=c| 000023b0 6f 6e 66 2f 65 6f 66 3d 22 67 6f 74 6f 20 63 6c |onf/eof="goto cl| 000023c0 6f 73 65 63 6f 6e 66 22 20 70 61 73 73 77 6f 72 |oseconf" passwor| 000023d0 64 0a 72 65 61 64 2f 69 64 3d 63 6f 6e 66 2f 65 |d.read/id=conf/e| 000023e0 6f 66 3d 22 67 6f 74 6f 20 63 6c 6f 73 65 63 6f |of="goto closeco| 000023f0 6e 66 22 20 6d 65 72 63 75 72 79 0a 3a 63 6c 6f |nf" mercury.:clo| 00002400 73 65 63 6f 6e 66 0a 63 6c 6f 73 65 2f 69 64 3d |seconf.close/id=| 00002410 63 6f 6e 66 0a 72 65 74 75 72 6e 0a 0a 23 23 23 |conf.return..###| 00002420 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00002450 23 23 23 23 23 23 23 23 23 0a 23 20 53 65 74 75 |#########.# Setu| 00002460 70 0a 23 0a 23 20 41 73 6b 20 74 68 65 20 75 73 |p.#.# Ask the us| 00002470 65 72 20 66 6f 72 20 76 61 72 69 6f 75 73 20 70 |er for various p| 00002480 61 72 61 6d 65 74 65 72 73 20 28 6e 6f 74 65 20 |arameters (note | 00002490 74 68 61 74 20 74 68 69 73 0a 23 20 73 63 72 69 |that this.# scri| 000024a0 70 74 20 64 6f 65 73 6e 27 74 20 75 73 65 20 74 |pt doesn't use t| 000024b0 68 65 20 6d 65 72 63 75 72 79 20 69 6e 66 6f 72 |he mercury infor| 000024c0 6d 61 74 69 6f 6e 0a 23 23 23 23 23 23 23 23 23 |mation.#########| 000024d0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00002500 23 23 23 0a 3a 73 65 74 75 70 0a 69 6e 70 75 74 |###.:setup.input| 00002510 2f 70 72 6f 6d 70 74 3d 22 45 6e 74 65 72 20 53 |/prompt="Enter S| 00002520 65 72 69 61 6c 20 42 6c 6f 63 6b 20 44 72 69 76 |erial Block Driv| 00002530 65 72 20 4e 61 6d 65 22 20 77 70 6f 72 74 0a 69 |er Name" wport.i| 00002540 6e 70 75 74 2f 70 72 6f 6d 70 74 3d 22 45 6e 74 |nput/prompt="Ent| 00002550 65 72 20 53 65 72 69 61 6c 20 50 6f 72 74 20 4e |er Serial Port N| 00002560 75 6d 62 65 72 20 28 69 66 20 72 65 6c 65 76 61 |umber (if releva| 00002570 6e 74 29 22 20 70 72 74 6e 75 6d 0a 69 6e 70 75 |nt)" prtnum.inpu| 00002580 74 2f 70 72 6f 6d 70 74 3d 22 45 6e 74 65 72 20 |t/prompt="Enter | 00002590 59 6f 75 72 20 4d 6f 64 65 6d 2d 3e 43 6f 6d 70 |Your Modem->Comp| 000025a0 75 74 65 72 20 53 70 65 65 64 20 28 62 70 73 29 |uter Speed (bps)| 000025b0 3a 22 20 73 70 65 65 64 0a 69 6e 70 75 74 2f 70 |:" speed.input/p| 000025c0 72 6f 6d 70 74 3d 22 45 6e 74 65 72 20 59 6f 75 |rompt="Enter You| 000025d0 72 20 44 65 6d 6f 6e 20 4e 6f 64 65 6e 61 6d 65 |r Demon Nodename| 000025e0 3a 22 20 6e 6f 64 65 6e 61 6d 65 0a 69 6e 70 75 |:" nodename.inpu| 000025f0 74 2f 70 72 6f 6d 70 74 3d 22 45 6e 74 65 72 20 |t/prompt="Enter | 00002600 59 6f 75 72 20 50 61 73 73 77 6f 72 64 3a 22 20 |Your Password:" | 00002610 70 61 73 73 77 6f 72 64 0a 69 6e 70 75 74 2f 70 |password.input/p| 00002620 72 6f 6d 70 74 3d 22 45 6e 74 65 72 20 59 6f 75 |rompt="Enter You| 00002630 72 20 4d 65 72 63 75 72 79 20 50 49 4e 3a 22 20 |r Mercury PIN:" | 00002640 6d 65 72 63 75 72 79 0a 6f 70 65 6e 2f 69 64 3d |mercury.open/id=| 00002650 63 6f 6e 66 2f 77 72 69 74 65 20 25 66 69 6c 65 |conf/write %file| 00002660 6e 61 6d 65 0a 77 72 69 74 65 2f 69 64 3d 63 6f |name.write/id=co| 00002670 6e 66 20 25 77 70 6f 72 74 0a 77 72 69 74 65 2f |nf %wport.write/| 00002680 69 64 3d 63 6f 6e 66 20 25 70 72 74 6e 75 6d 0a |id=conf %prtnum.| 00002690 77 72 69 74 65 2f 69 64 3d 63 6f 6e 66 20 25 73 |write/id=conf %s| 000026a0 70 65 65 64 0a 77 72 69 74 65 2f 69 64 3d 63 6f |peed.write/id=co| 000026b0 6e 66 20 25 6e 6f 64 65 6e 61 6d 65 0a 77 72 69 |nf %nodename.wri| 000026c0 74 65 2f 69 64 3d 63 6f 6e 66 20 25 70 61 73 73 |te/id=conf %pass| 000026d0 77 6f 72 64 0a 77 72 69 74 65 2f 69 64 3d 63 6f |word.write/id=co| 000026e0 6e 66 20 25 6d 65 72 63 75 72 79 0a 63 6c 6f 73 |nf %mercury.clos| 000026f0 65 2f 69 64 3d 63 6f 6e 66 0a 72 65 74 75 72 6e |e/id=conf.return| 00002700 20 31 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23 | 1..############| 00002710 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00002740 0a 23 20 4d 61 6b 65 20 6d 65 6e 75 73 0a 23 23 |.# Make menus.##| 00002750 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00002780 23 23 23 23 23 23 23 23 23 23 0a 3a 6d 61 6b 65 |##########.:make| 00002790 6d 65 6e 75 73 0a 6d 65 6e 75 20 22 4d 61 69 6c |menus.menu "Mail| 000027a0 3a 63 61 6c 6c 20 64 6f 6d 61 69 6c 22 20 22 4e |:call domail" "N| 000027b0 65 77 73 3a 63 61 6c 6c 20 64 6f 6e 65 77 73 22 |ews:call donews"| 000027c0 20 22 42 6f 74 68 3a 63 61 6c 6c 20 64 6f 62 6f | "Both:call dobo| 000027d0 74 68 22 20 22 49 6e 74 65 72 61 63 74 69 76 65 |th" "Interactive| 000027e0 3a 63 61 6c 6c 20 69 6e 74 65 72 61 63 74 22 20 |:call interact" | 000027f0 22 51 75 69 74 3a 71 75 69 74 22 0a 72 65 74 75 |"Quit:quit".retu| 00002800 72 6e 20 31 0a |rn 1.| 00002805