home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / CHGM0195.ZIP / CHGSETUP.WCX (.txt) < prev    next >
Wildcat! WCX  |  1994-12-06  |  34KB  |  1,487 lines

  1. '! Decompiled with wccNosy version 4.20f (freeware)
  2. '! Input File: in.wcx  34153 bytes  12/30/122  04:16:32pm
  3. '! Code Segment Size  :20807 bytes
  4. '! Data Segment Size  :6436 bytes
  5. '! String Segment Size:13346 bytes
  6. '! Compiled with WCC version 4.01
  7.  
  8.       Type Type28
  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 Type27
  20.         s0 As String*1
  21.         s1 As String*7
  22.         s8 As String*8
  23.         s16 As String*5
  24.         s21 As String*10
  25.         s31 As String*25
  26.       End Type
  27.  
  28.       Type Type26
  29.         Filler0(1 To 1) As Byte
  30.         s1 As String*10
  31.       End Type
  32.  
  33.       Dim t4463 As Time
  34.       Dim d4467 As Date
  35.       Dim s4473 As String*1
  36.       Dim l4474 As Long
  37.       Dim i4478 As Integer
  38.       Dim i4480 As Integer
  39.       Dim i4482 As Integer
  40.       Dim b4484 As Byte
  41.       Dim l4485 As Long
  42.       Dim l4489 As Long
  43.       Dim i4493 As Integer
  44.       Dim s4495 As String*1
  45.       Dim s4496 As String*1
  46.       Dim s4497 As String
  47.       Dim s4501 As String
  48.       Dim s4505 As String
  49.       Dim s4509 As String
  50.       Dim s4513 As String
  51.       Dim s4517 As String
  52.       Dim s4521 As String*1
  53.       Dim s4522 As String*4
  54.       Dim s4526 As String*4
  55.       Dim s4530 As String
  56.       Dim s4534 As String*1
  57.       Dim s4535 As String
  58.       Dim s4539 As String
  59.       Dim s4543 As String
  60.       Dim s4547 As String
  61.       Dim s4551 As String
  62.       Dim s4555 As String
  63.       Dim s4559 As String*1
  64.       Dim s4560 As String*1
  65.       Dim b4561 As Byte
  66.       Dim b4562 As Byte
  67.       Dim b4563 As Byte
  68.       Dim b4564 As Byte
  69.       Dim b4565 As Byte
  70.       Dim b4566 As Byte
  71.       Dim s4569 As String
  72.       Dim s4573 As String
  73.       Dim l4577 As Long
  74.       Dim s4581 As String
  75.       Dim i4585 As Integer
  76.       Dim b4587 As Byte
  77.       Dim s4588 As String*9
  78.       Dim s4597 As String*9
  79.       Dim i4606 As Integer
  80.       Dim i4608 As Integer
  81.       Dim s4610 As String
  82.       Dim i4614 As Integer
  83.       Dim s4616 As String*1
  84.       Dim s4617 As String
  85.       Dim s4621 As String*4
  86.       Dim s4625 As String*4
  87.       Dim s4629(0 To 10) As String
  88.       Dim s4673(0 To 10) As String
  89.       Dim r4717(0 To 10) As Real
  90.       Dim i4783(0 To 10) As Integer
  91.       Dim r4805(0 To 10) As Real
  92.       Dim s4871(0 To 10) As String
  93.       Dim s4915(0 To 10) As String
  94.       Dim s4959(0 To 10) As String
  95.       Dim s5003(0 To 10) As String*1
  96.       Dim s5014(0 To 10) As String
  97.       Dim s5058(0 To 10) As String
  98.       Dim s5102(0 To 10) As String
  99.       Dim s5146(0 To 10) As String
  100.       Dim s5190(0 To 10) As String
  101.       Dim s5234(0 To 10) As String
  102.       Dim s5278(0 To 10) As String
  103.       Dim s5322 As String
  104.       Dim s5326 As String
  105.       Dim b5330 As Byte
  106.       Dim s5331 As String
  107.       Dim s5335 As String
  108.       Dim s5339(0 To 39) As String
  109.       Dim t26_5499 As Type26
  110.       Dim s5786(0 To 25) As String*10
  111.       Dim i6046 As Integer
  112.       Dim s6048 As String*1
  113.       Dim i6049 As Integer
  114.       Dim i6051 As Integer
  115.       Dim i6053 As Integer
  116.       Dim s6055 As String*1
  117.       Dim s6056 As String
  118.       Dim t27_6060 As Type27
  119.       Dim mh6116 As MessageHeader
  120.  
  121.       Dim l65232_ As Long
  122.       Dim b65236_ As Byte
  123.       Dim l65237_ As Long
  124.       Dim b65241_ As Byte
  125.       Dim l65242_ As Long
  126.       Dim b65246_ As Byte
  127.       Dim l65247_ As Long
  128.       Dim b65251_ As Byte
  129.       Dim l65252_ As Long
  130.       Dim b65256_ As Byte
  131.       Dim l65257_ As Long
  132.       Dim b65261_ As Byte
  133.       Dim l65262_ As Long
  134.       Dim i65266_ As Integer
  135.       Dim l65268_ As Long
  136.       Dim i65272_ As Integer
  137.       Dim l65274_ As Long
  138.       Dim i65278_ As Integer
  139.       Dim l65280_ As Long
  140.       Dim i65284_ As Integer
  141.       Dim l65286_ As Long
  142.       Dim i65290_ As Integer
  143.       Dim l65292_ As Long
  144.       Dim i65296_ As Integer
  145.       Dim l65298_ As Long
  146.       Dim i65302_ As Integer
  147.       Dim l65304_ As Long
  148.       Dim i65308_ As Integer
  149.       Dim l65310_ As Long
  150.       Dim i65314_ As Integer
  151.       Dim l65316_ As Long
  152.       Dim i65320_ As Integer
  153.       Dim l65322_ As Long
  154.       Dim i65326_ As Integer
  155.       Dim l65328_ As Long
  156.       Dim i65332_ As Integer
  157.       Dim l65334_ As Long
  158.       Dim i65338_ As Integer
  159.       Dim l65340_ As Long
  160.       Dim i65344_ As Integer
  161.       Dim l65346_ As Long
  162.       Dim i65350_ As Integer
  163.       Dim l65352_ As Long
  164.       Dim i65356_ As Integer
  165.       Dim l65358_ As Long
  166.       Dim i65362_ As Integer
  167.       Dim l65364_ As Long
  168.       Dim i65368_ As Integer
  169.       Dim l65370_ As Long
  170.       Dim i65374_ As Integer
  171.       Dim l65376_ As Long
  172.       Dim i65380_ As Integer
  173.       Dim l65382_ As Long
  174.       Dim i65386_ As Integer
  175.       Dim l65388_ As Long
  176.       Dim i65392_ As Integer
  177.       Dim l65394_ As Long
  178.       Dim i65398_ As Integer
  179.       Dim l65400_ As Long
  180.       Dim i65404_ As Integer
  181.       Dim l65406_ As Long
  182.       Dim i65410_ As Integer
  183.       Dim l65412_ As Long
  184.       Dim i65416_ As Integer
  185.       Dim l65418_ As Long
  186.       Dim i65422_ As Integer
  187.       Dim l65424_ As Long
  188.       Dim i65428_ As Integer
  189.       Dim l65430_ As Long
  190.       Dim i65434_ As Integer
  191.       Dim l65436_ As Long
  192.       Dim i65440_ As Integer
  193.       Dim l65442_ As Long
  194.       Dim i65446_ As Integer
  195.       Dim l65448_ As Long
  196.       Dim i65452_ As Integer
  197.       Dim l65454_ As Long
  198.       Dim i65458_ As Integer
  199.       Dim l65460_ As Long
  200.       Dim i65464_ As Integer
  201.       Dim l65466_ As Long
  202.       Dim i65470_ As Integer
  203.       Dim l65472_ As Long
  204.       Dim i65476_ As Integer
  205.       Dim l65478_ As Long
  206.       Dim i65482_ As Integer
  207.       Dim l65484_ As Long
  208.       Dim i65488_ As Integer
  209.       Dim l65490_ As Long
  210.       Dim i65494_ As Integer
  211.       Dim l65496_ As Long
  212.       Dim i65500_ As Integer
  213.       Dim l65502_ As Long
  214.       Dim i65506_ As Integer
  215.       Dim l65508_ As Long
  216.       Dim i65512_ As Integer
  217.       Dim l65514_ As Long
  218.       Dim i65518_ As Integer
  219.       Dim l65520_ As Long
  220.       Dim i65524_ As Integer
  221.       Dim l65526_ As Long
  222.       Dim i65530_ As Integer
  223.       Dim s65532_ As String
  224.  
  225.       s5331 = "TMPCFG." + Str(Node)
  226.       s5335 = Environ("WCHOME") + "\SECLEVEL.DAT"
  227.       s4521 = "y"
  228.       CurrentDate d4467
  229.       SetIdleTimeout 5
  230.       s5339(1) = ";-- Last Changed on " + FormatDate(d4467, "mm/dd/yy") + ":   DO NOT REMOVE THIS LINE --------------------"
  231.       s5339(2) = "Line 1:  Name of BBS"
  232.       s5339(3) = "Line 2:  Charge Master Reg# (9999 if not registered)"
  233.       s5339(4) = "Line 3:  Code assigned to your BBS by Dragon BBS      (CALL THEM to get this)"
  234.       s5339(5) = "Line 4:  Key assigned BY Dragon BBS to activate online check processing "
  235.       s5339(6) = "Line 5:  Conference welcome/reciept messages will be generated in"
  236.       s5339(7) = "Line 6:  Access Level for 'TABS10' code (as defined in MAKEWILD)"
  237.       s5339(8) = "Line 7:  Days to extend expiration date for TABS10 Level"
  238.       s5339(9) = "Line 8:  Access Level for 'TABS25' code (as defined in MAKEWILD)"
  239.       s5339(10) = "Line 9:  Days to extend expiration date for TABS25 Level"
  240.       s5339(11) = "Line 10: Credit Cards to Accept (see below)"
  241.       s5339(12) = "Line 11: Time to add to uses online time when entering door"
  242.       s5339(13) = "Line 12: Use Advanced Checking on Credit Card Numbers (Y or N)"
  243.       s5339(14) = "Line 13: Sales Tax to apply to Charges (0 if none)"
  244.       s5339(15) = "Line 14: Level Name, Cost, Days to add, $ to Add, Auto Upg, Taxable, Short Desc"
  245.       s5339(16) = "              ^--------^--------^----------^-----------^---------------^"
  246.       s5339(17) = "                                     |"
  247.       s5339(18) = "                                     |  (expanded explaination)"
  248.       s5339(19) = "                                     v"
  249.       s5339(20) = "Sec Level  : This is the *exact* level name as defined in MAKEWILD"
  250.       s5339(21) = "Level Cost : Do not include the decimal (eg: $25 will be 2500)"
  251.       s5339(22) = "Days to add: Number of days to add to the expiration date of the member"
  252.       s5339(23) = "$ to add   : $ amt to put in the users 'Acct balance' field in Wildcat"
  253.       s5339(24) = "Auto Upgrad: Should CM automatically upgrade user to this level"
  254.       s5339(25) = "Taxable    : Should Sales Tax be applied to this purchase?"
  255.       s5339(26) = "Short Desc : 65 characters desc will be displayed to the user online"
  256.       s5339(27) = ""
  257.       s5339(28) = "...There can be up to 10 Subscription levels defined, starting on Line 13)"
  258.       s5339(29) = "   The Security level must be the same Name you define in MAKEWILD."
  259.       s5339(30) = ""
  260.       s5339(31) = "Charge Method Codes (Line #10)"
  261.       s5339(32) = "==================="
  262.       s5339(33) = "Line #10 basically tells Charge Master what credit cards to accept. It"
  263.       s5339(34) = "also indicates if TABS or Checks Online! is available as a subscription"
  264.       s5339(35) = "method.  Following are the codes:"
  265.       s5339(36) = "A - American Express        E - JCB"
  266.       s5339(37) = "B - MasterCard              F - TABS"
  267.       s5339(38) = "C - Visa                    G - Diner"
  268.       s5339(39) = "D - Discover"
  269.       If UCase(ParamStr(1)) = "CHECKTABS" Or UCase(ParamStr(1)) = "/CHECKTABS" Then
  270.       Else
  271.  1332   If Exists(ProgPath + "CHGMAST.CFG") Then
  272.           GoSub 2182
  273.         Else
  274.  1363     s4497 = MakeWild.BBSName
  275.           s4501 = "99999"
  276.           s4513 = "0"
  277.           s4517 = "5"
  278.         End If
  279.  1404   If Exists(s5335) Then
  280.           GoSub 4148
  281.         End If
  282.  1423   GoSub 4358
  283.         GoSub 4755
  284.         Do
  285.  1435     GoSub 5034
  286.           s65532_ = UCase(s4495)
  287.           If s65532_ = "A" Then
  288.             GoSub 6785
  289.           Else
  290.  1483       If s65532_ = "B" Then
  291.               GoSub 8113
  292.             Else
  293.  1512         If s65532_ = "C" Then
  294.                 GoSub 9121
  295.               Else
  296.  1541           If s65532_ = "D" Then
  297.                   GoSub 9630
  298.                 Else
  299.  1570             If s65532_ = "E" Then
  300.                     GoSub 10687
  301.                   Else
  302.  1599               If s65532_ = "F" Then
  303.                       GoSub 11081
  304.                     Else
  305.  1628                 If s65532_ = "G" Then
  306.                         GoSub 13144
  307.                       Else
  308.  1657                   If s65532_ = "H" Then
  309.                           GoSub 13538
  310.                           GoTo 1686
  311.                         End If
  312.                       End If
  313.                     End If
  314.                   End If
  315.                 End If
  316.               End If
  317.             End If
  318.           End If
  319.  1686   Loop Until UCase(s4495) = "Q"
  320.         If s4521 = "y" Then
  321.           Print "@07@@NOPAUSE@"
  322.  1757     For i4482 = 5 To 23 Step 1
  323.             Locate i4482, 1
  324.             Print String(79, "▒")
  325.           Next
  326.  1854     Print "@1A@"
  327.           Locate 10, 15
  328.           Print "╔"; String(47, "═"); "╗";
  329.  1919     For i4482 = 11 To 14 Step 1
  330.             Locate i4482, 15
  331.             Print "@1A@║"; Tab(63); "║"
  332.           Next
  333.  2025     Locate 15, 15
  334.           Print "@1A@╚"; String(47, "═"); "╝"
  335.           Locate 11, 27
  336.           Print "@1F@Update Configuration Now?"
  337.           Locate 13, 23
  338.           Print "@3F@ Y@3E@es @1A@ Save"
  339.           Locate 13, 40
  340.           Print "@3F@ N@3E@o @1A@ Don't Save"
  341.           Do
  342.  2108       s4496 = InKey(1213417543)
  343.           Loop Until InStr("YN", UCase(s4496)) > 0
  344.         End If
  345.  2148   If UCase(s4496) = "Y" Then
  346.           GoSub 18354
  347.         End If
  348.  2176   GoTo 19320
  349.  2182   If Exists(ProgPath + "CHGMAST.CFG") Then
  350.           Open ProgPath + "CHGMAST.CFG" For Input As 1
  351.           Input #1, s4573
  352.           Input #1, l4577
  353.           Input #1, s4581
  354.           Input #1, i4585
  355.           Input #1, b4587
  356.           Input #1, s4588
  357.           Input #1, i4606
  358.           Input #1, s4597
  359.           Input #1, i4608
  360.           Input #1, s4610
  361.           Input #1, i4614
  362.           Input #1, s4616
  363.           Input #1, s4617
  364.           i4480 = 0
  365.  2335     Do Until EOF(1) Or Left(s4629(i4480), 1) = ";" Or Left(s4629(i4480), 1) = "-"
  366.             i4480 = i4480 + 1
  367.             Input #1, s4629(i4480)
  368.           Loop
  369.  2481     If i4480 > 1 Then
  370.             i4493 = i4480 - 1
  371.           End If
  372.  2510
  373.  2534     For i4480 = 1 To i4493 Step 1
  374.             b4561 = InStr(s4629(i4480), ",")
  375.             b4562 = InStr(b4561 + 1, s4629(i4480), ",")
  376.             b4563 = InStr(b4562 + 1, s4629(i4480), ",")
  377.             b4564 = InStr(b4563 + 1, s4629(i4480), ",")
  378.             b4565 = InStr(b4564 + 1, s4629(i4480), ",")
  379.             b4566 = InStr(b4565 + 1, s4629(i4480), ",")
  380.             s4673(i4480) = Left(s4629(i4480), b4561 - 1)
  381.             r4717(i4480) = Val(Mid(s4629(i4480), b4561 + 1, b4562 - b4561 - 1))
  382.             i4783(i4480) = Val(Mid(s4629(i4480), b4562 + 1, b4563 - b4562 - 1))
  383.             r4805(i4480) = Val(Mid(s4629(i4480), b4563 + 1, b4564 - b4563 - 1))
  384.             s4871(i4480) = UCase(Mid(s4629(i4480), b4564 + 1, b4565 - b4564 - 1))
  385.             s4959(i4480) = UCase(Mid(s4629(i4480), b4565 + 1, b4566 - b4565 - 1))
  386.             s4915(i4480) = Right(s4629(i4480), Len(s4629(i4480)) - b4566)
  387.             s5014(i4480) = s4673(i4480)
  388.             s5058(i4480) = Str(r4717(i4480))
  389.             s5102(i4480) = Str(i4783(i4480))
  390.             s5146(i4480) = Str(r4805(i4480))
  391.             s5190(i4480) = UCase(s4871(i4480))
  392.             s5278(i4480) = UCase(s4959(i4480))
  393.             s5234(i4480) = s4915(i4480)
  394.           Next
  395.  3915     Close 1
  396.         End If
  397.  3920   s4497 = s4573
  398.         s4501 = Str(l4577)
  399.         s4505 = s4581
  400.         s4509 = Str(i4585)
  401.         s4513 = Str(b4587)
  402.         s4517 = Str(i4614)
  403.         s4543 = s4588
  404.         s4547 = s4597
  405.         s4551 = Str(i4606)
  406.         s4555 = Str(i4608)
  407.         s4535 = s4610
  408.         s6048 = s4616
  409.         s4530 = s4617
  410.         If Exists(ProgPath + "RESTRICT.CFG") Then
  411.           Open ProgPath + "RESTRICT.CFG" For Input As 2
  412.           Input #2, s4621
  413.           Input #2, s4625
  414.           Close 2
  415.         End If
  416.  4123   s4522 = s4621
  417.         s4526 = s4625
  418.         Return 
  419.  4148   Open s5335 For Random As 1 Len = 287 '! This value should probably be replaced with a "SizeOf" expression
  420.         i6046 = LOF(1)
  421.  4202   For i4478 = 1 To i6046 Step 1
  422.           If i4478 > 25 Then
  423.             GoTo 4352
  424.           End If
  425.  4273     Get 1, i4478, t26_5499 '! 287 bytes
  426.           s5786(i4478) = t26_5499.s1
  427.         Next
  428.  4352   Close 1
  429.         Return 
  430.  4358   s4473 = "N"
  431.         l4474 = 0
  432.  4401   For i4478 = 1 To Len(s4573) Step 1
  433.           l4485 = l4485 + Asc(Mid(s4573, i4478, 1)) * i4478 + Len(s4573) * 3
  434.         Next
  435.  4523   l4485 = l4485 * Len(s4573) * 2 + Asc(Mid(s4573, 1, 1)) - 8
  436.  4599   For i4478 = 1 To Len(MakeWild.RegString) Step 1
  437.           l4474 = l4474 + Val(Mid(MakeWild.RegString, i4478, 1))
  438.         Next
  439.  4708   l4485 = l4485 + l4474
  440.         If l4485 = l4577 Then
  441.           s4473 = "Y"
  442.         End If
  443.  4754   Return 
  444.  4755   Print "@CLS@@3F@"
  445.         Locate 1, 1
  446.         Print "╔"; String(77, "═"); "╗"
  447.         Locate 2, 1
  448.         Print "║"; Tab(79); "║"
  449.         Locate 3, 1
  450.         Print "║"; Tab(79); "║"
  451.         Locate 4, 1
  452.         Print "╚"; String(77, "═"); "╝"
  453.         Locate 2, 27
  454.         Print "@34@Charge Master SETUP v1.2"
  455.         Locate 3, 22
  456.         Print "(C) 1994 KeySoft, All Rights Reserved"
  457.         Locate 3, 66
  458.         Print "@3F@"; TimeLeft; " min left"
  459.         If s4473 = "N" Then
  460.           Locate 2, 3
  461.           Print "@BE@UNREGISTERED"
  462.         Else
  463.  4995     Locate 2, 3
  464.           Print "@3E@"; s4573
  465.         End If
  466.  5017   Locate 5, 1
  467.         Print "@0E@"
  468.         Return 
  469.  5034   l4489 = Timer
  470.         Print "@07@@NOPAUSE@"
  471.  5073   For i4482 = 5 To 23 Step 1
  472.           Locate i4482, 1
  473.           Print String(79, "▒");
  474.         Next
  475.  5170   Print "@1A@"
  476.         Locate 7, 22
  477.         Print "╔"; String(33, "═"); "╗";
  478.  5235   For i4482 = 8 To 17 Step 1
  479.           Locate i4482, 22
  480.           Print "@1A@║"; Tab(56); "║@07@░░"
  481.         Next
  482.  5341   Locate 18, 22
  483.         Print "@1A@╚"; String(33, "═"); "╝@07@░░"
  484.         Locate 19, 24
  485.         Print String(35, "░")
  486.         Locate 8, 26
  487.         Print "@1F@A@1E@.....General Setup"
  488.         Locate 9, 26
  489.         Print "@1F@B@1E@.....Credit Cards Setup"
  490.         Locate 10, 26
  491.         Print "@1F@C@1E@.....Checks Online! Setup"
  492.         Locate 11, 26
  493.         Print "@1F@D@1E@.....TABS(tm) Setup"
  494.         Locate 12, 26
  495.         Print "@1F@E@1E@.....Edit CHGMAST.CFG file"
  496.         Locate 13, 26
  497.         Print "@1F@F@1E@.....View CHGMAST.TAB file"
  498.         Locate 14, 26
  499.         Print "@1F@G@1E@.....Restrictions"
  500.         Locate 15, 26
  501.         Print "@1F@H@1E@.....Subscription Levels"
  502.         Locate 17, 26
  503.         Print "@1F@Q@1E@.....Quit"
  504.         i4478 = 0
  505.         i4482 = 8
  506.         Locate i4482, 24
  507.         Print "@1C@"; Chr(175)
  508.         Locate i4482, 54
  509.         Print Chr(174)
  510.         Do
  511.  5599     s4495 = InKey(1213417543)
  512.           If s4495 <> "" Then
  513.             s5322 = s4495
  514.             s5326 = s4495
  515.             If s5322 = "P" And Asc(s5326) = 80 Or s5322 = "M" And Asc(s5326) = 77 Then
  516.               i4482 = i4482 + 1
  517.               b5330 = i4482 - 1
  518.               If i4482 = 16 Then
  519.                 i4482 = 17
  520.                 b5330 = 15
  521.               End If
  522.  5765         If i4482 = 18 Then
  523.                 i4482 = 8
  524.                 b5330 = 17
  525.               End If
  526.  5794         Locate b5330, 24
  527.               Print "@1C@ "
  528.               Locate b5330, 54
  529.               Print " "
  530.               Locate i4482, 24
  531.               Print "@1C@"; Chr(175)
  532.               Locate i4482, 54
  533.               Print Chr(174)
  534.             End If
  535.  5877       If s5322 = "K" And Asc(s5326) = 75 Then
  536.               i4482 = i4482 - 1
  537.               b5330 = i4482 + 1
  538.               If i4482 = 7 Then
  539.                 i4482 = 17
  540.                 b5330 = 8
  541.               End If
  542.  5964         If i4482 = 16 Then
  543.                 i4482 = 15
  544.                 b5330 = 17
  545.               End If
  546.  5993         Locate b5330, 24
  547.               Print "@1C@ "
  548.               Locate b5330, 54
  549.               Print " "
  550.               Locate i4482, 24
  551.               Print "@1C@"; Chr(175)
  552.               Locate i4482, 54
  553.               Print Chr(174)
  554.             End If
  555.           End If
  556.  6076     Locate 20, 30
  557.           Print "@1B@@NOPAUSE@Seconds Idle: "; Str(Timer - l4489);
  558.           i4478 = i4478 + 1
  559.           If i4478 = 150 Then
  560.             Locate 22, 20
  561.             Print "@2F@(c) 1994, Keysoft Inc. & Gerard Johnson"
  562.           End If
  563.  6154     If i4478 = 600 Then
  564.             Locate 22, 20
  565.             Print "@5F@Support Board:  PC-HELP! (813) 949-0611"
  566.           End If
  567.  6186     If i4478 = 1100 Then
  568.             Locate 22, 20
  569.             Print "@3F@ AFFORDABLE shareware for the MASSES!  "
  570.           End If
  571.  6218     If i4478 = 1700 Then
  572.             Locate 22, 20
  573.             Print "@4F@Home Board: Top Cat BBS! (813) 930-0611"
  574.           End If
  575.  6250     If Timer - l4489 = 60 Or Timer - l4489 = 120 Or Timer - l4489 = 180 Then
  576.             Locate 22, 20
  577.             Print "@9F@@BELL@  Hey, I'm waiting for you.  Wake up!  "
  578.             i4478 = 1701
  579.           End If
  580.  6338     If i4478 > 2100 Then
  581.             i4478 = 0
  582.           End If
  583.  6360     If Asc(s4495) = 13 Then
  584.             If i4482 = 8 Then
  585.               s4495 = "A"
  586.             End If
  587.  6405       If i4482 = 9 Then
  588.               s4495 = "B"
  589.             End If
  590.  6431       If i4482 = 10 Then
  591.               s4495 = "C"
  592.             End If
  593.  6457       If i4482 = 11 Then
  594.               s4495 = "D"
  595.             End If
  596.  6483       If i4482 = 12 Then
  597.               s4495 = "E"
  598.             End If
  599.  6509       If i4482 = 13 Then
  600.               s4495 = "F"
  601.             End If
  602.  6535       If i4482 = 14 Then
  603.               s4495 = "G"
  604.             End If
  605.  6561       If i4482 = 15 Then
  606.               s4495 = "H"
  607.             End If
  608.  6587       If i4482 = 17 Then
  609.               s4495 = "Q"
  610.             End If
  611.           End If
  612.  6613   Loop Until InStr("ABCDEFGHQ", UCase(s4495)) > 0
  613.         Locate i4482, 24
  614.         Print "@1C@ "
  615.         Locate i4482, 54
  616.         Print " "
  617.         i4482 = 8 + Asc(UCase(s4495)) - 65
  618.         If UCase(s4495) = "Q" Then
  619.           i4482 = 17
  620.         End If
  621.  6731   Locate i4482, 24
  622.         Print "@1C@"; Chr(175)
  623.         Locate i4482, 54
  624.         Print Chr(174)
  625.         Delay 1
  626.         Return 
  627.  6785   Print "@01@"
  628.  6815   For i4482 = 5 To 23 Step 1
  629.           Locate i4482, 1
  630.           ClrEOL 
  631.         Next
  632.  6901   Locate 5, 27
  633.         Print "@0E@[ General Setup Options ]"
  634.         Locate 19, 2
  635.         Print "@0C@This is the name under which your Registration Number was generated. If you"
  636.         Locate 20, 2
  637.         Print "have yet to register this excellent program @07@<shameless plug>,@0C@ then it does"
  638.         Locate 21, 2
  639.         Print "not really matter what goes here."
  640.         Locate 7, 1
  641.         s4497 = InputMask("@0B@Registration Name: @0F@", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", s4497, 1213417543)
  642.  7019   For i4482 = 19 To 21 Step 1
  643.           Locate i4482, 1
  644.           ClrEOL 
  645.         Next
  646.  7105   Locate 19, 2
  647.         Print "@0C@This is your registration number that will be given to you once you have"
  648.         Locate 20, 2
  649.         Print "actually spent some money and registered the program. Enter 99999 here if"
  650.         Locate 21, 2
  651.         Print "the program is not registered."
  652.         Locate 7, 54
  653.         s4501 = InputMask("@0B@Registration #: @0F@", "9999999", s4501, 1213417543)
  654.  7207   For i4482 = 19 To 21 Step 1
  655.           Locate i4482, 1
  656.           ClrEOL 
  657.         Next
  658.  7293   Locate 19, 2
  659.         Print "@0C@As part of its normal process, Charge Master will generate several messages in"
  660.         Locate 20, 2
  661.         Print "Wildcat! If you want these messages to be created in a certain conference, then"
  662.         Locate 21, 2
  663.         Print "enter that conference number here. (Note: User must have write access here)."
  664.         Locate 9, 1
  665.         s4513 = InputMask("@0B@Welcome/Receipt Message Conference#: @0F@", "99999", s4513, 1213417543)
  666.  7395   For i4482 = 19 To 21 Step 1
  667.           Locate i4482, 1
  668.           ClrEOL 
  669.         Next
  670.  7481   Locate 19, 2
  671.         Print "@0C@The last thing you want is for a user to run out of time before they complete"
  672.         Locate 20, 2
  673.         Print "the charge. This setting allows you to define how may minutes the program will   "
  674.         Locate 21, 2
  675.         Print "ADD to the users online time as soon as they enter Charge Master."
  676.         Locate 11, 1
  677.         s4517 = InputMask("@0B@Minutes to ADD on entry: @0F@", "99", s4517, 1213417543)
  678.  7583   For i4482 = 19 To 21 Step 1
  679.           Locate i4482, 1
  680.           ClrEOL 
  681.         Next
  682.  7669   Locate 19, 2
  683.         Print "@0C@By default, the program will use some basic checking for the validity of a"
  684.         Locate 20, 2
  685.         Print "credit card. If you select Y here, the credit card# is put through an advanced"
  686.         Locate 21, 2
  687.         Print "algorothim routine (moduls 10). Please be aware that unless you actually check"
  688.         Locate 22, 2
  689.         Print "the credit card# against the actual credit card company's database this is not"
  690.         Locate 23, 2
  691.         Print "a 100% foolproof option."
  692.         Locate 11, 40
  693.         If InputYesNo("@0B@Use Advanced Checking (Y/N): @0F@", -1) Then
  694.           s6048 = "Y"
  695.         Else
  696.  7790     s6048 = "M"
  697.         End If
  698.  7801
  699.  7822   For i4482 = 18 To 23 Step 1
  700.           Locate i4482, 1
  701.           ClrEOL 
  702.         Next
  703.  7908   Locate 19, 2
  704.         Print "@0C@If the area you do business in requires you to collect sales tax on any"
  705.         Locate 20, 2
  706.         Print "type of sale then you can set up the sales tax rate here.  This % amount will"
  707.         Locate 21, 2
  708.         Print "be used for all transactions.  Please do NOT include the decimal in the amt."
  709.         Locate 22, 2
  710.         Print "Eg: 6.5% tax would be entered as 650"
  711.         Locate 13, 1
  712.         s4530 = InputMask("@0B@Sales Tax (0 if none): @0F@", "XXXX", s4530, 1213417543)
  713.  8026   For i4482 = 19 To 22 Step 1
  714.           Locate i4482, 1
  715.           ClrEOL 
  716.         Next
  717.  8112   Return 
  718.  8113   Print "@01@"
  719.  8143   For i4482 = 5 To 23 Step 1
  720.           Locate i4482, 1
  721.           ClrEOL 
  722.         Next
  723.  8229   Locate 5, 28
  724.         Print "@0E@[ Credit Card Setup ]"
  725.         Do
  726.  8245     Locate 7, 1
  727.           If InStr(UCase(s4535), "A") > 0 Then
  728.             Print "@0E@[A]@0F@.....American Express   @0A@<accepted>"
  729.           Else
  730.  8291       Print "@0E@[A].....@07@American Express             "
  731.           End If
  732.  8300     If InStr(UCase(s4535), "B") > 0 Then
  733.             Print "@0E@[B]@0F@.....MasterCard         @0A@<accepted>"
  734.           Else
  735.  8339       Print "@0E@[B].....@07@MasterCard                   "
  736.           End If
  737.  8348     If InStr(UCase(s4535), "C") > 0 Then
  738.             Print "@0E@[C]@0F@.....Visa               @0A@<accepted>"
  739.           Else
  740.  8387       Print "@0E@[C].....@07@Visa                         "
  741.           End If
  742.  8396     If InStr(UCase(s4535), "D") > 0 Then
  743.             Print "@0E@[D]@0F@.....Discover           @0A@<accepted>"
  744.           Else
  745.  8435       Print "@0E@[D].....@07@Discover                     "
  746.           End If
  747.  8444     If InStr(UCase(s4535), "E") > 0 Then
  748.             Print "@0E@[E]@0F@.....JCB                @0A@<accepted>"
  749.           Else
  750.  8483       Print "@0E@[E].....@07@JCB                          "
  751.           End If
  752.  8492     If InStr(UCase(s4535), "F") > 0 Then
  753.             Print "@0E@[F]@0F@.....TABS               @0A@<accepted>"
  754.           Else
  755.  8531       Print "@0E@[F].....@07@TABS                         "
  756.           End If
  757.  8540     If InStr(UCase(s4535), "G") > 0 Then
  758.             Print "@0E@[G]@0F@.....Diner              @0A@<accepted>"
  759.           Else
  760.  8579       Print "@0E@[G].....@07@Diner                        "
  761.           End If
  762.  8588     Locate 19, 2
  763.           Print "@0C@This is where you inform Charge Master what types of Credit cards can be"
  764.           Locate 20, 2
  765.           Print "accepted in the module.  If the text @02@<accepted>@0C@ appears beside the card then"
  766.           Locate 21, 2
  767.           Print "that card will be accepted. You can toggle the option by selecting the letter"
  768.           Locate 22, 2
  769.           Print "beside the card type and pressing <enter>.  Press Q when done or to exit."
  770.           Do
  771.  8652       Locate 15, 1
  772.             s4534 = InputMask("@0B@Your Selection A,B,C,D,E,F,G or [Q]uit: @0F@", "X", "Q", 1213417543)
  773.           Loop Until InStr("ABCDEFGQ", UCase(s4534)) > 0
  774.           If UCase(s4534) = "Q" Then
  775.             Return 
  776.           End If
  777.  8737     If InStr(s4535, UCase(s4534)) = 0 Then
  778.             s4535 = s4535 + UCase(s4534)
  779.           Else
  780.  8787       i4478 = InStr(s4535, UCase(s4534))
  781.             Mid(s4535, i4478, 1) = "."
  782.           End If
  783.  8831     s4539 = ""
  784.  8866     For i4478 = 1 To Len(s4535) Step 1
  785.             If Mid(s4535, i4478, 1) = "." Then
  786.             Else
  787.  8949         s4539 = s4539 + Mid(UCase(s4535), i4478, 1)
  788.             End If
  789.  8976     Next
  790.  8999     s4535 = s4539
  791.         Loop
  792.  9034   For i4482 = 19 To 21 Step 1
  793.           Locate i4482, 1
  794.           ClrEOL 
  795.         Next
  796.  9120   Return 
  797.  9121   Print "@01@"
  798.  9151   For i4482 = 5 To 23 Step 1
  799.           Locate i4482, 1
  800.           ClrEOL 
  801.         Next
  802.  9237   Locate 5, 27
  803.         Print "@0E@[ Checks Online! Setup ]"
  804.         Locate 19, 2
  805.         Print "@0C@*IF* you process your charges thru Dragon Business Services, then the three"
  806.         Locate 20, 2
  807.         Print "character code they assign to you goes here (eg: TOP).  If you do not use this"
  808.         Locate 21, 2
  809.         Print "service, enter NONE here or leave this blank."
  810.         Locate 7, 1
  811.         s4505 = InputMask("@0B@Dragon Business Services Code: @0F@", "XXXX", s4505, 1213417543)
  812.  9355   For i4482 = 19 To 21 Step 1
  813.           Locate i4482, 1
  814.           ClrEOL 
  815.         Next
  816.  9441   Locate 19, 2
  817.         Print "@0C@*IF* you process your charges thru Dragon Business Services, AND you accept"
  818.         Locate 20, 2
  819.         Print "'Checks Online!', then enter you numeric code given to you by DBS.  Once again,"
  820.         Locate 21, 2
  821.         Print "if you do not use this service, enter 9999 here."
  822.         Locate 7, 45
  823.         s4509 = InputMask("@0B@DBS Checks Online! Code: @0F@", "99999", s4509, 1213417543)
  824.  9543   For i4482 = 19 To 21 Step 1
  825.           Locate i4482, 1
  826.           ClrEOL 
  827.         Next
  828.  9629   Return 
  829.  9630   Print "@01@"
  830.  9660   For i4482 = 5 To 23 Step 1
  831.           Locate i4482, 1
  832.           ClrEOL 
  833.         Next
  834.  9746   Locate 5, 33
  835.         Print "@0E@[ TABS Setup ]"
  836.         Locate 19, 2
  837.         Print "@0C@If you do not accept TABS codes (or don't know what TABS is then leave"
  838.         Locate 20, 2
  839.         Print "this field blank.  If you do, this is the security level you are going to"
  840.         Locate 21, 2
  841.         Print "assign for a 'TABS10' code.  You can enter the security level manually or"
  842.         Locate 22, 2
  843.         Print "type in a @0?@0C@ to see the first 25 security levels defined in MAKEWILD."
  844.         Locate 7, 1
  845.         ClrEOL 
  846.         Locate 7, 1
  847.         s4543 = InputMask("@0B@Level to assign to 'TABS10' code: @0F@", "XXXXXXXXXX", s4543, 1213417543)
  848.  9890   For i4482 = 19 To 22 Step 1
  849.           Locate i4482, 1
  850.           ClrEOL 
  851.         Next
  852.         Do
  853.  9976     Locate 19, 2
  854.           Print "@0C@This is the number of days to ADD to the users expiration date.  It"
  855.           Locate 20, 2
  856.           Print "must be zero or a positive number."
  857.           Locate 7, 50
  858.           s4551 = InputMask("@0B@Days to add: @0F@", "999", s4551, 1213417543)
  859.           If (Len(Trim(s4543)) < 1) = 0 Then GoTo 10117
  860.           If (Val(s4551) > 0) = 0 Then GoTo 10117
  861.           Locate 9, 12
  862.           Print "@0C@'Days' field must be blank or 0 if previous field is blank"
  863.           Delay 3
  864.           Locate 9, 12
  865.           ClrEOL 
  866.         Loop
  867. 10117
  868. 10138   For i4482 = 19 To 20 Step 1
  869.           Locate i4482, 1
  870.           ClrEOL 
  871.         Next
  872. 10224   Locate 19, 2
  873.         Print "@0C@If you do not accept TABS codes (or don't know what TABS is then leave"
  874.         Locate 20, 2
  875.         Print "this field blank.  If you do, this is the security level you are going to"
  876.         Locate 21, 2
  877.         Print "assign for a 'TABS25' code.  You can enter the security level manually or"
  878.         Locate 22, 2
  879.         Print "type in a @0?@0C@ to see the first 25 security levels defined in MAKEWILD."
  880.         Locate 9, 1
  881.         ClrEOL 
  882.         Locate 9, 1
  883.         s4547 = InputMask("@0B@Level to assign to 'TABS25' code: @0F@", "XXXXXXXXXX", s4547, 1213417543)
  884. 10352   For i4482 = 11 To 22 Step 1
  885.           Locate i4482, 1
  886.           ClrEOL 
  887.         Next
  888.         Do
  889. 10438     Locate 19, 2
  890.           Print "@0C@This is the number of days to ADD to the users expiration date.  It"
  891.           Locate 20, 2
  892.           Print "must be zero or a positive number."
  893.           Locate 9, 50
  894.           s4555 = InputMask("@0B@Days to add: @0F@", "999", s4555, 1213417543)
  895.           If (Len(Trim(s4547)) < 1) = 0 Then GoTo 10579
  896.           If (Val(s4555) > 0) = 0 Then GoTo 10579
  897.           Locate 11, 12
  898.           Print "@0C@'Days' field must be blank or 0 if previous field is blank"
  899.           Delay 3
  900.           Locate 11, 12
  901.           ClrEOL 
  902.         Loop
  903. 10579
  904. 10600   For i4482 = 19 To 20 Step 1
  905.           Locate i4482, 1
  906.           ClrEOL 
  907.         Next
  908. 10686   Return 
  909. 10687   Print "@01@"
  910. 10717   For i4482 = 5 To 23 Step 1
  911.           Locate i4482, 1
  912.           ClrEOL 
  913.         Next
  914. 10803   Locate 5, 28
  915.         Print "@0E@[ Edit CHGMAST.CFG file ]"
  916.         Locate 18, 2
  917.         Print "@0C@If you insist on manually editing the configuration file, then you are in"
  918.         Locate 19, 2
  919.         Print "the right place.  Just remember, if you have made any changes to the settings"
  920.         Locate 20, 2
  921.         Print "and have not exited, those changes haven't been flushed to disk yet! You will"
  922.         Locate 21, 2
  923.         Print "have to exit the setup and get back in for the file to be updated.  Remember"
  924.         Locate 22, 2
  925.         Print "that CHGSETUP reads in the setting on entry, so be aware of any changes you"
  926.         Locate 23, 2
  927.         Print "made while editing the file manually via this option."
  928.         Locate 7, 1
  929.         If InputYesNo("@0B@After reading the help below, do you wish to continue (Y/N): @0F@", 0) Then
  930.           EditFile(ProgPath + "CHGMAST.CFG", 1213417543, "EDIT")
  931.           GoSub 4755
  932.         Else
  933. 10973
  934. 10994     For i4482 = 18 To 23 Step 1
  935.             Locate i4482, 1
  936.             ClrEOL 
  937.           Next
  938.         End If
  939. 11080   Return 
  940. 11081   Print "@01@"
  941. 11111   For i4482 = 5 To 23 Step 1
  942.           Locate i4482, 1
  943.           ClrEOL 
  944.         Next
  945. 11197   Locate 5, 32
  946.         Print "@0E@[ Edit TABS ]"
  947.         s4560 = " "
  948.         If Not Exists(ProgPath + "CHGMAST.TAB") Then
  949.           Locate 10, 10
  950.           Print "@BELL@@9F@ERROR:@0C@  The file "; ProgPath + "CHGMAST.TAB"; " does not exist."
  951.           Locate 11, 18
  952.           Print "@07@(5 second delay)"
  953.           Delay 5
  954.           Return 
  955.         End If
  956.         Do
  957. 11305     Locate 7, 1
  958.           s6055 = InputMask("@0B@Show [A]ll or just [U]sed codes: @0F@", "X", "", 1213417543)
  959.         Loop Until InStr("AU", UCase(s6055)) > 0
  960.         Open ProgPath + "CHGMAST.TAB" For Random As 3 Len = 56 '! This value should probably be replaced with a "SizeOf" expression
  961.         i6049 = LOF(3)
  962. 11426   For i4480 = 1 To i6049 Step 1
  963.           Get 3, i4480, t27_6060 '! 56 bytes
  964.           If t27_6060.s0 = "*" Then
  965.             i6051 = i6051 + 1
  966.           End If
  967. 11524   Next
  968. 11547   i6053 = 1
  969.         Do
  970. 11554     Locate 6, 1
  971.           Print "@03@Total TABS codes: @0D@"; i6049; "@03@   # of codes used: @0D@"; i6051; "    @03@Availability is @0D@"; 100 - 100 * i6051 Div i6049; "%"
  972.           Locate 7, 1
  973.           i4482 = 8
  974.           Print "@1F@Rec#  Code    Level      Used By                   Used On                @0E@"
  975.           i4480 = i6053
  976.           Do
  977. 11660       Get 3, i4480, t27_6060 '! 56 bytes
  978.             If i4482 > 19 Then
  979.               GoSub 12541
  980.               If UCase(s4560) = "N" Then
  981. 11741           For i4482 = 20 To 8 Step - 1
  982.                   Locate i4482, 1
  983.                   ClrEOL 
  984.                 Next
  985. 11827           i4482 = 8
  986.               End If
  987. 11834         If UCase(s4560) = "Q" Then
  988.                 Close 3
  989.                 Return 
  990.               End If
  991. 11862         If UCase(s4560) = "P" Then
  992.                 i6053 = i6053 - 24
  993.                 If i6053 < 1 Then
  994.                   i6053 = 1
  995.                 End If
  996. 11920
  997. 11943           For i4482 = 20 To 8 Step - 1
  998.                   Locate i4482, 1
  999.                   ClrEOL 
  1000.                 Next
  1001. 12029           i4482 = 8
  1002.                 GoTo 11554
  1003.               End If
  1004.             End If
  1005. 12042       If UCase(s6055) = "A" Then
  1006.               Locate i4482, 1
  1007.               Print "@03@@NOPAUSE@"; i4480
  1008.               Locate i4482, 7
  1009.               Print "@0A@"; t27_6060.s1
  1010.               Locate i4482, 15
  1011.               Print "@0B@"; t27_6060.s21
  1012.               If t27_6060.s0 = "*" Then
  1013.                 Locate i4482, 26
  1014.                 Print "@0E@"; t27_6060.s31
  1015.                 Locate i4482, 52
  1016.                 Print "@0F@"; t27_6060.s8; " at "; t27_6060.s16
  1017.               Else
  1018. 12258           Locate i4482, 26
  1019.                 Print "@07@<Code Available>"
  1020.               End If
  1021. 12277         i4482 = i4482 + 1
  1022.             Else
  1023. 12297         If t27_6060.s0 = "*" Then
  1024.                 Locate i4482, 1
  1025.                 Print "@03@@NOPAUSE@"; i4480
  1026.                 Locate i4482, 7
  1027.                 Print "@0A@"; t27_6060.s1
  1028.                 Locate i4482, 15
  1029.                 Print "@0B@"; t27_6060.s21
  1030.                 Locate i4482, 26
  1031.                 Print "@0E@"; t27_6060.s31
  1032.                 Locate i4482, 52
  1033.                 Print "@0F@"; t27_6060.s8; " at "; t27_6060.s16
  1034.                 i4482 = i4482 + 1
  1035.               End If
  1036.             End If
  1037. 12499       i4480 = i4480 + 1
  1038.             i6053 = i4480
  1039.           Loop Until i4480 > i6049
  1040. 12541     If (i4480 > i6049) = 0 Then GoTo 12837
  1041.           Do
  1042. 12559       Locate 21, 1
  1043.             ClrEOL 
  1044.             s4560 = InputMask("@0B@[P]revious, [Q]uit: @0F@", "X", "", 1213417543)
  1045.           Loop Until InStr("QP", UCase(s4560)) > 0
  1046.           If UCase(s4560) = "Q" Then
  1047.             Close 3
  1048.           End If
  1049. 12651     If (UCase(s4560) = "P") = 0 Then GoTo 12831
  1050.           i6053 = i6053 - 24
  1051.           If i6053 < 1 Then
  1052.             i6053 = 1
  1053.           End If
  1054. 12709
  1055. 12732     For i4482 = 20 To 8 Step - 1
  1056.             Locate i4482, 1
  1057.             ClrEOL 
  1058.           Next
  1059. 12818     i4482 = 8
  1060.         Loop
  1061. 12831   GoTo 12903
  1062.         Do
  1063. 12837     Locate 21, 1
  1064.           ClrEOL 
  1065.           s4560 = InputMask("@0B@[N]ext Page, [P]revious, [Q]uit: @0F@", "X", s4560, 1213417543)
  1066.         Loop Until InStr("NQP", UCase(s4560)) > 0
  1067. 12903   Return 
  1068.         Do
  1069. 12904     Locate 22, 1
  1070.           s6056 = InputMask("@0C@Enter Rec# to Change or 0 to exit: @0F@", "9999", "", 1213417543)
  1071.         Loop Until Val(s6056) = 0 Or Val(s6056) < i6049
  1072.         If Val(s6056) = 0 Then
  1073.           Locate 22, 1
  1074.           ClrEOL 
  1075.           Return 
  1076.         End If
  1077. 12997   Get 3, Val(s6056), t27_6060 '! 56 bytes
  1078.         If t27_6060.s0 = "*" Then
  1079.           Locate 22, 1
  1080.           ClrEOL 
  1081.           If InputYesNo("Reactivate code (Y/N): ", -1) Then
  1082.             t27_6060.s0 = " "
  1083.             t27_6060.s31 = "          "
  1084.             t27_6060.s8 = "        "
  1085.             t27_6060.s16 = "     "
  1086.             Put 3, Val(s6056), t27_6060 '! 56 bytes
  1087.           End If
  1088.         End If
  1089. 13133   Locate 22, 1
  1090.         ClrEOL 
  1091.         Return 
  1092. 13144   Print "@01@"
  1093. 13174   For i4482 = 5 To 23 Step 1
  1094.           Locate i4482, 1
  1095.           ClrEOL 
  1096.         Next
  1097. 13260   Locate 5, 32
  1098.         Print "@0E@[ Restrictions ]"
  1099.         Locate 19, 2
  1100.         Print "@0C@You can lock out users from using the door by entering a block out period"
  1101.         Locate 20, 2
  1102.         Print "start & stop time. All times MUST be entered in 24 hr format.  To prevent any"
  1103.         Locate 21, 2
  1104.         Print "usage from midnight to 6am, you would enter 0000 as the Start time and 0600"
  1105.         Locate 22, 2
  1106.         Print "as the Stop time. Leave both fields blank to allow 24 access to this module."
  1107.         Locate 7, 1
  1108.         Print "BLOCKOUT PERIOD"
  1109.         Locate 8, 1
  1110.         s4522 = InputMask("@0B@Start time (HHMM): @0F@", "9999", s4522, 1213417543)
  1111.         Locate 8, 45
  1112.         s4526 = InputMask("@0B@Stop time (HHMM): @0F@", "9999", s4526, 1213417543)
  1113. 13451   For i4482 = 19 To 22 Step 1
  1114.           Locate i4482, 1
  1115.           ClrEOL 
  1116.         Next
  1117. 13537   Return 
  1118. 13538   Print "@01@"
  1119. 13568   For i4482 = 5 To 23 Step 1
  1120.           Locate i4482, 1
  1121.           ClrEOL 
  1122.         Next
  1123. 13654   Locate 5, 28
  1124.         Print "@0E@[ Subscription Levels ]"
  1125.         i4480 = 1
  1126.         s4559 = "N"
  1127. 13688   If i4493 > 0 Then
  1128.           Locate 7, 1
  1129.           Print "@0C@Record "; i4480; " of "; Str(i4493); " record(s)."
  1130.         Else
  1131. 13755     Locate 7, 1
  1132.           Print "@0C@No levels defined yet:"
  1133.         End If
  1134. 13771   Locate 9, 1
  1135.         Print "@0B@  Level Name: @0F@"; s5014(i4480);
  1136.         ClrEOL 
  1137.         If s5003(i4480) = "*" Then
  1138.           Locate 9, 30
  1139.           Print "@4F@Marked for Delete"
  1140.         End If
  1141. 13875   Locate 10, 1
  1142.         Print "@0B@      Amount: @0F@"; FormatNumber(Val(s5058(i4480)), "$####.##");
  1143.         ClrEOL 
  1144.         Locate 11, 1
  1145.         Print "@0B@ Days to add: @0F@"; s5102(i4480);
  1146.         ClrEOL 
  1147.         If Val(s5102(i4480)) = 365 Then
  1148.           Locate 11, 22
  1149.           Print "@07@(1 year) "
  1150.         End If
  1151. 14042   If Val(s5102(i4480)) = 180 Then
  1152.           Locate 11, 22
  1153.           Print "@07@(6 months)"
  1154.         End If
  1155. 14099   If Val(s5102(i4480)) = 90 Then
  1156.           Locate 11, 22
  1157.           Print "@07@(3 months)"
  1158.         End If
  1159. 14156   If Val(s5102(i4480)) = 30 Then
  1160.           Locate 11, 22
  1161.           Print "@07@(1 month)"
  1162.         End If
  1163. 14213   Locate 12, 1
  1164.         Print "@0B@    $ to add: @0F@"; FormatNumber(Val(s5146(i4480)), "$####.##");
  1165.         ClrEOL 
  1166.         Locate 13, 1
  1167.         Print "@0B@Auto Upgrade: @0F@"; s5190(i4480);
  1168.         ClrEOL 
  1169.         Locate 13, 30
  1170.         Print "@0B@Taxable ?: @0F@"; s5278(i4480);
  1171.         ClrEOL 
  1172.         Locate 14, 1
  1173.         Print "@0B@ Description: @0F@"; s5234(i4480);
  1174.         ClrEOL 
  1175.         Do
  1176.           Do
  1177.             Do
  1178.               Do
  1179. 14420           Locate 16, 1
  1180.                 s4559 = InputMask("@0C@[A]dd, [C]hange, [D]elete, [N]ext, [P]revious or [Q]uit: @0F@", "X", s4559, 1213417543)
  1181.               Loop Until InStr("ACDNPQ", UCase(s4559)) > 0
  1182.               s4559 = UCase(s4559)
  1183.               If s4559 = "N" Then
  1184.                 i4480 = i4480 + 1
  1185.                 If i4480 > i4493 Then
  1186.                   i4480 = 1
  1187.                 End If
  1188. 14556           GoTo 13688
  1189.               End If
  1190. 14562         If s4559 = "P" Then
  1191.                 i4480 = i4480 - 1
  1192.                 If i4480 < 1 Then
  1193.                   i4480 = i4493
  1194.                 End If
  1195. 14620           GoTo 13688
  1196.               End If
  1197. 14626         If (s4559 = "A" And i4493 = 10) = 0 Then GoTo 14696
  1198.               Locate 17, 1
  1199.               Print "ADD not possible, no more open slots - Max 10"
  1200.               Delay 3
  1201.               Locate 17, 1
  1202.               ClrEOL 
  1203.             Loop
  1204. 14696       If s4559 = "D" And i4493 > 0 Then
  1205.               If s5003(i4480) = "*" Then
  1206.                 s5003(i4480) = " "
  1207.               Else
  1208. 14801           s5003(i4480) = "*"
  1209.               End If
  1210. 14832         GoTo 13688
  1211.             End If
  1212. 14838       If s4559 = "A" And i4493 < 10 Then
  1213.               i4493 = i4493 + 1
  1214.               i4480 = i4493
  1215.               GoSub 15111
  1216.               If Len(Trim(s5014(i4480))) = 0 Then
  1217.                 i4493 = i4493 - 1
  1218.                 i4480 = i4493
  1219.               End If
  1220.             End If
  1221. 14965       If (s4559 = "C" And i4493 > 0) = 0 Then GoTo 15085
  1222.             If (s5003(i4480) = "*") = 0 Then GoTo 15079
  1223.             Locate 17, 1
  1224.             Print "Change not possible, on a record marked for Delete - Undelete first!"
  1225.             Delay 3
  1226.             Locate 17, 1
  1227.             ClrEOL 
  1228.           Loop
  1229.           GoTo 15085
  1230. 15079     GoSub 15111
  1231. 15085     If s4559 = "Q" Then
  1232.             Return 
  1233.           End If
  1234. 15105   Loop
  1235. 15111   Locate 20, 2
  1236.         Print "@0C@This is the name of the purchase/subscription level you want to set up. If"
  1237.         Locate 21, 2
  1238.         Print "this is a subscription level, and you want CM to automatically upgrade the"
  1239.         Locate 22, 2
  1240.         Print "users access, then this must be a valid security level defined in MAKEWILD."
  1241.         Locate 23, 2
  1242.         Print "If you are adding a new record, leave this field blank to abort the add."
  1243.         Locate 18, 1
  1244.         ClrEOL 
  1245.         s5014(i4480) = UCase(InputMask("@0B@Level Name: @0F@", "XXXXXXXXXX", s5014(i4480), 1213417543))
  1246. 15283   For i4482 = 20 To 23 Step 1
  1247.           Locate i4482, 1
  1248.           ClrEOL 
  1249.         Next
  1250. 15369   If Len(Trim(s5014(i4480))) = 0 And s4559 = "A" Then
  1251.           Locate 18, 1
  1252.           ClrEOL 
  1253.           Return 
  1254.         End If
  1255. 15438   Locate 9, 1
  1256.         Print "@0B@  Level Name: @0F@"; s5014(i4480);
  1257.         ClrEOL 
  1258.         Locate 20, 2
  1259.         Print "@0C@This is the purchase price.  DO NOT include the decimal point, but DO"
  1260.         Locate 21, 2
  1261.         Print "include the decimal places.  For example, if the purchase price is $25.00,"
  1262.         Locate 22, 2
  1263.         Print "you would enter 2500 here."
  1264.         Locate 18, 1
  1265.         ClrEOL 
  1266.         s5058(i4480) = InputMask("@0B@Amount: @0F@", "99999", s5058(i4480), 1213417543)
  1267. 15640   For i4482 = 20 To 22 Step 1
  1268.           Locate i4482, 1
  1269.           ClrEOL 
  1270.         Next
  1271. 15726   Locate 10, 1
  1272.         Print "@0B@      Amount: @0F@"; FormatNumber(Val(s5058(i4480)), "$####.##");
  1273.         ClrEOL 
  1274.         Locate 20, 2
  1275.         Print "@0C@If you are defining a subscription level, then this field lets CM know how"
  1276.         Locate 21, 2
  1277.         Print "many days are in the subscription period. This number will be added to the "
  1278.         Locate 22, 2
  1279.         Print "users expiration date.  For example, 6 months would be entered as 180."
  1280.         Locate 18, 1
  1281.         ClrEOL 
  1282.         s5102(i4480) = InputMask("@0B@Days to add: @0F@", "999", s5102(i4480), 1213417543)
  1283. 15939   For i4482 = 20 To 22 Step 1
  1284.           Locate i4482, 1
  1285.           ClrEOL 
  1286.         Next
  1287. 16025   If Len(s5102(i4480)) < 1 Or Val(s5102(i4480)) < 1 Then
  1288.           s5102(i4480) = "0"
  1289.         End If
  1290. 16136   Locate 11, 1
  1291.         Print "@0B@ Days to add: @0F@"; s5102(i4480);
  1292.         ClrEOL 
  1293.         If Val(s5102(i4480)) = 365 Then
  1294.           Locate 11, 22
  1295.           Print "@07@(1 year) "
  1296.         End If
  1297. 16243   If Val(s5102(i4480)) = 180 Then
  1298.           Locate 11, 22
  1299.           Print "@07@(6 months)"
  1300.         End If
  1301. 16300   If Val(s5102(i4480)) = 90 Then
  1302.           Locate 11, 22
  1303.           Print "@07@(3 months)"
  1304.         End If
  1305. 16357   If Val(s5102(i4480)) = 30 Then
  1306.           Locate 11, 22
  1307.           Print "@07@(1 month)"
  1308.         End If
  1309. 16414   Locate 20, 2
  1310.         Print "@0C@If you wish to fill the users 'Acct Balance' field in Wildcat, then"
  1311.         Locate 21, 2
  1312.         Print "put the amount here.  DO NOT include the decimal point but DO include the"
  1313.         Locate 22, 2
  1314.         Print "decimal places.  For example, $25.50 would be 2500."
  1315.         Locate 18, 1
  1316.         ClrEOL 
  1317.         s5146(i4480) = InputMask("@0B@$ to add: @0F@", "99999", s5146(i4480), 1213417543)
  1318. 16567   For i4482 = 20 To 22 Step 1
  1319.           Locate i4482, 1
  1320.           ClrEOL 
  1321.         Next
  1322. 16653   If Len(s5146(i4480)) < 1 Or Val(s5146(i4480)) < 0 Then
  1323.           s5146(i4480) = "0"
  1324.         End If
  1325. 16763   Locate 12, 1
  1326.         Print "@0B@    $ to add: @0F@"; FormatNumber(Val(s5146(i4480)), "$####.##");
  1327.         ClrEOL 
  1328.         Locate 20, 2
  1329.         Print "@0C@If this is a subscription level, you have the luxury of having CM upgrade"
  1330.         Locate 21, 2
  1331.         Print "the users security level automatically.  Valid choices here are only Y and N."
  1332.         Do
  1333. 16855     Locate 18, 1
  1334.           ClrEOL 
  1335.           s5190(i4480) = UCase(InputMask("@0B@Auto Upgrade: @0F@", "X", s5190(i4480), 1213417543))
  1336.         Loop Until InStr("YN", UCase(s5190(i4480))) > 0
  1337. 17011   For i4482 = 20 To 21 Step 1
  1338.           Locate i4482, 1
  1339.           ClrEOL 
  1340.         Next
  1341. 17097   Locate 13, 1
  1342.         Print "@0B@Auto Upgrade: @0F@"; s5190(i4480)
  1343.         Locate 20, 2
  1344.         Print "@0C@A 'Y' in this field determines if Charge Master will figure in the sales"
  1345.         Locate 21, 2
  1346.         Print "tax into this purchase. Valid choices here are only Y and N."
  1347.         Do
  1348. 17175     Locate 18, 1
  1349.           ClrEOL 
  1350.           s5278(i4480) = UCase(InputMask("@0B@Apply Tax?: @0F@", "X", s5278(i4480), 1213417543))
  1351.         Loop Until InStr("YN", UCase(s5278(i4480))) > 0
  1352. 17331   For i4482 = 20 To 21 Step 1
  1353.           Locate i4482, 1
  1354.           ClrEOL 
  1355.         Next
  1356. 17417   Locate 13, 25
  1357.         Print "@0B@Taxable ?: @0F@"; s5278(i4480);
  1358.         ClrEOL 
  1359.         Locate 20, 2
  1360.         Print "@0C@This is a short description that will be shown to the user for this level."
  1361.         Locate 18, 1
  1362.         ClrEOL 
  1363.         s5234(i4480) = InputMask("@0B@Description: @0F@", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", s5234(i4480), 1213417543)
  1364.         Locate 14, 1
  1365.         Print "@0B@ Description: @0F@"; s5234(i4480);
  1366.         ClrEOL 
  1367.         Locate 18, 1
  1368.         ClrEOL 
  1369.         Locate 20, 1
  1370.         ClrEOL 
  1371.         If i4493 > 0 Then
  1372.           Locate 7, 1
  1373.           Print "@0C@Record "; i4480; " of "; Str(i4493); " record(s)."
  1374.         Else
  1375. 17702     Locate 7, 1
  1376.           Print "@0C@No levels defined yet:"
  1377.         End If
  1378. 17718   Return 
  1379.       End If
  1380. 17719 CurrentTime t4463
  1381.       ActivityLog "wcCODE program:  Charge Master Setup run with CHECKTABS parameter at " + FormatTime(t4463, "hh:mm")
  1382.       Print "@CLS@@0A@Charge Master Setup v1.2 @0F@- (c) 1994, KeySoft Inc. & Gerard Johnson"
  1383.       Print "@07@(Running in unattended mode with the CHECKTABS parameter)"
  1384.       Print
  1385.       Print "@0A@√@0B@  Searching for CHGMAST.TAB"
  1386.       If Not Exists(ProgPath + "CHGMAST.TAB") Then
  1387.         Print "   @0C@- File Not Found"
  1388.         ActivityLog "wcCODE program:  Charge Master Setup cannot find CHGMAST.TAB!"
  1389.         ActivityLog "wcCODE program:  Charge Master Setup abnormal termination at " + FormatTime(t4463, "hh:mm")
  1390.         End 
  1391.       Else
  1392. 17841   Print "   @0D@- File Found    "
  1393.       End If
  1394. 17850 Print "@0A@√@0B@  Checking CHGMAST.TAB for capcaity"
  1395.       Open ProgPath + "CHGMAST.TAB" For Random As 1 Len = 56 '! This value should probably be replaced with a "SizeOf" expression
  1396.       i6049 = LOF(1)
  1397. 17918 For i4480 = 1 To i6049 Step 1
  1398.         Get 1, i4480, t27_6060 '! 56 bytes
  1399.         If t27_6060.s0 = "*" Then
  1400.           i6051 = i6051 + 1
  1401.         End If
  1402. 18016 Next
  1403. 18039 Close 1
  1404.       Print "@0D@   Capacity of CHGMAST.TAB file -- @0E@TOTAL CODES USED: " + Str(i6051) + "  /  FREE: " + Str(i6049 - i6051)
  1405.       ActivityLog "Capacity of CHGMAST.TAB file -- TOTAL CODES USED: " + Str(i6051) + "  /  FREE: " + Str(i6049 - i6051)
  1406.       Print "@0A@√@0B@  Activity logged to node log file"
  1407.       If i6049 - i6051 < 6 Then
  1408.         Print "@0A@√@0B@  Generating @0C@'TABS codes LOW!' @0B@message to sysop"
  1409.         mh6116.From = "Charge Master Setup"
  1410.         mh6116.To = MakeWild.SysopName
  1411.         mh6116.Flags = 1
  1412.         mh6116.Subject = "TABS codes LOW!"
  1413.         s4569 = "On closer inspection of CHGMAST.TAB file, Charge Master has determined " + "that you are running low on available TABS codes.  Out of @0A@" + Str(i6049) + "@0E@ codes, you only have @0C@" + Str(i6049 - i6051) + "@0E@ codes available."
  1414.         AddMessage(mh6116, s4569, "", 1213417543)
  1415.       Else
  1416. 18315   Print "@0A@√@0B@  Levels fine - no message generated"
  1417.       End If
  1418. 18324 ActivityLog "wcCODE program:  Charge Master Setup normal termination at " + FormatTime(t4463, "hh:mm")
  1419.       Delay 10
  1420.       End 
  1421. 18354 Open ProgPath + s5331 For Output As 1
  1422.       Print #1, s4497
  1423.       Print #1, s4501
  1424.       Print #1, s4505
  1425.       Print #1, s4509
  1426.       Print #1, s4513
  1427.       Print #1, UCase(s4543)
  1428.       Print #1, s4551
  1429.       Print #1, UCase(s4547)
  1430.       Print #1, s4555
  1431.       Print #1, s4535
  1432.       Print #1, s4517
  1433.       Print #1, s6048
  1434.       Print #1, s4530
  1435. 18527 For i4480 = 1 To i4493 Step 1
  1436.         s5058(i4480) = Str(Val(s5058(i4480)) * 100 / 100)
  1437.         s5146(i4480) = Str(Val(s5146(i4480)) * 100 / 100)
  1438.         s4629(i4480) = s5014(i4480) + "," + s5058(i4480) + "," + s5102(i4480) + "," + s5146(i4480) + "," + s5190(i4480) + "," + s5278(i4480) + "," + s5234(i4480)
  1439.         If s5003(i4480) <> "*" Then
  1440.           Print #1, s4629(i4480)
  1441.         End If
  1442. 19077 Next
  1443. 19100
  1444. 19121 For i4478 = 1 To 39 Step 1
  1445.         Print #1, s5339(i4478)
  1446.       Next
  1447. 19227 Close 1
  1448.       Kill ProgPath + "CHGMAST.CFG"
  1449.       Name ProgPath + s5331 As ProgPath + "CHGMAST.CFG"
  1450.       Open ProgPath + "RESTRICT.CFG" For Output As 1
  1451.       Print #1, s4522
  1452.       Print #1, s4526
  1453.       Close 1
  1454.       Return 
  1455. 19320 Print "@07@"
  1456. 19350 For b4484 = 14 To 67 Step 1
  1457.         Locate 10, b4484
  1458.         Print "▒"
  1459.       Next
  1460. 19442
  1461. 19465 For b4484 = 67 To 14 Step - 1
  1462.         Locate 11, b4484
  1463.         Print "▒"
  1464.       Next
  1465. 19557
  1466. 19578 For b4484 = 14 To 67 Step 1
  1467.         Locate 12, b4484
  1468.         Print "▒"
  1469.       Next
  1470. 19670
  1471. 19693 For b4484 = 67 To 14 Step - 1
  1472.         Locate 13, b4484
  1473.         Print "▒"
  1474.       Next
  1475. 19785
  1476. 19806 For b4484 = 14 To 67 Step 1
  1477.         Locate 14, b4484
  1478.         Print "▒"
  1479.       Next
  1480. 19898
  1481. 19921 For b4484 = 67 To 11 Step - 1
  1482.         Locate 15, b4484
  1483.         Print "▒"
  1484.       Next
  1485. 20013 Color 0, 0
  1486.       End 
  1487.