home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
BBS_UTIL
/
BM0406_A.ZIP
/
0406.ZIP
/
RSB30406.MRG
< prev
next >
Wrap
Text File
|
1994-04-06
|
130KB
|
2,608 lines
* ------------[ BLED merge (c) Ken Goosens ]-------------
* Merge this against RBBSSUB3.BAS to produce RBBSSUB3.BAS
* RBBSSUB3.BAS: Date 6-20-1992 Size 129071 bytes
* BusiMod (tm) mods for RBBS v17.4 - (c) 1993,94 by respective authors
* RBBS v17.4 (c) 1986,1992 by D Thomas Mack
* ------------[ Created 04-06-1994 22:00:00 ]------------
* REPLACING old line(s) by new
20310 ' $SUBTITLE: 'TestUser - interrogate user for AUTO-Downloading support'
' $PAGE
'
' NAME -- TestUser
'
' INPUTS -- NONE
'
' OUTPUTS -- ZAutoDownYes -1 IF USER'S COMMUNICATION
' SOFTWARE CAN DO AUTODOWNLOADING
'
' ZAutoDownVerified TRUE IF COMMUNICATIONS PGM
' EVER CHECKED
'
' PURPOSE -- Send the user an <ESCAPE><XON> and if response
' is a recognized package, set appropriate flag.
'
* ------[ first line different ]------
SUB TestUser ' RM11159302
'
'
' * TEST FOR COMMUNICATIONS USING WasN,8,1 Protocol AND EXECPC Talk VER 2.0+
' * TO SEE IF CALLER CAN USE THE AUTODOWNLOAD FEATURE
'
'
ZAbort = ZFalse
ZAutoDownVerified = ZTrue
CALL FlushCom(ZWasY$) ' FLUSH THE COMM BUFFER
IF ZSubParm = -1 THEN _
EXIT SUB
CALL PutCom (ZEscape$ + ZXOn$)
IF ZAbort = ZTrue THEN _
GOTO 20315
CALL DelayTime (2) ' WAIT TWO SECONDS FOR Reply
* REPLACING old line(s) by new
20705 ' $SUBTITLE: 'UpdtUpload -- Updates upload directory'
' $PAGE
' NAME -- UpdtUpload
'
' INPUTS -- PARAMETER MEANING
* ------[ first line different ]------
' WasFF 1 - get description ' BTCH174
' 2 - test file and update directory ' BTCH174
' 3 - update directory with extended description ' BTCH174
' ZFileName$
' ZUpldDir$
' ZFileNameHold$
' ZShareIt
' ZFMSDirectory$
' ZWasQ!
' ZSecsUsedSession!
'
' OUTPUTS -- ZBytesInFile#
' ZSecsPerSession!
'
' PURPOSE -- Upon a successful upload, add entry to the upload
' directory and give any session time credit.
'
SUB UpdtUpload (ZCategoryName$(1),ZCategoryCode$(1), LinesInDesc,WasFF) STATIC ' BTCH174
ON WasFF GOTO 20710,20707,20706
* INSERTING new line(s)
20706 GOTO 20723 ' RM02289401
20707 GOSUB 20734 ' BTCH174
IF ZHighSpeedTransfer OR ZWasBatchTransfer THEN _ ' BTCH174/RM111301
GOSUB 20738 ' BTCH174
IF NOT ZAlreadyGiven AND NOT ZHighSpeedTransfer AND NOT ZWasBatchTransfer THEN ' BTCH174/RM111301
CALL TimeRemain (MinsRemaining)
IF ZPrivateDoor THEN _
WasX! = ZUpldTimeFactor! * ZWasQ! _
ELSE WasX! = ZUpldTimeFactor! * (ZSecsUsedSession! - ZWasQ!)
END IF ' BTCH174
IF ZAbort = ZTrue THEN _ ' BTCH174
EXIT SUB ' BTCH174
CALL BreakFileName (ZFileName$,Pre$,Body$,Ext$,ZFalse)
WasX$ = ZDiskForDos$ + "TEST.BAT" ' ADPARAMS/RM112401
CALL Graphic (WasX$) ' CT174/RM032401
IF NOT ZOK THEN _
GOTO 20708
CALL SkipLine (1) ' BTCH174
CALL QuickTPut1 (ZFG5$ + "Testing " + ZFileNameHold$ + " Please Wait..." + ZEmphasizeOff$) ' BTCH174/RM101601
CALL ReadDir (2,1)
ZGSRAra$(2) = ZNodeWorkDrvPath$ + "VCHK" + ZNodeFileID$
IF EOF(2) THEN _
WasX$ = ZOutTxt$ : _
ZGSRAra$(1) = ZFileName$ _
ELSE _ ' BTCH174/RM111701
WasX$ = WasX$ + " " + ZFileName$ + " " + ZGSRAra$(2) + _ ' BTCH174/RM111701
" " + ZComPort$ + " " + Ext$ ' BTCH174/RM111701/ADPARAMS/RM112402/RM04069401
IF ZWasBatchTransfer OR ZHighSpeedTransfer THEN _ ' BTCH174/RM111601
CALL TimeBack (1) ' BTCH174/RM111601
CALL ShellExit (WasX$)
CALL FindIt (ZGSRAra$(2))
IF ZOK THEN _
IF LOF(2) > 2 THEN _
ZBytesInFile# = 0.0 : _
WasX$ = "Deleting BAD upload " + ZFileNameHold$ : _
CALL QuickTPut1 (WasX$) : _
CALL UpdtCalr (WasX$,2) : _
CALL KillWork (ZFileName$) : _
ZGetExtDesc = ZFalse : _ ' BTCH174/RM111502
CLOSE 2 : _ ' BTCH174/RM120602
CALL KillWork (ZGSRAra$(2)) : _ ' BTCH174/RM120602
EXIT SUB
IF ZWasBatchTransfer OR ZHighSpeedTransfer THEN _ ' BTCH174/RM111601
CALL TimeBack (2) ' BTCH174/RM111601
* REPLACING old line(s) by new
20708 WasX$ = ZDiskForDos$ + "C" + Ext$ + ZDefaultExtension$ + ".BAT"
CALL FindIt (WasX$)
IF NOT ZOK THEN _
* ------[ first line different ]------
IF ZGetDescAfterTransfer THEN _ ' RM02289401
GOTO 20740 _ ' RM02289401
ELSE _ ' RM02289401
GOTO 20712 ' BTCH174
ZOutTxt$ = "Converting"
IF Ext$ = ZDefaultExtension$ THEN _
ZOutTxt$ = "Re-" + ZOutTxt$
CALL QuickTPut1 (ZOutTxt$ + " upload to "+ZDefaultExtension$+". Please wait...")
CALL ReadDir (2,1)
IF EOF(2) THEN _
WasX$ = ZOutTxt$
ZGSRAra$(1) = ZFileName$
CALL BreakFileName (ZFileName$,Pre$,Body$,Ext$,ZTrue)
ZFileNameHold$ = Body$ + "." + ZDefaultExtension$
ZUserIn$(0) = ZFileName$
ZFileName$ = Pre$ + ZFileNameHold$
CALL ShellExit (WasX$ + " " + Body$ + " " + ZNodeID$)
CALL FindIt (ZFileName$)
IF NOT ZOK THEN _
ZFileName$ = ZGSRAra$(1) : _
CALL FindIt (ZFileName$) : _
ZFileNameHold$ = Body$ + Ext$ : _
IF ZOK THEN _
ZFileName$ = ZFileNameHold$ ' BTCH174
IF ZGetDescAfterTransfer THEN _ ' RM02289401
GOTO 20740 ' RM02289401
GOTO 20712 ' BTCH174
* DELETING old line(s)
20709
* REPLACING old line(s) by new
* ------[ first line different ]------
20710 ZAlreadyGiven = ZFalse ' BTCH174
ZAbort = ZFalse ' BTCH174
UsingDIZ = ZFalse ' RM03209401
CALL QuickTPut1 (ZFG6$ + "Describe " + ZFG7$ + ZFileNameHold$ + ZEmphasizeOff$) ' BTCH174
ZOutTxt$ = ZFG6$ + "(Begin with '" + ZFG7$ + "/" + ZFG6$ + "' if for SysOp only)." ' BTCH174/RM112401/RM022401
IF NOT ZFoundExtra AND NOT ZGetDescAfterTransfer THEN _ ' BTCH174/RM112401/RM03079401
ZOutTxt$ = ZOutTxt$ + " Enter" + ZFG7$ + " ABORT " + ZFG6$ + _
"to cancel." + ZEmphasizeOff$ ' BTCH174/RM112401
CALL QuickTPut1 (ZOutTxt$) ' BTCH174/RM112401
CALL QuickTPut1 (ZFG7$ + LEFT$(" Min ", _ ' BTCH174/RM022401
ZMaxDescLen) + "Max" + ZEmphasizeOff$) ' BTCH174/RM022401
CALL QuickTPut1 (ZFG5$ + LEFT$(" |----+---1+0---+---2+0---+---3+0---+---4+0---+----|", _ ' BTCH174/RM022401
ZMaxDescLen) + "-|" + ZEmphasizeOff$) ' BTCH174/RM022401
CALL QuickTPut (ZFG7$ + "? " + ZEmphasizeOff$,0) ' BTCH174
ZOutTxt$ = ""
ZSubParm = 1
ZParseOff = ZTrue
CALL TGet
CALL Carrier
IF ZSubParm = -1 THEN _
ZDesc$ = " >>> Description Unavailable <<< " : _ ' RM082901
ZUCat$ = "***" : _ ' BTCH174/RM082901/RM111001
ZWhoTo$ = "SYSOP" : _ ' BTCH174/RM111001
GOTO 20722 ' RM082901
TempUserIn$ = ZUserIn$ ' BTCH174
CALL AllCaps (TempUserIn$) ' BTCH174
IF TempUserIn$ = "ABORT" THEN _ ' BTCH174
IF ZGetDescAfterTransfer THEN _ ' RM02289401
GOTO 20710 _ ' RM02289401
ELSE _ ' RM02289401
ZAbort = ZTrue : _ ' BTCH174
TempUserIn$ = "" : _ ' BTCH174
EXIT SUB ' BTCH174
IF LEFT$(TempUserIn$,10) = " " THEN _ ' BTCH174/RM071193
CALL SkipLine(1) : _ ' BTCH174/RM071193
CALL QuickTPut1 (ZFG5$ + "Blank Spaces " + ZFG7$ + _ ' BTCH174/RM071193
"ARE NOT" + ZFG5$ + " a Description!" + _ ' BTCH174/RM071193
ZEmphasizeOff$) : _ ' BTCH174/RM071193
CALL SkipLine (1) : _ ' BTCH174/RM071193
GOTO 20710 ' BTCH174/RM071193
IF LEN(ZUserIn$) > ZMaxDescLen OR LEN(ZUserIn$) < 10 THEN _
CALL Skipline (1) : _ ' BTCH174/RM112401
CALL QuickTPut1 (ZFG7$ + "10" + ZFG6$ + " chars min," + _
ZFG7$ + STR$(ZMaxDescLen) + ZFG6$ + " max") : _' BTCH174/RM112401
CALL SkipLine (1) : _ ' BTCH174/RM112401
GOTO 20710
GOTO 20713 ' BTCH174
* REPLACING old line(s) by new
* ------[ first line different ]------
20712 ZOK = 0 ' BTCH174
CALL CheckNovell (ZOK)
IF ZOK <> -1 THEN _
CALL SetSharedAttr (ZFileName$, ZOK) : _
IF ZOK <> 0 THEN _
CALL PScrn ("Error setting to shared")
UsingDIZ = ZFalse ' RM02289401
DIZTemp$ = ZNodeWorkDrvPath$ + "NODE" + ZNodeID$ + "DIZ" ' BTCH174/RM102501
IF ZWhoTo$ = "ALL" THEN ' BTCH174/RM102701
CALL FindItX (DIZTemp$,7) ' BTCH174/RM102501
IF ZOK THEN ' BTCH174/RM102501
UsingDIZ = ZTrue ' RM02289401
ZGetExtDesc = ZTrue ' BTCH174/RM102501
IF LEFT$(ZDesc$,1) <> "/" AND LEFT$(ZDesc$,1) <> "\" THEN ' BTCH174/RM102901
LINE INPUT #7,Temp$ ' RM02239401
CALL RemNonAlf (Temp$,31,126) ' RM03319401
DO WHILE LEN(Temp$) < ZMaxDescLen AND NOT EOF(7) ' RM03319401
LINE INPUT #7,ZOutTxt$(1) ' RM02239401
Temp$ = Temp$ + " " + ZOutTxt$(1) ' RM02239401
CALL RemNonAlf (Temp$,31,126) ' RM03319401
LOOP ' RM03319401
IF LEN(Temp$) > ZMaxDescLen THEN ' RM02239401
IF MID$(Temp$,ZMaxDescLen + 1,1) <> " " THEN ' RM02239401
ZDesc$ = MID$(Temp$,1,ZMaxDescLen) ' RM02239401
FOR X = ZMaxDescLen TO 1 STEP - 1 ' RM02239401
IF MID$(ZDesc$,X,1) <> " " THEN _ ' RM02239401
ZDesc$ = MID$(ZDesc$,1,X - 1) _ ' RM02239401
ELSE _ ' RM02239401
X = 1 ' RM02239401
NEXT ' RM02239401
ELSE ' RM02239401
ZDesc$ = MID$(Temp$,1,ZMaxDescLen) ' RM02239401
END IF ' RM02239401
IF LEN(ZDesc$) < 2 THEN _ ' RM02239401
ZDesc$ = MID$(Temp$,1,ZMaxDescLen) ' RM02239401
ELSE ' RM02239401
ZDesc$ = Temp$ ' RM02239401
END IF ' RM02239401
END IF ' RM02239401
WasLL = ZRightMargin ' BTCH174/RM102501
ZRightMargin = 30 + ZMaxDescLen ' BTCH174/RM102501
IF ZRightMargin > 74 THEN _ ' BTCH174/RM102501
ZRightMargin = 74 ' BTCH174/RM102501
LinesInDesc = 0 ' BTCH174/RM102501
WHILE NOT EOF(7) AND LinesInDesc < ZMaxExtendedLines ' BTCH174/RM102501/RM102901/RM02249401
LinesInDesc = LinesInDesc + 1 ' BTCH174/RM102501
LINE INPUT #7,ZOutTxt$(LinesInDesc) ' BTCH174/RM102501
IF LinesInDesc = 1 THEN _ ' RM02239401
IF LEN(Temp$) > ZMaxDescLen THEN _ ' RM02239401
ZOutTxt$(LinesInDesc) = MID$(Temp$,LEN(ZDesc$) + 1) + " " + _
ZOutTxt$(LinesInDesc) ' RM02239401
Temp$ = ZOutTxt$(LinesInDesc) ' BTCH174/RM022301
I = 1 ' BTCH174/RM022301
L = LEN(Temp$) ' BTCH174/RM022301
WHILE I <= L ' BTCH174/RM022301
C$ = MID$(Temp$,I,1) ' BTCH174/RM022301
IF ASC(C$) = 32 THEN ' BTCH174/RM022301
IF I = 1 THEN _ ' BTCH174/RM022301
Temp$ = MID$(Temp$,2,L - 1) : _ ' BTCH174/RM022301
L = L - 1 : _ ' BTCH174/RM022301
I = I - 1 _ ' BTCH174/RM022301
ELSE _ ' BTCH174/RM022301
IF I = L THEN _ ' BTCH174/RM022301
Temp$ = MID$(Temp$,1,L - 1) _ ' BTCH174/RM022301
ELSE _ ' BTCH174/RM022301
IF ASC(MID$(Temp$,I + 1,1)) < 33 OR _
ASC(MID$(Temp$,I + 1,1)) > 125 THEN _ ' BTCH174/RM022301
Temp$ = MID$(Temp$,1,I - 1) + MID$(Temp$,I + 1,L - I) : _ ' BTCH174/RM022301
L = L - 1 : _ ' BTCH174/RM022301
I = I - 1 ' BTCH174/RM022301
ZOutTxt$(LinesInDesc) = Temp$ ' BTCH174/RM022301
ENDIF ' BTCH174/RM022301
IF ASC(C$) < 32 OR ASC(C$) > 125 THEN ' BTCH174/RM022301
IF I = 1 THEN _ ' BTCH174/RM022301
Temp$ = MID$(Temp$,2,L - 1) : _ ' BTCH174/RM022301
L = L - 1 : _ ' BTCH174/RM022301
I = I - 1 _ ' BTCH174/RM022301
ELSE _ ' BTCH174/RM022301
IF I = L THEN _ ' BTCH174/RM022301
Temp$ = MID$(Temp$,1,L - 1) _ ' BTCH174/RM022301
ELSE _ ' BTCH174/RM022301
Temp$ = MID$(Temp$,1,(I - 1)) + MID$(Temp$,(I + 1),(L - I)) : _ ' BTCH174/RM022301
L = L - 1 : _ ' BTCH174/RM022301
I = I - 1 ' BTCH174/RM022301
ZOutTxt$(LinesInDesc) = Temp$ ' BTCH174/RM022301
ENDIF ' BTCH174/RM022301
I = I + 1 ' BTCH174/RM022301
WEND ' BTCH174/RM022301
IF LEN(ZOutTxt$(LinesInDesc)) < 1 THEN _ ' BTCH174/RM022301
LinesInDesc = LinesInDesc - 1 _ ' BTCH174/RM022301
ELSE _ ' BTCH174/RM022301
IF LEN(ZOutTxt$(LinesInDesc - 1)) < (ZRightMargin - 10) AND _
LinesInDesc > 1 THEN _ ' BTCH174/RM110101
ZOutTxt$(LinesInDesc - 1) = ZOutTxt$(LinesInDesc - 1) + _
" " + ZOutTxt$(LinesInDesc) : _ ' BTCH174/RM110101
ZOutTxt$(LinesInDesc) = "" : _ ' BTCH174/RM110101
ZOutTxt$(LinesInDesc + 1) = "" : _ ' BTCH174/RM110101
LinesInDesc = LinesInDesc - 1 ' BTCH174/RM110101
WEND ' BTCH174/RM102501
IF LinesInDesc = 0 AND LEN(ZDesc$) > 0 AND EOF(7) AND _
LEN(Temp$) > ZMaxDescLen AND ZMaxExtendedLines > 0 THEN _ ' RM02239401/RM02249401
LinesInDesc = 1 : _ ' RM02239401
ZOutTxt$(LinesInDesc) = MID$(Temp$,LEN(ZDesc$) + 1) ' RM02239401
CLOSE 7 ' BTCH174/RM102501
CALL WordWrap (ZRightMargin,LinesInDesc,ZOutTxt$()) ' BTCH174/RM102501
CALL KillWork (DIZTemp$) ' BTCH174/RM102501/RM02289401
IF ZGetDescAfterTransfer THEN _ ' RM02289401
RETURN ' RM02289401
CALL QuickTPut1 (ZEmphasizeOn$ + _
"Using Description contained within archive." + _
ZEmphasizeOff$) ' BTCH174/RM103001/RM01099402
GOSUB 20717 ' BTCH174/RM102501
ZGetExtDesc = ZFalse ' BTCH174/RM102501
ZRightMargin = WasLL ' BTCH174/RM102501
GOTO 20726 ' BTCH174/RM102501
END IF ' BTCH174/RM102501
END IF ' BTCH174/RM102501
CALL FindFile (DIZTemp$,ZOK) ' RM02289401
IF ZOK THEN _ ' RM02289401
CALL KillWork (DIZTemp$) ' RM02289401
IF ZGetDescAfterTransfer THEN _ ' RM02289401
RETURN ' RM02289401
IF ZGetExtDesc THEN _ ' BTCH174
EXIT SUB ' BTCH174
GOSUB 20717 ' BTCH174
GOTO 20726 ' BTCH174
* INSERTING new line(s)
20713 ZDesc$ = ZUserIn$ ' BTCH174
IF NOT ZLimitSearchToFMS THEN ' RM02289401
IF ZFMSDirectory$ <> ZUpldDir$ THEN
IF LEFT$(ZUserIn$,1) = "/" OR LEFT$ (ZUserIn$,1) = "\" THEN ' BTCH174
IF ZGetDescAfterTransfer THEN ' RM02289401
GOTO 20722 ' RM02289401
ELSE ' RM02289401
GOSUB 20739 ' BTCH174/RM102901
GOTO 20722 ' BTCH174
END IF ' RM02289401
ELSE
GOTO 20718
END IF
END IF
END IF
* REPLACING old line(s) by new
* ------[ first line different ]------
20715 IF LEFT$(ZUserIn$,1) = "/" OR LEFT$(ZUserIn$,1) = "\" THEN _ ' BTCH174
ZUCat$ = "***" : _ ' BTCH174/RM02289401
IF ZGetDescAfterTransfer THEN _ ' RM02289401
GOTO 20722 _ ' RM02289401
ELSE _ ' RM02289401
GOSUB 20739 : _ ' BTCH174/RM102901
GOTO 20722
ZUCat$ = ZDefaultCatCode$ ' BTCH174
GOTO 20718 ' BTCH174
* REPLACING old line(s) by new
20717 CALL FindItX (ZNodeWorkFile$,7)
* ------[ first line different ]------
ZUserIn$ = ZDesc$ ' BTCH174
WasX$ = DATE$
ZWasZ$ = LEFT$(WasX$,6) + _
RIGHT$(WasX$,2)
NumPersonals = 0
IF NOT ZOK THEN _
GOTO 20723
UserFileIndexSave = ZUserFileIndex
UserRecordHold$ = ZUserRecord$
WHILE NOT EOF(7)
CALL ReadParmsX (7,ZWorkAra$(),2,1)
IF LEFT$(ZWorkAra$(1),4) <> "ALL " AND ZWorkAra$(1) <> "ALL" THEN _
ZWasEN$ = ZPersonalDir$ : _ ' BTCH174/RM102301
NumPersonals = NumPersonals + 1 : _
ZUCat$ = ZWorkAra$(1) : _ ' BTCH174
GOSUB 20737 : _ ' KG082201
GOSUB 20730 : _ ' BTCH174
RcvrRecNum = VAL (ZWorkAra$(2)) : _
CALL SetUserFlag (RcvrRecNum,4096,"file") : _ ' MR062303
ZWasY$ = ZFileNameHold$ + " ^Uploaded^ to " + ZWorkAra$(1) : _ ' MR062303
CALL UpdtCalr(ZWasY$,1) ' MR062303
WEND
CLOSE 7
IF NumPersonals > 0 THEN _
ZUserFileIndex = UserFileIndexSave : _
LSET ZUserRecord$ = UserRecordHold$ : _
NumPersonals = 0 : _ ' BTCH174/RM102301
GOTO 20726 ' BTCH174
GOTO 20723
* REPLACING old line(s) by new
* ------[ first line different ]------
20718 IF NOT ZGetDescAfterTransfer THEN _ ' RM02289401
GOSUB 20739 ' BTCH174/RM102801
IF ZSubParm = -1 OR _ ' BTCH174/RM102801
ZUserSecLevel < ZSLCategorizeUplds THEN _
GOTO 20722
* REPLACING old line(s) by new
* ------[ first line different ]------
20719 IF ZWhoTo$ <> "ALL" THEN _ ' BTCH174/RM102301
GOTO 20722 ' BTCH174/RM102301
TempIndex = ZLastIndex ' BTCH174/RM102301 old 20719
CALL BufFile (ZUpcatHelp$,WasX) ' BTCH174
ZLastIndex = TempIndex ' BTCH174
* REPLACING old line(s) by new
20720 ZOutTxt$= "Upload best fits what category (D=default,H=help)"
ZSubParm = 1
CALL TGet
CALL AraAllCaps (ZUserIn$(),1)
* ------[ first line different ]------
IF ZSubParm = -1 THEN _ ' BTCH174
EXIT SUB ' BTCH174
IF ZUserIn$(1) = "D" THEN _ ' BTCH174
ZUCat$ = ZDefaultCatCode$ : _ ' BTCH174
GOTO 20722
IF ZWasQ = 0 THEN _
GOTO 20719
IF ZUserIn$(1) = "H" OR _
ZUserIn$(1) = "*" OR _
ZUserIn$(1) = "?" THEN _
GOTO 20719
CALL SearchArray (ZUserIn$(1),ZCategoryName$(),ZNumCategories,Found)
IF Found > 0 THEN _
ZUCat$ = ZCategoryCode$(Found) : _ ' BTCH174
IF LEN(ZUCat$) > 0 AND LEN(ZUCat$) < 4 AND INSTR(ZUCat$,",") = 0 THEN _ ' BTCH174
GOTO 20722
ZUCat$ = "" ' BTCH174
IF NOT ZLimitSearchToFMS THEN _
StrewTo$ = ZDirPath$ + _
ZUserIn$(1) + _
"." + _
ZDirExtension$ : _
CALL FindIt (StrewTo$) : _
IF ZOK THEN _
GOTO 20722 _
ELSE CALL WordInFile (ZUpcatHelp$,ZUserIn$(1),ZOK) : _
IF ZOK THEN _
GOTO 20722
StrewTo$ = ""
CALL QuickTPut1 ("No such category " + ZUserIn$(1))
GOTO 20719
* REPLACING old line(s) by new
* ------[ first line different ]------
20722 IF NOT ZGetDescAfterTransfer THEN _ ' RM02289401
IF ZUpBatchTransfer THEN _ ' BTCH174
CALL FileLister (1) : _ ' BTCH174/RM111502
EXIT SUB _ ' BTCH174
ELSE _ ' BTCH174
CALL FileLister (1) ' BTCH174/RM111502
IF ZUserSecLevel >= ZAskExtendedDesc AND ZWhoTo$ = "ALL" AND _ ' BTCH174/RM102701
ZMaxExtendedLines > 0 AND ZSubParm <> -1 AND NOT ZFoundExtra AND _
NOT UsingDIZ THEN ' BTCH174/RM082901/RM02289401/RM02289401
ZOutTxt$ = "Add an extended description of " + _
ZFileNameHold$ + " ([Y],N)"
ZTurboKey = -ZTurboKeyUser
ZSubParm = 1
CALL TGet
IF ZSubParm <> -1 THEN ' RM02289401
IF NOT ZNo THEN ' RM02289401
IF ZGetDescAfterTransfer THEN ' RM02289401
ZGetExtDesc = ZTrue ' RM02289401
ELSE
CALL SkipLine (2) ' BTCH174
CALL QuickTPut1 ( ZFG6$ + " Description will be entered " + _ ' BTCH174
ZFG7$ + "AFTER" + ZFG6$ + " the " + ZFG7$ + "UPLOAD" + ZFG6$ + _ ' BTCH174
" is completed" + ZEmphasizeOff$ + ZCrLF$) ' BTCH174
CALL DelayTime (2) ' BTCH174
ZGetExtDesc = ZTrue ' BTCH174
END IF ' RM02289401
END IF
END IF
END IF
IF ZGetDescAfterTransfer THEN _ ' RM02289401
RETURN _ ' RM02289401
ELSE _ ' RM02289401
EXIT SUB
* REPLACING old line(s) by new
* ------[ first line different ]------
20723 ZUserIn$ = ZDesc$ ' BTCH174
WasX$ = DATE$
ZWasZ$ = LEFT$(WasX$,6) + _
RIGHT$(WasX$,2)
ZWasEN$ = StrewTo$
GOSUB 20730 ' BTCH174
ZWasEN$ = ZAllwaysStrewTo$
GOSUB 20730 ' BTCH174
* INSERTING new line(s)
20725 IF ZPrivateDoor THEN _ ' BTCH174
ZWasEN$ = ZUpldDoor$ _
ELSE ZWasEN$ = ZUpldDir$
GOSUB 20730 ' BTCH174
* REPLACING old line(s) by new
* ------[ first line different ]------
20726 ZWasDF$ = " >> uploaded << " ' BTCH174
CALL AMorPM ' BTCH174/RM101502
CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZTrue) ' BTCH174
ZWasZ$ = WasX$ + Extension$ + ZWasDF$ + " at " + ZTime$ + _ ' BTCH174
" using " + ZWasFT$ + STR$(ZBytesInFile#) ' BTCH174
CALL UpdtCalr (ZWasZ$,2) ' BTCH174
ZUplds = ZUplds + 1
ZGlobalUplds = ZGlobalUplds + 1
ZULBytes! = ZULBytes! + ZBytesInFile#
ZGlobalULBytes! = ZGlobalULBytes! + ZBytesInFile#
CALL Muzak (7)
IF ZHighSpeedTransfer OR ZWasBatchTransfer THEN _ ' BTCH174/RM111301
ZAlreadyGiven = ZFalse ' BTCH174
IF NOT ZAlreadyGiven THEN ' BTCH174
CALL TimeRemain (MinsRemaining)
MinsToAdd = WasX! / 60
CALL ChkAddedTime (MinsToAdd)
WasX! = MinsToAdd * 60!
ZTimeCredits! = ZTimeCredits! + WasX!
ZSecsPerSession! = ZSecsPerSession! + WasX!
IF ZHighSpeedTransfer OR ZWasBatchTransfer THEN _ ' BTCH174/RM111301
WasX! = WasX! / 60.0 : _ ' BTCH174
GOTO 20727 ' BTCH174
IF ZPrivateDoor THEN _
WasX! = (WasX! - ZWasQ!) / 60 _
ELSE WasX! = (WasX! - ZSecsUsedSession! + ZWasQ!)/60.0
* REPLACING old line(s) by new
* ------[ first line different ]------
20727 WasX$ = STR$(FIX(WasX!*10.0)) ' BTCH174
WasX$ = LEFT$(WasX$,LEN(WasX$)-1) + "." + RIGHT$(WasX$,1)
IF WasX! > 1 THEN _
IF ZHighSpeedTransfer THEN _ ' BTCH174
CALL QuickTPut1 (ZFG6$ + "Upload Time Credit of " + WasX$ + _ ' BTCH174
" minutes returned." + ZEmphasizeOff$) _ ' BTCH174
ELSE _
CALL QuickTPut1 (ZFG6$ + "Increased session time by" + ZFG7$ + _
WasX$ + ZFG6$ + " minutes" + ZEmphasizeOff$) ' RM061001
ZAlreadyGiven = ZTrue ' BTCH174
END IF ' BTCH174
CALL QuickTPut1 (ZFG8$ + "Thanks for the upload!" + ZEmphasizeOff$) ' RM061001
ZMenuNewUpld = ZMenuNewUpld + 1 ' MENU174
ZGetExtDesc = ZFalse
ZPrivateDoor = ZFalse
EXIT SUB
* DELETING old line(s)
20728
20729
* INSERTING new line(s)
20730 ' ---[ lock file ]--- ' BTCH174
IF ZWasEN$ = "" THEN _
RETURN
FMSFormat = ZFalse
IF (ZWasEN$ = ZFMSDirectory$ OR ZLimitSearchToFMS _
OR NumPersonals > 0 OR (ZPrivateDoor AND ZFMSDoor)) THEN _
FMSFormat = ZTrue _
ELSE CALL FindIt (ZWasEN$) : _
IF ZOK THEN _
CALL ReadDir (2,1) : _
IF ZErrCode = 0 THEN _
FMSFormat = (LEFT$(ZOutTxt$,4) = "\FMS")
IF NOT FMSFormat THEN _
ReadBackwards = ZFalse : _
FixedLen = 0 : _
ZUserIn$ = ZDesc$ : _ ' BTCH174
GOTO 20731 ' BTCH174
FixedLen = 34 + ZMaxDescLen
IF NumPersonals > 0 THEN _
WasX$ = "*" : _
MaxLen = ZPersonalLen _
ELSE MaxLen = 3 : _
WasX$ = ""
ZUCat$ = LEFT$(ZUCat$,MaxLen) ' BTCH174
ZUCat$ = ZUCat$ + SPACE$(MaxLen - LEN(ZUCat$)) ' BTCH174
ZUserIn$ = ZDesc$ + _ ' BTCH174
SPACE$(ZMaxDescLen - LEN(ZDesc$)) + _ ' BTCH174
ZUCat$ + WasX$ ' BTCH174
ReadBackwards = ZTrue
CALL FindIt (ZWasEN$)
IF ZOK THEN _
CALL ReadDir (2,1) : _
IF ZErrCode = 0 THEN _
ReadBackwards = (INSTR(ZOutTxt$," TOP ") = 0)
* REPLACING old line(s) by new
* ------[ first line different ]------
20731 CALL LockAppend ' BTCH174
IF ZErrCode <> 0 THEN _
GOTO 20732 ' BTCH174
' ---[ append ]---
IF (ZWasEN$ <> ZPersonalDir$) AND _ ' CM03129401
(ZNoWUW <> ZTrue) THEN _ ' CM03129401
IF ReadBackwards THEN _ ' BTCH174
PRINT #2, using LEFT$("\ " _ ' BTCH174
+ " " _ ' BTCH174
+ " ", _ ' BTCH174
ZMaxDescLen + 32) + "\ ."; _ ' BTCH174
" Uploaded by: "+ ZActiveUserName$ ' BTCH174
IF ZGetExtDesc THEN _
IF ReadBackwards THEN _
FOR WasI = LinesInDesc TO 1 STEP -1 : _
GOSUB 20733 : _ ' BTCH174
NEXT
PRINT #2,USING "\ \######## & &"; _
ZFileNameHold$; _
ZBytesInFile#; _
ZWasZ$; _
ZUserIn$
IF ZGetExtDesc THEN _
IF NOT ReadBackwards THEN _
FOR WasI = 1 TO LinesInDesc : _
GOSUB 20733 : _ ' BTCH174
NEXT
IF (ZWasEN$ <> ZPersonalDir$) AND _ ' CM03129401
(ZNoWUW <> ZTrue) THEN _ ' CM03129401
IF NOT ReadBackwards THEN _ ' BTCH174
PRINT #2, using LEFT$("\ " _ ' BTCH174
+ " " _ ' BTCH174
+ " ", _ ' BTCH174
ZMaxDescLen + 32) + "\ ."; _ ' BTCH174
" Uploaded by: "+ ZActiveUserName$ ' BTCH174
* REPLACING old line(s) by new
* ------[ first line different ]------
20732 CALL UnLockAppend ' BTCH174
FixedLen = 0
RETURN
* INSERTING new line(s)
20733 WasX$ = ZOutTxt$(WasI) ' BTCH174
CALL Trim (WasX$)
IF WasX$ = "" THEN _
RETURN
IF NOT FMSFormat THEN _
PRINT #2," ";ZOutTxt$(WasI) : _
RETURN
IF FixedLen > LEN(ZOutTxt$(WasI)) THEN _
WasX$ = SPACE$(FixedLen - 1 - LEN(ZOutTxt$(WasI))) + "." _
ELSE WasX$ = ""
PRINT #2, " ";LEFT$(ZOutTxt$(WasI),FixedLen);WasX$
RETURN
* REPLACING old line(s) by new
20736 IF NOT ZOK THEN _
* ------[ first line different ]------
ZBytesInFile# = 0.0 _
ELSE ZBytesInFile# = LOF(2)
IF ZBytesInFile# < 2.0 THEN _
ZGetExtDesc = ZFalse : _ ' BTCH174/RM111502
CLOSE 2 : _ ' RM02289401
EXIT SUB
CLOSE 2 ' RM02289401
RETURN
* INSERTING new line(s)
20737 CALL CheckInt (ZUCat$) ' KG082201
IF ZTestedIntValue > 0 THEN _ ' KG082201
ZUCat$ = " " + ZUCat$ ' KG082201
RETURN ' KG082201
20738 WasX! = ZBytesInFile# / _ ' BTCH174
(VAL(MID$("00000300045012002400480072009601200144016801920216024002640288038405760", -4 * ZCBPS,4)) * ZSpeedFactor!) ' BTCH174/BB09039301/RM11279301
IF ZHighSpeedTransfer THEN _ ' BTCH174/RM111501
HSFactor = ZUpldTimeFactor! - 1 _ ' BTCH174
ELSE _ ' BTCH174/RM111501
HSFactor = ZUpldTimeFactor! ' BTCH174/RM111501
IF HSFactor < 0 THEN _ ' BTCH174
HSFactor = 0 ' BTCH174
WasX! = FIX(WasX!) * HSFactor ' BTCH174
RETURN ' BTCH174
20739 IF NOT ZWhoToSet THEN ' BTCH174/RM102701
ZWhoTo$ = "" ' BTCH174/RM102701
WasY$ = ZFileName$ ' BTCH174/RM102701
CALL KillWork (ZNodeWorkfile$) ' BTCH174/RM102701
CALL CmdStackPushPop (1) ' BTCH174/RM103001
ZLastIndex = 0 ' BTCH174/RM103001
IF ZUserSecLevel >= ZMinSecPersUpld THEN _ ' BTCH174/RM102701
CALL SetWhoTo (ZTrue,ZWhoTo$,"",RcvrRecNum,Found,ZTrue) _ ' BTCH174/RM102701/KG012502
ELSE _ ' BTCH174/RM102701
ZWhoTo$ = "ALL" ' BTCH174/RM102701
CALL CmdStackPushPop (2) ' BTCH174/RM103001
ZWhoToSet = ZTrue ' BTCH174/RM102701
ZFileName$ = WasY$ ' BTCH174/RM102701
END IF ' BTCH174/RM102701
IF ZWhoTo$ <> "ALL" AND NOT ZAddingDescOnly AND NOT ZGetDescAfterTransfer THEN _ ' RM01219401/RM01289401/RM02049401/RM02289401
ZUpldSubDir$ = ZPersonalDrvPath$ : _ ' RM01219401/RM02049401
CALL BreakFileName (ZFileName$,Pre$,Body$,Ext$,ZTrue) : _ ' RM01219401/RM02049401
ZFileName$ = ZUpldSubDir$ + Body$ + Ext$ ' RM01219401/RM02049401
RETURN ' BTCH174/RM102301
20740 ZWhoToSet = ZFalse ' RM02289401
ZWhoTo$ = "" ' RM02289401
ZGetExtDesc = ZFalse ' RM02289401
GOSUB 20739 ' RM02289401
GOSUB 20712 ' RM02289401
IF UsingDIZ THEN _ ' RM02289401
ZUserIn$ = ZDesc$ : _ ' RM02289401
GOSUB 20713 _ ' RM02289401
ELSE _ ' RM02289401
GOSUB 20710 ' RM02289401
IF ZGetExtDesc AND NOT UsingDIZ THEN ' RM02289401
ZMsgHeader$ = "Extended Description for " + ZFileNameHold$ ' RM02289401
ZSysopComment = ZTrue ' RM02289401
WasLL = ZRightMargin ' RM02289401
ZRightMargin = 30 + ZMaxDescLen ' RM02289401
IF ZRightMargin > 74 THEN _ ' RM02289401
ZRightMargin = 74 ' RM02289401
ZMaxMsgLines = ZMaxExtendedLines ' RM02289401
MParm = 12 ' RM02289401
CALL MsgSys (MParm, ActionFlag, LogOff$, LogonMailNew, UtilMarginChange) ' RM02289401
ZMaxMsgLines = ZMaxMsgLinesDef ' RM02289401
ZRightMargin = WasLL ' RM02289401
GOTO 20723 ' RM02289401
END IF ' RM02289401
IF UsingDIZ THEN _ ' RM02289401
CALL QuickTPut1 (ZEmphasizeOn$ + _
"Using Description contained within archive." + _
ZEmphasizeOff$) : _ ' RM02289401
ZMaxMsgLines = ZMaxMsgLinesDef : _ ' RM02289401
ZRightMargin = WasLL ' RM02289401
GOTO 20717 ' RM02289401
END SUB
* REPLACING old line(s) by new
20741 ' $SUBTITLE: 'BadFile - subroutine to find bad file names'
' $PAGE
'
' NAME -- BadFile
'
' INPUTS -- PARAMETER MEANING
' ZViolation$
' ZViolationsThisSession
' FilName$ NAME OF FILE
'
' OUTPUTS -- Result 1 = FILE NAME IS OK
' 2 = CHARACTER NOT ALLOWED
' 3 = SYSTEM CRASH ATTEMPT
' ZViolationsThisSession NUMBER OF VIOLATIONS
' FilName$ Gets capitalized
'
' PURPOSE -- To protect RBBS-PC against the use of bad file names
' to either crash the system or to breach RBBS-PC's security.
'
SUB BadFile (FilName$,Result) STATIC
'
'
' * TEST FOR INVALID CHARACTERS IN FILENAME
'
'
Result = 2
IF LEN(FilName$) < 1 THEN _
EXIT SUB
CALL BadFileChar (FilName$,ZOK)
IF NOT ZOK THEN _
EXIT SUB
CALL AllCaps (FilName$)
WasXX = INSTR(FilName$,".")
IF WasXX > 0 THEN _
IF WasXX < LEN(FilName$) THEN _
WasXX = INSTR(WasXX + 1,FilName$,".") : _
IF WasXX > 0 THEN _
EXIT SUB
WasXX = LEN(FilName$)
IF WasXX => 3 THEN _
IF INSTR("PRN:CON:AUX:NUL:",FilName$) THEN _
GOTO 20742
IF WasXX => 4 THEN _
* ------[ first line different ]------
IF INSTR("COM1:COM2:COM3:COM4:LPT1:LPT2:LPT3:SCRN:KYBD:CONS:",FilName$) THEN _ ' RM10059301
GOTO 20742
CALL BreakFileName (FilName$,Pre$,Body$,Ext$,ZFalse)
IF LEN(Pre$) > 64 OR LEN(Body$) > 8 OR LEN(Body$) < 1 OR LEN(Ext$) > 3 THEN _
EXIT SUB
WasXX = LEN(Body$)
IF WasXX => 3 THEN _
IF INSTR("PRN:CON:AUX:NUL:",Body$) THEN _
GOTO 20742
IF WasXX => 4 THEN _
IF INSTR("COM1:COM2:COM3:COM4:LPT1:LPT2:LPT3:SCRN:KYBD:CONS:",Body$) THEN _ ' RM10059301
GOTO 20742
Result = 1
EXIT SUB
* REPLACING old line(s) by new
21598 ' $SUBTITLE: 'XferType - sub to identify file xfer protocol'
' $PAGE
'
' NAME -- XferType
'
' INPUTS -- PARAMETER MEANING
' Index = 1 Manual select for up/download
' = 2 Default select
' = 3 Set transfer default
' ZOutTxt$
' ZUserIn$(1)
' ZWasQ
' ZReliableMode
' ZTransferOption$
' ZUserXferDefault$
' ZXferSupport
'
' OUTPUTS -- ZCheckSum
' ZFLen
' ZWasFT$
'
' PURPOSE -- To identify the file transfer protocol (either
' from the user's default or via explicit selection)
'
SUB XferType (Index,SkipHelp) STATIC
* ------[ first line different ]------
IF ZTransferOption$ = "" OR ZUserSecLevel <> PrevUSL OR PrevDef$ <> ZProtoDef$ OR ZHighSpeedTransfer THEN _ ' BTCH174
CALL Protocol : _
PrevDef$ = ZProtoDef$ : _
PrevUSL = ZUserSecLevel
WasX$ = ZOutTxt$ + "Protocol"
ON Index GOTO 21600,21620,21600
'
'
' * MANUAL SELECT OF Transfer Protocol
'
'
* REPLACING old line(s) by new
21623 CALL ReadParms (ZWorkAra$(),13,ZFF)
IF ZErrCode > 0 THEN _
ZFF = LEN(ZDefaultXfer$) : _
ZProtoPrompt$ = "None" : _
GOTO 21625
ZProtoPrompt$ = ZWorkAra$(1)
IF LEN(ZProtoPrompt$) > 2 THEN _
IF MID$(ZProtoPrompt$,2,1) = ")" THEN _
ZProtoPrompt$ = LEFT$(ZProtoPrompt$,1) + MID$(ZProtoPrompt$,3)
WasX = INSTR(ZProtoPrompt$+ZCrLf$,ZCrLf$)
ZProtoPrompt$ = LEFT$(ZProtoPrompt$,WasX-1)
CALL Trim (ZProtoPrompt$)
* ------[ first line different ]------
ZProtoMethod$ = ZWorkAra$(3) ' KG020501
CALL AllCaps (ZProtoMethod$)
ZReq8Bit = (LEFT$(ZWorkAra$(4),1) = "8")
ZDownTemplate$ = ZWorkAra$(12)
ZUpTemplate$ = ZWorkAra$(13)
WasX$ = ZWorkAra$(11)
WasX = INSTR(WasX$,"=")
ZAdvanceProtoWrite = ZFalse
IF WasX < 2 OR WasX >= LEN(WasX$) THEN _
ZFailureParm = 4 : _
ZFailureString$ = "F" _
ELSE ZFailureParm = VAL(LEFT$(WasX$,WasX-1)) : _
ZFailureString$ = MID$(WasX$,WasX+1) : _
WasX = INSTR(ZFailureString$,"=") : _
IF WasX > 0 THEN _
ZAdvanceProtoWrite = (MID$(ZFailureString$,WasX) = "=A") : _
ZFailureString$ = LEFT$(ZFailureString$,WasX-1)
ZProtoMacro$ = ZWorkAra$(10)
ZFakeXRpt = (LEFT$(ZWorkAra$(8),1) = "F")
ZBatchProto = (LEFT$(ZWorkAra$(6),1) = "B")
ZHighSpeedTransfer = (LEFT$(ZWorkAra$(5),1) = "H") ' BTCH174
ZExtFileSysProcessor = (RIGHT$(ZWorkAra$(5),1) = "N") ' RM02269401
IF ZExtFileSysProcessor THEN _ ' RM02269401
ZGetDescAfterTransferSave = ZGetDescAfterTransfer : _ ' RM02269401
ZGetDescAfterTransfer = ZTrue ' RM02269401
ZSpeedFactor! = VAL(ZWorkAra$(9))
IF ZSpeedFactor! < 0.1 THEN _
ZSpeedFactor! = 0.87
ZBlockSize = VAL(ZWorkAra$(7))
ZFLen = ZBlockSize
IF ZFLen < 1 THEN _
ZFLen = 128
* REPLACING old line(s) by new
22000 IF ZMsgFileLock = ZTrue THEN _
RETURN
ZMsgFileLock = ZTrue
MID$(ZLockStatus$,1,2) = "LM"
ZSubParm = 2
CALL Line25
ZLockFileName$ = ZActiveMessageFile$
* ------[ first line different ]------
ON ZNetworkType GOTO 22100,22200,22300,22400,22500,29700,29700 ' RM01109402
RETURN
'
'
' * LOCK MESSAGE FILE (MULTI-LINK)
'
'
* REPLACING old line(s) by new
25000 IF NOT ZMsgFileLock THEN _
RETURN
ZMsgFileLock = ZFalse
MID$(ZLockStatus$,1,2) = "UM"
ZSubParm = 2
CALL Line25
ZLockFileName$ = ZActiveMessageFile$
* ------[ first line different ]------
ON ZNetworkType GOTO 25100,25200,25300,25400,25500,29800,29800 ' RM01109402
RETURN
'
'
' * UNLOCK MESSAGE FILE (MULTI-LINK)
'
'
* REPLACING old line(s) by new
26000 IF ZUserFileLock = ZTrue THEN _
RETURN
ZUserFileLock = ZTrue
MID$(ZLockStatus$,4,2) = "LU"
ZSubParm = 2
CALL Line25
ZLockFileName$ = ZActiveUserFile$
* ------[ first line different ]------
ON ZNetworkType GOTO 26100,26200,22300,26300,22500,29720,29720 ' RM01109402
RETURN
'
'
' * LOCK USER FILE (MULTI-LINK)
'
'
* REPLACING old line(s) by new
26500 IF ZUserBlockLock = ZTrue THEN _
RETURN
ZUserBlockLock = ZTrue
ZBlk = (ZUserFileIndex / 4) + .26
MID$(ZLockStatus$,7,2) = "LB"
ZSubParm = 2
CALL Line25
* ------[ first line different ]------
ON ZNetworkType GOTO 26600,26700,26800,26750,26900,29730,29730 ' RM01109402
RETURN
'
'
' * LOCK 4 RECORD BLOCK IN USER FILE (MULTI-LINK)
'
'
* REPLACING old line(s) by new
27000 IF NOT ZUserFileLock THEN _
RETURN
ZUserFileLock = ZFalse
MID$(ZLockStatus$,4,2) = "UU"
ZSubParm = 2
CALL Line25
ZLockFileName$ = ZActiveUserFile$
* ------[ first line different ]------
ON ZNetworkType GOTO 27100,27200,25300,27300,25500,29820,29820 ' RM01109402
RETURN
'
'
' * UNLOCK USER FILE (MULTI-LINK)
'
'
* REPLACING old line(s) by new
27500 IF NOT ZUserBlockLock THEN _
RETURN
ZUserBlockLock = ZFalse
ZBlk = (ZUserFileIndex / 4) + .26
MID$(ZLockStatus$,7,2) = "UB"
ZSubParm = 2
CALL Line25
* ------[ first line different ]------
ON ZNetworkType GOTO 27600,27700,27800,27750,27900,29830,29830 ' RM01109402
RETURN
'
'
' * UNLOCK 4 RECORD BLOCK IN USER FILE (MULTI-LINK)
'
'
* REPLACING old line(s) by new
29000 IF LockedEn$ = ZWasEN$ THEN _
RETURN
LockedEn$ = ZWasEN$
MID$(ZLockStatus$,10,2) = "LD"
ZSubParm = 2
CALL Line25
ZLockFileName$ = ZWasEN$
* ------[ first line different ]------
ON ZNetworkType GOTO 29100,29010,22300,29300,22500,29710,29710 ' RM01109402
* REPLACING old line(s) by new
29500 IF LockedEn$ <> ZWasEN$ THEN _
RETURN
LockedEn$ = ""
MID$(ZLockStatus$,10,2) = "UD"
ZSubParm = 2
CALL Line25
ZLockFileName$ = ZWasEN$
* ------[ first line different ]------
ON ZNetworkType GOTO 29600,29510,25300,29650,25500,29810,29810 ' RM01109402
* REPLACING old line(s) by new
30000 ' $SUBTITLE: 'InitIBM - sub to create/open NetBIOS semaphore file'
' $PAGE
'
' NAME -- InitIBM (Written by Doug Azzarito)
'
' INPUTS -- NONE
'
' OUTPUTS -- ZSubParm = -1 Abort RBBS
'
' PURPOSE -- Open semaphore file "IBMFLAGS" on default drive as file #6
' Create file if it does not exits.
'
* ------[ first line different ]------
SUB InitIBM ' RM11159302
'
'
' * SEE IF FILE EXISTS
'
'
ZShareIt = ZTrue
CALL BreakFileName (ZMainMsgFile$,IBMFlagFile$,Dummy$,Dummy$,ZTrue)
IBMFlagFile$ = IBMFlagFile$ + _
"IBMFLAGS"
CALL FindIt (IBMFlagFile$)
CLOSE 2
IF ZOK THEN _
GOTO 30020
'
'
' * CREATE A NEW FILE, EACH RECORD IS A SEMAPHORE
'
'
OPEN IBMFlagFile$ ACCESS WRITE AS #6 LEN=2
FIELD 6, 2 AS LockBuf$
LSET LockBuf$ = MKI$(0)
FOR WasI = 1 TO 3
PUT 6
NEXT
CLOSE #6
* REPLACING old line(s) by new
30500 ' $SUBTITLE: 'OpenMsg - open the MESSAGES file'
' $PAGE
'
' NAME -- OpenMsg
'
' INPUTS -- PARAMETER MEANING
' ZActiveMessageFile$
' ZShareIt
'
' OUTPUTS -- ZMsgRec$
'
* ------[ first line different ]------
SUB OpenMsg ' RM11159302
'
'
' * OPEN AND DEFINE MESSAGE FILE
'
'
CLOSE 1
IF ZShareIt THEN _
OPEN ZActiveMessageFile$ ACCESS READ WRITE SHARED AS #1 _
ELSE OPEN "R",1,ZActiveMessageFile$
FIELD 1,128 AS ZMsgRec$
END SUB
* REPLACING old line(s) by new
30600 IF ZKeyboardStack$ = "" THEN _
ZKeyPressed$ = INKEY$ _
ELSE ZKeyPressed$ = ZKeyboardStack$ : _
ZKeyboardStack$ = ""
ZFunctionKey = 0
IF LEN(ZKeyPressed$) <> 2 THEN _
GOTO 33970
ZKeyPressed = ASC(RIGHT$(ZKeyPressed$,1))
IF ZLocalUser AND NOT ZSysop THEN _
ZKeyPressed$ = "" : _
GOTO 33970
IF ZKeyPressed => ZF1Key AND _
ZKeyPressed <= ZF10Key THEN _
ZFunctionKey = ZKeyPressed - 58 : _
GOTO 30610
IF ZKeyPressed = 117 THEN _ 'Ctrl-End
ZFunctionKey = 11
IF ZKeyPressed = 73 THEN _ 'PgUp
ZFunctionKey = 12
IF ZKeyPressed = 72 THEN _ 'up arrow
ZFunctionKey = 13
IF ZKeyPressed = 80 THEN _ 'Down arrow
ZFunctionKey = 14
IF ZKeyPressed = 81 THEN _ 'PgDn
ZFunctionKey = 15
IF ZKeyPressed = 75 THEN _ 'left arrow
ZFunctionKey = 16
IF ZKeyPressed = 77 THEN _ 'Right arrow
ZFunctionKey = 17
IF ZKeyPressed = 141 THEN _ 'CTRL-up arrow
ZFunctionKey = 18
IF ZKeyPressed = 132 THEN _ 'CTRL-PgUp (same as CTRL-UP)
ZFunctionKey = 18
IF ZKeyPressed = 145 THEN _ 'CTRL-down arrow
ZFunctionKey = 19
IF ZKeyPressed = 118 THEN _ 'CTRL-PgDn (same as CTRL-DOWN)
ZFunctionKey = 19
IF ZKeyPressed = 115 THEN _ 'CTRL-left arrow
ZFunctionKey = 20
IF ZKeyPressed = 116 THEN _ 'CTRL-right arrow
ZFunctionKey = 21
IF ZKeyPressed = 79 THEN _ 'End (a nice way to kick user off)
ZFunctionKey = 22
* ------[ first line different ]------
IF ZKeyPressed = 94 THEN _ 'CTRL-F1 (kick off twit - SysOp config) ' RM12159301
ZFunctionKey = 23 ' RM12159301
* REPLACING old line(s) by new
30610 ZKeyPressed$ = ""
* ------[ first line different ]------
IF ZWasCM THEN _ ' CHAT174/RM100101
IF (ZFunctionKey > 0 AND (ZFunctionKey =< 12)) OR _ ' CHAT174
(ZFunctionKey = 15) OR (ZFunctionKey > 17 AND (ZFunctionKey =< 22)) THEN _ ' CHAT174
EXIT SUB ' CHAT174
IF ZFunctionKey < 1 OR ZFunctionKey > 23 THEN _ ' RM12159301
GOTO 33970
IF ZFunctionKey < 10 AND (ZFunctionKey <> 8) THEN _
GOTO 30620
IF ZToggleOnly THEN _
ZSubParm = 1 : _
GOTO 33970
* REPLACING old line(s) by new
30620 ON ZFunctionKey GOTO 31000, _ ' 1 = F1
32000, _ ' 2 = F2
33000, _ ' 3 = F3
33040, _ ' 4 = F4
33060, _ ' 5 = F5
33070, _ ' 6 = F6
33090, _ ' 7 = F7
33110, _ ' 8 = F8
33130, _ ' 9 = F9
33150, _ ' 10 = F10
31398, _ ' 11 = CTRL END
33200, _ ' 12 = PGUP
33170, _ ' 13 = UP ARROW
33180, _ ' 14 = DOWN ARROW
33220, _ ' 15 = PGDN
33240, _ ' 16 = LEFT ARROW
33250, _ ' 17 = RIGHT ARROW
33170, _ ' 18 = CTRL-UP ARROW
33180, _ ' 19 = CTRL-DOWN
33245, _ ' 20 = CTRL-LEFT
33255, _ ' 21 = CTRL-RIGHT
* ------[ first line different ]------
31398, _ ' 22 = END ' RM12159301
31398 ' 23 = CTRL-F1 ' RM12159301
'
'
' * F1 - COMMAND FROM LOCAL KEYBOARD (IMMEDIATE EXIT TO DOS)
'
'
* REPLACING old line(s) by new
* ------[ first line different ]------
31399 IF ZFunctionKey = 22 THEN ' RM12159301
ZFileName$ = ZHelpPath$ + "NEEDSYS.MSG" ' RM031301/RM12159301 - Nice
CALL FindFile (ZFileName$,Found) ' RM12159301
IF Found THEN _ ' RM12159301
GOSUB 31405 : _ ' RM12159301
GOTO 33970 _ ' RM12159301
ELSE _ ' RM12159301
CALL QuickTPut1 ("Sorry, " + ZFirstName$ + ", SysOp needs the system") : _
GOSUB 31410 : _ ' RM12159301
GOTO 33970
ENDIF ' RM12159301
IF ZFunctionKey = 23 THEN ' RM12159301
ZFileName$ = ZHelpPath$ + "TWIT.MSG" ' RM12159301 - Line Noise or whatever
CALL FindFile (ZFileName$,Found) ' RM12159301
IF Found THEN _ ' RM12159301
GOSUB 31405 : _ ' RM12159301
GOTO 33970 _ ' RM12159301
ELSE _ ' RM12159301
CALL QuickTPut1 ("ë !┴ ╟ ├ σ Γ ╓ σ# ⌐σ#^ ╞├┬σ #σ") : _ ' RM12159301
GOSUB 31415 : _ ' RM12159301
GOTO 33970 ' RM12159301
ENDIF ' RM12159301
ZFileName$ = ZHelpPath$ + "KICKOFF.MSG" ' RM12159301 - Nasty
CALL Findfile (ZFileName$,Found) ' RM12159301
IF Found THEN _ ' RM12159301
GOSUB 31405 : _ ' RM12159301
GOTO 33970 ' RM12159301
CALL QuickTPut1 (ZFirstName$ + ", goodbye and don't call back")
CALL DelayTime (8 + ZBPS) : _
IF ZUserFileIndex < 1 THEN _
ZSubParm = -6 : _
GOTO 33970
ZUserSecLevel = ZMinLogonSec - 1
CALL DenyAccess
ZSubParm = -7
GOTO 33970
* INSERTING new line(s)
31405 CALL Graphic (ZFileName$) ' RM031301/RM12159301
ZNonStop = ZTrue ' RM031301
CALL BufFile (ZFileName$, ZWasX) ' RM031301
31410 CALL DelayTime (8 + ZBPS)
31415 CALL UpdtCalr ("Logged off by SysOp",1) ' RM031301
ZSubParm = -6
RETURN ' RM12159301
'
'
' * F2 - COMMAND FROM LOCAL KEYBOARD (SYSOP EXIT TO DOS AND RETURN)
'
'
* REPLACING old line(s) by new
33160 CALL UpdtCalr ("Sysop began chat",1)
ZPageStatus$ = ""
* ------[ first line different ]------
IF ZRIPTest THEN _ ' RM11039301
CALL QuickTPut1 (ZRIPReset$) ' RM11079301
IF (ZANSITest = ZTrue OR ZWasGR > 1) AND ZDosANSI THEN _ ' CHAT174/RM030101/RM101701
CALL TimeBack (1) : _ ' CHAT174/RM110801
CALL SysopChat (2) _ ' CHAT174/RM100101
ELSE _ ' CHAT174/RM030101
CALL SkipLine (1) : _ ' CHAT174/RM030101
CALL QuickTPut1 ("Hi " + _
ZFirstName$ + _
", this is " + _
ZSysopFirstName$ + _
" " + _
ZSysopLastName$ + _
". Sorry to break in to CHAT but..") : _ ' CHAT174/RM030101
CALL TimeBack (1) : _ ' CHAT174/RM030101
CALL SysopChat (1) ' CHAT174/RM100101
CALL TimeBack (2)
ZCommPortStack$ = CHR$(13)
IF ZSubParm < 0 THEN _ ' RM12189303
GOTO 33970 ' RM12189303
GOTO 33155
'
'
' * UP / CTRL-UP: INCREASE THE ON-LINE USER'S SECURITY BY ONE / FIVE
'
'
* REPLACING old line(s) by new
* ------[ first line different ]------
33970 IF ZFunctionKey < 23 AND ZFunctionKey > 15 THEN _ ' DGS-L25/RM12159301
MinsRemaining = (ZSecsPerSession! - ZSecsUsedSession!) / 60 : _ ' DGS-L25
CALL Line25 ' DGS-L25
END SUB
* REPLACING old line(s) by new
33990 ' $SUBTITLE: 'PageUp - Display user profile to Sysop'
' $PAGE
'
' NAME -- PageUp
'
' INPUTS -- PARAMETER MEANING
' ZActiveUserName$ CURRENT USER NAME
' ZDnlds # OF FILES DOWNLOADED
' ZExpirationDate$ REGISTRATION EXPIRATION
' ZLastDateTimeOnSave$ Last DATE & TIME ON SYSTEM
' ZLastMsgRead Last MESSAGE READ BY USER
' ZPswdSave$ USERS PASSWORD
' ZTimesLoggedOn TIMES USER HAS LOGGED ON
' ZUplds # OF FILES UPLOADED
' ZUserSecSave USERS SECURITY LEVEL
'
' OUTPUTS -- ZMsgRec$
'
* ------[ first line different ]------
SUB PageUp ' RM11159302
CALL LPrnt (" ",1)
CALL LPrnt ("USER NAME : " + ZActiveUserName$,1)
CALL LPrnt ("SECURITY :" + STR$(ZUserSecSave),1)
CALL LPrnt ("PASSWORD :" + ZPswdSave$,1)
CALL LPrnt ("READ MSG. :" + STR$(ZLastMsgRead),1)
CALL LPrnt ("TIMES ON :" + STR$(ZTimesLoggedOn),1)
CALL LPrnt ("LAST ON :" + ZLastDateTimeOnSave$,1)
CALL LPrnt ("DOWNLOADS :" + STR$(ZDnlds),1)
CALL LPrnt ("UPLOADS :" + STR$(ZUplds),1)
IF ZEnforceRatios THEN _
CALL LPrnt ("DL-BYTES :" + STR$(ZDLBytes!),1) : _
CALL LPrnt ("UL-BYTES :" + STR$(ZULBytes!),1)
IF ZRestrictByDate THEN _
CALL LPrnt ("EXPIRATION: " + ZExpirationDate$,1)
CALL LPrnt ("User's Profile",1)
END SUB
* REPLACING old line(s) by new
35000 ' $SUBTITLE: 'FlushKeys - Completely flush all user input'
' $PAGE
'
' NAME -- FlushKeys
'
* ------[ first line different ]------
SUB FlushKeys ' RM11159302
CALL FlushCom (ZWasY$)
ZLastIndex = 0
REDIM ZUserIn$(ZMsgDim)
END SUB
* INSERTING new line(s)
41007 ' $SUBTITLE: 'CheckTimeRemain - Kicks off if no time remaining'
' $PAGE
'
' NAME -- CheckTimeRemain
'
' INPUTS -- PARAMETER MEANING
'
' OUTPUTS -- PARAMETER MEANING
' MinsRemaining TIME IN MINUTES LEFT IN SESSION
' ZSecsUsedSession! TIME USED IN SECONDS
' ZSubParm -1 IF No TIME LEFT
'
SUB CheckTimeRemain (MinsRemaining) STATIC
CALL TimeRemain (MinsRemaining)
IF ZBypassTimeCheck THEN _
EXIT SUB
IF MinsRemaining < 1 THEN ' RM122401
IF ZBankTime < 1 THEN _ ' BANK174/RM09229302
ZSubParm = -1 : _ ' BANK174
EXIT SUB ' BANK174/RM120401/RM09229302
IF ZTimeBankInActive THEN _ ' BB09039301
CALL QuickTPut1 (" Your Time has Expired") : _ ' BB09039301
CALL QuickTPut1 ("Sorry Time Bank In-Active at this time") : _' BB09039301
ZSubParm = - 1 : _ ' RM09229302
EXIT SUB ' BB09039301/RM09229302
CALL Carrier ' BANK174/RM120201
IF ZSubParm = -1 THEN _ ' BANK174/RM120201
EXIT SUB ' BANK174/RM120201/RM120401/RM09229302
ZOutTxt$ = ZFG7$ + " Your Time has Expired" + ZFG5$ + _ ' BANK174
" - Access the Time Bank ([Y]" + ZFG5$ + ",N) " + ZEmphasizeOff$ ' BANK174
ZTurboKey = -ZTurboKeyUser ' BANK174
CALL TGet ' BANK174
IF ZSubParm = -1 THEN _ ' BANK174
EXIT SUB ' BANK174/RM120401/RM09229302
IF ZNO THEN _ ' BANK174
ZSubParm = -1 : _ ' BANK174
EXIT SUB ' BANK174/RM120401/RM09229302
CALL BankTime ' BANK174
CALL TimeRemain (MinsRemaining) ' BANK174
IF MinsRemaining <= 0 THEN _ ' BANK174
ZSubParm = -1 ' BANK174
EXIT SUB ' BANK174/RM120401
END IF ' RM09229302
IF MinsRemaining <= 3 AND NOT ZNonStop THEN _ ' ST119201
IF MinsRemaining > 0 THEN _ ' RM120401
CALL QuickTPut1 (ZEmphasizeOn$ + "ALERT:" + ZFG7$ + _
" Auto-Disconnect in (" + ZFG5$ + _ ' ST119201/RM120401
STR$(MinsRemaining) + ZFG7$ + ") min.!" + _ ' ST119201
ZEmphasizeOff$) ' ST119201
END SUB ' BANK174
* DELETING old line(s)
41008
* REPLACING old line(s) by new
41032 ' $SUBTITLE: 'DispTimeRemain - Display users time remaining'
' $PAGE
'
' NAME -- DispTimeRemain
'
' INPUTS -- PARAMETER MEANING
' MinsRemaining
'
' OUTPUTS -- PARAMETER MEANING
' MinsRemaining TIME IN MINUTES LEFT IN SESSION
'
* ------[ first line different ]------
SUB DispTimeRemain (MinsRemaining) ' RM11159302
CALL TimeRemain (MinsRemaining)
CALL QuickTPut1 (ZEmphasizeOff$ + STR$(MinsRemaining) + " min left")
END SUB
* REPLACING old line(s) by new
41498 ' $SUBTITLE: 'AMorPM - give time of day in AM/PM format'
' $PAGE
'
' NAME -- AMorPM
'
' INPUTS -- PARAMETER MEANING
'
' OUTPUTS -- ZCurDate$ CURRENT DATE (MM-DD-YY)
' ZTime$ CURRENT TIME (I.E. 1:13 PM)
'
' PURPOSE -- To set the time and date and
' describe the time as "AM" or "PM."
'
* ------[ first line different ]------
SUB AMorPM ' RM11159302
'
'
' * CALCULATE CURRENT TIME FOR AM OR PM
'
'
* REPLACING old line(s) by new
42000 ' $SUBTITLE: 'Carrier - sub to monitor carrier on comm. port'
' $PAGE
'
' NAME -- Carrier
'
' INPUTS -- PARAMETER MEANING
' ZAutoLogoffReq -1 if in autologoff request
'
' OUTPUTS -- ZSubParm = 0 CONTINUE
' ZSubParm = -1 TERMINATE (No Carrier)
'
' PURPOSE -- To test whether should continue in RBBS. Reasons
' NOT to continue are: autologoff, out of time, or
' carrier dropped.
'
* ------[ first line different ]------
SUB Carrier ' RM11159302
'IF ZAutoLogoffReq THEN _
' IF NOT ZSuspendAutologoff THEN _
' ZSubParm = -1 : _
' EXIT SUB
CALL CheckCarrier
END SUB
* REPLACING old line(s) by new
42020 ZSubParm = -1
IF Speedy < -8 THEN _
EXIT SUB
IF AlreadyWritten = -9 THEN _
EXIT SUB
CALL TakeOffHook
ZModemOffHook = -1
AlreadyWritten = -9
* ------[ first line different ]------
IF ZTransferFunction = 3 THEN _ ' RM03269403
CALL UpdtCalr ("Log-Off from User Verify Door",1) : _ ' RM03269403
ELSE _ ' RM03269403
CALL UpdtCalr ("Carrier dropped",1) : _
CALL DropCarrier ' DROP174
END SUB
* INSERTING new line(s)
43020 ' $SUBTITLE: 'Graphic2 - sub to find graphic version of a file'' RM03199402
' $PAGE ' RM03199402
'
' NAME -- Graphic2
'
' INPUTS -- PARAMETER MEANING
' Default$ USERS Graphic DEFAULT
' ZWasGR WHETHER GRAPHICS ARE AVAILABLE
' FilName$ FILE TO CHECK
'
' OUTPUTS -- FilName$ SUBSTITUTES NAME OF GRAPHICS
' FILE (IF IT EXISTS).
'
' PURPOSE -- Checks whether there is a graphics version of
' a file, based on users graphics perference.
' Sets file name to graphics file if it exists,
' Otherwise leaves file name intact. Returns file
' name to use. Does NOT open the file.
'
SUB Graphic2 (FilName$) ' RM03199402
ZOK = ZFalse ' RM03199402
IF ZWasGR THEN ' RM03199402
CALL BreakFileName (FilName$,DR$,WasX$,Extension$,ZTrue) ' RM03199402
IF LEN(WasX$) < 8 THEN ' RM03199402
Temp$ = ZUserGraphicDefault$ ' RM03199402
43023 ZWasDF$ = DR$ + _ ' RM03199402
WasX$ + _ ' RM03199402
Temp$ + _ ' RM03199402
Extension$ ' RM03199402
CALL FindFile(ZWasDF$,ZOK) ' RM03199402
IF Temp$ = "R" AND NOT ZOK THEN ' RM03199402
Temp$ = "C" ' RM03199402
GOTO 43023 ' RM03199402
END IF ' RM03199402
IF ZOK THEN ' RM03199402
FilName$ = ZWasDF$ ' RM03199402
IF ZUserGraphicDefault$ = "C" OR ZUserGraphicDefault$ = "R" THEN ' RM03199402
ZLinesPrinted = 0 ' RM03199402
END IF ' RM03199402
END IF ' RM03199402
END IF ' RM03199402
END IF ' RM03199402
IF NOT ZOK THEN _ ' RM03199402
CALL FindFile (FilName$,ZOK) ' RM03199402
END SUB ' RM03199402
* REPLACING old line(s) by new
43031 ' $SUBTITLE: 'GraphicX - sub to find graphic version of a file'
' $PAGE
'
' NAME -- GraphicX
'
' INPUTS -- PARAMETER MEANING
' Default$ USERS Graphic DEFAULT
' ZWasGR WHETHER GRAPHICS ARE AVAILABLE
' FilName$ FILE TO CHECK
' FileNum # of file to use
'
' OUTPUTS -- FilName$ SUBSTITUTES NAME OF GRAPHICS
' FILE (IF IT EXISTS).
'
' PURPOSE -- Checks whether there is a graphics version of
' a file, based on users graphics perference.
' Sets file name to graphics file if it exists,
' Otherwise leaves file name intact. Returns file
' name to use.
'
SUB GraphicX (FilName$,FileNum) STATIC
ZOK = ZFalse
* ------[ first line different ]------
IF ZWasGR THEN ' RM07159301/RIP
CALL BreakFileName (FilName$,DR$,WasX$,Extension$,ZTrue) ' RM07159301/RIP
IF LEN(WasX$) < 8 THEN ' RM07159301/RIP
Temp$ = ZUserGraphicDefault$ ' RM07159301/RIP
* INSERTING new line(s)
43033 ZWasDF$ = DR$ + _ ' RM07159301/RIP
WasX$ + _
Temp$ + _ ' RM07159301/RIP
Extension$ ' RM07159301/RIP
CALL FINDITX (ZWasDF$,FileNum) ' RM07159301/RIP
IF Temp$ = "R" AND NOT ZOK THEN ' RM07159301/RIP
Temp$ = "C" ' RM07159301/RIP
GOTO 43033 ' RM07159301/RIP
END IF ' RM07159301/RIP
IF ZOK THEN ' RM07159301/RIP
FilName$ = ZWasDF$
IF ZUserGraphicDefault$ = "C" OR ZUserGraphicDefault$ = "R" THEN ' RM07159301/RIP
ZLinesPrinted = 0
END IF ' RM07159301/RIP
END IF ' RM07159301/RIP
END IF ' RM07159301/RIP
END IF ' RM07159301/RIP
IF NOT ZOK THEN _
CALL FINDITX (FilName$,FileNum)
END SUB
' Sets Graphic version but uses file # 2 always
SUB Graphic (FilName$) ' RM11159302
IF FilName$ = ZWelcomeFile$ AND NOT ZConfMode THEN ' RM05219301
ZOK = ZFalse ' RM05219301
RANDOMIZE TIMER ' KC042601
Choose = INT(RND * 4) + 1 ' KC042601
SELECT CASE Choose ' KC042601
CASE 1 ' KC042601
FilName$ = ZWelcomeFileDrvPath$ + "WELCO1" ' KC042601
CASE 2 ' KC042601
FilName$ = ZWelcomeFileDrvPath$ + "WELCO2" ' KC042601
CASE 3 ' KC042601
FilName$ = ZWelcomeFileDrvPath$ + "WELCO3" ' KC042601
CASE 4 ' KC042601
FilName$ = ZWelcomeFile$ ' KC042601
END SELECT ' KC042601
CALL ALLCaps (FilName$) ' RM05219301
CALL FindFile (FilName$,ZOK) ' KC042601/RM05219301
IF NOT ZOK THEN _ ' KC042601/RM05219301
FilName$ = ZWelcomeFile$ ' KC042601
END IF ' RM05219301
CALL GraphicX (FilName$,2)
END SUB
* REPLACING old line(s) by new
43070 ZActiveMessageFile$ = ZOrigMsgFile$
ZSubParm = 3
CALL FileLock
CALL OpenMsg
FIELD 1, 128 AS ZMsgRec$
GET 1,ZNodeRecIndex
IF ZGlobalSysop THEN _
MID$(ZMsgRec$,1,30) = "SYSOP" + SPACE$(25)
MID$(ZMsgRec$,40,2) = STR$(ZExitToDoors)
MID$(ZMsgRec$,42,2) = STR$(ZEightBit)
MID$(ZMsgRec$,44,2) = RIGHT$(STR$(-ZBPS),2)
MID$(ZMsgRec$,46,2) = STR$(ZUpperCase)
MID$(ZMsgRec$,48,5) = MKS$(ZNumDnldBytes!) + MID$(STR$(-ZBatchTransfer),2)
MID$(ZMsgRec$,53,2) = STR$(ZWasGR)
MID$(ZMsgRec$,55,2) = STR$(ZSysop)
MID$(ZMsgRec$,65,3) = CHR$(VAL(LEFT$(ZOrigTimeLoggedOn$,2))) + _
CHR$(VAL(MID$(ZOrigTimeLoggedOn$,4,2))) + _
CHR$(VAL(MID$(ZOrigTimeLoggedOn$,7,2)))
MID$(ZMsgRec$,72,2) = STR$(ZPrivateDoor)
MID$(ZMsgRec$,74,1) = MID$(STR$(ZTransferFunction),2,1)
MID$(ZMsgRec$,75,1) = ZWasFT$
* ------[ first line different ]------
MID$(ZMsgRec$,113,2) = MKI$(CINT(ZTimeCredits!)/60) ' KG012803
MID$(ZMsgRec$,91,2) = STR$(ZReliableMode)
CALL BreakFileName (ZCurPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZFalse)
MID$(ZMsgRec$,93,8) = ZUserIn$ + SPACE$(8 - LEN(ZUserIn$))
IF ZLocalUser THEN _
ZWasZ$ = ZCarriageReturn$ + ZCarriageReturn$ _
ELSE ZWasZ$ = " 0"
MID$(ZMsgRec$,101,2) = ZWasZ$
MID$(ZMsgRec$,103,2) = STR$(ZLocalUserMode)
ZConfName$ = LEFT$(ZConfName$,INSTR(ZConfName$ + " "," ") - 1)
MID$(ZMsgRec$,105,8) = ZConfName$ + SPACE$(8 - LEN(ZConfName$))
MID$(ZMsgRec$,115,1) = MID$(STR$(ZAutoLogoffReq),2,1)
MID$(ZMsgRec$,117,2) = STR$(ZMenuIndex)
MID$(ZMsgRec$,119,2) = LEFT$(DATE$,2)
MID$(ZMsgRec$,121,2) = MID$(DATE$,4,2)
MID$(ZMsgRec$,123,2) = RIGHT$(DATE$,2)
MID$(ZMsgRec$,125,2) = LEFT$(TIME$,2)
MID$(ZMsgRec$,127,2) = MID$(TIME$,4,2)
' *** Save additional parameters for door restoral
CALL OpenOutW (ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
CALL PrintWorkA (STR$(ZLimitMinsPerSession))
CALL PrintWorkA (ZWasNG$)
CALL PrintWorkA (ZIndivValue$)
CALL PrintWorkA (ZOrigDateTimeOn$)
CALL PrintWorkA (ZOrigTimeLoggedOn$)
CALL PrintWorkA (STR$(ZUserFileIndex))
CALL PrintWorkA (ZUpldDir$)
ZOutTxt$ = STR$(ZUpldDir$ = ZFMSDirectory$ OR ZLimitSearchToFMS)
CALL PrintWorkA (ZOutTxt$)
CALL PrintWorkA (ZCBaud$)
CALL PrintWorkA (STR$(ZGetExtDesc)) ' BTCH174
CALL PrintWorkA (STR$(ZAutoLogoffReq)) ' BTCH174
CALL PrintWorkA (STR$(ZHighSpeedTransfer)) ' BTCH174
CALL PrintWorkA (STR$(ZWasBatchTransfer)) ' BTCH174/RM082902
CALL PrintWorkA (ZWhoTo$) ' BTCH174/RM111101
CALL PrintWorkA (STR$(ZAlreadyGiven)) ' BTCH174/RM112401
CALL PrintWorkA (STR$(ZSpeedFactor!)) ' BTCH174/RM112101
CALL PrintWorkA (STR$(ZWelcomeAboard)) ' NEWU174/RM122701
CALL PrintWorkA (ZMenuNewDate$) ' MENU174/RM100501
CALL PrintWorkA (ZMenuNewTime$) ' MENU174/RM100501
CALL PrintWorkA (STR$(ZMenuNewUpld)) ' MENU174/RM100501
CALL PrintWorkA (STR$(ZMenuNewUsers)) ' MENU174/RM100501
CALL PrintWorkA (STR$(ZMenuNewCalls)) ' MENU174/RM100501
CALL PrintWorkA (STR$(ZMenuNewSysop)) ' MENU174/RM100501
CALL PrintWorkA (STR$(ZRIPTest)) ' RM07159301/RIP
CALL PrintWorkA (ZUpldSubDir$) ' RM01219401
CALL PrintWorkA (STR$(ZGetDescAfterTransfer)) ' RM02269401
CALL PrintWorkA (STR$(ZExtFileSysProcessor)) ' RM02269]01
CALL PrintWorkA (STR$(ZCDRom)) ' RM03259401
CALL PrintWorkA (ZDooredTo$) ' KG012803
CLOSE 2
IF ZMarkedFiles$ <> "" THEN _ ' DGS092201-DS/MARKFILES
CALL OpenOutW (ZNodeWorkDrvPath$+"MARK"+ZNodeID$+".LST") : _ ' DGS092201-DS/MARKFILES
CALL PrintWorkA (ZMarkedFiles$) : _ ' DGS092201-DS/MARKFILES
CLOSE 2 ' DGS092201-DS/MARKFILES
* REPLACING old line(s) by new
44000 ' $SUBTITLE: 'ReadProf - subroutine to restore a user profile'
' $PAGE
'
' NAME -- ReadProf
'
' INPUTS -- PARAMETER MEANING
' ZNodeRecIndex NODE RECORD TO USE
' ZSysopPswd1$ Sysop'S PSEUDONYM 1
' ZSysopPswd2$ Sysop'S PSEUDONYM 2
'
' OUTPUTS -- USER'S OPTIONS AND COMMUNICATIONS PARAMETERS
' UPON EXITING RBBS-PC TO A "DOOR"
'
' PURPOSE -- Reset a user's options and communications parameters
' that were saved in the node record when a user exited
' to a "door" so that he is in the same status as when
' he exited.
'
SUB ReadProf STATIC
FIELD 1, 128 AS ZMsgRec$
GET 1,ZNodeRecIndex
ZReliableMode = VAL(MID$(ZMsgRec$,91,2))
MID$(ZMsgRec$,40,2) = "00"
ZEightBit = VAL(MID$(ZMsgRec$,42,2))
ZBPS = -VAL(MID$(ZMsgRec$,44,2))
CALL CommInfo
ZBaudTest! = VAL(MID$(ZBaudRates$,(-5 * ZBPS),5))
ZUpperCase = VAL(MID$(ZMsgRec$,46,2))
ZNumDnldBytes! = CVS(MID$(ZMsgRec$,48,4))
ZBatchTransfer = (MID$(ZMsgRec$,52,1) = "1")
ZWasGR = VAL(MID$(ZMsgRec$,53,2))
HourLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,65,1))),2),2)
MinLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,66,1))),2),2)
SecLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,67,1))),2),2)
ZTimeLoggedOn$ = HourLoggedOn$ + _
":" + _
MinLoggedOn$ + _
":" + _
SecLoggedOn$
ZTransferFunction = VAL(MID$(ZMsgRec$,74,1))
ZWasFT$ = MID$(ZMsgRec$,75,1)
ZTimeCredits! = 60!*CVI(MID$(ZMsgRec$,113,2)) ' KKG030901
* ------[ first line different ]------
ZMenuIndex = VAL(MID$(ZMsgRec$,117,2))
ZCurPUI$ = MID$(ZMsgRec$,93,8)
CALL Remove (ZCurPUI$," ")
IF ZCurPUI$ <> "" THEN _
CALL BreakFileName (ZMainPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZTrue) : _
ZCurPUI$ = ZOutTxt$ + ZCurPUI$ + ZWasZ$
ZCustomPUI = (ZCurPUI$ <> "")
ZLocalUser = (MID$(ZMsgRec$,101,2) = ZCarriageReturn$ + ZCarriageReturn$)
ZLocalUserMode = VAL(MID$(ZMsgRec$,103,2))
ZHomeConf$ = MID$(ZMsgRec$,105,8)
ZAutoLogoffReq = (VAL(MID$(ZMsgRec$,115,1)) <> 0)
CALL Trim (ZHomeConf$)
IF ZHomeConf$ = "MAIN" THEN _
ZHomeConf$ = ""
IF ZRequiredRings > 0 AND _
INSTR(ZModemInitCmd$,"S0=255") THEN _
COLOR 7,0,0 _
ELSE COLOR ZFG,ZBG,ZBorder
IF ZLocalUserMode THEN _
GOTO 44003
CALL SetBaud
* REPLACING old line(s) by new
44003 ZUserLogonTime! = VAL(HourLoggedOn$) * 3600! + _
VAL(MinLoggedOn$) * 60! + _
VAL(SecLoggedOn$)
HourLoggedOn$ = ""
MinLoggedOn$ = ""
SecLoggedOn$ = ""
IF ZMinsPerSession < 1 THEN _
ZMinsPerSession = 3
IF NOT ZEightBit THEN _
OUT ZLineCntlReg,&H1A
IF LEFT$(ZMsgRec$,7) = "SYSOP " THEN _
ZFirstName$ = ZSysopPswd1$ : _
ZActiveUserName$ = ZSecretName$ _
ELSE ZFirstNameEnd = INSTR(ZMsgRec$," ") : _
ZLastNameEnd = INSTR(ZFirstNameEnd + 1,ZMsgRec$ + " "," ") : _
ZFirstName$ = LEFT$(ZMsgRec$,ZFirstNameEnd-1) : _
ZLastName$ = MID$(ZMsgRec$,ZFirstNameEnd + 1,ZLastNameEnd - (ZFirstNameEnd + 1)) : _
ZActiveUserName$ = MID$(ZFirstName$ + " " + ZLastName$,1,31)
ZWasZ$ = ZFirstName$
CALL OpenWork (2,ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
CALL ReadDir (2,1)
ZLimitMinsPerSession = VAL (ZOutTxt$)
CALL ReadDir (2,1)
ZWasNG$ = ZOutTxt$
CALL ReadDir (2,1)
ZIndivValue$ = ZOutTxt$
CALL ReadDir (2,1)
ZOrigDateTimeOn$ = ZOutTxt$
CALL ReadDir (2,1)
ZOrigTimeLoggedOn$ = ZOutTxt$
CALL ReadDir (2,1)
ZUserFileIndex = VAL(ZOutTxt$)
CALL ReadDir (2,1)
ZUpldDoor$ = ZOutTxt$
CALL ReadDir (2,1)
ZFMSDoor = VAL(ZOutTxt$)
CALL ReadDir (2,1)
ZCBaud$ = ZOutTxt$
* ------[ first line different ]------
CALL ReadDir (2,1) ' BTCH174
ZGetExtDesc = VAL (ZOutTxt$) ' BTCH174
CALL ReadDir (2,1) ' BTCH174
ZAutoLogoffReq = VAL (ZOutTxt$) ' BTCH174
CALL ReadDir (2,1) ' BTCH174
ZHighSpeedTransfer = VAL (ZOutTxt$) ' BTCH174
CALL ReadDir (2,1) ' BTCH174/RM082902
ZWasBatchTransfer = VAL (ZOutTxt$) ' BTCH174/RM082902
CALL ReadDir (2,1) ' BTCH174/RM111101
ZWhoTo$ = ZOutTxt$ ' BTCH174/RM111101
CALL ReadDir (2,1) ' BTCH174/RM112401
ZAlreadyGiven = VAL (ZOutTxt$) ' BTCH174/RM112401
CALL ReadDir (2,1) ' BTCH174/RM112101
ZSpeedFactor! = VAL (ZOutTxt$) ' BTCH174/RM112101
CALL ReadDir (2,1) ' NEWU174/RM122701
ZWelcomeAboard = VAL(ZOutTxt$) ' NEWU174/RM122701
CALL ReadDir (2,1) ' MENU174/RM100501
ZMenuNewDate$ = ZOutTxt$ ' MENU174/RM100501
CALL ReadDir (2,1) ' MENU174/RM100501
ZMenuNewTime$ = ZOutTxt$ ' MENU174/RM100501
CALL ReadDir (2,1) ' MENU174/RM100501
ZMenuNewUpld = VAL (ZOutTxt$) ' MENU174/RM100501
CALL ReadDir (2,1) ' MENU174/RM100501
ZMenuNewUsers = VAL (ZOutTxt$) ' MENU174/RM100501
CALL ReadDir (2,1) ' MENU174/RM100501
ZMenuNewCalls = VAL (ZOutTxt$) ' MENU174/RM100501
CALL ReadDir (2,1) ' MENU174/RM100501
ZMenuNewSysop = VAL (ZOutTxt$) ' MENU174/RM100501
CALL ReadDir (2,1) ' RM07159301/RIP
ZRIPTest = VAL (ZOutTxt$) ' RM07159301/RIP
CALL ReadDir (2,1) ' RM01219401
ZUpldSubDir$ = ZOutTxt$ ' RM01219401
CALL ReadDir (2,1) ' RM02269401
ZGetDescAfterTransfer = (VAL(ZOutTxt$) <> 0) ' RM02269401/RM03209401
CALL ReadDir (2,1) ' RM02269401
ZExtFileSysProcessor = (VAL(ZOutTxt$) <> 0) ' RM02269401/RM03209401
CALL ReadDir (2,1) ' RM02269401
ZCDRom = (VAL(ZOutTxt$) <> 0) ' RM02269401/RM03209401
CALL ReadDir (2,1) ' KG012803
ZDooredTo$ = ZOutTxt$ ' KG012803
IF ZExitToDoors AND ZDooredTo$ <> "" THEN _ ' KG012803
CALL OpenWork (2,ZDoorsDef$) : _ ' KG012803
IF ZErrCode = 0 THEN _ ' KG012803
CALL ReadParms (ZOutTxt$(),8,1) : _ ' KG012803
WHILE ZErrCode = 0 AND ZOutTxt$(1) <> ZDooredTo$ : _ ' KG012803
CALL ReadParms (ZOutTxt$(),8,1) : _ ' KG012803
WEND : _ ' KG012803
IF ZOutTxt$(1) = ZDooredTo$ THEN _ ' KG012803
ZDoorSkipsPswd = (ZOutTxt$(6) <> "Y") ' KG012803
CLOSE 2
ZErrCode = 0 ' KG012803
CALL FindFile (ZNodeWorkDrvPath$+"MARK"+ZNodeID$+".LST",ZOK) ' DGS092201-DS/MARKEDFILES
IF ZOK THEN ' DGS092201-DS/MARKEDFILES
ZMarkedFiles$ = "" ' DGS092201-DS/MARKEDFILES
CALL OpenWork (2,ZNodeWorkDrvPath$+"MARK"+ZNodeID$+".LST") ' DGS092201-DS/MARKEDFILES
IF ZErrCode <> 0 THEN _ ' DGS092201-DS/MARKEDFILES
ZErrCode = 0 : _ ' DGS092201-DS/MARKEDFILES
GOTO 44010 ' DGS092201-DS/MARKEDFILES
CALL ReadDir(2,1) ' DGS092201-DS/MARKEDFILES
DO ' DGS102801-DS/MARKEDFILES
CALL Trim(ZOutTxt$) ' DGS092201-DS/MARKEDFILES
ZMarkedFiles$ = ZMarkedFiles$ + ZOutTxt$ + _ ' DGS092201-DS/MARKEDFILES
ZCarriageReturn$ ' DGS092201-DS/MARKEDFILES
CALL ReadDir(2,1) ' DGS092201-DS/MARKEDFILES
LOOP WHILE NOT EOF(2) ' DGS102801-DS/MARKEDFILES
CLOSE 2 ' DGS092201-DS/MARKEDFILES
CALL KillWork (ZNodeWorkDrvPath$+"MARK"+ZNodeID$+".LST") ' DGS092201-DS/MARKEDFILES
END IF
* INSERTING new line(s)
44010 CALL DoorReturn ' DGS092201-DS/MARKEDFILES
END SUB
* REPLACING old line(s) by new
44020 ' $SUBTITLE: 'CommInfo - sub for variable of users baud/parity'
' $PAGE
'
' NAME -- CommInfo
'
' INPUTS -- PARAMETER MEANING
' ZBPS BAUD RATE INDICATOR
' ZEightBit INDICATE FOR N/8/1
'
' OUTPUTS -- ZBaudParity$
'
' PURPOSE -- Create a string that shows a users baud rate and parity
'
* ------[ first line different ]------
SUB CommInfo ' RM11159302
'
'
' * DETERMINE BAUD AND PARITY
'
'
IF ZReliableMode THEN _
ReliableMode$ = "-R," _
ELSE ReliableMode$ = ","
ZBaudParity$ = MID$(ZBaudRates$,(-5 * ZBPS),5) + _
" BPS" + _
ReliableMode$ + _
MID$("N,8,1E,7,1",6 + 5 * ZEightBit,5)
ZBaudTest! = VAL(ZBaudParity$)
END SUB
* REPLACING old line(s) by new
50495 ' $SUBTITLE: 'DelayTime - sub to wait number of seconds specified'
' $PAGE
'
' NAME -- DelayTime
'
' INPUTS -- PARAMETER MEANING
' DelaySecs NUMBER OF SECONDS TO DELAY
' (0 TO 3,600)
'
' OUTPUTS -- NONE
'
' PURPOSE -- To wait the number of seconds indicated before
' returning control to the calling routine.
'
* ------[ first line different ]------
SUB DelayTime (DelaySecs) ' RM11159302
IF DelaySecs < 1 THEN _
EXIT SUB
ZDelay! = TIMER + DelaySecs
* REPLACING old line(s) by new
50500 CALL CheckTime(ZDelay!, TempElapsed!, 1)
IF TempElapsed! > 0 THEN _
* ------[ first line different ]------
CALL GoIdle : _ ' RM08079302
GOTO 50500
END SUB
* REPLACING old line(s) by new
57100 IF INSTR(ZOutTxt$,"LOGON DENIED") OR INSTR(ZOutTxt$,"Lvl ")THEN _
IF NOT ZSysOp THEN _
RETURN
IF ZJumpSearching THEN _
ZWasDF$ = ZOutTxt$ : _
CALL AllCaps (ZWasDF$) : _
IF INSTR(ZWasDF$,ZJumpTo$) = 0 THEN _
RETURN _
ELSE CALL CheckColor (ZOutTxt$,ZJumpTo$,"") : _
ZJumpSearching = ZFalse
ZSubParm = 5
CALL TPut
WasX = 1
CALL AskMore ("",ZTrue,ZTrue,WasX,ZFalse)
* ------[ first line different ]------
IF ZSubParm = -1 THEN _ ' RH070402
GOTO 57102 _ ' RH070402
ELSE IF ZNo THEN _ ' RH070402
GOTO 57101 ' RH070402
RETURN
* REPLACING old line(s) by new
57102 ZJumpSupported = ZFalse
* ------[ first line different ]------
IF OrigCal$ <> ZCallersFile$ THEN _ ' RH070401
ZCallersFile$ = OrigCal$ : _
CALL SetCall
END SUB
* REPLACING old line(s) by new
58050 ' $SUBTITLE: 'AllCaps - sub to convert string to upper case'
' $PAGE
'
' NAME -- AllCaps
'
' INPUTS -- PARAMETER MEANING
' ConvertField$ STRING TO MAKE UPPER CASE
'
' OUTPUTS -- ConvertField$ CONVERTED STRINGS
'
' PURPOSE -- Subroutine to convert a string to upper case
'
* ------[ first line different ]------
SUB AllCaps (ConvertField$) ' RM11159302
ConvertField$ = UCASE$(ConvertField$) ' RM11159304
' IF ZTurboRBBS THEN _
' CALL RBBSULC (ConvertField$) : _
' EXIT SUB
' FOR WasZ = 1 TO LEN(ConvertField$)
' WasX = ASC(MID$(ConvertField$,WasZ,1))
' IF WasX > 96 THEN IF WasX < 123 THEN _
' MID$(ConvertField$,WasZ,1) = CHR$(WasX AND 223)
' NEXT
END SUB
* REPLACING old line(s) by new
58060 ' $SUBTITLE: 'NameCaps - sub to convert name string to Proper Case'
' $PAGE
'
' NAME -- NameCaps
'
' INPUTS -- PARAMETER MEANING
' ConvertField$ STRING TO CONVERT
'
' OUTPUTS -- ConvertField$ CONVERTED STRINGS
'
' PURPOSE -- Subroutine to convert a string to Proper Case (1st char upper)
'
* ------[ first line different ]------
SUB NameCaps (ConvertField$) ' RM11159302
CALL AllCaps(ConvertField$)
FOR WasZ = 2 TO LEN(ConvertField$)
IF MID$(ConvertField$,WasZ,1) > "@" AND _
MID$(ConvertField$,WasZ,1) < "[" AND _
MID$(ConvertField$,WasZ-1,1) <> " " THEN _
MID$(ConvertField$,WasZ,1) = CHR$(ASC(MID$(ConvertField$,WasZ,1)) OR 32)
NEXT
END SUB
* REPLACING old line(s) by new
58070 ' $SUBTITLE: 'CheckTime - sub to see how much time is remaining'
' $PAGE
'
' NAME -- CheckTime
'
' INPUTS -- PARAMETER MEANING
' TargetTime TARGET TIME
' ChectimeOption 1 = TELL US TIME REMAINING BETWEEN CURRENT
' TIME AND TargetTime
' 2 = TELL US TIME ELAPSED BETWEEN TargetTime
' AND CURRENT TIME
'
' OUTPUTS -- PARAMETER MEANING
' TimeRemaining! POSITIVE OR NEGATIVE NUMBER INDICATING
' TIME REMAINING OR ELAPSED. VALUE MAY BE
' TESTED FOR "TIME EXPIRED". NEGATIVE
' OR ZERO, AND THE TIME HAS BEEN REACHED.
' ELAPSED TIME CAN BE 0 TO 86400 (24 HRS)
' TIME REMAINING CAN BE 0 TO 43200 OR
' -43200 TO 0 (+ OR - 12 HRS)
' ZSubParm (Option 1 ONLY!)
' 1 = Time REMAINING is > 0
' 2 = Time REMAINING is <= 0
'
'
' PURPOSE -- Subroutine to provide time measurement functions. Will
' determine whether a target time has been reached, how much
' time is remaining, or how much time has elapsed.
'
* ------[ first line different ]------
SUB CheckTime (TargetTime!, TimeRemaining!, CkOption) ' RM11159302
IF TargetTime! > 86400 THEN _
TestTime! = 86400 : _
OverTime! = TargetTime! - 86400 _
ELSE _
TestTime! = TargetTime! : _
OverTime! = 0
TimeRemaining! = (TestTime! - TIMER) + OverTime!
IF CkOption = 2 THEN GOTO 58072
IF TimeRemaining! < -43200 THEN _
TimeRemaining! = TimeRemaining! + 86400
IF TimeRemaining! > 43200 THEN _
TimeRemaining! = TimeRemaining! - 86400
IF TimeRemaining! >= 0 THEN _
ZSubParm = 1 _
ELSE _
ZSubParm = 2
EXIT SUB
* REPLACING old line(s) by new
58080 ' $SUBTITLE: 'HashRBBS - sub to determine where to look for user'
' $PAGE
'
' NAME -- HashRBBS
'
' INPUTS -- PARAMETER MEANING
' StringToHash$ USER NAME TO LOCATE
' MaxPosition MAXIMUM # USERS
'
' OUTPUTS -- PrimeHash WHERE TO LOOK First
' SecondHash LOOK THIS FAR AHEAD
'
' PURPOSE -- Where to look for a user in users file
' Look first at prime position, then add
' SecondHash until find or find unused record
'
* ------[ first line different ]------
SUB HashRBBS (StringToHash$,MaxPosition,PrimeHash,SecondHash) ' RM11159302
SecondHash = (ASC(MID$(StringToHash$,2,1)) * 10 + 7) MOD _
MaxPosition
PrimeHash = _
((ASC(StringToHash$) * 100 + _
ASC(MID$(StringToHash$,(LEN(StringToHash$) / 2) + .1,1)) * _
10 + _
ASC(RIGHT$(StringToHash$,1))) _
MOD MaxPosition) + 1
END SUB
* REPLACING old line(s) by new
58100 ' $SUBTITLE: 'SetOpts - sub to set prompts based on user security'
' $PAGE
'
' NAME -- SetOpts
'
' INPUTS -- PARAMETER MEANING
' First POSITION WHERE START LOOKING
' Last POSITION WHERE QUIT LOOKING
' ZUserSecLevel SECURITY OF USER
'
' OUTPUTS -- Options$ LIST OF COMMANDS USER CAN DO
'
' PURPOSE -- String together what commands user can do in a section
'
* ------[ first line different ]------
SUB SetOpts (Options$,InvalidOptions$,First,Last) ' RM11159302
Options$ = ""
InvalidOptions$ = ""
FOR WasI = First TO Last
IF ZUserSecLevel < ZOptSec(WasI) THEN _
InvalidOptions$ = InvalidOptions$ + _
MID$(ZAllOpts$,WasI,1) _
ELSE IF MID$(ZAllOpts$,WasI,1) <> " " THEN _
Options$ = Options$ + _
MID$(ZAllOpts$,WasI,1)
NEXT
CALL SortString (Options$)
CALL SortString (InvalidOptions$)
END SUB
* REPLACING old line(s) by new
58110 ' $SUBTITLE: 'CheckNewBul - sub to check whether got new bulletins'
' $PAGE
'
' NAME -- CheckNewBul
'
' INPUTS -- PARAMETER MEANING
' LastOn$ Last DATE OF LOGON
' FORMAT MM/DD/YY
' ZActiveBulletins # OF BULLETING
' ZBulletinPrefix$ FILESPEC FOR BULLETINS
'
' OUTPUTS -- NumNewBullets NUMBER OF NEW BULLETINS
' NewBullets$ LIST OF NEW BULLET #'S
' ZWasQ WHERE Last BULLETIN STORED
' IN ZUserIn$()
' ZOutTxt$() BULLETINS #'S THAT ARE NEW
' (2,3,4,...)
'
' PURPOSE -- Checks how many bulletins have system date
' at or later than date caller last logged on
'
SUB CheckNewBul (LastOn$,NumNewBullets,NewBullets$) STATIC
IF ZExitToDoors OR ZBulletinPrefix$ = ZPrevPrefix$ THEN _
EXIT SUB
ZPrevPrefix$ = ZBulletinPrefix$
NumNewBullets = 0
NewBullets$ = ""
BaseDate# = VAL(MID$(LastOn$,4,2)) + (100 * VAL(MID$(LastOn$,1,2))) + _
(10000# * (1900 + VAL(MID$(LastOn$,7,2))))
CALL FindIt (ZBulletinPrefix$ + ".FCK")
WasX = 0
* ------[ first line different ]------
CALL SkipLine(1) ' DGS092501-DS
CALL QuickTPut (ZFG7$ + "Checking new bulletins" + ZEmphasizeOff$,0) ' RM051701
IF ZOK THEN _
WHILE NOT EOF(2) : _
INPUT #2,WasBN$ : _
GOSUB 58112 : _
WEND _
ELSE FOR WasI = 1 TO ZActiveBulletins : _
WasBN$ = MID$(STR$(WasI),2) : _
GOSUB 58112 : _
NEXT
ZWasQ = NumNewBullets + 1
IF NumNewBullets < 1 THEN _
NewBullets$ = ""
CALL SkipLine (1)
IF NumNewBullets > 0 THEN _ ' RM10069303
ZOutTxt$ = ZFG6$ + "There Are" + ZFG7$ + STR$(NumNewBullets) + _
ZFG6$ + " New bulletin(s) since last call" + ZEmphasizeOff$ _ ' RM10069303
ELSE _ ' RM10069303
ZOutTxt$ = ZFG6$ + "There Are" + ZFG7$ + " NO" + _
ZFG6$ + " New bulletin(s) since last call" + ZEmphasizeOff$ ' RM10069303
CALL QuickTPut1 (ZOutTxt$)
CALL BufString (NewBullets$,4096,WasX)
CALL SkipLine (1)
EXIT SUB
* REPLACING old line(s) by new
58112 FirstWord$ = WasBN$
CALL Trim (FirstWord$)
FirstWord$ = LEFT$(FirstWord$,INSTR(FirstWord$+" "," ")-1)
IF FirstWord$ = "N" THEN _
WasX$ = ZNewsFileName$ + CHR$(0) _
ELSE WasX$ = ZBulletinPrefix$ + FirstWord$ + CHR$(0)
CALL MarkTime (WasX)
* ------[ first line different ]------
CALL RBBSFind (WasX$,WasIX,TYear,WasMM,WasDD) ' MSVB/RM041101
IF WasIX = 0 THEN _
FDate# = WasDD + (100 * WasMM) + (10000# * (TYear + 1980)) : _ ' MSVB/RM041101
IF BaseDate# <= FDate# THEN _
NumNewBullets = NumNewBullets + 1 : _
ZOutTxt$(NumNewBullets + 1) = FirstWord$ : _
NewBullets$ = NewBullets$ + " " + WasBN$
RETURN
END SUB
* REPLACING old line(s) by new
58130 ' $SUBTITLE: 'AddCommas - sub to format commands in command prompt'
' $PAGE
'
' NAME -- AddCommas
'
' INPUTS -- PARAMETER MEANING
' Strng$ STRING TO REPLACE
'
' OUTPUTS -- Strng$ REPLACED STRING
'
' PURPOSE -- Inserts commands between each letter in Strng$
' and encloses in pointed brackets
'
* ------[ first line different ]------
SUB AddCommas (Strng$) ' RM11159302
WasL = LEN(Strng$)
IF WasL < 1 THEN _
EXIT SUB
LSET ZLineMes$ = " <" + _
LEFT$(Strng$,1)
FOR WasK = 2 TO WasL
MID$(ZLineMes$,2 * WasK,2) = "," + _
MID$(Strng$,WasK,1)
NEXT
Strng$ = LEFT$(ZLineMes$,2 * WasL + 1) + _
">"
END SUB
* REPLACING old line(s) by new
58140 ' $SUBTITLE: 'LoadNew - subroutine to get latest uploads'
' $PAGE
'
' NAME -- LoadNew
'
' INPUTS -- PARAMETER MEANING
' ZUpldDir$ LIST OF FILES UPLOADED
'
' OUTPUTS -- ZOutTxt$ LATEST UPLOADS
'
' PURPOSE -- Loads table of most recent number of uploads by date
'
SUB LoadNew (Ara(2)) STATIC
IF ZFMSDirectory$ = "" THEN _
EXIT SUB
ZPrevBase$ = ""
* ------[ first line different ]------
ZTurboBase = ZFalse ' RM03169401
FirstWarning = ZTrue
IF PrevLoadNew$ = ZFMSDirectory$ THEN _
Ara(1,1) = 0 : _
EXIT SUB
CALL SkipLine(1) ' DGS050501/DS
CALL QuickTPut (ZFG4$ + "Checking for " + ZFG7$ + "NEW" + ZFG4$ + _
" files " + ZEmphasizeOff$,0) ' DGS050501/DS/RM10079301
* REPLACING old line(s) by new
58141 PrevLoadNew$ = ZFMSDirectory$
CALL OpenFMS (LastRec,WasL)
FIELD 2, 23 AS PreDate$, _
2 AS WasMM$, _
1 AS Fill1$, _
2 AS WasDD$, _
1 AS Fill2$, _
2 AS Year$, _
(2 + ZMaxDescLen) AS Desc$, _
3 AS Category$, _
2 AS Fill4$
MaxRecs = UBOUND(Ara,1)
IF MaxRecs < 1 THEN _
MaxRecs = 1 _
* ------[ first line different ]------
ELSE IF MaxRecs > 200 THEN _ ' DGS050501/DS
MaxRecs = 200 ' DGS050501/DS
WasL = 0
WasK = LastRec
WHILE WasK > 0 AND WasL < MaxRecs
NumDots = 0 ' RM10069306/RM10129301
CALL MarkTime (NumDots) ' DGS050501/DS
GET #2,WasK
IF INSTR("*\ ",LEFT$(PreDate$,1)) > 0 THEN _
GOTO 58142
IF (ZCanDnldFromUp OR Category$ <> ZDefaultCatCode$) THEN _
IF VAL(Year$) > 79 THEN _
WasL = WasL + 1 : _
Ara(WasL,1) = 372! * (VAL(Year$) - 80!) + 31! * VAL(WasMM$) + VAL(WasDD$) _
ELSE IF FirstWarning THEN _
FirstWarning = ZFalse : _
ZWasZ$ = "Invalid FMS format " + ZFMSDirectory$ : _
ZSnoop = ZTrue : _
CALL LPrnt (ZWasZ$,1) : _
CALL UpdtCalr (ZWasZ$,2)
IF NOT ZCanDnldFromUp THEN _
WasX = ZMinSecToView _
ELSE IF Category$ = "***" THEN _
WasX = ZSysopSecLevel _
ELSE IF Category$ = ZDefaultCatCode$ THEN _
WasX = ZMinSecToView _
ELSE IF LEFT$(PreDate$,1) = "=" THEN _
CALL CheckInt (Desc$) : _
WasX = ZTestedIntValue _
ELSE WasX = ZOptSec(19)
Ara(WasL,2) = WasX
* REPLACING old line(s) by new
58150 ' $SUBTITLE: 'CountNewFiles - sub to count how many files new'
' $PAGE
'
' NAME -- CountNewFiles
'
' INPUTS -- PARAMETER MEANING
' LastOn$ Date of last logon
' UPLDS$ Latest uploads
'
' OUTPUTS -- NumNewFiles How many after last logon
' RptPrefix$ Set to "At least " if
' above is a minimum
'
' PURPOSE -- Checks how many files in UPLDS$ were uploaded on or
' after date of last logon that the user can download
'
SUB CountNewFiles (LastOn$,Upld(2),NumUserFiles,RptPrefix$) STATIC
BaseDate = 372 * (VAL(MID$(LastOn$,7,2)) - 80) + _
31 * (VAL(MID$(LastOn$,1,2))) + _
VAL(MID$(LastOn$,4,2))
NumNewFiles = 1
NumUserFiles = 0
WHILE (BaseDate <= Upld(NumNewFiles,1) AND _
Upld(NumNewFiles,1) > 0 AND _
NumNewFiles < UBOUND(Upld,1))
IF ZUserSecLevel => Upld(NumNewFiles,2) THEN _
NumUserFiles = NumUserFiles + 1
NumNewFiles = NumNewFiles + 1
WEND
IF Upld(NumNewFiles,1) < 1 THEN _
NumNewFiles = NumNewFiles - 1
* ------[ first line different ]------
IF BaseDate <= Upld(NumNewFiles,1) AND NumNewFiles > 0 THEN _ ' UG070504
RptPrefix$ = " At least" _
ELSE RptPrefix$ = ""
END SUB
* REPLACING old line(s) by new
58160 ' $SUBTITLE: 'CountLines - sub to determine file categories '
' $PAGE
'
' NAME -- CountLines
'
' INPUTS -- PARAMETER MEANING
' ZDirCatFile$ NAME OF THE FILE THAT HAS THE
' NUMBER OF CATEGORIES IN IT.
'
' OUTPUTS -- MaxEntries NUMBER OF FILE CATEGORIES
'
' PURPOSE -- Subroutine to count the number of categories that a
' file can be classified into.
'
* ------[ first line different ]------
SUB CountLines (MaxEntries) ' RM11159302
CALL LinesInFile (ZDirCatFile$,MaxEntries)
MaxEntries = MaxEntries + 4
IF MaxEntries < 10 THEN _
MaxEntries = 10
END SUB
* REPLACING old line(s) by new
* ------[ first line different ]------
58161 ' $SUBTITLE: 'LinesInFile - sub to determine lines in file ' ' RM060701
' $PAGE
'
' NAME -- LinesInFile
'
' INPUTS -- PARAMETER MEANING
' FilName$ Name of file to use
'
' OUTPUTS -- LineCount Count of # of lines in file
'
' PURPOSE -- Subroutine to count the number of lines in a file ' RM060701
'
SUB LinesInFile (FilName$,LineCount) ' RM11159302
CALL FindIt (FilName$)
LineCount = 0
IF ZOK THEN _
WHILE NOT EOF(2) : _
LineCount = LineCount + 1 : _
LINE INPUT #2,ZOutTxt$ : _
WEND
CLOSE 2
END SUB
* REPLACING old line(s) by new
* ------[ first line different ]------
58165 ' $SUBTITLE: 'DispUpDir - sub to display upload direcotry'
' $PAGE
'
' NAME -- DispUpDir
'
' INPUTS -- PARAMETER MEANING
' PassedCats$ FILE "CATEGORIES" TO BE INCLUDED IN
' THE SEARCH.
' SearchString$ STRING TO SEARCH ON WITHIN THE
' FILE "CATEGORIES" SELECTED
' SearchDate$ DATE EQUAL TO OR GREATER THAN TO BE
' SEARCHED FOR WITH THE "CATEGORIES"
' AND THE STRING TO SEARCH.
' DnldFlag SET TO RECORD # OF LINE TO BEGIN
' VIEWING - 0 IF AT END
'
' OUTPUTS -- DnldFlag WHENEVER DOWNLOAD REQUESTED, SETS
' TO NEXT RECORD TO VIEW. OTHERWISE
' LEAVES AT ZERO
' PURPOSE -- Display the files that meet the criteria selected in
' RBBS-PC upload management system on the users screen.
'
SUB DispUpDir (PassedCats$,SearchString$, _
SearchDate$,DnldFlag,AbortIndex) STATIC
CALL AllCaps (SearchString$)
Blank$ = " "
ZStopInterrupts = ZFalse
ZLastIndex = 0
Categories$ = "," + _
PassedCats$ + _
","
IF ZMenuIndex = 6 THEN _ ' RM03289401
CanDnld = (ZUserSecLevel => ZOptSec(41)) : _ ' RM03289401
CanView = (ZUserSecLevel => ZOptSec(45)) _ ' RM03289401
ELSE _ ' RM03289401
CanDnld = (ZUserSecLevel => ZOptSec(19)) : _
CanView = (ZUserSecLevel => ZOptSec(26))
ZJumpSupported = ZTrue
ZJumpSearching = ZFalse
GOSUB 58185
OrigDir$ = ZActiveFMSDir$ ' RM01179401
IF DnldFlag > 0 THEN _
UpldIndex = DnldFlag : _
DnldFlag = 0 : _
GOTO 58180
ZJumpLast$ = ""
SearchFor$ = SearchString$
ExtraPrompt$ = "" ' RM02199401
IF CanView THEN _ ' RM02199401
ExtraPrompt$ = LEFT$(",V)iew",-4 * (NOT ZExpertUser) + 2) ' RM02199401
IF CanDnld THEN _ ' RM01179401
ExtraPrompt$ = ExtraPrompt$ + LEFT$(",M)ark",-4 * (NOT ZExpertUser) + 2) + _
LEFT$(",D)nld",-4 * (NOT ZExpertUser) + 2) ' RM01179401/RM02199401
MaxPrint = ZPageLength - 1
BelowMinSec = (ZUserSecLevel < ZMinSecToView)
ZNonStop = ZNonStop OR (ZPageLength < 1)
FMSCheckPoint = 0
WildSearch = (INSTR(SearchString$,"?") > 0) _
OR (INSTR(SearchString$,"*") > 0)
* REPLACING old line(s) by new
58168 UpldIndex = UpldIndex + ZUpInc
* ------[ first line different ]------
IF UpldIndex = CutoffRec OR UpldIndex < 1 THEN _
GOTO 58182
GET #2,UpldIndex
FMSCheckPoint = FMSCheckPoint + 1
ON INSTR("\* =",LEFT$(PartToPrint$,1)) GOTO 58168,58171,58170,58169
GOTO 58172
* REPLACING old line(s) by new
* ------[ first line different ]------
58170 IF ZExtendedOff THEN _
GOTO 58168 _
ELSE IF LastOK THEN _
GOTO 58175 _
ELSE IF ZJumpSearching THEN _
GOTO 58187 _
ELSE IF SearchString$ <> "" AND (NOT WildSearch) AND FailedSearch THEN _
GOTO 58187 _
ELSE GOTO 58168
* REPLACING old line(s) by new
* ------[ first line different ]------
58171 IF Category$ = "***" THEN _
GOTO 58176 _
ELSE HoldCat$ = "," + Category$ + "," : _
IF INSTR(Categories$,HoldCat$) > 0 THEN _
GOTO 58176 _
ELSE GOTO 58168
* REPLACING old line(s) by new
* ------[ first line different ]------
58172 LastOK = ZFalse
FailedSearch = ZFalse
LastFName = UpldIndex
IF Category$ = "***" THEN _
IF NOT ZSysop THEN _
GOTO 58178
IF Category$ = ZDefaultCatCode$ THEN _
IF BelowMinSec THEN _
GOTO 58178
* REPLACING old line(s) by new
58173 IF LEN(Categories$) > 2 THEN _
* ------[ first line different ]------
HoldCat$ = "," + _
Category$ + _
"," : _
CALL Remove (HoldCat$,Blank$) : _
IF INSTR(Categories$,HoldCat$) = 0 THEN _
GOTO 58178
IF ZJumpSearching OR SearchString$ <> "" THEN _
ZOutTxt$ = PartToPrint$ : _
IF WildSearch THEN _
Temp$ = LEFT$(PartToPrint$,INSTR(PartToPrint$," ")-1) : _
Temp$ = MID$(Temp$,1-(LEFT$(Temp$,1)="=")) : _
CALL WildFile (SearchString$,Temp$,ZOK) : _
IF ZOK THEN _
FoundString$ = SearchString$ : _
GOTO 58175 _
ELSE GOTO 58178 _
ELSE CALL AllCaps (ZOutTxt$) : _
HiLitePos = INSTR(ZOutTxt$,SearchFor$) : _
IF HiLitePos = 0 THEN _
FailedSearch = ZTrue : _
GOTO 58178 _
ELSE HiLiteRec = UpldIndex : _
FoundString$ = SearchFor$ : _
IF ZJumpSearching THEN _
ZJumpSearching = ZFalse : _
SearchFor$ = PrevSearch$
* REPLACING old line(s) by new
58174 IF SearchDate$ <> "" THEN _
HoldCat$ = MID$(PartToPrint$,30,2) + _
MID$(PartToPrint$,24,2) + _
MID$(PartToPrint$,27,2) : _
IF HoldCat$ < SearchDate$ THEN _
IF ZDateOrderedFMS THEN _
* ------[ first line different ]------
GOTO 58196 _ ' RM01179401 - 58183
ELSE GOTO 58168
'
'
' * Allow the FMS to be both fast and interruptable if a local
' * user or there is nothing in the input buffer by using QuickTPut.
'
'
* REPLACING old line(s) by new
58176 ZWasA = EndDesc
IF LEFT$(PartToPrint$,5) = " " THEN _
GOTO 58178
ZOutTxt$ = PartToPrint$
* ------[ first line different ]------
CALL TrimTrail (ZOutTxt$," ")
CALL ColorDir (ZOutTxt$,"Y")
IF UpldIndex = HiLiteRec THEN _
HiLiteRec = -1 : _
HiLitePos = 0 : _
CALL CheckColor (ZOutTxt$,FoundString$,"")
* REPLACING old line(s) by new
58177 IF ZLocalUser THEN _
CALL QuickTPut1 (ZOutTxt$) : _
GOTO 58178
CALL EofComm (Char)
IF Char = -1 THEN _
CALL QuickTPut1 (ZOutTxt$) _
ELSE ZSubParm = 5 : _
CALL TPut : _
IF ZRet THEN _
* ------[ first line different ]------
GOTO 58183
* REPLACING old line(s) by new
58178 IF ZLinesPrinted <= MaxPrint AND (FMSCheckPoint MOD 1000 <> 0) THEN _
GOTO 58168
CALL CheckCarrier
IF ZSubParm = -1 THEN _
* ------[ first line different ]------
GOTO 58183
CALL TimeRemain (MinsRemaining)
IF MinsRemaining <= 0 THEN _
ZSubParm = -1 : _
GOTO 58183
IF ZNonStop THEN _
GOTO 58168
IF ZLinesPrinted <= MaxPrint AND LEFT$(PartToPrint$,1) <> " " THEN _ ' RM03319401
IF ZDateOrderedFMS THEN _
CALL QuickTPut1 (ZEmphasizeOff$ + _
"Files checked thru " + MID$(PartToPrint$,24,8)) _
ELSE _
CALL QuickTPut1 (ZEmphasizeOff$ + STR$(FMSCheckPoint) + _
" files checked")
* DELETING old line(s)
58179
* REPLACING old line(s) by new
* ------[ first line different ]------
58180 IF AtEndList THEN _ ' RM01179401
GOTO 58196 ' RM01179401
ZTurboKey = -ZTurboKeyUser
ZStackC = ZTrue
CALL AskMore (ExtraPrompt$,ZTrue,ZFalse,AbortIndex,ZFalse)
IF ZSubParm = -1 THEN _
GOTO 58183 _ ' RM01239401
ELSE _ ' RM01239401
ZLastIndex = ZWasQ : _ ' RM01239401
IF NOT ZNo THEN _ ' RM01239401
ZAnsIndex = 1 ' RM01239401
IF ZNo THEN _
ZLastIndex = 0 : _ ' RM01239401
ZRet = ZTrue : _ ' RM04049401
GOTO 58183
* REPLACING old line(s) by new
* ------[ first line different ]------
58181 CALL AraAllCaps (ZUserIn$(),1) ' RM01179401
IF ZUserIn$(1) = "M" AND CanDnld THEN ' KG091001/RM01179401
Temp$ = "M" ' RM01209401
IsMarking = ZTrue ' RM01209401
GOSUB 58194 ' RM01209401
IF ZFileSysParm = 4 THEN _ ' RM01049401
GOTO 58183 ' RM01049401/RM01209401
GOTO 58180 ' RM01179401
END IF
IF ZUserIn$(1) = "V" AND CanView THEN ' RM01209401
ZLastIndex = ZWasQ
ZAnsIndex = 1
CALL GetArc
IF ZFileSysParm = 4 THEN _ ' RM01209401
GOTO 58183 ' RM01209401
ZJumpSupported = ZTrue
ZWasA = UpldIndex
GOSUB 58185
UpldIndex = ZWasA
GOTO 58180
END IF
IF ZUserIn$(1) = "D" AND CanDnld THEN ' RM01209401
Temp$ = "D" ' RM01179401
IsMarking = ZFalse ' RM01209401
GOSUB 58194 ' RM01209401
IF ZFileSysParm = 4 THEN _ ' RM01209401
GOTO 58183 ' RM01209401
IF ZWasQ = 0 THEN _
GOTO 58180 _ ' RM01179401
ELSE _ ' RM01179401
DnldFlag = UpldIndex : _ ' RM01179401
EXIT SUB ' RM01179401
END IF ' RM01209401
IF ZJumpSearching THEN _
PrevSearch$ = SearchFor$ : _
SearchFor$ = ZJumpTo$ _
ELSE SearchFor$ = SearchString$ : _
IF LEN(ZUserIn$(1)) > 1 THEN _
IF NOT ZYes AND CanDnld THEN _
CALL SkipLine (1) : _
DnldFlag = UpldIndex : _
ZLastIndex = ZWasQ : _
ZAnsIndex = 1 : _
EXIT SUB
IF ZNonStop THEN IF UpldIndex > 999 THEN _
IF (SearchDate$ = "" OR NOT ZExpertUser) THEN _
ZOutTxt$ = STR$(UpldIndex) + _
" lines left to search. Really go non-stop? (Y,[N])" : _
ZNoAdvance = ZTrue : _
ZTurboKey = -ZTurboKeyUser : _
ZSubParm = 1 : _
CALL TGet : _
CALL WipeLine (79) : _
ZNonStop = ZYes
GOTO 58168
* INSERTING new line(s)
58182 IF ZChainedDir$ <> "" THEN _
ZActiveFMSDir$ = ZChainedDir$ : _
GOSUB 58185 : _
GOTO 58168
GOTO 58196 ' RM01179401
* REPLACING old line(s) by new
* ------[ first line different ]------
58183 CLOSE 2
ZNonStop = (ZPageLength < 1)
ZStopInterrupts = ZFalse
ZOutTxt$ = ""
ZActiveFMSDir$ = ""
ZJumpSupported = ZFalse
AtEndList = ZFalse ' RM01179401
EXIT SUB
* DELETING old line(s)
58184
* REPLACING old line(s) by new
* ------[ first line different ]------
58185 CALL OpenFMS (UpldIndex,CatLen) ' RM01179401
EndDesc = 33 + ZMaxDescLen
FIELD 2, EndDesc AS PartToPrint$, _
3 AS Category$, _
2 AS Filler$
PrevFMS$ = ZActiveFMSDir$
IF ZUpInc = -1 THEN _
CutoffRec = 0 : _
UpldIndex = UpldIndex + 1 _
ELSE CutoffRec = UpldIndex + 1 : _
UpldIndex = 0
RETURN
* DELETING old line(s)
58186
* REPLACING old line(s) by new
58187 ZOutTxt$ = PartToPrint$
CALL AllCaps (ZOutTxt$)
HiLitePos = INSTR(ZOutTxt$,SearchFor$)
IF HiLitePos < 1 THEN _
GOTO 58168
HiLiteRec = UpldIndex
* ------[ first line different ]------
UpldIndex = LastFName
GET 2,UpldIndex
FoundString$ = SearchFor$
IF ZJumpSearching THEN _
SearchFor$ = PrevSearch$
GOTO 58175
* DELETING old line(s)
58188
58189
58191
58193
* REPLACING old line(s) by new
* ------[ first line different ]------
58194 CALL AskItems ("DM",Temp$,IsMarking,"file",ZMarkedFiles$,ZPersonalDnld) ' KG091001/RM01209401
RETURN ' RM01209401
* REPLACING old line(s) by new
* ------[ first line different ]------
58196 Temp$ = "End list. " ' RM01179401
AtEndList = ZTrue ' RM01179401
UpldIndex = CutOffRec - ZUpInc ' RM01179401
ZLastIndex = 0 ' RM01179401
CALL QuickTPut (ZEmphasizeOff$,0) ' RM01179401
CALL Line25 ' RM01179401
ZOutTxt$ = Temp$ + "(" + LEFT$("L)ist",-4 * (NOT ZExpertUser) + 1) + _ ' RM02219401
LEFT$(",A)bort",-5 * (NOT ZExpertUser) + 2) ' RM02199401
IF CanView THEN _
ZOutTxt$ = ZOutTxt$ + LEFT$(",V)iew",-4 * (NOT ZExpertUser) + 2) ' RM02199401
IF CanDnld THEN _
ZOutTxt$ = ZOutTxt$ + LEFT$(",M)ark",-4 * (NOT ZExpertUser) + 2) + _
LEFT$(",D)nld",-4 * (NOT ZExpertUser) + 2) ' RM02199401
ZOutTxt$ = ZOutTxt$ + ")" + ZPressEnterExpert$ ' RM02199401/RM02219401
ZTurboKey = -ZTurboKeyUser ' RM01179401
CALL PopCmdStack ' RM01179401
WasX$ = ZUserIn$(ZAnsIndex) ' RM01179401
CALL AllCaps (WasX$) ' RM01179401
IF WasX$ = "A" THEN ZRet = ZTrue ' RM01179401
IF ZWasQ = 0 OR ZRet OR ZSubParm < 0 THEN _ ' RM01179401
GOTO 58183 ' RM01179401
IF WasX$ = "L" THEN _ ' RM01179401
ZActiveFMSDir$ = OrigDir$ : _ ' RM01179401
GOSUB 58185 : _ ' RM01179401
AtEndList = ZFalse : _ ' RM01179401
GOTO 58168 ' RM01179401
ZYes = ZFalse ' RM01179401
GOTO 58181 ' RM01179401
END SUB ' RM01179401
* DELETING old line(s)
58198