home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / vrac / agspgp01.zip / PGPSERVR.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-05-18  |  16KB  |  1,209 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.     Integer  INTEGER001
  23.     Integer  INTEGER002
  24.     Integer  INTEGER003
  25.     Integer  INTEGER004
  26.     Integer  INTEGER005
  27.     Integer  INTEGER006
  28.     Integer  INTEGER007
  29.     Integer  INTEGER008
  30.     Integer  INTEGER009
  31.     Integer  INTEGER010
  32.     Integer  INTEGER011
  33.     Integer  INTEGER012
  34.     Integer  INTEGER013
  35.     Integer  INTEGER014
  36.     Integer  INTEGER015
  37.     Integer  INTEGER016
  38.     Integer  INTEGER017
  39.     Integer  INTEGER018
  40.     Integer  INTEGER019
  41.     Integer  INTEGER020
  42.     Integer  INTEGER021
  43.     Integer  INTEGER022
  44.     Integer  INTEGER023
  45.     Integer  INTEGER024
  46.     Integer  INTEGER025
  47.     Integer  INTEGER026
  48.     Integer  INTEGER034
  49.     Real     REAL001
  50.     Real     REAL002
  51.     String   STRING001
  52.     String   STRING002
  53.     String   STRING003
  54.     String   STRING004
  55.     String   STRING005
  56.     String   STRING006
  57.     String   TSTRING007(20)
  58.     String   STRING008
  59.     String   STRING009
  60.     String   STRING010
  61.     String   STRING011
  62.     String   STRING012
  63.     String   STRING013
  64.     String   STRING014
  65.     String   STRING015
  66.     String   STRING016
  67.     String   STRING017
  68.     String   STRING018
  69.     String   STRING019
  70.     String   STRING020
  71.     String   STRING021
  72.     String   STRING022
  73.     String   STRING023
  74.     String   STRING024
  75.     String   STRING028
  76.     String   STRING030
  77.     String   STRING031
  78.     String   STRING032
  79.     Time     TIME001
  80.     BigStr   BIGSTR001
  81.     BigStr   BIGSTR002
  82.     Declare  Function FUNCTION001(Integer INTEGER030) String
  83.     Declare  Function FUNCTION002(Integer INTEGER031, Integer INTEGER032, Integer INTEGER033, String STRING029) String
  84.     Declare  Procedure PROC001(String STRING025)
  85.     Declare  Procedure PROC002()
  86.     Declare  Procedure PROC003(Integer INTEGER027)
  87.     Declare  Procedure PROC004(Integer INTEGER028)
  88.     Declare  Procedure PROC005()
  89.     Declare  Procedure PROC006()
  90.     Declare  Procedure PROC007()
  91.     Declare  Procedure PROC008(String STRING026)
  92.     Declare  Procedure PROC009(String STRING027)
  93.     Declare  Procedure PROC010()
  94.     Declare  Procedure PROC011()
  95.     Declare  Procedure PROC012(Boolean BOOLEAN004)
  96.     Declare  Procedure PROC013()
  97.     Declare  Procedure PROC014()
  98.     Declare  Procedure PROC015(Integer INTEGER029)
  99.     Declare  Procedure PROC016()
  100.     Declare  Procedure PROC017()
  101.     Declare  Procedure PROC018()
  102.     Declare  Procedure PROC019()
  103.  
  104. ;------------------------------------------------------------------------------
  105.  
  106.     For INTEGER002 = 0 To MaxNode()
  107.         RdUNet INTEGER002
  108.         If (UN_Oper() == "iN PGP SERVER 0.1ß") Then
  109.             PrintLn STRING023 + "Sorry, the server is already in use on another node..."
  110.             PrintLn "Try again later..."
  111.             PrintLn 
  112.             Wait
  113.             End
  114.         Endif
  115.     Next
  116.     RdUNet PcbNode()
  117.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "iN PGP SERVER 0.1ß", " "
  118.     Cls
  119.     StartDisp 1
  120.     DispFile PPEPath() + "PGPSERVR", 1 + 4
  121.     BOOLEAN001 = 1
  122.     STRING004 = PPEPath() + "PGP.$$$"
  123.     PROC002()
  124.     PROC006()
  125.     If (INTEGER021 > 0) STRING009 = "There are new keys!"
  126.     INTEGER001 = 1
  127.     :LABEL001
  128.     INTEGER008 = 3
  129.     INTEGER009 = 9
  130.     INTEGER010 = 36
  131.     If (BOOLEAN001) Goto LABEL002
  132.     Cls
  133.     DispFile PPEPath() + "PGPSERVR", 1 + 4
  134.     Goto LABEL003
  135.     :LABEL002
  136.     BOOLEAN001 = 0
  137.     :LABEL003
  138.     PROC007()
  139.     PROC003(INTEGER001)
  140.     If (STRING009 <> "") Then
  141.         PROC009(STRING009)
  142.         STRING009 = ""
  143.     Endif
  144.     While (1) Do
  145.         If ((TIME001 <> 0) && (Time() > TIME001 + 5)) PROC009("")
  146.         STRING002 = Inkey()
  147.         If (STRING002 <> "") Then
  148.             If ((STRING002 == "DOWN") || (STRING002 == "2")) Then
  149.                 PROC004(INTEGER001)
  150.                 INTEGER001 = INTEGER001 + 1
  151.                 If (INTEGER001 == 5) INTEGER001 = 6
  152.                 If (INTEGER001 == 8) INTEGER001 = 1
  153.                 PROC003(INTEGER001)
  154.                 Continue
  155.             Endif
  156.             If ((STRING002 == "UP") || (STRING002 == "8")) Then
  157.                 PROC004(INTEGER001)
  158.                 INTEGER001 = INTEGER001 - 1
  159.                 If (INTEGER001 == 5) INTEGER001 = 4
  160.                 If (INTEGER001 == 0) INTEGER001 = 7
  161.                 PROC003(INTEGER001)
  162.                 Continue
  163.             Endif
  164.             If (STRING002 == Chr(13)) Then
  165.                 If (INTEGER001 == 1) Then
  166.                     Copy STRING017, STRING015
  167.                     PROC012(0)
  168.                     If (BOOLEAN002) Goto LABEL004
  169.                     STRING009 = String(INTEGER012) + " key(s) downloaded!"
  170.                     INTEGER019 = INTEGER019 + INTEGER012
  171.                     PROC013()
  172.                     :LABEL004
  173.                     INTEGER001 = 1
  174.                     Goto LABEL001
  175.                     Goto LABEL005
  176.                 Endif
  177.                 If (INTEGER001 == 2) Then
  178.                     PROC014()
  179.                     INTEGER001 = 2
  180.                     Goto LABEL001
  181.                     Goto LABEL005
  182.                 Endif
  183.                 If (INTEGER001 == 3) Then
  184.                     PROC012(1)
  185.                     INTEGER001 = 3
  186.                     Goto LABEL001
  187.                     Goto LABEL005
  188.                 Endif
  189.                 If (INTEGER001 == 4) Then
  190.                     PROC017()
  191.                     INTEGER001 = 4
  192.                     Goto LABEL001
  193.                     Goto LABEL005
  194.                 Endif
  195.                 If (INTEGER001 == 6) Then
  196.                     AnsiPos 1, 23
  197.                     Download STRING019
  198.                     StartDisp 1
  199.                     INTEGER001 = 6
  200.                     Goto LABEL001
  201.                     Goto LABEL005
  202.                 Endif
  203.                 If (INTEGER001 == 7) Then
  204.                     AnsiPos 1, 23
  205.                     Download STRING020
  206.                     StartDisp 1
  207.                     INTEGER001 = 7
  208.                     Goto LABEL001
  209.                 Endif
  210.                 :LABEL005
  211.                 Continue
  212.             Endif
  213.             If (STRING002 == Chr(27)) Then
  214.                 Break
  215.             Endif
  216.         Endif
  217.     EndWhile
  218.     PROC019()
  219.     End
  220.  
  221. ;------------------------------------------------------------------------------
  222.  
  223.     Procedure PROC003(Integer INTEGER027)
  224.  
  225.     AnsiPos INTEGER008, INTEGER009 + INTEGER027 - 1
  226.     STRING003 = ScrText(INTEGER008, INTEGER009 + INTEGER027 - 1, INTEGER010, 1)
  227.     Print "@X1F", Upper(ScrText(INTEGER008, INTEGER009 + INTEGER027 - 1, INTEGER010, 0))
  228.     PROC005()
  229.  
  230.     EndProc
  231.  
  232.  
  233. ;------------------------------------------------------------------------------
  234.  
  235.     Procedure PROC004(Integer INTEGER028)
  236.  
  237.     AnsiPos INTEGER008, INTEGER009 + INTEGER028 - 1
  238.     Print STRING023, STRING003
  239.     PROC005()
  240.  
  241.     EndProc
  242.  
  243.  
  244. ;------------------------------------------------------------------------------
  245.  
  246.     Procedure PROC005()
  247.  
  248.     AnsiPos 2, 22
  249.     Color 0
  250.     Print " "
  251.     Backup 1
  252.  
  253.     EndProc
  254.  
  255.  
  256. ;------------------------------------------------------------------------------
  257.  
  258.     Procedure PROC001(String STRING025)
  259.  
  260.     PROC010()
  261.     Shell 1, INTEGER006, PPEPath() + "PGP.BAT", "+batchmode " + STRING025
  262.     PROC011()
  263.  
  264.     EndProc
  265.  
  266.  
  267. ;------------------------------------------------------------------------------
  268.  
  269.     Procedure PROC002()
  270.  
  271.     STRING005 = "Test"
  272.     TpaGet "PGPSERVR", STRING005
  273.     If (STRING005 == "Test") Then
  274.         PrintLn "@X04TPA PGPSERVR IS NOT INSTALLED! CHECK DOC!"
  275.         Wait
  276.         End
  277.     Endif
  278.     STRING006 = ReadLine("PCBOARD.DAT", 45)
  279.     FClose -1
  280.     STRING008 = "RCVD.DAT"
  281.     STRING011 = PPEPath() + "PGPSERVR.DAT"
  282.     STRING012 = PPEPath() + "PGPTEMP.$$$"
  283.     STRING013 = PPEPath() + "PGPTEMP.$$#"
  284.     STRING014 = PPEPath() + "TAGS.$$$"
  285.     STRING015 = PPEPath() + "KEYS.PGP"
  286.     STRING016 = PPEPath() + "SCREEN.RAW"
  287.     STRING001 = ReadLine(PPEPath() + "PGPSERVR.CFG", 1)
  288.     STRING017 = ReadLine(PPEPath() + "PGPSERVR.CFG", 2)
  289.     STRING019 = ReadLine(PPEPath() + "PGPSERVR.CFG", 3)
  290.     STRING020 = ReadLine(PPEPath() + "PGPSERVR.CFG", 4)
  291.     STRING021 = ReadLine(PPEPath() + "PGPSERVR.CFG", 5)
  292.     STRING022 = ReadLine(PPEPath() + "PGPSERVR.CFG", 6)
  293.     STRING023 = ReadLine(PPEPath() + "PGPSERVR.CFG", 7)
  294.     STRING024 = ReadLine(PPEPath() + "PGPSERVR.CFG", 8)
  295.     FClose -1
  296.     INTEGER013 = ToInt(ReadLine(PPEPath() + "PGPSERVR.CNT", 1))
  297.     FClose -1
  298.     Inc INTEGER013
  299.     FOpen 1, PPEPath() + "PGPSERVR.CNT", 1, 0
  300.     FPutLn 1, INTEGER013
  301.     FClose 1
  302.     DoIntr 16, 3840, 0, 0, 0, 0, 0, 0, 0, 0
  303.     If (And(RegAX(), 255) == 7) Then
  304.         INTEGER025 = 45056
  305.     Else
  306.         INTEGER025 = 47104
  307.     Endif
  308.  
  309.     EndProc
  310.  
  311.  
  312. ;------------------------------------------------------------------------------
  313.  
  314.     Procedure PROC006()
  315.  
  316.     PROC009("Loading data... stand by!")
  317.     PROC001("-kv")
  318.     FOpen 1, STRING004, 0, 0
  319.     :LABEL006
  320.     If (Ferr(1)) Goto LABEL007
  321.     FGet 1, STRING005
  322.     If (Left(STRING005, 3) == "pub") Inc INTEGER012
  323.     Goto LABEL006
  324.     :LABEL007
  325.     FClose 1
  326.     While (GetToken() <> "") Do
  327.     EndWhile
  328.     TpaGet "PGPSERVR", STRING005
  329.     Tokenize STRING005
  330.     INTEGER018 = ToInt(GetToken())
  331.     Inc INTEGER018
  332.     INTEGER020 = ToInt(GetToken())
  333.     INTEGER019 = ToInt(GetToken())
  334.     INTEGER017 = ToInt(GetToken())
  335.     INTEGER026 = INTEGER017
  336.     PROC013()
  337.     INTEGER021 = (FileInf(STRING011, 4) - INTEGER017) / 80
  338.     PROC009("")
  339.  
  340.     EndProc
  341.  
  342.  
  343. ;------------------------------------------------------------------------------
  344.  
  345.     Procedure PROC007()
  346.  
  347.     AnsiPos 67, 8
  348.     PROC008(STRING001)
  349.     AnsiPos 67, 9
  350.     PROC008(String(INTEGER012))
  351.     AnsiPos 67, 10
  352.     PROC008(String(INTEGER013))
  353.     AnsiPos 67, 14
  354.     PROC008(String(INTEGER018))
  355.     AnsiPos 67, 15
  356.     PROC008(String(INTEGER020))
  357.     AnsiPos 67, 16
  358.     PROC008(String(INTEGER019))
  359.     AnsiPos 67, 17
  360.     PROC008(String(INTEGER021))
  361.  
  362.     EndProc
  363.  
  364.  
  365. ;------------------------------------------------------------------------------
  366.  
  367.     Procedure PROC008(String STRING026)
  368.  
  369.     STRING026 = STRING021 + Left(STRING026, 1) + STRING022 + Mid(STRING026, 2, 1) + STRING023 + Right(STRING026, Len(STRING026) - 2)
  370.     Print STRING026
  371.  
  372.     EndProc
  373.  
  374.  
  375. ;------------------------------------------------------------------------------
  376.  
  377.     Procedure PROC009(String STRING027)
  378.  
  379.     AnsiPos 52, 21
  380.     PROC008(STRING027 + Space(27 - Len(STRING027)))
  381.     If (STRING027 <> "") Then
  382.         TIME001 = Time()
  383.     Else
  384.         TIME001 = 0
  385.     Endif
  386.     AnsiPos 50, 21
  387.     If (STRING027 <> "") Then
  388.         Print "@X8" + Right(STRING022, 1) + "»"
  389.     Else
  390.         Print " "
  391.     Endif
  392.     PROC005()
  393.  
  394.     EndProc
  395.  
  396.  
  397. ;------------------------------------------------------------------------------
  398.  
  399.     Procedure PROC010()
  400.  
  401.     VarOff STRING016, INTEGER023
  402.     VarSeg STRING016, INTEGER024
  403.     DoIntr 33, 15360, 0, 0, INTEGER023, 0, 0, 0, INTEGER024, 0
  404.     INTEGER022 = RegAX()
  405.     DoIntr 33, 16384, INTEGER022, 4000, 0, 0, 0, 0, INTEGER025, 0
  406.     DoIntr 33, 15872, INTEGER022, 0, 0, 0, 0, 0, 0, 0
  407.  
  408.     EndProc
  409.  
  410.  
  411. ;------------------------------------------------------------------------------
  412.  
  413.     Procedure PROC011()
  414.  
  415.     VarOff STRING016, INTEGER023
  416.     VarSeg STRING016, INTEGER024
  417.     DoIntr 33, 15616, 0, 0, INTEGER023, 0, 0, 0, INTEGER024, 0
  418.     INTEGER022 = RegAX()
  419.     DoIntr 33, 16128, INTEGER022, 4000, 0, 0, 0, 0, INTEGER025, 0
  420.     DoIntr 33, 15872, INTEGER022, 0, 0, 0, 0, 0, 0, 0
  421.     Delete STRING016
  422.  
  423.     EndProc
  424.  
  425.  
  426. ;------------------------------------------------------------------------------
  427.  
  428.     Procedure PROC012(Boolean BOOLEAN004)
  429.  
  430.     BOOLEAN002 = 0
  431.     Cls
  432.     DispFile PPEPath() + "XFERMENU", 0
  433.     INTEGER002 = 0
  434.     INTEGER003 = 0
  435.     While (1) Do
  436.         Inc INTEGER002
  437.         STRING005 = ReadLine(STRING006, INTEGER002)
  438.         If (Trim(STRING005, " ") == "") Break
  439.         If (Mid(STRING005, 3, 1) == "I") Continue
  440.         Inc INTEGER003
  441.         TSTRING007(INTEGER003) = Left(STRING005, 1)
  442.         STRING005 = Mid(STRING005, 5, Len(STRING005) - 4)
  443.         STRING005 = Mid(STRING005, InStr(STRING005, ",") + 1, Len(STRING005) - InStr(STRING005, ","))
  444.         STRING005 = Mid(STRING005, 1, InStr(STRING005, ",") - 1)
  445.         FOpen 2, PPEPath() + "PROTO.DEF", 0, 0
  446.         :LABEL008
  447.         If (Ferr(2)) Goto LABEL009
  448.         FGet 2, STRING010
  449.         If (Left(STRING010, 1) == TSTRING007(INTEGER003)) Then
  450.             STRING005 = Right(STRING010, Len(STRING010) - 2)
  451.         Else
  452.             Goto LABEL008
  453.         Endif
  454.         :LABEL009
  455.         FClose 2
  456.         AnsiPos 31 - Len(StripAtx(STRING005)) / 2, 9 + INTEGER003 - 1
  457.         Print STRING023 + STRING005
  458.     EndWhile
  459.     INTEGER005 = INTEGER003
  460.     FClose -1
  461.     INTEGER008 = 6
  462.     INTEGER009 = 9
  463.     INTEGER010 = 51
  464.     INTEGER001 = 1
  465.     PROC003(INTEGER001)
  466.     While (1) Do
  467.         STRING002 = Inkey()
  468.         If (STRING002 <> "") Then
  469.             If ((STRING002 == "DOWN") || (STRING002 == "2")) Then
  470.                 PROC004(INTEGER001)
  471.                 INTEGER001 = INTEGER001 + 1
  472.                 If (INTEGER001 == INTEGER005 + 1) INTEGER001 = 1
  473.                 PROC003(INTEGER001)
  474.                 Continue
  475.             Endif
  476.             If ((STRING002 == "UP") || (STRING002 == "8")) Then
  477.                 PROC004(INTEGER001)
  478.                 INTEGER001 = INTEGER001 - 1
  479.                 If (INTEGER001 == 0) INTEGER001 = INTEGER005
  480.                 PROC003(INTEGER001)
  481.                 Continue
  482.             Endif
  483.             If (STRING002 == Chr(13)) Then
  484.                 Print STRING023
  485.                 If (OnLocal()) Then
  486.                     Cls
  487.                     If (Exist(STRING008)) Delete STRING008
  488.                     PrintLn STRING023 + "Local mode detected..."
  489.                     If (BOOLEAN004) Then
  490.                         InputStr STRING023 + "What is the name of your file ", STRING005, STRING023, 50, Mask_Path() + Mask_File(), 8 + 256
  491.                         Goto LABEL010
  492.                     Endif
  493.                     InputStr STRING023 + "Directory for local download ", STRING005, STRING023, 50, Mask_Path() + Mask_File(), 8 + 256
  494.                     :LABEL010
  495.                     PrintLn 
  496.                     If (BOOLEAN004) Then
  497.                         If (STRING005 == "") Goto LABEL015
  498.                         If (Exist(STRING005)) Goto LABEL011
  499.                         PrintLn STRING023 + "This file does not exist!"
  500.                         Goto LABEL015
  501.                         :LABEL011
  502.                         Copy STRING005, STRING008
  503.                         Goto LABEL014
  504.                         Goto LABEL013
  505.                     Endif
  506.                     If (STRING005 == "") Goto LABEL015
  507.                     If ((Right(STRING005, 1) <> ":") && (Right(STRING005, 1) <> "\")) STRING005 = STRING005 + "\"
  508.                     If (Exist(STRING005 + "NUL")) Goto LABEL012
  509.                     PrintLn STRING023 + "Invalid directory!"
  510.                     Goto LABEL015
  511.                     :LABEL012
  512.                     If (BOOLEAN004) Then
  513.                         Copy STRING005, STRING008
  514.                         Goto LABEL014
  515.                         Goto LABEL013
  516.                     Endif
  517.                     Copy STRING015, STRING005 + "KEYS.PGP"
  518.                     Goto LABEL016
  519.                 Endif
  520.                 :LABEL013
  521.                 If (BOOLEAN004) Then
  522.                     STRING005 = ReadLine(PPEPath() + "XFER.CFG", PcbNode()) + " " + String(Carrier()) + " " + STRING008 + " " + String(Carrier()) + " " + String(Carrier()) + " " + PPEPath()
  523.                     Shell 1, INTEGER002, "PCBR" + TSTRING007(INTEGER001) + ".BAT", STRING005
  524.                     Backup 80
  525.                     ClrEol
  526.                     Goto LABEL014
  527.                 Endif
  528.                 STRING005 = ReadLine(PPEPath() + "XFER.CFG", PcbNode()) + " " + String(Carrier()) + " " + STRING015 + " " + String(Carrier()) + " " + String(Carrier()) + " " + PPEPath()
  529.                 Shell 1, INTEGER002, "PCBS" + TSTRING007(INTEGER001) + ".BAT", STRING005
  530.                 Backup 80
  531.                 ClrEol
  532.                 :LABEL014
  533.                 If (BOOLEAN004) Then
  534.                     If (!Exist(STRING008) || (FileInf(STRING008, 4) == 0)) Then
  535.                         :LABEL015
  536.                         PrintLn STRING023 + "Upload aborted"
  537.                         BOOLEAN002 = 1
  538.                         Wait
  539.                         Goto LABEL022
  540.                     Endif
  541.                     :LABEL016
  542.                     If (BOOLEAN004) Then
  543.                         PrintLn STRING023 + "Analysing... stand by!"
  544.                         PROC001("-ka " + STRING008)
  545.                         INTEGER002 = 0
  546.                         FOpen 1, STRING004, 0, 0
  547.                         :LABEL017
  548.                         If (Ferr(1)) Goto LABEL021
  549.                         FGet 1, STRING005
  550.                         If (Mid(STRING005, 6, 10) == "new key(s)") Then
  551.                             INTEGER002 = ToInt(Left(STRING005, 5))
  552.                             STRING009 = String(INTEGER002) + " new key(s) inserted !"
  553.                             INTEGER012 = INTEGER012 + INTEGER002
  554.                             INTEGER020 = INTEGER020 + INTEGER002
  555.                             PROC013()
  556.                             FOpen 2, STRING004, 0, 0
  557.                             FAppend 3, STRING011, 2, 0
  558.                             :LABEL018
  559.                             If (Ferr(2)) Goto LABEL020
  560.                             FGet 2, STRING005
  561.                             If (Left(STRING005, 22) == "Checking signatures...") Goto LABEL020
  562.                             If (Left(STRING005, 3) == "pub") Then
  563.                                 STRING010 = Mid(STRING005, 6, 4) + ";" + Mid(STRING005, 11, 8)
  564.                                 If (Mid(STRING010, 12, 1) == " ") Then
  565.                                     STRING010 = Mid(STRING010, 1, 11) + "  "
  566.                                     STRING010 = Mid(STRING010 + ";" + Right(STRING005, Len(STRING005) - 29), 1, 78)
  567.                                     Goto LABEL019
  568.                                 Endif
  569.                                 STRING010 = Mid(STRING010 + ";" + Right(STRING005, Len(STRING005) - 31), 1, 78)
  570.                                 :LABEL019
  571.                                 FPutLn 3, STRING010
  572.                             Endif
  573.                             Goto LABEL018
  574.                             :LABEL020
  575.                             FClose 2
  576.                             FClose 3
  577.                             Goto LABEL021
  578.                         Endif
  579.                         Goto LABEL017
  580.                         :LABEL021
  581.                         FClose 1
  582.                         If (INTEGER002 == 0) STRING009 = "No new key inserted."
  583.                     Endif
  584.                 Endif
  585.                 :LABEL022
  586.                 If (BOOLEAN004) Delete STRING008
  587.                 Break
  588.                 Continue
  589.             Endif
  590.             If (STRING002 == Chr(27)) Then
  591.                 BOOLEAN002 = 1
  592.                 Break
  593.             Endif
  594.         Endif
  595.     EndWhile
  596.  
  597.     EndProc
  598.  
  599.  
  600. ;------------------------------------------------------------------------------
  601.  
  602.     Procedure PROC013()
  603.  
  604.     STRING005 = String(INTEGER018) + ";" + String(INTEGER020) + ";" + String(INTEGER019) + ";" + String(INTEGER026)
  605.     TpaPut "PGPSERVR", STRING005
  606.  
  607.     EndProc
  608.  
  609.  
  610. ;------------------------------------------------------------------------------
  611.  
  612.     Procedure PROC014()
  613.  
  614.     PROC009("Gathering data... stand by!")
  615.     PROC001("-kv")
  616.     FOpen 1, STRING004, 0, 0
  617.     FCreate 2, STRING012, 1, 0
  618.     INTEGER002 = 0
  619.     :LABEL023
  620.     If (Ferr(1)) Goto LABEL025
  621.     FGet 1, STRING005
  622.     If (Left(STRING005, 3) == "pub") Then
  623.         STRING010 = Mid(STRING005, 6, 4) + ";" + Mid(STRING005, 11, 8)
  624.         If (Mid(STRING010, 12, 1) == " ") Then
  625.             STRING010 = Mid(STRING010, 1, 11) + "  "
  626.             STRING010 = Mid(STRING010 + ";" + Right(STRING005, Len(STRING005) - 29), 1, 78)
  627.             Goto LABEL024
  628.         Endif
  629.         STRING010 = Mid(STRING010 + ";" + Right(STRING005, Len(STRING005) - 31), 1, 78)
  630.         :LABEL024
  631.         FPutLn 2, STRING010
  632.         Inc INTEGER002
  633.     Endif
  634.     Goto LABEL023
  635.     :LABEL025
  636.     FClose 1
  637.     FClose 2
  638.     PROC010()
  639.     Shell 1, INTEGER006, PPEPath() + "SORT.EXE", "/+15 < " + STRING012 + " > " + STRING013
  640.     PROC011()
  641.     If (INTEGER002 == 0) Then
  642.         STRING009 = "No key found!"
  643.     Else
  644.         PROC018()
  645.     Endif
  646.  
  647.     EndProc
  648.  
  649.  
  650. ;------------------------------------------------------------------------------
  651.  
  652.     Procedure PROC015(Integer INTEGER029)
  653.  
  654.     FSeek 1, INTEGER029 * 80, 0
  655.     FSeek 2, INTEGER029, 0
  656.     For INTEGER002 = 1 To 17
  657.         If (INTEGER029 + INTEGER002 - 1 >= INTEGER007) Then
  658.             For INTEGER002 = INTEGER002 To 17
  659.                 AnsiPos 1, INTEGER002 + 2
  660.                 ClrEol
  661.             Next
  662.             Break
  663.         Endif
  664.         AnsiPos 4, INTEGER002 + 2
  665.         FRead 2, STRING010, 1
  666.         If (STRING010 == Chr(1)) Then
  667.             Print STRING022 + "■ "
  668.         Else
  669.             Print STRING022 + "  "
  670.         Endif
  671.         FRead 1, STRING005, 78
  672.         PROC008(Mid(STRING005, 1, 4))
  673.         Print " " + STRING022 + "· "
  674.         PROC008(Mid(STRING005, 6, 8))
  675.         Print " " + STRING022 + "· "
  676.         PROC008(Mid(STRING005, 15, 56))
  677.         FSeek 1, 2, 1
  678.     Next
  679.  
  680.     EndProc
  681.  
  682.  
  683. ;------------------------------------------------------------------------------
  684.  
  685.     Procedure PROC016()
  686.  
  687.     BigStr   BIGSTR001
  688.  
  689.     If (Exist(STRING015)) Delete STRING015
  690.     Cls
  691.     DispFile PPEPath() + "EXTRACT", 1 + 4
  692.     PROC005()
  693.     FSeek 2, 0, 0
  694.     INTEGER011 = 0
  695.     REAL001 = 0
  696.     While (1) Do
  697.         Inc INTEGER011
  698.         INTEGER016 = 0
  699.         FRead 2, BIGSTR001, 2048
  700.         While (Len(BIGSTR001) > 0) Do
  701.             INTEGER002 = InStr(BIGSTR001, Chr(1))
  702.             If (INTEGER002 == 0) Break
  703.             BIGSTR001 = Right(BIGSTR001, Len(BIGSTR001) - INTEGER002)
  704.             STRING005 = FUNCTION001((INTEGER011 - 1) * 2048 + INTEGER002 + INTEGER016)
  705.             PROC001("-kx 0x" + STRING005 + " " + STRING015)
  706.             INTEGER016 = INTEGER016 + INTEGER002
  707.             Inc REAL001
  708.             REAL002 = (REAL001 / INTEGER015) * 32
  709.             STRING010 = Space(REAL002)
  710.             STRING010 = STRING024 + ReplaceStr(STRING010, " ", "░")
  711.             AnsiPos 24, 13
  712.             Print STRING010
  713.             PROC005()
  714.         EndWhile
  715.         If (REAL001 == INTEGER015) Break
  716.     EndWhile
  717.  
  718.     EndProc
  719.  
  720.  
  721. ;------------------------------------------------------------------------------
  722.  
  723.     Function FUNCTION001(Integer INTEGER030) String
  724.  
  725.     BigStr   BIGSTR002
  726.  
  727.     While (GetToken() <> "") Do
  728.     EndWhile
  729.     FSeek 1, (INTEGER030 - 1) * 80, 0
  730.     FRead 1, STRING005, 78
  731.     Tokenize Trim(STRING005, " ")
  732.     STRING005 = GetToken()
  733.     FUNCTION001 = GetToken()
  734.  
  735.     EndFunc
  736.  
  737.  
  738. ;------------------------------------------------------------------------------
  739.  
  740.     Procedure PROC018()
  741.  
  742.     BigStr   BIGSTR002
  743.  
  744.     BIGSTR002 = Space(2048)
  745.     BIGSTR002 = ReplaceStr(BIGSTR002, " ", Chr(0))
  746.     FCreate 1, STRING014, 1, 0
  747.     For INTEGER002 = 1 To INTEGER012 / 2048 + 1
  748.         FWrite 1, BIGSTR002, 2048
  749.     Next
  750.     INTEGER015 = 0
  751.     FClose 1
  752.     PROC009("")
  753.     Cls
  754.     DispFile PPEPath() + "PGPLIST", 1 + 4
  755.     AnsiPos 8, 21
  756.     PROC008("[SPACE] = Tag/Untag  ")
  757.     PROC008("[S] = Search UserID  ")
  758.     PROC008("[D] = Download Key(s)  ")
  759.     INTEGER007 = FileInf(STRING013, 4) / 80
  760.     FOpen 1, STRING013, 0, 0
  761.     FOpen 2, STRING014, 2, 0
  762.     INTEGER014 = 1
  763.     PROC015((INTEGER014 - 1) * 17)
  764.     INTEGER008 = 1
  765.     INTEGER009 = 3
  766.     INTEGER010 = 79
  767.     INTEGER001 = 1
  768.     PROC003(INTEGER001)
  769.     While (1) Do
  770.         If ((TIME001 <> 0) && (Time() > TIME001 + 5)) Then
  771.             TIME001 = 0
  772.             AnsiPos 35, 1
  773.             Print Space(44)
  774.             PROC005()
  775.         Endif
  776.         STRING002 = Upper(Inkey())
  777.         :LABEL026
  778.         If (STRING002 <> "") Then
  779.             If ((STRING002 == "DOWN") || (STRING002 == "2")) Then
  780.                 If ((INTEGER014 - 1) * 17 + INTEGER001 <= INTEGER007 - 1) Then
  781.                     PROC004(INTEGER001)
  782.                     If (INTEGER001 < 17) Then
  783.                         Inc INTEGER001
  784.                         Goto LABEL027
  785.                     Endif
  786.                     If (INTEGER014 * 17 <= INTEGER007) Then
  787.                         Inc INTEGER014
  788.                         INTEGER001 = 1
  789.                         PROC015((INTEGER014 - 1) * 17)
  790.                     Endif
  791.                     :LABEL027
  792.                     PROC003(INTEGER001)
  793.                 Endif
  794.                 Continue
  795.             Endif
  796.             If ((STRING002 == "UP") || (STRING002 == "8")) Then
  797.                 If ((INTEGER014 > 1) || (INTEGER001 > 1)) Then
  798.                     PROC004(INTEGER001)
  799.                     If (INTEGER001 > 1) Then
  800.                         Dec INTEGER001
  801.                         Goto LABEL028
  802.                     Endif
  803.                     If (INTEGER014 > 1) Then
  804.                         Dec INTEGER014
  805.                         INTEGER001 = 17
  806.                         PROC015((INTEGER014 - 1) * 17)
  807.                     Endif
  808.                     :LABEL028
  809.                     PROC003(INTEGER001)
  810.                 Endif
  811.                 Continue
  812.             Endif
  813.             If ((STRING002 == "PGUP") || (STRING002 == "9")) Then
  814.                 If (INTEGER014 > 1) Then
  815.                     PROC004(INTEGER001)
  816.                     Dec INTEGER014
  817.                     INTEGER001 = 1
  818.                     PROC015((INTEGER014 - 1) * 17)
  819.                     PROC003(INTEGER001)
  820.                 Endif
  821.                 Continue
  822.             Endif
  823.             If ((STRING002 == "PGDN") || (STRING002 == "3")) Then
  824.                 If (INTEGER014 * 17 <= INTEGER007) Then
  825.                     PROC004(INTEGER001)
  826.                     Inc INTEGER014
  827.                     INTEGER001 = 1
  828.                     PROC015((INTEGER014 - 1) * 17)
  829.                     PROC003(INTEGER001)
  830.                 Endif
  831.                 Continue
  832.             Endif
  833.             If ((STRING002 == "END") || (STRING002 == "1")) Then
  834.                 If ((INTEGER014 - 1) * 17 + INTEGER001 <> INTEGER007) Then
  835.                     PROC004(INTEGER001)
  836.                     INTEGER003 = INTEGER014
  837.                     INTEGER014 = INTEGER007 / 17 + 1
  838.                     If (INTEGER007 > 17) Then
  839.                         INTEGER001 = INTEGER007 % 17
  840.                         Goto LABEL029
  841.                     Endif
  842.                     INTEGER001 = INTEGER007
  843.                     :LABEL029
  844.                     If (INTEGER003 <> INTEGER014) PROC015((INTEGER014 - 1) * 17)
  845.                     PROC003(INTEGER001)
  846.                 Endif
  847.                 Continue
  848.             Endif
  849.             If ((STRING002 == "HOME") || (STRING002 == "7")) Then
  850.                 If ((INTEGER014 - 1) * 17 + INTEGER001 <> 1) Then
  851.                     PROC004(INTEGER001)
  852.                     If (INTEGER014 > 1) Then
  853.                         INTEGER014 = 1
  854.                         PROC015((INTEGER014 - 1) * 17)
  855.                     Endif
  856.                     INTEGER001 = 1
  857.                     PROC003(INTEGER001)
  858.                 Endif
  859.                 Continue
  860.             Endif
  861.             If (STRING002 == "S") Then
  862.                 PROC004(INTEGER001)
  863.                 AnsiPos 35, 1
  864.                 PROC008("Search : ")
  865.                 Print STRING023 + "[@X1F······························" + STRING023 + "]"
  866.                 STRING005 = FUNCTION002(45, 1, 29, STRING018)
  867.                 AnsiPos 35, 1
  868.                 Print Space(44)
  869.                 PROC005()
  870.                 If (STRING005 <> "") Then
  871.                     STRING018 = STRING005
  872.                     AnsiPos 50, 1
  873.                     PROC008("Scanning...")
  874.                     PROC005()
  875.                     INTEGER003 = INTEGER014
  876.                     FSeek 1, ((INTEGER014 - 1) * 17 + INTEGER001) * 80, 0
  877.                     INTEGER002 = (INTEGER014 - 1) * 17 + INTEGER001
  878.                     BOOLEAN003 = 0
  879.                     :LABEL030
  880.                     If (Ferr(1)) Goto LABEL032
  881.                     Inc INTEGER002
  882.                     FRead 1, STRING005, 78
  883.                     FSeek 1, 2, 1
  884.                     If (InStr(Upper(STRING005), STRING018) <> 0) Then
  885.                         BOOLEAN003 = 1
  886.                         INTEGER014 = INTEGER002 / 17 + 1
  887.                         If (INTEGER002 > 17) Then
  888.                             INTEGER001 = INTEGER002 % 17
  889.                             Goto LABEL031
  890.                         Endif
  891.                         INTEGER001 = INTEGER002
  892.                         :LABEL031
  893.                         Goto LABEL032
  894.                     Endif
  895.                     Goto LABEL030
  896.                     :LABEL032
  897.                     AnsiPos 35, 1
  898.                     Print Space(44)
  899.                     If (BOOLEAN003) Goto LABEL033
  900.                     AnsiPos 51, 1
  901.                     PROC008("Not found!")
  902.                     TIME001 = Time()
  903.                     :LABEL033
  904.                     PROC005()
  905.                     If (INTEGER003 <> INTEGER014) PROC015((INTEGER014 - 1) * 17)
  906.                     PROC003(INTEGER001)
  907.                     Goto LABEL034
  908.                 Endif
  909.                 PROC003(INTEGER001)
  910.                 :LABEL034
  911.                 Continue
  912.             Endif
  913.             If (STRING002 == " ") Then
  914.                 FSeek 2, (INTEGER014 - 1) * 17 + INTEGER001 - 1, 0
  915.                 AnsiPos 4, INTEGER001 + 2
  916.                 FRead 2, STRING005, 1
  917.                 If (STRING005 == Chr(1)) Then
  918.                     FSeek 2, (INTEGER014 - 1) * 17 + INTEGER001 - 1, 0
  919.                     FWrite 2, 0, 1
  920.                     Print "@X1F "
  921.                     Dec INTEGER015
  922.                     STRING003 = Left(STRING003, 11) + " " + Right(STRING003, Len(STRING003) - 12)
  923.                     Goto LABEL035
  924.                 Endif
  925.                 FSeek 2, (INTEGER014 - 1) * 17 + INTEGER001 - 1, 0
  926.                 FWrite 2, 1, 1
  927.                 Print "@X1F■"
  928.                 Inc INTEGER015
  929.                 STRING003 = Left(STRING003, 11) + "■" + Right(STRING003, Len(STRING003) - 12)
  930.                 :LABEL035
  931.                 PROC005()
  932.                 STRING002 = "DOWN"
  933.                 Goto LABEL026
  934.                 Continue
  935.             Endif
  936.             If (STRING002 == "D") Then
  937.                 If (INTEGER015 > 0) Then
  938.                     PROC016()
  939.                     PROC012(0)
  940.                     If (BOOLEAN002) Goto LABEL036
  941.                     STRING009 = String(INTEGER015) + " key(s) downloaded!"
  942.                     INTEGER019 = INTEGER019 + INTEGER015
  943.                     PROC013()
  944.                     :LABEL036
  945.                     Break
  946.                 Endif
  947.                 Continue
  948.             Endif
  949.             If (STRING002 == Chr(27)) Then
  950.                 Break
  951.             Endif
  952.         Endif
  953.     EndWhile
  954.     FClose 1
  955.     FClose 2
  956.  
  957.     EndProc
  958.  
  959.  
  960. ;------------------------------------------------------------------------------
  961.  
  962.     Procedure PROC017()
  963.  
  964.     If (INTEGER021 == 0) Goto LABEL037
  965.     PROC009("Gathering data... stand by!")
  966.     INTEGER003 = FileInf(STRING011, 4) / 80
  967.     If (INTEGER003 == 0) Goto LABEL037
  968.     FOpen 1, STRING011, 0, 0
  969.     FCreate 2, STRING012, 1, 0
  970.     INTEGER002 = 0
  971.     FSeek 1, INTEGER017, 0
  972.     For INTEGER002 = INTEGER017 / 80 To INTEGER003 - 1
  973.         FRead 1, STRING005, 78
  974.         FPutLn 2, STRING005
  975.         Inc INTEGER004
  976.         FSeek 1, 2, 1
  977.     Next
  978.     INTEGER026 = INTEGER002 * 80
  979.     PROC013()
  980.     FClose 1
  981.     FClose 2
  982.     PROC010()
  983.     Shell 1, INTEGER006, PPEPath() + "SORT.EXE", "/+15 < " + STRING012 + " > " + STRING013
  984.     PROC011()
  985.     If (INTEGER004 == 0) Then
  986.         :LABEL037
  987.         STRING009 = "No new key found!"
  988.     Else
  989.         PROC018()
  990.     Endif
  991.  
  992.     EndProc
  993.  
  994.  
  995. ;------------------------------------------------------------------------------
  996.  
  997.     Function FUNCTION002(Integer INTEGER031, Integer INTEGER032, Integer INTEGER033, String STRING029) String
  998.  
  999.     Integer  INTEGER034
  1000.     String   STRING031
  1001.     String   STRING032
  1002.  
  1003.     AnsiPos INTEGER031, INTEGER032
  1004.     Print "@X1F" + STRING029
  1005.     INTEGER034 = Len(STRING029)
  1006.     STRING031 = STRING029
  1007.     While (1) Do
  1008.         STRING002 = Upper(Inkey())
  1009.         If (STRING002 == Chr(27)) Then
  1010.             FUNCTION002 = ""
  1011.             Break
  1012.             Continue
  1013.         Endif
  1014.         If (STRING002 == Chr(13)) Then
  1015.             FUNCTION002 = STRING031
  1016.             Break
  1017.             Continue
  1018.         Endif
  1019.         If (STRING002 == Chr(8)) Then
  1020.             If (STRING031 <> "") Then
  1021.                 STRING031 = Left(STRING031, Len(STRING031) - 1)
  1022.                 Backup 1
  1023.                 Print "·"
  1024.                 Backup 1
  1025.             Endif
  1026.             Continue
  1027.         Endif
  1028.         If (((Len(STRING031) < INTEGER033) && (Len(STRING002) == 1)) && (Asc(STRING002) > 31)) Then
  1029.             STRING031 = STRING031 + STRING002
  1030.             Print STRING002
  1031.         Endif
  1032.     EndWhile
  1033.     PROC005()
  1034.  
  1035.     EndFunc
  1036.  
  1037.  
  1038. ;------------------------------------------------------------------------------
  1039.  
  1040.     Procedure PROC019()
  1041.  
  1042.     String   STRING032
  1043.  
  1044.     If (Random(10) == 5) Then
  1045.         STRING032 = "  <┤EGiS CoRP'95  "
  1046.     Else
  1047.         STRING032 = "LoNE RuNNeR/AGS'95"
  1048.     Endif
  1049.     Color 15
  1050.     Cls
  1051.     AnsiPos 31, 12
  1052.     Print STRING032
  1053.     Delay 2
  1054.     Backup 18
  1055.     Color 7
  1056.     Print STRING032
  1057.     Delay 2
  1058.     Backup 18
  1059.     Color 8
  1060.     Print STRING032
  1061.     Delay 2
  1062.     Backup 18
  1063.     Color 15
  1064.     Print Space(Len(STRING032))
  1065.     Delay 2
  1066.     AnsiPos 1, 1
  1067.     If (Exist(STRING012)) Delete STRING012
  1068.     If (Exist(STRING013)) Delete STRING013
  1069.     If (Exist(STRING004)) Delete STRING004
  1070.     If (Exist(STRING016)) Delete STRING016
  1071.     If (Exist(STRING014)) Delete STRING014
  1072.     If (Exist(STRING015)) Delete STRING015
  1073.     End
  1074.  
  1075.     EndProc
  1076.  
  1077.  
  1078. ;------------------------------------------------------------------------------
  1079. ;
  1080. ; Usage report (before postprocessing)
  1081. ;
  1082. ; ■ Statements used :
  1083. ;
  1084. ;    4       End
  1085. ;    7       Cls
  1086. ;    3       ClrEol
  1087. ;    3       Wait
  1088. ;    5       Color 
  1089. ;    198     Goto 
  1090. ;    168     Let 
  1091. ;    26      Print 
  1092. ;    10      PrintLn 
  1093. ;    132     If 
  1094. ;    5       DispFile 
  1095. ;    3       FCreate 
  1096. ;    9       FOpen 
  1097. ;    1       FAppend 
  1098. ;    17      FClose 
  1099. ;    5       FGet 
  1100. ;    4       FPutLn 
  1101. ;    3       StartDisp 
  1102. ;    10      Delete 
  1103. ;    2       InputStr 
  1104. ;    4       Delay 
  1105. ;    14      Inc 
  1106. ;    4       Dec 
  1107. ;    2       Tokenize 
  1108. ;    5       Shell 
  1109. ;    2       RdUNet 
  1110. ;    1       WrUNet 
  1111. ;    7       DoIntr 
  1112. ;    2       VarSeg 
  1113. ;    2       VarOff 
  1114. ;    29      AnsiPos 
  1115. ;    8       Backup 
  1116. ;    12      FSeek 
  1117. ;    7       FRead 
  1118. ;    3       FWrite 
  1119. ;    4       Copy 
  1120. ;    2       Download 
  1121. ;    2       TpaGet 
  1122. ;    1       TpaPut 
  1123. ;    19      EndProc
  1124. ;    2       EndFunc
  1125. ;
  1126. ;
  1127. ; ■ Functions used :
  1128. ;
  1129. ;    4       -
  1130. ;    24      *
  1131. ;    10      /
  1132. ;    2       %
  1133. ;    169     +
  1134. ;    48      -
  1135. ;    70      ==
  1136. ;    19      <>
  1137. ;    7       <
  1138. ;    8       <=
  1139. ;    14      >
  1140. ;    11      >=
  1141. ;    102     !
  1142. ;    15      &&
  1143. ;    17      ||
  1144. ;    19      Len(
  1145. ;    4       Upper()
  1146. ;    21      Mid()
  1147. ;    11      Left()
  1148. ;    12      Right()
  1149. ;    7       Space()
  1150. ;    6       Ferr()
  1151. ;    12      Chr()
  1152. ;    1       Asc()
  1153. ;    5       InStr()
  1154. ;    2       Trim()
  1155. ;    1       Random()
  1156. ;    4       Time()
  1157. ;    1       StripAtx()
  1158. ;    4       Inkey()
  1159. ;    19      String()
  1160. ;    2       Mask_File()
  1161. ;    2       Mask_Path()
  1162. ;    30      PPEPath()
  1163. ;    4       PcbNode()
  1164. ;    13      ReadLine()
  1165. ;    1       OnLocal()
  1166. ;    1       UN_Name()
  1167. ;    1       UN_City()
  1168. ;    1       UN_Oper()
  1169. ;    8       GetToken()
  1170. ;    3       RegAX()
  1171. ;    11      Exist()
  1172. ;    6       Carrier()
  1173. ;    1       And()
  1174. ;    4       FileInf()
  1175. ;    2       MaxNode()
  1176. ;    2       ScrText()
  1177. ;    2       ReplaceStr()
  1178. ;    6       ToInt()
  1179. ;
  1180. ;------------------------------------------------------------------------------
  1181. ;
  1182. ; Analysis flags : SI
  1183. ;
  1184. ; S - Shell to DOS ■ 5
  1185. ;     This may be normal if the PPE need to execute an external command,
  1186. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  1187. ;     or usefull (sorting, maintenance,...). Check!
  1188. ;     ■ Search for : SHELL
  1189. ;
  1190. ; I - Interrupt call ■ 5
  1191. ;     This is rare in PPE... Although it may be a way to replace a PPE
  1192. ;     command by its fast interrupt equivalent. Be aware that an
  1193. ;     interrupt call may do anything... nasty (formating HD, rebooting,...)
  1194. ;     or usefull (fast screen i/o, hardware ressource access,...). Check!
  1195. ;     ■ Search for : DOINTR
  1196. ;
  1197. ;------------------------------------------------------------------------------
  1198. ;
  1199. ; Postprocessing report
  1200. ;
  1201. ;    5       For/Next
  1202. ;    9       While/EndWhile
  1203. ;    75      If/Then or If/Then/Else
  1204. ;    0       Select Case
  1205. ;
  1206. ;------------------------------------------------------------------------------
  1207. ;                 AEGiS Corp - Break the routines, code against the machines!
  1208. ;------------------------------------------------------------------------------
  1209.