home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / VRAC / GRAFD220.ZIP / GRAF-D.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-09-09  |  6KB  |  301 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 1.OO (plain) - 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.     String   STRING001
  27.     String   STRING002
  28.     String   STRING003
  29.     String   STRING004
  30.     String   STRING005
  31.     String   STRING006
  32.     String   STRING007
  33.     String   STRING008
  34.     String   STRING009
  35.     String   STRING010
  36.     String   STRING011
  37.     String   STRING012
  38.     String   STRING013
  39.     String   STRING014
  40.     String   STRING015
  41.     String   STRING016
  42.     String   STRING017
  43.     String   STRING018
  44.     String   STRING019
  45.  
  46. ;------------------------------------------------------------------------------
  47.  
  48.     STRING005 = ""
  49.     STRING009 = Chr(8) + Chr(32) + Chr(8)
  50.     STRING003 = 50
  51.     STRING004 = 3
  52.     BOOLEAN005 = 0
  53.     STRING010 = Chr(27)
  54.     STRING011 = Chr(13) + Chr(10)
  55.     STRING018 = 1
  56.     STRING019 = "Q"
  57.     STRING005 = GetToken()
  58.     While (STRING005 <> "") Do
  59.         If (Mid(Upper(STRING005), 2, 1) == "W") Then
  60.             INTEGER002 = Len(STRING005) - InStr(STRING005, ":")
  61.             STRING003 = Mid(STRING005, InStr(STRING005, ":") + 1, INTEGER002)
  62.         Else
  63.             Select Case (Mid(Upper(STRING005), 2, 3))
  64.                 Case "NOR"
  65.                     STRING018 = 0
  66.                 Case "NOQ"
  67.                     STRING019 = ""
  68.                 Case "C"
  69.                     BOOLEAN004 = 1
  70.                 Case "A"
  71.                     STRING017 = 1
  72.                 Case "DELAY"
  73.                     INTEGER002 = Len(STRING005) - InStr(STRING005, ":")
  74.                     STRING004 = Mid(STRING005, InStr(STRING005, ":") + 1, INTEGER002)
  75.                 Case "DEBUG"
  76.                     BOOLEAN005 = 1
  77.                     FAppend 1, PPEPath() + "DEBUG.GRF", 2, 0
  78.                     If (Ferr(1)) SPrintLn "@X8CUnable to write to debug log file."
  79.                     FPutLn 1
  80.                     FPutLn 1
  81.                     FPutLn 1, "GRAF-D Debug : ", Date(), " ", Time()
  82.                     FPutLn 1
  83.                     FPutLn 1, "allow_quick : ", STRING019
  84.                     FPutLn 1, "autoansr    : ", STRING017
  85.                     FPutLn 1, "compatible  : ", BOOLEAN004
  86.                     FPutLn 1, "delayticks  : ", STRING004
  87.                     FPutLn 1, "maxticks    : ", STRING003
  88.                     FPutLn 1, "rip_detect  : ", STRING018
  89.                     FPutLn 1, "------------------------------------------"
  90.                 Endif
  91.         End Select
  92.         STRING005 = GetToken()
  93.     EndWhile
  94.     STRING005 = ""
  95.     PrintLn "Testing your system capability..."
  96.     If (OnLocal()) Then
  97.         BOOLEAN001 = 1
  98.     Else
  99.         If (STRING018) Then
  100.             MPrint STRING010 + "[!"
  101.             MPrint STRING009 + STRING009 + STRING009
  102.         Endif
  103.         MPrint STRING010 + " F"
  104.         MPrint STRING009 + STRING009 + STRING009
  105.         MPrint STRING010 + "[6n"
  106.         MPrint STRING009 + STRING009 + STRING009 + STRING009
  107.         STRING005 = Chr(MGetByte())
  108.         If (BOOLEAN005) FPut 1, STRING005
  109.         While ((STRING005 == "") && (INTEGER001 <= STRING003)) Do
  110.             STRING005 = Chr(MGetByte())
  111.             If (BOOLEAN005) FPut 1, STRING005
  112.             If (STRING005 <> "") Then
  113.                 BOOLEAN003 = 1
  114.                 Continue
  115.             Endif
  116.             Delay STRING004
  117.             INTEGER001 = INTEGER001 + 2
  118.         EndWhile
  119.         Select Case (STRING005)
  120.             Case "R"
  121.                 While ((STRING005 <> "") || (Len(STRING007) < 9)) Do
  122.                     STRING007 = STRING007 + STRING005
  123.                     STRING005 = Chr(MGetByte())
  124.                     If (BOOLEAN005) FPut 1, STRING005
  125.                     If (STRING005 == "") Then
  126.                         Delay STRING004
  127.                         STRING005 = Chr(MGetByte())
  128.                         If (BOOLEAN005) FPut 1, STRING005
  129.                     Endif
  130.                 EndWhile
  131.                 If (Left(STRING007, 3) == "RIP") Then
  132.                     BOOLEAN002 = 1
  133.                     BOOLEAN001 = 1
  134.                 Endif
  135.             Case STRING010
  136.                 While (STRING005 <> "") Do
  137.                     STRING007 = STRING007 + STRING005
  138.                     STRING005 = Chr(MGetByte())
  139.                     If (BOOLEAN005) FPut 1, STRING005
  140.                     If (STRING005 == "") Then
  141.                         Delay STRING004
  142.                         STRING005 = Chr(MGetByte())
  143.                         If (BOOLEAN005) FPut 1, STRING005
  144.                     Endif
  145.                 EndWhile
  146.                 Tokenize STRING007
  147.                 STRING005 = GetToken()
  148.                 STRING005 = Mid(STRING005, 2, Len(STRING005 - 1))
  149.                 If (((STRING005 >= 0) || (STRING005 <= 80)) && (Right(GetToken(), 1) == "R")) Then
  150.                     BOOLEAN001 = 1
  151.                     Goto LABEL001
  152.                 Endif
  153.                 BOOLEAN001 = 0
  154.             Endif
  155.     End Select
  156.     :LABEL001
  157.     STRING002 = "Do you want graphics (Enter)="
  158.     STRING006 = ReadLine(PCBDat(), 257)
  159.     If (STRING006) Then
  160.         STRING008 = ReadLine(PCBDat(), 179)
  161.         SPrintLn 
  162.         SPrintLn "┌───────────────────────────────────────────────────────────────────┐"
  163.         SPrintLn "│ Your system is improperly configured for use with the GRAF-D.PPE  │"
  164.         SPrintLn "│ file.  You have configured it to default to Yes for the 'Do you   │"
  165.         SPrintLn "│ want graphics' prompt.  You need to change that setting to 'N' in │"
  166.         SPrintLn "│ PCBSetup | Configuration Options | Configuration Switches.        │"
  167.         SPrintLn "└───────────────────────────────────────────────────────────────────┘"
  168.         SPrintLn 
  169.         Print "Do you want graphics (Enter)=no"
  170.         If (BOOLEAN005) FClose 1
  171.         End
  172.     Endif
  173.     If (BOOLEAN001) Then
  174.         If (BOOLEAN002) Then
  175.             If (BOOLEAN004) Then
  176.                 PrintLn STRING011 + STRING010 + "[45;30m▓▒░" + STRING010 + "[37;1m     RIPscrip detected and it will be the default    " + STRING010 + "[0m" + STRING010 + "[45;30m ░▒▓" + STRING010 + "[0m"
  177.             Else
  178.                 STRING002 = STRING002 + "RIPscrip"
  179.             Endif
  180.         ElseIf (BOOLEAN004) Then
  181.             PrintLn STRING011 + STRING010 + "[45;30m▓▒░" + STRING010 + "[37;1m     ANSI detected and it will be the default    " + STRING010 + "[0m" + STRING010 + "[45;30m ░▒▓" + STRING010 + "[0m"
  182.         Else
  183.             STRING002 = STRING002 + "yes"
  184.         Endif
  185.         If (BOOLEAN004) STRING002 = STRING002 + "default"
  186.     Else
  187.         If (BOOLEAN004) Then
  188.             PrintLn STRING011 + "[* No graphics capabilities detected.  This will be the default *]"
  189.             STRING002 = STRING002 + "default"
  190.         Else
  191.             STRING002 = STRING002 + "no"
  192.         Endif
  193.     Endif
  194.     If ((STRING017 && !BOOLEAN001) || !STRING017) Then
  195.         InputStr STRING002, STRING001, 7, 6, "SR" + STRING019, 2 + 128 + 256 + 16 + 8 + 16384
  196.         If ((STRING001 == "") && !BOOLEAN001) STRING001 = NoChar()
  197.         If (InStr(STRING001, "NS")) Then
  198.             STRING012 = "NS"
  199.             STRING001 = Left(STRING001, InStr(STRING001, "NS") - 1) + Right(STRING001, Len(STRING001) - InStr(STRING001, "NS") + 1)
  200.         Endif
  201.         If (InStr(STRING001, YesChar())) STRING014 = YesChar() + ";"
  202.         If (InStr(STRING001, NoChar())) STRING016 = NoChar() + ";"
  203.         If (InStr(STRING001, "Q")) STRING013 = "Q;"
  204.         If (InStr(STRING001, "R")) STRING015 = "R;"
  205.     Endif
  206.     If ((BOOLEAN002 && (STRING016 == "")) && (STRING014 == "")) Then
  207.         STRING015 = "R;"
  208.     ElseIf ((BOOLEAN001 && (STRING016 == "")) && (STRING015 == "")) Then
  209.         STRING014 = YesChar() + ";"
  210.     Endif
  211.     If ((STRING015 <> "") && (STRING014 <> "")) STRING015 = ""
  212.     If ((STRING015 <> "") && (STRING016 <> "")) STRING015 = ""
  213.     If ((STRING014 <> "") && (STRING016 <> "")) STRING014 = ""
  214.     KbdStuff STRING015 + STRING014 + STRING016 + STRING013 + STRING012
  215.     If (BOOLEAN005) FClose 1
  216.     End
  217.  
  218. ;------------------------------------------------------------------------------
  219. ;
  220. ; Usage report (before postprocessing)
  221. ;
  222. ; ■ Statements used :
  223. ;
  224. ;    2       End
  225. ;    50      Goto 
  226. ;    58      Let 
  227. ;    1       Print 
  228. ;    4       PrintLn 
  229. ;    48      If 
  230. ;    1       FAppend 
  231. ;    2       FClose 
  232. ;    6       FPut 
  233. ;    11      FPutLn 
  234. ;    1       InputStr 
  235. ;    3       Delay 
  236. ;    1       Tokenize 
  237. ;    1       KbdStuff 
  238. ;    9       SPrintLn 
  239. ;    6       MPrint 
  240. ;
  241. ;
  242. ; ■ Functions used :
  243. ;
  244. ;    60      +
  245. ;    5       -
  246. ;    19      ==
  247. ;    10      <>
  248. ;    1       <
  249. ;    2       <=
  250. ;    1       >=
  251. ;    33      !
  252. ;    11      &&
  253. ;    3       ||
  254. ;    5       Len(
  255. ;    7       Upper()
  256. ;    10      Mid()
  257. ;    2       Left()
  258. ;    2       Right()
  259. ;    1       Ferr()
  260. ;    12      Chr()
  261. ;    11      InStr()
  262. ;    1       Date()
  263. ;    1       Time()
  264. ;    3       NoChar()
  265. ;    3       YesChar()
  266. ;    2       PCBDat()
  267. ;    1       PPEPath()
  268. ;    2       ReadLine()
  269. ;    1       OnLocal()
  270. ;    4       GetToken()
  271. ;    6       MGetByte()
  272. ;
  273. ;------------------------------------------------------------------------------
  274. ;
  275. ; Analysis flags : Md
  276. ;
  277. ; M - Send text to modem only ■ 4
  278. ;     Some informations are sent only to the modem, not to the local
  279. ;     screen, this is a well known way to make stealth backdoors, Check!
  280. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  281. ;
  282. ; d - Access PCBOARD.DAT ■ 2
  283. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  284. ;     for many PPE so they can find various informations on the system
  285. ;     (system paths, max number of lines in messages, ...) but it may also
  286. ;     be a way to gather vital informations.
  287. ;     ■ Search for : PCBDAT()
  288. ;
  289. ;------------------------------------------------------------------------------
  290. ;
  291. ; Postprocessing report
  292. ;
  293. ;    0       For/Next
  294. ;    4       While/EndWhile
  295. ;    18      If/Then or If/Then/Else
  296. ;    2       Select Case
  297. ;
  298. ;------------------------------------------------------------------------------
  299. ;                 AEGiS Corp - Break the routines, code against the machines!
  300. ;------------------------------------------------------------------------------
  301.