home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pcboard
/
p_bank.zip
/
BANK.PPS
< prev
next >
Wrap
Text File
|
1993-05-23
|
6KB
|
173 lines
;*****************************************************************************
;* *
;* THE TIME BANK V2.0 *
;* *
;* *
;* Written by: Eyal Levi *
;* *
;* started: 05-10-93 *
;* *
;*****************************************************************************
INTEGER MAX_TIME_BALANCE,MAX_WITHDRAW,TIME_BALANCE,TIME_AVAILABLE
INTEGER A_DEPOSIT,A_WITHDRAW,MAX
STRING BANK_COMMAND, COUNT, USERTOKEN(3),ERR,ERR2
:BEGIN_MAIN
Bank_Command=""
GETUSER
IF (LEFT(U_NOTES(4),4)<>"BANK") THEN
usertoken(1) = "BANK"
usertoken(2) = "TIME"
usertoken(3) = 0
ELSE
Tokenize U_NOTES(4)
Count = 1
gettoken usertoken(count)
WHILE (usertoken(count) != "") DO
count = count + 1
GETTOKEN usertoken(count)
ENDWHILE
ENDIF
;IF (U_SEC<255) THEN
MAX_TIME_BALANCE = 30
MAX_WITHDRAW = 15
;ELSEIF (U_SEC=255) THEN
; MAX_TIME_BALANCE = 300
; MAX_WITHDRAW = 150
; ENDIF
TIME_BALANCE = usertoken(3)
IF (TIME_BALANCE > MAX_WITHDRAW) THEN TIME_AVAILABLE = MAX_WITHDRAW
ELSE TIME_AVAILABLE = TIME_BALANCE
ENDIF
PRINTLN "@CLS@@X07"
PRINTLN "@X07"
PRINTLN "@X07"
PRINTLN "@X07 @X77 @X70┌─────────────────────────@X7F┐ @X07"
PRINTLN "@X0F @X08█@X78 @X70│ @X7AJerusalem Time Bank @X7F│ @X07"
PRINTLN "@X0F @X08█@X78 @X70└@X7F─────────────────────────┘ @X07"
PRINTLN "@X0F @X08█@X78 @X70┌─────────────────────@X7F┐ @X70┌─────────────────────────────────────@X7F┐ @X07"
PRINTLN "@X0F @X08█@X78 @X70│ @X7BD@X78)@X71eposit time @X7F│ @X70│ @X7BIn your Account@X78: @X7E @X78 @X7F│ @X07"
PRINTLN "@X0F @X08█@X78 @X70│ @X7BW@X78)@X71ithdraw time @X7F│ @X70│ @X79Maximum Bank Balance@X78: @X7E @X78 @X7F│ @X07"
PRINTLN "@X0F @X08█@X78 @X70│ @X7BH@X78)@X71elp! @X7F│ @X70│ @X7F│ @X07"
PRINTLN "@X0F @X08█@X78 @X70│ @X7F│ @X70│ @X7BAvailable for Withdrawal@X78: @X7E @X78 @X7F│ @X07"
PRINTLN "@X0F @X08█@X78 @X70│ @X7BQ@X78)@X74uit to @X79J@X74B@X7AB@X78S @X7F│ @X70│ @X79Maximum Withdrawal P/Day@X78: @X7E @X78 @X7F│ @X07"
PRINTLN "@X0F @X08█@X78 @X70└@X7F─────────────────────┘ @X70└@X7F─────────────────────────────────────┘ @X07"
PRINTLN "@X0F @X08█@X78 @X07"
PRINTLN "@X08 █@X78 @X07"
PRINTLN "@X08 █@X78 @X07"
PRINTLN "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀@X07"
ANSIPOS 53,8
PRINT "@X75"
PRINT TIME_BALANCE
PRINTLN " @X78Min@X07"
ANSIPOS 58,9
PRINT "@X75"
PRINT MAX_TIME_BALANCE
PRINTLN " @X78Min@X07"
ANSIPOS 62,11
PRINT "@X75"
PRINT TIME_AVAILABLE
PRINTLN " @X78Min@X07"
ANSIPOS 62,12
PRINT "@X75"
PRINT MAX_WITHDRAW
PRINTLN " @X78Min@X07"
ANSIPOS 0,19
INPUTSTR "(@X0C@TIMELEFT@ @X0Emin. left) Jerusalem BBS Time Bank ", Bank_Command, 0Eh, 1, MASK_ALNUM(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE
IF (Bank_Command = "D") GOSUB DEPOSIT
IF (Bank_Command = "W") GOSUB WITHDRAW
IF (Bank_Command = "H") GOSUB HELP
IF (Bank_Command = "Q") GOTO END_PROGRAM
IF (Bank_Command = "") GOTO END_PROGRAM
GOTO BEGIN_MAIN
:DEPOSIT
IF (TIME_BALANCE = MAX_TIME_BALANCE) THEN GOTO ERR_MAX
ENDIF
A_DEPOSIT= ( MAX_TIME_BALANCE - TIME_BALANCE )
INPUTSTR "Enter the Amount to Deposit :", A_DEPOSIT, 0Eh, 2, MASK_NUM(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE
IF (A_DEPOSIT > ( MAX_TIME_BALANCE - TIME_BALANCE )) THEN GOTO ERR_TOO_MUCH
ENDIF
usertoken(3) = usertoken(3) + A_DEPOSIT
U_NOTES(4) = usertoken(1)+" "+usertoken(2)+" "+usertoken(3)
err = A_DEPOSIT
PRINTLN "@X0CDepositing @X0E"+err+"@X0E Min@X0C to Your Account"
Log "Deposited: "+err+" Min",0
PUTUSER U_NOTES(4) ; update bank
ADJTIME -A_DEPOSIT ; update board time
GOTO END_PROGRAM
:WITHDRAW
IF (TIME_BALANCE = 0) THEN GOTO ERR_NO_BALANCE
ENDIF
IF (TIME_AVAILABLE = 0 ) THEN GOTO ERR_W_NO_AVAIL
ENDIF
IF ( TIME_BALANCE > MAX_WITHDRAW ) THEN A_WITHDRAW = MAX_WITHDRAW
ENDIF
INPUTSTR "Enter the Amount to Withdraw :", A_WITHDRAW, 0Eh, 2, MASK_NUM(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE
IF (A_WITHDRAW > MAX_WITHDRAW) THEN GOTO ERR_W_TOO_MUCH
ENDIF
IF (A_WITHDRAW > TIME_BALANCE) THEN GOTO ERR_W_NO_AVAIL
ENDIF
usertoken(3) = usertoken(3) - A_WITHDRAW
U_NOTES(4) = usertoken(1)+" "+usertoken(2)+" "+usertoken(3)
err=A_WITHDRAW
PRINT "@X0CWithdrawing @X0E "+err+" Min@X0C from Your Account"
Log "Withdrawed: "+err+" Min",0
PUTUSER U_NOTES(4) ; update bank
ADJTIME A_WITHDRAW
GOTO END_PROGRAM
:ERR_MAX
Log "Attempted to Deposit When the bank was at Maximum",0
PRINTLN "@X0CYour Bank Balace is at its Maximum!@X07@BEEP@"
GOTO END_PROGRAM
:ERR_TOO_MUCH
err=A_DEPOSIT
Log "Attempted to Deposit too much: " + err,0
PRINTLN "@X0CThe Maximum You Can Deposit is:@X0B"+err+"Min @X07@BEEP@"
GOTO END_PROGRAM
:ERR_W_NO_AVAIL
:ERR_W_TOO_MUCH
err = A_WITHDRAW
Log "Attempted to Withdraw too much! :"+err ,0
err = MAX_WITHDRAW
PRINT "@X0CThe Maximum You Can Withdraw is @X0B"+err+" Min @X07@BEEP@"
GOTO END_PROGRAM
:ERR_NO_BALANCE
Log "Attempted to Withdraw : No Time in the Bank!",0
PRINT "@X0CYou Must deposit time in the Bank in order to Withdraw@X07@BEEP@"
GOTO END_PROGRAM
:HELP
IF (EXIST(PPEPATH() + "H_BANK")) DISPFILE PPEPATH() + "H_BANK", LANG + SEC + GRAPH
GOTO BEGIN_MAIN
:END_PROGRAM