home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PWABAL16.ZIP / MAIN.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-10-23  |  19KB  |  1,390 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.     Integer  INTEGER001
  34.     Integer  INTEGER002
  35.     Integer  INTEGER003
  36.     Integer  INTEGER004
  37.     Integer  INTEGER005
  38.     Integer  INTEGER006
  39.     Integer  INTEGER007
  40.     Integer  INTEGER008
  41.     Integer  INTEGER009
  42.     Integer  INTEGER010
  43.     Integer  INTEGER011
  44.     Integer  INTEGER012
  45.     Integer  INTEGER013
  46.     Integer  INTEGER014
  47.     Integer  INTEGER015
  48.     Integer  INTEGER016
  49.     Integer  INTEGER017
  50.     Integer  INTEGER018
  51.     Integer  INTEGER019
  52.     Integer  INTEGER020
  53.     Integer  INTEGER021
  54.     Integer  INTEGER022
  55.     Integer  INTEGER023
  56.     Integer  INTEGER024
  57.     Integer  INTEGER025
  58.     Integer  INTEGER026
  59.     Integer  INTEGER027
  60.     Integer  INTEGER028
  61.     Integer  INTEGER029
  62.     Integer  INTEGER030
  63.     Integer  INTEGER031
  64.     Integer  INTEGER032
  65.     Integer  INTEGER033
  66.     Integer  INTEGER034
  67.     Integer  INTEGER035
  68.     Integer  INTEGER036
  69.     Integer  INTEGER037
  70.     Integer  INTEGER038
  71.     String   STRING001
  72.     String   STRING002
  73.     String   STRING003
  74.     String   STRING004
  75.     String   STRING005
  76.     String   STRING006
  77.     String   STRING007
  78.     String   STRING008
  79.     String   STRING009
  80.     String   STRING010
  81.     String   STRING011
  82.     String   STRING012
  83.     String   TSTRING013(15)
  84.     String   STRING014
  85.     String   STRING015
  86.     String   STRING016
  87.     String   STRING017
  88.     String   STRING018
  89.     String   STRING019
  90.     String   STRING020
  91.     String   STRING021
  92.     String   STRING022
  93.     String   STRING023
  94.     String   STRING024
  95.     String   STRING025
  96.     String   STRING026
  97.     String   TSTRING027(1)
  98.     String   STRING028
  99.     String   STRING029
  100.     String   STRING030
  101.     String   STRING031
  102.     String   STRING032
  103.     String   STRING033
  104.     String   STRING034
  105.     String   STRING035
  106.     Time     TIME001
  107.     Time     TIME002
  108.     Int      INT001
  109.     Int      INT002
  110.     Int      INT003
  111.     Int      INT004
  112.     Int      INT005
  113.     Int      INT006
  114.     Int      INT007
  115.     Int      INT008
  116.     Int      INT009
  117.     Int      INT010
  118.     Int      INT011
  119.     Int      INT012
  120.     Int      INT013
  121.     Int      INT014
  122.     Int      INT015
  123.     Int      INT016
  124.     Int      INT017
  125.     Int      INT018
  126.     Int      INT019
  127.     BigStr   BIGSTR001
  128.     BigStr   BIGSTR002
  129.  
  130. ;------------------------------------------------------------------------------
  131.  
  132.     INTEGER002 = CurConf()
  133.     If (TokCount() > 0) Then
  134.         STRING009 = GetToken()
  135.         If (STRING009 == "RESTORE") Then
  136.             BOOLEAN005 = 1
  137.             Goto LABEL001
  138.         Endif
  139.         STRING010 = GetToken()
  140.         While (STRING010 <> "") Do
  141.             STRING009 = STRING009 + " " + STRING010
  142.             STRING010 = GetToken()
  143.         EndWhile
  144.         KbdStuff "F " + STRING009
  145.         End
  146.     Endif
  147.     :LABEL001
  148.     BIGSTR001 = ""
  149.     STRING006 = PPEPath() + "cmd" + String(PcbNode())
  150.     STRING007 = PPEPath() + "rest" + String(PcbNode())
  151.     If (Exist(STRING006)) Delete STRING006
  152.     STRING003 = PPEPath() + "dirs\dir" + String(INTEGER002)
  153.     STRING008 = Len(ReadLine(STRING003, 1)) + 2
  154.     FClose -1
  155.     Gosub LABEL008
  156.     :LABEL002
  157.     STRING012 = PPEPath()
  158.     STRING011 = GetToken()
  159.     STRING001 = GetToken()
  160.     If (STRING001 <> "") Then
  161.         INTEGER004 = STRING001
  162.     Else
  163.         INTEGER004 = 1
  164.     Endif
  165.     If (Exist(STRING011)) Goto LABEL003
  166.     If (Exist(STRING012 + STRING011)) Then
  167.         STRING011 = STRING012 + STRING011
  168.     Else
  169.         PrintLn "Cannot find configuration ", STRING011
  170.         Wait
  171.         End
  172.     Endif
  173.     :LABEL003
  174.     Tokenize ReadLine(STRING011, 1)
  175.     INTEGER005 = GetToken()
  176.     STRING015 = Chr(13)
  177.     STRING016 = Chr(27)
  178.     If (BOOLEAN005 || !BOOLEAN004) Then
  179.         For INTEGER010 = 1 To INTEGER005
  180.             Tokenize ReadLine(STRING011, INTEGER010 + 1)
  181.             INTEGER006 = GetToken()
  182.             STRING017 = GetToken()
  183.             INTEGER003 = GetToken()
  184.             TSTRING013(INTEGER010) = Mid(StripAtx(STRING004), INTEGER006, INTEGER003)
  185.         Next
  186.         Return
  187.     Endif
  188.     STRING018 = GetToken()
  189.     BOOLEAN008 = 0
  190.     If (INTEGER005 > 15) Then
  191.         Redim TSTRING013, INTEGER005
  192.     Endif
  193.     INTEGER008 = 1
  194.     BOOLEAN007 = IsNonStop()
  195.     StartDisp 1
  196.     INTEGER008 = INTEGER004
  197.     INTEGER009 = INTEGER005
  198.     DefColor
  199.     DefColor
  200.     INTEGER012 = 3
  201.     For INTEGER010 = 1 To INTEGER005
  202.         Tokenize ReadLine(STRING011, INTEGER010 + 1)
  203.         INTEGER006 = GetToken()
  204.         STRING017 = GetToken()
  205.         If (STRING017 == "C") Then
  206.             INTEGER007 = GetY()
  207.         Else
  208.             INTEGER007 = STRING017
  209.         Endif
  210.         INTEGER003 = GetToken()
  211.         TSTRING013(INTEGER010) = ScrText(INTEGER006, INTEGER007, INTEGER003, 1)
  212.         INTEGER012 = INTEGER012 + 3
  213.     Next
  214.     INTEGER016 = 1
  215.     INTEGER015 = 1 + INTEGER005 - 1
  216.     Gosub LABEL007
  217.     Print STRING018, StripAtx(TSTRING013(INTEGER008))
  218.     TIME001 = Time()
  219.     :LABEL004
  220.     TIME002 = Time()
  221.     If (TIME002 - TIME001 > 1) Delay 1
  222.     STRING014 = Inkey()
  223.     If (STRING014 <> "") Then
  224.         TIME001 = Time()
  225.     Endif
  226.     Select Case (STRING014)
  227.         Case "LEFT", ","
  228.             Gosub LABEL007
  229.             Print TSTRING013(INTEGER008)
  230.             If (INTEGER008 == 1) Then
  231.                 INTEGER008 = INTEGER009
  232.             Else
  233.                 INTEGER008 = INTEGER008 - 1
  234.             Endif
  235.             Gosub LABEL007
  236.             Print STRING018, StripAtx(TSTRING013(INTEGER008))
  237.             Goto LABEL004
  238.         Case "RIGHT", "."
  239.             Gosub LABEL007
  240.             Print TSTRING013(INTEGER008)
  241.             If (INTEGER008 == INTEGER009) Then
  242.                 INTEGER008 = 1
  243.             Else
  244.                 INTEGER008 = INTEGER008 + 1
  245.             Endif
  246.             Gosub LABEL007
  247.             Print STRING018, StripAtx(TSTRING013(INTEGER008))
  248.             Goto LABEL004
  249.         Case Chr(9)
  250.             INTEGER008 = 5
  251.             Return
  252.         Case "-"
  253.             If (BOOLEAN006) Then
  254.                 BOOLEAN009 = 1
  255.                 Return
  256.             Endif
  257.         Case "?"
  258.             Tokenize ReadLine(STRING011, INTEGER008 + 1)
  259.             INTEGER006 = GetX()
  260.             INTEGER007 = GetY()
  261.             STRING017 = GetToken()
  262.             STRING017 = GetToken()
  263.             STRING017 = GetToken()
  264.             STRING017 = ""
  265.             STRING017 = GetToken()
  266.             If (STRING017 == "NOHLP") Goto LABEL004
  267.             If (STRING017 <> "") Then
  268.                 STRING001 = STRING017
  269.                 If (Exist(STRING001)) Then
  270.                     Goto LABEL005
  271.                     Goto LABEL005
  272.                 Endif
  273.                 If (Exist(HelpPath() + "hlp" + STRING001)) Then
  274.                     STRING001 = HelpPath() + "hlp" + STRING001
  275.                     Goto LABEL005
  276.                     Goto LABEL005
  277.                 Endif
  278.                 If (Exist(STRING012 + STRING001)) Then
  279.                     STRING001 = STRING012 + STRING001
  280.                     Goto LABEL005
  281.                 Endif
  282.             Endif
  283.             :LABEL005
  284.             AnsiPos 1, 23
  285.             SaveScrn
  286.             StartDisp 2
  287.             DefColor
  288.             Cls
  289.             DispFile STRING001, 1 + 4
  290.             Wait
  291.             StartDisp 1
  292.             RestScrn
  293.             AnsiPos INTEGER006, INTEGER007
  294.             Goto LABEL004
  295.         Case "PGDN", "]"
  296.             KbdStuff Left(StripAtx(TSTRING013(1)), 1)
  297.             Goto LABEL004
  298.         Case "PGUP", "["
  299.             KbdStuff Left(StripAtx(TSTRING013(2)), 1)
  300.             Goto LABEL004
  301.         Case STRING015
  302.             INTEGER010 = INTEGER008
  303.             INTEGER006 = GetX()
  304.             INTEGER007 = GetY()
  305.             Tokenize ReadLine(STRING011, INTEGER008 + 1)
  306.             INTEGER006 = GetToken()
  307.             STRING017 = GetToken()
  308.             If (STRING017 == "C") Then
  309.                 INTEGER007 = GetY()
  310.             Else
  311.                 INTEGER007 = STRING017
  312.             Endif
  313.             AnsiPos INTEGER006, INTEGER007
  314.             Print TSTRING013(INTEGER008)
  315.             Goto LABEL006
  316.             Return
  317.             Goto LABEL004
  318.         Case "HOME"
  319.             Gosub LABEL007
  320.             Print TSTRING013(INTEGER008)
  321.             INTEGER008 = -1
  322.             Goto LABEL006
  323.             INTEGER008 = INTEGER016
  324.             Gosub LABEL007
  325.             Print STRING018, StripAtx(TSTRING013(INTEGER008))
  326.             Goto LABEL004
  327.         Case "END"
  328.             Gosub LABEL007
  329.             Print TSTRING013(INTEGER008)
  330.             INTEGER008 = -2
  331.             Goto LABEL006
  332.             INTEGER008 = INTEGER015
  333.             Gosub LABEL007
  334.             Print STRING018, StripAtx(TSTRING013(INTEGER008))
  335.             Goto LABEL004
  336.         Case "Q", STRING016
  337.             DefColor
  338.             If (BOOLEAN008) Then
  339.                 DefColor
  340.                 Cls
  341.             Endif
  342.             If (!BOOLEAN007) StartDisp 2
  343.             End
  344.         Case ""
  345.             If ((((STRING014 >= "0") && (STRING014 <= "9")) || (Upper(STRING014) == "U")) || (Upper(STRING014) == "A")) Then
  346.                 KbdStuff "C" + STRING014
  347.                 Goto LABEL004
  348.             Endif
  349.             INTEGER012 = (INTEGER008 + 1) * 3
  350.             INTEGER013 = INTEGER012 - 3
  351.             If ((STRING014 == "UP") || (STRING014 == "DOWN")) Then
  352.                 KbdStuff "S"
  353.                 Goto LABEL004
  354.             Endif
  355.             For INTEGER010 = INTEGER008 To INTEGER009
  356.                 If (Upper(Left(StripAtx(TSTRING013(INTEGER010)), 1)) == Upper(STRING014)) Then
  357.                     Gosub LABEL007
  358.                     Print TSTRING013(INTEGER008)
  359.                     INTEGER008 = INTEGER010
  360.                     Goto LABEL006
  361.                 Endif
  362.                 INTEGER012 = INTEGER012 + 3
  363.             Next
  364.             INTEGER012 = INTEGER016 * 3
  365.             For INTEGER010 = 1 To INTEGER008 - 1
  366.                 If (Upper(Left(StripAtx(TSTRING013(INTEGER010)), 1)) == Upper(STRING014)) Then
  367.                     Gosub LABEL007
  368.                     Print TSTRING013(INTEGER008)
  369.                     INTEGER008 = INTEGER010
  370.                     Goto LABEL006
  371.                 Endif
  372.                 INTEGER012 = INTEGER012 + 3
  373.             Next
  374.             Goto LABEL004
  375.     End Select
  376.     Goto LABEL004
  377.     :LABEL006
  378.     DefColor
  379.     Return
  380.     Return
  381.     :LABEL007
  382.     Tokenize ReadLine(STRING011, INTEGER008 + 1)
  383.     INTEGER006 = GetToken()
  384.     STRING017 = GetToken()
  385.     If (STRING017 == "C") Then
  386.         INTEGER007 = GetY()
  387.     Else
  388.         INTEGER007 = STRING017
  389.     Endif
  390.     AnsiPos INTEGER006, INTEGER007
  391.     Return
  392.     :LABEL008
  393.     DefColor
  394.     Cls
  395.     If (Exist(PPEPath() + "graph\atxt" + String(CurConf()))) Then
  396.         STRING019 = PPEPath() + "graph\atxt" + String(CurConf())
  397.     Else
  398.         STRING019 = PPEPath() + "graph\atxt"
  399.     Endif
  400.     If (LangExt() <> "") Then
  401.         If (Exist(STRING019 + LangExt())) STRING019 = STRING019 + LangExt()
  402.     Endif
  403.     BOOLEAN011 = 0
  404.     BOOLEAN010 = 0
  405.     STRING026 = Chr(13)
  406.     INT004 = 1
  407.     If (Exist(PPEPath() + "area" + String(INTEGER002) + ".cfg")) Then
  408.         STRING022 = PPEPath() + "area" + String(INTEGER002) + ".cfg"
  409.     Else
  410.         STRING022 = PPEPath() + "area.cfg"
  411.     Endif
  412.     Tokenize ReadLine(STRING022, 1)
  413.     INTEGER018 = GetToken()
  414.     INTEGER025 = GetToken()
  415.     INTEGER026 = GetToken()
  416.     INTEGER027 = GetToken()
  417.     INTEGER028 = GetToken()
  418.     INTEGER030 = GetToken()
  419.     INTEGER031 = GetToken()
  420.     STRING025 = GetToken()
  421.     STRING028 = GetToken()
  422.     STRING030 = GetToken()
  423.     INT002 = GetToken()
  424.     If (GetToken() == "YES") Then
  425.         BOOLEAN004 = 1
  426.     Else
  427.         BOOLEAN004 = 0
  428.     Endif
  429.     STRING034 = ""
  430.     StartDisp 1
  431.     If (Exist(PPEPath() + "grp" + String(INTEGER002) + ".cfg")) Then
  432.         STRING034 = PPEPath() + "grp" + String(INTEGER002) + ".cfg"
  433.     ElseIf (Exist(PPEPath() + "grp.cfg")) Then
  434.         STRING034 = PPEPath() + "grp.cfg"
  435.     Endif
  436.     If (STRING034 <> "") Then
  437.         BOOLEAN006 = 1
  438.         If (BOOLEAN005) Then
  439.             STRING003 = PPEPath() + "dirs\tmp" + String(PcbNode())
  440.             Goto LABEL018
  441.         Endif
  442.         Tokenize ReadLine(STRING034, 1)
  443.         INT005 = GetToken()
  444.         INT008 = GetToken()
  445.         INT013 = 1
  446.         INT011 = GetToken()
  447.         INT012 = GetToken()
  448.         INT010 = GetToken()
  449.         STRING035 = GetToken()
  450.         If (Exist(PPEPath() + "grp" + String(INTEGER002))) Then
  451.             DispFile PPEPath() + "grp" + String(INTEGER002), 0
  452.             Goto LABEL009
  453.         Endif
  454.         DispFile PPEPath() + "grp", 0
  455.         :LABEL009
  456.         INT006 = INT013
  457.         INT007 = INT013 + INT008 - 1
  458.         If (INT007 > INT005) INT007 = INT005
  459.         While (1) Do
  460.             For INTEGER013 = INT006 To INT007
  461.                 INT009 = INTEGER013 % INT008
  462.                 If (!INT009) INT009 = INT008
  463.                 AnsiPos INT011, INT012 + INT009 - 1
  464.                 Print ReadLine(STRING034, (INTEGER013 - 1) * 2 + 3)
  465.             Next
  466.             If ((INT007 % INT008 <> 0) && (INT007 > INT008)) Then
  467.                 INTEGER013 = INT007 + 1
  468.                 While (((1 < 0) && (INTEGER013 >= (INT007 / INT008 + 1) * INT008)) || ((1 >= 0) && (INTEGER013 <= (INT007 / INT008 + 1) * INT008))) Do
  469.                     INT009 = INTEGER013 % INT008
  470.                     If (!INT009) INT009 = INT008
  471.                     AnsiPos INT011, INT012 + INT009 - 1
  472.                     Print Space(INT010 - INT011 + 1)
  473.                     INTEGER013 = INTEGER013 + 1
  474.                 EndWhile
  475.             Endif
  476.             INT009 = INT013 % INT008
  477.             If (!INT009) INT009 = INT008
  478.             AnsiPos INT011, INT012 + INT009 - 1
  479.             Print STRING035, StripAtx(ReadLine(STRING034, (INT013 - 1) * 2 + 3))
  480.             TIME001 = Time()
  481.             :LABEL010
  482.             TIME002 = Time()
  483.             If (TIME002 - TIME001 > 1) Delay 1
  484.             STRING001 = Upper(Inkey())
  485.             If (STRING001 <> "") Then
  486.                 TIME001 = Time()
  487.             Endif
  488.             If (STRING001 == "DOWN") Then
  489.                 INT009 = INT013 % INT008
  490.                 If (!INT009) INT009 = INT008
  491.                 AnsiPos INT011, INT012 + INT009 - 1
  492.                 Print ReadLine(STRING034, (INT013 - 1) * 2 + 3)
  493.                 If (INT013 == INT007) Then
  494.                     INT013 = INT006
  495.                     Goto LABEL011
  496.                 Endif
  497.                 Inc INT013
  498.                 :LABEL011
  499.                 INT009 = INT013 % INT008
  500.                 If (!INT009) INT009 = INT008
  501.                 AnsiPos INT011, INT012 + INT009 - 1
  502.                 Print STRING035, StripAtx(ReadLine(STRING034, (INT013 - 1) * 2 + 3))
  503.                 Goto LABEL015
  504.             Endif
  505.             If (STRING001 == "UP") Then
  506.                 INT009 = INT013 % INT008
  507.                 If (!INT009) INT009 = INT008
  508.                 AnsiPos INT011, INT012 + INT009 - 1
  509.                 Print ReadLine(STRING034, (INT013 - 1) * 2 + 3)
  510.                 If (INT013 == INT006) Then
  511.                     INT013 = INT007
  512.                     Goto LABEL012
  513.                 Endif
  514.                 Dec INT013
  515.                 :LABEL012
  516.                 INT009 = INT013 % INT008
  517.                 If (!INT009) INT009 = INT008
  518.                 AnsiPos INT011, INT012 + INT009 - 1
  519.                 Print STRING035, StripAtx(ReadLine(STRING034, (INT013 - 1) * 2 + 3))
  520.                 Goto LABEL015
  521.             Endif
  522.             If ((STRING001 == "PGDN") || (STRING001 == "]")) Then
  523.                 INT013 = INT006 + INT008
  524.                 If (INT013 > INT005) Then
  525.                     INT013 = INT013 - INT008
  526.                     Goto LABEL013
  527.                 Endif
  528.                 INT006 = INT013
  529.                 INT007 = INT013 + INT008
  530.                 If (INT007 > INT005) INT007 = INT005
  531.                 Continue
  532.                 :LABEL013
  533.                 Goto LABEL015
  534.             Endif
  535.             If ((STRING001 == "PGUP") || (STRING001 == "[")) Then
  536.                 INT013 = INT006 - INT008
  537.                 If (INT013 < 1) Then
  538.                     INT013 = 1
  539.                     Goto LABEL014
  540.                 Endif
  541.                 INT006 = INT013
  542.                 INT007 = INT013 + INT008 - 1
  543.                 If (INT007 > INT005) INT007 = INT005
  544.                 Continue
  545.                 :LABEL014
  546.                 Goto LABEL015
  547.             Endif
  548.             If (STRING001 == "END") Then
  549.                 Gosub LABEL016
  550.                 INT013 = INT007
  551.                 Gosub LABEL017
  552.                 Goto LABEL015
  553.             Endif
  554.             If (STRING001 == "HOME") Then
  555.                 Gosub LABEL016
  556.                 INT013 = INT006
  557.                 Gosub LABEL017
  558.                 Goto LABEL015
  559.             Endif
  560.             If (STRING001 == Chr(13)) Then
  561.                 Gosub LABEL053
  562.                 Goto LABEL018
  563.                 Goto LABEL015
  564.             Endif
  565.             If ((STRING001 == "Q") || (STRING001 == Chr(27))) Then
  566.                 DefColor
  567.                 Cls
  568.                 End
  569.                 Goto LABEL015
  570.             Endif
  571.             If (((STRING001 >= "A") && (STRING001 <= "Z")) && (Len(STRING001) == 1)) Then
  572.                 INT014 = Asc(STRING001) - Asc("A") + 1
  573.                 INT009 = INT007 % INT008
  574.                 If (!INT009) INT009 = INT008
  575.                 If ((INT014 >= 1) && (INT014 <= INT009)) Then
  576.                     INT009 = INT013 % INT008
  577.                     If (!INT009) INT009 = INT008
  578.                     AnsiPos INT011, INT012 + INT009 - 1
  579.                     Print ReadLine(STRING034, (INT013 - 1) * 2 + 3)
  580.                     INT013 = INT006 + INT014 - 1
  581.                     INT009 = INT013 % INT008
  582.                     If (!INT009) INT009 = INT008
  583.                     AnsiPos INT011, INT012 + INT009 - 1
  584.                     Print STRING035, StripAtx(ReadLine(STRING034, (INT013 - 1) * 2 + 3))
  585.                     Gosub LABEL053
  586.                     Goto LABEL018
  587.                 Endif
  588.             Endif
  589.             :LABEL015
  590.             Goto LABEL010
  591.         EndWhile
  592.         :LABEL016
  593.         INT009 = INT013 % INT008
  594.         If (!INT009) INT009 = INT008
  595.         AnsiPos INT011, INT012 + INT009 - 1
  596.         Print ReadLine(STRING034, (INT013 - 1) * 2 + 3)
  597.         Return
  598.         :LABEL017
  599.         INT009 = INT013 % INT008
  600.         If (!INT009) INT009 = INT008
  601.         AnsiPos INT011, INT012 + INT009 - 1
  602.         Print STRING035, StripAtx(ReadLine(STRING034, (INT013 - 1) * 2 + 3))
  603.         Return
  604.     Endif
  605.     :LABEL018
  606.     If (Len(StripAtx(STRING030)) == 0) STRING030 = STRING030 + " "
  607.     STRING004 = ReadLine(STRING019, 1)
  608.     STRING033 = Upper(ReadLine(STRING022, 2))
  609.     If ((STRING033 <> "S") && (STRING033 <> "NONE")) Then
  610.         If ((Len(STRING033) == 6) && ValDate(STRING033)) Goto LABEL019
  611.         STRING033 = Strip(String(ToDate(ToInteger(Date()) - STRING033)), "-")
  612.     Endif
  613.     :LABEL019
  614.     Redim TSTRING027, INTEGER018
  615.     STRING020 = PPEPath() + "dirs\menu" + String(INTEGER002)
  616.     STRING021 = PPEPath() + "dirs\ftr" + String(INTEGER002)
  617.     INTEGER036 = Len(StripAtx(ReadLine(STRING003, 1)))
  618.     INTEGER019 = 0
  619.     INTEGER017 = 1
  620.     If (Exist(STRING020)) Goto LABEL020
  621.     PrintLn ReadLine(STRING019, 6)
  622.     KbdStuff "F"
  623.     End
  624.     :LABEL020
  625.     StartDisp 1
  626.     DispFile STRING020, 1 + 4
  627.     INTEGER020 = INTEGER025
  628.     INTEGER021 = INTEGER026
  629.     :LABEL021
  630.     BIGSTR002 = ""
  631.     If (BOOLEAN005) Then
  632.         INTEGER001 = ReadLine(STRING007, 2)
  633.         If (INTEGER001 == 0) Then
  634.             BOOLEAN005 = 0
  635.             INTEGER022 = 0
  636.         Else
  637.             INTEGER032 = ReadLine(STRING007, 1) - 1
  638.             INTEGER022 = ToInteger(ReadLine(STRING007, 2))
  639.         Endif
  640.         INTEGER019 = INTEGER032
  641.     Else
  642.         INTEGER032 = INTEGER019 + 1
  643.     Endif
  644.     INTEGER037 = INTEGER019
  645.     FOpen 2, STRING003, 0, 0
  646.     For INTEGER010 = 1 To INTEGER018
  647.         Inc INTEGER019
  648.         If (INTEGER010 == 1) FSeek 2, STRING008 * (INTEGER019 - 1) , 0
  649.         FGet 2, STRING023
  650.         If (STRING023 == "") Then
  651.             Dec INTEGER019
  652.             BOOLEAN010 = 1
  653.             If (INT004) Goto LABEL023
  654.             If (BOOLEAN011) Goto LABEL022
  655.             Gosub LABEL052
  656.             BOOLEAN011 = 1
  657.             :LABEL022
  658.             For INTEGER011 = INTEGER010 To INTEGER018
  659.                 If (BOOLEAN013) Continue
  660.                 AnsiPos INTEGER020, INTEGER021 + INTEGER011 - 1
  661.                 Print STRING029
  662.                 AnsiPos INTEGER030 - 1, GetY()
  663.                 Print STRING030
  664.             Next
  665.             :LABEL023
  666.             Break
  667.         Endif
  668.         If (BOOLEAN013) Continue
  669.         AnsiPos INTEGER020, INTEGER021 + INTEGER010 - 1
  670.         Print STRING023
  671.         TSTRING027(INTEGER010 - 1) = STRING023
  672.         If (BIGSTR001 <> "") Then
  673.             AnsiPos INTEGER030 - 1, GetY()
  674.             INT015 = String(ToInteger(Mid(STRING023, INT002, 5)))
  675.             If (InStr(BIGSTR001, " " + String(INT015) + " ")) Then
  676.                 If (BIGSTR002 == "") Then
  677.                     BIGSTR002 = " " + String(INT015) + " "
  678.                     Goto LABEL024
  679.                 Endif
  680.                 BIGSTR002 = BIGSTR002 + String(INT015) + " "
  681.                 :LABEL024
  682.                 Print STRING028
  683.                 Continue
  684.             Endif
  685.             Print STRING030
  686.         Endif
  687.     Next
  688.     FGet 2, STRING023
  689.     FClose 2
  690.     If (STRING023 == "") BOOLEAN010 = 1
  691.     If (BOOLEAN013) Then
  692.         If (BOOLEAN010) Goto LABEL025
  693.         Goto LABEL021
  694.         Goto LABEL026
  695.         :LABEL025
  696.         BOOLEAN013 = 0
  697.         INTEGER019 = INTEGER037
  698.         Goto LABEL021
  699.     Endif
  700.     :LABEL026
  701.     If (INT004) Then
  702.         INT004 = 0
  703.         INTEGER023 = INTEGER027
  704.         INTEGER024 = INTEGER028
  705.         AnsiPos INTEGER023, INTEGER024
  706.         If (BOOLEAN004) Print ReplaceStr(STRING004, "%DATE%", Upper(STRING033))
  707.         INTEGER029 = GetX()
  708.     Endif
  709.     INTEGER022 = INTEGER010
  710.     AnsiPos INTEGER023, INTEGER024
  711.     :LABEL027
  712.     If (BOOLEAN005) Then
  713.         Tokenize PPEPath() + "lb.cfg" + " " + String(INTEGER017)
  714.         Gosub LABEL002
  715.         INTEGER008 = 5
  716.     Else
  717.         Tokenize PPEPath() + "lb.cfg" + " " + String(INTEGER017)
  718.         If (!BOOLEAN002 && !BOOLEAN001) Gosub LABEL002
  719.         If (BOOLEAN004) Goto LABEL028
  720.         INTEGER008 = 5
  721.         :LABEL028
  722.         If (BOOLEAN001) Then
  723.             If (BOOLEAN003) Goto LABEL029
  724.             BOOLEAN003 = 1
  725.             INTEGER008 = 1
  726.             Goto LABEL030
  727.             :LABEL029
  728.             BOOLEAN003 = 0
  729.             INTEGER008 = 5
  730.         Endif
  731.         :LABEL030
  732.         If (BOOLEAN002) Then
  733.             If (BOOLEAN003) Goto LABEL031
  734.             BOOLEAN003 = 1
  735.             INTEGER008 = 2
  736.             Goto LABEL032
  737.             :LABEL031
  738.             BOOLEAN003 = 0
  739.             INTEGER008 = 5
  740.         Endif
  741.         :LABEL032
  742.         If (BOOLEAN009) Then
  743.             BOOLEAN009 = 0
  744.             Goto LABEL001
  745.         Endif
  746.     Endif
  747.     If (INTEGER008 == -1) Then
  748.         INTEGER017 = 1
  749.         If (INTEGER019 > INTEGER018) Then
  750.             If (BOOLEAN010) BOOLEAN010 = 0
  751.             INTEGER019 = 0
  752.             BOOLEAN014 = 1
  753.             Goto LABEL021
  754.         Endif
  755.     Endif
  756.     If (INTEGER008 == -2) Then
  757.         INTEGER017 = 2
  758.         If (BOOLEAN010) Goto LABEL033
  759.         BOOLEAN013 = 1
  760.         Goto LABEL021
  761.     Endif
  762.     :LABEL033
  763.     Select Case (INTEGER008)
  764.         Case 1
  765.             INTEGER017 = 1
  766.             If (BOOLEAN010) Goto LABEL034
  767.             Goto LABEL021
  768.             :LABEL034
  769.         Case 2
  770.             INTEGER017 = 2
  771.             If (INTEGER019 > INTEGER018) Then
  772.                 If (BOOLEAN010) BOOLEAN010 = 0
  773.                 If (INTEGER019 % INTEGER018 <> 0) Then
  774.                     INTEGER019 = INTEGER019 - INTEGER018 - INTEGER019 % INTEGER018
  775.                     Goto LABEL035
  776.                 Endif
  777.                 INTEGER019 = INTEGER019 - 2 * INTEGER018
  778.                 :LABEL035
  779.                 Goto LABEL021
  780.             Endif
  781.         Case 3
  782.             INTEGER017 = 3
  783.             AnsiPos INTEGER023, INTEGER024
  784.             Print Space(INTEGER029 - INTEGER023 + 1)
  785.             AnsiPos INTEGER023, INTEGER024
  786.             STRING024 = ""
  787.             InputStr ReadLine(STRING019, 2) + "_", STRING024, 7, 60, Mask_Ascii(), 8
  788.             INTEGER029 = GetX()
  789.             If (STRING024 <> "") Then
  790.                 FreshLine
  791.                 DefColor
  792.                 AnsiPos 1, 23
  793.                 If (STRING024 <> "") Then
  794.                     If (Upper(STRING033) <> "NONE") Then
  795.                         If (Upper(STRING033) == "S") Then
  796.                             FCreate 1, STRING006, 1, 0
  797.                             FPutLn 1, "N S " + STRING024 + " " + BIGSTR001
  798.                             FPutLn 1, INTEGER032
  799.                             FPutLn 1, "0"
  800.                             FClose 1
  801.                             End
  802.                             Goto LABEL036
  803.                         Endif
  804.                         FCreate 1, STRING006, 1, 0
  805.                         FPutLn 1, "N " + STRING033 + " " + STRING024 + " " + BIGSTR001
  806.                         FPutLn 1, INTEGER032
  807.                         FPutLn 1, "0"
  808.                         FClose 1
  809.                         End
  810.                         :LABEL036
  811.                         Goto LABEL037
  812.                     Endif
  813.                     FCreate 1, STRING006, 1, 0
  814.                     FPutLn 1, STRING024 + " " + BIGSTR001
  815.                     FPutLn 1, INTEGER032
  816.                     FPutLn 1, "0"
  817.                     FClose 1
  818.                     End
  819.                 Endif
  820.             Endif
  821.             :LABEL037
  822.             AnsiPos INTEGER023, INTEGER024
  823.             Print Space(INTEGER029 - INTEGER023 + 1)
  824.             AnsiPos INTEGER023, INTEGER024
  825.             Print ReplaceStr(STRING004, "%DATE%", Upper(STRING033))
  826.             INTEGER029 = GetX()
  827.         Case 4
  828.             End
  829.         Case 5
  830.             INTEGER017 = 5
  831.             If (!BOOLEAN002 && !BOOLEAN001) Then
  832.                 DefColor
  833.                 AnsiPos INTEGER023, INTEGER024
  834.                 Print Space(INTEGER029 - INTEGER023 + 1)
  835.                 AnsiPos INTEGER023, INTEGER024
  836.                 Print ReadLine(STRING019, 3)
  837.                 INTEGER029 = GetX()
  838.                 AnsiPos INTEGER023, INTEGER024 + 1
  839.                 Print ReadLine(STRING019, 7)
  840.             Endif
  841.             BOOLEAN002 = 0
  842.             BOOLEAN001 = 0
  843.             BOOLEAN009 = 0
  844.             BOOLEAN004 = 1
  845.             Gosub LABEL042
  846.             If (BOOLEAN009) Then
  847.                 BOOLEAN009 = 0
  848.                 Goto LABEL001
  849.             Endif
  850.             If (!BOOLEAN001 && !BOOLEAN002) Then
  851.                 DefColor
  852.                 AnsiPos INTEGER023, INTEGER024 + 1
  853.                 Print Space(INTEGER029 - INTEGER023 + 1)
  854.                 AnsiPos INTEGER023, INTEGER024
  855.                 Print Space(INTEGER029 - INTEGER023 + 1)
  856.                 AnsiPos INTEGER023, INTEGER024
  857.                 Print ReplaceStr(STRING004, "%DATE%", Upper(STRING033))
  858.                 INTEGER029 = GetX()
  859.             Endif
  860.         Case 6
  861.             INTEGER017 = 6
  862.             If (BIGSTR001 <> "") Then
  863.                 INTEGER034 = GetX()
  864.                 INTEGER035 = GetY()
  865.                 AnsiPos 1, 23
  866.                 DefColor
  867.                 If (Upper(STRING033) <> "NONE") Then
  868.                     If (Upper(STRING033) == "S") Then
  869.                         FCreate 1, STRING006, 1, 0
  870.                         FPutLn 1, "N S " + BIGSTR001
  871.                         FPutLn 1, INTEGER032
  872.                         FPutLn 1, "0"
  873.                         FClose 1
  874.                         End
  875.                         Goto LABEL038
  876.                     Endif
  877.                     FCreate 1, STRING006, 1, 0
  878.                     FPutLn 1, "N " + STRING033 + " " + BIGSTR001
  879.                     FPutLn 1, INTEGER032
  880.                     FPutLn 1, "0"
  881.                     FClose 1
  882.                     End
  883.                     :LABEL038
  884.                     Goto LABEL039
  885.                 Endif
  886.                 AnsiPos 1, 23
  887.                 FCreate 1, STRING006, 1, 0
  888.                 FPutLn 1, ToBigStr(LTrim(BIGSTR001, " "))
  889.                 FPutLn 1, INTEGER032
  890.                 FPutLn 1, "0"
  891.                 FClose 1
  892.                 End
  893.                 :LABEL039
  894.                 DefColor
  895.                 AnsiPos INTEGER034, INTEGER035
  896.             Endif
  897.         Case 7
  898.             INTEGER017 = 7
  899.             If (BIGSTR001 == "") Goto LABEL027
  900.             INTEGER034 = GetX()
  901.             INTEGER035 = GetY()
  902.             AnsiPos INTEGER023, INTEGER024
  903.             Print Space(INTEGER029 - INTEGER023 + 1)
  904.             AnsiPos INTEGER023, INTEGER024
  905.             STRING031 = Upper(YesChar())
  906.             InputYN ReadLine(STRING019, 5), STRING031, 7
  907.             INTEGER029 = GetX() + 2
  908.             If (Upper(STRING031) <> Upper(YesChar())) Then
  909.                 AnsiPos INTEGER023, INTEGER024
  910.                 Print Space(INTEGER029 - INTEGER023 + 1)
  911.                 AnsiPos INTEGER023, INTEGER024
  912.                 Print ReplaceStr(STRING004, "%DATE%", STRING033)
  913.                 INTEGER029 = GetX()
  914.                 AnsiPos INTEGER034, INTEGER035
  915.                 Goto LABEL027
  916.             Endif
  917.             If (BIGSTR001 <> "") Then
  918.                 For INTEGER010 = INTEGER032 To INTEGER019
  919.                     If (InStr(BIGSTR001, " " + String(INTEGER010) + " ")) Then
  920.                         If (ToInteger(INTEGER010) % INTEGER018 == 0) Then
  921.                             AnsiPos INTEGER030 - 1, INTEGER021 + INTEGER018 - 1
  922.                             Goto LABEL040
  923.                         Endif
  924.                         AnsiPos INTEGER030 - 1, INTEGER021 + ToInteger(INTEGER010) % INTEGER018 - 1
  925.                         :LABEL040
  926.                         Print STRING030
  927.                     Endif
  928.                 Next
  929.             Endif
  930.             BIGSTR001 = ""
  931.             BIGSTR002 = ""
  932.             BIGSTR001 = ""
  933.             AnsiPos INTEGER023, INTEGER024
  934.             Print Space(INTEGER029 - INTEGER023 + 1)
  935.             AnsiPos INTEGER023, INTEGER024
  936.             Print ReplaceStr(STRING004, "%DATE%", STRING033)
  937.             INTEGER029 = GetX()
  938.             AnsiPos INTEGER034, INTEGER035
  939.         Case 8
  940.             INTEGER017 = 8
  941.             AnsiPos INTEGER023, INTEGER024
  942.             Print Space(INTEGER029 - INTEGER023 + 1)
  943.             AnsiPos INTEGER023, INTEGER024
  944.             STRING024 = ""
  945.             InputStr ReadLine(STRING019, 4), STRING024, 7, 6, Mask_Num() + "SN", 8 + 2
  946.             INTEGER029 = GetX() + 7
  947.             Select Case (STRING024)
  948.                 Case "S"
  949.                     STRING033 = "S"
  950.                 Case "N"
  951.                     STRING033 = "NONE"
  952.                 Case ""
  953.                     If ((Len(STRING024) == 6) && ValDate(STRING024)) Then
  954.                         STRING033 = STRING024
  955.                         Goto LABEL041
  956.                     Endif
  957.                     STRING001 = ""
  958.                     STRING033 = String(ToDate(ToInteger(Date()) - STRING024))
  959.                     For INTEGER010 = 1 To Len(STRING033)
  960.                         STRING001 = Mid(STRING033, INTEGER010, 1)
  961.                         If (InStr(Mask_Num(), STRING001)) Then
  962.                             STRING001 = STRING001 + STRING001
  963.                         Endif
  964.                     Next
  965.                     STRING033 = STRING001
  966.             End Select
  967.             :LABEL041
  968.             AnsiPos INTEGER023, INTEGER024
  969.             Print Space(INTEGER029 - INTEGER023 + 1)
  970.             AnsiPos INTEGER023, INTEGER024
  971.             Print ReplaceStr(STRING004, "%DATE%", Upper(STRING033))
  972.             INTEGER029 = GetX()
  973.         Case 0
  974.     End Select
  975.     Goto LABEL027
  976.     End
  977.     :LABEL042
  978.     DefColor
  979.     INTEGER034 = GetX()
  980.     INTEGER035 = GetY()
  981.     If (INTEGER019 % INTEGER018 <> 0) Then
  982.         INTEGER032 = INTEGER019 - INTEGER019 % INTEGER018 + 1
  983.     Else
  984.         INTEGER032 = INTEGER019 - INTEGER018 + 1
  985.     Endif
  986.     INTEGER021 = INTEGER026
  987.     If (BOOLEAN005) Then
  988.         BIGSTR001 = ""
  989.         BOOLEAN005 = 0
  990.         INTEGER022 = INTEGER001
  991.         INTEGER038 = INTEGER021 + INTEGER022 - INTEGER032
  992.         INTEGER020 = INTEGER025
  993.         INTEGER033 = INTEGER038
  994.     Else
  995.         INTEGER022 = INTEGER032
  996.         INTEGER033 = INTEGER021
  997.         INTEGER038 = INTEGER021
  998.     Endif
  999.     INTEGER014 = 0
  1000.     AnsiPos INTEGER030, INTEGER033
  1001.     Print STRING025, StripAtx(TSTRING027(INTEGER022 - INTEGER032))
  1002.     STRING024 = ""
  1003.     TIME001 = Time()
  1004.     :LABEL043
  1005.     TIME002 = Time()
  1006.     If (TIME002 - TIME001 > 1) Delay 1
  1007.     STRING024 = Inkey()
  1008.     If (STRING024 <> "") Then
  1009.         TIME001 = Time()
  1010.     Endif
  1011.     Select Case (STRING024)
  1012.         Case "DOWN", "RIGHT", ">"
  1013.             AnsiPos INTEGER030, INTEGER033
  1014.             Print TSTRING027(INTEGER033 - INTEGER021)
  1015.             If (INTEGER022 == INTEGER019) Then
  1016.                 INTEGER022 = INTEGER032
  1017.                 INTEGER033 = INTEGER021
  1018.             Else
  1019.                 Inc INTEGER022
  1020.                 Inc INTEGER033
  1021.             Endif
  1022.             AnsiPos INTEGER030, INTEGER033
  1023.             Print STRING025, StripAtx(TSTRING027(INTEGER033 - INTEGER021))
  1024.             Goto LABEL043
  1025.         Case "UP", "LEFT", "<"
  1026.             AnsiPos INTEGER030, INTEGER033
  1027.             Print TSTRING027(INTEGER033 - INTEGER021)
  1028.             If (INTEGER022 == INTEGER032) Then
  1029.                 INTEGER022 = INTEGER019
  1030.                 INTEGER033 = INTEGER021 + INTEGER019 - INTEGER032
  1031.             Else
  1032.                 Dec INTEGER022
  1033.                 Dec INTEGER033
  1034.             Endif
  1035.             AnsiPos INTEGER030, INTEGER033
  1036.             Print STRING025, StripAtx(TSTRING027(INTEGER033 - INTEGER021))
  1037.             Goto LABEL043
  1038.         Case "-"
  1039.             If (BOOLEAN006) Then
  1040.                 BOOLEAN009 = 1
  1041.                 Return
  1042.             Endif
  1043.         Case "HOME"
  1044.             AnsiPos INTEGER030, INTEGER033
  1045.             Print TSTRING027(INTEGER033 - INTEGER021)
  1046.             INTEGER022 = INTEGER032
  1047.             INTEGER033 = INTEGER021
  1048.             AnsiPos INTEGER030, INTEGER033
  1049.             Print STRING025, StripAtx(TSTRING027(INTEGER033 - INTEGER021))
  1050.             Goto LABEL043
  1051.         Case "END"
  1052.             AnsiPos INTEGER030, INTEGER033
  1053.             Print TSTRING027(INTEGER033 - INTEGER021)
  1054.             INTEGER022 = INTEGER019
  1055.             INTEGER033 = INTEGER021 + INTEGER019 - INTEGER032
  1056.             AnsiPos INTEGER030, INTEGER033
  1057.             Print STRING025, StripAtx(TSTRING027(INTEGER033 - INTEGER021))
  1058.             Goto LABEL043
  1059.         Case "Q", Chr(27)
  1060.             DefColor
  1061.             Cls
  1062.             End
  1063.         Case Chr(9)
  1064.             AnsiPos INTEGER030, INTEGER033
  1065.             Print TSTRING027(INTEGER033 - INTEGER021)
  1066.             AnsiPos INTEGER034, INTEGER035
  1067.             Return
  1068.         Case Asc("A"), Asc("U"), 1
  1069.             INT016 = Asc(Upper(STRING024)) - Asc("A")
  1070.             If (INTEGER032 + INT016 > INTEGER019) Goto LABEL043
  1071.             AnsiPos INTEGER030, INTEGER033
  1072.             Print TSTRING027(INTEGER033 - INTEGER021)
  1073.             INTEGER022 = INTEGER032 + INT016
  1074.             INTEGER033 = INTEGER021 + INT016
  1075.             AnsiPos INTEGER030, INTEGER033
  1076.             Print STRING025, StripAtx(TSTRING027(INTEGER033 - INTEGER021))
  1077.             KbdStuff Chr(13)
  1078.             Goto LABEL043
  1079.         Case Upper(Left(StripAtx(TSTRING013(1)), 1)), "PGDN", "]"
  1080.             AnsiPos INTEGER030, INTEGER033
  1081.             Print TSTRING027(INTEGER033 - INTEGER021)
  1082.             BOOLEAN001 = 1
  1083.             Return
  1084.         Case Upper(Left(StripAtx(TSTRING013(2)), 1)), "PGUP", "["
  1085.             AnsiPos INTEGER030, INTEGER033
  1086.             Print TSTRING027(INTEGER033 - INTEGER021)
  1087.             BOOLEAN002 = 1
  1088.             Return
  1089.         Case STRING026
  1090.             DefColor
  1091.             AnsiPos 1, 23
  1092.             If (STRING024 <> "") Then
  1093.                 INT003 = String(ToInteger(Mid(TSTRING027(INTEGER033 - INTEGER021), INT002, 5)))
  1094.                 If (Upper(STRING033) <> "NONE") Then
  1095.                     If (Upper(STRING033) == "S") Then
  1096.                         FCreate 1, STRING006, 1, 0
  1097.                         FPutLn 1, "N S " + String(INT003)
  1098.                         FPutLn 1, INTEGER032
  1099.                         FPutLn 1, String(INTEGER022)
  1100.                         FClose 1
  1101.                         End
  1102.                         Goto LABEL044
  1103.                     Endif
  1104.                     FCreate 1, STRING006, 1, 0
  1105.                     FPutLn 1, "N " + STRING033 + " " + String(INT003)
  1106.                     FPutLn 1, INTEGER032
  1107.                     FPutLn 1, String(INTEGER022)
  1108.                     FClose 1
  1109.                     End
  1110.                     :LABEL044
  1111.                     Goto LABEL045
  1112.                 Endif
  1113.                 FCreate 1, STRING006, 1, 0
  1114.                 FPutLn 1, String(INT003)
  1115.                 FPutLn 1, INTEGER032
  1116.                 FPutLn 1, String(INTEGER022)
  1117.                 FClose 1
  1118.                 End
  1119.             Endif
  1120.             :LABEL045
  1121.             AnsiPos INTEGER030 + INTEGER031, INTEGER033
  1122.         Case "X"
  1123.             If (Upper(ReadLine(STRING022, 3)) <> "N") Then
  1124.                 FCreate 1, STRING006, 1, 0
  1125.                 INT003 = String(ToInteger(Mid(TSTRING027(INTEGER033 - INTEGER021), INT002, 5)))
  1126.                 FPutLn 1, "X " + String(INT003)
  1127.                 FPutLn 1, INTEGER032
  1128.                 FPutLn 1, String(INTEGER022)
  1129.                 FClose 1
  1130.                 End
  1131.             Endif
  1132.         Case "V"
  1133.             If (BIGSTR002 <> "") Then
  1134.                 INTEGER034 = GetX()
  1135.                 INTEGER035 = GetY()
  1136.                 AnsiPos 1, 23
  1137.                 DefColor
  1138.                 If (Upper(STRING033) <> "NONE") Then
  1139.                     If (Upper(STRING033) == "S") Then
  1140.                         FCreate 1, STRING006, 1, 0
  1141.                         FPutLn 1, "N S " + BIGSTR002
  1142.                         FPutLn 1, INTEGER032
  1143.                         FPutLn 1, String(INTEGER022)
  1144.                         FClose 1
  1145.                         End
  1146.                         Goto LABEL046
  1147.                     Endif
  1148.                     FCreate 1, STRING006, 1, 0
  1149.                     FPutLn 1, "N " + STRING033 + " " + BIGSTR002
  1150.                     FPutLn 1, INTEGER032
  1151.                     FPutLn 1, String(INTEGER022)
  1152.                     FClose 1
  1153.                     End
  1154.                     :LABEL046
  1155.                     Goto LABEL047
  1156.                 Endif
  1157.                 FCreate 1, STRING006, 1, 0
  1158.                 FPutLn 1, LTrim(BIGSTR002, " ")
  1159.                 FPutLn 1, INTEGER032
  1160.                 FPutLn 1, String(INTEGER022)
  1161.                 FClose 1
  1162.                 End
  1163.                 :LABEL047
  1164.                 DefColor
  1165.                 AnsiPos INTEGER034, INTEGER035
  1166.             Endif
  1167.         Case " "
  1168.             AnsiPos INTEGER030 - 1, INTEGER033
  1169.             INT003 = String(ToInteger(Mid(TSTRING027(INTEGER033 - INTEGER021), INT002, 5)))
  1170.             If (BIGSTR001 <> "") Then
  1171.                 STRING005 = " " + String(ToInteger(Mid(TSTRING027(INTEGER033 - INTEGER021), INT002, 5))) + " "
  1172.                 INT001 = InStr(BIGSTR001, STRING005)
  1173.                 If (INT001) Then
  1174.                     BIGSTR001 = Mid(BIGSTR001, 1, INT001 - 1) + Mid(BIGSTR001, INT001 + Len(STRING005) - 1, Len(BIGSTR001) - INT001 + Len(STRING005) - 2)
  1175.                     If (BIGSTR001 == " ") BIGSTR001 = ""
  1176.                     AnsiPos INTEGER030 - 1, INTEGER033
  1177.                     Print STRING030
  1178.                     AnsiPos INTEGER030 + INTEGER031, INTEGER033
  1179.                     If (INTEGER022 <> INTEGER019) KbdStuff ">"
  1180.                     INT001 = InStr(BIGSTR002, STRING005)
  1181.                     BIGSTR002 = Mid(BIGSTR002, 1, INT001 - 1) + Mid(BIGSTR002, INT001 + Len(STRING005) - 1, Len(BIGSTR002) - INT001 + Len(STRING005) - 2)
  1182.                     If (BIGSTR002 == " ") BIGSTR002 = ""
  1183.                     Goto LABEL043
  1184.                 Endif
  1185.             Endif
  1186.             Print STRING028
  1187.             If (BIGSTR001 == "") Then
  1188.                 BIGSTR001 = " " + String(INT003) + " "
  1189.                 Goto LABEL048
  1190.             Endif
  1191.             BIGSTR001 = BIGSTR001 + String(INT003) + " "
  1192.             :LABEL048
  1193.             If (BIGSTR002 == "") Then
  1194.                 BIGSTR002 = " " + String(INT003) + " "
  1195.                 Goto LABEL049
  1196.             Endif
  1197.             BIGSTR002 = BIGSTR002 + String(INT003) + " "
  1198.             :LABEL049
  1199.             AnsiPos INTEGER030 + INTEGER031, INTEGER033
  1200.             If (INTEGER022 <> INTEGER019) KbdStuff ">"
  1201.             Goto LABEL043
  1202.             If (BIGSTR001 <> "") Then
  1203.                 BOOLEAN012 = 0
  1204.                 Tokenize BIGSTR001
  1205.                 STRING032 = ""
  1206.                 While (1) Do
  1207.                     STRING031 = GetToken()
  1208.                     If (STRING031 == "") Break
  1209.                     If (STRING031 <> INTEGER022) Then
  1210.                         STRING032 = STRING032 + STRING031 + " "
  1211.                         If ((STRING031 >= INTEGER032) && (STRING031 <= INTEGER019)) Then
  1212.                             BIGSTR002 = BIGSTR002 + STRING031 + " "
  1213.                         Endif
  1214.                         Continue
  1215.                     Endif
  1216.                     BOOLEAN012 = 1
  1217.                     DefColor
  1218.                     Print STRING030
  1219.                 EndWhile
  1220.                 If (BOOLEAN012) Then
  1221.                     BIGSTR001 = STRING032
  1222.                     AnsiPos INTEGER030 + INTEGER031, INTEGER033
  1223.                     If (INTEGER022 <> INTEGER019) KbdStuff ">"
  1224.                     Goto LABEL043
  1225.                 Endif
  1226.             Endif
  1227.             Print STRING028
  1228.             If (BIGSTR001 == "") Then
  1229.                 BIGSTR001 = String(INTEGER022)
  1230.                 Goto LABEL050
  1231.             Endif
  1232.             BIGSTR001 = BIGSTR001 + " " + String(INTEGER022)
  1233.             :LABEL050
  1234.             If (BIGSTR002 == "") Then
  1235.                 BIGSTR002 = String(INTEGER022)
  1236.                 Goto LABEL051
  1237.             Endif
  1238.             BIGSTR002 = BIGSTR002 + " " + String(INTEGER022)
  1239.             :LABEL051
  1240.             AnsiPos INTEGER030 + INTEGER031, INTEGER033
  1241.             If (INTEGER022 <> INTEGER019) KbdStuff ">"
  1242.             Goto LABEL043
  1243.     End Select
  1244.     Goto LABEL043
  1245.     :LABEL052
  1246.     If (Exist(PPEPath() + "dm" + String(CurConf()) + ".cfg")) Then
  1247.         STRING029 = ReadLine(PPEPath() + "dm" + String(CurConf()) + ".cfg", 1)
  1248.     Else
  1249.         STRING029 = ReadLine(PPEPath() + "dm.cfg", 2)
  1250.     Endif
  1251.     STRING029 = ReplaceStr(STRING029, "%NR%", Space(3))
  1252.     STRING029 = ReplaceStr(STRING029, "%DESC%", Space(35))
  1253.     STRING029 = ReplaceStr(STRING029, "%FILES_R%", Space(9))
  1254.     STRING029 = ReplaceStr(STRING029, "%BYTES_R%", Space(15))
  1255.     STRING029 = ReplaceStr(STRING029, "%FILES_L%", Space(9))
  1256.     STRING029 = ReplaceStr(STRING029, "%BYTES_L%", Space(15))
  1257.     Return
  1258.     :LABEL053
  1259.     STRING002 = PPEPath() + "dirs\tmp" + String(PcbNode())
  1260.     FCreate 1, STRING002, 1, 0
  1261.     Tokenize ReadLine(STRING034, ToInteger(INT013) * 2)
  1262.     STRING001 = GetToken()
  1263.     While (STRING001 <> "") Do
  1264.         If (InStr(STRING001, "-")) Then
  1265.             INT017 = InStr(STRING001, "-")
  1266.             INT018 = ToInteger(Mid(STRING001, 1, INT017 - 1))
  1267.             INT019 = ToInteger(Mid(STRING001, INT017 + 1, Len(STRING001) - INT017))
  1268.             For INTEGER011 = INT018 To INT019
  1269.                 FPutLn 1, ReadLine(STRING003, INTEGER011)
  1270.             Next
  1271.         Else
  1272.             FPutLn 1, ReadLine(STRING003, ToInteger(STRING001))
  1273.         Endif
  1274.         STRING001 = GetToken()
  1275.     EndWhile
  1276.     STRING003 = STRING002
  1277.     FClose 1
  1278.     Return
  1279.  
  1280. ;------------------------------------------------------------------------------
  1281. ;
  1282. ; Usage report (before postprocessing)
  1283. ;
  1284. ; ■ Statements used :
  1285. ;
  1286. ;    21      End
  1287. ;    5       Cls
  1288. ;    2       Wait
  1289. ;    329     Goto 
  1290. ;    354     Let 
  1291. ;    65      Print 
  1292. ;    2       PrintLn 
  1293. ;    210     If 
  1294. ;    4       DispFile 
  1295. ;    14      FCreate 
  1296. ;    1       FOpen 
  1297. ;    16      FClose 
  1298. ;    2       FGet 
  1299. ;    41      FPutLn 
  1300. ;    6       StartDisp 
  1301. ;    19      DefColor
  1302. ;    1       Delete 
  1303. ;    2       InputStr 
  1304. ;    1       InputYN 
  1305. ;    22      Gosub 
  1306. ;    15      Return
  1307. ;    3       Delay 
  1308. ;    4       Inc 
  1309. ;    4       Dec 
  1310. ;    12      Tokenize 
  1311. ;    11      KbdStuff 
  1312. ;    74      AnsiPos 
  1313. ;    1       FreshLine
  1314. ;    1       SaveScrn
  1315. ;    1       RestScrn
  1316. ;    1       FSeek 
  1317. ;    2       Redim 
  1318. ;
  1319. ;
  1320. ; ■ Functions used :
  1321. ;
  1322. ;    5       -
  1323. ;    17      *
  1324. ;    2       /
  1325. ;    19      %
  1326. ;    215     +
  1327. ;    98      -
  1328. ;    103     ==
  1329. ;    36      <>
  1330. ;    12      <
  1331. ;    16      <=
  1332. ;    13      >
  1333. ;    27      >=
  1334. ;    192     !
  1335. ;    36      &&
  1336. ;    32      ||
  1337. ;    16      Len(
  1338. ;    35      Upper()
  1339. ;    13      Mid()
  1340. ;    6       Left()
  1341. ;    17      Space()
  1342. ;    9       Chr()
  1343. ;    8       Asc()
  1344. ;    7       InStr()
  1345. ;    2       LTrim()
  1346. ;    2       Date()
  1347. ;    9       Time()
  1348. ;    2       YesChar()
  1349. ;    25      StripAtx()
  1350. ;    1       Strip()
  1351. ;    3       Inkey()
  1352. ;    49      String()
  1353. ;    2       Mask_Num()
  1354. ;    1       Mask_Ascii()
  1355. ;    5       CurConf()
  1356. ;    26      PPEPath()
  1357. ;    2       ValDate()
  1358. ;    4       PcbNode()
  1359. ;    37      ReadLine()
  1360. ;    42      GetToken()
  1361. ;    14      Exist()
  1362. ;    3       LangExt()
  1363. ;    16      GetX()
  1364. ;    11      GetY()
  1365. ;    2       HelpPath()
  1366. ;    1       TokCount()
  1367. ;    1       ScrText()
  1368. ;    12      ReplaceStr()
  1369. ;    1       ToBigStr()
  1370. ;    2       ToDate()
  1371. ;    14      ToInteger()
  1372. ;    1       IsNonStop()
  1373. ;
  1374. ;------------------------------------------------------------------------------
  1375. ;
  1376. ; Analysis flags : No flag
  1377. ;
  1378. ;------------------------------------------------------------------------------
  1379. ;
  1380. ; Postprocessing report
  1381. ;
  1382. ;    10      For/Next
  1383. ;    5       While/EndWhile
  1384. ;    106     If/Then or If/Then/Else
  1385. ;    4       Select Case
  1386. ;
  1387. ;------------------------------------------------------------------------------
  1388. ;                 AEGiS Corp - Break the routines, code against the machines!
  1389. ;------------------------------------------------------------------------------
  1390.