home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / arexx / rexxserv.lzh / Answer.baud
Encoding:
Text File  |  1989-07-14  |  3.1 KB  |  127 lines

  1. /* Answer.baud        Executed by Baud Bandit when RING is detected. */
  2.  
  3. /* set up a list of names and passwords. expand as needed (all uppercase) */
  4. names.      = '(not found)'
  5. names.GREG  = 'NOT'
  6. names.DARYL = 'PUNK'
  7.  
  8. Send 'ATA\r'        /* Answer command */
  9. pull string        /* Modems send a linefeed before responce */
  10. pull string        /* Get modem responce */
  11. Msg '(' string ')'    /* Display it local (DEBUG) */
  12.  
  13. if left(string,7) ~= 'CONNECT' then exit
  14.  
  15. Remote ON    /* Enable remote echo */
  16.  
  17. /* Welcome message */
  18. say '0C'x || 'Welcome to the Baud Bandit remote server demo.'
  19. say ''
  20.  
  21. /* Ask for first name */
  22. options prompt 'Please enter first name: '
  23. pull name
  24.  
  25. /* see if name is in database */
  26. if names.name = '(not found)' then do
  27.     say 'Private system, access denied.'
  28.     Remote OFF  /* shut off remote echo.  or something bad happens */
  29.     Send '\ah'  /* Amiga-H */
  30.     exit
  31.   end
  32.  
  33. /* Ask for password */
  34. options prompt 'Password: '
  35. pull password
  36.  
  37. /* see if password matches what we have */
  38. if names.name ~= password then do
  39.     say 'Password incorrect, access denied.'
  40.     Remote OFF
  41.     Send '\ah'
  42.     exit
  43.   end
  44.  
  45.  
  46. /* get current data directory */
  47. OPTIONS RESULTS
  48. Status Dir
  49. directory = result
  50.  
  51. /* Get current protocol */
  52. Status Trans
  53. protocol = RESULT
  54.  
  55. do while string ~= 'G'    /* continue loop untill [G]oodbye */
  56.  
  57.     say ''
  58.     say ' --------- Main Menu ---------'
  59.     say ''
  60.     say ' [L]ist     [U]pload'
  61.     say ' [P]rotocol [D]ownload'
  62.     say ' [G]oodbye  [R]ead text file'
  63.     say ' [H]elp'
  64.     say ''
  65.  
  66.     /* make a nice prompt */
  67.     options prompt 'Main > '
  68.  
  69.     /* pull command & arguments */
  70.     parse upper pull string ' ' arg
  71.  
  72.     options prompt 'Filename: '
  73.  
  74.     if left(string,1) = 'L' then address command 'LIST' directory 'SORT'
  75.     else if left(string,1) = 'P' then do
  76.         if length(arg) = 0 then do    /* show protocol menu */
  77.             say ''
  78.             say '[W]- WXModem'
  79.             say '[X]- XModem-CRC'
  80.             say '[K]- XModem-1K'
  81.             say '[Y]- YModem-batch'
  82.             say '[G]- YModem-G'
  83.             say '[Z]- ZModem'
  84.             say '[A]- ZModem (Upload anytime)'
  85.             say ''
  86.             options prompt protocol '> '
  87.             pull arg
  88.          end
  89.         set arg
  90.         Status Transfer
  91.         protocol = RESULT
  92.      end
  93.     else if left(string,1) = 'D' then do
  94.         if length(arg) = 0 then pull arg  /* no filename given */
  95.         if length(arg) ~= 0 then do      /* check for filename */
  96.             say 'Starting' protocol 'transfer'
  97.             Send '\au-' || arg      /* give Amiga-U with name */
  98.          end
  99.      end
  100.     else if left(string,1) = 'U' then do
  101.         if length(arg) = 0 then pull arg  /* no filename given */
  102.         if length(arg) ~= 0 then do      /* check for filename */
  103.             say 'Starting' protocol 'transfer'
  104.             Send '\ad-' || arg      /* give Amiga-D with name */
  105.          end
  106.      end
  107.     else if left(string,1) = 'H' then do
  108.         say ' Command summary:'
  109.         say ' L    List files in directory'
  110.         say ' P    Protocol menu.  Or give option at main prompt (P Z)'
  111.         say ' U    Upload file.    Optional ( U filename )'
  112.         say ' D    Download file.  Optional ( D filename )'
  113.         say ' R    Read text file. Optional ( R filename )'
  114.         say ' G    Hangup'
  115.      end
  116.     else if left(string,1) = 'R' then do
  117.         if length(arg) = 0 then pull arg  /* no filename given */
  118.         if length(arg) ~= 0 then
  119.             address command 'CD' directory || '0A'x 'Type' arg
  120.      end
  121.   end
  122.  
  123. say 'Goodbye' name || ', thank you for calling.'
  124. Remote off
  125. Send '\ah'
  126.  
  127.