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

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against CNFG-SUB.BAS to produce CNFG-SUB.NEW
  3. * CNFG-SUB.BAS:  Date 6-20-1992  Size 103455 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. 12470 DISPLAYED.PAGE.NUMBER = 9
  9.       GOSUB 30040
  10.       ' MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
  11. * ------[ first line different ]------
  12.       MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD!           ' RM12279301
  13.       MAX.ALLOWED.MSGS.FRM.DEF  = MAXIMUM.NUMBER.OF.MSGS
  14.       GOSUB 24800
  15.       LOCATE  3,1
  16.       PRINT "161. Maximum number of concurrent RBBS-PC's  -------" + STR$(MAXIMUM.NUMBER.OF.NODES)
  17.       MT$ = "single RBBS-PC copy "
  18.       IF MAXIMUM.NUMBER.OF.NODES <> 1 THEN _
  19.          MT$ = "concurrent RBBS-PC's" : _
  20.          SUBROUTINE.PARAMETER = 2 : _
  21.          IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 8 THEN _              ' RM10019301
  22.             SUBROUTINE.PARAMETER = 1 : _
  23.             CALL NETTYPE : _
  24.          ELSE CALL NETTYPE
  25.       IF NETWORK.TYPE = 6 THEN _
  26.          MT$ = "NETBIOS             "
  27.       IF NETWORK.TYPE = 8 THEN _                                     ' RM10019301
  28.          MT$ = "DoubleDOS           "
  29.       PRINT "162. Environment running " + MT$ + " ------ " + NETWORK.TYPE$
  30.       PRINT "163. RBBS-PC 'recycle' method when users log off --- " + RECYCLE.TO.DOS$
  31.       FILE$ = MAIN.MESSAGE.FILE$
  32.       GOSUB 30180
  33.       MAX.MSG.FILE.SIZE.FRM.DEF! = UG!                               ' RM12279303
  34.       IF CONFERENCE.MODE <> 1 THEN _
  35.          X$ = "MAIN" _
  36.       ELSE X$ = ZConfName$
  37.       PRINT "164. Number of records in " ;X$;" User File ";STRING$(15-LEN(X$),"-");STR$(MAX.USR.FILE.SIZE.FRM.DEF)
  38.       IF MAIN.MESSAGE.FILE$ = MAINMSG$ THEN _
  39.          X$ = "MAIN" _
  40.       ELSE X$ = ZConfName$
  41.       PRINT "165. Number of records in " ;X$;" Message File ";STRING$(12-LEN(X$),"-");STR$(MAX.MSG.FILE.SIZE.FRM.DEF!)
  42.       PRINT "166. Maximum number of messages allowed ------------" ; STR$(MAX.ALLOWED.MSGS.FRM.DEF)
  43.       PRINT "167. Conference File Maintenance."
  44.       IF DEFAULT.EXTENSION$ = "" THEN _
  45.          X$ = NONE.PICKED$ _
  46.       ELSE X$ = DEFAULT.EXTENSION$
  47.       PRINT "168. Default extension for compressed files -------- " ; X$
  48.       PRINT "169. Additional extensions for compressed files ---- " ; COMPRESSED.EXT$
  49.       PRINT "170. Message file GROWS in size as messages added -- " ; FNYESNO$(MESSAGES.CAN.GROW)
  50.       PRINT "171. Name (prefix only) of distribution lists menu - " ; ZDistriHelp$
  51.       PRINT "172. Drive/path where distribution lists stored ---- " ; ZDistriPath$
  52.       PRINT "173. Msg sec can be (U=public,R=private,P=password)- " ; ZMsgSecCats$
  53.       GOTO 12580
  54. * REPLACING old line(s) by new
  55. * ------[ first line different ]------
  56. 30040 IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  57.          OPEN MAIN.MESSAGE.FILE$ FOR RANDOM SHARED AS #2 LEN=128 _
  58.       ELSE OPEN "R",2,MAIN.MESSAGE.FILE$,128
  59.       FIELD 2,128 AS RR$
  60.       GET 2,1
  61.       CALLS.TODATE! = VAL(MID$(RR$,1,8))             '  1-  8  =  number of last message on system
  62.       FIRST.USER.RECORD = VAL(MID$(RR$,52,5))        ' 52- 56  =  first rec. of user file
  63.       CURRENT.USER.COUNT = VAL(MID$(RR$,57,5))       ' 57- 61  =  next avail. user record
  64.       HIGHEST.USER.RECORD = VAL(MID$(RR$,62,5))      ' 62- 66  =  last rec. of user file
  65.       FIRST.MESSAGE.RECORD = VAL(MID$(RR$,68,7))     ' 68- 74 = first rec. of msgs file
  66.       NEXT.MESSAGE.RECORD = VAL(MID$(RR$,75,7))      ' 75- 81 = next avail. msgs record
  67.       HIGHEST.MESSAGE.RECORD! = VAL(MID$(RR$,82,7))   ' 82- 88 = last rec. of msgs file ' RM12279301
  68.       MAXIMUM.NUMBER.OF.MSGS = VAL(MID$(RR$,89,7))   ' 89- 95 = maximum number of messages
  69.       MAXIMUM.NUMBER.OF.NODES = VAL(MID$(RR$,127,2)) '127-128 = maximum number of "nodes"
  70.       CLOSE 2
  71.       RETURN
  72. '
  73. ' * COMMON ROUTINE TO GET THE LENGTH OF A FILE
  74. '
  75. * REPLACING old line(s) by new
  76. * ------[ first line different ]------
  77. 30180 IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  78.          OPEN FILE$ FOR RANDOM SHARED AS #2 LEN=128 _
  79.       ELSE OPEN "R",2,FILE$,128
  80.       FIELD 2,128 AS RR$
  81.       UG! = LOF(2) / 128                                             ' RM12279303
  82.       CLOSE 2
  83.       RETURN
  84. '
  85. ' * COMMON SUBROUTINE TO KEEP STRING SPACE CLEAN AND CLEAR LINE 24
  86. '
  87. * REPLACING old line(s) by new
  88. 60382 CLS
  89.       LOCATE 3,1
  90.       PRINT "     RBBS-PC is supported in the following:"
  91.       PRINT "                   Environment"
  92.       PRINT "          0. Single RBBS-PC in an IBM DOS environment"
  93.       PRINT "          1. MultiLink (multi-tasking under single DOS)"
  94.       PRINT "          2. Omninet (CORVUS)"
  95.       PRINT "          3. PC-NET (Orchid)"
  96.       PRINT "          4. DESQview (Quarterdeck)"
  97.       PRINT "          5. 10 NET (Fox Research)"
  98.       PRINT "          6. NETBIOS (DOS SHARE)"
  99. * ------[ first line different ]------
  100.       PRINT "          7. OS/2 v2.x DOS Box"                         ' RM10019301
  101.       PRINT "          8. DoubleDOS, but file sharing not supported." ' RM10019301
  102. * REPLACING old line(s) by new
  103. * ------[ first line different ]------
  104. 60383 XX$ = "Select environment (0 to 8, [ENTER] quits) : "          ' RM10019301/RM12279302
  105.       I! = FRE(C$)
  106.       LOCATE 24,1
  107.       PRINT STRING$(79,32);
  108.       LOCATE 24,5
  109.       PRINT XX$;
  110.       LINE INPUT;X$
  111.       IF X$ = "" THEN _
  112.          EXIT SUB
  113.       NETWORK.TYPE = VAL(X$)
  114.       IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 8 THEN _                 ' RM10019301
  115.          GOTO 60383
  116. * REPLACING old line(s) by new
  117. 60384 IF NETWORK.TYPE = 0 THEN _
  118.          NETWORK.TYPE$ = "IBM's DOS"
  119.       IF NETWORK.TYPE = 1 THEN _
  120.          MLCOM = TRUE : _
  121.          NETWORK.TYPE$ = "MultiLink"
  122.       IF NETWORK.TYPE = 2 THEN _
  123.          NETWORK.TYPE$ = "Omninet"
  124.       IF NETWORK.TYPE = 3 THEN _
  125.          NETWORK.TYPE$ = "PC-NET"
  126.       IF NETWORK.TYPE = 4 THEN _
  127.          NETWORK.TYPE$ = "DESQview"
  128.       IF NETWORK.TYPE = 5 THEN _
  129.          NETWORK.TYPE$ = "10 NET"
  130.       IF NETWORK.TYPE = 6 THEN _
  131.          NETWORK.TYPE$ = "NETBIOS"
  132. * ------[ first line different ]------
  133.       IF NETWORK.TYPE = 7 THEN _                                     ' RM10019301
  134.          NETWORK.TYPE$ = "OS/2 v2.x DOS Box"                         ' RM10019301
  135.       IF NETWORK.TYPE = 8 THEN _                                     ' RM10019301
  136.          NETWORK.TYPE$ = "No file sharing!"
  137.       IF SUBROUTINE.PARAMETER = 2 THEN _
  138.          EXIT SUB
  139.       IF NETWORK.TYPE = 2 OR NETWORK.TYPE = 3 OR NETWORK.TYPE = 5 OR NETWORK.TYPE = 6 THEN _
  140.          CALL GETNUMYN ("Are you running Multi-Link with " + NETWORK.TYPE$,MLCOM)
  141.       END SUB
  142. '  $SUBTITLE: 'CNFGINIT - subroutine to initialize CONFIG's constants'
  143. '  $PAGE
  144. '
  145. '  SUBROUTINE NAME    --  CNFGINIT
  146. '
  147. '  INPUT PARAMETERS   --  NONE
  148. '
  149. '  OUTPUT PARAMETERS  --  CONFIG'S CONSTANTS INITIALIZED
  150. '
  151. '  SUBROUTINE PURPOSE --  TO INITIALIZE THE CONSTANTS USED BY CONFIG
  152. '
  153. * REPLACING old line(s) by new
  154. 60390 MACRO.DRVPATH$             = D$
  155.       MACRO.EXTENSION$           = ""
  156.       MAIN.COMMANDS.DEFAULTS$    = "ABCDEFIJKOPRSTUVW@"
  157.       MAIN.COMMANDS$             = MAIN.COMMANDS.DEFAULTS$
  158.       MAIN.FUNCTION$(1,1)        = "A)nswer questionnaire  "
  159.       MAIN.FUNCTION$(2,1)        = "B)ulletins             "
  160.       MAIN.FUNCTION$(3,1)        = "C)omments              "
  161.       MAIN.FUNCTION$(4,1)        = "D)oor subsystem        "
  162.       MAIN.FUNCTION$(5,1)        = "E)nter message         "
  163.       MAIN.FUNCTION$(6,1)        = "F)iles subsystem       "
  164.       MAIN.FUNCTION$(7,1)        = "I)nitial welcome       "
  165.       MAIN.FUNCTION$(8,1)        = "J)oin a conference     "
  166.       MAIN.FUNCTION$(9,1)        = "K)ill messages         "
  167.       MAIN.FUNCTION$(10,1)       = "O)perator page         "
  168.       MAIN.FUNCTION$(11,1)       = "P)ersonal mail         "
  169.       MAIN.FUNCTION$(12,1)       = "R)ead messages         "
  170.       MAIN.FUNCTION$(13,1)       = "S)can messages header  "
  171.       MAIN.FUNCTION$(14,1)       = "T)opic msg scan        "
  172.       MAIN.FUNCTION$(15,1)       = "U)tilities subsystem   "
  173.       MAIN.FUNCTION$(16,1)       = "V)iew conference mail  "
  174.       MAIN.FUNCTION$(17,1)       = "W)ho's on other nodes  "
  175.       MAIN.FUNCTION$(18,1)       = "@)Library subsystem    "
  176.       MAIN.FUNCTION$(1,2)        = "A"
  177.       MAIN.FUNCTION$(2,2)        = "B"
  178.       MAIN.FUNCTION$(3,2)        = "C"
  179.       MAIN.FUNCTION$(4,2)        = "D"
  180.       MAIN.FUNCTION$(5,2)        = "E"
  181.       MAIN.FUNCTION$(6,2)        = "F"
  182.       MAIN.FUNCTION$(7,2)        = "I"
  183.       MAIN.FUNCTION$(8,2)        = "J"
  184.       MAIN.FUNCTION$(9,2)        = "K"
  185.       MAIN.FUNCTION$(10,2)       = "O"
  186.       MAIN.FUNCTION$(11,2)       = "P"
  187.       MAIN.FUNCTION$(12,2)       = "R"
  188.       MAIN.FUNCTION$(13,2)       = "S"
  189.       MAIN.FUNCTION$(14,2)       = "T"
  190.       MAIN.FUNCTION$(15,2)       = "U"
  191.       MAIN.FUNCTION$(16,2)       = "V"
  192.       MAIN.FUNCTION$(17,2)       = "W"
  193. * ------[ first line different ]------
  194.       MAIN.MESSAGE.BACKUP$       = D$ + "MAINM.BAK"                  'STUNY174/020901
  195.       MAIN.MESSAGE.FILE$         = D$ + "MAINM.DEF"                  'STUNY174/020901
  196.       MAIN.PUI$                  = D$ + "MAIN.PUI"                   'STUNY174/020901
  197.       MAIN.USER.FILE$            = D$ + "MAINU.DEF"                  'STUNY174/020901
  198.       MASTER.DIRECTORY.NAME$     = ""
  199.       MAX.ALLOWED.MSGS.FRM.DEF   = 5
  200.       MAX.CARRIER.WAIT           = 30
  201.       MAX.DESC.LEN               = 40
  202.       MAX.EXTENDED.LINES         = 2
  203.       MAX.MESSAGE.LINES          = 19
  204.       MAX.PER.DAY                = 0
  205.       MAX.REG.SEC                = 0
  206.       MAX.USR.FILE.SIZE.FRM.DEF  = 16
  207.       MAX.WORK.VAR               = 30
  208.       MAXD                       = 15
  209.       MAXIMUM.DISPLAYABLE.PAGES  = 17
  210.       MAXIMUM.PASSWORD.CHANGES   = 3
  211.       MAXIMUM.VIOLATIONS         = 5
  212.       MAXIMUM.NUMBER.OF.NODES    = 1
  213.       MENU$(1)                   = D$ + "MENU1"
  214.       MENU$(2)                   = D$ + "MENU2"
  215.       MENU$(3)                   = D$ + "MENU3"
  216.       MENU$(4)                   = D$ + "MENU4"
  217.       MENU$(5)                   = D$ + "MENU5"
  218.       MENU$(6)                   = D$ + "MENU6"
  219.       MENUS.CAN.PAUSE            = TRUE
  220.       MESSAGE.REMINDER           = TRUE
  221.       MESSAGES.CAN.GROW          = FALSE
  222.       MIN.NEWCALLER.BAUD         = 0
  223.       MIN.OLDCALLER.BAUD         = 0
  224.       MIN.SEC.TO.VIEW            = DEFAULT.SECURITY.LEVEL
  225.       MINIMUM.LOGON.SECURITY     = 0
  226.       MINIMUM.SECURITY.FOR.TEMP.PASSWORD = 5
  227.       MINUTES.PER.SESSION!       = 72
  228.       MLCOM                      = FALSE
  229.       MM                         = 5
  230.       MO$                        = DD$
  231.       MUSIC                      = FALSE
  232.       NET.MAIL$                  = "<none>"
  233.       NETWORK.TYPE               = 0
  234.       NETWORK.TYPE$              = "IBM's DOS"
  235.       NEW.FILES.CHECK            = FALSE
  236.       NEW.USER.QUESTIONNAIRE$    = D$ + "RBBS-REG.DEF"
  237.       NEWUSER.FILE$              = D$ + "NEWUSER"
  238.       NEWUSER.SETS.DEFAULTS      = TRUE
  239.       OMIT.MAIN.DIRECTORY$       = "NO"
  240.       OMIT.UPLOAD.DIRECTORY$     = "NO"
  241.       OVERWRITE.SECURITY.LEVEL   = SYSOP.SECURITY.LEVEL
  242.       PAGE.LENGTH                = 23
  243.       PAGING.PRINTER.SUPPORT$    = ". "
  244.       PASSWORD.FILE$             = D$ + "PASSWRDS"
  245.       PCJR                       = FALSE
  246.       PERSONAL.BEGIN             = 1
  247.       PERSONAL.DIR$              = D$+"PRIV.DEF"
  248.       PERSONAL.DRVPATH$          = D$
  249.       PERSONAL.LEN               = 31
  250.       PERSONAL.CONCAT            = FALSE
  251.       PRELOG$                    = D$ + "PRELOG"
  252.       PRIVATE.READ.SEC           = DEFAULT.SECURITY.LEVEL
  253.       PROTO.DEF$                 = D$ + "PROTO.DEF"
  254.       PROMPT.BELL                = 0
  255.       PROMPT.HASH$               = "Name"
  256.       PROMPT.INDIV$              = ""
  257.       PS                         = 5
  258.       PUBLIC.READ.SEC            = DEFAULT.SECURITY.LEVEL
  259.       QUES.PATH$                 = D$
  260.       RBBS.BAT$                  = D$ + "RBBS" + NODE.ID$ + ".BAT"
  261.       RBBS.NAME$                 = "RBBS-PC"
  262.       RCTTY.BAT$                 = D$ + "RCTTY" + NODE.ID$ + ".BAT"
  263.       RECYCLE.TO.DOS             = 0
  264.       RECYCLE.TO.DOS$            = "INTERNAL"
  265.       RECYCLE.WAIT               = 0
  266.       REDIRECT.IO.METHOD         = TRUE
  267.       REGISTRATION.PROGRAM$      = "<none>"
  268.       REMEMBER.NEW.USERS         = TRUE
  269.       REMIND.FILE.TRANSFERS      = FALSE
  270.       REMIND.PROFILE             = FALSE
  271.       REQUIRE.NON.ASCII          = TRUE
  272.       REQUIRED.QUESTIONNAIRE$    = "<none>"
  273.       REQUIRED.RINGS             = 1
  274.       RESTRICT.BAUD              = FALSE
  275.       RESTRICT.BY.DATE           = FALSE
  276.       RESTRICT.VALID.CMDS        = FALSE
  277.       RTS$                       = "NO"
  278.       SCREEN.OUT.MSG$            = "SEEN-BY: "
  279.       SEC.CHANGE.MSG             = SYSOP.SECURITY.LEVEL
  280.       SEC.LVL.EXEMPT.FRM.PURGING = SYSOP.SECURITY.LEVEL
  281.       SECVIO.HLP$                = D$ + "SECVIO." + HELP.EXTENSION$
  282.       SECURITY.EXEMPT.FROM.EPILOG= DEFAULT.SECURITY.LEVEL + 1
  283.       SF                         = SYSOP.SECURITY.LEVEL
  284.       SHOOT.YOURSELF             = FALSE
  285.       SHOW.SECTION               = TRUE
  286.       SIZE.OF.STACK              = 1024
  287.       SL.CATEGORIZE.UPLOADS      = SYSOP.SECURITY.LEVEL
  288.       SMART.TEXT                 = 123
  289.       START.HASH                 = 1
  290.       START.INDIV                = 0
  291.       START.OFFICE.HOURS         = 800
  292.       SURVIVE.NOUSER.ROOM        = FALSE
  293.       SWITCH.BACK                = FALSE
  294.       SYSOP.COMMANDS.DEFAULTS$   = "1234567"
  295.       SYSOP.COMMANDS$            = SYSOP.COMMANDS.DEFAULTS$
  296.       SYSOP.FUNCTION$(1,1)       = " 1 List comments      "
  297.       SYSOP.FUNCTION$(2,1)       = " 2 List CALLERS log   "
  298.       SYSOP.FUNCTION$(3,1)       = " 3 Recover a message  "
  299.       SYSOP.FUNCTION$(4,1)       = " 4 Erase comments     "
  300.       SYSOP.FUNCTION$(5,1)       = " 5 User maintenance   "
  301.       SYSOP.FUNCTION$(6,1)       = " 6 Toggle Page bell   "
  302.       SYSOP.FUNCTION$(7,1)       = " 7 Exit to DOS        "
  303.       SYSOP.FUNCTION$(1,2)       = " 1"
  304.       SYSOP.FUNCTION$(2,2)       = " 2"
  305.       SYSOP.FUNCTION$(3,2)       = " 3"
  306.       SYSOP.FUNCTION$(4,2)       = " 4"
  307.       SYSOP.FUNCTION$(5,2)       = " 5"
  308.       SYSOP.FUNCTION$(6,2)       = " 6"
  309.       SYSOP.FUNCTION$(7,2)       = " 7"
  310.       SYSOP.FIRST.NAME$          = "TOM"
  311.       SYSOP.LAST.NAME$           = "MACK"
  312.       SYSOP.MENU.SECURITY.LEVEL  = SYSOP.SECURITY.LEVEL
  313.       SYSOP.PASSWORD.1$          = "SECRET"
  314.       SYSOP.PASSWORD.2$          = "NAME"
  315.       TEST.ANSI.TIME             = 0
  316.       TIME.TO.DROP.TO.DOS        = 0
  317.       TRASHCAN.FILE$             = D$ + "TRASHCAN"
  318.       TURN.PRINTER.OFF           = FALSE
  319.       TURBO.RBBS                 = TRUE
  320.       UE                         = 5
  321.       FMS.DIRECTORY$             = ""
  322.       UPCAT.HELP$                = "UPCAT"
  323.       UPLOAD.DIRECTORY$          = "99"
  324.       UPLOAD.PATH$               = D$
  325.       UPLOAD.SUBDIR$             = ""
  326.       UPLOAD.TIME.FACTOR!        = 0
  327.       UPLOAD.TO.SUBDIR           = FALSE
  328.       USE.BASIC.WRITES           = FALSE
  329.       USE.DEVICE.DRIVER$         = ""
  330.       USER.LOCATION$             = "CITY and STATE"
  331.       UTIL.COMMANDS.DEFAULTS$    = "BCEFGLMPRSTU"
  332.       UTIL.COMMANDS$             = UTIL.COMMANDS.DEFAULTS$
  333.       UTILITY.FUNCTION$(1,1)     = "B)ank time            "
  334.       UTILITY.FUNCTION$(2,1)     = "C)lock (time)         "
  335.       UTILITY.FUNCTION$(3,1)     = "E)cho                 "
  336.       UTILITY.FUNCTION$(4,1)     = "F)ile x-fer protocol  "
  337.       UTILITY.FUNCTION$(5,1)     = "G)raphics             "
  338.       UTILITY.FUNCTION$(6,1)     = "L)ines per page       "
  339.       UTILITY.FUNCTION$(7,1)     = "M)sg margin setting   "
  340.       UTILITY.FUNCTION$(8,1)     = "P)assword change      "
  341.       UTILITY.FUNCTION$(9,1)     = "R)eview defaults      "
  342.       UTILITY.FUNCTION$(10,1)    = "S)tatistics           "
  343.       UTILITY.FUNCTION$(11,1)    = "T)oggle               "
  344.       UTILITY.FUNCTION$(12,1)    = "U)ser log scan        "
  345.       VOICE.TYPE                 = 0
  346.       VOICE.TYPE$                = NONE.PICKED$
  347.       XON.XOFF                   = FALSE
  348.       ZCallersLst$               = D$ + "CALLLST.DEF"
  349.       ZCopyrightSecs             = 8
  350.       ZDistriHelp$               = "DISTRI"
  351.       ZDistriPath$               = D$
  352.       ZEnableCC                  = FALSE
  353.       ZMaxBank                   = 60
  354.       ZMinSecPersUpld            = SYSOP.SECURITY.LEVEL
  355.       ZMsgSecCats$               = "URP"
  356.       FOR I = 1 TO LEN(UTIL.COMMANDS.DEFAULTS$)
  357.          UTILITY.FUNCTION$(I,2) = MID$(UTIL.COMMANDS.DEFAULTS$,I,1)
  358.       NEXT
  359.       WAIT.BEFORE.DISCONNECT     = 180
  360.       WELCOME.FILE$              = D$ + "WELCOME"
  361.       WELCOME.INTERRUPTABLE      = TRUE
  362.       WILL.SUBDIRS.B.USED        = FALSE
  363.       WRITE.BUF.DEF              = 1024
  364.       FOR I = 1 TO NUM.SYSOP
  365.          SYSOP.FUNCTION(I) = SF
  366.       NEXT
  367.       FOR I = 1 TO NUM.MAIN
  368.          MAIN.FUNCTION(I) = MM
  369.       NEXT
  370.       FOR I = 1 TO NUM.FILES
  371.          FILES.FUNCTION(I) = FC
  372.       NEXT
  373.       FOR I = 1 TO NUM.LIBRARY
  374.          LIBRARY.FUNCTION(I) = PS
  375.       NEXT
  376.       FOR I = 1 TO NUM.UTILITY
  377.          UTILITY.FUNCTION(I) = UE
  378.       NEXT
  379.       FOR I = 1 TO NUM.GLOBAL
  380.          GLOBAL.FUNCTION(I) = GB
  381.       NEXT
  382.       CALL MODEMINITCMD
  383.       END SUB
  384. '  $SUBTITLE: 'VOICETYPE - subroutine to select voice'
  385. '  $PAGE
  386. '
  387. '  SUBROUTINE NAME    --  VOICETYPE
  388. '
  389. '  INPUT PARAMETERS   --  VOICE.TYPE
  390. '                         VOICE.TYPE$
  391. '                         SUBROUTINE.PARAMETER
  392. '
  393. '  OUTPUT PARAMETERS  --  VOICE.TYPE
  394. '                         VOICE.TYPE$
  395. '
  396. '  SUBROUTINE PURPOSE --  TO SELECT THE RBBS-PC SUPPORTED VOICE
  397. '                         SYNTHESIZERS
  398. '
  399.       SUB VOICETYPE STATIC
  400.       ON SUBROUTINE.PARAMETER GOTO 60482,60484
  401. * REPLACING old line(s) by new
  402. 61700 SUB CHKFMSDIR (FMSDIR$,LINELEN,FMS.DIRCAT$) STATIC
  403.       CALL GETNUMYN ("Really check FMS directory",AB)
  404.       IF NOT AB THEN _
  405.          EXIT SUB
  406.       DIM CAT.CODE$(99)
  407.       CALL SETSCRCHK ("FMS",FMSDIR$)
  408.       NCATS = 0
  409.       CALL FINDFILE (FMS.DIRCAT$,FEXISTS)
  410.       IF NOT FEXISTS THEN _
  411.          GOTO 61702
  412.       NCATS = 1
  413.       CAT.CODE$(1) = "***"
  414. * ------[ first line different ]------
  415.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  416.          OPEN FMS.DIRCAT$ FOR INPUT SHARED AS #2 _
  417.       ELSE  OPEN FMS.DIRCAT$ FOR INPUT AS #2
  418.       WHILE NOT EOF(2) AND NCATS < UBOUND(CAT.CODE$)
  419.          NCATS = NCATS + 1
  420.          INPUT #2,X$,Y$,X$
  421.          CAT.CODE$(NCATS) = Y$
  422.       WEND
  423.       CLOSE 2
  424. * REPLACING old line(s) by new
  425. 61702 GO.ON = -1
  426.       CALL FINDFILE (FMSDIR$,FEXISTS)
  427.       IF NOT FEXISTS THEN _
  428.          LOCATE 6,25 : _
  429.          PRINT "File not found"; : _
  430.          GOTO 61750
  431. * ------[ first line different ]------
  432.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  433.          OPEN FMSDIR$ FOR INPUT SHARED AS #2 _
  434.       ELSE OPEN FMSDIR$ FOR INPUT AS #2
  435.       WHILE NOT EOF(2) AND GO.ON
  436.          NLINES = NLINES + 1
  437.          LINE INPUT #2, A$
  438.          L = LEN(A$)
  439.          LOCATE 7,36
  440.          PRINT NLINES;
  441.          IF L > LINELEN THEN _
  442.             CALL HANDERR (A$,NLINES,"Too LONG: has" + STR$(L) + " chars but should have" + STR$(LINELEN),GO.ON):_
  443.             IF NOT GO.ON THEN _
  444.                GOTO 61740
  445.          IF L < LINELEN THEN _
  446.             X$ = "Too SHORT: has" + STR$(L) + " chars but should have" + STR$(LINELEN) : _
  447.             CALL HANDERR (A$,NLINES,X$,GO.ON):_
  448.             IF NOT GO.ON THEN _
  449.                GOTO 61740
  450.          IF L = LINELEN THEN _
  451.             I = INSTR(A$," ") : _
  452.             IF I = 0 OR I > 13 THEN _
  453.                CALL HANDERR (A$,NLINES, "Space must begin line or be after file name",GO.ON) : _
  454.                IF NOT GO.ON THEN _
  455.                   GOTO 61740
  456.          IF L > 0 THEN _
  457.             IF INSTR ("\* ",LEFT$(A$,1)) THEN _
  458.                GOTO 61740
  459.          IF L > 30 THEN _
  460.             X$ = MID$(A$,24,2) + _
  461.                  MID$(A$,27,2) + _
  462.                  MID$(A$,30,2) : _
  463.             I = 1 : _
  464.             WHILE I < 7 AND INSTR("0123456789",MID$(X$,I,1)) > 0 : _
  465.                I = I + 1: _
  466.             WEND: _
  467.             IF I < 7 THEN _
  468.                CALL HANDERR (A$,NLINES,"INVALID CHARACTER <" + MID$(X$,I,1) + "> in date field",GO.ON) : _
  469.                IF NOT GO.ON THEN _
  470.                   GOTO 61740
  471.          I = 1
  472.          Y$ = MID$(A$,L - 2)
  473.          CALL REMOVE (Y$," ")
  474.          WHILE I <= NCATS AND Y$ <> CAT.CODE$(I)
  475.             I = I + 1
  476.          WEND
  477.          IF I > NCATS THEN _
  478.             CALL HANDERR (A$,NLINES,"Category code <" + Y$ + "> NOT IN " + FMS.DIRCAT$,GO.ON)
  479. * REPLACING old line(s) by new
  480. 61751 SUB CHKRANDOM (CHKTHIS$, LINELEN, KindChk$) STATIC
  481.       LOCATE 15,15
  482.       BEEP
  483.       CALL ASKRO ("          1st check done.  Press [ENTER] to continue",20,ANS$)
  484.       CALL SETSCRCHK (KindChk$,CHKTHIS$)
  485.       RECLEN = LINELEN + 2
  486. * ------[ first line different ]------
  487.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  488.          OPEN CHKTHIS$ FOR RANDOM SHARED AS #2 LEN=RECLEN _
  489.       ELSE OPEN "R",2,CHKTHIS$,RECLEN
  490.       FIELD 2, RECLEN AS FMSREC$
  491.       LASTREC = LOF(2)/RECLEN
  492.       CRLF$ = CHR$(13) + CHR$(10)
  493.       FOR NLINES = 1 TO LASTREC
  494.          GET 2,NLINES
  495.          LOCATE 7,36
  496.          PRINT NLINES;
  497.          IF INSTR ("\*=",MID$(FMSREC$,1,1)) THEN _
  498.             GOTO 61753
  499.          I = INSTR(FMSREC$," ") : _
  500.          IF I = 0 OR I > 13 THEN _
  501.             J = INSTR(FMSREC$,CHR$(0)) : _
  502.             IF J > 0 AND J < I THEN _
  503.                CALL HANDERR (FMSREC$,NLINES, "Space must begin line or be after file name",GO.ON) : _
  504.                IF NOT GO.ON THEN _
  505.                   GOTO 61752
  506.          IF RIGHT$(FMSREC$,2) <> CRLF$ THEN _
  507.             CALL HANDERR (FMSREC$,NLINES,"Does not end with carriage-return-line-feed",GO.ON) :_
  508.             IF NOT GO.ON THEN _
  509.                GOTO 61752
  510.         GOTO 61753
  511. * REPLACING old line(s) by new
  512. 61755 SUB CHKPERSDIR (PDIR$, DESC.LEN, NAMELEN) STATIC
  513.       CALL GETNUMYN ("Really check Personal directory",AB)
  514.       IF NOT AB THEN _
  515.          EXIT SUB
  516.       CLS
  517.       LOCATE 5, 14
  518.       PRINT "Checking Personal Directory "; PDIR$;
  519.       NLINES = 0
  520.       LOCATE 7, 27
  521.       PRINT "Line #";
  522.       LOCATE 9, 20
  523.       COLOR 0, 7
  524.       PRINT " Last Line with an ERROR ";
  525.       LOCATE 12, 28
  526.       PRINT " Last ERROR ";
  527.       COLOR 7, 0
  528.       GO.ON = -1
  529.       CALL FINDFILE(PDIR$, FEXISTS)
  530.       IF NOT FEXISTS THEN _
  531.          LOCATE 6, 25: _
  532.          PRINT "File not found"; : _
  533.          GOTO 61775
  534.       LINELEN = 34 + DESC.LEN + NAMELEN
  535. * ------[ first line different ]------
  536.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  537.          OPEN PDIR$ FOR INPUT SHARED AS #2 _
  538.       ELSE OPEN PDIR$ FOR INPUT SHARED AS #2
  539.       WHILE NOT EOF(2) AND GO.ON
  540.          NLINES = NLINES + 1
  541.          LINE INPUT #2, A$
  542.          L = LEN(A$)
  543.          LOCATE 7, 36
  544.          PRINT NLINES;
  545.          IF L > LINELEN THEN _
  546.             CALL HANDERR(A$, NLINES, "Too LONG: has" + STR$(L) + " chars but should have" + STR$(LINELEN), GO.ON) : _
  547.             IF NOT GO.ON THEN _
  548.                GOTO 61770
  549.          IF L < LINELEN THEN _
  550.             CALL HANDERR(A$, NLINES, "Too SHORT: has" + STR$(L) + " chars but should have" + STR$(LINELEN), GO.ON) : _
  551.                IF NOT GO.ON THEN _
  552.                   GOTO 61770
  553.          IF L > 30 AND (LEFT$(A$,1) <> " ") THEN _
  554.             X$ = MID$(A$, 24, 2) + MID$(A$, 27, 2) + MID$(A$, 30, 2) : _
  555.             I = 1 : _
  556.             WHILE I < 7 AND INSTR("0123456789", MID$(X$, I, 1)) > 0 : _
  557.                I = I + 1 : _
  558.             WEND : _
  559.             IF I < 7 THEN _
  560.                CALL HANDERR(A$, NLINES, "INVALID CHARACTER <" + MID$(X$, I, 1) + "> in date field", GO.ON) : _
  561.                IF NOT GO.ON THEN _
  562.                   GOTO 61770
  563.            IF L = LINELEN THEN _
  564.               X$ = RIGHT$(A$, 1) : _
  565.               IF INSTR("*!", X$) = 0 THEN _
  566.                  CALL HANDERR(A$, NLINES, "Last char on line should be * or ! but found <" + X$ + ">", GO.ON) : _
  567.                  IF NOT GO.ON THEN  _
  568.                     GOTO 61770
  569.            IF L = LINELEN THEN _
  570.               X$ = MID$(A$, L - NAMELEN, LINELEN) : _
  571.               IF LEFT$(X$, 1) = " " THEN _
  572.                  IF INSTR("0123456789-", MID$(X$, 2, 1)) = 0 THEN _
  573.                     CALL HANDERR(A$, NLINES, "Name field at col" + STR$(L - NAMELEN) + " has <" + LEFT$(X$, 1) + ">, needs non-blank or blank+number", GO.ON) : _
  574.                     IF NOT GO.ON THEN _
  575.                        GOTO 61770
  576.            IF L = LINELEN THEN _
  577.               I = INSTR(A$," ") : _
  578.               IF I = 0 OR I > 13 THEN _
  579.                  CALL HANDERR(A$,NLINES, "Space must begin line or be after file name",GO.ON) : _
  580.                  IF NOT GO.ON THEN _
  581.                     GOTO 61770
  582. * REPLACING old line(s) by new
  583. 62103 CLOSE 2
  584. * ------[ first line different ]------
  585.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  586.          OPEN "MODEMS.SET" FOR INPUT SHARED AS #2 _
  587.       ELSE OPEN "I",2,"MODEMS.SET"
  588.       MODEM.MODEL = 0
  589.       MODEM.PAGE = 0
  590. * REPLACING old line(s) by new
  591. 62110 LOCATE 24,10
  592.       PRINT "Use Parameter 231 to initialize modem's firmware";
  593.       CALL GETINIT("Select modem number, or [ENTER] to exit", _
  594.                     22,MODEM.PAGE,MODEM.MODEL,MODEM.SELECTED, CR)
  595.       IF CR THEN _
  596.          EXIT SUB
  597.       IF MODEM.SELECTED = 0 THEN _
  598.          GOTO 62105
  599.       CLOSE 2
  600. * ------[ first line different ]------
  601.       IF NETWORK.TYPE = 6 OR NETWORK.TYPE = 7 THEN _                 ' RM10019301
  602.          OPEN "MODEMS.SET" FOR INPUT SHARED AS #2 _
  603.       ELSE OPEN "I",2,"MODEMS.SET"
  604.       FOR I = 1 TO (MODEM.SELECTED - 1) * 16      ' # of parms * modem
  605.          INPUT #2,GARBAGE$
  606.       NEXT
  607.       INPUT #2, MODEM.MODEL$, _
  608.                 SWITCHES$, _
  609.                 USER.ANSWER.COMMAND$, _
  610.                 USER.COUNT.RINGS.COMMAND$, _
  611.                 USER.GO.OFFHOOK.COMMAND$, _
  612.                 USER.INIT.COMMAND$, _
  613.                 USER.RESET.COMMAND$, _
  614.                 USER.INITIALIZE.COMMAND$, _
  615.                 USER.FIRMWARE.CLEAR.CMND$, _
  616.                 USER.FIRMWARE.WRITE.CMND$, _
  617.                 RTS$, _
  618.                 MODEM.INIT.WAIT.TIME, _
  619.                 MODEM.COMMAND.DELAY.TIME, _
  620.                 COMMANDS.BETWEEN.RINGS, _
  621.                 MODEM.INIT.BAUD$, _
  622.                 KEEP.INIT.BAUD
  623.       CLOSE 2
  624.       END SUB
  625.