home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SDE-ZI11.ZIP / SDE-ZL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-12-30  |  5KB  |  394 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.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Integer  INTEGER001
  25.     Integer  INTEGER002
  26.     Integer  INTEGER003
  27.     Integer  INTEGER004
  28.     Integer  INTEGER005
  29.     Integer  INTEGER009
  30.     Integer  INTEGER016
  31.     Integer  INTEGER017
  32.     String   TSTRING001(10)
  33.     String   STRING002
  34.     String   STRING003
  35.     String   STRING004
  36.     String   STRING009
  37.     String   STRING010
  38.     String   STRING011
  39.     String   STRING012
  40.     String   STRING013
  41.     String   STRING014
  42.     String   STRING015
  43.     String   STRING016
  44.     Byte     BYTE001
  45.     Int      INT001
  46.     Int      INT002
  47.     Int      INT003
  48.     Declare  Function FUNCTION001() Integer
  49.     Declare  Function FUNCTION002(String STRING005, String STRING006, String STRING007, String STRING008) String
  50.     Declare  Function FUNCTION003(Integer INTEGER006, Integer INTEGER007, Integer INTEGER008) String
  51.     Declare  Procedure PROC001(Integer INTEGER010)
  52.     Declare  Procedure PROC002(Integer INTEGER011)
  53.     Declare  Procedure PROC003(Integer INTEGER012, Integer INTEGER013, Integer INTEGER014, Integer INTEGER015)
  54.     Declare  Procedure PROC004()
  55.     Declare  Procedure PROC005()
  56.     Declare  Procedure PROC006()
  57.     Declare  Procedure PROC007()
  58.     Declare  Procedure PROC008()
  59.  
  60. ;------------------------------------------------------------------------------
  61.  
  62.     If (Len(LastAns()) <= 2) Then
  63.         PROC008()
  64.         STRING002 = "Z "
  65.         If (Left(Upper(LastAns()), 1) == "L") STRING002 = "L "
  66.         PROC007()
  67.         Print "@X0B"
  68.         STRING003 = FUNCTION003(17, 6, 44)
  69.         If (STRING003 <> "") Then
  70.             STRING004 = ""
  71.             Cls
  72.             If (TSTRING001(0) == "ALL") Join 1
  73.             If (TSTRING001(1) == "ON ") STRING004 = " D"
  74.             If (TSTRING001(2) == "ON ") STRING004 = STRING004 + " NS"
  75.             KbdStuff STRING002 + STRING003 + " A" + STRING004 + Chr(13)
  76.         Else
  77.             Cls
  78.             PrintLn FUNCTION002("ZIPPY SCAN/LOCATE DONE BY STEAM/SDE ANSI BY OBI^WAN/SDE. ", "@X05", "@X0D", "@X0F")
  79.             PrintLn FUNCTION002("ABORTED ...", "@X08", "@X07", "@X0F")
  80.             Newline
  81.         Endif
  82.     Else
  83.         KbdStuff LastAns()
  84.     Endif
  85.     End
  86.  
  87. ;------------------------------------------------------------------------------
  88.  
  89.     Procedure PROC006()
  90.  
  91.     BOOLEAN002 = 0
  92.     While (BOOLEAN002 == 0) Do
  93.         INT001 = FUNCTION001()
  94.         If (INT001 == 99) Then
  95.             BOOLEAN002 = 1
  96.         Endif
  97.     EndWhile
  98.  
  99.     EndProc
  100.  
  101.  
  102. ;------------------------------------------------------------------------------
  103.  
  104.     Function FUNCTION002(String STRING005, String STRING006, String STRING007, String STRING008) String
  105.  
  106.     String   STRING010
  107.     String   STRING011
  108.     Int      INT002
  109.     Int      INT003
  110.     Integer  INTEGER006
  111.  
  112.     INT003 = 0
  113.     STRING010 = ""
  114.     For INT002 = 1 To Len(STRING005)
  115.         STRING011 = Mid(STRING005, INT002, 1)
  116.         If (STRING011 <> " ") Then
  117.             If (INT003 == 0) Then
  118.                 STRING010 = STRING010 + STRING006
  119.                 Goto LABEL001
  120.             Endif
  121.             If (INT003 == 1) Then
  122.                 STRING010 = STRING010 + STRING007
  123.                 Goto LABEL001
  124.             Endif
  125.             If (INT003 == 2) Then
  126.                 STRING010 = STRING010 + STRING008
  127.             Endif
  128.             :LABEL001
  129.             Inc INT003
  130.             STRING010 = STRING010 + STRING011
  131.             Continue
  132.         Endif
  133.         STRING010 = STRING010 + STRING011
  134.         INT003 = 0
  135.     Next
  136.     FUNCTION002 = STRING010
  137.  
  138.     EndFunc
  139.  
  140.  
  141. ;------------------------------------------------------------------------------
  142.  
  143.     Function FUNCTION003(Integer INTEGER006, Integer INTEGER007, Integer INTEGER008) String
  144.  
  145.     String   STRING013
  146.     String   STRING014
  147.     Integer  INTEGER009
  148.     Boolean  BOOLEAN004
  149.  
  150.     BOOLEAN003 = 0
  151.     AnsiPos INTEGER006, INTEGER007
  152.     STRING013 = ""
  153.     BOOLEAN004 = 0
  154.     While (BOOLEAN004 == 0) Do
  155.         STRING014 = Inkey()
  156.         INTEGER009 = Asc(STRING014)
  157.         If ((((((STRING014 <> "DOWN") && (STRING014 <> "UP")) && (STRING014 <> "LEFT")) && (STRING014 <> "RIGHT")) && (INTEGER009 <> 9)) && (INTEGER009 <> 27)) Then
  158.             If (INTEGER009 == 13) Then
  159.                 BOOLEAN004 = 1
  160.                 Goto LABEL002
  161.             Endif
  162.             If (INTEGER009 == 8) Then
  163.                 If (Len(STRING013) > 0) Then
  164.                     STRING013 = Mid(STRING013, 1, Len(STRING013) - 1)
  165.                     Print STRING014 + "@X0F·@X0B" + STRING014
  166.                 Endif
  167.                 Goto LABEL002
  168.             Endif
  169.             If (Len(STRING013) < INTEGER008) Then
  170.                 STRING013 = STRING013 + STRING014
  171.                 If (STRING014 == " ") Then
  172.                     Print "@X0F·@X0B"
  173.                     Goto LABEL002
  174.                 Endif
  175.                 Print STRING014
  176.             Endif
  177.             :LABEL002
  178.             Continue
  179.         Endif
  180.         If (INTEGER009 == 9) Then
  181.             PROC006()
  182.             PROC003(75, 12, 3, 2)
  183.             Print "@X0B"
  184.             AnsiPos INTEGER006 + Len(STRING013), INTEGER007
  185.         Endif
  186.         If (INTEGER009 == 27) Then
  187.             BOOLEAN004 = 1
  188.             BOOLEAN003 = 1
  189.         Endif
  190.     EndWhile
  191.     FUNCTION003 = STRING013
  192.  
  193.     EndFunc
  194.  
  195.  
  196. ;------------------------------------------------------------------------------
  197.  
  198.     Procedure PROC007()
  199.  
  200.     Cls
  201.     StartDisp 1
  202.     If (STRING002 == "Z ") Then
  203.         DispFile PPEPath() + "zippyscn.pcb", 1
  204.     Else
  205.         DispFile PPEPath() + "locate.pcb", 1
  206.     Endif
  207.     PROC003(75, 12, 3, 2)
  208.  
  209.     EndProc
  210.  
  211.  
  212. ;------------------------------------------------------------------------------
  213.  
  214.     Procedure PROC008()
  215.  
  216.     TSTRING001(0) = "ALL"
  217.     TSTRING001(1) = "OFF"
  218.     TSTRING001(2) = "OFF"
  219.     TSTRING001(3) = "  "
  220.     TSTRING001(4) = "CUR"
  221.     TSTRING001(5) = "ON "
  222.     TSTRING001(6) = "ON "
  223.     TSTRING001(7) = "   "
  224.  
  225.     EndProc
  226.  
  227.  
  228. ;------------------------------------------------------------------------------
  229.  
  230.     Procedure PROC001(Integer INTEGER010)
  231.  
  232.     AnsiPos INTEGER002, INTEGER003 + INTEGER010
  233.     Print "@X05" + TSTRING001(INTEGER010) + Space(INTEGER004 - Len(TSTRING001(INTEGER010)))
  234.  
  235.     EndProc
  236.  
  237.  
  238. ;------------------------------------------------------------------------------
  239.  
  240.     Procedure PROC002(Integer INTEGER011)
  241.  
  242.     AnsiPos INTEGER002, INTEGER003 + INTEGER011
  243.     Print "@X1F" + Upper(TSTRING001(INTEGER011)) + Space(INTEGER004 - Len(TSTRING001(INTEGER011))) + "@X07"
  244.  
  245.     EndProc
  246.  
  247.  
  248. ;------------------------------------------------------------------------------
  249.  
  250.     Procedure PROC003(Integer INTEGER012, Integer INTEGER013, Integer INTEGER014, Integer INTEGER015)
  251.  
  252.     Integer  INTEGER016
  253.  
  254.     INTEGER002 = INTEGER012
  255.     INTEGER003 = INTEGER013
  256.     INTEGER004 = INTEGER014
  257.     INTEGER005 = INTEGER015 + 1
  258.     For INTEGER016 = 0 To INTEGER015
  259.         AnsiPos INTEGER012, INTEGER013 + INTEGER016
  260.         Print "@X05" + TSTRING001(INTEGER016)
  261.     Next
  262.     INTEGER001 = 0
  263.  
  264.     EndProc
  265.  
  266.  
  267. ;------------------------------------------------------------------------------
  268.  
  269.     Procedure PROC004()
  270.  
  271.     PROC001(INTEGER001)
  272.     INTEGER001 = (INTEGER001 + 1) % INTEGER005
  273.     PROC002(INTEGER001)
  274.  
  275.     EndProc
  276.  
  277.  
  278. ;------------------------------------------------------------------------------
  279.  
  280.     Procedure PROC005()
  281.  
  282.     PROC001(INTEGER001)
  283.     INTEGER001 = (INTEGER001 - 1 + INTEGER005) % INTEGER005
  284.     PROC002(INTEGER001)
  285.  
  286.     EndProc
  287.  
  288.  
  289. ;------------------------------------------------------------------------------
  290.  
  291.     Function FUNCTION001() Integer
  292.  
  293.     String   STRING015
  294.     String   STRING016
  295.     Byte     BYTE001
  296.     Boolean  BOOLEAN005
  297.  
  298.     PROC002(INTEGER001)
  299.     BOOLEAN001 = 1
  300.     BOOLEAN005 = 0
  301.     While (BOOLEAN005 == 0) Do
  302.         STRING015 = Inkey()
  303.         BYTE001 = Asc(STRING015)
  304.         If (BYTE001 == 13) Then
  305.             STRING016 = TSTRING001(INTEGER001)
  306.             TSTRING001(INTEGER001) = TSTRING001(INTEGER001 + 4)
  307.             TSTRING001(INTEGER001 + 4) = STRING016
  308.             PROC002(INTEGER001)
  309.             Continue
  310.         Endif
  311.         If ((BYTE001 == 27) || (BYTE001 == 9)) Then
  312.             BOOLEAN005 = 1
  313.             INTEGER001 = 99
  314.             Continue
  315.         Endif
  316.         If ((BYTE001 == 68) || (BYTE001 == 122)) Then
  317.             PROC004()
  318.             Continue
  319.         Endif
  320.         If ((BYTE001 == 85) || (BYTE001 == 97)) Then
  321.             PROC005()
  322.         Endif
  323.     EndWhile
  324.     FUNCTION001 = INTEGER001
  325.  
  326.     EndFunc
  327.  
  328.  
  329. ;------------------------------------------------------------------------------
  330. ;
  331. ; Usage report (before postprocessing)
  332. ;
  333. ; ■ Statements used :
  334. ;
  335. ;    1       End
  336. ;    3       Cls
  337. ;    44      Goto 
  338. ;    59      Let 
  339. ;    8       Print 
  340. ;    2       PrintLn 
  341. ;    29      If 
  342. ;    2       DispFile 
  343. ;    1       StartDisp 
  344. ;    1       Inc 
  345. ;    1       Newline
  346. ;    2       KbdStuff 
  347. ;    1       Join 
  348. ;    5       AnsiPos 
  349. ;    8       EndProc
  350. ;    3       EndFunc
  351. ;
  352. ;
  353. ; ■ Functions used :
  354. ;
  355. ;    2       %
  356. ;    32      +
  357. ;    4       -
  358. ;    24      ==
  359. ;    8       <>
  360. ;    3       <
  361. ;    3       <=
  362. ;    1       >
  363. ;    4       >=
  364. ;    25      !
  365. ;    9       &&
  366. ;    5       ||
  367. ;    9       Len(
  368. ;    2       Upper()
  369. ;    2       Mid()
  370. ;    1       Left()
  371. ;    2       Space()
  372. ;    1       Chr()
  373. ;    2       Asc()
  374. ;    2       Inkey()
  375. ;    2       PPEPath()
  376. ;    3       LastAns()
  377. ;
  378. ;------------------------------------------------------------------------------
  379. ;
  380. ; Analysis flags : No flag
  381. ;
  382. ;------------------------------------------------------------------------------
  383. ;
  384. ; Postprocessing report
  385. ;
  386. ;    2       For/Next
  387. ;    3       While/EndWhile
  388. ;    20      If/Then or If/Then/Else
  389. ;    0       Select Case
  390. ;
  391. ;------------------------------------------------------------------------------
  392. ;                 AEGiS Corp - Break the routines, code against the machines!
  393. ;------------------------------------------------------------------------------
  394.