home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / BBS_UTIL / BM0406_A.ZIP / CONF0406.ZIP / CONF0406.MRG < prev    next >
Text File  |  1994-04-06  |  14KB  |  308 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against CONFIG.BAS to produce CONFIG.NEW
  3. * CONFIG.BAS:  Date 6-20-1992  Size 157813 bytes
  4. * BusiMod (tm) mods for RBBS v17.4 - (c) 1993,94 by respective authors
  5. * RBBS v17.4 (c) 1986,1992 by D Thomas Mack
  6. * ------------[ Created 04-06-1994 22:00:00 ]------------
  7. * REPLACING old line(s) by new
  8. 12160 KEY OFF
  9. '
  10. ' * IF A MESSAGE FILE EXISTS, READ IN THE PARAMETERS IN IT.
  11. '
  12.       FILE$ = MAIN.MESSAGE.FILE$
  13.       GOSUB 30000
  14.       NO.OLD.FILE = FALSE
  15.       IF OKAY THEN _           ' IF MESSAGE FILE EXISTS, READ CHECKPOINT RECORD
  16.          GOTO 12170
  17.       NO.OLD.FILE = TRUE
  18.       A$ = "Message file " + MAIN.MESSAGE.FILE$ + " not found.  Create new one"
  19.       CALL GETNUMYN (A$,AB)
  20.       IF NOT AB THEN _
  21.          IF CONFERENCE.MODE > 0 THEN _
  22.             MAIN.MESSAGE.FILE$ = MAINMSG$ : _
  23.             MAIN.USER.FILE$ = MAINUSR$ : _
  24.             GOTO 12151 _
  25.          ELSE _
  26.             SYSTEM
  27.       CALLS.TODATE! = 0                                 ' FIRST MSG#    -- 0
  28.       FIRST.USER.RECORD = 1                             ' USERS file    -- first record number
  29.       CURRENT.USER.COUNT = FIRST.USER.RECORD            ' USERS file    -- next available record number
  30.       HIGHEST.USER.RECORD = MAX.USR.FILE.SIZE.FRM.DEF   ' USERS file    -- last record number
  31.       FIRST.MESSAGE.RECORD = 2+MAXIMUM.NUMBER.OF.NODES  ' MESSAGES file -- first record of messages
  32.       NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD        ' MESSAGES file -- next available record number
  33. * ------[ first line different ]------
  34.       HIGHEST.MESSAGE.RECORD! = 5 * MAX.ALLOWED.MSGS.FRM.DEF _       ' RM12279301
  35.                                + 1 _
  36.                                + MAXIMUM.NUMBER.OF.NODES ' MESSAGES file -- last record number
  37.       MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF  ' MESSAGES file -- maximum number of messages
  38.       B1 = MAXIMUM.NUMBER.OF.NODES
  39.       B3! = HIGHEST.MESSAGE.RECORD!                                  ' RM12279301
  40.       GOSUB 22080
  41.       GOSUB 30450                        ' UPDATE CHECKPOINT RECORD
  42. * REPLACING old line(s) by new
  43. 12170 GOSUB 30040                        ' READ THE CHECKPOINT RECORD
  44. * ------[ first line different ]------
  45.       MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD!           ' RM12279301
  46.       MAX.ALLOWED.MSGS.FRM.DEF  = INT((HIGHEST.MESSAGE.RECORD! - FIRST.MESSAGE.RECORD) / 5) + 1 ' RM12279301
  47.       IF MAX.ALLOWED.MSGS.FRM.DEF > 9999 THEN _            'STUNY174/020901
  48.          MAX.ALLOWED.MSGS.FRM.DEF = 9999                   'STUNY174/020901
  49.       IF MAXIMUM.NUMBER.OF.MSGS < 1 THEN _
  50.          MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF : _
  51.          GOSUB 30450                     ' READ THE CHECKPOINT RECORD
  52.       FILE$ = MAIN.USER.FILE$            ' Check for USERS file
  53.       GOSUB 30000
  54.       NO.OLD.FILE = FALSE
  55.       IF OKAY THEN _
  56.          GOSUB 50500 : _
  57.          GOTO 12189
  58.       NO.OLD.FILE = TRUE
  59.       B1 = MAX.USR.FILE.SIZE.FRM.DEF
  60.       A$ = MAIN.USER.FILE$
  61.       GOSUB 22140
  62.       GOSUB 22150
  63. * REPLACING old line(s) by new
  64. * ------[ first line different ]------
  65. 13890 J = 9999                                             'STUNY174/020901
  66.       IF NOT MESSAGES.CAN.GROW THEN _
  67.          IF ((MAX.MSG.FILE.SIZE.FRM.DEF! - 1 - MAXIUM.NUMBER.OF.NODES) / 5) < J THEN _
  68.             J = (MAX.MSG.FILE.SIZE.FRM.DEF! - 1 - MAXIMUM.NUMBER.OF.NODES) / 5
  69.       CALL GETINIT ("Set maximum number of messages allowed (MAX = " + _
  70.             STR$(FIX(J)) + _
  71.             ")",24,1,9999,MAX.ALLOWED.MSGS.FRM.DEF,CR)     'STUNY174/020901
  72.       IF CR THEN _
  73.          GOTO 13890
  74.       IF MAX.ALLOWED.MSGS.FRM.DEF < J + 1 THEN _
  75.          GOTO 13929
  76.       IF MESSAGES.CAN.GROW THEN _
  77.          GOTO 13929
  78.       CALL GETNUMYN ("Increase the " + _
  79.                       MAIN.MESSAGE.FILE$ + _
  80.                      " file to " + _
  81.                        STR$((MAX.ALLOWED.MSGS.FRM.DEF * 5) + 1 + MAXIMUM.NUMBER.OF.NODES) + _
  82.                      " records?",AB)
  83.       IF NOT AB THEN _
  84.          GOTO 13890
  85. * REPLACING old line(s) by new
  86. * ------[ first line different ]------
  87. 16124 CALL MMREAL ("Rate (300,1200,2400,4800,9600,19200,38400,57600) to open modem:",300!,57600!,B1!) ' BB070801/RM09059301/RM09269301/RM12279301
  88.       IF B1! = 300 OR B1! = 1200 OR B1! = 2400 OR B1! = 4800 OR B1! = 9600 OR _
  89.          B1! = 19200 OR B1! = 38400 OR B1! = 57600 THEN _            ' BB070801/BB09059301/RM09269301/RM12279301
  90.             GOTO 16128 _
  91.       ELSE GOTO 16124
  92. * REPLACING old line(s) by new
  93. 16128 IF FOSSIL OR B1! < 38400 THEN _
  94.          GOTO 16129
  95.       CLS
  96.       LOCATE 5,13
  97. * ------[ first line different ]------
  98.       PRINT "Above 19200 available with FOSSIL driver only"          ' BB070801/RM12279301
  99.       LOCATE 6,10
  100.       PRINT "First set communications port and fossil driver"
  101.       CALL ASKRO ("  INITIAL BPS RATE not changed.  Press [ENTER] to continue",10,ANS$)
  102.       RETURN
  103. * REPLACING old line(s) by new
  104. * ------[ first line different ]------
  105. 16790 CALL MMINTEGER ("Maximum number of lines allowed per message (1-125)",1,125,MAX.MESSAGE.LINES) 'STUNY174/020901/RM11279301/RM04069401
  106.       RETURN
  107. * REPLACING old line(s) by new
  108. 23160 A$ = "Pack the Message File"
  109.       GOSUB 22580
  110.       B1 = MAXIMUM.NUMBER.OF.NODES
  111. * ------[ first line different ]------
  112.       B3! = HIGHEST.MESSAGE.RECORD!                                  ' RM12279301
  113.       PURGE = -1
  114.       GOSUB 30610
  115.       RETURN
  116. '
  117. ' * POINT TO THE NEXT MESSAGE HEADER IN THE MESSAGE FILE
  118. '
  119. * REPLACING old line(s) by new
  120. 23730 GET 1,1
  121.       MID$(MESSAGE.RECORD$,1,8) = SPACE$(8)
  122.       MID$(MESSAGE.RECORD$,1,8) = STR$(SK)
  123.       HJ$ = RIGHT$("0"+MID$(STR$(MAXIMUM.NUMBER.OF.NODES),2),2)
  124.       MID$(MESSAGE.RECORD$,127,2) = HJ$
  125.       PUT 1,1
  126.       CLOSE 1
  127.       DELAY! = FNTI! + 5
  128.       GOSUB 60440
  129.       RETURN
  130. '
  131. * ------[ first line different ]------
  132. ' * ROUTINE TO INITIALIZE THE MODEM'S FIRMWARE                       ' RM09269301
  133. '
  134. * REPLACING old line(s) by new
  135. 23731 LOCATE 25,5
  136.       COMPORT% = VAL(RIGHT$(COM.PORT$,1)) -1
  137.       IF COMPORT% < 0 THEN _
  138.          PRINT "COM port cannot be set while using COM0" : _
  139.          DELAY! = FNTI! + 3 : _
  140.          GOSUB 60440 : _
  141.          RETURN
  142.       FOS.BUF$ = SPACE$(80)
  143.       CLS
  144.       PRINT "Setting modem firmware for RBBS-PC on " + COM.PORT$
  145.       IF NOT FOSSIL THEN _
  146.          GOTO 23732
  147.       CALL FOSINIT(COMPORT%,RESULT%)
  148.       IF RESULT% = -1 THEN _
  149.          PRINT "ERROR initializing FOSSIL.  Firmware reset aborted." : _
  150.          GOTO 23736
  151. * ------[ first line different ]------
  152.       IF MODEM.INIT.BAUD$ = "19200" THEN _                            ' BB09249301
  153.          FOSSIL.BAUD% = &H4B00 _                                      ' BB09249301
  154.       ELSE IF MODEM.INIT.BAUD$ = "38400" THEN _                       ' BB09249301
  155.          FOSSIL.BAUD% = &H9600 _
  156.       ELSE IF MODEM.INIT.BAUD$ = "57600" THEN _                       ' BB09239301
  157.          FOSSIL.BAUD% = &HE100 _                                      ' BB09239301
  158.       ELSE FOSSIL.BAUD% = VAL(MODEM.INIT.BAUD$)
  159.       CALL FOSSPEED(COMPORT%,FOSSIL.BAUD%, 2, 3, 1)
  160.       STATE% = 1
  161.       CALL FOSDTR(COMPORT%,STATE%)
  162.       GOTO 23733
  163. * REPLACING old line(s) by new
  164. * ------[ first line different ]------
  165. 24111 IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  166.          OPEN A$ FOR RANDOM SHARED AS #2 LEN = 128 _
  167.       ELSE OPEN "R",2,A$,128
  168.       FIELD 2,  31 AS USER.NAME.N$, _
  169.                 15 AS PASSWORD.N$, _
  170.                  2 AS SECURITY.LEVEL.N$, _
  171.                 14 AS USER.OPTIONS.N$, _
  172.                 24 AS CITY.STATE.N$, _
  173.                 19 AS MACHINE.TYPE.N$, _
  174.                 14 AS LAST.DATE.TIME.ON.N$, _
  175.                  3 AS LIST.NEW.DATE.N$, _
  176.                  2 AS USER.DOWN.LOADS.N$, _
  177.                  2 AS USER.UPLOADS.N$, _
  178.                  2 AS ELAPSED.TIME.N$
  179.       FIELD 2, 128 AS USER.RECORD.N$
  180.       CURRENT.MONTH = VAL(LEFT$(DATE$,2)) + (VAL(RIGHT$(DATE$,2)) * 12)
  181.       A! = 0
  182.       GOSUB 50840
  183.       CURRENT.USER.COUNT = 1
  184.       IF NO.OLD.FILE THEN _
  185.          HIGHEST.USER.RECORD = A! : _
  186.          MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD : _
  187.          GOSUB 30450 : _
  188.          RETURN
  189.       A! = LOF(1) / 128.0!
  190.       GOSUB 24025
  191.       PURGED.COUNT = 0
  192. * REPLACING old line(s) by new
  193. 30040 FILNUM = 2
  194.       GOSUB 30050
  195.       FIELD 2,128 AS RR$
  196.       GET 2,1
  197.       CALLS.TODATE! = VAL(MID$(RR$,1,8))             '  1-  8 = number of last message on system
  198.       AUTO.ADD.SECURITY = CVI(MID$(RR$,9,2))         '  9- 10 = min. security to auto. add a user
  199.       WriteMsgSec$ = MID$(RR$,21,3)                  ' 21- 23 = Msg Sec allowed
  200.       IF MID$(WriteMsgSec$,1,1) = "/" THEN _
  201.          ZMsgSecCats$ = "" _
  202.       ELSE ZMsgSecCats$ = "U"
  203.       IF MID$(WriteMsgSec$,2,1) <> "/" THEN _
  204.          ZMsgSecCats$ = ZMsgSecCats$ + "R"
  205.       IF MID$(WriteMsgSec$,3,1) <> "/" THEN _
  206.          ZMsgSecCats$ = ZMsgSecCats$ + "P"
  207.       IF MAIN.MESSAGE.FILE$ = MAINMSG$ THEN _
  208.          AUTO.ADD.SECURITY = 0
  209.       CURRENT.USER.COUNT = VAL(MID$(RR$,57,5))       ' 57- 61 = next avail. user record
  210.       FIRST.MESSAGE.RECORD = VAL(MID$(RR$,68,7))     ' 68- 74 = first rec. of msgs file
  211.       IF FIRST.MESSAGE.RECORD < 3 THEN _
  212.          FIRST.MESSAGE.RECORD = 3
  213.       NEXT.MESSAGE.RECORD = VAL(MID$(RR$,75,7))      ' 75- 81 = next avail. msgs record
  214. * ------[ first line different ]------
  215.       HIGHEST.MESSAGE.RECORD! = VAL(MID$(RR$,82,7))   ' 82- 88 = last rec. of msgs file ' RM12279301
  216.       MAXIMUM.NUMBER.OF.MSGS = VAL(MID$(RR$,89,7))   ' 89- 95 = maximum number of messages
  217.       MAXIMUM.NUMBER.OF.NODES = VAL(MID$(RR$,127,2)) '127-128 = maximum number of "nodes"
  218.       IF MAXIMUM.NUMBER.OF.NODES < 1 THEN _
  219.          MAXIMUM.NUMBER.OF.NODES = 1
  220.       CLOSE 2
  221.       FIRST.USER.RECORD = 1
  222.       IF MAIN.MESSAGE.FILE$ = MAINMSG$ THEN _
  223.          AUTO.ADD.SECURITY$ = "CONF. ONLY" _
  224.       ELSE AUTO.ADD.SECURITY$ = MID$(STR$(AUTO.ADD.SECURITY),2)
  225.       RETURN
  226. ' * OPEN MESSAGE FILE
  227. * REPLACING old line(s) by new
  228. 30050 CLOSE FILNUM
  229. * ------[ first line different ]------
  230.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  231.          OPEN MAIN.MESSAGE.FILE$ FOR RANDOM SHARED AS #FILNUM LEN = 128 _
  232.       ELSE OPEN "R",FILNUM,MAIN.MESSAGE.FILE$,128
  233.       RETURN
  234. ' * OPEN USER FILE
  235. * REPLACING old line(s) by new
  236. 30060 CLOSE 1
  237. * ------[ first line different ]------
  238.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  239.          OPEN MAIN.USER.FILE$ FOR RANDOM SHARED AS #1 LEN = 128 _
  240.       ELSE OPEN "R",1,MAIN.USER.FILE$,128
  241.       RETURN
  242. '
  243. ' * COMMON ROUTINE TO UPDATE AUTO ADD SECURITY TO CONFERENCE FILE
  244. '
  245. * REPLACING old line(s) by new
  246. 30450 FILNUM = 2
  247.       GOSUB 30050
  248.       FIELD 2,128 AS RR$
  249.       GET 2,1
  250.       X$ = MKI$(AUTO.ADD.SECURITY)
  251.       MID$(RR$,9,2)   = MKI$(AUTO.ADD.SECURITY)      '  9- 10 = min. security to auto. add a user
  252.       MID$(RR$,57,5)  = LEFT$(STR$(CURRENT.USER.COUNT)  +SPACE$(5),5) ' 57- 61 = next avail. user record
  253.       MID$(RR$,68,7)  = LEFT$(STR$(FIRST.MESSAGE.RECORD)+SPACE$(7),7) ' 68- 74 = first rec. of msgs file
  254.       MID$(RR$,75,7)  = LEFT$(STR$(NEXT.MESSAGE.RECORD) +SPACE$(7),7) ' 75- 81 = next avail. msgs record
  255. * ------[ first line different ]------
  256.       MID$(RR$,82,7)  = LEFT$(STR$(HIGHEST.MESSAGE.RECORD!)+SPACE$(7),7) ' 82- 88 = last rec. of msgs file ' RM12279301
  257.       MID$(RR$,89,7)  = LEFT$(STR$(MAXIMUM.NUMBER.OF.MSGS)+SPACE$(7),7) ' 89- 95 = maximum number of messages
  258.       HJ$ = STR$(MAXIMUM.NUMBER.OF.NODES)
  259.       IF MAXIMUM.NUMBER.OF.NODES>9 THEN _
  260.          HJ$ = MID$(STR$(MAXIMUM.NUMBER.OF.NODES),2,2)
  261.       MID$(RR$,127,2) = HJ$                          '127-128 = maximum number of "nodes"
  262.       PUT 2,1
  263.       CLOSE 2
  264.       RETURN
  265. '
  266. ' * COMMON ROUTINE TO EXPAND/CONTRACT A MESSAGES FILE
  267. '
  268. * REPLACING old line(s) by new
  269. 30612 CLOSE 2
  270. * ------[ first line different ]------
  271.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  272.          OPEN A$ FOR RANDOM SHARED AS #2 LEN = 128 _
  273.       ELSE OPEN "R",2,A$,128
  274.       FIELD 2,128 AS RR$
  275.       A$="Copying"
  276.       IF NO.OLD.FILE THEN _
  277.          A$ = "Creating preformatted"
  278.       OE = B1
  279.       IF MAXIMUM.NUMBER.OF.NODES <= B1 THEN _
  280.          OE = MAXIMUM.NUMBER.OF.NODES
  281.       GOSUB 25030
  282.       FOR J=1 TO OE + 1                 ' WRITE CHECKPOINT AND NODE RECORDS
  283.          IF NO.OLD.FILE AND J = 1 THEN _
  284.             GOSUB 31040
  285.          IF NO.OLD.FILE AND J <> 1 THEN _
  286.             GOSUB 31050
  287.          IF NO.OLD.FILE = FALSE THEN _
  288.             GET 1,J : _
  289.             LSET RR$ = MESSAGE.RECORD$
  290.          PUT 2
  291.       NEXT
  292.       IF NO.OLD.FILE THEN _
  293.          GOTO 30850
  294.       IF B1 <= MAXIMUM.NUMBER.OF.NODES THEN _
  295.          GOTO 30780
  296.       FOR J = OE + 1 TO B1             ' WRITE OUT EXPANISON NODE RECORDS
  297.          GOSUB 31050
  298.          PUT 2
  299.       NEXT
  300. * REPLACING old line(s) by new
  301. 30960 FIRST.MESSAGE.RECORD = 1 + MAXIMUM.NUMBER.OF.NODES + 1
  302.       NEXT.MESSAGE.RECORD = B1
  303.       IF NEXT.MESSAGE.RECORD < FIRST.MESSAGE.RECORD THEN _
  304.          NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD
  305. * ------[ first line different ]------
  306.       HIGHEST.MESSAGE.RECORD! = LOC(2)                               ' RM12279301
  307.       CLOSE 2
  308.