home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / TICKLE10.ZIP / EDITOR.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-01-03  |  15KB  |  901 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Boolean  BOOLEAN010
  29.     Boolean  BOOLEAN011
  30.     Boolean  BOOLEAN012
  31.     Boolean  BOOLEAN013
  32.     Boolean  BOOLEAN014
  33.     Boolean  BOOLEAN015
  34.     Boolean  BOOLEAN016
  35.     Boolean  BOOLEAN017
  36.     Integer  INTEGER001
  37.     Integer  INTEGER002
  38.     Integer  INTEGER003
  39.     Integer  INTEGER004
  40.     Real     REAL001
  41.     Real     REAL002
  42.     Real     REAL003
  43.     String   TSTRING001(49)
  44.     String   STRING002
  45.     String   STRING003
  46.     String   STRING004
  47.     String   STRING005
  48.     String   STRING006
  49.     String   STRING007
  50.     String   STRING008
  51.     String   STRING009
  52.     String   STRING010
  53.     String   STRING011
  54.     String   STRING012
  55.     String   STRING013
  56.     String   STRING014
  57.     String   STRING015
  58.     String   STRING016
  59.     String   STRING017
  60.     String   STRING018
  61.     String   STRING019
  62.     String   STRING020
  63.     String   STRING021
  64.     String   STRING022
  65.     Int      INT001
  66.     Int      INT002
  67.     Int      INT003
  68.     Int      INT004
  69.     Int      INT005
  70.     Int      INT006
  71.     Int      INT007
  72.     Int      INT008
  73.     Int      INT009
  74.     Int      INT010
  75.     Int      INT011
  76.     Int      INT012
  77.     Int      INT013
  78.     Int      INT014
  79.     Int      INT015
  80.     Int      INT016
  81.     Int      INT017
  82.  
  83. ;------------------------------------------------------------------------------
  84.  
  85.     BOOLEAN008 = 1
  86.     BOOLEAN007 = 1
  87.     STRING016 = PPEPath() + "TKLTEXT"
  88.     Gosub LABEL039
  89.     If (DErr(0)) Then
  90.         Newline
  91.         PrintLn ReadLine(STRING016, 2)
  92.         Newline
  93.         PrintLn ReadLine(STRING016, 3)
  94.         Newline
  95.         Log "Cannot open TICKLE.DBF (DataBase) - Aborting", 0
  96.     Else
  97.         Gosub LABEL019
  98.         If (DErr(0)) Then
  99.             Newline
  100.             PrintLn ReadLine(STRING016, 4)
  101.             Newline
  102.             PrintLn ReadLine(STRING016, 3)
  103.             Newline
  104.             Log "Cannot open TICKLE.NDX (Index) - Aborting", 0
  105.         Else
  106.             Newlines 3
  107.             PrintLn ReadLine(STRING016, 41)
  108.             Newlines 2
  109.             Gosub LABEL011
  110.             Gosub LABEL016
  111.             Goto LABEL017
  112.             :LABEL001
  113.             If ((InStr(STRING005, "-") == 0) || (InStr(STRING005, "-") == 1)) Return
  114.             STRING014 = STRING005
  115.             STRING005 = ""
  116.             Tokenize STRING014
  117.             If (TokCount() == 0) Return
  118.             For INT006 = 1 To Len(STRING014)
  119.                 STRING015 = GetToken()
  120.                 If (STRING015 == "") Break
  121.                 If (InStr(STRING015, "-") == 0) Then
  122.                     STRING005 = STRING005 + STRING015 + " "
  123.                     Continue
  124.                 Endif
  125.                 STRING009 = Mid(STRING015, 1, InStr(STRING015, "-") - 1)
  126.                 If (STRING009 <> "") STRING010 = Mid(STRING015, InStr(STRING015, "-") + 1, Len(STRING015))
  127.                 INT007 = S2I(STRING009, 10)
  128.                 INT008 = S2I(STRING010, 10)
  129.                 If (INT007 < 1) Then
  130.                     If (INT007 == 0) STRING009 = STRING015
  131.                     Newline
  132.                     PrintLn ReadLine(STRING016, 26), STRING009, ReadLine(STRING016, 27)
  133.                     Newline
  134.                     Continue
  135.                 Endif
  136.                 If (INT008 > 24) Then
  137.                     Newline
  138.                     PrintLn ReadLine(STRING016, 26), INT008, ReadLine(STRING016, 27)
  139.                     Newline
  140.                     Continue
  141.                 Endif
  142.                 If (INT008 >= INT007) Then
  143.                     For INT003 = INT007 To INT008
  144.                         STRING005 = STRING005 + LTrim(I2S(INT003, 10), " ") + " "
  145.                     Next
  146.                     Continue
  147.                 Endif
  148.                 Newline
  149.                 PrintLn ReadLine(STRING016, 5), STRING015, ReadLine(STRING016, 6)
  150.             Next
  151.             Return
  152.             :LABEL002
  153.             INT002 = 0
  154.             For INT005 = 2 To 25
  155.                 If (DGet(0, DName(0, INT005)) == "            ") Then
  156.                     INT002 = INT005 - 1
  157.                     Break
  158.                 Endif
  159.             Next
  160.             Return
  161.             :LABEL003
  162.             If (DTop(0) == 0) Then
  163.                 Newline
  164.                 SPrintLn ReadLine(STRING016, 42)
  165.                 Newline
  166.                 Wait
  167.                 Goto LABEL017
  168.             Else
  169.                 For INT004 = 1 To DRecCount(0)
  170.                     DGo 0, INT004
  171.                     STRING009 = DGet(0, DName(0, 1))
  172.                     If (BOOLEAN012) Goto LABEL004
  173.                     If (InStr(STRING009, STRING005) > 0) Then
  174.                         BOOLEAN013 = 1
  175.                         Newline
  176.                         PrintLn ReadLine(STRING016, 43), STRING009
  177.                         Newline
  178.                         STRING004 = ReadLine(STRING016, 44)
  179.                         InputStr STRING004, STRING013, 14, 1, Mask_Alpha(), 8 + 16384 + 256
  180.                         If ((STRING013 == "") || (STRING013 == "N")) Then
  181.                             BOOLEAN009 = 1
  182.                             Break
  183.                         Endif
  184.                     Endif
  185.                     Continue
  186.                     :LABEL004
  187.                     If (INT004 < 10) Print " "
  188.                     Print "  @X0F", INT004, ". @X03", STRING009
  189.                     Print Space(8)
  190.                     If (INT004 % 2) Goto LABEL005
  191.                     Newline
  192.                     Inc INT009
  193.                     :LABEL005
  194.                     If (INT009 == 20) Then
  195.                         STRING004 = ReadLine(STRING016, 45)
  196.                         InputStr STRING004, STRING013, 14, 1, Mask_Alpha(), 8 + 16384 + 256
  197.                         If (STRING013 == "N") Then
  198.                             Break
  199.                             Continue
  200.                         Endif
  201.                         INT009 = 0
  202.                     Endif
  203.                 Next
  204.                 If (!BOOLEAN009) DGo 0, 1
  205.                 Newline
  206.             Endif
  207.             Return
  208.             :LABEL006
  209.             DSeek 0, STRING006
  210.             If (DChkStat(0) == 0) Then
  211.                 Newline
  212.                 PrintLn ReadLine(STRING016, 46)
  213.                 Newline
  214.                 Gosub LABEL002
  215.             Else
  216.                 Newline
  217.                 PrintLn ReadLine(STRING016, 47)
  218.                 Newline
  219.                 Delay 18
  220.                 INT002 = 32000
  221.             Endif
  222.             Return
  223.             DispFile PPEPath() + "info", 4
  224.             BOOLEAN001 = 1
  225.             Return
  226.             :LABEL007
  227.             Newline
  228.             DispFile PPEPath() + "help", 4
  229.             BOOLEAN005 = 1
  230.             Return
  231.             :LABEL008
  232.             If (BOOLEAN002) Goto LABEL009
  233.             Gosub LABEL037
  234.             BOOLEAN002 = 1
  235.             Goto LABEL010
  236.             :LABEL009
  237.             Newline
  238.             :LABEL010
  239.             STRING005 = ""
  240.             STRING004 = ReadLine(STRING016, 8)
  241.             InputStr STRING004, STRING005, 14, 2, Mask_Ascii(), 256 + 8
  242.             If (STRING005 == "") Then
  243.                 Newline
  244.                 Return
  245.             Endif
  246.             INT006 = S2I(STRING005, 10)
  247.             STRING005 = String(INT006)
  248.             If ((INT006 > 24) || (INT006 < 1)) Then
  249.                 Newline
  250.                 PrintLn ReadLine(STRING016, 9)
  251.                 Newline
  252.                 Return
  253.             Else
  254.                 STRING011 = "desc" + Trim(STRING005, " ")
  255.                 STRING009 = "file" + Trim(STRING005, " ")
  256.             Endif
  257.             If (DGet(0, STRING009) <> "            ") Then
  258.                 BOOLEAN006 = 1
  259.                 Gosub LABEL023
  260.                 BOOLEAN006 = 0
  261.             Else
  262.                 Newline
  263.                 PrintLn ReadLine(STRING016, 58)
  264.             Endif
  265.             Newline
  266.             Return
  267.             :LABEL011
  268.             BOOLEAN009 = 0
  269.             BOOLEAN010 = 0
  270.             BOOLEAN011 = 0
  271.             BOOLEAN012 = 0
  272.             BOOLEAN013 = 0
  273.             STRING005 = ""
  274.             DispFile PPEPath() + "USRMENU", 4 + 1
  275.             STRING004 = ReadLine(STRING016, 48)
  276.             InputStr STRING004, STRING005, 14, 1, Mask_Alpha(), 256 + 8 + 4 + 2
  277.             Select Case (STRING005)
  278.                 Case "A"
  279.                     BOOLEAN010 = 1
  280.                 Case "B"
  281.                     BOOLEAN011 = 1
  282.                 Case "C"
  283.                     BOOLEAN012 = 1
  284.                 Case Else
  285.                     Goto LABEL017
  286.             End Select
  287.             Newline
  288.             If (BOOLEAN012) Goto LABEL012
  289.             STRING005 = ""
  290.             If (BOOLEAN011) Then
  291.                 STRING004 = ReadLine(STRING016, 49)
  292.             ElseIf (BOOLEAN010) Then
  293.                 STRING004 = ReadLine(STRING016, 50)
  294.             Endif
  295.             InputStr STRING004, STRING005, 14, 25, Mask_Ascii(), 256 + 8 + 4 + 2
  296.             If (STRING005 == "") Then
  297.                 Newline
  298.                 Goto LABEL011
  299.                 Return
  300.             Endif
  301.             :LABEL012
  302.             If (BOOLEAN010) Then
  303.                 STRING005 = Trim(STRING005, " ")
  304.                 Gosub LABEL003
  305.             ElseIf (BOOLEAN011) Then
  306.                 STRING006 = STRING005 + Space(25 - Len(STRING005))
  307.                 Gosub LABEL006
  308.                 If (INT002 == 32000) Then
  309.                     Return
  310.                 Else
  311.                     BOOLEAN009 = 1
  312.                 Endif
  313.             ElseIf (BOOLEAN012) Then
  314.                 StartDisp 1
  315.                 INT009 = 0
  316.                 Gosub LABEL003
  317.                 StartDisp 2
  318.                 Goto LABEL011
  319.             Endif
  320.             If (BOOLEAN009) Then
  321.                 If (BOOLEAN011) Then
  322.                     PrintLn ReadLine(STRING016, 51), STRING006
  323.                 Else
  324.                     If (BOOLEAN013) Goto LABEL013
  325.                     PrintLn ReadLine(STRING016, 51), STRING009
  326.                 Endif
  327.                 :LABEL013
  328.                 If (BOOLEAN013) Goto LABEL014
  329.                 STRING010 = RTrim(STRING006, " ") + "'s"
  330.                 STRING004 = ReadLine(STRING016, 52) + STRING010 + ReadLine(STRING016, 53)
  331.                 Goto LABEL015
  332.                 :LABEL014
  333.                 STRING010 = RTrim(STRING009, " ") + "'s"
  334.                 STRING004 = ReadLine(STRING016, 52) + STRING010 + ReadLine(STRING016, 53)
  335.                 :LABEL015
  336.                 InputStr STRING004, STRING005, 10, 1, Mask_Alpha(), 8 + 16384
  337.                 If (STRING005 == "Y") Then
  338.                     Gosub LABEL037
  339.                     BOOLEAN002 = 1
  340.                     Goto LABEL016
  341.                 Else
  342.                     Newline
  343.                 Endif
  344.             Else
  345.                 If (BOOLEAN013) Then
  346.                     Newline
  347.                     PrintLn ReadLine(STRING016, 54), STRING005
  348.                     Newline
  349.                 Else
  350.                     Newline
  351.                     PrintLn ReadLine(STRING016, 55), STRING005
  352.                     Newline
  353.                 Endif
  354.                 Goto LABEL011
  355.             Endif
  356.             Newline
  357.             Return
  358.             :LABEL016
  359.             STRING005 = ""
  360.             STRING004 = ReadLine(STRING016, 56)
  361.             InputStr STRING004, STRING005, 14, 1, Mask_Alpha(), 256 + 8
  362.             If (STRING005 == "A") Then
  363.                 Gosub LABEL026
  364.                 If (STRING003 <> "") Goto LABEL017
  365.                 If (STRING005 == "") Goto LABEL016
  366.             Endif
  367.             If (STRING005 == "") Goto LABEL017
  368.             If ((BOOLEAN002 && (STRING005 <> "D")) && (STRING005 <> "F")) BOOLEAN002 = 0
  369.             If (STRING005 == "D") Gosub LABEL034
  370.             If (STRING005 == "E") Gosub LABEL008
  371.             If (STRING005 == "H") Gosub LABEL007
  372.             If (STRING005 == "L") Then
  373.                 Gosub LABEL037
  374.                 BOOLEAN002 = 1
  375.             Endif
  376.             If (STRING005 == "W") Gosub LABEL038
  377.             If (STRING005 == "U") Then
  378.                 Newline
  379.                 Gosub LABEL011
  380.             Endif
  381.             Goto LABEL016
  382.             INT001 = TokCount()
  383.             Select Case (INT001)
  384.                 Case 1
  385.                     STRING002 = "MENU"
  386.                 Case 2
  387.                     STRING002 = GetToken()
  388.                     STRING003 = GetToken()
  389.                 Case 3
  390.                     STRING002 = GetToken()
  391.                     STRING003 = GetToken()
  392.                     STRING009 = GetToken()
  393.                     INTEGER001 = S2I(STRING009, 10)
  394.                 Case Else
  395.                     SPrintLn ReadLine(STRING016, 12)
  396.                     Log "Too few or too many parameters in TKL.PPE Command Line", 0
  397.                     INT001 = 1
  398.             End Select
  399.             Return
  400.         Endif
  401.     Endif
  402.     :LABEL017
  403.     DnCloseAll 0
  404.     DClose 0
  405.     Gosub LABEL018
  406.     If (BOOLEAN014) Then
  407.         Newline
  408.         PrintLn "@X0ERegistered to: @X0A", STRING005, "@X07"
  409.     Else
  410.         Newline
  411.         PrintLn "  *************************************************"
  412.         Newline
  413.         PrintLn "   [Unregistered Version] - Pausing for 5 Seconds"
  414.         Newline
  415.         PrintLn "  Support the Shareware Concept and Register Today"
  416.         Newline
  417.         PrintLn "  *************************************************"
  418.         Delay 90
  419.     Endif
  420.     End
  421.     :LABEL018
  422.     FOpen 3, PPEPath() + "TKL.KEY", 0, 0
  423.     FGet 3, STRING009
  424.     FGet 3, STRING012
  425.     STRING009 = RTrim(STRING009, " ")
  426.     STRING009 = Mid(STRING009, InStr(STRING009, ":") + 1, Len(STRING009) - InStr(STRING009, ":"))
  427.     STRING005 = Trim(STRING009, " ")
  428.     STRING009 = Mid(STRING012, 3, Len(STRING012) - 2)
  429.     STRING012 = Trim(STRING009, " ")
  430.     For INT004 = 1 To Len(STRING005)
  431.         INTEGER004 = S2I(Mid(STRING005, INT004, 1), 36) - 9
  432.         INTEGER003 = INTEGER003 + INTEGER004
  433.     Next
  434.     If (INTEGER003 < 0) INTEGER003 = INTEGER003 * -1
  435.     If (INTEGER003 == 0) INTEGER003 = INTEGER003 + 384
  436.     INTEGER003 = INTEGER003 * 7914
  437.     STRING009 = LTrim(String(INTEGER003), " ")
  438.     If (STRING009 == STRING012) BOOLEAN014 = 1
  439.     FClose 3
  440.     Return
  441.     :LABEL019
  442.     If (Exist(PPEPath() + "tickle.ndx")) Goto LABEL020
  443.     DnCreate 0, PPEPath() + "tickle", "usr_name"
  444.     Goto LABEL021
  445.     :LABEL020
  446.     DnOpen 0, PPEPath() + "tickle"
  447.     :LABEL021
  448.     Return
  449.     :LABEL022
  450.     STRING008 = LTrim(String(INT002), " ")
  451.     STRING007 = "file" + STRING008
  452.     STRING011 = "desc" + STRING008
  453.     Return
  454.     :LABEL023
  455.     If (BOOLEAN006) Goto LABEL024
  456.     STRING013 = ""
  457.     STRING004 = ReadLine(STRING016, 13)
  458.     InputStr STRING004, STRING013, 14, 1, "YN", 8192 + 16384 + 256 + 8
  459.     Goto LABEL025
  460.     :LABEL024
  461.     STRING013 = "Y"
  462.     :LABEL025
  463.     If (STRING013 == "Y") Then
  464.         STRING013 = ""
  465.         Newline
  466.         STRING004 = ReadLine(STRING016, 14)
  467.         InputStr STRING004, STRING013, 14, 15, Mask_Ascii(), 4 + 2
  468.         If (STRING013 == "") Return
  469.         DPut 0, STRING011, STRING013
  470.         Newline
  471.     Endif
  472.     Return
  473.     :LABEL026
  474.     If (STRING005 <> "ADD VIOLATION") Then
  475.         Gosub LABEL002
  476.         If (INT002 == 0) Then
  477.             Newline
  478.             PrintLn ReadLine(STRING016, 15)
  479.             Newline
  480.             Return
  481.         Endif
  482.     Endif
  483.     If (BOOLEAN007) Then
  484.         INT003 = 0
  485.         If (STRING005 <> "ADD VIOLATION") Then
  486.             Newline
  487.             STRING005 = ""
  488.             STRING004 = ReadLine(STRING016, 16)
  489.             InputStr STRING004, STRING005, 14, 100, Mask_Ascii(), 256 + 8
  490.             Newline
  491.             If (STRING005 == "") Return
  492.             Tokenize STRING005
  493.             INT003 = TokCount()
  494.             Goto LABEL027
  495.         Endif
  496.         STRING005 = STRING002
  497.         :LABEL027
  498.         If (INT003 > 0) Then
  499.             STRING013 = ""
  500.             STRING004 = ReadLine(STRING016, 30)
  501.             InputStr STRING004, STRING013, 14, 5, Mask_Num(), 256 + 8 + 4 + 2
  502.             Newline
  503.             If (STRING013 == "") STRING013 = "0"
  504.             STRING010 = Trim(STRING013, " ")
  505.             STRING010 = PPEPath() + "TKL" + STRING010 + ".CFG"
  506.             If (Exist(STRING010)) Then
  507.                 FOpen 3, STRING010, 0, 0
  508.                 FGet 3, STRING017
  509.                 FClose 3
  510.                 STRING017 = Trim(STRING017, " ")
  511.                 FOpen 3, STRING017, 0, 0
  512.                 BOOLEAN015 = 1
  513.             Endif
  514.             BOOLEAN016 = 0
  515.             For INT004 = 1 To INT003
  516.                 STRING002 = GetToken()
  517.                 STRING002 = Trim(STRING002, " ")
  518.                 If (Len(STRING002) > 12) Then
  519.                     PrintLn ReadLine(STRING016, 17), STRING002
  520.                     PrintLn ReadLine(STRING016, 18)
  521.                     Continue
  522.                 Endif
  523.                 If (BOOLEAN015) Then
  524.                     Frewind 3
  525.                     STRING018 = Left(STRING002, 1)
  526.                     BOOLEAN016 = 0
  527.                     Gosub LABEL030
  528.                     Goto LABEL028
  529.                 Endif
  530.                 BOOLEAN016 = 1
  531.                 :LABEL028
  532.                 If (BOOLEAN016) Then
  533.                     STRING007 = "file" + LTrim(String(INT002), " ")
  534.                     STRING011 = "desc" + LTrim(String(INT002), " ")
  535.                     DPut 0, STRING007, STRING002
  536.                     PrintLn ReadLine(STRING016, 19), STRING002
  537.                     Gosub LABEL023
  538.                     Newline
  539.                     INT006 = INT002
  540.                     Gosub LABEL002
  541.                     If ((INT002 == 0) && (INT006 == 24)) Then
  542.                         Newline
  543.                         PrintLn ReadLine(STRING016, 20)
  544.                         Newline
  545.                         Break
  546.                     Endif
  547.                     Continue
  548.                 Endif
  549.                 PrintLn ReadLine(STRING016, 21), STRING002, ReadLine(STRING016, 22)
  550.                 Newline
  551.             Next
  552.             If (BOOLEAN015) FClose 3
  553.             INT003 = 0
  554.             Goto LABEL029
  555.         Endif
  556.         STRING007 = "file" + LTrim(String(INT002), " ")
  557.         STRING011 = "desc" + LTrim(String(INT002), " ")
  558.         DPut 0, STRING007, STRING005
  559.         Gosub LABEL023
  560.         :LABEL029
  561.         Log "User added file(s) to database", 0
  562.     Endif
  563.     Newline
  564.     Return
  565.     :LABEL030
  566.     FGet 3, STRING019
  567.     If (Ferr(3)) Return
  568.     If (Left(STRING019, 1) <> "%") Then
  569.         STRING009 = STRING019 + STRING002
  570.         If (Exist(STRING009)) Then
  571.             BOOLEAN016 = 1
  572.             Return
  573.         Endif
  574.     Else
  575.         STRING019 = Mid(STRING019, 2, Len(STRING019))
  576.         FOpen 4, STRING019, 0, 0
  577.         FRead 4, INT010, 2
  578.         If (STRING018 < "A") STRING018 = "A"
  579.         If (STRING018 > "Z") STRING018 = "Z"
  580.         INT011 = S2I(STRING018, 36) - 9
  581.         For INT012 = 1 To 26
  582.             FRead 4, INT013, 2
  583.             If (INT011 == INT012) Then
  584.                 FRead 4, INT014, 2
  585.                 Break
  586.             Endif
  587.         Next
  588.         If (STRING018 == "Z") INT014 = INT010 + 1
  589.         If (STRING018 == "A") INT013 = 0
  590.         BOOLEAN017 = 0
  591.         BOOLEAN016 = 0
  592.         INT017 = INT014
  593.         INT016 = INT013 - 1
  594.         :LABEL031
  595.         If (BOOLEAN017) Goto LABEL032
  596.         REAL001 = INT017
  597.         REAL002 = INT016
  598.         REAL001 = REAL001 / 2
  599.         REAL002 = REAL002 / 2
  600.         REAL003 = REAL001 + REAL002 + 0.5
  601.         INT015 = REAL003
  602.         INTEGER002 = (INT015 - 1) * 13 + 128
  603.         FSeek 4, INTEGER002, 0
  604.         FRead 4, STRING021, 8
  605.         FRead 4, STRING022, 3
  606.         STRING021 = RTrim(STRING021, " ")
  607.         STRING022 = RTrim(STRING022, " ")
  608.         STRING020 = STRING021 + "." + STRING022
  609.         If (STRING020 == STRING002) Then
  610.             BOOLEAN016 = 1
  611.             BOOLEAN017 = 1
  612.         ElseIf (INT017 - INT016 < 2) Then
  613.             BOOLEAN017 = 1
  614.         ElseIf (STRING020 < STRING002) Then
  615.             INT016 = INT015
  616.         ElseIf (STRING020 > STRING002) Then
  617.             INT017 = INT015
  618.         Endif
  619.         Goto LABEL031
  620.         :LABEL032
  621.         FClose 4
  622.     Endif
  623.     If (BOOLEAN016) Goto LABEL033
  624.     Goto LABEL030
  625.     Goto LABEL034
  626.     :LABEL033
  627.     Return
  628.     :LABEL034
  629.     If (BOOLEAN002) Goto LABEL035
  630.     Gosub LABEL037
  631.     BOOLEAN002 = 1
  632.     Goto LABEL036
  633.     :LABEL035
  634.     Newline
  635.     :LABEL036
  636.     STRING005 = ""
  637.     PrintLn ReadLine(STRING016, 23)
  638.     PrintLn ReadLine(STRING016, 24)
  639.     STRING004 = ReadLine(STRING016, 25)
  640.     InputStr STRING004, STRING005, 14, 50, Mask_Ascii(), 256
  641.     If (STRING005 == "") Then
  642.         Newline
  643.         Return
  644.     Endif
  645.     Gosub LABEL001
  646.     Tokenize STRING005
  647.     INT003 = TokCount()
  648.     Newline
  649.     For INT005 = 1 To INT003
  650.         STRING009 = GetToken()
  651.         STRING009 = Trim(STRING009, " ")
  652.         If ((S2I(STRING009, 10) < 25) && (S2I(STRING009, 10) > 0)) Then
  653.             STRING010 = STRING009
  654.             STRING009 = "file" + Trim(STRING009, " ")
  655.             STRING010 = "desc" + Trim(STRING010, " ")
  656.             DPut 0, STRING009, "            "
  657.             DPut 0, STRING010, "                    "
  658.             BOOLEAN003 = 1
  659.             Continue
  660.         Endif
  661.         STRING010 = LTrim(String(STRING009), " ")
  662.         PrintLn ReadLine(STRING016, 26), STRING010, ReadLine(STRING016, 27)
  663.     Next
  664.     If (BOOLEAN003) Gosub LABEL042
  665.     Newline
  666.     Return
  667.     :LABEL037
  668.     StartDisp 1
  669.     Newlines 2
  670.     PrintLn ReadLine(STRING016, 31)
  671.     PrintLn ReadLine(STRING016, 32)
  672.     PrintLn ReadLine(STRING016, 33)
  673.     STRING009 = DGet(0, DName(0, 1))
  674.     PrintLn ReadLine(STRING016, 57), STRING009
  675.     Newline
  676.     PrintLn ReadLine(STRING016, 34)
  677.     PrintLn ReadLine(STRING016, 35)
  678.     For INT005 = 1 To 24
  679.         STRING009 = DGet(0, DName(0, INT005 + 1))
  680.         STRING011 = DGet(0, DName(0, INT005 + 25))
  681.         If (INT005 < 10) Print " "
  682.         Print "@X0F", INT005, ". @X03", STRING009
  683.         Print Space(2)
  684.         Print "@X02", STRING011
  685.         Print Space(2)
  686.         If (!INT005 % 2) Newline
  687.     Next
  688.     Newlines 2
  689.     StartDisp 2
  690.     BOOLEAN002 = 1
  691.     Return
  692.     :LABEL038
  693.     STRING005 = ""
  694.     Newline
  695.     STRING004 = ReadLine(STRING016, 36)
  696.     InputStr STRING004, STRING005, 14, 1, "YN", 8192 + 16384 + 256 + 8
  697.     If (STRING005 == "Y") Then
  698.         INT002 = 1
  699.         For INT005 = 1 To 24
  700.             Gosub LABEL022
  701.             DPut 0, STRING007, "            "
  702.             DPut 0, STRING011, "                    "
  703.             Inc INT002
  704.         Next
  705.         Newline
  706.         PrintLn ReadLine(STRING016, 37)
  707.         Log "User DELETED ENTIRE 'Tickle File'", 0
  708.         Delay 36
  709.     Endif
  710.     Newline
  711.     Return
  712.     :LABEL039
  713.     If (Exist(PPEPath() + "tickle.dbf")) Goto LABEL040
  714.     TSTRING001(0) = "usr_name,C,25,0"
  715.     TSTRING001(1) = "file1,C,12,0"
  716.     TSTRING001(2) = "file2,C,12,0"
  717.     TSTRING001(3) = "file3,C,12,0"
  718.     TSTRING001(4) = "file4,C,12,0"
  719.     TSTRING001(5) = "file5,C,12,0"
  720.     TSTRING001(6) = "file6,C,12,0"
  721.     TSTRING001(7) = "file7,C,12,0"
  722.     TSTRING001(8) = "file8,C,12,0"
  723.     TSTRING001(9) = "file9,C,12,0"
  724.     TSTRING001(10) = "file10,C,12,0"
  725.     TSTRING001(11) = "file11,C,12,0"
  726.     TSTRING001(12) = "file12,C,12,0"
  727.     TSTRING001(13) = "file13,C,12,0"
  728.     TSTRING001(14) = "file14,C,12,0"
  729.     TSTRING001(15) = "file15,C,12,0"
  730.     TSTRING001(16) = "file16,C,12,0"
  731.     TSTRING001(17) = "file17,C,12,0"
  732.     TSTRING001(18) = "file18,C,12,0"
  733.     TSTRING001(19) = "file19,C,12,0"
  734.     TSTRING001(20) = "file20,C,12,0"
  735.     TSTRING001(21) = "file21,C,12,0"
  736.     TSTRING001(22) = "file22,C,12,0"
  737.     TSTRING001(23) = "file23,C,12,0"
  738.     TSTRING001(24) = "file24,C,12,0"
  739.     TSTRING001(25) = "desc1,C,15,0"
  740.     TSTRING001(26) = "desc2,C,15,0"
  741.     TSTRING001(27) = "desc3,C,15,0"
  742.     TSTRING001(28) = "desc4,C,15,0"
  743.     TSTRING001(29) = "desc5,C,15,0"
  744.     TSTRING001(30) = "desc6,C,15,0"
  745.     TSTRING001(31) = "desc7,C,15,0"
  746.     TSTRING001(32) = "desc8,C,15,0"
  747.     TSTRING001(33) = "desc9,C,15,0"
  748.     TSTRING001(34) = "desc10,C,15,0"
  749.     TSTRING001(35) = "desc11,C,15,0"
  750.     TSTRING001(36) = "desc12,C,15,0"
  751.     TSTRING001(37) = "desc13,C,15,0"
  752.     TSTRING001(38) = "desc14,C,15,0"
  753.     TSTRING001(39) = "desc15,C,15,0"
  754.     TSTRING001(40) = "desc16,C,15,0"
  755.     TSTRING001(41) = "desc17,C,15,0"
  756.     TSTRING001(42) = "desc18,C,15,0"
  757.     TSTRING001(43) = "desc19,C,15,0"
  758.     TSTRING001(44) = "desc20,C,15,0"
  759.     TSTRING001(45) = "desc21,C,15,0"
  760.     TSTRING001(46) = "desc22,C,15,0"
  761.     TSTRING001(47) = "desc23,C,15,0"
  762.     TSTRING001(48) = "desc24,C,15,0"
  763.     DCreate 0, PPEPath() + "tickle", 0, TSTRING001(BOOLEAN000)
  764.     Goto LABEL041
  765.     :LABEL040
  766.     DOpen 0, PPEPath() + "tickle", 0
  767.     :LABEL041
  768.     Return
  769.     :LABEL042
  770.     Newline
  771.     If (BOOLEAN004) Goto LABEL043
  772.     Print ReadLine(STRING016, 38)
  773.     BOOLEAN004 = 0
  774.     For INT005 = 2 To 25
  775.         STRING009 = DGet(0, DName(0, INT005))
  776.         If (STRING009 == "            ") Then
  777.             For INT004 = INT005 + 1 To 25
  778.                 STRING009 = DGet(0, DName(0, INT004))
  779.                 STRING011 = DGet(0, DName(0, INT004 + 24))
  780.                 If (STRING009 <> "            ") Then
  781.                     DPut 0, DName(0, INT005), STRING009
  782.                     DPut 0, DName(0, INT005 + 24), STRING011
  783.                     DPut 0, DName(0, INT004), "            "
  784.                     DPut 0, DName(0, INT005 + 25), "                    "
  785.                     BOOLEAN004 = 1
  786.                     Break
  787.                     Continue
  788.                 Endif
  789.                 STRING015 = DName(0, INT005 + 25)
  790.                 DPut 0, DName(0, INT005 + 25), "                    "
  791.             Next
  792.         Endif
  793.         If ((STRING009 == "            ") && !BOOLEAN004) Break
  794.     Next
  795.     PrintLn ReadLine(STRING016, 39)
  796.     :LABEL043
  797.     Return
  798.  
  799. ;------------------------------------------------------------------------------
  800. ;
  801. ; Usage report (before postprocessing)
  802. ;
  803. ; ■ Statements used :
  804. ;
  805. ;    1       End
  806. ;    1       Wait
  807. ;    163     Goto 
  808. ;    236     Let 
  809. ;    9       Print 
  810. ;    39      PrintLn 
  811. ;    116     If 
  812. ;    3       DispFile 
  813. ;    4       FOpen 
  814. ;    4       FClose 
  815. ;    4       FGet 
  816. ;    4       StartDisp 
  817. ;    5       Log 
  818. ;    13      InputStr 
  819. ;    28      Gosub 
  820. ;    32      Return
  821. ;    3       Delay 
  822. ;    2       Inc 
  823. ;    64      Newline
  824. ;    4       Newlines 
  825. ;    3       Tokenize 
  826. ;    2       SPrintLn 
  827. ;    1       Frewind 
  828. ;    1       FSeek 
  829. ;    5       FRead 
  830. ;    1       DCreate 
  831. ;    1       DOpen 
  832. ;    1       DClose 
  833. ;    1       DnCreate 
  834. ;    1       DnOpen 
  835. ;    1       DnCloseAll 
  836. ;    2       DGo 
  837. ;    1       DSeek 
  838. ;    12      DPut 
  839. ;
  840. ;
  841. ; ■ Functions used :
  842. ;
  843. ;    1       -
  844. ;    3       *
  845. ;    2       /
  846. ;    2       %
  847. ;    91      +
  848. ;    10      -
  849. ;    49      ==
  850. ;    9       <>
  851. ;    21      <
  852. ;    12      <=
  853. ;    8       >
  854. ;    25      >=
  855. ;    88      !
  856. ;    29      &&
  857. ;    15      ||
  858. ;    10      Len(
  859. ;    6       Mid()
  860. ;    2       Left()
  861. ;    4       Space()
  862. ;    1       Ferr()
  863. ;    8       InStr()
  864. ;    8       LTrim()
  865. ;    5       RTrim()
  866. ;    11      Trim()
  867. ;    8       String()
  868. ;    5       Mask_Alpha()
  869. ;    1       Mask_Num()
  870. ;    5       Mask_Ascii()
  871. ;    12      PPEPath()
  872. ;    59      ReadLine()
  873. ;    8       GetToken()
  874. ;    4       Exist()
  875. ;    1       I2S()
  876. ;    8       S2I()
  877. ;    4       TokCount()
  878. ;    2       DErr()
  879. ;    14      DName()
  880. ;    2       DRecCount()
  881. ;    1       DTop()
  882. ;    9       DGet()
  883. ;    1       DChkStat()
  884. ;
  885. ;------------------------------------------------------------------------------
  886. ;
  887. ; Analysis flags : No flag
  888. ;
  889. ;------------------------------------------------------------------------------
  890. ;
  891. ; Postprocessing report
  892. ;
  893. ;    12      For/Next
  894. ;    0       While/EndWhile
  895. ;    54      If/Then or If/Then/Else
  896. ;    2       Select Case
  897. ;
  898. ;------------------------------------------------------------------------------
  899. ;                 AEGiS Corp - Break the routines, code against the machines!
  900. ;------------------------------------------------------------------------------
  901.