home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / RP_MT10B.ZIP / DOS.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-03-08  |  11KB  |  725 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.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  TINTEGER009(3)
  29.     Integer  TINTEGER010(3)
  30.     String   STRING001
  31.     String   STRING002
  32.     String   STRING003
  33.     String   STRING004
  34.     String   STRING005
  35.     String   TSTRING006(12)
  36.     String   STRING007
  37.     String   STRING008
  38.     String   STRING009
  39.     String   STRING010
  40.     String   STRING011
  41.     String   STRING012
  42.     String   STRING013
  43.     String   STRING014
  44.     String   STRING015
  45.     String   STRING016
  46.     String   STRING017
  47.     String   STRING018
  48.     String   STRING019
  49.     String   STRING020
  50.     String   STRING021
  51.     String   STRING022
  52.     String   STRING023
  53.     String   TSTRING024(200)
  54.     String   STRING025
  55.     String   STRING026
  56.     String   STRING027
  57.     String   STRING028
  58.     String   STRING029
  59.     String   STRING030
  60.     String   STRING031
  61.     String   STRING032
  62.     String   STRING033
  63.     String   STRING034
  64.     String   STRING035
  65.     String   TSTRING036(1)
  66.     String   STRING037
  67.     String   STRING038
  68.     String   STRING039
  69.     String   STRING040
  70.     String   STRING041
  71.     String   STRING042
  72.     String   STRING043
  73.     String   STRING044
  74.  
  75. ;------------------------------------------------------------------------------
  76.  
  77.     TSTRING006(1) = PPEPath() + "ANSI\LAMER"
  78.     TSTRING006(2) = PPEPath() + "ANSI\DIR"
  79.     TSTRING006(3) = PPEPath() + "ANSI\SYS-PASS"
  80.     TSTRING006(4) = PPEPath() + "ANSI\NUP-PASS"
  81.     TSTRING006(5) = PPEPath() + "ANSI\FEEDBACK"
  82.     TSTRING006(6) = PPEPath() + "ANSI\GOODBYE"
  83.     TSTRING006(7) = PPEPath() + "ANSI\DIRW"
  84.     TSTRING006(8) = PPEPath() + "ANSI\PRELOGON"
  85.     TSTRING006(9) = PPEPath() + "ANSI\NUP-BAD"
  86.     TSTRING006(10) = PPEPath() + "ANSI\SYS-BAD"
  87.     TSTRING006(11) = PPEPath() + "ANSI\NEWUSER"
  88.     TSTRING006(12) = PPEPath() + "ANSI\CHECK"
  89.     KbdChkOff
  90.     If (Exist(PPEPath() + "DOS.CNF") == 0) Then
  91.         FCreate 1, PPEPath() + "DOS.CNF", 1, 0
  92.         FPutLn 1, "@X07C:\PCB> _"
  93.         FPutLn 1, "@X07C:\PCB\NUV> _"
  94.         FPutLn 1, "NUV"
  95.         FPutLn 1, "NUVW"
  96.         FPut 1, "YES"
  97.         FClose 1
  98.         Log "RiPE MaTRiX v1.0α written by WHiTE TiGER had an error!", 0
  99.         Log "DOS.CNF file not found so it was created using defaults!", 0
  100.     Endif
  101.     FOpen 1, PPEPath() + "DOS.CNF", 0, 0
  102.     FGet 1, STRING001
  103.     FGet 1, STRING002
  104.     FGet 1, STRING003
  105.     FGet 1, STRING004
  106.     FGet 1, STRING005
  107.     FClose 1
  108.     If (Exist(PPEPath() + "CMDS.DOS") == 0) Then
  109.         FCreate 1, PPEPath() + "CMDS.DOS", 1, 0
  110.         FPutLn 1, "SYSTEM"
  111.         FPutLn 1, "APPLY"
  112.         FPutLn 1, "INFO"
  113.         FPutLn 1, "FEEDBACK"
  114.         FPutLn 1, "CHECK"
  115.         FPutLn 1, "LOGOFF"
  116.         FPutLn 1, "UPLOAD"
  117.         FPut 1, "WHO"
  118.         FClose 1
  119.         Log "RiPE MaTRiX v1.0α written by WHiTE TiGER had an error!", 0
  120.         Log "CMDS.DOS file not found so it was created using defaults!", 0
  121.     Endif
  122.     FOpen 1, PPEPath() + "CMDS.DOS", 0, 0
  123.     FGet 1, STRING007
  124.     FGet 1, STRING008
  125.     FGet 1, STRING009
  126.     FGet 1, STRING010
  127.     FGet 1, STRING011
  128.     FGet 1, STRING012
  129.     FGet 1, STRING014
  130.     FGet 1, STRING013
  131.     FClose 1
  132.     STRING015 = ReadLine(PPEPath() + "MATRIX.CNF", 4)
  133.     STRING016 = ReadLine(PPEPath() + "MATRIX.CNF", 5)
  134.     STRING017 = ReadLine(PPEPath() + "MATRIX.CNF", 6)
  135.     STRING018 = ReadLine(PPEPath() + "MATRIX.CNF", 7)
  136.     STRING019 = ReadLine(PPEPath() + "MATRIX.CNF", 8)
  137.     INTEGER002 = ReadLine(PPEPath() + "MATRIX.CNF", 9)
  138.     STRING020 = ReadLine(PPEPath() + "MATRIX.CNF", 10)
  139.     STRING021 = ReadLine(PPEPath() + "MATRIX.CNF", 11)
  140.     STRING022 = ReadLine(PPEPath() + "MATRIX.CNF", 12)
  141.     If (Upper(STRING022) == "YES") Then
  142.         STRING023 = ReadLine(PPEPath() + "matrix.cnf", 13)
  143.     Endif
  144.     FOpen 1, PPEPath() + "STRINGS.CFG", 0, 0
  145.     FGet 1, STRING025
  146.     FGet 1, STRING026
  147.     FGet 1, STRING037
  148.     FGet 1, STRING038
  149.     FGet 1, STRING027
  150.     FGet 1, STRING028
  151.     FGet 1, STRING029
  152.     FGet 1, STRING030
  153.     FGet 1, STRING031
  154.     FGet 1, STRING032
  155.     FGet 1, STRING033
  156.     FClose 1
  157.     If (Upper(STRING016) == "YES") Then
  158.         FOpen 1, PPEPath() + "SYSPASS.CFG", 0, 0
  159.         FGet 1, INTEGER005
  160.         FGet 1, INTEGER006
  161.         FGet 1, STRING034
  162.         FClose 1
  163.     Endif
  164.     If (Upper(STRING018) == "YES") Then
  165.         FOpen 1, PPEPath() + "NUPPASS.CFG", 0, 0
  166.         FGet 1, INTEGER007
  167.         FGet 1, INTEGER008
  168.         FGet 1, STRING035
  169.         FClose 1
  170.     Endif
  171.     If (Upper(STRING019) == "YES") Then
  172.         FOpen 1, PPEPath() + "CHECK.CFG", 0, 0
  173.         FGet 1, TINTEGER009(1)
  174.         FGet 1, TINTEGER010(1)
  175.         FGet 1, TINTEGER009(2)
  176.         FGet 1, TINTEGER010(2)
  177.         FGet 1, TINTEGER009(3)
  178.         FGet 1, TINTEGER010(3)
  179.         FGet 1, TSTRING036(1)
  180.         FClose 1
  181.     Endif
  182.     Gosub LABEL001
  183.     Goto LABEL002
  184.     :LABEL001
  185.     PrintLn "@X03RiPE MaTRiX (R) PCBoard Version 1.o BeTa"
  186.     PrintLn "@X03 (C)CopySlapped By ReBeLS iN PuRe eFFeCT 199?"
  187.     PrintLn "@X03  CoDeD for PCB v15.1 By: WHiTE TiGER [RiPE∙/∙CYaNiDe∙/∙SuCK]"
  188.     Return
  189.     :LABEL002
  190.     STRING039 = ""
  191.     STRING043 = " 0123456789!@#$%^&*()-=_+`~qwertyuiop[]\|asdfghjkl;'zxcvbnm,./<>?:{}QWERTYUIOPASDFGHJKLZXCVBNM═"
  192.     If (BOOLEAN001 == 1) Then
  193.         PrintLn "@X07Bad command or file name"
  194.         PrintLn 
  195.     Endif
  196.     PrintLn 
  197.     InputStr STRING001, STRING039, 7, 20, STRING043, 8 + 4096
  198.     PrintLn 
  199.     Select Case (STRING039)
  200.         Case "FORMAT C:"
  201.             BOOLEAN001 = 0
  202.             PrintLn 
  203.             PrintLn "Warning All Data on Drive C will be erased!"
  204.             Print "Continue? "
  205.             InputYN "@X07[Y/N] _", STRING044, 7
  206.             If (Upper(STRING044) == "Y") Then
  207.                 If (Upper(STRING005) == "YES") Then
  208.                     If (Exist(TSTRING006(2))) Then
  209.                         DispFile TSTRING006(2), 1 + 4
  210.                         Wait
  211.                         Hangup
  212.                         Goto LABEL003
  213.                     Endif
  214.                     PrintLn 
  215.                     PrintLn "DRIVE C: TOASTED"
  216.                     PrintLn 
  217.                     PrintLn "@X0CWe do not need Lamers Like you around...cya"
  218.                     PrintLn 
  219.                     PrintLn "@X0D(+++ATH1)"
  220.                     Hangup
  221.                     Goto LABEL022
  222.                     :LABEL003
  223.                     Goto LABEL004
  224.                 Endif
  225.                 Goto LABEL002
  226.             Endif
  227.             :LABEL004
  228.             If (STRING039 == "CD DOORS") Then
  229.                 BOOLEAN001 = 0
  230.                 Gosub LABEL020
  231.             Endif
  232.             If (STRING039 == "COMMAND") Then
  233.                 BOOLEAN001 = 0
  234.                 Gosub LABEL001
  235.                 Goto LABEL002
  236.             Endif
  237.             If (STRING039 == "VER") Then
  238.                 BOOLEAN001 = 0
  239.                 PrintLn 
  240.                 PrintLn "@X08R@X07iP@X0FE MaTRiX v1@X07.o@X08 BeTa"
  241.                 PrintLn "@X08C@X07oDeD B@X0FY: WHiTE TiGER [RiPE∙/∙CYaNiDe∙/@X07∙SuCK@X08]"
  242.                 PrintLn "@X08P@X07iR@X0FaTeD iN 1994 Bi@X07TC@X08H"
  243.                 PrintLn 
  244.                 Goto LABEL002
  245.             Endif
  246.             If (STRING039 == "DIR") Then
  247.                 BOOLEAN001 = 0
  248.                 If (Exist(TSTRING006(2))) DispFile TSTRING006(2) , 1 + 4
  249.                 Goto LABEL002
  250.             Endif
  251.             If (STRING039 == "DIR /P") Then
  252.                 BOOLEAN001 = 0
  253.                 If (Exist(TSTRING006(2))) DispFile TSTRING006(2) , 1 + 4
  254.                 Goto LABEL002
  255.             Endif
  256.             If (STRING039 == "DIR /W") Then
  257.                 BOOLEAN001 = 0
  258.                 If (Exist(TSTRING006(7))) DispFile TSTRING006(7) , 1 + 4
  259.                 Goto LABEL002
  260.             Endif
  261.             If (STRING039 == Upper(STRING007)) Then
  262.                 BOOLEAN001 = 0
  263.                 If (STRING016 == "69") Then
  264.                     Goto LABEL022
  265.                 Endif
  266.                 If (Upper(STRING016) == "YES") Then
  267.                     If (Exist(TSTRING006(3))) DispFile TSTRING006(3) , 1 + 4
  268.                     AnsiPos INTEGER005, INTEGER006
  269.                     InputStr "_", STRING041, STRING034, 60, STRING043, 8 + 1 + 4096
  270.                     If (STRING041 == Upper(STRING015)) Then
  271.                         If (Exist(TSTRING006(8))) Then
  272.                             DispFile TSTRING006(8), 1 + 4
  273.                             Wait
  274.                             Goto LABEL022
  275.                         Endif
  276.                         Goto LABEL005
  277.                     Endif
  278.                     If (Exist(TSTRING006(10))) Then
  279.                         DispFile TSTRING006(10), 1 + 4
  280.                         Wait
  281.                         Goto LABEL002
  282.                         Goto LABEL005
  283.                     Endif
  284.                     Cls
  285.                     PrintLn STRING026
  286.                     PrintLn 
  287.                     Wait
  288.                     Goto LABEL002
  289.                     :LABEL005
  290.                     Goto LABEL006
  291.                 Endif
  292.                 If (Upper(STRING016) == "NO") Then
  293.                     Print "@X07"
  294.                     Cls
  295.                     InputStr STRING025, STRING041, STRING034, 60, STRING043, 8 + 1 + 4096
  296.                     If (STRING041 == Upper(STRING015)) Then
  297.                         If (Exist(TSTRING006(8))) Then
  298.                             DispFile TSTRING006(8), 1 + 4
  299.                             Wait
  300.                         Endif
  301.                         Goto LABEL022
  302.                         Goto LABEL006
  303.                     Endif
  304.                     If (Exist(TSTRING006(10))) Then
  305.                         DispFile TSTRING006(10), 1 + 4
  306.                         Wait
  307.                         Goto LABEL002
  308.                         Goto LABEL006
  309.                     Endif
  310.                     Cls
  311.                     PrintLn STRING026
  312.                     PrintLn 
  313.                     Wait
  314.                     Goto LABEL002
  315.                 Endif
  316.             Endif
  317.             :LABEL006
  318.             If (STRING039 == Upper(STRING011)) Then
  319.                 BOOLEAN001 = 0
  320.                 If (Upper(STRING019) == "YES") Then
  321.                     If (Exist(TSTRING006(12))) DispFile TSTRING006(12) , 1 + 4
  322.                     AnsiPos TINTEGER009(1), TINTEGER010(1)
  323.                     InputStr "_", STRING042, TSTRING036(1), 60, STRING043, 8
  324.                     Gosub LABEL021
  325.                     For INTEGER004 = 1 To INTEGER003
  326.                         If (STRING042 == TSTRING024(INTEGER004)) Then
  327.                             If (Exist(PPEPath() + "ansi\blacklst")) Then
  328.                                 DispFile PPEPath() + "ansi\blacklst", 1 + 4
  329.                                 Goto LABEL007
  330.                             Endif
  331.                             Print "@X07"
  332.                             Cls
  333.                             PrintLn 
  334.                             PrintLn "@X08Y@X07oU aR@X0Fe NoT WaNTeD oN THiS SYSTeM B@X07iTCH@X08!"
  335.                             PrintLn 
  336.                             :LABEL007
  337.                             Wait
  338.                             Hangup
  339.                             Goto LABEL022
  340.                         Endif
  341.                     Next
  342.                     INTEGER001 = U_RecNum(STRING042)
  343.                     If (INTEGER001 == -1) Then
  344.                         Cls
  345.                         PrintLn "@X08U@X07se@X0Fr Not fo@X07un@X08d"
  346.                         PrintLn "@X08A@X07pp@X0Fly Fir@X07st@X08!"
  347.                         PrintLn 
  348.                         Wait
  349.                         Goto LABEL002
  350.                         Goto LABEL011
  351.                     Endif
  352.                     GetAltUser INTEGER001
  353.                     If (U_Sec == INTEGER002) Then
  354.                         If (Exist(PPEPath() + "ANSI\NOTVAL.ANS")) Then
  355.                             DispFile PPEPath() + "ANSI\NOTVAL.ANS", 1
  356.                             Wait
  357.                             Hangup
  358.                             Goto LABEL022
  359.                             Goto LABEL008
  360.                         Endif
  361.                         PrintLn 
  362.                         PrintLn STRING033
  363.                         PrintLn 
  364.                         Wait
  365.                         Hangup
  366.                         Goto LABEL022
  367.                         :LABEL008
  368.                         Goto LABEL002
  369.                     Endif
  370.                     AnsiPos TINTEGER009(2), TINTEGER010(2)
  371.                     PrintLn TSTRING036(1), U_City
  372.                     AnsiPos TINTEGER009(3), TINTEGER010(3)
  373.                     InputStr "_", STRING042, TSTRING036(1), 60, STRING043, 8 + 1
  374.                     If (STRING042 == U_Pwd) Then
  375.                         If (Exist(PPEPath() + "ANSI\SYSTEM.ANS")) Then
  376.                             DispFile PPEPath() + "ANSI\SYSTEM.ANS", 1
  377.                             Goto LABEL009
  378.                         Endif
  379.                         Cls
  380.                         PrintLn 
  381.                         PrintLn STRING032
  382.                         PrintLn 
  383.                         :LABEL009
  384.                         PrintLn 
  385.                         InputYN STRING029, STRING042, 7
  386.                         If (Upper(STRING042) == "Y") Then
  387.                             If (Exist(TSTRING006(8))) Then
  388.                                 DispFile TSTRING006(8), 1 + 4
  389.                                 Wait
  390.                             Endif
  391.                             Goto LABEL022
  392.                             Goto LABEL010
  393.                         Endif
  394.                         If (Upper(STRING042) == "N") Then
  395.                             Goto LABEL002
  396.                         Endif
  397.                         :LABEL010
  398.                         Goto LABEL011
  399.                     Endif
  400.                     AnsiPos TINTEGER009(3), TINTEGER010(3)
  401.                     PrintLn "■ WRONG PASSWORD! ■"
  402.                     AnsiPos 1, 23
  403.                     Goto LABEL002
  404.                     :LABEL011
  405.                     Goto LABEL016
  406.                 Endif
  407.                 If (Upper(STRING019) == "NO") Then
  408.                     Print "@X07"
  409.                     Cls
  410.                     InputStr STRING037, STRING042, 7, 60, STRING043, 8
  411.                     Gosub LABEL021
  412.                     For INTEGER004 = 1 To INTEGER003
  413.                         If (STRING042 == TSTRING024(INTEGER004)) Then
  414.                             If (Exist(PPEPath() + "ansi\blacklst")) Then
  415.                                 DispFile PPEPath() + "ansi\blacklst", 1 + 4
  416.                                 Goto LABEL012
  417.                             Endif
  418.                             Print "@X07"
  419.                             Cls
  420.                             PrintLn 
  421.                             PrintLn "@X08Y@X07oU aR@X0Fe NoT WaNTeD oN THiS SYSTeM B@X07iTCH@X08!"
  422.                             PrintLn 
  423.                             :LABEL012
  424.                             Wait
  425.                             Hangup
  426.                             Goto LABEL022
  427.                         Endif
  428.                     Next
  429.                     INTEGER001 = U_RecNum(STRING042)
  430.                     If (INTEGER001 == -1) Then
  431.                         Cls
  432.                         PrintLn "@X08U@X07se@X0Fr Not fo@X07un@X08d"
  433.                         PrintLn "@X08A@X07pp@X0Fly Fir@X07st@X08!"
  434.                         PrintLn 
  435.                         Wait
  436.                         Goto LABEL002
  437.                         Goto LABEL016
  438.                     Endif
  439.                     GetAltUser INTEGER001
  440.                     If (U_Sec == INTEGER002) Then
  441.                         If (Exist(PPEPath() + "ANSI\NOTVAL.ANS")) Then
  442.                             DispFile PPEPath() + "ANSI\NOTVAL.ANS", 1
  443.                             Wait
  444.                             Hangup
  445.                             Goto LABEL022
  446.                             Goto LABEL013
  447.                         Endif
  448.                         PrintLn 
  449.                         PrintLn STRING033
  450.                         PrintLn 
  451.                         Wait
  452.                         Hangup
  453.                         Goto LABEL022
  454.                         :LABEL013
  455.                         Goto LABEL002
  456.                     Endif
  457.                     PrintLn 
  458.                     InputStr STRING038, STRING042, 7, 30, STRING043, 8 + 1
  459.                     If (STRING042 == U_Pwd) Then
  460.                         If (Exist(PPEPath() + "ANSI\SYSTEM.ANS")) Then
  461.                             DispFile PPEPath() + "ANSI\SYSTEM.ANS", 1
  462.                             Goto LABEL014
  463.                         Endif
  464.                         Cls
  465.                         PrintLn 
  466.                         PrintLn STRING032
  467.                         PrintLn 
  468.                         :LABEL014
  469.                         PrintLn 
  470.                         InputYN STRING029, STRING042, 7
  471.                         If (Upper(STRING042) == "Y") Then
  472.                             If (Exist(TSTRING006(8))) Then
  473.                                 DispFile TSTRING006(8), 1 + 4
  474.                                 Wait
  475.                             Endif
  476.                             Goto LABEL022
  477.                             Goto LABEL015
  478.                         Endif
  479.                         If (Upper(STRING042) == "N") Then
  480.                             Goto LABEL002
  481.                         Endif
  482.                         :LABEL015
  483.                         Goto LABEL016
  484.                     Endif
  485.                     AnsiPos 1, 6
  486.                     PrintLn "@X08■ @X0CWRONG PASSWORD! @X08■"
  487.                     Wait
  488.                     Goto LABEL002
  489.                 Endif
  490.             Endif
  491.             :LABEL016
  492.             If (STRING039 == Upper(STRING008)) Then
  493.                 BOOLEAN001 = 0
  494.                 If (STRING017 == "69") Then
  495.                     Goto LABEL022
  496.                 Endif
  497.                 If (Upper(STRING018) == "YES") Then
  498.                     If (Exist(TSTRING006(4))) Then
  499.                         DispFile TSTRING006(4), 1 + 4
  500.                         Goto LABEL017
  501.                     Endif
  502.                     Goto LABEL002
  503.                     :LABEL017
  504.                     AnsiPos INTEGER007, INTEGER008
  505.                     InputStr "_", STRING040, STRING035, 60, STRING043, 8 + 1 + 4096
  506.                     PrintLn 
  507.                     If (STRING040 == Upper(STRING017)) Then
  508.                         If (Exist(TSTRING006(11))) DispFile TSTRING006(11) , 1 + 4
  509.                         Wait
  510.                         Goto LABEL022
  511.                         Goto LABEL018
  512.                     Endif
  513.                     If (Exist(TSTRING006(9))) Then
  514.                         DispFile TSTRING006(9), 1 + 4
  515.                         Wait
  516.                         Goto LABEL002
  517.                         Goto LABEL018
  518.                     Endif
  519.                     Print "@X07"
  520.                     Cls
  521.                     PrintLn STRING028
  522.                     PrintLn 
  523.                     Wait
  524.                     Goto LABEL002
  525.                     :LABEL018
  526.                     Goto LABEL019
  527.                 Endif
  528.                 If (Upper(STRING018) == "NO") Then
  529.                     Print "@X07"
  530.                     Cls
  531.                     InputStr STRING027, STRING040, 7, 60, STRING043, 8 + 1 + 4096
  532.                     PrintLn 
  533.                     If (STRING040 == Upper(STRING017)) Then
  534.                         If (Exist(TSTRING006(11))) DispFile TSTRING006(11) , 1 + 4
  535.                         Wait
  536.                         Goto LABEL022
  537.                         Goto LABEL019
  538.                     Endif
  539.                     If (Exist(TSTRING006(9))) Then
  540.                         DispFile TSTRING006(9), 1 + 4
  541.                         Wait
  542.                         Goto LABEL002
  543.                         Goto LABEL019
  544.                     Endif
  545.                     Print "@X07"
  546.                     Cls
  547.                     PrintLn STRING028
  548.                     PrintLn 
  549.                     Wait
  550.                     Goto LABEL002
  551.                 Endif
  552.             Endif
  553.             :LABEL019
  554.             If (STRING039 == Upper(STRING012)) Then
  555.                 BOOLEAN001 = 0
  556.                 If (Exist(TSTRING006(6))) DispFile TSTRING006(6) , 1 + 4
  557.                 Hangup
  558.                 Goto LABEL022
  559.             Endif
  560.             If (STRING039 == Upper(STRING010)) Then
  561.                 BOOLEAN001 = 0
  562.                 Call PPEPath() + "feedback.ppe"
  563.                 Goto LABEL002
  564.             Endif
  565.         Case Upper(STRING013)
  566.             BOOLEAN001 = 0
  567.             PrintLn 
  568.             PrintLn 
  569.             Goto LABEL002
  570.     End Select
  571.     BOOLEAN001 = 1
  572.     Goto LABEL002
  573.     :LABEL020
  574.     STRING043 = " 0123456789!@#$%^&*()-=_+`~qwertyuiop[]\|asdfghjkl;'zxcvbnm,./<>?:{}QWERTYUIOPASDFGHJKLZXCVBNM═"
  575.     If (BOOLEAN001 == 1) Then
  576.         PrintLn "@X07Bad command or file name"
  577.         PrintLn 
  578.     Endif
  579.     PrintLn 
  580.     InputStr STRING002, STRING039, 7, 20, STRING043, 8
  581.     If (STRING039 == "DIR") Then
  582.         BOOLEAN001 = 0
  583.         If (Exist(STRING003)) DispFile PPEPath() + "DOS\", STRING003
  584.         Goto LABEL020
  585.     Else
  586.         If (STRING039 == "DIR /W") Then
  587.             If (Exist(STRING004)) DispFile PPEPath() + "DOS\", STRING004
  588.             Goto LABEL020
  589.         Endif
  590.         If (STRING039 == "SOLAR") Then
  591.             BOOLEAN001 = 0
  592.             PrintLn 
  593.             PrintLn "Not enough memory to open application"
  594.             PrintLn 
  595.             Goto LABEL020
  596.         Endif
  597.         If (STRING039 == "SOLAR.BAT") Then
  598.             BOOLEAN001 = 0
  599.             PrintLn 
  600.             PrintLn "Not enough memory to open application"
  601.             PrintLn 
  602.             Goto LABEL020
  603.         Endif
  604.         If (STRING039 == "CD ..") Then
  605.             BOOLEAN001 = 0
  606.             Goto LABEL002
  607.         Endif
  608.         If (STRING039 == "CD..") Then
  609.             BOOLEAN001 = 0
  610.             Goto LABEL002
  611.         Endif
  612.         If (STRING039 == "CD \") Then
  613.             BOOLEAN001 = 0
  614.             Goto LABEL002
  615.         Endif
  616.         If (STRING039 == "CD\") Then
  617.             BOOLEAN001 = 0
  618.             Goto LABEL002
  619.         Endif
  620.         BOOLEAN001 = 1
  621.     Endif
  622.     BOOLEAN001 = 1
  623.     Goto LABEL020
  624.     :LABEL021
  625.     If (Exist(PPEPath() + "BLACKLST.TXT")) Then
  626.         INTEGER003 = ReadLine(PPEPath() + "BLACKLST.TXT", 1)
  627.         For INTEGER004 = 1 To INTEGER003
  628.             TSTRING024(INTEGER004) = Upper(ReadLine(PPEPath() + "BLACKLST.TXT", 1 + INTEGER004))
  629.         Next
  630.     Endif
  631.     Return
  632.     :LABEL022
  633.     Stop
  634.     End
  635.  
  636. ;------------------------------------------------------------------------------
  637. ;
  638. ; Usage report (before postprocessing)
  639. ;
  640. ; ■ Statements used :
  641. ;
  642. ;    1       End
  643. ;    13      Cls
  644. ;    24      Wait
  645. ;    158     Goto 
  646. ;    58      Let 
  647. ;    8       Print 
  648. ;    71      PrintLn 
  649. ;    85      If 
  650. ;    26      DispFile 
  651. ;    2       FCreate 
  652. ;    6       FOpen 
  653. ;    8       FClose 
  654. ;    37      FGet 
  655. ;    2       FPut 
  656. ;    11      FPutLn 
  657. ;    9       Hangup
  658. ;    4       Log 
  659. ;    10      InputStr 
  660. ;    3       InputYN 
  661. ;    5       Gosub 
  662. ;    2       Return
  663. ;    1       Stop
  664. ;    1       Call 
  665. ;    1       KbdChkOff
  666. ;    8       AnsiPos 
  667. ;    2       GetAltUser 
  668. ;
  669. ;
  670. ; ■ Functions used :
  671. ;
  672. ;    2       -
  673. ;    87      +
  674. ;    55      ==
  675. ;    3       <
  676. ;    3       <=
  677. ;    6       >=
  678. ;    75      !
  679. ;    6       &&
  680. ;    3       ||
  681. ;    27      Upper()
  682. ;    52      PPEPath()
  683. ;    12      ReadLine()
  684. ;    29      Exist()
  685. ;    2       U_RecNum()
  686. ;
  687. ;------------------------------------------------------------------------------
  688. ;
  689. ; Analysis flags : RBCH
  690. ;
  691. ; R - Read user ■ 5
  692. ;     User records are read, this may signify that someone wants to get
  693. ;     various informations about a user (for example his password), but
  694. ;     this may also be normal for a program accessing user records (for
  695. ;     example a User Editor)
  696. ;     ■ Search for : GETALTUSER
  697. ;
  698. ; B - Brute hangup ■ 1
  699. ;     Program hangup without notification. This may be a good way to
  700. ;     disconnect a user, but if used randomly, may be very nasty
  701. ;     ■ Search for : HANGUP, DTROFF
  702. ;
  703. ; C - Call child PPE ■ 3
  704. ;     This is usually normal, but may be a tricky way to launch some
  705. ;     sysop-only commands.
  706. ;     ■ Search for : CALL
  707. ;
  708. ; H - Read Password or Password History ■ 5
  709. ;     Program is reading the user's password or last password history
  710. ;     This may be ok for a password manager, but it is very suspect. Check!
  711. ;     ■ Search for : U_PWDHIST, U_PWD
  712. ;
  713. ;------------------------------------------------------------------------------
  714. ;
  715. ; Postprocessing report
  716. ;
  717. ;    3       For/Next
  718. ;    0       While/EndWhile
  719. ;    70      If/Then or If/Then/Else
  720. ;    1       Select Case
  721. ;
  722. ;------------------------------------------------------------------------------
  723. ;                 AEGiS Corp - Break the routines, code against the machines!
  724. ;------------------------------------------------------------------------------
  725.