home *** CD-ROM | disk | FTP | other *** search
- ' $linesize: 132
- ' $title: 'CONFIG CPC17-3, Copyright 1983-89 by D. Thomas Mack'
- ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINE 10000-10230
- 10000 ' CONFIG.BAS (RBBS-PC VERSION CPC17-3)
- ' by D.Thomas Mack
- ' The Second Ring
- ' 39 Cranbury Dr.
- ' Trumbull, CT. 06611
- '
- ' *******************************NOTICE**********************************
- ' * A limited license is granted to all users of this program and it's *
- ' * companion program, RBBS-PC (ver. CPC17-3), to make copies of this *
- ' * program and distribute the copies to other users, on the following *
- ' * conditions *
- ' * 1. The copyright notices contained within this program are not *
- ' * altered, bypassed, or removed. *
- ' * 2. The program is not to be disrtibuted to others in modified *
- ' * form (i.e. the line numbers must remain the same). *
- ' * 3. No fee is charged (or any other consideration received) *
- ' * for coping or distributing these programs without an express *
- ' * written agreement with D. Thomas Mack, The Second Ring, *
- ' * 39 Cranbury Dr., Trumbul, CT. 06611 *
- ' * *
- ' * Copyright (c) 1983-1989 D. Thomas Mack, The Second Ring *
- ' ***********************************************************************
- ' $INCLUDE: 'CNFG-VAR.BAS'
- CLEAR
- '
- ' ****************************************************************************
- ' * DISPLAY THE CONFIG TITLE PAGE
- ' ****************************************************************************
- '
- WIDTH 80
- CLS
- NOT.YET.IN$ = "[Not Implemented]" ' Msg used in config for parm not yet implemented
- NONE.PICKED$ = "<none>" ' Standardized message
- NUM.FILES = 8
- NUM.GLOBAL = 4
- NUM.MAIN = 18
- NUM.SYSOP = 7
- NUM.UTILITY = 12
- NUM.LIBRARY = 7
- VERSION.NUMBER$ = "17.3"
- I! = FRE(C$)
- KEY OFF
- CALL CNFGINIT
- PRINT TAB(60)"tm"
- PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
- PRINT
- PRINT TAB(17)"Capital PC User Group User-Supported Software"
- PRINT
- X$ = " "
- PRINT "Copyright (c) 1983-1989 D. Thomas Mack, 39 Cranbury Dr., Trumbull, CT. 06611"
- PRINT
- PRINT X$;" If you use RBBS-PC " + CONFIG.VERSION$ + " and find" ' KG060704
- PRINT X$;" it valuable, consider contributing to" ' KG060704
- PRINT ""
- PRINT X$;" Capital PC Software Exchange"
- PRINT X$;" Post Office Box 6128"
- PRINT X$;" Silver Spring, Maryland 20906"
- PRINT
- PRINT X$;" You are free to copy and share RBBS-PC provided" ' KG060704
- PRINT X$;" 1. This program is not distributed in modified form."
- PRINT X$;" 2. No fee or consideration is charged for RBBS-PC itself."
- 10230 PRINT X$;" 3. This notice is not bypassed or removed."
- PRINT
- '
- ' * DEFINE THE FUNCTIONS USED BY CONFIG
- '
- DEF FNTI! = CSNG(FIX((VAL(MID$(TIME$,1,2)) * 60 * 60) _
- + (VAL(MID$(TIME$,4,2)) * 60) _
- + (VAL(MID$(TIME$,7,2)) * 1)))
- DEF FNHSH(X$) = ((ASC(X$) * 100 _
- + ASC(MID$(X$,(LEN(X$)/2) + .1,1)) * 10 _
- + ASC(RIGHT$(X$,1))) MOD MAX.USR.FILE.SIZE.FRM.DEF) + 1
- DEF FNHSH2(X$) = (ASC(MID$(X$,2,1)) * 10 + 7) MOD MAX.USR.FILE.SIZE.FRM.DEF
- DELAY! = FNTI! + 1
- 10480 GOSUB 60440
- 10490 LOCATE 22,15
- PRINT SPC(64)
- NODE.ID$ = ""
- IF COMMAND$ <> "" THEN _
- CONFIG.FILENAME$ = COMMAND$: _
- GOTO 10530
- CONFIG.FILENAME$ = "RBBS-PC.DEF"
- CALL GETNUMYN ("Will you be running multiple copies of RBBS-PC",AB)
- IF NOT AB THEN _
- GOTO 10530
- 10510 GOSUB 22480
- '
- ' * CHECK TO SEE IF AN EXISTING "RBBS-PC.DEF" FILE EXISTS
- '
- 10530 ON ERROR GOTO 60010
- FILE$ = CONFIG.FILENAME$
- GOSUB 30000
- M$ = "Z"
- NO.DEF.FILE = FALSE
- SUBBOARD = FALSE
- IF OKAY THEN _
- CALL CNFGINIT : _
- GOTO 10536
- IF LEN(CONFIG.FILENAME$) > 7 OR _
- INSTR(CONFIG.FILENAME$,".") <> 0 THEN _
- GOTO 10531
- FILE$ = FILE$ + "C.DEF"
- GOSUB 30000
- IF OKAY THEN _
- CALL CNFGINIT : _
- CONFIG.FILENAME$ = FILE$ : _
- GOTO 10536
- CALL GETNUMYN ("Are you setting up a 'sub-board'",AB)
- IF NOT AB THEN _
- GOTO 10531
- SUBBOARD = TRUE
- BASE.NAME$ = CONFIG.FILENAME$
- CONFIG.FILENAME$ = CONFIG.FILENAME$+"C.DEF"
- 10531 A$ = "Configuration file " + CONFIG.FILENAME$ + " not found. Create new one"
- CALL GETNUMYN (A$,AB)
- IF NOT AB THEN _
- SYSTEM
- 10532 X$ = "default location for RBBS files"
- GOSUB 15205
- DD$ = HJ$
- CALL CNFGINIT
- GOSUB 15790
- BULLETIN.MENU$ = DRIVE.FOR.BULLETINS$ + _
- BULLETIN.MENU$
- BULLETIN.PREFIX$ = DRIVE.FOR.BULLETINS$ + _
- BULLETIN.PREFIX$
- NO.DEF.FILE = TRUE
- GOTO 11710
- 10536 OPEN "I",#1,CONFIG.FILENAME$
- '
- ' * READ IN THE PARAMETERS FROM AN EXISTING "RBBS-PC.DEF" FILE
- '
- 11600 INPUT #1,CONFIG.FILE.VER$, _
- DOWNLOAD.DRIVES$, _
- SYSOP.PASSWORD.1$, _
- SYSOP.PASSWORD.2$, _
- SYSOP.FIRST.NAME$, _
- SYSOP.LAST.NAME$, _
- REQUIRED.RINGS, _
- START.OFFICE.HOURS, _
- END.OFFICE.HOURS, _
- MINUTES.PER.SESSION!, _
- MAX.ALLOWED.MSGS.FRM.DEF, _
- ACT.MNTHS.B4.DELETING, _
- UPLOAD.DIRECTORY$, _
- EXPERT.USER, _
- ACTIVE.BULLETINS, _
- PROMPT.BELL, _
- PCJR, _
- MENUS.CAN.PAUSE, _
- MENU$(1), _
- MENU$(2), _
- MENU$(3), _
- MENU$(4), _
- MENU$(5), _
- MENU$(6), _
- CONFERENCE.MENU$, _
- CONFERENCE.VIEWER.SEC.LVL, _
- WELCOME.INTERRUPTABLE, _
- REMIND.FILE.TRANSFERS, _
- PAGE.LENGTH, _
- MAX.MESSAGE.LINES, _
- DOORS.AVAILABLE, _
- MO$
- IF CONFIG.FILE.VER$ > VERSION.NUMBER$ OR _
- CONFIG.FILE.VER$ < "17.1A" THEN _
- PRINT "Config DEF file, " + CONFIG.FILENAME$ + " not " + CONFIG.VERSION$ : _
- END
- GOSUB 22340
- 11620 INPUT #1,MAIN.MESSAGE.FILE$, _
- MAIN.MESSAGE.BACKUP$, _
- CALLERS.FILE$, _
- COMMENTS.FILE$, _
- MAIN.USER.FILE$, _
- WELCOME.FILE$, _
- NEWUSER.FILE$, _
- DIRECTORY.EXTENTION$, _
- COM.PORT$, _
- BULLETINS.OPTIONAL, _
- USER.INIT.COMMAND$, _
- RTS$, _
- DOS.VERSION, _
- FG, _
- BG, _
- BORDER, _
- RBBS.BAT$, _
- RCTTY.BAT$
- GOSUB 22340
- 11640 INPUT #1,OMIT.MAIN.DIRECTORY$, _
- FIRST.NAME.PROMPT$, _
- HELP$(3), _
- HELP$(4), _
- HELP$(7), _
- HELP$(9), _
- BULLETIN.MENU$, _
- BULLETIN.PREFIX$, _
- DRIVE.FOR.BULLETINS$, _
- MESSAGE.REMINDER, _
- REQUIRE.NON.ASCII, _
- ASK.EXTENDED.DESC, _
- MAXIMUM.NUMBER.OF.NODES, _
- NETWORK.TYPE, _
- RECYCLE.TO.DOS, _
- MAX.USR.FILE.SIZE.FRM.DEF, _
- MAX.MSG.FILE.SIZE.FRM.DEF!, _
- TRASHCAN.FILE$
- DONT.ASK = TRUE
- GOSUB 21895
- DONT.ASK = FALSE
- GOSUB 22340
- 11660 INPUT #1,MINIMUM.LOGON.SECURITY, _
- DEFAULT.SECURITY.LEVEL, _
- SYSOP.SECURITY.LEVEL, _
- FILESEC.FILE$, _
- SYSOP.MENU.SECURITY.LEVEL, _
- CONFMAIL.LIST$, _
- MAXIMUM.VIOLATIONS, _
- SYSOP.FUNCTION(1), _
- SYSOP.FUNCTION(2), _
- SYSOP.FUNCTION(3), _
- SYSOP.FUNCTION(4), _
- SYSOP.FUNCTION(5), _
- SYSOP.FUNCTION(6), _
- SYSOP.FUNCTION(7), _
- PASSWORD.FILE$, _
- MAXIMUM.PASSWORD.CHANGES, _
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD, _
- OVERWRITE.SECURITY.LEVEL, _
- DOORS.TERMINAL.TYPE, _
- MAX.PER.DAY
- GOSUB 22340
- 11680 INPUT #1,MAIN.FUNCTION(1), _
- MAIN.FUNCTION(2), _
- MAIN.FUNCTION(3), _
- MAIN.FUNCTION(4), _
- MAIN.FUNCTION(5), _
- MAIN.FUNCTION(6), _
- MAIN.FUNCTION(7), _
- MAIN.FUNCTION(8), _
- MAIN.FUNCTION(9), _
- MAIN.FUNCTION(10), _
- MAIN.FUNCTION(11), _
- MAIN.FUNCTION(12), _
- MAIN.FUNCTION(13), _
- MAIN.FUNCTION(14), _
- MAIN.FUNCTION(15), _
- MAIN.FUNCTION(16), _
- MAIN.FUNCTION(17), _
- MAIN.FUNCTION(18), _
- MIN.NEWCALLER.BAUD, _
- WAIT.BEFORE.DISCONNECT
- GOSUB 22340
- 11700 INPUT #1,FILES.FUNCTION(1), _
- FILES.FUNCTION(2), _
- FILES.FUNCTION(3), _
- FILES.FUNCTION(4), _
- FILES.FUNCTION(5), _
- FILES.FUNCTION(6), _
- FILES.FUNCTION(7), _
- FILES.FUNCTION(8), _
- UTILITY.FUNCTION(1), _
- UTILITY.FUNCTION(2), _
- UTILITY.FUNCTION(3), _
- UTILITY.FUNCTION(4), _
- UTILITY.FUNCTION(5), _
- UTILITY.FUNCTION(6), _
- UTILITY.FUNCTION(7), _
- UTILITY.FUNCTION(8), _
- UTILITY.FUNCTION(9), _
- UTILITY.FUNCTION(10), _
- UTILITY.FUNCTION(11), _
- UTILITY.FUNCTION(12), _
- GLOBAL.FUNCTION(1), _
- GLOBAL.FUNCTION(2), _
- GLOBAL.FUNCTION(3), _
- GLOBAL.FUNCTION(4), _
- UPLOAD.TIME.FACTOR!, _
- COMPUTER.TYPE, _
- REMIND.PROFILE, _
- RBBS.NAME$, _
- COMMANDS.BETWEEN.RINGS, _
- DF, _ ' KG072303
- PAGING.PRINTER.SUPPORT$, _
- MODEM.INIT.BAUD$
- GOSUB 22340
- 11705 INPUT #1,TURN.PRINTER.OFF, _
- DIRECTORY.PATH$, _
- MIN.SEC.TO.VIEW, _
- LIMIT.SEARCH.TO.FMS, _
- DEFAULT.CATEGORY.CODE$, _
- DIR.CATEGORY.FILE$, _
- NEW.FILES.CHECK, _
- MAX.DESC.LEN, _
- SHOW.SECTION, _
- COMMANDS.IN.PROMPT, _
- NEWUSER.SETS.DEFAULTS, _
- HELP.PATH$, _
- HELP.EXTENSION$, _
- MAIN.COMMANDS$, _
- FILE.COMMANDS$, _
- UTIL.COMMANDS$, _
- GLOBAL.COMMANDS$, _
- SYSOP.COMMANDS$
- GOSUB 22340
- 11706 INPUT #1,RECYCLE.WAIT, _
- LIBRARY.FUNCTION(1), _
- LIBRARY.FUNCTION(2), _
- LIBRARY.FUNCTION(3), _
- LIBRARY.FUNCTION(4), _
- LIBRARY.FUNCTION(5), _
- LIBRARY.FUNCTION(6), _
- LIBRARY.FUNCTION(7), _
- LIBRARY.DRIVE$, _
- LIBRARY.DIRECTORY.PATH$, _
- LIBRARY.DIRECTORY.EXTENTION$, _
- LIBRARY.WORK.DISK.PATH$, _
- LIBRARY.MAX.DISK, _
- LIBRARY.MAX.DIRECTORY, _
- LIBRARY.MAX.SUBDIR, _
- LIBRARY.SUBDIR.PREFIX$, _
- LIBRARY.ARCHIVE.PATH$, _
- LIBRARY.ARCHIVE.PROGRAM$, _
- LIBRARY.COMMANDS$
- GOSUB 22340
- INPUT #1,UPLOAD.PATH$, _
- FMS.DIRECTORY$, _
- ANS.MENU$,_
- REQUIRED.QUESTIONNAIRE$,_
- REMEMBER.NEW.USERS, _
- SURVIVE.NOUSER.ROOM, _
- PROMPT.HASH$, _
- START.HASH, _
- LEN.HASH, _
- PROMPT.INDIV$, _
- START.INDIV, _
- LEN.INDIV
- GOSUB 22340
- INPUT #1,BYPASS.MSGS, _
- MUSIC, _
- RESTRICT.BY.DATE, _
- DAYS.TO.WARN, _
- DAYS.IN.SUBSCRIPTION.PERIOD, _
- VOICE.TYPE, _
- RESTRICT.VALID.CMDS, _
- NEW.USER.DEFAULT.MODE, _
- NEW.USER.LINE.FEEDS, _
- ARKVIEW.PATH$, _ 'ViewMod
- FAST.FILE.LIST$, _ ' KG102201
- FAST.FILE.LOCATOR$, _ ' KG102201
- MESSAGES.CAN.GROW, _
- WRAP.CALLERS.FILE$, _
- REDIRECT.IO.METHOD, _
- AUTO.UPGRADE.SEC, _
- HALT.ON.ERROR, _
- NEW.PUBLIC.MSGS.SECURITY, _
- NEW.PRIVATE.MSGS.SECURITY, _
- SECURITY.NEEDED.TO.CHANGE.MSGS, _
- SL.CATEGORIZE.UPLOADS, _
- BAUDOT, _
- TIME.TO.DROP.TO.DOS, _
- EXPIRED.SECURITY, _
- DTR.DROP.DELAY, _
- ASK.IDENTITY, _
- MAX.REG.SEC, _
- BUFFER.SIZE, _
- MLCOM, _
- SHOOT.YOURSELF, _
- EXTENSION.LIST$, _ 'DA050206
- NEW.USER.DEFAULT.PROTOCOL$, _
- NEW.USER.GRAPHICS$, _
- NET.MAIL$, _
- MASTER.DIRECTORY.NAME$, _
- PROTO.DEF$, _
- UPCAT.HELP$, _
- ALWAYS.STREW.TO$, _
- LAST.NAME.PROMPT$
- GOSUB 22340
- INPUT #1,PERSONAL.DRVPATH$, _
- PERSONAL.DIR$, _
- PERSONAL.BEGIN, _
- PERSONAL.LEN, _
- PERSONAL.PROTOCOL$, _
- PERSONAL.CONCAT , _
- PRIVATE.READ.SEC, _
- PUBLIC.READ.SEC, _
- SEC.CHANGE.MSG, _
- KEEP.INIT.BAUD, _
- MAIN.PUI$, _
- DEFAULT.ECHOER$, _
- HOST.ECHO.ON$, _
- HOST.ECHO.OFF$, _
- SWITCH.BACK, _
- DEFAULT.LINE.ACK$, _
- ALTDIR.EXTENSION$, _
- DIRECTORY.PREFIX$
- GOSUB 22340
- INPUT #1,SEC.LVL.EXEMPT.FRM.PURGING, _
- MODEM.INIT.WAIT.TIME, _
- MODEM.COMMAND.DELAY.TIME, _
- TURBO.RBBS
- GOSUB 22340
- 11707 INPUT #1,DNLD.SUB, _
- WILL.SUBDIRS.B.USED, _
- UPLOAD.TO.SUBDIR, _
- DOWNLOAD.TO.SUBDIR, _
- UPLOAD.SUBDIR$, _
- MIN.OLDCALLER.BAUD, _
- MAX.WORK.VAR, _
- DISKFULL.GO.OFFLINE, _
- EXTENDED.LOGGING, _
- USER.RESET.COMMAND$, _
- USER.COUNT.RINGS.COMMAND$, _
- USER.ANSWER.COMMAND$, _
- USER.GO.OFFHOOK.COMMAND$, _
- DISK.FOR.DOS$, _
- DUMB.MODEM, _
- COMMENTS.AS.MESSAGES, _
- LSB, _
- MSB, _
- LINE.CONTROL.REGISTER, _
- MODEM.CONTROL.REGISTER, _
- LINE.STATUS.REGISTER, _
- MODEM.STATUS.REGISTER
- GOSUB 22340
- INPUT #1,KEEP.TIME.CREDITS, _
- XON.XOFF, _
- ALLOW.CALLER.TURBO, _
- USE.DEVICE.DRIVER$, _
- PRELOG$, _
- NEW.USER.QUESTIONNAIRE$, _
- EPILOG$, _
- REGISTRATION.PROGRAM$, _
- QUES.PATH$, _
- USER.LOCATION$, _
- USER.INITIALIZE.COMMAND$, _
- USER.FIRMWARE.CLEAR.CMND$, _
- USER.FIRMWARE.WRITE.CMND$, _
- ENFORCE.UPLOAD.DOWNLOAD.RATIOS, _
- SIZE.OF.STACK, _
- SECURITY.EXEMPT.FROM.EPILOG, _
- USE.BASIC.WRITES, _
- DOSANSI, _
- ESCAPE.INSECURE, _
- USE.DIR.ORDER, _
- ADD.DIR.SECURITY, _
- MAX.EXTENDED.LINES, _
- DF$
- GOSUB 22340
- INPUT #1,LOGON.MAIL.LEVEL$, _
- MACRO.DRVPATH$, _
- MACRO.EXTENSION$, _
- EMPHASIZE.ON.DEF$, _
- EMPHASIZE.OFF.DEF$, _
- FG.1.DEF$, _
- FG.2.DEF$, _
- FG.3.DEF$, _
- FG.4.DEF$, _
- SECVIO.HLP$, _
- FOSSIL, _
- MAX.CARRIER.WAIT, _
- CALLER.BKGRD, _
- SMART.TEXT, _
- TIME.LOCK, _
- WRITE.BUF.DEF, _
- SEC.KILL.ANY, _
- DOORS.DEF$, _
- SCREEN.OUT.MSG$, _
- AUTOPAGE.DEF$
- GOSUB 21905
- GOSUB 22340
- IF MAX.CARRIER.WAIT < 1 THEN _
- MAX.CARRIER.WAIT = 30
- CALL ANSIDECODE (FG.1.DEF$)
- CALL ANSIDECODE (FG.2.DEF$)
- CALL ANSIDECODE (FG.3.DEF$)
- CALL ANSIDECODE (FG.4.DEF$)
- IF LEFT$(MACRO.EXTENSION$,1) = "." THEN _
- MACRO.EXTENSION$ = RIGHT$(MACRO.EXTENSION$,LEN(MACRO.EXTENSION$)-1)
- IF DNLD.SUB < 1 OR DNLD.SUB > 99 THEN _
- GOTO 11710
- FOR I = 1 TO DNLD.SUB
- INPUT #1,DNLD$(I)
- NEXT
- GOSUB 22340
- '
- ' * CONVERT "RBBS-PC.DEF" PARAMETERS TO DISPLAYABLE VALUES, AS REQUIRED
- '
- 11710 IF CALLERS.FILE$ = "" THEN _
- CALLERS.FILE$ = NONE.PICKED$
- IF ALTDIR.EXTENSION$ = "" THEN _
- ALTDIR.EXTENSION$ = NONE.PICKED$
- IF ALWAYS.STREW.TO$ = "" THEN _
- ALWAYS.STREW.TO$ = NONE.PICKED$
- IF QUES.PATH$ = "" THEN _
- QUES.PATH$ = NONE.PICKED$
- IF NEW.USER.QUESTIONNAIRE$ = "" THEN _
- NEW.USER.QUESTIONNAIRE$ = NONE.PICKED$
- IF REQUIRED.QUESTIONNAIRE$ = "" THEN _
- REQUIRED.QUESTIONNAIRE$ = NONE.PICKED$
- IF NET.MAIL$ = "NONE" THEN _
- NET.MAIL$ = NONE.PICKED$
- IF CONFMAIL.LIST$ = "" THEN _
- CONFMAIL.LIST$ = NONE.PICKED$
- X$ = BULLETIN.MENU$
- CALL BRKFNAME (X$,Z$,BULLETIN.MENU$,Y$,-1)
- IF Y$ <> "" THEN _
- BULLETIN.MENU$ = BULLETIN.MENU$ + Y$
- X$ = BULLETIN.PREFIX$
- CALL BRKFNAME (X$,Z$,BULLETIN.PREFIX$,Y$,-1)
- IF RECYCLE.TO.DOS = 0 THEN _
- RECYCLE.TO.DOS$ = "INTERNAL" _
- ELSE RECYCLE.TO.DOS$ = "SYSTEM
- HELP.FILE.PREFIX$ = LEFT$(HELP$(3),LEN(HELP$(3)) - 1)
- SF = SYSOP.FUNCTION(1)
- GOSUB 16062
- FOR I = 2 TO NUM.SYSOP
- IF SYSOP.FUNCTION(I) > SF THEN _
- GOTO 11790
- SF = SYSOP.FUNCTION(I)
- 11790 NEXT
- MM = MAIN.FUNCTION(1)
- FOR I = 1 TO NUM.MAIN
- MAIN.FUNCTION$(I,2) = MID$(MAIN.COMMANDS$,I,1)
- IF MAIN.FUNCTION(I) > MM THEN _
- GOTO 11810
- MM = MAIN.FUNCTION(I)
- 11810 NEXT
- FC = FILES.FUNCTION(1)
- FOR I = 1 TO NUM.FILES
- FILES.FUNCTION$(I,2) = MID$(FILE.COMMANDS$,I,1)
- IF FILES.FUNCTION(I) > FC THEN _
- GOTO 11830
- FC = FILES.FUNCTION(I)
- 11830 NEXT
- UE = UTILITY.FUNCTION(1)
- FOR I = 1 TO NUM.UTILITY
- UTILITY.FUNCTION$(I,2) = MID$(UTIL.COMMANDS$,I,1)
- IF UTILITY.FUNCTION(I) > UE THEN _
- GOTO 11850
- UE = UTILITY.FUNCTION(I)
- 11850 NEXT
- PS = LIBRARY.FUNCTION(1)
- FOR I = 1 TO NUM.LIBRARY
- LIBRARY.FUNCTION$(I,2) = MID$(LIBRARY.COMMANDS$,I,1)
- IF LIBRARY.FUNCTION(I) > PS THEN _
- GOTO 11860
- PS = LIBRARY.FUNCTION(I)
- 11860 NEXT
- FOR I = 1 TO NUM.GLOBAL
- GLOBAL.FUNCTION$(I,2) = MID$(GLOBAL.COMMANDS$,I,1)
- NEXT
- CLOSE #1
- GOSUB 50480
- GOSUB 50530
- 11870 IF EXPERT.USER = 0 THEN _
- EXPERT.USER$ = "NOVICE
- IF EXPERT.USER = -1 THEN _
- EXPERT.USER$ = "EXPERT
- DRIVE.FOR.UPLOADS$ = RIGHT$(DOWNLOAD.DRIVES$,1)
- DRIVES.FOR.DOWNLOADS$ = LEFT$(DOWNLOAD.DRIVES$,(LEN(DOWNLOAD.DRIVES$) - 1))
- PROMPT.BELL$ = "ON"
- IF PROMPT.BELL = 0 THEN _
- PROMPT.BELL$ = "OFF
- GOSUB 15780
- IF SYSOP.PASSWORD.1$ = "" OR SYSOP.PASSWORD.2$ = "" THEN _
- MN1$ = "<Disabled>" : _
- MN2$ = "" _
- ELSE MN1$ = SYSOP.PASSWORD.1$ : _
- MN2$ = SYSOP.PASSWORD.2$
- M11$ = "NO"
- IF PAGING.PRINTER.SUPPORT$ = ". " + CHR$(7) THEN _
- M11$ = "YES"
- IF START.HASH < 1 THEN _
- START.HASH = 1
- IF LEN.HASH < 2 THEN _
- LEN.HASH = 31
- IF REQUIRED.QUESTIONNAIRE$ = "" THEN _
- REQUIRED.QUESTIONNAIRE$ = NONE.PICKED$
- GOSUB 18002
- GOSUB 18102
- I = 1
- GOSUB 13030
- IF NO.DEF.FILE = FALSE THEN _
- GOTO 12151
- IF NOT SUBBOARD THEN _
- GOTO 12151
- MAIN.MESSAGE.FILE$ = BASE.NAME$+"M.DEF"
- MAIN.USER.FILE$ = BASE.NAME$+"U.DEF"
- 12151 CONFERENCE.MODE = 0
- SUBBOARD = FALSE
- MAINMSG$ = MAIN.MESSAGE.FILE$
- MAINUSR$ = MAIN.USER.FILE$
- I = INSTR(EXTENSION.LIST$,".") ' DA050206
- IF I = 0 THEN _ ' DA050206
- DEFAULT.EXTENSION$ = EXTENSION.LIST$ : _ ' DA050206
- COMPRESSED.EXT$ = NONE.PICKED$ _ ' KG010803
- ELSE _ ' DA050206
- DEFAULT.EXTENSION$ = LEFT$(EXTENSION.LIST$,I-1) : _ ' DA050206
- COMPRESSED.EXT$ = MID$(EXTENSION.LIST$,I) ' DA050206
- 12160 KEY OFF
- '
- ' * IF A MESSAGE FILE EXISTS, READ IN THE PARAMETERS IN IT.
- '
- FILE$ = MAIN.MESSAGE.FILE$
- GOSUB 30000
- NO.OLD.FILE = FALSE
- IF OKAY THEN _ ' IF MESSAGE FILE EXISTS, READ CHECKPOINT RECORD
- GOTO 12170
- NO.OLD.FILE = TRUE
- A$ = "Message file " + MAIN.MESSAGE.FILE$ + " not found. Create new one"
- CALL GETNUMYN (A$,AB)
- IF NOT AB THEN _
- SYSTEM
- CALLS.TODATE! = 0 ' FIRST MSG# -- 0
- FIRST.USER.RECORD = 1 ' USERS file -- first record number
- CURRENT.USER.COUNT = FIRST.USER.RECORD ' USERS file -- next available record number
- HIGHEST.USER.RECORD = MAX.USR.FILE.SIZE.FRM.DEF ' USERS file -- last record number
- FIRST.MESSAGE.RECORD = 2+MAXIMUM.NUMBER.OF.NODES ' MESSAGES file -- first record of messages
- NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD ' MESSAGES file -- next available record number
- HIGHEST.MESSAGE.RECORD = 5 * MAX.ALLOWED.MSGS.FRM.DEF _
- + 1 _
- + MAXIMUM.NUMBER.OF.NODES ' MESSAGES file -- last record number
- MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF ' MESSAGES file -- maximum number of messages
- B1 = MAXIMUM.NUMBER.OF.NODES
- B3! = HIGHEST.MESSAGE.RECORD
- GOSUB 22080
- GOSUB 30450 ' UPDATE CHECKPOINT RECORD
- 12170 GOSUB 30040 ' READ THE CHECKPOINT RECORD
- MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD
- MAX.ALLOWED.MSGS.FRM.DEF = INT((HIGHEST.MESSAGE.RECORD - FIRST.MESSAGE.RECORD) / 5) + 1
- IF MAX.ALLOWED.MSGS.FRM.DEF > 999 THEN _
- MAX.ALLOWED.MSGS.FRM.DEF = 999
- IF MAXIMUM.NUMBER.OF.MSGS < 1 THEN _
- MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF : _
- GOSUB 30450 ' READ THE CHECKPOINT RECORD
- FILE$ = MAIN.USER.FILE$ ' Check for USERS file
- GOSUB 30000
- NO.OLD.FILE = FALSE
- IF OKAY THEN _
- GOSUB 50500 : _
- GOTO 12189
- NO.OLD.FILE = TRUE
- B1 = MAX.USR.FILE.SIZE.FRM.DEF
- A$ = MAIN.USER.FILE$
- GOSUB 22140
- GOSUB 22150
- 12189 FOR I = 1 TO 10
- KEY I,""
- NEXT
- NO.OLD.FILE = FALSE
- B1 = MAX.USR.FILE.SIZE.FRM.DEF
- GOSUB 22140
- IF NO.DEF.FILE = FALSE THEN _
- GOTO 12190
- GOSUB 18700
- NO.DEF.FILE = FALSE
- '
- ' * DISPLY CONFIG'S MAIN FUNCTION KEY MENU
- '
- 12190 IF KSTACKED$ = "" THEN _
- IX = 0
- 12320 CALL DISPLAY
- IF IX = 21 THEN _
- GOTO 22350
- ON IPAGE GOTO 12622, _ ' 1 F1 - Global Parameters (part 1)
- 12624, _ ' 2 F2 - Global Parameters (part 2)
- 12626, _ ' 3 F3 - Global Parameters (part 3)
- 12628, _ ' 4 F4 - RBBS-PC System Files (part 1)
- 12630, _ ' 5 F5 - RBBS-PC System Files (part 2)
- 12632, _ ' 6 F6 - RBBS-PC "doors"
- 12634, _ ' 7 F7 - RBBS-PC security (part 1)
- 12636, _ ' 8 F8 - RBBS-PC security (part 2)
- 12640, _ ' 9 F9 - Multiple RBBS-PC parameters
- 12641, _ '10 F10 - RBBS-PC's Utilities
- 12642, _ '11 Shift-F1 - RBBS-PC File Manager
- 12643, _ '12 Shift-F2 - RBBS-PC comm. parameters (part 1)
- 12644, _ '13 Shift-F3 - RBBS-PC comm. parameters (part 2)
- 12645, _ '14 Shift-F4 - RBBS-PC Net Mail
- 12646, _ '15 Shift-F5 - New user's parameters
- 12647, _ '16 Shift-F6 - Library parameters
- 12648 '17 Shift-F7 - RBBS-PC Color parameters
- '
- ' * HANDLE UNSUPPORTED REQUEST
- '
- 12325 IX = IPAGE
- GOTO 12320
- 12622 ON ILOOKUP GOSUB 12840, _ ' 1 SYSOP's first name
- 12910, _ ' 2 SYSOP's last name
- 13140, _ ' 3 SYSOP's default signon mode
- 13210, _ ' 4 SYSOP's office hours
- 13224, _ ' 5 Page SYSOP with printer's bell
- 13249, _ ' 6 Go off-line when disk is full
- 13750, _ ' 7 Prompt bell
- 13840, _ ' 8 Maximum minutes per session
- 16650, _ ' 9 Maximum minutes per day
- 15234, _ ' 10 Factor to extend time for uploads
- 13940, _ ' 11 Months of inactivity before deleted
- 13131, _ ' 12 Name of this RBBS-PC
- 15530, _ ' 13 Foreground color
- 15590, _ ' 14 Background color
- 15650, _ ' 15 Border color
- 13320, _ ' 16 ANSI.SYS in CONFIG.SYS?
- 13330, _ ' 17 Control code for Smart Text
- 17725, _ ' 18 AutoPage def file
- 13000, _ ' 19 Level of logon mail report
- 12325 ' 20
- GOTO 12325
- 12624 ON ILOOKUP GOSUB 15800, _ ' 21 Remind users of messages they left
- 16690, _ ' 22 Remind users of uploads and downloads
- 16722, _ ' 23 Remind users of their profile
- 17600, _ ' 24 Enable download of new files at logon
- 16730, _ ' 25 Specify default page length
- 16790, _ ' 26 Set maximum number of lines/message
- 16000, _ ' 27 Is system "welcome" interruptable?
- 15840, _ ' 28 Are the system bulletins optional?
- 16040, _ ' 29 Type of PC running RBBS-PC
- 17230, _ ' 30 Symbols for SYSOP's commands
- 17240, _ ' 31 Symbols for main menu's commands
- 17250, _ ' 32 Symbols for file menu's commands
- 17260, _ ' 33 Symbols for utilities menu's commands
- 17264, _ ' 34 Symbols for "global" commands
- 17500, _ ' 35 Show section at command prompt?
- 17550, _ ' 36 Show commands at command prompt?
- 15830, _ ' 37 Restrict valid cmnds to current section
- 15820, _ ' 38 Use machine language subroutines?
- 15825, _ ' 39 Use BASIC PRINT for screen writes?
- 16795 ' 40 Set max # of lines for extended desc
- GOTO 12325
- 12626 ON ILOOKUP GOSUB 18000, _ ' 41 Field used to locate a users record
- 18100, _ ' 42 Field to distinguish users with same id
- 17800, _ ' 43 Where personal id begins in user rec
- 17810, _ ' 44 Length of personal id in user rec
- 17830, _ ' 45 First Name prompt
- 17840, _ ' 46 Last Name prompt
- 17850, _ ' 47 Enforce upload/download ratios
- 17630, _ ' 48 Restrict users by date
- 18510, _ ' 49 Security level when subscription expires
- 18530, _ ' 50 Days before expiration to warn user
- 18520, _ ' 51 Days a newuser gets when registers
- 17610, _ ' 52 Turn printer off on recycle
- 17620, _ ' 53 Play music for RBBS themes?
- 21760, _ ' 54 Buffer size for text files
- 16032, _ ' 55 Size of stack space to use
- 22550, _ ' 56 Notify users when SYSOP wants system?
- 17845, _ ' 57 Ask users their (city/state)
- 17625, _ ' 58 Order show dirs for ALL option
- 21770, _ ' 59 Buffer size on writes
- 21900 ' 60 Voice synthesizer support
- GOTO 12325
- 12628 ON ILOOKUP GOSUB 14790, _ ' 61 Drive and file describing bulletins
- 15290, _ ' 62 Number of active bulletins
- 14800, _ ' 63 Prefix used to name bulletin files
- 14810, _ ' 64 Drive and path for 'help' files
- 14820, _ ' 65 Prefix of nine major help files
- 14825, _ ' 66 Extension for individual help files
- 14915, _ ' 67 Help file for categorizing uploads
- 14830, _ ' 68 Name of 'newuser' file
- 14840, _ ' 69 Name of 'welcome" file
- 14860, _ ' 70 Name of SYSOP's commands menu
- 14870, _ ' 71 Name of main message command menu
- 14880, _ ' 72 Name of file subsystem command menu
- 14890, _ ' 73 Name of utilities command menu
- 14900, _ ' 74 Menu listing available conferences
- 14905, _ ' 75 Menu of questionnaires
- 14815, _ ' 76 Drive/path for optional questionnaires
- 18310, _ ' 77 Name of main PUI
- 15835, _ ' 78 Can menus pause in the middle?
- 15850, _ ' 79 Macro drive/path
- 15860 ' 80 Macro extension
- GOTO 12325
- 12630 ON ILOOKUP GOSUB 14910, _ ' 81 File of unacceptable user names
- 17700, _ ' 82 Name of required questionnaire
- 17710, _ ' 83 Name of "prelog" file
- 17720, _ ' 84 Name of New User questionnaire
- 17730, _ ' 85 Name of "epilog" questionnaire
- 15460, _ ' 86 Name of 'message' file
- 15500, _ ' 87 Name of 'user' file
- 15464, _ ' 88 Name of 'comments' file
- 15993, _ ' 89 Record comments as private messages?
- 15461, _ ' 90 Name of 'callers' file
- 15991, _ ' 91 Extened logging to 'callers' file?
- 22550, _ ' 92 Wrap-around the 'callers' file?
- 12670, _ ' 93 Conferences to search for new mail
- 21780, _ ' 94 Max # of work variables
- 12325, _ ' 95
- 12325, _ ' 96
- 12325, _ ' 97
- 12325, _ ' 98
- 12325, _ ' 99
- 12325 ' 100
- GOTO 12325
- 12632 ON ILOOKUP GOSUB 16290, _ ' 101 Are 'doors' available?
- 16130, _ ' 102 Name of menu listing available doors
- 16140, _ ' 103 Name of file built dynamically for doors
- 16150, _ ' 104 Name of .BAT the will re-invoke RBBS
- 16160, _ ' 105 Drive to look for COMMAND.COM on
- 16170, _ ' 106 Enable CTTY command for doors
- 18640, _ ' 107 Name of program to invoke at logon
- 17215, _ , 108 Who subject to logon door
- 18625, _ ' 109 Doors control file
- 12325, _ ' 110
- 12325, _ ' 111
- 12325, _ ' 112
- 12325, _ ' 113
- 12325, _ ' 114
- 12325, _ ' 115
- 12325, _ ' 116
- 12325, _ ' 117
- 12325, _ ' 118
- 12325, _ ' 119
- 12325 ' 120
- GOTO 12325
- 12634 ON ILOOKUP GOSUB 12980, _ ' 121 Pseudonym to sign on remotely as SYSOP
- 12990, _ ' 122 Escape logs on with no security
- 17160, _ ' 123 Minimum security level to logon
- 17170, _ ' 124 Default security level for new users
- 17180, _ ' 125 SYSOP's security level
- 17200, _ ' 126 Minimum security to see SYSOP's menu
- 17210, _ ' 127 Min security to add extended desc
- 17220, _ ' 128 Max # security violations allowed
- 17230, _ ' 129 Security levels for SYSOP commands
- 17240, _ ' 130 Security levels for main commands
- 17250, _ ' 131 Security levels for file commands
- 17260, _ ' 132 Security levels for utilities commands
- 17264, _ ' 133 Security level for 'global' commands'
- 17290, _ ' 134 Max # password changes allowed
- 17300, _ ' 135 Min. security for temp. passwords
- 17310, _ ' 136 Min. security to overwrite on uploads
- 17316, _ ' 137 User's security exempted from packing
- 15310, _ ' 138 Default security to read new Priv. Msg.
- 15320, _ ' 139 Default security to read new Public Msg.
- 15330 ' 140 Min. security to change msg.'s security
- GOTO 12325
- 12636 ON ILOOKUP GOSUB 22550, _ ' 141 Call back verification of all/new users
- 18630, _ ' 142 Drive/path for personal files
- 12750, _ ' 143 Name of personal directory
- 17820, _ ' 144 What protocol required for personal dnld
- 17190, _ ' 145 File listing download-secured files
- 17270, _ ' 146 File name with privileged passwords
- 17645, _ ' 147 Concatenate ASCII files in pers. dnld?
- 18515, _ ' 148 Security level to categorize uploads
- 18500, _ ' 149 Min. security to view new uploads
- 16033, _ ' 150 Security level exempt from "epilog"
- 18545, _ ' 151 Min. security to automatically add users
- 18340, _ ' 152 Min. security to use turbo logon
- 18345, _ ' 153 Min. security to add dir entry
- 17280, _ ' 154 Help file for security violation
- 18330, _ ' 155 Time Lock Selection
- 17640, _ ' 156 Auto upgrade security from main
- 17635, _ ' 157 Min sec to read/kill all msgs
- 13010, _ ' 158 How screen out lines from msg
- 12325, _ ' 159
- 12325 ' 160
- GOTO 12325
- 12640 ON ILOOKUP GOSUB 21750, _ ' 161 Maximum number of concurrent RBBS-PC's
- 21810, _ ' 162 Environment running RBBS-PC
- 21950, _ ' 163 Method that RBBS-PC re-cycles with
- 21910, _ ' 164 Number of records in 'user' file
- 22040, _ ' 165 Number of records in 'message' file
- 13890, _ ' 166 Maximum number of messages allowed
- 25040, _ ' 167 Conference file maintenance
- 14845, _ ' 168 Default extension compressed files
- 14930, _ ' 169 Additional compressed extensions ' DA050206
- 22030, _ ' 170 Can messages grow ' DA050206
- 12325, _ ' 170
- 12325, _ ' 171
- 12325, _ ' 172
- 12325, _ ' 173
- 12325, _ ' 174
- 12325, _ ' 175
- 12325, _ ' 176
- 12325, _ ' 177
- 12325, _ ' 178
- 12325, _ ' 179
- 12325 ' 180
- IF REFRESH = 1 THEN _
- REFRESH = 0 : _
- GOTO 12151
- IF REFRESH = 2 THEN _
- REFRESH = 0 : _
- GOTO 12160
- GOTO 12325
- 12641 ON ILOOKUP GOSUB 23160, _ ' 181 Pack the 'messages' file
- 22570, _ ' 182 Rebuild the 'user' file
- 23630, _ ' 183 Print the message headers
- 23740, _ ' 184 Renumber messages
- 23620, _ ' 185 Repair the 'message' file
- 24050, _ ' 186 Require users to answer questionnaire
- 24790, _ ' 187 Check FMS directory
- 13180, _ ' 188 Check Personal Download directory
- 18700, _ ' 189 Check critical parameters
- 18800, _ ' 190 Set New parameters
- 24795, _ ' 191 Reset active printers for all nodes
- 24040, _ ' 192 Set Highlight to match graphics
- 12325, _ ' 193
- 12325, _ ' 194
- 12325, _ ' 195
- 12325, _ ' 196
- 12325, _ ' 197
- 12325, _ ' 198
- 12325, _ ' 199
- 12325 ' 200
- GOTO 12325
- 12642 ON ILOOKUP GOSUB 14920, _ ' 201 Drive available for uploading
- 12730, _ ' 202 Name of directory for uploading
- 18550, _ ' 203 Drive/path for upload dir
- 13470, _ ' 204 Drive(s) available for downloading
- 25380, _ ' 205 Are DOS subdirectories used?
- 25420, _ ' 206 Upload to a DOS subdirectory?
- 25460, _ ' 207 Are downloads from DOS subdirectories?
- 25495, _ ' 208 List, change, add, delete subdir.?
- 14850, _ ' 209 Extension for file directories
- 14855, _ ' 210 Alternate directory extension
- 14857, _ ' 211 Name (prefix) of dir of dir
- 15920, _ ' 212 Omit directory list from N>ew command?
- 18350, _ ' 213 Copy upload descriptions to another file
- 12740, _ ' 214 FMS directory name
- 17590, _ ' 215 Limit file searches to upload dir
- 18200, _ ' 216 Default category codes for uploads
- 18300, _ ' 217 File name with valid category codes
- 18360, _ ' 218 Restrict dir search for 'ALL' to
- 18400, _ ' 219 Length of description of uploads
- 18600 ' 220 Drive/path directory files
- GOTO 12325
- 12643 ON ILOOKUP GOSUB 14120, _ ' 221 Communications Port being used
- 15240, _ ' 222 Seconds for modem to initalize
- 15250, _ ' 223 Seconds to wait before issuing cmds.
- 13228, _ ' 224 Number of rings to answer on
- 15710, _ ' 225 Use standard RBBS-PC modem commands
- 12325, _ ' 226 Microcom's MNP available? ' KG072303
- 16121, _ ' 227 Issue modem commands between rings?
- 16124, _ ' 228 Baud rate to initially open modem at
- 16031, _ ' 229 Seconds to wait before disconnecting
- 16725, _ ' 230 Is a dumb modem being used?
- 23731, _ ' 231 Initialize Hayes 2400 firmware
- 18540, _ ' 232 DTR drop delay time
- 18620, _ ' 233 Where external protocol pgms are
- 17650, _ ' 234 Always check for autodownload support
- 15880, _ ' 235 Require non-ASCII protocol?
- 13280, _ ' 236 If no calls, recycle after
- 13290, _ ' 237 Leave modem at initial baud
- 12325, _ ' 238
- 12325, _ ' 239
- 12325 ' 240
- GOTO 12325
- 12644 ON ILOOKUP GOSUB 13295, _ ' 241 Switch back when change comm. parms.
- 13238, _ ' 242 Min. baud for new callers
- 13242, _ ' 243 Min. baud for old callers
- 13260, _ ' 244 Use CTS for modem flow control?
- 13310, _ ' 245 Use XON/XOFF for flow control
- 13270, _ ' 246 Max time to wait for carrier
- 12325, _ ' 247
- 12325, _ ' 248
- 12325, _ ' 249
- 12325, _ ' 250
- 12325, _ ' 251
- 12325, _ ' 252
- 12325, _ ' 253
- 12325, _ ' 254
- 12325, _ ' 255
- 12325, _ ' 256
- 12325, _ ' 257
- 12325, _ ' 258
- 12325, _ ' 259
- 12325 ' 260
- GOTO 12325
- 12645 ON ILOOKUP GOSUB 26040, _ ' 261 Time of day to drop to DOS
- 26070, _ ' 262 NET-MAIL driver to invoke
- 26100, _ ' 263 Echo on command for host
- 26110, _ ' 264 Echo off command for host
- 13285, _ ' 265 Echo remote input?
- 26105, _ ' 266 ASCII upload line acknowledge
- 15466, _ ' 267 Up/download list ' KG102201
- 15468, _ ' 268 Up/download locator ' KG102201
- 12325, _ ' 269
- 12325, _ ' 270
- 12325, _ ' 271
- 12325, _ ' 272
- 12325, _ ' 273
- 12325, _ ' 274
- 12325, _ ' 275
- 12325, _ ' 276
- 12325, _ ' 277
- 12325, _ ' 278
- 12325, _ ' 279
- 12325 ' 280
- GOTO 12325
- 12646 ON ILOOKUP GOSUB 17560, _ ' 281 Prompt new users for their preferences
- 22550, _ ' 282 New users default sign-on mode
- 22550, _ ' 283 New users default file-transfer mode
- 22550, _ ' 284 Line feeds for new users default to
- 20018, _ ' 285 Drive/path for V)iew Files (eg C:\VIEW) 'Viewmod
- 22550, _ ' 286 Prompt bell for new users defaults to
- 22550, _ ' 287 New users 'graphics' ability is
- 22550, _ ' 288 New users upper/lower case
- 22550, _ ' 289 New users margins defaults are
- 17570, _ ' 290 Remember new users
- 17580, _ ' 291 Survive no user room
- 12325, _ ' 292
- 12325, _ ' 293
- 12325, _ ' 294
- 12325, _ ' 295
- 12325, _ ' 296
- 12325, _ ' 297
- 12325, _ ' 298
- 12325, _ ' 299
- 12325 ' 300
- GOTO 12325
- 12647 ON ILOOKUP GOSUB 20000, _ ' 301 Drive for Library
- 20010, _ ' 302 Drive/path for directory
- 20020, _ ' 303 Extension for directory lists
- 20030, _ ' 304 Drive/path for work disk
- 20040, _ ' 305 # of disks in Library
- 20050, _ ' 306 # of Master directories
- 20060, _ ' 307 # of subdirectories in each master
- 20070, _ ' 308 Prefix of subdirectory on Library
- 20080, _ ' 309 Name of subsystem command menu
- 20090, _ ' 310 Symbols to use for menu commands
- 20090, _ ' 311 Security levels for menu functions
- 20100, _ ' 312 Drive/path of ARCHIVE utility
- 20110, _ ' 313 Name of ARCHIVE utility
- 12325, _ ' 314
- 12325, _ ' 315
- 12325, _ ' 316
- 12325, _ ' 317
- 12325, _ ' 318
- 12325, _ ' 319
- 12325 ' 320
- GOTO 12325
- 12648 ON ILOOKUP GOSUB 26115, _ ' 321 Turn on Emphasis
- 26120, _ ' 322 Restore text to normal
- 12850, _ ' 323 1st Foreground Color
- 12860, _ ' 324 2nd Foreground Color
- 12870, _ ' 325 3rd Foreground Color
- 12880, _ ' 326 4th Foreground Color
- 12890, _ ' 327 Caller Background Color
- 12325, _ ' 328
- 12325, _ ' 329
- 12325, _ ' 330
- 12325, _ ' 331
- 12325, _ ' 332
- 12325, _ ' 333
- 12325, _ ' 334
- 12325, _ ' 335
- 12325, _ ' 336
- 12325, _ ' 337
- 12325, _ ' 338
- 12325, _ ' 339
- 12325 ' 340
- GOTO 12325
- '
- ' * LIST OF CONFERENCES TO SEARCH FOR NEW MAIL
- '
- 12670 CALL GETNUMYN ("Do you want to notify callers of conference mail",X)
- IF NOT X THEN _
- CONFMAIL.LIST$ = NONE.PICKED$ : _
- RETURN
- GOSUB 17340
- GOSUB 17740
- CONFMAIL.LIST$ = HJ$
- RETURN
- '
- ' * PROCESS NAME OF UPLOAD DIRECTORY
- '
- 12730 CALL ASKRO("Name of upload directory (8 char. max)?",24,HJ$)
- IF LEN(HJ$) < 1 OR _
- LEN(HJ$) > 8 THEN _
- GOTO 12730
- CALL ALLCAPS (HJ$)
- UPLOAD.DIRECTORY$ = HJ$
- RETURN
- '
- ' * Get the File Management System Directory
- '
- 12740 CALL ASKRO("Name of File Management System (or NONE) directory (8 char. max)?",24,HJ$)
- IF LEN(HJ$) > 8 THEN _
- GOTO 12740
- CALL ALLCAPS (HJ$)
- FMS.DIRECTORY$ = HJ$
- IF FMS.DIRECTORY$ = "NONE" THEN _
- FMS.DIRECTORY$ = ""
- RETURN
- 12750 CALL ASKRO("Name (prefix, optional extension) of Personal directory",24,HJ$)
- IF LEN(HJ$) < 1 OR _
- LEN(HJ$) > 12 OR INSTR(HJ$,".") > 9 THEN _
- GOTO 12750
- CALL ALLCAPS (HJ$)
- PERSONAL.DIR$ = HJ$
- IF INSTR(PERSONAL.DIR$,".") < 1 THEN _
- PERSONAL.DIR$ = PERSONAL.DIR$ + _
- ".DEF"
- IF (INSTR(PERSONAL.DIR$,":") < 1) AND _
- (INSTR(PERSONAL.DIR$,"\") < 1) THEN _
- PERSONAL.DIR$ = PERSONAL.DRVPATH$+PERSONAL.DIR$
- RETURN
- '
- ' * GET THE SYSOP'S FIRST NAME
- '
- 12840 CALL ASKRO("What is the SYSOP's FIRST Name?",24,HJ$)
- IF LEN(HJ$) < 3 THEN _
- GOTO 12840
- CALL ALLCAPS (HJ$)
- SYSOP.FIRST.NAME$ = HJ$
- RETURN
- 12850 CALL GETANSI (FG.1.DEF$," 1st")
- RETURN
- 12860 CALL GETANSI (FG.2.DEF$," 2nd")
- RETURN
- 12870 CALL GETANSI (FG.3.DEF$," 3rd")
- RETURN
- 12880 CALL GETANSI (FG.4.DEF$," 4th")
- RETURN
- 12890 CALL GETCOLOR("Caller's BACKGROUND color",CALLER.BKGRD)
- RETURN
- '
- ' * PROCESS THE SYSOP'S LAST NAME
- '
- 12910 CALL ASKRO("What is the SYSOP's LAST Name?",24,HJ$)
- IF LEN(HJ$) < 3 THEN _
- GOTO 12840
- CALL ALLCAPS (HJ$)
- SYSOP.LAST.NAME$ = HJ$
- RETURN
- '
- ' * PROCESS THE "PSEUDONYM" (FIRST NAME) USED BY THE SYSOP TO LOGON REMOTELY
- '
- 12980 CALL ASKRO("Secret first name that lets remote caller on as SYSOP is?",24,SYSOP.PASSWORD.1$)
- CALL ALLCAPS (SYSOP.PASSWORD.1$)
- IF SYSOP.PASSWORD.1$ = "" THEN _
- GOTO 12985
- MN1$ = SYSOP.PASSWORD.1$
- CALL ASKRO("Secret last name for remote SYSOP ([ENTER] disables)?",24,SYSOP.PASSWORD.2$)
- CALL ALLCAPS (SYSOP.PASSWORD.2$)
- IF SYSOP.PASSWORD.2$ = "" THEN _
- GOTO 12985
- MN2$ = SYSOP.PASSWORD.2$
- RETURN
- 12985 MN1$ = "(Disabled)"
- MN2$ = ""
- SYSOP.PASSWORD.1$ = "" ' KG072801
- SYSOP.PASSWORD.2$ = "" ' KG072801
- RETURN
- 12990 CALL GETNUMYN ("ESCAPE immediately lets on locally (NO=require name)",ESCAPE.INSECURE)
- RETURN
- '
- ' * IDENTIFY THE TYPE OF USERS THAT CAN BYPASS THE MESSAGE SUBSYSTEM
- '
- 13000 CALL ASKRO ("Mail to caller to report on logon: A)ll, N)ew only, S)kip (none)",24,HJ$)
- IF LEN(HJ$) < 1 THEN _
- GOTO 13000
- LOGON.MAIL.LEVEL$ = LEFT$(HJ$,1)
- CALL ALLCAPS (LOGON.MAIL.LEVEL$)
- IF INSTR("ANS",LOGON.MAIL.LEVEL$) = 0 THEN _
- GOTO 13000
- RETURN
- 13010 CALL ASKRO ("Exclude lines from msg display that begin with",24,SCREEN.OUT.MSG$)
- RETURN
- 13030 IF BYPASS = 0 THEN _
- BYPASS$ = "Any user" : _
- RETURN
- IF BYPASS = 1 THEN _
- BYPASS$ = "All but new users" : _
- RETURN
- IF BYPASS = 2 THEN _
- BYPASS$ = "Only EXPERT users" : _
- RETURN
- IF I = 0 THEN _
- CALL GETINIT ("Specify the security level required to bypass messages. ",24,-32767,32767,X,CR) : _
- X$=STR$(X)
- BYPASS$ = "Security >" + _
- STR$(VAL(X$)) + _
- " users"
- RETURN
- '
- ' * ALLOW THE SYSOP TO GIVE THIS RBBS-PC A PERSONAL NAME
- '
- 13131 CALL ASKRO("Enter name for this RBBS-PC (19 characters or less) ",24,HJ$)
- IF LEN(HJ$) > 19 THEN _
- GOTO 13131
- CALL ALLCAPS (HJ$)
- RBBS.NAME$ = HJ$
- RETURN
- '
- ' * ALLOW THE SYSOP TO SELECT "EXPERT" OR "NOVICE" AS HIS DEFAULT MODE
- '
- 13140 CALL ASKRO("SYSOP's default sign-on mode (E)xpert, N)ovice)? ",24,HJ$)
- IF LEN(HJ$) = 6 OR _
- LEN(HJ$) = 1 THEN _
- GOTO 13170
- GOTO 13140
- 13170 CALL ALLCAPS (HJ$)
- IF HJ$ = "E" OR _
- HJ$ = "EXPERT" THEN _
- EXPERT.USER$ = "EXPERT" : _
- RETURN
- IF HJ$ = "N" OR _
- HJ$ = "NOVICE" THEN _
- EXPERT.USER$ = "NOVICE" : _
- RETURN
- GOTO 13140
- 13180 CALL CHKPERSDIR (PERSONAL.DIR$,MAX.DESC.LEN,PERSONAL.LEN)
- RETURN
- '
- ' * ALLOW THE SYSOP TO SELECT HIS "OFFICE HOURS"
- '
- 13210 CALL GETINIT ("What is the earliest SYSOP wants to be paged? -- HHMM ",24,0,2359,START.OFFICE.HOURS,CR)
- IF CR THEN _
- GOTO 13210
- 13216 CALL GETINIT ("What is the latest SYSOP wants to be paged? -- HHMM ",24,0,2359,END.OFFICE.HOURS,CR)
- IF CR THEN _
- GOTO 13216
- IF START.OFFICE.HOURS > END.OFFICE.HOURS THEN _
- SWAP START.OFFICE.HOURS,END.OFFICE.HOURS
- RETURN
- '
- ' * DETERMINE IF THE PRINTER'S "BELL" IS TO BE USED WHEN PAGING
- '
- 13224 CALL GETYESNO ("Use on-line printer's bell to the page SYSOP?",M11$)
- RETURN
- '
- ' * DETERMINE THE NUMBER OF RINGS RBBS-PC IS TO WAIT BEFORE ANSWERING
- '
- 13228 A$ = ""
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=") + 3,5) = "1Q0X1"
- 13229 CALL GETINIT ("How many rings should RBBS-PC wait before answering? ",24,0,255,REQUIRED.RINGS,CR)
- IF CR THEN _
- GOTO 13229
- IF REQUIRED.RINGS = 0 THEN _
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=") + 3,5) = "1Q0X1" : _
- RETURN
- 13233 CALL GETNUMYN ("Next call answered after" + _
- STR$(REQUIRED.RINGS) + _
- " rings. Do you want ringback?",AB)
- IF NOT AB THEN _
- GOTO 13237
- 13235 IF REQUIRED.RINGS > 5 THEN _
- A$ = "(<6 for ringback)" : _
- GOTO 13229
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=") + 3,5) = "255 "
- RETURN
- 13237 MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=") + 3,5) = "254 "
- RETURN
- 13238 CALL MMINTEGER ("Minimum baud required for NEW callers",0,32000,MIN.NEWCALLER.BAUD)
- RETURN
- 13242 CALL MMINTEGER ("Minimum baud required for OLD callers",0,32000,MIN.OLDCALLER.BAUD)
- RETURN
- 13249 CALL GETNUMYN ("Should RBBS-PC go off-line when DISK FULL occurs ",DISKFULL.GO.OFFLINE)
- RETURN
- '
- ' * REQUEST DRIVE SPECIFICATION IN THE RANGE "A" TO THE MAXIMUM ALLOWABLE
- '
- 13253 CALL ASKRO ("Specify single drive in the range A->" + _
- M$ + _
- " for "+A$,24,HJ$)
- IF LEN(HJ$) <> 1 THEN _
- GOTO 13253
- CALL ALLCAPS (HJ$)
- IF HJ$ < "A" OR HJ$ > M$ THEN _
- GOTO 13253
- RETURN
- '
- ' * ALLOW THE SYSOP TO ELECT TO USE RTS FOR MODEM FLOW CONTROL
- '
- 13260 CALL GETYESNO ("Does your modem use the CTS signal for flow control",RTS$)
- RETURN
- 13270 CALL MMINTEGER ("Seconds to wait for carrier after detecting a call",5,999,MAX.CARRIER.WAIT)
- RETURN
- 13280 CALL MMINTEGER ("Wait how many minutes before recycling if no calls (0=forever)",0,32400,RECYCLE.WAIT)
- RETURN
- 13285 CALL ASKRO ("What caller types is ECHOed by R)BBS, I)nter host, C)aller's pgm",24,DEFAULT.ECHOER$)
- IF LEN(DEFAULT.ECHOER$) < 1 THEN _
- GOTO 13285
- DEFAULT.ECHOER$ = LEFT$(DEFAULT.ECHOER$,1)
- CALL ALLCAPS (DEFAULT.ECHOER$)
- IF INSTR("ICR",DEFAULT.ECHOER$) < 1 THEN _
- GOTO 13285
- RETURN
- 13290 A$ = "Leave modem at init baud rate Y)es, N)o, H)igh (above 2400)" ' WM042201
- CALL ASKRO (A$,24,HJ$) ' WM042201
- IF LEN(HJ$) <> 1 THEN _ ' WM042201
- GOTO 13290 ' WM042201
- CALL ALLCAPS (HJ$) ' WM042201
- IF HJ$ = "Y" THEN _ ' WM042201
- KEEP.INIT.BAUD = -1 _ ' WM042201
- ELSE IF HJ$ = "N" THEN _ ' WM042201
- KEEP.INIT.BAUD = 0 _ ' WM042201
- ELSE IF HJ$ = "H" THEN _ ' WM042201
- KEEP.INIT.BAUD = 1 _ ' WM042201
- ELSE _ ' WM042201
- GOTO 13290 ' WM042201
- RETURN
- 13295 CALL GETNUMYN ("Switch back comm settings if changed for up/down load",SWITCH.BACK)
- RETURN
- 13310 CALL GETNUMYN ("Always respect XON/XOFF for flow control",XON.XOFF)
- RETURN
- 13320 CALL GETNUMYN ("CONFIG.SYS includes an ANSI device driver",DOSANSI)
- RETURN
- 13330 CALL MMINTEGER ("ASCII value for SMART TEXT control (0=NONE)",0,255,SMART.TEXT)
- RETURN
- '
- ' * ALLOW THE DRIVES AVAILABLE FOR DOWNLOADING TO BE SELECTED
- '
- 13470 CALL ASKRO ("Specify download drives (max of" + _
- STR$(MAXD) + _
- " in the range A-> " + M$ + "). ",24,HJ$)
- IF LEN(HJ$) < 1 OR LEN(HJ$) > MAXD THEN _
- GOTO 13470
- CALL ALLCAPS (HJ$)
- FOR I = 1 TO LEN(HJ$)
- A$(I) = MID$(HJ$,I,1)
- NEXT
- FOR I = 1 TO LEN(HJ$)
- IF A$(I) < "A" OR A$(I) > M$ THEN _
- GOTO 13470
- NEXT
- DRIVES.FOR.DOWNLOADS$ = HJ$
- IF DNLD.SUB < 1 THEN _
- RETURN
- FOR I = 1 TO DNLD.SUB
- IF INSTR(1,DRIVES.FOR.DOWNLOADS$,LEFT$(DNLD$(I),1)) = 0 THEN _
- DNLD$(I) = ""
- NEXT
- STOPIT = DNLD.SUB
- FOR I = 1 TO STOPIT
- IF DNLD$(I) <> "" THEN _
- GOTO 13583
- DNLD$(I) = DNLD$(I + 1)
- DNLD$(I + 1) = ""
- 13583 NEXT
- DNLD.SUB = 0
- FOR I = 1 TO STOPIT
- IF DNLD$(I) <> "" THEN _
- DNLD.SUB = DNLD.SUB + 1
- NEXT
- RETURN
- 13593 MAX = 3
- 13599 CALL ASKRO (A$,24,HJ$)
- CALL ALLCAPS (HJ$)
- IF LEN(HJ$) < 1 OR LEN(HJ$) > MAX THEN _
- GOTO 13599
- I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 13599
- '
- ' * IS THE DEFAULT TO HAVE THE PROMPT BELL ON AFTER EACH COMMAND?
- '
- 13750 CALL ASKRO ("Prompt bell default? (ON or OFF) ",24,PROMPT.BELL$)
- IF LEN(PROMPT.BELL$) < 1 OR _
- LEN(PROMPT.BELL$) > 3 THEN _
- GOTO 13750
- CALL ALLCAPS (PROMPT.BELL$)
- IF PROMPT.BELL$ = "ON" THEN _
- RETURN
- IF PROMPT.BELL$ = "OFF" THEN _
- RETURN
- GOTO 13750
- '
- ' * SPECIFY THE MAXIMUM TIME A USER CAN STAY ON (THE DEFAULT)
- '
- 13840 CALL GETINIT ("Maximum minutes per session a user can stay on the system ",24,0,1440,MIN,CR)
- IF CR THEN _
- GOTO 13840
- MINUTES.PER.SESSION! = MIN
- RETURN
- '
- ' * ALLOW THE MAXIMUM NUMBER OF MESSAGES ALLOWED TO BE SELECTED
- '
- 13890 J = 999
- IF NOT MESSAGES.CAN.GROW THEN _
- IF ((MAX.MSG.FILE.SIZE.FRM.DEF! - 1 - MAXIUM.NUMBER.OF.NODES) / 5) < J THEN _
- J = (MAX.MSG.FILE.SIZE.FRM.DEF! - 1 - MAXIMUM.NUMBER.OF.NODES) / 5
- CALL GETINIT ("Set maximum number of messages allowed (MAX = " + _
- STR$(FIX(J)) + _
- ")",24,1,999,MAX.ALLOWED.MSGS.FRM.DEF,CR)
- IF CR THEN _
- GOTO 13890
- IF MAX.ALLOWED.MSGS.FRM.DEF < J + 1 THEN _
- GOTO 13929
- IF MESSAGES.CAN.GROW THEN _
- GOTO 13929
- CALL GETNUMYN ("Increase the " + _
- MAIN.MESSAGE.FILE$ + _
- " file to " + _
- STR$((MAX.ALLOWED.MSGS.FRM.DEF * 5) + 1 + MAXIMUM.NUMBER.OF.NODES) + _
- " records?",AB)
- IF NOT AB THEN _
- GOTO 13890
- 13927 MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF
- GOSUB 30450
- B3! = (MAX.ALLOWED.MSGS.FRM.DEF * 5) + 1 + MAXIMUM.NUMBER.OF.NODES
- GOSUB 22080
- RETURN
- 13929 MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF
- GOSUB 30450
- RETURN
- 13940 CALL ANYINTEGER ("Set number of months before an inactive user is purged. ",ACT.MNTHS.B4.DELETING)
- IF ACT.MNTHS.B4.DELETING < 1 OR ACT.MNTHS.B4.DELETING > 12 THEN _
- GOTO 13940
- RETURN
- 14120 COMMIN = 1
- COMMAX = 8
- CALL ANYINTEGER ("# of communication port to use (" + _
- MID$(STR$(COMMIN),2) + _
- "-" + _
- MID$(STR$(COMMAX),2) + _
- ", or 0 for LOCAL WORKSTATION)? ",X)
- IF X <> 0 AND (X < COMMIN OR X > COMMAX) THEN _
- GOTO 14120
- COM.PORT$ = "COM" + MID$(STR$(X),2)
- IF X = 0 THEN _
- LSB = 1016 : _
- RETURN
- 14121 CALL GETNUMYN ("Use FOSSIL driver support",FOSSIL)
- IF FOSSIL THEN _
- GOTO 14125
- IF X < 3 THEN _
- GOTO 14123
- CALL GETNUMYN("BASIC does not support " + COM.PORT$ + ". Do you wish to change it?",AB)
- IF AB THEN _
- GOTO 14120
- GOTO 14121
- 14123 IF X = 1 THEN _
- LSB = 1016 _
- ELSE IF X = 2 THEN _
- LSB = 760
- IF PCJR THEN _
- LSB = 760
- RETURN
- 14125 CALL ASKRO("Enter port address. e.g. 3F8? ",24,HJ$) ' KG020801
- B = LEN(HJ$) ' KG020801
- IF B < 3 OR B > 4 THEN _ ' KG020801
- GOTO 14125
- 14130 CALL ALLCAPS (HJ$)
- B = 3
- GOSUB 14789
- IF A < 0 THEN _
- GOTO 14125
- LSB = A
- B = 2
- GOSUB 14789
- IF A < 0 THEN _
- GOTO 14125
- LSB = LSB + A * 16
- B = 1
- GOSUB 14789
- IF A < 0 THEN _
- GOTO 14125
- LSB = LSB + A * 256
- RETURN
- 14789 A = INSTR("0123456789ABCDEF",MID$(HJ$,B,1)) - 1
- RETURN
- '
- ' * DRIVE AND NAME OF FILE CONTAINING THE BULLETIN FILES
- '
- 14790 GOSUB 15200
- DRIVE.FOR.BULLETINS$ = HJ$
- GOSUB 14970
- BULLETIN.MENU$ = HJ$
- RETURN
- '
- ' * PREFIX USED TO NAME BULLETIN FILES
- '
- 14800 GOSUB 14970
- IF LEN(HJ$) > 6 THEN _
- RETURN
- BULLETIN.PREFIX$ = HJ$
- RETURN
- '
- ' * DRIVE AND PATH FOR THREE MAJOR 'HELP' FILES
- '
- 14810 GOSUB 15200
- HELP.PATH$ = HJ$
- RETURN
- 14815 GOSUB 15200
- QUES.PATH$ = HJ$
- RETURN
- '
- ' * PREFIX FOR FOR THREE MAJOR 'HELP' FILES
- '
- 14820 GOSUB 14970
- IF LEN(HJ$) > 7 THEN _
- RETURN
- HELP.FILE.PREFIX$ = HJ$
- RETURN
- '
- ' * NAME OF 'NEWUSER' FILE
- '
- 14825 A$ = "File extension for help files (max 3 chars)"
- GOSUB 13593
- HELP.EXTENSION$ = HJ$
- RETURN
- 14830 GOSUB 17340
- NEWUSER.FILE$ = HJ$
- RETURN
- '
- ' * NAME OF 'WELCOME' FILE
- '
- 14840 GOSUB 17340
- WELCOME.FILE$ = HJ$
- RETURN
- 14845 CALL ASKRO ("Extension for compressed files",24,HJ$) ' KG052301
- IF LEN(HJ$) > 3 OR LEN(HJ$) < 1 THEN _
- GOTO 14845
- CALL ALLCAPS (HJ$)
- DEFAULT.EXTENSION$ = HJ$
- RETURN
- '
- ' * NAME OF 'FILE DIRECTORY' FILE'S EXTENSION
- '
- 14850 A$ = "Extension for RBBS directory files (3 char. max)."
- GOSUB 13593
- DIRECTORY.EXTENTION$ = HJ$
- RETURN
- 14855 CALL ASKRO ("Alternate extension for RBBS directory files ",24,HJ$)
- IF LEN(HJ$) > 3 THEN _
- GOTO 14855
- CALL ALLCAPS (HJ$)
- ALTDIR.EXTENSION$ = HJ$
- RETURN
- 14857 A$ = "PREFIX of name of directory of directories "
- MAX = 8
- GOSUB 13599
- DIRECTORY.PREFIX$ = HJ$
- RETURN
- '
- ' * NAME OF THE SYSOP'S MENU
- '
- 14860 GOSUB 17340
- MENU$(1) = HJ$
- RETURN
- '
- ' * NAME OF MAIN MESSAGES SUBSECTION'S MENU
- '
- 14870 GOSUB 17340
- MENU$(2) = HJ$
- RETURN
- '
- ' * NAME OF FILE SUBSECTION'S MENU
- '
- 14880 GOSUB 17340
- MENU$(3) = HJ$
- RETURN
- '
- ' * NAME OF UTILITIES SUBSECTION'S MENU
- '
- 14890 GOSUB 17340
- MENU$(4) = HJ$
- RETURN
- '
- ' * NAME OF MENU LISTING THE CONFERENCES THAT ARE AVAILABLE
- '
- 14900 GOSUB 17340
- CONFERENCE.MENU$ = HJ$
- RETURN
- '
- ' * GET ANSWER MENU
- '
- 14905 GOSUB 17340
- ANS.MENU$ = HJ$
- RETURN
- '
- ' * NAME OF FILE CONTAINING UNACCEPTABLE USER NAMES
- '
- 14910 GOSUB 17340
- TRASHCAN.FILE$ = HJ$
- RETURN
- 14915 CALL ASKRO ("Help for uploader to categorize is",24,UPCAT.HELP$)
- IF LEN(UPCAT.HELP$) > 7 THEN 14915
- CALL ALLCAPS (UPCAT.HELP$)
- RETURN
- '
- ' * DRIVE AVAILABLE FOR UPLOADING
- '
- 14920 A$ = "uploading "
- GOSUB 13253
- DRIVE.FOR.UPLOADS$ = HJ$
- IF LEN(UPLOAD.SUBDIR$) > 1 THEN _
- MID$(UPLOAD.SUBDIR$,1,1) = DRIVE.FOR.UPLOADS$
- RETURN
- ' ' DA050206
- ' * ADDITIONAL COMPRESSED FILE EXTENSIONS ' DA050206
- ' ' DA050206
- 14930 LOCATE 25,1 ' DA050206
- PRINT "ex: .ARC.PAK.LZH 'NONE' to clear, [RETURN] keeps ";COMPRESSED.EXT$; ' DA050206
- CALL ASKRO ("Other extensions to check for duplicates on upload",24,HJ$) ' KG010802
- IF HJ$ = "" THEN _ ' DA050206
- RETURN ' DA050206
- CALL ALLCAPS (HJ$) ' DA050206
- CALL REMOVE (HJ$," ,></\[]:;|+=") ' DA050206
- COMPRESSED.EXT$ = HJ$ ' DA050206
- IF COMPRESSED.EXT$ = "NONE" THEN _ ' DA050206
- COMPRESSED.EXT$ = NONE.PICKED$ : _ ' KG010803
- RETURN ' DA050206
- IF LEFT$(COMPRESSED.EXT$,1) <> "." THEN _ ' DA050206
- COMPRESSED.EXT$ = "."+ COMPRESSED.EXT$ ' DA050206
- IF RIGHT$(COMPRESSED.EXT$,1) = "." THEN _ ' DA050206
- COMPRESSED.EXT$ = LEFT$(COMPRESSED.EXT$, LEN(COMPRESSED.EXT$)-1) ' DA050206
- RETURN ' DA050206
- '
- ' * GENERALIZED ROUTINE TO SELECT FILE NAME FOR ANY OPTION WITHIN CONFIG
- '
- 14970 X$ = OPTION$
- 14980 CALL ASKRO ("Specify name of the file for parameter " + X$ + ".",24,HJ$)
- CALL ALLCAPS (HJ$)
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 12 THEN _
- GOTO 14980
- L1 = INSTR(HJ$,".")
- IF L1 = 0 THEN _
- IF LEN(HJ$) < 9 THEN _
- GOTO 15045 ELSE _ 7
- GOTO 14980
- IF L1 > 9 THEN _
- GOTO 14980
- IF L1 < 2 THEN _
- GOTO 14980
- IF LEN(HJ$) - L1 > 3 THEN _
- GOTO 14980
- 15045 I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 14980
- '
- ' * GENERALIZED ROUTINE TO SPECIFY A DISK DRIVE FOR ANY OPTION WITHIN CONFIG
- '
- 15170 CALL ASKRO ("Specify drive in the range A->" + _
- M$ + _
- " for parameter " + _
- X$ + _
- ". ",24,HJ$)
- IF LEN(HJ$) <> 1 THEN _
- GOTO 15170
- CALL ALLCAPS (HJ$)
- IF HJ$ < "A" OR HJ$ > M$ THEN _
- GOTO 15170
- TB$ = HJ$
- RETURN
- '
- ' * GENERALIZED ROUTINE FOR SPECIFYING DRIVE/PATH
- '
- 15200 X$ = "parameter " + OPTION$
- 15205 CALL ASKRO ("Specify drive/path (A->" + M$ + ") for " + X$ + ".",24,HJ$)
- IF LEN(HJ$) < 1 THEN _
- GOTO 15205
- CALL ALLCAPS (HJ$)
- IF LEN(HJ$) = 1 THEN _
- HJ$ = HJ$ + ":"
- IF MID$(HJ$,2,1) = ":" THEN _
- IF LEFT$(HJ$,1) < "A" OR LEFT$(HJ$,1) > M$ THEN _
- GOTO 15205
- IF LEN(HJ$) > 2 THEN _ ' DA020301
- IF RIGHT$(HJ$,1) <> "\" THEN _
- HJ$ = HJ$ + "\"
- STRNG$ = HJ$
- GOSUB 60470
- IF NOT IS.OK THEN _
- GOTO 15205
- TB$ = HJ$
- RETURN
- 15230 RETURN
- 15234 CALL ANYNUMBER ("Extend by what fraction of time uploading ",UPLOAD.TIME.FACTOR!)
- IF UPLOAD.TIME.FACTOR! <= 1.0 THEN _
- RETURN
- CLS
- LOCATE 10,1
- PRINT " An upload time credit factor > 1 means that uploaders may get more"
- PRINT " time credited than their total session time. Such a credit normally"
- PRINT " survives only for the day on which the upload is made."
- CALL GETNUMYN ("Make upload time credits survive forever until used",KEEP.TIME.CREDITS)
- RETURN
- 15240 CALL MMINTEGER ("How many seconds of delay after modem initilization (1 to 99)?",1,99,MODEM.INIT.WAIT.TIME)
- RETURN
- 15250 CALL MMINTEGER ("# seconds to delay prior to issuing modem commands (0 to 99)?",1,99,MODEM.COMMAND.DELAY.TIME)
- RETURN
- 15290 CALL MMINTEGER ("Enter number of active 'bulletins' (0 to 99)",0,99,ACTIVE.BULLETINS)
- RETURN
- 15310 CALL ANYINTEGER ("Min security to read new PRIVATE messages",PRIVATE.READ.SEC)
- RETURN
- 15320 CALL ANYINTEGER ("Min security to read new PUBLIC messages",PUBLIC.READ.SEC)
- RETURN
- 15330 CALL ANYINTEGER ("Min security to change msg read security",SEC.CHANGE.MSG)
- RETURN
- '
- ' * DETERMINE THE NAME OF THE "MESSAGES" FILE
- '
- 15460 GOSUB 17340
- MAIN.MESSAGE.FILE$ = HJ$
- MAIN.MESSAGE.BACKUP$ = MAIN.MESSAGE.FILE$ + ".BAK"
- MAINMSG$ = MAIN.MESSAGE.FILE$
- RETURN
- '
- ' * DETERMINE THE NAME OF THE "CALLERS" FILE
- '
- 15461 GOSUB 15200
- CALL GETNUMYN ("Do you want a caller's activity to be logged to a file",X)
- IF NOT X THEN _
- CALLERS.FILE$ = TB$ : _
- RETURN
- GOSUB 14970
- CALLERS.FILE$ = TB$ + HJ$
- RETURN
- '
- ' * DETERMINE THE NAME OF THE "COMMENTS" FILE
- '
- 15464 GOSUB 17340
- COMMENTS.FILE$ = HJ$
- RETURN
- 15466 GOSUB 17340 ' KG102201
- FAST.FILE.LIST$ = HJ$ ' KG102201
- RETURN ' KG102201
- 15468 GOSUB 17340 ' KG102201
- FAST.FILE.LOCATOR$ = HJ$ ' KG102201
- RETURN ' KG102201
- '
- ' * DETERMINE THE NAME OF THE "USERS" FILE
- '
- 15500 GOSUB 17340
- MAIN.USER.FILE$ = HJ$
- MAINUSR$ = MAIN.USER.FILE$
- RETURN
- 15530 CALL GETCOLOR ("Foreground",FG)
- CALL ASKRO ("Make foreground [N]ormal, or I)ntense (bright)",24,ANS$)
- CALL ALLCAPS (ANS$)
- IF LEFT$(ANS$,1) = "I" THEN _
- FG = FG + 8
- RETURN
- 15590 CALL GETCOLOR ("Background",BG)
- RETURN
- 15650 CALL GETCOLOR ("Border",BORDER)
- RETURN
-
- '
- ' * SHOULD RBBS-PC'S DEFAULT HAYES COMMANDS BE USED?
- '
- 15710 CLS
- GOSUB 15780
- PRINT " Currently Specified Modem Commands are:" ' KG103101
- PRINT ' KG103101
- PRINT " Note: '{' means embed carriage return '~' means delay 1 sec" ' KG103101
- PRINT ' KG103101
- PRINT "1. Reset the modem : " + USER.RESET.COMMAND$
- PRINT ""
- PRINT "2. Initialize the modem : " + USER.INIT.COMMAND$
- PRINT " Note: End item 2 with: S0=1Q0X1 if answer on 0 rings" ' KG103101
- PRINT " S0=254 if answer on >0 rings (no ring-back)" ' KG103101
- PRINT " S0=255 if answer on >0 rings (with ring-back)" ' KG103101
- PRINT ""
- PRINT "3. Count the number of rings : " + USER.COUNT.RINGS.COMMAND$
- PRINT ""
- PRINT "4. Answer the phone : " + USER.ANSWER.COMMAND$
- PRINT ""
- PRINT "5. Take the phone off the hook : " + USER.GO.OFFHOOK.COMMAND$
- PRINT ""
- PRINT "6. Clear the modem's firmware : " + USER.FIRMWARE.CLEAR.CMND$
- PRINT ""
- PRINT "7. Initialize modem's firmware : " + USER.INITIALIZE.COMMAND$
- PRINT " Note: End item 7 with: Q1 if item 2 ends with S0=255"
- PRINT ""
- PRINT "8. Write to modem's firmware : " + USER.FIRMWARE.WRITE.CMND$
- CALL GETINIT ("Specify command to change (1 to 8), CR to end, or 0 to reset to defaults)",24,0,8,I,CR)
- IF CR THEN _
- RETURN
- IF I <> 0 THEN _
- GOTO 15711
- GOSUB 15790
- GOTO 15710
- 15711 CALL ASKRO ("Enter modem command for item" + _
- STR$(I) + _
- " :",24,HJ$)
- CALL ALLCAPS (HJ$)
- ON I GOTO 15712,15714,15716,15718,15720,15722,15724,15726
- 15712 USER.RESET.COMMAND$ = HJ$
- GOTO 15710
- 15714 USER.INIT.COMMAND$ = HJ$
- GOTO 15710
- 15716 USER.COUNT.RINGS.COMMAND$ = HJ$
- GOTO 15710
- 15718 USER.ANSWER.COMMAND$ = HJ$
- GOTO 15710
- 15720 USER.GO.OFFHOOK.COMMAND$ = HJ$
- GOTO 15710
- 15722 USER.FIRMWARE.CLEAR.CMND$ = HJ$
- GOTO 15710
- 15724 USER.INITIALIZE.COMMAND$ = HJ$
- GOTO 15710
- 15726 USER.FIRMWARE.WRITE.CMND$ = HJ$
- GOTO 15710
- 15780 RETURN 'KG103101
- 15790 FIRMWARE.INITIALIZE.COMMAND$ = "AT&C1&D3B1E0V1M0S0=0&T5" ' KG103101
- FIRMWARE.CLEAR.COMMAND$ = "AT&F" ' KG103101
- FIRMWARE.WRITE.COMMAND$ = "&W" ' KG103101
- A$(1) = MODEM.ANSWER.COMMAND$ ' KG103101
- A$(2) = MODEM.COUNT.RINGS.COMMAND$ ' KG103101
- A$(3) = MODEM.GO.OFFHOOK.COMMAND$ ' KG103101
- A$(4) = MODEM.INIT.COMMAND$ ' KG103101
- A$(5) = MODEM.RESET.COMMAND$ ' KG103101
- A$(6) = FIRMWARE.INITIALIZE.COMMAND$ ' KG103101
- A$(7) = FIRMWARE.CLEAR.COMMAND$ ' KG103101
- A$(8) = FIRMWARE.WRITE.COMMAND$ ' KG103101
- CALL SELMODEM ' KG103101
- USER.ANSWER.COMMAND$ = A$(1) ' KG103101
- USER.COUNT.RINGS.COMMAND$ = A$(2) ' KG103101
- USER.GO.OFFHOOK.COMMAND$ = A$(3) ' KG103101
- USER.INIT.COMMAND$ = A$(4) ' KG103101
- USER.RESET.COMMAND$ = A$(5) ' KG103101
- USER.INITIALIZE.COMMAND$ = A$(6) ' KG103101
- USER.FIRMWARE.CLEAR.CMND$ = A$(7) ' KG103101
- USER.FIRMWARE.WRITE.CMND$ = A$(8) ' KG103101
- RTS$ = A$(9) ' KG103101
- MODEM.INIT.WAIT.TIME = VAL(A$(10)) ' KG103101
- MODEM.COMMAND.DELAY.TIME = VAL(A$(11)) ' KG103101
- COMMANDS.BETWEEN.RINGS = VAL(A$(12)) ' KG103101
- RETURN
- 15800 CALL GETNUMYN ("Remind users of the messages they left?",MESSAGE.REMINDER)
- RETURN
- 15820 CALL GETNUMYN ("Use machine language routines for speed",TURBO.RBBS)
- RETURN
- 15825 CALL GETNUMYN ("Not BASIC = use DOS calls (need for local color graphics)",USE.BASIC.WRITES)
- RETURN
- 15830 CALL GETNUMYN ("Look no further when command not found in current section",RESTRICT.VALID.CMDS)
- RETURN
- 15835 CALL GETNUMYN ("YES means to stop rather than scroll away previous text",MENUS.CAN.PAUSE)
- RETURN
- 15840 CALL GETNUMYN ("Are system bulletins to be optional?",BULLETINS.OPTIONAL)
- RETURN
- 15850 GOSUB 15200
- MACRO.DRVPATH$ = HJ$
- RETURN
- 15860 CALL GETNUMYN ("Use macros",AB) ' KG060701
- IF NOT AB THEN _ ' KG060701
- MACRO.EXTENSION$ = "" : _ ' KG060701
- RETURN ' KG060701
- 15862 A$ = "File extension for macro files (3 chars required)" ' KG060701
- CALL ASKRO (A$,24,MACRO.EXTENSION$) ' KG060701
- IF LEN(MACRO.EXTENSION$) <> 3 THEN _ ' KG060701
- GOTO 15862 ' KG060701
- RETURN
- 15880 CALL GETNUMYN ("Is non-ascii protocol required for binary files?",REQUIRE.NON.ASCII)
- RETURN ' KG072303
- 15920 CALL GETYESNO ("Is " + _
- DIRECTORY.EXTENTION$ + _
- " omitted from the N)ew command?",OMIT.MAIN.DIRECTORY$)
- RETURN
- 15991 CALL GETNUMYN ("Do you want EXTENDED logging to the 'callers' file",EXTENDED.LOGGING)
- RETURN
- 15993 CALL GETNUMYN ("Do you want 'comments' recorded as private messages",COMMENTS.AS.MESSAGES)
- RETURN
- 16000 CALL GETNUMYN ("Is system 'welcome' interruptable",WELCOME.INTERRUPTABLE)
- RETURN
- 16031 CALL MMINTEGER ("Seconds users can be idle before being logged off",1,32400,WAIT.BEFORE.DISCONNECT)
- RETURN
- 16032 CALL MMINTEGER ("Size of stack space to be set aside",1,32767,SIZE.OF.STACK)
- RETURN
- 16033 CALL MMINTEGER ("Security level exempt from 'epi-log'",1,32767,SECURITY.EXEMPT.FROM.EPILOG)
- RETURN
- '
- ' * IDENTIFY THE TYPE OF PC THAT RBBS-PC WILL BE RUNNING ON
- '
- 16040 CLS
- LOCATE 5,5
- PRINT "Please select the type of PC which RBBS-PC will be running on :"
- LOCATE 7,10
- PRINT "0. IBM PC/XT/AT/PS2..." ' KG072302
- LOCATE 9,10
- PRINT "1. Compaq/Plus or compatable that uses interrupt 7F"
- LOCATE 11,10
- PRINT "2. IBM PCjr
- LOCATE 13,10
- PRINT "3. Other compatable under IBM's DOS (i.e. PC-DOS)
- 16050 CALL GETINIT ("Select environment (0 to 3, CR to end)",24,0,3,COMPUTER.TYPE,CR)
- IF CR THEN _
- RETURN
- 16062 ON COMPUTER.TYPE+1 GOTO 16063,16064,16065,16066
- 16063 COMPUTER.TYPE$ = "IBM PC/XT/AT/PS2..." ' KG072302
- RETURN
- 16064 COMPUTER.TYPE$ = "Compaq/Plus"
- RETURN
- 16065 COMPUTER.TYPE$ = "PCjr"
- GOTO 16071
- 16066 COMPUTER.TYPE$ = "Other under PC-DOS"
- RETURN
- 16071 CALL GETNUMYN ("Is an IBM PCjr Internal Modem installed? (YES or NO)",PCJR)
- IF PCJR THEN _
- LSB = 760
- 16073 RETURN
- 16121 CALL GETNUMYN ("Wait to issue modem commands between rings?",COMMANDS.BETWEEN.RINGS)
- RETURN
- 16124 CALL MMREAL ("Enter baud rate (300,1200,2400,4800,9600,19200,38400) open modem at ",300!,38400!,B1!) ' KG090102
- IF B1! = 300 OR B1! = 1200 OR B1! = 2400 OR B1! = 4800 OR B1! = 9600 OR _ ' KG090102
- B1! = 19200 OR B1! = 38400 THEN _ ' KG090102
- GOTO 16128 _
- ELSE GOTO 16124
- 16128 MODEM.INIT.BAUD$ = MID$(STR$(B1!),2) ' KG090102
- RETURN
- '
- ' * NAME OF MENU CONTAINING THE LIST OF AVAILABLE 'DOORS'
- '
- 16130 GOSUB 17340
- MENU$(5) = HJ$
- RETURN
- '
- ' * NAME OF THE FILE BUILT DYNAMICALLY BY RBBS-PC TO EXIT TO A 'DOOR'
- '
- 16140 GOSUB 17340
- RCTTY.BAT$ = HJ$
- RETURN
- '
- ' * NAME OF FILE TO RE-INVOKE RBBS-PC WHEN RETURNING FROM A 'DOOR'
- '
- 16150 GOSUB 17340
- RBBS.BAT$ = HJ$
- RETURN
- '
- ' * DRIVE/PATH TO LOOK FOR 'COMMAND.COM' ON
- '
- 16160 GOSUB 15200
- DISK.FOR.DOS$ = HJ$
- RETURN
- 16170 CALL GETNUMYN ("Redirect I/O via the CTTY command on dropping to DOS?",REDIRECT.IO.METHOD)
- 16175 CALL GETNUMYN ("Redirect I/O via a device named in CONFIG.SYS?",B1)
- IF B1 THEN _
- GOTO 16176
- USE.DEVICE.DRIVER$ = ""
- RETURN
- 16176 IF LEN (USE.DEVICE.DRIVER$) > 0 THEN _
- GOTO 16177
- CALL ASKRO("Enter name of the device to use. ",24,USE.DEVICE.DRIVER$)
- IF LEN (USE.DEVICE.DRIVER$) > 8 THEN _
- GOTO 16176
- IF LEN (USE.DEVICE.DRIVER$) = 0 THEN _
- RETURN
- 16177 CALL GETNUMYN ("Use the device named " + USE.DEVICE.DRIVER$ + "?",B1)
- IF B1 THEN _
- RETURN
- USE.DEVICE.DRIVER$ = ""
- GOTO 16176
- 16290 CALL GETNUMYN ("Is the 'door' subsystem available?",DOORS.AVAILABLE)
- IF NOT DOORS.AVAILABLE THEN _
- RETURN
- CALL GETNUMYN ("Will you be running RBBS-PC under MultiLink? ",AB)
- IF AB THEN _
- GOTO 16350
- 16340 DELAY! = FNTI! + 15
- '
- ' * NOTIFY THE SYSOP OF THE CONDITIONS FOR USING RBBS-PC "DOORS"
- '
- CLS
- PRINT " ******Warning******"
- PRINT "IBM's DOS absolutely REQUIRES any software package running"
- PRINT "as a 'door' (i.e. via a communication port) to monitor the"
- PRINT "communication port! Otherwise your system will be vulnerable" ' KG060704
- PRINT "to being hung -- and worse!!! Be wary of using doors if" ' KG060704
- PRINT "don't THROUGHLY understand the doors section in RBBS-PC's" ' KG060704
- PRINT "documentation and the pitfalls of using 'doors'!" ' KG060704
- 16345 GOSUB 60440
- CLS
- PRINT " ******Warning******"
- PRINT "Some environments require that you set the modem to answer"
- PRINT "on zero rings (i.e. 'auto-answer'). This is perilous to"
- PRINT "using doors because if a user in a door gets disconnected"
- PRINT "the modem is set to answer on the very next ring and someone who"
- PRINT "you may not want in the door or in DOS will find themselves"
- PRINT "able to do you grevious harm, though some environments and" ' KG060704
- PRINT "modems work fine." ' KG060704
- PRINT "" ' KG060704
- CALL GETNUMYN ("Are you sure you want to use doors",SHOOT.YOURSELF) ' KG060704
- RETURN
- 16350 CLS
- 16360 LOCATE 23,1
- PRINT "Current Multi-Link terminal type for DOORS is ";DOORS.TERMINAL.TYPE
- 16370 CALL MMINTEGER ("Enter Multi-Link terminal type for DOORS ",0,12,DOORS.TERMINAL.TYPE)
- RETURN
- 16650 CALL ANYINTEGER ("MAX # of minutes per day (0 = no limit)",MAX.PER.DAY)
- RETURN
- 16690 CALL GETNUMYN ("Remind users of # uploads and downloads?",REMIND.FILE.TRANSFERS)
- RETURN
- 16722 CALL GETNUMYN ("Remind users of their terminal's profile?",REMIND.PROFILE)
- RETURN
- 16725 CALL GETNUMYN ("Are you using a non-Hayes auto-answer only modem?",DUMB.MODEM)
- RETURN
- 16730 CALL MMINTEGER ("Default user page length?(a value between 0 and 255)",0,255,PAGE.LENGTH)
- RETURN
- 16790 CALL MMINTEGER ("Maximum number of lines allowed per message (1-99)",1,99,MAX.MESSAGE.LINES)
- RETURN
- 16795 CALL MMINTEGER ("Max. # of lines allowed in extended upload description (0-99)",0,99,MAX.EXTENDED.LINES)
- RETURN
- 17160 CALL ANYINTEGER ("Security level for parameter " + _
- HJ$ + _
- " is? ",MINIMUM.LOGON.SECURITY)
- RETURN
- 17170 CALL ANYINTEGER ("Security level for parameter " + _
- HJ$ + _
- " is? ",DEFAULT.SECURITY.LEVEL)
- RETURN
- 17180 CALL ANYINTEGER ("Security level for parameter " + _
- HJ$ + _
- " is? ",SYSOP.SECURITY.LEVEL )
- RETURN
- '
- ' * FILE CONTAINING FILE NAMES WITH DOWNLOAD SECURITY
- '
- 17190 GOSUB 17340
- FILESEC.FILE$ = HJ$
- RETURN
- 17200 CALL ANYINTEGER ("Security level for parameter " + _
- HJ$ + _
- " is? ",SYSOP.MENU.SECURITY.LEVEL)
- RETURN
- 17210 CALL ANYINTEGER ("MIN security required to add extended upload description",ASK.EXTENDED.DESC)
- RETURN
- 17215 CALL ANYINTEGER ("Registration door applies to new users & whose security <=",MAX.REG.SEC)
- RETURN
- 17220 CALL MMINTEGER("MAXIMUM # security violations allowed (0=no limit)",0,99,MAXIMUM.VIOLATIONS)
- RETURN
- 17230 CALL SECURE ("SYSOP",SYSOP.COMMANDS.DEFAULTS$,NUM.SYSOP,SYSOP.FUNCTION$(),SYSOP.FUNCTION(),SYSOP.COMMANDS$)
- RETURN
- 17240 CALL SECURE ("Main Menu",MAIN.COMMANDS.DEFAULTS$,NUM.MAIN,MAIN.FUNCTION$(),MAIN.FUNCTION(),MAIN.COMMANDS$)
- RETURN
- 17250 CALL SECURE ("File Menu",FILE.COMMANDS.DEFAULTS$,NUM.FILES,FILES.FUNCTION$(),FILES.FUNCTION(),FILE.COMMANDS$)
- RETURN
- 17260 CALL SECURE ("Utilities",UTIL.COMMANDS.DEFAULTS$,NUM.UTILITY,UTILITY.FUNCTION$(),UTILITY.FUNCTION(),UTIL.COMMANDS$)
- RETURN
- 17264 CALL SECURE ("Global",GLOBAL.COMMANDS.DEFAULTS$,NUM.GLOBAL,GLOBAL.FUNCTION$(),GLOBAL.FUNCTION(),GLOBAL.COMMANDS$)
- RETURN
- '
- ' * FILE NAME CONTAINING SPECIAL TEMPORARY PASSWORDS WITH TEMPORARY PRIVILEGES
- '
- 17270 GOSUB 17340
- PASSWORD.FILE$ = HJ$
- RETURN
- 17280 CALL ASKRO("Name of file shown for security breaches",24,HJ$)
- IF LEN(HJ$) > 8 OR INSTR(HJ$,".") > 0 THEN _
- GOTO 17280
- IF LEN(HJ$) < 1 THEN _
- SECVIO.HLP$ = NONE.PICKED$ : _
- RETURN
- CALL ALLCAPS (HJ$)
- SECVIO.HLP$ = HELP.PATH$ + HJ$ + "." + HELP.EXTENSION$
- RETURN
- 17290 CALL MMINTEGER ("Maximum number of password changes is? (0 or more) ",0,99,MAXIMUM.PASSWORD.CHANGES)
- RETURN
- 17300 CALL ANYINTEGER ("Security level for parameter " + _
- HJ$ + _
- " is? ",MINIMUM.SECURITY.FOR.TEMP.PASSWORD)
- RETURN
- 17310 CALL ANYINTEGER ("Security level for overwriting files on upload is? ",OVERWRITE.SECURITY.LEVEL)
- RETURN
- 17316 CALL ANYINTEGER ("Security level for parameter " + _
- HJ$ + _
- " is? ",SEC.LVL.EXEMPT.FRM.PURGING)
- RETURN
- '
- ' * STANDARD ROUTINE TO SIMPLY SPECIFY A DRIVE LETTER FOR ANY OPTION
- '
- 17340 GOSUB 15200
- GOSUB 14970
- IF IPAGE = 6 AND ILOOKUP = 9 AND HJ$ = "NONE" THEN _
- IF MID$(HJ$,2,1) <> ":" THEN _
- BEEP : _
- GOTO 17340
- IF HJ$ = "NONE" THEN _
- RETURN
- HJ$ = TB$ + HJ$
- RETURN
- 17500 CALL GETNUMYN ("Show section in command prompt",SHOW.SECTION)
- RETURN
- 17550 CALL GETNUMYN ("Show commands in command prompt",COMMANDS.IN.PROMPT)
- RETURN
- 17560 CALL GETNUMYN ("Let new users set their preferences",NEWUSER.SETS.DEFAULTS)
- RETURN
- 17570 CALL GETNUMYN ("Add new users to USERS file",REMEMBER.NEW.USERS)
- RETURN
- 17580 CALL GETNUMYN ("Log on new users even when USERS file full",SURVIVE.NOUSER.ROOM)
- RETURN
- 17590 CALL GETNUMYN ("Limit file searches to FMS directory",LIMIT.SEARCH.TO.FMS)
- RETURN
- 17600 CALL GETNUMYN ("Enable download of new files at logon",NEW.FILES.CHECK)
- RETURN
- 17610 CALL GETNUMYN ("Turn printer off after each recycle",TURN.PRINTER.OFF)
- RETURN
- 17620 CALL GETNUMYN ("Play music themes for RBBS functions",MUSIC)
- RETURN
- 17625 CALL GETNUMYN ("Use order on directory of directories (no=sort)",USE.DIR.ORDER)
- RETURN
- 17630 CALL GETNUMYN ("RESTRICT callers using SUBSCRIPTION period",RESTRICT.BY.DATE)
- RETURN
- 17635 CALL ANYINTEGER ("Security that lets caller READ & KILL all messages",SEC.KILL.ANY)
- RETURN
- 17640 CALL ANYINTEGER ("Adopt change in main security for all users with sec <",AUTO.UPGRADE.SEC)
- RETURN
- 17645 CALL GETNUMYN ("Send multi-file ASCII download as one big file",PERSONAL.CONCAT)
- RETURN
- 17650 CALL GETNUMYN ("Force check every time whether can AUTODOWNLOAD",ASK.IDENTITY)
- RETURN
- 17700 CALL GETNUMYN ("Require all callers to answer a questionnaire",AB)
- IF NOT AB THEN _
- REQUIRED.QUESTIONNAIRE$ = NONE.PICKED$ : _
- RETURN
- GOSUB 17340
- GOSUB 17740
- REQUIRED.QUESTIONNAIRE$ = HJ$
- RETURN
- 17710 GOSUB 17340
- PRELOG$ = HJ$
- RETURN
- 17720 CALL GETNUMYN ("Require all NEW users to answer a questionnaire",AB)
- IF NOT AB THEN _
- NEW.USER.QUESTIONNAIRE$ = NONE.PICKED$ : _
- RETURN
- GOSUB 17340
- GOSUB 17740
- NEW.USER.QUESTIONNAIRE$ = HJ$
- RETURN
- 17725 GOSUB 17340
- GOSUB 17740
- AUTOPAGE.DEF$ = HJ$
- RETURN
- 17730 GOSUB 17340
- GOSUB 17740
- EPILOG$ = HJ$
- RETURN
- 17740 IF INSTR(HJ$,".") = 0 THEN _
- HJ$ = HJ$ + ".DEF"
- RETURN
- 17800 CALL MMINTEGER ("Match personal downloads starting at what column in user record",1,128,PERSONAL.BEGIN)
- RETURN
- 17805 OK = TRUE
- IF NOT ENFORCE.UPLOAD.DOWNLOAD.RATIOS THEN _
- RETURN
- IF START.WRITE > 100 THEN _
- RETURN
- IF START.WRITE < 82 AND _
- START.WRITE + LEN.WRITE < 82 THEN _
- RETURN
- OK = FALSE
- 17806 CALL ASKRO ("Parameter 47 precludes using this part of USERS record. [ENTER] continues",24,A$)
- RETURN
- 17810 CALL MMINTEGER ("Match personal downloads using how many chars in user record",1,128,PERSONAL.LEN)
- RETURN
- 17820 CALL ASKRO ("Protocol for personal downloads [ENTER] for none)",24,PERSONAL.PROTOCOL$)
- IF LEN(PERSONAL.PROTOCOL$) > 1 THEN _
- GOTO 17820
- IF PERSONAL.PROTOCOL$ = "" THEN _
- PERSONAL.PROTOCOL$ = "N"
- CALL ALLCAPS (PERSONAL.PROTOCOL$)
- RETURN
- 17830 CALL ASKRO ("Prompt for first field caller asked (What is your..)",24,FIRST.NAME.PROMPT$)
- RETURN
- 17840 CALL ASKRO ("Prompt for second field caller asked (What is your..)",24,LAST.NAME.PROMPT$)
- RETURN
- 17845 CALL ASKRO ("Ask callers for [e.g. CITY/STATE] (What is your...)",24,USER.LOCATION$)
- RETURN
- 17850 CALL GETNUMYN ("Enforce upload/download ratios",ENFORCE.UPLOAD.DOWNLOAD.RATIOS)
- IF NOT ENFORCE.UPLOAD.DOWNLOAD.RATIOS THEN _
- RETURN
- IF START.INDIV > 100 THEN _
- RETURN
- IF START.INDIV < 82 AND _
- START.INDIV + LEN.INDIV < 82 THEN _
- RETURN
- ENFORCE.UPLOAD.DOWNLOAD.RATIOS = FALSE
- GOTO 17806
- 18000 CALL ASKUPOS ("Specify field in USERS file that will identify callers",_
- START.HASH,LEN.HASH,PROMPT.HASH$)
- 18002 IF START.HASH < 1 OR LEN.HASH < 1 THEN _
- BEEP : _
- GOTO 18000
- IF START.HASH = 1 THEN _
- HASH.ID$ = "(NAME)"_
- ELSE HASH.ID$ = "(nonstandard)"
- START.WRITE = START.HASH
- LEN.WRITE = LEN.HASH
- GOSUB 17805
- IF NOT OK THEN _
- START.HASH = 1 : _
- LEN.HASH = 31 : _
- GOTO 18002
- RETURN
- 18100 CALL ASKUPOS ("Use what field to distinguish callers with same ID?",_
- START.INDIV,LEN.INDIV,PROMPT.INDIV$)
- 18102 IF START.INDIV = 0 OR LEN.INDIV = 0 THEN_
- INDIV.ID$ = NONE.PICKED$ _
- ELSE INDIV.ID$ = "(nonstandard)"
- START.WRITE = START.INDIV
- START.LEN = LEN.INDIV
- GOSUB 17805
- IF NOT OK THEN _
- START.INDIV = 0 : _
- LEN.INDIV = 31 : _
- GOTO 18102
- START.WRITE = START.INDIV
- RETURN
- 18200 CALL ASKRO ("New default category code",24,DEFAULT.CATEGORY.CODE$)
- CALL ALLCAPS (DEFAULT.CATEGORY.CODE$)
- IF LEN(DEFAULT.CATEGORY.CODE$) > 3 THEN _
- DEFAULT.CATEGORY.CODE$ = LEFT$(DEFAULT.CATEGORY.CODE$,3) _
- ELSE DEFAULT.CATEGORY.CODE$ = DEFAULT.CATEGORY.CODE$ + _
- SPACE$(3 - LEN(DEFAULT.CATEGORY.CODE$))
- RETURN
- 18300 GOSUB 15200
- CALL ASKRO ("New file of directory categories",24,DIR.CATEGORY.FILE$)
- DIR.CATEGORY.FILE$ = TB$ + _
- DIR.CATEGORY.FILE$
- RETURN
- 18310 GOSUB 17340
- MAIN.PUI$ = HJ$
- CALL BRKFNAME (MAIN.PUI$,X1$,X2$,X3$,TRUE)
- IF X3$ = "" THEN _
- MAIN.PUI$ = X1$ + X2$ + ".PUI"
- RETURN
- 18330 CALL GETNUMYN ("Should DOORS be TIME-LOCKED",TIME.LOCK)
- CALL GETNUMYN ("Should DOWNLOADS be TIME-LOCKED",Q)
- TIME.LOCK = -TIME.LOCK + 2 * -Q
- RETURN
- 18340 CALL ANYINTEGER ("MINIMUM security for turbo logon",ALLOW.CALLER.TURBO)
- RETURN
- 18345 CALL ANYINTEGER ("MINIMUM security to add dir entry for pre-existing file",ADD.DIR.SECURITY)
- RETURN
- 18350 CALL ASKRO ("Copy upload description to upload dir AND to (Drv/path/name)",24,ALWAYS.STREW.TO$)
- CALL ALLCAPS (ALWAYS.STREW.TO$)
- RETURN
- 18360 CALL ASKRO ("'ALL' lists what dirs ('@<file>' if list,[ENTER]=none)",24,MASTER.DIRECTORY.NAME$) ' KG011402
- CALL ALLCAPS (MASTER.DIRECTORY.NAME$)
- RETURN
- 18400 CALL MMINTEGER ("New max length of upload description (40-46)",40,46,MAX.DESC.LEN)
- RETURN
- 18500 CALL ANYINTEGER ("Min security to view new uploads",MIN.SEC.TO.VIEW)
- RETURN
- 18510 CALL ANYINTEGER ("SECURITY level callers gets when SUBSCRIPTION period EXPIRES",EXPIRED.SECURITY)
- RETURN
- 18515 CALL ANYINTEGER ("Min security for uploader to assign a category",SL.CATEGORIZE.UPLOADS)
- RETURN
- 18520 CALL MMINTEGER ("Default # days in SUBSCRIPTION PERIOD",0,32000,DAYS.IN.SUBSCRIPTION.PERIOD)
- RETURN
- 18530 CALL MMINTEGER ("# days left in subscription before start WARNING",0,32000,DAYS.TO.WARN)
- RETURN
- 18540 CALL MMINTEGER ("# seconds to WAIT for DTR to drop",0,30,DTR.DROP.DELAY)
- RETURN
- 18545 IF MAIN.MESSAGE.FILE$ = MAINMSG$ THEN _
- XX$ = "Parameter " + _
- OPTION$ + _
- " only valid during CONFERENCE maintenence!" : _
- GOSUB 50345 : _
- DELAY! = FNTI! + 5 : _
- GOSUB 60440 : _
- RETURN
- CALL ANYINTEGER ("Minimum security level to 'AUTO ADD' to conference",AUTO.ADD.SECURITY)
- AUTO.ADD.SECURITY$ = MID$(STR$(AUTO.ADD.SECURITY),2)
- RETURN
- '
- ' * GET UPLOAD DIRECTORY DRIVE/PATH
- '
- 18550 GOSUB 15200
- UPLOAD.PATH$ = HJ$
- RETURN
- 18600 GOSUB 15200
- DIRECTORY.PATH$ = HJ$
- RETURN
- 18620 GOSUB 17340
- PROTO.DEF$ = HJ$
- RETURN
- 18625 GOSUB 17340
- DOORS.DEF$ = HJ$
- RETURN
- 18630 GOSUB 15200
- IF INSTR(PERSONAL.DIR$, PERSONAL.DRVPATH$) = 1 THEN _
- PERSONAL.DIR$ = HJ$ + MID$(PERSONAL.DIR$, LEN(PERSONAL.DRVPATH$)+1)
- PERSONAL.DRVPATH$ = HJ$
- RETURN
- 18640 CALL GETNUMYN ("Is there an external DOOR to check Callers",AB)
- IF NOT AB THEN _
- REGISTRATION.PROGRAM$ = NONE.PICKED$ : _
- RETURN
- GOSUB 17340
- REGISTRATION.PROGRAM$ = HJ$
- RETURN
- 18700 CALL GETNUMYN ("Set most critical parameters",AB)
- IF NOT AB THEN _
- RETURN
- HJ$ = CHR$(13)
- '
- ' * SET THE MOST CRITICAL PARAMETERS
- ' * 12 = name of board
- ' * 29 = type pc
- ' * 162 = environment
- ' * 161 = max # nodes
- ' * 123 = min sec logon
- ' * 124 = default security
- ' * 8 = max sess time
- ' * 9 = max day time
- ' * 221 = comm port
- ' * 224 = ring to answer
- ' * 228 = baud rate
- ' * 121 = remote sysop name
- '
- KSTACKED$ = "8" + HJ$ + "9" + HJ$ + _
- "12" + HJ$ + "29" + HJ$ + _
- "121" + HJ$ + "123" + HJ$
- KSTACKED$ = KSTACKED$ + _
- "124" + HJ$ + "161" + HJ$ + _
- "162" + HJ$ + "221" + HJ$ + _
- "224" + HJ$ + "228" + HJ$
- IX = 1
- RETURN
- 18800 CALL GETNUMYN ("Set the Parameters new in " + CONFIG.VERSION$,AB)
- IF NOT AB THEN _
- RETURN
- HJ$ = CHR$(13)
- '
- ' * SET THE PARAMETERS NEW TO THIS RELEASE OF RBBS-PC
- ' * 60 = Speech synthesizer
- ' * 108 = Who subject to logon door
- ' * 109 = Doors control file
- ' * 156 = Auto alter security in conference
- ' * 157 = Sec to read/kill all messages
- ' * 158 = Screen msg lines
- ' * 168 = Default extension compressed files
- ' * 169 = Additional compressed file extensions ' DA050206
- ' * 267 = Sorted list for Fast File Search
- ' * 268 = Location list for Fast File Search
- ' * 285 = Subdir for Maple V)iew Mods ' Pe 02/14/90
- '
- KSTACKED$ = "60" + HJ$ + "108" + HJ$ + "109" + HJ$ + "156" + HJ$ + _
- "157" + HJ$ + "158" + HJ$
- KSTACKED$ = KSTACKED$ + _
- "168" + HJ$ + "169" + HJ$ + "267" +HJ$ + _
- "268" + HJ$ + "285" + "END" 'DA050206 - 'Pe 02/14/90
- IPAGE = 1
- RETURN
- '
- ' * LET THE SYSOP SPECIFY THE NUMBER OF RECORDS IN THE USER FILE
- '
- 19189 IF CONFERENCE.MODE = 2 THEN _
- GOSUB 22560 : _
- RETURN
- GOSUB 22100
- RETURN
- '
- ' * ALLOW THE USER TO SPECIFY THE MAXIMUM NUMBER OF RBBS-PC'S TO CONFIGURE FOR
- '
- 20000 LOCATE 18,1
- PRINT "NOTE: PC-SIG believes that it is illegal to charge users for"
- PRINT " downloading from the PC-SIG Library on a per download"
- PRINT " basis. Subscription fees of a reasonable nature are"
- PRINT " acceptable."
- A$ = "Specify Library disk in the range A->" + M$ + "(or NONE) "
- MAX = 4
- GOSUB 13599
- LIBRARY.DRIVE$ = HJ$
- IF LEN(HJ$) > 1 AND HJ$ <> "NONE" THEN _
- GOTO 20000
- IF LIBRARY.DRIVE$ = "NONE" THEN _
- LIBRARY.DRIVE$ = "" _
- ELSE LIBRARY.DRIVE$ = LIBRARY.DRIVE$ + ":"
- RETURN
- '
- ' * LIBRARY DIRECTORY/PATH
- '
- 20010 GOSUB 15200
- LIBRARY.DIRECTORY.PATH$ = HJ$
- RETURN
- ' * PKZIP Drive/Path
- '
- 20018 A$ = "Name of Drive and SubDir For PKXARC "
- GOSUB 15200
- ' PKDRV = LEN(HJ$)-1
- ' HJ$ = LEFT$(HJ$,PKDRV)
- ARKVIEW.PATH$ = HJ$
- RETURN
- '
- ' * NAME OF 'LIBRARY DIRECTORY' FILE'S EXTENSION
- '
- 20020 A$ = "Name of Library directory extension "
- GOSUB 13593
- LIBRARY.DIRECTORY.EXTENTION$ = HJ$
- RETURN
- '
- ' * LIBRARY WORKING DISK
- '
- 20030 GOSUB 15200
- LIBRARY.WORK.DISK.PATH$ = HJ$
- RETURN
- 20040 CALL MMINTEGER ("Max number of disks on Library (1-9999)",1,9999,LIBRARY.MAX.DISK)
- RETURN
- 20050 CALL MMINTEGER ("Max number of directories on Library (1-999)",1,999,LIBRARY.MAX.DIRECTORY)
- RETURN
- 20060 CALL MMINTEGER ("Number of subdirectories for each master (1-999)",1,999,LIBRARY.MAX.SUBDIR)
- RETURN
- '
- ' * PREFIX OF LIBRARY SUBDIRECTORY
- '
- 20070 A$ = "Prefix name of Library subdirectories in each master "
- MAX = 4
- GOSUB 13599
- LIBRARY.SUBDIR.PREFIX$ = HJ$
- RETURN
- '
- ' * NAME OF FILE SUBSECTION'S MENU
- '
- 20080 GOSUB 17340
- MENU$(6) = HJ$
- RETURN
- '
- ' * ASSIGN SECURITY LEVELS TO THE LIBRARY MENU'S COMMANDS
- '
- 20090 CALL SECURE ("LIBRARY",LIBRARY.COMMANDS.DEFAULTS$,NUM.LIBRARY,LIBRARY.FUNCTION$(),LIBRARY.FUNCTION(),LIBRARY.COMMANDS$)
- RETURN
- '
- ' * DRIVE/PATH FOR ARCHIVE UTILITY
- '
- 20100 GOSUB 15200
- LIBRARY.ARCHIVE.PATH$ = HJ$
- RETURN
- '
- ' * PROCESS NAME OF ARCHIVE UTILITY
- '
- 20110 CALL ASKRO ("Name of Archive utility ",24,HJ$)
- CALL ALLCAPS (HJ$)
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 8 THEN _
- GOTO 20110
- LIBRARY.ARCHIVE.PROGRAM$ = HJ$
- CALL ASKRO ("Archive command ",24,HJ$)
- CALL ALLCAPS (HJ$)
- IF LEN(HJ$) > 8 THEN _
- GOTO 20110
- LIBRARY.ARCHIVE.PROGRAM$ = LIBRARY.ARCHIVE.PROGRAM$ + _
- " " + _
- HJ$
- RETURN
- 21750 CALL MMINTEGER ("Maximum number of concurrent RBBS-PC's? (1 - 36)",1,36,B1)
- IF MAXIMUM.NUMBER.OF.NODES = B1 THEN _
- RETURN
- B3! = MAX.MSG.FILE.SIZE.FRM.DEF!
- GOSUB 30610
- RETURN
- 21760 CALL MMINTEGER ("Size of internal BUFFER for text files (32-4096)",32,4096,BUFFER.SIZE)
- RETURN
- 21770 CALL MMINTEGER ("Size of internal BUFFER for Uploads (128-8192)",128,8192,WRITE.BUF.DEF)
- RETURN
- 21780 CALL MMINTEGER ("Max # of work variables in questionnaire/macros (13-99)",13,99,MAX.WORK.VAR)
- RETURN
- '
- ' * IDENTIFY THE NETWORK TYPES THAT RBBS-PC CAN RUN IN
- '
- 21810 SUBROUTINE.PARAMETER = 1
- 21820 CALL NETTYPE
- RETURN
- 21895 SUBROUTINE.PARAMETER = 2
- GOTO 21820
- '
- ' * IDENTIFY THE VOICE SYNTHESIZER TYPES THAT RBBS-PC CAN SUPPORT
- '
- 21900 SUBROUTINE.PARAMETER = 1
- 21903 CALL VOICETYPE
- RETURN
- 21905 SUBROUTINE.PARAMETER = 2
- GOTO 21903
- '
- ' * ALLOW THE SYSOP TO SELECT NUMBER OF RECORDS IN THE USER FILE
- '
- 21910 IF CONFERENCE.MODE = 2 THEN _
- GOSUB 22560 : _
- RETURN
- GOSUB 22100
- RETURN
- '
- ' * ALLOW THE SYSOP TO SELECT HOW RBBS-PC IS TO RECYCLE WHEN A USER LOGS OFF
- '
- 21950 CALL ASKRO ("How to recycle when users log off (<S>YSTEM or <I>NTERNAL)? ",24,HJ$)
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 8 THEN _
- GOTO 21950
- CALL ALLCAPS (HJ$)
- IF LEFT$(HJ$,1) = "S" THEN _
- HJ$ = "SYSTEM" : _
- RECYCLE.TO.DOS = 1 : _
- GOTO 22020
- IF LEFT$(HJ$,1) = "I" THEN _
- HJ$ = "INTERNAL" : _
- RECYCLE.TO.DOS = 0 : _
- GOTO 22020
- GOTO 21950
- 22020 RECYCLE.TO.DOS$ = HJ$
- RETURN
- 22030 IF NETWORK.TYPE = 2 THEN _
- CALL ASKRO ("OMNI-NET cannot let message file grow. Press [Enter] to continue",24,HJ$) : _
- RETURN
- CALL GETNUMYN ("Message file GROWS rather than FIXED in size",MESSAGES.CAN.GROW)
- RETURN
- '
- ' * ALLOW THE SYSOP TO SPECIFY THE MAXIMUM NUMBER OF RECORDS IN MESSAGES FILE
- '
- 22040 CALL ANYNUMBER ("Max. records in preformatted " + _
- MAIN.MESSAGE.FILE$ + _
- " file (>" + _
- STR$(5*MAX.ALLOWED.MSGS.FRM.DEF + 1 + MAXIMUM.NUMBER.OF.NODES) + "):",B3!)
- IF B3! <= (5 * MAX.ALLOWED.MSGS.FRM.DEF + 1 + MAXIUM.NUMBER.OF.NODES) OR _
- B3! > 9999999! THEN _
- GOTO 22040
- 22080 B1 = MAXIMUM.NUMBER.OF.NODES
- GOSUB 30610
- MAX.MSG.FILE.SIZE.FRM.DEF! = B3!
- RETURN
- '
- ' * BUILD THE USERS FILE TO SUIT
- '
- 22100 FF = CURRENT.USER.COUNT
- IF FF > 1 THEN _
- FF = FF - 1
- CALL ANYINTEGER (STR$(FF) + _
- " of" + _
- STR$(HIGHEST.USER.RECORD) + _
- " records used. Enter new max # of records for " + _
- MAIN.USER.FILE$ + _
- ":",B1)
- 22120 IF B1 < 1 OR B1 > 99999! OR _
- B1 < FF THEN _
- GOTO 22100
- 22140 B2 = 2
- WHILE B2 < B1
- B2 = B2 * 2
- WEND
- IF MAX.USR.FILE.SIZE.FRM.DEF = B2 THEN _
- RETURN
- CALL GETNUMYN ("Change " + _
- MAIN.USER.FILE$ + _
- " file to" + _
- STR$(B2) + _
- " records?",AB)
- IF NOT AB THEN _
- GOTO 22100
- 22150 MAX.USR.FILE.SIZE.FRM.DEF = B2
- D.FLAG = -1
- GOSUB 24110
- IB = 1
- MAX.USR.FILE.SIZE.FRM.DEF = B2
- HIGHEST.USER.RECORD = B2
- GOSUB 30450
- RETURN
- '
- ' * COMMON ROUTINE TO NOTIFY THE USER WHEN READING DATA
- '
- 22340 LOCATE 22,1
- PRINT SPACE$(15) + _
- TIME$ + _
- " " + _
- SPACE$(64);
- LOCATE 22,35
- COLOR 0,7
- PRINT " Reading Data, Wait a sec !!! ";
- COLOR FG,BG,BORDER
- RETURN
- '
- ' * BEFORE EXITING, ASK USER IF HE WANTS TO WRITE OUT THE CHANGES OR QUIT
- '
- 22350 CALL ASKRO ("Are you satisfied with all changes? (Y/N) or <Q>uit ",24,HJ$)
- GOSUB 22380
- ON AB GOTO 12190,59000,60360,22350
- 22380 IF LEN(HJ$) < 1 OR LEN(HJ$) > 4 THEN _
- GOTO 22470
- CALL ALLCAPS (HJ$)
- IF HJ$ = "NO" THEN _
- AB = 1 : _
- RETURN
- IF HJ$ = "N" THEN _
- HJ$ = "NO" : _
- AB = 1 : _
- RETURN
- IF HJ$ = "YES" THEN _
- AB = 2 : _
- RETURN
- IF HJ$ = "Y" THEN _
- HJ$ = "YES" : _
- AB = 2 : _
- RETURN
- IF HJ$ = "QUIT" THEN _
- AB = 3 : _
- RETURN
- IF HJ$ = "Q" THEN _
- AB = 3 : _
- RETURN
- 22470 AB = 4
- RETURN
- '
- ' * ASK THE USER WHICH RBBS-PC.DEF FILE CONFIG IS TO WORK WITH
- '
- 22480 CALL MMINTEGER ("To which copy of RBBS-PC will these parameters apply (1 to 36)?",1,36,I)
- HJ$ = MID$(STR$(I),2)
- NODE.ID$ = MID$("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ",VAL(HJ$),1)
- MID$(CONFIG.FILENAME$,5,1) = NODE.ID$
- RETURN
- 22550 CALL ASKRO ("Parameter " + _
- OPTION$ + _
- " unavailable with CONFIG " + _
- CONFIG.VERSION$ + _
- "! CR to continue",24,A$)
- RETURN
- 22560 CALL ASKRO ("Parameter " + _
- OPTION$ + _
- " unavailable maintaining public conference! CR to continue",24,XX$)
- RETURN
- '
- ' * REBUILD THE USER FILE
- '
- 22570 A$ = "Rebuild the User File"
- GOSUB 22580
- IF CONFERENCE.MODE = 2 THEN _
- GOSUB 22560 : _
- RETURN
- CALL GETNUMYN ("Would you like a printed list of deleted users", _
- PRINT.DELETED)
- D.FLAG = 0
- GOSUB 24110
- RETURN
- '
- ' * GENERAL CONFIRMATION OF RESPONSES
- '
- 22580 CALL GETNUMYN ("Really "+A$,AB)
- PRINT
- IF NOT AB THEN _
- RETURN 22582
- 22582 RETURN
- '
- ' * PACK THE MESSAGES FILE
- '
- 23160 A$ = "Pack the Message File"
- GOSUB 22580
- B1 = MAXIMUM.NUMBER.OF.NODES
- B3! = HIGHEST.MESSAGE.RECORD
- PURGE = -1
- GOSUB 30610
- RETURN
- '
- ' * POINT TO THE NEXT MESSAGE HEADER IN THE MESSAGE FILE
- '
- 23610 I = LOC(1) + VAL(MID$(MESSAGE.RECORD$,118,6)) - 1
- RETURN
- '
- ' * REPAIR THE MESSAGES FILE
- '
- 23620 RB = 1
- A$ = "Repair Message File"
- GOSUB 22580
- '
- ' * PRINT THE HEADER RECORDS IN THE MESSAGES FILE
- '
- 23630 SK = 0
- GOSUB 30040 ' <----Print message headers
- FILNUM = 1
- GOSUB 30050
- FIELD 1,128 AS MESSAGE.RECORD$
- FOR I = FIRST.MESSAGE.RECORD TO NEXT.MESSAGE.RECORD - 1
- GET 1,I
- IF VAL(MID$(MESSAGE.RECORD$,117,4)) > 0 AND _
- SK < VAL(MID$(MESSAGE.RECORD$,2,4)) THEN _
- SK = VAL(MID$(MESSAGE.RECORD$,2,4)) : _
- GOSUB 23610 _
- ELSE GOTO 23725
- I$ = "K"
- IF MID$(MESSAGE.RECORD$,116,1) = CHR$(225) THEN _
- I$ = "A
- IF LOC(1) > NEXT.MESSAGE.RECORD - 1 THEN _
- GOTO 23730
- PRINT LEFT$(MESSAGE.RECORD$,5) + " " + _
- MID$(MESSAGE.RECORD$,76,25) + " " + _
- MID$(MESSAGE.RECORD$,101,15) + " " + _
- I$ + " " + _
- MID$(MESSAGE.RECORD$,117,4) + " " + _
- STR$(LOC(1)) + " " + _
- STR$(I)
- SK = VAL(MID$(MESSAGE.RECORD$,2,4))
- IF RB AND VAL(MID$(MESSAGE.RECORD$,2,4)) = CALLS.TODATE! THEN _
- GOTO 23730
- IF RB THEN _
- GOSUB 50580
- 23725 NEXT
- 23730 GET 1,1
- MID$(MESSAGE.RECORD$,1,8) = SPACE$(8)
- MID$(MESSAGE.RECORD$,1,8) = STR$(SK)
- HJ$ = RIGHT$("0"+MID$(STR$(MAXIMUM.NUMBER.OF.NODES),2),2)
- MID$(MESSAGE.RECORD$,127,2) = HJ$
- PUT 1,1
- CLOSE 1
- DELAY! = FNTI! + 5
- GOSUB 60440
- RETURN
- '
- ' * ROUTINE TO INITIALIZE THE HAYES 2400 MODEM'S FIRMWARE
- '
- 23731 LOCATE 25,5
- COMPORT% = VAL(RIGHT$(COM.PORT$,1)) -1
- IF COMPORT% < 0 THEN _
- PRINT "COM port cannot be set while using COM0" : _
- DELAY! = FNTI! + 3 : _
- GOSUB 60440 : _
- RETURN _
- ELSE PRINT "Setting modem firmware switches for RBBS-PC on " + COM.PORT$; ' KG062301
- DELAY! = FNTI! + 3
- GOSUB 60440
- '
- '
- ' * WHEN INITIALIZING THE HAYES 2400 VOLITILE MEMORY, SET THE FOLLOWING:
- '
- ' * &C1 = Indicate carrier detect if user is on-line
- ' * &D3 = Use these settings when DTR drops
- ' * B1 = Use Bell 212A when 1200 Baud is detected
- ' * E0 = Do not echo modem commands back to the PC
- ' * V1 = Issue long form of results codes
- ' * M0 = Disable the speaker
- '
- '
- 23732 A$ = USER.INITIALIZE.COMMAND$
- IF VAL(MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=") + 3,3)) = 255 THEN _
- A$ = A$ + _
- "Q1" ' Don't send results to the PC
- 23734 IF NOT FOSSIL THEN _
- GOTO 23736
- CALL FOSINIT(COMPORT%,RESULT%)
- IF RESULT% = -1 THEN _
- LOCATE 25,1 : _
- PRINT "ERROR initializing FOSSIL. FOSSIL deactivated." : _
- FOSSIL = FALSE : _
- GOTO 23736
- COMSPEED% = VAL(MODEM.INIT.BAUD$)
- PARITY% = 2 ' NO PARITY
- DATABITS% = 3 ' 8 DATA BITS
- STOPBITS% = 0 ' 1 STOP BIT
- CALL FOSSPEED(COMPORT%,COMSPEED%,PARITY%,DATABITS%,STOPBITS%)
- STATE% = 1
- CALL FOSDTR(COMPORT%,STATE%)
- BYTES% = LEN(FIRMWARE.CLEAR.CMND$)
- CALL FOSWRITE(COMPORT%,BYTES%,FIRMWARE.CLEAR.CMND$)
- DELAY! = FNTI! + 3
- GOSUB 60440
- BYTES% = LEN(USER.FIRMWARE.WRITE.CMND$)
- CALL FOSWRITE(COMPORT%,BYTES%,USER.FIRMWARE.WRITE.CMND$)
- DELAY! = FNTI! + 3
- GOSUB 60440
- STATE% = 0
- CALL FOSDTR(COMPORT%,STATE%)
- GOTO 23739
- 23736 OPEN COM.PORT$ + ":2400,N,8,1,RS,CD,DS" AS #3
- PRINT #3,USER.FIRMWARE.CLEAR.CMND$ 'Clear and initialize to factory settings
- DELAY! = FNTI! + 3
- GOSUB 60440
- PRINT #3,A$ + USER.FIRMWARE.WRITE.CMND$
- GOSUB 60440
- 23739 IF FOSSIL THEN _
- CALL FOSEXIT(COMPORT%) : _
- ELSE CLOSE #3
- RETURN
- '
- ' * ROUTINE TO RENUMBER THE MESSAGE FILE
- '
- 23740 A$ = "Renumber the Message File"
- GOSUB 22580
- GOSUB 30040
- 23750 B1 = CALLS.TODATE!
- CALL GETINIT ("Renumber starting with OLD message # (<" + _
- STR$(CALLS.TODATE! + 1) + _
- ")",24,1,B1,RE,CR)
- IF CR THEN _
- RETURN
- 23810 CALL GETINIT ("Renumber starting with NEW message # ",24,1,9999,NE,CR)
- IF CR THEN _
- RETURN
- NE = NE - 1
- FILNUM = 1
- GOSUB 30050
- FIELD 1,128 AS MESSAGE.RECORD$
- FOR I = FIRST.MESSAGE.RECORD TO NEXT.MESSAGE.RECORD - 1
- GET 1,I
- X = ASC(MID$(MESSAGE.RECORD$,116))
- IF X = 225 OR X = 226 THEN _
- GOSUB 24010 : _
- GOSUB 23610
- NEXT
- GET 1,1
- MID$(MESSAGE.RECORD$,1,8) = SPACE$(8) ' Update the checkpoint record with the
- MID$(MESSAGE.RECORD$,1,8) = STR$(NE) ' 1- 8 = number of last message on system
- PUT 1,1
- CLOSE 1
- GOSUB 23905
- DELAY! = FNTI! + 1
- GOSUB 60440
- RETURN
- '
- ' * RESET LAST MESSAGE READ TO ZERO
- '
- 23900 A$ = "Zero out last message read for all users"
- GOSUB 22580
- 23905 GOSUB 24020
- GOSUB 24025
- A! = HIGHEST.USER.RECORD
- XX$ = "Resetting Last Msg Read by User to 0. Processing Record #"
- GOSUB 50345
- FOR J = 1 TO A!
- GET 1,J
- LOCATE 24,X
- PRINT J;
- HASH.VALUE$ = MID$(USER.RECORD$,START.HASH,LEN.HASH)
- LSET COMP.USER$ = HASH.VALUE$
- IF ASC(HASH.VALUE$) = 0 OR _
- COMP.USER$ = NEW.USER$ OR _
- COMP.USER$ = EMPTY.USER$ THEN _ ' KG090203
- GOTO 23955
- MID$(USER.OPTIONS$,3,2) = MKI$(0) ' zero out last msg read
- PUT 1,J
- 23955 NEXT
- CLOSE 1
- RETURN
- 24010 LOCATE 24,15
- PRINT "Msg #" ; MID$(MESSAGE.RECORD$,1,5);
- IF VAL(MID$(MESSAGE.RECORD$,2,4)) < RE THEN _
- PRINT " read"; : _
- RETURN
- Y$ = MID$(MESSAGE.RECORD$,1,1)
- MID$(MESSAGE.RECORD$,1,5) = SPACE$(5)
- NE = NE + 1
- MID$(MESSAGE.RECORD$,1,5) = STR$(NE)
- MID$(MESSAGE.RECORD$,1,1) = Y$
- PRINT " renumbered as Msg #" + MID$(MESSAGE.RECORD$,1,5)
- PUT 1,I
- RETURN
- '
- ' * ROUTINE TO PACK THE USERS FILE
- '
- 24020 GOSUB 30060
- FIELD 1, 31 AS USER.NAME$, _
- 15 AS PASSWORD$, _
- 2 AS SECURITY.LEVEL$, _
- 14 AS USER.OPTIONS$, _
- 24 AS CITY.STATE$, _
- 19 AS MACHINE.TYPE$, _
- 14 AS LAST.DATE.TIME.ON$, _
- 3 AS LIST.NEW.DATE$, _
- 2 AS USER.DOWNLOADS$, _
- 2 AS USER.UPLOADS$, _
- 2 AS ELASPED.TIME$
- FIELD 1, 128 AS USER.RECORD$
- RETURN
- '
- ' * SHARED ROUTINE TO SET UP USER PROCESSING
- '
- 24025 IF LEN.HASH < 7 THEN _
- NU = LEN.HASH _
- ELSE NU = 7
- NEW.USER$ = LEFT$("NEWUSER",NU)
- EMPTY.USER$ = SPACE$(NU) ' KG090203
- COMP.USER$ = EMPTY.USER$
- RETURN
- 24040 CALL GETNUMYN ("Make Hilight if and only if color graphics selected",X)
- IF NOT X THEN _
- RETURN
- GOTO 24052
- '
- ' * SET FLAG TO "FALSE" ON ANSWERED REQUIRED QUESTIONNAIRE AS DEFAULT
- '
- 24050 A$ = "Make all callers answer required questionnaire once"
- GOSUB 22580
- 24052 GOSUB 24020
- GOSUB 24025
- A! = HIGHEST.USER.RECORD
- XX$ = "Processing Record #"
- GOSUB 50345
- FOR J = 1 TO A!
- GET 1,J
- LOCATE 24,X
- PRINT J;
- HASH.VALUE$ = MID$(USER.RECORD$,START.HASH,LEN.HASH)
- LSET COMP.USER$ = HASH.VALUE$
- IF ASC(HASH.VALUE$) = 0 OR _
- COMP.USER$ = NEW.USER$ OR _
- COMP.USER$ = EMPTY.USER$ THEN _ ' KG090203
- GOTO 24055
- USER.OPTIONS = CVI(MID$(USER.OPTIONS$,9,2))
- IF ILOOKUP = 12 THEN _
- K = ((ASC(MID$(USER.OPTIONS$,6,1)) MOD 3) = 2) : _
- IF K THEN _
- USER.OPTIONS = USER.OPTIONS OR 1024 _ ' hilite
- ELSE USER.OPTIONS = USER.OPTIONS AND 1023 _ ' don't hilite
- ELSE USER.OPTIONS = USER.OPTIONS AND 1791 'Zero out Req Ques flag
- MID$(USER.OPTIONS$,9,2) = MKI$(USER.OPTIONS)
- PUT 1,J
- 24055 NEXT
- CLOSE 1
- RETURN
- '
- ' COMMON ROUTINE TO EXPAND OR CONTRACT THE USER FILE
- '
- 24110 GOSUB 30040
- IF NO.OLD.FILE THEN _
- GOTO 24111
- GOSUB 24020
- GOSUB 50350
- A$ = F$
- GOSUB 50095
- 24111 IF NETWORK.TYPE = 6 THEN _
- OPEN A$ FOR RANDOM SHARED AS #2 LEN = 128 _
- ELSE OPEN "R",2,A$,128
- FIELD 2, 31 AS USER.NAME.N$, _
- 15 AS PASSWORD.N$, _
- 2 AS SECURITY.LEVEL.N$, _
- 14 AS USER.OPTIONS.N$, _
- 24 AS CITY.STATE.N$, _
- 19 AS MACHINE.TYPE.N$, _
- 14 AS LAST.DATE.TIME.ON.N$, _
- 3 AS LIST.NEW.DATE.N$, _
- 2 AS USER.DOWN.LOADS.N$, _
- 2 AS USER.UPLOADS.N$, _
- 2 AS ELAPSED.TIME.N$
- FIELD 2, 128 AS USER.RECORD.N$
- CURRENT.MONTH = VAL(LEFT$(DATE$,2)) + (VAL(RIGHT$(DATE$,2)) * 12)
- A! = 0
- GOSUB 50840
- CURRENT.USER.COUNT = 1
- IF NO.OLD.FILE THEN _
- HIGHEST.USER.RECORD = A! : _
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD : _
- GOSUB 30450 : _
- RETURN
- A! = LOF(1) / 128.0!
- GOSUB 24025
- PURGED.COUNT = 0
- 24112 FOR J = 1 TO A!
- GET 1
- 24114 HASH.VALUE$ = MID$(USER.RECORD$,START.HASH,LEN.HASH)
- LSET COMP.USER$ = HASH.VALUE$
- 24116 MONTH.OF.LAST.LOGON = VAL(LEFT$(LAST.DATE.TIME.ON$,2)) + _
- (VAL(MID$(LAST.DATE.TIME.ON$,7,2)) * 12)
- MONTHS.SINCE.LAST.LOGON = CURRENT.MONTH - MONTH.OF.LAST.LOGON
- IF COMP.USER$ = NEW.USER$ THEN _ ' KG090203
- A$ = "" : _
- GOTO 24430
- X = ASC(HASH.VALUE$)
- IF X = 0 OR _
- COMP.USER$ = EMPTY.USER$ THEN _
- GOTO 24450
- Y = 1
- 24280 IF X < 32 OR X > 126 THEN _
- A$ = "Bad name" : _
- GOTO 24430
- IF Y < LEN.HASH THEN _
- Y = Y + 1 : _
- X = ASC(MID$(HASH.VALUE$,Y,1)) : _
- GOTO 24280
- HJ$ = HASH.VALUE$ ' KG090203
- CALL ALLCAPS (HJ$) ' KG090203
- IF HJ$ <> HASH.VALUE$ THEN _ ' KG090203
- A$ = "Bad name" : _ ' KG090203
- GOTO 24430 ' KG090203
- HJ$ = "copied"
- IF D.FLAG THEN _
- GOTO 24290
- SECURITY.LEVEL = CVI(SECURITY.LEVEL$)
- IF SECURITY.LEVEL => SEC.LVL.EXEMPT.FRM.PURGING THEN _
- HJ$ = "exempt" : _
- GOTO 24290 ' copy users exempt from purges
- IF SECURITY.LEVEL < MINIMUM.LOGON.SECURITY THEN _
- HJ$ = "locked" : _
- GOTO 24290 ' copy "locked-out" users
- IF MONTHS.SINCE.LAST.LOGON > ACT.MNTHS.B4.DELETING THEN _
- A$ = "(Last on " + LAST.DATE.TIME.ON$ + ") " + _
- STR$(MONTHS.SINCE.LAST.LOGON) : _
- GOTO 24430 'Purge inactive users
- Y = 1
- 24290 PRINT STR$(LOC(1)) ; ": " ; HASH.VALUE$ ; " " ; HJ$ ; "...";
- GOSUB 50720
- PRINT STR$(MONTHS.SINCE.LAST.LOGON)
- GOTO 24450
- 24430 PRINT STR$(LOC(1)) ; ": " ; HASH.VALUE$ ; " ... purged " ; A$
- IF PRINT.DELETED THEN _
- LPRINT STR$(LOC(1)) ; ": " ; HASH.VALUE$ ; " ... purged " ; A$
- PURGED.COUNT = PURGED.COUNT + 1
- 24450 NEXT
- CLOSE 1,2
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
- GOSUB 30450
- 24730 PRINT PURGED.COUNT;" USERS PURGED"
- CALL GETNUMYN ("Delete the old " + _
- MAIN.USER.FILE$ + _
- " file?",AB)
- IF AB THEN _
- GOTO 24770
- 24750 A$ = MAIN.USER.FILE$
- GOSUB 50096
- NAME MAIN.USER.FILE$ AS A$
- GOTO 24780
- 24770 KILL MAIN.USER.FILE$
- 24780 GOSUB 50350
- A$ = F$
- GOSUB 50095
- NAME A$ AS MAIN.USER.FILE$
- RETURN
- 24790 CALL GETNUMYN ("Really check FMS directory",AB)
- IF NOT AB THEN _
- RETURN
- CALL CHKFMSDIR (DIRECTORY.PATH$ + FMS.DIRECTORY$ + "." + DIRECTORY.EXTENTION$,MAX.DESC.LEN + 36,DIR.CATEGORY.FILE$)
- RETURN
- '
- ' * ROUTINE TO RESET ACTIVE PRINTERS FOR ALL NODES
- '
- 24795 FILNUM = 2
- GOSUB 30050
- FIELD 2,128 AS RR$
- FOR J! = 2 TO MAXIMUM.NUMBER.OF.NODES + 1
- GET 2,J!
- MID$(RR$,38,2) = " 0"
- PUT 2,J!
- NEXT
- CLOSE 2
- RETURN
- '
- ' * ROUTINE TO DISPLAY THE PAGE HEADER FOR CONFIG'S DISPLAYS
- '
- 24800 CLS
- I! = FRE(C$)
- COLOR 0,7,0
- LOCATE 1,10
- PRINT "RBBS-PC CPC17 Default Configuration " + CONFIG.VERSION$;
- IF CONFERENCE.MODE THEN _
- GOSUB 24970
- COLOR FG,BG,BORDER
- PRINT " Page" + STR$(DISPLAYED.PAGE.NUMBER) + " of" + STR$(MAXIMUM.DISPLAYABLE.PAGES)
- RETURN
- '
- ' * ROUTINE TO DISPLAY CONFERENCE MAINTENANCE MODE IN CONFIG'S DISPLAYS
- '
- 24970 LOCATE 2,1
- PRINT SPACE$(10)
- LOCATE 2,10
- A$ = "Private"
- IF CONFERENCE.MODE = 2 THEN _
- A$ = "Public"
- COLOR 31,0,0
- PRINT "(" + A$ + " Conference Maintenance Mode for " + _
- MID$(MAIN.MESSAGE.FILE$,1,INSTR(MAIN.MESSAGE.FILE$,"M.DEF") - 1) + _
- ")";
- RETURN
- '
- ' * COMMON SUBROUTINE TO DISPLAY ACTIVITY WHEN PACKING/PURGING FILES
- '
- 25020 XX$ = "In file " + _
- MAIN.USER.FILE$ + _
- " " + _
- A$ + _
- " record"
- GOTO 25035
- 25030 IF PURGE THEN _
- RETURN
- XX$ = A$ + _
- " file " + _
- MAIN.MESSAGE.FILE$ + _
- " record"
- 25035 GOSUB 50345
- RETURN
- '
- ' * ALLOW THE SYSOP TO ENTER/EXIT/CHANGE CONFERENCE MAINTENANCE MODE
- '
- 25040 REFRESH = 0
- IF CONFERENCE.MODE = 0 THEN _
- GOTO 25050
- GOSUB 30100
- CALL GETNUMYN ("End conference maintenance?",AB)
- IF NOT AB THEN _
- GOTO 25050
- 25044 MAIN.MESSAGE.FILE$ = MAINMSG$
- MAIN.USER.FILE$ = MAINUSR$
- REFRESH = 1
- RETURN
- 25050 CALL ASKRO ("Enter the name of the conference (7 characters or less) ",24,HJ$)
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 7 THEN _
- GOTO 25040
- CALL ALLCAPS (HJ$)
- CP$ = HJ$
- 25090 X$ = "this conference's files"
- GOSUB 15205
- CP$ = HJ$ + _
- CP$
- MAIN.MESSAGE.FILE$ = CP$ + _
- "M.DEF
- 25142 CALL GETNUMYN ("Does this conference have a user's file?",AB)
- IF AB THEN _
- GOTO 25160
- 25144 CONFERENCE.MODE = 2
- GOTO 25170
- 25160 CONFERENCE.MODE = 1
- UG = 0
- MAIN.USER.FILE$ = CP$ + _
- "U.DEF"
- 25170 REFRESH = 2
- RETURN
- '
- ' * ESTABLISH IF THE SYSOP WANTS TO USE DOS SUB-DIRECTORIES
- '
- 25380 CALL GETNUMYN ("Will you be using DOS sub-directories?",WILL.SUBDIRS.B.USED)
- IF WILL.SUBDIRS.B.USED THEN _
- RETURN
- UPLOAD.TO.SUBDIR = FALES
- DOWNLOAD.TO.SUBDIR = FALSE
- RETURN
- 25420 CALL GETNUMYN ("Are uploads to a DOS sub-directory?",UPLOAD.TO.SUBDIR)
- RETURN
- 25460 CALL GETNUMYN ("Are downloads from DOS sub-directories?",DOWNLOAD.TO.SUBDIR)
- RETURN
- '
- ' * HANDLE SUB-DIRECTORY INPUTS (LIST, CHANGE, ADD, DELETE) AND PUT IN .DEF
- '
- 25495 IF NOT UPLOAD.TO.SUBDIR THEN _
- GOTO 25497
- A$ = "upload"
- CALL GETNUMYN ("Change upload DOS sub-directory?",AB)
- IF AB THEN _
- GOTO 25500
- 25497 IF NOT DOWNLOAD.TO.SUBDIR THEN _
- RETURN
- A$ = "download"
- CALL GETNUMYN ("Modify download DOS sub-directories?",AB)
- IF AB THEN _
- GOTO 25505
- 25498 RETURN
- 25500 IF UPLOAD.SUBDIR$ = "" THEN _
- GOTO 25502
- 25501 LOCATE 23,5
- PRINT SPC(74)
- LOCATE 23,5
- PRINT "Current " + A$ + " DOS sub-directory name is " + UPLOAD.SUBDIR$;
- 25502 GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- GOTO 25505
- IF DRIVE.FOR.UPLOADS$ = MID$(X$,1,1) THEN _
- SWAP UPLOAD.SUBDIR$,X$ : _
- IF X$ = "" THEN _
- GOTO 25501 _
- ELSE 25505
- GOTO 25502
- 25505 IF A$="upload" THEN _
- GOTO 25497
- IF NOT DOWNLOAD.TO.SUBDIR THEN _
- RETURN
- LOCATE 23,5
- PRINT SPC(74)
- LOCATE 23,5
- PRINT STR$(DNLD.SUB) + " of 99 download subdirectories designated.";
- 25510 CALL ASKRO ("L>ist, C>hange, A>dd, D>elete " + A$ +" DOS sub-directories? (CR ends) ",24,HJ$)
- CALL ALLCAPS (HJ$)
- IF LEN(HJ$) < 1 THEN _
- GOTO 25498
- IF LEN(HJ$) <> 1 THEN _
- GOTO 25505
- FF = INSTR("LCAD",HJ$)
- IF FF = 0 THEN _
- GOTO 25510
- IF DNLD.SUB = 0 AND FF <> 3 THEN _
- GOTO 25510
- ON FF GOSUB 25610,25670,25730,25670
- GOTO 25505
- 25610 LAST = (DNLD.SUB/16) + 1
- INCR = 1
- FOR IX = 1 TO LAST
- GOSUB 24800
- LOCATE 4,1
- PRINT "DOS sub-directories from which downloads are done:";
- INDEX = 4
- FOR I = 1 TO 16
- LOCATE INDEX + I,1
- PRINT DNLD$(INCR);
- INCR = INCR + 1
- IF INCR > DNLD.SUB THEN _
- GOTO 25668
- NEXT
- 25636 CALL GETNUMYN ("More",AB)
- IF NOT AB THEN _
- GOTO 25668
- 25644 NEXT
- 25668 RETURN
- 25670 GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- RETURN
- GOSUB 26030
- A$ = " not found!"
- IF X$ = "" THEN _
- GOTO 25682
- FOR I = 1 TO DNLD.SUB
- IF X$ = DNLD$(I) THEN _
- GOTO 25698
- NEXT
- 25682 CALL ASKRO (X$ + A$ + " (CR to continue)",24,HJ$)
- A$ = "download"
- RETURN
- 25698 IF FF = 4 THEN _
- FOR X = I TO DNLD.SUB : _
- DNLD$(X) = DNLD$(X + 1) : _
- NEXT : _
- A$ = " deleted!" : _
- DNLD.SUB = DNLD.SUB - 1 : _
- GOTO 25682
- IF FF = 2 THEN _
- A$ = "download" : _
- NEXT.MESSAGE.RECORD = I : _
- GOSUB 25850 : _
- GOSUB 26030 : _
- SWAP DNLD$(NEXT.MESSAGE.RECORD),X$ : _
- A$ = " changed!" : _
- GOTO 25682
- 25730 X$ = ""
- GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- RETURN
- FOR I = 1 TO LEN(DRIVES.FOR.DOWNLOADS$)
- IF MID$(DRIVES.FOR.DOWNLOADS$,I,1) = LEFT$(X$,1) THEN _
- GOTO 25735
- NEXT
- GOSUB 60380
- CALL ASKRO (X$ + " is not a drive eligible for downloading. (CR to continue)",24,HJ$)
- GOTO 25730
- 25735 IF X$ = "" THEN _
- GOTO 25498
- DNLD.SUB = DNLD.SUB + 1
- DNLD$(DNLD.SUB) = X$
- RETURN
- '
- ' * HANDLE SUB-DIRECTORY NAMES AND CHECK FOR THEIR VALIDITY
- '
- 25850 CALL ASKRO ("Enter " + A$ + " DOS sub-directory name (CR to end). ",24,HJ$)
- CALL ALLCAPS (HJ$)
- IF LEN(HJ$) < 1 THEN _
- RETURN
- IF LEN(HJ$) = 2 AND INSTR(HJ$,":") = 2 THEN _
- X$ = HJ$ : _
- RETURN
- IF INSTR(HJ$,":\") <> 2 THEN _
- GOTO 25850
- X$ = HJ$
- FOR I = 4 TO LEN(X$)
- Y = INSTR(I,X$,"\")
- IF Y = 0 THEN _
- L1 = LEN(X$) - I + 1 : _
- GOTO 25876
- IF Y <> 0 THEN _
- L1 = Y - I + 1 : _
- GOTO 25876
- NEXT
- 25876 HJ$ = MID$(X$,I,L1)
- IF LEN(HJ$) > 12 THEN _
- GOTO 25850
- L1 = INSTR(HJ$,".")
- IF L1 = 0 THEN _
- IF LEN(HJ$) < 9 THEN _
- GOTO 25920 _
- ELSE GOTO 25850
- IF L1 > 9 THEN _
- GOTO 25850
- IF L1 < 2 THEN _
- GOTO 25850
- IF LEN(HJ$) - L1 > 3 THEN _
- GOTO 25850
- I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 25850
- 25920 FOR J = 1 TO LEN(HJ$)
- X = ASC(MID$(HJ$,J,1))
- IF (X > 63 AND X < 91) THEN _
- GOTO 26020
- IF (X > 47 AND X < 58) THEN _
- GOTO 26020
- IF (X = 33) THEN _
- GOTO 26020
- IF (X > 34 AND X < 42) THEN _
- GOTO 26020
- IF (X > 43 AND X < 47) THEN _
- GOTO 26020
- IF (X > 96 AND X < 124) THEN _
- GOTO 26020
- IF (X = 125) THEN _
- GOTO 26020
- I = 1
- RETURN
- 26020 NEXT
- RETURN
- '
- ' * VERIFY THAT THE DISK DRIVE IS ONE ELIGIBLE FOR DOWNLOADING
- '
- 26030 FOR I = 1 TO LEN(DRIVES.FOR.DOWNLOADS$)
- IF MID$(DRIVES.FOR.DOWNLOADS$,I,1) = MID$(X$,1,1) THEN _
- RETURN
- NEXT
- X$ = ""
- RETURN
- '
- ' * ALLOW THE SYSOP TO SELECT THE TIME OF DAY THAT RBBS-PC IS TO DROP TO DOS
- '
- 26040 CALL GETNUMYN ("Is RBBS-PC to drop to DOS at a specific time each day?",AB)
- TIME.TO.DROP.TO.DOS = 0
- IF AB THEN _
- GOTO 26060
- 26050 GOTO 26065
- 26060 CALL GETINIT ("Time of day (HHMM) to drop to DOS--0000 to 2359? (ENTER = No)",24,0,2359,TIME.TO.DROP.TO.DOS,CR)
- 26065 RETURN
- '
- ' * IDENTIFY THE NET WORK MAIL TYPE THAT RBBS-PC IS RUNNING IN
- '
- 26070 CLS
- LOCATE 3,5
- PRINT "RBBS-PC supports the following store-and-forward mail systems:"
- LOCATE 5,20
- PRINT "Environment"
- LOCATE 7,10
- PRINT "0. None"
- LOCATE 9,10
- PRINT "1. SeaDog"
- LOCATE 11,10
- PRINT "2. Binkley Term"
- LOCATE 13,10
- PRINT "3. X.400 (to be supported in the future)"
- LOCATE 15,10
- PRINT "4. GTE's PC-Pursuit (to be supported in the future)"
- LOCATE 17,10
- PRINT "5. G.E.'s GENIE's QuikComm (to be supported in the future)"
- 26080 CALL GETINIT ("Select network mail type (0 to 5, CR to end)",24,0,5,AB,CR)
- NET.MAIL$ = "<none>"
- IF AB = 1 THEN _
- NET.MAIL$ = "SeaDog"
- IF AB = 2 THEN _
- NET.MAIL$ = "BINKLEY TERM"
- RETURN
- 26100 CALL GETASCII ("Turn Echo On",HOST.ECHO.ON$)
- RETURN
- 26105 CALL GETASCII ("Line Acknowledge",DEFAULT.LINE.ACK$)
- RETURN
- 26110 CALL GETASCII ("Turn Echo Off",HOST.ECHO.OFF$)
- RETURN
- 26115 CALL GETASCII ("Turn Graphic Emphasis ON",EMPHASIZE.ON.DEF$)
- RETURN
- 26120 CALL GETASCII ("Turn Graphic Emphasis OFF",EMPHASIZE.OFF.DEF$)
- RETURN
- '
- ' * CHECK TO SEE IF A FILE EXIST (COMMON SUBROUTINE)
- '
- 30000 CALL FINDFILE (FILE$,OKAY) ' <---- check to see if file exists
- 30030 RETURN
- '
- ' * COMMON SUBROUTINE TO READ THE MESSAGES FILE'S CHECKPOINT RECORD
- '
- 30040 FILNUM = 2
- GOSUB 30050
- FIELD 2,128 AS RR$
- GET 2,1
- CALLS.TODATE! = VAL(MID$(RR$,1,8)) ' 1- 8 = number of last message on system
- AUTO.ADD.SECURITY = CVI(MID$(RR$,9,2)) ' 9- 10 = min. security to auto. add a user
- CURRENT.USER.COUNT = VAL(MID$(RR$,57,5)) ' 57- 61 = next avail. user record
- FIRST.MESSAGE.RECORD = VAL(MID$(RR$,68,7)) ' 68- 74 = first rec. of msgs file
- IF FIRST.MESSAGE.RECORD < 3 THEN _
- FIRST.MESSAGE.RECORD = 3
- NEXT.MESSAGE.RECORD = VAL(MID$(RR$,75,7)) ' 75- 81 = next avail. msgs record
- HIGHEST.MESSAGE.RECORD = VAL(MID$(RR$,82,7)) ' 82- 88 = last rec. of msgs file
- MAXIMUM.NUMBER.OF.MSGS = VAL(MID$(RR$,89,7)) ' 89- 95 = maximum number of messages
- MAXIMUM.NUMBER.OF.NODES = VAL(MID$(RR$,127,2)) '127-128 = maximum number of "nodes"
- IF MAXIMUM.NUMBER.OF.NODES < 1 THEN _
- MAXIMUM.NUMBER.OF.NODES = 1
- CLOSE 2
- FIRST.USER.RECORD = 1
- IF MAIN.MESSAGE.FILE$ = MAINMSG$ THEN _
- AUTO.ADD.SECURITY$ = "CONF. ONLY" _
- ELSE AUTO.ADD.SECURITY$ = MID$(STR$(AUTO.ADD.SECURITY),2)
- RETURN
- ' * OPEN MESSAGE FILE
- 30050 CLOSE FILNUM
- IF NETWORK.TYPE = 6 THEN _
- OPEN MAIN.MESSAGE.FILE$ FOR RANDOM SHARED AS #FILNUM LEN = 128 _
- ELSE OPEN "R",FILNUM,MAIN.MESSAGE.FILE$,128
- RETURN
- ' * OPEN USER FILE
- 30060 CLOSE 1
- IF NETWORK.TYPE = 6 THEN _
- OPEN MAIN.USER.FILE$ FOR RANDOM SHARED AS #1 LEN = 128 _
- ELSE OPEN "R",1,MAIN.USER.FILE$,128
- RETURN
- '
- ' * COMMON ROUTINE TO UPDATE AUTO ADD SECURITY TO CONFERENCE FILE
- '
- 30100 FILNUM = 1
- GOSUB 30050
- FIELD 1,8 AS MR1$, 2 AS MR2$, 118 AS MR3$
- GET 1,1
- LSET MR2$ = MKI$(AUTO.ADD.SECURITY)
- PUT 1,1
- CLOSE 1
- RETURN
- '
- ' * COMMON SUBROUTINE TO UPDATE MESSAGES FILE'S CHECKPOINT RECORD
- '
- 30450 FILNUM = 2
- GOSUB 30050
- FIELD 2,128 AS RR$
- GET 2,1
- MID$(RR$,9,2) = MKI$(AUTO.ADD.SECURITY) ' 9- 10 = min. security to auto. add a user
- MID$(RR$,57,5) = LEFT$(STR$(CURRENT.USER.COUNT) +SPACE$(5),5) ' 57- 61 = next avail. user record
- MID$(RR$,68,7) = LEFT$(STR$(FIRST.MESSAGE.RECORD)+SPACE$(7),7) ' 68- 74 = first rec. of msgs file
- MID$(RR$,75,7) = LEFT$(STR$(NEXT.MESSAGE.RECORD) +SPACE$(7),7) ' 75- 81 = next avail. msgs record
- MID$(RR$,82,7) = LEFT$(STR$(HIGHEST.MESSAGE.RECORD)+SPACE$(7),7) ' 82- 88 = last rec. of msgs file
- MID$(RR$,89,7) = LEFT$(STR$(MAXIMUM.NUMBER.OF.MSGS)+SPACE$(7),7) ' 89- 95 = maximum number of messages
- HJ$ = STR$(MAXIMUM.NUMBER.OF.NODES)
- IF MAXIMUM.NUMBER.OF.NODES>9 THEN _
- HJ$ = MID$(STR$(MAXIMUM.NUMBER.OF.NODES),2,2)
- MID$(RR$,127,2) = HJ$ '127-128 = maximum number of "nodes"
- PUT 2,1
- CLOSE 2
- RETURN
- '
- ' * COMMON ROUTINE TO EXPAND/CONTRACT A MESSAGES FILE
- '
- 30610 A$ = MAIN.MESSAGE.FILE$
- IF NO.OLD.FILE THEN _
- GOTO 30612
- FILNUM = 1
- GOSUB 30050
- FIELD 1,128 AS MESSAGE.RECORD$
- GOSUB 50095
- 30612 CLOSE 2
- IF NETWORK.TYPE = 6 THEN _
- OPEN A$ FOR RANDOM SHARED AS #2 LEN = 128 _
- ELSE OPEN "R",2,A$,128
- FIELD 2,128 AS RR$
- A$="Copying"
- IF NO.OLD.FILE THEN _
- A$ = "Creating preformatted"
- OE = B1
- IF MAXIMUM.NUMBER.OF.NODES <= B1 THEN _
- OE = MAXIMUM.NUMBER.OF.NODES
- FOR J=1 TO OE + 1 ' WRITE CHECKPOINT AND NODE RECORDS
- IF NO.OLD.FILE AND J = 1 THEN _
- GOSUB 31040
- IF NO.OLD.FILE AND J <> 1 THEN _
- GOSUB 31050
- IF NO.OLD.FILE = FALSE THEN _
- GET 1,J : _
- LSET RR$ = MESSAGE.RECORD$
- PUT 2
- GOSUB 25030
- NEXT
- IF NO.OLD.FILE THEN _
- GOTO 30850
- IF B1 <= MAXIMUM.NUMBER.OF.NODES THEN _
- GOTO 30780
- FOR J = OE + 1 TO B1 ' WRITE OUT EXPANISON NODE RECORDS
- GOSUB 31050
- PUT 2
- GOSUB 25030
- NEXT
- 30780 MAXIMUM.NUMBER.OF.NODES = B1 ' SET VALUE FOR MAXIMUM NUMBER OF NODES
- JX = FIRST.MESSAGE.RECORD
- GET 1,JX
- WHILE VAL(MID$(MESSAGE.RECORD$,2,4)) = 0 AND (JX < NEXT.MESSAGE.RECORD)
- JX = JX + 1
- GET 1, JX
- WEND
- IF JX > FIRST.MESSAGE.RECORD THEN _
- PRINT (JX-FIRST.MESSAGE.RECORD);" bad records purged"
- FOR J = JX TO NEXT.MESSAGE.RECORD - 1
- 30830 GET 1,J
- IF PURGE <> -1 THEN _
- GOTO 30840
- IF MID$(MESSAGE.RECORD$,116,1) = CHR$(225) THEN _
- IF VAL(MID$(MESSAGE.RECORD$,2,4)) < 1 THEN _
- PRINT " bad header purged..." : _
- GOTO 30842 _
- ELSE PRINT "Msg #" + LEFT$(MESSAGE.RECORD$,5) + " copied..." : _
- GOTO 30840
- IF MID$(MESSAGE.RECORD$,116,1) = CHR$(226) THEN _
- PRINT "Msg #" + LEFT$(MESSAGE.RECORD$,5) + " purged..." : _
- J = LOC(1) + VAL(MID$(MESSAGE.RECORD$,117,4)) : _
- GOTO 30830
- 30840 LSET RR$ = MESSAGE.RECORD$
- PUT 2 ' WRITE OUT MESSAGE RECORD
- GOSUB 25030
- 30842 NEXT
- B1 = LOC(2) + 1 ' GET NEW FILE'S NEXT MESSAGE RECORD
- CLOSE 1
- IF B3! < LOC(2) + 1 THEN _
- GOTO 30960
- 30850 IF NO.OLD.FILE OR PURGE THEN _
- NEXT.MESSAGE.RECORD = LOC(2) + 1 : _
- PURGE = 0 : _
- A$ = "Preformatting"
- IF MESSAGES.CAN.GROW THEN _
- GOTO 30960
- GOSUB 25030
- FOR J! = NEXT.MESSAGE.RECORD TO B3!
- LSET RR$ = SPACE$(128)
- PUT 2 ' WRITE OUT EXPANSION MESSAGE RECORDS
- LOCATE 24,X
- PRINT STR$(LOC(2)) + SPACE$(10);
- NEXT
- 30960 FIRST.MESSAGE.RECORD = 1 + MAXIMUM.NUMBER.OF.NODES + 1
- NEXT.MESSAGE.RECORD = B1
- IF NEXT.MESSAGE.RECORD < FIRST.MESSAGE.RECORD THEN _
- NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD
- HIGHEST.MESSAGE.RECORD = LOC(2)
- CLOSE 2
- 30980 IF NO.OLD.FILE THEN _
- RETURN
- CALL GETNUMYN ("Delete the old " + _
- MAIN.MESSAGE.FILE$ + _
- " file?",AB)
- IF AB THEN _
- GOTO 31020
- 31000 A$ = MAIN.MESSAGE.FILE$
- GOSUB 50096
- NAME MAIN.MESSAGE.FILE$ AS A$
- GOTO 31030
- 31020 KILL MAIN.MESSAGE.FILE$
- 31030 A$ = MAIN.MESSAGE.FILE$
- GOSUB 50095
- NAME A$ AS MAIN.MESSAGE.FILE$
- GOSUB 30450
- 31035 RETURN
- '
- ' * COMMON SUBROUTINE TO CREATE A BLANK "CHECKPOINT" RECORD IN THE MESSAGE FILE
- '
- 31040 LSET RR$ = " 1 " + _ ' NUMBER OF LAST MESSAGE
- MKI$(0) + _ ' SECURITY LEVEL TO AUTO-ADD USER
- SPACE$(116) + _ ' BLANKS IN ALL OTHER FIELDS
- RIGHT$("0"+MID$(STR$(MAXIMUM.NUMBER.OF.NODES),2),2)
- RETURN
- '
- ' * COMMON SUBROUTINE TO CREATE A BLANK "NODE" RECORD IN THE MESSAGE FILE
- '
- 31050 LSET RR$ = SPACE$(31) + "-1 0 0 0 0 0 0 0 0 0 0I"
- RETURN
- '
- ' * COMMON SUBROUTINE TO MAKE SURE A WORK FILE HAS ".BAK" AS AN EXTENSION
- '
- 50095 IF INSTR(A$,".") THEN _
- A$ = MID$(A$,1,INSTR(A$,".") - 1) + _
- ".BAK" : _
- RETURN _
- ELSE A$ = A$ + _
- ".BAK" : _
- RETURN
- '
- ' * COMMON SUBROUTINE TO MAKE SURE SAVED FILES HAVES ".OLD" AS AN EXTENSION
- '
- 50096 IF INSTR(A$,".") THEN _
- A$ = MID$(A$,1,INSTR(A$,".") - 1) + _
- ".OLD" : _
- RETURN _
- ELSE A$ = A$ + _
- ".OLD" : _
- RETURN
- '
- ' * COMMON SUBROUTINE TO DISPLAY A MESSAGE ON LINE 24
- '
- 50345 I! = FRE(C$)
- 50346 LOCATE 24,1
- PRINT SPACE$(5)+XX$+SPACE$(74-LEN(XX$));
- X = 5 + LEN(XX$) + 1
- RETURN
- 50350 F$ = MAIN.USER.FILE$
- IF INSTR(MAIN.USER.FILE$,".") THEN _
- F$ = MID$(MAIN.USER.FILE$,1,INSTR(MAIN.USER.FILE$,".") - 1)
- RETURN
- '
- ' * COMMON SUBROUTINE TO GET LENGTH OF THE USERS FILE
- '
- 50480 MAX.USR.FILE.SIZE.FRM.DEF = 8
- HIGHEST.USER.RECORD = MAX.USR.FILE.SIZE.FRM.DEF
- 50490 NAME MAIN.USER.FILE$ AS MAIN.USER.FILE$
- 50500 GOSUB 30060
- UG = LOF(1) / 128.0!
- MAX.USR.FILE.SIZE.FRM.DEF = UG
- HIGHEST.USER.RECORD = UG
- GOTO 50560
- '
- ' * COMMON SUBROUTINE TO GET LENGTH OF THE MESSAGES FILE
- '
- 50530 MAX.MSG.FILE.SIZE.FRM.DEF! = (5 * MAX.ALLOWED.MSGS.FRM.DEF) + 1 + MAXIMUM.NUMBER.OF.NODES
- 50540 NAME MAIN.MESSAGE.FILE$ AS MAIN.MESSAGE.FILE$
- 50550 FILNUM = 1
- GOSUB 30050
- IF MAX.MSG.FILE.SIZE.FRM.DEF!<LOF(1) / 128 THEN _
- MAX.MSG.FILE.SIZE.FRM.DEF! = LOF(1) / 128
- 50560 GOSUB 22340
- CLOSE 1
- RETURN
- '
- ' * COMMON SUBROUTINE TO REPAIR THE MESSAGE FILE AND GUARANTEE IT'S CHAINS
- '
- 50580 OLD = LOC(1)
- GET 1,I + 1
- IF (MID$(MESSAGE.RECORD$,116,1) = CHR$(225) _
- OR MID$(MESSAGE.RECORD$,116,1) = CHR$(226)) _
- AND (MID$(MESSAGE.RECORD$,61,1) = ":" _
- AND MID$(MESSAGE.RECORD$,64,1) = ":" _
- AND MID$(MESSAGE.RECORD$,70,1) = "-" _
- AND MID$(MESSAGE.RECORD$,73,1) = "-") THEN _
- RETURN
- PRINT "Message chain broken at record number " + STR$(OLD)
- PRINT "Message chain repair in progress!
- FOR IQ = OLD + 1 TO NEXT.MESSAGE.RECORD - 1
- GET 1,IQ
- IF (MID$(MESSAGE.RECORD$,116,1) = CHR$(225) _
- OR MID$(MESSAGE.RECORD$,116,1) = CHR$(226)) _
- AND (MID$(MESSAGE.RECORD$,61,1) = ":" _
- AND MID$(MESSAGE.RECORD$,64,1) = ":" _
- AND MID$(MESSAGE.RECORD$,70,1) = "-" _
- AND MID$(MESSAGE.RECORD$,73,1) = "-") THEN _
- GET 1,OLD : _
- MID$(MESSAGE.RECORD$,117,4) = STR$(IQ - OLD) : _
- PUT 1,OLD : _
- PRINT "Message chain repaired." : _
- I = IQ : _
- RETURN
- NEXT
- RETURN 23730
- '
- ' * COMMON SUBROUTINE TO HASH A USER'S NAME TO FIND THE CORRECT USER RECORD #
- '
- 50720 JX = LEN.HASH
- WHILE MID$(HASH.VALUE$,JX,1) = " "
- JX = JX - 1
- WEND
- X$ = MID$(HASH.VALUE$,1,JX)
- UIX# = FNHSH(X$)
- Q = FNHSH2(X$)
- NSR = 1
- RO = CSRLIN
- CO = POS(0)
- 50722 GET 2,UIX#
- HASH.VALUE.N$ = MID$(USER.RECORD.N$,START.HASH,LEN.HASH)
- IF MID$(HASH.VALUE.N$,1,NU) = EMPTY.USER$ THEN _
- GOTO 50730
- IF HASH.VALUE$ <> HASH.VALUE.N$ THEN _
- GOTO 50725
- IF START.INDIV > 0 AND LEN.INDIV > 0 THEN _
- IF MID$(USER.RECORD$,START.INDIV,LEN.INDIV) <> MID$(USER.RECORD.N$,START.INDIV,LEN.INDIV) THEN _
- GOTO 50725
- LOCATE RO,CO
- PRINT "Omitted Duplicate ";
- PURGED.COUNT = PURGED.COUNT + 1
- RETURN
- 50725 UIX# = UIX# + Q
- IF UIX# > MAX.USR.FILE.SIZE.FRM.DEF THEN _
- UIX# = UIX# - MAX.USR.FILE.SIZE.FRM.DEF
- NSR = NSR + 1
- LOCATE RO,CO
- PRINT "searching";UIX#;
- GOTO 50722
- 50730 LSET USER.RECORD.N$ = USER.RECORD$
- PUT 2,UIX#
- CURRENT.USER.COUNT = CURRENT.USER.COUNT + 1
- LOCATE RO,CO
- PRINT " pos#";UIX#;"/";NSR;"srch(s) ";
- RETURN
- '
- ' * COMMON SUBROUTINE TO WRITE OUT BLANK USER RECORDS TO THE USERS FILE
- '
- 50840 TEMPLATE$ = SPACE$(46) + MKI$(-32000)
- GOSUB 25020
- FOR J = A! + 1 TO MAX.USR.FILE.SIZE.FRM.DEF
- LSET USER.RECORD.N$ = TEMPLATE$
- PUT 2
- LOCATE 24,X
- PRINT J;
- NEXT
- PRINT
- RETURN
- '
- ' * CONVERT DISPLAYABLE OPTIONS INTO RBBS-PC.DEF PARAMETER VARIABLES
- '
- 59000 GOSUB 30100
- IF EXPERT.USER$ = "NOVICE" THEN _
- EXPERT.USER = 0
- IF EXPERT.USER$ = "EXPERT" THEN _
- EXPERT.USER = -1
- DOWNLOAD.DRIVES$ = DRIVES.FOR.DOWNLOADS$ + DRIVE.FOR.UPLOADS$
- PROMPT.BELL = -1
- IF PROMPT.BELL$ = "OFF" THEN _
- PROMPT.BELL = 0
- PAGING.PRINTER.SUPPORT$ = ". "
- IF M11$ = "YES" THEN _
- PAGING.PRINTER.SUPPORT$ = ". " + _
- CHR$(7)
- GOSUB 15780
- IF MAIN.MESSAGE.FILE$ <> MAINMSG$ THEN _
- MAIN.MESSAGE.FILE$ = MAINMSG$
- IF MAIN.USER.FILE$ <> MAINUSR$ THEN _
- MAIN.USER.FILE$ = MAINUSR$
- IF CONFERENCE.MODE THEN _
- GOSUB 30040
- IF CALLERS.FILE$ = NONE.PICKED$ THEN _
- CALLERS.FILE$ = ""
- IF ALTDIR.EXTENSION$ = NONE.PICKED$ THEN _
- ALTDIR.EXTENSION$ = ""
- IF ALWAYS.STREW.TO$ = NONE.PICKED$ THEN _
- ALWAYS.STREW.TO$ = ""
- IF QUES.PATH$ = NONE.PICKED$ THEN _
- QUES.PATH$ = ""
- IF NEW.USER.QUESTIONNAIRE$ = NONE.PICKED$ THEN _
- NEW.USER.QUESTIONNAIRE$ = ""
- IF REQUIRED.QUESTIONNAIRE$ = NONE.PICKED$ THEN _
- REQUIRED.QUESTIONNAIRE$ = ""
- IF NET.MAIL$ = NONE.PICKED$ THEN _
- NET.MAIL$ = "NONE"
- IF CONFMAIL.LIST$ = NONE.PICKED$ THEN _
- CONFMAIL.LIST$ = ""
- IF REGISTRATION.PROGRAM$ = NONE.PICKED$ THEN _
- REGISTRATION.PROGRAM$ = ""
- 59020 OPEN "O",#1,CONFIG.FILENAME$
- IF INSTR(MO$,":") < 1 THEN _
- MO$ = MO$ + _
- ":"
- IF INSTR(SJ$,":") < 1 THEN _
- SJ$ = SJ$ + _
- ":"
- IF INSTR(DRIVE.FOR.BULLETINS$,":") < 1 THEN _
- DRIVE.FOR.BULLETINS$ = DRIVE.FOR.BULLETINS$ + _
- ":"
- T$ = DIRECTORY.EXTENTION$
- IF INSTR(DIRECTORY.EXTENTION$,".") THEN _
- T$ = MID$(DIRECTORY.EXTENTION$,INSTR(DIRECTORY.EXTENTION$,".") + 1,LEN(DIRECTORY.EXTENTION$))
- S$ = UPLOAD.DIRECTORY$
- IF INSTR(UPLOAD.DIRECTORY$,".") THEN _
- S$ = MID$(UPLOAD.DIRECTORY$,1,INSTR(UPLOAD.DIRECTORY$,".") - 1)
- DIRECTORY.EXTENTION$ = T$
- UPLOAD.DIRECTORY$ = S$
- IF NOT DOWNLOAD.TO.SUBDIR THEN _
- DNLD.SUB = 0 : _
- FOR I = 1 TO 99 : _
- DNLD$(I) = "" : _
- NEXT
- IF NOT UPLOAD.TO.SUBDIR THEN _
- UPLOAD.SUBDIR$ = DRIVE.FOR.UPLOADS$ + _
- ":"
- IF UPLOAD.TO.SUBDIR AND UPLOAD.SUBDIR$ <> "" THEN _
- DRIVE.FOR.UPLOADS$ = UPLOAD.SUBDIR$
- IF REQUIRED.RINGS = 0 AND _
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0") + 3,5) <> "1Q0X1" THEN _
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0") + 3,5) = "1Q0X1"
- IF REQUIRED.RINGS > 0 AND _
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0") + 3,3) = "0Q0X1" THEN _
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0") + 3,3) = "254 "
- EXTENSION.LIST$ = DEFAULT.EXTENSION$ ' KG010804
- IF COMPRESSED.EXT$ <> NONE.PICKED$ THEN _ ' KG010803
- EXTENSION.LIST$ = EXTENSION.LIST$ + COMPRESSED.EXT$ ' DA050206
- '
- ' * WRITE OUT THE "RBBS-PC.DEF" FILE WITH THE SYSOP'S SPECIFIED CONFIGURATION
- '
- 59030 WRITE #1,VERSION.NUMBER$, _
- DOWNLOAD.DRIVES$, _
- SYSOP.PASSWORD.1$, _
- SYSOP.PASSWORD.2$, _
- SYSOP.FIRST.NAME$, _
- SYSOP.LAST.NAME$, _
- REQUIRED.RINGS, _
- START.OFFICE.HOURS, _
- END.OFFICE.HOURS, _
- MINUTES.PER.SESSION!, _
- MAX.ALLOWED.MSGS.FRM.DEF, _
- ACT.MNTHS.B4.DELETING, _
- UPLOAD.DIRECTORY$,_
- EXPERT.USER, _
- ACTIVE.BULLETINS, _
- PROMPT.BELL, _
- PCJR, _
- MENUS.CAN.PAUSE, _
- MENU$(1), _
- MENU$(2), _
- MENU$(3), _
- MENU$(4), _
- MENU$(5), _
- MENU$(6), _
- CONFERENCE.MENU$, _
- CONFERENCE.VIEWER.SEC.LVL, _
- WELCOME.INTERRUPTABLE, _
- REMIND.FILE.TRANSFERS, _
- PAGE.LENGTH, _
- MAX.MESSAGE.LINES, _
- DOORS.AVAILABLE, _
- MO$
- IF INSTR(BULLETIN.MENU$,":") < 1 THEN _
- BULLETIN.MENU$ = DRIVE.FOR.BULLETINS$ + _
- BULLETIN.MENU$
- IF INSTR(BULLETIN.PREFIX$,":") < 1 THEN _
- BULLETIN.PREFIX$ = DRIVE.FOR.BULLETINS$ + _
- BULLETIN.PREFIX$
- IF GLOBAL.FUNCTION(3) > MINIMUM.LOGON.SECURITY THEN _
- GLOBAL.FUNCTION(3) = MINIMUM.LOGON.SECURITY
- IF FILES.FUNCTION(2) > MINIMUM.LOGON.SECURITY THEN _
- FILES.FUNCTION(2) = MINIMUM.LOGON.SECURITY
- IF LIBRARY.FUNCTION(4) > MINIMUM.LOGON.SECURITY THEN _
- LIBRARY.FUNCTION(4) = MINIMUM.LOGON.SECURITY
- IF LIBRARY.DRIVE$ = "" THEN _
- MAIN.FUNCTION(18) = 32767
- WRITE #1,MAIN.MESSAGE.FILE$, _
- MAIN.MESSAGE.BACKUP$, _
- CALLERS.FILE$, _
- COMMENTS.FILE$, _
- MAIN.USER.FILE$, _
- WELCOME.FILE$, _
- NEWUSER.FILE$, _
- DIRECTORY.EXTENTION$, _
- COM.PORT$, _
- BULLETINS.OPTIONAL, _
- USER.INIT.COMMAND$, _
- RTS$, _
- DOS.VERSION, _
- FG, _
- BG, _
- BORDER, _
- RBBS.BAT$, _
- RCTTY.BAT$
- WRITE #1,OMIT.MAIN.DIRECTORY$, _
- FIRST.NAME.PROMPT$, _
- HELP$(3), _
- HELP$(4), _
- HELP$(7), _
- HELP$(9), _
- BULLETIN.MENU$, _
- BULLETIN.PREFIX$, _
- DRIVE.FOR.BULLETINS$, _
- MESSAGE.REMINDER, _
- REQUIRE.NON.ASCII, _
- ASK.EXTENDED.DESC, _
- MAXIMUM.NUMBER.OF.NODES, _
- NETWORK.TYPE, _
- RECYCLE.TO.DOS, _
- MAX.USR.FILE.SIZE.FRM.DEF, _
- MAX.MSG.FILE.SIZE.FRM.DEF!, _
- TRASHCAN.FILE$
- WRITE #1,MINIMUM.LOGON.SECURITY, _
- DEFAULT.SECURITY.LEVEL, _
- SYSOP.SECURITY.LEVEL, _
- FILESEC.FILE$, _
- SYSOP.MENU.SECURITY.LEVEL, _
- CONFMAIL.LIST$, _
- MAXIMUM.VIOLATIONS, _
- SYSOP.FUNCTION(1), _
- SYSOP.FUNCTION(2), _
- SYSOP.FUNCTION(3), _
- SYSOP.FUNCTION(4), _
- SYSOP.FUNCTION(5), _
- SYSOP.FUNCTION(6), _
- SYSOP.FUNCTION(7), _
- PASSWORD.FILE$, _
- MAXIMUM.PASSWORD.CHANGES, _
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD, _
- OVERWRITE.SECURITY.LEVEL, _
- DOORS.TERMINAL.TYPE, _
- MAX.PER.DAY
- WRITE #1,MAIN.FUNCTION(1), _
- MAIN.FUNCTION(2), _
- MAIN.FUNCTION(3), _
- MAIN.FUNCTION(4), _
- MAIN.FUNCTION(5), _
- MAIN.FUNCTION(6), _
- MAIN.FUNCTION(7), _
- MAIN.FUNCTION(8), _
- MAIN.FUNCTION(9), _
- MAIN.FUNCTION(10), _
- MAIN.FUNCTION(11), _
- MAIN.FUNCTION(12), _
- MAIN.FUNCTION(13), _
- MAIN.FUNCTION(14), _
- MAIN.FUNCTION(15), _
- MAIN.FUNCTION(16), _
- MAIN.FUNCTION(17), _
- MAIN.FUNCTION(18), _
- MIN.NEWCALLER.BAUD, _
- WAIT.BEFORE.DISCONNECT
- WRITE #1,FILES.FUNCTION(1), _
- FILES.FUNCTION(2), _
- FILES.FUNCTION(3), _
- FILES.FUNCTION(4), _
- FILES.FUNCTION(5), _
- FILES.FUNCTION(6), _
- FILES.FUNCTION(7), _
- FILES.FUNCTION(8), _
- UTILITY.FUNCTION(1), _
- UTILITY.FUNCTION(2), _
- UTILITY.FUNCTION(3), _
- UTILITY.FUNCTION(4), _
- UTILITY.FUNCTION(5), _
- UTILITY.FUNCTION(6), _
- UTILITY.FUNCTION(7), _
- UTILITY.FUNCTION(8), _
- UTILITY.FUNCTION(9), _
- UTILITY.FUNCTION(10), _
- UTILITY.FUNCTION(11), _
- UTILITY.FUNCTION(12), _
- GLOBAL.FUNCTION(1), _
- GLOBAL.FUNCTION(2), _
- GLOBAL.FUNCTION(3), _
- GLOBAL.FUNCTION(4), _
- UPLOAD.TIME.FACTOR!, _
- COMPUTER.TYPE, _
- REMIND.PROFILE, _
- RBBS.NAME$, _
- COMMANDS.BETWEEN.RINGS, _
- DF, _ ' KG072303
- PAGING.PRINTER.SUPPORT$, _
- MODEM.INIT.BAUD$
- 59035 WRITE #1,TURN.PRINTER.OFF,_
- DIRECTORY.PATH$,_
- MIN.SEC.TO.VIEW, _
- LIMIT.SEARCH.TO.FMS, _
- DEFAULT.CATEGORY.CODE$, _
- DIR.CATEGORY.FILE$, _
- NEW.FILES.CHECK, _
- MAX.DESC.LEN, _
- SHOW.SECTION, _
- COMMANDS.IN.PROMPT, _
- NEWUSER.SETS.DEFAULTS, _
- HELP.PATH$, _
- HELP.EXTENSION$, _
- MAIN.COMMANDS$, _
- FILE.COMMANDS$, _
- UTIL.COMMANDS$, _
- GLOBAL.COMMANDS$, _
- SYSOP.COMMANDS$
- WRITE #1,RECYCLE.WAIT, _
- LIBRARY.FUNCTION(1), _
- LIBRARY.FUNCTION(2), _
- LIBRARY.FUNCTION(3), _
- LIBRARY.FUNCTION(4), _
- LIBRARY.FUNCTION(5), _
- LIBRARY.FUNCTION(6), _
- LIBRARY.FUNCTION(7), _
- LIBRARY.DRIVE$, _
- LIBRARY.DIRECTORY.PATH$, _
- LIBRARY.DIRECTORY.EXTENTION$, _
- LIBRARY.WORK.DISK.PATH$, _
- LIBRARY.MAX.DISK, _
- LIBRARY.MAX.DIRECTORY, _
- LIBRARY.MAX.SUBDIR, _
- LIBRARY.SUBDIR.PREFIX$, _
- LIBRARY.ARCHIVE.PATH$, _
- LIBRARY.ARCHIVE.PROGRAM$, _
- LIBRARY.COMMANDS$
- WRITE #1,UPLOAD.PATH$, _
- FMS.DIRECTORY$, _
- ANS.MENU$, _
- REQUIRED.QUESTIONNAIRE$, _
- REMEMBER.NEW.USERS, _
- SURVIVE.NOUSER.ROOM, _
- PROMPT.HASH$, _
- START.HASH, _
- LEN.HASH, _
- PROMPT.INDIV$, _
- START.INDIV, _
- LEN.INDIV
- WRITE #1,BYPASS.MSGS, _
- MUSIC, _
- RESTRICT.BY.DATE, _
- DAYS.TO.WARN, _
- DAYS.IN.SUBSCRIPTION.PERIOD, _
- VOICE.TYPE, _
- RESTRICT.VALID.CMDS, _
- NEW.USER.DEFAULT.MODE, _
- NEW.USER.LINE.FEEDS, _
- ARKVIEW.PATH$, _ 'ViewArc Mod
- FAST.FILE.LIST$, _ ' KG102201
- FAST.FILE.LOCATOR$, _ ' KG102201
- MESSAGES.CAN.GROW, _
- WRAP.CALLERS.FILE$, _
- REDIRECT.IO.METHOD, _
- AUTO.UPGRADE.SEC, _
- HALT.ON.ERROR, _
- NEW.PUBLIC.MSGS.SECURITY, _
- NEW.PRIVATE.MSGS.SECURITY, _
- SECURITY.NEEDED.TO.CHANGE.MSGS, _
- SL.CATEGORIZE.UPLOADS, _
- BAUDOT, _
- TIME.TO.DROP.TO.DOS, _
- EXPIRED.SECURITY, _
- DTR.DROP.DELAY, _
- ASK.IDENTITY, _
- MAX.REG.SEC, _
- BUFFER.SIZE, _
- MLCOM, _
- SHOOT.YOURSELF, _
- EXTENSION.LIST$, _ 'DA050206
- NEW.USER.DEFAULT.PROTOCOL$, _
- NEW.USER.GRAPHICS$, _
- NET.MAIL$, _
- MASTER.DIRECTORY.NAME$, _
- PROTO.DEF$, _
- UPCAT.HELP$, _
- ALWAYS.STREW.TO$, _
- LAST.NAME.PROMPT$
- MSB = LSB + 1
- LINE.CONTROL.REGISTER = LSB + 3
- MODEM.CONTROL.REGISTER = LSB + 4
- LINE.STATUS.REGISTER = LSB + 5
- MODEM.STATUS.REGISTER = LSB + 6
- WRITE #1,PERSONAL.DRVPATH$, _
- PERSONAL.DIR$, _
- PERSONAL.BEGIN, _
- PERSONAL.LEN, _
- PERSONAL.PROTOCOL$, _
- PERSONAL.CONCAT, _
- PRIVATE.READ.SEC, _
- PUBLIC.READ.SEC, _
- SEC.CHANGE.MSG, _
- KEEP.INIT.BAUD, _
- MAIN.PUI$, _
- DEFAULT.ECHOER$, _
- HOST.ECHO.ON$, _
- HOST.ECHO.OFF$, _
- SWITCH.BACK, _
- DEFAULT.LINE.ACK$, _
- ALTDIR.EXTENSION$, _
- DIRECTORY.PREFIX$
- WRITE #1,SEC.LVL.EXEMPT.FRM.PURGING, _
- MODEM.INIT.WAIT.TIME, _
- MODEM.COMMAND.DELAY.TIME, _
- TURBO.RBBS, _
- DNLD.SUB, _
- WILL.SUBDIRS.B.USED, _
- UPLOAD.TO.SUBDIR, _
- DOWNLOAD.TO.SUBDIR, _
- UPLOAD.SUBDIR$, _
- MIN.OLDCALLER.BAUD, _
- MAX.WORK.VAR, _
- DISKFULL.GO.OFFLINE, _
- EXTENDED.LOGGING, _
- USER.RESET.COMMAND$, _
- USER.COUNT.RINGS.COMMAND$, _
- USER.ANSWER.COMMAND$, _
- USER.GO.OFFHOOK.COMMAND$, _
- DISK.FOR.DOS$, _
- DUMB.MODEM, _
- COMMENTS.AS.MESSAGES, _
- LSB, _
- MSB, _
- LINE.CONTROL.REGISTER, _
- MODEM.CONTROL.REGISTER, _
- LINE.STATUS.REGISTER, _
- MODEM.STATUS.REGISTER
- ORIG.COMMANDS$ = MAIN.COMMANDS.DEFAULTS$ + _
- FILE.COMMANDS.DEFAULTS$ + _
- UTIL.COMMANDS.DEFAULTS$ + _
- LIBRARY.COMMANDS.DEFAULTS$ + _
- GLOBAL.COMMANDS.DEFAULTS$ + _
- SYSOP.COMMANDS.DEFAULTS$
- WRITE #1,KEEP.TIME.CREDITS, _
- XON.XOFF, _
- ALLOW.CALLER.TURBO, _
- USE.DEVICE.DRIVER$, _
- PRELOG$, _
- NEW.USER.QUESTIONNAIRE$, _
- EPILOG$, _
- REGISTRATION.PROGRAM$, _
- QUES.PATH$, _
- USER.LOCATION$, _
- USER.INITIALIZE.COMMAND$, _
- USER.FIRMWARE.CLEAR.CMND$, _
- USER.FIRMWARE.WRITE.CMND$, _
- ENFORCE.UPLOAD.DOWNLOAD.RATIOS, _
- SIZE.OF.STACK, _
- SECURITY.EXEMPT.FROM.EPILOG, _
- USE.BASIC.WRITES, _
- DOSANSI, _
- ESCAPE.INSECURE, _
- USE.DIR.ORDER, _
- ADD.DIR.SECURITY, _
- MAX.EXTENDED.LINES, _
- ORIG.COMMANDS$
- IF MACRO.EXTENSION$ <> "" THEN _
- MACRO.EXTENSION$ = "." + MACRO.EXTENSION$
- CALL COLORCODE (FG.1.DEF$,FG.1.DEF$,X)
- CALL COLORCODE (FG.2.DEF$,FG.2.DEF$,X)
- CALL COLORCODE (FG.3.DEF$,FG.3.DEF$,X)
- CALL COLORCODE (FG.4.DEF$,FG.4.DEF$,X)
- WRITE #1,LOGON.MAIL.LEVEL$, _
- MACRO.DRVPATH$, _
- MACRO.EXTENSION$, _
- EMPHASIZE.ON.DEF$, _
- EMPHASIZE.OFF.DEF$, _
- FG.1.DEF$, _
- FG.2.DEF$, _
- FG.3.DEF$, _
- FG.4.DEF$, _
- SECVIO.HLP$, _
- FOSSIL, _
- MAX.CARRIER.WAIT, _
- CALLER.BKGRD, _
- SMART.TEXT, _
- TIME.LOCK, _
- WRITE.BUF.DEF, _
- SEC.KILL.ANY, _
- DOORS.DEF$, _
- SCREEN.OUT.MSG$, _
- AUTOPAGE.DEF$
- IF DNLD.SUB <1 OR DNLD.SUB > 99 THEN _
- GOTO 59080
- FOR I = 1 TO DNLD.SUB
- WRITE #1,DNLD$(I)
- NEXT
- 59080 CLOSE #1
- '
- ' * NOTIFY THE SYSOP THAT THE CONFIGURATION DESCRIPTION FILE HAS BEEN WRITTEN
- '
- CLS
- LOCATE 12,1,1
- PRINT "RBBS-PC configuration description file, " + CONFIG.FILENAME$ + ", now on default drive."
- GOSUB 60380
- GOTO 60340
- '
- ' * CONFIG.BAS'S ERROR ROUTINES
- '
- 60010 '* HANDLE ERROR CONDITIONS *
- IF ERR = 62 AND _
- (ERL = 11600 OR _
- ERL = 11620 OR _
- ERL = 11640 OR _
- ERL = 11660 OR _
- ERL = 11680 OR _
- ERL = 11700 OR _
- ERL = 11705 OR _
- ERL = 11706) THEN _
- PRINT CONFIG.FILENAME$ + _
- " from a version earlier than " + CONFIG.VERSION$ + " on default drive." : _
- PRINT "Please delete and rerun CONFIG." : _
- RESUME 60340
- IF ERL = 15780 AND ERR = 5 AND _
- INSTR(USER.INIT.COMMAND$,"S0=") = 0 THEN _
- RESUME 16073
- IF ERL = 31000 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 31000
- IF ERL = 31030 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 31030
- IF ERL = 22120 AND ERR = 6 THEN _
- RESUME 22100
- IF ERL = 24750 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 24750
- IF ERL = 31020 THEN _
- PRINT "Unable to kill ";MAIN.MESSAGE.FILE$;". Error";STR$(ERR):_
- RESUME 31035
- IF ERL = 50490 AND ERR = 58 THEN _
- RESUME 50500
- IF ERL = 50540 AND ERR = 58 THEN _
- RESUME 50550
- IF ERL = 50490 OR ERL = 50540 THEN _
- RESUME 15230
- IF ERL = 60471 THEN _
- IF ERR <> 76 THEN _
- RESUME 60478 _
- ELSE RESUME 60474
- IF ERL = 60480 THEN _
- PRINT "ERROR -";ERR;" UNABLE TO CREATE SUBDIRECTORY" : _
- RESUME 60478
- IF ERR = 61 THEN _
- PRINT "ERROR - IBM DOS DISKETTE FULL " : _
- RESUME 60340
- IF ERR = 67 THEN _
- PRINT "ERROR - IBM DOS DIRECTORY FULL" : _
- RESUME 60340
- IF ERR = 70 THEN _
- PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED" : _
- RESUME 60340
- IF ERR = 71 THEN _
- PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE" : _
- RESUME 60340
- IF ERR = 72 THEN _
- PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE" : _
- RESUME 60340
- PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$
- 60340 IF CONFERENCE.MODE = 1 THEN _
- DELAY! = FNTI! + 5
- GOSUB 60440
- 60360 SYSTEM
- '
- ' * COMMON SUBROUTINE TO BEEP AT THE SYSOP
- '
- 60380 FOR I = 1 TO 2
- BEEP
- NEXT
- RETURN
- '
- ' * COMMON ROUTINE TO WAIT A SPECIFIED NUMBER OF SECONDS
- '
- 60440 ' wait routine
- 60450 IF FNTI! < DELAY! THEN _
- GOTO 60450
- RETURN
- '
- ' * COMMON ROUTINE TO CHECK DRIVE/PATH FOR FORMAT/EXISTENCE
- '
- 60470 IF LEN(STRNG$) < 1 THEN _
- GOTO 60476
- IS.OK = TRUE
- 60471 NAME STRNG$ + "XX" AS STRNG$ + "XX"
- 60474 BEEP
- CALL ASKRO ("Bad/missing drive/path <"+STRNG$+"> [R]e-enter, I)gnore, C)reate",24,ANS$)
- CALL ALLCAPS (ANS$)
- ON INSTR("RIC",ANS$) GOTO 60476,60478,60480
- 60476 IS.OK = FALSE
- 60478 RETURN
- 60480 MKDIR LEFT$(STRNG$,LEN(STRNG$)-1)
- RETURN