home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / pcboard / p_bank.zip / BANK.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-05-18  |  5KB  |  227 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.     String   STRING002
  26.     String   STRING003
  27.     String   TSTRING004(4)
  28.     String   STRING005
  29.  
  30. ;------------------------------------------------------------------------------
  31.  
  32.     :LABEL001
  33.     STRING002 = ""
  34.     GetUser
  35.     If (Left(U_Notes(4), 4) <> "BANK") Then
  36.         TSTRING004(1) = "BANK"
  37.         TSTRING004(2) = "TIME"
  38.         TSTRING004(3) = 0
  39.     Else
  40.         Tokenize U_Notes(4)
  41.         STRING003 = 1
  42.         GetToken TSTRING004(STRING003)
  43.         While (TSTRING004(STRING003) <> "") Do
  44.             STRING003 = STRING003 + 1
  45.             GetToken TSTRING004(STRING003)
  46.         EndWhile
  47.     Endif
  48.     INTEGER001 = 30
  49.     INTEGER002 = 15
  50.     INTEGER003 = TSTRING004(3)
  51.     If (INTEGER003 > INTEGER002) Then
  52.         INTEGER004 = INTEGER002
  53.     Else
  54.         INTEGER004 = INTEGER003
  55.     Endif
  56.     PrintLn "@CLS@@X07"
  57.     PrintLn "@X07"
  58.     PrintLn "@X07"
  59.     PrintLn "@X07  @X77                     @X70┌─────────────────────────@X7F┐                         @X07"
  60.     PrintLn "@X0F @X08█@X78                     @X70│   @X7AJerusalem Time Bank   @X7F│                         @X07"
  61.     PrintLn "@X0F @X08█@X78                     @X70└@X7F─────────────────────────┘                         @X07"
  62.     PrintLn "@X0F @X08█@X78     @X70┌─────────────────────@X7F┐   @X70┌─────────────────────────────────────@X7F┐   @X07"
  63.     PrintLn "@X0F @X08█@X78     @X70│  @X7BD@X78)@X71eposit time      @X7F│   @X70│ @X7BIn your Account@X78: @X7E    @X78               @X7F│   @X07"
  64.     PrintLn "@X0F @X08█@X78     @X70│  @X7BW@X78)@X71ithdraw time     @X7F│   @X70│ @X79Maximum Bank Balance@X78: @X7E    @X78          @X7F│   @X07"
  65.     PrintLn "@X0F @X08█@X78     @X70│  @X7BH@X78)@X71elp!             @X7F│   @X70│                                     @X7F│   @X07"
  66.     PrintLn "@X0F @X08█@X78     @X70│                     @X7F│   @X70│ @X7BAvailable for Withdrawal@X78: @X7E    @X78      @X7F│   @X07"
  67.     PrintLn "@X0F @X08█@X78     @X70│  @X7BQ@X78)@X74uit to @X79J@X74B@X7AB@X78S      @X7F│   @X70│ @X79Maximum Withdrawal P/Day@X78: @X7E    @X78      @X7F│   @X07"
  68.     PrintLn "@X0F @X08█@X78     @X70└@X7F─────────────────────┘   @X70└@X7F─────────────────────────────────────┘   @X07"
  69.     PrintLn "@X0F @X08█@X78                                                                         @X07"
  70.     PrintLn "@X08 █@X78                                                                         @X07"
  71.     PrintLn "@X08 █@X78                                                                         @X07"
  72.     PrintLn "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀@X07"
  73.     AnsiPos 53, 8
  74.     Print "@X75"
  75.     Print INTEGER003
  76.     PrintLn " @X78Min@X07"
  77.     AnsiPos 58, 9
  78.     Print "@X75"
  79.     Print INTEGER001
  80.     PrintLn " @X78Min@X07"
  81.     AnsiPos 62, 11
  82.     Print "@X75"
  83.     Print INTEGER004
  84.     PrintLn " @X78Min@X07"
  85.     AnsiPos 62, 12
  86.     Print "@X75"
  87.     Print INTEGER002
  88.     PrintLn " @X78Min@X07"
  89.     AnsiPos 0, 19
  90.     InputStr "(@X0C@TIMELEFT@ @X0Emin. left) Jerusalem BBS Time Bank ", STRING002, 14, 1, Mask_AlNum(), 2 + 4 + 8 + 128 + 32
  91.     If (STRING002 == "D") Gosub LABEL002
  92.     If (STRING002 == "W") Gosub LABEL003
  93.     If (STRING002 == "H") Gosub LABEL008
  94.     If (STRING002 == "Q") Goto LABEL009
  95.     If (STRING002 == "") Goto LABEL009
  96.     Goto LABEL001
  97.     :LABEL002
  98.     If (INTEGER003 == INTEGER001) Then
  99.         Goto LABEL004
  100.     Endif
  101.     INTEGER005 = INTEGER001 - INTEGER003
  102.     InputStr "Enter the Amount to Deposit :", INTEGER005, 14, 2, Mask_Num(), 2 + 4 + 8 + 128 + 32
  103.     If (INTEGER005 > INTEGER001 - INTEGER003) Then
  104.         Goto LABEL005
  105.     Endif
  106.     TSTRING004(3) = TSTRING004(3) + INTEGER005
  107.     U_Notes(4) = TSTRING004(1) + " " + TSTRING004(2) + " " + TSTRING004(3)
  108.     STRING005 = INTEGER005
  109.     PrintLn "@X0CDepositing @X0E" + STRING005 + "@X0E Min@X0C to Your Account"
  110.     Log "Deposited: " + STRING005 + " Min", 0
  111.     PutUser
  112.     AdjTime -INTEGER005
  113.     Goto LABEL009
  114.     :LABEL003
  115.     If (INTEGER003 == 0) Then
  116.         Goto LABEL007
  117.     Endif
  118.     If (INTEGER004 == 0) Then
  119.         Goto LABEL006
  120.     Endif
  121.     If (INTEGER003 > INTEGER002) Then
  122.         INTEGER006 = INTEGER002
  123.     Endif
  124.     InputStr "Enter the Amount to Withdraw :", INTEGER006, 14, 2, Mask_Num(), 2 + 4 + 8 + 128 + 32
  125.     If (INTEGER006 > INTEGER002) Then
  126.         Goto LABEL006
  127.     Endif
  128.     If (INTEGER006 > INTEGER003) Then
  129.         Goto LABEL006
  130.     Endif
  131.     TSTRING004(3) = TSTRING004(3) - INTEGER006
  132.     U_Notes(4) = TSTRING004(1) + " " + TSTRING004(2) + " " + TSTRING004(3)
  133.     STRING005 = INTEGER006
  134.     Print "@X0CWithdrawing @X0E " + STRING005 + " Min@X0C from Your Account"
  135.     Log "Withdrawed: " + STRING005 + " Min", 0
  136.     PutUser
  137.     AdjTime INTEGER006
  138.     Goto LABEL009
  139.     :LABEL004
  140.     Log "Attempted to Deposit When the bank was at Maximum", 0
  141.     PrintLn "@X0CYour Bank Balace is at its Maximum!@X07@BEEP@"
  142.     Goto LABEL009
  143.     :LABEL005
  144.     STRING005 = INTEGER005
  145.     Log "Attempted to Deposit too much: " + STRING005, 0
  146.     PrintLn "@X0CThe Maximum You Can Deposit is:@X0B" + STRING005 + "Min @X07@BEEP@"
  147.     Goto LABEL009
  148.     :LABEL006
  149.     STRING005 = INTEGER006
  150.     Log "Attempted to Withdraw too much! :" + STRING005, 0
  151.     STRING005 = INTEGER002
  152.     Print "@X0CThe Maximum You Can Withdraw is @X0B" + STRING005 + " Min @X07@BEEP@"
  153.     Goto LABEL009
  154.     :LABEL007
  155.     Log "Attempted to Withdraw : No Time in the Bank!", 0
  156.     Print "@X0CYou Must deposit time in the Bank in order to Withdraw@X07@BEEP@"
  157.     Goto LABEL009
  158.     :LABEL008
  159.     If (Exist(PPEPath() + "H_BANK")) DispFile PPEPath() + "H_BANK", 4 + 2 + 1
  160.     Goto LABEL001
  161.     :LABEL009
  162.  
  163. ;------------------------------------------------------------------------------
  164. ;
  165. ; Usage report (before postprocessing)
  166. ;
  167. ; ■ Statements used :
  168. ;
  169. ;    29      Goto 
  170. ;    22      Let 
  171. ;    11      Print 
  172. ;    24      PrintLn 
  173. ;    16      If 
  174. ;    1       DispFile 
  175. ;    1       GetUser
  176. ;    2       PutUser
  177. ;    2       AdjTime 
  178. ;    6       Log 
  179. ;    3       InputStr 
  180. ;    3       Gosub 
  181. ;    1       Tokenize 
  182. ;    2       GetToken 
  183. ;    5       AnsiPos 
  184. ;
  185. ;
  186. ; ■ Functions used :
  187. ;
  188. ;    1       -
  189. ;    40      +
  190. ;    3       -
  191. ;    8       ==
  192. ;    2       <>
  193. ;    5       >
  194. ;    10      !
  195. ;    1       Left()
  196. ;    2       Mask_Num()
  197. ;    1       Mask_AlNum()
  198. ;    2       PPEPath()
  199. ;    1       Exist()
  200. ;
  201. ;------------------------------------------------------------------------------
  202. ;
  203. ; Analysis flags : WA
  204. ;
  205. ; W - Write user ■ 5
  206. ;     Program writes a user record. Although this may be normal for a
  207. ;     User Editor, it may also be a way to modify an account level.
  208. ;     ■ Search for : PUTUSER
  209. ;
  210. ; A - Adjust online time remaining ■ 5
  211. ;     Program modify the amount of online time remaining, this may
  212. ;     be a way to bypass time limits
  213. ;     ■ Search for : ADJTIME
  214. ;
  215. ;------------------------------------------------------------------------------
  216. ;
  217. ; Postprocessing report
  218. ;
  219. ;    0       For/Next
  220. ;    1       While/EndWhile
  221. ;    9       If/Then or If/Then/Else
  222. ;    0       Select Case
  223. ;
  224. ;------------------------------------------------------------------------------
  225. ;                 AEGiS Corp - Break the routines, code against the machines!
  226. ;------------------------------------------------------------------------------
  227.