home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / pcboard / bank_ppe.zip / BANK.PPE (.txt) next >
PCBoard Programming Language Executable  |  1993-05-12  |  3KB  |  167 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.     String   STRING002
  23.     String   TSTRING003(6)
  24.     String   TSTRING004(6)
  25.     String   STRING005
  26.     String   TSTRING006(5)
  27.  
  28. ;------------------------------------------------------------------------------
  29.  
  30.     INTEGER001 = 90
  31.     INTEGER003 = 0
  32.     TSTRING006(1) = "@X79"
  33.     TSTRING006(2) = "@X7B"
  34.     TSTRING006(3) = "@X7C"
  35.     TSTRING006(4) = "@X7E"
  36.     STRING002 = TokenStr()
  37.     Tokenize STRING002
  38.     INTEGER002 = 1
  39.     GetToken TSTRING003(INTEGER002)
  40.     While (TSTRING003(INTEGER002) <> "") Do
  41.         INTEGER002 = INTEGER002 + 1
  42.         GetToken TSTRING003(INTEGER002)
  43.     EndWhile
  44.     GetUser
  45.     If (Left(U_Notes(4), 4) <> "BANK") Then
  46.         TSTRING004(1) = "BANK"
  47.         TSTRING004(2) = "TIME"
  48.         TSTRING004(3) = 0
  49.     Else
  50.         Tokenize U_Notes(4)
  51.         INTEGER002 = 1
  52.         GetToken TSTRING004(INTEGER002)
  53.         While (TSTRING004(INTEGER002) <> "") Do
  54.             INTEGER002 = INTEGER002 + 1
  55.             GetToken TSTRING004(INTEGER002)
  56.         EndWhile
  57.     Endif
  58.     Select Case (Left(TSTRING003(1), 1))
  59.         Case "D"
  60.             PrintLn "@POS:10@", TSTRING006(1), TSTRING004(1), " ", TSTRING004(2), ":  ", TSTRING006(2), TSTRING004(3), " min."
  61.         Case "S"
  62.             If (Left(TSTRING003(2), 1) == "T") Then
  63.                 INTEGER003 = TSTRING003(3)
  64.             Else
  65.                 STRING005 = TSTRING006(3) + "Incorrect command syntex - " + TSTRING006(1) + "BANK SAVE TIME nn"
  66.                 Goto LABEL001
  67.             Endif
  68.             If (INTEGER003 > MinLeft() - 5) Then
  69.                 STRING005 = MinLeft() - 5
  70.                 STRING005 = TSTRING006(4) + "The maximum time available to save is " + TSTRING006(1) + STRING005 + TSTRING006(4) + " min."
  71.                 Goto LABEL001
  72.             ElseIf (INTEGER003 + TSTRING004(3) > INTEGER001) Then
  73.                 STRING005 = INTEGER001 - TSTRING004(3)
  74.                 STRING005 = TSTRING006(4) + "The maximum time you can add to the bank is " + TSTRING006(1) + STRING005 + TSTRING006(4) + " min."
  75.                 Goto LABEL001
  76.             Else
  77.                 TSTRING004(3) = INTEGER003 + TSTRING004(3)
  78.                 U_Notes(4) = TSTRING004(1) + " " + TSTRING004(2) + " " + TSTRING004(3)
  79.                 PutUser
  80.                 AdjTime -INTEGER003
  81.             Endif
  82.             PrintLn "@POS:10@", TSTRING006(2), INTEGER003, TSTRING006(4), " min. added to bank"
  83.         Case "R"
  84.             If (Left(TSTRING003(2), 1) == "T") Then
  85.                 INTEGER003 = TSTRING003(3)
  86.             Else
  87.                 STRING005 = TSTRING006(3) + "Incorrect command syntex - " + TSTRING006(1) + "BANK RESTORE TIME nn"
  88.                 Goto LABEL001
  89.             Endif
  90.             If (INTEGER003 > TSTRING004(3)) Then
  91.                 STRING005 = TSTRING004(3)
  92.                 STRING005 = TSTRING006(4) + "The maximum time available to restore is " + TSTRING006(1) + STRING005 + TSTRING006(4) + " min."
  93.                 Goto LABEL001
  94.             Else
  95.                 TSTRING004(3) = TSTRING004(3) - INTEGER003
  96.                 U_Notes(4) = TSTRING004(1) + " " + TSTRING004(2) + " " + TSTRING004(3)
  97.                 PutUser
  98.                 AdjTime INTEGER003
  99.             Endif
  100.             PrintLn "@POS:11@", TSTRING006(2), INTEGER003, TSTRING006(4), " min. added to use"
  101.         Case Else
  102.             PrintLn "@POS:4@", TSTRING006(4), "Syntex is: ", TSTRING006(1), "BANK DISPLAY,clrs(4), ", TSTRING006(1), "BANK SAVE TIME nn", TSTRING006(4), ", or ", TSTRING006(1), "BANK RESTORE TIME ", TSTRING006(1), "nn"
  103.     End Select
  104.     :LABEL001
  105.     If (STRING005 <> "") Then
  106.         PrintLn STRING005
  107.     Endif
  108.     End
  109.  
  110. ;------------------------------------------------------------------------------
  111. ;
  112. ; Usage report (before postprocessing)
  113. ;
  114. ; ■ Statements used :
  115. ;
  116. ;    1       End
  117. ;    28      Goto 
  118. ;    28      Let 
  119. ;    5       PrintLn 
  120. ;    12      If 
  121. ;    1       GetUser
  122. ;    2       PutUser
  123. ;    2       AdjTime 
  124. ;    2       Tokenize 
  125. ;    4       GetToken 
  126. ;
  127. ;
  128. ; ■ Functions used :
  129. ;
  130. ;    1       -
  131. ;    33      +
  132. ;    4       -
  133. ;    5       ==
  134. ;    4       <>
  135. ;    3       >
  136. ;    12      !
  137. ;    6       Left()
  138. ;    2       MinLeft()
  139. ;    1       TokenStr()
  140. ;
  141. ;------------------------------------------------------------------------------
  142. ;
  143. ; Analysis flags : WA
  144. ;
  145. ; W - Write user ■ 5
  146. ;     Program writes a user record. Although this may be normal for a
  147. ;     User Editor, it may also be a way to modify an account level.
  148. ;     ■ Search for : PUTUSER
  149. ;
  150. ; A - Adjust online time remaining ■ 5
  151. ;     Program modify the amount of online time remaining, this may
  152. ;     be a way to bypass time limits
  153. ;     ■ Search for : ADJTIME
  154. ;
  155. ;------------------------------------------------------------------------------
  156. ;
  157. ; Postprocessing report
  158. ;
  159. ;    0       For/Next
  160. ;    2       While/EndWhile
  161. ;    7       If/Then or If/Then/Else
  162. ;    1       Select Case
  163. ;
  164. ;------------------------------------------------------------------------------
  165. ;                 AEGiS Corp - Break the routines, code against the machines!
  166. ;------------------------------------------------------------------------------
  167.