home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-08-11 | 161.9 KB | 3,227 lines |
- * ------------[ BLED merge (c) Ken Goosens ]-------------
- * Merge this against RBBSSUB4.BAS to produce RBBSSUB4.NEW
- * RBBSSUB4.BAS: Date 6-20-92 Size 120885 bytes
- * ------------[ Created 08-11-1993 19:36:04 ]------------
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- ' $segment
- ' $linesize:132
- ' $title: 'RBBSSUB4.BAS 17.4, Copyright 1986 - 92 by D. Thomas Mack'
- ' Copyright 1992 by D. Thomas Mack, all rights reserved.
- ' Name ...............: RBBSSUB4.BAS
- ' First Released .....: June 21, 1992
- ' Subsequent Releases.:
- ' Copyright ..........: 1986 - 1992
- ' Purpose.............: The Remote Bulletin Board System for the IBM PC,
- ' RBBS-PC.BAS utilizes a lot of common subroutines. Those that do not
- ' require error trapping are incorporated within RBBSSUB 2-5 as
- ' separately callable subroutines in order to free up as much
- ' code as possible within the 64K code segment used by RBBS-PC.BAS.
- ' Parameters..........: Most parameters are passed via a COMMON statement.
- '
- ' Subroutine Line Function of Subroutine
- ' Name Number
- ' AnyBut 59760 Determine where a "word" begins
- ' AskUsers 64003 Ask users questions based on a script and save answers
- ' AskMore 59858 Check whether screen full
- ' AutoPage 60300 Check whether to notify sysop caller is on
- ' BadFileChar 59800 Check file name for bad character
- ' Bracket 59960 Puts strings around a substring
- ' BufFile 58400 Write a file to the user quickly
- ' BufString 58350 Write a string with imbedded CR/LF to the user quickly ' Mpl090202
- ' CheckColor 59930 Highlighting based on search string
- ' CmndToggle 64635 Processes user command to T)oggle preferences
- ' CmndSysopXfer 64640 Sysop function to change Xfer counts
- ' ColorDir 59920 Adds colorization to FMS directory entry
- ' ColorPrompt 59940 Colorizes prompts
- ' CompDate 59880+ Produces a computational data from YY, MM, DD
- ' ConfMail 59850 Check conference mail waiting
- ' ConvertDir 58950 Checks for U & A (shorthand) and converts appropriately
- ' PackDate 59201 Compress date in string format to 2 characters
- ' EofComm 60000 Determine whether any chars in comm port buffer
- ' ExpireDate 59890 Calculate registration expiration date
- ' FakeXRpt 62650 Write out file transfer report for protocols that don't
- ' FindEnd 58770 Find where a "word" ends
- ' FindFile 58790 Determine whether a file exists without opening it
- ' FindLast 58600 Find last occurence of a string
- ' FMS 58200 Search the upload management system for entries
- ' GetAll 59780 Get list of all directories to display
- ' GetDirs 58895 Prompts for directories for file list/new/search cmds
- ' GetMsgAttr 62530 Restore attributes of original message
- ' GetYMD 59204 Pulls YY, MM, or DD from a 2 byte stored date
- ' GlobalSrchRepl 60100 Global search and replace
- ' LogPDown 59400 Records download in private directory
- ' MarkTime 60200 Give visual feedback during lengthy process
- ' MetaGSR 60130 Meta statement global search and replace
- ' MsgImport 59698 Allow local user to import a text file to a message
- ' Muzak 59100 Play musical themes for different RBBS functions
- ' NewPassword 60668 Get a new password
- ' Protocol 62600 Determine if external protocols are available
- ' PutMsgAttr 62520 Save attributes of original message
- ' Remove 58210 Remove characters from within strings
- ' RotorsDir 58700 Searches for a file using list of subdirs
- ' RptTime 62540 Report date/time and time on
- ' SearchArray 58190 Check for the occurance of a string in an array
- ' SetEcho 59600 Set RBBS properly for who is to echo
- ' SetHiLite 59934 Set user preference on highlighting
- ' SetGraphic 59980 Sets graphic preference for text file display
- ' SetNewUserDef 64645 Sets new user defaults
- ' SmartText 58250 Process SMART TEXT control strings
- ' SubMenu 59500 Processes options that have sub-menus
- ' TimedOut 63000 Write timed exit semaphore file
- ' TimeLock 60180 Check for TIME LOCK on certain features
- ' Transfer 62624 RBBS-PC support for external protocols for file transfer
- ' Toggle 57000 Toggles or views user options
- ' TwoByteDate 59200 Reduces a data to 2 byte string for space compression
- ' UnPackDate 59902 Uncompresses a 2 byte date
- ' UserColor 59965 Lets user set color for text and whether bold
- ' UserFace 59450 Processes programmable user interface
- ' ViewArc 64600 Display .ARC file contents to user
- ' PrivDoorRtn 62629 Private door exit routine
- ' WipeLine 58800 Wipes away a line so next prints in its place
- ' WordWrap 59710 Adjust a msg -- wrap lines and perserve paragraphs
- '
- ' $INCLUDE: 'RBBS-VAR.BAS'
- '
- * REPLACING old line(s) by new
- 57000 ' $SUBTITLE: 'Toggle - Toggle User Preferences'
- ' $PAGE
- '
- ' NAME -- Toggle
- '
- ' INPUTS -- ToggleOption Option to toggle or view
- ' according to the following:
- ' ToggleOption PREFERENCE
- ' Toggle VIEW
- * ------[ first line different ]------
- ' 1 -1 AnsiEd Toggle ' Ansied
- ' 2 -2 Bulletin review on logon
- ' 3 -3 Case change
- ' 4 -4 File review on logon
- ' 5 -5 Highlight
- ' 6 -6 Line feeds
- ' 7 -7 Nulls
- ' 8 -8 TurboKey
- ' 9 -9 Expert
- ' 10 -10 Bell
- ' 11 -11 Chat Availability ' JM092401/RCHAT
- '
- ' OUTPUTS -- ZSubParm passed from TPut
- '
- ' PURPOSE -- Sets or views any single user preference value
- '
- SUB Toggle (ToggleOption) STATIC
- ZSubParm = 0
- IF ToggleOption < 0 THEN _
- GOTO 57005
- ON ToggleOption GOSUB _
- 57010, _ 'AnsiEd toggle ' Ansied
- 57120, _ 'Bulletin review on logon
- 57260, _ 'Case change
- 57150, _ 'File review on logon
- 57040, _ 'Highlight
- 57100, _ 'Line feeds
- 57210, _ 'Nulls
- 57230, _ 'TurboKey
- 57190, _ 'Expert
- 57170, _ 'Bell ' JM092401/RCHAT
- 57300, _ 'Internode chat availability ' JM092401/RCHAT
- 57320, _ 'Extended DIR listing ' DD062901
- 57340, _ 'More Prompt LF ' DD070104
- 57660, _ 'Read All new mail ' DD070102
- 57680 'ANSI Music ' DD070402
- EXIT SUB
- * REPLACING old line(s) by new
- 57005 CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)
- ON -ToggleOption GOSUB _
- * ------[ first line different ]------
- 57030, _ 'AnsiEd Toggle ' Ansied
- 57130, _ 'Bulletin review on logon
- 57270, _ 'Case change
- 57160, _ 'File review on logon
- 57050, _ 'Highlight
- 57110, _ 'Line feeds
- 57220, _ 'Nulls
- 57240, _ 'TurboKey
- 57200, _ 'Expert
- 57180, _ 'Bell ' JM092401/RCHAT
- 57310, _ 'Internode chat availability ' JM092401/RCHAT
- 57330, _ 'Extended DIR listing ' DD062901
- 57350, _ 'More Prompt LF ' DD070104
- 57670, _ 'Read All new mail ' DD070102
- 57690 'ANSI Music ' DD070402
- EXIT SUB
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57010 ZFullScreenEditor = NOT ZFullScreenEditor ' Ansied
- ' IF ZAutoDownDesired THEN _
- ' GOTO 57020
- ' IF NOT ZAutoDownVerified THEN _
- ' CALL TestUser
- ' IF NOT ZAutoDownYes THEN _
- ' CALL QuickTPut1 ("Your comm pgm does not support AUTODOWNLOAD") : _
- ' ZAutoDownDesired = ZTrue
- * REPLACING old line(s) by new
- 57020 'ZAutoDownDesired = NOT ZAutoDownDesired
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57030 'ZOutTxt$ = "Autodownload " + FNOffOn$(ZAutoDownDesired)
- ' CALL QuickTPut1 (ZOutTxt$)
- CALL QuickTPut1 (ZFGB$ + "Full Screen Editor " + _ ' DD062905
- FNOffOn$(ZFullScreenEditor) + _ ' DD062905
- ZEmphasizeOff$) ' DD062905
- RETURN
- * REPLACING old line(s) by new
- 57050 IF ZEmphasizeOn$ <> "" THEN _
- * ------[ first line different ]------
- ZEmphasizeOff$ = ZEscape$ + CHR$(91) + ZBoldText$ + _ ' DD021301
- ";40;" + MID$(STR$(ZUserTextColor),2) + CHR$(109) ' DD021301
- CALL QuickTPut1 (ZEmphasizeOn$ + "Highlighting" + ZEmphasizeOff$ + _
- SPACE$(1) + FNOffOn$(NOT ZHiLiteOff)) ' DD021301
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57110 CALL QuickTPut1 (ZFGB$ + "Line Feeds " + _ ' DD062905
- FNOffOn$(ZLineFeeds) + _ ' DD062905
- ZEmphasizeOff$) ' DD062905
- CALL SetCrLf
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57130 ZOutTxt$ = ZFGB$ + MID$("Skip Check",1 -5 * ZCheckBulletLogon,5) + _ ' DD062905
- " all Bulletins at logon" + ZEmphasizeOff$ ' DD062905
- CALL QuickTPut1 (ZOutTxt$)
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57160 ZOutTxt$ = ZFGB$ + MID$("CheckSkip",1 -5 * ZSkipFilesLogon,5) + _ ' DD062905
- " new files at logon" + ZEmphasizeOff$ ' DD062905
- CALL QuickTPut1 (ZOutTxt$)
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57180 ZOutTxt$ = ZFGB$ + "Prompt Bell " + _ ' DD062905
- FNOffOn$(ZPromptBell) + ZEmphasizeOff$ ' DD062905
- CALL QuickTPut1 (ZOutTxt$)
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57200 ZOutTxt$ = ZFGB$ + MID$("NoviceExpert",1 -6 * ZExpertUser,6) + _ ' DD062905
- ZEmphasizeOff$ ' DD062905
- CALL QuickTPut1 (ZOutTxt$)
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57220 ZOutTxt$ = ZFGB$ + "Nulls " + _ ' DD062905
- FNOffOn$(ZNulls) + ZEmphasizeOff$ ' DD062905
- CALL QuickTPut1 (ZOutTxt$)
- IF ZNulls AND NOT ZMorePromptLF THEN ' DD070104
- CALL QuickTPut1 (ZFG9$ + "Turning " + ZFGB$ + _ ' DD070104
- "More Prompt Erasing " + ZFG9$ + "off") ' DD070104
- ZMorePromptLF = ZTrue ' DD070104
- END IF ' DD070104
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57240 CALL QuickTPut1 (ZFGB$ + "TurboKeys " + _ ' DD062905
- FNOffOn$(ZTurboKeyUser) + _ ' DD062905
- ZEmphasizeOff$) ' DD062905
- RETURN
- * REPLACING old line(s) by new
- 57260 IF NOT ZUpperCase THEN _
- * ------[ first line different ]------
- IF (NOT ZHiLiteOff) OR ZUserGraphicDefault$ = CHR$(67) THEN _ ' DD021301
- CALL QuickTPut1 ("Graphics & Hilite must be OFF to use UpperCase") : _
- RETURN
- ZUpperCase = NOT ZUpperCase
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 57270 ZOutTxt$ = ZFGB$ + "UPPER CASE " + _ ' DD062905
- MID$("and lowerONLY",1 - 9 * ZUpperCase,9) + _ ' DD062905
- ZEmphasizeOff$ ' DD062905
- CALL QuickTPut1 (ZOutTxt$)
- * REPLACING old line(s) by new
- 57280 ZUseTPut = (ZUpperCase OR ZXOnXOff)
- RETURN
- * ------[ first line different ]------
- * INSERTING new line(s)
- 57300 ZAvailableForChat = NOT ZAvailableForChat ' JM092401/RCHAT
- 57310 ZOutTxt$ = ZFGB$ + "Available for internode chat: " + _ ' DD062905
- MID$("NO YES", 1 -3 * ZAvailableForChat, 3) + _ ' DD062905
- ZEmphasizeOff$ ' DD062905
- CALL QuickTPut1 (ZOutTxt$) ' JM092401/RCHAT
- RETURN ' JM092401/RCHAT
- 57320 ZExtendedOff = NOT ZExtendedOff ' DD062901
- 57330 ZOutTxt$ = ZFGB$ + "Extended Directory Lists: " + _ ' DD062905
- FNOffOn$(NOT ZExtendedOff) + _ ' DD062905
- ZEmphasizeOff$ ' DD062905
- CALL QuickTPut1 (ZOutTxt$) ' DD062901
- RETURN ' DD062901
- 57340 ZMorePromptLF = NOT ZMorePromptLF ' DD070104
- 57350 ZOutTxt$ = ZFGB$ + "Erase More Prompts: " + _ ' DD070104
- MID$("YESNO ", 1 -3 * ZMorePromptLF, 3) + _ ' DD070104
- ZEmphasizeOff$ ' DD070104
- CALL QuickTPut1 (ZOutTxt$) ' DD070104
- IF NOT ZMorePromptLF AND ZNulls THEN ' DD070104
- CALL QuickTPut1 (ZFG9$ + "Turning " + ZFGB$ + _ ' DD070104
- "Nulls " + ZFG9$ + "off") ' DD070104
- ZNulls = ZFalse ' DD070104
- END IF ' DD070104
- RETURN ' DD070104
- 57660 ZReadNewMail = NOT ZReadNewMail ' DD070102
- 57670 ZOutTxt$ = ZFGB$ + MID$("SkipRead", 1 -4 * ZReadNewMail, 4) + _' DD070102
- " new mail at logon" + ZEmphasizeOff$ ' DD070102
- CALL QuickTPut1 (ZOutTxt$) ' DD070102
- RETURN ' DD070102
- 57680 ZANSIMusic = NOT ZANSIMusic ' DD070402
- 57690 ZOutTxt$ = ZFGB$ + "ANSI Music " + FNOffOn$(ZANSIMusic) + _ ' DD070402
- ZEmphasizeOff$ ' DD070402
- CALL SetANSIMusic ' DD070402
- CALL QuickTPut1 (ZOutTxt$) ' DD070402
- RETURN ' DD070402
- END SUB
- '
- * REPLACING old line(s) by new
- 58200 ' $SUBTITLE: 'FMS - subroutine to search the upload management system'
- ' $PAGE
- '
- ' NAME -- FMS
- '
- ' INPUTS -- PARAMETER MEANING
- ' DirToSearch$ RBBS-PC "DIR" CATEGORY TO LOOK
- ' FOR
- ' SearchString$ STRING TO SEARCH FOR
- ' SearchDate$ DATE TO SEARCH FOR
- ' ZCategoryName$()
- ' ZCategoryCode$()
- ' ZCategoryDesc$()
- ' CatFound
- ' ZNumCategories
- '
- ' OUTPUTS -- ProcessedInFMS
- ' DnldFlag
- '
- ' PURPOSE -- To search the file management system and display the
- ' files being searched for as well as the catetory descriptions
- '
- SUB FMS (DirToSearch$,SearchString$,SearchDate$, _
- ProcessedInFMS,ZCategoryName$(1),ZCategoryCode$(1), _
- ZCategoryDesc$(1),DnldFlag,CatFound,AbortIndex) STATIC
- * ------[ first line different ]------
- IF DirToSearch$ = "P" THEN ' DD032901
- IF NOT ZExpertUser THEN ' DD032901
- FileName$ = ZWelcomeFileDrvPath$ + "P.MNU" ' DD040808
- CALL Graphic (FileName$) ' DD032901
- CALL BufFile (FileName$,WasX) ' DD032901
- CALL SmartPause ' DD050302
- END IF ' DD032901
- END IF ' DD032901
- DnldFlag = 0
- CALL SearchArray (DirToSearch$,ZCategoryName$(),ZNumCategories,CatFound)
- ProcessedInFMS = ProcessedInFMS OR (CatFound > 0)
- IF ZWasGR > 0 THEN ' DD122606
- horzline$ = CHR$(205) ' DD122606
- vertline$ = CHR$(186) ' DD122606
- topleft$ = CHR$(201) ' DD122606
- topright$ = CHR$(187) ' DD122606
- bottomleft$ = CHR$(200) ' DD122606
- bottomright$ = CHR$(188) ' DD122606
- endpiece$ = CHR$(175) ' DD040201
- ELSE ' DD122606
- horzline$ = CHR$(061) ' DD050304
- vertline$ = CHR$(124) ' DD122606
- topleft$ = CHR$(061) ' DD050304
- topright$ = CHR$(061) ' DD050304
- bottomleft$ = CHR$(061) ' DD050304
- bottomright$ = CHR$(061) ' DD050304
- endpiece$ = CHR$(062) ' DD122606
- END IF ' DD122606
- IF ProcessedInFMS THEN ' DD052301
- IF ZWasGR = 4 THEN ' DD061301
- CALL BufFile (ZWelcomeFileDrvPath$ + "RIPWINF",WasX) ' DD061301
- END IF ' DD061301
- ZSubParm = 5 ' DD052301
- GOSUB 58202 ' DD052301
- CALL SkipLine(1) ' DD052301
- CALL QuickTPut(ZFG9$ + topleft$ + horzline$ + ZFGF$ + _ ' DD122606
- ZBG4$ + SPACE$(1) + _ ' DD122606
- DirToSearch$ + SPACE$(1) + ZFG9$ + ZBG0$ + _ ' DD122606
- STRING$(3,horzline$),0) ' DD122606
- CALL QuickTPut(ZFGF$ + ZBG4$ + SPACE$(1) + _ ' DD122606
- ZCategoryDesc$(CatFound) + SPACE$(1) + _ ' DD122606
- ZFG9$ + ZBG0$ + STRING$(4,horzline$) + _ ' DD122606
- ZFGC$ + endpiece$ + _ ' DD122606
- SPACE$(1) + SrchDir$,1) ' DD122606
- CALL QuickTPut(ZFG9$ + vertline$,1) ' DD122606
- CALL QuickTPut(bottomleft$ + horzline$ + ZFGF$ + _ ' DD041801
- ZBG1$ + " File Name " + _ ' DD041801
- ZFG9$ + + ZBG0$ + STRING$(3,horzline$) + _ ' DD122606
- ZFGF$ + ZBG1$ + " Size " + _ ' DD041801
- ZFG9$ + ZBG0$ + STRING$(3,horzline$),0) ' DD082601
- IF (ZShowXferTime OR ZShowTimesDownloaded) AND _ ' DD052301
- NOT ZExtendedOff THEN ' DD052301
- tempstr$ = " Info " ' DD052301
- ELSE ' DD052301
- tempstr$ = " Description " ' DD052301
- END IF ' DD052301
- IF ZShowTimesDownloaded THEN ' DD052301
- templen = 0 ' DD052301
- ELSE ' DD052301
- templen = 5 ' DD052301
- END IF ' DD052301
- CALL QuickTPut1 (ZFGF$ + ZBG1$ + " Date " + ZFG9$ + _ ' DD052301
- ZBG0$ + STRING$(15,horzline$) + _ ' DD041801
- ZFGF$ + ZBG1$ + _ ' DD041801
- tempstr$ + _ ' DD052301
- ZFG9$ + ZBG0$ + _ ' DD082601
- STRING$(ZMaxDescLen-LEN(tempstr$)-19+templen,horzline$) + _ ' DD052301
- ZFGC$ + endpiece$ + _ ' DD122606
- ZEmphasizeOff$) ' DD052301
- Cat$ = ZCategoryCode$(CatFound) ' DD052301
- CALL DispUpDir (CAT$,SearchString$,SearchDate$,DnldFlag,AbortIndex) ' DD052301
- END IF ' DD052301
- EXIT SUB
- * REPLACING old line(s) by new
- 58202 ZOutTxt$ = SearchDate$
- IF LEN(ZOutTxt$) > 0 THEN _
- ZOutTxt$ = MID$(ZOutTxt$,3) + LEFT$(ZOutTxt$,2)
- * ------[ first line different ]------
- SrchDir$ = SearchString$ + _ ' Mpl090202
- ZOutTxt$
- IF SrchDir$ <> "" THEN _ ' Mpl090202
- SrchDir$ = ZFGB$ + "Scanning for " + ZFGE$ + SrchDir$ ' DD081801
- RETURN
- END SUB
- * REPLACING old line(s) by new
- 58250 ' $SUBTITLE: 'SmartText - smart text substitution'
- ' $PAGE
- '
- ' NAME -- SmartText (WRITTEN BY DOUG AZZARITO)
- '
- ' INPUTS -- StringWork$ string to scan for Smart Text
- ' CRFound Does this line contain a CR?
- ' ZSmartTextCode Smart Text control code
- '
- ' OUTPUTS -- StringWork$ Input string with Smart replaced
- '
- ' PURPOSE -- Smart Text allows control strings in text files
- ' to be replaced at runtime with user info or other
- ' data. The Smart Text control code is a 1-byte
- ' code (configurable) with a 2-byte action code.
- '
- * ------[ first line different ]------
- SUB SmartText (StringWork$, CRFound, OverStrike,ReadMsgs) STATIC ' DD020801
- IF SmartCarry$<>"" THEN _
- StringWork$ = SmartCarry$+StringWork$
- Index = INSTR(StringWork$, ZSmartTextCode$)
- WHILE Index > 0 AND Index < LEN(StringWork$)-1
- IF INSTR(MID$(StringWork$, Index+1,2),SPACE$(1)) THEN _ ' DD021301
- SmartAct = 0 _
- ELSE _
- SmartAct = INSTR(ZSmartTable$, MID$(StringWork$, Index+1, 2))
- IF SmartAct = 0 THEN _
- WasI = 1 : _
- GOTO 58254
- SmartAct = (SmartAct+2)/3
- IF SmartAct > 60 THEN _
- GOTO 58252
- IF SmartAct > 30 THEN _ ' DD052302
- GOTO 58251 ' DD021401
- ON SmartAct GOSUB 58260, 58261, 58262, 58263, 58264, _ ' DD052302
- 58265, 58266, 58267, 58268, 58269, _ ' DD052302
- 58270, 58271, 58272, 58273, 58274, _ ' DD052302
- 58275, 58276, 58277, 58278, 58279, _ ' DD052302
- 58280, 58281, 58282, 58283, 58284, _ ' DD052302
- 58285, 58286, 58287, 58289, 58290 ' DD052302
- GOTO 58253 ' DD021401
- * INSERTING new line(s)
- 58251 SmartActTemp = SmartAct - 30 ' DD052302
- ON SmartActTemp GOSUB _ ' DD021401
- 58291, 58292, 58293, 58294, 58295, _ ' DD052302
- 58296, 58297, 58298, 58299, 58300, _ ' DD052302
- 58301, 58302, 58303, 58304, 58305, _ ' DD052302
- 58306, 58307, 58308, 58309, 58310, _ ' DD052302
- 58311, 58312, 58313, 58314, 58315, _ ' DD052302
- 58316, 58317, 58318, 58319, 58320 ' DD052302
- GOTO 58253 ' DD052302
- 58252 SmartActTemp = SmartAct - 60 ' DD052302
- ON SmartActTemp GOSUB _ ' DD052302
- 58321, 58322, 58323, 58324, 58325, _ ' DD052302
- 58326, 58327, 58328, 58329, 58330, _ ' DD052302
- 58331, 58332, 58333, 58334, 58335, _ ' DD052302
- 58336, 58337, 58338, 58339, 58340, _ ' DD052302
- 58341, 58342, 58343, 58344, 58345, _ ' DD052302
- 58346, 58347, 58348, 58349, 58350, _ ' DD052302
- 58351, 58352, 58353 ' DD062606
- 58253 GOSUB 58256 ' DD021401
- WasI = LEN(SmartHold$)
- ReplaceLen = 3
- IF OverStrike OR Overlay THEN _
- IF WasI > 2 THEN _
- ReplaceLen = WasI _
- ELSE _
- SmartHold$ = SmartHold$ + SPACE$(3 - WasI)
- StringWork$ = LEFT$(StringWork$, Index-1) + SmartHold$ + _
- MID$(StringWork$,Index+ReplaceLen)
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58260 IF ReadMsgs THEN _ ' DD020801
- SmartHold$ = "" : _ ' Pe 02/05/93
- RETURN ' Pe 02/05/93
- ZLinesPrinted = 0 ' CS (Clear screen line count reset)
- SmartHold$ = ""
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58262 IF ReadMsgs THEN _ ' DD020801
- SmartHold$ = "" : _ ' Pe 02/05/93
- RETURN ' Pe 02/05/93
- ZNonStop = ZTrue ' NS Non-stop
- SmartHold$ = ""
- RETURN
- * REPLACING old line(s) by new
- 58265 SmartHold$ = STR$(ZUserSecLevel) ' SL Security level
- * ------[ first line different ]------
- TrimSmart = ZTrue ' DD062606
- RETURN
- * REPLACING old line(s) by new
- 58269 CALL TimeRemain(MinsRemaining) ' TE Time elapsed (mm:ss)
- * ------[ first line different ]------
- SmartHold$ = MID$(STR$(INT(ZSecsUsedSession!/60)),2)+CHR$(58) + _ ' DD021301
- MID$(STR$((ZSecsUsedSession! MOD 60)+100),3)
- RETURN
- * REPLACING old line(s) by new
- 58270 SmartHold$ = MID$(STR$(INT((ZTimeLockSet+0.5)/60)),2) ' TL - Time Lock period
- * ------[ first line different ]------
- SmartHold$ = SmartHold$ + CHR$(58) + MID$(STR$((ZTimeLockSet MOD 60)+100),3) ' DD021301
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58271 IF ZDaysInRegPeriod > 0 THEN ' DD040802
- SmartHold$ = MID$(STR$(ZDaysInRegPeriod),2) ' DD040802
- ELSE ' DD040802
- SmartHold$ = "(n/a)" ' DD040802
- END IF ' DD040802
- RETURN ' RP Registration Length
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58272 IF ZDaysInRegPeriod > 0 THEN ' DD040802
- SmartHold$ = MID$(STR$(ZRegDaysRemaining),2) ' DD040802
- ELSE ' DD040802
- SmartHold$ = "(n/a)" ' DD040802
- END IF ' DD040802
- RETURN ' RR Registration Remaining
- * REPLACING old line(s) by new
- 58273 SmartHold$ = ZCityState$ ' CT Users CITY & STATE
- * ------[ first line different ]------
- TrimSmart = ZTrue ' DD062606
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58285 IF ReadMsgs THEN _ ' DD040714
- SmartHold$ = "" : _ ' DD040714
- RETURN ' DD040714
- SmartHold$ = ZFileName$ ' FI File Name
- RETURN
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58286 IF ReadMsgs THEN _ ' DD020801
- SmartHold$ = "" : _ ' DD020801
- RETURN ' DD020801
- Overlay = ZTrue ' VY Overlay ON
- GOTO 58288
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58287 IF ReadMsgs THEN _ ' DD020801
- SmartHold$ = "" : _ ' DD020801
- RETURN ' DD020801
- Overlay = ZFalse ' VN Overlay OFF
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58289 IF ReadMsgs THEN _ ' DD020801
- SmartHold$ = "" : _ ' DD020801
- RETURN ' DD020801
- TrimSmart = ZTrue ' TY Trim Yes
- GOTO 58288
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58290 IF ReadMsgs THEN _ ' DD020801
- SmartHold$ = "" : _ ' DD020801
- RETURN ' DD020801
- TrimSmart = ZFalse ' TN Trim No
- GOTO 58288
- * REPLACING old line(s) by new
- 58292 SmartHold$ = ZNodeID$ ' ND Node Number
- * ------[ first line different ]------
- IF SmartHold$ >= CHR$(65) THEN _ 'A ' DD021301
- SmartHold$ = MID$(STR$(ASC(SmartHold$) - 54),2)
- RETURN
- * REPLACING old line(s) by new
- 58295 SmartHold$ = ZConfName$ ' CN Conference Name
- RETURN
- * ------[ first line different ]------
- * INSERTING new line(s)
- 58296 SmartHold$ = ZFG5$ ' DD061303
- GOTO 58258 ' DD061303
- 58297 SmartHold$ = ZFG6$ ' DD061303
- GOTO 58258 ' DD061303
- 58298 SmartHold$ = ZFG7$ ' DD061303
- GOTO 58258 ' DD061303
- 58299 SmartHold$ = ZFG8$ ' DD061303
- GOTO 58258 ' DD061303
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58300 SmartHold$ = ZFG9$ ' DD061303
- GOTO 58258 ' DD061303
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58301 SmartHold$ = ZFGA$ ' DD061303
- GOTO 58258 ' DD061303
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58302 SmartHold$ = ZFGB$ ' DD061303
- GOTO 58258 ' DD061303
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58303 SmartHold$ = ZFGC$ ' DD061303
- GOTO 58258 ' DD061303
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58304 SmartHold$ = ZFGD$ ' DD061303
- GOTO 58258 ' DD061303
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58305 SmartHold$ = ZFGE$ ' DD061303
- GOTO 58258 ' DD061303
- * INSERTING new line(s)
- 58306 SmartHold$ = ZFGF$ ' DD061303
- GOTO 58258 ' DD061303
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58307 SmartHold$ = ZBG0$ ' DD081801/BGCOLOR
- GOTO 58258 ' DD081801/BGCOLOR
- * INSERTING new line(s)
- 58308 SmartHold$ = ZBG1$ ' DD081801/BGCOLOR
- GOTO 58258 ' DD081801/BGCOLOR
- 58309 SmartHold$ = ZBG2$ ' DD081801/BGCOLOR
- GOTO 58258 ' DD081801/BGCOLOR
- 58310 SmartHold$ = ZBG3$ ' DD081801/BGCOLOR
- GOTO 58258 ' DD081801/BGCOLOR
- 58311 SmartHold$ = ZBG4$ ' DD081801/BGCOLOR
- GOTO 58258 ' DD081801/BGCOLOR
- 58312 SmartHold$ = ZBG5$ ' DD081801/BGCOLOR
- GOTO 58258 ' DD081801/BGCOLOR
- 58313 SmartHold$ = ZBG6$ ' DD081801/BGCOLOR
- GOTO 58258 ' DD081801/BGCOLOR
- 58314 SmartHold$ = ZBG7$ ' DD081801/BGCOLOR
- GOTO 58258 ' DD081801/BGCOLOR
- 58315 IF ReadMsgs THEN _ 'SN ' DD020801
- SmartHold$ = "" : _ ' DD020801
- RETURN ' DD020801
- ZSnoop = ZTrue ' DD121901
- PRINT "SmartText Activated SNOOP ON" ' DD121901
- GOTO 58288 ' DD121901
- 58316 IF ReadMsgs THEN _ 'SO ' DD020801
- SmartHold$ = "" : _ ' DD020801
- RETURN ' DD020801
- ZSnoop = ZFalse ' DD121901
- PRINT "SmartText Activated SNOOP OFF" ' DD121901
- GOTO 58288 ' DD121901
- 58317 SmartHold$ = STR$(ZBaudTest!) 'MS ' DD021302
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD021302
- 58318 IF ReadMsgs THEN _ ' DD021303
- SmartHold$ = "" : _ ' DD021303
- RETURN ' DD021303
- SmartHold$ = ZCrLf$ 'CR ' DD021303
- RETURN ' DD021303
- 58319 SmartHold$ = TIME$ 'LT ' DD021304
- RETURN ' DD021304
- 58320 SmartHold$ = ZCurDate$ 'SD ' DD021401
- RETURN ' DD021401
- 58321 SmartHold$ = STR$(ZWaitBeforeDisconnect) 'TD ' DD030902
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD021402
- 58322 SmartHold$ = ZMsgHeader$ 'ZM ' DD021405
- RETURN ' DD021405
- 58323 SmartHold$ = STR$(ZDropTimes) 'DC ' DD040701
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040701
- 58324 SmartHold$ = ZVersionID$ 'ZV ' DD040702
- RETURN ' DD040702
- 58325 SmartHold$ = ZLastDateTimeOnSave$ 'LD ' DD040703
- RETURN ' DD040703
- 58326 SmartHold$ = STR$(ZTimesLoggedOn) 'TO ' DD040704
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040704
- 58327 SmartHold$ = STR$(ZCallsToDate!) 'TC ' DD040705
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040705
- 58328 IF ZActiveMessages = 0 THEN 'MA ' DD040706
- SmartHold$ = "(not loaded)" ' DD040706
- ELSE ' DD040706
- SmartHold$ = STR$(ZActiveMessages) ' DD040706
- TrimSmart = ZTrue ' DD062606
- END IF ' DD040706
- RETURN ' DD040706
- 58329 SmartHold$ = STR$(ZHighMsgNumber + 1) 'MH ' DD040707
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040707
- 58330 IF ZLastMsgRead > 0 THEN 'ML ' DD040708
- SmartHold$ = STR$(ZLastMsgRead) ' DD040708
- TrimSmart = ZTrue ' DD062606
- ELSE ' DD040708
- SmartHold$ = "(none)" ' DD040708
- END IF ' DD040708
- RETURN ' DD040708
- 58331 SmartHold$ = ZBaudParity$ 'BP ' DD040709
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040709
- 58332 IF ZGlobalBankTime > 0 THEN 'BB ' DD040710
- SmartHold$ = STR$(ZGlobalBankTime) + " Mins" ' DD040710
- TrimSmart = ZTrue ' DD062606
- ELSE ' DD040710
- SmartHold$ = "(none)" ' DD040710
- END IF ' DD040710
- RETURN ' DD040710
- 58333 SmartHold$ = STR$(ZMenuNewCalls) 'CL ' DD040711
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040711
- 58334 ZWasZ$ = ZUpldDriveFile$ ' DD053101
- CALL FindFree ' DD040712
- SmartHold$ = ZFreeSpace$ 'FB ' DD040712
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040712
- 58335 ZWasZ$ = ZUpldDriveFile$ ' DD053101
- CALL FindFree ' DD040712
- SmartHold$ = ZFreeSpaceK$ 'FK ' DD040712
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040712
- 58336 ZWasZ$ = ZUpldDriveFile$ ' DD053101
- CALL FindFree ' DD040712
- SmartHold$ = ZFreeSpaceM$ 'FM ' DD040712
- TrimSmart = ZTrue ' DD062606
- RETURN ' DD040712
- 58337 IF ZDropCarSecChng > 0 AND ZDropIncrement > 0 THEN 'DR ' DD040713
- SmartHold$ = STR$(ZDropCarSecChng) ' DD040713
- ELSE ' DD040713
- SmartHold$ = "(n/a)" ' DD040713
- END IF ' DD040713
- TrimSmart = ZTrue ' DD062606
- RETURN 'PW ' DD040713
- 58338 SMartHold$ = ZPswdSave$ ' DD052302
- RETURN ' DD052302
- 58339 SmartHold$ = MID$("NoviceExpert",1 -6 * ZExpertUser,6) 'UM ' DD052302
- RETURN ' DD052302
- 58340 SmartHold$ = ZProtoPrompt$ 'PR ' DD052302
- RETURN ' DD052302
- 58341 SmartHold$ = FNOffOn$(ZUpperCase) 'UC ' DD052302
- RETURN ' DD052302
- 58342 SmartHold$ = FNOffOn$(ZLineFeeds) 'LF ' DD052302
- RETURN ' DD052302
- 58343 SmartHold$ = FNOffOn$(ZNulls) 'NL ' DD052302
- RETURN ' DD052302
- 58344 SmartHold$ = FNOffOn$(ZTurboKeyUser) 'TK ' DD052302
- RETURN ' DD052302
- 58345 SmartHold$ = MID$(RIGHT$("RIP AvatarColor Mono None ",(ZWasGR+1)*6),1,6) 'GR ' DD061301
- RETURN ' DD052302
- 58346 SmartHold$ = FNOffOn$(NOT ZHiLiteOff) 'HL ' DD052302
- RETURN ' DD052302
- 58347 SmartHold$ = FNOffOn$(ZPromptBell) 'RB ' DD052302
- RETURN ' DD052302
- 58348 SmartHold$ = FNYesNo$(-(ZCheckBulletLogon))'NB ' DD052302
- RETURN ' DD052302
- 58349 SmartHold$ = FNYesNo$(-(NOT ZSkipFilesLogon)) 'NU ' DD052302
- RETURN ' DD052302
- 58350 SmartHold$ = FNYesNo$(-(ZFullScreenEditor))'AE ' DD052302
- RETURN ' DD052302
- 58351 SmartHold$ = FNYesNo$(-(ZAvailableForChat))'IC ' DD080803
- RETURN ' DD052302
- 58352 SmartHold$ = "" ' DD062604
- IF ReadMsgs THEN _ 'RG ' DD062604
- RETURN ' DD062604
- IF ZWasGR = 4 THEN _ ' DD062604
- SmartHold$ = ZRIPGraphicsReset$ ' DD062604
- RETURN ' DD062604
- 58353 CALL UnPackDIRDate (ZListNewDate$, SmartHold$, CHR$(45)) 'NF ' DD062606
- RETURN ' DD062606
- END SUB
- '
- 58390 ' $SUBTITLE: 'BufString - write a string with imbedded ZCR/LF' ' DD052302
- ' $PAGE
- '
- ' NAME -- BufString
- '
- ' INPUTS -- PARAMETER MEANING
- ' Strng$ STRING TO BE WRITTEN OUT ' Mpl090202
- ' DataSize LENGTH OF STRING - # LEFT
- ' CHARS TO OUTPUT
- '
- ' OUTPUTS -- Strng$ IS WRITTEN TO THE USER
- '
- ' PURPOSE -- To search the string, Strng$, for embedded carriage ' Mpl090202
- ' returns and line feeds and write out each line with
- ' the appropriate substitution (cr/lf if to the local
- ' screen or cr/nulls/lf if to the communications port).
- '
- SUB BufString (Strng$,PassedDataSize,AbortIndex) STATIC ' Mpl090202
- 'print "^";passedstrng$;"^"
- IF INSTR(Strng$,CHR$(27) + "[2J") <> 0 THEN _ ' DD021301
- ZScreenWasCleared = ZTrue ' DD082902
- WasL = LEN(Strng$) ' Mpl090202
- 'print "passed length=";wasl;" pds=";passeddatasize
- IF PassedDataSize < WasL THEN _
- WasL = PassedDataSize
- IF WasL < 1 THEN _ ' Mpl090202
- EXIT SUB
- ' Temp = LEN(Hold$) ' Mpl090202
- ' IF WasL = -1 THEN _ ' Clear Buffer ' Mpl090202
- ' IF Temp < 1 THEN _ ' Mpl090202
- ' EXIT SUB _ ' Mpl090202
- ' ELSE WasL = 0 ' Mpl090202
- ' IF LEN(Strng$) >= WasL+Temp THEN _ ' Mpl090202
- ' LSET Strng$ = Hold$ : _ ' Mpl090202
- ' MID$(Strng$,Temp+1) = PassedStrng$ _ ' Mpl090202
- ' ELSE Strng$ = Hold$ + PassedStrng$ ' Mpl090202
- 'if len(hold$) > 0 then print "adding <";hold$;">":input xxx$ ' Mpl090202
- 'print "hold len=";temp;" wasl=";wasl ' Mpl090202
- ' WasL = WasL + LEN(Hold$) ' Mpl090202
- ' Hold$ = "" ' Mpl090202
- ' IF ZDeleteInvalid THEN IF PassedDateSize > 0 THEN _ ' Mpl090202
- ' CALL FindLast (LEFT$(PassedStrng$,WasL),"[",Temp,ZWasZ) : _ ' Mpl090202
- ' IF Temp > 0 THEN _ ' Mpl090202
- ' Hold$ = MID$(PassedStrng$,Temp) : _ ' Mpl090202
- ' WasL = WasL - LEN(Hold$) ' Mpl090202
- ZFF = ZPageLength - 1
- StartByte = 1
- ZRet = ZFalse
- IF CarryOver THEN _
- IF ASC(Strng$) = 10 THEN _
- StartByte = 2 : _
- CALL SkipLine (1+ZJumpSearching)
- CarryOver = (MID$(Strng$,WasL,1) = ZCarriageReturn$)
- WasL = WasL + CarryOver
- 58391 CRat = INSTR(StartByte,Strng$,ZCarriageReturn$) ' DD052302
- IF CRat > 0 AND CRat < WasL THEN _
- CRFound = (MID$(Strng$,CRat + 1,1) = ZLineFeed$) _
- ELSE CRFound = ZFalse
- EOLlen = -2 * CRFound
- IF CRFound THEN _
- EOD = CRat _
- ELSE EOD = WasL + 1
- NumBytes = EOD - StartByte
- StringWork$ = MID$(Strng$,StartByte,NumBytes)
- IF NOT ZDeleteInvalid THEN _
- GOTO 58392 ' DD052302
- Index = INSTR(StringWork$,CHR$(91)) '[ ' DD021301
- WasJ = LEN(StringWork$) - 1
- WHILE Index > 0 AND Index < WasJ
- IF MID$(StringWork$,Index + 2,1) = CHR$(93) THEN _ '] ' DD021301
- IF INSTR (ZInvalidOpts$,MID$(StringWork$,Index + 1,1)) THEN _
- MID$(StringWork$,Index + 1,1) = CHR$(42) '* ' DD021301
- Index = INSTR(Index + 1,StringWork$,CHR$(91)) '[ ' DD021301
- WEND
- Index = INSTR(StringWork$,CHR$(109)) 'm ' DD022001
- WasJ = LEN(StringWork$) - 1 ' DD022001
- WHILE Index > 0 AND Index < WasJ ' DD022001
- IF MID$(StringWork$,Index + 2,1) = CHR$(27) THEN _ 'esc ' DD022001
- IF INSTR (ZInvalidOpts$,MID$(StringWork$,Index + 1,1)) THEN _ ' DD022001
- MID$(StringWork$,Index + 1,1) = CHR$(42) '* ' DD022001
- Index = INSTR(Index + 1,StringWork$,CHR$(109)) 'm ' DD022001
- WEND ' DD022001
- IF ZWasGR = 3 THEN ' DD040201
- Index = INSTR(StringWork$,CHR$(1)) '^A ' DD040201
- WasJ = LEN(StringWork$) - 1 ' DD040201
- WHILE Index > 0 AND Index < WasJ ' DD040201
- IF MID$(StringWork$,Index + 3,1) = CHR$(22) THEN _ '^V ' DD040201
- IF INSTR (ZInvalidOpts$,MID$(StringWork$,Index + 2,1)) THEN _ ' DD040201
- MID$(StringWork$,Index + 2,1) = CHR$(42) '* ' DD040201
- Index = INSTR(Index + 3,StringWork$,CHR$(1)) '^A ' DD040201
- WEND ' DD040201
- END IF ' DD040201
- 58392 IF ZJumpSearching THEN _ ' DD052302
- Temp$ = StringWork$ : _
- CALL AllCaps (Temp$) : _
- HiLitePos = INSTR (Temp$,ZJumpTo$) : _
- IF HiLitePos = 0 THEN _
- GOTO 58397 _ ' DD052302
- ELSE CALL Bracket (StringWork$,HiLitePos,HiLitePos+LEN(ZJumpTo$)-1,ZEmphasizeOn$,ZEmphasizeOff$) : _
- ZJumpSearching = ZFalse
- IF ZSmartTextCode THEN _
- CALL SmartText (StringWork$, CRFound, ZFalse,ZFalse) 'Pe 02/06/93
- IF NOT ZLocalUser THEN _
- CALL EofComm (Char) : _
- IF Char <> -1 THEN _
- GOTO 58393 ' comm port input ' DD052302
- ZKeyboardStack$ = INKEY$ : _
- IF ZKeyboardStack$ <> "" THEN _ ' keyboard input
- GOTO 58393 ' DD052302
- CALL QuickTPut (StringWork$, - (CRFound))
- GOTO 58394 ' DD052302
- 58393 ZOutTxt$ = StringWork$ ' DD052302
- ZSubParm = 4
- IF CRFound THEN ZSubParm = 5
- CALL TPut
- 58394 IF ZRet THEN _ ' DD052302
- EXIT SUB
- IF ZLinesPrinted < ZFF THEN _
- GOTO 58397 ' DD052302
- 58395 CALL CheckTimeRemain (MinsRemaining) ' DD052302
- CALL CheckCarrier
- IF ZSubParm = -1 THEN _
- EXIT SUB
- IF ZNonStop THEN _
- GOTO 58397 ' DD052302
- IF NOT CRFound THEN _
- GOTO 58397 ' DD052302
- ZForceKeyboard = ZTrue
- CALL AskMore ("",ZTrue,ZFalse,AbortIndex,ZStopInterrupts)
- IF ZNo THEN _
- ZRet = ZTrue : _
- EXIT SUB
- 58397 StartByte = EOD + EOLlen ' DD052302
- IF StartByte <= WasL THEN _
- GOTO 58391 ' DD052302
- END SUB
- * REPLACING old line(s) by new
- 58400 ' $SUBTITLE: 'BufFile - subroutine to write a sequential file to the user'
- ' $PAGE
- '
- ' NAME -- BufFile
- '
- ' INPUTS -- PARAMETER MEANING
- ' FileSpec$ NAME OF THE FILE TO WRITE TO
- ' OUT TO THE USER
- '
- ' OUTPUTS -- NONE FILE IS WRITTEN TO THE USER
- '
- ' PURPOSE -- To display a sequential file to the user
- '
- SUB BufFile (FilName$,AbortIndex) STATIC
- CALL FindIt (FilName$)
- IF NOT ZOK THEN _
- GOTO 58419
- * ------[ first line different ]------
- ZScreenWasCleared = ZFalse ' DD082902
- ZNo = ZFalse
- CALL OpenRSeq (2,FilName$,NumRecs,LenLastRec,ZBufferSize) ' DD031703
- IF ZErrCode > 0 THEN _
- GOTO 58419
- DataSize = ZBufferSize
- FIELD 2, DataSize AS SeqRec$
- ZNonStop = ZNonStop OR (ZPageLength < 1)
- ZJumpLast$ = ""
- ZJumpSearching = ZFalse
- ZJumpSupported = ZTrue
- IF NOT ZStopInterrupts THEN _
- IF NOT ZConcatFIles THEN _
- IF NOT ZNonStop THEN _
- ZOutTxt$ = "" : _ ' DD102701
- ZSubParm = 5 : _ ' DD072101 (was 2)
- CALL TPut
- IF ZSubParm = -1 THEN _ ' Mpl090202
- EXIT SUB 'Pe 02/09/90
- WasTU = 0
- * REPLACING old line(s) by new
- 58419 CLOSE 2
- * ------[ first line different ]------
- ' CALL BufString ("",-1,AbortIndex) ' Mpl090202
- ZBypassTimeCheck = ZFalse
- ZStopInterrupts = ZFalse
- CALL QuickTPut (ZEmphasizeOff$,0)
- ZJumpSupported = ZFalse
- ZLastSmartColor$ = "" ' DD082303/COLOR
- IF ZScreenWasCleared = ZTrue THEN _ ' DD082902
- CALL Line25 ' DD082902
- END SUB
- * REPLACING old line(s) by new
- 58700 ' $SUBTITLE: 'RotorsDir - search thru a list of subdirs for a file'
- ' $PAGE
- '
- ' NAME -- RotorsDir
- '
- ' INPUTS -- PARAMETER MEANING
- ' FilName$ FILE NAME TO LOOK FOR
- ' SDIR.ARA ARRAY OF SUBDIRECTORIES
- ' MaxSearch MAX # OF SUBDIRECTORIES
- ' MarkingTime WHETHER TO MARK TIME
- '
- ' OUTPUTS -- FNAME$ ADD SUBDIRECTORY TO THE
- ' FILE NAME IF FOUND. OTHER-
- ' WISE DON'T.
- ' ZOK TRUE IF FILE WAS Found
- '
- ' PURPOSE -- Hunt through a list of subdirectories to determine
- ' if a file is in any of them. If file is found, open
- ' the file as file #2, add the drive/path to the file
- ' name, and sets ZOK to true. If file isn't found, set
- ' file name to the last subdirectory searched -- which
- ' should be the upload subdirectory.
- '
- ' If the library menu is selected (ZMenuIndex = 6), then
- ' only 2 subdirectories are searched. The first being
- ' the work disk and the second being the selected
- ' library disk.
- '
- SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC
- * ------[ first line different ]------
- CALL Carrier ' Mpl090202
- IF ZSubParm = -1 THEN _ 'Pe 01/04/89
- EXIT SUB 'Pe 01/04/89
- ZOK = ZFalse
- ZDotFlag = ZFalse
- IF MarkingTime THEN _
- CALL QuickTPut (ZFGB$ + "Searching for " + ZFG2$ + _ ' DD082503
- FilName$ + ZEmphasizeOff$,0) ' DD082503
- IF ZPersonalDnld THEN _ ' DD030903
- ZFreeDnld = ZTrue : _ ' DD062501
- MaxSearch = MaxSearch + 1 : _ ' DD030903
- SDirAra$(MaxSearch) = ZPersonalDrvPath$ ' DD030903
- ' IF ZMenuIndex = 6 THEN _ ' Mpl090202
- ' GOTO 58705 ' Mpl090202
- NumSearch = 1
- ' WasX = 0 ' DD021301
- WasX$ = ZArkViewPath$ + FilName$ 'Pe 08/15/91
- CALL FindFile (WasX$,ZOK) 'Pe 08/15/91
- IF ZOK THEN _ 'Pe 08/15/91
- GOTO 58710 'Pe 08/15/91
- WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
- SDirAra$(NumSearch) <> ""
- ' IF MarkingTime THEN _ ' DD021301
- ' CALL MarkTime (WasX) ' DD021301
- WasX$ = SDirAra$(NumSearch) + _
- FilName$
- CALL FindFile (WasX$,ZOK)
- NumSearch = NumSearch + 1
- WEND
- IF ZOK OR NOT ZFastFileSearch THEN _
- GOTO 58710
- TFastFileList$ = ZFastFileList$ 'SM102201
- TFastFileLocator$ = ZFastFileLocator$ 'SM102201
- TFastTabs$ = ZFastTab$ 'SM102201
- Tptr = 1 'SM102201
- CALL BreakFileName (ZFastFileList$, Drive$,TWasX$,ZWasY$,ZTrue)'SM102201
- TIdxLst$ = Drive$ + TWasX$ + ".LST" ' DD041001
- CALL FindIt (TIdxLst$) 'SM102201
- IF NOT ZOK THEN _ 'SM102201
- TIdxLst$ = "" _ 'SM033101
- ELSE _ 'SM033101
- GOTO 58703 ' DD041001
- * INSERTING new line(s)
- 58702 FSize = 21 ' DD021301
- CALL OpenRSeq (2,TFastFileList$,HighRec,WasX,21) ' DD031703
- FIELD #2, 12 AS SearchFile$, _ ' WM050501
- 4 AS SearchPath$, _ ' WM050501
- 3 AS SearchDate$, _ ' WM050501
- 2 AS SearchCrLf$ ' WM050501
- GET 2,1 'SM102201
- IF SearchCrLf$ <> ZCRLf$ THEN _ 'SM102201
- FSize = 18 : _ 'SM102201
- CALL OpenRSeq (2,TFastFileList$,HighRec,WasX,18) : _ ' DD031703
- FIELD #2, 12 AS SearchFile$, _ 'SM102201
- 4 AS SearchPath$, _ 'SM102201
- 2 AS SearchCrLf$ 'SM102201
- IF ZErrCode <> 0 THEN _
- ZOK = ZFalse : _ 'SM102201
- GOTO 58710
- CALL TrimTrail (FilName$,CHR$(46)) ' DD021301
- CALL BinSearch (2,FilName$,1,12,FSize,HighRec,RecFoundAt,RecFound$)' DD031702
- ZOK = (RecFoundAt > 0)
- ZFastTab$ = TFastTab$ 'SM102201
- IF ZOK THEN _ 'SM102201
- GOTO 58704 ' DD021301
- 58703 IF TIdxLst$ = "" THEN _ ' DD041001
- GOTO 58710 'SM102201
- CALL OpenWork(2,TIdxLst$) 'SM102201
- IF ZErrCode <> 0 THEN _ 'SM102201
- ZOK = ZFalse : _ 'SM102201
- GOTO 58710 'SM102201
- CALL ReadParmsX(2,ZOutTxt$(),4,TPtr) ' DD041301
- IF ZErrCode <> 0 or ZOutTxt$(1)="" or ZOutTxt$(2)="" THEN _ 'SM102201
- ZOK = ZFalse : _ 'SM102201
- GOTO 58710 'SM102201
- TPtr = TPtr + 1 'SM102201
- TFastFileList$ = ZOutTxt$(1) 'SM102201
- TFastFileLocator$ = ZOutTxt$(2) 'SM102201
- CALL BreakFileName (TFastFileList$,Drive$,TWasX$,ZWasY$,ZTrue) 'SM102201
- TFN$ = Drive$ + TWasX$ + CHR$(84) + ZWasY$ ' DD021301
- CALL FindIt (TFN$) 'SM102201
- IF ZOK THEN _ 'SM102201
- CALL OpenRSeq (2,TFN$, TWasX, WasY, 72) : _ ' DD031703
- FIELD 2, 72 AS IndexRec$ : _ 'SM102201
- GET 2, 1 : _ 'SM102201
- ZFastTabs$ = IndexRec$ : _ 'SM102201
- CLOSE 2 _ 'SM102201
- ELSE _ 'SM102201
- ZFastTabs$ = "" 'SM102201
- GOTO 58702 ' DD021301
- 58704 ZOK = ZFalse ' DD021301
- CALL CheckInt (MID$(RecFound$,13,4))
- IF ZTestedIntValue < 1 THEN _
- GOTO 58710
- WasDX$ = DATE$ ' Pe081091
- LSET SearchDate$ = CHR$ (VAL (MID$ (WasDX$, 9, 2)) - 48) + _ ' Pe081091
- CHR$ (VAL (MID$ (WasDX$, 1, 2)) + 31) + _ ' Pe081091
- CHR$ (VAL (MID$ (WasDX$, 4, 2)) + 31) ' Pe081091
- PUT 2, RecFoundAt ' WM050501
- CALL OpenRSeq (2,TFastFileLocator$,HighRec,WasX,66) ' DD031703
- IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _
- GOTO 58710
- FIELD 2, 66 AS LocatorRec$
- GET 2, ZTestedIntValue
- Temp$ = WasX$
- WasX$ = LEFT$(LocatorRec$,63)
- CALL Trim (WasX$)
- IF LEFT$(WasX$,2) = "M!" THEN _
- ZOK = ZFalse : _
- ZGSRAra$(1) = PassToMacro$ : _
- WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _
- CALL Trim (WasX$) : _
- ZFileLocation$ = "" : _
- CALL MacroExe (WasX$) : _
- IF ZFileLocation$ = "" THEN _
- ZOK = ZFalse : _
- WasX$ = Temp$ : _
- GOTO 58710 _
- ELSE WasX$ = ZFileLocation$
- WasX$ = WasX$ + FilName$
- CALL FindFile (WasX$,ZOK)
- IF NOT ZOK THEN _
- WasX$ = SDirAra$(MaxSearch) + FilName$
- GOTO 58710
- '58705 WasX$ = ZLibWorkDiskPath$ + _ ' DD062304
- ' FilName$ ' Mpl090202
- ' CALL FindIt (WasX$) ' Mpl090202
- ' IF ZOK THEN _ ' Mpl090202
- ' GOTO 58710 ' Mpl090202
- ' WasX$ = ZLibDrive$ + _ ' Mpl090202
- ' FilName$ ' Mpl090202
- ' CALL FindIt (WasX$) ' Mpl090202
- * DELETING old line(s)
- 58705
- * REPLACING old line(s) by new
- 58800 ' $SUBTITLE: 'WipeLine - Wipe away a line so next overprints'
- ' $PAGE
- '
- ' NAME -- WipeLine
- '
- ' INPUTS -- PARAMETER MEANING
- ' ZCarriageReturn$
- ' CharsToWipe # OF CHARACTERS TO BLANK
- ' ZNulls
- '
- ' OUTPUTS -- NONE
- '
- ' PURPOSE -- Wipe away a line and leave cursor at beginning of the
- ' same line so that the next line will print in its place
- '
- SUB WipeLine (CharsToWipe) STATIC
- IF ZNulls OR CharsToWipe > 79 THEN _
- CALL SkipLine (1) : _
- EXIT SUB
- * ------[ first line different ]------
- IF ZWasGR > 1 THEN _ ' DD040201
- Strng$ = ZCarriageReturn$ + ZEscape$ + "[K" _ ' DD081701
- ELSE _ ' DD081701
- Strng$ = ZCarriageReturn$ + SPACE$(CharsToWipe) + _ ' DD081701
- ZCarriageReturn$ ' DD081701
- Strng$ = Strng$ + ZLastSmartColor$ ' DD081901
- IF NOT ZLocalUser THEN _ ' DD081701
- CALL PutCom (Strng$) ' DD081701
- IF ZSnoop THEN _
- LOCATE ,1 : _
- CALL LPrnt(SPACE$(CharsToWipe),0) : _
- LOCATE ,1
- ' IF ZF7Msg$ = "" OR _ ' DD040602
- ' ZF7Msg$ = "NONE" OR _ ' DD040602
- ' NOT ZSysopNext THEN _ ' DD040602
- ' EXIT SUB ' DD040602
- ' ZBypassTimeCheck = ZTrue ' DD040602
- ' CALL BufFile (ZF7Msg$,WasX) ' DD040602
- END SUB
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 58900 IF ZEndList = ZTrue THEN _ 'Lk11/29/91
- EXIT SUB 'Lk 11/29/91
- ZOutTxt$ = ZDirPrompt$
- ZMacroMin = 2
- CALL PopCmdStack
- IF ZWasQ = 0 OR ZSubParm = -1 THEN _
- EXIT SUB
- CALL AraAllCaps (ZUserIn$(),ZAnsIndex)
- IF ZUserIn$(ZAnsIndex) = CHR$(81) THEN _ 'Q ' DD021301
- ZWasQ = 0 : _
- EXIT SUB
- ZWasA = INSTR("E+.E-.E.L.H.?.",ZUserIn$(ZAnsIndex)+CHR$(46)) ' DD021301
- IF ZWasA = 0 THEN _
- EXIT SUB
- IF ZWasA > 8 THEN _
- IF ZAnsIndex < ZLastIndex THEN _
- GOTO 58900 _
- ELSE GOTO 58902
- IF ZWasA = 7 THEN _
- ZExtendedOff = NOT ZExtendedOff _
- ELSE ZExtendedOff = (ZWasA > 3)
- CALL QuickTPut1 ("Extended directory display "+FNOffOn$(NOT ZExtendedOff))
- GOTO 58900
- * REPLACING old line(s) by new
- 58902 ZFileName$ = ZCurDirPath$ + ZDirPrefix$ + _
- * ------[ first line different ]------
- CHR$(46) + ZDirExtension$ ' DD021301
- CALL Graphic (ZFileName$)
- CALL BufFile (ZFileName$,ZAnsIndex)
- GOTO 58900
- END SUB
- '
- * REPLACING old line(s) by new
- 58950 ' $SUBTITLE: 'ConvertDir -- Converts coded response to right directory'
- ' $PAGE
- '
- ' NAME -- ConvertDir
- '
- ' INPUTS -- PARAMETER MEANING
- ' Start ELEMENT TO BEGIN WITH
- ' ZUserIn$ ARRAY TO CONVERT
- ' ZWasQ Last ELEMENT TO CONVERT
- '
- ' OUTPUTS -- ZUserIn$ CONVERTED DIRECTORY LIST
- '
- ' PURPOSE -- Let the user put in a short standard string for a directory
- '
- '
- SUB ConvertDir (Start) STATIC
- FOR WasI=Start TO ZLastIndex
- CALL AraAllCaps (ZUserIn$(),WasI)
- * ------[ first line different ]------
- IF ZUserIn$(WasI)=CHR$(85) THEN _ 'U ' DD021301
- ZUserIn$(WasI) = ZUpldDirCheck$
- IF ZUserIn$(WasI) = CHR$(65) THEN _ 'A ' DD021301
- ZUserIn$(WasI) = "ALL"
- NEXT
- END SUB
- '59100 ' $SUBTITLE: 'Muzak - subroutine to PLAY ZMusic' ' DD062502
- ' $PAGE
- '
- ' NAME -- Muzak
- '
- ' INPUTS -- PARAMETER MEANING
- ' 1 PLAY CONSIDER YOURSELF(OPENING SCREEN)
- ' 2 PLAY WALK RIGHT IN(NEW USERS)
- ' 3 PLAY DRAGNET (SECURITY VIOLATION)
- ' 4 PLAY GOODBYE CHARLIE (GOODBYE)
- ' 5 PLAY TAPS (ACCESS DENIED)
- ' 6 PLAY OOM PAH PAH (DOWNLOAD)
- ' 7 PLAY THNKS FOR MEMORIES(UPLOAD)
- '
- ' OUTPUTS -- NONE
- '
- ' PURPOSE -- Provide sysops and the visually impaired with
- ' auditory feedback on what RBBS-PC is doing
- '
- ' SUB Muzak (PassedArg) STATIC ' DD062502
- ' ZFF = PassedArg ' DD062502
- ' ZSubParm = 0 ' DD062502
- ' IF (NOT ZSnoop) OR (NOT ZMusic) OR ZLocalUserMode THEN _ ' DD062502
- ' EXIT SUB ' DD062502
- ' ON ZFF GOTO 59102,59104,59106,59108,59110,59112,59114 ' DD062502
- ' EXIT SUB ' DD062502
- '59102 '---[Introduction CONSIDER YOURSELF]--- ' DD062502
- ' Music$ = "MBT180A4B-8B-8B-8B-2.G4A8F2" ' DD062502
- ' PLAY "O2 X" + VARPTR$(Music$) ' DD062502
- ' EXIT SUB ' DD062502
- '59104 '---[New User WALK RIGHT IN]--- ' DD062502
- ' Music1$ = "MBT180G4G4D2G8F+8F8E2A8B8" ' DD062502
- ' Music2$ = "C8C+8D8C8" ' DD062502
- ' Music3$ = "B4G2" ' DD062502
- ' PLAY "O2 X" + VARPTR$(Music1$) + "O3 X" + VARPTR$(Music2$) + "O2 X" + VARPTR$(Music3$) ' DD062502
- ' EXIT SUB ' DD062502
- '59106 '---[Security Violation DRAGNET THEME]--- ' DD062502
- ' Music$ = "MBT120C2D8E-4C2.C2D8E-4C4G-2." ' DD062502
- ' PLAY "O2 X" + VARPTR$(Music$) ' DD062502
- ' EXIT SUB ' DD062502
- '59108 '---[Goodbye GOODBYE CHARLIE]--- ' DD062502
- ' Music$ = "MBT180B-2.G2.F4D2." ' DD062502
- ' PLAY "O2 X" + VARPTR$(Music$) ' DD062502
- ' EXIT SUB ' DD062502
- '59110 '---[Access Denied TAPS]--- ' DD062502
- ' Music1$ = "MBT90F8A16" ' DD062502
- ' Music2$ = "C4." ' DD062502
- ' Music3$ = "A4F4C2.C8C16F2" ' DD062502
- ' PLAY "O2 X" + VARPTR$(Music1$) + "O3 X" + VARPTR$(Music2$) + "O2 X" + VARPTR$(Music3$) ' DD062502
- ' EXIT SUB ' DD062502
- '59112 '---[Download OOM PAH PAH]--- ' DD062502
- ' Music$ = "MBT180F4A4A4C4A4A4G4A4G4D2" ' DD062502
- ' PLAY "O2 X" + VARPTR$(Music$) ' DD062502
- ' EXIT SUB ' DD062502
- '59114 '---[Upload THANKS FOR THE MEMORIES]--- ' DD062502
- ' Music1$ = "MBT180C2." ' DD062502
- ' Music2$ = "A8G8F4D2" ' DD062502
- ' PLAY "O3 X" + VARPTR$(Music1$) + "O2 X" + VARPTR$(Music2$) ' DD062502
- ' END SUB ' DD062502
- * DELETING old line(s)
- 59100
- 59102
- 59104
- 59106
- 59108
- 59110
- 59112
- 59114
- * REPLACING old line(s) by new
- 59202 ' $SUBTITLE: 'UnPackDate -- subroutine to UNCompress DATE'
- ' $PAGE
- '
- ' NAME -- UnPackDate
- '
- ' INPUTS -- PARAMETER MEANING
- ' CompressedDate$ Date in 2 byte compressed form
- '
- ' OUTPUTS -- Year Year of compressed date
- ' WasMM Month of compressed date
- ' WasDD Day of compressed date
- ' DisplayDate$ 8 char display date (mm-dd-yyyy)
- '
- ' PURPOSE -- Uncompress a 2 char date to get Y,M,D & display
- '
- SUB UnPackDate (CompressedDate$,Year,WasMM,WasDD,DisplayDate$) STATIC
- CALL GetYMD (CompressedDate$,1,Year)
- CALL GetYMD (CompressedDate$,2,WasMM)
- CALL GetYMD (CompressedDate$,3,WasDD)
- * ------[ first line different ]------
- DisplayDate$ = RIGHT$(STRING$(2,48) + MID$(STR$(WasMM),2),2) + _ ' DD021301
- CHR$(45) + _ ' DD021301
- RIGHT$(STRING$(2,48) + MID$(STR$(WasDD),2),2) + _ ' DD021301
- CHR$(45) + _ ' DD021301
- RIGHT$(STR$(Year),2)
- END SUB
- * REPLACING old line(s) by new
- 59400 ' $SUBTITLE: 'LogPDown -- subroutine to record private downloads'
- ' $PAGE
- '
- ' NAME -- LogPDown
- '
- ' INPUTS -- PARAMETER MEANING
- '
- ' OUTPUTS --
- '
- ' PURPOSE -- Puts a "!" in place of an "*" in private directory
- ' after downloaded
- '
- SUB LogPDown (PrivateDnld,DwnIndex) STATIC
- IF NOT PrivateDnld THEN _
- EXIT SUB
- ZWasEN$ = ZActiveFMSDir$
- WasBX = &H4
- ZSubParm = 9
- CALL FileLock
- * ------[ first line different ]------
- CALL OpenRand2 (2,ZWasEN$,ZFMSFileLength) ' DD033001
- IF ZErrCode > 0 THEN _
- GOTO 59405
- FIELD #2,ZFMSFileLength AS PersonalRec$
- L = LEN(ZUserIn$(0))
- FOR Temp = 1 TO ZDownFiles
- X = 5 * (DwnIndex - Temp) + 1
- IF X > 0 AND X < L THEN _
- ZWasA = VAL(MID$(ZUserIn$(0),X,5)) : _
- IF ZWasA > 0 THEN _
- GET #2,ZWasA : _
- MID$(PersonalRec$,ZFMSFileLength-2,1) = CHR$(33) : _ '! ' DD021301
- PUT #2,ZWasA
- NEXT
- * REPLACING old line(s) by new
- 59456 ZFileName$ = ZCurPUI$
- CALL Graphic (ZFileName$)
- IF NOT ZOK THEN _
- CALL UpdtCalr ("Missing menu " + ZCurPUI$,2) : _
- ZCurPUI$ = ZPrevPUI$ : _
- GOTO 59456
- CALL BreakFileName(ZFileName$,ZWasZ$,ZActiveMenu$,ZWasZ$,ZTrue)
- ZActiveMenu$ = LEFT$(ZActiveMenu$,1)
- * ------[ first line different ]------
- LSET ZLastCommand$ = ZActiveMenu$ + SPACE$(1) ' DD021301
- ZPrevPUI$ = ZCurPUI$
- LINE INPUT #2,ZFileName$
- INPUT #2,Prompt$ 'SM091926
- INPUT #2,ValidChoice$,ActualCommands$
- LINE INPUT #2,MenuChoice$
- LINE INPUT #2,MenuName$
- LINE INPUT #2,QuitCmd$
- INPUT #2,QuitPrompt$ 'SM091926
- LINE INPUT #2,QuitSubCmds$
- LINE INPUT #2,QuitMenuOpt$
- LINE INPUT #2,QuitMenus$
- CALL Graphic (ZFileName$)
- CALL BreakFileName (ZFileName$,MenuDrvPath$,WasX$,ZWasY$,ZTrue)
- MenuToDisplay$ = ZFileName$
- WasJ = INSTR(ZOrigCommands$,CHR$(63)) '? ' DD021301
- IF WasJ < 1 THEN _
- WasX$ = "" _
- ELSE WasX$ = MID$(ZAllOpts$,WasJ,1)
- * REPLACING old line(s) by new
- 59458 IF ZExpertUser THEN _
- * ------[ first line different ]------
- CALL QuickTPut (ZConfName$ + ": ",0) : _ ' Mpl090202
- CALL DispTimeRemain (TimeRemaining!) : _ ' Mpl090202
- GOTO 59461
- * REPLACING old line(s) by new
- 59460 ZNonStop = (ZPageLength < 1)
- * ------[ first line different ]------
- ZDeleteInvalid = ZTrue 'Pe 01/08/90
- CALL BufFile (MenuToDisplay$,WasX)
- ZDeleteInvalid = ZFalse 'Pe 01/08/90
- CALL Line25 'Pe 01/13/90
- Call QuickTput (ZConfName$ + ": ",0) ' Mpl090202
- CALL DispTimeRemain (TimeRemaining!) 'Pe time mod Moved line number down 04/02/90
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59461 MID$(ZLastCommand$,2,1) = SPACE$(1) ' DD021301
- ZOutTxt$ = Prompt$
- ZTurboKey = -ZTurboKeyUser
- CALL PopCmdStack
- IF ZSubParm = -1 OR ZFunctionKey <> 0 THEN _
- EXIT SUB
- IF ZWasQ = 0 THEN _
- GOTO 59461 ' Mpl090202
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59490 CALL Remove (ZCurPUI$,SPACE$(1)) ' DD021301
- ZCurPUI$ = MenuDrvPath$ + _
- ZCurPUI$ + _
- ".PUI"
- GOTO 59455
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59492 CALL Putcom (ZBellRinger$) ' DD070402
- CALL QuickTPut1 ("No such option <" + ZWasZ$ + CHR$(62)) ' DD021301
- CALL SmartPause ' BK070193
- Call FlushKeys
- GOTO 59460
- END SUB
- * REPLACING old line(s) by new
- 59510 ZFileName$ = CurMenu$
- InMenu = ZTrue
- CALL BreakFileName (FrontOpt$,WasX$,FrontPre$,ZWasDF$,ZTrue)
- CALL BreakFileName (CurMenu$,MenuDrv$,WasX$,ZWasDF$,ZTrue)
- MenuFront$ = MenuDrv$ + LEFT$(WasX$,LEN(WasX$)-LEN(PreSuf$))
- IF CurMenu$ = LastSubMenu$ THEN _
- MenuFront$ = LEFT$(MenuFront$,LEN(MenuFront$)-1)
- CALL Graphic (ZFileName$)
- CurMenuVer$ = ZFileName$
- ZStopInterrupts = ZFalse
- * ------[ first line different ]------
- * INSERTING new line(s)
- 59514 IF ZAnsIndex < ZLastIndex OR ZExpertUser THEN _ ' KG011501
- GOTO 59520
- * REPLACING old line(s) by new
- 59530 ZWasZ$ = ZUserIn$(ZAnsIndex)
- CALL AllCaps (ZWasZ$)
- * ------[ first line different ]------
- IF CurMenu$ = ZConfMenu$ THEN ' Pe ConfNum Mod
- CALL BreakFileName (ZConfMailList$,Drive$,Prefix$,Ext$,ZTrue)' Pe ConfNum Mod
- CALL Findit(Drive$ + PreFix$ + ".NUM") ' DD080902
- IF NOT ZOK THEN ' Pe ConfNum Mod
- GOTO 59531 ' Pe ConfNum Mod
- END IF ' Pe ConfNum Mod
- CALL Openwork (2,Drive$ + PreFix$ + ".NUM") ' DD080902
- WHILE NOT EOF(2) AND (NOT Foundit) ' Pe ConfNum Mod
- CALL ReadAny ' Pe ConfNum Mod
- IF ZErrCode > 0 THEN ' Pe Confnum2
- CLOSE 2 'Pe Confnum2
- Goto 59531 'Pe Confnum2
- END IF ' Pe ConfNum Mod
- Dummy1$ = ZOutTxt$ ' Pe ConfNum Mod
- CALL ReadAny ' Pe ConfNum Mod
- Dummy2$ = ZOutTxt$ ' Pe ConfNum Mod
- CALL ReadAny ' Pe ConfNum Mod
- Dummy3$ = ZOutTxt$ ' Pe ConfNum Mod
- CALL ReadAny 'Pe 01/03/93
- Dummy4$ = ZOutTxt$ 'Pe 01/03/93
- IF ZWasZ$ = Dummy1$ OR ZWasZ$ = Dummy4$ THEN ' Pe ConfNum Mod ' Pe ConfNum Mod
- ZConfNum$ = Dummy1$ ' Pe ConfNum Mod
- ConfNam$ = Dummy4$ ' Pe ConfNum Mod
- Foundit = ZTrue ' Pe ConfNum Mod
- CALL Breakfilename (Dummy2$,pre$,body$,ext$,ZFalse) ' Pe ConfNum Mod
- ZWasZ$ = Mid$(body$,1,LEN(body$)-1) ' Pe ConfNum Mod
- END IF ' Pe ConfNum Mod
- WEND ' Pe ConfNum Mod
- CLOSE 2 ' Pe ConfNum Mod
- Foundit = ZFalse ' Pe ConfNum Mod
- END IF ' Pe ConfNum Mod
- * INSERTING new line(s)
- 59531 IF INSTR(ReturnOn$,","+ZWasZ$+",") THEN _ 'check if calling pgm wants
- EXIT SUB
- IF INSTR("LH?",ZWasZ$) THEN _ 'check whether caller wants help
- GOTO 59515
- IF INSTR(ZWasZ$,CHR$(46)) > 0 THEN _ ' DD021301
- GOTO 59532
- CALL BadFile (ZWasZ$,WasBF)
- IF WasBF > 1 THEN _
- GOTO 59532
- FPre$ = MenuFront$ ' check for sub-option
- PreSuf$ = CHR$(45) '- ' DD021301
- CALL BadFile (FPRE$ + ZWasZ$ + CHR$(45),WasBF) ' DD021301
- ZOK = ZFalse
- IF WasBF < 2 THEN _
- VerifyInMenu = ZFalse : _
- GOSUB 59538
- PreSuf$ = ""
- VerifyInMenu = PassedVerifyInMenu
- IF NOT ZOK THEN _
- FPre$ = FrontOpt$ : _ ' check standard option
- GOSUB 59538 : _
- IF NOT ZOK THEN _ ' check option where menu is
- FPre$ = MenuDrv$ + FrontPre$ : _
- IF FrontOpt$ <> FPre$ THEN _
- GOSUB 59538
- IF NewMenu THEN _
- NewMenu = ZFalse : _
- GOTO 59515
- IF ZOK THEN _
- EXIT SUB
- * REPLACING old line(s) by new
- 59532 GOSUB 59547
- * ------[ first line different ]------
- GOTO 59514 ' KG011501
- * REPLACING old line(s) by new
- 59540 WasX$ = FPre$ + _
- ZWasZ$ + PreSuf$ + _
- ".MNU" 'check whether option is a menu
- ZFileName$ = WasX$
- CALL Graphic (ZFileName$)
- IF ZOK THEN _
- NewMenu = ZTrue : _
- CurMenuVer$ = ZFileName$ : _
- CurMenu$ = WasX$ : _
- CALL BreakFileName (FPre$ + ZWasZ$,MenuDrv$,WasX$,ZWasDF$,ZTrue) : _
- MenuFront$ = MenuDrv$ + WasX$ : _
- * ------[ first line different ]------
- IF PreSuf$ = CHR$(45) THEN _ '- ' DD021301
- LastSubMenu$ = CurMenu$
- RETURN
- * REPLACING old line(s) by new
- 59600 ' $SUBTITLE: 'SetEcho -- subroutine to reset who echoes'
- ' $PAGE
- '
- ' NAME -- SetEcho
- '
- ' INPUTS -- PARAMETER MEANING
- ' NewEcho$ The new echo option
- ' ZLocalUser
- '
- ' OUTPUTS -- ZRemoteEcho Whether RBBS is to echo what a
- ' remote caller types
- '
- ' PURPOSE -- Resets who echos. "R" is for RBBS to echo.
- ' "I" is for intermediate host to echo.
- ' "C" is for caller's communication pgm to echo.
- '
- SUB SetEcho (NewEcho$) STATIC
- IF NewEcho$ = PrevEcho$ THEN _
- EXIT SUB
- * ------[ first line different ]------
- IF NewEcho$ = CHR$(82) THEN _ 'R ' DD021301
- ZRemoteEcho = (NOT ZLocalUser) _
- ELSE ZRemoteEcho = ZFalse
- IF ZLocalUser THEN _
- GOTO 59602
- IF NewEcho$ = CHR$(73) THEN _ 'I ' DD021301
- IF ZFossil THEN _
- Bytes = LEN(ZHostEchoOn$) : _
- CALL FosWrite(ZComPort,Bytes,ZHostEchoOn$) : _
- GOTO 59602 _
- ELSE PRINT #3,ZHostEchoOn$; : _
- GOTO 59602
- IF PrevEcho$ = CHR$(73) THEN _ 'I ' DD021301
- IF ZFossil THEN _
- Bytes = LEN(ZHostEchoOff$) : _
- CALL FosWrite(ZComPort,Bytes,ZHostEchoOff$) _
- ELSE PRINT #3,ZHostEchoOff$;
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59700 ZOutTxt$ = "Import what file? " + ZPressEnter$ ' DD060101
- CALL PopCmdStack
- IF ZSubParm = -1 OR ZWasQ = 0 THEN _
- EXIT SUB
- CALL FindIt (ZUserIn$(ZAnsIndex))
- IF NOT ZOK THEN _
- CALL QuickTPut1 (ZUserIn$(ZAnsIndex) + " not found") : _
- GOTO 59700
- WHILE NOT EOF(2) AND NumLines < MaxLines
- NumLines = NumLines + 1
- LINE INPUT #2,LineAra$(NumLines)
- WEND
- CLOSE 2
- CALL WordWrap (MaxLen,NumLines,LineAra$())
- END SUB
- * REPLACING old line(s) by new
- 59703 ' $SUBTITLE: 'WordWrap -- subroutine to wrap lines in a message'
- ' $PAGE
- '
- ' NAME -- WordWrap
- '
- ' INPUTS -- PARAMETER MEANING
- ' MaxLen MAXIMUM LENGTH OF A SINGLE LINE
- ' NumLines NUMBER OF LINES IN A MESSAGE
- ' LineAra$ ALL THE LINES IN THE MESSAGE
- '
- ' OUTPUTS -- NumLines
- ' LineAra$
- '
- ' PURPOSE -- Batch adjusts a message, wrapping lines if
- ' needed. Preserves paragraph structure.
- '
- SUB WordWrap (MaxLen,NumLines,LineAra$(1)) STATIC
- WasJ = 1
- SplitOn = 1 + .4 * MaxLen
- * ------[ first line different ]------
- WHILE WasJ <= NumLines and NumLines < ZMaxMsgLines 'Pe 08/04/91
- ReFormatted = ZFalse
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59704 CALL TrimTrail (LineAra$(WasJ),SPACE$(1)) ' DD021301
- WasK = LEN(LineAra$(WasJ))
- IF WasK <= MaxLen THEN _
- GOTO 59705
- CALL FindLast (LineAra$(WasJ),SPACE$(1),LastPos,HowMany) ' DD021301
- IF MID$(LineAra$(WasJ), 3, 1) = CHR$(62) THEN _ '> ' DD021301/QUOTE
- CALL AnyBut (LineAra$(WasJ),3,CHR$(62),WasX) _ ' DD021301/QUOTE
- ELSE _ ' DD081301/QUOTE
- CALL AnyBut (LineAra$(WasJ),1,CHR$(62),WasX) ' DD021301/QUOTE
- IF WasX = 0 THEN WasX = 2
- IF MID$(LineAra$(WasJ + 1),3,1) = CHR$(62) THEN _ ' DD021301/QUOTE
- CALL AnyBut (LineAra$(WasJ + 1),3,CHR$(62),Temp) _ ' DD021301/QUOTE
- ELSE _ ' DD081301/QUOTE
- CALL AnyBut (LineAra$(WasJ+1),1,CHR$(62),Temp) ' DD021301/QUOTE
- IF LEFT$(LineAra$(WasJ + 1),2) = SPACE$(2) OR ((Temp > 0) AND WasX <> Temp) THEN _ ' DD021301
- FOR WasK = NumLines TO WasJ + 1 STEP -1 : _
- LineAra$(WasK + 1) = LineAra$(WasK) : _
- NEXT : _
- NumLines = NumLines + 1 : _
- LineAra$(WasJ + 1) = ""
- IF WasX > 1 THEN _
- IF MID$(LineAra$(WasJ),WasX,1) = SPACE$(1) THEN _ ' DD021301
- WasX = WasX + 1
- WasX$ = LEFT$(LineAra$(WasJ),WasX-1)
- IF LastPos < SplitOn THEN _
- LineAra$(WasJ + 1) = WasX$ + MID$(LineAra$(WasJ),MaxLen) + MID$(LineAra$(WasJ + 1),WasX) : _
- LineAra$(WasJ) = LEFT$(LineAra$(WasJ),MaxLen - 1) + CHR$(45) _ ' DD021301
- ELSE ZUserIn$ = LEFT$(SPACE$(1), - (LEN(LineAra$(WasJ + 1)) > 0)) : _ ' DD021301
- LineAra$(WasJ + 1) = WasX$ + MID$(LineAra$(WasJ),LastPos + 1) + ZUserIn$ + MID$(LineAra$(WasJ + 1),WasX) : _
- LineAra$(WasJ) = LEFT$(LineAra$(WasJ),LastPos - 1)
- ReFormatted = ZTrue
- GOTO 59704
- * REPLACING old line(s) by new
- 59780 ' $SUBTITLE: 'GetAll -- subroutine to create directory list'
- ' $PAGE
- '
- ' NAME -- GetAll
- '
- ' INPUTS -- PARAMETER MEANING
- ' LookIn$ NAME OF FILE TO SEARCH
- ' DIR.EXT$ MAIN DIRECTORY EXTENSION TO USE
- ' StartPos Last POSITION USED IN ARRAY
- '
- ' OUTPUTS StartPos Last ELEMENT USED IN ARRAY
- ' LoadInto$ ARRAY TO LOAD ELEMENTS Found
- '
- ' PURPOSE -- Creates a list (LoadInto$) of all directories
- ' to be listed when ZWasA)ll is selected for a directory.
- ' All uses config parm, which can be either a single
- ' directory or list of directories (begin with "@").
- '
- SUB GetAll (LoadInto$(1), StartPos) STATIC
- * ------[ first line different ]------
- IF ZMasterDirName$ <> "" AND LEFT$(ZMasterDirName$,1) <> CHR$(64) THEN _ ' DD021301
- StartPos = StartPos + 1 : _
- LoadInto$(StartPos) = ZMasterDirName$ : _
- EXIT SUB
- ZOK = ZFalse
- IF LEN (ZMasterDirName$) > 1 AND LEFT$(ZMasterDirName$,1) = CHR$(64) THEN _ ' DD021301
- CALL FindIt(MID$(ZMasterDirName$,2))
- IF NOT ZOK THEN _
- CALL QuickTPut1 ("No dirs defined for A)ll") : _
- EXIT SUB
- MaxLoad = UBOUND(LoadInto$, 1)
- StartSort = StartPos + 1
- WHILE NOT EOF(2) AND StartPos < MaxLoad
- LINE INPUT #2, ZOutTxt$
- StartPos = StartPos + 1
- LoadInto$(StartPos) = ZOutTxt$
- WEND
- CLOSE 2
- END SUB
- * REPLACING old line(s) by new
- 59800 ' $SUBTITLE: 'BadFileChar -- checks file for illegal char'
- ' $PAGE
- '
- ' NAME -- BadFileChar
- '
- ' INPUTS -- PARAMETER MEANING
- ' FilName$ NAME OF FILE TO CHECK
- '
- ' OUTPUTS -- IsOK WHETHER NAME OK
- '
- ' PURPOSE -- Part of test for file's existence. If bad
- ' character in name, can't exist.
- '
- SUB BadFileChar (FilName$,IsOK) STATIC
- WasL = LEN(FilName$)
- IF WasL > 2 THEN _
- * ------[ first line different ]------
- IF INSTR(3,FilName$,CHR$(58)) > 0 THEN _ ': ' DD021301
- IsOK = ZFalse : _
- EXIT SUB
- WasX$ = FilName$ + CHR$(61) '= ' DD021301
- WasI = 1
- WHILE INSTR("/[]|<>+=;, ?*",MID$(WasX$,WasI,1)) = 0 AND ASC(MID$(WasX$,WasI)) < 128
- WasI = WasI + 1
- WEND
- IsOK = WasI > WasL
- END SUB
- '
- * REPLACING old line(s) by new
- 59850 ' $SUBTITLE: 'ConfMail -- quickly checks mail waiting'
- ' $PAGE
- '
- ' NAME -- ConfMail
- '
- ' INPUTS -- PARAMETER MEANING
- ' SKIP.CONFIRM Whether to skip confirm of option
- ' ZConfMailList$ File of user/message pairs to check
- ' ZActiveUserFile$ Active user file (restored on exit)
- ' ZActiveMessageFile$ Active msg file (restored)
- ' OUTPUTS -- None
- '
- ' PURPOSE -- Quicking scans message header record to get
- ' last msg # and user record to get whether any
- ' new mail and last msg read, reports both, using
- ' highlighting if new mail to caller.
- '
- SUB ConfMail (MailCheckConfirm,LinkNew,LinkPers) STATIC
- * ------[ first line different ]------
- IF NOT MailCheckConfirm AND ZWasGR = 4 THEN ' DD061903
- CALL BufFile (ZWelcomeFileDrvPath$ + "RIPWINC",WasX) ' DD061903
- END IF ' DD061903
- SkipJoinUnjoin = ZNonStop OR LinkNew OR LinkPers
- IF ZStartHash = 1 AND ZUserFileIndex > 0 THEN _
- CALL FindIt (ZConfMailList$) _
- ELSE ZOK = ZFalse
- IF NOT ZOK THEN _
- EXIT SUB
- IF PrevMailList$ <> ZConfMailList$ THEN _
- SkipParms = 0
- PrevMailList$ = ZConfMailList$
- IF MailCheckConfirm THEN _
- ZOutTxt$ = ZCRLf$ + ZFGB$ + _ ' DD052303
- "Check conferences for mail/uploads?" + _ ' DD052303
- ZEmphasizeOff$ + ZYesPrompt$ : _ ' DD060101
- ZTurboKey = -ZTurboKeyUser : _
- CALL PopCmdStack : _
- IF ZNo OR ZSubParm < 0 THEN _
- EXIT SUB
- CALL BreakFileName (ZActiveUserFile$,WasX$,NowInPre$,NowInExt$,ZFalse)
- CALL BreakFileName (ZOrigUserFile$,WasX$,OrigPre$,OrigExt$,ZFalse)
- CALL SkipLine (1)
- CALL QuickTPut1 (ZFGB$ + "Checking Message Bases You " + _ ' DD121501
- "Have Joined " + ZFGF$ + ZBG1$ + "(* = linked)" + _ ' DD082302
- ZEmphasizeOff$) ' DD072702
- IF LinkNew OR LinkPers THEN _
- ZLinkedConf$ = ""
- AnyMail = ZFalse
- ZStopInterrupts = ZFalse
- WasA1$ = ZActiveUserFile$
- MsgFileSave$ = ZActiveMessageFile$
- TempIndivValue$ = ""
- UserFileIndexSave = ZUserFileIndex
- UserRecordHold$ = ZUserRecord$
- ZOK = ZTrue
- CALL ReadParms (ZWorkAra$(),1,SkipParms)
- IF SkipParms = 0 THEN _
- LogicalEOF$ = "" _
- ELSE LogicalEOF$ = ZWorkAra$(1)
- * REPLACING old line(s) by new
- 59851 IF NOT ZOK THEN _
- GOTO 59856 _
- ELSE IF EOF(2) THEN _
- IF LogicalEOF$ = "" OR SkipParms = 0 THEN _
- GOTO 59856 _
- ELSE CALL FindIt (ZConfMailList$) : _
- SkipParms = 0 : _
- GOTO 59851
- CALL ReadAny
- ZActiveUserFile$ = ZOutTxt$
- CALL ReadAny
- IF ZErrCode > 0 THEN _
- GOTO 59856
- SkipParms = SkipParms + 2
- ZActiveMessageFile$ = ZOutTxt$
- CALL FindFile (ZActiveUserFile$,ZOK)
- IF NOT ZOK THEN _
- GOTO 59856
- * ------[ first line different ]------
- CALL OpenUser (ZHighestUserRecord) ' Mpl090202
- FIELD 5, 128 AS ZUserRecord$
- CALL FindFile (ZActiveMessageFile$,ZOK)
- IF NOT ZOK THEN _
- GOTO 59856
- CALL FindUser (ZOrigUserName$,"",ZStartHash,ZLenHash,_
- 0,0,ZHighestUserRecord,_ ' Mpl090202
- Found,HoldUserFileIndex,ZWasSL)
- IF NOT Found THEN _
- GOTO 59853
- CALL OpenMsg
- FIELD 1, 128 AS ZMsgRec$
- GET 1,1
- AnyMail = ZTrue
- WasX = CVI(MID$(ZUserRecord$,57,2))
- FileWait = (WasX AND 4096) > 0
- WasX = (WasX AND 512) > 0
- CALL BreakFileName (ZActiveUserFile$,WasX$,CurPre$,CurExt$,ZFalse)
- InCur = (CurPre$ = NowInPre$ AND CurExt$ = NowInExt$)
- * REPLACING old line(s) by new
- 59852 IF InCur THEN _
- FileWait = ZFileWaiting : _
- WasX = ZMailWaiting : _
- ZWasA = ZLastMsgRead _
- ELSE ZWasA = CVI(MID$(ZUserRecord$,51,2))
- ZWasB = VAL(LEFT$(ZMsgRec$,8))
- WasZ = (ZWasB - ZWasA)
- IF WasZ < 0 THEN _
- ZWasA = 0 : _
- WasZ = ZWasB _
- ELSE IF WasZ = 0 THEN _
- WasX = ZFalse
- ZWasSL = LEN(CurPre$)
- IF CurPre$ = "USERS" AND CurExt$ = "" THEN _
- Conf$ = "MAIN" _
- ELSE Conf$ = LEFT$(CurPre$,ZWasSL-1)
- ZOutTxt$ = MID$(STR$((ZWasB > ZWasA) * WasZ),2)
- * ------[ first line different ]------
- IF ZOutTxt$ = CHR$(48) THEN _ '0 ' DD021301
- MsgColor1$ = ZFG2$ : _ ' DD121501
- MsgColor2$ = ZFG1$ _ ' DD121501
- ELSE _ ' DD121501
- MsgColor1$ = ZFGA$ : _ ' DD121501
- MsgColor2$ = ZFG9$ ' DD121501
- Temp = LEN(ZOutTxt$)
- ZOutTxt$ = SPACE$(-(Temp<4) * (4-Temp)) + ZOutTxt$
- IF (WasZ > 0 AND LinkNew) OR (WasX AND LinkPers) THEN _
- IF (NOT InCur) THEN _
- CALL AddLink (Conf$)
- Temp = (INSTR(ZCarriageReturn$ + ZLinkedConf$,ZCarriageReturn$ + Conf$ + ZCarriageReturn$) > 0)
- ZWasY$ = ZFGA$ + MID$(" *",1-Temp,1) + ZFGE$ + SPACE$(1) + _ ' DD021301
- Conf$ + SPACE$(-(ZWasSL<8) * (8-ZWasSL)) ' DD101601
- IF WasX THEN _
- WasX$ = SPACE$(2) + ZFGD$ + CHR$(42) + SPACE$(1) + _ ' DD031301
- ZEmphasizeOn$ + " Some to you! " + ZEmphasizeOff$ _ ' DD080101
- ELSE WasX$ = SPACE$(10) ' DD021301
- IF FileWait THEN _
- Temp$ = SPACE$(2) + ZFGD$ + CHR$(42) + SPACE$(1) + _ ' DD031301
- ZEmphasizeOn$ + " Personal Upload for you! " + ZEmphasizeOff$ _ ' DD021301
- ELSE Temp$ = ""
- ZOutTxt$ = ZWasY$ + ZFG6$ + " : " + MsgColor1$ + _ ' DD121501
- ZOutTxt$ + MsgColor2$ + " new message(s)" + _ ' DD121501
- ZEmphasizeOff$ + WasX$ + Temp$ ' DD082601
- ZSubParm = 5
- CALL TPut
- ZJumpSupported = ZFalse
- IF SkipJoinUnjoin THEN _
- CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) : _
- GOTO 59853
- ZTurboKey = -ZTurboKeyUser
- CALL AskMore (",J)oin,U)njoin,L)ink,D)elink",ZTrue,ZFalse,WasX,ZFalse)
- IF ZNo THEN _
- GOTO 59856
- WasX$ = LEFT$(ZUserIn$(1),1)
- CALL AllCaps (WasX$)
- IF WasX$ = CHR$(74) THEN _ 'J ' DD021301
- ZLastIndex = ZWasQ : _
- ZHomeConf$ = Conf$ : _
- GOTO 59856
- IF WasX$ = CHR$(68) THEN _ 'D ' DD021301
- CALL DeLink (Conf$) : _
- GOTO 59852
- IF WasX$ = CHR$(76) THEN _ 'L ' DD021301
- CALL AddLink (Conf$) : _
- GOTO 59852
- IF WasX$ = CHR$(85) THEN _ 'U ' DD021301
- IF InCur OR (OrigPre$ = CurPre$ AND OrigExt$ = CurExt$) THEN _
- CALL SkipLine (1) : _ ' DD031302
- CALL QuickTPut1 (ZFGE$ + ZBG4$ + _ ' DD031302
- "Can't omit yourself from the board " + _ ' DD082201
- "or conference you're in" + ZEmphasizeOff$) _ ' DD082201
- ELSE LSET ZUserRecord$ = CHR$(0) + "deleted user" : _
- ZUserFileIndex = HoldUserFileIndex : _
- ZSubParm = 6 : _
- CALL FileLock : _
- PUT 5, HoldUserFileIndex : _
- ZSubParm = 8 : _
- CALL FileLock : _
- CALL SkipLine (1) : _ ' DD031302
- CALL QuickTPut (ZFGE$ + ZBG1$ + _ ' DD031302
- "Omitted you from " + ZFGF$ + Conf$ + _ ' DD082103
- ZEmphasizeOff$,2) ' DD031302
- * REPLACING old line(s) by new
- 59856 ZActiveUserFile$ = WasA1$
- CALL OpenUser (ZHighestUserRecord)
- FIELD 5, 128 AS ZUserRecord$
- IF (NOT ZRet) AND NOT AnyMail THEN _
- * ------[ first line different ]------
- CALL QuickTPut1 (ZFGF$ + ZBG2$ + "You have not joined " + _ ' DD082201
- "any conferences" + ZEmphasizeOff$) ' DD082201
- ZUserFileIndex = UserFileIndexSave
- LSET ZUserRecord$ = UserRecordHold$
- ZActiveMessageFile$ = MsgFileSave$
- CALL OpenMsg
- FIELD 1, 128 AS ZMsgRec$
- GET 1,1
- ZNonStop = (ZPageLength < 1)
- WasX$ = ZUserIn$(ZAnsIndex+1)
- CALL AllCaps (WasX$)
- ZAnsIndex = ZAnsIndex - (WasX$ = CHR$(67)) ' DD021301
- SkipParms = -(NOT EOF(2))*SkipParms
- LinkNew = ZFalse
- LinkPers = ZFalse
- CLOSE 2 ' KG012501
- END SUB
- * REPLACING old line(s) by new
- 59860 CALL QuickTPut (ZEmphasizeOff$,0)
- IF CantInterrupt THEN _
- ZTurboKey = 2 : _
- ZForceKeyboard = ZTrue : _
- * ------[ first line different ]------
- ZOutTxt$ = ZEmphasizeOn$ + "Press any key to continue" + _ ' DD081601
- ZEmphasizeOff$ _ ' DD081601
- ELSE GOSUB 59870 : _
- ZOutTxt$ = ZMorePrompt$ + Temp$ + ExtraPrompt$ + LEFT$(CHR$(62),-ZExpertUser) ' DD021301
- WasX = LEN(ZOutTxt$) + 2
- ZNoAdvance = OverWrite
- ZSubParm = 1
- IF ExtraPrompt$ = "" AND ZTurboKey = 0 THEN _
- ZTurboKey = -ZTurboKeyUser
- ZMacroMin = 2
- CALL TGet
- IF ZSubParm = -1 THEN _
- EXIT SUB
- ZTurboKey = ZFalse
- ZWasDF$ = ZUserIn$ (1)
- CALL AllCaps (ZWasDF$)
- WasI = INSTR(";C;A;",CHR$(59)+ZWasDF$+CHR$(59)) ' DD021301
- IF WasI = 1 THEN _
- ZNonStop = ZTrue : _
- ZWasQ = 0
- IF ZMorePromptLF THEN ' DD070104
- CALL SkipLine (1) ' DD070104
- ELSE ' DD070104
- CALL WipeLine (WasX + LEN(ZUserIn$)) ' DD070104
- END IF ' DD070104
- IF NOT ZHiLiteOff THEN _
- CALL QuickTPut (ZLastSmartColor$,0)
- IF CantInterrupt THEN _
- ZNo = ZFalse : _
- EXIT SUB
- IF WasI = 3 THEN _
- ZLastIndex = 0 : _
- AbortIndex = 32000
- IF ZNo THEN _
- ZKeyboardStack$ = "" : _
- ZCommPortStack$ = "" : _
- ZLastSmartColor$ = ""
- IF NOT ZJumpSupported THEN _
- EXIT SUB
- IF ZWasDF$ = CHR$(74) THEN _ 'J ' DD021301
- IF ZWasQ > 1 THEN _
- ZUserIn$ = ZUserIn$(2) : _
- GOTO 59866 _
- ELSE ZOutTxt$ = ZFG0$ + "Jump to what text? " + _ ' DD060101
- ZPressEnterExpert$ + ZEmphasizeOff$ : _ ' DD060101
- CALL PopCmdStack : _
- IF ZWasQ = 0 THEN _
- EXIT SUB _
- ELSE GOTO 59866
- IF ZWasDF$ <> CHR$(82) THEN _ 'R ' DD021301
- EXIT SUB
- ZUserIn$ = ZJumpLast$
- * REPLACING old line(s) by new
- 59890 ' $SUBTITLE: 'ExpireDate -- subroutine to display expiration date'
- ' $PAGE
- '
- ' NAME -- ExpireDate
- '
- ' INPUTS -- PARAMETER MEANING
- ' RegDate! COMPUTATIONAL REGISTRATION DATE
- ' RegPeriod DAYS IN REGISTRATION PERIOD
- '
- ' OUTPUTS -- ExpDate$ DISPLAYABLE EXPIRATION DATE
- '
- ' PURPOSE -- Computes/creates a displayable registration
- ' expiration date using registration date and days in
- ' registration period.
- '
- SUB ExpireDate (RegDate!,RegPeriod,ExpDate$) STATIC
- ExpDate! = RegDate! + RegPeriod
- ExpireYear = INT((ExpDate! - ExpDate! / 1461) / 365)
- ExpireDay = ExpDate! - (ExpireYear * 365.0 + INT((ExpireYear -1)/4))
- ExpireMonth = -((ExpireYear MOD 4)<>0) * _
- (1 - (ExpireDay > 31) - (ExpireDay > 59) - _
- (ExpireDay > 90) - (ExpireDay >120) - _
- (ExpireDay > 151) - (ExpireDay > 181) - _
- (ExpireDay > 212) - (ExpireDay > 243) - _
- (ExpireDay > 273) - (ExpireDay > 304) - _
- (ExpireDay > 334)) - ((ExpireYear MOD 4) = 0) * _
- (1 - (ExpireDay > 31) - (ExpireDay > 60) - _
- (ExpireDay > 91) - (ExpireDay >121) - _
- (ExpireDay > 152) - (ExpireDay > 182) - _
- (ExpireDay > 213) - (ExpireDay > 243) - _
- (ExpireDay > 274) - (ExpireDay > 305) - _
- (ExpireDay > 335))
- ExpireDay = (ExpireDay - ((ExpireMonth - 1) * 28 + _
- VAL(MID$("000303060811131619212426",(ExpireMonth -1) * 2 + 1,2)))) + _
- ((ExpireMonth > 2) AND ((ExpireYear MOD 4) = 0))
- * ------[ first line different ]------
- ExpDate$ = RIGHT$(CHR$(48) + MID$(STR$(ExpireMonth),2),2) + _ ' DD021301
- CHR$(47) + _ ' DD021301
- RIGHT$(CHR$(48) + MID$(STR$(ExpireDay),2),2) + _ ' DD021301
- CHR$(47) + _ ' DD021301
- RIGHT$(STR$(ExpireYear),2)
- END SUB
- * REPLACING old line(s) by new
- 59920 ' $SUBTITLE: 'ColorDir - builds a color FMS directory string'
- ' $PAGE
- '
- ' NAME -- ColorDir
- '
- ' INPUTS -- PARAMETER MEANING
- ' Strng$ String to alter
- ' FMSDir$ "Y" FOR FMS DIR
- ' "N" FOR PERSONAL Download
- '
- SUB ColorDir (Strng$,FMSDir$) STATIC
- * ------[ first line different ]------
- IF ZHiLiteOff THEN _ ' DD062304
- EXIT SUB
- IF FMSDir$ = CHR$(78) THEN _ 'N ' DD021301
- GOTO 59921
- '
- ' INSERT COLOR FOR FILENAME
- '
- ON INSTR("\ *",LEFT$(Strng$,1)) GOTO 59924,59922,59923
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59921 Strng$ = ZDR1$ + LEFT$(Strng$,13) + ZDR2$ + _ ' DD070203
- MID$(Strng$,14,10) + ZDR3$ + MID$(Strng$,24,10) + _ ' DD070203
- ZDR4$ + MID$(Strng$,34,ZMaxDescLen) + ZEmphasizeoff$ ' DD070203
- EXIT SUB
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59922 Strng$ = ZDR5$ + Strng$ 'extended description ' DD070203
- EXIT SUB
- * REPLACING old line(s) by new
- 59930 ' $SUBTITLE: 'CheckColor - highlights based on search string'
- ' $PAGE
- '
- ' NAME -- CheckColor
- '
- ' INPUTS -- PARAMETER MEANING
- ' LookFor$ String that triggers highlight
- ' LookIn$ String being searched
- ' EndColor$ Terminating color
- '
- ' OUTPUTS -- Strng$ Revised string
- '
- ' PURPOSE -- Adds highlighting to a string within a string.
- ' Respects previous colorization.
- SUB CheckColor (LookIn$,LookFor$,PassedEndColor$) STATIC
- IF LookFor$ = "" THEN _
- EXIT SUB
- WasX$ = LookIn$
- CALL AllCaps (WasX$)
- StartColor = INSTR(WasX$,LookFor$)
- IF StartColor < 1 THEN _
- EXIT SUB
- EndColor$ = PassedEndColor$
- IF EndColor$ = "" THEN _
- EndColor$ = ZEmphasizeOff$ : _
- CALL FindLast (LEFT$(LookIn$,StartColor-1),ZEscape$,WhereFound,WasJ) : _
- IF WhereFound > 0 THEN _
- * ------[ first line different ]------
- WasJ = INSTR(WhereFound,LookIn$,CHR$(109)) : _ 'm ' DD021301
- IF WasJ > 0 THEN _
- EndColor$ = MID$(LookIn$,WhereFound,WasJ-WhereFound+1)
- CALL Bracket (LookIn$,StartColor,StartColor + _ ' DD082101
- LEN(LookFor$)-1,ZEmphasizeOn$,EndColor$ + ZBG0$) ' DD082101
- END SUB
- * REPLACING old line(s) by new
- 59934 ' $SUBTITLE: 'SetHiLite - subroutine to reset highlight preference'
- ' $PAGE
- '
- ' NAME -- SetHiLite
- '
- ' INPUTS -- PARAMETER MEANING
- ' SetTo New value (True or False)
- ' ZEmphasizeOnDef$ String turns emphasize on
- ' ZEmphasizeOffDef$ String turns emphasize off
- '
- ' OUTPUTS -- ZHiLiteOff Callers preference on Hilite
- ' ZEmphasizeOn$ String to use for emphasis
- ' ZEmphasizeOff$ String to use after emphasis
- '
- SUB SetHiLite (SetTo) STATIC
- ZHiLiteOff = (ZEmphasizeOnDef$ <> "" AND SetTo)
- IF ZHiLiteOff THEN _
- ZEmphasizeOn$ = "" : _
- ZEmphasizeOff$ = "" : _
- * ------[ first line different ]------
- ZDR1$ = "" : _ ' DD070203
- ZDR2$ = "" : _ ' DD070203
- ZDR3$ = "" : _ ' DD070203
- ZDR4$ = "" : _ ' DD070203
- ZDR5$ = "" : _ ' DD070203
- ZDR6$ = "" : _ ' DD070203
- ZDR7$ = "" : _ ' DD070203
- ZFG0$ = "" : _ ' DD083003/COLR
- ZFG1$ = "" : _
- ZFG2$ = "" : _
- ZFG3$ = "" : _
- ZFG4$ = "" : _ ' DD061303/COLR
- ZFG5$ = "" : _ ' DD061303/COLR
- ZFG6$ = "" : _ ' DD061303/COLR
- ZFG7$ = "" : _ ' DD061303/COLR
- ZFG8$ = "" : _ ' DD061303/COLR
- ZFG9$ = "" : _ ' DD061303/COLR
- ZFGA$ = "" : _ ' DD061303/COLR
- ZFGB$ = "" : _ ' DD061303/COLR
- ZFGC$ = "" : _ ' DD061303/COLR
- ZFGD$ = "" : _ ' DD061303/COLR
- ZFGE$ = "" : _ ' DD072201/COLR
- ZFGF$ = "" : _ ' DD072201/COLR
- ZBG0$ = "" : _ ' DD081801/BGCOLOR
- ZBG1$ = "" : _ ' DD081801/BGCOLOR
- ZBG2$ = "" : _ ' DD081801/BGCOLOR
- ZBG3$ = "" : _ ' DD081801/BGCOLOR
- ZBG4$ = "" : _ ' DD081801/BGCOLOR
- ZBG5$ = "" : _ ' DD081801/BGCOLOR
- ZBG6$ = "" : _ ' DD081801/BGCOLOR
- ZBG7$ = "" _ ' DD081801/BGCOLOR
- ELSE ZEmphasizeOn$ = ZEmphasizeOnDef$ : _
- ZEmphasizeOff$ = ZEscape$ + CHR$(91) + ZBoldText$ + _ ' DD050201
- ";40;" + MID$(STR$(ZUserTextColor),2) + CHR$(109) : _ ' DD050502
- ZFG0$ = ZEmphasizeOff$ : _ ' DD050201
- CALL SetANSIColors ' DD070203
- CALL SetSection ' DD010202
- END SUB
- * REPLACING old line(s) by new
- 59940 ' $SUBTITLE: 'ColorPrompt - subroutine to colorize prompts'
- ' $PAGE
- '
- ' NAME -- ColorPrompt
- '
- ' INPUTS -- PARAMETER MEANING
- ' Strng$ String to colorize
- ' ZHiLiteOff Whether highlighting is off
- ' ZEmphasizeOn$ String to use for emphasis
- ' ZEmphasizeOff$ String to use after emphasis
- '
- ' OUTPUTS -- Strng$ Colorized string
- '
- ' PURPOSE -- colorizes a string based on sysop settings
- ' and the string.
- ' [...] is the default - put in emphasis
- * ------[ first line different ]------
- ' <...> options to type - put in ZFGB$ ' DD081801
- ' and first two preceeding words use ZFGA$ ' DD081801
- ' and ZFGE$ options identified on right ' DD081801
- ' by ) and on left by space or comma - put
- ' in ZFGB$ ' DD081801
- '
- SUB ColorPrompt (Strng$) STATIC
- CALL SmartText(Strng$,ZTrue,ZFalse,ZFalse) 'Pe 02/06/93
- IF ZHiLiteOff THEN _
- EXIT SUB
- AlreadyColorized = (INSTR(Strng$,ZEscape$) > 0)
- WasX = INSTR(Strng$,CHR$(60)) '< ' DD021301
- IF WasX > 0 THEN _
- GOTO 59943
- WasX = INSTR(Strng$,CHR$(91)) ' highlight default '[ ' DD021301
- IF WasX > 0 THEN _
- WasY = INSTR(WasX,Strng$,CHR$(93)) : _ '] ' DD021301
- IF WasY > 0 THEN _
- CALL FindLast (LEFT$(Strng$,WasY),CHR$(91),WasX,Temp) : _ ' DD021301
- CALL Bracket (Strng$,WasX,WasY,ZEmphasizeOn$,ZEmphasizeOff$)
- ' IF AlreadyColorized THEN _ ' DD091702
- ' EXIT SUB ' DD091702
- WasX = INSTR(Strng$,CHR$(60)) '< ' DD021301
- IF WasX < 1 THEN _
- GOTO 59945
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59943 WasY = INSTR(WasX,Strng$,CHR$(62)) '> ' DD021301
- IF WasY < 1 THEN _
- GOTO 59945
- CALL Bracket (Strng$,WasX,WasY,ZFGB$,ZEmphasizeOff$) ' DD081801
- WasY = INSTR(Strng$,SPACE$(1)) ' DD021301
- IF WasY > 1 AND WasY < WasX THEN _
- Strng$ = ZFGA$ + Strng$ : _ ' DD081801
- WasZ = INSTR(WasY+1,Strng$,SPACE$(1)) : _ ' DD021301
- IF WasZ > 1 AND WasZ < WasX+LEN(ZFGA$) THEN _ ' DD081801
- Strng$ = LEFT$(Strng$,WasZ) + ZFG2Def$ + MID$(Strng$,WasZ+1)
- EXIT SUB
- * REPLACING old line(s) by new
- 59945 WasX = 1
- DidInsert = ZFalse
- * ------[ first line different ]------
- WasL = LEN(ZFGB$) ' DD081801
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59950 WasY = INSTR (WasX,Strng$,CHR$(41)) ') ' x: where command begins, y: terminating pos ' DD021301
- WasZ = INSTR (WasX,Strng$,CHR$(44)) ', ' DD021301
- IF WasY = 0 OR (WasZ > 0 AND WasZ < WasY) THEN _
- WasY = WasZ
- WasK = LEN(Strng$)
- IF WasX > WasK THEN _
- EXIT SUB
- IF WasY < 1 THEN _
- IF NOT DidInsert THEN _
- EXIT SUB _
- ELSE WasY = WasK+1
- WasZ = WasY - 1
- WHILE WasZ > 0 ' got terminating pos: find beginning
- IF INSTR(ZOptionEnd$,MID$(Strng$,WasZ,1)) > 0 THEN _
- WasX = WasZ + 1 : _
- WasZ = 0
- WasZ = WasZ - 1
- WEND
- IF WasY-WasX < 3 THEN _ ' exclude commands too long
- CmndString$ = MID$(Strng$,WasX,WasY-WasX) : _
- WasX$ = CmndString$ : _
- CALL AllCaps (CmndString$) : _
- IF WasX$ = CmndString$ THEN _ ' exclude lower case
- DidInsert = ZTrue : _
- CALL Bracket (Strng$,WasX,WasY-1,ZFGB$,ZEmphasizeOff$) : _ ' colorize ' DD081801
- WasY = WasY + WasL
- WasX = WasY + 1
- GOTO 59950
- END SUB
- * REPLACING old line(s) by new
- 59965 ' $SUBTITLE: 'UserColor - lets user set color for normal text'
- ' $PAGE
- '
- ' NAME -- UserColor
- '
- ' INPUTS -- PARAMETER MEANING
- ' ZEmphasizeOff$ Normal text color
- '
- ' OUTPUTS -- ZEmphasizeOff$ New text color
- ' ZBoldText$ Whether bold (0 not, 1 bold)
- ' ZUserTextColor ANSI Color selected
- '
- ' PURPOSE -- Lets caller select desired color and whether bold.
- '
- SUB UserColor STATIC
- IF ZHiLiteOff THEN _
- * ------[ first line different ]------
- EXIT SUB _ ' DD061303/COLR
- ELSE _ ' DD061303/COLR
- ZFG0$ = ZEmphasizeOffDef$ : _ ' DD083003/COLR
- CALL SetANSIColors ' DD070203
- * REPLACING old line(s) by new
- 59970 CALL QuickTPut (ZEmphasizeOff$,0)
- ZOutTxt$ = "Make text R)ed,G)reen,Y)ellow,B)lue,P)urple,C)yan,W)hite" + ZPressEnterExpert$
- GOSUB 59973
- IF ZWasQ = 0 THEN _
- * ------[ first line different ]------
- ZEmphasizeOff$ = ZEscape$ + CHR$(91) + ZBoldText$ + _ ' DD021301
- ";40;" + MID$(STR$(ZUserTextColor),2) + CHR$(109) : _ ' DD021301
- EXIT SUB
- CALL AllCaps (ZUserIn$)
- WasX = INSTR("RGYBPCW",ZUserIn$)
- IF WasX = 0 THEN _
- GOTO 59970
- ZUserTextColor = 30 + WasX
- ZOutTxt$ = "Make text Bright?" + ZNoPrompt$ ' DD060101
- GOSUB 59973
- ZBoldText$ = CHR$(48 - ZYes)
- ZEmphasizeOff$ = ZEscape$ + CHR$(91) + ZBoldText$ + ";40;" + MID$(STR$(ZUserTextColor),2) + CHR$(109) ' DD021301
- GOTO 59970
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 59973 ZSubParm = 1 ' Mpl090202
- ZTurboKey = -ZTurboKeyUser
- ' CALL PopCmdStack ' Mpl090202
- CALL TGet
- IF ZSubParm = -1 THEN _
- EXIT SUB
- RETURN
- END SUB
- * REPLACING old line(s) by new
- 59980 ' $SUBTITLE: 'SetGraphic - Sets user graphic preference'
- ' $PAGE
- '
- ' NAME -- SetGraphic
- '
- ' INPUTS -- PARAMETER MEANING
- ' GraphicsNumber 0=None, 1=Ascii, 2=color
- '
- ' OUTPUTS -- ZWasGR Shared var - set to
- ' graphics.number
- ' ZUserGraphicDefault$ What add to file name to
- ' see if got graphics file ver
- '
- ' PURPOSE -- Sets file graphics preference
- '
- SUB SetGraphic (GraphicsNumber) STATIC
- ZWasGR = GraphicsNumber
- * ------[ first line different ]------
- ZUserGraphicDefault$ = MID$(" GCVR",ZWasGR+1, - (ZWasGR > 0)) ' DD061301
- IF ZWasGR = 4 THEN ' DD061301
- ZTurboKeyUser = ZFalse ' DD061301
- ZPageLength = 23 ' DD061301
- ZExpertUser = ZFalse ' DD061301
- CALL SetExpert ' DD061301
- END IF ' DD061301
- END SUB
- * REPLACING old line(s) by new
- 60131 IF WasY > LEN(Strng$) THEN _
- EXIT SUB
- * ------[ first line different ]------
- WasX = INSTR(WasY,Strng$,CHR$(91)) '[ ' DD021301
- IF WasX = 0 THEN _
- EXIT SUB
- WasY = INSTR(WasX,Strng$,CHR$(93)) '] ' DD021301
- IF WasY = 0 THEN _
- EXIT SUB
- ZMsgPtr = WasY-WasX+1
- Temp = WasY-WasX-1
- CALL CheckInt(MID$(Strng$,WasX+1,Temp))
- IF (ZErrCode > 0) OR (ZTestedIntValue < 1) OR (ZTestedIntValue > ZMaxWorkVar) THEN _
- GOTO 60135
- IF ((ZTestedIntValue < 10) AND (Temp = 1)) OR ((ZTestedIntValue > 9) AND (Temp = 2)) THEN _
- GOTO 60132
- WasY = WasX + 1
- GOTO 60131
- * REPLACING old line(s) by new
- 60132 WorkHold$ = ZGSRAra$(ZTestedIntValue)
- IF WasY = LEN(Strng$) THEN _
- GOTO 60151
- * ------[ first line different ]------
- IF MID$(Strng$,WasY+1,1) <> CHR$(40) THEN _ '( ' DD021301
- GOTO 60151
- WasI = INSTR(WasY+1,Strng$,CHR$(41)) ') ' DD021301
- IF WasI = 0 THEN _
- GOTO 60151
- WasJ = INSTR(WasY+1,Strng$,CHR$(58)) ': ' DD021301
- IF WasJ > WasI THEN _
- GOTO 60151
- CALL CheckInt (MID$(Strng$,WasY+2))
- IF (ZErrCode > 0) OR (ZTestedIntValue < 1) OR _
- (ZTestedIntValue > LEN(WorkHold$)) THEN _
- GOTO 60151
- WasY = WasI
- ZMsgPtr = WasI-WasX+1
- StartSub = ZTestedIntValue
- CALL CheckInt (MID$(Strng$,WasJ+1))
- IF ZErrCode > 0 OR ZTestedIntValue < 1 OR _
- (ZTestedIntValue > LEN(WorkHold$)) THEN _
- GOTO 60151
- LenSub = ZTestedIntValue
- WorkHold$ = MID$(WorkHold$,StartSub,LenSub)
- GOTO 60151
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 60143 WorkHold$ = MID$(ZBaudParity$,INSTR(ZBaudParity$,CHR$(44))+1,1) ' DD021301
- GOTO 60151
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 60149 IF ZWasBatchTransfer THEN _ 'Pe BatchUp Mod
- CALL BreakFileName (ZFileName$,Drive$,Prefix$,Ext$,ZFalse) : _ ' Mpl090202
- WorkHold$ = Drive$ _ ' Mpl090202
- ELSE _ ' Mpl090202
- IF ZBatchTransfer THEN _
- WorkHold$ = CHR$(64) + ZNodeWorkFile$ _ ' DD021301
- ELSE WorkHold$ = ZFileName$
- GOTO 60151
- * REPLACING old line(s) by new
- 60180 ' $SUBTITLE: 'TimeLock - Test TIME LOCK for premium features'
- ' $PAGE
- '
- ' NAME -- TimeLock (written by Doug Azzarito)
- '
- ' INPUTS -- PARAMETER MEANING
- ' ZTimeLockSet SECONDS/SESSION TO LOCK
- '
- ' OUTPUTS -- ZSubParm -1 if feature is LOCKED
- '
- ' PURPOSE -- Check elapsed time for lock duration
- '
- SUB TimeLock STATIC
- CALL TimeRemain(MinsRemaining)
- IF ZSecsUsedSession! >= ZTimeLockSet THEN _
- ZOK = ZTrue : _
- EXIT SUB
- * ------[ first line different ]------
- ' ZOutTxt$ = ZFirstName$ ' DD090202
- ' CALL NameCaps(ZOutTxt$) ' DD090202
- ' CALL QuickTPut1 ("Sorry, " + ZOutTxt$ + ", function locked" + _' DD090202
- ' STR$(INT((ZTimeLockSet-ZSecsUsedSession!)/60)) + _' DA11102
- ' " more minutes" + _ ' DD090202
- ' STR$(INT(ZTimeLockSet-ZSecsUsedSession!) MOD 60) + " seconds")' DD090202
- CALL BufFile(ZHelpPath$+"TIMELOCK"+ZHelpExtension$,WasX)
- ZOK = ZFalse
- ZLastIndex = 0
- END SUB
- * REPLACING old line(s) by new
- 60200 ' $SUBTITLE: 'MarkTime - Give feedback for lengthy processes'
- ' $PAGE
- '
- ' NAME -- MarkTime
- '
- ' INPUTS -- PARAMETER MEANING
- ' DotNumber How many dots printed
- '
- ' OUTPUTS -- DotNumber
- '
- ' PURPOSE -- Marks time by putting colorized dots out
- ' to 4, then erasing
- '
- SUB MarkTime (DotNumber) STATIC
- * ------[ first line different ]------
- IF DotNumber = 0 THEN ' DD012602
- Style = Style + 1 ' DD062904
- IF Style > 6 OR Style < 1 THEN Style = 1 ' DD021001
- ON Style GOSUB 60230,60240,60250,60260,60270,60280 ' DD012602
- CALL QuickTPut (SPACE$(2),0) ' DD021301
- END IF ' DD012602
- TimeNow! = TIMER
- IF TimeNow! < PrevTI! THEN ' DD080102
- PrevTI! = TIMER ' DD080102
- EXIT SUB ' DD080102
- END IF ' DD080102
- IF TimeNow! - PrevTI! < 0.15 THEN _ ' DD012602
- EXIT SUB ' DD012602
- PrevTI! = TimeNow! ' DD012602
- DotNumber = DotNumber + 1
- IF DotNumber > 4 THEN DotNumber = 1 ' DD012602
- WasX$ = CHR$(8) + CHR$(32) + CHR$(8) ' DD062909
- ON DotNumber GOTO 60201,60202,60203,60204
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 60201 WasX$ = WasX$ + ZFGA$ + char1$ ' DD012602
- GOTO 60205 ' DD012602
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 60202 WasX$ = WasX$ + ZFGE$ + char2$ ' DD012602
- GOTO 60205 ' DD012602
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 60203 WasX$ = WasX$ + ZFGC$ + char3$ ' DD012602
- GOTO 60205 ' DD012602
- * REPLACING old line(s) by new
- 60204 WasX$ = WasX$ + ZFGB$ + char4$ ' DD012602
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 60205 CALL QuickTPut (WasX$ + ZEmphasizeOff$,0) ' DD012602
- EXIT SUB ' DD012602
- * INSERTING new line(s)
- 60230 IF ZWasGR = 0 THEN GOTO 60260 ' DD012602
- char1$ = CHR$(221) ' DD012602
- char2$ = CHR$(220) ' DD012602
- char3$ = CHR$(222) ' DD012602
- char4$ = CHR$(223) ' DD012602
- RETURN ' DD012602
- 60240 IF ZWasGR = 0 THEN GOTO 60270 ' DD012602
- char1$ = CHR$(45) ' DD030701
- char2$ = CHR$(61) ' DD030701
- char3$ = CHR$(247) ' DD030701
- char4$ = CHR$(240) ' DD012602
- RETURN ' DD012602
- 60250 IF ZWasGR = 0 THEN GOTO 60280 ' DD012602
- char1$ = CHR$(92) ' DD012602
- char2$ = CHR$(124) ' DD012602
- char3$ = CHR$(47) ' DD012602
- char4$ = CHR$(196) ' DD012602
- RETURN ' DD012602
- 60260 char1$ = CHR$(43) ' DD012602
- char2$ = CHR$(42) ' DD012602
- char3$ = CHR$(45) ' DD012602
- char4$ = CHR$(42) ' DD012602
- RETURN ' DD012602
- 60270 char1$ = CHR$(46) ' DD040201
- char2$ = CHR$(111) ' DD040201
- char3$ = CHR$(79) ' DD040201
- char4$ = CHR$(111) ' DD040201
- RETURN ' DD012602
- 60280 char1$ = CHR$(92) ' DD012602
- char2$ = CHR$(124) ' DD012602
- char3$ = CHR$(47) ' DD012602
- char4$ = CHR$(45) ' DD012602
- RETURN ' DD012602
- END SUB ' DD012602
- * REPLACING old line(s) by new
- 60300 ' $SUBTITLE: 'AutoPage - NOTIFIES ZSysop WHEN SPECIFIC USER CALLS'
- ' $PAGE
- '
- ' NAME -- AutoPage 'Contributed by Gregg and Bob Snyder
- ' 'and RoseMarie Siddiqui
- '
- ' INPUTS -- ZAutoPageDef$ List of conditions that trigger
- ' notification and how
- '
- ' OUTPUTS -- NONE
- '
- ' PURPOSE -- Search ZAutoPageDef$ for match on whether
- ' on name, security level, whether new user.
- ' Also controls whether caller notified and
- ' number of times sysop has bell rung.
- ' And what tune to play (if any).
- '
- SUB AutoPage STATIC
- CALL FindIt (ZAutoPageDef$)
- IF NOT ZOK THEN _
- EXIT SUB
- ZErrCode = 0
- ZOK = ZFalse
- WHILE NOT EOF(2) AND ZOK = ZFalse AND ZErrCode = 0
- CALL ReadParms (ZWorkAra$(),4,1)
- IF ZErrCode = 0 THEN _
- ZOK = (ZWorkAra$(1) = ZActiveUserName$) : _
- IF NOT ZOK THEN _
- IF ZNewUser AND ZWorkAra$(1) = "NEWUSER" THEN _
- ZOK = ZTrue _
- * ------[ first line different ]------
- ELSE IF LEFT$(ZWorkAra$(1),1) = CHR$(47) AND LEN(ZWorkAra$(1)) > 2 THEN _ ' DD021301
- ZWasB = INSTR (2,ZWorkAra$(1),CHR$(47)) : _ ' DD021301
- IF ZWasB > 0 AND LEN(ZWorkAra$(1)) > ZWasB THEN _
- IF ZUserSecLevel <= VAL(MID$(ZWorkAra$(1),ZWasB+1)) AND _
- ZUserSecLevel >= VAL(MID$(ZWorkAra$(1),2)) THEN _
- ZOK = ZTrue
- WEND
- CLOSE 2
- IF ZErrCode > 0 OR NOT ZOK THEN _
- ZErrCode = 0 : _
- EXIT SUB
- ZPageStatus$ = "AP!"
- IF LEFT$(ZWorkAra$(2),1) = CHR$(78) THEN _ 'N ' DD021301
- ZOutTxt$ = "Telling sysop you're on..." : _
- CALL RingCaller
- ZWasB = (ZWorkAra$(4) = "")
- ZWorkAra$(5) = ""
- TempSnoop = ZSnoop
- ZSnoop = ZTrue
- CALL Line25
- FOR WasI = 1 TO VAL(ZWorkAra$(3))
- IF ZWasB THEN _
- CALL LPrnt (ZBellRinger$,0) : _
- ELSE ZWorkAra$(5) = ZWorkAra$(5) + "O4 X" + VARPTR$(ZWorkAra$(4))
- NEXT
- IF NOT ZWasB THEN _
- CALL RBBSPlay (ZWorkAra$(5))
- ZSnoop = TempSnoop
- END SUB
- * REPLACING old line(s) by new
- 62540 ' $SUBTITLE: 'RptTime -- Reports time on system'
- ' $PAGE
- '
- ' NAME -- RptTime
- '
- ' INPUTS -- PARAMETER MEANING
- '
- ' OUTPUTS --
- '
- ' PURPOSE -- Tells user time used on system
- '
- SUB RptTime STATIC
- * ------[ first line different ]------
- IF ZActiveUserName$ = "" OR ZFirstName$ = "" THEN _ ' DD010203
- EXIT SUB ' DD010203
- CALL SkipLine (1)
- CALL GetTime
- CALL AMorPM
- Mins = (ZSessionHour * 60) + ZSessionMin
- CALL Carrier
- IF ZSubParm = -1 THEN _
- EXIT SUB
- CALL QuickTPut1 (ZFG5$ + "Now: " +ZFGB$ + DATE$ + _ ' DD061602
- ZFG5$ + " at " + ZFGB$ + TIME$) ' DD061602
- CALL QuickTPut1 (ZFG2$ + "On for" + ZFGE$ + STR$(Mins) + _ ' DD082001
- ZFG2$ + " mins," + _ ' DD082001
- ZFGE$ + STR$(ZSessionSec) + ZFG2$ + " secs") ' DD082001
- ' CALL Talk (7,ZOutTxt$) ' DD060401
- END SUB
- * REPLACING old line(s) by new
- 62602 IF EOF(2) THEN _
- GOTO 62604
- CALL ReadParms (ZWorkAra$(),13,1)
- IF ZErrCode > 0 THEN _
- EXIT SUB
- * ------[ first line different ]------
- ZDefaultXfer$ = ZDefaultXfer$ + SPACE$(1) ' DD021301
- ZInternalEquiv$ = ZInternalEquiv$ + SPACE$(1) ' DD021301
- IF ZUserSecLevel < VAL(ZWorkAra$(2)) THEN _
- GOTO 62602
- IF LEFT$(ZWorkAra$(5),1) = CHR$(82) THEN _ 'R ' DD021301
- IF NOT ZReliableMode THEN _
- GOTO 62602
- IF LEFT$(ZWorkAra$(3),1) = CHR$(73) THEN _ 'I ' DD021301
- GOTO 62603
- WasX = INSTR(ZWorkAra$(12)+SPACE$(1),SPACE$(1)) ' DD021301
- WasX$ = LEFT$(ZWorkAra$(12),WasX-1)
- CALL FindFile (WasX$,Found)
- IF Found THEN _
- WasX = INSTR(ZWorkAra$(13)+SPACE$(1),SPACE$(1)) : _ ' DD021301
- WasX$ = LEFT$(ZWorkAra$(13),WasX-1) : _
- CALL FindFile (WasX$,Found)
- IF NOT Found THEN _
- GOTO 62602
- * REPLACING old line(s) by new
- 62603 MID$(ZDefaultXfer$,LEN(ZDefaultXfer$),1) = LEFT$(ZWorkAra$(1),1)
- CALL FindLast (ZWorkAra$(1),ZCrLf$,WasX,WasI)
- IF WasX > 0 AND WasX >= LEN(ZWorkAra$(1)) - 2 THEN _
- ZWorkAra$(1) = LEFT$(ZWorkAra$(1),WasX-1)
- IF (WasL + LEN(ZWorkAra$(1)) < 62) AND WasX = 0 THEN _
- * ------[ first line different ]------
- ZTransferOption$ = ZTransferOption$ + CHR$(44) + ZWorkAra$(1) : _ ' DD021301
- WasL = WasL + LEN(ZWorkAra$(1)) + 1 _
- ELSE WasL = LEN(ZWorkAra$(1)) : _
- ZTransferOption$ = ZTransferOption$ + _
- ZCrLf$ + _
- ZWorkAra$(1)
- IF LEFT$(ZWorkAra$(3),1) = CHR$(73) AND RIGHT$(ZWorkAra$(3),1) <> CHR$(73) THEN _ ' DD021301
- MID$(ZInternalEquiv$,LEN(ZInternalEquiv$),1) = RIGHT$(ZWorkAra$(3),1)
- GOTO 62602
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 62604 IF INSTR(ZInternalEquiv$,CHR$(78)) > 0 THEN _ 'N ' DD021301
- GOTO 62605
- IF WasX = 0 THEN _
- ZTransferOption$ = ZTransferOption$ + ",N)one" _
- ELSE ZTransferOption$ = ZTransferOption$ + ZCrLf$ + "N)one"
- ZDefaultXfer$ = ZDefaultXfer$ + CHR$(78) 'N ' DD021301
- ZInternalEquiv$ = ZInternalEquiv$ + CHR$(78) 'N ' DD021301
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 62605 IF LEFT$(ZTransferOption$,1) = CHR$(44) THEN _ ', ' DD021301
- ZTransferOption$ = MID$(ZTransferOption$,2)
- IF INSTR(ZDefaultXfer$,ZUserXferDefault$) = 0 THEN _
- CALL QuickTPut1 ("Protocol "+ZUserXferDefault$+" unavailable. Default reset to None") : _
- ZUserXferDefault$ = MID$(ZDefaultXfer$,INSTR(ZInternalEquiv$,CHR$(78)),1) ' DD021301
- END SUB
- * REPLACING old line(s) by new
- 62620 ' $SUBTITLE: 'Transfer - Subroutine for external protocols'
- ' $PAGE
- '
- ' NAME -- Transfer
- '
- ' INPUTS -- PARAMETER MEANING
- ' ZTransferFunction = 1 DOWNLOAD FILE TO USER
- ' = 2 UPLOAD FILE TO RBBS-PC
- ' ZFileName$ NAME OF FILE FOR Transfer
- ' ZComPort$ NAME OF COMMUNICATIONS PORT
- ' TO BE USED BY KERMIT (COM1
- ' OR COM2)
- ' ZBPS = -1 FOR 300 BAUD
- ' = -2 FOR 450 BAUD
- ' = -3 FOR 1200 BAUD
- ' = -4 FOR 2400 BAUD
- ' = -5 FOR 4800 BAUD
- ' = -6 FOR 9600 BAUD
- * ------[ first line different ]------
- ' = -7 FOR 14400 BAUD ' DD090202
- ' = -8 FOR 19200 BAUD ' Mpl122301
- '
- ' OUTPUTS -- NONE
- '
- ' PURPOSE -- To transfer files using external protocols
- '
- SUB Transfer STATIC
- IF ZUpBatchTransfer THEN _
- EXIT SUB
- IF ZPrivateDoor THEN _
- CALL PrivDoorRtn : _
- EXIT SUB
- IF ZTransferFunction = 1 THEN _
- ZUserIn$ = ZDownTemplate$ : _
- ZWasZ$ = "send" _ ' DD083001
- ELSE IF ZTransferFunction = 2 THEN _
- ZUserIn$ = ZUpTemplate$ : _
- ZWasZ$ = "receive" ' DD083001
- CALL MetaGSR (ZUserIn$,ZFalse)
- CALL QuickTPut1 (ZFGE$ + "Protocol: " + ZFG3$ + _ ' DD082501
- ZProtoPrompt$ + ZEmphasizeOff$) ' DD082501
- CALL QuickTPut (ZFG2$ + "Ready to " + ZWasZ$ + ": ",0) ' DD082501
- IF ZBatchTransfer or ZWasBatchTransfer THEN _ 'Pe BatchUp mod
- CALL QuickTPut1 (ZFGF$ + ZBG1$ + "(BATCH)" + _ ' DD082501
- ZEmphasizeOff$) _ ' DD082501
- ELSE CALL QuickTPut1 (SPACE$(1) + ZFGF$ + ZBG1$ + ZFileNameHold$ + _ ' DD021301
- ZEmphasizeOff$) ' DD082501
- IF ZWasBatchTransfer THEN _ 'Pe BatchUp mod
- Temp$ = ZBatchWorkFile$ _ ' Mpl090202
- ELSE IF ZBatchTransfer Then _ ' Mpl090202
- Temp$ = ZNodeWorkFile$ ' Mpl090202
- IF ZBatchTransfer or ZWasBatchTransfer THEN _ 'Pe BatchUp mod
- CALL OpenWork (2,Temp$) : _ ' Mpl090202
- WHILE NOT EOF(2) : _
- CALL ReadAny : _
- CALL BreakFileName (ZOutTxt$,ZWasZ$,ZWasY$,WasX$,ZTrue) : _
- CALL QuickTPut1 (ZFG6$+ZWasY$+WasX$+ZEmphasizeOff$) : _ ' DD082501
- WEND
- IF ZAutoEnd = 1 THEN _ 'Pe 03/30/92
- CALL QuickTPut1 (ZFG9$ + "Automatic LogOff if " + _ ' DD050301
- ZFGB$ + "TRANSFER " + _ ' DD050301
- ZFG9$ + "Successful" + ZEmphasizeOff$) ' DD050301
- CALL PrivDoorRtn
- END SUB
- * REPLACING old line(s) by new
- 62624 ' $SUBTITLE: 'PrivDoorRtn - subroutine to exit as a private door.'
- ' $PAGE
- '
- ' NAME -- PrivDoorRtn
- '
- ' INPUTS -- PARAMETER MEANING
- ' ZTransferFunction = 1 DOWNLOAD FILE TO USER
- ' = 2 UPLOAD FILE TO RBBS-PC
- ' = 3 USER REGISTRATION PGM
- ' ZUserIn$ NAME OF FILE TO EXIT TO
- ' ZComPort$ NAME OF COMMUNICATIONS PORT
- ' TO BE USED BY KERMIT (COM1
- ' OR COM2)
- ' ZBPS = -1 FOR 300 BAUD
- ' = -2 FOR 450 BAUD
- ' = -3 FOR 1200 BAUD
- ' = -4 FOR 2400 BAUD
- ' = -5 FOR 4800 BAUD
- ' = -6 FOR 9600 BAUD
- ' = -7 FOR 19200 BAUD
- '
- ' OUTPUTS -- NONE
- '
- ' PURPOSE -- To transfer control to another program
- '
- SUB PrivDoorRtn STATIC
- IF ZPrivateDoor THEN _
- GOTO 62630
- IF ZFakeXRpt THEN _
- CALL FakeXRpt (ZWasFT$)
- IF ZAdvanceProtoWrite THEN _
- CALL OpenOutW ("XFER-"+ZNodeID$+".DEF") : _
- IF ZErrCode < 1 THEN _
- * ------[ first line different ]------
- CALL PrintWorkA (2,ZFileName$+STRING$(2,44)+ZWasFT$) : _ ' DD040601
- CLOSE 2
- IF (ZTransferFunction = 1 AND LEFT$(ZProtoMethod$,1) = CHR$(83)) OR _ ' DD031501
- (ZTransferFunction = 2 AND RIGHT$(ZProtoMethod$,1) = CHR$(83)) THEN _ ' DD031501
- GOTO 62629
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 62628 WasX$ = LEFT$(ZUserIn$,INSTR(ZUserIn$+SPACE$(1),SPACE$(1))-1) ' DD021301
- IF WasX$ = "" THEN _
- EXIT SUB
- CALL FindIt (WasX$)
- IF NOT ZOK THEN _
- ZOutTxt$ = "Missing door program" : _
- CALL UpdtCalr (ZOutTxt$ + SPACE$(1) + WasX$,1) : _ ' DD021301
- ZSnoop = ZTrue : _
- CALL LPrnt (ZOutTxt$,1) : _
- EXIT SUB
- ZOutTxt$(1) = "CLS"
- GOSUB 62633
- ZOutTxt$ = ZActiveUserName$ + " From " + ZWasCI$ ' DD121701
- ZOutTxt$(2) = "ECHO " + ZOutTxt$
- ZOutTxt$(3) = ZDiskForDos$ + _
- "COMMAND /C " + _
- ZUserIn$
- ZOutTxt$(4) = ZRBBSBat$
- ZPrivateDoor = ZTrue
- CALL QuickTPut1 ("Dooring to External Program for Transfer") ' DD121701
- LOCATE ZLocalPageLength-1,1 ' DD021903/VGA
- CALL LPrnt(ZLineFeed$,0)
- CALL DoorInfo
- CALL RBBSExit (ZOutTxt$(),4)
- * REPLACING old line(s) by new
- 62629 GOSUB 62633
- * ------[ first line different ]------
- ' CLS ' DD090202
- CALL LPrnt (ZOutTxt$,1)
- CALL ShellExit (ZUserIn$)
- * REPLACING old line(s) by new
- 62631 CALL SkipLine (2)
- * ------[ first line different ]------
- LOCATE ZLocalPageLength-1,1 ' DD021903/VGA
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 62633 CALL SetupTransferInfo ' DD021301
- RETURN
- END SUB
- * REPLACING old line(s) by new
- 62650 ' $SUBTITLE: 'FakeXRpt - subroutine to create fake xfer report'
- ' $PAGE
- '
- ' NAME -- FakeXRpt
- '
- ' INPUTS -- PARAMETER MEANING
- ' ZFileNameHold$ FILE TO BE TRANSFERRED
- ' ProtoUsed$ Protocol USED
- '
- ' OUTPUTS -- WRITES OUT Transfer FILE REPORT
- '
- ' PURPOSE -- External protocol drivers that do not write
- ' out a standard transfer report must have one
- ' provided in order for "dooring" to external
- ' protocols to work properly, since this file
- ' is read upon returning from an external protocol.
- '
- SUB FakeXRpt (ProtoUsed$) STATIC
- CLOSE 2
- OPEN "O",2,"XFER-" + _
- ZNodeFileID$ + _
- ".DEF"
- PRINT #2,ZFileName$
- PRINT #2,
- PRINT #2,ProtoUsed$
- * ------[ first line different ]------
- PRINT #2,CHR$(83) 'S ' DD021301
- CLOSE 2
- END SUB
- * REPLACING old line(s) by new
- 62660 ' $SUBTITLE: 'SetExpert - subroutine to adjust for expert change'
- ' $PAGE
- '
- ' NAME -- SetExpert
- '
- ' INPUTS -- PARAMETER MEANING
- ' ZExpertUser WHETHER IS AN EXPERT
- '
- ' OUTPUTS -- ZMorePrompt$ Pause prompt
- ' ZPressEnter$ Prompt to press enter
- '
- ' PURPOSE -- Make more helpful prompt for novices and shorter
- ' one for experts
- '
- SUB SetExpert STATIC
- IF ZExpertUser THEN _
- * ------[ first line different ]------
- ZMorePrompt$ = "More <[Y],N,C,A" : _ ' DD031001
- ZPressEnter$ = ZPressEnterExpert$ : _
- EXIT SUB
- ZMorePrompt$ = "More [Y]es,N)o,C)ont,A)bort" ' DD031001
- ' ZPressEnter$ = ZPressEnterNovice$ ' DD070204
- END SUB
- * REPLACING old line(s) by new
- 62670 ZOutTxt$ = Prompt$
- * ------[ first line different ]------
- ' ZMacroMin = 99 ' Mpl090202
- ZHidden = ZTrue
- CALL PopCmdStack
- ZHidden = ZFalse
- IF ZSubParm < 0 OR ZWasQ = 0 THEN _
- EXIT SUB
- IF LEN(ZUserIn$) > 15 OR LEN(ZUserIn$) < 3 THEN _ ' DD022702
- CALL QuickTPut1 (ZFG2$ + "Password must be at least " + _ ' DD022702
- ZFGE$ + "3 " + ZFG2$ + "characters and no " + _ ' DD022702
- "more than " + ZFGE$ + "15 " + ZFG2$ + _ ' DD022702
- "Characters long!" + ZEmphasizeOff$ ) : _ ' DD022702
- GOTO 62670
- IF INSTR(ZUserIn$,CHR$(59)) > 0 THEN _ '; ' DD021301
- CALL QuickTPut1 (ZFG2$ + "Cannot use " + ZFGE$ + _ ' DD022702
- "';' " + ZFG2$ + "in Password!" + _ ' DD022702
- ZEmphasizeOff$) : _ ' DD022702
- GOTO 62670
- IF NOT ZSYSOP THEN ' Pe 04/16/92
- IF INSTR(ZUserIn$,SPACE$(1)) > 0 THEN _ ' DD021301
- CALL QuickTPut1 (ZFG2$ + "Cannot use " + ZFGE$ + _ ' DD022702
- "SPACES " + ZFG2$ + "in Password!" + _ ' DD022702
- ZEmphasizeOff$) : _ ' DD022702
- GOTO 62670 ' Mpl090202
- END IF 'Pe 04/16/92
- IF DisallowSpaces THEN _
- IF ZUserIn$ = SPACE$(LEN(ZUserIn$)) THEN _
- CALL QuickTPut1 (ZFG2$ + "Cannot use all " + ZFGE$ + "SPACES " + _ ' DD022702
- ZFG2$ + "for Password!" + ZEmphasizeOff$) : _ ' DD022702
- GOTO 62670
- CALL AllCaps (ZUserIn$)
- ZWasZ$ = ZUserIn$
- END SUB
- * REPLACING old line(s) by new
- 64005 ZChatAvail = ZFalse
- QestChain = ZFalse
- LastQues = 0
- * ------[ first line different ]------
- ' * ' DD030601
- ' * for the NewUser Questionaire, if the new user cannot support ' DD030601
- ' * cursor positioning (as tested with AnsiTest), then DON'T run ' DD030601
- ' * an ANSI NewUser Questionaire! This was added in because some ' DD030601
- ' * questionaires may have ANSI Cursor positioning commands that ' DD030601
- ' * the NewUser cannot support causing problems when going thru ' DD030601
- ' * the questionaire ' DD030601
- IF ZFileName$ = ZNewUserQuestionnaire$ AND ZCanANSIChat = ZTrue THEN ' DD062301
- CALL Graphic (ZFileName$) ' DD062301
- CALL ResetGraphics ' DD062301
- ELSE ' DD062301
- CALL FindIt (ZFileName$) ' DD062301
- END IF ' DD062301
- IF NOT ZOK THEN _
- EXIT SUB
- CALL ReadParms (ZOutTxt$(),2,1)
- IF ZErrCode > 0 THEN _
- EXIT SUB
- PrevAppend$ = AppendFileName$
- AppendFileName$ = ZOutTxt$(1)
- MaxSecLevel = VAL(ZOutTxt$(2))
- WasX = INSTR(ZOutTxt$(2),SPACE$(1)) ' DD021301
- IF WasX > 0 THEN _
- IF ZUserSecLevel < VAL(MID$(ZOutTxt$(2),WasX)) THEN _
- CALL QuickTPut1 ("Higher security needed for questionnaire") : _
- EXIT SUB
- '
- '
- ' * THE First RECORD OF THE SCRIPT FILE CONTAINS THREE PARAMETERS:
- ' * 1. THE NAME OF THE FILE TO APPEND THE ANSWERS TO.
- ' * 2. THE MAXIMUM SECURITY LEVEL THE + COMMAND CAN RAISE A USER SECURITY
- ' * 3. THE MINIMUM SECURITY TO USE THIS QUESTIONNAIRE
- ' * e.g. 'C:XXX.DAT,6 5' writes answers to C:XXX.DAT, can raise to 6,
- ' * and requires security 5 or more to access
- ScriptIndex = 1
- ZOutTxt$(ScriptIndex) = ZActiveUserName$ + _
- SPACE$(1) + _ ' DD021301
- DATE$ + _
- SPACE$(1) + _ ' DD021301
- TIME$
- * REPLACING old line(s) by new
- 64010 IF EOF(2) OR ScriptIndex > 255 THEN _
- GOTO 64100
- ScriptIndex = ScriptIndex + 1
- LINE INPUT #2,ZOutTxt$(ScriptIndex)
- * ------[ first line different ]------
- IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(58) THEN _ ': ' DD021301
- Temp$ = ZOutTxt$(ScriptIndex) : _
- CALL AllCaps (Temp$) : _
- CALL Trim (Temp$) : _
- ZOutTxt$(ScriptIndex) = Temp$
- IF ZUpperCase THEN _
- CALL AllCaps (ZOutTxt$(ScriptIndex))
- IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(63) THEN _ '? ' DD021301
- ScriptIndex = ScriptIndex + 1 : _
- ZOutTxt$(ScriptIndex) = CHR$(33) '! ' DD021301
- GOTO 64010
- '
- '
- ' * PROCESS QUESTIONS IN THE SCRIPT AS FOLLOWS:
- ' *
- ' * First COLUMN MEANING
- ' * : THIS LINE IS A LABEL THAT MAY BE BRANCHED TO
- ' * ! THIS MEANS THIS IS AN ANSWER
- ' * > THIS IS A "GOTO" COMMAND TO ONE OF THE LABELS
- ' * * THIS MEANS THE LINE IS A MESSAGE TO BE WRITTEN TO THE USER
- ' * ? THIS MEANS THIS IS A QUESTION FOR THE USER
- ' * = THIS MEANS THAT THIS LINE CONTAINS DECISION CRITERIA
- ' * - THIS MEANS TO LOWER THE USER'S SECURITY LEVEL
- ' * + THIS MEANS TO RAISE THE USER'S SECURITY LEVEL
- ' * @ THIS MEANS TO ABORT THE QUESTIONNAIRE DO NOT WRITE OUT
- ' * & THIS MEANS TO CHAIN TO ANOTHER QUESTIONNAIRE
- ' * M Execute specified macro
- ' * T Turbo Key
- ' * < Assign value to work variable
- '
- * REPLACING old line(s) by new
- 64110 CALL Carrier
- IF ZSubParm = -1 THEN _
- GOTO 64510
- ScriptIndex = ScriptIndex + 1
- IF ScriptIndex > ScriptMax THEN _
- GOTO 64400
- ZOutTxt$ = MID$(ZOutTxt$(ScriptIndex),2)
- WasX = ZFalse
- IF LEFT$(ZOutTxt$,3) = "/FL" THEN _
- ZOutTxt$ = RIGHT$(ZOutTxt$,LEN(ZOutTxt$)-3) : _
- WasX = ZTrue
- CALL MetaGSR (ZOutTxt$,WasX)
- * ------[ first line different ]------
- CALL SmartText (ZOutTxt$,ZFalse,WasX,ZFalse) ' Pe 02/05/93
- WasX$ = ZOutTxt$
- ON INSTR(" :!@MT><*?=-+&",LEFT$(ZOutTxt$(ScriptIndex),1)) GOTO _
- 64111, _ ' catch invalid lines
- 64110, _ ' : label
- 64110, _ ' ! stored answer
- 64420, _ ' @ abort
- 64120, _ ' M macro execute
- 64430, _ ' T turbo key
- 64440, _ ' > goto label
- 64190, _ ' < assign value
- 64450, _ ' * display line
- 64113, _ ' ? prompt for answer
- 64114, _ ' = conditional branch
- 64460, _ ' - decrease security level
- 64465, _ ' + increase security level
- 64470 ' & chain
- * REPLACING old line(s) by new
- 64113 LastQues = ScriptIndex ' process ?
- GOSUB 64180
- ZSubParm = 1
- CALL TGet
- IF ZSubParm = -1 THEN _
- GOTO 64510 _
- ELSE IF ZWasQ = 0 THEN _
- ZOutTxt$ = WasX$ : _
- GOTO 64113 _
- * ------[ first line different ]------
- ELSE ZOutTxt$(ScriptIndex + 1) = CHR$(33) + _ '! ' DD021301
- ZUserIn$ : _
- ZGSRAra$(ZTestedIntValue) = ZUserIn$
- GOTO 64110
- * REPLACING old line(s) by new
- 64200 ScriptIndex = 1
- CALL MetaGSR (BranchLabel$,ZFalse)
- * ------[ first line different ]------
- CALL SmartText (BranchLabel$,ZFalse,ZFalse,ZFalse) 'Pe 02/06/93
- CALL AllCaps (BranchLabel$)
- CALL Trim (BranchLabel$)
- * REPLACING old line(s) by new
- 64210 ScriptIndex = ScriptIndex + 1
- IF ScriptIndex > ScriptMax THEN _
- ZOutTxt$ = BranchLabel$ + _
- " not found!" : _
- ZSubParm = 5 : _
- CALL TPut : _
- IF ZSubParm = -1 THEN _
- RETURN _
- ELSE IF LastQues > 0 THEN _
- ScriptIndex = LastQues - 1 : _
- RETURN _
- ELSE GOTO 64510
- * ------[ first line different ]------
- IF LEFT$(ZOutTxt$(ScriptIndex),1) <> CHR$(58) THEN _ ': ' DD021301
- GOTO 64210
- IF MID$(ZOutTxt$(ScriptIndex),2) <> BranchLabel$ THEN _
- GOTO 64210
- RETURN
- '
- '
- ' * DETERMINE BRANCH LOGIC
- '
- '
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 64310 NextEquals = INSTR(CurEquals + 1, ZOutTxt$(ScriptIndex),CHR$(61)) '= ' DD021301
- IF NextEquals = 0 THEN _
- BranchLabel$ = MID$(ZOutTxt$(ScriptIndex),CurEquals + 2) : _
- GOTO 64320
- IF ZWasZ$ <> _
- MID$(ZOutTxt$(ScriptIndex),CurEquals + 1,1) THEN _
- CurEquals = NextEquals : _
- GOTO 64310
- BranchLabel$ = MID$(ZOutTxt$(ScriptIndex),CurEquals + 2,NextEquals-(CurEquals + 2))
- * REPLACING old line(s) by new
- * ------[ first line different ]------
- 64360 NextEquals = INSTR(CurEquals + 1, ZOutTxt$(ScriptIndex),CHR$(61)) '= ' DD021301
- IF NextEquals = 0 THEN _
- BranchLabel$ = MID$(ZOutTxt$(ScriptIndex),CurEquals + 2) : _
- GOTO 64380
- Numeric = ZTrue
- LoopIndex = 2
- WHILE LoopIndex < LEN(ZOutTxt$(ScriptIndex - 1)) +1
- IF INSTR("()1234567890- ",MID$(ZOutTxt$(ScriptIndex - 1),LoopIndex,1)) THEN _
- GOTO 64370
- Numeric = ZFalse
- * REPLACING old line(s) by new
- 64410 ScriptIndex = ScriptIndex + 1
- IF ScriptIndex > ScriptMax THEN _
- GOTO 64500
- * ------[ first line different ]------
- IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(58) THEN _ ': ' DD021301
- QuestionSave$ = MID$(ZOutTxt$(ScriptIndex),2) : _
- GOTO 64410
- IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(33) AND _ '! ' DD021301
- LEN(ZOutTxt$(ScriptIndex)) < 2 THEN _
- GOTO 64410
- IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(33) THEN _ '! ' DD021301
- CALL PrintWorkA (2,QuestionSave$) : _ ' DD040601
- CALL PrintWorkA (2,MID$(ZOutTxt$(ScriptIndex),2)) ' DD040601
- IF ScriptIndex = 1 AND _
- AppendFileName$ <> PrevAppend$ THEN _
- CALL PrintWorkA (2,ZOutTxt$(ScriptIndex)) ' DD040601
- IF ZErrCode <> 0 THEN _
- ZOutTxt$ = "Unrecoverable failure in script!" : _
- ZSubParm = 5 : _
- CALL TPut : _
- GOTO 64500
- GOTO 64410
- * REPLACING old line(s) by new
- 64510 ZChatAvail = (INSTR("MUF",ZActiveMenu$) > 0)
- ZOK = ZTrue
- ZLastIndex = 0
- END SUB
- * ------[ first line different ]------
- '64600 ' $SUBTITLE: 'ViewArc - subroutine to display .ARC contents' ' DD062304
- ' $PAGE
- '
- ' NAME -- ViewArc (Written by Jon Martin)
- '
- ' INPUTS -- PARAMETER MEANING
- ' ZFileName$ NAME OF THE ARC FILE TO BE
- ' VIEWED.
- '
- ' OUTPUTS -- NONE
- '
- ' PURPOSE -- Provides a mechanism to provide users with the
- ' contents of a libraried file prior to downloading.
- '
- ' SUB ViewArc STATIC ' DD092102
- ' CLOSE 2 ' DD092102
- 'IF ZTurboRBBS THEN _
- ' RetCode = 0 ' DD092102
- ' CALL ArcV (ZArcWork$,ZFileName$,RetCode) ' DD092102
- ' CALL BufFile (ZArcWork$,WasX) ' DD092102
- ' EXIT SUB ' DD092102
- 'IF ZShareIt THEN _
- ' OPEN ZFileName$ FOR RANDOM SHARED AS #2 LEN=1 _
- 'ELSE OPEN "R",2,ZFileName$,1
- 'FIELD 2,1 AS CHAR$
- 'BYTE.POINTER! = 1
- 'ARC.END! = LOF(2)
- '64605 'IF BYTE.POINTER! > ARC.END! THEN _ ' DD062304
- ' GOTO 64620
- 'GET 2,BYTE.POINTER!
- 'IF CHAR$ <> CHR$(26) THEN _
- ' GOTO 64620
- 'BYTE.POINTER! = BYTE.POINTER! + 1
- 'GET 2,BYTE.POINTER!
- 'IF CHAR$ = CHR$(0) THEN _
- ' GOTO 64620
- 'ARCED.NAME$ = ""
- 'FOR WasX = 1 TO 12
- ' GET 2,BYTE.POINTER! + WasX
- ' IF CHAR$ < CHR$(40) THEN _
- ' GOTO 64610
- ' ARCED.NAME$ = ARCED.NAME$ + _
- ' CHAR$
- 'NEXT
- '64610 'ZOutTxt$ = ARCED.NAME$ ' DD062304
- 'BYTE.POINTER! = BYTE.POINTER! + 14
- 'GOSUB 64630
- 'TOTAL.BYTES# = WORK.BYTES#
- 'BYTE.POINTER! = BYTE.POINTER! + 10
- 'GOSUB 64630
- 'FINAL.BYTES# = WORK.BYTES#
- 'ZOutTxt$ = ZOutTxt$ + _
- ' SPACE$(20 - LEN(ARCED.NAME$) - LEN(STR$(FINAL.BYTES#))) + _
- ' STR$(FINAL.BYTES#) + _
- ' " bytes."
- 'CALL QuickTPut1 (ZOutTxt$)
- 'BYTE.POINTER! = BYTE.POINTER! + TOTAL.BYTES# + 4
- 'GOTO 64605
- '64620 'CLOSE 2 ' DD062304
- 'ZSubParm = 0
- 'CALL Carrier
- 'ZOutTxt$ = ""
- 'EXIT SUB
- '64630 'FACTOR# = 1# ' DD062304
- 'WORK.BYTES# = 0
- 'FOR WasX = 0 TO 3
- ' GET 2,BYTE.POINTER! + WasX
- ' WORK.BYTES# = WORK.BYTES# + FACTOR# * ASC(CHAR$)
- ' FACTOR# = FACTOR# * 256#
- 'NEXT
- 'RETURN
- ' END SUB ' DD092102
- '64635 ' * processes T)oggle command requests ' DD062304
- ' * formerly 1500-1512 in RBBS-PC.BAS
- SUB CmndToggle STATIC
- * DELETING old line(s)
- 64600
- 64605
- 64610
- 64620
- 64630
- 64635
- * REPLACING old line(s) by new
- 64636 IF ZAnsIndex < ZLastIndex THEN _
- GOTO 64638
- * ------[ first line different ]------
- ZFileName$ = ZWelcomeFileDrvPath$ + "TOGGLES" ' DD052501
- CALL Graphic (ZFileName$) ' DD052501
- CALL BufFile (ZFileName$,WasX) ' DD052501
- ' ZOutTxt$ = "A)nsiEditor B)ullet C)ase F)ile H)ilite" ' DD052501
- ' CALL TopPrompt ' DD052501
- ' ZOutTxt$ = "L)ine feeds N)ulls T)urboKey X)pert !)bell" ' DD052501
- ' CALL TopPrompt ' DD052501
- ZOutTxt$ = ZFGF$ + "TOGGLE " + ZFG2$ + "command" + ZEmphasizeOff$ ' DD062902
- IF ZCmndsInPrompt THEN ' DD062902
- ZOutTxt$ = ZOutTxt$ + " (A,B,C,E,F,H,I,K,L,M,N,S,T,X,!,[Q])" ' DD070402
- END IF ' DD062902
- ' CALL ColorPrompt (ZOutTxt$) ' DD062902
- * REPLACING old line(s) by new
- 64638 ZStackC = ZTrue
- ZTurboKey = -ZTurboKeyUser
- CALL PopCmdStack
- IF ZWasQ=0 OR ZSubParm < 0 THEN _
- EXIT SUB
- ZWasZ$ = ZUserIn$(ZAnsIndex)
- CALL AllCaps (ZWasZ$)
- * ------[ first line different ]------
- IF ZWasZ$ = "Q" THEN ' DD062902
- ZLastIndex = 0 ' DD062902
- EXIT SUB ' DD062902
- END IF ' DD062902
- ZFF = INSTR("ABCFHLNTX!IEKMS",ZWasZ$) ' DD070402
- IF ZFF < 1 THEN _
- GOTO 64636
- CALL Toggle (ZFF)
- GOTO 64636
- END SUB
- SUB TopPrompt STATIC
- CALL ColorPrompt (ZOutTxt$)
- CALL QuickTPut1 (ZOutTxt$)
- END SUB
- * REPLACING old line(s) by new
- 64645 ' * sets new user defaults
- ' * formerly 12900 of rbbs-pc.bas
- SUB SetNewUserDef STATIC
- * ------[ first line different ]------
- IF ZNewUserSetsDefaults THEN
- WasX = 5*ZUserTextColor - 125 + 35*VAL(ZBoldText$) + ZWasGR ' DD062301
- IF WasX < 30 OR WasX > 99 THEN _ ' DD062301
- WasX = 60 ' DD062301
- ELSE ' DD062301
- WasX = 60 ' DD062301
- END IF ' DD062301
- IF ZReqQues$ = ZNewUserQuestionnaire$ THEN ' DD080501
- ZReqQuesAnswered = ZTrue ' DD080501
- END IF ' DD080501
- WasA = -ZPromptBell -2 * ZExpertUser _ ' DD063002
- -4 * ZNulls -8 * ZUpperCase _ ' DD063002
- -16 * ZLineFeeds -32 * ZCheckBulletLogon _ ' DD063002
- -64 * ZSkipFilesLogon -128 * ZFullScreenEditor _ ' DD063002
- -256 * ZReqQuesAnswered -512 * ZMailWaiting _ ' DD063002
- -1024 * (NOT ZHiLiteOff) -2048 * ZTurboKeyUser _ ' DD063002
- -4096 * ZFileWaiting -8192 * ZAvailableForChat _ ' DD063002
- -16384 * ZExtendedOff ' DD063002
- ' ' DD063002
- WasAA = -ZReadNewMail -2 * ZReselectALL _ ' DD070103
- -4 * ZMorePromptLF -8 * ZReselectGraphics _ ' DD070105
- -16 * ZANSIMusic -32 * ZNeverCanPage _ ' DD081001
- -64 * ZReselectProto -128 * ZGlobalTwit ' DD081001
- ' ' DD063002
- LSET ZUserName$ = ZActiveUserName$
- LSET ZUserOption$ = MKI$(0) + _
- MKI$(0) + _
- ZUserXferDefault$ + _ ' DD062301
- MKI$(WasX) + _ ' DD062301
- CHR$(ZRightMargin) + _ ' DD063002
- CHR$(WasAA) + _ ' DD063002
- MKI$(WasA) + _ ' DD070102
- CHR$(ZPageLength) + _ ' DD062301
- ZRegDate$ + _ ' DD081001
- ZDefaultEchoer$
- LSET ZUserDnlds$ = MKI$(0)
- LSET ZUserUplds$ = MKI$(0)
- IF ZEnforceRatios THEN _
- LSET ZTodayDl$ = MKS$(0) : _
- LSET ZTodayBytes$ = MKS$(0) : _
- LSET ZDlBytes$ = MKS$(0) : _
- LSET ZULBytes$ = MKS$(0)
- LSET ZSecLevel$ = MKI$(ZTempSecLevel)
- LSET ZElapsedTime$ = MKI$(0)
- LSET ZDropTimes$ = CHR$(0) ' DD091401/DROP
- LSET ZBankTime$ = CHR$(0)
- END SUB
-