home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / rbbs_pc / rfix0312.zip / RSB20312.MRG < prev    next >
Text File  |  1993-03-12  |  23KB  |  573 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against C:\174\RBBSSUB2.BAS to produce D:\SOURCE\RBBSSUB2.BAS
  3. * C:\174\RBBSSUB2.BAS:  Date 6-20-1992  Size 140946 bytes
  4. * ------------[ Created 03-12-1993 21:23:21 ]------------
  5. * REPLACING old line(s) by new
  6. 109 '  $SUBTITLE: 'VarInit - subroutine to initialize system variables'
  7. '  $PAGE
  8. '
  9. '  NAME    --  VarInit
  10. '
  11. '  INPUTS  --  PARAMETER           MEANING
  12. '              NONE
  13. '
  14. '  OUTPUTS --  NONE
  15. '
  16. '  PURPOSE --  To initialize system variable
  17. '
  18.       SUB VarInit STATIC
  19.     DEF SEG                            ' Point to BASIC
  20.     WIDTH 80                           ' Set Screen Width
  21.     KEY OFF                            ' Line 25 turned off
  22. ' ********************* Variable Definitions *******************************
  23.     ZMsgDim = 99
  24.     WasMM = 999
  25.     WasBX = 75
  26.     WasJ = 60
  27.     REDIM ZOptSec(WasJ)
  28.     DIM ZWorkAra$(WasJ)
  29.     DIM ZGSRAra$(WasJ)
  30.     DIM ZCategoryName$(WasBX),ZCategoryCode$(WasBX),ZCategoryDesc$(WasBX)
  31.     DIM ZOutTxt$(ZMsgDim)                      ' Message line table
  32.     DIM ZUserIn$(ZMsgDim)                      ' Message line table
  33.     DIM ZMsgPtr(WasMM,2)                       ' Message pointers
  34.     ZAcknowledge$ = CHR$(6)
  35.     ZAckChar$ = "C" + _
  36.             ZAcknowledge$
  37.     ZActiveMenu$ = "B"
  38.     ZActiveMessage$ = CHR$(225)
  39.     ZBackSpace$ = CHR$(8) + _
  40.                  CHR$(32) + _
  41.                  CHR$(8)
  42.     ZBackArrow$ = CHR$(29) + _
  43.                   CHR$(32) + _
  44.                   CHR$(29)
  45.     ZBaudRates$ = "      300  450 1200 2400 4800 7200 96001200014400168001920038400"
  46.     ZBellRinger$ = CHR$(7)
  47.     ZBulletinMenu$ = ""
  48.     ZWasCL = 24
  49.     ZCancel$ = CHR$(24)
  50.     ZColorReset$ = CHR$(27) + _
  51.                    "[00;37;40m"
  52.     ZConfigFileName$ = "RBBS-PC.DEF"
  53.     ZCarriageReturn$ = CHR$(13)
  54.     ZDeletedMsg$ = CHR$(226)
  55.     ZEndTransmission$ = CHR$(4)
  56.     ZEscape$ = CHR$(27)
  57.     ZExpectActiveModem = 0
  58.     ZFalse = 0
  59.     ZF1Key = 59
  60.     ZF10Key = 68
  61.     ZConfName$ = "MAIN"
  62.     CALL SetHiLite (ZTrue)
  63.     ZHomeConf$ = ""
  64.     ZInConfMenu = -1
  65.     ZLastCommand$ = "M "
  66.     ZLimitMinsPerSession = 0
  67.     ZLineFeed$ = CHR$(10)
  68.     ZLineFeeds = NOT ZFalse
  69.     ZLineEditChk$ = CHR$(9) + _
  70.                     ZLineFeed$ + _
  71.                     CHR$(11) + _
  72.                     CHR$(12) + _
  73.                     CHR$(127) + _
  74.                     CHR$(8) + _
  75.                     ZBellRinger$ + _
  76.                     CHR$(26) + _
  77.                     CHR$(227)
  78.     ZLineMes$ = SPACE$(78)          ' fixed length string workspace
  79.     ZLockStatus$ = "UM UU UB UD"
  80.     ZMenuIndex = 2
  81.     ZNAK$ = CHR$(21)
  82.     ZNoAdvance = ZFalse
  83.     ZPageLength = 23
  84.     ZParseOff = ZFalse
  85.     ZPressEnter$ = " (Press [ENTER] to quit)"
  86.     ZPressEnterExpert$ = " ([ENTER] quits)"
  87.     ZPressEnterNovice$ = ZPressEnter$
  88.     ZPrivateDoor = ZFalse
  89.     ZRightMargin = 72
  90.     ZReturnLineFeed$ = ZCarriageReturn$ + _
  91.                         ZLineFeed$
  92.     ZSmartTable$ = "CS PB NS FN LN SL DT TM TR TE TL RP RR CT " + _
  93.                    "C1 C2 C3 C4 C0 DD BD DB UB DL UL FI VY VN " + _
  94.                    "TY TN BN ND FS LS CN"
  95.     ZStartOfHeader$ = CHR$(1)
  96.     ZTimeLoggedOn$ = SPACE$(8)
  97.     ZTrue = NOT ZFalse
  98.     ZUpInc = -1
  99.     ZXOff$ = CHR$(19)
  100.     ZXOn$ = CHR$(17)
  101.     ZInterrupOn$ = CHR$(11) + ZCancel$ + ZXOff$ + ZXOn$ + ZCarriageReturn$
  102.     ZOptionEnd$ = ZReturnLineFeed$ + " ,("
  103.     ZCrLf$ = ZCarriageReturn$ + ZLineFeed$
  104. * ------[ first line different ]------
  105.     ZVersionID$ = "17.4A/0312"
  106.     ZWasLG$(1) = "Registration Check Failed"
  107.     ZWasLG$(2) = "Sysop name attempted"
  108.     ZWasLG$(3) = "Locked out attempt"
  109.     ZWasLG$(4) = "Password Attempt Failed"
  110.     ZWasLG$(5) = "Auto Lockout done"
  111.     ZWasLG$(6) = "Name in use on another Node!"
  112.     ZWasLG$(7) = ""
  113.     ZWasLG$(8) = "Locked reason read!"
  114.     ZWasLG$(9) = "Expired Registration"
  115.     CALL GetCommand (ZDebug,ZNetTime$,ZNetBaud$,ZNetReliable$)
  116.     ZSubParm = 1
  117.     CALL ReadDef (ZConfigFileName$)
  118.     REDIM ZWorkAra$(ZMaxWorkVar)
  119.     REDIM ZGSRAra$(ZMaxWorkVar)
  120.     ZUseTPut = (ZUpperCase OR ZXOnXOff)
  121.     ZOrigCallers$ = ZCallersFile$
  122.     ZOrigMsgFile$ = ZMainMsgFile$
  123.     ZOrigUserFile$ = ZMainUserFile$
  124.     ZOrigSysopFN$ = ZSysopFirstName$
  125.     ZOrigSysopLN$ = ZSysopLastName$
  126.     ZPromptBell = ZPromptBellDef
  127.     ZSecretName$ = ZSysopPswd1$ + " " + ZSysopPswd2$
  128.     END SUB
  129. '
  130. * REPLACING old line(s) by new
  131. 120 '  $SUBTITLE: 'EditDef - sub to edit config parameters'
  132. '  $PAGE
  133. '
  134. '  NAME    -- EditDef
  135. '
  136. '  INPUTS  --     PARAMETER                    MEANING
  137. '
  138. '  OUTPUTS --                          OUTPUT STRING
  139. '
  140. '  PURPOSE -- Interpretes and adjusts stored configuration parameters
  141. '
  142.       SUB EditDef STATIC
  143. * ------[ first line different ]------
  144.       ZMinsPerSessionDef = ZMinsPerSession                           ' KG082101
  145.       ZAllOpts$ = ZMainCmds$ + _
  146.                   ZFileCmd$ + _
  147.                   ZUtilCmds$ + _
  148.                   ZLibCmds$ + _
  149.                   ZGlobalCmnds$ + _
  150.                   ZSysopCmds$
  151.       ZHelpExtension$ = "." + _
  152.                         ZHelpExtension$
  153.       ZCompressedExt$ = ZDefaultExtension$
  154.       ZWasQ = INSTR(ZDefaultExtension$,".")
  155.       IF ZWasQ > 0 THEN _
  156.          ZDefaultExtension$ = LEFT$(ZDefaultExtension$, ZWasQ-1)
  157.       ZCurDirPath$ = ZDirPath$
  158.       ZTempExpiredSec = ZExpiredSec
  159.       ZBegMain = 1
  160.       ZBegFile = LEN(ZMainCmds$) + ZBegMain
  161.       ZBegUtil = LEN(ZFileCmd$) + ZBegFile
  162.       ZBegLibrary = LEN(ZUtilCmds$) + ZBegUtil
  163.       ZHelp$(3) = ZHelpPath$ + _
  164.                  ZHelp$(3)
  165.       ZHelp$(4) = ZHelpPath$ + _
  166.                  ZHelp$(4)
  167.       ZHelp$(7) = ZHelpPath$ + _
  168.                  ZHelp$(7)
  169.       ZHelp$(9) = ZHelpPath$ + _
  170.                  ZHelp$(9)
  171.       CALL BreakFileName (ZWelcomeFile$,ZWelcomeFileDrvPath$,Prefix$,_
  172.                      Extension$,ZTrue)
  173.      CALL ASCIICodes ("[","]",ZDefaultLineACK$)
  174.      CALL ASCIICodes ("[","]",ZHostEchoOn$)
  175.      CALL ASCIICodes ("[","]",ZHostEchoOff$)
  176.      CALL ASCIICodes ("[","]",ZEmphasizeOffDef$)
  177.      CALL ASCIICodes ("[","]",ZEmphasizeOnDef$)
  178.      ZDR1$ = ZFG1Def$
  179.      ZDR2$ = ZFG2Def$
  180.      ZDR3$ = ZFG3Def$
  181.      ZDR4$ = ZFG4Def$
  182.      IF ZSubParm = -62 THEN _
  183.         EXIT SUB
  184.      ZLocalUserMode = (RIGHT$(ZComPort$,1) < "1")
  185.      IF ZLocalUserMode THEN _
  186.         ZRecycleToDos = ZTrue
  187.      ZEchoer$ = ZDefaultEchoer$
  188.      IF LEN(ZScreenOutMsg$) < 2 THEN _
  189.         ZScreenOutMsg$ = ZStartOfHeader$
  190.      ZSmartTextCode$ = CHR$(ZSmartTextCode)
  191.      IF ZMaxWorkVar < 13 THEN _
  192.         ZMaxWorkVar = 13
  193. '
  194. ' ***  ESTABLISH RBBS-PC'S DOS SUBDIRECTORIES USAGE  ***
  195. '
  196.     IF ZMainFMSDir$ <> "" THEN _
  197.        ZFMSDirectory$ = ZDirPath$ + _
  198.                         ZMainFMSDir$ + _
  199.                         "." + _
  200.                         ZMainDirExtension$ : _
  201.        ZActiveFMSDir$ = ZFMSDirectory$ : _
  202.        ZLibDir$ = ZLibDirPath$ + _
  203.                             ZMainFMSDir$ + _
  204.                             "." + _
  205.                             ZLibDirExtension$
  206.     ZUpcatHelp$ = ZHelpPath$ + _
  207.                   ZUpcatHelp$ + _
  208.                   ZHelpExtension$
  209.     IF ZSubDirCount < 1 THEN _
  210.        GOTO 123
  211.     FOR ZSubDirIndex = 1 TO ZSubDirCount
  212.        INPUT #2,ZSubDir$
  213.        IF RIGHT$(ZSubDir$,1) <> "\" THEN _
  214.          ZSubDir$(ZSubDirIndex) = ZSubDir$ + _
  215.                                  "\" _
  216.        ELSE ZSubDir$(ZSubDirIndex) = ZSubDir$
  217.     NEXT
  218.     GOTO 125
  219. * REPLACING old line(s) by new
  220. 1534 ZUserIn$ = ZOutTxt$   ' Not Macro command - pass to normal processing
  221. * ------[ first line different ]------
  222. ' * strip off leading slash when not in turbokey mode so macros can be
  223. ' * written to work in both turbo and non-turbo-key mode
  224.      IF LEFT$(ZUserIn$,1) = "/" THEN IF NOT ZTurboKeyUser THEN _     ' KG092301
  225.         ZUserIn$ = RIGHT$(ZUserIn$,LEN(ZUserIn$)-1) : _              ' KG092301
  226.         ZTurboKey = ZFalse                                           ' KG092301
  227.      IF ZMacroEcho THEN _
  228.         ZSubParm = 4 : _
  229.         CALL TPut
  230.      WasX$ = ZCarriageReturn$
  231.      GOTO 1547
  232. * REPLACING old line(s) by new
  233. 1654 ' $SUBTITLE: 'SetBaud - sub to set the baud rate in the RS232'
  234. ' $PAGE
  235. '
  236. '  NAME    -- SetBaud
  237. '
  238. '  INPUTS  --     PARAMETER                    MEANING
  239. '             ZBaudRateDivisor   NUMBER TO DIVIDE THE 8250 CHIP'S
  240. '                                 PROGRAMABLE CLOCK TO ADJUST THE
  241. '                                 BAUD RATE TO THE USER'S BAUD
  242. '                                 RATE (INDEPENDENT OF THE BAUD
  243. '                                 RATE USED TO OPEN THE COMM. PORT)
  244. '
  245. '        DESIRED BAUD        DIVISIOR (DECIMAL) TO OBTAIN DESIRED BAUD RATE
  246. '            RATE              PCjr         PC AND XT
  247. '              50             2237             2304
  248. '              75             1491             1536
  249. '             110             1017             1047
  250. '             134.5            832              857
  251. '             150              746              768
  252. '             300              373              384
  253. '             600              186              192
  254. '            1200               93               96
  255. '            1800               62               64
  256. '            2000               56               58
  257. '            2400               47               48
  258. '            3600               31               32
  259. '            4800               23               24
  260. '            7200          not available         16
  261. '            9600          not available         12
  262. '           19200          not available          6
  263. '           38400               "                 3
  264. '  OUTPUTS -- BAUD RATE SET IN THE RS232 INTERFACE
  265. '
  266. '  PURPOSE -- To set the baud rate in the RS232 interface
  267. '             inpependent of the baud rate the communications port
  268. '             was opened at
  269. '
  270.       SUB SetBaud STATIC
  271.      IF ZCBaud$ = "" THEN _
  272. * ------[ first line different ]------
  273.         ZCBaud$ = MID$(ZBaudRates$,(-5 * ZBPS),5) : _                ' BH070401
  274.         CALL Trim (ZCBaud$)                                          ' BH070401
  275.      Temp! = VAL(ZCBaud$)
  276.      IF Temp! > 0 THEN CALL SetBPS (Temp!,ZCBPS)
  277.      IF (ZCBPS = 0 OR Temp! = 0) THEN ZCBPS = ZBPS
  278.      IF NOT ZKeepInitBaud THEN _
  279.         ZTalkToModemAt$ =  MID$(ZBaudRates$,(-5 * ZBPS),5) _
  280.      ELSE ZTalkToModemAt$ = ZModemInitBaud$
  281.      CALL Trim (ZTalkToModemAt$)
  282.      IF LEN(ZTalkToModemAt$) < 5 THEN _
  283.         ZTalkToModemAt$ = SPACE$(4 - LEN(ZTalkToModemAt$)) + _
  284.                             ZTalkToModemAt$
  285.      IF ZEightBit THEN_
  286.         Parity = 2 : _                                    ' No PARITY
  287.         DataBits = 3 : _                                  ' 8 DATA BITS
  288.         StopBits = 0 _                                    ' 1 STOP BIT
  289.      ELSE Parity = 3 : _                                  ' EVEN PARITY
  290.           DataBits = 2 : _                                ' 7 DATA BITS
  291.           StopBits = 0                                    ' 1 STOP BIT
  292.      ComSpeed! = VAL(ZTalkToModemAt$)
  293.      IF ComSpeed! > 19200 THEN _
  294.         IF ZFossil THEN _
  295.            WasI = &H9600 _
  296.         ELSE WasI = 19200 _
  297.      ELSE WasI = ComSpeed!
  298.      IF ZFossil THEN _
  299.         CALL FosSpeed(ZComPort,WasI,Parity,DataBits,StopBits) : _
  300.         EXIT SUB
  301.      IF ComSpeed! = 2400 THEN _
  302.         ZBaudRateDivisor = &H30 + (1 * (ZComputerType = 2)) _
  303.      ELSE IF ComSpeed! = 1200 THEN _
  304.         ZBaudRateDivisor = &H60 + (3 * (ZComputerType = 2)) _
  305.      ELSE IF ComSpeed! = 9600 THEN _
  306.         ZBaudRateDivisor = &HC _
  307.      ELSE IF ComSpeed! = 300 THEN _
  308.         ZBaudRateDivisor = &H180 + (11 * (ZComputerType = 2)) _
  309.      ELSE IF ComSpeed! = 450 THEN _
  310.         ZBaudRateDivisor = &H100 + (8 * (ZComputerType = 2)) _
  311.      ELSE IF ComSpeed! = 4800 THEN _
  312.         ZBaudRateDivisor = &H18 _
  313.      ELSE IF ComSpeed! = 19200 THEN _
  314.         ZBaudRateDivisor = &H6 _
  315.      ELSE IF ComSpeed! = 38400 THEN _
  316.         ZBaudRateDivisor = &H3
  317.      MostSignifByte = FIX (ZBaudRateDivisor / 256)
  318.      LeastSignifByte = ZBaudRateDivisor - (MostSignifByte * 256)
  319.      LineCntlStatus = INP(ZLineCntlReg)
  320.      MSBSave = INP(ZMSB)
  321.      OUT ZMSB,0
  322.      OUT ZLineCntlReg,LineCntlStatus OR 128
  323.      OUT ZLSB,LeastSignifByte
  324.      OUT ZMSB,MostSignifByte
  325.      OUT ZLineCntlReg,LineCntlStatus
  326.      OUT ZMSB,MSBSave
  327.      END SUB
  328. * REPLACING old line(s) by new
  329. 2018 ' $SUBTITLE: 'SetWhoTo - subroutine to get who a msg/upload is to'
  330. ' $PAGE
  331. '
  332. '  NAME    -- SetWhoTo
  333. '
  334. '  INPUTS  --     PARAMETER                    MEANING
  335. '              HighestUserRecord
  336. '
  337. '  OUTPUTS --  MsgTo$              Who message is to
  338. '              RcvrRecNum         User record # of who to
  339. '
  340. '  PURPOSE --  Asks who a message/upload is to and checks if receiver exists
  341. '
  342. * ------[ first line different ]------
  343.      SUB SetWhoTo (EnableCC,MsgTo$,MsgFrom$,RcvrRecNum,Found,AllowPub) STATIC ' KG012502
  344.      Temp$ = MsgFrom$
  345.      CALL Trim (Temp$)
  346.      ZNumHeaders = 0
  347.      CALL KillWork (ZNodeWorkFile$)
  348. * REPLACING old line(s) by new
  349. * ------[ first line different ]------
  350. 2021 ZOutTxt$ = "To " + LEFT$("A)ll,",-5*AllowPub) + "(S)ysop," + _  ' KG012502
  351.                  LEFT$("D)istribution,",-14*EnableCC) + _
  352.                  " or name" + ZPressEnterExpert$
  353.      CALL SkipLine (1)
  354.      ZSemiOnly = ZTrue
  355.      CALL PopCmdStack
  356.      IF ZWasQ = 0 OR ZSubParm < 0 THEN _                             ' KG022501
  357.         GOTO 2033                                                    ' KG022501
  358.      IF LEN(ZUserIn$(ZAnsIndex)) > 30 THEN _
  359.         CALL QuickTPut1 ("30 Char. Max") : _
  360.         GOTO 2021
  361.      Found = ZTrue                                                   ' KG022501
  362.      ZWasDF$ = ZUserIn$(ZAnsIndex)                                   ' KG022501
  363.      CALL AllCaps (ZWasDF$)                                          ' KG022501
  364.      ZUserIn$(ZAnsIndex) = ZWasDF$                                   ' KG022501
  365.      IF ZWasDF$ = "A" AND AllowPub THEN _                            ' KG022501
  366.         MsgTo$ = "ALL" _                                             ' KG022501
  367.      ELSE IF ZWasDF$ = "S" THEN _                                    ' KG022501
  368.         MsgTo$ = "SYSOP" _                                           ' KG022501
  369.      ELSE IF ZWasDF$ = "D" AND EnableCC THEN _                       ' KG022501
  370.         GOTO 2025 _                                                  ' KG022501
  371.      ELSE MsgTo$ = ZUserIn$(ZAnsIndex) :_                            ' KG022501
  372.           CALL AllCaps (MsgTo$)                                      ' KG022501
  373.      GOTO 2032
  374. * REPLACING old line(s) by new
  375. 2032 RcvrRecNum = 0
  376. * ------[ first line different ]------
  377.      IF MsgTo$ <> "ALL" OR NOT AllowPub THEN _                       ' KG012502
  378.         IF ((LEFT$(MsgTo$,4) <> "ALL " OR NOT AllowPub) AND ZStartHash = 1) THEN _ ' KG012502
  379.            CALL CheckInt (MsgTo$) : _                                ' KG082201
  380.            IF ZTestedIntValue = 0 OR NOT ZSysOp OR (ZSysOp AND ZFileSysParm < 1) THEN _ ' RM030201
  381.               ZWasDF = INSTR(MsgTo$+" @"," @") : _
  382.               TempHashValue$ = LEFT$(MsgTo$,ZWasDF-1) : _
  383.               CALL WhoCheck (TempHashValue$,Found,RcvrRecNum) : _
  384.               IF NOT Found THEN _
  385.                  ZLastIndex = 0 : _
  386.                  RcvrRecNum = 0 : _
  387.                  IF NOT ZReply THEN _
  388.                     ZOutTxt$ = "Send anyway (Y,[N])" : _
  389.                     ZTurboKey = -ZTurboKeyUser : _
  390.                     ZLastIndex = 0 : _
  391.                     GOSUB 2034 : _
  392.                     IF NOT ZYes THEN _
  393.                        GOTO 2021
  394.      IF MsgTo$ = Temp$ THEN _
  395.         ZOutTxt$ = "Really send this to YOURSELF (Y,[N])" : _
  396.         ZLastIndex = 0 : _
  397.         GOSUB 2034 : _
  398.         IF NOT ZYes THEN _
  399.            MsgTo$ = ""
  400.      CALL OpenWorkA (ZNodeWorkFile$)
  401.      CALL PrintWorkA (MsgTo$ + "," + STR$(RcvrRecNum))
  402.      CLOSE 2
  403.      ZNumHeaders = ZNumHeaders + 1
  404.      IF EnableCC AND (NOT ZReply) AND MsgTo$ <> "ALL" AND _
  405.         MsgTo$ <> "" AND LEFT$(MsgTo$,4) <> "ALL " AND _
  406.         (NOT ZSysopComment) AND (NOT ZSysopMsg) THEN _
  407.            ZOutTxt$ = "Carbon copy to another (Y,[N])" : _
  408.            CALL PopCmdStack : _
  409.            IF ZYes THEN _
  410.               GOTO 2021
  411. * REPLACING old line(s) by new
  412. 3730 IF TabToSpace > 0 THEN _
  413.         WasX$ = " " : _
  414.         TabToSpace = TabToSpace - 1 : _
  415.         GOTO 3750
  416.      CALL FindFKey
  417.      IF ZSubParm < 0 THEN _
  418.         EXIT SUB
  419.      WasX$ = ZKeyPressed$
  420.      IF WasX$ = "" THEN _
  421. * ------[ first line different ]------
  422.         GOTO 3732 : _                                                ' KG011201
  423.         IF ZLocalUser THEN _
  424.            GOTO 3733 _
  425.         ELSE GOTO 3732
  426.      IF WasX$ = ZEscape$ THEN _
  427.         ZKeyPressed$ = WasX$ : _
  428.         EXIT SUB
  429.      SendRemote = ZTrue
  430.      WasZ = INSTR(ZLineEditChk$,WasX$)
  431.      IF WasZ < 1 THEN _
  432.         GOTO 3750 _
  433.      ELSE IF WasZ > 4 THEN _
  434.              GOTO 3870 _
  435.      ELSE IF WasZ = 1 THEN _
  436.              GOTO 3810
  437.      IF ZLocalUser THEN _
  438.         GOTO 3730
  439. * REPLACING old line(s) by new
  440. 3732 IF ZCommPortStack$ <> "" THEN _
  441.         WasX$ = LEFT$(ZCommPortStack$,1) : _
  442.         ZCommPortStack$ = RIGHT$(ZCommPortStack$,LEN(ZCommPortStack$)-1) : _
  443.         GOTO 3738
  444. * ------[ first line different ]------
  445.      IF NOT ZLocalUser THEN _                                        ' KG011201
  446.         CALL EofComm (Char) : _                                      ' KG011201
  447.         IF Char <> -1 THEN _                                         ' KG011201
  448.            GOTO 3736                                                 ' KG011201
  449. * REPLACING old line(s) by new
  450. 5503 IF SignTime = 1 THEN _
  451.         ZOutTxt$ = "Withdraw" _
  452.      ELSE ZOutTxt$ = "Deposit"
  453.      Temp$ = ZOutTxt$ + " how many mins"
  454.      CALL ChangeInt (ZFalse,Temp$,Temp,0,Maxtime)
  455.      IF ZWasQ = 0 OR ZTestedIntValue = 0 THEN _
  456.         GOTO 5501
  457.      ZTestedIntValue = SignTime * ZTestedIntValue
  458.      CALL ChkAddedTime (ZTestedIntValue)
  459.      IF ZTestedIntValue = 0 THEN _
  460.         GOTO 5501
  461.      ZSecsPerSession! = ZSecsPerSession! + (ZTestedIntValue * 60)
  462. * ------[ first line different ]------
  463.      IF ZMaxPerDay = 0 THEN _                                        ' KG082101
  464.         ZTimeCredits! = ZTimeCredits! + ZTestedIntValue * 60         ' KG082101
  465.      ZElapsedTime = ZElapsedTime - ZTestedIntValue
  466.      ZGlobalBankTime = ZGlobalBankTime - ZTestedIntValue
  467.      GOSUB 5507
  468.      GOTO 5501
  469. * REPLACING old line(s) by new
  470. 9801 ' $SUBTITLE: 'WhosOn - subroutine to display who is on'
  471. ' $PAGE
  472. '
  473. '  NAME    -- WhosOn
  474. '
  475. '  INPUTS  --     PARAMETER                    MEANING
  476. * ------[ first line different ]------
  477. '                ZActiveMessageFile$        Current message file
  478. '                ZOrigMsgFile$              Main msg file
  479. '
  480. '  OUTPUTS --  None
  481. '
  482. '  PURPOSE --  To display who is on each node.
  483. '
  484.      SUB WhosOn STATIC                                               ' KG012601
  485.      WasA1$ = ZActiveMessageFile$
  486.      ZActiveMessageFile$ = ZOrigMsgFile$
  487.      CALL OpenMsg
  488.      FIELD 1, 128 AS ZMsgRec$
  489.      GET 1,1                                                         ' KG012601
  490.      NumNodes = VAL(MID$(ZMsgRec$,127))                              ' KG012601
  491.      FOR NodeIndex = 2 TO NumNodes + 1
  492.         GET 1,NodeIndex
  493.         ZOutTxt$ = ZFG1$ + "Node" + _
  494.              STR$(NodeIndex - 1) + ZFG2$
  495.         WasAX$ = MID$(ZMsgRec$,79,5)                                 ' KG012001
  496.         CALL Trim (WasAX$)                                           ' KG012001
  497.         WasAX$ = RIGHT$("     " + WasAX$,5) + _                      ' KG012001
  498.               " BPS: "
  499.         IF MID$(ZMsgRec$,55,2) = "-1" AND NOT ZSysop THEN _
  500.            ZWasY$ = "SYSOP" + SPACE$(21) _
  501.         ELSE ZWasY$ = MID$(ZMsgRec$,1,26)
  502.         WasAX$ = WasAX$ + ZFG3$ + ZWasY$
  503.         IF MID$(ZMsgRec$,40,2) <> "-1" THEN _
  504.            WasAX$ = WasAX$ + ZFG4$ + MID$(ZMsgRec$,93,22)
  505.         IF MID$(ZMsgRec$,57,1) = "A" THEN _
  506.            ZOutTxt$ = ZOutTxt$ + "  Online at " + _
  507.                 WasAX$ _
  508.         ELSE IF NOT ZSysop THEN _
  509.                 ZOutTxt$ = ZOutTxt$ + _
  510.                      " Waiting for next caller" _
  511.              ELSE ZOutTxt$ = ZOutTxt$ + _
  512.                        " Offline at " + _
  513.                        WasAX$
  514.         CALL QuickTPut1 (ZOutTxt$)
  515.         CALL AskMore ("",ZTrue,ZTrue,ZAnsIndex,ZFalse)
  516.         IF ZNo THEN _
  517.            NodeIndex = NumNodes + 2
  518.      NEXT
  519.      ZActiveMessageFile$ = WasA1$
  520.      CALL QuickTPut (ZEmphasizeOff$,0)
  521.      END SUB
  522. * REPLACING old line(s) by new
  523. 10605 LSET ZUserDnlds$ = MKI$(ZDnlds)
  524.       LSET ZUserUplds$ = MKI$(ZUplds)
  525.       IF ZEnforceRatios THEN _
  526.          LSET ZTodayDl$ = MKS$(ZDLToday!) : _
  527.          LSET ZTodayBytes$ = MKS$(ZBytesToday!) : _
  528.          LSET ZDlBytes$ = MKS$(ZDLBytes!) : _
  529.          LSET ZULBytes$ = MKS$(ZULBytes!)
  530.       CALL CheckTime (ZUserLogonTime!, ZSecsUsedSession!, 2)
  531.       IF (NOT ZExitToDoors) AND LoggingOff THEN _
  532.          TempElapsed! = ZElapsedTime + _
  533.                        (ZSecsUsedSession! - ZTimeCredits!) / 60 : _
  534.          ZTimeCredits! = 0 _
  535.       ELSE TempElapsed! = ZElapsedTime - ZExitToDoors*ZMinsInDoors
  536.       IF TempElapsed! < -32767 THEN _
  537.          TempElapsed! = -32767 _
  538.       ELSE IF TempElapsed! > 32767 THEN _
  539.          TempElapsed! = 32767
  540.       LSET ZElapsedTime$ = MKI$(TempElapsed!)
  541.       IF ZAdjustedSecurity THEN _
  542.          LSET ZSecLevel$ = MKI$(ZUserSecLevel)
  543.       PUT 5,ZUserFileIndex
  544.       ZSubParm = 8
  545.       CALL FileLock
  546.       IF ZActiveUserFile$ <> ZOrigUserFile$ AND LoggingOff THEN _
  547.          ZActiveUserFile$ = ZOrigUserFile$ : _
  548.          ZUserFileIndex = ZOrigUserFileIndex : _
  549.          UpdateDefaults = ZFalse : _
  550. * ------[ first line different ]------
  551.          ZAdjustedSecurity = ZFalse : _                              ' KG022502
  552.          LSET ZLastDateTimeOn$ = ZOrigDateTimeOn$ : _
  553.          GOTO 10602
  554. * REPLACING old line(s) by new
  555. 20142 IF ZAnsIndex > ZLastIndex THEN _
  556. * ------[ first line different ]------
  557.          IF ZLastIndex > 1 OR Drive$ <> "" THEN _                    ' KG091001
  558.             EXIT SUB _
  559.          ELSE GOTO 20141
  560.       GOSUB 20143
  561.       IF ZSubParm < 0 THEN _
  562.          EXIT SUB
  563.       ZAnsIndex = ZAnsIndex + 1
  564.       GOTO 20142
  565. * REPLACING old line(s) by new
  566. * ------[ first line different ]------
  567. 20145 IF Drive$ <> "" THEN _                                         ' KG091001
  568.          ZFileNameHold$ = Prefix$ + "." + Ext$ : _                   ' KG091001
  569.          CALL FindFile (ZFileName$,ZOK) _                            ' KG091001
  570.       ELSE CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + (NOT ZSysop),ZTrue,"V") ' KG091001
  571.       IF ZOK THEN _
  572.          GOTO 20148
  573.