home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SC-GFX.ZIP / GFXDELUX.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-03-26  |  6KB  |  361 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.     Integer  INTEGER001
  24.     Integer  INTEGER002
  25.     Integer  INTEGER003
  26.     Integer  INTEGER004
  27.     Integer  INTEGER005
  28.     Integer  INTEGER006
  29.     Integer  INTEGER007
  30.     Integer  INTEGER008
  31.     Integer  INTEGER009
  32.     Integer  INTEGER010
  33.     Integer  INTEGER011
  34.     Integer  INTEGER012
  35.     Integer  INTEGER013
  36.     String   STRING001
  37.     String   STRING002
  38.     String   TSTRING003(16)
  39.     String   STRING004
  40.     String   STRING005
  41.     String   STRING006
  42.     String   STRING007
  43.     String   STRING008
  44.     String   STRING009
  45.     String   STRING010
  46.     String   STRING011
  47.     String   STRING012
  48.     String   STRING013
  49.     String   STRING014
  50.     String   STRING015
  51.     String   STRING016
  52.     String   STRING017
  53.     String   STRING018
  54.     String   STRING019
  55.     String   STRING020
  56.     String   STRING021
  57.     String   STRING022
  58.     String   STRING023
  59.     String   STRING024
  60.  
  61. ;------------------------------------------------------------------------------
  62.  
  63.     TSTRING003(0) = "[0;30;40m"
  64.     TSTRING003(1) = "[0;30;34m"
  65.     TSTRING003(2) = "[0;30;32m"
  66.     TSTRING003(3) = "[0;30;36m"
  67.     TSTRING003(4) = "[0;30;31m"
  68.     TSTRING003(5) = "[0;30;35m"
  69.     TSTRING003(6) = "[0;30;33m"
  70.     TSTRING003(7) = "[0;30;37m"
  71.     TSTRING003(8) = "[1;30;30m"
  72.     TSTRING003(9) = "[1;30;34m"
  73.     TSTRING003(10) = "[1;30;32m"
  74.     TSTRING003(11) = "[1;30;36m"
  75.     TSTRING003(12) = "[1;30;31m"
  76.     TSTRING003(13) = "[1;30;35m"
  77.     TSTRING003(14) = "[1;30;33m"
  78.     TSTRING003(15) = "[1;30;37m"
  79.     STRING022 = ""
  80.     STRING015 = ""
  81.     STRING019 = Chr(8) + Chr(32) + Chr(8)
  82.     STRING016 = 50
  83.     STRING017 = 3
  84.     STRING020 = Chr(27)
  85.     STRING021 = Chr(13) + Chr(10)
  86.     FOpen 2, PPEPath() + PPEName() + ".cfg", 0, 2
  87.     FGet 2, INTEGER003
  88.     FGet 2, INTEGER007
  89.     FGet 2, INTEGER004
  90.     FGet 2, INTEGER008
  91.     FGet 2, INTEGER005
  92.     FGet 2, INTEGER009
  93.     FGet 2, INTEGER006
  94.     FGet 2, INTEGER010
  95.     FGet 2, STRING005
  96.     FGet 2, STRING006
  97.     FGet 2, STRING007
  98.     FGet 2, STRING008
  99.     FClose 2
  100.     INTEGER001 = STRING005
  101.     If (INTEGER001 >= 8) Then
  102.         INTEGER001 = INTEGER001
  103.     Else
  104.         INTEGER001 = INTEGER001 + 8
  105.     Endif
  106.     STRING023 = STRING005
  107.     Gosub LABEL003
  108.     STRING012 = STRING024
  109.     STRING023 = STRING006
  110.     Gosub LABEL003
  111.     STRING009 = STRING024
  112.     STRING023 = STRING007
  113.     Gosub LABEL003
  114.     STRING010 = STRING024
  115.     STRING023 = STRING008
  116.     Gosub LABEL003
  117.     STRING011 = STRING024
  118.     If (OnLocal()) Then
  119.         BOOLEAN002 = 1
  120.     Else
  121.         MPrint STRING020 + "[!"
  122.         MPrint STRING019 + STRING019 + STRING019
  123.         MPrint STRING020 + " F"
  124.         MPrint STRING019 + STRING019 + STRING019
  125.         MPrint STRING020 + "[6n"
  126.         MPrint STRING019 + STRING019 + STRING019 + STRING019
  127.         STRING022 = Chr(MGetByte())
  128.         While ((STRING022 == "") && (INTEGER013 <= STRING016)) Do
  129.             STRING022 = Chr(MGetByte())
  130.             If (STRING022 <> "") Then
  131.                 BOOLEAN004 = 1
  132.                 Continue
  133.             Endif
  134.             Delay STRING017
  135.             INTEGER013 = INTEGER013 + 2
  136.         EndWhile
  137.         Select Case (STRING022)
  138.             Case "R"
  139.                 While ((STRING022 <> "") || (Len(STRING018) < 9)) Do
  140.                     STRING018 = STRING018 + STRING022
  141.                     STRING022 = Chr(MGetByte())
  142.                     If (STRING022 == "") Then
  143.                         Delay STRING017
  144.                         STRING022 = Chr(MGetByte())
  145.                     Endif
  146.                 EndWhile
  147.                 If (Left(STRING018, 3) == "RIP") Then
  148.                     BOOLEAN003 = 1
  149.                     BOOLEAN002 = 1
  150.                 Endif
  151.             Case STRING020
  152.                 While (STRING022 <> "") Do
  153.                     STRING018 = STRING018 + STRING022
  154.                     STRING022 = Chr(MGetByte())
  155.                     If (STRING022 == "") Then
  156.                         Delay STRING017
  157.                         STRING022 = Chr(MGetByte())
  158.                     Endif
  159.                 EndWhile
  160.                 Tokenize STRING018
  161.                 STRING022 = GetToken()
  162.                 STRING022 = Mid(STRING022, 2, Len(STRING022 - 1))
  163.                 If (((STRING022 >= 0) || (STRING022 <= 80)) && (Right(GetToken(), 1) == "R")) Then
  164.                     BOOLEAN002 = 1
  165.                     Goto LABEL001
  166.                 Endif
  167.                 BOOLEAN002 = 0
  168.             Endif
  169.     End Select
  170.     :LABEL001
  171.     If (BOOLEAN002) Then
  172.         BOOLEAN001 = ReadLine(PCBDat(), 257)
  173.     Endif
  174.     If (BOOLEAN001) Then
  175.         SPrint "SET YOUR DEFAULT GRAPHICS IN PCB SETUP TO NO"
  176.         End
  177.     Endif
  178.     INTEGER012 = Carrier()
  179.     STRING015 = INTEGER012
  180.     If (BOOLEAN002) Then
  181.         STRING013 = STRING020 + STRING012
  182.         STRING014 = "■■■■■■■■■■■■■■■■■■■■■■■■■■"
  183.         STRING001 = ReadLine(PCBDat(), 53)
  184.         STRING001 = STRING020 + STRING009 + STRING001 + STRING020 + "[0m"
  185.         Cls
  186.         DispFile PPEPath() + "gfxdelux.ans", 1
  187.         AnsiPos 79, 21
  188.         Print STRING020 + TSTRING003(0)
  189.         Print "█"
  190.         AnsiPos INTEGER003, INTEGER007
  191.         For INTEGER011 = 1 To 23
  192.             AnsiPos INTEGER003, INTEGER007
  193.             Print STRING020 + TSTRING003(15), "■", STRING020 + TSTRING003(INTEGER001), "■", STRING013, Left(STRING014, INTEGER011 - 2), STRING020 + TSTRING003(INTEGER001), "■", STRING020 + TSTRING003(15), "■"
  194.             AnsiPos 79, 21
  195.             For INTEGER002 = 1 To 10
  196.             Next
  197.         Next
  198.         If (BOOLEAN003) Then
  199.             AnsiPos INTEGER004, INTEGER008
  200.             STRING004 = STRING020 + STRING010 + " RIP" + STRING020 + "[0m"
  201.         Else
  202.             AnsiPos INTEGER004, INTEGER008
  203.             STRING004 = STRING020 + STRING010 + "ANSI" + STRING020 + "[0m"
  204.         Endif
  205.         Print STRING004
  206.         AnsiPos INTEGER005, INTEGER009
  207.         Print STRING001
  208.         AnsiPos INTEGER006, INTEGER010
  209.         STRING015 = STRING020 + STRING011 + STRING015 + STRING020 + "[0m"
  210.         Print STRING015
  211.         AnsiPos 1, 1
  212.         For INTEGER002 = 1 To 800
  213.         Next
  214.         STRING002 = "Y" + STRING021
  215.         KbdStuff STRING002
  216.         End
  217.     Else
  218.         Cls
  219.         Print "Sorry ANSI-GRAPHICS needed but not detected"
  220.         Print ""
  221.         Print " LOGGING OFF..."
  222.         Goto LABEL002
  223.     Endif
  224.     :LABEL002
  225.     Hangup
  226.     End
  227.     :LABEL003
  228.     If (STRING023 == "01") Then
  229.         STRING024 = TSTRING003(1)
  230.     Endif
  231.     If (STRING023 == "02") Then
  232.         STRING024 = TSTRING003(2)
  233.     Endif
  234.     If (STRING023 == "03") Then
  235.         STRING024 = TSTRING003(3)
  236.     Endif
  237.     If (STRING023 == "04") Then
  238.         STRING024 = TSTRING003(4)
  239.     Endif
  240.     If (STRING023 == "05") Then
  241.         STRING024 = TSTRING003(5)
  242.     Endif
  243.     If (STRING023 == "06") Then
  244.         STRING024 = TSTRING003(6)
  245.     Endif
  246.     If (STRING023 == "07") Then
  247.         STRING024 = TSTRING003(7)
  248.     Endif
  249.     If (STRING023 == "08") Then
  250.         STRING024 = TSTRING003(8)
  251.     Endif
  252.     If (STRING023 == "09") Then
  253.         STRING024 = TSTRING003(9)
  254.     Endif
  255.     If (STRING023 == "0A") Then
  256.         STRING024 = TSTRING003(10)
  257.     Endif
  258.     If (STRING023 == "0B") Then
  259.         STRING024 = TSTRING003(11)
  260.     Endif
  261.     If (STRING023 == "0C") Then
  262.         STRING024 = TSTRING003(12)
  263.     Endif
  264.     If (STRING023 == "0D") Then
  265.         STRING024 = TSTRING003(13)
  266.     Endif
  267.     If (STRING023 == "0E") Then
  268.         STRING024 = TSTRING003(14)
  269.     Endif
  270.     If (STRING023 == "0F") Then
  271.         STRING024 = TSTRING003(15)
  272.     Endif
  273.     Return
  274.  
  275. ;------------------------------------------------------------------------------
  276. ;
  277. ; Usage report (before postprocessing)
  278. ;
  279. ; ■ Statements used :
  280. ;
  281. ;    3       End
  282. ;    2       Cls
  283. ;    48      Goto 
  284. ;    83      Let 
  285. ;    9       Print 
  286. ;    34      If 
  287. ;    1       DispFile 
  288. ;    1       FOpen 
  289. ;    1       FClose 
  290. ;    12      FGet 
  291. ;    1       Hangup
  292. ;    4       Gosub 
  293. ;    1       Return
  294. ;    3       Delay 
  295. ;    1       Tokenize 
  296. ;    1       KbdStuff 
  297. ;    9       AnsiPos 
  298. ;    1       SPrint 
  299. ;    6       MPrint 
  300. ;
  301. ;
  302. ; ■ Functions used :
  303. ;
  304. ;    46      +
  305. ;    2       -
  306. ;    22      ==
  307. ;    3       <>
  308. ;    4       <
  309. ;    5       <=
  310. ;    8       >=
  311. ;    34      !
  312. ;    8       &&
  313. ;    5       ||
  314. ;    2       Len(
  315. ;    1       Mid()
  316. ;    2       Left()
  317. ;    1       Right()
  318. ;    12      Chr()
  319. ;    2       PCBDat()
  320. ;    2       PPEPath()
  321. ;    2       ReadLine()
  322. ;    1       OnLocal()
  323. ;    2       GetToken()
  324. ;    1       Carrier()
  325. ;    1       PPEName()
  326. ;    6       MGetByte()
  327. ;
  328. ;------------------------------------------------------------------------------
  329. ;
  330. ; Analysis flags : BMd
  331. ;
  332. ; B - Brute hangup ■ 1
  333. ;     Program hangup without notification. This may be a good way to
  334. ;     disconnect a user, but if used randomly, may be very nasty
  335. ;     ■ Search for : HANGUP, DTROFF
  336. ;
  337. ; M - Send text to modem only ■ 4
  338. ;     Some informations are sent only to the modem, not to the local
  339. ;     screen, this is a well known way to make stealth backdoors, Check!
  340. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  341. ;
  342. ; d - Access PCBOARD.DAT ■ 2
  343. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  344. ;     for many PPE so they can find various informations on the system
  345. ;     (system paths, max number of lines in messages, ...) but it may also
  346. ;     be a way to gather vital informations.
  347. ;     ■ Search for : PCBDAT()
  348. ;
  349. ;------------------------------------------------------------------------------
  350. ;
  351. ; Postprocessing report
  352. ;
  353. ;    3       For/Next
  354. ;    3       While/EndWhile
  355. ;    26      If/Then or If/Then/Else
  356. ;    1       Select Case
  357. ;
  358. ;------------------------------------------------------------------------------
  359. ;                 AEGiS Corp - Break the routines, code against the machines!
  360. ;------------------------------------------------------------------------------
  361.