* ------------[ BLED merge (c) Ken Goosens ]------------- * Merge this against D:\172B\RBBS-PC.BAS to produce RBBS-PC.BAS * D:\172B\RBBS-PC.BAS: Date 2-11-1990 Size 153912 bytes * ------------[ Created 05-20-1990 20:23:48 ]------------ * REPLACING old line(s) by new 105 ZVersionID$ = "CPC17.3/0518" * REPLACING old line(s) by new 135 IF ZCurDef$ = ZOrigCnfg$ THEN _ ZActiveMessageFile$ = ZMainMsgFile$ : _ ZActiveUserFile$ = ZMainUserFile$ GOSUB 4910 IF ZConfMode THEN _ GOTO 150 ZLocalUserMode = (RIGHT$(ZComPort$,1) < "1") GET 1,ZNodeRecIndex ZWasY$ = MID$(ZMsgRec$,77,2) CALL UnPackDate (ZWasY$,WasX,WasL,WasI,ZOldDate$) ZOldDate$ = LEFT$(ZOldDate$,6) + MID$(STR$(WasX),2) ZHourMinToDropToDos = - (ZHourMinToDropToDos > 0) * ZHourMinToDropToDos Hour = INT(ZHourMinToDropToDos / 100) WasMN = ZHourMinToDropToDos - Hour * 100 * ------[ first line different ]------ ZTimeToDropToDos! = Hour * 3600! + WasMN * 60! ' KK030901 ' ' ****** TEST FOR TIMED EXIT ACTIVE ***** ' * REPLACING old line(s) by new 150 IF SubBoard THEN _ GOSUB 12987 : _ GOSUB 5135 : _ GOTO 170 ZSysopAvail = VAL(MID$(ZMsgRec$,32,2)) ZSysopAnnoy = VAL(MID$(ZMsgRec$,34,2)) ZSysopNext = VAL(MID$(ZMsgRec$,36,2)) MID$(ZMsgRec$,36,2) = STR$(ZFalse) ZPrinter = VAL(MID$(ZMsgRec$,38,2)) IF ZTurnPrinterOff THEN _ ZPrinter = ZFalse ZExitToDoors = (MID$(ZMsgRec$,40,2) = "-1" AND ZNetBaud$ = "") ZEightBit = VAL(MID$(ZMsgRec$,42,2)) ZBPS = VAL(MID$(ZMsgRec$,44,2)) ZSnoop = VAL(MID$(ZMsgRec$,58,2)) MID$(ZMsgRec$,57,1) = "I" ZPrivateDoor = (MID$(ZMsgRec$,72,2) = "-1") IF ZPrivateDoor THEN _ ZHasPrivDoor = ZTrue MID$(ZMsgRec$,72,2) = STR$(ZFalse) * ------[ first line different ]------ ZLocalUser = (MID$(ZMsgRec$,101,2) = ZCarriageReturn$+ZCarriageReturn$) ' KG030601 IF ZExitToDoors OR ZPrivateDoor THEN _ ZHasDoored = ZTrue : _ TurboLogon = ZTrue PUT 1,ZNodeRecIndex GOSUB 12985 ' ' ***** INITIALIZE VOICE SYNTHESIZER **** ' CALL Talk (Init,ZOutTxt$) ' ' ***** TEST FOR MULTI LINK PRESENT IF NOT COMPAQ COMPUTER **** ' * REPLACING old line(s) by new 175 GOSUB 5344 CALL CountLines (MaxEntries) REDIM ZCategoryName$(MaxEntries),ZCategoryCode$(MaxEntries),_ ZCategoryDesc$(MaxEntries) : _ CALL InitFMS (ZCategoryName$(),ZCategoryCode$(), _ ZCategoryDesc$(),ZNumCategories) ZMaxMsgLines = ZMaxMsgLinesDef ZLocalUser = (ZLocalUser OR ZLocalUserMode) IF (NOT ZLocalUser) AND (NOT SubBoard) THEN _ CALL OpenCom (ZModemInitBaud$,",N,8,1") IF NOT SubBoard THEN _ CALL SetEcho (ZDefaultEchoer$) ZNodeWorkFile$ = ZNodeWorkDrvPath$ + _ "NODE" + _ ZNodeFileID$ + _ "WRK" * ------[ first line different ]------ ZSecsPerSession! = ZMinsPerSession * 60! ' KK030901 IF NOT ZLocalUserMode THEN _ IF NOT ZExitToDoors THEN _ GOTO 180 _ ELSE IF NOT ZLocalUser THEN _ GOTO 180 ZLocalUser = ZTrue ZBPS = -6 ZBaudTest! = 9600 ZEightBit = ZTrue ZSnoop = ZTrue IF ZExitToDoors THEN _ CALL AMorPM : _ CALL ReadProf : _ GOTO 410 GOSUB 178 GOTO 345 * REPLACING old line(s) by new 459 GOSUB 9500 ZLastDateTimeOnSave$ = ZLastDateTimeOn$ IF ZExitToDoors THEN _ * ------[ first line different ]------ TempHoldTime! = VAL(LEFT$(ZTime$,2))*3600! + _ ' KK030901 VAL(MID$(ZTime$,4,2))*60! : _ ' KK030901 CALL CheckTime(TempHoldTime!, TempTime!, 2) : _ MinsInDoors = TempTime! / 60 : _ CALL TimeRemain (MinsRemaining) ZUserFileIndex = LOC(5) GOSUB 5135 ' ' *** COMPUTE THE NUMBER OF DAYS REMAINING UNTIL REGISTRATION EXPIRES ** ' IF ZRestrictByDate AND ZDaysInRegPeriod > 0 THEN _ CALL CompDate (UserRegYY,UserRegMM,UserRegDD,UserComputeDate!) : _ ZRegDaysRemaining = UserComputeDate! + _ ZDaysInRegPeriod - _ TodayComputeDate! : _ CALL ExpireDate (UserComputeDate!,ZDaysInRegPeriod,ZExpirationDate$) _ ELSE ZDaysInRegPeriod = 0 IF NOT ZPrivateDoor THEN _ IF ZRegDaysRemaining < 0 AND ZDaysInRegPeriod > 0 THEN _ IF ZUserSecLevel > ZExpiredSec THEN _ CALL QuickTPut1 (ZWasLG$(9) + _ " - security reset to " + _ STR$(ZExpiredSec)) : _ CALL BufFile(ZHelpPath$+"RGXPIRD"+ZHelpExtension$,WasX) : _ ZLogonErrorIndex = 9 : _ ZUserSecLevel = ZExpiredSec : _ LSET ZSecLevel$ = MKI$(ZUserSecLevel) : _ GOSUB 5135 * REPLACING old line(s) by new 821 IF ZExitToDoors THEN _ IF ZTransferFunction = 3 THEN _ ZNewUser = ZTrue : _ TurboLogon = ZFalse : _ SameUser = ZFalse : _ ZTransferFunction = 0 : _ GOTO 832 _ ELSE GOTO 832 GOSUB 1241 IF (SubBoard AND (ZOrigMsgFile$ = ZActiveMessageFile$)) _ OR ((ZUserSecLevel > ZMaxRegSec) AND (NOT ZNewUser)) THEN _ GOTO 832 ZWasZ$ = ZRegProgram$ ZTransferFunction = 3 * ------[ first line different ]------ CALL DoorExit (ZFalse) ' KG032502 ZTransferFunction = 0 GOTO 832 ' ' **** ESC PRESSED ON LOCAL CONSOLE ENTERS HERE *** ' * REPLACING old line(s) by new 1205 IF ZSubParm < 0 THEN _ GOTO 202 ZSubParm = 1 ZStopInterrupts = ZFalse ZNonStop = (ZPageLength < 1) ZWasQ = 0 * ------[ first line different ]------ IF ConfMailJoin OR (ZHomeConf$ <> "" AND ZHomeConf$ <> "MAIN") THEN _ ' TC051701 TurboLogon = (NOT ConfMailJoin) : _ ConfMailJoin = ZFalse : _ ZFF = 8 : _ ZUserIn$(2) = ZHomeConf$ : _ ZHomeConf$ = "" : _ ZWasQ = 1 : _ ZAnsIndex = 1 : _ ZLastIndex = 2 : _ ZStoreParseAt = 1 : _ ZLastCommand$ = "MJ" : _ ' KG021502 GOTO 1240 CALL SkipLine (1) * REPLACING old line(s) by new 1401 ZStackC = ZTrue CALL SubMenu ("Which questionnaire(s), L)ist" + ZPressEnterExpert$, _ * ------[ first line different ]------ WasA1$,ZQuesPath$,".DEF","",ZUserGraphicDefault$,ZTrue,ZFalse,ZTrue,"",WasX) ' KG032502 IF ZWasQ = 0 THEN _ RETURN IF ZSubParm = -1 THEN _ RETURN 10595 QuestHold$ = ZWasZ$ GOSUB 11520 CLOSE 2 CALL UpdtCalr (QuestHold$ + " questionnaire " + _ MID$("answeredaborted",1 - 8 * ZQuestAborted,8),2) IF ReturnToPrompt THEN _ RETURN GOTO 1401 ' ' ***** Toggle COMMAND (UTILITIES) **** ' * REPLACING old line(s) by new 1900 GOSUB 5344 IF ZPrivateDoor THEN _ ActionFlag = ZTrue ZPrevBase$ = ZActiveMessageFile$ ShowActive = ZFalse IF NOT ActionFlag THEN _ CALL QuickTPut ("Checking messages in " + ConfFileName$,0) : _ ShowActive = ZTrue _ ELSE CALL QuickTPut ("Loading messages",0) * ------[ first line different ]------ WasA1$ = "" ' KG030801 MsgCt = 0 ' KG030203 MsgsFromUser = ZFalse ActiveMessages = 0 MailReported = ActionFlag FirstOld = ZTrue GOSUB 23000 MsgRec = FirstMsgRecord MaxMsgs = VAL(MID$(ZMsgRec$,89,7)) IF MaxMsgs > WasMM THEN _ MaxMsgs = WasMM REDIM ZMsgPtr(MaxMsgs,2) NumDots = 0 * REPLACING old line(s) by new 1925 ZWasA = VAL(MID$(ZMsgRec$,2,4)) IF LogonMailNew THEN _ IF ZWasA <= ZLastMsgRead THEN _ GOTO 1935 IF NOT ShowActive THEN _ GOTO 1930 MailReported = ZTrue FirstNew = (ZWasA > ZLastMsgRead) IF FirstNew THEN _ * ------[ first line different ]------ MsgCt = 0 : _ ' KG030203 CALL SkipLine (1) : _ CALL QuickTPut1 ("NEW Mail for YOU (* = Private)") _ ELSE IF FirstOld THEN _ CALL SkipLine (1) : _ CALL QuickTPut1 ("OLD Mail for YOU (* = Private)") : _ FirstOld = ZFalse ShowActive = NOT FirstNew * REPLACING old line(s) by new 1930 CALL QuickTPut (LEFT$(ZMsgRec$,5),0) * ------[ first line different ]------ MsgCt = MsgCt + 1 ' KG030203 IF MsgCt MOD 15 = 0 THEN _ ' KG030203 CALL SkipLine (1) : _ ' KG030203 CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) ' KG030203 * REPLACING old line(s) by new 1940 IF MsgsFromUser < ZMsgDim THEN _ MsgsFromUser = MsgsFromUser + 1 : _ * ------[ first line different ]------ WasA1$ = WasA1$ + LEFT$(ZMsgRec$,5) ' KG030801 * REPLACING old line(s) by new 1960 WasK = 1 * ------[ first line different ]------ FOR MsgCt = 1 TO MsgsFromUser ' KG030203 ZOutTxt$ = MID$(WasA1$,WasK,5) ' KG030801 WasK = WasK + 5 GOSUB 12978 IF MsgCt MOD 15 = 0 THEN _ ' KG030203 CALL SkipLine (1) : _ ' KG030203 CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) ' KG030203 NEXT WasA1$ = "" ' KG030801 CALL SkipLine (1) CALL QuickTPut1 ("Please K)ill old/unneeded msgs") * REPLACING old line(s) by new 2000 QuotedReply = ZFalse MsgFrom$ = ZActiveUserName$ * ------[ first line different ]------ SysopMsg = ZFalse ' MB051601 * REPLACING old line(s) by new 4330 QuickScanMsgs = ZFalse ReadMsgs = ZTrue HiLiteRec = -1 ScanMsgs = ZFalse MsgStart = 6 MsgEnd = 100 IF ZLocalUserMode OR NOT ZLocalUser THEN _ IF ReadMsgIn$ <> ZActiveMessageFile$ THEN _ ReadMsgIn$ = ZActiveMessageFile$ : _ CALL UpdtCalr ("Read Messages in " + ReadMsgIn$,1) GOSUB 1300 * ------[ first line different ]------ GOTO 4350 ' KG022701 ' ' **** S - COMMAND FROM MAIN MENU (SCAN MESSAGE HEADERS) *** ' * DELETING old line(s) 4338 * REPLACING old line(s) by new 4360 ZWasLG$(11) = ZWasZ$ NumMsgsSelected = ZLastIndex * ------[ first line different ]------ MsgIndex = ZAnsIndex ' KG022701 ZLastIndex = 0 ToRequested = ZFalse FromRequested = ZFalse IF ZPageLength < 1 THEN _ ZNonStop = ZTrue * REPLACING old line(s) by new 4370 MsgIndex = MsgIndex + 1 ' KG022701 * REPLACING old line(s) by new * ------[ first line different ]------ 4371 IF MsgIndex <= NumMsgsSelected THEN _ ' KG022701 IF LEN(ZUserIn$(ZAnsIndex)) = 1 AND _ INSTR("Cc",ZUserIn$(MsgIndex)) > 0 THEN _ ' KG022701 GOTO 4370 _ ELSE _ CALL CheckInt (ZUserIn$(MsgIndex)) : _ ' KG022701 IF ZErrCode <> 0 THEN _ ZWasEL = 4371 : _ GOTO 13000 _ ELSE CurMsg = ZTestedIntValue : _ ZAnsIndex = MsgIndex : _ ' KG022701 GOTO 4415 * REPLACING old line(s) by new * ------[ first line different ]------ 4400 GOSUB 12932 ' KG022701 IF ZWasQ = 0 THEN _ RETURN * REPLACING old line(s) by new * ------[ first line different ]------ 4402 IF LEN(ZUserIn$(ZAnsIndex)) = 1 THEN _ ' KG022701 IF INSTR("Qq",ZUserIn$) THEN _ RETURN _ ELSE IF INSTR("Hh",LEFT$(ZUserIn$(ZAnsIndex),1)) THEN _ ' KG022701 ZFileName$ = ZHelpPath$ + "MR" + ZHelpExtension$ : _ GOSUB 1790 : _ GOTO 4390 MsgIndex = 0 ' KG022701 NumMsgsSelected = ZWasQ GOTO 4370 * REPLACING old line(s) by new 4416 IF INSTR("Mm",ZUserIn$(ZAnsIndex)) THEN _ AddressedToUser = ZTrue : _ GOTO 4370 ZWasA = INSTR("FfTt",ZUserIn$(ZAnsIndex)) IF ZWasA > 0 THEN _ ToRequested = (ZWasA > 2) : _ FromRequested = (ZWasA < 3) : _ GOTO 4370 IF CurMsg = 0 THEN _ IF SearchHeader$ <> "" THEN _ GOTO 4370 _ * ------[ first line different ]------ ELSE SearchString$ = ZUserIn$(ZAnsIndex) : _ ' KG022701 CALL AllCaps (SearchString$) : _ CALL Remove (SearchString$,CHR$(34) + CHR$(39)) : _ SearchHeader$ = SearchString$ : _ SubInHeader$ = SearchHeader$ : _ GOTO 4370 CALL SkipLine (1) * REPLACING old line(s) by new 4600 IF ScanMsgs THEN _ GOSUB 8020 : _ GOTO 4630 IF NOT JustSearching THEN _ GOSUB 8000 : _ IF QuotedReply THEN _ QuotedReply = ZFalse : _ GOTO 4610 IF ZRet THEN _ GOTO 4630 CanChangeSec = (ZUserSecLevel => ZSecChangeMsg) * ------[ first line different ]------ WasI = - ((ZUserSecLevel >= ZOptSec(9)) AND (UserInHeader OR CanKill)) ' KG051702 IF ZExpertUser THEN _ WasA1$ = ",R,T,=,+,-" + _ MID$(",F",1,- (UserInHeader OR CanChangeSec) * 2) + _ MID$(",K",1,WasI * 2) + _ ' KG051702 MID$(",U",1,- (ZUserSecLevel >= ZOptSec(54)) * 2) + _ MID$(",S",1, - CanChangeSec * 2) _ ELSE WasA1$ = ",R)eply,T)hread,=)again,+,-" + _ MID$(",F)wd",1, - (UserInHeader OR CanChangeSec) * 5) + _ MID$(",K)ill",1, WasI * 6) + _ ' KG051702 MID$(",U)ser",1,- (ZUserSecLevel >= ZOptSec(54)) * 6) + _ MID$(",S)ec",1, - CanChangeSec * 5) ZTurboKey = -ZTurboKeyUser IF JustSearching OR NOT JustReplied THEN _ GOTO 4610 JustReplied = ZFalse CALL AskMore (WasA1$,ZTrue,ZFalse,ZAnsIndex,ZFalse) CALL SkipLine (1) IF ZNo THEN _ RETURN CALL AllCaps (ZUserIn$) ZReply = (ZReply OR ZUserIn$ = "R") IF ZUserIn$ <> "=" THEN _ GOTO 4618 CALL SkipLine (1) * REPLACING old line(s) by new 5301 ZStackC = ZTrue CALL SubMenu ("What conference, L)ist, M)ain ([ENTER] quits)",_ WasA1$,MsgDrvPath$,_ * ------[ first line different ]------ "M.DEF","M",ZUserGraphicDefault$,ZTrue,ZFalse,ZFalse,"C.DEF",WasX) ' KG032502 IF ZWasQ = 0 THEN _ RETURN IF ZSubParm = -1 THEN _ RETURN 10595 * REPLACING old line(s) by new 8040 IF LEN(MsgTo$) < 23 THEN _ MsgTo$ = MsgTo$ + _ SPACE$(23 - LEN(MsgTo$)) Subject$ = MID$(ZMsgRec$,76,25) CALL Trim (Subject$) * ------[ first line different ]------ CALL AllCaps (Subject$) ' KG051501 OrigSubject$ = Subject$ IF ZPswdFailed THEN _ Subject$ = WasSJ$ * REPLACING old line(s) by new 9085 IF LEFT$(ZOutTxt$,1) = ZStartOfHeader$ OR _ LEFT$(ZOutTxt$,LEN(ZScreenOutMsg$)) = ZScreenOutMsg$ THEN _ GOTO 9050 ZOutTxt$(ZLinesInMsg) = ZOutTxt$ IF Bracketed THEN _ Bracketed = ZFalse : _ HiLitedLine = ZLinesInMsg ZLinesInMsg = ZLinesInMsg + 1 IF ZLinesInMsg > MsgDimXtra THEN _ ZLinesInMsg = ZLinesInMsg - 1 : _ CALL SkipLine (1) : _ CALL QuickTPut1 ("Message too long. Truncated to " + STR$(MsgDimXtra) + " lines!") : _ ZOutTxt$ = "" : _ RETURN * ------[ first line different ]------ IF NOT DontPrint THEN _ ' KG030201 GOSUB 12979 : _ ' KG030201 IF ZRet THEN _ ZOutTxt$ = "" : _ RETURN _ ' KG030201 ELSE CALL AskMore ("",ZTrue,ZTrue,ZAnsIndex,ZFalse) : _ ' KG030201 IF ZNo THEN _ ' KG030201 DontPrint = ZTrue ' KG030201 GOTO 9050 * REPLACING old line(s) by new 9701 CALL SubMenu ("Read what bulletin(s), L)ist, S)ince, N)ews ([ENTER] = none)",_ WasA1$, ZBulletinPrefix$,"",ReturnOn$,_ * ------[ first line different ]------ ZUserGraphicDefault$,ZFalse,ZFalse,ZFalse,"",WasX) ' KG032502 IF ZWasQ = 0 THEN _ RETURN CALL CheckCarrier IF ZSubParm = -1 THEN _ RETURN 10595 IF (ZWasZ$ = "*" OR ZWasZ$ = "S") THEN _ ZPrevPrefix$ = "" : _ GOTO 9760 ZStopInterrupts = ZFalse IF ZWasZ$ = "N" THEN _ GOSUB 1242 : _ IF WasZ <> 0 THEN _ CALL QuickTPut1 ("No NEWS available") : _ GOTO 9701 _ ELSE GOTO 9703 CALL BufFile (ZFileName$,ZAnsIndex) * REPLACING old line(s) by new 10974 WasA1$ = ZMenu$(5) CALL Talk (5,ZOutTxt$) ZStackC = ZTrue CALL SubMenu ("Open which door, L)ist" + ZPressEnterExpert$, _ WasA1$,"",".BAT","",_ * ------[ first line different ]------ ZUserGraphicDefault$,ZTrue,ZFalse,ZFalse,"",InMenu) ' KG032502 IF ZWasQ = 0 THEN _ RETURN IF ZSubParm = -1 THEN _ RETURN 10595 * REPLACING old line(s) by new 10986 ZWasZ$ = ZFileName$ * ------[ first line different ]------ CALL DoorExit (NOT InMenu) ' KG032502 GOTO 10974 ' KG032502 ' ' * 5 - COMMAND FROM SYSOP MENU (USER FILE MAINTENANCE) ' * REPLACING old line(s) by new 13555 ZActiveMessageFile$ = ZOrigMsgFile$ GOSUB 12986 GOSUB 5344 GET 1,ZNodeRecIndex MID$(ZMsgRec$,57,1) = "I" MID$(ZMsgRec$,40,2) = " 0" MID$(ZMsgRec$,72,2) = " 0" * ------[ first line different ]------ IF MID$(ZMsgRec$,101,2) = ZCarriageReturn$+ZCarriageReturn$ THEN _ ' KG030602 MID$(ZMsgRec$,101,2) = " 0" ' KG030602 PUT 1,ZNodeRecIndex GOSUB 12985 CLOSE 1,2,4,5 IF NOT ZFossil THEN _ CLOSE 3 IF ZRecycleToDos THEN _ GOTO 203 RUN 100