home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / comm / rbbs2.zip / RSB21028.MRG < prev    next >
Text File  |  1990-10-28  |  11KB  |  230 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against 17.3A\RBBSSUB2.BAS to produce 17.3B\RBBSSUB2.BAS
  3. * 17.3A\RBBSSUB2.BAS:  Date 9-25-1990  Size 138257 bytes
  4. * ------------[ Created 10-28-1990 12:00:01 ]------------
  5. * REPLACING old line(s) by new
  6. ' $linesize:132
  7. * ------[ first line different ]------
  8. ' $title: 'RBBSSUB2.BAS 17.3B, Copyright 1986 - 90 by D. Thomas Mack'   ' DA081003
  9. '  Copyright 1990 by D. Thomas Mack, all rights reserved.
  10. '  Name ...............: RBBSSUB2.BAS
  11. '  First Released .....: February 11, 1990
  12. '  Subsequent Releases.: August 26, 1990; October 28, 1990
  13. '  Copyright ..........: 1986 - 1990
  14. '  Purpose.............: The Remote Bulletin Board System for the IBM PC,
  15. '     RBBS-PC.BAS utilizes a lot of common subroutines.  Those that do not
  16. '     require error trapping are incorporated within RBBSSUB 2-5 as
  17. '     separately callable subroutines in order to free up as much
  18. '     code as possible within the 64K code segment used by RBBS-PC.BAS.
  19. '  Parameters..........: Most parameters are passed via a COMMON statement.
  20. '
  21. ' Subroutine  Line               Function of Subroutine
  22. '   Name     Number
  23. '  Macro          1320  Check/execute macro
  24. '  AnswerIt        200  Answer the telephone when it rings
  25. '  ASCIICodes      129  Allow a CONFIG string to have any ASCII value
  26. '  BadChar         455  Check user name for invalid characters
  27. '  BadName       20235  Check for system crash attempt with bad file name
  28. '  Baud450        5507  Allow 300 baud callers to bump up to 450 baud
  29. '  CheckRatio    20096  Test upload/download ratio
  30. '  CheckMacro     1242  Checks for macro and processes
  31. '  CopyRight        97  Display RBBS-PC's copyright notice
  32. '  DEFALTU        9600  Write out the user's defaults
  33. '  DenyAccess     1386  Downgrade security so access denied
  34. '  DoorExit      10983  Set up a .BAT file to exit RBBS-PC to a "door"
  35. '  DosExit       10934  Set up a .BAT file to exit to DOS (second level)
  36. '  EditALine      2618  Edits a single line
  37. '  EditDef         120  Edit configuration parameters
  38. '  FileNameCheck 20240  Matches file name to a prefix & extension
  39. '  GetArc        20140  Handle request for verbose listing
  40. '  GetCommand      101  Get RBBS-PC's node id from command line
  41. '  GetTime        9140  Calculates callers elapsed time (hh,mm,ss)
  42. '  GoIdle           90  Release resources when waiting for keyboard input
  43. '  KillMsg        3952  Delete old or unnecessary messages
  44. '  Line25          945  Build and/or update line 25 of RBBS-PC's local screen
  45. '  LineEdit       3700  Edit a line while minimizing string space consumption
  46. '  LogError      13660  Log error message to CALLERS file
  47. '  LPrnt          1480  Subroutine to write to local display
  48. '  MLInit            8  Handle MultiLink initialization/de-initialization
  49. '  MsgProt        2055  Sets protection for a message
  50. '  MessageTo      2018  Sets who a message is to
  51. '  PageLen        5200  Change page length
  52. '  ParseIt        1637  Parses a string
  53. '  PassWrd         660  Verify user & message passwords
  54. '  PopCmdStack    1650  Get user input, 1st checking command stack
  55. '  PScrn          1483  Print to display
  56. '  QuickLPrnt     1482  Quickly writes count of blocks on file transfer
  57. '  QuickTPut      1478  Fast, but limited, "TPut" equivalent
  58. '  QuickTPut1     1478  Outputs short string following by CR LF
  59. '  RBBSExit      10992  RBBS-PC exit to transfer control to other programs
  60. '  RecoverMsg    10410  Recover a deleted message
  61. '  RemNonAlf      5100  Removes non-alpha characters from a string
  62. '  RingCaller     1636  Ring caller's bell and put message in emphasis
  63. '  SetBaud        1654  Set baud rate in the 8250 chip of the RS232 interface
  64. '  SetCrLf        1496  Set up the necessary carriage return/line feed string
  65. '  SetSection    12000  Set the proper section prompts (main, file, util, libr)
  66. '  SetThread      4554  Set up request for threading thru messages
  67. '  SkipLine       1485  Write a # of blank lines to the communications port
  68. '  SearchCmd      1238  Searches list of commands in RBBS for a request
  69. '  SecViolation   1380  Process a security violation
  70. '  SysMenu         112  Displays sysop menu/status
  71. '  SysopChat      4773  Sysop and caller chat
  72. '  TestRel         336  Tests for Reliable connect
  73. '  TGet           1498  Read a line from the communications port
  74. '  TPut           1396  Write a line to the communications port
  75. '  Trim            105  Strip leading and trailing blanks from a string
  76. '  TrimTrail       107  Strip off specified string off end of another string
  77. '  UntilRight    12878  Ask a question until user says answer is right
  78. '  UpdateU       10600  Updates the user record on loging off/exiting RBBS-PC
  79. '  VarInit         109  Initialize system variables
  80. '  ViewHelp       1330  Processes help command
  81. '  WhoCheck       2250  Checks whether a user exists in user file
  82. '  WhosOn         9801  Report status of each node - who's on
  83. '  WordInFile    10976  Find a whole word within a file/menu
  84. '
  85. '  $INCLUDE: 'RBBS-VAR.BAS'
  86. '
  87. * REPLACING old line(s) by new
  88. 97 '  $SUBTITLE: 'CopyRight - subroutine to display RBBS-PC copyright'
  89. '  $PAGE
  90. '
  91. '  NAME    -- CopyRight
  92. '
  93. '  INPUTS  --  NONE
  94. '
  95. '  OUTPUTS --  NONE
  96. '
  97. '  PURPOSE --  To display RBBS-PC's copyright notice on the local screen
  98. '
  99.       SUB CopyRight STATIC
  100.    ZWasA = (ZRecycleToDos OR ZDebug OR ZNodeRecIndex > 2)
  101.    IF ZWasA THEN _
  102.       EXIT SUB
  103.    WIDTH 80
  104.    REDIM ZOutTxt$(11)
  105. * ------[ first line different ]------
  106.    ZOutTxt$(1) = "If you use RBBS-PC 17.3B, please consider contributing to" ' KG102201
  107.    ZOutTxt$(2) = ""
  108.    ZOutTxt$(3) = "             Capital PC Software Exchange"
  109.    ZOutTxt$(4) = "                 Post Office Box 6128"
  110.    ZOutTxt$(5) = "            Silver Spring, Maryland  20906"
  111.    ZOutTxt$(6) = ""
  112.    ZOutTxt$(7) = "You are free to copy/share RBBS-PC 17.3B provided" ' KG102201
  113.    ZOutTxt$(08)= "  1.  This program is distributed unmodified"
  114.    ZOutTxt$(09)= "  2.  No fee or consideration is charged for RBBS-PC itself"
  115.    ZOutTxt$(10)= "  3.  This notice is not bypassed or removed."
  116.    CLS
  117.    KEY OFF
  118.    LOCATE ,,0
  119.    ZSnoop = -1
  120.    ZLocalUser = -1
  121.    CALL LPrnt(SPACE$(60) + "tm",1)
  122.    CALL LPrnt(SPACE$(16) + STRING$(15,205) + " U S E R W A R E " + STRING$(15,205),1)
  123.    CALL SkipLine(1)
  124.    CALL LPrnt(SPACE$(17) + "Capital PC User Group User-Supported Software",1)
  125.    CALL SkipLine (1)
  126.    CALL LPrnt(SPACE$(5) + CHR$(214) + STRING$(66,196) + CHR$(183),1)
  127.    FOR WasI = 1 TO 10
  128.       CALL LPrnt(SPACE$(5) + CHR$(186) + "    " + ZOutTxt$(WasI) + SPACE$(62 - LEN(ZOutTxt$(WasI))) + CHR$(186),1)
  129.    NEXT
  130.    CALL LPrnt(SPACE$(5) + CHR$(211) + STRING$(66,196) + CHR$(189),1)
  131.    CALL LPrnt(SPACE$(5) + "Copyright (c) 1983-90 Tom Mack, 39 Cranbury Drive, Trumbull, CT 06611",1)
  132.    CALL DelayTime (8)
  133.    ZSnoop = 0
  134.    END SUB
  135. * REPLACING old line(s) by new
  136. 10983 ' $SUBTITLE: 'DoorExit -- Setup to exit to a "door"'
  137. ' $PAGE
  138. '  NAME    -- DoorExit
  139. '
  140. '  INPUTS  -- PARAMETER             MEANING
  141. '             ZMultiLinkPresent
  142. '             ZNodeID$
  143. '             ZRBBSBat$
  144. '             ZWasZ$
  145. '
  146. '  OUTPUTS -- ZWasQ                    NUMBER OF LINES TO WRITE OUT TO
  147. '                                      ZRCTTYBat$
  148. '             ZUserIn$()               LINES TO WRITE OUT TO ZRCTTYBat$
  149. '
  150. '  PURPOSE -- Set up ZUserIn$() and ZWasQ in order to call "EXITRBBS" and
  151. '             exit RBBS-PC to invoke another program
  152. '
  153.       SUB DoorExit (ReqDoorsDef) STATIC                              ' KG032502
  154.       IF ZWasZ$ = "" OR _
  155.          ZWasZ$ = "NONE" THEN _
  156.          EXIT SUB
  157.       CALL FindIt (ZWasZ$)
  158.       IF NOT ZOK THEN _
  159.          GOTO 10986
  160.       CALL BreakFileName (ZWasZ$,WasX$,ExitTo$,ExitMethod$,ZFalse)   ' KG032501
  161.       ExitMethod$ = ""
  162.       ZDooredTo$ = ExitTo$
  163.       CALL FindIt (ZDoorsDef$)
  164. * ------[ first line different ]------
  165.       IF NOT ZOK THEN _
  166.          IF ReqDoorsDef THEN _                                       ' KG032502
  167.             EXIT SUB _                                               ' KG032502
  168.          ELSE ExitTo$ = ExitTo$ + " " + ZNodeID$ : _                 ' KG032502
  169.               GOTO 10989                                             ' KG032502
  170. * REPLACING old line(s) by new
  171. 20235 ' $SUBTITLE: 'BadName - subroutine to find bad file names'
  172. ' $PAGE
  173. '
  174. '  NAME    -- BadName
  175. '
  176. '  INPUTS  --     PARAMETER                    MEANING
  177. '               ZActiveMessageFile$
  178. '               ZActiveUserFile$
  179. '               ZCallersFile$
  180. '               ZCmntsFile$
  181. '               CONFIG.FILEANAME$
  182. '               ZMainMsgBackup$
  183. '               ZMainMsgFile$
  184. '               ZMaxViolations
  185. '               ZPswdFile$
  186. '               ZRBBSBat$
  187. '               ZRCTTYBat$
  188. '               ZSubDir$()
  189. '               ZSubDirIndex
  190. '               ZViolation$
  191. '               ZViolationsThisSession
  192. '               ZWasZ$                          NAME OF FILE
  193. * ------[ first line different ]------
  194. '               ProtectExt              -1 if check for extension alone
  195. '                                        0 to allow any extension
  196. '
  197. '  OUTPUTS  -- BadFileNameIndex         1 = FILE NAME IS OK
  198. '                                       2 = SECURITY BREACH TRIED    ' KG101201
  199. '
  200. '  PURPOSE -- To protect RBBS-PC against the use of bad file names
  201. '             to either crash the system or to breach RBBS-PC's security
  202. '
  203.       SUB BadName (BadFileNameIndex,ProtectExt) STATIC               ' KG101201
  204. '
  205. '
  206. ' *  TEST FOR SYSTEM FILE ATTEMPT
  207. '
  208.       BadFileNameIndex = 2
  209.       ZWasZ$ = ZFileName$
  210.       CALL BreakFileName (ZFileName$,DR$,Prefix$,Extension$,ZFalse)
  211.       IF LEN(Extension$) = 3 AND ProtectExt THEN _                   ' KG101201
  212.          IF INSTR("DEF,MNU,OLD,PUI,BAK,",Extension$+",") > 0 THEN _
  213.             EXIT SUB
  214.       ZOK = 0
  215.       CALL FileNameCheck (ZActiveMessageFile$,Prefix$,Extension$)
  216.       CALL FileNameCheck (ZActiveUserFile$,Prefix$,Extension$)
  217.       CALL FileNameCheck (ZCallersFile$,Prefix$,Extension$)
  218.       CALL FileNameCheck (ZCmntsFile$,Prefix$,Extension$)
  219.       CALL FileNameCheck (ZFileSecFile$,Prefix$,Extension$)
  220.       CALL FileNameCheck (ZMainMsgBackup$,Prefix$,Extension$)
  221.       CALL FileNameCheck (ZOrigMsgFile$,Prefix$,Extension$)
  222.       CALL FileNameCheck (ZOrigUserFile$,Prefix$,Extension$)
  223.       CALL FileNameCheck (ZPswdFile$,Prefix$,Extension$)
  224.       CALL FileNameCheck (ZRBBSBat$,Prefix$,Extension$)
  225.       CALL FileNameCheck (ZRCTTYBat$,Prefix$,Extension$)
  226.       CALL FileNameCheck (ZConfigFileName$,Prefix$,Extension$)
  227.       IF ZOK = 0 THEN _                                              ' KG101201
  228.          BadFileNameIndex = 1                                        ' KG101201
  229.       END SUB
  230.