home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1997 January / CD_shareware_1-97.iso / DOS / COMUNICA / WVTDLX13.ZIP / WVTDLX.WCX (.txt) < prev   
Encoding:
Wildcat! WCX  |  1996-08-23  |  28.4 KB  |  1,344 lines

  1. '! Decompiled with wccNosy version 4.20f (freeware)
  2. '! Input File: in.wcx  29037 bytes  05/14/125  00:13:18pm
  3. '! Code Segment Size  :22544 bytes
  4. '! Data Segment Size  :7498 bytes
  5. '! String Segment Size:6493 bytes
  6. '! Compiled with WCC version ? 019C017B
  7.  
  8.       Type Type29
  9.         Filler0(1 To 6) As Byte
  10.         s6 As String*70
  11.         Filler76(1 To 14) As Byte
  12.         s90 As String*70
  13.         Filler160(1 To 14) As Byte
  14.         s174 As String*70
  15.         Filler244(1 To 20) As Byte
  16.         w264 As Word
  17.       End Type
  18.  
  19.       Type Type28
  20.         s0 As String*3
  21.         w3 As Word
  22.         b5 As Byte
  23.         s6 As String*25
  24.         s31 As String*25
  25.         s56 As String*30
  26.         s86 As String*10
  27.         s96 As String*5
  28.         s101 As String*5
  29.         w106 As Word
  30.         s108 As String*5
  31.         b113 As Byte
  32.         b114 As Byte
  33.         w115 As Word
  34.         b117 As Byte
  35.         w118 As Word
  36.         o120 As Boolean
  37.         o121 As Boolean
  38.         b122 As Byte
  39.         b123 As Byte
  40.         b124 As Byte
  41.         o125 As Boolean
  42.         s126 As String*1
  43.         s127 As String*2
  44.       End Type
  45.  
  46.       Type Type27
  47.         s0 As String*3
  48.         w3 As Word
  49.         s5 As String*25
  50.         s30 As String*25
  51.         s55 As String*30
  52.         s85 As String*10
  53.         s95 As String*5
  54.         s100 As String*5
  55.         w105 As Word
  56.         s107 As String*5
  57.         b112 As Byte
  58.         b113 As Byte
  59.         w114 As Word
  60.         b116 As Byte
  61.         b117 As Byte
  62.         o118 As Boolean
  63.         o119 As Boolean
  64.         s120 As String*1
  65.         o121 As Boolean
  66.         s122 As String*3
  67.       End Type
  68.  
  69.       Type Type26
  70.         w0 As Word
  71.         s2 As String*25
  72.         s27 As String*25
  73.         s52 As String*30
  74.         d82 As Date
  75.         w84 As Word
  76.         Filler86(1 To 3) As Byte
  77.         s89 As String*1
  78.       End Type
  79.  
  80.       Dim s4463(0 To 50) As String
  81.       Dim mh4667 As MessageHeader
  82.       Dim sr4987 As SearchRec
  83.       Dim t27_5036 As Type27
  84.       Dim t28_5162 As Type28
  85.       Dim t26_5292 As Type26
  86.       Dim o5382 As Boolean
  87.       Dim s5383 As String
  88.       Dim w5387 As Word
  89.       Dim s5390(0 To 250) As String
  90.       Dim dt6394 As DateTime
  91.       Dim o6400 As Boolean
  92.       Dim s6401(0 To 15) As String
  93.       Dim b6465 As Byte
  94.       Dim l6466 As Long
  95.       Dim s6619(0 To 26) As String
  96.       Dim b6727 As Byte
  97.       Dim b6728 As Byte
  98.       Dim i6729 As Integer
  99.       Dim i6731 As Integer
  100.       Dim s6733 As String
  101.       Dim b6737 As Byte
  102.       Dim b6738 As Byte
  103.       Dim w6739 As Word
  104.       Dim w6741 As Word
  105.       Dim s6743 As String*5
  106.       Dim b6748 As Byte
  107.       Dim s6749 As String
  108.       Dim s6753 As String
  109.       Dim s6757 As String
  110.       Dim s6761 As String
  111.       Dim s6765(0 To 25) As String
  112.       Dim b6869 As Byte
  113.       Dim s6870(0 To 25) As String
  114.       Dim b6974 As Byte
  115.       Dim l6975 As Long
  116.       Dim w6979 As Word
  117.       Dim s6981 As String
  118.       Dim s6985 As String
  119.       Dim s6989 As String
  120.       Dim s6993 As String
  121.       Dim s6997 As String
  122.       Dim s7001 As String
  123.       Dim s7005 As String
  124.       Dim s7009 As String
  125.       Dim s7013 As String
  126.       Dim s7017(0 To 50) As String
  127.       Dim s7221(0 To 50) As String
  128.       Dim w7425 As Word
  129.       Dim w7427 As Word
  130.       Dim s7429 As String
  131.       Dim w7433 As Word
  132.       Dim w7435 As Word
  133.       Dim w7437 As Word
  134.       Dim w7439 As Word
  135.       Dim w7441 As Word
  136.       Dim w7443 As Word
  137.       Dim w7445 As Word
  138.       Dim w7447 As Word
  139.       Dim w7449 As Word
  140.       Dim b7451 As Byte
  141.       Dim s7452 As String
  142.       Dim o7460 As Boolean
  143.       Dim w7461 As Word
  144.       Dim o7463 As Boolean
  145.       Dim b7464 As Byte
  146.       Dim r7465 As Real
  147.       Dim o7475 As Boolean
  148.       Dim o7476 As Boolean
  149.       Dim s7477 As String*1
  150.       Dim b7478 As Byte
  151.       Dim s7479 As String
  152.       Dim s7483 As String
  153.       Dim s7487 As String
  154.       Dim s7491 As String
  155.       Dim b7495 As Byte
  156.       Dim b7496 As Byte
  157.       Dim o7497 As Boolean
  158.  
  159.       Dim l65441_ As Long
  160.       Dim i65445_ As Integer
  161.       Dim l65447_ As Long
  162.       Dim i65451_ As Integer
  163.       Dim l65453_ As Long
  164.       Dim i65457_ As Integer
  165.       Dim l65459_ As Long
  166.       Dim i65463_ As Integer
  167.       Dim l65465_ As Long
  168.       Dim i65469_ As Integer
  169.       Dim l65471_ As Long
  170.       Dim i65475_ As Integer
  171.       Dim l65477_ As Long
  172.       Dim i65481_ As Integer
  173.       Dim l65483_ As Long
  174.       Dim i65487_ As Integer
  175.       Dim l65489_ As Long
  176.       Dim i65493_ As Integer
  177.       Dim l65495_ As Long
  178.       Dim i65499_ As Integer
  179.       Dim l65501_ As Long
  180.       Dim b65505_ As Byte
  181.       Dim l65506_ As Long
  182.       Dim w65510_ As Word
  183.       Dim l65512_ As Long
  184.       Dim w65516_ As Word
  185.       Dim l65518_ As Long
  186.       Dim i65522_ As Integer
  187.       Dim l65524_ As Long
  188.       Dim i65528_ As Integer
  189.       Dim l65530_ As Long
  190.       Dim i65534_ As Integer
  191.  
  192.       CurrentDateTime dt6394
  193.       r7465 = Timer
  194.       b7464 = 0
  195.       b6465 = 0
  196.       StatusOpen 5
  197.       StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  198.       GoSub 266
  199.       If Exists(s6985 + "SKIPNODE." + Str(Node)) Then
  200.         GoTo 20268
  201.       End If
  202.   158 GoSub 4546
  203.       GoSub 4712
  204.       GoSub 5668
  205.       GoSub 10724
  206.       If UCase(s7001) <> "NONE" Then
  207.         GoSub 13226
  208.       End If
  209.   208 If UCase(s7005) <> "NONE" Then
  210.         GoSub 15664
  211.       End If
  212.   234 If UCase(s7009) <> "NONE" Then
  213.         GoSub 18265
  214.       End If
  215.   260 GoTo 20268
  216.   266 StatusWrite " - Initializing WOW settings/workspace", 1213417543, 1213417543, 1213417543
  217.       StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  218.       GoSub 367
  219.       GoSub 760
  220.       GoSub 944
  221.       GoSub 1357
  222.       GoSub 1221
  223.       Return 
  224.   367 If Not Exists(ProgPath + "WVTDLX.CFG") Then
  225.         GoTo 20268
  226.       End If
  227.   394 Open ProgPath + "WVTDLX.CFG" For Input As 1
  228.       Input #1, l6975
  229.       Input #1, s6985
  230.       Input #1, w6979
  231.       Input #1, s6981
  232.       Input #1, s6989
  233.       Input #1, s7013
  234.       Input #1, s6993
  235.       Input #1, s6997
  236.       Input #1, s7001
  237.       Input #1, s7005
  238.       Input #1, s7009
  239.       Input #1, b7478
  240.       Close 1
  241.       l6466 = 0
  242.   549 For i6729 = 1 To Len(MakeWild.BBSName) Step 1
  243.         l6466 = l6466 + Asc(Mid(MakeWild.BBSName, i6729, 1)) * i6729 + 9
  244.       Next
  245.   668 l6466 = l6466 * Len(MakeWild.BBSName) + Asc(Mid(MakeWild.BBSName, Len(MakeWild.BBSName) - 1, 1))
  246.       If l6466 = l6975 Then
  247.         s7477 = "Y"
  248.       End If
  249.   759 Return 
  250.   760 If Not Exists(s6985 + "CODES.TXT") Then
  251.         Return 
  252.       End If
  253.   783 i6729 = 0
  254.       Open s6985 + "CODES.TXT" For Input As 1
  255.   815 Do Until EOF(1) Or i6729 > 24
  256.         Input #1, s5383
  257.         If Len(Trim(s5383)) > 0 Then
  258.           b6727 = InStr(s5383, "(")
  259.           Inc i6729
  260.           s6619(i6729) = Mid(s5383, b6727 + 1, 4)
  261.         End If
  262.   932 Loop
  263.   938 Close 1
  264.       Return 
  265.   944 If Exists(s6985 + "BADNAME.LST") Then
  266.         b6869 = 0
  267.         Open s6985 + "BADNAME.LST" For Input As 1
  268.   996   Do Until EOF(1)
  269.           Input #1, s5383
  270.           If Len(s5383) > 0 Then
  271.             Inc b6869
  272.             s6765(b6869) = UCase(s5383)
  273.           End If
  274.  1071   Loop
  275.  1077   Close 1
  276.       End If
  277.  1082 If Exists(s6985 + "BADFROM.LST") Then
  278.         b6974 = 0
  279.         Open s6985 + "BADFROM.LST" For Input As 1
  280.  1134   Do Until EOF(1)
  281.           Input #1, s5383
  282.           If Len(s5383) > 0 Then
  283.             Inc b6974
  284.             s6870(b6974) = UCase(s5383)
  285.           End If
  286.  1209   Loop
  287.  1215   Close 1
  288.       End If
  289.  1220 Return 
  290.  1221 If Exists(s6985 + "REGLEVEL.LST") Then
  291.         Open s6985 + "REGLEVEL.LST" For Input As 1
  292.  1267   Do Until EOF(1)
  293.           Input #1, s5383
  294.           If Len(s5383) > 0 Then
  295.             Inc b6465
  296.             s6401(b6465) = UCase(Trim(s5383))
  297.           End If
  298.  1345   Loop
  299.  1351   Close 1
  300.       End If
  301.  1356 Return 
  302.  1357 i6729 = 0
  303.       Open s6985 + "KEYWORDS.LST" For Input As 1
  304.  1389 Do Until EOF(1)
  305.         Input #1, s5383
  306.         s5383 = Trim(s5383)
  307.         If Left(s5383, 2) = ";=" Then
  308.           GoTo 4192
  309.         End If
  310.  1446   Inc i6729
  311.         i6731 = InStr(s5383, ")=")
  312.         s4463(i6729) = Mid(s5383, 9, i6731 - 9)
  313.         s5383 = UCase(s5383)
  314.         If InStr(s5383, "=ADDCREDITS(") > 0 Then
  315.           s7221(i6729) = "ADDCREDITS"
  316.           s7017(i6729) = Mid(s5383, i6731 + 13, Len(s5383) - i6731 + 13)
  317.         Else
  318.  1648     If InStr(s5383, "=INCDLTOT(") > 0 Then
  319.             s7221(i6729) = "INCDLTOT"
  320.             s7017(i6729) = Mid(s5383, i6731 + 11, Len(s5383) - i6731 + 11)
  321.           Else
  322.  1770       If InStr(s5383, "=INCULTOT(") > 0 Then
  323.               s7221(i6729) = "INCULTOT"
  324.               s7017(i6729) = Mid(s5383, i6731 + 11, Len(s5383) - i6731 + 11)
  325.             Else
  326.  1892         If InStr(s5383, "=INCMSGTOT(") > 0 Then
  327.                 s7221(i6729) = "INCMSGTOT"
  328.                 s7017(i6729) = Mid(s5383, i6731 + 12, Len(s5383) - i6731 + 12)
  329.               Else
  330.  2014           If InStr(s5383, "=INCDOORTOT(") > 0 Then
  331.                   s7221(i6729) = "INCDOORTOT"
  332.                   s7017(i6729) = Mid(s5383, i6731 + 13, Len(s5383) - i6731 + 13)
  333.                 Else
  334.  2136             If InStr(s5383, "=ADDMVPPOINTS(") > 0 Then
  335.                     s7221(i6729) = "ADDMVPPOINTS"
  336.                     s7017(i6729) = Mid(s5383, i6731 + 15, Len(s5383) - i6731 + 15)
  337.                   Else
  338.  2258               If InStr(s5383, "=ADDTIME(") > 0 Then
  339.                       s7221(i6729) = "ADDTIME"
  340.                       s7017(i6729) = Mid(s5383, i6731 + 10, Len(s5383) - i6731 + 10)
  341.                     Else
  342.  2380                 If InStr(s5383, "=ADDUSERNAMETOFILE(") > 0 Then
  343.                         s7221(i6729) = "ADDUSERNAMETOFILE"
  344.                         s7017(i6729) = Mid(s5383, i6731 + 20, Len(s5383) - i6731 + 20)
  345.                       Else
  346.  2502                   If InStr(s5383, "=ADDUSERVPHONETOFILE(") > 0 Then
  347.                           s7221(i6729) = "ADDUSERVPHONETOFILE"
  348.                           s7017(i6729) = Mid(s5383, i6731 + 22, Len(s5383) - i6731 + 22)
  349.                         Else
  350.  2624                     If InStr(s5383, "=ADDUSERDPHONETOFILE(") > 0 Then
  351.                             s7221(i6729) = "ADDUSERDPHONETOFILE"
  352.                             s7017(i6729) = Mid(s5383, i6731 + 22, Len(s5383) - i6731 + 22)
  353.                           Else
  354.  2746                       If InStr(s5383, "=ADDUSERINFOTOFILE(") > 0 Then
  355.                               s7221(i6729) = "ADDUSERINFOTOFILE"
  356.                               s7017(i6729) = Mid(s5383, i6731 + 20, Len(s5383) - i6731 + 20)
  357.                             Else
  358.  2868                         If InStr(s5383, "=ATTACHFILE(") > 0 Then
  359.                                 s7221(i6729) = "ATTACHFILE"
  360.                                 s7017(i6729) = Mid(s5383, i6731 + 13, Len(s5383) - i6731 + 13)
  361.                               Else
  362.  2990                           If InStr(s5383, "=CHANGESECLEVEL(") > 0 Then
  363.                                   s7221(i6729) = "CHANGESECLEVEL"
  364.                                   s7017(i6729) = Mid(s5383, i6731 + 17, Len(s5383) - i6731 + 17)
  365.                                 Else
  366.  3112                             If InStr(s5383, "=CHANGESECONDARYLEVEL1(") > 0 Then
  367.                                     s7221(i6729) = "CHANGESECONDARYLEVEL1"
  368.                                     s7017(i6729) = Mid(s5383, i6731 + 24, Len(s5383) - i6731 + 24)
  369.                                   Else
  370.  3234                               If InStr(s5383, "=CHANGESECONDARYLEVEL2(") > 0 Then
  371.                                       s7221(i6729) = "CHANGESECONDARYLEVEL2"
  372.                                       s7017(i6729) = Mid(s5383, i6731 + 24, Len(s5383) - i6731 + 24)
  373.                                     Else
  374.  3356                                 If InStr(s5383, "=RINGBELL(") > 0 Then
  375.                                         s7221(i6729) = "RINGBELL"
  376.                                         s7017(i6729) = Mid(s5383, i6731 + 11, Len(s5383) - i6731 + 11)
  377.                                       Else
  378.  3478                                   If InStr(s5383, "=RUNWCX(") > 0 Then
  379.                                           s7221(i6729) = "RUNWCX"
  380.                                           s7017(i6729) = Mid(s5383, i6731 + 9, Len(s5383) - i6731 + 9)
  381.                                         Else
  382.  3600                                     If InStr(s5383, "=SHELL(") > 0 Then
  383.                                             s7221(i6729) = "SHELL"
  384.                                             s7017(i6729) = Mid(s5383, i6731 + 8, Len(s5383) - i6731 + 8)
  385.                                           Else
  386.  3722                                       If InStr(s5383, "=SENDMSG(") > 0 Then
  387.                                               s7221(i6729) = "SENDMSG"
  388.                                               s7017(i6729) = Mid(s5383, i6731 + 10, Len(s5383) - i6731 + 10)
  389.                                             Else
  390.  3844                                         If InStr(s5383, "=SENDSYSOPMSG(") > 0 Then
  391.                                                 s7221(i6729) = "SENDSYSOPMSG"
  392.                                                 s7017(i6729) = Mid(s5383, i6731 + 15, Len(s5383) - i6731 + 15)
  393.                                               Else
  394.  3966                                           If InStr(s5383, "=SENDDCMSG(") > 0 Then
  395.                                                   s7221(i6729) = "SENDDCMSG"
  396.                                                   s7017(i6729) = Mid(s5383, i6731 + 12, Len(s5383) - i6731 + 12)
  397.                                                 Else
  398.  4088                                             s7221(i6729) = Mid(s5383, i6731 + 2, Len(s5383) - i6731)
  399.                                                 End If
  400.                                               End If
  401.                                             End If
  402.                                           End If
  403.                                         End If
  404.                                       End If
  405.                                     End If
  406.                                   End If
  407.                                 End If
  408.                               End If
  409.                             End If
  410.                           End If
  411.                         End If
  412.                       End If
  413.                     End If
  414.                   End If
  415.                 End If
  416.               End If
  417.             End If
  418.           End If
  419.         End If
  420.  4146   If s7477 <> "Y" Then
  421.           If i6729 = 6 Then
  422.             GoTo 4192
  423.           End If
  424.         End If
  425.  4186 Loop
  426.  4192 w7425 = i6729
  427.       Close 1
  428.       Return 
  429.  4208 o6400 = 0
  430.       If Exists(s6985 + "SKIPLEVL.LST") Then
  431.         Open s6985 + "SKIPLEVL.LST" For Input As 4
  432.  4260   Do Until EOF(4)
  433.           Input #4, s5383
  434.           If UCase(Trim(s5383)) = s7452 Then
  435.             o6400 = - 1
  436.           End If
  437.  4309   Loop
  438.  4315   Close 4
  439.       End If
  440.  4320 If Exists(s6985 + "SKIPNAME.LST") Then
  441.         Open s6985 + "SKIPNAME.LST" For Input As 4
  442.  4366   Do Until EOF(4)
  443.           Input #4, s5383
  444.           If UCase(Trim(s5383)) = s6757 Then
  445.             o6400 = - 1
  446.           End If
  447.  4415   Loop
  448.  4421   Close 4
  449.       End If
  450.  4426 Return 
  451.  4427 o6400 = 0
  452.       If Exists(s6985 + "SKIPDC.LST") Then
  453.         Open s6985 + "SKIPDC.LST" For Input As 4
  454.  4479   Do Until EOF(4)
  455.           Input #4, s5383
  456.           If UCase(Trim(s5383)) = t26_5292.s2 Then
  457.             o6400 = - 1
  458.           End If
  459.  4534   Loop
  460.  4540   Close 4
  461.       End If
  462.  4545 Return 
  463.  4546 ReadBackOpen("ACTIVITY." + Str(Node))
  464.       o5382 = 0
  465.       i6729 = 0
  466.  4575 Do Until ReadBackTOF Or o5382
  467.         s5383 = ReadBackNext
  468.         If Left(s5383, 10) = "----------" Then
  469.           o5382 = - 1
  470.         Else
  471.  4635     If Len(Trim(s5383)) > 0 Then
  472.             Inc i6729
  473.             s5390(i6729) = s5383
  474.           End If
  475.         End If
  476.  4692 Loop
  477.  4698 w5387 = i6729
  478.       ReadBackClose 
  479.       Return 
  480.  4712 If Mid(s5390(w5387), 3, 1) = ":" Then
  481.         s6749 = Left(s5390(w5387), 5)
  482.         If InStr(s5390(w5387), "on locally,") > 0 Then
  483.           s6743 = s7013
  484.         Else
  485.  4858     If InStr(s5390(w5387), " bps") > 0 Then
  486.             b6727 = InStr(s5390(w5387), " at ")
  487.             b6728 = InStr(s5390(w5387), " bps")
  488.             s6743 = Mid(s5390(w5387), b6727 + 4, b6728 - b6727 + 4)
  489.           End If
  490.         End If
  491.  5047   o7463 = 0
  492.         If InStr(s5390(w5387), "[NEWUSER]") > 0 Then
  493.           t27_5036.o118 = - 1
  494.           t28_5162.o120 = - 1
  495.           o7463 = - 1
  496.         Else
  497.  5139     t27_5036.o118 = 0
  498.         End If
  499.  5149 Else
  500.  5155   dt6394.T.Number = dt6394.T.Number - 10
  501.         s6743 = "n/a"
  502.         s6749 = FormatTime(dt6394.T, "hh:mm")
  503.         CurrentDateTime dt6394
  504.       End If
  505.  5213 If Mid(s5390(1), 3, 1) = ":" Then
  506.         s6753 = Left(s5390(1), 5)
  507.         b6727 = InStr(s5390(1), "Logged:")
  508.         b6728 = InStr(s5390(1), " with ")
  509.         w6739 = Val(Mid(s5390(1), b6727 + 8, b6728 - b6727 + 8))
  510.         If InStr(s5390(1), "Signed off NORMALLY") > 1 Then
  511.           t27_5036.s120 = "N"
  512.         Else
  513.  5493     If InStr(s5390(1), "Off by DROPPING CARRIER") > 1 Then
  514.             t27_5036.s120 = "D"
  515.           Else
  516.  5557       If InStr(s5390(1), "EXCEEDED their time") > 1 Then
  517.               t27_5036.s120 = "E"
  518.             Else
  519.  5621         t27_5036.s120 = "N"
  520.             End If
  521.           End If
  522.         End If
  523.  5636 Else
  524.  5642   s6753 = FormatTime(dt6394.T, "hh:mm")
  525.         w6739 = 0
  526.       End If
  527.  5667 Return 
  528.  5668 b6737 = 0
  529.       b6738 = 0
  530.       w6741 = 0
  531.       b6748 = 0
  532.       t27_5036.o121 = 0
  533.  5728 For i6729 = w5387 To 1 Step - 1
  534.  5802   For i6731 = 1 To w7425 Step 1
  535.           If InStr(s5390(i6729), s4463(i6731)) > 0 Then
  536.             GoSub 5973
  537.           End If
  538.  5926   Next
  539.  5949 Next
  540.  5972 Return 
  541.  5973 If s7221(i6731) = "ADDCREDITS" Then
  542.         SetUserBillingCredits(CreditsLeft + Val(s7017(i6731)), 1213417543)
  543.       Else
  544.  6065   If s7221(i6731) = "ADDTIME" Then
  545.           User.TimeLeft = User.TimeLeft + Val(s7017(i6731))
  546.         Else
  547.  6165     If s7221(i6731) = "ADDUSERNAMETOFILE" Then
  548.             Open s7017(i6731) For Append As 3
  549.             Print #3, User.Name
  550.             Close 3
  551.           Else
  552.  6275       If s7221(i6731) = "ADDUSERVPHONETOFILE" Then
  553.               Open s7017(i6731) For Append As 3
  554.               Print #3, User.PhoneNumber
  555.               Close 3
  556.             Else
  557.  6385         If s7221(i6731) = "ADDUSERDPHONETOFILE" Then
  558.                 Open s7017(i6731) For Append As 3
  559.                 Print #3, User.DataNumber
  560.                 Close 3
  561.               Else
  562.  6495           If s7221(i6731) = "ATTACHFILE" Then
  563.                   GoSub 9391
  564.                 Else
  565.  6548             If s7221(i6731) = "CHANGESECLEVEL" Then
  566.                     User.SecLevel = s7017(i6731)
  567.                   Else
  568.  6633               If s7221(i6731) = "CHANGESECONDARYLEVEL1" Then
  569.                       User.Secondary(1) = s7017(i6731)
  570.                     Else
  571.  6744                 If s7221(i6731) = "CHANGESECONDARYLEVEL2" Then
  572.                         User.Secondary(2) = s7017(i6731)
  573.                       Else
  574.  6855                   If s7221(i6731) = "INCDLTOT" Then
  575.                           b6737 = b6737 + Val(s7017(i6731))
  576.                         Else
  577.  6945                     If s7221(i6731) = "INCULTOT" Then
  578.                             b6738 = b6738 + Val(s7017(i6731))
  579.                           Else
  580.  7035                       If s7221(i6731) = "INCMSGTOT" Then
  581.                               w6741 = w6741 + Val(s7017(i6731))
  582.                             Else
  583.  7125                         If s7221(i6731) = "INCDOORTOT" Then
  584.                                 b6748 = b6748 + Val(s7017(i6731))
  585.                               Else
  586.  7215                           If s7221(i6731) = "LOCKUSER" Then
  587.                                   User.UFlags = User.UFlags Or 8
  588.                                 Else
  589.  7286                             If s7221(i6731) = "RINGBELL" Then
  590.  7377                               For w7427 = 1 To Val(s7017(i6731)) Step 1
  591.                                       Sound 500, 0.06
  592.                                       Sound 650, 0.06
  593.                                       Sound 800, 0.06
  594.                                       Delay 0.8
  595.                                     Next
  596.  7491                             Else
  597.  7497                               If s7221(i6731) = "SHELL" Then
  598.                                       If Exists(s7017(i6731)) Then
  599.                                         Shell s7017(i6731), ""
  600.                                       End If
  601.  7611                               Else
  602.  7617                                 If s7221(i6731) = "RUNWCX" Then
  603.                                         If Exists(s7017(i6731)) Then
  604.                                           Run s7017(i6731), ""
  605.                                         End If
  606.  7731                                 Else
  607.  7737                                   If s7221(i6731) = "SENDMSG" Then
  608.                                           GoSub 8070
  609.                                         Else
  610.  7790                                     If s7221(i6731) = "SENDSYSOPMSG" Then
  611.                                             GoSub 8343
  612.                                           Else
  613.  7843                                       If s7221(i6731) = "SENDDCMSG" Then
  614.                                               GoSub 8623
  615.                                             Else
  616.  7896                                         If s7221(i6731) = "SENDLOGTOSYSOP" Then
  617.                                                 GoSub 9851
  618.                                               Else
  619.  7949                                           If s7221(i6731) = "DONOTSKIPUSER" Then
  620.                                                   t27_5036.o121 = - 1
  621.                                                   t28_5162.o125 = - 1
  622.                                                 Else
  623.  8022                                             If s7221(i6731) = "FORMATLOCATION" Then
  624.                                                     GoSub 10235
  625.                                                   End If
  626.                                                 End If
  627.                                               End If
  628.                                             End If
  629.                                           End If
  630.                                         End If
  631.                                       End If
  632.                                     End If
  633.                                   End If
  634.                                 End If
  635.                               End If
  636.                             End If
  637.                           End If
  638.                         End If
  639.                       End If
  640.                     End If
  641.                   End If
  642.                 End If
  643.               End If
  644.             End If
  645.           End If
  646.         End If
  647.       End If
  648.  8069 Return 
  649.  8070 s7429 = ""
  650.       mh4667.Flags = 1
  651.       mh4667.From = MakeWild.SysopName
  652.       mh4667.Subject = "Comment"
  653.       mh4667.To = User.Name
  654.       If InStr(UCase(s7017(i6731)), ".IMP") > 0 Then
  655.         s7429 = "<<" + s7017(i6731)
  656.         AddMessage(mh4667, s7429, "", w6979)
  657.       Else
  658.  8260   If Exists(s7017(i6731)) Then
  659.           AddMessage(mh4667, s7017(i6731), "", w6979)
  660.         End If
  661.       End If
  662.  8342 Return 
  663.  8343 s7429 = ""
  664.       mh4667.Flags = 1
  665.       mh4667.From = "WVTDLX"
  666.       mh4667.Subject = "Concerning " + User.Name
  667.       mh4667.To = MakeWild.SysopName
  668.       If InStr(UCase(s7017(i6731)), ".IMP") > 0 Then
  669.         s7429 = "<<" + s7017(i6731)
  670.         AddMessage(mh4667, s7429, "", w6979)
  671.       Else
  672.  8540   If Exists(s7017(i6731)) Then
  673.           AddMessage(mh4667, s7017(i6731), "", w6979)
  674.         End If
  675.       End If
  676.  8622 Return 
  677.  8623 s6757 = User.Name
  678.       s7452 = User.SecLevel
  679.       If t27_5036.o121 Then
  680.         o6400 = 0
  681.       Else
  682.  8678   GoSub 4208
  683.       End If
  684.  8684 If o6400 Then
  685.         o7475 = - 1
  686.         Return 
  687.       End If
  688.  8705 If Exists(s6985 + "SKIPDC.LST") Then
  689.         o7475 = - 1
  690.         Open s6985 + "SKIPDC.LST" For Input As 1
  691.  8760   Do Until EOF(1)
  692.           Input #1, s5383
  693.           If Trim(UCase(s5383)) = User.Name Then
  694.             o7475 = 0
  695.             GoTo 8824
  696.           End If
  697.  8818   Loop
  698.  8824   Close 1
  699.         If o7475 Then
  700.           s7429 = ""
  701.           mh4667.Flags = 1
  702.           mh4667.From = MakeWild.SysopName
  703.           mh4667.Subject = "Drop Carrier"
  704.           mh4667.To = User.Name
  705.           If InStr(UCase(s7017(i6731)), ".IMP") > 0 Then
  706.             s7429 = "<<" + s7017(i6731)
  707.             AddMessage(mh4667, s7429, "", w6979)
  708.           Else
  709.  9030       If Exists(s7017(i6731)) Then
  710.               AddMessage(mh4667, s7017(i6731), "", w6979)
  711.             End If
  712.           End If
  713.         End If
  714.  9112 Else
  715.  9118   s7429 = ""
  716.         mh4667.Flags = 1
  717.         mh4667.From = MakeWild.SysopName
  718.         mh4667.Subject = "Drop Carrier"
  719.         mh4667.To = User.Name
  720.         If InStr(UCase(s7017(i6731)), ".IMP") > 0 Then
  721.           s7429 = "<<" + s7017(i6731)
  722.           AddMessage(mh4667, s7429, "", w6979)
  723.         Else
  724.  9308     If Exists(s7017(i6731)) Then
  725.             AddMessage(mh4667, s7017(i6731), "", w6979)
  726.           End If
  727.         End If
  728.       End If
  729.  9390 Return 
  730.  9391 mh4667.Flags = 1
  731.       mh4667.From = MakeWild.SysopName
  732.       mh4667.Subject = "Attachment"
  733.       mh4667.To = User.Name
  734.       If InStr(s7017(i6731), ",") > 0 Then
  735.         s7429 = Left(s7017(i6731), InStr(s7017(i6731), ",") - 1)
  736.         If InStr(UCase(s7429), ".IMP") > 0 Then
  737.           s7429 = "<<" + s7429
  738.         End If
  739.  9617   s7479 = Right(s7017(i6731), Len(s7017(i6731)) - InStr(s7017(i6731), ","))
  740.         If Exists(s7479) Then
  741.           AddMessage(mh4667, s7429, s7479, w6979)
  742.         End If
  743.  9754 Else
  744.  9760   s7429 = "This attachment was sent to you by the Sysop."
  745.         If Exists(s7017(i6731)) Then
  746.           AddMessage(mh4667, s7429, s7017(i6731), w6979)
  747.         End If
  748.       End If
  749.  9850 Return 
  750.  9851 s7429 = ""
  751.       mh4667.Flags = 1
  752.       mh4667.From = "WVTDLX"
  753.       mh4667.Subject = "User Activity"
  754.       mh4667.To = MakeWild.SysopName
  755.       Open s6985 + "!Temp!.tmp" For Output As 1
  756.       Print #1, "MATCH FOUND ON:  '"; s4463(i6731); "'"
  757.       Print #1, "ACTION        :  Sent User's Activity to Sysop"
  758.       Print #1, String(76, "=")
  759. 10046 For w7427 = w5387 To 1 Step - 1
  760.         Print #1, s5390(w7427)
  761.       Next
  762. 10152 Print #1, String(76, "=")
  763.       Close 1
  764.       If Exists(s6985 + "!Temp!.tmp") Then
  765.         AddMessage(mh4667, s6985 + "!Temp!.tmp", "", w6979)
  766.         Kill s6985 + "!Temp!.tmp"
  767.       End If
  768. 10234 Return 
  769. 10235 o7497 = -1
  770.       s7491 = Trim(User.State)
  771.       If Len(Trim(User.City)) = 0 Then
  772.         Return 
  773.       End If
  774. 10288
  775. 10324 For b7495 = 1 To Len(Trim(User.City)) Step 1
  776.         If o7497 Then
  777.           If Mid(User.City, b7495, 1) = Chr(32) Then
  778.             s7487 = s7487 + Mid(User.City, b7495, 1)
  779.           Else
  780. 10456       s7487 = s7487 + UCase(Mid(User.City, b7495, 1))
  781.             o7497 = 0
  782.           End If
  783. 10496   Else
  784. 10502     s7487 = s7487 + LCase(Mid(User.City, b7495, 1))
  785.         End If
  786. 10536   b7496 = b7495 + 1
  787.         If b7496 > Len(User.City) Then
  788.         Else
  789. 10583     If Mid(User.City, b7495, 1) = Chr(32) Then
  790.             o7497 = -1
  791.           End If
  792.         End If
  793. 10625 Next
  794. 10648 If Len(s7491) > 0 Then
  795.         s7483 = s7487 + ", " + UCase(User.State)
  796.       Else
  797. 10701   s7483 = s7487
  798.       End If
  799. 10709 User.From = s7483
  800.       Return 
  801. 10724 CurrentDateTime dt6394
  802.       If FindFirst(s6985 + "SINGLE.LOG", 0, sr4987) = 0 Then
  803.         If dt6394.D.Number > sr4987.Date.Number Then
  804.           StatusWrite " - It's a new day, it's a new log!", 1213417543, 1213417543, 1213417543
  805.           StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  806.           If Exists(s6985 + "SINGLE.LOG") Then
  807.             Kill s6985 + "SINGLE.LOG"
  808.           End If
  809. 10883     If Exists(s6985 + "COMBINED.LOG") Then
  810.             Kill s6985 + "COMBINED.LOG"
  811.           End If
  812.         End If
  813.       End If
  814. 10917 Open s6985 + "SINGLE.LOG" For Random As 1 Len = 126 '! This value should probably be replaced with a "SizeOf" expression
  815.       i6729 = LOF(1)
  816.       t27_5036.s0 = "G~J"
  817.       t27_5036.w3 = User.UserId
  818.       t27_5036.s5 = User.Name
  819.       t27_5036.s30 = User.Alias
  820.       t27_5036.s55 = User.From
  821.       t27_5036.s85 = User.SecLevel
  822.       t27_5036.s107 = s6743
  823.       t27_5036.s95 = s6749
  824.       t27_5036.s100 = s6753
  825.       t27_5036.w105 = w6739
  826.       t27_5036.b112 = b6737
  827.       t27_5036.b113 = b6738
  828.       t27_5036.w114 = w6741
  829.       t27_5036.b116 = b6748
  830.       t27_5036.b117 = Node
  831.       t27_5036.o119 = 0
  832.       If b6465 > 0 Then
  833. 11237   For i6731 = 1 To b6465 Step 1
  834.           If s6401(i6731) = t27_5036.s85 Then
  835.             t27_5036.o119 = - 1
  836.           End If
  837. 11346   Next
  838.       End If
  839. 11369 t27_5036.s122 = ""
  840.       Put 1, i6729 + 1, t27_5036 '! 126 bytes
  841.       t28_5162.w118 = i6729 + 1
  842.       Close 1
  843.       StatusWrite " - Processing " + User.Name + " [Call #" + Str(t28_5162.w118) + "]", 1213417543, 1213417543, 1213417543
  844.       StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  845.       CurrentDateTime dt6394
  846.       Open s6985 + "COMBINED.LOG" For Random As 1 Len = 130 '! This value should probably be replaced with a "SizeOf" expression
  847.       w7427 = LOF(1)
  848.       o7460 = 0
  849. 11608 For i6729 = 1 To w7427 Step 1
  850.         Get 1, i6729, t28_5162 '! 130 bytes
  851.         If t28_5162.w3 = User.UserId Then
  852.           o7460 = - 1
  853.           Inc t28_5162.b5
  854.           t28_5162.s56 = User.From
  855.           t28_5162.s86 = User.SecLevel
  856.           t28_5162.s31 = User.Alias
  857.           t28_5162.w106 = t28_5162.w106 + w6739
  858.           t28_5162.b113 = t28_5162.b113 + b6737
  859.           t28_5162.b114 = t28_5162.b114 + b6738
  860.           t28_5162.w115 = t28_5162.w115 + w6741
  861.           t28_5162.b117 = t28_5162.b117 + b6748
  862.           t28_5162.s96 = s6749
  863.           t28_5162.s101 = s6753
  864.           t28_5162.s108 = s6743
  865.           t28_5162.o121 = t27_5036.o119
  866.           If t27_5036.o121 Then
  867.             t28_5162.o125 = - 1
  868.           End If
  869. 11994     If t27_5036.s120 = "D" Then
  870.             Inc t28_5162.b122
  871.           Else
  872. 12033       If t27_5036.s120 = "E" Then
  873.               Inc t28_5162.b124
  874.             Else
  875. 12072         Inc t28_5162.b123
  876.             End If
  877.           End If
  878. 12082     t28_5162.s126 = t27_5036.s120
  879.           Put 1, i6729, t28_5162 '! 130 bytes
  880.           GoTo 12146
  881.         End If
  882. 12123 Next
  883. 12146 If Not o7460 Then
  884.         t28_5162.s0 = "G~J"
  885.         t28_5162.w3 = User.UserId
  886.         t28_5162.b5 = 0
  887.         t28_5162.s6 = User.Name
  888.         t28_5162.s31 = User.Alias
  889.         t28_5162.s56 = User.From
  890.         t28_5162.s86 = User.SecLevel
  891.         t28_5162.w106 = 0
  892.         t28_5162.b113 = 0
  893.         t28_5162.b114 = 0
  894.         t28_5162.s108 = ""
  895.         t28_5162.w115 = 0
  896.         t28_5162.b117 = 0
  897.         t28_5162.b122 = 0
  898.         t28_5162.b123 = 0
  899.         t28_5162.b124 = 0
  900.         t28_5162.o125 = t27_5036.o121
  901.         t28_5162.s127 = ""
  902.         Inc t28_5162.b5
  903.         If o7463 Then
  904.           t28_5162.o120 = - 1
  905.         Else
  906. 12447     t28_5162.o120 = 0
  907.         End If
  908. 12457   t28_5162.w106 = t28_5162.w106 + w6739
  909.         t28_5162.b113 = t28_5162.b113 + b6737
  910.         t28_5162.b114 = t28_5162.b114 + b6738
  911.         t28_5162.w115 = t28_5162.w115 + w6741
  912.         t28_5162.b117 = t28_5162.b117 + b6748
  913.         t28_5162.s96 = s6749
  914.         t28_5162.s101 = s6753
  915.         t28_5162.s108 = s6743
  916.         If t27_5036.s120 = "D" Then
  917.           Inc t28_5162.b122
  918.         Else
  919. 12665     If t27_5036.s120 = "E" Then
  920.             Inc t28_5162.b124
  921.           Else
  922. 12704       Inc t28_5162.b123
  923.           End If
  924.         End If
  925. 12714   t28_5162.o121 = t27_5036.o119
  926.         t28_5162.s126 = t27_5036.s120
  927.         Put 1, w7427 + 1, t28_5162 '! 130 bytes
  928.       End If
  929. 12771 Close 1
  930.       If t27_5036.s120 <> "D" Then
  931.         Return 
  932.       End If
  933. 12800 s6757 = t27_5036.s5
  934.       s7452 = t27_5036.s85
  935.       If t27_5036.o121 Then
  936.         o6400 = 0
  937.       Else
  938. 12855   GoSub 4208
  939.       End If
  940. 12861 If o6400 Then
  941.         Return 
  942.       End If
  943. 12873 Open s6985 + "DROPS.LOG" For Random As 1 Len = 90 '! This value should probably be replaced with a "SizeOf" expression
  944.       w7427 = LOF(1)
  945.       o7476 = 0
  946. 12939 For i6729 = 1 To w7427 Step 1
  947.         Get 1, i6729, t26_5292 '! 90 bytes
  948.         If t26_5292.w0 = User.UserId Then
  949.           o7476 = - 1
  950.           Inc t26_5292.w84
  951.           Put 1, i6729, t26_5292 '! 90 bytes
  952.           GoTo 13089
  953.         End If
  954. 13066 Next
  955. 13089 If Not o7476 Then
  956.         t26_5292.w0 = User.UserId
  957.         t26_5292.s2 = User.Name
  958.         t26_5292.s27 = User.Alias
  959.         t26_5292.s52 = User.From
  960.         t26_5292.w84 = 1
  961.         t26_5292.d82 = dt6394.D '! 2 bytes
  962.         Put 1, LOF(1) + 1, t26_5292 '! 90 bytes
  963.       End If
  964. 13220 Close 1
  965.       Return 
  966. 13226 StatusWrite " - Creating Single display", 1213417543, 1213417543, 1213417543
  967.       StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  968.       w7435 = 0
  969.       w7437 = 0
  970.       w7439 = 0
  971.       w7441 = 0
  972.       w7443 = 0
  973.       w7433 = 0
  974.       w7445 = 0
  975.       w7449 = 0
  976.       w7447 = 0
  977.       b7451 = 0
  978.       Open s7001 For Output As 1
  979.       If s7477 = "Y" Then
  980.         If Exists(Trim(s6993)) Then
  981.           Open Trim(s6993) For Input As 2
  982. 13432     Do Until EOF(2)
  983.             Input #2, s5383
  984.             Print #1, s5383
  985.           Loop
  986. 13465     Close 2
  987.           Print #1, "@07@@0F@                    @0D@╔════════════════════════════════╗"
  988.         Else
  989. 13486     Print #1, "@CLS@@07@@0F@                    @0D@╔════════════════════════════════╗"
  990.         End If
  991. 13496 Else
  992. 13502   Print #1, "@CLS@@07@@0F@                    @0D@╔════════════════════════════════╗"
  993.       End If
  994. 13512 Print #1, "@0F@                    @0D@║ @0A@Who Visited Today Deluxe v1.3 @0D@ ║@07@"
  995.       Print #1, "@0F@                    @0D@╚═════════Detailed Listing═══════╝    @0F@N@07@ew, @0F@R@07@egistered─────┐"
  996.       Print #1, "@0A@ @07@┌─Node                     User Left: @0F@N@07@ormally, @0F@E@07@xceeded time, @0F@D@07@rop Carr────┐│"
  997.       If UCase(s6989) = "TIMEOFF" Then
  998.         Print #1, "@0E@ @4F@" + Chr(25) + " User               All the way from   TimeOff Min  Baud  DLs ULs MSG DRs  " + Chr(25) + Chr(25) + "@07@"
  999.       Else
  1000. 13578   Print #1, "@0E@ @4F@" + Chr(25) + " User               All the way from    TimeOn Min  Baud  DLs ULs MSG DRs  " + Chr(25) + Chr(25) + "@07@"
  1001.       End If
  1002. 13588 Open s6985 + "SINGLE.LOG" For Random As 2 Len = 126 '! This value should probably be replaced with a "SizeOf" expression
  1003. 13638 For i6729 = 1 To LOF(2) Step 1
  1004.         Get 2, i6729, t27_5036 '! 126 bytes
  1005.         s6757 = t27_5036.s5
  1006.         s7452 = t27_5036.s85
  1007.         If t27_5036.o121 Then
  1008.           o6400 = 0
  1009.         Else
  1010. 13758     GoSub 4208
  1011.         End If
  1012. 13764   If Not o6400 Then
  1013.           s6757 = ""
  1014.           s7452 = ""
  1015.           If t27_5036.o118 Then
  1016.             s6733 = s6619(20) + "N"
  1017.             Inc b7451
  1018.           Else
  1019. 13858       If t27_5036.o119 Then
  1020.               s6733 = s6619(21) + "R"
  1021.             Else
  1022. 13915         s6733 = ""
  1023.             End If
  1024.           End If
  1025. 13924     If UCase(Trim(s6981)) = "ALIAS" Then
  1026.             s6757 = s6619(2) + t27_5036.s30
  1027.             If Len(Trim(s6757)) = 4 Then
  1028.               s6757 = s6619(2) + "(Alias not set)"
  1029.             End If
  1030. 14044     Else
  1031. 14050       s6757 = s6619(1) + t27_5036.s5
  1032.           End If
  1033. 14091     GoSub 19828
  1034.           If UCase(s6989) = "TIMEOFF" Then
  1035.             s6761 = t27_5036.s100
  1036.           Else
  1037. 14137       s6761 = t27_5036.s95
  1038.           End If
  1039. 14151     s6619(0) = s6619(22)
  1040.           If t27_5036.s120 = "N" Then
  1041.             Inc w7445
  1042.           Else
  1043. 14235       If t27_5036.s120 = "D" Then
  1044.               Inc w7447
  1045.               s6619(0) = s6619(23)
  1046.             Else
  1047. 14319         If t27_5036.s120 = "E" Then
  1048.                 Inc w7449
  1049.                 s6619(0) = s6619(24)
  1050.               End If
  1051.             End If
  1052.           End If
  1053. 14397     Print #1, s6619(8); FormatNumber(t27_5036.b117, "##"); " "; Pad(Left(s6757, 22), 22); " "; s6619(4); Pad(Left(t27_5036.s55, 20), 20); " "; s6619(6); Pad(s6761, 6); s6619(9); FormatNumber(t27_5036.w105, "###"); "  "; s6619(7); Pad(t27_5036.s107, 5); " "; s6619(13); FormatNumber(t27_5036.b112, "###"); " " + s6619(12); FormatNumber(t27_5036.b113, "###"); "  "; s6619(14); FormatNumber(t27_5036.w114, "##"); "  " + s6619(15); FormatNumber(t27_5036.b116, "##"); "  "; s6619(0); Pad(t27_5036.s120, 1); s6733
  1054.           w7435 = w7435 + t27_5036.b112
  1055.           w7437 = w7437 + t27_5036.b113
  1056.           w7443 = w7443 + t27_5036.w105
  1057.           w7439 = w7439 + t27_5036.w114
  1058.           w7441 = w7441 + t27_5036.b116
  1059.           Inc w7433
  1060.         End If
  1061. 15046 Next
  1062. 15069 If w7433 = 0 Then
  1063.         Print #1, ""
  1064.         Print #1, Tab(23); "@0C@No caller information available yet."
  1065.         Print #1, ""
  1066.       End If
  1067. 15122 Print #1, "@04@╔══════════════════════════≡@0F@ SUMMARY for "; FormatDate(dt6394.D, "mm/dd/yy"); " @04@≡═══════════════════════════╗"
  1068.       Print #1, "║@0A@"; Tab(8); "Tot Calls: "; FormatNumber(w7433, "####"); Tab(29); "@04@│@0A@  DLs   ULs   MSGs   DOORs  @04@│@0A@  Drop Carriers : "; FormatNumber(w7447, "####"); "  @04@║"
  1069.       Print #1, "║@0A@"; Tab(8); "Sys Usage: "; FormatNumber(w7443, "####"); " @02@mins @04@│@0A@ "; FormatNumber(w7435, "####"); "  "; FormatNumber(w7437, "####"); "   "; FormatNumber(w7439, "####"); "    "; FormatNumber(w7441, "####"); "  @04@│@0A@  Normal Logoffs: "; FormatNumber(w7445, "####"); "  @04@║"
  1070.       Print #1, "║@0A@"; Tab(8); "New Users: "; FormatNumber(b7451, "####"); Tab(29); "@04@│@0A@ "; Tab(66); "@04@│@0A@  Exceeded Time : "; FormatNumber(w7449, "####"); "  @04@║"
  1071.       If s7477 = "Y" Then
  1072.         Print #1, "╚═══════════════════════════════════════════════════════════@08@(C) 94-96 KeySoft@04@═╝"
  1073.       Else
  1074. 15519   Print #1, "╚════════════════════════════@84@ Unregistered Copy @04@════════════@08@(C) 94-96 KeySoft@04@═╝"
  1075.       End If
  1076. 15529 If s7477 = "Y" Then
  1077.         If Exists(Trim(s6997)) Then
  1078.           Open s6997 For Input As 3
  1079. 15583     Do Until EOF(3)
  1080.             Input #3, s5383
  1081.             Print #1, s5383
  1082.           Loop
  1083. 15616     Close 3
  1084.         Else
  1085. 15627     Print #1, "@PAUSE@"
  1086.         End If
  1087. 15637 Else
  1088. 15643   Print #1, "@PAUSE@"
  1089.       End If
  1090. 15653 Close 1
  1091.       Close 2
  1092.       Return 
  1093. 15664 w7435 = 0
  1094.       w7437 = 0
  1095.       w7439 = 0
  1096.       w7441 = 0
  1097.       w7443 = 0
  1098.       w7433 = 0
  1099.       w7445 = 0
  1100.       w7449 = 0
  1101.       w7447 = 0
  1102.       b7451 = 0
  1103.       Open s7005 For Output As 1
  1104.       If s7477 = "Y" Then
  1105.         If Exists(Trim(s6993)) Then
  1106.           Open s6993 For Input As 2
  1107. 15797     Do Until EOF(2)
  1108.             Input #2, s5383
  1109.             Print #1, s5383
  1110.           Loop
  1111. 15830     Close 2
  1112.           Print #1, "@07@@0F@                    @0D@╔════════════════════════════════╗"
  1113.         Else
  1114. 15851     Print #1, "@CLS@@07@@0F@                    @0D@╔════════════════════════════════╗"
  1115.         End If
  1116. 15861 Else
  1117. 15867   Print #1, "@CLS@@07@@0F@                    @0D@╔════════════════════════════════╗"
  1118.       End If
  1119. 15877 Print #1, "@0F@                    @0D@║ @0A@Who Visited Today Deluxe v1.3 @0D@ ║@07@"
  1120.       Print #1, "@0F@                    @0D@╚══════Consolidated Listing══════╝    @0F@N@07@ew, @0F@R@07@egistered─────┐"
  1121.       Print #1, "@0A@ @07@┌─# of Calls               Last Logoff: @0F@N@07@ormal, @0F@E@07@xceeded time, @0F@D@07@rop Carr────┐│"
  1122.       If UCase(s6989) = "TIMEOFF" Then
  1123.         Print #1, "@4F@ " + Chr(25) + " User               All the way from   TimeOff Min  Baud  DLs ULs MSG DRs  " + Chr(25) + Chr(25) + "@07@"
  1124.       Else
  1125. 15943   Print #1, "@4F@ " + Chr(25) + " User               All the way from    TimeOn Min  Baud  DLs ULs MSG DRs  " + Chr(25) + Chr(25) + "@07@"
  1126.       End If
  1127. 15953 Open s6985 + "COMBINED.LOG" For Random As 2 Len = 130 '! This value should probably be replaced with a "SizeOf" expression
  1128.       w7461 = LOF(2)
  1129.       If w7461 > 1 Then
  1130.         GoSub 19320
  1131.       End If
  1132. 16010 StatusWrite " - Creating Double display", 1213417543, 1213417543, 1213417543
  1133.       StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  1134. 16104 For i6729 = 1 To w7461 Step 1
  1135.         If w7461 > 1 Then
  1136.           i6731 = SortNext
  1137.         Else
  1138. 16183     i6731 = 1
  1139.         End If
  1140. 16190   If i6731 <> - 1 Then
  1141.           Get 2, i6731, t28_5162 '! 130 bytes
  1142.           If t28_5162.s0 = "G~J" Then
  1143.             s6757 = t28_5162.s6
  1144.             s7452 = t28_5162.s86
  1145.             If t28_5162.o125 Then
  1146.               o6400 = 0
  1147.             Else
  1148. 16296         GoSub 4208
  1149.             End If
  1150. 16302       If Not o6400 Then
  1151.               s6757 = ""
  1152.               s7452 = ""
  1153.               If t28_5162.o120 Then
  1154.                 s6733 = s6619(20) + "N"
  1155.                 Inc b7451
  1156.               Else
  1157. 16396           If t28_5162.o121 Then
  1158.                   s6733 = s6619(21) + "R"
  1159.                 Else
  1160. 16453             s6733 = ""
  1161.                 End If
  1162.               End If
  1163. 16462         If t28_5162.s126 = "N" Then
  1164.                 s6619(0) = s6619(22)
  1165.               Else
  1166. 16540           If t28_5162.s126 = "D" Then
  1167.                   s6619(0) = s6619(23)
  1168.                 Else
  1169. 16618             If t28_5162.s126 = "E" Then
  1170.                     s6619(0) = s6619(24)
  1171.                   End If
  1172.                 End If
  1173.               End If
  1174. 16690         If UCase(Trim(s6981)) = "ALIAS" Then
  1175.                 s6757 = s6619(2) + t28_5162.s31
  1176.                 If Len(Trim(s6757)) = 4 Then
  1177.                   s6757 = s6619(2) + "(Alias not set)"
  1178.                 End If
  1179. 16810         Else
  1180. 16816           s6757 = s6619(1) + t28_5162.s6
  1181.               End If
  1182. 16857         GoSub 19828
  1183.               If UCase(s6989) = "TIMEOFF" Then
  1184.                 s6761 = t28_5162.s101
  1185.               Else
  1186. 16903           s6761 = t28_5162.s96
  1187.               End If
  1188. 16917         Print #1, s6619(25); FormatNumber(t28_5162.b5, "##"); " "; Pad(Left(s6757, 22), 22); " "; s6619(4); Pad(Left(t28_5162.s56, 20), 20); " "; s6619(6); Pad(s6761, 6); s6619(9); FormatNumber(t28_5162.w106, "###"); "  "; s6619(7); Pad(t28_5162.s108, 5); " "; s6619(13); FormatNumber(t28_5162.b113, "###"); " " + s6619(12); FormatNumber(t28_5162.b114, "###"); "  "; s6619(14); FormatNumber(t28_5162.w115, "##"); "  " + s6619(15); FormatNumber(t28_5162.b117, "##"); "  "; s6619(0); Pad(t28_5162.s126, 1); s6733
  1189.               w7435 = w7435 + t28_5162.b113
  1190.               w7437 = w7437 + t28_5162.b114
  1191.               w7443 = w7443 + t28_5162.w106
  1192.               w7439 = w7439 + t28_5162.w115
  1193.               w7441 = w7441 + t28_5162.b117
  1194.               w7433 = w7433 + t28_5162.b5
  1195.               w7447 = w7447 + t28_5162.b122
  1196.               w7445 = w7445 + t28_5162.b123
  1197.               w7449 = w7449 + t28_5162.b124
  1198.             End If
  1199.           End If
  1200.         End If
  1201. 17644 Next
  1202. 17667 If w7433 = 0 Then
  1203.         Print #1, ""
  1204.         Print #1, Tab(23); "@0C@No caller information available yet."
  1205.         Print #1, ""
  1206.       End If
  1207. 17720 Print #1, "@04@╔══════════════════════════≡@0F@ SUMMARY for "; FormatDate(dt6394.D, "mm/dd/yy"); " @04@≡═══════════════════════════╗"
  1208.       Print #1, "║@0A@"; Tab(8); "Tot Calls: "; FormatNumber(w7433, "####"); Tab(29); "@04@│@0A@  DLs   ULs   MSGs   DOORs  @04@│@0A@  Drop Carriers : "; FormatNumber(w7447, "####"); "  @04@║"
  1209.       Print #1, "║@0A@"; Tab(8); "Sys Usage: "; FormatNumber(w7443, "####"); " @02@mins @04@│@0A@ "; FormatNumber(w7435, "####"); "  "; FormatNumber(w7437, "####"); "   "; FormatNumber(w7439, "####"); "    "; FormatNumber(w7441, "####"); "  @04@│@0A@  Normal Logoffs: "; FormatNumber(w7445, "####"); "  @04@║"
  1210.       Print #1, "║@0A@"; Tab(8); "New Users: "; FormatNumber(b7451, "####"); Tab(29); "@04@│@0A@ "; Tab(66); "@04@│@0A@  Exceeded Time : "; FormatNumber(w7449, "####"); "  @04@║"
  1211.       If s7477 = "Y" Then
  1212.         Print #1, "╚═══════════════════════════════════════════════════════════@08@(C) 94-96 KeySoft@04@═╝"
  1213.       Else
  1214. 18117   Print #1, "╚════════════════════════════@84@ Unregistered Copy @04@════════════@08@(C) 94-96 KeySoft@04@═╝"
  1215.       End If
  1216. 18127 If s7477 = "Y" Then
  1217.         If Exists(Trim(s6997)) Then
  1218.           Open Trim(s6997) For Input As 3
  1219. 18184     Do Until EOF(3)
  1220.             Input #3, s5383
  1221.             Print #1, s5383
  1222.           Loop
  1223. 18217     Close 3
  1224.         Else
  1225. 18228     Print #1, "@PAUSE@"
  1226.         End If
  1227. 18238 Else
  1228. 18244   Print #1, "@PAUSE@"
  1229.       End If
  1230. 18254 Close 1
  1231.       Close 2
  1232.       Return 
  1233. 18265 w7433 = 0
  1234.       Open s7009 For Output As 1
  1235.       If Exists(s6985 + "DROP.HDR") Then
  1236.         Open s6985 + "DROP.HDR" For Input As 2
  1237. 18336   Do Until EOF(2)
  1238.           Input #2, s5383
  1239.           Print #1, s5383
  1240.         Loop
  1241. 18369   Close 2
  1242.       Else
  1243. 18380   Print #1, "@CLS@@07@@0F@                      @0D@╔════════════════════════════════╗"
  1244.         Print #1, "@0F@                      @0D@║ @0A@Who Visited Today Deluxe v1.3 @0D@ ║@07@"
  1245.         Print #1, "@0F@                      @0D@╚════════════════════════════════╝@0F@"
  1246.         Print #1, Tab(34); "@0C@DROP CARRIERS"
  1247.       End If
  1248. 18429 Print #1, " @4F@    User                  Calling From                        Times Dropped @07@ "
  1249.       Open s6985 + "DROPS.LOG" For Random As 2 Len = 90 '! This value should probably be replaced with a "SizeOf" expression
  1250.       w7461 = LOF(2)
  1251.       If w7461 > 1 Then
  1252.         GoSub 19622
  1253.       End If
  1254. 18496 StatusWrite " - Creating Drop Carrier display", 1213417543, 1213417543, 1213417543
  1255.       StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  1256. 18590 For i6729 = 1 To w7461 Step 1
  1257.         i6731 = SortPrev
  1258.         If i6731 <> - 1 Or w7461 = 1 Then
  1259.           If w7461 = 1 Then
  1260.             i6731 = 1
  1261.           End If
  1262. 18698     Get 2, i6731, t26_5292 '! 90 bytes
  1263.           If t26_5292.w84 > b7478 And t26_5292.s89 <> "D" Then
  1264.             s6757 = t26_5292.s2
  1265.             GoSub 4427
  1266.             If Not o6400 Then
  1267.               If UCase(Trim(s6981)) = "ALIAS" Then
  1268.                 s6757 = s6619(2) + t26_5292.s27
  1269.                 If Len(Trim(s6757)) = 4 Then
  1270.                   s6757 = s6619(2) + "(Alias not set)"
  1271.                 End If
  1272. 18907         Else
  1273. 18913           s6757 = s6619(1) + t26_5292.s2
  1274.               End If
  1275. 18954         Print #1, Tab(6); Pad(Left(s6757, 25), 26); s6619(4); Pad(Left(t26_5292.s52, 25), 30); s6619(23); "@0F@"; "           "; FormatNumber(t26_5292.w84, "##")
  1276.               Inc w7433
  1277.               If w7433 = 10 Then
  1278.                 GoTo 19141
  1279.               End If
  1280.             End If
  1281.           End If
  1282.         End If
  1283. 19118 Next
  1284. 19141 If w7433 = 0 Then
  1285.         Print #1, ""
  1286.         Print #1, Tab(20); "@8E@WOW! @0F@- No one dropped carrier yet"
  1287.         Print #1, ""
  1288.         Print #1, "@04@ "; String(76, "─")
  1289.       Else
  1290. 19222   Get 2, 1, t26_5292 '! 90 bytes
  1291.         Print #1, "@04@ "; String(23, "─"); " Tracking Drops Since "; FormatDate(t26_5292.d82, "mm/dd/yy"); " "; String(22, "─")
  1292.       End If
  1293. 19299 Print #1, "@PAUSE@"
  1294.       Close 1
  1295.       Close 2
  1296.       Return 
  1297. 19320 StatusWrite " - Sorting calls for Combined display", 1213417543, 1213417543, 1213417543
  1298.       StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  1299.       SortStart 
  1300. 19417 For i6729 = 1 To w7461 Step 1
  1301.         Get 2, i6729, t28_5162 '! 130 bytes
  1302.         If UCase(s6989) = "TIMEOFF" Then
  1303.           s6761 = Trim(Left(t28_5162.s101, 2) + Right(t28_5162.s101, 2))
  1304.         Else
  1305. 19547     s6761 = Trim(Left(t28_5162.s96, 2) + Right(t28_5162.s96, 2))
  1306.         End If
  1307. 19586   SortAdd s6761, i6729
  1308.       Next
  1309. 19621 Return 
  1310. 19622 StatusWrite " - Sorting calls for Drop Carrier display", 1213417543, 1213417543, 1213417543
  1311.       StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  1312.       SortStart 
  1313. 19719 For i6729 = 1 To w7461 Step 1
  1314.         Get 2, i6729, t26_5292 '! 90 bytes
  1315.         SortAdd Str(t26_5292.w84), i6729
  1316.       Next
  1317. 19827 Return 
  1318. 19828 If b6869 > 0 Then
  1319. 19866   For i6731 = 1 To b6869 Step 1
  1320.           If InStr(UCase(s6757), s6765(i6731)) > 0 Then
  1321.             s6757 = "@07@n/a"
  1322.           End If
  1323. 19972   Next
  1324.       End If
  1325. 19995 If b6974 > 0 Then
  1326. 20033   For i6731 = 1 To b6974 Step 1
  1327.           If InStr(UCase(t27_5036.s55), s6870(i6731)) > 0 Then
  1328.             t27_5036.s55 = "n/a"
  1329.           End If
  1330. 20151   Next
  1331.       End If
  1332. 20174 Return 
  1333.       Catch 10
  1334.         StatusWrite " ! Non Fatal error: Display file 'in use', skipping creation", 1213417543, 1213417543, 1213417543
  1335.         StatusWrite Pad(Pad(" Who Visited Today Deluxe v1.3 - (c) 1995-96, KeySoft, Inc", 74) + Str(Timer - r7465) + " sec", 80), 1, 1, 26
  1336.         Delay 1
  1337. 20268   Reset 
  1338.         StatusClose 
  1339.         If (Exists("LOGOUT1.WCX")) = 0 Then GoTo 20301
  1340.         Chain "LOGOUT1.WCX", ""
  1341. 20301   End 
  1342.       GoTo 20308
  1343. 20308
  1344.