home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / VRAC / CW_PPP10.ZIP / SPEEDLIM.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-09-09  |  4KB  |  215 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.     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   TSTRING005(250)
  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.  
  45. ;------------------------------------------------------------------------------
  46.  
  47.     STRING001 = "1.3"
  48.     FOpen 1, PPEPath() + "SPEEDLIM.CNF", 0, 0
  49.     FGet 1, STRING010
  50.     FGet 1, INTEGER008
  51.     FGet 1, INTEGER006
  52.     FGet 1, INTEGER003
  53.     FGet 1, STRING002
  54.     FGet 1, STRING003
  55.     FGet 1, STRING004
  56.     FClose 1
  57.     Tokenize STRING010
  58.     GetToken STRING014
  59.     GetToken STRING015
  60.     If (INTEGER008 == 0) Then
  61.         STRING016 = "N"
  62.         Goto LABEL002
  63.     Else
  64.         Goto LABEL001
  65.     Endif
  66.     :LABEL001
  67.     INTEGER004 = 36
  68.     INTEGER007 = 62956
  69.     STRING011 = Left(STRING014, 1)
  70.     STRING012 = Left(STRING015, 2)
  71.     STRING013 = STRING011 + STRING012
  72.     If (STRING011 == "A") INTEGER009 = 1934
  73.     If (STRING011 == "B") INTEGER009 = 2859
  74.     If (STRING011 == "C") INTEGER009 = 3743
  75.     If (STRING011 == "D") INTEGER009 = 4660
  76.     If (STRING011 == "E") INTEGER009 = 5534
  77.     If (STRING011 == "F") INTEGER009 = 6471
  78.     If (STRING011 == "G") INTEGER009 = 7325
  79.     If (STRING011 == "H") INTEGER009 = 8287
  80.     If (STRING011 == "I") INTEGER009 = 9119
  81.     If (STRING011 == "J") INTEGER009 = 1096
  82.     If (STRING011 == "K") INTEGER009 = 2928
  83.     If (STRING011 == "L") INTEGER009 = 3885
  84.     If (STRING011 == "M") INTEGER009 = 4737
  85.     If (STRING011 == "N") INTEGER009 = 5674
  86.     If (STRING011 == "O") INTEGER009 = 6546
  87.     If (STRING011 == "P") INTEGER009 = 7463
  88.     If (STRING011 == "Q") INTEGER009 = 8355
  89.     If (STRING011 == "R") INTEGER009 = 9242
  90.     If (STRING011 == "S") INTEGER009 = 1164
  91.     If (STRING011 == "T") INTEGER009 = 2031
  92.     If (STRING011 == "U") INTEGER009 = 3973
  93.     If (STRING011 == "V") INTEGER009 = 4820
  94.     If (STRING011 == "W") INTEGER009 = 5782
  95.     If (STRING011 == "X") INTEGER009 = 6619
  96.     If (STRING011 == "Y") INTEGER009 = 7591
  97.     If (STRING011 == "Z") INTEGER009 = 8408
  98.     INTEGER005 = S2I(STRING013, INTEGER004) + INTEGER008 + INTEGER007 + INTEGER009
  99.     If (Len(INTEGER008) == 1) STRING007 = "000"
  100.     If (Len(INTEGER008) == 2) STRING007 = "00"
  101.     If (Len(INTEGER008) == 3) STRING007 = "0"
  102.     If (Len(INTEGER008) == 4) STRING007 = ""
  103.     STRING008 = INTEGER008
  104.     STRING009 = STRING007 + STRING008
  105.     :LABEL002
  106.     If (!(INTEGER006 == INTEGER005) || (STRING016 == "N")) Then
  107.         STRING006 = "@X0BSpeedLim v" + STRING001 + " # " + "@X0CUNREGISTERED@X0B" + " ■ " + STRING010 + " ■ "
  108.     Else
  109.         STRING006 = "@X0BSpeedLim v" + STRING001 + " #@X0F" + STRING009 + "@X0B ■ " + STRING010 + " ■ "
  110.     Endif
  111.     If (Carrier() == INTEGER003) Goto LABEL003
  112.     If (Carrier() > INTEGER003) Goto LABEL000
  113.     PrintLn "@X0BMaintaining @X0FSpeed Limit@X0B!"
  114.     PrintLn STRING006
  115.     Delay 18
  116.     End
  117.     :LABEL003
  118.     FOpen 1, STRING002, 0, 0
  119.     FGet 1, INTEGER001
  120.     For INTEGER002 = 1 To INTEGER001
  121.         FGet 1, TSTRING005(INTEGER002)
  122.         If (U_Name() == Upper(TSTRING005(INTEGER002))) Goto LABEL004
  123.     Next
  124.     FClose 1
  125.     Goto LABEL005
  126.     :LABEL004
  127.     PrintLn "@X0BModem Speed is too low but name was found in @X0FSpeed Limit@X0B!"
  128.     PrintLn "@X0BYou are granted access at this modem speed!"
  129.     PrintLn STRING006
  130.     FClose 1
  131.     Delay 18
  132.     End
  133.     :LABEL005
  134.     If (STRING004 == "") Goto LABEL006
  135.     FAppend 1, STRING004, 2, 3
  136.     FPutLn 1, "On " + String(Date()) + " at " + String(Time()) + " SpeedLimit blocked " + U_Name()
  137.     FClose 1
  138.     DispFile STRING003, 4 + 2 + 1
  139.     PrintLn STRING006
  140.     Goto LABEL007
  141.     :LABEL006
  142.     DispFile STRING003, 4 + 2 + 1
  143.     PrintLn STRING006
  144.     :LABEL007
  145.     Delay 18
  146.     Hangup
  147.     End
  148.  
  149. ;------------------------------------------------------------------------------
  150. ;
  151. ; Usage report (before postprocessing)
  152. ;
  153. ; ■ Statements used :
  154. ;
  155. ;    3       End
  156. ;    14      Goto 
  157. ;    44      Let 
  158. ;    7       PrintLn 
  159. ;    37      If 
  160. ;    2       DispFile 
  161. ;    2       FOpen 
  162. ;    1       FAppend 
  163. ;    4       FClose 
  164. ;    9       FGet 
  165. ;    1       FPutLn 
  166. ;    1       Hangup
  167. ;    3       Delay 
  168. ;    1       Tokenize 
  169. ;    2       GetToken 
  170. ;
  171. ;
  172. ; ■ Functions used :
  173. ;
  174. ;    28      +
  175. ;    36      ==
  176. ;    1       <
  177. ;    1       <=
  178. ;    1       >
  179. ;    2       >=
  180. ;    5       !
  181. ;    2       &&
  182. ;    2       ||
  183. ;    4       Len(
  184. ;    1       Upper()
  185. ;    2       Left()
  186. ;    1       Date()
  187. ;    1       Time()
  188. ;    2       U_Name()
  189. ;    2       String()
  190. ;    1       PPEPath()
  191. ;    1       S2I()
  192. ;    2       Carrier()
  193. ;
  194. ;------------------------------------------------------------------------------
  195. ;
  196. ; Analysis flags : B
  197. ;
  198. ; B - Brute hangup ■ 1
  199. ;     Program hangup without notification. This may be a good way to
  200. ;     disconnect a user, but if used randomly, may be very nasty
  201. ;     ■ Search for : HANGUP, DTROFF
  202. ;
  203. ;------------------------------------------------------------------------------
  204. ;
  205. ; Postprocessing report
  206. ;
  207. ;    1       For/Next
  208. ;    0       While/EndWhile
  209. ;    2       If/Then or If/Then/Else
  210. ;    0       Select Case
  211. ;
  212. ;------------------------------------------------------------------------------
  213. ;                 AEGiS Corp - Break the routines, code against the machines!
  214. ;------------------------------------------------------------------------------
  215.