home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / PEGAND2Z.ZIP / PEGANODE.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-03-25  |  10KB  |  355 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.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     String   TSTRING001(100)
  32.     String   TSTRING002(100)
  33.     String   TSTRING003(100)
  34.     String   TSTRING004(100)
  35.     String   TSTRING005(100)
  36.     String   STRING006
  37.     String   TSTRING007(100)
  38.     String   STRING008
  39.     String   STRING009
  40.     String   TSTRING010(100)
  41.     String   TSTRING011(100)
  42.     String   TSTRING012(100)
  43.     String   TSTRING013(100)
  44.     String   STRING014
  45.     String   TSTRING015(100)
  46.     String   STRING016
  47.     String   STRING017
  48.     String   STRING018
  49.     String   STRING019
  50.     String   STRING020
  51.     String   TSTRING021(100)
  52.     String   STRING022
  53.     String   STRING023
  54.  
  55. ;------------------------------------------------------------------------------
  56.  
  57.     STRING023 = ReadLine(PCBDat(), 28)
  58.     For INTEGER001 = 1 To 2
  59.         RdUNet INTEGER001
  60.         TSTRING001(INTEGER001) = UN_Name()
  61.         TSTRING002(INTEGER001) = RTrim(UN_Name(), " ")
  62.         TSTRING003(INTEGER001) = RTrim(UN_City(), " ")
  63.         TSTRING004(INTEGER001) = UN_Stat()
  64.         TSTRING005(INTEGER001) = RTrim(UN_Oper(), " ")
  65.     Next
  66.     Gosub LABEL003
  67.     TSTRING004(PcbNode()) = "WHO"
  68.     PrintLn 
  69.     PrintLn 
  70.     PrintLn "@X70 ┌@X7F───────────────────────────────────────────────────────────────────────────@X70┐ @X0F"
  71.     PrintLn "@X70 @X78│          @X71@SYSTIME:4R@   @XF0* @X74WHO'S ON * PEGANODE ACTIVITY REPORT @XF0*    @X71@SYSDATE:8R@      @X7F│ @X0F"
  72.     PrintLn "@X70 @X78│@X74N@X78ode                   @XFEUNREGISTERED: EVALUATION COPY                @X74T@X78ime  @X7F │ @X0F"
  73.     PrintLn "@X70 @X78│ @X74N@X78o.       @X74C@X78ALLER            @X74F@X78ROM                @X74A@X78CTIVITY           @X74L@X78eft   @X7F│ @X0F"
  74.     PrintLn "@X70 @X78│──── ────────────────── ─────────────── ───────────────────────── ──────── @X7F│ @X0F"
  75.     For INTEGER002 = 1 To 2
  76.         STRING019 = I2S(INTEGER002, 10)
  77.         STRING016 = STRING023 + "PEGTIME." + STRING019
  78.         If (Exist(STRING016)) Goto LABEL001
  79.         TSTRING007(INTEGER002) = ""
  80.         Goto LABEL002
  81.         :LABEL001
  82.         FOpen 1, STRING016, 0, 0
  83.         FGet 1, INTEGER010
  84.         FGet 1, STRING017
  85.         FClose 1
  86.         For INTEGER007 = 1 To 7
  87.             STRING020 = Mid(STRING017, INTEGER007, 1)
  88.             Select Case (STRING020)
  89.                 Case "m"
  90.                     Break
  91.                 Case "("
  92.                     STRING020 = ""
  93.             End Select
  94.             STRING018 = STRING018 + STRING020
  95.         Next
  96.         INTEGER012 = S2I(STRING018, 10)
  97.         INTEGER011 = INTEGER012 - (Time() - INTEGER010) / 60
  98.         TSTRING007(INTEGER002) = ""
  99.         TSTRING007(INTEGER002) = I2S(INTEGER011, 10)
  100.         TSTRING007(INTEGER002) = LTrim(RTrim(TSTRING007(INTEGER002), " "), " ")
  101.         STRING018 = ""
  102.         Gosub LABEL007
  103.         If (TSTRING004(INTEGER002) == "WHO") TSTRING007(INTEGER002) = "@TIMELEFT@"
  104.         :LABEL002
  105.         TSTRING005(INTEGER002) = RTrim(TSTRING005(INTEGER002), " ")
  106.         TSTRING005(INTEGER002) = LTrim(TSTRING005(INTEGER002), " ")
  107.         STRING006 = INTEGER002
  108.         If (INTEGER002 < 10) Then
  109.             STRING006 = " " + STRING006
  110.         ElseIf (INTEGER002 >= 10) Then
  111.             STRING006 = STRING006
  112.         Endif
  113.         If (TSTRING004(INTEGER002) == "WHO") Then
  114.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @POS:44@@X78Viewing @X74PEGANODE @POS:69@@X71@TIMELEFT:3R@@X70 @POS:73@Min @POS:77@@X7F │ @X0F"
  115.             Continue
  116.         Endif
  117.         If (TSTRING004(INTEGER002) == "") Then
  118.             PrintLn "@X70 @X78│@X74@POS:4@", STRING006, "@X78@POS:8@Unavailable Node @POS:77@ @X7F│ @X0F"
  119.             Continue
  120.         Endif
  121.         If (TSTRING004(INTEGER002) == " ") Then
  122.             PrintLn "@X70 @X78│@X74@POS:4@", STRING006, "@POS:8@@X78Available Node @POS:77@ @X7F│ @X0F"
  123.             Continue
  124.         Endif
  125.         If (TSTRING004(INTEGER002) == "O") Then
  126.             PrintLn "@X70 @X78│@X74@POS:4@", STRING006, "@POS:8@@X7FLogging On             @POS:77@ │ @X0F"
  127.             Continue
  128.         Endif
  129.         If (TSTRING004(INTEGER002) == "D") Then
  130.             TSTRING002(INTEGER002) = RTrim(TSTRING002(INTEGER002), " ")
  131.             INTEGER004 = Len(TSTRING002(INTEGER002))
  132.             TSTRING005(INTEGER002) = RTrim(TSTRING005(INTEGER002), " ")
  133.             INTEGER003 = Len(TSTRING005(INTEGER002))
  134.             Gosub LABEL004
  135.             TSTRING015(INTEGER002) = "@X7CDr: @X7B" + TSTRING005(INTEGER002)
  136.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), "@POS:44@", TSTRING015(INTEGER002), "@X71@POS:69@", TSTRING007(INTEGER002), "@X70 @POS:73@Min @POS:77@ @X7F│ @X0F"
  137.             Continue
  138.         Endif
  139.         If (TSTRING004(INTEGER002) == "A") Then
  140.             TSTRING005(INTEGER002) = "Available For Chat"
  141.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @POS:28@@X7E", TSTRING003(INTEGER002), " @X7F@POS:44@", TSTRING005(INTEGER002), "@X71@POS:69@", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  142.             Continue
  143.         Endif
  144.         If (TSTRING004(INTEGER002) == "T") Then
  145.             Gosub LABEL005
  146.             Gosub LABEL006
  147.             Continue
  148.         Endif
  149.         If (TSTRING004(INTEGER002) == "S") Then
  150.             TSTRING005(INTEGER002) = "Answering Script"
  151.             PrintLn "@X70 @X78│@X74@POS:4@", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X76@POS:44@", TSTRING005(INTEGER002), "@POS:69@@X71", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  152.             Continue
  153.         Endif
  154.         If (TSTRING004(INTEGER002) == "N") Then
  155.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X74@POS:44@Running Event      @POS:77@ @X7F│ @X0F"
  156.             Continue
  157.         Endif
  158.         If (TSTRING004(INTEGER002) == "L") Then
  159.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X74@POS:44@Logoff Pending     @POS:77@ @X7F│ @X0F"
  160.             Continue
  161.         Endif
  162.         If (TSTRING004(INTEGER002) == "R") Then
  163.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X74@POS:44@DOS Recycle Pending@POS:77@ @X7F│ @X0F"
  164.             Continue
  165.         Endif
  166.         If (TSTRING004(INTEGER002) == "V") Then
  167.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X74@POS:44@No Caller On Line  @POS:77@ @X7F│ @X0F"
  168.             Continue
  169.         Endif
  170.         If (TSTRING004(INTEGER002) == "W") Then
  171.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X74@POS:44@Drop To DOS Pending@POS:77@ @X7F│ @X0F"
  172.             Continue
  173.         Endif
  174.         If (TSTRING004(INTEGER002) == "C") Then
  175.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X74@POS:44@Chatting With Sysop@POS:69@@X71", TSTRING007(INTEGER002), "@X70@POS:73@Min@POS:77@ @X7F│ @X0F"
  176.             Continue
  177.         Endif
  178.         If (TSTRING004(INTEGER002) == "F") Then
  179.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X75@POS:44@", TSTRING005(INTEGER002), "@X71@POS:69@", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  180.             Continue
  181.         Endif
  182.         If (TSTRING004(INTEGER002) == "G") Then
  183.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X7A@POS:44@Chatting With Group@POS:69@@X71", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  184.             Continue
  185.         Endif
  186.         If (TSTRING004(INTEGER002) == "E") Then
  187.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X71@POS:44@Entering A Message@X71@POS:69@", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  188.             Continue
  189.         Endif
  190.         If (TSTRING004(INTEGER002) == "M") Then
  191.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X71@POS:44@Reading A Message@POS:69@", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  192.             Continue
  193.         Endif
  194.         If (TSTRING004(INTEGER002) == "B") Then
  195.             PrintLn "@X70 @X78│@X74@POS:4@", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X70@POS:44@Out in DOS@POS:77@ @X7F│ @X0F"
  196.             Continue
  197.         Endif
  198.         If (TSTRING004(INTEGER002) == "P") Then
  199.             PrintLn "@X70 @X78│@X74@POS:4@", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X74@POS:44@Paging SysOp@X71", TSTRING007(INTEGER002), "@POS:69@@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  200.             Continue
  201.         Endif
  202.         If (TSTRING004(INTEGER002) == "U") Then
  203.             TSTRING005(INTEGER002) = "Can't Chat Right Now"
  204.             PrintLn "@X70 @X78│@X74@POS:4@", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X79@POS:44@", TSTRING005(INTEGER002), "@X71@POS:69@", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  205.             Continue
  206.         Endif
  207.         PrintLn "@X70 @X78│@X74@POS:4@", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X76@POS:44@", TSTRING005(INTEGER002), "@X71", TSTRING007(INTEGER002), "@POS:69@@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  208.     Next
  209.     PrintLn "@X70 └@X78───────────────────────────────────────────────────────────────────────────@X70┘ @X0F"
  210.     PrintLn "@X08  v2.1a                                     COPYRIGHT (C) 1994 CHRIS MICHAELS"
  211.     PrintLn 
  212.     End
  213.     :LABEL003
  214.     For INTEGER002 = 1 To 2
  215.         Tokenize TSTRING003(INTEGER002)
  216.         INTEGER008 = TokCount()
  217.         For INTEGER009 = 1 To INTEGER008
  218.             GetToken TSTRING021(INTEGER009)
  219.             If (Right(TSTRING021(INTEGER009), 1) == ",") Then
  220.                 TSTRING021(INTEGER009) = Left(TSTRING021(INTEGER009), Len(TSTRING021(INTEGER009)) - 1)
  221.                 Continue
  222.             Endif
  223.             If (Right(TSTRING021(INTEGER009), 1) == ".") Then
  224.                 TSTRING021(INTEGER009) = Left(TSTRING021(INTEGER009), Len(TSTRING021(INTEGER009)) - 1)
  225.             Endif
  226.         Next
  227.         For INTEGER009 = 1 To INTEGER008
  228.             STRING022 = STRING022 + TSTRING021(INTEGER009) + " "
  229.             TSTRING021(INTEGER009) = ""
  230.         Next
  231.         TSTRING003(INTEGER002) = Left(STRING022, 13)
  232.         STRING022 = ""
  233.     Next
  234.     Return
  235.     :LABEL004
  236.     If (Left(TSTRING002(INTEGER002), INTEGER004) == Left(TSTRING005(INTEGER002), INTEGER004)) Then
  237.         TSTRING005(INTEGER002) = "@X7B" + Right(TSTRING005(INTEGER002), INTEGER003 - INTEGER004 - 3)
  238.         TSTRING005(INTEGER002) = LTrim(Left(TSTRING005(INTEGER002), 24), " ")
  239.     Endif
  240.     Return
  241.     :LABEL005
  242.     STRING009 = ""
  243.     STRING008 = ""
  244.     Tokenize TSTRING005(INTEGER002)
  245.     GetToken TSTRING010(INTEGER002)
  246.     GetToken TSTRING011(INTEGER002)
  247.     GetToken STRING014
  248.     GetToken TSTRING012(INTEGER002)
  249.     GetToken STRING014
  250.     GetToken TSTRING013(INTEGER002)
  251.     INTEGER005 = Len(TSTRING012(INTEGER002)) - 4
  252.     TSTRING012(INTEGER002) = Left(TSTRING012(INTEGER002), INTEGER005) + "K"
  253.     TSTRING005(INTEGER002) = TSTRING010(INTEGER002) + " " + TSTRING011(INTEGER002) + " " + TSTRING012(INTEGER002)
  254.     Return
  255.     :LABEL006
  256.     Select Case (TSTRING010(INTEGER002))
  257.         Case "(D)"
  258.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X75@POS:44@", TSTRING005(INTEGER002), "@X71@POS:69@", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  259.         Case "(U)"
  260.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X75@POS:44@(U)ploading A File @XFC@X71@POS:69@", TSTRING007(INTEGER002), "@X70 @POS:73@Min@POS:77@ @X7F│ @X0F"
  261.         Case Else
  262.             PrintLn "@X70 @X78│@POS:4@@X74", STRING006, "@POS:8@@X70", Left(TSTRING002(INTEGER002), 19), " @X7E@POS:28@", TSTRING003(INTEGER002), " @X74@POS:44@Preparing File Transfer@POS:69@@X71", TSTRING007(INTEGER002), "@X70 @POS:73@Min@X7F@POS:77@ │ @X0F"
  263.     End Select
  264.     Return
  265.     :LABEL007
  266.     TSTRING007(INTEGER002) = LTrim(RTrim(TSTRING007(INTEGER002), " "), " ")
  267.     INTEGER006 = Len(TSTRING007(INTEGER002))
  268.     Select Case (INTEGER006)
  269.         Case 1
  270.             TSTRING007(INTEGER002) = "  " + TSTRING007(INTEGER002)
  271.         Case 2
  272.             TSTRING007(INTEGER002) = " " + TSTRING007(INTEGER002)
  273.         Case 3
  274.             TSTRING007(INTEGER002) = TSTRING007(INTEGER002)
  275.         Case 4
  276.             TSTRING007(INTEGER002) = " ??"
  277.     End Select
  278.     Return
  279.  
  280. ;------------------------------------------------------------------------------
  281. ;
  282. ; Usage report (before postprocessing)
  283. ;
  284. ; ■ Statements used :
  285. ;
  286. ;    1       End
  287. ;    78      Goto 
  288. ;    65      Let 
  289. ;    34      PrintLn 
  290. ;    42      If 
  291. ;    1       FOpen 
  292. ;    1       FClose 
  293. ;    2       FGet 
  294. ;    5       Gosub 
  295. ;    5       Return
  296. ;    2       Tokenize 
  297. ;    7       GetToken 
  298. ;    1       RdUNet 
  299. ;
  300. ;
  301. ; ■ Functions used :
  302. ;
  303. ;    1       /
  304. ;    21      +
  305. ;    7       -
  306. ;    32      ==
  307. ;    7       <
  308. ;    6       <=
  309. ;    14      >=
  310. ;    40      !
  311. ;    12      &&
  312. ;    6       ||
  313. ;    6       Len(
  314. ;    1       Mid()
  315. ;    28      Left()
  316. ;    3       Right()
  317. ;    4       LTrim()
  318. ;    8       RTrim()
  319. ;    1       Time()
  320. ;    1       PCBDat()
  321. ;    1       PcbNode()
  322. ;    1       ReadLine()
  323. ;    1       UN_Stat()
  324. ;    2       UN_Name()
  325. ;    1       UN_City()
  326. ;    1       UN_Oper()
  327. ;    1       Exist()
  328. ;    2       I2S()
  329. ;    1       S2I()
  330. ;    1       TokCount()
  331. ;
  332. ;------------------------------------------------------------------------------
  333. ;
  334. ; Analysis flags : d
  335. ;
  336. ; d - Access PCBOARD.DAT ■ 2
  337. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  338. ;     for many PPE so they can find various informations on the system
  339. ;     (system paths, max number of lines in messages, ...) but it may also
  340. ;     be a way to gather vital informations.
  341. ;     ■ Search for : PCBDAT()
  342. ;
  343. ;------------------------------------------------------------------------------
  344. ;
  345. ; Postprocessing report
  346. ;
  347. ;    6       For/Next
  348. ;    0       While/EndWhile
  349. ;    26      If/Then or If/Then/Else
  350. ;    3       Select Case
  351. ;
  352. ;------------------------------------------------------------------------------
  353. ;                 AEGiS Corp - Break the routines, code against the machines!
  354. ;------------------------------------------------------------------------------
  355.