home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PWAECJ16.ZIP / JOIN.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-05-11  |  6KB  |  432 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.     String   STRING001
  29.     String   STRING002
  30.     String   STRING003
  31.     String   STRING004
  32.     String   STRING005
  33.     String   STRING006
  34.     String   STRING007
  35.     String   STRING008
  36.     String   STRING009
  37.     String   STRING011
  38.     String   STRING012
  39.     Word     WORD001
  40.     Int      INT001
  41.     Int      INT002
  42.     Int      INT003
  43.     Int      INT005
  44.     Declare  Function FUNCTION001(Int INT004, Word WORD002) Integer
  45.     Declare  Procedure PROC001()
  46.     Declare  Procedure PROC002()
  47.     Declare  Procedure PROC003()
  48.     Declare  Procedure PROC004()
  49.     Declare  Procedure PROC005(Int INT006, String STRING010, Int INT007)
  50.     Declare  Procedure PROC006()
  51.     Declare  Procedure PROC007()
  52.  
  53. ;------------------------------------------------------------------------------
  54.  
  55.     PROC001()
  56.     PROC003()
  57.     PROC007()
  58.     End
  59.  
  60. ;------------------------------------------------------------------------------
  61.  
  62.     Procedure PROC007()
  63.  
  64.     LastIn INTEGER004
  65.  
  66.     EndProc
  67.  
  68.  
  69. ;------------------------------------------------------------------------------
  70.  
  71.     Procedure PROC002()
  72.  
  73.     String   STRING006
  74.     String   STRING007
  75.     String   STRING008
  76.     Int      INT001
  77.     Int      INT002
  78.     Int      INT003
  79.     Boolean  BOOLEAN001
  80.     Boolean  BOOLEAN002
  81.  
  82.     Print STRING004
  83.     INT001 = 1
  84.     BOOLEAN002 = 0
  85.     :LABEL001
  86.     If (BOOLEAN002) Goto LABEL005
  87.     STRING007 = ScrText(1, INT001 + INTEGER002, 79, 1)
  88.     AnsiPos 1, INT001 + INTEGER002
  89.     Print STRING005 + ScrText(1, INT001 + INTEGER002, 79, 0) + "@X01"
  90.     AnsiPos 1, INT001 + INTEGER002
  91.     STRING006 = ""
  92.     :LABEL002
  93.     If (BOOLEAN002) Goto LABEL003
  94.     STRING006 = Upper(Inkey())
  95.     If ((((((((((((((((((((STRING006 == "9") || (STRING006 == "3")) || (STRING006 == "S")) || (STRING006 == "X")) || (STRING006 == "8")) || (STRING006 == "2")) || (STRING006 == "A")) || (STRING006 == "Z")) || (STRING006 == "Q")) || (STRING006 == "M")) || (STRING006 == Chr(13))) || (STRING006 == "UP")) || (STRING006 == "DOWN")) || (STRING006 == "PGUP")) || (STRING006 == "PGDN")) || (STRING006 == "LEFT")) || (STRING006 == "RIGHT")) || (STRING006 == "4")) || (STRING006 == "6")) || (STRING006 == Chr(27))) Then
  96.         BOOLEAN002 = 1
  97.     Endif
  98.     Goto LABEL002
  99.     :LABEL003
  100.     BOOLEAN002 = 0
  101.     Select Case (STRING006)
  102.         Case "A", "UP", "8"
  103.             AnsiPos 1, INT001 + INTEGER002
  104.             Print STRING007
  105.             INT001 = INT001 - 1
  106.             If (INT001 == 0) INT001 = INTEGER005
  107.         Case "Z", "DOWN", "2"
  108.             AnsiPos 1, INT001 + INTEGER002
  109.             Print STRING007
  110.             INT001 = INT001 + 1
  111.             If (INT001 == INTEGER005 + 1) Then
  112.                 If (INTEGER005 == INTEGER003) BOOLEAN002 = 1
  113.                 INT001 = 1
  114.             Endif
  115.         Case "PGDN", "3", "X", "6", "RIGHT"
  116.             BOOLEAN002 = 1
  117.             AnsiPos 1, INTEGER005 + INTEGER002 + 1
  118.         Case "PGUP", "9", "S", "4", "LEFT"
  119.             INT002 = S2I(Left(ScrText(1, 1 + INTEGER002, 79, 0), 4), 10) - 1
  120.             INTEGER005 = 0
  121.             While ((INT002 > -1) && (INTEGER005 < INTEGER003)) Do
  122.                 FSeek 1, WORD001 * INT002 + 2, 0
  123.                 FRead 1, STRING008, 14
  124.                 If (Strip(STRING008, " ") <> "") Then
  125.                     FRead 1, BOOLEAN001, 1
  126.                     If (BOOLEAN001 == 1) Then
  127.                         FSeek 1, 5, 1
  128.                         FRead 1, INT003, 2
  129.                         If (U_Sec >= INT003) Then
  130.                             INTEGER005 = INTEGER005 + 1
  131.                         Endif
  132.                     Endif
  133.                 Endif
  134.                 INT002 = INT002 - 1
  135.             EndWhile
  136.             INTEGER001 = INT002
  137.             BOOLEAN002 = 1
  138.         Case "M"
  139.             PROC007()
  140.             AnsiPos 1, U_PageLen
  141.             Stop
  142.         Case "Q", Chr(27)
  143.             PROC007()
  144.             AnsiPos 1, U_PageLen
  145.             KbdStuff Chr(13)
  146.             End
  147.         Case Chr(13)
  148.             If (INT001 < INTEGER005 + 1) Then
  149.                 KbdStuff Left(ScrText(1, INT001 + INTEGER002, 79, 0), 4) + Chr(13)
  150.                 AnsiPos 1, U_PageLen
  151.                 Stop
  152.                 Goto LABEL004
  153.             Endif
  154.             BOOLEAN002 = 1
  155.     End Select
  156.     :LABEL004
  157.     Goto LABEL001
  158.     :LABEL005
  159.  
  160.     EndProc
  161.  
  162.  
  163. ;------------------------------------------------------------------------------
  164.  
  165.     Procedure PROC003()
  166.  
  167.     GetUser
  168.     INTEGER005 = 0
  169.     FOpen 1, STRING001, 0, 0
  170.     FOpen 2, STRING002, 0, 0
  171.     FRead 1, WORD001, 2
  172.     PROC004()
  173.     INTEGER002 = GetY() - 1
  174.     INTEGER001 = 0
  175.     While (INTEGER001 <= HiConfNum()) Do
  176.         INTEGER005 = INTEGER005 + FUNCTION001(INTEGER001, WORD001)
  177.         If ((INTEGER005 == INTEGER003) || ((INTEGER001 == HiConfNum()) && INTEGER005)) Then
  178.             PROC006()
  179.             PROC002()
  180.             INTEGER005 = 0
  181.             PROC004()
  182.         Endif
  183.         INTEGER001 = INTEGER001 + 1
  184.     EndWhile
  185.     FClose 1
  186.     FClose 2
  187.  
  188.     EndProc
  189.  
  190.  
  191. ;------------------------------------------------------------------------------
  192.  
  193.     Function FUNCTION001(Int INT004, Word WORD002) Integer
  194.  
  195.     Boolean  BOOLEAN003
  196.     String   STRING009
  197.     Int      INT005
  198.     Int      INT006
  199.  
  200.     FSeek 1, WORD002 * INTEGER001 + 2, 0
  201.     FRead 1, STRING009, 14
  202.     If (Strip(STRING009, " ") <> "") Then
  203.         FRead 1, BOOLEAN003, 1
  204.         If (BOOLEAN003 == 1) Then
  205.             FSeek 1, 5, 1
  206.             FRead 1, INT005, 2
  207.             If (U_Sec >= INT005) Then
  208.                 PROC005(INT004, STRING009, 0)
  209.                 FUNCTION001 = 1
  210.             Else
  211.                 FSeek 1, WORD002 - 22, 1
  212.                 FUNCTION001 = 0
  213.             Endif
  214.         ElseIf (ConfReg(INT004)) Then
  215.             PROC005(INT004, STRING009, 7)
  216.             FUNCTION001 = 1
  217.         Else
  218.             FSeek 1, WORD002 - 14 - 1, 1
  219.             FUNCTION001 = 0
  220.         Endif
  221.     Else
  222.         FSeek 1, WORD002 - 14, 1
  223.         FUNCTION001 = 0
  224.     Endif
  225.  
  226.     EndFunc
  227.  
  228.  
  229. ;------------------------------------------------------------------------------
  230.  
  231.     Procedure PROC005(Int INT006, String STRING010, Int INT007)
  232.  
  233.     String   STRING011
  234.     String   STRING012
  235.  
  236.     LastIn INT006
  237.     STRING011 = STRING003
  238.     STRING011 = ReplaceStr(STRING011, "%N%", String(INT006))
  239.     FSeek 2, INT006 * 256 + 208, 0
  240.     FRead 2, STRING012, 48
  241.     STRING012 = STRING010 + STRING012
  242.     STRING011 = ReplaceStr(STRING011, "%C%", String(STRING012))
  243.     FSeek 1, INT007 + 5, 1
  244.     FRead 1, STRING012, 32
  245.     If (STRING012 == "") Then
  246.         STRING011 = ReplaceStr(STRING011, "%M%", "No")
  247.     Else
  248.         STRING011 = ReplaceStr(STRING011, "%M%", "Yes")
  249.     Endif
  250.     FSeek 1, 237, 1
  251.     FRead 1, STRING012, 33
  252.     If (STRING012 == "") Then
  253.         STRING011 = ReplaceStr(STRING011, "%D%", "No")
  254.     Else
  255.         STRING011 = ReplaceStr(STRING011, "%D%", "Yes")
  256.     Endif
  257.     FSeek 1, 29, 1
  258.     FRead 1, STRING012, 33
  259.     If (STRING012 == "") Then
  260.         STRING011 = ReplaceStr(STRING011, "%B%", "No")
  261.     Else
  262.         STRING011 = ReplaceStr(STRING011, "%B%", "Yes")
  263.     Endif
  264.     FSeek 1, 29, 1
  265.     FRead 1, STRING012, 33
  266.     If (STRING012 == "") Then
  267.         STRING011 = ReplaceStr(STRING011, "%S%", "No")
  268.     Else
  269.         STRING011 = ReplaceStr(STRING011, "%S%", "Yes")
  270.     Endif
  271.     FSeek 1, 62, 1
  272.     FRead 1, STRING012, 33
  273.     If (STRING012 == "") Then
  274.         STRING011 = ReplaceStr(STRING011, "%F%", "No")
  275.     Else
  276.         STRING011 = ReplaceStr(STRING011, "%F%", "Yes")
  277.     Endif
  278.     If (InStr(STRING011, "%HM%")) Then
  279.         STRING011 = ReplaceStr(STRING011, "%HM%", HiMsgNum())
  280.     Endif
  281.     If (InStr(STRING011, "%LR%")) Then
  282.         STRING011 = ReplaceStr(STRING011, "%LR%", U_Lmr(INT006))
  283.     Endif
  284.     LastIn INTEGER004
  285.     PrintLn STRING011
  286.  
  287.     EndProc
  288.  
  289.  
  290. ;------------------------------------------------------------------------------
  291.  
  292.     Procedure PROC006()
  293.  
  294.     If (Exist(PPEPath() + "JOIN.BOT")) Then
  295.         DispFile PPEPath() + "JOIN.BOT", 0
  296.     Endif
  297.  
  298.     EndProc
  299.  
  300.  
  301. ;------------------------------------------------------------------------------
  302.  
  303.     Procedure PROC004()
  304.  
  305.     If (Exist(PPEPath() + "JOIN.TOP")) Then
  306.         DispStr "%" + PPEPath() + "JOIN.TOP"
  307.     Endif
  308.  
  309.     EndProc
  310.  
  311.  
  312. ;------------------------------------------------------------------------------
  313.  
  314.     Procedure PROC001()
  315.  
  316.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "ECJ: Viewing confs", " "
  317.     If (Exist(PPEPath() + "JOIN.CFG")) Then
  318.         STRING001 = ReadLine(PCBDat(), 31) + ".@@@"
  319.         If (Exist(STRING001)) Goto LABEL006
  320.         PrintLn STRING001 + " does not exist.  Bad path in PCBOARD.DAT"
  321.         End
  322.         :LABEL006
  323.         STRING002 = ReadLine(PCBDat(), 31) + ".ADD"
  324.         If (Exist(STRING002)) Goto LABEL007
  325.         PrintLn STRING002 + " does not exist.  Bad path in PCBOARD.DAT"
  326.         End
  327.         :LABEL007
  328.     Else
  329.         PrintLn PPEPath() + "JOIN.CFG does not exist!  Exiting."
  330.         End
  331.     Endif
  332.     INTEGER003 = S2I(ReadLine(PPEPath() + "JOIN.CFG", 1), 10)
  333.     STRING003 = ReadLine(PPEPath() + "JOIN.CFG", 2)
  334.     STRING004 = ReadLine(PPEPath() + "JOIN.CFG", 3)
  335.     STRING005 = ReadLine(PPEPath() + "JOIN.CFG", 4)
  336.     FClose -1
  337.     INTEGER004 = CurConf()
  338.  
  339.     EndProc
  340.  
  341.  
  342. ;------------------------------------------------------------------------------
  343. ;
  344. ; Usage report (before postprocessing)
  345. ;
  346. ; ■ Statements used :
  347. ;
  348. ;    5       End
  349. ;    56      Goto 
  350. ;    54      Let 
  351. ;    4       Print 
  352. ;    4       PrintLn 
  353. ;    36      If 
  354. ;    1       DispFile 
  355. ;    2       FOpen 
  356. ;    3       FClose 
  357. ;    1       GetUser
  358. ;    2       Stop
  359. ;    2       KbdStuff 
  360. ;    1       DispStr 
  361. ;    1       WrUNet 
  362. ;    8       AnsiPos 
  363. ;    13      FSeek 
  364. ;    13      FRead 
  365. ;    3       LastIn 
  366. ;    7       EndProc
  367. ;    1       EndFunc
  368. ;
  369. ;
  370. ; ■ Functions used :
  371. ;
  372. ;    2       -
  373. ;    3       *
  374. ;    39      +
  375. ;    8       -
  376. ;    52      ==
  377. ;    2       <>
  378. ;    2       <
  379. ;    1       <=
  380. ;    1       >
  381. ;    2       >=
  382. ;    34      !
  383. ;    2       &&
  384. ;    33      ||
  385. ;    1       Upper()
  386. ;    2       Left()
  387. ;    6       Chr()
  388. ;    2       InStr()
  389. ;    2       Strip()
  390. ;    1       Inkey()
  391. ;    2       String()
  392. ;    1       CurConf()
  393. ;    2       PCBDat()
  394. ;    10      PPEPath()
  395. ;    1       PcbNode()
  396. ;    6       ReadLine()
  397. ;    1       UN_Name()
  398. ;    1       UN_City()
  399. ;    5       Exist()
  400. ;    2       S2I()
  401. ;    1       GetY()
  402. ;    4       ScrText()
  403. ;    14      ReplaceStr()
  404. ;    1       ConfReg()
  405. ;    1       U_Lmr()
  406. ;    1       HiMsgNum()
  407. ;    2       HiConfNum()
  408. ;
  409. ;------------------------------------------------------------------------------
  410. ;
  411. ; Analysis flags : d
  412. ;
  413. ; d - Access PCBOARD.DAT ■ 2
  414. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  415. ;     for many PPE so they can find various informations on the system
  416. ;     (system paths, max number of lines in messages, ...) but it may also
  417. ;     be a way to gather vital informations.
  418. ;     ■ Search for : PCBDAT()
  419. ;
  420. ;------------------------------------------------------------------------------
  421. ;
  422. ; Postprocessing report
  423. ;
  424. ;    0       For/Next
  425. ;    2       While/EndWhile
  426. ;    21      If/Then or If/Then/Else
  427. ;    1       Select Case
  428. ;
  429. ;------------------------------------------------------------------------------
  430. ;                 AEGiS Corp - Break the routines, code against the machines!
  431. ;------------------------------------------------------------------------------
  432.