home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / AR_LM15.ZIP / MATRIX.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-02-19  |  8KB  |  519 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.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     String   STRING001
  29.     String   STRING002
  30.     String   STRING003
  31.     String   STRING004
  32.     String   STRING005
  33.     String   STRING006
  34.     String   STRING007
  35.     String   STRING008
  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.     String   STRING017
  45.     String   STRING018
  46.     String   STRING019
  47.     String   STRING020
  48.     String   STRING021
  49.     String   STRING022
  50.     String   STRING023
  51.     String   STRING024
  52.     String   STRING025
  53.     String   STRING026
  54.     String   STRING027
  55.     String   STRING028
  56.     String   STRING029
  57.     String   STRING030
  58.     String   STRING031
  59.     String   STRING032
  60.     String   STRING033
  61.     String   STRING034
  62.     String   STRING035
  63.     String   STRING036
  64.     String   STRING037
  65.     String   STRING038
  66.     String   STRING039
  67.     String   STRING040
  68.     String   STRING041
  69.     String   STRING042
  70.  
  71. ;------------------------------------------------------------------------------
  72.  
  73.     :LABEL001
  74.     FOpen 2, PPEPath() + "MATRIX.CFG", 0, 0
  75.     FGet 2, STRING013
  76.     FGet 2, STRING014
  77.     FGet 2, STRING015
  78.     FGet 2, STRING016
  79.     FGet 2, STRING017
  80.     FGet 2, INTEGER005
  81.     FGet 2, INTEGER006
  82.     FGet 2, STRING031
  83.     FGet 2, STRING032
  84.     FGet 2, STRING009
  85.     FGet 2, STRING010
  86.     FGet 2, STRING012
  87.     FGet 2, STRING026
  88.     FGet 2, INTEGER008
  89.     FGet 2, INTEGER009
  90.     FGet 2, INTEGER002
  91.     FGet 2, INTEGER003
  92.     FGet 2, STRING019
  93.     FGet 2, STRING018
  94.     FGet 2, STRING033
  95.     FGet 2, STRING029
  96.     FGet 2, STRING030
  97.     FGet 2, STRING025
  98.     FGet 2, STRING034
  99.     FGet 2, STRING037
  100.     FGet 2, STRING035
  101.     FGet 2, STRING038
  102.     FGet 2, STRING036
  103.     FGet 2, STRING039
  104.     FGet 2, STRING005
  105.     FGet 2, STRING002
  106.     FGet 2, STRING003
  107.     FGet 2, STRING004
  108.     FClose 2
  109.     Cls
  110.     AnsiPos 1, 1
  111.     DispFile PPEPath() + "MATRIX.ANS", 0
  112.     INTEGER007 = 0
  113.     STRING020 = StripAtx(STRING013)
  114.     AnsiPos INTEGER005, INTEGER006
  115.     PrintLn STRING032 + STRING020 + STRING031
  116.     AnsiPos INTEGER005, INTEGER006 + 1
  117.     PrintLn STRING014
  118.     AnsiPos INTEGER005, INTEGER006 + 2
  119.     PrintLn STRING015
  120.     AnsiPos INTEGER005, INTEGER006 + 3
  121.     PrintLn STRING016
  122.     AnsiPos INTEGER005, INTEGER006 + 4
  123.     PrintLn STRING017
  124.     INTEGER004 = 1
  125.     :LABEL002
  126.     If (FALSE) Goto LABEL003
  127.     STRING028 = Inkey()
  128.     If (STRING028 == "a") Goto LABEL004
  129.     If (STRING028 == "z") Goto LABEL005
  130.     If ((STRING028 == "UP") || (STRING028 == "LEFT")) Goto LABEL004
  131.     If (((STRING028 == "DOWN") || (STRING028 == "RIGHT")) || (STRING028 == " ")) Goto LABEL005
  132.     If (STRING028 == Chr(13)) Goto LABEL012
  133.     Goto LABEL002
  134.     :LABEL003
  135.     End
  136.     :LABEL004
  137.     INTEGER004 = INTEGER004 - 1
  138.     Goto LABEL006
  139.     End
  140.     :LABEL005
  141.     INTEGER004 = INTEGER004 + 1
  142.     Goto LABEL006
  143.     End
  144.     :LABEL006
  145.     If (INTEGER004 < "1") INTEGER004 = 5
  146.     If (INTEGER004 > "5") INTEGER004 = 1
  147.     If (INTEGER004 == "0") Goto LABEL007
  148.     If (INTEGER004 == "1") Goto LABEL007
  149.     If (INTEGER004 == "2") Goto LABEL008
  150.     If (INTEGER004 == "3") Goto LABEL009
  151.     If (INTEGER004 == "4") Goto LABEL010
  152.     If (INTEGER004 == "5") Goto LABEL011
  153.     End
  154.     :LABEL007
  155.     AnsiPos INTEGER005, INTEGER006
  156.     Print STRING032 + STRING020
  157.     AnsiPos INTEGER005, INTEGER006 + 1
  158.     Print STRING031 + STRING014
  159.     AnsiPos INTEGER005, INTEGER006 + 4
  160.     Print STRING031 + STRING017
  161.     AnsiPos 1, 1
  162.     Goto LABEL002
  163.     End
  164.     :LABEL008
  165.     STRING021 = StripAtx(STRING014)
  166.     AnsiPos INTEGER005, INTEGER006 + 1
  167.     Print STRING032 + STRING021
  168.     AnsiPos INTEGER005, INTEGER006
  169.     Print STRING031 + STRING013
  170.     AnsiPos INTEGER005, INTEGER006 + 2
  171.     Print STRING031 + STRING015
  172.     AnsiPos 1, 1
  173.     Goto LABEL002
  174.     End
  175.     :LABEL009
  176.     AnsiPos INTEGER005, INTEGER006 + 1
  177.     Print STRING031 + STRING014
  178.     STRING022 = StripAtx(STRING015)
  179.     AnsiPos INTEGER005, INTEGER006 + 2
  180.     Print STRING032 + STRING022
  181.     AnsiPos INTEGER005, INTEGER006 + 3
  182.     Print STRING031 + STRING016
  183.     AnsiPos 1, 1
  184.     Goto LABEL002
  185.     End
  186.     :LABEL010
  187.     STRING023 = StripAtx(STRING016)
  188.     AnsiPos INTEGER005, INTEGER006 + 3
  189.     Print STRING032 + STRING023
  190.     AnsiPos INTEGER005, INTEGER006 + 4
  191.     Print STRING031 + STRING017
  192.     AnsiPos INTEGER005, INTEGER006 + 2
  193.     Print STRING031 + STRING015
  194.     AnsiPos 1, 1
  195.     Goto LABEL002
  196.     End
  197.     :LABEL011
  198.     STRING024 = StripAtx(STRING017)
  199.     AnsiPos INTEGER005, INTEGER006 + 4
  200.     Print STRING032 + STRING024
  201.     AnsiPos INTEGER005, INTEGER006
  202.     Print STRING031 + STRING013
  203.     AnsiPos INTEGER005, INTEGER006 + 3
  204.     Print STRING031 + STRING016
  205.     AnsiPos 1, 1
  206.     Goto LABEL002
  207.     End
  208.     :LABEL012
  209.     If (INTEGER004 == "1") Goto LABEL013
  210.     If (INTEGER004 == "2") Goto LABEL020
  211.     If (INTEGER004 == "3") Goto LABEL023
  212.     If (INTEGER004 == "4") Goto LABEL030
  213.     If (INTEGER004 == "5") Goto LABEL035
  214.     End
  215.     :LABEL013
  216.     Cls
  217.     If (STRING009 == "0") Goto LABEL015
  218.     If (STRING009 <> "0") Goto LABEL014
  219.     End
  220.     :LABEL014
  221.     Cls
  222.     DispFile PPEPath() + "SYS-PASS.ANS", 0
  223.     AnsiPos INTEGER008, INTEGER009
  224.     InputStr "_", STRING006, 15, 40, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=\!@#$%^&*()_+|,./?:", 1 + 8
  225.     If (STRING006 == Chr(13)) Goto LABEL001
  226.     If (STRING006 <> STRING009) Goto LABEL001
  227.     If (STRING006 == STRING009) Goto LABEL015
  228.     End
  229.     :LABEL015
  230.     DispFile PPEPath() + "WELCOME.ANS", 0
  231.     Newline
  232.     Wait
  233.     Cls
  234.     DispFile PPEPath() + "LOGON.ANS", 0
  235.     AnsiPos STRING034, STRING037
  236.     InputStr "_", STRING008, 15, 40, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=\!@#$%^&*()_+|,./?:", 8
  237.     If (STRING008 == "") Goto LABEL001
  238.     If (STRING008 <> "") Then
  239.         INTEGER001 = U_RecNum(STRING008)
  240.         GetAltUser INTEGER001
  241.         AnsiPos STRING036, STRING039
  242.         Print U_City
  243.         AnsiPos STRING035, STRING038
  244.         InputStr "_", STRING001, 15, 40, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=\!@#$%^&*()_+|,./?:", 8 + 1
  245.         If (U_Sec < STRING025) Goto LABEL027
  246.         If (U_Sec == 0) Goto LABEL037
  247.         If (U_Pwd == STRING001) Goto LABEL017
  248.         If (U_Pwd <> STRING001) Goto LABEL016
  249.         End
  250.         :LABEL016
  251.         Cls
  252.         DispFile PPEPath() + "NOTVALID.ANS", 0
  253.         Wait
  254.         Goto LABEL001
  255.     Endif
  256.     :LABEL017
  257.     STRING027 = InStr(STRING008, Chr(32))
  258.     If (STRING027 == 0) Goto LABEL018
  259.     If (STRING027 <> 0) Goto LABEL019
  260.     :LABEL018
  261.     Cls
  262.     PrintLn "          @X0FL@X0Bi@X03G@X08HTNiNG <@X0FMATRiX@X08> BY <@X0F/┤ReS@X08> (@X0Fc@X08) 1994 <@X0F/┤WoL@X08> PRODUCTi@X03O@X0BN@X0FS@X07"
  263.     Newline
  264.     KbdStuff STRING008 + "   " + STRING001 + Chr(13)
  265.     End
  266.     :LABEL019
  267.     Cls
  268.     PrintLn "          @X0FL@X0Bi@X03G@X08HTNiNG <@X0FMATRiX@X08> BY <@X0F/┤ReS@X08> (@X0Fc@X08) 1994 <@X0F/┤WoL@X08> PRODUCTi@X03O@X0BN@X0FS@X07"
  269.     Newline
  270.     KbdStuff STRING008 + Chr(13) + STRING001 + Chr(13)
  271.     End
  272.     :LABEL020
  273.     Cls
  274.     AnsiPos 1, 3
  275.     If (STRING010 == "0") Goto LABEL022
  276.     If (STRING010 <> "0") Goto LABEL021
  277.     End
  278.     :LABEL021
  279.     DispFile PPEPath() + "NUP.ANS", 0
  280.     AnsiPos INTEGER002, INTEGER003
  281.     InputStr "_", STRING007, 15, 40, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=\!@#$%^&*()_+|,./?:", 1 + 8
  282.     If (STRING007 <> STRING010) Goto LABEL001
  283.     If (STRING007 == STRING010) Goto LABEL022
  284.     End
  285.     :LABEL022
  286.     DispFile PPEPath() + "APPLY.ANS", 0
  287.     Newline
  288.     InputStr STRING012 + "_", STRING008, 15, 40, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=\!@#$%^&*()_+|,./?:", 8
  289.     If (STRING008 == "") Goto LABEL001
  290.     If (STRING008 <> "") Then
  291.     Endif
  292.     INTEGER007 = U_RecNum(STRING008)
  293.     If (INTEGER007 <> -1) Then
  294.         Cls
  295.         DispFile PPEPath() + "DUPED.ANS", 0
  296.         Hangup
  297.     Endif
  298.     If (INTEGER007 == -1) Then
  299.         KbdStuff STRING008 + Chr(13)
  300.     Endif
  301.     End
  302.     :LABEL023
  303.     Cls
  304.     AnsiPos 1, 3
  305.     InputStr STRING012 + "_", STRING008, 15, 40, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=\!@#$%^&*()_+|,./?:", 8
  306.     If (STRING008 == Chr(13)) Goto LABEL001
  307.     If (STRING008 <> Chr(13)) Goto LABEL024
  308.     End
  309.     :LABEL024
  310.     INTEGER007 = U_RecNum(STRING008)
  311.     Newline
  312.     Print STRING005
  313.     Delay 7
  314.     If (INTEGER007 == -1) Goto LABEL036
  315.     If (INTEGER007 <> -1) Then
  316.         Print " " + STRING004
  317.         Newline
  318.         InputStr STRING026 + "_", STRING001, 15, 40, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=\!@#$%^&*()_+|,./?:", 8 + 1
  319.         INTEGER001 = U_RecNum(STRING008)
  320.         GetAltUser INTEGER001
  321.         If (STRING001 <> U_Pwd) Goto LABEL001
  322.         If (STRING001 == U_Pwd) Goto LABEL025
  323.     Endif
  324.     End
  325.     :LABEL025
  326.     INTEGER001 = U_RecNum(STRING008)
  327.     GetAltUser INTEGER001
  328.     Newline
  329.     Print STRING002
  330.     Delay 7
  331.     If (U_Sec == "0") Goto LABEL037
  332.     If (U_Sec <> "0") Goto LABEL026
  333.     End
  334.     :LABEL026
  335.     Print " " + STRING004
  336.     Newline
  337.     Print STRING003
  338.     Delay 7
  339.     INTEGER001 = U_RecNum(STRING008)
  340.     GetAltUser INTEGER001
  341.     If (U_Sec < STRING025) Goto LABEL027
  342.     If (U_Sec >= STRING025) Print " " + STRING004
  343.     Goto LABEL028
  344.     End
  345.     :LABEL027
  346.     Cls
  347.     DispFile PPEPath() + "NOTVALID.ANS", 0
  348.     Newline
  349.     Wait
  350.     Goto LABEL001
  351.     End
  352.     :LABEL028
  353.     DispFile PPEPath() + "VALID.ANS", 0
  354.     Newline
  355.     PrintLn STRING018 + " " + STRING009
  356.     Newline
  357.     InputStr STRING033 + "_", STRING011, 15, 1, "YNyn", 8
  358.     If ((STRING011 == "n") || (STRING011 == "N")) Then
  359.         Goto LABEL001
  360.     Endif
  361.     If ((STRING011 == "y") || (STRING011 == "Y")) Then
  362.         Goto LABEL029
  363.     Endif
  364.     End
  365.     :LABEL029
  366.     DispFile PPEPath() + "WELCOME.ANS", 0
  367.     Newline
  368.     KbdStuff STRING008 + Chr(13)
  369.     End
  370.     :LABEL030
  371.     Cls
  372.     AnsiPos 1, 1
  373.     DispFile PPEPath() + "FEEDBACK.ANS", 0
  374.     Newline
  375.     PrintLn "  @X08To:@X0F " + STRING029
  376.     InputStr "@X08From: _", STRING008, 15, 40, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=\!@#$%^&*()_+|,./?:", 8
  377.     Cls
  378.     AnsiPos 1, 1
  379.     PrintLn "@X07@X0F┌─┐─@X07┬─∙@X08─∙ ∙                                                      ∙ ∙  ∙─@X07─┬@X0F─┌─┐"
  380.     PrintLn "└─@X07┼───@X08─@X07─@X08─────────────────────────────────────────────────────────────────@X07──┼@X0F─┘"
  381.     PrintLn "@X07├@X08─│─┘                          L@X07iG@X0FHTN@X07iN@X08G M@X07A@X0FTR@X07i@X08X                          └─:@X07─┤"
  382.     PrintLn "@X08│ :       By AReS [AWoL]  (c) 1994 Reality PPE's All Rights Are Lost       . │"
  383.     PrintLn "@X0F                    @X08Press '/S' Alone to Save '/A' To Abort"
  384.     PrintLn "──────────────────────────────────────────────────────────────────────────────"
  385.     STRING042 = PPEPath() + "FEEDBACK"
  386.     FCreate 3, STRING042, 1, 2
  387.     :LABEL031
  388.     If (FALSE) Goto LABEL032
  389.     STRING040 = ""
  390.     STRING041 = " 0123456789!@#$%^&*()-=_+`~qwertyuiop[]\|asdfghjkl;'zxcvbnm,./<>?:{}QWERTYUIOPASDFGHJKLZXCVBNM"
  391.     InputStr "_", STRING040, 15, 78, STRING041, 512
  392.     FreshLine
  393.     If ((STRING040 == "/s") || (STRING040 == "/S")) Goto LABEL033
  394.     If ((STRING040 == "/a") || (STRING040 == "/A")) Goto LABEL034
  395.     FPutLn 3, STRING040
  396.     Goto LABEL031
  397.     :LABEL032
  398.     End
  399.     :LABEL033
  400.     PrintLn ""
  401.     PrintLn "@X08S@X07A@X0FV@X07iN@X08G..."
  402.     FPutLn 3, ""
  403.     FPutLn 3, "@X08L@X07iG@X0FHTN@X07iN@X08G M@X07A@X0FTR@X07i@X08X F@X07EE@X0FDB@X07AC@X08K "
  404.     FClose 3
  405.     Message CurConf(), STRING029, STRING008, "──═[MATRiX FEEDBaCK]═──", STRING030, 0, 0, 0, STRING042
  406.     Delete STRING042
  407.     Goto LABEL001
  408.     End
  409.     :LABEL034
  410.     Delete STRING042
  411.     Goto LABEL001
  412.     End
  413.     :LABEL035
  414.     Hangup
  415.     End
  416.     :LABEL036
  417.     DispFile PPEPath() + "NOTUSER.ANS", 0
  418.     Wait
  419.     Goto LABEL001
  420.     End
  421.     Cls
  422.     Chat
  423.     Goto LABEL001
  424.     End
  425.     :LABEL037
  426.     Cls
  427.     AnsiPos 1, 1
  428.     DispFile PPEPath() + "LOCKOUT.ANS", 0
  429.     Delay 15
  430.     Hangup
  431.     End
  432.  
  433. ;------------------------------------------------------------------------------
  434. ;
  435. ; Usage report (before postprocessing)
  436. ;
  437. ; ■ Statements used :
  438. ;
  439. ;    32      End
  440. ;    15      Cls
  441. ;    4       Wait
  442. ;    70      Goto 
  443. ;    22      Let 
  444. ;    22      Print 
  445. ;    17      PrintLn 
  446. ;    55      If 
  447. ;    14      DispFile 
  448. ;    1       FCreate 
  449. ;    1       FOpen 
  450. ;    2       FClose 
  451. ;    33      FGet 
  452. ;    3       FPutLn 
  453. ;    3       Hangup
  454. ;    2       Delete 
  455. ;    10      InputStr 
  456. ;    4       Delay 
  457. ;    13      Newline
  458. ;    4       KbdStuff 
  459. ;    36      AnsiPos 
  460. ;    1       FreshLine
  461. ;    1       Message 
  462. ;    1       Chat
  463. ;    4       GetAltUser 
  464. ;
  465. ;
  466. ; ■ Functions used :
  467. ;
  468. ;    4       -
  469. ;    72      +
  470. ;    1       -
  471. ;    42      ==
  472. ;    13      <>
  473. ;    3       <
  474. ;    1       >
  475. ;    1       >=
  476. ;    9       !
  477. ;    7       ||
  478. ;    10      Chr()
  479. ;    1       InStr()
  480. ;    5       StripAtx()
  481. ;    1       Inkey()
  482. ;    1       CurConf()
  483. ;    16      PPEPath()
  484. ;    6       U_RecNum()
  485. ;
  486. ;------------------------------------------------------------------------------
  487. ;
  488. ; Analysis flags : RBH
  489. ;
  490. ; R - Read user ■ 5
  491. ;     User records are read, this may signify that someone wants to get
  492. ;     various informations about a user (for example his password), but
  493. ;     this may also be normal for a program accessing user records (for
  494. ;     example a User Editor)
  495. ;     ■ Search for : GETALTUSER
  496. ;
  497. ; B - Brute hangup ■ 1
  498. ;     Program hangup without notification. This may be a good way to
  499. ;     disconnect a user, but if used randomly, may be very nasty
  500. ;     ■ Search for : HANGUP, DTROFF
  501. ;
  502. ; H - Read Password or Password History ■ 5
  503. ;     Program is reading the user's password or last password history
  504. ;     This may be ok for a password manager, but it is very suspect. Check!
  505. ;     ■ Search for : U_PWDHIST, U_PWD
  506. ;
  507. ;------------------------------------------------------------------------------
  508. ;
  509. ; Postprocessing report
  510. ;
  511. ;    0       For/Next
  512. ;    0       While/EndWhile
  513. ;    7       If/Then or If/Then/Else
  514. ;    0       Select Case
  515. ;
  516. ;------------------------------------------------------------------------------
  517. ;                 AEGiS Corp - Break the routines, code against the machines!
  518. ;------------------------------------------------------------------------------
  519.