home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / pcboard / p_bank.zip / BANK.PPS < prev    next >
Text File  |  1993-05-23  |  6KB  |  173 lines

  1. ;*****************************************************************************
  2. ;*                                                                           *
  3. ;*                           THE TIME BANK V2.0                              *
  4. ;*                                                                           *
  5. ;*                                                                           *
  6. ;*                          Written by: Eyal Levi                            *
  7. ;*                                                                           *
  8. ;*                            started: 05-10-93                              *
  9. ;*                                                                           *
  10. ;*****************************************************************************
  11.  
  12. INTEGER  MAX_TIME_BALANCE,MAX_WITHDRAW,TIME_BALANCE,TIME_AVAILABLE
  13. INTEGER  A_DEPOSIT,A_WITHDRAW,MAX
  14. STRING   BANK_COMMAND, COUNT, USERTOKEN(3),ERR,ERR2
  15.  
  16. :BEGIN_MAIN
  17. Bank_Command=""
  18.   GETUSER
  19.   IF (LEFT(U_NOTES(4),4)<>"BANK") THEN
  20.      usertoken(1) = "BANK"
  21.      usertoken(2) = "TIME"
  22.      usertoken(3) = 0
  23.   ELSE
  24.      Tokenize U_NOTES(4)
  25.      Count = 1
  26.      gettoken usertoken(count)
  27.      WHILE (usertoken(count) != "") DO
  28.        count = count + 1
  29.        GETTOKEN usertoken(count)
  30.      ENDWHILE
  31.   ENDIF
  32.  
  33. ;IF (U_SEC<255) THEN
  34.                MAX_TIME_BALANCE = 30
  35.                MAX_WITHDRAW     = 15
  36.  
  37. ;ELSEIF (U_SEC=255) THEN
  38. ;           MAX_TIME_BALANCE = 300
  39. ;           MAX_WITHDRAW     = 150
  40. ;       ENDIF
  41.  
  42.  
  43. TIME_BALANCE     = usertoken(3)
  44.  
  45.  
  46. IF (TIME_BALANCE > MAX_WITHDRAW) THEN TIME_AVAILABLE = MAX_WITHDRAW
  47.    ELSE TIME_AVAILABLE = TIME_BALANCE
  48.   ENDIF
  49.  
  50. PRINTLN "@CLS@@X07"
  51. PRINTLN "@X07"
  52. PRINTLN "@X07"
  53. PRINTLN "@X07  @X77                     @X70┌─────────────────────────@X7F┐                         @X07"
  54. PRINTLN "@X0F @X08█@X78                     @X70│   @X7AJerusalem Time Bank   @X7F│                         @X07"
  55. PRINTLN "@X0F @X08█@X78                     @X70└@X7F─────────────────────────┘                         @X07"
  56. PRINTLN "@X0F @X08█@X78     @X70┌─────────────────────@X7F┐   @X70┌─────────────────────────────────────@X7F┐   @X07"
  57. PRINTLN "@X0F @X08█@X78     @X70│  @X7BD@X78)@X71eposit time      @X7F│   @X70│ @X7BIn your Account@X78: @X7E    @X78               @X7F│   @X07"
  58. PRINTLN "@X0F @X08█@X78     @X70│  @X7BW@X78)@X71ithdraw time     @X7F│   @X70│ @X79Maximum Bank Balance@X78: @X7E    @X78          @X7F│   @X07"
  59. PRINTLN "@X0F @X08█@X78     @X70│  @X7BH@X78)@X71elp!             @X7F│   @X70│                                     @X7F│   @X07"
  60. PRINTLN "@X0F @X08█@X78     @X70│                     @X7F│   @X70│ @X7BAvailable for Withdrawal@X78: @X7E    @X78      @X7F│   @X07"
  61. PRINTLN "@X0F @X08█@X78     @X70│  @X7BQ@X78)@X74uit to @X79J@X74B@X7AB@X78S      @X7F│   @X70│ @X79Maximum Withdrawal P/Day@X78: @X7E    @X78      @X7F│   @X07"
  62. PRINTLN "@X0F @X08█@X78     @X70└@X7F─────────────────────┘   @X70└@X7F─────────────────────────────────────┘   @X07"
  63. PRINTLN "@X0F @X08█@X78                                                                         @X07"
  64. PRINTLN "@X08 █@X78                                                                         @X07"
  65. PRINTLN "@X08 █@X78                                                                         @X07"
  66. PRINTLN "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀@X07"
  67.  
  68.  
  69. ANSIPOS 53,8
  70. PRINT "@X75"
  71. PRINT TIME_BALANCE
  72. PRINTLN " @X78Min@X07"
  73.  
  74.  
  75. ANSIPOS 58,9
  76. PRINT "@X75"
  77. PRINT MAX_TIME_BALANCE
  78. PRINTLN " @X78Min@X07"
  79.  
  80.  
  81. ANSIPOS 62,11
  82. PRINT "@X75"
  83. PRINT TIME_AVAILABLE
  84. PRINTLN " @X78Min@X07"
  85.  
  86.  
  87. ANSIPOS 62,12
  88. PRINT "@X75"
  89. PRINT MAX_WITHDRAW
  90. PRINTLN " @X78Min@X07"
  91.  
  92. ANSIPOS 0,19
  93.   INPUTSTR "(@X0C@TIMELEFT@ @X0Emin. left) Jerusalem BBS Time Bank ", Bank_Command, 0Eh, 1, MASK_ALNUM(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE
  94.  
  95.      IF (Bank_Command = "D") GOSUB DEPOSIT
  96.      IF (Bank_Command = "W") GOSUB WITHDRAW
  97.      IF (Bank_Command = "H") GOSUB HELP
  98.      IF (Bank_Command = "Q") GOTO END_PROGRAM
  99.      IF (Bank_Command = "") GOTO END_PROGRAM
  100.      GOTO BEGIN_MAIN
  101.  
  102.  
  103. :DEPOSIT
  104.  
  105. IF (TIME_BALANCE = MAX_TIME_BALANCE) THEN GOTO ERR_MAX
  106.  ENDIF
  107. A_DEPOSIT= ( MAX_TIME_BALANCE - TIME_BALANCE )
  108. INPUTSTR "Enter the Amount to Deposit :", A_DEPOSIT, 0Eh, 2, MASK_NUM(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE
  109. IF (A_DEPOSIT > ( MAX_TIME_BALANCE - TIME_BALANCE )) THEN GOTO ERR_TOO_MUCH
  110.   ENDIF
  111. usertoken(3) = usertoken(3) + A_DEPOSIT
  112. U_NOTES(4) = usertoken(1)+" "+usertoken(2)+" "+usertoken(3)
  113. err = A_DEPOSIT
  114. PRINTLN "@X0CDepositing @X0E"+err+"@X0E Min@X0C to Your Account"
  115. Log "Deposited: "+err+" Min",0
  116. PUTUSER U_NOTES(4)                  ; update bank
  117. ADJTIME -A_DEPOSIT                 ; update board time
  118. GOTO END_PROGRAM
  119.  
  120. :WITHDRAW
  121. IF (TIME_BALANCE = 0) THEN GOTO ERR_NO_BALANCE
  122.   ENDIF
  123. IF (TIME_AVAILABLE = 0 ) THEN GOTO ERR_W_NO_AVAIL
  124.   ENDIF
  125. IF ( TIME_BALANCE > MAX_WITHDRAW ) THEN A_WITHDRAW = MAX_WITHDRAW
  126.   ENDIF
  127. INPUTSTR "Enter the Amount to Withdraw :", A_WITHDRAW, 0Eh, 2, MASK_NUM(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE
  128. IF (A_WITHDRAW > MAX_WITHDRAW) THEN GOTO ERR_W_TOO_MUCH
  129.   ENDIF
  130. IF (A_WITHDRAW > TIME_BALANCE) THEN GOTO ERR_W_NO_AVAIL
  131.   ENDIF
  132.  
  133. usertoken(3) = usertoken(3) - A_WITHDRAW
  134. U_NOTES(4) = usertoken(1)+" "+usertoken(2)+" "+usertoken(3)
  135. err=A_WITHDRAW
  136. PRINT "@X0CWithdrawing @X0E "+err+" Min@X0C from Your Account"
  137. Log "Withdrawed: "+err+" Min",0
  138. PUTUSER U_NOTES(4)                  ; update bank
  139. ADJTIME A_WITHDRAW
  140. GOTO END_PROGRAM
  141.  
  142. :ERR_MAX
  143. Log "Attempted to Deposit When the bank was at Maximum",0
  144. PRINTLN "@X0CYour Bank Balace is at its Maximum!@X07@BEEP@"
  145. GOTO END_PROGRAM
  146.  
  147.  
  148. :ERR_TOO_MUCH
  149. err=A_DEPOSIT
  150. Log "Attempted to Deposit too much: " + err,0
  151. PRINTLN "@X0CThe Maximum You Can Deposit is:@X0B"+err+"Min @X07@BEEP@"
  152. GOTO END_PROGRAM
  153.  
  154. :ERR_W_NO_AVAIL
  155. :ERR_W_TOO_MUCH
  156. err = A_WITHDRAW
  157. Log "Attempted to Withdraw too much! :"+err ,0
  158. err = MAX_WITHDRAW
  159. PRINT "@X0CThe Maximum You Can Withdraw is @X0B"+err+" Min @X07@BEEP@"
  160. GOTO END_PROGRAM
  161.  
  162.  
  163. :ERR_NO_BALANCE
  164. Log "Attempted to Withdraw : No Time in the Bank!",0
  165. PRINT "@X0CYou Must deposit time in the Bank in order to Withdraw@X07@BEEP@"
  166. GOTO END_PROGRAM
  167.  
  168. :HELP
  169. IF (EXIST(PPEPATH() + "H_BANK")) DISPFILE PPEPATH() + "H_BANK", LANG + SEC + GRAPH
  170. GOTO BEGIN_MAIN
  171.  
  172. :END_PROGRAM
  173.