home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / F / FOOD-XJ1.ZIP / FOODJOIN.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1997-05-10  |  5KB  |  369 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.3O (Encryption type II) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     String   STRING001
  21.     String   STRING002
  22.     String   STRING003
  23.     String   STRING004
  24.     String   STRING005
  25.     String   STRING006
  26.     String   STRING007
  27.     String   STRING008
  28.     String   STRING009
  29.     String   STRING010
  30.     String   STRING012
  31.     String   STRING013
  32.     String   STRING014
  33.     Byte     BYTE001
  34.     Byte     BYTE002
  35.     Byte     BYTE003
  36.     Byte     BYTE004
  37.     Byte     BYTE005
  38.     Byte     BYTE006
  39.     Byte     BYTE007
  40.     Byte     BYTE008
  41.     Byte     BYTE009
  42.     Byte     BYTE010
  43.     Byte     BYTE011
  44.     Byte     TBYTE012(1)
  45.     Byte     BYTE013
  46.     Byte     BYTE014
  47.     Byte     BYTE015
  48.     Byte     BYTE016
  49.     Byte     BYTE017
  50.     Byte     BYTE018
  51.     Byte     BYTE019
  52.     Byte     BYTE020
  53.     Byte     TBYTE021(99)
  54.     Byte     TBYTE022(99)
  55.     Byte     TBYTE023(99)
  56.     Byte     BYTE024
  57.     Declare  Procedure PROC001(String STRING011)
  58.     Declare  Procedure PROC002(Byte BYTE025, Boolean BOOLEAN002)
  59.  
  60. ;------------------------------------------------------------------------------
  61.  
  62.     STRING004 = "/X JOIN v0.99 by 2 Stoned/FOOD"
  63.     STRING001 = TokenStr()
  64.     If (STRING001 <> "") Then
  65.         Color DefColor()
  66.         Cls
  67.         PrintLn STRING004 + "... Report bugs at +31-547-261154 ..."
  68.         Delay 9
  69.         Join STRING001
  70.         End
  71.     Endif
  72.     STRING003 = PPEPath() + PPEName() + ".CNF"
  73.     STRING007 = PPEPath() + PPEName() + ".TOP"
  74.     STRING006 = PPEPath() + PPEName() + ".BOT"
  75.     STRING005 = PPEPath() + PPEName() + ".NAM"
  76.     If (Exist(STRING003)) Goto LABEL001
  77.     FreshLine
  78.     PrintLn STRING004 + ", Error(1): FOODJOIN.CNF not found..."
  79.     Delay 18
  80.     End
  81.     Goto LABEL002
  82.     :LABEL001
  83.     GetUser
  84.     BYTE013 = FNext()
  85.     FOpen BYTE013, STRING003, 0, 0
  86.     FGet BYTE013, STRING008
  87.     Tokenize STRING008
  88.     BYTE010 = TokCount() - 1
  89.     Redim TBYTE012, BYTE010
  90.     BYTE011 = GetToken()
  91.     For BYTE016 = 1 To BYTE010
  92.         TBYTE012(BYTE016) = GetToken()
  93.     Next
  94.     FGet BYTE013, STRING009
  95.     FGet BYTE013, STRING010
  96.     FGet BYTE013, STRING008
  97.     Tokenize STRING008
  98.     BYTE005 = GetToken()
  99.     BYTE006 = Asc(GetToken())
  100.     FGet BYTE013, STRING008
  101.     Tokenize STRING008
  102.     BYTE007 = GetToken()
  103.     BYTE008 = Asc(GetToken())
  104.     BYTE009 = Upper(GetToken())
  105.     If (BYTE009 <> "L") BYTE009 = "R"
  106.     FClose BYTE013
  107.     :LABEL002
  108.     For BYTE016 = 0 To HiConfNum()
  109.         BOOLEAN001 = 0
  110.         If (ConfInfo(BYTE016, 2)) Goto LABEL003
  111.         If (U_InConf(U_RecNum(U_Name()), BYTE016)) BOOLEAN001 = 1
  112.         Goto LABEL004
  113.         :LABEL003
  114.         If (U_Sec >= ConfInfo(BYTE016, 8)) BOOLEAN001 = 1
  115.         :LABEL004
  116.         If (ConfInfo(BYTE016, 1) == "") BOOLEAN001 = 0
  117.         If (BOOLEAN001) Then
  118.             Inc BYTE020
  119.             TBYTE021(BYTE020) = BYTE016
  120.             If (CurConf() == BYTE016) BYTE004 = BYTE020
  121.         Endif
  122.     Next
  123.     If (BYTE020 == 0) Then
  124.         FreshLine
  125.         PrintLn STRING004 + ", Error(2): No conferences available..."
  126.         Delay 18
  127.         End
  128.     Endif
  129.     If (BYTE004 == 0) BYTE004 = 1
  130.     If (Exist(STRING007)) PROC001(STRING007)
  131.     BYTE001 = ToByte(BYTE020 / BYTE010)
  132.     BYTE002 = BYTE020 % BYTE010
  133.     BYTE003 = BYTE002
  134.     For BYTE016 = 1 To BYTE010
  135.         BYTE019 = 0
  136.         For BYTE017 = 1 To BYTE001
  137.             Inc BYTE018
  138.             Inc BYTE019
  139.             TBYTE022(BYTE018) = TBYTE012(BYTE016)
  140.             TBYTE023(BYTE018) = BYTE019 + BYTE011 - 1
  141.         Next
  142.         If (BYTE024 == 0) BYTE024 = TBYTE023(BYTE018)
  143.         If (BYTE003) Then
  144.             Inc BYTE018
  145.             Inc BYTE019
  146.             TBYTE022(BYTE018) = TBYTE012(BYTE016)
  147.             TBYTE023(BYTE018) = BYTE019 + BYTE011 - 1
  148.             BYTE024 = TBYTE023(BYTE018)
  149.             Dec BYTE003
  150.         Endif
  151.     Next
  152.     For BYTE016 = 1 To BYTE020
  153.         If (BYTE016 <> BYTE004) PROC002(BYTE016, 0)
  154.     Next
  155.     AnsiPos 1, BYTE024 + 1
  156.     If (Exist(STRING006)) PROC001(STRING006)
  157.     PROC002(BYTE004, 1)
  158.     :LABEL005
  159.     STRING002 = Upper(Inkey())
  160.     If (STRING002 == "DOWN") Then
  161.         For BYTE016 = BYTE004 + 1 To BYTE020
  162.             If ((TBYTE022(BYTE016) == TBYTE022(BYTE004)) && (TBYTE023(BYTE016) > TBYTE023(BYTE004))) Then
  163.                 PROC002(BYTE004, 0)
  164.                 BYTE004 = BYTE016
  165.                 PROC002(BYTE004, 1)
  166.                 Goto LABEL005
  167.             Endif
  168.         Next
  169.     Endif
  170.     If (STRING002 == "UP") Then
  171.         For BYTE016 = BYTE004 - 1 To 1 Step -1
  172.             If ((TBYTE022(BYTE016) == TBYTE022(BYTE004)) && (TBYTE023(BYTE016) < TBYTE023(BYTE004))) Then
  173.                 PROC002(BYTE004, 0)
  174.                 BYTE004 = BYTE016
  175.                 PROC002(BYTE004, 1)
  176.                 Goto LABEL005
  177.             Endif
  178.         Next
  179.     Endif
  180.     If (STRING002 == "RIGHT") Then
  181.         For BYTE016 = BYTE004 + 1 To BYTE020
  182.             If ((TBYTE022(BYTE016) > TBYTE022(BYTE004)) && (TBYTE023(BYTE016) == TBYTE023(BYTE004))) Then
  183.                 PROC002(BYTE004, 0)
  184.                 BYTE004 = BYTE016
  185.                 PROC002(BYTE004, 1)
  186.                 Goto LABEL005
  187.             Endif
  188.         Next
  189.     Endif
  190.     If (STRING002 == "LEFT") Then
  191.         For BYTE016 = BYTE004 - 1 To 1 Step -1
  192.             If ((TBYTE022(BYTE016) < TBYTE022(BYTE004)) && (TBYTE023(BYTE016) == TBYTE023(BYTE004))) Then
  193.                 PROC002(BYTE004, 0)
  194.                 BYTE004 = BYTE016
  195.                 PROC002(BYTE004, 1)
  196.                 Goto LABEL005
  197.             Endif
  198.         Next
  199.     Endif
  200.     If (STRING002 == Chr(13)) Then
  201.         Color DefColor()
  202.         Cls
  203.         PrintLn STRING004 + "... Report bugs at +31-547-261154 ..."
  204.         Delay 9
  205.         Join String(TBYTE021(BYTE004))
  206.         End
  207.     Endif
  208.     If (STRING002 == Chr(27)) Then
  209.         Color DefColor()
  210.         Cls
  211.         PrintLn STRING004 + "... Report bugs at +31-547-261154 ..."
  212.         Delay 9
  213.         End
  214.     Endif
  215.     Goto LABEL005
  216.     End
  217.  
  218. ;------------------------------------------------------------------------------
  219.  
  220.     Procedure PROC001(String STRING011)
  221.  
  222.     BYTE013 = FNext()
  223.     FOpen BYTE013, STRING011, 0, 0
  224.     :LABEL006
  225.     If (Ferr(BYTE013)) Goto LABEL007
  226.     FGet BYTE013, STRING008
  227.     If (InStr(STRING008, "%LINE%")) Then
  228.         PrintLn ReplaceStr(STRING008, "%LINE%", "")
  229.         BYTE014 = InStr(StripAtx(PCBMac(STRING008)), "%LINE%")
  230.         BYTE015 = GetY() - 1
  231.     Else
  232.         PrintLn STRING008
  233.     Endif
  234.     Goto LABEL006
  235.     :LABEL007
  236.     FClose BYTE013
  237.     FreshLine
  238.  
  239.     EndProc
  240.  
  241.  
  242. ;------------------------------------------------------------------------------
  243.  
  244.     Procedure PROC002(Byte BYTE025, Boolean BOOLEAN002)
  245.  
  246.     String   STRING012
  247.     String   STRING013
  248.     String   STRING014
  249.  
  250.     AnsiPos TBYTE022(BYTE025), TBYTE023(BYTE025)
  251.     If (BOOLEAN002) Then
  252.         STRING014 = STRING010
  253.     Else
  254.         STRING014 = STRING009
  255.     Endif
  256.     STRING013 = String(TBYTE021(BYTE025))
  257.     STRING013 = Replace(Space(BYTE005 - Len(STRING013)), " ", Chr(BYTE006)) + STRING013
  258.     STRING012 = ReplaceStr(STRING014, "%CNR%", STRING013)
  259.     STRING013 = RTrim(Mid(String(ConfInfo(TBYTE021(BYTE025), 1)), 1, BYTE007), " ")
  260.     If (BYTE009 == "R") Then
  261.         STRING013 = Replace(Space(BYTE007 - Len(STRING013)), " ", Chr(BYTE008)) + STRING013
  262.     Else
  263.         STRING013 = STRING013 + Replace(Space(BYTE007 - Len(STRING013)), " ", Chr(BYTE008))
  264.     Endif
  265.     STRING012 = ReplaceStr(STRING012, "%CNAME%", STRING013)
  266.     Print STRING012
  267.     If ((BOOLEAN002 && (BYTE014 > 0)) && (BYTE015 > 0)) Then
  268.         AnsiPos BYTE014, BYTE015
  269.         Print ReadLine(STRING005, TBYTE021(BYTE025) + 1)
  270.     Endif
  271.  
  272.     EndProc
  273.  
  274.  
  275. ;------------------------------------------------------------------------------
  276. ;
  277. ; Usage report (before postprocessing)
  278. ;
  279. ; ■ Statements used :
  280. ;
  281. ;    6       End
  282. ;    3       Cls
  283. ;    3       Color 
  284. ;    51      Goto 
  285. ;    68      Let 
  286. ;    2       Print 
  287. ;    7       PrintLn 
  288. ;    40      If 
  289. ;    2       FOpen 
  290. ;    2       FClose 
  291. ;    6       FGet 
  292. ;    1       GetUser
  293. ;    5       Delay 
  294. ;    5       Inc 
  295. ;    1       Dec 
  296. ;    3       Tokenize 
  297. ;    2       Join 
  298. ;    3       AnsiPos 
  299. ;    3       FreshLine
  300. ;    1       Redim 
  301. ;    2       EndProc
  302. ;
  303. ;
  304. ; ■ Functions used :
  305. ;
  306. ;    6       -
  307. ;    1       /
  308. ;    1       %
  309. ;    31      +
  310. ;    9       -
  311. ;    16      ==
  312. ;    3       <>
  313. ;    11      <
  314. ;    9       <=
  315. ;    4       >
  316. ;    19      >=
  317. ;    30      !
  318. ;    24      &&
  319. ;    9       ||
  320. ;    3       Len(
  321. ;    2       Upper()
  322. ;    1       Mid()
  323. ;    3       Space()
  324. ;    1       Ferr()
  325. ;    5       Chr()
  326. ;    2       Asc()
  327. ;    2       InStr()
  328. ;    1       RTrim()
  329. ;    1       U_Name()
  330. ;    1       StripAtx()
  331. ;    3       Replace()
  332. ;    1       Inkey()
  333. ;    3       String()
  334. ;    1       CurConf()
  335. ;    4       PPEPath()
  336. ;    1       ReadLine()
  337. ;    7       GetToken()
  338. ;    3       Exist()
  339. ;    1       TokenStr()
  340. ;    1       GetY()
  341. ;    3       DefColor()
  342. ;    4       PPEName()
  343. ;    1       TokCount()
  344. ;    1       U_RecNum()
  345. ;    1       U_InConf()
  346. ;    3       ReplaceStr()
  347. ;    1       ToByte()
  348. ;    2       HiConfNum()
  349. ;    1       PCBMac()
  350. ;    2       FNext()
  351. ;    4       ConfInfo()
  352. ;
  353. ;------------------------------------------------------------------------------
  354. ;
  355. ; Analysis flags : No flag
  356. ;
  357. ;------------------------------------------------------------------------------
  358. ;
  359. ; Postprocessing report
  360. ;
  361. ;    9       For/Next
  362. ;    0       While/EndWhile
  363. ;    18      If/Then or If/Then/Else
  364. ;    0       Select Case
  365. ;
  366. ;------------------------------------------------------------------------------
  367. ;                 AEGiS Corp - Break the routines, code against the machines!
  368. ;------------------------------------------------------------------------------
  369.