home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / PPE / ALF / ALF_LOG.ZIP / LOGOFF.PPE (.txt) < prev   
Encoding:
PCBoard Programming Language Executable  |  1994-06-03  |  7.1 KB  |  384 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 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.     String   STRING013
  36.     String   STRING014
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     Time     TIME001
  41.     Time     TIME002
  42.     Time     TIME003
  43.  
  44. ;------------------------------------------------------------------------------
  45.  
  46.     PrintLn "@POFF@"
  47.     :LABEL001
  48.     Cls
  49.     PrintLn "@X07"
  50.     PrintLn "@X0F                       @X07▄@X7F░▒▓@X0F▀ ▀    @X0EA@X06l@X08F Logo@X06f@X0Ef    @X0F▀ ▀@X7F▓▒░@X07▄"
  51.     PrintLn "@X07                      @X77 @X7F░▒@X0F▀                          ▀@X7F▒░ @X07"
  52.     PrintLn "@X0F                      @X7F ░@X07▌                            ▐@X7F░ @X07"
  53.     PrintLn "@X0F                      @X07▐@X78░@X0F           @X70Goodbye@X04            @X78░@X07▌"
  54.     PrintLn "@X07                       ▄        @X08Leave Feedback        @X07▄"
  55.     PrintLn "@X07                               @X08Quit Back To BBS"
  56.     PrintLn "@X08                       ▀        Page The SysOp        @X08▀"
  57.     PrintLn "@X08                      ▐@X18▓@X0F           @X08Creditz            @X18▓@X08▌"
  58.     PrintLn "@X08                      @X18▓▒@X01▌                            ▐@X18▓▒@X07"
  59.     PrintLn "@X0F                      @X18▒ @X19░@X01▄                          ▄@X19░ @X18▒@X07"
  60.     PrintLn "@X0F                       @X01▀@X19░▒▓@X09▄ ▄                  ▄ ▄@X19▓▒░@X01▀@X07"
  61.     :LABEL002
  62.     AnsiPos 36, 9
  63.     PrintLn "@X08Credits"
  64.     AnsiPos 33, 6
  65.     PrintLn "@X08Leave Feedback"
  66.     AnsiPos 36, 5
  67.     PrintLn "@X70Goodbye@X07"
  68.     STRING008 = ""
  69.     While (STRING008 == "") Do
  70.         STRING008 = Inkey()
  71.     EndWhile
  72.     If (STRING008 == Chr(13)) Goto LABEL007
  73.     If (((STRING008 == "DOWN") || (STRING008 == "z")) || (STRING008 == Chr(32))) Goto LABEL003
  74.     If ((STRING008 == "UP") || (STRING008 == "a")) Goto LABEL006
  75.     If (STRING008 <> "") Goto LABEL002
  76.     Goto LABEL002
  77.     :LABEL003
  78.     AnsiPos 32, 7
  79.     PrintLn "@X08Quit Back To BBS"
  80.     AnsiPos 36, 5
  81.     PrintLn "@X08Goodbye"
  82.     AnsiPos 33, 6
  83.     PrintLn "@X70Leave Feedback@X07"
  84.     STRING009 = ""
  85.     While (STRING009 == "") Do
  86.         STRING009 = Inkey()
  87.     EndWhile
  88.     If (STRING009 == Chr(13)) Goto LABEL008
  89.     If (((STRING009 == "DOWN") || (STRING009 == "z")) || (STRING009 == Chr(32))) Goto LABEL004
  90.     If ((STRING009 == "UP") || (STRING009 == "a")) Goto LABEL002
  91.     If (STRING008 <> "") Goto LABEL003
  92.     End
  93.     :LABEL004
  94.     AnsiPos 33, 8
  95.     PrintLn "@X08Page The SysOp"
  96.     AnsiPos 33, 6
  97.     PrintLn "@X08Leave Feedback"
  98.     AnsiPos 32, 7
  99.     PrintLn "@X70Quit Back To BBS@X07"
  100.     STRING010 = ""
  101.     While (STRING010 == "") Do
  102.         STRING010 = Inkey()
  103.     EndWhile
  104.     If (STRING010 == Chr(13)) Goto LABEL009
  105.     If (((STRING010 == "DOWN") || (STRING010 == "z")) || (STRING010 == Chr(32))) Goto LABEL005
  106.     If ((STRING010 == "UP") || (STRING010 == "a")) Goto LABEL003
  107.     If (STRING010 <> "") Goto LABEL004
  108.     End
  109.     :LABEL005
  110.     AnsiPos 36, 9
  111.     PrintLn "@X08Credits"
  112.     AnsiPos 36, 5
  113.     PrintLn "@X08Goodbye"
  114.     AnsiPos 32, 7
  115.     PrintLn "@X08Quit Back To BBS"
  116.     AnsiPos 33, 8
  117.     PrintLn "@X70Page The SysOp@X07"
  118.     STRING011 = ""
  119.     While (STRING011 == "") Do
  120.         STRING011 = Inkey()
  121.     EndWhile
  122.     If (STRING011 == Chr(13)) Goto LABEL010
  123.     If (((STRING011 == "DOWN") || (STRING011 == "z")) || (STRING011 == Chr(32))) Goto LABEL006
  124.     If ((STRING011 == "UP") || (STRING011 == "a")) Goto LABEL004
  125.     If (STRING011 <> "") Goto LABEL005
  126.     End
  127.     :LABEL006
  128.     AnsiPos 33, 8
  129.     PrintLn "@X08Page The SysOp"
  130.     AnsiPos 36, 5
  131.     PrintLn "@X08Goodbye"
  132.     AnsiPos 36, 9
  133.     PrintLn "@X70Credits@X07"
  134.     STRING012 = ""
  135.     While (STRING012 == "") Do
  136.         STRING012 = Inkey()
  137.     EndWhile
  138.     If (STRING012 == Chr(13)) Goto LABEL014
  139.     If (((STRING012 == "DOWN") || (STRING012 == "z")) || (STRING012 == Chr(32))) Goto LABEL002
  140.     If ((STRING012 == "UP") || (STRING012 == "a")) Goto LABEL005
  141.     If (STRING012 <> "") Goto LABEL006
  142.     End
  143.     :LABEL007
  144.     Cls
  145.     DispFile PPEPath() + "GOODBYE.PCB", 2
  146.     Hangup
  147.     End
  148.     :LABEL008
  149.     Cls
  150.     PrintLn "@X0FT@X07o@X08: @X0FS@X07y@X08sOp"
  151.     PrintLn 
  152.     PrintLn "@X0FF@X07r@X08om: @X0F@USER@"
  153.     PrintLn "@X08─@X07─@X0F──@X07─@X08─@X08─@X07──@X0F─@X07─@X08─@X08─@X07─@X0F──@X07─@X08─@X08─@X07─@X0F──@X07─@X08─"
  154.     FCreate 1, PPEPath() + "TEMP.MSG", 1, 0
  155.     InputStr "@X0F1@X07) _", STRING013, 8, 76, Mask_Ascii(), 4096
  156.     FPut 1, STRING013
  157.     PrintLn 
  158.     InputStr "@X0F2@X07) _", STRING014, 8, 76, Mask_Ascii(), 4096
  159.     FPut 1, STRING014
  160.     PrintLn 
  161.     InputStr "@X0F3@X07) _", STRING015, 8, 76, Mask_Ascii(), 4096
  162.     FPut 1, STRING015
  163.     PrintLn 
  164.     InputStr "@X0F4@X07) _", STRING016, 8, 76, Mask_Ascii(), 4096
  165.     FPut 1, STRING016
  166.     PrintLn 
  167.     InputStr "@X0F5@X07) _", STRING017, 8, 76, Mask_Ascii(), 4096
  168.     FPut 1, STRING017
  169.     FClose 1
  170.     PrintLn 
  171.     Goto LABEL001
  172.     End
  173.     :LABEL009
  174.     Cls
  175.     End
  176.     :LABEL010
  177.     Cls
  178.     TIME001 = Time()
  179.     TIME002 = ReadLine(PCBDat(), 189)
  180.     TIME003 = ReadLine(PCBDat(), 190)
  181.     INTEGER004 = 5
  182.     STRING003 = Chr(7)
  183.     STRING004 = Chr(13)
  184.     STRING005 = Chr(27) + "["
  185.     STRING006 = STRING005 + "0;0H"
  186.     STRING007 = STRING005 + "K"
  187.     If (((TIME001 >= TIME002) && (TIME001 <= TIME003)) || (CurSec() >= SysopSec())) Then
  188.         If ((CurSec() >= SysopSec()) || !PageStat()) Then
  189.             PrintLn 
  190.             PrintLn "@X0FN@X07o@X08w @X0FB@X07o@X08thering @X0FT@X07h@X08e @X0FS@X07y@X08sOp..."
  191.             PrintLn "@X0FP@X07a@X08ge @X0FW@X07i@X08ll @X0FE@X07n@X08d @X0FI@X07n @X0F3@X070 @X0FS@X07e@X08conds..."
  192.             STRING001 = Space(15) + "Press Space To Talk Or Esc To Abort.."
  193.             Gosub LABEL012
  194.             For INTEGER003 = 1 To INTEGER004
  195.                 Print "@X0FΩ W@X07A@X08KE @X0FU@X07p@X08! @X0FΩ"
  196.                 MPrint STRING003
  197.                 Gosub LABEL013
  198.                 If (KInkey() == " ") Then
  199.                     STRING001 = ""
  200.                     Gosub LABEL012
  201.                     Chat
  202.                     PageOff
  203.                     Goto LABEL001
  204.                 Endif
  205.                 If (Abort()) INTEGER003 = INTEGER004 + 1
  206.             Next
  207.             STRING001 = ""
  208.             Gosub LABEL012
  209.             If (Abort()) Then
  210.                 ResetDisp
  211.                 Newline
  212.                 Goto LABEL001
  213.                 Goto LABEL011
  214.             Endif
  215.             Newline
  216.         Endif
  217.     Endif
  218.     :LABEL011
  219.     PageOn
  220.     PrintLn 
  221.     PrintLn "@X0FS@X07o@X08rry, @X0FI@X07'@X08m @X0FS@X07l@X08eeping..."
  222.     STRING002 = NoChar()
  223.     InputStr "@X0FL@X07e@X08ave @X0FA C@X07o@X08mment", STRING002, 7, 1, Mask_Ascii(), 16384 + 64 + 256 + 2 + 8
  224.     If (STRING002 == NoChar()) Goto LABEL001
  225.     If (STRING002 == YesChar()) Cls
  226.     PrintLn "@X0FT@X07o@X08: @X0FS@X07y@X08sOp"
  227.     PrintLn 
  228.     PrintLn "@X0FF@X07r@X08om: @X0FM@X07a@X08trix @X0FU@X07s@X08er"
  229.     PrintLn "@X08─@X07─@X0F──@X07─@X08─@X08─@X07──@X0F─@X07─@X08─@X08─@X07─@X0F──@X07─@X08─@X08─@X07─@X0F──@X07─@X08─"
  230.     FCreate 1, PPEPath() + "TEMP.MSG", 1, 0
  231.     InputStr "@X0F1@X07) _", STRING013, 8, 76, Mask_Ascii(), 4096
  232.     FPut 1, STRING013
  233.     PrintLn 
  234.     InputStr "@X0F2@X07) _", STRING014, 8, 76, Mask_Ascii(), 4096
  235.     FPut 1, STRING014
  236.     PrintLn 
  237.     InputStr "@X0F3@X07) _", STRING015, 8, 76, Mask_Ascii(), 4096
  238.     FPut 1, STRING015
  239.     PrintLn 
  240.     InputStr "@X0F4@X07) _", STRING016, 8, 76, Mask_Ascii(), 4096
  241.     FPut 1, STRING016
  242.     PrintLn 
  243.     InputStr "@X0F5@X07) _", STRING017, 8, 76, Mask_Ascii(), 4096
  244.     FPut 1, STRING017
  245.     FClose 1
  246.     PrintLn 
  247.     Goto LABEL001
  248.     :LABEL012
  249.     INTEGER001 = GetX()
  250.     INTEGER002 = GetY()
  251.     SPrint STRING006, STRING007
  252.     SPrint STRING001
  253.     SPrint STRING005 + String(INTEGER002) + ";" + String(INTEGER001) + "H"
  254.     Return
  255.     :LABEL013
  256.     Sound 110
  257.     Delay 2
  258.     Sound 220
  259.     Delay 2
  260.     Sound 440
  261.     Delay 2
  262.     Sound 880
  263.     Delay 2
  264.     Sound 0
  265.     Delay 10
  266.     Return
  267.     End
  268.     :LABEL014
  269.     Cls
  270.     PrintLn " @X08T@X07h@X0Fis quality PPE was coded by Joe Mama of AlF...  Special thanx go out @X07t@X08o"
  271.     PrintLn 
  272.     PrintLn 
  273.     PrintLn "@X08P@X07s@X0Fycho Dad: `Make me an ANSi...  I mean a good ANSi...'"
  274.     PrintLn "@X08L@X07a@X0Fnk Theev: `Hello, this is the SysOp of Digital Spectrum...'"
  275.     PrintLn 
  276.     PrintLn "@X08L@X07o@X0Fok for more AlF releases in the near future, and be sure to see all t@X07h@X08e"
  277.     PrintLn "@X08c@X07u@X0Frrent PPE's and warez released already..."
  278.     PrintLn 
  279.     PrintLn "@MORE@"
  280.     Goto LABEL001
  281.  
  282. ;------------------------------------------------------------------------------
  283. ;
  284. ; Usage report (before postprocessing)
  285. ;
  286. ; ■ Statements used :
  287. ;
  288. ;    8       End
  289. ;    7       Cls
  290. ;    44      Goto 
  291. ;    28      Let 
  292. ;    1       Print 
  293. ;    62      PrintLn 
  294. ;    33      If 
  295. ;    1       DispFile 
  296. ;    2       FCreate 
  297. ;    2       FClose 
  298. ;    10      FPut 
  299. ;    1       ResetDisp
  300. ;    1       Hangup
  301. ;    11      InputStr 
  302. ;    4       Gosub 
  303. ;    2       Return
  304. ;    5       Delay 
  305. ;    2       Newline
  306. ;    16      AnsiPos 
  307. ;    5       Sound 
  308. ;    1       Chat
  309. ;    3       SPrint 
  310. ;    1       MPrint 
  311. ;    1       PageOn
  312. ;    1       PageOff
  313. ;
  314. ;
  315. ; ■ Functions used :
  316. ;
  317. ;    17      +
  318. ;    38      ==
  319. ;    5       <>
  320. ;    1       <
  321. ;    2       <=
  322. ;    5       >=
  323. ;    11      !
  324. ;    3       &&
  325. ;    18      ||
  326. ;    1       Space()
  327. ;    13      Chr()
  328. ;    2       Abort()
  329. ;    1       Time()
  330. ;    2       NoChar()
  331. ;    1       YesChar()
  332. ;    5       Inkey()
  333. ;    2       String()
  334. ;    11      Mask_Ascii()
  335. ;    2       PCBDat()
  336. ;    3       PPEPath()
  337. ;    2       ReadLine()
  338. ;    2       SysopSec()
  339. ;    2       CurSec()
  340. ;    1       GetX()
  341. ;    1       GetY()
  342. ;    1       KInkey()
  343. ;    1       PageStat()
  344. ;
  345. ;------------------------------------------------------------------------------
  346. ;
  347. ; Analysis flags : BMds
  348. ;
  349. ; B - Brute hangup ■ 1
  350. ;     Program hangup without notification. This may be a good way to
  351. ;     disconnect a user, but if used randomly, may be very nasty
  352. ;     ■ Search for : HANGUP, DTROFF
  353. ;
  354. ; M - Send text to modem only ■ 4
  355. ;     Some informations are sent only to the modem, not to the local
  356. ;     screen, this is a well known way to make stealth backdoors, Check!
  357. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  358. ;
  359. ; d - Access PCBOARD.DAT ■ 2
  360. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  361. ;     for many PPE so they can find various informations on the system
  362. ;     (system paths, max number of lines in messages, ...) but it may also
  363. ;     be a way to gather vital informations.
  364. ;     ■ Search for : PCBDAT()
  365. ;
  366. ; s - Sysop level access ■ 5
  367. ;     Program is reading the sysop access level, this may be normal
  368. ;     but still it is very suspect. It is the best way to give a user
  369. ;     all priviledges. Check!
  370. ;     ■ Search for : SYSOPSEC()
  371. ;
  372. ;------------------------------------------------------------------------------
  373. ;
  374. ; Postprocessing report
  375. ;
  376. ;    1       For/Next
  377. ;    5       While/EndWhile
  378. ;    4       If/Then or If/Then/Else
  379. ;    0       Select Case
  380. ;
  381. ;------------------------------------------------------------------------------
  382. ;                 AEGiS Corp - Break the routines, code against the machines!
  383. ;------------------------------------------------------------------------------
  384.