home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PWAULTP3.ZIP / PWAPRGMS.A02 / PWA95 / PWAEF221.ZIP / EFLAG.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-11-15  |  13KB  |  1,073 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.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  TBOOLEAN004(1)
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN012
  28.     Boolean  BOOLEAN013
  29.     String   STRING001
  30.     String   STRING002
  31.     String   STRING003
  32.     String   STRING004
  33.     String   STRING005
  34.     String   STRING006
  35.     String   TSTRING007(1)
  36.     String   TSTRING008(1)
  37.     String   TSTRING009(1)
  38.     String   TSTRING010(1)
  39.     String   STRING011
  40.     String   TSTRING012(1)
  41.     String   TSTRING013(1)
  42.     String   TSTRING014(1)
  43.     String   TSTRING015(1)
  44.     String   STRING016
  45.     String   TSTRING017(1)
  46.     String   STRING018
  47.     String   STRING019
  48.     String   STRING020
  49.     String   STRING021
  50.     String   STRING023
  51.     String   STRING026
  52.     String   STRING027
  53.     String   STRING028
  54.     String   STRING029
  55.     String   STRING030
  56.     String   STRING031
  57.     String   STRING032
  58.     String   STRING037
  59.     Byte     TBYTE001(1)
  60.     Byte     BYTE002
  61.     Byte     BYTE003
  62.     Byte     TBYTE004(1)
  63.     Byte     BYTE005
  64.     Byte     BYTE006
  65.     Byte     BYTE007
  66.     Byte     BYTE008
  67.     Byte     BYTE009
  68.     Byte     BYTE010
  69.     Byte     BYTE011
  70.     Byte     BYTE012
  71.     Byte     BYTE013
  72.     Byte     BYTE014
  73.     Byte     BYTE015
  74.     Byte     BYTE016
  75.     Byte     BYTE017
  76.     Byte     BYTE018
  77.     Byte     BYTE019
  78.     Byte     BYTE020
  79.     Byte     BYTE024
  80.     Byte     BYTE027
  81.     Byte     BYTE028
  82.     Byte     BYTE029
  83.     Byte     BYTE033
  84.     Byte     BYTE034
  85.     Byte     BYTE037
  86.     Byte     BYTE038
  87.     Byte     BYTE039
  88.     Byte     BYTE041
  89.     BigStr   BIGSTR001
  90.     Declare  Function FUNCTION001() String
  91.     Declare  Function FUNCTION002() String
  92.     Declare  Function FUNCTION003() Boolean
  93.     Declare  Procedure PROC001()
  94.     Declare  Procedure PROC002()
  95.     Declare  Procedure PROC003()
  96.     Declare  Procedure PROC004()
  97.     Declare  Procedure PROC005()
  98.     Declare  Procedure PROC006(Byte BYTE030, Byte BYTE031, Byte BYTE032)
  99.     Declare  Procedure PROC007()
  100.     Declare  Procedure PROC008(String STRING022)
  101.     Declare  Procedure PROC009()
  102.     Declare  Procedure PROC010(Byte BYTE025, Byte BYTE026, String STRING025, Var Boolean BOOLEAN011)
  103.     Declare  Procedure PROC011(Byte BYTE021, Var Byte BYTE022, Var Byte BYTE023, Var Boolean BOOLEAN009, String STRING024, Var Boolean BOOLEAN010)
  104.     Declare  Procedure PROC012()
  105.     Declare  Procedure PROC013()
  106.     Declare  Procedure PROC014(Boolean BOOLEAN014, Byte BYTE040)
  107.     Declare  Procedure PROC015()
  108.  
  109. ;------------------------------------------------------------------------------
  110.  
  111.     PROC001()
  112.     PROC004()
  113.     PROC005()
  114.     End
  115.  
  116. ;------------------------------------------------------------------------------
  117.  
  118.     Procedure PROC005()
  119.  
  120.     Byte     BYTE013
  121.     Byte     BYTE014
  122.     Byte     BYTE015
  123.     Byte     BYTE016
  124.     String   STRING021
  125.     Boolean  BOOLEAN005
  126.     Boolean  BOOLEAN006
  127.  
  128.     PROC002()
  129.     STRING021 = ""
  130.     BYTE013 = 1
  131.     BYTE014 = 1
  132.     PROC006(0, BYTE013, BYTE014)
  133.     BOOLEAN005 = 0
  134.     :LABEL001
  135.     If (BOOLEAN005) Goto LABEL007
  136.     Delay BYTE008
  137.     BYTE015 = Asc(Inkey())
  138.     Select Case (BYTE015)
  139.         Case 82, 54, 62, 93
  140.             BYTE014 = BYTE013
  141.             Inc BYTE013
  142.             If (BYTE013 > BYTE003) BYTE013 = 1
  143.             PROC006(0, BYTE013, BYTE014)
  144.         Case 76, 52, 9, 60, 91
  145.             BYTE014 = BYTE013
  146.             Dec BYTE013
  147.             If (BYTE013 < 1) BYTE013 = BYTE003
  148.             PROC006(0, BYTE013, BYTE014)
  149.         Case 85, 56
  150.             BYTE011 = GetY()
  151.             BYTE012 = BYTE011
  152.             STRING021 = FUNCTION001()
  153.             If (STRING021 <> "") Then
  154.                 PROC008(STRING021)
  155.                 If (!BOOLEAN003 && !BOOLEAN005) Then
  156.                     Print Chr(27) + "[u"
  157.                     ClrEol
  158.                     Goto LABEL002
  159.                 Endif
  160.                 BOOLEAN003 = 0
  161.                 :LABEL002
  162.                 PROC002()
  163.             Endif
  164.             STRING021 = ""
  165.             BYTE013 = 1
  166.             BYTE014 = 1
  167.             PROC006(0, BYTE013, BYTE014)
  168.         Case 68, 50, 32
  169.             If ((BYTE015 == 32) && (BOOLEAN002 == 0)) Goto LABEL004
  170.             BYTE011 = GetY()
  171.             BYTE012 = 0
  172.             STRING021 = FUNCTION002()
  173.             If (STRING021 <> "") Then
  174.                 PROC008(STRING021)
  175.                 If (!BOOLEAN003 && !BOOLEAN005) Then
  176.                     Print Chr(27) + "[u"
  177.                     ClrEol
  178.                     Goto LABEL003
  179.                 Endif
  180.                 BOOLEAN003 = 0
  181.                 :LABEL003
  182.                 PROC002()
  183.             Endif
  184.             STRING021 = ""
  185.             BYTE013 = 1
  186.             BYTE014 = 1
  187.             PROC006(0, BYTE013, BYTE014)
  188.             :LABEL004
  189.         Case 33
  190.             PROC012()
  191.             PROC002()
  192.             PROC006(0, BYTE013, BYTE014)
  193.         Case 63
  194.             If (!BOOLEAN003 && !BOOLEAN005) Then
  195.                 PROC013()
  196.             Else
  197.                 BOOLEAN003 = 0
  198.             Endif
  199.         Case 13
  200.             PROC010(0, BYTE013, STRING021, BOOLEAN005)
  201.             If (BOOLEAN005) Goto LABEL005
  202.             BOOLEAN003 = 0
  203.             For BYTE016 = 1 To U_PageLen
  204.                 TBOOLEAN004(BYTE016) = 0
  205.             Next
  206.             PROC002()
  207.             PROC006(0, BYTE013, BYTE014)
  208.             :LABEL005
  209.         Case 27
  210.             If (BOOLEAN001) Then
  211.                 Print Chr(27) + "[u"
  212.                 ClrEol
  213.                 KbdStuff "N"
  214.                 BOOLEAN005 = 1
  215.             Endif
  216.             PROC011(0, BYTE013, BYTE014, BOOLEAN005, Chr(BYTE015), BOOLEAN006)
  217.         Case BOOLEAN006
  218.             PROC006(0, BYTE013, BYTE014)
  219.             If (BOOLEAN001) PROC010(0, BYTE013, STRING021, BOOLEAN005)
  220.             If (BOOLEAN005) Goto LABEL006
  221.             PROC002()
  222.             PROC006(0, BYTE013, BYTE014)
  223.     End Select
  224.     :LABEL006
  225.     Goto LABEL001
  226.     :LABEL007
  227.  
  228.     EndProc
  229.  
  230.  
  231. ;------------------------------------------------------------------------------
  232.  
  233.     Procedure PROC008(String STRING022)
  234.  
  235.     Byte     BYTE017
  236.     Byte     BYTE018
  237.     Byte     BYTE019
  238.     Byte     BYTE020
  239.     String   STRING023
  240.     Boolean  BOOLEAN007
  241.     Boolean  BOOLEAN008
  242.  
  243.     BYTE017 = 1
  244.     BYTE018 = 1
  245.     PROC003()
  246.     PROC006(1, BYTE017, BYTE018)
  247.     BOOLEAN007 = 0
  248.     :LABEL008
  249.     If (BOOLEAN007) Goto LABEL012
  250.     Delay BYTE008
  251.     STRING023 = Inkey()
  252.     BYTE019 = Asc(STRING023)
  253.     Select Case (BYTE019)
  254.         Case 85, 56
  255.             PROC009()
  256.             STRING022 = FUNCTION001()
  257.             If (STRING022 == "") Then
  258.                 BOOLEAN007 = 1
  259.             Endif
  260.         Case 68, 50
  261.             PROC009()
  262.             STRING022 = FUNCTION002()
  263.             If (STRING022 == "") Then
  264.                 BOOLEAN007 = 1
  265.             Endif
  266.         Case 32
  267.             PROC009()
  268.             If (BOOLEAN002) Goto LABEL010
  269.             Forward 12
  270.             If (TBOOLEAN004(BYTE012)) Goto LABEL009
  271.             Print STRING018 + Chr(13)
  272.             TBOOLEAN004(BYTE012) = 1
  273.             Inc BYTE009
  274.             Goto LABEL010
  275.             :LABEL009
  276.             Print " " + Chr(13)
  277.             TBOOLEAN004(BYTE012) = 0
  278.             Dec BYTE009
  279.             :LABEL010
  280.             STRING022 = FUNCTION002()
  281.             If (STRING022 == "") Then
  282.                 BOOLEAN007 = 1
  283.             Endif
  284.         Case 82, 54
  285.             BYTE018 = BYTE017
  286.             Inc BYTE017
  287.             If (BYTE017 > BYTE006) BYTE017 = 1
  288.             PROC006(1, BYTE017, BYTE018)
  289.         Case 76, 52
  290.             BYTE018 = BYTE017
  291.             Dec BYTE017
  292.             If (BYTE017 < 1) BYTE017 = BYTE006
  293.             PROC006(1, BYTE017, BYTE018)
  294.         Case 72
  295.             BYTE018 = BYTE017
  296.             BYTE017 = 1
  297.             PROC006(1, BYTE017, BYTE018)
  298.         Case 69
  299.             BYTE018 = BYTE017
  300.             BYTE017 = BYTE006
  301.             PROC006(1, BYTE017, BYTE018)
  302.         Case 27
  303.             If (BOOLEAN001) Then
  304.                 BOOLEAN007 = BOOLEAN001
  305.                 PROC009()
  306.                 Print Chr(27) + "[u"
  307.                 ClrEol
  308.             Endif
  309.         Case 33
  310.             PROC012()
  311.             PROC003()
  312.             PROC006(1, BYTE017, BYTE018)
  313.         Case 63
  314.             If (!BOOLEAN003 && !BOOLEAN007) Then
  315.                 PROC013()
  316.             Else
  317.                 BOOLEAN003 = 0
  318.             Endif
  319.         Case 13
  320.             PROC010(1, BYTE017, STRING022, BOOLEAN007)
  321.             If (BOOLEAN007) Goto LABEL011
  322.             BOOLEAN003 = 0
  323.             For BYTE020 = 1 To U_PageLen
  324.                 TBOOLEAN004(BYTE020) = 0
  325.             Next
  326.             PROC003()
  327.             PROC006(1, BYTE017, BYTE018)
  328.             :LABEL011
  329.             PROC011(1, BYTE017, BYTE018, BOOLEAN007, STRING023, BOOLEAN008)
  330.         Case BOOLEAN008
  331.             PROC006(1, BYTE017, BYTE018)
  332.             If (BOOLEAN001) PROC010(1, BYTE017, STRING022, BOOLEAN007)
  333.             BOOLEAN007 = BOOLEAN001
  334.     End Select
  335.     Goto LABEL008
  336.     :LABEL012
  337.  
  338.     EndProc
  339.  
  340.  
  341. ;------------------------------------------------------------------------------
  342.  
  343.     Procedure PROC011(Byte BYTE021, Var Byte BYTE022, Var Byte BYTE023, Var Boolean BOOLEAN009, String STRING024, Var Boolean BOOLEAN010)
  344.  
  345.     Byte     BYTE024
  346.  
  347.     BYTE024 = 1
  348.     If (BYTE021) Goto LABEL015
  349.     :LABEL013
  350.     If (BOOLEAN009) Goto LABEL014
  351.     If (Lower(STRING024) == Lower(TSTRING009(BYTE024))) Then
  352.         If ((Lower(TSTRING010(BYTE024)) == "nstop") && Exist(STRING020)) Then
  353.             Print Chr(13)
  354.             ClrEol
  355.             Print Chr(13)
  356.             If (FUNCTION003()) Then
  357.                 BYTE023 = BYTE022
  358.                 BYTE022 = BYTE024
  359.                 BOOLEAN009 = 1
  360.                 BOOLEAN010 = 1
  361.                 PROC015()
  362.                 KbdStuff "NS"
  363.             Else
  364.                 PROC002()
  365.                 PROC006(BYTE021, BYTE022, BYTE022)
  366.                 BOOLEAN009 = 0
  367.                 BOOLEAN010 = 0
  368.                 Goto LABEL014
  369.             Endif
  370.         Else
  371.             BYTE023 = BYTE022
  372.             BYTE022 = BYTE024
  373.             BOOLEAN009 = 1
  374.             BOOLEAN010 = 0
  375.         Endif
  376.     Else
  377.         Inc BYTE024
  378.         If (BYTE024 > BYTE003) Goto LABEL014
  379.     Endif
  380.     Goto LABEL013
  381.     :LABEL014
  382.     Goto LABEL016
  383.     :LABEL015
  384.     If (BOOLEAN009) Goto LABEL016
  385.     If ((Asc(STRING024) == 27) && (TSTRING015(BYTE024) == "quit")) Then
  386.         BYTE023 = BYTE022
  387.         BYTE022 = BYTE024
  388.         BOOLEAN009 = 1
  389.     ElseIf (Lower(STRING024) == Lower(TSTRING014(BYTE024))) Then
  390.         BOOLEAN009 = 1
  391.         BYTE023 = BYTE022
  392.         BYTE022 = BYTE024
  393.     Else
  394.         Inc BYTE024
  395.         If (BYTE024 > BYTE006) Goto LABEL016
  396.     Endif
  397.     Goto LABEL015
  398.     :LABEL016
  399.  
  400.     EndProc
  401.  
  402.  
  403. ;------------------------------------------------------------------------------
  404.  
  405.     Procedure PROC010(Byte BYTE025, Byte BYTE026, String STRING025, Var Boolean BOOLEAN011)
  406.  
  407.     String   STRING026
  408.     BigStr   BIGSTR001
  409.     Byte     BYTE027
  410.  
  411.     BOOLEAN011 = 1
  412.     If (BYTE025) Goto LABEL017
  413.     STRING026 = Lower(TSTRING010(BYTE026))
  414.     Print Chr(13)
  415.     ClrEol
  416.     Print Chr(13)
  417.     Select Case (STRING026)
  418.         Case "cont"
  419.             PROC015()
  420.             KbdStuff Chr(13)
  421.         Case "flag"
  422.             If (BYTE009 == 0) Then
  423.                 If (STRING025 <> "") Then
  424.                     KbdStuff "FL " + STRING025
  425.                 Else
  426.                     KbdStuff "FL"
  427.                 Endif
  428.             Else
  429.                 For BYTE027 = 1 To U_PageLen
  430.                     If (TBOOLEAN004(BYTE027)) Then
  431.                         BIGSTR001 = BIGSTR001 + " " + TSTRING017(BYTE027)
  432.                         TBOOLEAN004(BYTE027) = 0
  433.                         Dec BYTE009
  434.                     Endif
  435.                 Next
  436.                 SaveScrn
  437.                 Command 0, "FL " + BIGSTR001
  438.                 Wait
  439.                 Print Chr(27) + "[u" + Chr(27) + "[" + String(U_PageLen - 1) + "A"
  440.                 RestScrn
  441.                 BOOLEAN011 = 0
  442.             Endif
  443.         Case "view"
  444.             If (STRING025 <> "") Then
  445.                 KbdStuff "V " + STRING025
  446.             Else
  447.                 KbdStuff "V"
  448.             Endif
  449.         Case "nstop"
  450.             If (Exist(PPEPath() + "YESNO.CFG")) Then
  451.                 If (FUNCTION003()) Then
  452.                     KbdStuff "NS"
  453.                 Else
  454.                     BOOLEAN011 = 0
  455.                 Endif
  456.             Else
  457.                 PROC015()
  458.                 KbdStuff "NS"
  459.             Endif
  460.         Case "stop"
  461.             PROC015()
  462.             KbdStuff "N"
  463.         Case Else
  464.             SaveScrn
  465.             DispStr STRING026
  466.             BOOLEAN003 = 1
  467.     End Select
  468.     Goto LABEL018
  469.     :LABEL017
  470.     STRING026 = Lower(TSTRING015(BYTE026))
  471.     Select Case (STRING026)
  472.         Case "flag"
  473.             PROC009()
  474.             Print Chr(27) + "[u"
  475.             ClrEol
  476.             If (BYTE009 == 0) Then
  477.                 KbdStuff "FL " + STRING025
  478.                 End
  479.             Else
  480.                 For BYTE027 = 1 To U_PageLen
  481.                     If (TBOOLEAN004(BYTE027)) Then
  482.                         BIGSTR001 = BIGSTR001 + " " + TSTRING017(BYTE027)
  483.                         TBOOLEAN004(BYTE027) = 0
  484.                         Dec BYTE009
  485.                     Endif
  486.                 Next
  487.                 SaveScrn
  488.                 Command 0, "fl " + BIGSTR001
  489.                 Wait
  490.                 Print Chr(27) + "[u" + Chr(27) + "[" + String(U_PageLen - 1) + "A"
  491.                 RestScrn
  492.                 BYTE012 = 0
  493.                 BOOLEAN011 = 0
  494.             Endif
  495.         Case "view"
  496.             PROC009()
  497.             Print Chr(27) + "[u"
  498.             ClrEol
  499.             KbdStuff "V " + STRING025
  500.             SaveScrn
  501.             End
  502.         Case "quit"
  503.             PROC009()
  504.             Print Chr(27) + "[u"
  505.             ClrEol
  506.         Case Else
  507.             PROC009()
  508.             Print Chr(27) + "[u"
  509.             ClrEol
  510.             SaveScrn
  511.             DispStr STRING026 + " " + STRING025
  512.             Print Chr(27) + "[u" + Chr(27) + "[" + String(U_PageLen - 1) + "A"
  513.             RestScrn
  514.             BOOLEAN003 = 1
  515.             StartDisp 0
  516.             StartDisp 2
  517.     End Select
  518.     :LABEL018
  519.  
  520.     EndProc
  521.  
  522.  
  523. ;------------------------------------------------------------------------------
  524.  
  525.     Procedure PROC015()
  526.  
  527.     Byte     BYTE028
  528.     String   STRING027
  529.  
  530.     If (BYTE009) Then
  531.         For BYTE028 = 1 To U_PageLen
  532.             If (TBOOLEAN004(BYTE028)) Then
  533.                 STRING027 = STRING027 + " " + TSTRING017(BYTE028)
  534.                 TBOOLEAN004(BYTE028) = 0
  535.                 Dec BYTE009
  536.             Endif
  537.         Next
  538.         Command 0, "fl " + STRING027
  539.         Wait
  540.     Endif
  541.  
  542.     EndProc
  543.  
  544.  
  545. ;------------------------------------------------------------------------------
  546.  
  547.     Procedure PROC009()
  548.  
  549.     Print Chr(27) + "[u" + Chr(27) + "[" + String(BYTE011 - BYTE010) + "A"
  550.     Print STRING019 + Chr(13)
  551.  
  552.     EndProc
  553.  
  554.  
  555. ;------------------------------------------------------------------------------
  556.  
  557.     Function FUNCTION001() String
  558.  
  559.     String   STRING029
  560.     String   STRING030
  561.  
  562.     STRING029 = ""
  563.     While (BYTE012 > 0) Do
  564.         Dec BYTE012
  565.         If (TSTRING017(BYTE012) <> "") Then
  566.             PROC007()
  567.             STRING029 = TSTRING017(BYTE012)
  568.             Break
  569.         Endif
  570.     EndWhile
  571.     FUNCTION001 = STRING029
  572.  
  573.     EndFunc
  574.  
  575.  
  576. ;------------------------------------------------------------------------------
  577.  
  578.     Function FUNCTION002() String
  579.  
  580.     String   STRING031
  581.     String   STRING032
  582.  
  583.     STRING031 = ""
  584.     While (BYTE012 < BYTE011) Do
  585.         Inc BYTE012
  586.         If (TSTRING017(BYTE012) <> "") Then
  587.             PROC007()
  588.             STRING031 = TSTRING017(BYTE012)
  589.             Break
  590.         Endif
  591.     EndWhile
  592.     FUNCTION002 = STRING031
  593.  
  594.     EndFunc
  595.  
  596.  
  597. ;------------------------------------------------------------------------------
  598.  
  599.     Procedure PROC007()
  600.  
  601.     Print Chr(27) + "[u" + Chr(27) + "[" + String(BYTE011 - BYTE012) + "A"
  602.     BYTE010 = BYTE012
  603.     STRING019 = ScrText(1, BYTE010, BYTE007, 1)
  604.     Print STRING016 + StripAtx(STRING019) + Chr(13)
  605.  
  606.     EndProc
  607.  
  608.  
  609. ;------------------------------------------------------------------------------
  610.  
  611.     Procedure PROC004()
  612.  
  613.     String   STRING032
  614.     Byte     BYTE029
  615.  
  616.     For BYTE029 = 1 To U_PageLen
  617.         TSTRING017(BYTE029) = ""
  618.     Next
  619.     BYTE009 = 0
  620.     BYTE012 = 1
  621.     While (BYTE012 > 0) Do
  622.         TBOOLEAN004(BYTE012) = 0
  623.         ScrFile BYTE012, STRING032
  624.         If (BYTE012 <> 0) Then
  625.             TSTRING017(BYTE012) = STRING032
  626.             Inc BYTE012
  627.         Endif
  628.     EndWhile
  629.  
  630.     EndProc
  631.  
  632.  
  633. ;------------------------------------------------------------------------------
  634.  
  635.     Procedure PROC006(Byte BYTE030, Byte BYTE031, Byte BYTE032)
  636.  
  637.     Print Chr(27) + "[u" + Chr(13)
  638.     If (BYTE030) Goto LABEL019
  639.     Forward TBYTE001(BYTE032) - 1
  640.     Print TSTRING007(BYTE032)
  641.     Goto LABEL020
  642.     :LABEL019
  643.     Forward TBYTE004(BYTE032) - 1
  644.     Print TSTRING012(BYTE032)
  645.     :LABEL020
  646.     Print Chr(13)
  647.     If (BYTE030) Goto LABEL021
  648.     Forward TBYTE001(BYTE031) - 1
  649.     Print TSTRING008(BYTE031)
  650.     Goto LABEL022
  651.     :LABEL021
  652.     Forward TBYTE004(BYTE031) - 1
  653.     Print TSTRING013(BYTE031)
  654.     :LABEL022
  655.     Backup 1
  656.  
  657.     EndProc
  658.  
  659.  
  660. ;------------------------------------------------------------------------------
  661.  
  662.     Procedure PROC003()
  663.  
  664.     Byte     BYTE033
  665.  
  666.     DefColor
  667.     Print Chr(27) + "[u" + Chr(13)
  668.     ClrEol
  669.     Print Chr(13) + Chr(27) + "[s"
  670.     Print STRING011
  671.     TBYTE004(1) = GetX()
  672.     For BYTE033 = 1 To BYTE006
  673.         Print TSTRING012(BYTE033) + Space(BYTE005)
  674.         TBYTE004(1 + BYTE033) = TBYTE004(BYTE033) + Len(StripAtx(TSTRING012(BYTE033))) + BYTE005
  675.     Next
  676.     ClrEol
  677.     DefColor
  678.  
  679.     EndProc
  680.  
  681.  
  682. ;------------------------------------------------------------------------------
  683.  
  684.     Procedure PROC002()
  685.  
  686.     Byte     BYTE034
  687.  
  688.     Print Chr(27) + "[s"
  689.     Print STRING006
  690.     TBYTE001(1) = GetX()
  691.     For BYTE034 = 1 To BYTE003
  692.         TBYTE001(BYTE034 + 1) = TBYTE001(BYTE034) + Len(StripAtx(TSTRING007(BYTE034))) + BYTE002
  693.         Print TSTRING007(BYTE034) + Space(BYTE002)
  694.     Next
  695.  
  696.     EndProc
  697.  
  698.  
  699. ;------------------------------------------------------------------------------
  700.  
  701.     Procedure PROC001()
  702.  
  703.     String   STRING033
  704.     String   STRING034
  705.     String   STRING035
  706.     String   STRING036
  707.     Byte     BYTE035
  708.     Byte     BYTE036
  709.  
  710.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "EFLAG: Viewing file dirs", " "
  711.     GetUser
  712.     If (U_PageLen) Goto LABEL023
  713.     End
  714.     Goto LABEL024
  715.     :LABEL023
  716.     Redim TSTRING017, U_PageLen + 1
  717.     Redim TBOOLEAN004, U_PageLen + 1
  718.     :LABEL024
  719.     STRING033 = PPEPath() + "EFLAG.CFG"
  720.     STRING034 = PPEPath() + "PR1CFG" + LangExt()
  721.     STRING035 = PPEPath() + "PR2CFG" + LangExt()
  722.     STRING020 = PPEPath() + "YESNOCFG" + LangExt()
  723.     If (Exist(STRING033)) Then
  724.         STRING036 = ReadLine(STRING033, 1)
  725.         FClose -1
  726.         Tokenize STRING036
  727.         STRING016 = GetToken()
  728.         BYTE007 = S2I(GetToken(), 10)
  729.         If (Lower(GetToken()) == "yes") Then
  730.             BOOLEAN001 = 1
  731.         Else
  732.             BOOLEAN001 = 0
  733.         Endif
  734.         If (Lower(GetToken()) == "yes") Then
  735.             BOOLEAN002 = 1
  736.         Else
  737.             BOOLEAN002 = 0
  738.         Endif
  739.         BYTE008 = S2I(GetToken(), 10)
  740.         STRING018 = GetToken()
  741.     Else
  742.         STRING016 = GetToken()
  743.         If (STRING016 <> "") Then
  744.             BYTE007 = S2I(GetToken(), 10)
  745.             If (Lower(GetToken()) == "yes") Then
  746.                 BOOLEAN001 = 1
  747.             Else
  748.                 BOOLEAN001 = 0
  749.             Endif
  750.             If (Lower(GetToken()) == "yes") Then
  751.                 BOOLEAN002 = 1
  752.             Else
  753.                 BOOLEAN002 = 0
  754.             Endif
  755.             BYTE008 = S2I(GetToken(), 10)
  756.             STRING018 = GetToken()
  757.         Else
  758.             STRING016 = "@X4F"
  759.             BYTE007 = 79
  760.             BOOLEAN001 = 1
  761.             BOOLEAN002 = 0
  762.             BYTE008 = 1
  763.             STRING018 = "@X0F*"
  764.         Endif
  765.     Endif
  766.     If (Exist(STRING034)) Then
  767.         BYTE036 = FNext()
  768.         FOpen BYTE036, STRING034, 0, 2
  769.         FDefIn BYTE036
  770.         FDGet STRING006
  771.         FDGet STRING036
  772.         BYTE002 = S2I(STRING036, 10)
  773.         FDGet STRING036
  774.         BYTE003 = S2I(STRING036, 10)
  775.         If (BYTE003) Then
  776.             Redim TSTRING007, BYTE003 + 1
  777.             Redim TSTRING008, BYTE003 + 1
  778.             Redim TSTRING009, BYTE003 + 1
  779.             Redim TSTRING010, BYTE003 + 1
  780.             Redim TBYTE001, BYTE003 + 1
  781.             For BYTE035 = 1 To BYTE003
  782.                 FDGet TSTRING007(BYTE035)
  783.                 FDGet TSTRING008(BYTE035)
  784.                 FDGet TSTRING009(BYTE035)
  785.                 FDGet TSTRING010(BYTE035)
  786.             Next
  787.             FClose BYTE036
  788.         Else
  789.             End
  790.         Endif
  791.     Else
  792.         STRING006 = "@X08-[@X0FEFLAG 2.21@X08]-[@X0F@MINLEFT@ @X07min left@X08] @X07"
  793.         BYTE002 = 0
  794.         BYTE003 = 5
  795.         Redim TSTRING007, 6
  796.         Redim TSTRING008, 6
  797.         Redim TSTRING009, 6
  798.         Redim TSTRING010, 6
  799.         Redim TBYTE001, 6
  800.         TSTRING007(1) = "@X08 Cont @X07"
  801.         TSTRING008(1) = "@X4F CONT @X07"
  802.         TSTRING009(1) = "C"
  803.         TSTRING010(1) = "cont"
  804.         TSTRING007(2) = "@X08 Flag @X07"
  805.         TSTRING008(2) = "@X4F FLAG @X07"
  806.         TSTRING009(2) = "F"
  807.         TSTRING010(2) = "flag"
  808.         TSTRING007(3) = "@X08 View @X07"
  809.         TSTRING008(3) = "@X4F VIEW @X07"
  810.         TSTRING009(3) = "V"
  811.         TSTRING010(3) = "view"
  812.         TSTRING007(4) = "@X08 NStop @X07"
  813.         TSTRING008(4) = "@X4F NSTOP @X07"
  814.         TSTRING009(4) = "N"
  815.         TSTRING010(4) = "nstop"
  816.         TSTRING007(5) = "@X08 Stop @X07"
  817.         TSTRING008(5) = "@X4F STOP @X07"
  818.         TSTRING009(5) = "S"
  819.         TSTRING010(5) = "stop"
  820.     Endif
  821.     If (Exist(STRING035)) Then
  822.         BYTE036 = FNext()
  823.         FOpen BYTE036, STRING035, 0, 2
  824.         FDefIn BYTE036
  825.         FDGet STRING011
  826.         FDGet STRING036
  827.         BYTE005 = S2I(STRING036, 10)
  828.         FDGet STRING036
  829.         BYTE006 = S2I(STRING036, 10)
  830.         If (BYTE006) Then
  831.             Redim TSTRING012, BYTE006 + 1
  832.             Redim TSTRING013, BYTE006 + 1
  833.             Redim TSTRING014, BYTE006 + 1
  834.             Redim TSTRING015, BYTE006 + 1
  835.             Redim TBYTE004, BYTE006 + 1
  836.             For BYTE035 = 1 To BYTE006
  837.                 FDGet TSTRING012(BYTE035)
  838.                 FDGet TSTRING013(BYTE035)
  839.                 FDGet TSTRING014(BYTE035)
  840.                 FDGet TSTRING015(BYTE035)
  841.             Next
  842.             FClose BYTE036
  843.         Else
  844.             End
  845.         Endif
  846.     Else
  847.         STRING011 = "@X08[@X0FFlag Cmds@X08]-[@X0FSP=tag@X08] @X07"
  848.         BYTE005 = 0
  849.         BYTE006 = 3
  850.         Redim TSTRING012, 3
  851.         Redim TSTRING013, 3
  852.         Redim TSTRING014, 3
  853.         Redim TSTRING015, 3
  854.         Redim TBYTE004, 3
  855.         TSTRING012(1) = "@X08 Flag @X07"
  856.         TSTRING013(1) = "@X4F FLAG @X07"
  857.         TSTRING014(1) = "F"
  858.         TSTRING015(1) = "flag"
  859.         TSTRING012(2) = "@X08 View @X07"
  860.         TSTRING013(2) = "@X4F VIEW @X07"
  861.         TSTRING014(2) = "V"
  862.         TSTRING015(2) = "view"
  863.         TSTRING012(3) = "@X08 Quit @X07"
  864.         TSTRING013(3) = "@X4F QUIT @X07"
  865.         TSTRING014(3) = "Q"
  866.         TSTRING015(3) = "quit"
  867.     Endif
  868.     BOOLEAN003 = 0
  869.     RestScrn
  870.     ClrEol
  871.  
  872.     EndProc
  873.  
  874.  
  875. ;------------------------------------------------------------------------------
  876.  
  877.     Procedure PROC012()
  878.  
  879.     String   STRING037
  880.  
  881.     STRING037 = "@X0FEnhanced Flag v2.21 by Drew [PWA]@X07"
  882.     DefColor
  883.     Print Chr(27) + "[u"
  884.     ClrEol
  885.     Print Chr(13)
  886.     Print Space((79 - Len(StripAtx(STRING037))) / 2) + STRING037
  887.     Delay 35
  888.     Print Chr(13)
  889.     ClrEol
  890.     Print Chr(13)
  891.  
  892.     EndProc
  893.  
  894.  
  895. ;------------------------------------------------------------------------------
  896.  
  897.     Procedure PROC013()
  898.  
  899.     If (Exist(PPEPath() + "EFLAGHLP" + LangExt())) Then
  900.         SaveScrn
  901.         DispFile PPEPath() + "EFLAGHLP" + LangExt(), 0
  902.         RestScrn
  903.         BOOLEAN003 = 1
  904.     Endif
  905.  
  906.     EndProc
  907.  
  908.  
  909. ;------------------------------------------------------------------------------
  910.  
  911.     Function FUNCTION003() Boolean
  912.  
  913.     Byte     BYTE037
  914.     Byte     BYTE038
  915.     Byte     BYTE039
  916.     Boolean  BOOLEAN013
  917.     Boolean  BOOLEAN014
  918.  
  919.     STRING001 = ReadLine(STRING020, 1)
  920.     STRING002 = ReadLine(STRING020, 2)
  921.     STRING003 = ReadLine(STRING020, 3)
  922.     STRING004 = ReadLine(STRING020, 4)
  923.     STRING005 = ReadLine(STRING020, 5)
  924.     Print STRING001
  925.     BYTE039 = GetX()
  926.     BYTE037 = 0
  927.     PROC014(BYTE037, BYTE039)
  928.     BOOLEAN013 = 0
  929.     :LABEL025
  930.     If (BOOLEAN013) Goto LABEL026
  931.     BYTE038 = Asc(Inkey())
  932.     Delay 1
  933.     Select Case (BYTE038)
  934.         Case 13
  935.             BOOLEAN013 = 1
  936.         Case 76, 52, 85, 56
  937.             BYTE037 = !BYTE037
  938.             PROC014(BYTE037, BYTE039)
  939.         Case 82, 54, 68, 50
  940.             BYTE037 = !BYTE037
  941.             PROC014(BYTE037, BYTE039)
  942.         Case 89, 121
  943.             BYTE037 = 1
  944.             BOOLEAN013 = 1
  945.             PROC014(BYTE037, BYTE039)
  946.         Case 78, 110
  947.             BYTE037 = 0
  948.             BOOLEAN013 = 1
  949.             PROC014(BYTE037, BYTE039)
  950.     End Select
  951.     Goto LABEL025
  952.     :LABEL026
  953.     Print Chr(13)
  954.     ClrEol
  955.     Print Chr(13)
  956.     FUNCTION003 = BYTE037
  957.  
  958.     EndFunc
  959.  
  960.  
  961. ;------------------------------------------------------------------------------
  962.  
  963.     Procedure PROC014(Boolean BOOLEAN014, Byte BYTE040)
  964.  
  965.     Byte     BYTE041
  966.  
  967.     Print Chr(13)
  968.     Forward BYTE040 - 1
  969.     If (BOOLEAN014) Then
  970.         Print STRING002 + STRING005
  971.     Else
  972.         Print STRING004
  973.         BYTE041 = GetX()
  974.         Print STRING003
  975.         Backup GetX() - BYTE041
  976.     Endif
  977.  
  978.     EndProc
  979.  
  980.  
  981. ;------------------------------------------------------------------------------
  982. ;
  983. ; Usage report (before postprocessing)
  984. ;
  985. ; ■ Statements used :
  986. ;
  987. ;    6       End
  988. ;    16      ClrEol
  989. ;    3       Wait
  990. ;    190     Goto 
  991. ;    214     Let 
  992. ;    46      Print 
  993. ;    112     If 
  994. ;    1       DispFile 
  995. ;    2       FOpen 
  996. ;    3       FClose 
  997. ;    2       StartDisp 
  998. ;    1       GetUser
  999. ;    3       DefColor
  1000. ;    4       Delay 
  1001. ;    7       Inc 
  1002. ;    7       Dec 
  1003. ;    1       Tokenize 
  1004. ;    12      KbdStuff 
  1005. ;    2       DispStr 
  1006. ;    1       WrUNet 
  1007. ;    2       Backup 
  1008. ;    6       Forward 
  1009. ;    6       SaveScrn
  1010. ;    5       RestScrn
  1011. ;    2       FDefIn 
  1012. ;    14      FDGet 
  1013. ;    22      Redim 
  1014. ;    1       ScrFile 
  1015. ;    15      EndProc
  1016. ;    3       EndFunc
  1017. ;    3       Command 
  1018. ;
  1019. ;
  1020. ; ■ Functions used :
  1021. ;
  1022. ;    1       -
  1023. ;    1       /
  1024. ;    105     +
  1025. ;    12      -
  1026. ;    70      ==
  1027. ;    8       <>
  1028. ;    13      <
  1029. ;    10      <=
  1030. ;    6       >
  1031. ;    20      >=
  1032. ;    116     !
  1033. ;    29      &&
  1034. ;    32      ||
  1035. ;    3       Len(
  1036. ;    11      Lower()
  1037. ;    3       Space()
  1038. ;    43      Chr()
  1039. ;    4       Asc()
  1040. ;    4       StripAtx()
  1041. ;    3       Inkey()
  1042. ;    5       String()
  1043. ;    7       PPEPath()
  1044. ;    1       PcbNode()
  1045. ;    6       ReadLine()
  1046. ;    1       UN_Name()
  1047. ;    1       UN_City()
  1048. ;    12      GetToken()
  1049. ;    6       Exist()
  1050. ;    8       S2I()
  1051. ;    5       LangExt()
  1052. ;    5       GetX()
  1053. ;    2       GetY()
  1054. ;    1       ScrText()
  1055. ;    2       FNext()
  1056. ;
  1057. ;------------------------------------------------------------------------------
  1058. ;
  1059. ; Analysis flags : No flag
  1060. ;
  1061. ;------------------------------------------------------------------------------
  1062. ;
  1063. ; Postprocessing report
  1064. ;
  1065. ;    10      For/Next
  1066. ;    3       While/EndWhile
  1067. ;    41      If/Then or If/Then/Else
  1068. ;    5       Select Case
  1069. ;
  1070. ;------------------------------------------------------------------------------
  1071. ;                 AEGiS Corp - Break the routines, code against the machines!
  1072. ;------------------------------------------------------------------------------
  1073.