home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / CDOR0811.ZIP / CDORMRGS.ZIP / RSB4CDOR.MRG < prev    next >
Encoding:
Text File  |  1993-08-11  |  161.9 KB  |  3,227 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against RBBSSUB4.BAS to produce RBBSSUB4.NEW
  3. * RBBSSUB4.BAS:  Date 6-20-92  Size 120885 bytes
  4. * ------------[ Created 08-11-1993 19:36:04 ]------------
  5. * REPLACING old line(s) by new
  6. * ------[ first line different ]------
  7. ' $segment
  8. ' $linesize:132
  9. ' $title: 'RBBSSUB4.BAS 17.4, Copyright 1986 - 92 by D. Thomas Mack'
  10. '  Copyright 1992 by D. Thomas Mack, all rights reserved.
  11. '  Name ...............: RBBSSUB4.BAS
  12. '  First Released .....: June 21, 1992
  13. '  Subsequent Releases.: 
  14. '  Copyright ..........: 1986 - 1992
  15. '  Purpose.............: The Remote Bulletin Board System for the IBM PC,
  16. '     RBBS-PC.BAS utilizes a lot of common subroutines.  Those that do not
  17. '     require error trapping are incorporated within RBBSSUB 2-5 as
  18. '     separately callable subroutines in order to free up as much
  19. '     code as possible within the 64K code segment used by RBBS-PC.BAS.
  20. '  Parameters..........: Most parameters are passed via a COMMON statement.
  21. '
  22. ' Subroutine  Line               Function of Subroutine
  23. '   Name     Number
  24. '  AnyBut         59760  Determine where a "word" begins
  25. '  AskUsers       64003  Ask users questions based on a script and save answers
  26. '  AskMore        59858  Check whether screen full
  27. '  AutoPage       60300  Check whether to notify sysop caller is on
  28. ' BadFileChar     59800  Check file name for bad character
  29. '  Bracket        59960  Puts strings around a substring
  30. '  BufFile        58400  Write a file to the user quickly
  31. '  BufString      58350  Write a string with imbedded CR/LF to the user quickly ' Mpl090202
  32. '  CheckColor     59930  Highlighting based on search string
  33. '  CmndToggle     64635  Processes user command to T)oggle preferences
  34. '  CmndSysopXfer  64640  Sysop function to change Xfer counts
  35. '  ColorDir       59920  Adds colorization to FMS directory entry
  36. '  ColorPrompt    59940  Colorizes prompts
  37. '  CompDate       59880+ Produces a computational data from YY, MM, DD
  38. '  ConfMail       59850  Check conference mail waiting
  39. '  ConvertDir     58950  Checks for U & A (shorthand) and converts appropriately
  40. '  PackDate       59201  Compress date in string format to 2 characters
  41. '  EofComm        60000  Determine whether any chars in comm port buffer
  42. '  ExpireDate     59890  Calculate registration expiration date
  43. '  FakeXRpt       62650  Write out file transfer report for protocols that don't
  44. '  FindEnd        58770  Find where a "word" ends
  45. '  FindFile       58790  Determine whether a file exists without opening it
  46. '  FindLast       58600  Find last occurence of a string
  47. '  FMS            58200  Search the upload management system for entries
  48. '  GetAll         59780  Get list of all directories to display
  49. '  GetDirs        58895  Prompts for directories for file list/new/search cmds
  50. '  GetMsgAttr     62530  Restore attributes of original message
  51. '  GetYMD         59204  Pulls YY, MM, or DD from a 2 byte stored date
  52. '  GlobalSrchRepl 60100  Global search and replace
  53. '  LogPDown       59400  Records download in private directory
  54. '  MarkTime       60200  Give visual feedback during lengthy process
  55. '  MetaGSR        60130  Meta statement global search and replace
  56. '  MsgImport      59698  Allow local user to import a text file to a message
  57. '  Muzak          59100  Play musical themes for different RBBS functions
  58. '  NewPassword    60668  Get a new password
  59. '  Protocol       62600  Determine if external protocols are available
  60. '  PutMsgAttr     62520  Save attributes of original message
  61. '  Remove         58210  Remove characters from within strings
  62. '  RotorsDir      58700  Searches for a file using list of subdirs
  63. '  RptTime        62540  Report date/time and time on
  64. '  SearchArray    58190  Check for the occurance of a string in an array
  65. '  SetEcho        59600  Set RBBS properly for who is to echo
  66. '  SetHiLite      59934  Set user preference on highlighting
  67. '  SetGraphic     59980  Sets graphic preference for text file display
  68. '  SetNewUserDef  64645  Sets new user defaults
  69. '  SmartText      58250  Process SMART TEXT control strings
  70. '  SubMenu        59500  Processes options that have sub-menus
  71. '  TimedOut       63000  Write timed exit semaphore file
  72. '  TimeLock       60180  Check for TIME LOCK on certain features
  73. '  Transfer       62624  RBBS-PC support for external protocols for file transfer
  74. '  Toggle         57000  Toggles or views user options
  75. ' TwoByteDate     59200  Reduces a data to 2 byte string for space compression
  76. '  UnPackDate     59902  Uncompresses a 2 byte date
  77. '  UserColor      59965  Lets user set color for text and whether bold
  78. '  UserFace       59450  Processes programmable user interface
  79. '  ViewArc        64600  Display .ARC file contents to user
  80. '  PrivDoorRtn    62629  Private door exit routine
  81. '  WipeLine       58800  Wipes away a line so next prints in its place
  82. '  WordWrap       59710  Adjust a msg -- wrap lines and perserve paragraphs
  83. '
  84. '  $INCLUDE: 'RBBS-VAR.BAS'
  85. '
  86. * REPLACING old line(s) by new
  87. 57000 ' $SUBTITLE: 'Toggle - Toggle User Preferences'
  88. ' $PAGE
  89. '
  90. '  NAME    -- Toggle
  91. '
  92. '  INPUTS  -- ToggleOption      Option to toggle or view
  93. '                               according to the following:
  94. '    ToggleOption         PREFERENCE
  95. '   Toggle   VIEW
  96. * ------[ first line different ]------
  97. '     1       -1           AnsiEd Toggle                             ' Ansied
  98. '     2       -2           Bulletin review on logon
  99. '     3       -3           Case change
  100. '     4       -4           File review on logon
  101. '     5       -5           Highlight
  102. '     6       -6           Line feeds
  103. '     7       -7           Nulls
  104. '     8       -8           TurboKey
  105. '     9       -9           Expert
  106. '    10      -10           Bell
  107. '    11      -11           Chat Availability                         ' JM092401/RCHAT
  108. '
  109. '  OUTPUTS -- ZSubParm   passed from TPut
  110. '
  111. '  PURPOSE -- Sets or views any single user preference value
  112. '
  113.       SUB Toggle (ToggleOption) STATIC
  114.       ZSubParm = 0
  115.       IF ToggleOption < 0 THEN _
  116.          GOTO 57005
  117.       ON ToggleOption GOSUB _
  118.          57010, _         'AnsiEd toggle                             ' Ansied
  119.          57120, _         'Bulletin review on logon
  120.          57260, _         'Case change
  121.          57150, _         'File review on logon
  122.          57040, _         'Highlight
  123.          57100, _         'Line feeds
  124.          57210, _         'Nulls
  125.          57230, _         'TurboKey
  126.          57190, _         'Expert
  127.          57170, _         'Bell                                      ' JM092401/RCHAT
  128.          57300, _         'Internode chat availability               ' JM092401/RCHAT
  129.          57320, _         'Extended DIR listing                      ' DD062901
  130.          57340, _         'More Prompt LF                            ' DD070104
  131.          57660, _         'Read All new mail                         ' DD070102
  132.          57680            'ANSI Music                                ' DD070402
  133.       EXIT SUB
  134. * REPLACING old line(s) by new
  135. 57005 CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)
  136.       ON -ToggleOption GOSUB _
  137. * ------[ first line different ]------
  138.          57030, _         'AnsiEd Toggle                             ' Ansied
  139.          57130, _         'Bulletin review on logon
  140.          57270, _         'Case change
  141.          57160, _         'File review on logon
  142.          57050, _         'Highlight
  143.          57110, _         'Line feeds
  144.          57220, _         'Nulls
  145.          57240, _         'TurboKey
  146.          57200, _         'Expert
  147.          57180, _         'Bell                                      ' JM092401/RCHAT
  148.          57310, _         'Internode chat availability               ' JM092401/RCHAT
  149.          57330, _         'Extended DIR listing                      ' DD062901
  150.          57350, _         'More Prompt LF                            ' DD070104
  151.          57670, _         'Read All new mail                         ' DD070102
  152.          57690            'ANSI Music                                ' DD070402
  153.       EXIT SUB
  154. * REPLACING old line(s) by new
  155. * ------[ first line different ]------
  156. 57010 ZFullScreenEditor = NOT ZFullScreenEditor                      ' Ansied
  157. '     IF ZAutoDownDesired THEN _
  158. '        GOTO 57020
  159. '     IF NOT ZAutoDownVerified THEN _
  160. '        CALL TestUser
  161. '     IF NOT ZAutoDownYes THEN _
  162. '        CALL QuickTPut1 ("Your comm pgm does not support AUTODOWNLOAD") : _
  163. '        ZAutoDownDesired = ZTrue
  164. * REPLACING old line(s) by new
  165. 57020 'ZAutoDownDesired = NOT ZAutoDownDesired
  166. * REPLACING old line(s) by new
  167. * ------[ first line different ]------
  168. 57030 'ZOutTxt$ = "Autodownload " + FNOffOn$(ZAutoDownDesired)
  169. '    CALL QuickTPut1 (ZOutTxt$)
  170.      CALL QuickTPut1 (ZFGB$ + "Full Screen Editor " + _              ' DD062905
  171.                       FNOffOn$(ZFullScreenEditor) + _                ' DD062905
  172.                       ZEmphasizeOff$)                                ' DD062905
  173.      RETURN
  174. * REPLACING old line(s) by new
  175. 57050 IF ZEmphasizeOn$ <> "" THEN _
  176. * ------[ first line different ]------
  177.         ZEmphasizeOff$ = ZEscape$ + CHR$(91) + ZBoldText$ + _        ' DD021301
  178.         ";40;" + MID$(STR$(ZUserTextColor),2) + CHR$(109)            ' DD021301
  179.      CALL QuickTPut1 (ZEmphasizeOn$ + "Highlighting" + ZEmphasizeOff$ + _
  180.                  SPACE$(1) + FNOffOn$(NOT ZHiLiteOff))               ' DD021301
  181.      RETURN
  182. * REPLACING old line(s) by new
  183. * ------[ first line different ]------
  184. 57110 CALL QuickTPut1 (ZFGB$ + "Line Feeds " + _                     ' DD062905
  185.                        FNOffOn$(ZLineFeeds) + _                      ' DD062905
  186.                        ZEmphasizeOff$)                               ' DD062905
  187.       CALL SetCrLf
  188.       RETURN
  189. * REPLACING old line(s) by new
  190. * ------[ first line different ]------
  191. 57130 ZOutTxt$ = ZFGB$ + MID$("Skip Check",1 -5 * ZCheckBulletLogon,5) + _ ' DD062905
  192.                  " all Bulletins at logon" + ZEmphasizeOff$          ' DD062905
  193.       CALL QuickTPut1 (ZOutTxt$)
  194.       RETURN
  195. * REPLACING old line(s) by new
  196. * ------[ first line different ]------
  197. 57160 ZOutTxt$ = ZFGB$ + MID$("CheckSkip",1 -5 * ZSkipFilesLogon,5) + _ ' DD062905
  198.                  " new files at logon" + ZEmphasizeOff$              ' DD062905
  199.       CALL QuickTPut1 (ZOutTxt$)
  200.       RETURN
  201. * REPLACING old line(s) by new
  202. * ------[ first line different ]------
  203. 57180 ZOutTxt$ = ZFGB$ + "Prompt Bell " + _                          ' DD062905
  204.                  FNOffOn$(ZPromptBell) + ZEmphasizeOff$              ' DD062905
  205.       CALL QuickTPut1 (ZOutTxt$)
  206.       RETURN
  207. * REPLACING old line(s) by new
  208. * ------[ first line different ]------
  209. 57200 ZOutTxt$ = ZFGB$ + MID$("NoviceExpert",1 -6 * ZExpertUser,6) + _ ' DD062905
  210.                  ZEmphasizeOff$                                      ' DD062905
  211.       CALL QuickTPut1 (ZOutTxt$)
  212.       RETURN
  213. * REPLACING old line(s) by new
  214. * ------[ first line different ]------
  215. 57220 ZOutTxt$ = ZFGB$ + "Nulls " + _                                ' DD062905
  216.                  FNOffOn$(ZNulls) + ZEmphasizeOff$                   ' DD062905
  217.       CALL QuickTPut1 (ZOutTxt$)
  218.       IF ZNulls AND NOT ZMorePromptLF THEN                           ' DD070104
  219.          CALL QuickTPut1 (ZFG9$ + "Turning " + ZFGB$ + _             ' DD070104
  220.                           "More Prompt Erasing " + ZFG9$ + "off")    ' DD070104
  221.          ZMorePromptLF = ZTrue                                       ' DD070104
  222.       END IF                                                         ' DD070104
  223.       RETURN
  224. * REPLACING old line(s) by new
  225. * ------[ first line different ]------
  226. 57240 CALL QuickTPut1 (ZFGB$ + "TurboKeys " + _                      ' DD062905
  227.                        FNOffOn$(ZTurboKeyUser) + _                   ' DD062905
  228.                        ZEmphasizeOff$)                               ' DD062905
  229.       RETURN
  230. * REPLACING old line(s) by new
  231. 57260 IF NOT ZUpperCase THEN _
  232. * ------[ first line different ]------
  233.          IF (NOT ZHiLiteOff) OR ZUserGraphicDefault$ = CHR$(67) THEN _ ' DD021301
  234.             CALL QuickTPut1 ("Graphics & Hilite must be OFF to use UpperCase") : _
  235.             RETURN
  236.       ZUpperCase = NOT ZUpperCase
  237. * REPLACING old line(s) by new
  238. * ------[ first line different ]------
  239. 57270 ZOutTxt$ = ZFGB$ + "UPPER CASE " + _                           ' DD062905
  240.             MID$("and lowerONLY",1 - 9 * ZUpperCase,9) + _           ' DD062905
  241.             ZEmphasizeOff$                                           ' DD062905
  242.       CALL QuickTPut1 (ZOutTxt$)
  243. * REPLACING old line(s) by new
  244. 57280 ZUseTPut = (ZUpperCase OR ZXOnXOff)
  245.       RETURN
  246. * ------[ first line different ]------
  247. * INSERTING new line(s)
  248. 57300 ZAvailableForChat = NOT ZAvailableForChat                      ' JM092401/RCHAT
  249. 57310 ZOutTxt$ = ZFGB$ + "Available for internode chat: " + _        ' DD062905
  250.             MID$("NO YES", 1 -3 * ZAvailableForChat, 3) + _          ' DD062905
  251.             ZEmphasizeOff$                                           ' DD062905
  252.       CALL QuickTPut1 (ZOutTxt$)                                     ' JM092401/RCHAT
  253.       RETURN                                                         ' JM092401/RCHAT
  254. 57320 ZExtendedOff = NOT ZExtendedOff                                ' DD062901
  255. 57330 ZOutTxt$ = ZFGB$ + "Extended Directory Lists: " + _            ' DD062905
  256.             FNOffOn$(NOT ZExtendedOff) + _                           ' DD062905
  257.             ZEmphasizeOff$                                           ' DD062905
  258.       CALL QuickTPut1 (ZOutTxt$)                                     ' DD062901
  259.       RETURN                                                         ' DD062901
  260. 57340 ZMorePromptLF = NOT ZMorePromptLF                              ' DD070104
  261. 57350 ZOutTxt$ = ZFGB$ + "Erase More Prompts: " + _                  ' DD070104
  262.                  MID$("YESNO ", 1 -3 * ZMorePromptLF, 3) + _         ' DD070104
  263.                  ZEmphasizeOff$                                      ' DD070104
  264.       CALL QuickTPut1 (ZOutTxt$)                                     ' DD070104
  265.       IF NOT ZMorePromptLF AND ZNulls THEN                           ' DD070104
  266.          CALL QuickTPut1 (ZFG9$ + "Turning " + ZFGB$ + _             ' DD070104
  267.                           "Nulls " + ZFG9$ + "off")                  ' DD070104
  268.          ZNulls = ZFalse                                             ' DD070104
  269.       END IF                                                         ' DD070104
  270.       RETURN                                                         ' DD070104
  271. 57660 ZReadNewMail = NOT ZReadNewMail                                ' DD070102
  272. 57670 ZOutTxt$ = ZFGB$ + MID$("SkipRead", 1 -4 * ZReadNewMail, 4) + _' DD070102
  273.                  " new mail at logon" + ZEmphasizeOff$               ' DD070102
  274.       CALL QuickTPut1 (ZOutTxt$)                                     ' DD070102
  275.       RETURN                                                         ' DD070102
  276. 57680 ZANSIMusic = NOT ZANSIMusic                                    ' DD070402
  277. 57690 ZOutTxt$ = ZFGB$ + "ANSI Music " + FNOffOn$(ZANSIMusic) + _    ' DD070402
  278.                  ZEmphasizeOff$                                      ' DD070402
  279.       CALL SetANSIMusic                                              ' DD070402
  280.       CALL QuickTPut1 (ZOutTxt$)                                     ' DD070402
  281.       RETURN                                                         ' DD070402
  282.       END SUB
  283. '
  284. * REPLACING old line(s) by new
  285. 58200 ' $SUBTITLE: 'FMS - subroutine to search the upload management system'
  286. ' $PAGE
  287. '
  288. '  NAME    -- FMS
  289. '
  290. '  INPUTS  -- PARAMETER                      MEANING
  291. '             DirToSearch$          RBBS-PC "DIR" CATEGORY TO LOOK
  292. '                                     FOR
  293. '             SearchString$          STRING TO SEARCH FOR
  294. '             SearchDate$            DATE TO SEARCH FOR
  295. '             ZCategoryName$()
  296. '             ZCategoryCode$()
  297. '             ZCategoryDesc$()
  298. '             CatFound
  299. '             ZNumCategories
  300. '
  301. '  OUTPUTS -- ProcessedInFMS
  302. '             DnldFlag
  303. '
  304. '  PURPOSE -- To search the file management system and display the
  305. '             files being searched for as well as the catetory descriptions
  306. '
  307.       SUB FMS (DirToSearch$,SearchString$,SearchDate$, _
  308.                ProcessedInFMS,ZCategoryName$(1),ZCategoryCode$(1), _
  309.                ZCategoryDesc$(1),DnldFlag,CatFound,AbortIndex) STATIC
  310. * ------[ first line different ]------
  311.       IF DirToSearch$ = "P" THEN                                     ' DD032901
  312.          IF NOT ZExpertUser THEN                                     ' DD032901
  313.             FileName$ = ZWelcomeFileDrvPath$ + "P.MNU"               ' DD040808
  314.             CALL Graphic (FileName$)                                 ' DD032901
  315.             CALL BufFile (FileName$,WasX)                            ' DD032901
  316.             CALL SmartPause                                          ' DD050302
  317.          END IF                                                      ' DD032901
  318.       END IF                                                         ' DD032901
  319.       DnldFlag = 0
  320.       CALL SearchArray (DirToSearch$,ZCategoryName$(),ZNumCategories,CatFound)
  321.       ProcessedInFMS = ProcessedInFMS OR (CatFound > 0)
  322.       IF ZWasGR > 0 THEN                                             ' DD122606
  323.          horzline$ = CHR$(205)                                       ' DD122606
  324.          vertline$ = CHR$(186)                                       ' DD122606
  325.          topleft$ = CHR$(201)                                        ' DD122606
  326.          topright$ = CHR$(187)                                       ' DD122606
  327.          bottomleft$ = CHR$(200)                                     ' DD122606
  328.          bottomright$ = CHR$(188)                                    ' DD122606
  329.          endpiece$ = CHR$(175)                                       ' DD040201
  330.       ELSE                                                           ' DD122606
  331.          horzline$ = CHR$(061)                                       ' DD050304
  332.          vertline$ = CHR$(124)                                       ' DD122606
  333.          topleft$ = CHR$(061)                                        ' DD050304
  334.          topright$ = CHR$(061)                                       ' DD050304
  335.          bottomleft$ = CHR$(061)                                     ' DD050304
  336.          bottomright$ = CHR$(061)                                    ' DD050304
  337.          endpiece$ = CHR$(062)                                       ' DD122606
  338.       END IF                                                         ' DD122606
  339.       IF ProcessedInFMS THEN                                         ' DD052301
  340.          IF ZWasGR = 4 THEN                                          ' DD061301
  341.             CALL BufFile (ZWelcomeFileDrvPath$ + "RIPWINF",WasX)     ' DD061301
  342.          END IF                                                      ' DD061301
  343.          ZSubParm = 5                                                ' DD052301
  344.          GOSUB 58202                                                 ' DD052301
  345.          CALL SkipLine(1)                                            ' DD052301
  346.          CALL QuickTPut(ZFG9$ + topleft$ + horzline$ + ZFGF$ + _     ' DD122606
  347.                         ZBG4$ + SPACE$(1) + _                        ' DD122606
  348.                         DirToSearch$ + SPACE$(1) + ZFG9$ + ZBG0$ + _ ' DD122606
  349.                         STRING$(3,horzline$),0)                      ' DD122606
  350.          CALL QuickTPut(ZFGF$ + ZBG4$ + SPACE$(1) + _                ' DD122606
  351.                         ZCategoryDesc$(CatFound) + SPACE$(1) + _     ' DD122606
  352.                         ZFG9$ + ZBG0$ + STRING$(4,horzline$) + _     ' DD122606
  353.                         ZFGC$ + endpiece$ + _                        ' DD122606
  354.                         SPACE$(1) + SrchDir$,1)                      ' DD122606
  355.          CALL QuickTPut(ZFG9$ + vertline$,1)                         ' DD122606
  356.          CALL QuickTPut(bottomleft$ + horzline$ + ZFGF$ + _          ' DD041801
  357.                         ZBG1$ + " File Name " + _                    ' DD041801
  358.                         ZFG9$ + + ZBG0$ + STRING$(3,horzline$) + _   ' DD122606
  359.                         ZFGF$ + ZBG1$ + " Size " + _                 ' DD041801
  360.                         ZFG9$ + ZBG0$ + STRING$(3,horzline$),0)      ' DD082601
  361.          IF (ZShowXferTime OR ZShowTimesDownloaded) AND _            ' DD052301
  362.             NOT ZExtendedOff THEN                                    ' DD052301
  363.             tempstr$ = " Info "                                      ' DD052301
  364.          ELSE                                                        ' DD052301
  365.             tempstr$ = " Description "                               ' DD052301
  366.          END IF                                                      ' DD052301
  367.          IF ZShowTimesDownloaded THEN                                ' DD052301
  368.             templen = 0                                              ' DD052301
  369.          ELSE                                                        ' DD052301
  370.             templen = 5                                              ' DD052301
  371.          END IF                                                      ' DD052301
  372.          CALL QuickTPut1 (ZFGF$ + ZBG1$ + " Date " + ZFG9$ + _       ' DD052301
  373.                         ZBG0$ + STRING$(15,horzline$) + _            ' DD041801
  374.                         ZFGF$ + ZBG1$ + _                            ' DD041801
  375.                         tempstr$ + _                                 ' DD052301
  376.                         ZFG9$ + ZBG0$ + _                            ' DD082601
  377.                         STRING$(ZMaxDescLen-LEN(tempstr$)-19+templen,horzline$) + _ ' DD052301
  378.                         ZFGC$ + endpiece$ + _                        ' DD122606
  379.                         ZEmphasizeOff$)                              ' DD052301
  380.          Cat$ = ZCategoryCode$(CatFound)                             ' DD052301
  381.          CALL DispUpDir (CAT$,SearchString$,SearchDate$,DnldFlag,AbortIndex) ' DD052301
  382.       END IF                                                         ' DD052301
  383.       EXIT SUB
  384. * REPLACING old line(s) by new
  385. 58202 ZOutTxt$ = SearchDate$
  386.       IF LEN(ZOutTxt$) > 0 THEN _
  387.          ZOutTxt$ = MID$(ZOutTxt$,3) + LEFT$(ZOutTxt$,2)
  388. * ------[ first line different ]------
  389.       SrchDir$ = SearchString$ + _                                   ' Mpl090202
  390.              ZOutTxt$
  391.       IF SrchDir$ <> "" THEN _                                       ' Mpl090202
  392.          SrchDir$ = ZFGB$ + "Scanning for "  + ZFGE$ + SrchDir$      ' DD081801
  393.       RETURN
  394.       END SUB
  395. * REPLACING old line(s) by new
  396. 58250 ' $SUBTITLE: 'SmartText - smart text substitution'
  397. ' $PAGE
  398. '
  399. '  NAME    -- SmartText   (WRITTEN BY DOUG AZZARITO)
  400. '
  401. '  INPUTS  -- StringWork$        string to scan for Smart Text
  402. '             CRFound            Does this line contain a CR?
  403. '             ZSmartTextCode     Smart Text control code
  404. '
  405. '  OUTPUTS -- StringWork$        Input string with Smart replaced
  406. '
  407. '  PURPOSE -- Smart Text allows control strings in text files
  408. '             to be replaced at runtime with user info or other
  409. '             data.  The Smart Text control code is a 1-byte
  410. '             code (configurable) with a 2-byte action code.
  411. '
  412. * ------[ first line different ]------
  413.       SUB SmartText (StringWork$, CRFound, OverStrike,ReadMsgs) STATIC ' DD020801
  414.       IF SmartCarry$<>"" THEN _
  415.          StringWork$ = SmartCarry$+StringWork$
  416.       Index = INSTR(StringWork$, ZSmartTextCode$)
  417.       WHILE Index > 0 AND Index < LEN(StringWork$)-1
  418.          IF INSTR(MID$(StringWork$, Index+1,2),SPACE$(1)) THEN _     ' DD021301
  419.             SmartAct = 0 _
  420.          ELSE _
  421.             SmartAct = INSTR(ZSmartTable$, MID$(StringWork$, Index+1, 2))
  422.          IF SmartAct = 0 THEN _
  423.             WasI = 1 : _
  424.             GOTO 58254
  425.          SmartAct = (SmartAct+2)/3
  426.          IF SmartAct > 60 THEN _
  427.             GOTO 58252
  428.          IF SmartAct > 30 THEN _                                     ' DD052302
  429.             GOTO 58251                                               ' DD021401
  430.          ON SmartAct GOSUB 58260, 58261, 58262, 58263, 58264, _      ' DD052302
  431.                            58265, 58266, 58267, 58268, 58269, _      ' DD052302
  432.                            58270, 58271, 58272, 58273, 58274, _      ' DD052302
  433.                            58275, 58276, 58277, 58278, 58279, _      ' DD052302
  434.                            58280, 58281, 58282, 58283, 58284, _      ' DD052302
  435.                            58285, 58286, 58287, 58289, 58290         ' DD052302
  436.          GOTO 58253                                                  ' DD021401
  437. * INSERTING new line(s)
  438. 58251    SmartActTemp = SmartAct - 30                                ' DD052302
  439.          ON SmartActTemp GOSUB _                                     ' DD021401
  440.                            58291, 58292, 58293, 58294, 58295, _      ' DD052302
  441.                            58296, 58297, 58298, 58299, 58300, _      ' DD052302
  442.                            58301, 58302, 58303, 58304, 58305, _      ' DD052302
  443.                            58306, 58307, 58308, 58309, 58310, _      ' DD052302
  444.                            58311, 58312, 58313, 58314, 58315, _      ' DD052302
  445.                            58316, 58317, 58318, 58319, 58320         ' DD052302
  446.          GOTO 58253                                                  ' DD052302
  447. 58252    SmartActTemp = SmartAct - 60                                ' DD052302
  448.          ON SmartActTemp GOSUB _                                     ' DD052302
  449.                            58321, 58322, 58323, 58324, 58325, _      ' DD052302
  450.                            58326, 58327, 58328, 58329, 58330, _      ' DD052302
  451.                            58331, 58332, 58333, 58334, 58335, _      ' DD052302
  452.                            58336, 58337, 58338, 58339, 58340, _      ' DD052302
  453.                            58341, 58342, 58343, 58344, 58345, _      ' DD052302
  454.                            58346, 58347, 58348, 58349, 58350, _      ' DD052302
  455.                            58351, 58352, 58353                       ' DD062606
  456. 58253    GOSUB 58256                                                 ' DD021401
  457.          WasI = LEN(SmartHold$)
  458.          ReplaceLen = 3
  459.          IF OverStrike OR Overlay THEN _
  460.             IF WasI > 2 THEN _
  461.                ReplaceLen = WasI _
  462.             ELSE _
  463.                SmartHold$ = SmartHold$ + SPACE$(3 - WasI)
  464.          StringWork$ = LEFT$(StringWork$, Index-1) + SmartHold$ + _
  465.                        MID$(StringWork$,Index+ReplaceLen)
  466. * REPLACING old line(s) by new
  467. * ------[ first line different ]------
  468. 58260 IF ReadMsgs THEN _                                             ' DD020801
  469.          SmartHold$ = "" : _                                         ' Pe 02/05/93
  470.          RETURN                                                      ' Pe 02/05/93
  471.       ZLinesPrinted = 0                     ' CS (Clear screen line count reset)
  472.       SmartHold$ = ""
  473.       RETURN
  474. * REPLACING old line(s) by new
  475. * ------[ first line different ]------
  476. 58262 IF ReadMsgs THEN _                                             ' DD020801
  477.          SmartHold$ = "" : _                                         ' Pe 02/05/93
  478.          RETURN                                                      ' Pe 02/05/93
  479.       ZNonStop = ZTrue                      ' NS Non-stop
  480.       SmartHold$ = ""
  481.       RETURN
  482. * REPLACING old line(s) by new
  483. 58265 SmartHold$ = STR$(ZUserSecLevel)     ' SL Security level
  484. * ------[ first line different ]------
  485.       TrimSmart = ZTrue                                              ' DD062606
  486.       RETURN
  487. * REPLACING old line(s) by new
  488. 58269 CALL TimeRemain(MinsRemaining)      ' TE Time elapsed (mm:ss)
  489. * ------[ first line different ]------
  490.       SmartHold$ = MID$(STR$(INT(ZSecsUsedSession!/60)),2)+CHR$(58) + _ ' DD021301
  491.          MID$(STR$((ZSecsUsedSession! MOD 60)+100),3)
  492.       RETURN
  493. * REPLACING old line(s) by new
  494. 58270 SmartHold$ = MID$(STR$(INT((ZTimeLockSet+0.5)/60)),2) ' TL - Time Lock period
  495. * ------[ first line different ]------
  496.       SmartHold$ = SmartHold$ + CHR$(58) + MID$(STR$((ZTimeLockSet MOD 60)+100),3) ' DD021301
  497.       RETURN
  498. * REPLACING old line(s) by new
  499. * ------[ first line different ]------
  500. 58271 IF ZDaysInRegPeriod > 0 THEN                                   ' DD040802
  501.          SmartHold$ = MID$(STR$(ZDaysInRegPeriod),2)                 ' DD040802
  502.       ELSE                                                           ' DD040802
  503.          SmartHold$ = "(n/a)"                                        ' DD040802
  504.       END IF                                                         ' DD040802
  505.       RETURN                                ' RP Registration Length
  506. * REPLACING old line(s) by new
  507. * ------[ first line different ]------
  508. 58272 IF ZDaysInRegPeriod > 0 THEN                                   ' DD040802
  509.          SmartHold$ = MID$(STR$(ZRegDaysRemaining),2)                ' DD040802
  510.       ELSE                                                           ' DD040802
  511.          SmartHold$ = "(n/a)"                                        ' DD040802
  512.       END IF                                                         ' DD040802
  513.       RETURN                                ' RR Registration Remaining
  514. * REPLACING old line(s) by new
  515. 58273 SmartHold$ = ZCityState$              ' CT Users CITY & STATE
  516. * ------[ first line different ]------
  517.       TrimSmart = ZTrue                                              ' DD062606
  518.       RETURN
  519. * REPLACING old line(s) by new
  520. * ------[ first line different ]------
  521. 58285 IF ReadMsgs THEN _                                             ' DD040714
  522.          SmartHold$ = "" : _                                         ' DD040714
  523.          RETURN                                                      ' DD040714
  524.       SmartHold$ = ZFileName$               ' FI  File Name
  525.       RETURN
  526. * REPLACING old line(s) by new
  527. * ------[ first line different ]------
  528. 58286 IF ReadMsgs THEN _                                             ' DD020801
  529.          SmartHold$ = "" : _                                         ' DD020801
  530.          RETURN                                                      ' DD020801
  531.       Overlay = ZTrue                       ' VY Overlay ON
  532.       GOTO 58288
  533. * REPLACING old line(s) by new
  534. * ------[ first line different ]------
  535. 58287 IF ReadMsgs THEN _                                             ' DD020801
  536.          SmartHold$ = "" : _                                         ' DD020801
  537.          RETURN                                                      ' DD020801
  538.       Overlay = ZFalse                      ' VN Overlay OFF
  539. * REPLACING old line(s) by new
  540. * ------[ first line different ]------
  541. 58289 IF ReadMsgs THEN _                                             ' DD020801
  542.          SmartHold$ = "" : _                                         ' DD020801
  543.          RETURN                                                      ' DD020801
  544.       TrimSmart = ZTrue                     ' TY Trim Yes
  545.       GOTO 58288
  546. * REPLACING old line(s) by new
  547. * ------[ first line different ]------
  548. 58290 IF ReadMsgs THEN _                                             ' DD020801
  549.          SmartHold$ = "" : _                                         ' DD020801
  550.          RETURN                                                      ' DD020801
  551.       TrimSmart = ZFalse                    ' TN Trim No
  552.       GOTO 58288
  553. * REPLACING old line(s) by new
  554. 58292 SmartHold$ = ZNodeID$                 ' ND Node Number
  555. * ------[ first line different ]------
  556.       IF SmartHold$ >= CHR$(65) THEN _                     'A        ' DD021301
  557.          SmartHold$ = MID$(STR$(ASC(SmartHold$) - 54),2)
  558.       RETURN
  559. * REPLACING old line(s) by new
  560. 58295 SmartHold$ = ZConfName$               ' CN Conference Name
  561.       RETURN
  562. * ------[ first line different ]------
  563. * INSERTING new line(s)
  564. 58296 SmartHold$ = ZFG5$                                          ' DD061303
  565.       GOTO 58258                                                  ' DD061303
  566. 58297 SmartHold$ = ZFG6$                                          ' DD061303
  567.       GOTO 58258                                                  ' DD061303
  568. 58298 SmartHold$ = ZFG7$                                          ' DD061303
  569.       GOTO 58258                                                  ' DD061303
  570. 58299 SmartHold$ = ZFG8$                                          ' DD061303
  571.       GOTO 58258                                                  ' DD061303
  572. * REPLACING old line(s) by new
  573. * ------[ first line different ]------
  574. 58300 SmartHold$ = ZFG9$                                          ' DD061303
  575.       GOTO 58258                                                  ' DD061303
  576. * REPLACING old line(s) by new
  577. * ------[ first line different ]------
  578. 58301 SmartHold$ = ZFGA$                                          ' DD061303
  579.       GOTO 58258                                                  ' DD061303
  580. * REPLACING old line(s) by new
  581. * ------[ first line different ]------
  582. 58302 SmartHold$ = ZFGB$                                          ' DD061303
  583.       GOTO 58258                                                  ' DD061303
  584. * REPLACING old line(s) by new
  585. * ------[ first line different ]------
  586. 58303 SmartHold$ = ZFGC$                                          ' DD061303
  587.       GOTO 58258                                                  ' DD061303
  588. * REPLACING old line(s) by new
  589. * ------[ first line different ]------
  590. 58304 SmartHold$ = ZFGD$                                          ' DD061303
  591.       GOTO 58258                                                  ' DD061303
  592. * REPLACING old line(s) by new
  593. * ------[ first line different ]------
  594. 58305 SmartHold$ = ZFGE$                                          ' DD061303
  595.       GOTO 58258                                                  ' DD061303
  596. * INSERTING new line(s)
  597. 58306 SmartHold$ = ZFGF$                                          ' DD061303
  598.       GOTO 58258                                                  ' DD061303
  599. * REPLACING old line(s) by new
  600. * ------[ first line different ]------
  601. 58307 SmartHold$ = ZBG0$                                          ' DD081801/BGCOLOR
  602.       GOTO 58258                                                  ' DD081801/BGCOLOR
  603. * INSERTING new line(s)
  604. 58308 SmartHold$ = ZBG1$                                          ' DD081801/BGCOLOR
  605.       GOTO 58258                                                  ' DD081801/BGCOLOR
  606. 58309 SmartHold$ = ZBG2$                                          ' DD081801/BGCOLOR
  607.       GOTO 58258                                                  ' DD081801/BGCOLOR
  608. 58310 SmartHold$ = ZBG3$                                          ' DD081801/BGCOLOR
  609.       GOTO 58258                                                  ' DD081801/BGCOLOR
  610. 58311 SmartHold$ = ZBG4$                                          ' DD081801/BGCOLOR
  611.       GOTO 58258                                                  ' DD081801/BGCOLOR
  612. 58312 SmartHold$ = ZBG5$                                          ' DD081801/BGCOLOR
  613.       GOTO 58258                                                  ' DD081801/BGCOLOR
  614. 58313 SmartHold$ = ZBG6$                                          ' DD081801/BGCOLOR
  615.       GOTO 58258                                                  ' DD081801/BGCOLOR
  616. 58314 SmartHold$ = ZBG7$                                          ' DD081801/BGCOLOR
  617.       GOTO 58258                                                  ' DD081801/BGCOLOR
  618. 58315 IF ReadMsgs THEN _                         'SN                 ' DD020801
  619.          SmartHold$ = "" : _                                         ' DD020801
  620.          RETURN                                                      ' DD020801
  621.       ZSnoop = ZTrue                                                 ' DD121901
  622.       PRINT "SmartText Activated SNOOP ON"                           ' DD121901
  623.       GOTO 58288                                                     ' DD121901
  624. 58316 IF ReadMsgs THEN _                         'SO                 ' DD020801
  625.          SmartHold$ = "" : _                                         ' DD020801
  626.          RETURN                                                      ' DD020801
  627.       ZSnoop = ZFalse                                                ' DD121901
  628.       PRINT "SmartText Activated SNOOP OFF"                          ' DD121901
  629.       GOTO 58288                                                     ' DD121901
  630. 58317 SmartHold$ = STR$(ZBaudTest!)              'MS                 ' DD021302
  631.       TrimSmart = ZTrue                                              ' DD062606
  632.       RETURN                                                         ' DD021302
  633. 58318 IF ReadMsgs THEN _                                             ' DD021303
  634.          SmartHold$ = "" : _                                         ' DD021303
  635.          RETURN                                                      ' DD021303
  636.       SmartHold$ = ZCrLf$                        'CR                 ' DD021303
  637.       RETURN                                                         ' DD021303
  638. 58319 SmartHold$ = TIME$                         'LT                 ' DD021304
  639.       RETURN                                                         ' DD021304
  640. 58320 SmartHold$ = ZCurDate$                     'SD                 ' DD021401
  641.       RETURN                                                         ' DD021401
  642. 58321 SmartHold$ = STR$(ZWaitBeforeDisconnect)   'TD                 ' DD030902
  643.       TrimSmart = ZTrue                                              ' DD062606
  644.       RETURN                                                         ' DD021402
  645. 58322 SmartHold$ = ZMsgHeader$                   'ZM                 ' DD021405
  646.       RETURN                                                         ' DD021405
  647. 58323 SmartHold$ = STR$(ZDropTimes)              'DC                 ' DD040701
  648.       TrimSmart = ZTrue                                              ' DD062606
  649.       RETURN                                                         ' DD040701
  650. 58324 SmartHold$ = ZVersionID$                   'ZV                 ' DD040702
  651.       RETURN                                                         ' DD040702
  652. 58325 SmartHold$ = ZLastDateTimeOnSave$          'LD                 ' DD040703
  653.       RETURN                                                         ' DD040703
  654. 58326 SmartHold$ = STR$(ZTimesLoggedOn)          'TO                 ' DD040704
  655.       TrimSmart = ZTrue                                              ' DD062606
  656.       RETURN                                                         ' DD040704
  657. 58327 SmartHold$ = STR$(ZCallsToDate!)           'TC                 ' DD040705
  658.       TrimSmart = ZTrue                                              ' DD062606
  659.       RETURN                                                         ' DD040705
  660. 58328 IF ZActiveMessages = 0 THEN                'MA                 ' DD040706
  661.          SmartHold$ = "(not loaded)"                                 ' DD040706
  662.       ELSE                                                           ' DD040706
  663.          SmartHold$ = STR$(ZActiveMessages)                          ' DD040706
  664.          TrimSmart = ZTrue                                           ' DD062606
  665.       END IF                                                         ' DD040706
  666.       RETURN                                                         ' DD040706
  667. 58329 SmartHold$ = STR$(ZHighMsgNumber + 1)      'MH                 ' DD040707
  668.       TrimSmart = ZTrue                                              ' DD062606
  669.       RETURN                                                         ' DD040707
  670. 58330 IF ZLastMsgRead > 0 THEN                   'ML                 ' DD040708
  671.          SmartHold$ = STR$(ZLastMsgRead)                             ' DD040708
  672.          TrimSmart = ZTrue                                           ' DD062606
  673.       ELSE                                                           ' DD040708
  674.          SmartHold$ = "(none)"                                       ' DD040708
  675.       END IF                                                         ' DD040708
  676.       RETURN                                                         ' DD040708
  677. 58331 SmartHold$ = ZBaudParity$                  'BP                 ' DD040709
  678.       TrimSmart = ZTrue                                              ' DD062606
  679.       RETURN                                                         ' DD040709
  680. 58332 IF ZGlobalBankTime > 0 THEN                'BB                 ' DD040710
  681.          SmartHold$ = STR$(ZGlobalBankTime) + " Mins"                ' DD040710
  682.          TrimSmart = ZTrue                                           ' DD062606
  683.       ELSE                                                           ' DD040710
  684.          SmartHold$ = "(none)"                                       ' DD040710
  685.       END IF                                                         ' DD040710
  686.       RETURN                                                         ' DD040710
  687. 58333 SmartHold$ = STR$(ZMenuNewCalls)           'CL                 ' DD040711
  688.       TrimSmart = ZTrue                                              ' DD062606
  689.       RETURN                                                         ' DD040711
  690. 58334 ZWasZ$ = ZUpldDriveFile$                                       ' DD053101
  691.       CALL FindFree                                                  ' DD040712
  692.       SmartHold$ = ZFreeSpace$                   'FB                 ' DD040712
  693.       TrimSmart = ZTrue                                              ' DD062606
  694.       RETURN                                                         ' DD040712
  695. 58335 ZWasZ$ = ZUpldDriveFile$                                       ' DD053101
  696.       CALL FindFree                                                  ' DD040712
  697.       SmartHold$ = ZFreeSpaceK$                  'FK                 ' DD040712
  698.       TrimSmart = ZTrue                                              ' DD062606
  699.       RETURN                                                         ' DD040712
  700. 58336 ZWasZ$ = ZUpldDriveFile$                                       ' DD053101
  701.       CALL FindFree                                                  ' DD040712
  702.       SmartHold$ = ZFreeSpaceM$                  'FM                 ' DD040712
  703.       TrimSmart = ZTrue                                              ' DD062606
  704.       RETURN                                                         ' DD040712
  705. 58337 IF ZDropCarSecChng > 0 AND ZDropIncrement > 0 THEN  'DR        ' DD040713
  706.          SmartHold$ = STR$(ZDropCarSecChng)                          ' DD040713
  707.       ELSE                                                           ' DD040713
  708.          SmartHold$ = "(n/a)"                                        ' DD040713
  709.       END IF                                                         ' DD040713
  710.       TrimSmart = ZTrue                                              ' DD062606
  711.       RETURN                                     'PW                 ' DD040713
  712. 58338 SMartHold$ = ZPswdSave$                                        ' DD052302
  713.       RETURN                                                         ' DD052302
  714. 58339 SmartHold$ = MID$("NoviceExpert",1 -6 * ZExpertUser,6)  'UM    ' DD052302
  715.       RETURN                                                         ' DD052302
  716. 58340 SmartHold$ = ZProtoPrompt$                 'PR                 ' DD052302
  717.       RETURN                                                         ' DD052302
  718. 58341 SmartHold$ = FNOffOn$(ZUpperCase)          'UC                 ' DD052302
  719.       RETURN                                                         ' DD052302
  720. 58342 SmartHold$ = FNOffOn$(ZLineFeeds)          'LF                 ' DD052302
  721.       RETURN                                                         ' DD052302
  722. 58343 SmartHold$ = FNOffOn$(ZNulls)              'NL                 ' DD052302
  723.       RETURN                                                         ' DD052302
  724. 58344 SmartHold$ = FNOffOn$(ZTurboKeyUser)       'TK                 ' DD052302
  725.       RETURN                                                         ' DD052302
  726. 58345 SmartHold$ = MID$(RIGHT$("RIP   AvatarColor Mono  None  ",(ZWasGR+1)*6),1,6) 'GR ' DD061301
  727.       RETURN                                                         ' DD052302
  728. 58346 SmartHold$ = FNOffOn$(NOT ZHiLiteOff)      'HL                 ' DD052302
  729.       RETURN                                                         ' DD052302
  730. 58347 SmartHold$ = FNOffOn$(ZPromptBell)         'RB                 ' DD052302
  731.       RETURN                                                         ' DD052302
  732. 58348 SmartHold$ = FNYesNo$(-(ZCheckBulletLogon))'NB                 ' DD052302
  733.       RETURN                                                         ' DD052302
  734. 58349 SmartHold$ = FNYesNo$(-(NOT ZSkipFilesLogon)) 'NU              ' DD052302
  735.       RETURN                                                         ' DD052302
  736. 58350 SmartHold$ = FNYesNo$(-(ZFullScreenEditor))'AE                 ' DD052302
  737.       RETURN                                                         ' DD052302
  738. 58351 SmartHold$ = FNYesNo$(-(ZAvailableForChat))'IC                 ' DD080803
  739.       RETURN                                                         ' DD052302
  740. 58352 SmartHold$ = ""                                                ' DD062604
  741.       IF ReadMsgs THEN _                         'RG                 ' DD062604
  742.          RETURN                                                      ' DD062604
  743.       IF ZWasGR = 4 THEN _                                           ' DD062604
  744.          SmartHold$ = ZRIPGraphicsReset$                             ' DD062604
  745.       RETURN                                                         ' DD062604
  746. 58353 CALL UnPackDIRDate (ZListNewDate$, SmartHold$, CHR$(45)) 'NF   ' DD062606
  747.       RETURN                                                         ' DD062606
  748.       END SUB
  749. '
  750. 58390 ' $SUBTITLE: 'BufString - write a string with imbedded ZCR/LF' ' DD052302
  751. ' $PAGE
  752. '
  753. '  NAME    -- BufString
  754. '
  755. '  INPUTS  -- PARAMETER                      MEANING
  756. '             Strng$                 STRING TO BE WRITTEN OUT        ' Mpl090202
  757. '             DataSize               LENGTH OF STRING - # LEFT
  758. '                                        CHARS TO OUTPUT
  759. '
  760. '  OUTPUTS -- Strng$                 IS WRITTEN TO THE USER
  761. '
  762. '  PURPOSE -- To search the string, Strng$, for embedded carriage    ' Mpl090202
  763. '             returns and line feeds and write out each line with
  764. '             the appropriate substitution (cr/lf if to the local
  765. '             screen or cr/nulls/lf if to the communications port).
  766. '
  767.       SUB BufString (Strng$,PassedDataSize,AbortIndex) STATIC        ' Mpl090202
  768. 'print "^";passedstrng$;"^"
  769.       IF INSTR(Strng$,CHR$(27) + "[2J") <> 0 THEN _                  ' DD021301
  770.          ZScreenWasCleared = ZTrue                                   ' DD082902
  771.       WasL = LEN(Strng$)                                             ' Mpl090202
  772. 'print "passed length=";wasl;" pds=";passeddatasize
  773.       IF PassedDataSize < WasL THEN _
  774.          WasL = PassedDataSize
  775.       IF WasL < 1 THEN _                                             ' Mpl090202
  776.          EXIT SUB
  777. '     Temp = LEN(Hold$)                                              ' Mpl090202
  778. '     IF WasL = -1 THEN _         ' Clear Buffer                     ' Mpl090202
  779. '        IF Temp < 1 THEN _                                          ' Mpl090202
  780. '           EXIT SUB _                                               ' Mpl090202
  781. '        ELSE WasL = 0                                               ' Mpl090202
  782. '     IF LEN(Strng$) >= WasL+Temp THEN _                             ' Mpl090202
  783. '        LSET Strng$ = Hold$ : _                                     ' Mpl090202
  784. '        MID$(Strng$,Temp+1) = PassedStrng$ _                        ' Mpl090202
  785. '     ELSE Strng$ = Hold$ + PassedStrng$                             ' Mpl090202
  786. 'if len(hold$) > 0 then print "adding <";hold$;">":input xxx$        ' Mpl090202
  787. 'print "hold len=";temp;" wasl=";wasl                                ' Mpl090202
  788. '     WasL = WasL + LEN(Hold$)                                       ' Mpl090202
  789. '     Hold$ = ""                                                     ' Mpl090202
  790. '     IF ZDeleteInvalid THEN IF PassedDateSize > 0 THEN _            ' Mpl090202
  791. '        CALL FindLast (LEFT$(PassedStrng$,WasL),"[",Temp,ZWasZ) : _ ' Mpl090202
  792. '        IF Temp > 0 THEN _                                          ' Mpl090202
  793. '           Hold$ = MID$(PassedStrng$,Temp) : _                      ' Mpl090202
  794. '           WasL = WasL - LEN(Hold$)                                 ' Mpl090202
  795.       ZFF = ZPageLength - 1
  796.       StartByte = 1
  797.       ZRet = ZFalse
  798.       IF CarryOver THEN _
  799.          IF ASC(Strng$) = 10 THEN _
  800.             StartByte = 2 : _
  801.             CALL SkipLine (1+ZJumpSearching)
  802.       CarryOver = (MID$(Strng$,WasL,1) = ZCarriageReturn$)
  803.       WasL = WasL + CarryOver
  804. 58391 CRat = INSTR(StartByte,Strng$,ZCarriageReturn$)                ' DD052302
  805.       IF CRat > 0 AND CRat < WasL THEN _
  806.          CRFound = (MID$(Strng$,CRat + 1,1) = ZLineFeed$) _
  807.       ELSE CRFound = ZFalse
  808.       EOLlen = -2 * CRFound
  809.       IF CRFound THEN _
  810.          EOD = CRat _
  811.       ELSE EOD = WasL + 1
  812.       NumBytes = EOD - StartByte
  813.       StringWork$ = MID$(Strng$,StartByte,NumBytes)
  814.       IF NOT ZDeleteInvalid THEN _
  815.          GOTO 58392                                                  ' DD052302
  816.       Index = INSTR(StringWork$,CHR$(91))                   '[       ' DD021301
  817.       WasJ = LEN(StringWork$) - 1
  818.       WHILE Index > 0 AND Index < WasJ
  819.          IF MID$(StringWork$,Index + 2,1) = CHR$(93) THEN _ ']       ' DD021301
  820.             IF INSTR (ZInvalidOpts$,MID$(StringWork$,Index + 1,1)) THEN _
  821.                MID$(StringWork$,Index + 1,1) = CHR$(42)     '*       ' DD021301
  822.          Index = INSTR(Index + 1,StringWork$,CHR$(91))      '[       ' DD021301
  823.       WEND
  824.       Index = INSTR(StringWork$,CHR$(109))                  'm       ' DD022001
  825.       WasJ = LEN(StringWork$) - 1                                    ' DD022001
  826.       WHILE Index > 0 AND Index < WasJ                               ' DD022001
  827.          IF MID$(StringWork$,Index + 2,1) = CHR$(27) THEN _ 'esc     ' DD022001
  828.             IF INSTR (ZInvalidOpts$,MID$(StringWork$,Index + 1,1)) THEN _ ' DD022001
  829.                MID$(StringWork$,Index + 1,1) = CHR$(42)     '*       ' DD022001
  830.          Index = INSTR(Index + 1,StringWork$,CHR$(109))     'm       ' DD022001
  831.       WEND                                                           ' DD022001
  832.       IF ZWasGR = 3 THEN                                             ' DD040201
  833.          Index = INSTR(StringWork$,CHR$(1))                 '^A      ' DD040201
  834.          WasJ = LEN(StringWork$) - 1                                 ' DD040201
  835.          WHILE Index > 0 AND Index < WasJ                            ' DD040201
  836.             IF MID$(StringWork$,Index + 3,1) = CHR$(22) THEN _ '^V   ' DD040201
  837.                IF INSTR (ZInvalidOpts$,MID$(StringWork$,Index + 2,1)) THEN _ ' DD040201
  838.                   MID$(StringWork$,Index + 2,1) = CHR$(42)     '*    ' DD040201
  839.             Index = INSTR(Index + 3,StringWork$,CHR$(1))    '^A      ' DD040201
  840.          WEND                                                        ' DD040201
  841.       END IF                                                         ' DD040201
  842. 58392 IF ZJumpSearching THEN _                                       ' DD052302
  843.          Temp$ = StringWork$ : _
  844.          CALL AllCaps (Temp$) : _
  845.          HiLitePos = INSTR (Temp$,ZJumpTo$) : _
  846.          IF HiLitePos = 0 THEN _
  847.             GOTO 58397 _                                             ' DD052302
  848.          ELSE CALL Bracket (StringWork$,HiLitePos,HiLitePos+LEN(ZJumpTo$)-1,ZEmphasizeOn$,ZEmphasizeOff$) : _
  849.               ZJumpSearching = ZFalse
  850.       IF ZSmartTextCode THEN _
  851.          CALL SmartText (StringWork$, CRFound, ZFalse,ZFalse)        'Pe 02/06/93
  852.       IF NOT ZLocalUser THEN _
  853.          CALL EofComm (Char) : _
  854.          IF Char <> -1 THEN _
  855.             GOTO 58393            ' comm port input                  ' DD052302
  856.       ZKeyboardStack$ = INKEY$ : _
  857.       IF ZKeyboardStack$ <> "" THEN _  ' keyboard input
  858.          GOTO 58393                                                  ' DD052302
  859.       CALL QuickTPut (StringWork$, - (CRFound))
  860.       GOTO 58394                                                     ' DD052302
  861. 58393 ZOutTxt$ = StringWork$                                         ' DD052302
  862.       ZSubParm = 4
  863.       IF CRFound THEN ZSubParm = 5
  864.       CALL TPut
  865. 58394 IF ZRet THEN _                                                 ' DD052302
  866.          EXIT SUB
  867.       IF ZLinesPrinted < ZFF THEN _
  868.          GOTO 58397                                                  ' DD052302
  869. 58395 CALL CheckTimeRemain (MinsRemaining)                           ' DD052302
  870.       CALL CheckCarrier
  871.       IF ZSubParm = -1 THEN _
  872.          EXIT SUB
  873.       IF ZNonStop THEN _
  874.          GOTO 58397                                                  ' DD052302
  875.       IF NOT CRFound THEN _
  876.          GOTO 58397                                                  ' DD052302
  877.       ZForceKeyboard = ZTrue
  878.       CALL AskMore ("",ZTrue,ZFalse,AbortIndex,ZStopInterrupts)
  879.       IF ZNo THEN _
  880.          ZRet = ZTrue : _
  881.          EXIT SUB
  882. 58397 StartByte = EOD + EOLlen                                       ' DD052302
  883.       IF StartByte <= WasL THEN _
  884.          GOTO 58391                                                  ' DD052302
  885.       END SUB
  886. * REPLACING old line(s) by new
  887. 58400 ' $SUBTITLE: 'BufFile - subroutine to write a sequential file to the user'
  888. ' $PAGE
  889. '
  890. '  NAME    -- BufFile
  891. '
  892. '  INPUTS  -- PARAMETER                      MEANING
  893. '             FileSpec$               NAME OF THE FILE TO WRITE TO
  894. '                                                OUT TO THE USER
  895. '
  896. '  OUTPUTS -- NONE                    FILE IS WRITTEN TO THE USER
  897. '
  898. '  PURPOSE -- To display a sequential file to the user
  899. '
  900.       SUB BufFile (FilName$,AbortIndex) STATIC
  901.       CALL FindIt (FilName$)
  902.       IF NOT ZOK THEN _
  903.          GOTO 58419
  904. * ------[ first line different ]------
  905.       ZScreenWasCleared = ZFalse                                     ' DD082902
  906.       ZNo = ZFalse
  907.       CALL OpenRSeq (2,FilName$,NumRecs,LenLastRec,ZBufferSize)      ' DD031703
  908.       IF ZErrCode > 0 THEN _
  909.          GOTO 58419
  910.       DataSize = ZBufferSize
  911.       FIELD 2, DataSize AS SeqRec$
  912.       ZNonStop = ZNonStop OR (ZPageLength < 1)
  913.       ZJumpLast$ = ""
  914.       ZJumpSearching = ZFalse
  915.       ZJumpSupported = ZTrue
  916.       IF NOT ZStopInterrupts THEN _
  917.          IF NOT ZConcatFIles THEN _
  918.             IF NOT ZNonStop THEN _
  919.                ZOutTxt$ = "" : _                                     ' DD102701
  920.                ZSubParm = 5 : _                                      ' DD072101 (was 2)
  921.                CALL TPut
  922.      IF ZSubParm = -1 THEN _                                         ' Mpl090202
  923.         EXIT SUB                                                     'Pe 02/09/90
  924.       WasTU = 0
  925. * REPLACING old line(s) by new
  926. 58419 CLOSE 2
  927. * ------[ first line different ]------
  928. '     CALL BufString ("",-1,AbortIndex)                              ' Mpl090202
  929.       ZBypassTimeCheck = ZFalse
  930.       ZStopInterrupts = ZFalse
  931.       CALL QuickTPut (ZEmphasizeOff$,0)
  932.       ZJumpSupported = ZFalse
  933.       ZLastSmartColor$ = ""                                          ' DD082303/COLOR
  934.       IF ZScreenWasCleared = ZTrue THEN _                            ' DD082902
  935.          CALL Line25                                                 ' DD082902
  936.       END SUB
  937. * REPLACING old line(s) by new
  938. 58700 ' $SUBTITLE: 'RotorsDir - search thru a list of subdirs for a file'
  939. ' $PAGE
  940. '
  941. '  NAME    -- RotorsDir
  942. '
  943. '  INPUTS  --     PARAMETER                    MEANING
  944. '             FilName$                  FILE NAME TO LOOK FOR
  945. '             SDIR.ARA                  ARRAY OF SUBDIRECTORIES
  946. '             MaxSearch                 MAX # OF SUBDIRECTORIES
  947. '             MarkingTime               WHETHER TO MARK TIME
  948. '
  949. '  OUTPUTS -- FNAME$                    ADD SUBDIRECTORY TO THE
  950. '                                       FILE NAME IF FOUND.  OTHER-
  951. '                                       WISE DON'T.
  952. '             ZOK                       TRUE IF FILE WAS Found
  953. '
  954. '  PURPOSE -- Hunt through a list of subdirectories to determine
  955. '             if a file is in any of them.  If file is found, open
  956. '             the file as file #2, add the drive/path to the file
  957. '             name, and sets ZOK to true.  If file isn't found, set
  958. '             file name to the last subdirectory searched -- which
  959. '             should be the upload subdirectory.
  960. '
  961. '             If the library menu is selected (ZMenuIndex = 6), then
  962. '             only 2 subdirectories are searched. The first being
  963. '             the work disk and the second being the selected
  964. '             library disk.
  965. '
  966.       SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC
  967. * ------[ first line different ]------
  968.       CALL Carrier                                                   ' Mpl090202
  969.       IF ZSubParm = -1 THEN _                                        'Pe 01/04/89
  970.          EXIT SUB                                                    'Pe 01/04/89
  971.       ZOK = ZFalse
  972.       ZDotFlag = ZFalse
  973.       IF MarkingTime THEN _
  974.          CALL QuickTPut (ZFGB$ + "Searching for " + ZFG2$ + _        ' DD082503
  975.               FilName$ + ZEmphasizeOff$,0)                           ' DD082503
  976.      IF ZPersonalDnld THEN _                                         ' DD030903
  977.         ZFreeDnld = ZTrue : _                                        ' DD062501
  978.         MaxSearch = MaxSearch + 1 : _                                ' DD030903
  979.         SDirAra$(MaxSearch) = ZPersonalDrvPath$                      ' DD030903
  980. '     IF ZMenuIndex = 6 THEN _                                       ' Mpl090202
  981. '        GOTO 58705                                                  ' Mpl090202
  982.       NumSearch = 1
  983. '     WasX = 0                                                       ' DD021301
  984.       WasX$ = ZArkViewPath$ + FilName$                               'Pe 08/15/91
  985.       CALL FindFile (WasX$,ZOK)                                      'Pe 08/15/91
  986.       IF ZOK THEN _                                                  'Pe 08/15/91
  987.          GOTO 58710                                                  'Pe 08/15/91
  988.       WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
  989.          SDirAra$(NumSearch) <> ""
  990. '        IF MarkingTime THEN _                                       ' DD021301
  991. '           CALL MarkTime (WasX)                                     ' DD021301
  992.          WasX$ = SDirAra$(NumSearch) + _
  993.               FilName$
  994.          CALL FindFile (WasX$,ZOK)
  995.          NumSearch = NumSearch + 1
  996.       WEND
  997.       IF ZOK OR NOT ZFastFileSearch THEN _
  998.          GOTO 58710
  999.       TFastFileList$ = ZFastFileList$                                'SM102201
  1000.       TFastFileLocator$ = ZFastFileLocator$                          'SM102201
  1001.       TFastTabs$ = ZFastTab$                                         'SM102201
  1002.       Tptr = 1                                                       'SM102201
  1003.       CALL BreakFileName (ZFastFileList$, Drive$,TWasX$,ZWasY$,ZTrue)'SM102201
  1004.       TIdxLst$ = Drive$ + TWasX$ + ".LST"                            ' DD041001
  1005.       CALL FindIt (TIdxLst$)                                         'SM102201
  1006.       IF NOT ZOK THEN _                                              'SM102201
  1007.          TIdxLst$ = "" _                                             'SM033101
  1008.       ELSE _                                                         'SM033101
  1009.          GOTO 58703                                                  ' DD041001
  1010. * INSERTING new line(s)
  1011. 58702 FSize = 21                                                     ' DD021301
  1012.       CALL OpenRSeq (2,TFastFileList$,HighRec,WasX,21)               ' DD031703
  1013.       FIELD #2, 12 AS SearchFile$, _                                 ' WM050501
  1014.                  4 AS SearchPath$, _                                 ' WM050501
  1015.                  3 AS SearchDate$, _                                 ' WM050501
  1016.                  2 AS SearchCrLf$                                    ' WM050501
  1017.       GET 2,1                                                        'SM102201
  1018.       IF SearchCrLf$ <> ZCRLf$ THEN _                                'SM102201
  1019.          FSize = 18 : _                                              'SM102201
  1020.          CALL OpenRSeq (2,TFastFileList$,HighRec,WasX,18) : _        ' DD031703
  1021.          FIELD #2, 12 AS SearchFile$, _                              'SM102201
  1022.                     4 AS SearchPath$, _                              'SM102201
  1023.                     2 AS SearchCrLf$                                 'SM102201
  1024.       IF ZErrCode <> 0 THEN _
  1025.          ZOK = ZFalse : _                                            'SM102201
  1026.          GOTO 58710
  1027.       CALL TrimTrail (FilName$,CHR$(46))                             ' DD021301
  1028.       CALL BinSearch (2,FilName$,1,12,FSize,HighRec,RecFoundAt,RecFound$)' DD031702
  1029.       ZOK = (RecFoundAt > 0)
  1030.       ZFastTab$ = TFastTab$                                          'SM102201
  1031.       IF ZOK THEN _                                                  'SM102201
  1032.          GOTO 58704                                                  ' DD021301
  1033. 58703 IF TIdxLst$ = "" THEN _                                        ' DD041001
  1034.          GOTO 58710                                                  'SM102201
  1035.       CALL OpenWork(2,TIdxLst$)                                      'SM102201
  1036.       IF ZErrCode <> 0 THEN _                                        'SM102201
  1037.          ZOK = ZFalse : _                                            'SM102201
  1038.          GOTO 58710                                                  'SM102201
  1039.       CALL ReadParmsX(2,ZOutTxt$(),4,TPtr)                           ' DD041301
  1040.       IF ZErrCode <> 0 or ZOutTxt$(1)="" or ZOutTxt$(2)="" THEN _    'SM102201
  1041.          ZOK = ZFalse : _                                            'SM102201
  1042.          GOTO 58710                                                  'SM102201
  1043.       TPtr = TPtr + 1                                                'SM102201
  1044.       TFastFileList$ = ZOutTxt$(1)                                   'SM102201
  1045.       TFastFileLocator$ = ZOutTxt$(2)                                'SM102201
  1046.       CALL BreakFileName (TFastFileList$,Drive$,TWasX$,ZWasY$,ZTrue) 'SM102201
  1047.       TFN$ = Drive$ + TWasX$ + CHR$(84) + ZWasY$                     ' DD021301
  1048.       CALL FindIt (TFN$)                                             'SM102201
  1049.       IF ZOK THEN _                                                  'SM102201
  1050.          CALL OpenRSeq (2,TFN$, TWasX, WasY, 72) : _                 ' DD031703
  1051.          FIELD 2, 72 AS IndexRec$ : _                                'SM102201
  1052.          GET 2, 1 : _                                                'SM102201
  1053.          ZFastTabs$ = IndexRec$ : _                                  'SM102201
  1054.          CLOSE 2 _                                                   'SM102201
  1055.       ELSE _                                                         'SM102201
  1056.          ZFastTabs$ = ""                                             'SM102201
  1057.       GOTO 58702                                                     ' DD021301
  1058. 58704 ZOK = ZFalse                                                   ' DD021301
  1059.       CALL CheckInt (MID$(RecFound$,13,4))
  1060.       IF ZTestedIntValue < 1 THEN _
  1061.          GOTO 58710
  1062.       WasDX$ = DATE$                                                 ' Pe081091
  1063.       LSET SearchDate$ = CHR$ (VAL (MID$ (WasDX$, 9, 2)) - 48) + _   ' Pe081091
  1064.                          CHR$ (VAL (MID$ (WasDX$, 1, 2)) + 31) + _   ' Pe081091
  1065.                          CHR$ (VAL (MID$ (WasDX$, 4, 2)) + 31)       ' Pe081091
  1066.       PUT 2, RecFoundAt                                              ' WM050501
  1067.       CALL OpenRSeq (2,TFastFileLocator$,HighRec,WasX,66)            ' DD031703
  1068.       IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _
  1069.          GOTO 58710
  1070.       FIELD 2, 66 AS LocatorRec$
  1071.       GET 2, ZTestedIntValue
  1072.       Temp$ = WasX$
  1073.       WasX$ = LEFT$(LocatorRec$,63)
  1074.       CALL Trim (WasX$)
  1075.       IF LEFT$(WasX$,2) = "M!" THEN _
  1076.          ZOK = ZFalse : _
  1077.          ZGSRAra$(1) = PassToMacro$ : _
  1078.          WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _
  1079.          CALL Trim (WasX$) : _
  1080.          ZFileLocation$ = "" : _
  1081.          CALL MacroExe (WasX$) : _
  1082.          IF ZFileLocation$ = "" THEN _
  1083.             ZOK = ZFalse : _
  1084.             WasX$ = Temp$ : _
  1085.             GOTO 58710 _
  1086.          ELSE WasX$ = ZFileLocation$
  1087.       WasX$ = WasX$ + FilName$
  1088.       CALL FindFile (WasX$,ZOK)
  1089.       IF NOT ZOK THEN _
  1090.          WasX$ = SDirAra$(MaxSearch) + FilName$
  1091.       GOTO 58710
  1092. '58705 WasX$ = ZLibWorkDiskPath$ + _                                 ' DD062304
  1093. '          FilName$                                                  ' Mpl090202
  1094. '     CALL FindIt (WasX$)                                            ' Mpl090202
  1095. '     IF ZOK THEN _                                                  ' Mpl090202
  1096. '        GOTO 58710                                                  ' Mpl090202
  1097. '     WasX$ = ZLibDrive$ + _                                         ' Mpl090202
  1098. '          FilName$                                                  ' Mpl090202
  1099. '     CALL FindIt (WasX$)                                            ' Mpl090202
  1100. * DELETING old line(s)
  1101. 58705
  1102. * REPLACING old line(s) by new
  1103. 58800 ' $SUBTITLE: 'WipeLine - Wipe away a line so next overprints'
  1104. ' $PAGE
  1105. '
  1106. '  NAME    -- WipeLine
  1107. '
  1108. '  INPUTS  --     PARAMETER                    MEANING
  1109. '                 ZCarriageReturn$
  1110. '                 CharsToWipe            # OF CHARACTERS TO BLANK
  1111. '                 ZNulls
  1112. '
  1113. '  OUTPUTS -- NONE
  1114. '
  1115. '  PURPOSE -- Wipe away a line and leave cursor at beginning of the
  1116. '             same line so that the next line will print in its place
  1117. '
  1118.       SUB WipeLine (CharsToWipe) STATIC
  1119.       IF ZNulls OR CharsToWipe > 79 THEN _
  1120.          CALL SkipLine (1) : _
  1121.          EXIT SUB
  1122. * ------[ first line different ]------
  1123.       IF ZWasGR > 1 THEN _                                           ' DD040201
  1124.          Strng$ = ZCarriageReturn$ + ZEscape$ + "[K" _               ' DD081701
  1125.       ELSE _                                                         ' DD081701
  1126.          Strng$ = ZCarriageReturn$ + SPACE$(CharsToWipe) + _         ' DD081701
  1127.          ZCarriageReturn$                                            ' DD081701
  1128.       Strng$ = Strng$ + ZLastSmartColor$                             ' DD081901
  1129.       IF NOT ZLocalUser THEN _                                       ' DD081701
  1130.          CALL PutCom (Strng$)                                        ' DD081701
  1131.       IF ZSnoop THEN _
  1132.          LOCATE ,1 :  _
  1133.          CALL LPrnt(SPACE$(CharsToWipe),0) : _
  1134.          LOCATE ,1
  1135. '     IF ZF7Msg$ = "" OR _                                           ' DD040602
  1136. '        ZF7Msg$ = "NONE" OR _                                       ' DD040602
  1137. '        NOT ZSysopNext THEN _                                       ' DD040602
  1138. '        EXIT SUB                                                    ' DD040602
  1139. '     ZBypassTimeCheck = ZTrue                                       ' DD040602
  1140. '     CALL BufFile (ZF7Msg$,WasX)                                    ' DD040602
  1141.       END SUB
  1142. * REPLACING old line(s) by new
  1143. * ------[ first line different ]------
  1144. 58900 IF ZEndList = ZTrue THEN _                                     'Lk11/29/91
  1145.       EXIT SUB                                                       'Lk 11/29/91
  1146.       ZOutTxt$ = ZDirPrompt$
  1147.       ZMacroMin = 2
  1148.       CALL PopCmdStack
  1149.       IF ZWasQ = 0 OR ZSubParm = -1 THEN _
  1150.          EXIT SUB
  1151.       CALL AraAllCaps (ZUserIn$(),ZAnsIndex)
  1152.       IF ZUserIn$(ZAnsIndex) = CHR$(81) THEN _               'Q      ' DD021301
  1153.          ZWasQ = 0 : _
  1154.          EXIT SUB
  1155.       ZWasA = INSTR("E+.E-.E.L.H.?.",ZUserIn$(ZAnsIndex)+CHR$(46))   ' DD021301
  1156.       IF ZWasA = 0 THEN _
  1157.          EXIT SUB
  1158.       IF ZWasA > 8 THEN _
  1159.          IF ZAnsIndex < ZLastIndex THEN _
  1160.             GOTO 58900 _
  1161.          ELSE GOTO 58902
  1162.       IF ZWasA = 7 THEN _
  1163.          ZExtendedOff = NOT ZExtendedOff _
  1164.       ELSE ZExtendedOff = (ZWasA > 3)
  1165.       CALL QuickTPut1 ("Extended directory display "+FNOffOn$(NOT ZExtendedOff))
  1166.       GOTO 58900
  1167. * REPLACING old line(s) by new
  1168. 58902 ZFileName$ = ZCurDirPath$ + ZDirPrefix$ + _
  1169. * ------[ first line different ]------
  1170.                     CHR$(46) + ZDirExtension$                        ' DD021301
  1171.       CALL Graphic (ZFileName$)
  1172.       CALL BufFile (ZFileName$,ZAnsIndex)
  1173.       GOTO 58900
  1174.       END SUB
  1175. '
  1176. * REPLACING old line(s) by new
  1177. 58950 ' $SUBTITLE: 'ConvertDir -- Converts coded response to right directory'
  1178. ' $PAGE
  1179. '
  1180. '  NAME    -- ConvertDir
  1181. '
  1182. '  INPUTS  --     PARAMETER                    MEANING
  1183. '                 Start               ELEMENT TO BEGIN WITH
  1184. '                 ZUserIn$            ARRAY TO CONVERT
  1185. '                 ZWasQ               Last ELEMENT TO CONVERT
  1186. '
  1187. '  OUTPUTS --     ZUserIn$            CONVERTED DIRECTORY LIST
  1188. '
  1189. '  PURPOSE -- Let the user put in a short standard string for a directory
  1190. '
  1191. '
  1192.       SUB ConvertDir (Start) STATIC
  1193.       FOR WasI=Start TO ZLastIndex
  1194.          CALL AraAllCaps (ZUserIn$(),WasI)
  1195. * ------[ first line different ]------
  1196.          IF ZUserIn$(WasI)=CHR$(85) THEN _             'U            ' DD021301
  1197.             ZUserIn$(WasI) = ZUpldDirCheck$
  1198.          IF ZUserIn$(WasI) = CHR$(65) THEN _           'A            ' DD021301
  1199.             ZUserIn$(WasI) = "ALL"
  1200.       NEXT
  1201.       END SUB
  1202. '59100 ' $SUBTITLE: 'Muzak - subroutine to PLAY ZMusic'              ' DD062502
  1203. ' $PAGE
  1204. '
  1205. '  NAME    -- Muzak
  1206. '
  1207. '  INPUTS  --   PARAMETER     MEANING
  1208. '                       1   PLAY CONSIDER YOURSELF(OPENING SCREEN)
  1209. '                       2   PLAY WALK RIGHT IN(NEW USERS)
  1210. '                       3   PLAY DRAGNET (SECURITY VIOLATION)
  1211. '                       4   PLAY GOODBYE CHARLIE (GOODBYE)
  1212. '                       5   PLAY TAPS (ACCESS DENIED)
  1213. '                       6   PLAY OOM PAH PAH (DOWNLOAD)
  1214. '                       7   PLAY THNKS FOR MEMORIES(UPLOAD)
  1215. '
  1216. '  OUTPUTS -- NONE
  1217. '
  1218. '  PURPOSE -- Provide sysops and the visually impaired with
  1219. '             auditory feedback on what RBBS-PC is doing
  1220. '
  1221. '     SUB Muzak (PassedArg) STATIC                                   ' DD062502
  1222. '     ZFF = PassedArg                                                ' DD062502
  1223. '     ZSubParm = 0                                                   ' DD062502
  1224. '     IF (NOT ZSnoop) OR (NOT ZMusic) OR ZLocalUserMode THEN _       ' DD062502
  1225. '        EXIT SUB                                                    ' DD062502
  1226. '     ON ZFF GOTO 59102,59104,59106,59108,59110,59112,59114          ' DD062502
  1227. '     EXIT SUB                                                       ' DD062502
  1228. '59102 '---[Introduction CONSIDER YOURSELF]---                       ' DD062502
  1229. '   Music$ = "MBT180A4B-8B-8B-8B-2.G4A8F2"                           ' DD062502
  1230. '   PLAY "O2 X" + VARPTR$(Music$)                                    ' DD062502
  1231. '   EXIT SUB                                                         ' DD062502
  1232. '59104 '---[New User WALK RIGHT IN]---                               ' DD062502
  1233. '   Music1$ = "MBT180G4G4D2G8F+8F8E2A8B8"                            ' DD062502
  1234. '   Music2$ = "C8C+8D8C8"                                            ' DD062502
  1235. '   Music3$ = "B4G2"                                                 ' DD062502
  1236. '   PLAY "O2 X" + VARPTR$(Music1$) + "O3 X" + VARPTR$(Music2$) + "O2 X" + VARPTR$(Music3$) ' DD062502
  1237. '   EXIT SUB                                                         ' DD062502
  1238. '59106 '---[Security Violation DRAGNET THEME]---                     ' DD062502
  1239. '    Music$ = "MBT120C2D8E-4C2.C2D8E-4C4G-2."                        ' DD062502
  1240. '    PLAY "O2 X" + VARPTR$(Music$)                                   ' DD062502
  1241. '    EXIT SUB                                                        ' DD062502
  1242. '59108 '---[Goodbye GOODBYE CHARLIE]---                              ' DD062502
  1243. '     Music$ = "MBT180B-2.G2.F4D2."                                  ' DD062502
  1244. '     PLAY "O2 X" + VARPTR$(Music$)                                  ' DD062502
  1245. '     EXIT SUB                                                       ' DD062502
  1246. '59110 '---[Access Denied TAPS]---                                   ' DD062502
  1247. '     Music1$ = "MBT90F8A16"                                         ' DD062502
  1248. '     Music2$ = "C4."                                                ' DD062502
  1249. '     Music3$ = "A4F4C2.C8C16F2"                                     ' DD062502
  1250. '     PLAY "O2 X" + VARPTR$(Music1$) + "O3 X" + VARPTR$(Music2$) + "O2 X" + VARPTR$(Music3$) ' DD062502
  1251. '     EXIT SUB                                                       ' DD062502
  1252. '59112 '---[Download OOM PAH PAH]---                                 ' DD062502
  1253. '      Music$ = "MBT180F4A4A4C4A4A4G4A4G4D2"                         ' DD062502
  1254. '      PLAY "O2 X" + VARPTR$(Music$)                                 ' DD062502
  1255. '      EXIT SUB                                                      ' DD062502
  1256. '59114 '---[Upload THANKS FOR THE MEMORIES]---                       ' DD062502
  1257. '      Music1$ = "MBT180C2."                                         ' DD062502
  1258. '      Music2$ = "A8G8F4D2"                                          ' DD062502
  1259. '      PLAY "O3 X" + VARPTR$(Music1$) + "O2 X" + VARPTR$(Music2$)    ' DD062502
  1260. '      END SUB                                                       ' DD062502
  1261. * DELETING old line(s)
  1262. 59100
  1263. 59102
  1264. 59104
  1265. 59106
  1266. 59108
  1267. 59110
  1268. 59112
  1269. 59114
  1270. * REPLACING old line(s) by new
  1271. 59202 ' $SUBTITLE: 'UnPackDate -- subroutine to UNCompress DATE'
  1272. ' $PAGE
  1273. '
  1274. '  NAME    -- UnPackDate
  1275. '
  1276. '  INPUTS  --   PARAMETER      MEANING
  1277. '             CompressedDate$ Date in 2 byte compressed form
  1278. '
  1279. '  OUTPUTS --     Year           Year of compressed date
  1280. '                 WasMM          Month of compressed date
  1281. '                 WasDD          Day of compressed date
  1282. '             DisplayDate$       8 char display date (mm-dd-yyyy)
  1283. '
  1284. '  PURPOSE -- Uncompress a 2 char date to get Y,M,D & display
  1285. '
  1286.       SUB UnPackDate (CompressedDate$,Year,WasMM,WasDD,DisplayDate$) STATIC
  1287.       CALL GetYMD (CompressedDate$,1,Year)
  1288.       CALL GetYMD (CompressedDate$,2,WasMM)
  1289.       CALL GetYMD (CompressedDate$,3,WasDD)
  1290. * ------[ first line different ]------
  1291.       DisplayDate$ = RIGHT$(STRING$(2,48) + MID$(STR$(WasMM),2),2) + _ ' DD021301
  1292.                       CHR$(45) + _                                   ' DD021301
  1293.                       RIGHT$(STRING$(2,48) + MID$(STR$(WasDD),2),2) + _ ' DD021301
  1294.                       CHR$(45) + _                                   ' DD021301
  1295.                       RIGHT$(STR$(Year),2)
  1296.       END SUB
  1297. * REPLACING old line(s) by new
  1298. 59400 ' $SUBTITLE: 'LogPDown -- subroutine to record private downloads'
  1299. ' $PAGE
  1300. '
  1301. '  NAME    -- LogPDown
  1302. '
  1303. '  INPUTS  --   PARAMETER     MEANING
  1304. '
  1305. '  OUTPUTS --
  1306. '
  1307. '  PURPOSE -- Puts a "!" in place of an "*" in private directory
  1308. '             after downloaded
  1309. '
  1310.       SUB LogPDown (PrivateDnld,DwnIndex) STATIC
  1311.       IF NOT PrivateDnld THEN _
  1312.          EXIT SUB
  1313.       ZWasEN$ = ZActiveFMSDir$
  1314.       WasBX = &H4
  1315.       ZSubParm = 9
  1316.       CALL FileLock
  1317. * ------[ first line different ]------
  1318.       CALL OpenRand2 (2,ZWasEN$,ZFMSFileLength)                      ' DD033001
  1319.       IF ZErrCode > 0 THEN _
  1320.          GOTO 59405
  1321.       FIELD #2,ZFMSFileLength AS PersonalRec$
  1322.       L = LEN(ZUserIn$(0))
  1323.       FOR Temp = 1 TO ZDownFiles
  1324.          X = 5 * (DwnIndex - Temp) + 1
  1325.          IF X > 0 AND X < L THEN _
  1326.             ZWasA = VAL(MID$(ZUserIn$(0),X,5)) : _
  1327.             IF ZWasA > 0 THEN _
  1328.                GET #2,ZWasA : _
  1329.                MID$(PersonalRec$,ZFMSFileLength-2,1) = CHR$(33) : _ '! ' DD021301
  1330.                PUT #2,ZWasA
  1331.       NEXT
  1332. * REPLACING old line(s) by new
  1333. 59456 ZFileName$ = ZCurPUI$
  1334.       CALL Graphic (ZFileName$)
  1335.       IF NOT ZOK THEN _
  1336.          CALL UpdtCalr ("Missing menu " + ZCurPUI$,2) : _
  1337.          ZCurPUI$ = ZPrevPUI$ : _
  1338.          GOTO 59456
  1339.       CALL BreakFileName(ZFileName$,ZWasZ$,ZActiveMenu$,ZWasZ$,ZTrue)
  1340.       ZActiveMenu$ = LEFT$(ZActiveMenu$,1)
  1341. * ------[ first line different ]------
  1342.       LSET ZLastCommand$ = ZActiveMenu$ + SPACE$(1)                  ' DD021301
  1343.       ZPrevPUI$ = ZCurPUI$
  1344.       LINE INPUT #2,ZFileName$
  1345.       INPUT #2,Prompt$                                               'SM091926
  1346.       INPUT #2,ValidChoice$,ActualCommands$
  1347.       LINE INPUT #2,MenuChoice$
  1348.       LINE INPUT #2,MenuName$
  1349.       LINE INPUT #2,QuitCmd$
  1350.       INPUT #2,QuitPrompt$                                           'SM091926
  1351.       LINE INPUT #2,QuitSubCmds$
  1352.       LINE INPUT #2,QuitMenuOpt$
  1353.       LINE INPUT #2,QuitMenus$
  1354.       CALL Graphic (ZFileName$)
  1355.       CALL BreakFileName (ZFileName$,MenuDrvPath$,WasX$,ZWasY$,ZTrue)
  1356.       MenuToDisplay$ = ZFileName$
  1357.       WasJ = INSTR(ZOrigCommands$,CHR$(63))              '?          ' DD021301
  1358.       IF WasJ < 1 THEN _
  1359.          WasX$ = "" _
  1360.       ELSE WasX$ = MID$(ZAllOpts$,WasJ,1)
  1361. * REPLACING old line(s) by new
  1362. 59458 IF ZExpertUser THEN _
  1363. * ------[ first line different ]------
  1364.          CALL QuickTPut (ZConfName$ + ": ",0) : _                    ' Mpl090202
  1365.          CALL DispTimeRemain (TimeRemaining!) : _                    ' Mpl090202
  1366.          GOTO 59461
  1367. * REPLACING old line(s) by new
  1368. 59460 ZNonStop = (ZPageLength < 1)
  1369. * ------[ first line different ]------
  1370.       ZDeleteInvalid = ZTrue                                         'Pe 01/08/90
  1371.       CALL BufFile (MenuToDisplay$,WasX)
  1372.       ZDeleteInvalid = ZFalse                                        'Pe 01/08/90
  1373.       CALL Line25                                                    'Pe 01/13/90
  1374.       Call QuickTput (ZConfName$ + ": ",0)                           ' Mpl090202
  1375.       CALL DispTimeRemain (TimeRemaining!)                           'Pe time mod  Moved line number down 04/02/90
  1376. * REPLACING old line(s) by new
  1377. * ------[ first line different ]------
  1378. 59461 MID$(ZLastCommand$,2,1) = SPACE$(1)                            ' DD021301
  1379.       ZOutTxt$ = Prompt$
  1380.       ZTurboKey = -ZTurboKeyUser
  1381.       CALL PopCmdStack
  1382.       IF ZSubParm = -1 OR ZFunctionKey <> 0 THEN _
  1383.          EXIT SUB
  1384.       IF ZWasQ = 0 THEN _
  1385.          GOTO 59461                                                  ' Mpl090202
  1386. * REPLACING old line(s) by new
  1387. * ------[ first line different ]------
  1388. 59490 CALL Remove (ZCurPUI$,SPACE$(1))                               ' DD021301
  1389.       ZCurPUI$ = MenuDrvPath$ + _
  1390.                      ZCurPUI$ + _
  1391.                      ".PUI"
  1392.       GOTO 59455
  1393. * REPLACING old line(s) by new
  1394. * ------[ first line different ]------
  1395. 59492 CALL Putcom (ZBellRinger$)                                     ' DD070402
  1396.       CALL QuickTPut1 ("No such option <" + ZWasZ$ + CHR$(62))       ' DD021301
  1397.       CALL SmartPause                                                ' BK070193
  1398.       Call FlushKeys
  1399.       GOTO 59460
  1400.       END SUB
  1401. * REPLACING old line(s) by new
  1402. 59510 ZFileName$ = CurMenu$
  1403.       InMenu = ZTrue
  1404.       CALL BreakFileName (FrontOpt$,WasX$,FrontPre$,ZWasDF$,ZTrue)
  1405.       CALL BreakFileName (CurMenu$,MenuDrv$,WasX$,ZWasDF$,ZTrue)
  1406.       MenuFront$ = MenuDrv$ + LEFT$(WasX$,LEN(WasX$)-LEN(PreSuf$))
  1407.       IF CurMenu$ = LastSubMenu$ THEN _
  1408.          MenuFront$ = LEFT$(MenuFront$,LEN(MenuFront$)-1)
  1409.       CALL Graphic (ZFileName$)
  1410.       CurMenuVer$ = ZFileName$
  1411.       ZStopInterrupts = ZFalse
  1412. * ------[ first line different ]------
  1413. * INSERTING new line(s)
  1414. 59514 IF ZAnsIndex < ZLastIndex OR ZExpertUser THEN _                ' KG011501
  1415.          GOTO 59520
  1416. * REPLACING old line(s) by new
  1417. 59530 ZWasZ$ = ZUserIn$(ZAnsIndex)
  1418.       CALL AllCaps (ZWasZ$)
  1419. * ------[ first line different ]------
  1420.       IF CurMenu$ = ZConfMenu$ THEN                                  ' Pe ConfNum Mod
  1421.          CALL BreakFileName (ZConfMailList$,Drive$,Prefix$,Ext$,ZTrue)' Pe ConfNum Mod
  1422.          CALL Findit(Drive$ + PreFix$ + ".NUM")                      ' DD080902
  1423.          IF NOT ZOK THEN                                             ' Pe ConfNum Mod
  1424.             GOTO 59531                                               ' Pe ConfNum Mod
  1425.          END IF                                                      ' Pe ConfNum Mod
  1426.          CALL Openwork (2,Drive$ + PreFix$ + ".NUM")                 ' DD080902
  1427.          WHILE NOT EOF(2) AND (NOT Foundit)                          ' Pe ConfNum Mod
  1428.             CALL ReadAny                                             ' Pe ConfNum Mod
  1429.             IF ZErrCode > 0 THEN                                     ' Pe Confnum2
  1430.                CLOSE 2                                               'Pe Confnum2
  1431.                Goto 59531                                            'Pe Confnum2
  1432.             END IF                                                   ' Pe ConfNum Mod
  1433.             Dummy1$ = ZOutTxt$                                       ' Pe ConfNum Mod
  1434.             CALL ReadAny                                             ' Pe ConfNum Mod
  1435.             Dummy2$ = ZOutTxt$                                       ' Pe ConfNum Mod
  1436.             CALL ReadAny                                             ' Pe ConfNum Mod
  1437.             Dummy3$ = ZOutTxt$                                       ' Pe ConfNum Mod
  1438.             CALL ReadAny                                             'Pe 01/03/93
  1439.             Dummy4$ = ZOutTxt$                                       'Pe 01/03/93
  1440.             IF ZWasZ$ = Dummy1$ OR ZWasZ$ = Dummy4$ THEN             ' Pe ConfNum Mod              ' Pe ConfNum Mod
  1441.                ZConfNum$ = Dummy1$                                   ' Pe ConfNum Mod
  1442.                ConfNam$ = Dummy4$                                    ' Pe ConfNum Mod
  1443.                Foundit = ZTrue                                       ' Pe ConfNum Mod
  1444.                CALL Breakfilename (Dummy2$,pre$,body$,ext$,ZFalse)   ' Pe ConfNum Mod
  1445.                ZWasZ$ = Mid$(body$,1,LEN(body$)-1)                   ' Pe ConfNum Mod
  1446.             END IF                                                   ' Pe ConfNum Mod
  1447.          WEND                                                        ' Pe ConfNum Mod
  1448.          CLOSE 2                                                     ' Pe ConfNum Mod
  1449.          Foundit = ZFalse                                            ' Pe ConfNum Mod
  1450.       END IF                                                         ' Pe ConfNum Mod
  1451. * INSERTING new line(s)
  1452. 59531 IF INSTR(ReturnOn$,","+ZWasZ$+",") THEN _  'check if calling pgm wants
  1453.          EXIT SUB
  1454.       IF INSTR("LH?",ZWasZ$) THEN _       'check whether caller wants help
  1455.          GOTO 59515
  1456.       IF INSTR(ZWasZ$,CHR$(46)) > 0 THEN _                           ' DD021301
  1457.          GOTO 59532
  1458.       CALL BadFile (ZWasZ$,WasBF)
  1459.       IF WasBF > 1 THEN _
  1460.          GOTO 59532
  1461.       FPre$ = MenuFront$   ' check for sub-option
  1462.       PreSuf$ = CHR$(45)                                     '-      ' DD021301
  1463.       CALL BadFile (FPRE$ + ZWasZ$ + CHR$(45),WasBF)                 ' DD021301
  1464.       ZOK = ZFalse
  1465.       IF WasBF < 2 THEN _
  1466.          VerifyInMenu = ZFalse : _
  1467.          GOSUB 59538
  1468.       PreSuf$ = ""
  1469.       VerifyInMenu = PassedVerifyInMenu
  1470.       IF NOT ZOK THEN _
  1471.          FPre$ = FrontOpt$ : _    ' check standard option
  1472.          GOSUB 59538 : _
  1473.          IF NOT ZOK THEN _    ' check option where menu is
  1474.             FPre$ = MenuDrv$ + FrontPre$ : _
  1475.             IF FrontOpt$ <> FPre$ THEN _
  1476.                GOSUB 59538
  1477.       IF NewMenu THEN _
  1478.          NewMenu = ZFalse : _
  1479.          GOTO 59515
  1480.       IF ZOK THEN _
  1481.          EXIT SUB
  1482. * REPLACING old line(s) by new
  1483. 59532 GOSUB 59547
  1484. * ------[ first line different ]------
  1485.       GOTO 59514                                                     ' KG011501
  1486. * REPLACING old line(s) by new
  1487. 59540 WasX$ = FPre$ + _
  1488.            ZWasZ$ + PreSuf$ + _
  1489.            ".MNU" 'check whether option is a menu
  1490.       ZFileName$ = WasX$
  1491.       CALL Graphic (ZFileName$)
  1492.       IF ZOK THEN _
  1493.          NewMenu = ZTrue : _
  1494.          CurMenuVer$ = ZFileName$ : _
  1495.          CurMenu$ = WasX$ : _
  1496.          CALL BreakFileName (FPre$ + ZWasZ$,MenuDrv$,WasX$,ZWasDF$,ZTrue) : _
  1497.          MenuFront$ = MenuDrv$ + WasX$ : _
  1498. * ------[ first line different ]------
  1499.          IF PreSuf$ = CHR$(45) THEN _                          '-    ' DD021301
  1500.             LastSubMenu$ = CurMenu$
  1501.       RETURN
  1502. * REPLACING old line(s) by new
  1503. 59600 ' $SUBTITLE: 'SetEcho -- subroutine to reset who echoes'
  1504. ' $PAGE
  1505. '
  1506. '  NAME    -- SetEcho
  1507. '
  1508. '  INPUTS  --   PARAMETER     MEANING
  1509. '               NewEcho$   The new echo option
  1510. '               ZLocalUser
  1511. '
  1512. '  OUTPUTS -- ZRemoteEcho   Whether RBBS is to echo what a
  1513. '                           remote caller types
  1514. '
  1515. '  PURPOSE -- Resets who echos.  "R" is for RBBS to echo.
  1516. '             "I" is for intermediate host to echo.
  1517. '             "C" is for caller's communication pgm to echo.
  1518. '
  1519.       SUB SetEcho (NewEcho$) STATIC
  1520.       IF NewEcho$ = PrevEcho$ THEN _
  1521.          EXIT SUB
  1522. * ------[ first line different ]------
  1523.       IF NewEcho$ = CHR$(82) THEN _                           'R     ' DD021301
  1524.          ZRemoteEcho = (NOT ZLocalUser) _
  1525.       ELSE ZRemoteEcho = ZFalse
  1526.       IF ZLocalUser THEN _
  1527.          GOTO 59602
  1528.       IF NewEcho$ = CHR$(73) THEN _                           'I     ' DD021301
  1529.           IF ZFossil THEN _
  1530.              Bytes = LEN(ZHostEchoOn$) : _
  1531.              CALL FosWrite(ZComPort,Bytes,ZHostEchoOn$) : _
  1532.              GOTO 59602 _
  1533.           ELSE PRINT #3,ZHostEchoOn$; : _
  1534.                GOTO 59602
  1535.       IF PrevEcho$ = CHR$(73) THEN _                          'I     ' DD021301
  1536.           IF ZFossil THEN _
  1537.              Bytes = LEN(ZHostEchoOff$) : _
  1538.              CALL FosWrite(ZComPort,Bytes,ZHostEchoOff$) _
  1539.           ELSE PRINT #3,ZHostEchoOff$;
  1540. * REPLACING old line(s) by new
  1541. * ------[ first line different ]------
  1542. 59700 ZOutTxt$ = "Import what file? " + ZPressEnter$                 ' DD060101
  1543.       CALL PopCmdStack
  1544.       IF ZSubParm = -1 OR ZWasQ = 0 THEN _
  1545.          EXIT SUB
  1546.       CALL FindIt (ZUserIn$(ZAnsIndex))
  1547.       IF NOT ZOK THEN _
  1548.          CALL QuickTPut1 (ZUserIn$(ZAnsIndex) + " not found") : _
  1549.          GOTO 59700
  1550.       WHILE NOT EOF(2) AND NumLines < MaxLines
  1551.          NumLines = NumLines + 1
  1552.          LINE INPUT #2,LineAra$(NumLines)
  1553.       WEND
  1554.       CLOSE 2
  1555.       CALL WordWrap (MaxLen,NumLines,LineAra$())
  1556.       END SUB
  1557. * REPLACING old line(s) by new
  1558. 59703 ' $SUBTITLE: 'WordWrap -- subroutine to wrap lines in a message'
  1559. ' $PAGE
  1560. '
  1561. '  NAME    -- WordWrap
  1562. '
  1563. '  INPUTS  --   PARAMETER     MEANING
  1564. '               MaxLen       MAXIMUM LENGTH OF A SINGLE LINE
  1565. '               NumLines     NUMBER OF LINES IN A MESSAGE
  1566. '               LineAra$     ALL THE LINES IN THE MESSAGE
  1567. '
  1568. '  OUTPUTS --   NumLines
  1569. '               LineAra$
  1570. '
  1571. '  PURPOSE -- Batch adjusts a message, wrapping lines if
  1572. '             needed.  Preserves paragraph structure.
  1573. '
  1574.       SUB WordWrap (MaxLen,NumLines,LineAra$(1)) STATIC
  1575.       WasJ = 1
  1576.       SplitOn = 1 + .4 * MaxLen
  1577. * ------[ first line different ]------
  1578.       WHILE WasJ <= NumLines and NumLines < ZMaxMsgLines             'Pe 08/04/91
  1579.          ReFormatted = ZFalse
  1580. * REPLACING old line(s) by new
  1581. * ------[ first line different ]------
  1582. 59704    CALL TrimTrail (LineAra$(WasJ),SPACE$(1))                   ' DD021301
  1583.          WasK = LEN(LineAra$(WasJ))
  1584.          IF WasK <= MaxLen THEN _
  1585.             GOTO 59705
  1586.          CALL FindLast (LineAra$(WasJ),SPACE$(1),LastPos,HowMany)    ' DD021301
  1587.          IF MID$(LineAra$(WasJ), 3, 1) = CHR$(62) THEN _        '>   ' DD021301/QUOTE
  1588.             CALL AnyBut (LineAra$(WasJ),3,CHR$(62),WasX) _           ' DD021301/QUOTE
  1589.          ELSE _                                                      ' DD081301/QUOTE
  1590.             CALL AnyBut (LineAra$(WasJ),1,CHR$(62),WasX)             ' DD021301/QUOTE
  1591.          IF WasX = 0 THEN WasX = 2
  1592.          IF MID$(LineAra$(WasJ + 1),3,1) = CHR$(62) THEN _           ' DD021301/QUOTE
  1593.             CALL AnyBut (LineAra$(WasJ + 1),3,CHR$(62),Temp) _       ' DD021301/QUOTE
  1594.          ELSE _                                                      ' DD081301/QUOTE
  1595.             CALL AnyBut (LineAra$(WasJ+1),1,CHR$(62),Temp)           ' DD021301/QUOTE
  1596.          IF LEFT$(LineAra$(WasJ + 1),2) = SPACE$(2) OR ((Temp > 0) AND WasX <> Temp) THEN _ ' DD021301
  1597.             FOR WasK = NumLines TO WasJ + 1 STEP -1 : _
  1598.                LineAra$(WasK + 1) = LineAra$(WasK) : _
  1599.             NEXT : _
  1600.             NumLines = NumLines + 1 : _
  1601.             LineAra$(WasJ + 1) = ""
  1602.          IF WasX > 1 THEN _
  1603.             IF MID$(LineAra$(WasJ),WasX,1) = SPACE$(1) THEN _        ' DD021301
  1604.                WasX = WasX + 1
  1605.          WasX$ = LEFT$(LineAra$(WasJ),WasX-1)
  1606.          IF LastPos < SplitOn THEN _
  1607.             LineAra$(WasJ + 1) = WasX$ + MID$(LineAra$(WasJ),MaxLen) + MID$(LineAra$(WasJ + 1),WasX) : _
  1608.             LineAra$(WasJ) = LEFT$(LineAra$(WasJ),MaxLen - 1) + CHR$(45) _ ' DD021301
  1609.          ELSE ZUserIn$ = LEFT$(SPACE$(1), - (LEN(LineAra$(WasJ + 1)) > 0)) : _ ' DD021301
  1610.               LineAra$(WasJ + 1) = WasX$ + MID$(LineAra$(WasJ),LastPos + 1) + ZUserIn$ + MID$(LineAra$(WasJ + 1),WasX) : _
  1611.               LineAra$(WasJ) = LEFT$(LineAra$(WasJ),LastPos - 1)
  1612.          ReFormatted = ZTrue
  1613.          GOTO 59704
  1614. * REPLACING old line(s) by new
  1615. 59780 ' $SUBTITLE: 'GetAll -- subroutine to create directory list'
  1616. ' $PAGE
  1617. '
  1618. '  NAME    -- GetAll
  1619. '
  1620. '  INPUTS  --   PARAMETER     MEANING
  1621. '               LookIn$       NAME OF FILE TO SEARCH
  1622. '               DIR.EXT$      MAIN DIRECTORY EXTENSION TO USE
  1623. '               StartPos      Last POSITION USED IN ARRAY
  1624. '
  1625. '  OUTPUTS      StartPos     Last ELEMENT USED IN ARRAY
  1626. '               LoadInto$    ARRAY TO LOAD ELEMENTS Found
  1627. '
  1628. '  PURPOSE -- Creates a list (LoadInto$) of all directories
  1629. '             to be listed when ZWasA)ll is selected for a directory.
  1630. '             All uses config parm, which can be either a single
  1631. '             directory or list of directories (begin with "@").
  1632. '
  1633.       SUB GetAll (LoadInto$(1), StartPos) STATIC
  1634. * ------[ first line different ]------
  1635.       IF ZMasterDirName$ <> "" AND LEFT$(ZMasterDirName$,1) <> CHR$(64) THEN _ ' DD021301
  1636.          StartPos = StartPos + 1 : _
  1637.          LoadInto$(StartPos) = ZMasterDirName$ : _
  1638.          EXIT SUB
  1639.       ZOK = ZFalse
  1640.       IF LEN (ZMasterDirName$) > 1 AND LEFT$(ZMasterDirName$,1) = CHR$(64) THEN _ ' DD021301
  1641.          CALL FindIt(MID$(ZMasterDirName$,2))
  1642.       IF NOT ZOK THEN _
  1643.          CALL QuickTPut1 ("No dirs defined for A)ll") : _
  1644.          EXIT SUB
  1645.       MaxLoad = UBOUND(LoadInto$, 1)
  1646.       StartSort = StartPos + 1
  1647.       WHILE NOT EOF(2) AND StartPos < MaxLoad
  1648.          LINE INPUT #2, ZOutTxt$
  1649.          StartPos = StartPos + 1
  1650.          LoadInto$(StartPos) = ZOutTxt$
  1651.       WEND
  1652.       CLOSE 2
  1653.       END SUB
  1654. * REPLACING old line(s) by new
  1655. 59800 ' $SUBTITLE: 'BadFileChar -- checks file for illegal char'
  1656. ' $PAGE
  1657. '
  1658. '  NAME    --  BadFileChar
  1659. '
  1660. '  INPUTS  --  PARAMETER         MEANING
  1661. '               FilName$         NAME OF FILE TO CHECK
  1662. '
  1663. '  OUTPUTS --  IsOK            WHETHER NAME OK
  1664. '
  1665. '  PURPOSE --  Part of test for file's existence.  If bad
  1666. '              character in name, can't exist.
  1667. '
  1668.       SUB BadFileChar (FilName$,IsOK) STATIC
  1669.       WasL = LEN(FilName$)
  1670.       IF WasL > 2 THEN _
  1671. * ------[ first line different ]------
  1672.          IF INSTR(3,FilName$,CHR$(58)) > 0 THEN _          ':        ' DD021301
  1673.             IsOK = ZFalse : _
  1674.             EXIT SUB
  1675.       WasX$ = FilName$ + CHR$(61)                          '=        ' DD021301
  1676.       WasI = 1
  1677.       WHILE INSTR("/[]|<>+=;, ?*",MID$(WasX$,WasI,1)) = 0 AND ASC(MID$(WasX$,WasI)) < 128
  1678.          WasI = WasI + 1
  1679.       WEND
  1680.       IsOK = WasI > WasL
  1681.       END SUB
  1682. '
  1683. * REPLACING old line(s) by new
  1684. 59850 ' $SUBTITLE: 'ConfMail -- quickly checks mail waiting'
  1685. ' $PAGE
  1686. '
  1687. '  NAME    -- ConfMail
  1688. '
  1689. '  INPUTS  -- PARAMETER        MEANING
  1690. '         SKIP.CONFIRM         Whether to skip confirm of option
  1691. '         ZConfMailList$       File of user/message pairs to check
  1692. '         ZActiveUserFile$     Active user file (restored on exit)
  1693. '         ZActiveMessageFile$  Active msg file (restored)
  1694. '  OUTPUTS -- None
  1695. '
  1696. '  PURPOSE -- Quicking scans message header record to get
  1697. '             last msg # and user record to get whether any
  1698. '             new mail and last msg read, reports both, using
  1699. '             highlighting if new mail to caller.
  1700. '
  1701.       SUB ConfMail (MailCheckConfirm,LinkNew,LinkPers) STATIC
  1702. * ------[ first line different ]------
  1703.       IF NOT MailCheckConfirm AND ZWasGR = 4 THEN                    ' DD061903
  1704.          CALL BufFile (ZWelcomeFileDrvPath$ + "RIPWINC",WasX)        ' DD061903
  1705.       END IF                                                         ' DD061903
  1706.       SkipJoinUnjoin = ZNonStop OR LinkNew OR LinkPers
  1707.       IF ZStartHash = 1 AND ZUserFileIndex > 0 THEN _
  1708.          CALL FindIt (ZConfMailList$) _
  1709.       ELSE ZOK = ZFalse
  1710.       IF NOT ZOK THEN _
  1711.          EXIT SUB
  1712.       IF PrevMailList$ <> ZConfMailList$ THEN _
  1713.          SkipParms = 0
  1714.       PrevMailList$ = ZConfMailList$
  1715.       IF MailCheckConfirm THEN _
  1716.          ZOutTxt$ = ZCRLf$ + ZFGB$ + _                               ' DD052303
  1717.                     "Check conferences for mail/uploads?" + _        ' DD052303
  1718.               ZEmphasizeOff$ + ZYesPrompt$ : _                       ' DD060101
  1719.          ZTurboKey = -ZTurboKeyUser : _
  1720.          CALL PopCmdStack : _
  1721.          IF ZNo OR ZSubParm < 0 THEN _
  1722.             EXIT SUB
  1723.       CALL BreakFileName (ZActiveUserFile$,WasX$,NowInPre$,NowInExt$,ZFalse)
  1724.       CALL BreakFileName (ZOrigUserFile$,WasX$,OrigPre$,OrigExt$,ZFalse)
  1725.       CALL SkipLine (1)
  1726.       CALL QuickTPut1 (ZFGB$ + "Checking Message Bases You " + _     ' DD121501
  1727.            "Have Joined  " + ZFGF$ + ZBG1$ + "(* = linked)" + _      ' DD082302
  1728.            ZEmphasizeOff$)                                           ' DD072702
  1729.       IF LinkNew OR LinkPers THEN _
  1730.          ZLinkedConf$ = ""
  1731.       AnyMail = ZFalse
  1732.       ZStopInterrupts = ZFalse
  1733.       WasA1$ = ZActiveUserFile$
  1734.       MsgFileSave$ = ZActiveMessageFile$
  1735.       TempIndivValue$ = ""
  1736.       UserFileIndexSave = ZUserFileIndex
  1737.       UserRecordHold$ = ZUserRecord$
  1738.       ZOK = ZTrue
  1739.       CALL ReadParms (ZWorkAra$(),1,SkipParms)
  1740.       IF SkipParms = 0 THEN _
  1741.          LogicalEOF$ = "" _
  1742.       ELSE LogicalEOF$ = ZWorkAra$(1)
  1743. * REPLACING old line(s) by new
  1744. 59851 IF NOT ZOK THEN _
  1745.          GOTO 59856 _
  1746.       ELSE IF EOF(2) THEN _
  1747.               IF LogicalEOF$ = "" OR SkipParms = 0 THEN _
  1748.                  GOTO 59856 _
  1749.               ELSE CALL FindIt (ZConfMailList$) : _
  1750.                    SkipParms = 0 : _
  1751.                    GOTO 59851
  1752.          CALL ReadAny
  1753.          ZActiveUserFile$ = ZOutTxt$
  1754.          CALL ReadAny
  1755.          IF ZErrCode > 0 THEN _
  1756.             GOTO 59856
  1757.          SkipParms = SkipParms + 2
  1758.          ZActiveMessageFile$ = ZOutTxt$
  1759.          CALL FindFile (ZActiveUserFile$,ZOK)
  1760.          IF NOT ZOK THEN _
  1761.             GOTO 59856
  1762. * ------[ first line different ]------
  1763.          CALL OpenUser (ZHighestUserRecord)                          ' Mpl090202
  1764.          FIELD 5, 128 AS ZUserRecord$
  1765.          CALL FindFile (ZActiveMessageFile$,ZOK)
  1766.          IF NOT ZOK THEN _
  1767.             GOTO 59856
  1768.          CALL FindUser (ZOrigUserName$,"",ZStartHash,ZLenHash,_
  1769.                         0,0,ZHighestUserRecord,_                     ' Mpl090202
  1770.                         Found,HoldUserFileIndex,ZWasSL)
  1771.          IF NOT Found THEN _
  1772.             GOTO 59853
  1773.          CALL OpenMsg
  1774.          FIELD 1, 128 AS ZMsgRec$
  1775.          GET 1,1
  1776.          AnyMail = ZTrue
  1777.          WasX = CVI(MID$(ZUserRecord$,57,2))
  1778.          FileWait = (WasX AND 4096) > 0
  1779.          WasX = (WasX AND 512) > 0
  1780.          CALL BreakFileName (ZActiveUserFile$,WasX$,CurPre$,CurExt$,ZFalse)
  1781.          InCur = (CurPre$ = NowInPre$ AND CurExt$ = NowInExt$)
  1782. * REPLACING old line(s) by new
  1783. 59852    IF InCur THEN _
  1784.             FileWait = ZFileWaiting : _
  1785.             WasX = ZMailWaiting : _
  1786.             ZWasA = ZLastMsgRead _
  1787.          ELSE ZWasA = CVI(MID$(ZUserRecord$,51,2))
  1788.          ZWasB = VAL(LEFT$(ZMsgRec$,8))
  1789.          WasZ = (ZWasB - ZWasA)
  1790.          IF WasZ < 0 THEN _
  1791.             ZWasA = 0 : _
  1792.             WasZ = ZWasB _
  1793.          ELSE IF WasZ = 0 THEN _
  1794.                  WasX = ZFalse
  1795.          ZWasSL = LEN(CurPre$)
  1796.          IF CurPre$ = "USERS" AND CurExt$ = "" THEN _
  1797.             Conf$ = "MAIN" _
  1798.          ELSE Conf$ = LEFT$(CurPre$,ZWasSL-1)
  1799.          ZOutTxt$ = MID$(STR$((ZWasB > ZWasA) * WasZ),2)
  1800. * ------[ first line different ]------
  1801.          IF ZOutTxt$ = CHR$(48) THEN _                        '0     ' DD021301
  1802.             MsgColor1$ = ZFG2$ : _                                   ' DD121501
  1803.             MsgColor2$ = ZFG1$ _                                     ' DD121501
  1804.          ELSE _                                                      ' DD121501
  1805.             MsgColor1$ = ZFGA$ : _                                   ' DD121501
  1806.             MsgColor2$ = ZFG9$                                       ' DD121501
  1807.          Temp = LEN(ZOutTxt$)
  1808.          ZOutTxt$ = SPACE$(-(Temp<4) * (4-Temp)) + ZOutTxt$
  1809.          IF (WasZ > 0 AND LinkNew) OR (WasX AND LinkPers) THEN _
  1810.             IF (NOT InCur) THEN _
  1811.                CALL AddLink (Conf$)
  1812.          Temp = (INSTR(ZCarriageReturn$ + ZLinkedConf$,ZCarriageReturn$ + Conf$ + ZCarriageReturn$) > 0)
  1813.          ZWasY$ = ZFGA$ + MID$(" *",1-Temp,1) + ZFGE$ + SPACE$(1) + _ ' DD021301
  1814.                   Conf$ + SPACE$(-(ZWasSL<8) * (8-ZWasSL))           ' DD101601
  1815.          IF WasX THEN _
  1816.             WasX$ = SPACE$(2) + ZFGD$ + CHR$(42) + SPACE$(1) + _     ' DD031301
  1817.             ZEmphasizeOn$ + " Some to you! " + ZEmphasizeOff$ _      ' DD080101
  1818.          ELSE WasX$ = SPACE$(10)                                     ' DD021301
  1819.          IF FileWait THEN _
  1820.             Temp$ = SPACE$(2) + ZFGD$ + CHR$(42) + SPACE$(1) + _     ' DD031301
  1821.             ZEmphasizeOn$ + " Personal Upload for you! " + ZEmphasizeOff$ _ ' DD021301
  1822.          ELSE Temp$ = ""
  1823.          ZOutTxt$ = ZWasY$ + ZFG6$ + " : " + MsgColor1$ + _          ' DD121501
  1824.               ZOutTxt$ + MsgColor2$ + " new message(s)" + _          ' DD121501
  1825.               ZEmphasizeOff$ +  WasX$ + Temp$                        ' DD082601
  1826.          ZSubParm = 5
  1827.          CALL TPut
  1828.          ZJumpSupported = ZFalse
  1829.          IF SkipJoinUnjoin THEN _
  1830.             CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) : _
  1831.             GOTO 59853
  1832.          ZTurboKey = -ZTurboKeyUser
  1833.          CALL AskMore (",J)oin,U)njoin,L)ink,D)elink",ZTrue,ZFalse,WasX,ZFalse)
  1834.          IF ZNo THEN _
  1835.             GOTO 59856
  1836.          WasX$ = LEFT$(ZUserIn$(1),1)
  1837.          CALL AllCaps (WasX$)
  1838.          IF WasX$ = CHR$(74) THEN _                             'J   ' DD021301
  1839.             ZLastIndex = ZWasQ : _
  1840.             ZHomeConf$ = Conf$ : _
  1841.             GOTO 59856
  1842.          IF WasX$ = CHR$(68) THEN _                             'D   ' DD021301
  1843.             CALL DeLink (Conf$) : _
  1844.             GOTO 59852
  1845.          IF WasX$ = CHR$(76) THEN _                             'L   ' DD021301
  1846.             CALL AddLink (Conf$) : _
  1847.             GOTO 59852
  1848.          IF WasX$ = CHR$(85) THEN _                             'U   ' DD021301
  1849.             IF InCur OR (OrigPre$ = CurPre$ AND OrigExt$ = CurExt$) THEN _
  1850.                CALL SkipLine (1) : _                                 ' DD031302
  1851.                CALL QuickTPut1 (ZFGE$ + ZBG4$ + _                    ' DD031302
  1852.                     "Can't omit yourself from the board " + _        ' DD082201
  1853.                     "or conference you're in" + ZEmphasizeOff$) _    ' DD082201
  1854.             ELSE LSET ZUserRecord$ = CHR$(0) + "deleted user" : _
  1855.                  ZUserFileIndex = HoldUserFileIndex : _
  1856.                  ZSubParm = 6 : _
  1857.                  CALL FileLock : _
  1858.                  PUT 5, HoldUserFileIndex : _
  1859.                  ZSubParm = 8 : _
  1860.                  CALL FileLock : _
  1861.                  CALL SkipLine (1) : _                               ' DD031302
  1862.                  CALL QuickTPut (ZFGE$ + ZBG1$ + _                   ' DD031302
  1863.                      "Omitted you from " + ZFGF$ + Conf$ + _         ' DD082103
  1864.                      ZEmphasizeOff$,2)                               ' DD031302
  1865. * REPLACING old line(s) by new
  1866. 59856 ZActiveUserFile$ = WasA1$
  1867.       CALL OpenUser (ZHighestUserRecord)
  1868.       FIELD 5, 128 AS ZUserRecord$
  1869.       IF (NOT ZRet) AND NOT AnyMail THEN _
  1870. * ------[ first line different ]------
  1871.          CALL QuickTPut1 (ZFGF$ + ZBG2$ + "You have not joined " + _ ' DD082201
  1872.               "any conferences" + ZEmphasizeOff$)                    ' DD082201
  1873.       ZUserFileIndex = UserFileIndexSave
  1874.       LSET ZUserRecord$ = UserRecordHold$
  1875.       ZActiveMessageFile$ = MsgFileSave$
  1876.       CALL OpenMsg
  1877.       FIELD 1, 128 AS ZMsgRec$
  1878.       GET 1,1
  1879.       ZNonStop = (ZPageLength < 1)
  1880.       WasX$ = ZUserIn$(ZAnsIndex+1)
  1881.       CALL AllCaps (WasX$)
  1882.       ZAnsIndex = ZAnsIndex - (WasX$ = CHR$(67))                     ' DD021301
  1883.       SkipParms = -(NOT EOF(2))*SkipParms
  1884.       LinkNew = ZFalse
  1885.       LinkPers = ZFalse
  1886.       CLOSE 2                                                        ' KG012501
  1887.       END SUB
  1888. * REPLACING old line(s) by new
  1889. 59860 CALL QuickTPut (ZEmphasizeOff$,0)
  1890.       IF CantInterrupt THEN _
  1891.          ZTurboKey = 2 : _
  1892.          ZForceKeyboard = ZTrue : _
  1893. * ------[ first line different ]------
  1894.          ZOutTxt$ = ZEmphasizeOn$ + "Press any key to continue" + _  ' DD081601
  1895.                     ZEmphasizeOff$ _                                 ' DD081601
  1896.       ELSE GOSUB 59870 : _
  1897.            ZOutTxt$ = ZMorePrompt$ + Temp$ + ExtraPrompt$ + LEFT$(CHR$(62),-ZExpertUser) ' DD021301
  1898.       WasX = LEN(ZOutTxt$) + 2
  1899.       ZNoAdvance = OverWrite
  1900.       ZSubParm = 1
  1901.       IF ExtraPrompt$ = "" AND ZTurboKey = 0 THEN _
  1902.          ZTurboKey = -ZTurboKeyUser
  1903.       ZMacroMin = 2
  1904.       CALL TGet
  1905.       IF ZSubParm = -1 THEN _
  1906.         EXIT SUB
  1907.       ZTurboKey = ZFalse
  1908.       ZWasDF$ = ZUserIn$ (1)
  1909.       CALL AllCaps (ZWasDF$)
  1910.       WasI = INSTR(";C;A;",CHR$(59)+ZWasDF$+CHR$(59))                ' DD021301
  1911.       IF WasI = 1 THEN _
  1912.          ZNonStop = ZTrue : _
  1913.          ZWasQ = 0
  1914.       IF ZMorePromptLF THEN                                          ' DD070104
  1915.          CALL SkipLine (1)                                           ' DD070104
  1916.       ELSE                                                           ' DD070104
  1917.          CALL WipeLine (WasX + LEN(ZUserIn$))                        ' DD070104
  1918.       END IF                                                         ' DD070104
  1919.       IF NOT ZHiLiteOff THEN _
  1920.          CALL QuickTPut (ZLastSmartColor$,0)
  1921.       IF CantInterrupt THEN _
  1922.          ZNo = ZFalse : _
  1923.          EXIT SUB
  1924.       IF WasI = 3 THEN _
  1925.          ZLastIndex = 0 : _
  1926.          AbortIndex = 32000
  1927.       IF ZNo THEN _
  1928.          ZKeyboardStack$ = "" : _
  1929.          ZCommPortStack$ = "" : _
  1930.          ZLastSmartColor$ = ""
  1931.       IF NOT ZJumpSupported THEN _
  1932.          EXIT SUB
  1933.       IF ZWasDF$ = CHR$(74) THEN _                             'J    ' DD021301
  1934.          IF ZWasQ > 1 THEN _
  1935.             ZUserIn$ = ZUserIn$(2) : _
  1936.             GOTO 59866 _
  1937.          ELSE ZOutTxt$ = ZFG0$ + "Jump to what text? " + _           ' DD060101
  1938.                          ZPressEnterExpert$ + ZEmphasizeOff$ : _     ' DD060101
  1939.               CALL PopCmdStack : _
  1940.               IF ZWasQ = 0 THEN _
  1941.                  EXIT SUB _
  1942.               ELSE GOTO 59866
  1943.       IF ZWasDF$ <> CHR$(82) THEN _                          'R      ' DD021301
  1944.          EXIT SUB
  1945.       ZUserIn$ = ZJumpLast$
  1946. * REPLACING old line(s) by new
  1947. 59890 ' $SUBTITLE: 'ExpireDate -- subroutine to display expiration date'
  1948. ' $PAGE
  1949. '
  1950. '  NAME    -- ExpireDate
  1951. '
  1952. '  INPUTS  --   PARAMETER           MEANING
  1953. '             RegDate!    COMPUTATIONAL REGISTRATION DATE
  1954. '             RegPeriod   DAYS IN REGISTRATION PERIOD
  1955. '
  1956. '  OUTPUTS -- ExpDate$             DISPLAYABLE EXPIRATION DATE
  1957. '
  1958. '  PURPOSE -- Computes/creates a displayable registration
  1959. '             expiration date using registration date and days in
  1960. '             registration period.
  1961. '
  1962.       SUB ExpireDate (RegDate!,RegPeriod,ExpDate$) STATIC
  1963.       ExpDate! = RegDate! + RegPeriod
  1964.       ExpireYear = INT((ExpDate! - ExpDate! / 1461) / 365)
  1965.       ExpireDay = ExpDate! - (ExpireYear * 365.0 + INT((ExpireYear -1)/4))
  1966.       ExpireMonth = -((ExpireYear MOD 4)<>0) * _
  1967.                       (1 - (ExpireDay > 31) - (ExpireDay > 59) - _
  1968.                       (ExpireDay > 90) - (ExpireDay >120) - _
  1969.                       (ExpireDay > 151) - (ExpireDay > 181) - _
  1970.                       (ExpireDay > 212) - (ExpireDay > 243) - _
  1971.                       (ExpireDay > 273) - (ExpireDay > 304) - _
  1972.                       (ExpireDay > 334)) - ((ExpireYear MOD 4) = 0) * _
  1973.                       (1 - (ExpireDay > 31) - (ExpireDay > 60) - _
  1974.                       (ExpireDay > 91) - (ExpireDay >121) - _
  1975.                       (ExpireDay > 152) - (ExpireDay > 182) - _
  1976.                       (ExpireDay > 213) - (ExpireDay > 243) - _
  1977.                       (ExpireDay > 274) - (ExpireDay > 305) - _
  1978.                       (ExpireDay > 335))
  1979.       ExpireDay = (ExpireDay - ((ExpireMonth - 1) * 28 + _
  1980.          VAL(MID$("000303060811131619212426",(ExpireMonth -1) * 2 + 1,2)))) + _
  1981.          ((ExpireMonth > 2) AND ((ExpireYear MOD 4) = 0))
  1982. * ------[ first line different ]------
  1983.       ExpDate$ = RIGHT$(CHR$(48) + MID$(STR$(ExpireMonth),2),2) + _  ' DD021301
  1984.                   CHR$(47) + _                                       ' DD021301
  1985.                   RIGHT$(CHR$(48) + MID$(STR$(ExpireDay),2),2) + _   ' DD021301
  1986.                   CHR$(47) + _                                       ' DD021301
  1987.                   RIGHT$(STR$(ExpireYear),2)
  1988.       END SUB
  1989. * REPLACING old line(s) by new
  1990. 59920 ' $SUBTITLE: 'ColorDir - builds a color FMS directory string'
  1991. ' $PAGE
  1992. '
  1993. '  NAME    --  ColorDir
  1994. '
  1995. '  INPUTS  --  PARAMETER                   MEANING
  1996. '               Strng$              String to alter
  1997. '               FMSDir$            "Y" FOR FMS DIR
  1998. '                                  "N" FOR PERSONAL Download
  1999. '
  2000.       SUB ColorDir (Strng$,FMSDir$) STATIC
  2001. * ------[ first line different ]------
  2002.       IF ZHiLiteOff THEN _                                           ' DD062304
  2003.          EXIT SUB
  2004.       IF FMSDir$ = CHR$(78) THEN _                              'N   ' DD021301
  2005.          GOTO 59921
  2006. '
  2007. ' INSERT COLOR FOR FILENAME
  2008. '
  2009.       ON INSTR("\ *",LEFT$(Strng$,1)) GOTO 59924,59922,59923
  2010. * REPLACING old line(s) by new
  2011. * ------[ first line different ]------
  2012. 59921 Strng$ = ZDR1$ + LEFT$(Strng$,13) + ZDR2$ + _                  ' DD070203
  2013.                MID$(Strng$,14,10) + ZDR3$ + MID$(Strng$,24,10) + _   ' DD070203
  2014.                ZDR4$ + MID$(Strng$,34,ZMaxDescLen) + ZEmphasizeoff$  ' DD070203
  2015.       EXIT SUB
  2016. * REPLACING old line(s) by new
  2017. * ------[ first line different ]------
  2018. 59922 Strng$ = ZDR5$ + Strng$          'extended description         ' DD070203
  2019.       EXIT SUB
  2020. * REPLACING old line(s) by new
  2021. 59930 ' $SUBTITLE: 'CheckColor - highlights based on search string'
  2022. ' $PAGE
  2023. '
  2024. '  NAME    --  CheckColor
  2025. '
  2026. '  INPUTS  --  PARAMETER                   MEANING
  2027. '              LookFor$           String that triggers highlight
  2028. '              LookIn$            String being searched
  2029. '              EndColor$          Terminating color
  2030. '
  2031. '  OUTPUTS --  Strng$              Revised string
  2032. '
  2033. '  PURPOSE --  Adds highlighting to a string within a string.
  2034. '              Respects previous colorization.
  2035.       SUB CheckColor (LookIn$,LookFor$,PassedEndColor$) STATIC
  2036.       IF LookFor$ = "" THEN _
  2037.          EXIT SUB
  2038.       WasX$ = LookIn$
  2039.       CALL AllCaps (WasX$)
  2040.       StartColor = INSTR(WasX$,LookFor$)
  2041.       IF StartColor < 1 THEN _
  2042.          EXIT SUB
  2043.       EndColor$ = PassedEndColor$
  2044.       IF EndColor$ = "" THEN _
  2045.          EndColor$ = ZEmphasizeOff$ : _
  2046.          CALL FindLast (LEFT$(LookIn$,StartColor-1),ZEscape$,WhereFound,WasJ) : _
  2047.          IF WhereFound > 0 THEN _
  2048. * ------[ first line different ]------
  2049.             WasJ = INSTR(WhereFound,LookIn$,CHR$(109)) : _   'm      ' DD021301
  2050.             IF WasJ > 0 THEN _
  2051.                EndColor$ = MID$(LookIn$,WhereFound,WasJ-WhereFound+1)
  2052.       CALL Bracket (LookIn$,StartColor,StartColor + _                ' DD082101
  2053.            LEN(LookFor$)-1,ZEmphasizeOn$,EndColor$ + ZBG0$)          ' DD082101
  2054.       END SUB
  2055. * REPLACING old line(s) by new
  2056. 59934 ' $SUBTITLE: 'SetHiLite - subroutine to reset highlight preference'
  2057. ' $PAGE
  2058. '
  2059. '  NAME    --  SetHiLite
  2060. '
  2061. '  INPUTS  --  PARAMETER                   MEANING
  2062. '              SetTo              New value (True or False)
  2063. '              ZEmphasizeOnDef$   String turns emphasize on
  2064. '              ZEmphasizeOffDef$  String turns emphasize off
  2065. '
  2066. '  OUTPUTS --  ZHiLiteOff       Callers preference on Hilite
  2067. '              ZEmphasizeOn$       String to use for emphasis
  2068. '              ZEmphasizeOff$      String to use after emphasis
  2069. '
  2070.       SUB SetHiLite (SetTo) STATIC
  2071.       ZHiLiteOff = (ZEmphasizeOnDef$ <> "" AND SetTo)
  2072.       IF ZHiLiteOff THEN _
  2073.          ZEmphasizeOn$ = "" : _
  2074.          ZEmphasizeOff$ = "" : _
  2075. * ------[ first line different ]------
  2076.          ZDR1$ = "" : _                                              ' DD070203
  2077.          ZDR2$ = "" : _                                              ' DD070203
  2078.          ZDR3$ = "" : _                                              ' DD070203
  2079.          ZDR4$ = "" : _                                              ' DD070203
  2080.          ZDR5$ = "" : _                                              ' DD070203
  2081.          ZDR6$ = "" : _                                              ' DD070203
  2082.          ZDR7$ = "" : _                                              ' DD070203
  2083.          ZFG0$ = "" : _                                              ' DD083003/COLR
  2084.          ZFG1$ = "" : _
  2085.          ZFG2$ = "" : _
  2086.          ZFG3$ = "" : _
  2087.          ZFG4$ = "" : _                                              ' DD061303/COLR
  2088.          ZFG5$ = "" : _                                              ' DD061303/COLR
  2089.          ZFG6$ = "" : _                                              ' DD061303/COLR
  2090.          ZFG7$ = "" : _                                              ' DD061303/COLR
  2091.          ZFG8$ = "" : _                                              ' DD061303/COLR
  2092.          ZFG9$ = "" : _                                              ' DD061303/COLR
  2093.          ZFGA$ = "" : _                                              ' DD061303/COLR
  2094.          ZFGB$ = "" : _                                              ' DD061303/COLR
  2095.          ZFGC$ = "" : _                                              ' DD061303/COLR
  2096.          ZFGD$ = "" : _                                              ' DD061303/COLR
  2097.          ZFGE$ = "" : _                                              ' DD072201/COLR
  2098.          ZFGF$ = "" : _                                              ' DD072201/COLR
  2099.          ZBG0$ = "" : _                                              ' DD081801/BGCOLOR
  2100.          ZBG1$ = "" : _                                              ' DD081801/BGCOLOR
  2101.          ZBG2$ = "" : _                                              ' DD081801/BGCOLOR
  2102.          ZBG3$ = "" : _                                              ' DD081801/BGCOLOR
  2103.          ZBG4$ = "" : _                                              ' DD081801/BGCOLOR
  2104.          ZBG5$ = "" : _                                              ' DD081801/BGCOLOR
  2105.          ZBG6$ = "" : _                                              ' DD081801/BGCOLOR
  2106.          ZBG7$ = "" _                                                ' DD081801/BGCOLOR
  2107.       ELSE ZEmphasizeOn$ = ZEmphasizeOnDef$ : _
  2108.          ZEmphasizeOff$ = ZEscape$ + CHR$(91) + ZBoldText$ + _       ' DD050201
  2109.               ";40;" + MID$(STR$(ZUserTextColor),2) + CHR$(109) : _  ' DD050502
  2110.          ZFG0$ = ZEmphasizeOff$ : _                                  ' DD050201
  2111.          CALL SetANSIColors                                          ' DD070203
  2112.       CALL SetSection                                                ' DD010202
  2113.       END SUB
  2114. * REPLACING old line(s) by new
  2115. 59940 ' $SUBTITLE: 'ColorPrompt - subroutine to colorize prompts'
  2116. ' $PAGE
  2117. '
  2118. '  NAME    --  ColorPrompt
  2119. '
  2120. '  INPUTS  --  PARAMETER                   MEANING
  2121. '              Strng$              String to colorize
  2122. '              ZHiLiteOff          Whether highlighting is off
  2123. '              ZEmphasizeOn$       String to use for emphasis
  2124. '              ZEmphasizeOff$      String to use after emphasis
  2125. '
  2126. '  OUTPUTS --  Strng$              Colorized string
  2127. '
  2128. '  PURPOSE -- colorizes a string based on sysop settings
  2129. '             and the string.
  2130. '                        [...] is the default - put in emphasis
  2131. * ------[ first line different ]------
  2132. '                        <...> options to type - put in ZFGB$        ' DD081801
  2133. '                        and first two preceeding words use ZFGA$    ' DD081801
  2134. '                        and ZFGE$ options identified on right       ' DD081801
  2135. '                        by ) and on left by space or comma - put
  2136. '                        in ZFGB$                                    ' DD081801
  2137. '
  2138.       SUB ColorPrompt (Strng$) STATIC
  2139.       CALL SmartText(Strng$,ZTrue,ZFalse,ZFalse)                     'Pe 02/06/93
  2140.       IF ZHiLiteOff THEN _
  2141.          EXIT SUB
  2142.       AlreadyColorized = (INSTR(Strng$,ZEscape$) > 0)
  2143.       WasX = INSTR(Strng$,CHR$(60))                              '<  ' DD021301
  2144.       IF WasX > 0 THEN _
  2145.          GOTO 59943
  2146.       WasX = INSTR(Strng$,CHR$(91))   ' highlight default        '[  ' DD021301
  2147.       IF WasX > 0 THEN _
  2148.          WasY = INSTR(WasX,Strng$,CHR$(93)) : _                  ']  ' DD021301
  2149.          IF WasY > 0 THEN _
  2150.             CALL FindLast (LEFT$(Strng$,WasY),CHR$(91),WasX,Temp) : _ ' DD021301
  2151.             CALL Bracket (Strng$,WasX,WasY,ZEmphasizeOn$,ZEmphasizeOff$)
  2152. '     IF AlreadyColorized THEN _                                     ' DD091702
  2153. '        EXIT SUB                                                    ' DD091702
  2154.       WasX = INSTR(Strng$,CHR$(60))                              '<  ' DD021301
  2155.       IF WasX < 1 THEN _
  2156.          GOTO 59945
  2157. * REPLACING old line(s) by new
  2158. * ------[ first line different ]------
  2159. 59943 WasY = INSTR(WasX,Strng$,CHR$(62))                         '>  ' DD021301
  2160.       IF WasY < 1 THEN _
  2161.          GOTO 59945
  2162.       CALL Bracket (Strng$,WasX,WasY,ZFGB$,ZEmphasizeOff$)           ' DD081801
  2163.       WasY = INSTR(Strng$,SPACE$(1))                                 ' DD021301
  2164.       IF WasY > 1 AND WasY < WasX THEN _
  2165.          Strng$ = ZFGA$ + Strng$ : _                                 ' DD081801
  2166.          WasZ = INSTR(WasY+1,Strng$,SPACE$(1)) : _                   ' DD021301
  2167.          IF WasZ > 1 AND WasZ < WasX+LEN(ZFGA$) THEN _               ' DD081801
  2168.             Strng$ = LEFT$(Strng$,WasZ) + ZFG2Def$ + MID$(Strng$,WasZ+1)
  2169.       EXIT SUB
  2170. * REPLACING old line(s) by new
  2171. 59945 WasX = 1
  2172.       DidInsert = ZFalse
  2173. * ------[ first line different ]------
  2174.       WasL = LEN(ZFGB$)                                              ' DD081801
  2175. * REPLACING old line(s) by new
  2176. * ------[ first line different ]------
  2177. 59950 WasY = INSTR (WasX,Strng$,CHR$(41)) ') ' x: where command begins, y: terminating pos ' DD021301
  2178.       WasZ = INSTR (WasX,Strng$,CHR$(44))                      ',    ' DD021301
  2179.       IF WasY = 0 OR (WasZ > 0 AND WasZ < WasY) THEN _
  2180.          WasY = WasZ
  2181.       WasK = LEN(Strng$)
  2182.       IF WasX > WasK THEN _
  2183.          EXIT SUB
  2184.       IF WasY < 1 THEN _
  2185.          IF NOT DidInsert THEN _
  2186.             EXIT SUB _
  2187.          ELSE WasY = WasK+1
  2188.       WasZ = WasY - 1
  2189.       WHILE WasZ > 0    ' got terminating pos: find beginning
  2190.          IF INSTR(ZOptionEnd$,MID$(Strng$,WasZ,1)) > 0 THEN _
  2191.             WasX = WasZ + 1 : _
  2192.             WasZ = 0
  2193.          WasZ = WasZ - 1
  2194.       WEND
  2195.       IF WasY-WasX < 3 THEN _     ' exclude commands too long
  2196.          CmndString$ = MID$(Strng$,WasX,WasY-WasX) : _
  2197.          WasX$ = CmndString$ : _
  2198.          CALL AllCaps (CmndString$) : _
  2199.          IF WasX$ = CmndString$ THEN _  ' exclude lower case
  2200.             DidInsert = ZTrue : _
  2201.             CALL Bracket (Strng$,WasX,WasY-1,ZFGB$,ZEmphasizeOff$) : _  ' colorize ' DD081801
  2202.             WasY = WasY + WasL
  2203.       WasX = WasY + 1
  2204.       GOTO 59950
  2205.       END SUB
  2206. * REPLACING old line(s) by new
  2207. 59965 ' $SUBTITLE: 'UserColor - lets user set color for normal text'
  2208. ' $PAGE
  2209. '
  2210. '  NAME    --  UserColor
  2211. '
  2212. '  INPUTS  --  PARAMETER                   MEANING
  2213. '              ZEmphasizeOff$            Normal text color
  2214. '
  2215. '  OUTPUTS --  ZEmphasizeOff$            New text color
  2216. '              ZBoldText$                Whether bold (0 not, 1 bold)
  2217. '              ZUserTextColor            ANSI Color selected
  2218. '
  2219. '  PURPOSE --  Lets caller select desired color and whether bold.
  2220. '
  2221.       SUB UserColor STATIC
  2222.       IF ZHiLiteOff THEN _
  2223. * ------[ first line different ]------
  2224.          EXIT SUB _                                                  ' DD061303/COLR
  2225.       ELSE _                                                         ' DD061303/COLR
  2226.          ZFG0$ = ZEmphasizeOffDef$ : _                               ' DD083003/COLR
  2227.          CALL SetANSIColors                                          ' DD070203
  2228. * REPLACING old line(s) by new
  2229. 59970 CALL QuickTPut (ZEmphasizeOff$,0)
  2230.       ZOutTxt$ = "Make text R)ed,G)reen,Y)ellow,B)lue,P)urple,C)yan,W)hite" + ZPressEnterExpert$
  2231.       GOSUB 59973
  2232.       IF ZWasQ = 0 THEN _
  2233. * ------[ first line different ]------
  2234.          ZEmphasizeOff$ = ZEscape$ + CHR$(91) + ZBoldText$ + _       ' DD021301
  2235.              ";40;" + MID$(STR$(ZUserTextColor),2) + CHR$(109) : _   ' DD021301
  2236.          EXIT SUB
  2237.       CALL AllCaps (ZUserIn$)
  2238.       WasX = INSTR("RGYBPCW",ZUserIn$)
  2239.       IF WasX = 0 THEN _
  2240.          GOTO 59970
  2241.       ZUserTextColor = 30 + WasX
  2242.       ZOutTxt$ = "Make text Bright?" + ZNoPrompt$                    ' DD060101
  2243.       GOSUB 59973
  2244.       ZBoldText$ = CHR$(48 - ZYes)
  2245.       ZEmphasizeOff$ = ZEscape$ + CHR$(91) + ZBoldText$ + ";40;" + MID$(STR$(ZUserTextColor),2) + CHR$(109) ' DD021301
  2246.       GOTO 59970
  2247. * REPLACING old line(s) by new
  2248. * ------[ first line different ]------
  2249. 59973 ZSubParm = 1                                                   ' Mpl090202
  2250.       ZTurboKey = -ZTurboKeyUser
  2251. '     CALL PopCmdStack                                               ' Mpl090202
  2252.       CALL TGet
  2253.       IF ZSubParm = -1 THEN _
  2254.          EXIT SUB
  2255.       RETURN
  2256.       END SUB
  2257. * REPLACING old line(s) by new
  2258. 59980 ' $SUBTITLE: 'SetGraphic - Sets user graphic preference'
  2259. ' $PAGE
  2260. '
  2261. '  NAME    --  SetGraphic
  2262. '
  2263. '  INPUTS  --  PARAMETER                   MEANING
  2264. '              GraphicsNumber        0=None, 1=Ascii, 2=color
  2265. '
  2266. '  OUTPUTS --  ZWasGR                Shared var - set to
  2267. '                                    graphics.number
  2268. '              ZUserGraphicDefault$ What add to file name to
  2269. '                                    see if got graphics file ver
  2270. '
  2271. '  PURPOSE --  Sets file graphics preference
  2272. '
  2273.       SUB SetGraphic (GraphicsNumber) STATIC
  2274.       ZWasGR = GraphicsNumber
  2275. * ------[ first line different ]------
  2276.       ZUserGraphicDefault$ = MID$(" GCVR",ZWasGR+1, - (ZWasGR > 0))  ' DD061301
  2277.       IF ZWasGR = 4 THEN                                             ' DD061301
  2278.          ZTurboKeyUser = ZFalse                                      ' DD061301
  2279.          ZPageLength = 23                                            ' DD061301
  2280.          ZExpertUser = ZFalse                                        ' DD061301
  2281.          CALL SetExpert                                              ' DD061301
  2282.       END IF                                                         ' DD061301
  2283.       END SUB
  2284. * REPLACING old line(s) by new
  2285. 60131 IF WasY > LEN(Strng$) THEN _
  2286.          EXIT SUB
  2287. * ------[ first line different ]------
  2288.       WasX = INSTR(WasY,Strng$,CHR$(91))                        '[   ' DD021301
  2289.       IF WasX = 0 THEN _
  2290.          EXIT SUB
  2291.       WasY = INSTR(WasX,Strng$,CHR$(93))                        ']   ' DD021301
  2292.       IF WasY = 0 THEN _
  2293.          EXIT SUB
  2294.       ZMsgPtr = WasY-WasX+1
  2295.       Temp = WasY-WasX-1
  2296.       CALL CheckInt(MID$(Strng$,WasX+1,Temp))
  2297.       IF (ZErrCode > 0) OR (ZTestedIntValue < 1) OR (ZTestedIntValue > ZMaxWorkVar) THEN _
  2298.             GOTO 60135
  2299.       IF ((ZTestedIntValue < 10) AND (Temp = 1)) OR ((ZTestedIntValue > 9) AND (Temp = 2)) THEN _
  2300.             GOTO 60132
  2301.       WasY = WasX + 1
  2302.       GOTO 60131
  2303. * REPLACING old line(s) by new
  2304. 60132 WorkHold$ = ZGSRAra$(ZTestedIntValue)
  2305.       IF WasY = LEN(Strng$) THEN _
  2306.          GOTO 60151
  2307. * ------[ first line different ]------
  2308.       IF MID$(Strng$,WasY+1,1) <> CHR$(40) THEN _               '(   ' DD021301
  2309.          GOTO 60151
  2310.       WasI = INSTR(WasY+1,Strng$,CHR$(41))                      ')   ' DD021301
  2311.       IF WasI = 0 THEN _
  2312.          GOTO 60151
  2313.       WasJ = INSTR(WasY+1,Strng$,CHR$(58))                      ':   ' DD021301
  2314.       IF WasJ > WasI THEN _
  2315.          GOTO 60151
  2316.       CALL CheckInt (MID$(Strng$,WasY+2))
  2317.       IF (ZErrCode > 0) OR (ZTestedIntValue < 1) OR _
  2318.          (ZTestedIntValue > LEN(WorkHold$)) THEN _
  2319.             GOTO 60151
  2320.       WasY = WasI
  2321.       ZMsgPtr = WasI-WasX+1
  2322.       StartSub = ZTestedIntValue
  2323.       CALL CheckInt (MID$(Strng$,WasJ+1))
  2324.       IF ZErrCode > 0 OR ZTestedIntValue < 1 OR _
  2325.          (ZTestedIntValue > LEN(WorkHold$)) THEN _
  2326.             GOTO 60151
  2327.       LenSub = ZTestedIntValue
  2328.       WorkHold$ = MID$(WorkHold$,StartSub,LenSub)
  2329.       GOTO 60151
  2330. * REPLACING old line(s) by new
  2331. * ------[ first line different ]------
  2332. 60143 WorkHold$ = MID$(ZBaudParity$,INSTR(ZBaudParity$,CHR$(44))+1,1) ' DD021301
  2333.       GOTO 60151
  2334. * REPLACING old line(s) by new
  2335. * ------[ first line different ]------
  2336. 60149 IF ZWasBatchTransfer THEN _                                    'Pe BatchUp Mod
  2337.          CALL BreakFileName (ZFileName$,Drive$,Prefix$,Ext$,ZFalse) : _ ' Mpl090202
  2338.           WorkHold$ = Drive$ _                                       ' Mpl090202
  2339.      ELSE _                                                          ' Mpl090202
  2340.       IF ZBatchTransfer THEN _
  2341.          WorkHold$ = CHR$(64) + ZNodeWorkFile$ _                     ' DD021301
  2342.       ELSE WorkHold$ = ZFileName$
  2343.       GOTO 60151
  2344. * REPLACING old line(s) by new
  2345. 60180 ' $SUBTITLE: 'TimeLock - Test TIME LOCK for premium features'
  2346. ' $PAGE
  2347. '
  2348. '  NAME    --  TimeLock  (written by Doug Azzarito)
  2349. '
  2350. '  INPUTS  --  PARAMETER                   MEANING
  2351. '              ZTimeLockSet               SECONDS/SESSION TO LOCK
  2352. '
  2353. '  OUTPUTS --  ZSubParm     -1 if feature is LOCKED
  2354. '
  2355. '  PURPOSE -- Check elapsed time for lock duration
  2356. '
  2357.       SUB TimeLock STATIC
  2358.       CALL TimeRemain(MinsRemaining)
  2359.       IF ZSecsUsedSession! >= ZTimeLockSet THEN _
  2360.          ZOK = ZTrue : _
  2361.          EXIT SUB
  2362. * ------[ first line different ]------
  2363. '     ZOutTxt$ = ZFirstName$                                         ' DD090202
  2364. '     CALL NameCaps(ZOutTxt$)                                        ' DD090202
  2365. '     CALL QuickTPut1 ("Sorry, " + ZOutTxt$ + ", function locked" + _' DD090202
  2366. '                  STR$(INT((ZTimeLockSet-ZSecsUsedSession!)/60)) + _' DA11102
  2367. '                  " more minutes" + _                               ' DD090202
  2368. '                  STR$(INT(ZTimeLockSet-ZSecsUsedSession!) MOD 60) + " seconds")' DD090202
  2369.       CALL BufFile(ZHelpPath$+"TIMELOCK"+ZHelpExtension$,WasX)
  2370.       ZOK = ZFalse
  2371.       ZLastIndex = 0
  2372.       END SUB
  2373. * REPLACING old line(s) by new
  2374. 60200 ' $SUBTITLE: 'MarkTime - Give feedback for lengthy processes'
  2375. ' $PAGE
  2376. '
  2377. '  NAME    --  MarkTime
  2378. '
  2379. '  INPUTS  --  PARAMETER                   MEANING
  2380. '              DotNumber          How many dots printed
  2381. '
  2382. '  OUTPUTS --  DotNumber
  2383. '
  2384. '  PURPOSE --  Marks time by putting colorized dots out
  2385. '              to 4, then erasing
  2386. '
  2387.       SUB MarkTime (DotNumber) STATIC
  2388. * ------[ first line different ]------
  2389.       IF DotNumber = 0 THEN                                          ' DD012602
  2390.          Style = Style + 1                                           ' DD062904
  2391.          IF Style > 6 OR Style < 1 THEN Style = 1                    ' DD021001
  2392.          ON Style GOSUB 60230,60240,60250,60260,60270,60280          ' DD012602
  2393.          CALL QuickTPut (SPACE$(2),0)                                ' DD021301
  2394.       END IF                                                         ' DD012602
  2395.       TimeNow! = TIMER
  2396.       IF TimeNow! < PrevTI! THEN                                     ' DD080102
  2397.          PrevTI! = TIMER                                             ' DD080102
  2398.          EXIT SUB                                                    ' DD080102
  2399.       END IF                                                         ' DD080102
  2400.       IF TimeNow! - PrevTI! < 0.15 THEN _                            ' DD012602
  2401.          EXIT SUB                                                    ' DD012602
  2402.       PrevTI! = TimeNow!                                             ' DD012602
  2403.       DotNumber = DotNumber + 1
  2404.       IF DotNumber > 4 THEN DotNumber = 1                            ' DD012602
  2405.       WasX$ = CHR$(8) + CHR$(32) + CHR$(8)                           ' DD062909
  2406.       ON DotNumber GOTO 60201,60202,60203,60204
  2407. * REPLACING old line(s) by new
  2408. * ------[ first line different ]------
  2409. 60201 WasX$ = WasX$ + ZFGA$ + char1$                                 ' DD012602
  2410.       GOTO 60205                                                     ' DD012602
  2411. * REPLACING old line(s) by new
  2412. * ------[ first line different ]------
  2413. 60202 WasX$ = WasX$ + ZFGE$ + char2$                                 ' DD012602
  2414.       GOTO 60205                                                     ' DD012602
  2415. * REPLACING old line(s) by new
  2416. * ------[ first line different ]------
  2417. 60203 WasX$ = WasX$ + ZFGC$ + char3$                                 ' DD012602
  2418.       GOTO 60205                                                     ' DD012602
  2419. * REPLACING old line(s) by new
  2420. 60204 WasX$ = WasX$ + ZFGB$ + char4$                                 ' DD012602
  2421. * REPLACING old line(s) by new
  2422. * ------[ first line different ]------
  2423. 60205 CALL QuickTPut (WasX$ + ZEmphasizeOff$,0)                      ' DD012602
  2424.       EXIT SUB                                                       ' DD012602
  2425. * INSERTING new line(s)
  2426. 60230 IF ZWasGR = 0 THEN GOTO 60260                                  ' DD012602
  2427.       char1$ = CHR$(221)                                             ' DD012602
  2428.       char2$ = CHR$(220)                                             ' DD012602
  2429.       char3$ = CHR$(222)                                             ' DD012602
  2430.       char4$ = CHR$(223)                                             ' DD012602
  2431.       RETURN                                                         ' DD012602
  2432. 60240 IF ZWasGR = 0 THEN GOTO 60270                                  ' DD012602
  2433.       char1$ = CHR$(45)                                              ' DD030701
  2434.       char2$ = CHR$(61)                                              ' DD030701
  2435.       char3$ = CHR$(247)                                             ' DD030701
  2436.       char4$ = CHR$(240)                                             ' DD012602
  2437.       RETURN                                                         ' DD012602
  2438. 60250 IF ZWasGR = 0 THEN GOTO 60280                                  ' DD012602
  2439.       char1$ = CHR$(92)                                              ' DD012602
  2440.       char2$ = CHR$(124)                                             ' DD012602
  2441.       char3$ = CHR$(47)                                              ' DD012602
  2442.       char4$ = CHR$(196)                                             ' DD012602
  2443.       RETURN                                                         ' DD012602
  2444. 60260 char1$ = CHR$(43)                                              ' DD012602
  2445.       char2$ = CHR$(42)                                              ' DD012602
  2446.       char3$ = CHR$(45)                                              ' DD012602
  2447.       char4$ = CHR$(42)                                              ' DD012602
  2448.       RETURN                                                         ' DD012602
  2449. 60270 char1$ = CHR$(46)                                              ' DD040201
  2450.       char2$ = CHR$(111)                                             ' DD040201
  2451.       char3$ = CHR$(79)                                              ' DD040201
  2452.       char4$ = CHR$(111)                                             ' DD040201
  2453.       RETURN                                                         ' DD012602
  2454. 60280 char1$ = CHR$(92)                                              ' DD012602
  2455.       char2$ = CHR$(124)                                             ' DD012602
  2456.       char3$ = CHR$(47)                                              ' DD012602
  2457.       char4$ = CHR$(45)                                              ' DD012602
  2458.       RETURN                                                         ' DD012602
  2459.       END SUB                                                        ' DD012602
  2460. * REPLACING old line(s) by new
  2461. 60300 ' $SUBTITLE: 'AutoPage - NOTIFIES ZSysop WHEN SPECIFIC USER CALLS'
  2462. ' $PAGE
  2463. '
  2464. '  NAME    --  AutoPage   'Contributed  by Gregg and Bob Snyder
  2465. '                        'and RoseMarie Siddiqui
  2466. '
  2467. '  INPUTS  --  ZAutoPageDef$  List of conditions that trigger
  2468. '                                       notification and how
  2469. '
  2470. '  OUTPUTS -- NONE
  2471. '
  2472. '  PURPOSE -- Search ZAutoPageDef$ for match on whether
  2473. '             on name, security level, whether new user.
  2474. '             Also controls whether caller notified and
  2475. '             number of times sysop has bell rung.
  2476. '             And what tune to play (if any).
  2477. '
  2478.       SUB AutoPage STATIC
  2479.       CALL FindIt (ZAutoPageDef$)
  2480.       IF NOT ZOK THEN _
  2481.          EXIT SUB
  2482.       ZErrCode = 0
  2483.       ZOK = ZFalse
  2484.       WHILE NOT EOF(2) AND ZOK = ZFalse AND ZErrCode = 0
  2485.          CALL ReadParms (ZWorkAra$(),4,1)
  2486.          IF ZErrCode = 0 THEN _
  2487.             ZOK = (ZWorkAra$(1) = ZActiveUserName$) : _
  2488.             IF NOT ZOK THEN _
  2489.                IF ZNewUser AND ZWorkAra$(1) = "NEWUSER" THEN _
  2490.                   ZOK = ZTrue _
  2491. * ------[ first line different ]------
  2492.                ELSE IF LEFT$(ZWorkAra$(1),1) = CHR$(47) AND LEN(ZWorkAra$(1)) > 2 THEN _ ' DD021301
  2493.                        ZWasB = INSTR (2,ZWorkAra$(1),CHR$(47)) : _   ' DD021301
  2494.                        IF ZWasB > 0 AND LEN(ZWorkAra$(1)) > ZWasB THEN _
  2495.                           IF ZUserSecLevel <= VAL(MID$(ZWorkAra$(1),ZWasB+1)) AND _
  2496.                              ZUserSecLevel >= VAL(MID$(ZWorkAra$(1),2)) THEN _
  2497.                                 ZOK = ZTrue
  2498.       WEND
  2499.       CLOSE 2
  2500.       IF ZErrCode > 0 OR NOT ZOK THEN _
  2501.          ZErrCode = 0 : _
  2502.          EXIT SUB
  2503.       ZPageStatus$ = "AP!"
  2504.       IF LEFT$(ZWorkAra$(2),1) = CHR$(78) THEN _                'N   ' DD021301
  2505.          ZOutTxt$ = "Telling sysop you're on..." : _
  2506.          CALL RingCaller
  2507.       ZWasB = (ZWorkAra$(4) = "")
  2508.       ZWorkAra$(5) = ""
  2509.      TempSnoop = ZSnoop
  2510.      ZSnoop = ZTrue
  2511.      CALL Line25
  2512.       FOR WasI = 1 TO VAL(ZWorkAra$(3))
  2513.          IF ZWasB THEN _
  2514.             CALL LPrnt (ZBellRinger$,0) : _
  2515.          ELSE ZWorkAra$(5) = ZWorkAra$(5) + "O4 X" + VARPTR$(ZWorkAra$(4))
  2516.       NEXT
  2517.       IF NOT ZWasB THEN _
  2518.          CALL RBBSPlay (ZWorkAra$(5))
  2519.       ZSnoop = TempSnoop
  2520.       END SUB
  2521. * REPLACING old line(s) by new
  2522. 62540 ' $SUBTITLE: 'RptTime -- Reports time on system'
  2523. ' $PAGE
  2524. '
  2525. '  NAME    --  RptTime
  2526. '
  2527. '  INPUTS  --  PARAMETER                   MEANING
  2528. '
  2529. '  OUTPUTS --
  2530. '
  2531. '  PURPOSE --  Tells user time used on system
  2532. '
  2533.       SUB RptTime STATIC
  2534. * ------[ first line different ]------
  2535.       IF ZActiveUserName$ = "" OR ZFirstName$ = "" THEN _            ' DD010203
  2536.          EXIT SUB                                                    ' DD010203
  2537.       CALL SkipLine (1)
  2538.       CALL GetTime
  2539.       CALL AMorPM
  2540.       Mins = (ZSessionHour * 60) + ZSessionMin
  2541.       CALL Carrier
  2542.       IF ZSubParm = -1 THEN _
  2543.          EXIT SUB
  2544.       CALL QuickTPut1 (ZFG5$ + "Now: " +ZFGB$ + DATE$ + _            ' DD061602
  2545.                        ZFG5$ + " at " + ZFGB$ + TIME$)               ' DD061602
  2546.       CALL QuickTPut1 (ZFG2$ + "On for" + ZFGE$ + STR$(Mins) + _     ' DD082001
  2547.                        ZFG2$ + " mins," + _                          ' DD082001
  2548.                         ZFGE$ + STR$(ZSessionSec) + ZFG2$ + " secs") ' DD082001
  2549. '     CALL Talk (7,ZOutTxt$)                                         ' DD060401
  2550.       END SUB
  2551. * REPLACING old line(s) by new
  2552. 62602 IF EOF(2) THEN _
  2553.          GOTO 62604
  2554.       CALL ReadParms (ZWorkAra$(),13,1)
  2555.       IF ZErrCode > 0 THEN _
  2556.          EXIT SUB
  2557. * ------[ first line different ]------
  2558.       ZDefaultXfer$ = ZDefaultXfer$ + SPACE$(1)                      ' DD021301
  2559.       ZInternalEquiv$ = ZInternalEquiv$ + SPACE$(1)                  ' DD021301
  2560.       IF ZUserSecLevel < VAL(ZWorkAra$(2)) THEN _
  2561.          GOTO 62602
  2562.       IF LEFT$(ZWorkAra$(5),1) = CHR$(82) THEN _                'R   ' DD021301
  2563.          IF NOT ZReliableMode THEN _
  2564.             GOTO 62602
  2565.       IF LEFT$(ZWorkAra$(3),1) = CHR$(73) THEN _                'I   ' DD021301
  2566.          GOTO 62603
  2567.       WasX = INSTR(ZWorkAra$(12)+SPACE$(1),SPACE$(1))                ' DD021301
  2568.       WasX$ = LEFT$(ZWorkAra$(12),WasX-1)
  2569.       CALL FindFile (WasX$,Found)
  2570.       IF Found THEN _
  2571.          WasX = INSTR(ZWorkAra$(13)+SPACE$(1),SPACE$(1)) : _         ' DD021301
  2572.          WasX$ = LEFT$(ZWorkAra$(13),WasX-1) : _
  2573.          CALL FindFile (WasX$,Found)
  2574.       IF NOT Found THEN _
  2575.          GOTO 62602
  2576. * REPLACING old line(s) by new
  2577. 62603 MID$(ZDefaultXfer$,LEN(ZDefaultXfer$),1) = LEFT$(ZWorkAra$(1),1)
  2578.       CALL FindLast (ZWorkAra$(1),ZCrLf$,WasX,WasI)
  2579.       IF WasX > 0 AND WasX >= LEN(ZWorkAra$(1)) - 2 THEN _
  2580.          ZWorkAra$(1) = LEFT$(ZWorkAra$(1),WasX-1)
  2581.       IF (WasL + LEN(ZWorkAra$(1)) < 62) AND WasX = 0 THEN _
  2582. * ------[ first line different ]------
  2583.          ZTransferOption$ = ZTransferOption$ + CHR$(44) + ZWorkAra$(1) : _ ' DD021301
  2584.          WasL = WasL + LEN(ZWorkAra$(1)) + 1 _
  2585.       ELSE WasL = LEN(ZWorkAra$(1)) : _
  2586.            ZTransferOption$ = ZTransferOption$ + _
  2587.                               ZCrLf$ + _
  2588.                               ZWorkAra$(1)
  2589.       IF LEFT$(ZWorkAra$(3),1) = CHR$(73) AND RIGHT$(ZWorkAra$(3),1) <> CHR$(73) THEN _ ' DD021301
  2590.          MID$(ZInternalEquiv$,LEN(ZInternalEquiv$),1) = RIGHT$(ZWorkAra$(3),1)
  2591.       GOTO 62602
  2592. * REPLACING old line(s) by new
  2593. * ------[ first line different ]------
  2594. 62604 IF INSTR(ZInternalEquiv$,CHR$(78)) > 0 THEN _             'N   ' DD021301
  2595.          GOTO 62605
  2596.       IF WasX = 0 THEN _
  2597.          ZTransferOption$ = ZTransferOption$ + ",N)one" _
  2598.       ELSE ZTransferOption$ = ZTransferOption$ + ZCrLf$ + "N)one"
  2599.       ZDefaultXfer$ = ZDefaultXfer$ + CHR$(78)                  'N   ' DD021301
  2600.       ZInternalEquiv$ = ZInternalEquiv$ + CHR$(78)              'N   ' DD021301
  2601. * REPLACING old line(s) by new
  2602. * ------[ first line different ]------
  2603. 62605 IF LEFT$(ZTransferOption$,1) = CHR$(44) THEN _            ',   ' DD021301
  2604.          ZTransferOption$ = MID$(ZTransferOption$,2)
  2605.       IF INSTR(ZDefaultXfer$,ZUserXferDefault$) = 0 THEN _
  2606.          CALL QuickTPut1 ("Protocol "+ZUserXferDefault$+" unavailable.  Default reset to None") : _
  2607.          ZUserXferDefault$ = MID$(ZDefaultXfer$,INSTR(ZInternalEquiv$,CHR$(78)),1) ' DD021301
  2608.       END SUB
  2609. * REPLACING old line(s) by new
  2610. 62620 ' $SUBTITLE: 'Transfer - Subroutine for external protocols'
  2611. ' $PAGE
  2612. '
  2613. '  NAME    -- Transfer
  2614. '
  2615. '  INPUTS  --     PARAMETER                    MEANING
  2616. '              ZTransferFunction         = 1 DOWNLOAD FILE TO USER
  2617. '                                        = 2 UPLOAD FILE TO RBBS-PC
  2618. '              ZFileName$                NAME OF FILE FOR Transfer
  2619. '              ZComPort$                 NAME OF COMMUNICATIONS PORT
  2620. '                                        TO BE USED BY KERMIT (COM1
  2621. '                                        OR COM2)
  2622. '              ZBPS                      = -1 FOR   300 BAUD
  2623. '                                        = -2 FOR   450 BAUD
  2624. '                                        = -3 FOR  1200 BAUD
  2625. '                                        = -4 FOR  2400 BAUD
  2626. '                                        = -5 FOR  4800 BAUD
  2627. '                                        = -6 FOR  9600 BAUD
  2628. * ------[ first line different ]------
  2629. '                                        = -7 FOR 14400 BAUD         ' DD090202
  2630. '                                        = -8 FOR 19200 BAUD         ' Mpl122301
  2631. '
  2632. '  OUTPUTS  -- NONE
  2633. '
  2634. '  PURPOSE -- To transfer files using external protocols
  2635. '
  2636.       SUB Transfer STATIC
  2637.       IF ZUpBatchTransfer THEN _
  2638.          EXIT SUB
  2639.       IF ZPrivateDoor THEN _
  2640.          CALL PrivDoorRtn : _
  2641.          EXIT SUB
  2642.       IF ZTransferFunction = 1 THEN _
  2643.          ZUserIn$ = ZDownTemplate$ : _
  2644.          ZWasZ$ = "send" _                                           ' DD083001
  2645.       ELSE IF ZTransferFunction = 2 THEN _
  2646.               ZUserIn$ = ZUpTemplate$ : _
  2647.               ZWasZ$ = "receive"                                     ' DD083001
  2648.       CALL MetaGSR (ZUserIn$,ZFalse)
  2649.       CALL QuickTPut1 (ZFGE$ + "Protocol: " + ZFG3$ + _              ' DD082501
  2650.                        ZProtoPrompt$ + ZEmphasizeOff$)               ' DD082501
  2651.       CALL QuickTPut (ZFG2$ + "Ready to " + ZWasZ$ + ": ",0)         ' DD082501
  2652.       IF ZBatchTransfer or ZWasBatchTransfer THEN _                  'Pe BatchUp mod
  2653.          CALL QuickTPut1 (ZFGF$ + ZBG1$ + "(BATCH)" + _              ' DD082501
  2654.                            ZEmphasizeOff$)  _                        ' DD082501
  2655.       ELSE CALL QuickTPut1 (SPACE$(1) + ZFGF$ + ZBG1$ + ZFileNameHold$ + _ ' DD021301
  2656.                             ZEmphasizeOff$)                          ' DD082501
  2657.       IF ZWasBatchTransfer THEN _                                    'Pe BatchUp mod
  2658.          Temp$ = ZBatchWorkFile$ _                                   ' Mpl090202
  2659.       ELSE IF ZBatchTransfer Then _                                  ' Mpl090202
  2660.          Temp$ = ZNodeWorkFile$                                      ' Mpl090202
  2661.       IF ZBatchTransfer or ZWasBatchTransfer THEN _                  'Pe BatchUp mod
  2662.          CALL OpenWork (2,Temp$) : _                                 ' Mpl090202
  2663.          WHILE NOT EOF(2) : _
  2664.            CALL ReadAny : _
  2665.            CALL BreakFileName (ZOutTxt$,ZWasZ$,ZWasY$,WasX$,ZTrue) : _
  2666.            CALL QuickTPut1 (ZFG6$+ZWasY$+WasX$+ZEmphasizeOff$) : _   ' DD082501
  2667.          WEND
  2668.       IF ZAutoEnd = 1 THEN _                                         'Pe 03/30/92
  2669.          CALL QuickTPut1 (ZFG9$ + "Automatic LogOff if " + _         ' DD050301
  2670.                           ZFGB$ + "TRANSFER " + _                    ' DD050301
  2671.                           ZFG9$ + "Successful" + ZEmphasizeOff$)     ' DD050301
  2672.       CALL PrivDoorRtn
  2673.       END SUB
  2674. * REPLACING old line(s) by new
  2675. 62624 ' $SUBTITLE: 'PrivDoorRtn - subroutine to exit as a private door.'
  2676. ' $PAGE
  2677. '
  2678. '  NAME    -- PrivDoorRtn
  2679. '
  2680. '  INPUTS  --     PARAMETER                    MEANING
  2681. '              ZTransferFunction         = 1 DOWNLOAD FILE TO USER
  2682. '                                        = 2 UPLOAD FILE TO RBBS-PC
  2683. '                                        = 3 USER REGISTRATION PGM
  2684. '              ZUserIn$                      NAME OF FILE TO EXIT TO
  2685. '              ZComPort$                 NAME OF COMMUNICATIONS PORT
  2686. '                                        TO BE USED BY KERMIT (COM1
  2687. '                                        OR COM2)
  2688. '              ZBPS                      = -1 FOR   300 BAUD
  2689. '                                        = -2 FOR   450 BAUD
  2690. '                                        = -3 FOR  1200 BAUD
  2691. '                                        = -4 FOR  2400 BAUD
  2692. '                                        = -5 FOR  4800 BAUD
  2693. '                                        = -6 FOR  9600 BAUD
  2694. '                                        = -7 FOR 19200 BAUD
  2695. '
  2696. '  OUTPUTS -- NONE
  2697. '
  2698. '  PURPOSE -- To transfer control to another program
  2699. '
  2700.       SUB PrivDoorRtn STATIC
  2701.       IF ZPrivateDoor THEN _
  2702.          GOTO 62630
  2703.       IF ZFakeXRpt THEN _
  2704.          CALL FakeXRpt (ZWasFT$)
  2705.       IF ZAdvanceProtoWrite THEN _
  2706.          CALL OpenOutW ("XFER-"+ZNodeID$+".DEF") : _
  2707.          IF ZErrCode < 1 THEN _
  2708. * ------[ first line different ]------
  2709.             CALL PrintWorkA (2,ZFileName$+STRING$(2,44)+ZWasFT$) : _ ' DD040601
  2710.             CLOSE 2
  2711.       IF (ZTransferFunction = 1 AND LEFT$(ZProtoMethod$,1) = CHR$(83)) OR _ ' DD031501
  2712.          (ZTransferFunction = 2 AND RIGHT$(ZProtoMethod$,1) = CHR$(83)) THEN _ ' DD031501
  2713.          GOTO 62629
  2714. * REPLACING old line(s) by new
  2715. * ------[ first line different ]------
  2716. 62628 WasX$ = LEFT$(ZUserIn$,INSTR(ZUserIn$+SPACE$(1),SPACE$(1))-1)  ' DD021301
  2717.       IF WasX$ = "" THEN _
  2718.          EXIT SUB
  2719.       CALL FindIt (WasX$)
  2720.       IF NOT ZOK THEN _
  2721.          ZOutTxt$ = "Missing door program" : _
  2722.          CALL UpdtCalr (ZOutTxt$ + SPACE$(1) + WasX$,1) : _          ' DD021301
  2723.          ZSnoop = ZTrue : _
  2724.          CALL LPrnt (ZOutTxt$,1) : _
  2725.          EXIT SUB
  2726.       ZOutTxt$(1) = "CLS"
  2727.       GOSUB 62633
  2728.       ZOutTxt$ = ZActiveUserName$ + " From " + ZWasCI$               ' DD121701
  2729.       ZOutTxt$(2) = "ECHO " + ZOutTxt$
  2730.       ZOutTxt$(3) = ZDiskForDos$ + _
  2731.               "COMMAND /C " + _
  2732.               ZUserIn$
  2733.       ZOutTxt$(4) = ZRBBSBat$
  2734.       ZPrivateDoor = ZTrue
  2735.       CALL QuickTPut1 ("Dooring to External Program for Transfer")   ' DD121701
  2736.       LOCATE ZLocalPageLength-1,1                                    ' DD021903/VGA
  2737.       CALL LPrnt(ZLineFeed$,0)
  2738.       CALL DoorInfo
  2739.       CALL RBBSExit (ZOutTxt$(),4)
  2740. * REPLACING old line(s) by new
  2741. 62629 GOSUB 62633
  2742. * ------[ first line different ]------
  2743. '     CLS                                                            ' DD090202
  2744.       CALL LPrnt (ZOutTxt$,1)
  2745.       CALL ShellExit (ZUserIn$)
  2746. * REPLACING old line(s) by new
  2747. 62631 CALL SkipLine (2)
  2748. * ------[ first line different ]------
  2749.       LOCATE ZLocalPageLength-1,1                                    ' DD021903/VGA
  2750. * REPLACING old line(s) by new
  2751. * ------[ first line different ]------
  2752. 62633 CALL SetupTransferInfo                                         ' DD021301
  2753.       RETURN
  2754.       END SUB
  2755. * REPLACING old line(s) by new
  2756. 62650 ' $SUBTITLE: 'FakeXRpt - subroutine to create fake xfer report'
  2757. ' $PAGE
  2758. '
  2759. '  NAME    --  FakeXRpt
  2760. '
  2761. '  INPUTS  --  PARAMETER                   MEANING
  2762. '              ZFileNameHold$      FILE TO BE TRANSFERRED
  2763. '              ProtoUsed$          Protocol USED
  2764. '
  2765. '  OUTPUTS --  WRITES OUT Transfer FILE REPORT
  2766. '
  2767. '  PURPOSE --  External protocol drivers that do not write
  2768. '              out a standard transfer report must have one
  2769. '              provided in order for "dooring" to external
  2770. '              protocols to work properly, since this file
  2771. '              is read upon returning from an external protocol.
  2772. '
  2773.       SUB FakeXRpt (ProtoUsed$) STATIC
  2774.       CLOSE 2
  2775.       OPEN "O",2,"XFER-" + _
  2776.                  ZNodeFileID$ + _
  2777.                  ".DEF"
  2778.       PRINT #2,ZFileName$
  2779.       PRINT #2,
  2780.       PRINT #2,ProtoUsed$
  2781. * ------[ first line different ]------
  2782.       PRINT #2,CHR$(83)                                         'S   ' DD021301
  2783.       CLOSE 2
  2784.       END SUB
  2785. * REPLACING old line(s) by new
  2786. 62660 ' $SUBTITLE: 'SetExpert - subroutine to adjust for expert change'
  2787. ' $PAGE
  2788. '
  2789. '  NAME    --  SetExpert
  2790. '
  2791. '  INPUTS  --  PARAMETER                   MEANING
  2792. '              ZExpertUser          WHETHER IS AN EXPERT
  2793. '
  2794. '  OUTPUTS --  ZMorePrompt$         Pause prompt
  2795. '              ZPressEnter$         Prompt to press enter
  2796. '
  2797. '  PURPOSE --  Make more helpful prompt for novices and shorter
  2798. '              one for experts
  2799. '
  2800.       SUB SetExpert STATIC
  2801.       IF ZExpertUser THEN _
  2802. * ------[ first line different ]------
  2803.          ZMorePrompt$ = "More <[Y],N,C,A" : _                        ' DD031001
  2804.          ZPressEnter$ = ZPressEnterExpert$ : _
  2805.          EXIT SUB
  2806.       ZMorePrompt$ = "More [Y]es,N)o,C)ont,A)bort"                   ' DD031001
  2807. '     ZPressEnter$ = ZPressEnterNovice$                              ' DD070204
  2808.       END SUB
  2809. * REPLACING old line(s) by new
  2810. 62670 ZOutTxt$ = Prompt$
  2811. * ------[ first line different ]------
  2812. '     ZMacroMin = 99                                                 ' Mpl090202
  2813.       ZHidden = ZTrue
  2814.       CALL PopCmdStack
  2815.       ZHidden = ZFalse
  2816.       IF ZSubParm < 0 OR ZWasQ = 0 THEN _
  2817.          EXIT SUB
  2818.       IF LEN(ZUserIn$) > 15 OR LEN(ZUserIn$) < 3 THEN _              ' DD022702
  2819.          CALL QuickTPut1 (ZFG2$ + "Password must be at least " + _   ' DD022702
  2820.                           ZFGE$ + "3 " + ZFG2$ + "characters and no " + _ ' DD022702
  2821.                           "more than " + ZFGE$ + "15 " + ZFG2$ + _   ' DD022702
  2822.                           "Characters long!" + ZEmphasizeOff$ ) : _  ' DD022702
  2823.          GOTO 62670
  2824.       IF INSTR(ZUserIn$,CHR$(59)) > 0 THEN _                    ';   ' DD021301
  2825.          CALL QuickTPut1 (ZFG2$ + "Cannot use " + ZFGE$ + _          ' DD022702
  2826.                           "';' " + ZFG2$ + "in Password!" + _        ' DD022702
  2827.                           ZEmphasizeOff$) : _                        ' DD022702
  2828.          GOTO 62670
  2829.       IF NOT ZSYSOP THEN                                             ' Pe 04/16/92
  2830.          IF INSTR(ZUserIn$,SPACE$(1)) > 0 THEN _                     ' DD021301
  2831.             CALL QuickTPut1 (ZFG2$ + "Cannot use " + ZFGE$ + _       ' DD022702
  2832.                              "SPACES " + ZFG2$ + "in Password!" + _  ' DD022702
  2833.                              ZEmphasizeOff$) : _                     ' DD022702
  2834.             GOTO 62670                                               ' Mpl090202
  2835.       END IF                                                         'Pe 04/16/92
  2836.       IF DisallowSpaces THEN _
  2837.          IF ZUserIn$ = SPACE$(LEN(ZUserIn$)) THEN _
  2838.             CALL QuickTPut1 (ZFG2$ + "Cannot use all " + ZFGE$ + "SPACES " + _ ' DD022702
  2839.                              ZFG2$ + "for Password!" + ZEmphasizeOff$) : _ ' DD022702
  2840.             GOTO 62670
  2841.       CALL AllCaps (ZUserIn$)
  2842.       ZWasZ$ = ZUserIn$
  2843.       END SUB
  2844. * REPLACING old line(s) by new
  2845. 64005 ZChatAvail = ZFalse
  2846.       QestChain = ZFalse
  2847.       LastQues = 0
  2848. * ------[ first line different ]------
  2849. ' *                                                                  ' DD030601
  2850. ' * for the NewUser Questionaire, if the new user cannot support     ' DD030601
  2851. ' * cursor positioning (as tested with AnsiTest), then DON'T run     ' DD030601
  2852. ' * an ANSI NewUser Questionaire!  This was added in because some    ' DD030601
  2853. ' * questionaires may have ANSI Cursor positioning commands that     ' DD030601
  2854. ' * the NewUser cannot support causing problems when going thru      ' DD030601
  2855. ' * the questionaire                                                 ' DD030601
  2856.       IF ZFileName$ = ZNewUserQuestionnaire$ AND ZCanANSIChat = ZTrue THEN ' DD062301
  2857.          CALL Graphic (ZFileName$)                                   ' DD062301
  2858.          CALL ResetGraphics                                          ' DD062301
  2859.       ELSE                                                           ' DD062301
  2860.          CALL FindIt (ZFileName$)                                    ' DD062301
  2861.       END IF                                                         ' DD062301
  2862.       IF NOT ZOK THEN _
  2863.          EXIT SUB
  2864.       CALL ReadParms (ZOutTxt$(),2,1)
  2865.       IF ZErrCode > 0 THEN _
  2866.          EXIT SUB
  2867.       PrevAppend$ = AppendFileName$
  2868.       AppendFileName$ = ZOutTxt$(1)
  2869.       MaxSecLevel = VAL(ZOutTxt$(2))
  2870.       WasX = INSTR(ZOutTxt$(2),SPACE$(1))                            ' DD021301
  2871.       IF WasX > 0 THEN _
  2872.          IF ZUserSecLevel < VAL(MID$(ZOutTxt$(2),WasX)) THEN _
  2873.             CALL QuickTPut1 ("Higher security needed for questionnaire") : _
  2874.             EXIT SUB
  2875. '
  2876. '
  2877. ' *  THE First RECORD OF THE SCRIPT FILE CONTAINS THREE PARAMETERS:
  2878. ' *   1.  THE NAME OF THE FILE TO APPEND THE ANSWERS TO.
  2879. ' *   2.  THE MAXIMUM SECURITY LEVEL THE + COMMAND CAN RAISE A USER SECURITY
  2880. ' *   3.  THE MINIMUM SECURITY TO USE THIS QUESTIONNAIRE
  2881. ' * e.g. 'C:XXX.DAT,6 5' writes answers to C:XXX.DAT, can raise to 6,
  2882. ' *      and requires security 5 or more to access
  2883.       ScriptIndex = 1
  2884.       ZOutTxt$(ScriptIndex) = ZActiveUserName$ + _
  2885.                          SPACE$(1) + _                               ' DD021301
  2886.                          DATE$ + _
  2887.                          SPACE$(1) + _                               ' DD021301
  2888.                          TIME$
  2889. * REPLACING old line(s) by new
  2890. 64010 IF EOF(2) OR ScriptIndex > 255 THEN _
  2891.          GOTO 64100
  2892.       ScriptIndex = ScriptIndex + 1
  2893.       LINE INPUT #2,ZOutTxt$(ScriptIndex)
  2894. * ------[ first line different ]------
  2895.       IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(58) THEN _       ':   ' DD021301
  2896.          Temp$ = ZOutTxt$(ScriptIndex) : _
  2897.          CALL AllCaps (Temp$) : _
  2898.          CALL Trim (Temp$) : _
  2899.          ZOutTxt$(ScriptIndex) = Temp$
  2900.       IF ZUpperCase THEN _
  2901.          CALL AllCaps (ZOutTxt$(ScriptIndex))
  2902.       IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(63) THEN _       '?   ' DD021301
  2903.          ScriptIndex = ScriptIndex + 1 : _
  2904.          ZOutTxt$(ScriptIndex) = CHR$(33)                       '!   ' DD021301
  2905.       GOTO 64010
  2906. '
  2907. '
  2908. ' *  PROCESS QUESTIONS IN THE SCRIPT AS FOLLOWS:
  2909. ' *
  2910. ' * First COLUMN     MEANING
  2911. ' *      :        THIS LINE IS A LABEL THAT MAY BE BRANCHED TO
  2912. ' *      !        THIS MEANS THIS IS AN ANSWER
  2913. ' *      >        THIS IS A "GOTO" COMMAND TO ONE OF THE LABELS
  2914. ' *      *        THIS MEANS THE LINE IS A MESSAGE TO BE WRITTEN TO THE USER
  2915. ' *      ?        THIS MEANS THIS IS A QUESTION FOR THE USER
  2916. ' *      =        THIS MEANS THAT THIS LINE CONTAINS DECISION CRITERIA
  2917. ' *      -        THIS MEANS TO LOWER THE USER'S SECURITY LEVEL
  2918. ' *      +        THIS MEANS TO RAISE THE USER'S SECURITY LEVEL
  2919. ' *      @        THIS MEANS TO ABORT THE QUESTIONNAIRE DO NOT WRITE OUT
  2920. ' *      &        THIS MEANS TO CHAIN TO ANOTHER QUESTIONNAIRE
  2921. ' *      M        Execute specified macro
  2922. ' *      T        Turbo Key
  2923. ' *      <        Assign value to work variable
  2924. '
  2925. * REPLACING old line(s) by new
  2926. 64110 CALL Carrier
  2927.       IF ZSubParm = -1 THEN _
  2928.          GOTO 64510
  2929.       ScriptIndex = ScriptIndex + 1
  2930.       IF ScriptIndex > ScriptMax THEN _
  2931.          GOTO 64400
  2932.       ZOutTxt$ = MID$(ZOutTxt$(ScriptIndex),2)
  2933.       WasX = ZFalse
  2934.       IF LEFT$(ZOutTxt$,3) = "/FL" THEN _
  2935.          ZOutTxt$ = RIGHT$(ZOutTxt$,LEN(ZOutTxt$)-3) : _
  2936.          WasX = ZTrue
  2937.       CALL MetaGSR (ZOutTxt$,WasX)
  2938. * ------[ first line different ]------
  2939.       CALL SmartText (ZOutTxt$,ZFalse,WasX,ZFalse)                   ' Pe 02/05/93
  2940.       WasX$ = ZOutTxt$
  2941.       ON INSTR(" :!@MT><*?=-+&",LEFT$(ZOutTxt$(ScriptIndex),1)) GOTO _
  2942.          64111, _       ' catch invalid lines
  2943.          64110, _       ' : label
  2944.          64110, _       ' ! stored answer
  2945.          64420, _       ' @ abort
  2946.          64120, _       ' M macro execute
  2947.          64430, _       ' T turbo key
  2948.          64440, _       ' > goto label
  2949.          64190, _       ' < assign value
  2950.          64450, _       ' * display line
  2951.          64113, _       ' ? prompt for answer
  2952.          64114, _       ' = conditional branch
  2953.          64460, _       ' - decrease security level
  2954.          64465, _       ' + increase security level
  2955.          64470          ' & chain
  2956. * REPLACING old line(s) by new
  2957. 64113 LastQues = ScriptIndex  ' process ?
  2958.       GOSUB 64180
  2959.       ZSubParm = 1
  2960.       CALL TGet
  2961.       IF ZSubParm = -1 THEN _
  2962.          GOTO 64510 _
  2963.       ELSE IF ZWasQ = 0 THEN _
  2964.               ZOutTxt$ = WasX$ : _
  2965.               GOTO 64113 _
  2966. * ------[ first line different ]------
  2967.            ELSE ZOutTxt$(ScriptIndex + 1) = CHR$(33) + _        '!   ' DD021301
  2968.                                        ZUserIn$ : _
  2969.                 ZGSRAra$(ZTestedIntValue) = ZUserIn$
  2970.       GOTO 64110
  2971. * REPLACING old line(s) by new
  2972. 64200 ScriptIndex = 1
  2973.       CALL MetaGSR (BranchLabel$,ZFalse)
  2974. * ------[ first line different ]------
  2975.       CALL SmartText (BranchLabel$,ZFalse,ZFalse,ZFalse)             'Pe 02/06/93
  2976.       CALL AllCaps (BranchLabel$)
  2977.       CALL Trim (BranchLabel$)
  2978. * REPLACING old line(s) by new
  2979. 64210 ScriptIndex = ScriptIndex + 1
  2980.       IF ScriptIndex > ScriptMax THEN _
  2981.          ZOutTxt$ = BranchLabel$ + _
  2982.               " not found!" : _
  2983.          ZSubParm = 5 : _
  2984.          CALL TPut : _
  2985.          IF ZSubParm = -1 THEN _
  2986.             RETURN _
  2987.          ELSE IF LastQues > 0 THEN _
  2988.                  ScriptIndex = LastQues - 1 : _
  2989.                  RETURN _
  2990.               ELSE GOTO 64510
  2991. * ------[ first line different ]------
  2992.       IF LEFT$(ZOutTxt$(ScriptIndex),1) <> CHR$(58) THEN _      ':   ' DD021301
  2993.          GOTO 64210
  2994.       IF MID$(ZOutTxt$(ScriptIndex),2) <> BranchLabel$ THEN _
  2995.          GOTO 64210
  2996.       RETURN
  2997. '
  2998. '
  2999. ' *  DETERMINE BRANCH LOGIC
  3000. '
  3001. '
  3002. * REPLACING old line(s) by new
  3003. * ------[ first line different ]------
  3004. 64310 NextEquals = INSTR(CurEquals + 1, ZOutTxt$(ScriptIndex),CHR$(61)) '= ' DD021301
  3005.       IF NextEquals = 0 THEN _
  3006.          BranchLabel$ = MID$(ZOutTxt$(ScriptIndex),CurEquals + 2) : _
  3007.          GOTO 64320
  3008.       IF ZWasZ$ <> _
  3009.          MID$(ZOutTxt$(ScriptIndex),CurEquals + 1,1) THEN  _
  3010.          CurEquals = NextEquals : _
  3011.          GOTO 64310
  3012.       BranchLabel$ = MID$(ZOutTxt$(ScriptIndex),CurEquals + 2,NextEquals-(CurEquals + 2))
  3013. * REPLACING old line(s) by new
  3014. * ------[ first line different ]------
  3015. 64360 NextEquals = INSTR(CurEquals + 1, ZOutTxt$(ScriptIndex),CHR$(61)) '= ' DD021301
  3016.       IF NextEquals = 0 THEN _
  3017.          BranchLabel$ = MID$(ZOutTxt$(ScriptIndex),CurEquals + 2) : _
  3018.          GOTO 64380
  3019.       Numeric = ZTrue
  3020.       LoopIndex = 2
  3021.       WHILE LoopIndex < LEN(ZOutTxt$(ScriptIndex - 1)) +1
  3022.          IF INSTR("()1234567890- ",MID$(ZOutTxt$(ScriptIndex - 1),LoopIndex,1)) THEN _
  3023.             GOTO 64370
  3024.          Numeric = ZFalse
  3025. * REPLACING old line(s) by new
  3026. 64410 ScriptIndex = ScriptIndex + 1
  3027.       IF ScriptIndex > ScriptMax THEN _
  3028.          GOTO 64500
  3029. * ------[ first line different ]------
  3030.       IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(58) THEN _       ':   ' DD021301
  3031.          QuestionSave$ = MID$(ZOutTxt$(ScriptIndex),2) : _
  3032.          GOTO 64410
  3033.       IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(33) AND _        '!   ' DD021301
  3034.          LEN(ZOutTxt$(ScriptIndex)) < 2 THEN _
  3035.          GOTO 64410
  3036.       IF LEFT$(ZOutTxt$(ScriptIndex),1) = CHR$(33) THEN _       '!   ' DD021301
  3037.          CALL PrintWorkA (2,QuestionSave$) : _                       ' DD040601
  3038.          CALL PrintWorkA (2,MID$(ZOutTxt$(ScriptIndex),2))           ' DD040601
  3039.       IF ScriptIndex = 1 AND _
  3040.          AppendFileName$ <> PrevAppend$ THEN _
  3041.          CALL PrintWorkA (2,ZOutTxt$(ScriptIndex))                   ' DD040601
  3042.       IF ZErrCode <> 0 THEN _
  3043.          ZOutTxt$ = "Unrecoverable failure in script!" : _
  3044.          ZSubParm = 5 : _
  3045.          CALL TPut : _
  3046.          GOTO 64500
  3047.       GOTO 64410
  3048. * REPLACING old line(s) by new
  3049. 64510 ZChatAvail = (INSTR("MUF",ZActiveMenu$) > 0)
  3050.       ZOK = ZTrue
  3051.       ZLastIndex = 0
  3052.       END SUB
  3053. * ------[ first line different ]------
  3054. '64600 ' $SUBTITLE: 'ViewArc - subroutine to display .ARC contents'  ' DD062304
  3055. ' $PAGE
  3056. '
  3057. '  NAME    --  ViewArc  (Written by Jon Martin)
  3058. '
  3059. '  INPUTS  --  PARAMETER                   MEANING
  3060. '              ZFileName$           NAME OF THE ARC FILE TO BE
  3061. '                                   VIEWED.
  3062. '
  3063. '  OUTPUTS --  NONE
  3064. '
  3065. '  PURPOSE --  Provides a mechanism to provide users with the
  3066. '              contents of a libraried file prior to downloading.
  3067. '
  3068. '     SUB ViewArc STATIC                                             ' DD092102
  3069. '     CLOSE 2                                                        ' DD092102
  3070.       'IF ZTurboRBBS THEN _
  3071. '        RetCode = 0                                                 ' DD092102
  3072. '        CALL ArcV (ZArcWork$,ZFileName$,RetCode)                    ' DD092102
  3073. '        CALL BufFile (ZArcWork$,WasX)                               ' DD092102
  3074. '        EXIT SUB                                                    ' DD092102
  3075.       'IF ZShareIt THEN _
  3076.       '   OPEN ZFileName$ FOR RANDOM SHARED AS #2 LEN=1 _
  3077.       'ELSE OPEN "R",2,ZFileName$,1
  3078.       'FIELD 2,1 AS CHAR$
  3079.       'BYTE.POINTER! = 1
  3080.       'ARC.END! = LOF(2)
  3081. '64605 'IF BYTE.POINTER! > ARC.END! THEN _                           ' DD062304
  3082.       '   GOTO 64620
  3083.       'GET 2,BYTE.POINTER!
  3084.       'IF CHAR$ <> CHR$(26) THEN _
  3085.       '   GOTO 64620
  3086.       'BYTE.POINTER! = BYTE.POINTER! + 1
  3087.       'GET 2,BYTE.POINTER!
  3088.       'IF CHAR$ = CHR$(0) THEN _
  3089.       '   GOTO 64620
  3090.       'ARCED.NAME$ = ""
  3091.       'FOR WasX = 1 TO 12
  3092.       '   GET 2,BYTE.POINTER! + WasX
  3093.       '   IF CHAR$ < CHR$(40) THEN _
  3094.       '      GOTO 64610
  3095.       '   ARCED.NAME$ = ARCED.NAME$ + _
  3096.       '                 CHAR$
  3097.       'NEXT
  3098. '64610 'ZOutTxt$ = ARCED.NAME$                                       ' DD062304
  3099.       'BYTE.POINTER! = BYTE.POINTER! + 14
  3100.       'GOSUB 64630
  3101.       'TOTAL.BYTES# = WORK.BYTES#
  3102.       'BYTE.POINTER! = BYTE.POINTER! + 10
  3103.       'GOSUB 64630
  3104.       'FINAL.BYTES# = WORK.BYTES#
  3105.       'ZOutTxt$ = ZOutTxt$ + _
  3106.       '     SPACE$(20 - LEN(ARCED.NAME$) - LEN(STR$(FINAL.BYTES#))) + _
  3107.       '     STR$(FINAL.BYTES#) + _
  3108.       '     " bytes."
  3109.       'CALL QuickTPut1 (ZOutTxt$)
  3110.       'BYTE.POINTER! = BYTE.POINTER! + TOTAL.BYTES# + 4
  3111.       'GOTO 64605
  3112. '64620 'CLOSE 2                                                      ' DD062304
  3113.       'ZSubParm = 0
  3114.       'CALL Carrier
  3115.       'ZOutTxt$ = ""
  3116.       'EXIT SUB
  3117. '64630 'FACTOR# = 1#                                                 ' DD062304
  3118.       'WORK.BYTES# = 0
  3119.       'FOR WasX = 0 TO 3
  3120.       '   GET 2,BYTE.POINTER! + WasX
  3121.       '   WORK.BYTES# = WORK.BYTES# + FACTOR# * ASC(CHAR$)
  3122.       '   FACTOR# = FACTOR# * 256#
  3123.       'NEXT
  3124.       'RETURN
  3125. '     END SUB                                                        ' DD092102
  3126. '64635 ' * processes T)oggle command requests                        ' DD062304
  3127.       ' * formerly 1500-1512 in RBBS-PC.BAS
  3128.       SUB CmndToggle STATIC
  3129. * DELETING old line(s)
  3130. 64600
  3131. 64605
  3132. 64610
  3133. 64620
  3134. 64630
  3135. 64635
  3136. * REPLACING old line(s) by new
  3137. 64636 IF ZAnsIndex < ZLastIndex THEN _
  3138.          GOTO 64638
  3139. * ------[ first line different ]------
  3140.       ZFileName$ = ZWelcomeFileDrvPath$ + "TOGGLES"                  ' DD052501
  3141.       CALL Graphic (ZFileName$)                                      ' DD052501
  3142.       CALL BufFile (ZFileName$,WasX)                                 ' DD052501
  3143. '     ZOutTxt$ = "A)nsiEditor  B)ullet  C)ase     F)ile   H)ilite"   ' DD052501
  3144. '     CALL TopPrompt                                                 ' DD052501
  3145. '     ZOutTxt$ = "L)ine feeds  N)ulls   T)urboKey X)pert  !)bell"    ' DD052501
  3146. '     CALL TopPrompt                                                 ' DD052501
  3147.       ZOutTxt$ = ZFGF$ + "TOGGLE " + ZFG2$ + "command" + ZEmphasizeOff$ ' DD062902
  3148.       IF ZCmndsInPrompt THEN                                         ' DD062902
  3149.          ZOutTxt$ = ZOutTxt$ + " (A,B,C,E,F,H,I,K,L,M,N,S,T,X,!,[Q])"  ' DD070402
  3150.       END IF                                                         ' DD062902
  3151. '     CALL ColorPrompt (ZOutTxt$)                                    ' DD062902
  3152. * REPLACING old line(s) by new
  3153. 64638 ZStackC = ZTrue
  3154.       ZTurboKey = -ZTurboKeyUser
  3155.       CALL PopCmdStack
  3156.       IF ZWasQ=0 OR ZSubParm < 0 THEN _
  3157.          EXIT SUB
  3158.       ZWasZ$ = ZUserIn$(ZAnsIndex)
  3159.       CALL AllCaps (ZWasZ$)
  3160. * ------[ first line different ]------
  3161.       IF ZWasZ$ = "Q" THEN                                           ' DD062902
  3162.          ZLastIndex = 0                                              ' DD062902
  3163.          EXIT SUB                                                    ' DD062902
  3164.       END IF                                                         ' DD062902
  3165.       ZFF = INSTR("ABCFHLNTX!IEKMS",ZWasZ$)                          ' DD070402
  3166.       IF ZFF < 1 THEN _
  3167.          GOTO 64636
  3168.       CALL Toggle (ZFF)
  3169.       GOTO 64636
  3170.       END SUB
  3171.       SUB TopPrompt STATIC
  3172.       CALL ColorPrompt (ZOutTxt$)
  3173.       CALL QuickTPut1 (ZOutTxt$)
  3174.       END SUB
  3175. * REPLACING old line(s) by new
  3176. 64645 ' * sets new user defaults
  3177.       ' * formerly 12900 of rbbs-pc.bas
  3178.       SUB SetNewUserDef STATIC
  3179. * ------[ first line different ]------
  3180.       IF ZNewUserSetsDefaults THEN
  3181.          WasX = 5*ZUserTextColor - 125 + 35*VAL(ZBoldText$) + ZWasGR ' DD062301
  3182.          IF WasX < 30 OR WasX > 99 THEN _                            ' DD062301
  3183.             WasX = 60                                                ' DD062301
  3184.       ELSE                                                           ' DD062301
  3185.          WasX = 60                                                   ' DD062301
  3186.       END IF                                                         ' DD062301
  3187.       IF ZReqQues$ = ZNewUserQuestionnaire$ THEN                     ' DD080501
  3188.          ZReqQuesAnswered = ZTrue                                    ' DD080501
  3189.       END IF                                                         ' DD080501
  3190.       WasA =    -ZPromptBell          -2 * ZExpertUser _             ' DD063002
  3191.             -4 * ZNulls               -8 * ZUpperCase _              ' DD063002
  3192.            -16 * ZLineFeeds          -32 * ZCheckBulletLogon _       ' DD063002
  3193.            -64 * ZSkipFilesLogon    -128 * ZFullScreenEditor _       ' DD063002
  3194.           -256 * ZReqQuesAnswered   -512 * ZMailWaiting _            ' DD063002
  3195.          -1024 * (NOT ZHiLiteOff)  -2048 * ZTurboKeyUser _           ' DD063002
  3196.          -4096 * ZFileWaiting      -8192 * ZAvailableForChat _       ' DD063002
  3197.         -16384 * ZExtendedOff                                        ' DD063002
  3198. '                                                                    ' DD063002
  3199.       WasAA =   -ZReadNewMail         -2 * ZReselectALL _            ' DD070103
  3200.             -4 * ZMorePromptLF        -8 * ZReselectGraphics _       ' DD070105
  3201.            -16 * ZANSIMusic          -32 * ZNeverCanPage _           ' DD081001
  3202.            -64 * ZReselectProto     -128 * ZGlobalTwit               ' DD081001
  3203. '                                                                    ' DD063002
  3204.       LSET ZUserName$ = ZActiveUserName$
  3205.       LSET ZUserOption$ = MKI$(0) + _
  3206.                            MKI$(0) + _
  3207.                            ZUserXferDefault$ + _                     ' DD062301
  3208.                            MKI$(WasX) + _                            ' DD062301
  3209.                            CHR$(ZRightMargin) + _                    ' DD063002
  3210.                            CHR$(WasAA) + _                           ' DD063002
  3211.                            MKI$(WasA) + _                            ' DD070102
  3212.                            CHR$(ZPageLength) + _                     ' DD062301
  3213.                            ZRegDate$ + _                             ' DD081001
  3214.                            ZDefaultEchoer$
  3215.       LSET ZUserDnlds$ = MKI$(0)
  3216.       LSET ZUserUplds$ = MKI$(0)
  3217.       IF ZEnforceRatios THEN _
  3218.          LSET ZTodayDl$ = MKS$(0) : _
  3219.          LSET ZTodayBytes$ = MKS$(0) : _
  3220.          LSET ZDlBytes$ = MKS$(0) : _
  3221.          LSET ZULBytes$ = MKS$(0)
  3222.       LSET ZSecLevel$ = MKI$(ZTempSecLevel)
  3223.       LSET ZElapsedTime$ = MKI$(0)
  3224.       LSET ZDropTimes$ = CHR$(0)                                     ' DD091401/DROP
  3225.       LSET ZBankTime$ = CHR$(0)
  3226.       END SUB
  3227.