home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / STATS110.ZIP / STATS.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-08-13  |  8KB  |  328 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   TSTRING001(50)
  29.     String   STRING002
  30.     String   STRING003
  31.     String   STRING004
  32.     String   STRING005
  33.     String   STRING006
  34.     String   STRING007
  35.     String   TSTRING008(4,2)
  36.     String   TSTRING009(4,8)
  37.     String   STRING010
  38.  
  39. ;------------------------------------------------------------------------------
  40.  
  41.     GetUser
  42.     If (GrafMode() == "N") Goto LABEL010
  43.     If (U_PageLen < 23) Then
  44.         If (U_PageLen <> 0) Then
  45.             Newline
  46.             PrintLn "@X07THE STATiSTiCS ONLY OPERATE WiTH 23 LiNES OR MORE !"
  47.             PrintLn "YOUR PAGELENGTH IS SHORTER THAN 23 LiNES. ENTER (P)AGELENGTH FROM THE CMD-LINE."
  48.             Wait
  49.         Else
  50.             Print "@PRODESC@"
  51.             STRING006 = ScrText(1, GetY(), 22, 0)
  52.             RdUNet PcbNode()
  53.             WrUNet PcbNode(), UN_Stat(), UN_Name(), UN_City(), "ViEWiNG THE STATiSTiCS", ""
  54.             STRING010 = "                                          "
  55.             TSTRING009(1, 1) = "@X0F@USER@'S STATiST@X07iC@X08S"
  56.             TSTRING009(1, 2) = ""
  57.             TSTRING009(1, 3) = "@X08T@X07iM@X0FE LEFT / USED @X05:@X0F @TIMELEFT@ / @TIMEUSED@ MiNS"
  58.             TSTRING009(1, 4) = "@X08    Y@X07OU@X0FR CONNECT @X05:@X0F " + Mid(Modem(), 1, 22)
  59.             TSTRING009(1, 5) = "@X08Y@X07OU@X0FR VOiCE NUMBA @X05:@X0F @HOMEPHONE@"
  60.             TSTRING009(1, 6) = "@X08 N@X07UM@X0FBER TiMES ON @X05:@X0F @NUMTIMESON@"
  61.             TSTRING009(1, 7) = "@X08L@X07AS@X0FT TiME ON WAS @X05:@X0F @LASTDATEON@ @X07/@X0F @LASTTIMEON@"
  62.             TSTRING009(1, 8) = "@X08Y@X07OU@X0FR EXPiRE DATE @X05:@X0F @EXPDAYS@ DAYS"
  63.             TSTRING009(2, 1) = "@X08  Y@X07OU@X0F DOWNLOADED @X05:@X0F @DLBYTES@ BYTES"
  64.             TSTRING009(2, 2) = "                 @X05:@X0F @DLFILES@ FiLES"
  65.             TSTRING009(2, 3) = "@X08    Y@X07OU@X0F UPLOADED @X05:@X0F @UPBYTES@ BYTES"
  66.             TSTRING009(2, 4) = "                 @X05:@X0F @UPFILES@ FiLES"
  67.             TSTRING009(2, 5) = "@X08Y@X07OU@X0FR DL/UL RATIO @X05:@X0F @BYTERATIO@"
  68.             TSTRING009(2, 6) = "@X08T@X07OD@X0FAY BYTES LEFT @X05:@X0F @BYTELIMIT@"
  69.             TSTRING009(2, 7) = "  @X08S@X07E@X0FCURiTY LEVEL @X05:@X0F " + Mid(CurSec(), 1, 22)
  70.             TSTRING009(2, 8) = "@X08D@X07EF@X0FAULT PROTOCOL @X05:@X0F " + STRING006
  71.             TSTRING009(3, 1) = "@X0FMESSAGE STATiST@X07iC@X08S"
  72.             TSTRING009(3, 2) = ""
  73.             TSTRING009(3, 3) = "@X08Y@X07OU@X0F WROTE @X05:@X0F @MSGLEFT@ MESSAGES"
  74.             TSTRING009(3, 4) = "@X08Y@X07OU@X0F READ  @X05:@X0F @MSGREAD@ MESSAGES"
  75.             TSTRING009(3, 5) = ""
  76.             TSTRING009(3, 6) = "@X08Y@X07OU@X0FR CURRENT CONF @X07(@X0F@CONFNUM@@X07)@POS:28@@X05:@X0F @CONFNAME@"
  77.             TSTRING009(3, 7) = "@X08 T@X07HE@X0F HiGHEST MSG # iS @X05:@X0F @HIGHMSGNUM@"
  78.             TSTRING009(3, 8) = "@X08  L@X07AS@X0FT MSG # YOU READ @X05:@X0F @LMR@"
  79.             STRING004 = U_Stat(1)
  80.             TSTRING009(4, 1) = "@X08F@X07iR@X0FST CONNECT WiTH SYSTEM WAS " + STRING004
  81.             STRING004 = U_Stat(7)
  82.             TSTRING009(4, 2) = "@X082@X0740@X0F0 BPS CONNECTS @X05:@X0F " + STRING004
  83.             STRING004 = U_Stat(8)
  84.             TSTRING009(4, 3) = "@X089@X0760@X0F0 BPS CONNECTS @X05:@X0F " + STRING004
  85.             STRING004 = U_Stat(9)
  86.             TSTRING009(4, 4) = "@X081@X074k@X0F+ BPS CONNECTS @X05:@X0F " + STRING004
  87.             STRING004 = U_Stat(14)
  88.             TSTRING009(4, 5) = "@X08P@X07AS@X0FSWORD ERRORS   @X05:@X0F " + STRING004
  89.             STRING004 = U_Stat(12)
  90.             TSTRING009(4, 6) = "@X08D@X07L @X0FLiMiT REACHED  @X05:@X0F " + STRING004
  91.             STRING004 = U_Stat(15)
  92.             TSTRING009(4, 7) = "@X08V@X07ER@X0FiFY ERRORS     @X05:@X0F " + STRING004
  93.             STRING004 = U_Stat(2)
  94.             TSTRING009(4, 8) = "@X08S@X07YS@X0FOP PAGES       @X05:@X0F " + STRING004
  95.             TSTRING008(1, 1) = "@X0F  PERSONAL STATS  "
  96.             TSTRING008(2, 1) = "@X0F  TRANSFER STATS  "
  97.             TSTRING008(3, 1) = "@X0F  MESSAGES STATS  "
  98.             TSTRING008(4, 1) = "@X0F  SPECiAL  STATS  "
  99.             If (LangExt() == "") Then
  100.                 TSTRING008(1, 2) = "@X0F▐@X7F▒PERSONAL STATS@X78▒@X08▌"
  101.                 TSTRING008(2, 2) = "@X0F▐@X7F▒TRANSFER STATS@X78▒@X08▌"
  102.                 TSTRING008(3, 2) = "@X0F▐@X7F▒MESSAGES STATS@X78▒@X08▌"
  103.                 TSTRING008(4, 2) = "@X0F▐@X7F▒SPECiAL  STATS@X78▒@X08▌"
  104.             Endif
  105.             If (LangExt() == ".AMI") Then
  106.                 TSTRING008(1, 2) = "@X01:|@X1FPERSONAL STATS@X01|:"
  107.                 TSTRING008(2, 2) = "@X01:|@X1FTRANSFER STATS@X01|:"
  108.                 TSTRING008(3, 2) = "@X01:|@X1FMESSAGES STATS@X01|:"
  109.                 TSTRING008(4, 2) = "@X01:|@X1FSPECiAL  STATS@X01|:"
  110.             Endif
  111.             INTEGER005 = 4
  112.             INTEGER006 = 8
  113.             INTEGER007 = 58
  114.             INTEGER008 = 6
  115.             INTEGER009 = 9
  116.             INTEGER004 = 18
  117.             STRING003 = ""
  118.             STRING007 = 1
  119.             If ((!Exist(PPEPath() + "numbas" + GrafMode()) && !Exist(PPEPath() + "numbas")) && !Exist(PPEPath() + "numbas" + LangExt())) End
  120.             If (Exist(PPEPath() + "numbas" + GrafMode() + LangExt())) Then
  121.                 FOpen 1, PPEPath() + "numbas" + GrafMode() + LangExt(), 0, 0
  122.             ElseIf (Exist(PPEPath() + "numbas" + LangExt())) Then
  123.                 FOpen 1, PPEPath() + "numbas" + LangExt(), 0, 0
  124.             Else
  125.                 FOpen 1, PPEPath() + "numbas", 0, 0
  126.             Endif
  127.             For INTEGER001 = 1 To 12 * INTEGER005
  128.                 FGet 1, TSTRING001(INTEGER001)
  129.             Next
  130.             FClose 1
  131.             Cls
  132.             Print "@POFF@"
  133.             DispFile PPEPath() + "FIELD", 1 + 4
  134.             If (LangExt() == ".AMI") Goto LABEL001
  135.             If (GrafMode() == "A") Then
  136.                 AnsiPos 1, 24
  137.                 MPrint "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  138.             Endif
  139.             If ((GrafMode() == "G") || (GrafMode() == "R")) Then
  140.                 AnsiPos 1, 24
  141.                 MPrint "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  142.             Endif
  143.             :LABEL001
  144.             AnsiPos INTEGER007, 6
  145.             Print TSTRING008(1, 2)
  146.             AnsiPos INTEGER007, 7
  147.             Print TSTRING008(2, 1)
  148.             AnsiPos INTEGER007, 8
  149.             Print TSTRING008(3, 1)
  150.             AnsiPos INTEGER007, 9
  151.             Print TSTRING008(4, 1)
  152.             Gosub LABEL008
  153.             :LABEL002
  154.             STRING003 = STRING002
  155.             STRING002 = Time()
  156.             For INTEGER001 = 1 To 9
  157.                 If (Mid(STRING002, INTEGER001, 1) <> Mid(STRING003, INTEGER001, 1)) Then
  158.                     STRING004 = STRING002
  159.                     Gosub LABEL009
  160.                 Endif
  161.             Next
  162.             STRING005 = Inkey()
  163.             If (STRING005 <> "") Goto LABEL003
  164.             Delay 1
  165.             Goto LABEL002
  166.             :LABEL003
  167.             If (STRING005 == Chr(27)) Goto LABEL011
  168.             If (STRING005 == Chr(13)) Goto LABEL011
  169.             If (Upper(STRING005) == "Q") Goto LABEL011
  170.             If (STRING005 == " ") Goto LABEL011
  171.             If (STRING005 == "4") Goto LABEL004
  172.             If (STRING005 == "LEFT") Goto LABEL004
  173.             If (STRING005 == "8") Goto LABEL004
  174.             If (STRING005 == "UP") Goto LABEL004
  175.             If (STRING005 == "2") Goto LABEL005
  176.             If (STRING005 == "DOWN") Goto LABEL005
  177.             If (STRING005 == "6") Goto LABEL005
  178.             If (STRING005 == "RIGHT") Goto LABEL005
  179.             Goto LABEL002
  180.             :LABEL004
  181.             If (STRING007 == "1") Goto LABEL002
  182.             Dec STRING007
  183.             Gosub LABEL006
  184.             Goto LABEL002
  185.             :LABEL005
  186.             If (STRING007 == "4") Goto LABEL002
  187.             Inc STRING007
  188.             Gosub LABEL007
  189.             Goto LABEL002
  190.             :LABEL006
  191.             AnsiPos INTEGER007, STRING007 + 6
  192.             Print TSTRING008(STRING007 + 1, 1)
  193.             AnsiPos INTEGER007, STRING007 + 5
  194.             Print TSTRING008(STRING007, 2)
  195.             Gosub LABEL008
  196.             Return
  197.             :LABEL007
  198.             AnsiPos INTEGER007, STRING007 + 4
  199.             Print TSTRING008(STRING007 - 1, 1)
  200.             AnsiPos INTEGER007, STRING007 + 5
  201.             Print TSTRING008(STRING007, 2)
  202.             Gosub LABEL008
  203.             Return
  204.             :LABEL008
  205.             For INTEGER001 = 1 To 8
  206.                 AnsiPos INTEGER008, INTEGER001 + 3
  207.                 Print STRING010
  208.                 AnsiPos INTEGER008, INTEGER001 + 3
  209.                 Print TSTRING009(STRING007, INTEGER001)
  210.             Next
  211.             Return
  212.             :LABEL009
  213.             INTEGER003 = ""
  214.             If (Mid(STRING004, INTEGER001, 1) == "1") INTEGER003 = 1
  215.             If (Mid(STRING004, INTEGER001, 1) == "2") INTEGER003 = 2
  216.             If (Mid(STRING004, INTEGER001, 1) == "3") INTEGER003 = 3
  217.             If (Mid(STRING004, INTEGER001, 1) == "4") INTEGER003 = 4
  218.             If (Mid(STRING004, INTEGER001, 1) == "5") INTEGER003 = 5
  219.             If (Mid(STRING004, INTEGER001, 1) == "6") INTEGER003 = 6
  220.             If (Mid(STRING004, INTEGER001, 1) == "7") INTEGER003 = 7
  221.             If (Mid(STRING004, INTEGER001, 1) == "8") INTEGER003 = 8
  222.             If (Mid(STRING004, INTEGER001, 1) == "9") INTEGER003 = 9
  223.             If (Mid(STRING004, INTEGER001, 1) == ":") INTEGER003 = 10
  224.             If (Mid(STRING004, INTEGER001, 1) == ".") INTEGER003 = 11
  225.             If (Mid(STRING004, INTEGER001, 1) == "-") INTEGER003 = 11
  226.             If (INTEGER003 == "") INTEGER003 = 11
  227.             If (Mid(STRING004, INTEGER001, 1) == "0") INTEGER003 = 0
  228.             For INTEGER002 = 1 To INTEGER005
  229.                 AnsiPos INTEGER001 * INTEGER006 - INTEGER006 + INTEGER009, INTEGER002 + INTEGER004 - 1
  230.                 Print TSTRING001(INTEGER003 * INTEGER005 + INTEGER002)
  231.             Next
  232.             Return
  233.         Endif
  234.     Endif
  235.     :LABEL010
  236.     KbdStuff "V" + Chr(13)
  237.     End
  238.     :LABEL011
  239.     Print "@X07"
  240.     Cls
  241.     End
  242.  
  243. ;------------------------------------------------------------------------------
  244. ;
  245. ; Usage report (before postprocessing)
  246. ;
  247. ; ■ Statements used :
  248. ;
  249. ;    3       End
  250. ;    2       Cls
  251. ;    1       Wait
  252. ;    41      Goto 
  253. ;    89      Let 
  254. ;    14      Print 
  255. ;    2       PrintLn 
  256. ;    45      If 
  257. ;    1       DispFile 
  258. ;    3       FOpen 
  259. ;    1       FClose 
  260. ;    1       FGet 
  261. ;    1       GetUser
  262. ;    6       Gosub 
  263. ;    4       Return
  264. ;    1       Delay 
  265. ;    1       Inc 
  266. ;    1       Dec 
  267. ;    1       Newline
  268. ;    1       KbdStuff 
  269. ;    1       RdUNet 
  270. ;    1       WrUNet 
  271. ;    13      AnsiPos 
  272. ;    2       MPrint 
  273. ;
  274. ;
  275. ; ■ Functions used :
  276. ;
  277. ;    4       *
  278. ;    44      +
  279. ;    3       -
  280. ;    35      ==
  281. ;    3       <>
  282. ;    5       <
  283. ;    4       <=
  284. ;    8       >=
  285. ;    17      !
  286. ;    10      &&
  287. ;    5       ||
  288. ;    1       Upper()
  289. ;    17      Mid()
  290. ;    3       Chr()
  291. ;    1       Time()
  292. ;    1       Inkey()
  293. ;    9       PPEPath()
  294. ;    2       PcbNode()
  295. ;    1       UN_Stat()
  296. ;    1       UN_Name()
  297. ;    1       UN_City()
  298. ;    1       CurSec()
  299. ;    5       Exist()
  300. ;    8       LangExt()
  301. ;    1       GetY()
  302. ;    8       U_Stat()
  303. ;    7       GrafMode()
  304. ;    1       Modem()
  305. ;    1       ScrText()
  306. ;
  307. ;------------------------------------------------------------------------------
  308. ;
  309. ; Analysis flags : M
  310. ;
  311. ; M - Send text to modem only ■ 4
  312. ;     Some informations are sent only to the modem, not to the local
  313. ;     screen, this is a well known way to make stealth backdoors, Check!
  314. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  315. ;
  316. ;------------------------------------------------------------------------------
  317. ;
  318. ; Postprocessing report
  319. ;
  320. ;    4       For/Next
  321. ;    0       While/EndWhile
  322. ;    9       If/Then or If/Then/Else
  323. ;    0       Select Case
  324. ;
  325. ;------------------------------------------------------------------------------
  326. ;                 AEGiS Corp - Break the routines, code against the machines!
  327. ;------------------------------------------------------------------------------
  328.