home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-386-Vol-2of3.iso / b / bullet6.zip / BULLET6.NEW next >
Text File  |  1989-06-08  |  41KB  |  1,039 lines

  1. =======[ Reported Bugs and Fixes for RBBS-PC 17.2A  ]========
  2.  
  3. CONVENTIONS:
  4.     The temporary fixes are assigned numbers that  correspond  to  the
  5.     month,  day, and order in which they were reported.  The fixes are
  6.     dated (if there are any) following the problem  description.   The
  7.     lines   of   source   code  that  are  changed/modified/added  are
  8.     designated by the comment beginning in column 70 of "' iiMMDD#"
  9.     where ii is the initials of the person providing the fix.
  10.  
  11. To download this file, go to the file subsystem and download the file BULLET6
  12. e.g. the command "d;bullet6;y".
  13.  
  14. Note:  these fixes will be made available in a merge file AFTER they
  15. are fully tested.
  16.  
  17. Current merge file available:  None.
  18. These merges are to applied using BLED to the base code of 17.2A.
  19.  
  20.  
  21. -------------------------------------------------------------------
  22. RBBS-PC.EXE              05/28/89  7:00 PM EST  Release of CPC17-2A
  23. -------------------------------------------------------------------
  24.  
  25.                              Summary
  26.  
  27. EXE   FIX       Problem
  28. ---- --------   -------
  29. RBBS  -none-    Get parts of prompt in msg when entering it (very rare)
  30. RBBS  -none-    Timelock reapplied to downloads after a door
  31. RBBS  KG053001  Comments not going to message file when so configured
  32. RBBS  KG053101  Submenus with shared options not working
  33. RBBS  KG060101  Macro not recognized when has argument on cmd line
  34. RBBS  KG060102  "(R)" not being added to subj in replies
  35. RBBS  KG060301  Questionnaire chaining not working.
  36. RBBS  KG060302  Ques answers reduce embedded spaces to 1 when saved
  37. CNFG  KG060303  Config parm 165 displays too many dashes
  38. RBBS  KG060304  C)ontinuous stays on forever once picked in PUI
  39. RBBS  KG060401  Macro file display not working properly
  40. CNFG  RS060401  Parenthese confusing in yes/no prompts
  41. RBBS  RS060402  Message not alligned in MENU0
  42. RBBS  RS060403  Unable to change callers file in a subboard
  43. RBBS  RM060404  Able to use function keys in local mode when not sysop
  44. RBBS  MZ060301  Ques chain should write out header data if new data file
  45. RBBS  MZ060302  More prompt canceling smart text color
  46. RBBS  MZ060303  Graphics call spill over from W)ho scan onto next lines
  47. RBBS  KG060701  Macro in one place interferes with entry in another
  48. RBBS   -none-   Macros not substituted in stacked commands
  49. RBBS   -none-   Some stacked commands ignored
  50.  
  51. Contributors include:  RS - Randy Sun
  52.                        MZ - Mike Zakharoff
  53.                        RM - Robert McAdams
  54.  
  55. ------------------------[   052801 ]-------------------------
  56.  
  57. Problem.  Will get message edit prompt sometimes inside a line in a
  58. message.  Been in RBBS for at least 5 versions.  Overwrites part
  59. of line entered.  Not reproducible at will, and rare.
  60.  
  61. ------------------------[   052802 ]-------------------------
  62.  
  63. Problem.  When come back from a door, timelock on downloads gets
  64. reapplied.  Does not reapply to dooring.
  65.  
  66. ------------------------[ KG053001 ]-------------------------
  67.  
  68. Problem.   Comments going to a separate file even though there is
  69. room in message file and CONFIG says to put comments in message
  70. file.  Caused by new option to let messages grow, when max # of
  71. records exceeds max specified in config.
  72.  
  73. Solution:  Change RBBS-PC.BAS as follows:
  74.  
  75. 1800 MESSAGE.TO$ = "SYSOP"
  76.      ORIG.SUBJECT$ = "COMMENT"
  77.      GOSUB 1893
  78.      IF (ACTIVE.MESSAGES >= MAXIMUM.MESSAGES OR _
  79.         ((NOT MESSAGES.CAN.GROW) AND _                               ' KG053001
  80.         (NEXT.MESSAGE.RECORD + 5 > HIGHEST.MESSAGE.RECORD)) OR _     ' KG053001
  81.         NOT COMMENTS.AS.MESSAGES ) THEN _
  82.         A$ = "Want a REPLY?  Use "+MID$(ALL.OPTS$,5,1)+" instead.  Leave a comment? (Y/[N])" : _
  83.         GOSUB 12999 : _
  84.         IF NOT YES THEN _
  85.            CALL SKIPLINE (1) : _
  86.            RETURN _
  87.         ELSE SYSOP.COMMENT = TRUE : _
  88.              GOTO 2007
  89.      SYSOP.COMMENT = FALSE
  90.      SYSOP.MESSAGE = TRUE
  91.      FT$ = "comment"
  92.      GOTO 2010
  93.  
  94. ------------------------[ KG053101 ]-------------------------
  95.  
  96. Problem:  Shared options on submenus are not found.  Eg. if
  97. BLT is bulletin prefix, BLTA.MNU defines a submenu selected
  98. using "A".  If '1' is an option on BLTA.MNU, file BLTA1
  99. will not be found (which corresponds to selecting option '1'
  100. in submenu).
  101.  
  102. Solution:  Change RBBSSUB4.BAS as follows:
  103.  
  104. 59530 Z$ = B$(ANS.INDEX)
  105.       CALL ALLCAPS (Z$)
  106.       IF INSTR(RETURN.ON$,Z$) THEN _  'check whether calling pgm wants
  107.          EXIT SUB
  108.       IF INSTR("LH?",Z$) THEN _       'check whether caller wants help
  109.          GOTO 59515
  110.       IF INSTR(Z$,".") > 0 THEN _
  111.          GOTO 59532
  112.       FPRE$ = FRONT.OPT$
  113.       GOSUB 59538
  114.       IF (BF < 2) AND (NOT OK) THEN _
  115.          FPRE$ = MENU.FRONT$ : _                                     ' KG053101
  116.          GOSUB 59538
  117.       IF NEW.MENU THEN _
  118.          NEW.MENU = FALSE : _
  119.          GOTO 59515
  120.       IF OK THEN _
  121.          EXIT SUB
  122.  
  123. ------------------------[ KG060101 ]-------------------------
  124.  
  125. Problem.   Macros invoked with a command line argument are not
  126. being recognized as macros.  E.g.  if have macro READ.MCR, 
  127. will find if type "READ" but not if "READ 2+".
  128.  
  129. Solution:  Change RBBSSUB2.BAS as follows:
  130.  
  131. 1628 IF MACRO.SAVE > 0 THEN _
  132.         GSR.ARA$(MACRO.SAVE) = B$ : _
  133.         MACRO.SAVE = 0 : _
  134.         B$ = "" : _
  135.         FORCE.KEYBOARD = FALSE : _
  136.         GOTO 1525
  137.      IF (DISTANT.TGET > 0) OR (MACRO.TEMPLATE$ <> "") THEN _
  138.         CALL WIPELINE (38) : _
  139.         IF NOT NO THEN _
  140.            B$ = "" : _
  141.            FORCE.KEYBOARD = FALSE : _
  142.            GOTO 1525 _
  143.         ELSE Q = 0 : _
  144.              MACRO.TEMPLATE$ = "" : _
  145.              DISTANT.TGET = 0 : _
  146.              GOTO 1525
  147.      IF MACRO.ACTIVE OR ((NOT IN.STACK) AND INSTR(B$,".") > 0) THEN _ ' KG060189
  148.         EXIT SUB
  149.      CALL CHKMACRO (B$(1),FOUND)                                     ' KG060189
  150.      IF FOUND THEN _
  151.         GOTO 1525
  152.      EXIT SUB
  153.  
  154. ------------------------[ KG060102 ]-------------------------
  155.  
  156. Problem:  Replies to a message should take the same subject and
  157. put "(R)" in front of it.  "(R)" is not being added.
  158.  
  159. Solution:  Change RBBS-PC.BAS as follows:
  160.  
  161. 4621   IF USER.SECURITY.LEVEL < OPT.SEC(5) THEN _
  162.           VIOLATION$ = "MORE RE" : _
  163.           GOSUB 1380 : _
  164.           REPLY = FALSE : _
  165.           GOTO 4625
  166.        IF LEFT$(SUBJECT$,3) <> "(R)" THEN _
  167.           ORIG.SUBJECT$ = "(R)" + _                                  ' KG060102
  168.                      LEFT$(ORIG.SUBJECT$,22)
  169.  
  170. ------------------------[ KG060301 ]-------------------------
  171.  
  172. Problem:  Questionnaire chaining not working.   Returns every time to
  173. prompt to select questionnaire.
  174.  
  175. Solution:  Change RBBSSUB4.BAS as follows:
  176.  
  177.       SUB ASKUSERS STATIC
  178.       QUESTIONNAIRE.ABORTED = FALSE
  179.       QUESTIONNAIRE.CHAIN.STARTED = FALSE                            ' KG060301
  180.       REDIM A$(256)
  181.       REDIM WORK.ARA$(MAX.WORK.VAR),GSR.ARA$(MAX.WORK.VAR)
  182. '
  183. '
  184. ' *  LOAD SCRIPT CONTAINING THE QUESTIONS INTO THE A$ DIMENSION  *
  185. '
  186. '
  187. 64005 CHAT.AVAILABLE = FALSE
  188.       QUESTIONNAIRE.CHAIN = FALSE
  189.       LAST.QUES = 0
  190.       CALL GRAPHIC (USER.GRAPHIC.DEFAULT$,FILE.NAME$)                ' KG060301
  191.       IF NOT OK THEN _                                               ' KG060301
  192.          EXIT SUB                                                    ' KG060301
  193.       CALL READPARMS (A$(),2,1)
  194.       IF EC > 0 THEN _
  195.          EXIT SUB
  196.       APPEND.FILE.NAME$ = A$(1)
  197.       MAXIMUM.SECURITY.LEVEL = VAL(A$(2))
  198.       X = INSTR(A$(2)," ")
  199.            .
  200.            .
  201.            .
  202.  
  203. ------------------------[ KG060302 ]-------------------------
  204.  
  205. Problem:  When using space as a parse character (no semicolon), embedded
  206. multiple spaces are reduced to a single space in the user's reponse.  For
  207. example, the questionnaire response of "1 2  3   ." would be written out
  208. to the questionnaire data file as "1 2 3 ." instead of the original
  209. response typed.
  210.  
  211. Solution:  Change RBBSSUB2.BAS as follows:
  212.  
  213.      SUB PARSEIT STATIC
  214.      A = INSTR(B$,";")
  215.      IF A > 0 THEN _
  216.         PARSE.CHAR$ = ";" _
  217.      ELSE IF B$ <> SPACE$(LEN(B$)) THEN _
  218.              CALL TRIM (B$) : _
  219.              X$ = B$ : _                                             ' KG060302
  220.              A = INSTR(B$,"  ") : _
  221.              WHILE A > 0 : _
  222.                 B$ = LEFT$(B$,A - 1) + _
  223.                      MID$(B$,A + 1) : _
  224.                 A = INSTR(A,B$,"  ") : _
  225.              WEND : _
  226.              A = INSTR(B$," ") : _
  227.              IF A > 1 THEN _
  228.                 PARSE.CHAR$ = " " _
  229.              ELSE A = INSTR(B$,",") : _
  230.                   PARSE.CHAR$ = ","
  231.      IF A < 2 THEN _
  232.         B$(1) = B$ : _
  233.         EXIT SUB
  234.      B$(1) = LEFT$(B$,A - 1)
  235.      A = A + 1
  236.      EOL = FALSE
  237. 1640 B = INSTR(A,B$,PARSE.CHAR$)
  238.      C = B-A
  239.      IF C < 1 THEN _
  240.         EOL = TRUE : _
  241.         C = 128
  242.      DF$ = MID$(B$,A,C)
  243.      IF DF$ <> "" THEN _
  244.         Q = Q + 1 : _
  245.         B$(Q) = DF$ : _
  246.         CALL ALLCAPS(DF$) : _
  247.         X = INSTR("NS;/G;",DF$+";") : _
  248.         IF X > 0 THEN _
  249.            IF LEN(DF$) = 2 THEN _
  250.               Q = Q - 1 : _
  251.               NON.STOP = NON.STOP OR (X = 1) : _
  252.               AUTO.LOGOFF = AUTO.LOGOFF OR (X = 4)
  253.      IF NOT EOL AND Q < 50 THEN _
  254.         A = B + 1 : _
  255.         GOTO 1640
  256.      IF PARSE.CHAR$ <> ";" THEN _                                    ' KG060302
  257.         B$ = X$                                                      ' KG060302
  258.      END SUB
  259.  
  260. ------------------------[ KG060303 ]-------------------------
  261.  
  262. Problem:  Config parameter number 165 shows extra dashes beyond
  263. the normal boundary.  Can also get untrapped illegal function call
  264. when drive/path for message file is long.
  265.  
  266. Solution:  Change CNFG-SUB.BAS as follows:
  267.  
  268. 12470 DISPLAYED.PAGE.NUMBER = 9
  269.       GOSUB 30040
  270.       ' MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
  271.       MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD
  272.       MAX.ALLOWED.MSGS.FRM.DEF  = MAXIMUM.NUMBER.OF.MSGS
  273.       GOSUB 24800
  274.       LOCATE  3,1
  275.       PRINT "161. Maximum number of concurrent RBBS-PC's  -------" + STR$(MAXIMUM.NUMBER.OF.NODES)
  276.       MT$ = "single RBBS-PC copy "
  277.       IF MAXIMUM.NUMBER.OF.NODES <> 1 THEN _
  278.          MT$ = "concurrent RBBS-PC's" : _
  279.          SUBROUTINE.PARAMETER = 2 : _
  280.          IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 7 THEN _
  281.             SUBROUTINE.PARAMETER = 1 : _
  282.             CALL NETTYPE : _
  283.          ELSE CALL NETTYPE
  284.       IF NETWORK.TYPE = 6 THEN _
  285.          MT$ = "NETBIOS             "
  286.       IF NETWORK.TYPE = 7 THEN _
  287.          MT$ = "DoubleDOS           "
  288.       PRINT "162. Environment running " + MT$ + " ------ " + NETWORK.TYPE$
  289.       PRINT "163. RBBS-PC 'recycle' method when users log off --- " + RECYCLE.TO.DOS$
  290.       FILE$ = MAIN.MESSAGE.FILE$
  291.       GOSUB 30180
  292.       MAX.MSG.FILE.SIZE.FRM.DEF! = UG
  293.       PRINT "164. Number of records in the User File ------------";STR$(MAX.USR.FILE.SIZE.FRM.DEF)
  294.       PRINT "165. Number of records in the Message File ---------";STR$(MAX.MSG.FILE.SIZE.FRM.DEF!) ' KG060303
  295.       PRINT "166. Maximum number of messages allowed ------------" + STR$(MAX.ALLOWED.MSGS.FRM.DEF)
  296.       PRINT "167. Conference File Maintenance."
  297.       PRINT "168. Default extension for compressed files -------- " ; DEFAULT.EXTENSION$
  298.       PRINT "169. Message file GROWS in size as messages added -- " ; FNYESNO$(MESSAGES.CAN.GROW)
  299.       GOTO 12580
  300.  
  301. ------------------------[ KG060304 ]-------------------------
  302.  
  303. Problem:  Once you select C)ontinous (non-stop) in a
  304. programmable user interface, it remains on forever.
  305.  
  306. Solution:  Change RBBSSUB4.BAS as follows:
  307.  
  308. 59460 NON.STOP = (PAGE.LENGTH < 1)                                   ' KG060304
  309.       CALL BUFFILE (MENU.TO.DISPLAY$,X)
  310.  
  311. ------------------------[ KG060401 ]-------------------------
  312.  
  313. Problem:  When displaying a file using macro file display (*F), saying
  314. No to the more prompt does not work.  Display continues.   Also,
  315. macro recycles when ^k out and file display is last line in macro.
  316. And smart text not substituted in macro file display.
  317.  
  318. Solution:  Change RBBSSUB5.BAS as follows:
  319.  
  320. 63348 CALL TRIM (X$)            ' Print File
  321.       CALL FINDIT (X$)
  322.       IF NOT OK THEN _
  323.          GOTO 63336
  324.       LINES.PRINTED = 1
  325.       NON.STOP = (NON.STOP OR PAGE.LENGTH < 1)                       ' KG060401
  326. 63349 WHILE (NOT EOF(2) AND (NOT NO) AND ((NOT NON.STOP) AND (LINES.PRINTED < PAGE.LENGTH)) AND (SUBROUTINE.PARAMETER > -1)) ' KG060401
  327.          CALL READDIR (2,1)
  328.          GOSUB 63396                                                 ' KG060401
  329.          SUBROUTINE.PARAMETER = 5
  330.          CALL TPUT
  331.       WEND
  332.       DISTANT.TGET = 0
  333.       IF SUBROUTINE.PARAMETER < 0 THEN _
  334.          EXIT SUB
  335.       IF EOF(2) OR NO THEN _                                         ' KG060401
  336.          GOTO 63336
  337.       DISTANT.TGET = 2
  338.       CALL PAUSEEXIT
  339.       EXIT SUB
  340.  
  341. 63465 SUB PAUSEEXIT STATIC
  342.       ' CALL SKIPLINE (1)
  343.       SUBROUTINE.PARAMETER = 4
  344.       TURBO.KEY = -TURBO.KEY.USER
  345.       A$ = MORE.PROMPT$ + ">" + MID$("? ! ",2*TURBO.KEY+1,2)
  346.       FORCE.KEYBOARD = TRUE
  347.       NO.ADVANCE = TRUE
  348.       CALL TPUT
  349.       LINES.PRINTED = 0
  350.       B$ = ""                                                        ' KG060401
  351.       END SUB
  352.  
  353. Change RBBSSUB2.BAS as follows:
  354.  
  355. 1471 CALL SKIPLINE (1)
  356.      STOP.INTERRUPTS = FALSE
  357.      RET = TRUE
  358.      NO = TRUE                                                       ' KG060401
  359.      NON.STOP = FALSE
  360.      GOTO 1470
  361.  
  362. ------------------------[ RS060401 ]-------------------------
  363.  
  364. Problem.   Yes/no prompt in config has format "(Y)es or N)o)".   The
  365. parentheses are hard for the eye to group and are confusing.
  366.  
  367. Solution:  Change CNFG-SUB.BAS as follows:
  368.  
  369. 61200 CALL ASKRO (STRNG$+" Y)es or N)o",24,HJ$)                      ' RS060401
  370.       L = LEN(HJ$)
  371.       IF L < 1 OR L > 3 THEN _
  372.          GOTO 61207
  373.       CALL ALLCAPS(HJ$)
  374.       X = INSTR("NY",LEFT$(HJ$,1))
  375.       ON X GOTO 61210,61212
  376.  
  377. ------------------------[ RS060402 ]-------------------------
  378.  
  379. Problem.   The "Waiting for ring" message on the opening menu is not
  380. alligned with the rest of the menu.
  381.  
  382. Solution:  Change RBBSSUB2.BAS as follows:
  383.  
  384. 235 EIGHT.BIT = TRUE
  385.     SUBROUTINE.PARAMETER = -10
  386.     CALL CARRIER
  387.     IF SUBROUTINE.PARAMETER = 0 AND _
  388.        EXIT.TO.DOORS THEN _
  389.        CALL READPROF : _
  390.        SUBROUTINE.PARAMETER = 1 : _
  391.        GOTO 335
  392.     IF SUBROUTINE.PARAMETER = 0 AND _
  393.        EXPECT.ACTIVE.MODEM THEN _
  394.        BAUD.TEST = VAL(NETBAUD$) : _
  395.        CALL TESTREL (NETRELIABLE$) : _
  396.        GOTO 328
  397.     IF EXPECT.ACTIVE.MODEM OR _
  398.        EXIT.TO.DOORS THEN _
  399.        SUBROUTINE.PARAMETER = 4 : _
  400.        EXIT SUB
  401.     IF SUBROUTINE.PARAMETER = 0 THEN _
  402.        GOTO 324
  403.     PCJR = FALSE
  404.     IF COMPUTER.TYPE = 2 AND _
  405.        COM.PORT$ = "COM1" AND _
  406.        MODEM.STATUS.REGISTER = 1022 THEN _
  407.        MODEM.GO.OFFHOOK.COMMAND$ = CHR$(14) + _
  408.                                    "P" : _
  409.        PCJR = TRUE
  410.     CALL SYSMENU
  411.     IF PCJR THEN _
  412.        A$ = CHR$(14) + _
  413.             "I" _
  414.     ELSE A$ = MODEM.RESET.COMMAND$
  415.     CALL MODEMPUT (A$)
  416.     CALL DELAYIT (MODEM.INIT.WAIT.TIME)
  417.     IF PCJR THEN _
  418.        A$ = CHR$(14) + _   ' PC-JR'S MODEM COMMAND IDENTIFIER
  419.               "C 0," + _   ' SET "AUTO-ANSWER" OFF ON PC-JR'S MODEM
  420.               "S 1," + _   ' SET SPEED TO 300 BAUD ON PC-JR'S MODEM
  421.               "H" _        ' MANUALLY HANG UP THE PHONE (IF NOT ALREADY)
  422.     ELSE A$ = MODEM.INIT.COMMAND$
  423.     CALL MODEMPUT (A$)
  424.     IF PCJR THEN _
  425.        A$ = CHR$(14) + _
  426.             "F 4" : _
  427.        CALL MODEMPUT (A$)
  428.     RINGBACK = FALSE
  429.     LOCATE 16,55
  430.     IF REQUIRED.RINGS = 0 THEN _
  431.        CALL LPRNT("WAITING FOR CARRIER",0) : _
  432.        GOTO 237
  433.     IF MID$(MODEM.INIT.COMMAND$, _
  434.           INSTR(MODEM.INIT.COMMAND$,"S0") + 3,3) = "255" THEN _
  435.        CALL LPRNT("RING BACK SYSTEM",0) : _
  436.        RINGBACK = TRUE : _
  437.        GOTO 236
  438.     CALL LPRNT(" WAITING FOR RING ",0)                               ' RS060402
  439.  
  440. ------------------------[ RS060403 ]-------------------------
  441.  
  442. Problem.  Caller's file not switching to one specified in a subboard.
  443. Note:  the danger of having a different caller's file in a subboard is
  444. that if more than one user are in the same subboard using the shared
  445. DEF file, their activity will get intermixed.  On the other hand, ok
  446. for one node, and okay for multiple nodes if user different callers
  447. file for each node.  Allow sysop flexibility to specify caller's file
  448. even though some will regret doing it.
  449.  
  450. Change RBBSSUB1.BAS as follows:
  451.  
  452. 117 IF SUBROUTINE.PARAMETER <> -62 THEN _
  453.        IF PREV.READ$ = CONFIG.FILE$ THEN _
  454.           EXIT SUB _
  455.        ELSE PREV.READ$ = CONFIG.FILE$
  456.     CLOSE 2
  457.     BULLETIN.SAVE$ = BULLETIN.MENU$
  458.     CALL OPENWORK (2,CONFIG.FILE$)
  459.     CURRENT.DEF$ = CONFIG.FILE$
  460.     INPUT #2,DF$, _
  461.              DOWNLOAD.DRIVES$, _
  462.              SYSOP.PASSWORD.1$, _
  463.              SYSOP.PASSWORD.2$, _
  464.              SYSOP.FIRST.NAME$, _
  465.              SYSOP.LAST.NAME$, _
  466.              REQUIRED.RINGS, _
  467.              START.OFFICE.HOURS, _
  468.              END.OFFICE.HOURS, _
  469.              MINUTES.PER.SESSION!, _
  470.              DF, _
  471.              DF, _
  472.              UPLOAD.DIRECTORY$, _
  473.              EXPERT.USER.DEF, _
  474.              ACTIVE.BULLETINS, _
  475.              PROMPT.BELL.DEF, _
  476.              DF, _
  477.              MENUS.CAN.PAUSE, _
  478.              MENU$(1), _
  479.              MENU$(2), _
  480.              MENU$(3), _
  481.              MENU$(4), _
  482.              MENU$(5), _
  483.              MENU$(6), _
  484.              CONFERENCE.MENU$, _
  485.              DF, _
  486.              WELCOME.INTERRUPTABLE, _
  487.              REMIND.FILE.TRANSFERS, _
  488.              PAGE.LENGTH, _
  489.              MAX.MESSAGE.LINES.DEF, _
  490.              DOORS.AVAILABLE, _
  491.              DF$, _
  492.              MAIN.MESSAGE.FILE$, _
  493.              MAIN.MESSAGE.BACKUP$
  494.     INPUT #2, X$, _
  495.               COMMENTS.FILE$, _
  496.               MAIN.USER.FILE$, _
  497.               WELCOME.FILE$, _
  498.               NEWUSER.FILE$, _
  499.               MAIN.DIRECTORY.EXTENTION$
  500.     CALL BRKFNAME (X$,Y$,DF$,Z$,FALSE)
  501.     IF DF$ <> "" THEN _                                              ' RB060403
  502.        CALLERS.FILE$ = X$
  503.                .
  504.                .
  505.                .
  506.  
  507. ------------------------[ RM060404 ]-------------------------
  508.  
  509. Problem.   Sysop function keys available to local caller who logs on using
  510. Escape and is not sysop.
  511.  
  512. Solution:  Change RBBSSUB3.BAS as follows:
  513.  
  514. 30600 IF KEYBOARD.STACK$ = "" THEN _
  515.          KEY.PRESSED$ = INKEY$ _
  516.       ELSE KEY.PRESSED$ = KEYBOARD.STACK$ : _
  517.            KEYBOARD.STACK$ = ""
  518.       FUNCTION.KEY = 0
  519.       IF LEN(KEY.PRESSED$) <> 2 THEN _
  520.          GOTO 33970
  521.       KEY.PRESSED = ASC(RIGHT$(KEY.PRESSED$,1))
  522.       IF LOCAL.USER AND NOT SYSOP THEN _                             ' RM060404
  523.          KEY.PRESSED$ = "" : _
  524.          GOTO 33970
  525.       IF KEY.PRESSED => F1.KEY AND _
  526.          KEY.PRESSED <= F10.KEY THEN _
  527.              FUNCTION.KEY = KEY.PRESSED - 58 : _
  528.              GOTO 30610
  529.       IF KEY.PRESSED = 117 THEN _    'Ctrl-End
  530.          FUNCTION.KEY = 11
  531.       IF KEY.PRESSED = 73 THEN _     'PgUp
  532.          FUNCTION.KEY = 12
  533.       IF KEY.PRESSED = 72 THEN _     'up arrow
  534.          FUNCTION.KEY = 13
  535.       IF KEY.PRESSED = 80 THEN _     'Down arrow
  536.          FUNCTION.KEY = 14
  537.       IF KEY.PRESSED = 81 THEN _     'PgDn
  538.          FUNCTION.KEY = 15
  539.       IF KEY.PRESSED = 75 THEN _     'left arrow
  540.          FUNCTION.KEY = 16
  541.       IF KEY.PRESSED = 77 THEN _     'Right arrow
  542.          FUNCTION.KEY = 17
  543.       IF KEY.PRESSED = 141 THEN _    'CTRL-up arrow
  544.          FUNCTION.KEY = 18
  545.       IF KEY.PRESSED = 132 THEN _    'CTRL-PgUp (same as CTRL-UP)
  546.          FUNCTION.KEY = 18
  547.       IF KEY.PRESSED = 145 THEN _    'CTRL-down arrow
  548.          FUNCTION.KEY = 19
  549.       IF KEY.PRESSED = 118 THEN _    'CTRL-PgDn (same as CTRL-DOWN)
  550.          FUNCTION.KEY = 19
  551.       IF KEY.PRESSED = 115 THEN _    'CTRL-left arrow
  552.          FUNCTION.KEY = 20
  553.       IF KEY.PRESSED = 116 THEN _    'CTRL-right arrow
  554.          FUNCTION.KEY = 21
  555.  
  556. ------------------------[ MZ060301 ]-------------------------
  557.  
  558. Problem.  When do question chain and saving data, should write
  559. out header information if the append data file is different.
  560. Never writes out header in chained questionnaire.  "Chain" to
  561. a new data file should be treated not as a continuation of the
  562. previous questionnaire but as a new questionnaire.
  563.  
  564. Solution:  Change RBBSSUB4.BAS as follows:
  565.  
  566. (line 64003) 
  567.  
  568.       SUB ASKUSERS STATIC
  569.       QUESTIONNAIRE.ABORTED = FALSE
  570.       QUESTIONNAIRE.CHAIN.STARTED = FALSE                            ' KG060301
  571.       REDIM A$(256)
  572.       REDIM WORK.ARA$(MAX.WORK.VAR),GSR.ARA$(MAX.WORK.VAR)
  573.       PREV.APPEND$ = ""                                              ' MZ060301
  574.  
  575. 64005 CHAT.AVAILABLE = FALSE
  576.       QUESTIONNAIRE.CHAIN = FALSE
  577.       LAST.QUES = 0
  578.       CALL GRAPHIC (USER.GRAPHIC.DEFAULT$,FILE.NAME$)                ' KG060301
  579.       IF NOT OK THEN _                                               ' KG060301
  580.          EXIT SUB                                                    ' KG060301
  581.       CALL READPARMS (A$(),2,1)
  582.       IF EC > 0 THEN _
  583.          EXIT SUB
  584.       PREV.APPEND$ = APPEND.FILE.NAME$                               ' MZ060301
  585.       APPEND.FILE.NAME$ = A$(1)
  586.       MAXIMUM.SECURITY.LEVEL = VAL(A$(2))
  587.       X = INSTR(A$(2)," ")
  588.       IF X > 0 THEN _
  589.          IF USER.SECURITY.LEVEL < VAL(MID$(A$(2),X)) THEN _
  590.             CALL QTPUT1 ("Higher security needed for this questionnaire") : _
  591.             EXIT SUB
  592. '
  593. '
  594. ' *  THE FIRST RECORD OF THE SCRIPT FILE CONTAINS THREE PARAMETERS:
  595. ' *   1.  THE NAME OF THE FILE TO APPEND THE ANSWERS TO.
  596. ' *   2.  THE MAXIMUM SECURITY LEVEL THE + COMMAND CAN RAISE A USER SECURITY
  597. ' *   3.  THE MINIMUM SECURITY TO USE THIS QUESTIONNAIRE
  598. ' * e.g. 'C:XXX.DAT,6 5' writes answers to C:XXX.DAT, can raise to 6,
  599. ' *      and requires security 5 or more to access
  600.       SCRIPT.INDEX = 1
  601.       A$(SCRIPT.INDEX) = ACTIVE.USER.NAME$ + _
  602.                          " " + _
  603.                          DATE$ + _
  604.                          " " + _
  605.                          TIME$
  606.  
  607. 64410 SCRIPT.INDEX = SCRIPT.INDEX + 1
  608.       IF SCRIPT.INDEX > SCRIPT.MAX THEN _
  609.          GOTO 64500
  610.       IF LEFT$(A$(SCRIPT.INDEX),1) = ":" THEN _
  611.          QUESTION.SAVE$ = MID$(A$(SCRIPT.INDEX),2) : _
  612.          GOTO 64410
  613.       IF LEFT$(A$(SCRIPT.INDEX),1) = "!" AND _
  614.          LEN(A$(SCRIPT.INDEX)) < 2 THEN _
  615.          GOTO 64410
  616.       IF LEFT$(A$(SCRIPT.INDEX),1) = "!" THEN _
  617.          CALL PRNTWRKA (QUESTION.SAVE$) : _
  618.          CALL PRNTWRKA (MID$(A$(SCRIPT.INDEX),2))
  619.       IF SCRIPT.INDEX = 1 AND _
  620.          APPEND.FILE.NAME$ <> PREV.APPEND$ THEN _                    ' MZ060301
  621.          CALL PRNTWRKA (A$(SCRIPT.INDEX))
  622.       IF EC <> 0 THEN _
  623.          A$ = "Unrecoverable failure in script!" : _
  624.          SUBROUTINE.PARAMETER = 5 : _
  625.          CALL TPUT : _
  626.          GOTO 64500
  627.       GOTO 64410
  628.  
  629. ------------------------[ MZ060302 ]-------------------------
  630.  
  631. Problem.   Smart Text setting of color is disrupted by More prompt
  632. and taken out until another smart text color command encountered.  Should
  633. restore the last smart text color after more prompt.
  634.  
  635. Solution:
  636.  
  637. Add the following variable to RBBS-VAR.BAS:  LAST.SMART.COLOR$
  638.  
  639. Change RBBSSUB4.BAS as follows:
  640.  
  641. 58258 LAST.SMART.COLOR$ = SMART.HOLD$                                ' MZ060302
  642.       RETURN                                                         ' MZ060302
  643.  
  644. 58274 SMART.HOLD$ = FG.1$                   ' C1 Color 1
  645.       GOTO 58258                                                     ' MZ060302
  646. 58275 SMART.HOLD$ = FG.2$                   ' C2 Color 2
  647.       GOTO 58258                                                     ' MZ060302
  648. 58276 SMART.HOLD$ = FG.3$                   ' C3 Color 3
  649.       GOTO 58258                                                     ' MZ060302
  650. 58277 SMART.HOLD$ = FG.4$                   ' C4 Color 4
  651.       GOTO 58258                                                     ' MZ060302
  652. 58278 SMART.HOLD$ = EMPHASIZE.OFF$          ' C0 Reset color
  653.       LAST.SMART.COLOR$ = ""                                         ' MZ060302
  654.       RETURN
  655.  
  656. 59860 CALL QTPUT (EMPHASIZE.OFF$,0)
  657.       IF NOT HIGHLIGHT.OFF THEN _                                    ' MZ060302
  658.          CALL QTPUT (LAST.SMART.COLOR$,0)                            ' MZ060302
  659.       IF CANT.INTERRUPT THEN _
  660.          TURBO.KEY = 2 : _
  661.          A$ = "Press Any Key to continue" _
  662.       ELSE A$ = MORE.PROMPT$ + EXTRA.PRMPT$ + LEFT$(">",-EXPERT.USER)
  663.       X = LEN(A$) + 2
  664.       NO.ADVANCE = OVERWRITE
  665.       SUBROUTINE.PARAMETER = 1
  666.       IF EXTRA.PRMPT$ = "" AND TURBO.KEY = 0 THEN _
  667.          TURBO.KEY = -TURBO.KEY.USER
  668.       MACRO.MIN = 2
  669.       CALL TGET
  670.       IF SUBROUTINE.PARAMETER = -1 THEN _
  671.         EXIT SUB
  672.       TURBO.KEY = FALSE
  673.       NON.STOP = NON.STOP OR (INSTR(" Cc",B$) > 1)
  674.       CALL WIPELINE (X + LEN(B$))
  675.       IF CANT.INTERRUPT THEN _
  676.          NO = FALSE : _
  677.          EXIT SUB
  678.       IF INSTR(" Aa",B$) > 1 THEN _
  679.          ABORT.INDEX = 32000
  680.       IF NO THEN _
  681.          KEYBOARD.STACK$ = "" : _
  682.          COMMPORT.STACK$ = "" : _                                    ' MZ060302
  683.          LAST.SMART.COLOR$ = ""                                      ' MZ060302
  684.       END SUB
  685.  
  686. ------------------------[ MZ060303 ]-------------------------
  687.  
  688. Problem.   After do a w)ho scan, graphics can spill over into
  689. lines that follow.
  690.  
  691. Solution:  Change line 9801 of RBBSSUB2.BAS as follows:
  692.  
  693.      SUB WHOSON (NUM.NODES) STATIC
  694.      A1$ = ACTIVE.MESSAGE.FILE$
  695.      ACTIVE.MESSAGE.FILE$ = ORIG.MESSAGE.FILE$
  696.      CALL OPENMSG
  697.      FIELD 1, 128 AS MESSAGE.RECORD$
  698.      FOR NODE.INDEX = 2 TO NUM.NODES + 1
  699.         GET 1,NODE.INDEX
  700.         A$ = FG.1$ + "Node" + _
  701.              STR$(NODE.INDEX - 1) + FG.2$
  702.         REC.INDEX = VAL(MID$(MESSAGE.RECORD$,44,2))
  703.         IF REC.INDEX = 0 THEN _
  704.            REC.INDEX = -1
  705.         AX$ = MID$("      300  450 1200 2400 4800 960019200",(-5 * REC.INDEX ),5) + _
  706.               " BAUD: "
  707.         IF MID$(MESSAGE.RECORD$,55,2) = "-1" AND NOT SYSOP THEN _
  708.            Y$ = "SYSOP" + SPACE$(21) _
  709.         ELSE Y$ = MID$(MESSAGE.RECORD$,1,26)
  710.         AX$ = AX$ + FG.3$ + Y$
  711.         IF MID$(MESSAGE.RECORD$,40,2) <> "-1" THEN _
  712.            AX$ = AX$ + FG.4$ + MID$(MESSAGE.RECORD$,93,22)
  713.         IF MID$(MESSAGE.RECORD$,57,1) = "A" THEN _
  714.            A$ = A$ + "  Online at " + _
  715.                 AX$ _
  716.         ELSE IF NOT SYSOP THEN _
  717.                 A$ = A$ + _
  718.                      " Waiting for next caller" _
  719.              ELSE A$ = A$ + _
  720.                        " Offline at " + _
  721.                        AX$
  722.         CALL QTPUT1 (A$)
  723.      NEXT
  724.      ACTIVE.MESSAGE.FILE$ = A1$
  725.      CALL QTPUT (EMPHASIZE.OFF$,0)                                   ' MZ060303
  726.      END SUB
  727.  
  728. ------------------------[ KG060701 ]-------------------------
  729.  
  730. Problem:  A macro in 17.2A operates globally everywhere.  Hence
  731. the only thing suitable for a macro is something unlikely to be
  732. typed in more than one context.   This severely limits the value
  733. of macros, e.g. using "1" or "A" as a macro.  Need a way to confine
  734. macros to a particular context.
  735.  
  736. Solution:  Make the following changes.   This supports limiting a
  737. macro to a section or a particular command by adding "/<limit>"
  738. after security to use a macro on the 1st line.   E.g. "4/M" would
  739. mean to limit macro to callers with at least security 4 and in
  740. the main section, and "2/FD" means to limit macro to callers with 
  741. security 2 or higher and using the file download command.  Config
  742. is changed to allow nothing to be specified for a macro extension,
  743. which executes much faster than putting in a macro extension which
  744. is never found.
  745.  
  746. To RBBS-VAR.BAS add the variable LAST.COMMAND$ (note: changes to
  747. RBBS-VAR.BAS require all rbbs modules to be recompiled).
  748.  
  749. Make the following changes to RBBSSUB2.BAS:
  750.  
  751. (line 109)
  752.  
  753.       SUB VARINIT STATIC
  754.     ACKNOWLEDGE$ = CHR$(6)
  755.     ACKC$ = "C" + _
  756.             ACKNOWLEDGE$
  757.     ACTIVE.MENU$ = "B"
  758.     ACTIVE.MESSAGE$ = CHR$(225)
  759.     BACKSPACE$ = CHR$(8) + _
  760.                  CHR$(32) + _
  761.                  CHR$(8)
  762.     BACK.ARROW$ = CHR$(29) + _
  763.                   CHR$(32) + _
  764.                   CHR$(29)
  765.     BELL.RINGER$ = CHR$(7)
  766.     BULLETIN.MENU$ = ""
  767.     C.L = 24
  768.     CANCEL$ = CHR$(24)
  769.     COLOR.RESET$ = CHR$(27) + _
  770.                    "[00;37;40m"
  771.     CONFIG.FILENAME$ = "RBBS-PC.DEF"
  772.     CARRIAGE.RETURN$ = CHR$(13)
  773.     DELETED.MESSAGE$ = CHR$(226)
  774.     DOS.VERSION = 2
  775.     END.TRANSMISSION$ = CHR$(4)
  776.     ESCAPE$ = CHR$(27)
  777.     EXPECT.ACTIVE.MODEM = 0
  778.     FALSE = 0
  779.     F1.KEY = 59
  780.     F10.KEY = 68
  781.     GRN$ = "MAIN"
  782.     CALL SETHILITE (TRUE)
  783.     HOME.CONFERENCE$ = ""
  784.     IN.CONF.MENU = -1
  785.     LAST.COMMAND$ = "M "                                             ' KG060701
  786.          .
  787.          .
  788.          .
  789.  
  790. 1240 IF LEN(Z$) < 1 THEN _
  791.         WHERE.FOUND = 0 : _
  792.         EXIT SUB
  793.      CALL ALLCAPS (Z$)
  794.      Y$ = LEFT$(Z$,1)
  795.      WHERE.FOUND = INSTR(STRT.POS,ALL.OPTS$,Y$)
  796.      IF WHERE.FOUND = 0 THEN _  'Not found: decide whether to hunt further
  797.         IF STRT.POS < 2 OR RESTRICT.VALID.CMDS THEN _
  798.            GOTO 1242 _  ' fully searched or restricted
  799.         ELSE WHERE.FOUND = INSTR(1,ALL.OPTS$,Y$) : _ 'hunt further
  800.              GOTO 1242
  801.      IF WHERE.FOUND => BEG.LIBRARY THEN _
  802.         IF WHERE.FOUND < LEN(ALL.OPTS$) - 11 THEN _
  803.            IF LIBRARY.TYPE = 0 THEN _
  804.               WHERE.FOUND = INSTR(WHERE.FOUND+1,ALL.OPT$,Y$) : _
  805.               IF WHERE.FOUND = 0 THEN _
  806.                  WHERE.FOUND = INSTR(1,ALL.OPTS$,Y$) : _
  807.                  IF WHERE.FOUND >= BEG.LIBRARY OR WHERE.FOUND = 0 THEN _
  808.                     WHERE.FOUND = 0 : _
  809.                     GOTO 1242
  810.      IF NOT RESTRICT.VALID.CMDS THEN _
  811.         GOTO 1242            ' everything found valid
  812. '
  813. '
  814. ' * RESTRICT COMMANDS TO SUBSYSTEMS (EXCEPT GLOBAL AND SYSOP)
  815. '
  816. '
  817.      IF WHERE.FOUND > LEN(ALL.OPTS$) - 11 THEN _
  818.         IF USER.SECURITY.LEVEL < OPT.SEC(WHERE.FOUND) THEN _
  819.            WHERE.FOUND = 0 : _
  820.            EXIT SUB _
  821.         ELSE GOTO 1242                                               ' KG060701
  822.      IF MID$(ORIG.COMMANDS$,WHERE.FOUND,1) = "G" THEN _
  823.         GOTO 1242          ' ACCEPT GOODBYE/GRAPHICS                 ' KG060701
  824.      IF (WHERE.FOUND < STRT.POS) OR _
  825.         (STRT.POS < BEG.FILE AND WHERE.FOUND => BEG.FILE ) OR _
  826.         (STRT.POS < BEG.UTIL AND WHERE.FOUND => BEG.UTIL ) OR _
  827.         (STRT.POS < BEG.LIBRARY AND WHERE.FOUND => BEG.LIBRARY ) THEN _
  828.            WHERE.FOUND = 0                 ' REJECT: NOT IN SECTION
  829. 1242 IF WHERE.FOUND > 0 THEN _                                       ' KG060701
  830.         LSET LAST.COMMAND$ = ACTIVE.MENU$ + MID$(ORIG.COMMANDS$,WHERE.FOUND) : _
  831.         EXIT SUB                                                     ' KG060701
  832.      IF MACRO.ACTIVE OR LEN(Z$) <> 1 THEN _                          ' KG060701
  833.         EXIT SUB
  834.      CALL ACHKMAC (Z$,FOUND)
  835.      IF FOUND THEN _
  836.         CALL FDMACEXE : _
  837.         Z$ = B$(1) : _
  838.         GOTO 1240
  839.      END SUB
  840.  
  841. (line 1320)
  842.  
  843.      SUB CHKMACRO (STRNG$,MACRO.FOUND) STATIC
  844.      MACRO.FOUND = FALSE
  845.      IF MACRO.EXTENSION$ = "" THEN _                                 ' KG060701
  846.         EXIT SUB                                                     ' KG060701
  847.      IF LEN(STRNG$) < MACRO.MIN THEN _
  848.         MACRO.MIN = 1 : _
  849.         EXIT SUB
  850.      IF LEN(STRNG$) = 1 THEN _
  851.         TEMP$ = STRNG$ : _
  852.         CALL ALLCAPS (TEMP$) : _
  853.         IF INSTR(ALL.OPTS$,TEMP$) > 0 THEN _
  854.            EXIT SUB
  855.      CALL ACHKMAC (STRNG$,MACRO.FOUND)
  856.      END SUB
  857. 1325 ' $SUBTITLE: 'ACHKMAC - check if macro exists & process'
  858. ' $PAGE
  859. '
  860. '  NAME    -- ACHKMAC
  861. '
  862. '  INPUTS  -- PARAMETER             MEANING
  863. '             STRNG$           STRING TO CHECK IF IS A MACRO
  864. '             MACRO.DRVPATH$   DRIVE/PATH WHERE MACROS ARE
  865. '             MACRO.EXTENSION$ EXTENSION OF MACROS
  866. '             MACRO.OFF        FORCE NO MACRO TO BE FOUND
  867. '
  868. '  OUTPUTS -- MACRO.FOUND      WHETHER A MACRO WAS FOUND
  869. '             STRNG$           SUBSTITUTE FOR COMMANDS
  870. '             COMMPORT.STACK$  REST OF MACRO
  871. '                              0 IF NOT FOUND
  872. '
  873. '  PURPOSE -- Executes a macro if found.  Does not check if macro
  874. '             letter uses a command.
  875.      SUB ACHKMAC (STRNG$,MACRO.FOUND) STATIC
  876.      TEMP$ = STRNG$
  877.      CALL BRKFNAME (TEMP$,DF$,PREFX$,X$,FALSE)
  878.      IF TEMP$ = PREFX$ THEN _
  879.         FILNAME$ = MACRO.DRVPATH$ + STRNG$ + MACRO.EXTENSION$ _
  880.      ELSE FILNAME$ = STRNG$
  881.      CALL BADFILE (FILNAME$,A)
  882.      IF A > 1 THEN _
  883.         EXIT SUB
  884.      CALL GRAPHIC (USER.GRAPHIC.DEFAULT$,FILNAME$)
  885.      IF NOT OK THEN _
  886.         EXIT SUB
  887.      CLOSE 2
  888.      CALL OPENWORK (6,FILNAME$)
  889.      IF EC > 0 THEN _
  890.         EXIT SUB
  891.      CALL READDIR (6,1)
  892.      IF EC > 0 THEN _
  893.         EXIT SUB
  894.      CALL CHECKINT (A$)
  895.      IF EC > 0 OR USER.SECURITY.LEVEL < TESTED.INTEGER.VALUE THEN _
  896.         EXIT SUB
  897.      A = INSTR(A$,"/")                                               ' KG060701
  898.      IF A > 0 THEN _    ' Check macro constraint                     ' KG060701
  899.         X$ = RIGHT$(A$,LEN(A$)-A) : _                                ' KG060701
  900.         IF LEFT$(LAST.COMMAND$,LEN(X$)) <> X$ THEN _                 ' KG060701
  901.            EXIT SUB                                                  ' KG060701
  902.      MACRO.ACTIVE = TRUE
  903.      MACRO.FOUND = TRUE
  904.      MACRO.ECHO = TRUE
  905.      END SUB
  906.  
  907. 12025 ACTIVE.MENU$ = LEFT$(SECTION$,1)
  908.       LSET LAST.COMMAND$ = ACTIVE.MENU$ + " "                        ' KG060701
  909.       IF SHOW.SECTION THEN _
  910.          SECTION.PROMPT$ = SECTION$ _
  911.       ELSE SECTION.PROMPT$ = "Your"
  912.       IF COMMANDS.IN.PROMPT=0 THEN _
  913.           SECTION.OPTS$ = ""
  914.       COMMAND.PROMPT$ = SECTION.PROMPT$ + _
  915.                         " command" + _
  916.                         SECTION.OPTS$
  917.       END SUB
  918.  
  919. ------------------------[   060702 ]-------------------------
  920.  
  921. Problem.  Macros are never substituted inside a stacked command.
  922. E.g. if have a macro "D1.MCR" and say "J D1" will not substitute
  923. for "D1" but only say no such option.
  924.  
  925. Solution:  the stacking support in RBBS needs to be rewritten.
  926. Not difficult, but changes are too extensive to do in a mere
  927. bug fix.   Fix will be in 17.3.
  928.  
  929. ------------------------[   060703 ]-------------------------
  930.  
  931. Problem:  Multiple stacked commands are sometimes ignored.  E.g.
  932. "D;GAMES;R;S" will door to GAMES but the read since will be
  933. ignored.
  934.  
  935. Solution:  RBBS has never supported multiple stacked commands on
  936. the same level (such as D and R, both in main menu) - only into
  937. a single command.  Requires stacking code to be extensively
  938. rewritten.   Will have to await 17.3.
  939.  
  940.  
  941. ------------------------[   060704 ]-------------------------
  942.  
  943. Problem.  Config takes a lot of memory to compile.   Reduce code
  944. size.
  945.  
  946. Make the following changes to CONFIG.BAS.
  947.  
  948. 10000 ' CONFIG.BAS (RBBS-PC VERSION CPC17-2A)
  949.       ' by D.Thomas Mack
  950.       '   The Second Ring
  951.       '   39 Cranbury Dr.
  952.       '   Trumbull, CT. 06611
  953.       '
  954.       ' *******************************NOTICE**********************************
  955.       ' *  A limited license is granted to all users of this program and it's *
  956.       ' *  companion program, RBBS-PC (ver. CPC17-2A), to make copies of this *
  957.       ' *  program and distribute the copies to other users, on the following *
  958.       ' *  conditions                                                         *
  959.       ' *   1.   The copyright notices contained within this program are not  *
  960.       ' *        altered, bypassed, or removed.                               *
  961.       ' *   2.   The program is not to be disrtibuted to others in modified   *
  962.       ' *        form (i.e. the line numbers must remain the same).           *
  963.       ' *   3.   No fee is charged (or any other consideration received)      *
  964.       ' *        for coping or distributing these programs without an express *
  965.       ' *        written agreement with D. Thomas Mack, The Second Ring,      *
  966.       ' *        39 Cranbury Dr., Trumbul, CT. 06611                          *
  967.       ' *                                                                     *
  968.       ' *      Copyright (c) 1983-1989 D. Thomas Mack, The Second Ring        *
  969.       ' ***********************************************************************
  970. '     $INCLUDE: 'CNFG-VAR.BAS'
  971.       CLEAR
  972. '
  973. ' ****************************************************************************
  974. ' *  DISPLAY THE CONFIG TITLE PAGE
  975. ' ****************************************************************************
  976. '
  977.       WIDTH 80
  978.       CLS
  979.       NOT.YET.IN$ = "[Not Implemented]"  ' Msg used in config for parm not yet implemented
  980.       NONE.PICKED$ = "<none>"    ' Standardized message
  981.       NUM.FILES = 8
  982.       NUM.GLOBAL = 4
  983.       NUM.MAIN = 18
  984.       NUM.SYSOP = 7
  985.       NUM.UTILITY = 12
  986.       NUM.LIBRARY = 7
  987.       VERSION.NUMBER$ = "17.2A"
  988.       I! = FRE(C$)
  989.       KEY OFF
  990.       CALL CNFGINIT
  991.       PRINT TAB(60)"tm"
  992.       PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
  993.       PRINT
  994.       PRINT TAB(17)"Capital PC User Group User-Supported Software"
  995.       PRINT
  996.       X$ = "    "
  997.       PRINT "Copyright (c) 1983-1989 D. Thomas Mack, 39 Cranbury Dr., Trumbull, CT. 06611"
  998.       PRINT
  999.       PRINT X$;"    If you use RBBS-PC " + CONFIG.VERSION$ + " and find" ' KG060704
  1000.       PRINT X$;"    it valuable, consider contributing to"           ' KG060704
  1001.       PRINT ""
  1002.       PRINT X$;"                 Capital PC Software Exchange"
  1003.       PRINT X$;"                     Post Office Box 6128"
  1004.       PRINT X$;"                Silver Spring, Maryland  20906"
  1005.       PRINT
  1006.       PRINT X$;"    You are free to copy and share RBBS-PC provided" ' KG060704
  1007.       PRINT X$;"      1.  This program is not distributed in modified form."
  1008.       PRINT X$;"      2.  No fee or consideration is charged for RBBS-PC itself."
  1009.  
  1010.  
  1011. 16340 DELAY! = FNTI! + 15
  1012. '
  1013. ' * NOTIFY THE SYSOP OF THE CONDITIONS FOR USING RBBS-PC "DOORS"
  1014. '
  1015.       CLS
  1016.       PRINT "                ******Warning******"
  1017.       PRINT "IBM's DOS absolutely REQUIRES any software package running"
  1018.       PRINT "as a 'door' (i.e. via a communication port) to monitor the"
  1019.       PRINT "communication port!  Otherwise your system will be vulnerable" ' KG060704
  1020.       PRINT "to being hung -- and worse!!!   Be wary of using doors if" ' KG060704
  1021.       PRINT "don't THROUGHLY understand the doors section in RBBS-PC's" ' KG060704
  1022.       PRINT "documentation and the pitfalls of using 'doors'!"       ' KG060704
  1023.  
  1024. 16345 GOSUB 60440
  1025.       CLS
  1026.       PRINT "                ******Warning******"
  1027.       PRINT "Some environments require that you set the modem to answer"
  1028.       PRINT "on zero rings (i.e. 'auto-answer').  This is perilous to"
  1029.       PRINT "using doors because if a user in a door gets disconnected"
  1030.       PRINT "the modem is set to answer on the very next ring and someone who"
  1031.       PRINT "you may not want in the door or in DOS will find themselves"
  1032.       PRINT "able to do you grevious harm, though some environments and" ' KG060704
  1033.       PRINT "modems work fine."                                      ' KG060704
  1034.       PRINT ""                                                       ' KG060704
  1035.       CALL GETNUMYN ("Are you sure you want to use doors",SHOOT.YOURSELF) ' KG060704
  1036.       RETURN
  1037.  
  1038.   =======[ End Reported Bugs and Fixes ]=======
  1039.