home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / PPE / AEGIS / AGSSKW14.ZIP / WHO.PPE (.txt) < prev    next >
Encoding:
PCBoard Programming Language Executable  |  1995-02-13  |  5.8 KB  |  417 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.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.     String   STRING013
  36.     String   STRING014
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     String   STRING018
  41.     String   STRING019
  42.     String   STRING020
  43.     String   STRING021
  44.     String   STRING022
  45.     String   STRING023
  46.     String   STRING024
  47.     String   STRING025
  48.     String   STRING026
  49.     String   STRING027
  50.     String   STRING028
  51.     String   STRING029
  52.     String   STRING030
  53.     String   STRING031
  54.     String   STRING032
  55.     String   STRING033
  56.     String   STRING034
  57.     String   STRING035
  58.     String   STRING036
  59.     String   STRING037
  60.     String   STRING038
  61.     String   STRING039
  62.     String   STRING040
  63.     String   STRING041
  64.     String   STRING042
  65.     String   STRING043
  66.     String   STRING044
  67.     String   STRING045
  68.     String   STRING046
  69.     String   STRING047
  70.     String   STRING048
  71.     String   STRING049
  72.  
  73. ;------------------------------------------------------------------------------
  74.  
  75.     If (Exist(PPEPath() + "who.cfg")) Then
  76.         FOpen 1, PPEPath() + "who.cfg", 0, 0
  77.         FGet 1, INTEGER002
  78.         FGet 1, STRING002
  79.         FGet 1, STRING003
  80.         FGet 1, STRING004
  81.         FGet 1, STRING005
  82.         FGet 1, STRING006
  83.         FGet 1, STRING007
  84.         FGet 1, STRING008
  85.         FGet 1, STRING009
  86.         FGet 1, STRING010
  87.         FGet 1, STRING011
  88.         FGet 1, STRING012
  89.         FGet 1, STRING013
  90.         FGet 1, STRING014
  91.         FGet 1, STRING015
  92.         FGet 1, STRING016
  93.         FGet 1, STRING017
  94.         FGet 1, STRING018
  95.         FGet 1, STRING019
  96.         FGet 1, STRING020
  97.         FGet 1, STRING021
  98.         FGet 1, STRING022
  99.         FGet 1, STRING023
  100.         FGet 1, STRING024
  101.         FGet 1, STRING025
  102.         FGet 1, STRING026
  103.         FGet 1, STRING027
  104.         FGet 1, STRING028
  105.         FGet 1, STRING029
  106.         FGet 1, STRING030
  107.         FGet 1, STRING031
  108.         FGet 1, STRING032
  109.         FGet 1, STRING033
  110.         FGet 1, STRING034
  111.         FGet 1, STRING035
  112.         FGet 1, INTEGER004
  113.         FGet 1, STRING036
  114.         FGet 1, STRING037
  115.         FClose 1
  116.     Else
  117.         PrintLn "@X09CFG File not found! - Aborting..."
  118.         Stop
  119.         :LABEL001
  120.         PrintLn "@X09NDZ File not found! - Aborting..."
  121.         Stop
  122.     Endif
  123.     RdUNet PcbNode()
  124.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "Using: @X03SkullWho 1.4", " "
  125.     If (!Exist(PPEPath() + "who.ndz")) Goto LABEL001
  126.     FOpen 2, PPEPath() + "who.ndz", 0, 0
  127.     FGet 2, STRING049
  128.     FGet 2, STRING038
  129.     FGet 2, STRING039
  130.     FGet 2, STRING040
  131.     FGet 2, STRING041
  132.     FGet 2, STRING042
  133.     FGet 2, STRING043
  134.     FGet 2, STRING044
  135.     FGet 2, STRING045
  136.     FGet 2, STRING046
  137.     FGet 2, STRING047
  138.     FClose 2
  139.     Gosub LABEL002
  140.     Gosub LABEL003
  141.     For INTEGER001 = 1 To INTEGER002
  142.         Gosub LABEL005
  143.     Next
  144.     If (STRING034 == 1) Gosub LABEL013
  145.     If (STRING034 == 0) Gosub LABEL004
  146.     Goto LABEL012
  147.     :LABEL002
  148.     If (ReadLine(PCBDat(), 90) == "0") Then
  149.         Newline
  150.         PrintLn STRING036
  151.         Newline
  152.     Else
  153.         Return
  154.         :LABEL003
  155.         Newline
  156.         If (Exist(PPEPath() + "who1.top")) Then
  157.             INTEGER004 = INTEGER004 - 1
  158.             INTEGER003 = Random(INTEGER004)
  159.             If (INTEGER003 == 0) Then
  160.                 DispFile PPEPath() + "who1.top", 1 + 4 + 2
  161.             Endif
  162.             If (INTEGER003 == 1) Then
  163.                 DispFile PPEPath() + "who2.top", 1 + 4 + 2
  164.             Endif
  165.             If (INTEGER003 == 2) Then
  166.                 DispFile PPEPath() + "who3.top", 1 + 4 + 2
  167.             Endif
  168.             If (INTEGER003 == 3) Then
  169.                 DispFile PPEPath() + "who4.top", 1 + 4 + 2
  170.             Endif
  171.             If (INTEGER003 == 4) Then
  172.                 DispFile PPEPath() + "who5.top", 1 + 4 + 2
  173.             Endif
  174.             If (INTEGER003 == 5) Then
  175.                 DispFile PPEPath() + "who6.top", 1 + 4 + 2
  176.             Endif
  177.             DispFile PPEPath() + "header", 1 + 4 + 2
  178.             Return
  179.             :LABEL004
  180.             DispFile PPEPath() + "footer", 1 + 4 + 2
  181.             Print "                 @X08SkullWho 1.4 (c) Kloy Psykuum/<┤EGiS CoRP '95"
  182.             Return
  183.             :LABEL005
  184.             RdUNet INTEGER001
  185.             Print " "
  186.             If (INTEGER001 > 99) Then
  187.                 Print "@X09@POS:2@"
  188.                 Goto LABEL006
  189.             Endif
  190.             Print "@X09@POS:3@"
  191.             :LABEL006
  192.             Print INTEGER001
  193.             Print "@X0F@POS:5@"
  194.             Print " "
  195.             If (UN_Stat() == "") Then
  196.                 PrintLn "@POS:7@" + STRING004 + ""
  197.                 If (!(STRING034 == 0)) Print "@X07" + STRING035 + ""
  198.                 Return
  199.             Endif
  200.             If ((UN_Stat() == " ") || (UN_Stat() == "V")) Then
  201.                 If (INTEGER001 == 1) STRING048 = STRING038
  202.                 If (INTEGER001 == 2) STRING048 = STRING039
  203.                 If (INTEGER001 == 3) STRING048 = STRING040
  204.                 If (INTEGER001 == 4) STRING048 = STRING041
  205.                 If (INTEGER001 == 5) STRING048 = STRING042
  206.                 If (INTEGER001 == 6) STRING048 = STRING043
  207.                 If (INTEGER001 == 7) STRING048 = STRING044
  208.                 If (INTEGER001 == 8) STRING048 = STRING045
  209.                 If (INTEGER001 == 9) STRING048 = STRING046
  210.                 If (INTEGER001 == 10) STRING048 = STRING047
  211.                 PrintLn "@POS:7@" + STRING005 + "@POS:" + STRING049 + "@" + STRING048 + ""
  212.                 If (!(STRING034 == 0)) Print "@X07" + STRING035 + ""
  213.                 Return
  214.             Endif
  215.             If (UN_Stat() == "Y") Then
  216.                 PrintLn "@POS:7@" + STRING006 + ""
  217.                 Return
  218.             Endif
  219.             If (UN_Name() == STRING031) Then
  220.                 Print "@POS:7@" + STRING033 + "" + UN_Name() + ""
  221.                 Print "@POS:30@" + STRING032 + "" + UN_City() + "" + STRING037 + ""
  222.                 Goto LABEL007
  223.             Endif
  224.             If (!(UN_Name() == "")) Print "@POS:7@" + STRING002 + "" + UN_Name() + ""
  225.             If (!(UN_City() == "")) Print "@POS:30@" + STRING003 + "" + UN_City() + "" + STRING037 + ""
  226.             :LABEL007
  227.             Gosub LABEL008
  228.             If (!(STRING034 == 0)) Print "@X07" + STRING035 + ""
  229.             Return
  230.             :LABEL008
  231.             If (PcbNode() == INTEGER001) Then
  232.                 PrintLn "@POS:58@" + STRING007 + ""
  233.                 Goto LABEL009
  234.             Endif
  235.             If (UN_Stat() == "A") Then
  236.                 PrintLn "@POS:58@" + STRING008 + ""
  237.                 Goto LABEL009
  238.             Endif
  239.             If (UN_Stat() == "U") Then
  240.                 PrintLn "@POS:58@" + STRING009 + ""
  241.                 Goto LABEL009
  242.             Endif
  243.             If (UN_Stat() == "O") Then
  244.                 PrintLn "@POS:58@" + STRING010 + ""
  245.                 Goto LABEL009
  246.             Endif
  247.             If (UN_Stat() == "S") Then
  248.                 PrintLn "@POS:58@" + STRING011 + ""
  249.                 Goto LABEL009
  250.             Endif
  251.             If (UN_Stat() == "B") Then
  252.                 PrintLn "@POS:58@" + STRING012 + ""
  253.                 Goto LABEL009
  254.             Endif
  255.             If (UN_Stat() == "T") Then
  256.                 Gosub LABEL010
  257.                 Goto LABEL009
  258.             Endif
  259.             If (UN_Stat() == "D") Then
  260.                 PrintLn "@POS:58@" + STRING013 + ""
  261.                 Goto LABEL009
  262.             Endif
  263.             If (UN_Stat() == "C") Then
  264.                 PrintLn "@POS:58@" + STRING014 + ""
  265.                 Goto LABEL009
  266.             Endif
  267.             If (UN_Stat() == "G") Then
  268.                 PrintLn "@POS:58@" + STRING015 + ""
  269.                 Goto LABEL009
  270.             Endif
  271.             If (UN_Stat() == "M") Then
  272.                 PrintLn "@POS:58@" + STRING016 + ""
  273.                 Goto LABEL009
  274.             Endif
  275.             If (UN_Stat() == "E") Then
  276.                 PrintLn "@POS:58@" + STRING017 + ""
  277.                 Goto LABEL009
  278.             Endif
  279.             If (UN_Stat() == "P") Then
  280.                 PrintLn "@POS:58@" + STRING018 + ""
  281.                 Goto LABEL009
  282.             Endif
  283.             If (UN_Stat() == "W") Then
  284.                 PrintLn "@POS:58@" + STRING019 + ""
  285.                 Goto LABEL009
  286.             Endif
  287.             If (UN_Stat() == "R") Then
  288.                 PrintLn "@POS:58@" + STRING020 + ""
  289.                 Goto LABEL009
  290.             Endif
  291.             If (UN_Stat() == "L") Then
  292.                 PrintLn "@POS:58@" + STRING021 + ""
  293.                 Goto LABEL009
  294.             Endif
  295.             If (UN_Stat() == "X") Then
  296.                 PrintLn "@POS:58@" + STRING022 + ""
  297.                 Goto LABEL009
  298.             Endif
  299.             If (UN_Stat() == "F") Then
  300.                 PrintLn "@POS:58@" + STRING023 + ""
  301.                 Goto LABEL009
  302.             Endif
  303.             If (UN_Stat() == "N") Then
  304.                 PrintLn "@POS:58@" + STRING024 + ""
  305.                 Goto LABEL009
  306.             Endif
  307.             If (UN_Stat() == "Z") Then
  308.                 PrintLn "@POS:58@" + STRING025 + ""
  309.                 Goto LABEL009
  310.             Endif
  311.             If (UN_Stat() == "H") Then
  312.                 PrintLn "@POS:58@" + STRING026 + ""
  313.                 Goto LABEL009
  314.             Endif
  315.             If (UN_Stat() == "Q") Then
  316.                 PrintLn "@POS:58@" + UN_Oper() + ""
  317.                 Goto LABEL009
  318.             Endif
  319.             PrintLn "@POS:58@" + STRING027 + ""
  320.             :LABEL009
  321.             Return
  322.             :LABEL010
  323.             STRING001 = Left(UN_Oper(), 3)
  324.             If (STRING001 == "(U)") Then
  325.                 PrintLn "@POS:58@" + STRING028 + ""
  326.                 Goto LABEL011
  327.             Endif
  328.             If (STRING001 == "(D)") Then
  329.                 PrintLn "@POS:58@" + STRING029 + ""
  330.                 Goto LABEL011
  331.             Endif
  332.             PrintLn "@POS:58@" + STRING030 + ""
  333.             :LABEL011
  334.             Return
  335.         Endif
  336.         :LABEL012
  337.         End
  338.     Endif
  339.     PrintLn "@X09WHO.TOP not found: Aborting!"
  340.     Stop
  341.     :LABEL013
  342.     DispFile PPEPath() + "footsep", 1 + 4 + 2
  343.     Print "                 @X08SkullWho 1.4 (c) Kloy Psykuum/<┤EGiS CoRP '95"
  344.     Return
  345.  
  346. ;------------------------------------------------------------------------------
  347. ;
  348. ; Usage report (before postprocessing)
  349. ;
  350. ; ■ Statements used :
  351. ;
  352. ;    1       End
  353. ;    70      Goto 
  354. ;    15      Let 
  355. ;    15      Print 
  356. ;    32      PrintLn 
  357. ;    57      If 
  358. ;    9       DispFile 
  359. ;    2       FOpen 
  360. ;    2       FClose 
  361. ;    49      FGet 
  362. ;    7       Gosub 
  363. ;    10      Return
  364. ;    3       Newline
  365. ;    3       Stop
  366. ;    2       RdUNet 
  367. ;    1       WrUNet 
  368. ;
  369. ;
  370. ; ■ Functions used :
  371. ;
  372. ;    119     +
  373. ;    1       -
  374. ;    53      ==
  375. ;    1       <
  376. ;    1       <=
  377. ;    1       >
  378. ;    2       >=
  379. ;    45      !
  380. ;    2       &&
  381. ;    2       ||
  382. ;    1       Left()
  383. ;    1       Random()
  384. ;    1       PCBDat()
  385. ;    14      PPEPath()
  386. ;    3       PcbNode()
  387. ;    1       ReadLine()
  388. ;    25      UN_Stat()
  389. ;    5       UN_Name()
  390. ;    4       UN_City()
  391. ;    2       UN_Oper()
  392. ;    3       Exist()
  393. ;
  394. ;------------------------------------------------------------------------------
  395. ;
  396. ; Analysis flags : d
  397. ;
  398. ; d - Access PCBOARD.DAT ■ 2
  399. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  400. ;     for many PPE so they can find various informations on the system
  401. ;     (system paths, max number of lines in messages, ...) but it may also
  402. ;     be a way to gather vital informations.
  403. ;     ■ Search for : PCBDAT()
  404. ;
  405. ;------------------------------------------------------------------------------
  406. ;
  407. ; Postprocessing report
  408. ;
  409. ;    1       For/Next
  410. ;    0       While/EndWhile
  411. ;    38      If/Then or If/Then/Else
  412. ;    0       Select Case
  413. ;
  414. ;------------------------------------------------------------------------------
  415. ;                 AEGiS Corp - Break the routines, code against the machines!
  416. ;------------------------------------------------------------------------------
  417.