Compucolor.org – Virtual Media

Listing of file='EXPEND.BAS;01' on disk='vmedia/home_budget_1-sector.ccvf'

0 REM
1 REM
54 GOTO 350
56 REM
58 REM
60 POKE 33278,0
62 IF PEEK (33278)= 0GOTO 62
64 IF PEEK (33278)= 89THEN PRINT "ES":Q$= "Y":RETURN
66 IF PEEK (33278)= 78THEN PRINT "O":Q$= "N":RETURN
68 PLOT 7,26,32,26:GOTO 60
70 REM
72 REM
74 POKE 33278,0
76 Y= PEEK (33278)
78 IF Y= 0GOTO 76
80 Y$= CHR$ (Y):RETURN
82 REM
84 REM
86 PO= PEEK (32940)+ PEEK (32941)* 256+ 1
88 SA= 28672+ 128* Y+ X+ X
90 ZZ= INT (SA/ 256):POKE PO+ 3,SA- 256* ZZ:POKE PO+ 4,ZZ
92 SA= SA- 2
94 POKE PO+ 1,ASC (NA$)
96 FI$= ""
98 PLOT 3,X,Y
100 KB= CALL (ML)
102 IF KB= 9OR PEEK (PO)= 0THEN RETURN
104 FOR I= 2TO PEEK (PO)* 2STEP 2
106 FI$= FI$+ CHR$ (PEEK (SA+ I)):NEXT I
108 RETURN
112 REM
113 REM
114 RH$= STR$ ((1000* (MO* SGN (MO)- INT (MO* SGN (MO)))+ 1005)/ 10)
115 IF VAL (RH$)> = 200THEN MO= (MO* SGN (MO)+ 1)* SGN (MO)
116 LH$= STR$ (INT (MO* SGN (MO))* SGN (MO)):IF VAL (LH$)= 0AND SGN (MO)= - 1THEN LH$= "-0"
117 LH$= "$"+ LH$
118 IF LEN (LH$)> = 7THEN 120
119 LH$= " "+ LH$:GOTO 118
120 RH$= MID$ (RH$,3,2):MO$= LH$+ "."+ RH$:RETURN
130 PLOT 3,0,31,11:INPUT "ENTER START RECORD OR <RETURN> ";ST:IF ST= 0THEN ST= 2
140 RETURN
150 PLOT 3,0,31,11:PRINT "EDIT ANY RECORDS (Y/N)? ";:GOSUB 62:RETURN
160 PLOT 3,0,31,11:INPUT "ENTER RECORD NUMBER ";RREC:IF RREC> (NREC- 1)OR RREC< 2THEN PLOT 7:GOTO 160
170 PLOT 3,0,31,11:PRINT "ENTER CORRECTED DATA OR <RETURN> ":RETURN
180 PLOT 3,0,31,11:PRINT "EDIT ANY MORE (Y/N)? ";:GOSUB 60:RETURN
190 ROW= (RREC- ST+ 2- (INT ((RREC- ST+ 2- 2)/ 25)* 25))+ 2:RETURN
200 POKE 33278,0
210 Z1= PEEK (33278)
220 IF Z1= 0GOTO 210
230 RETURN
300 REM
305 REM
310 REM
350 PLOT 27,4:PRINT "RUN FIELDS":PLOT 27,27
360 CLEAR 4000:DD= PEEK (65535):DSK$= MID$ (STR$ (DD- 1),2)+ ":"
365 IF DD= 1THEN PLOT 12,14,3,10,15:INPUT "LOAD DATA DISK AND HIT <RETURN> ";A
370 DIM INC(7,2),EX(15,2),BANK(5,2),INC$(7),EX$(15),BANK$(5),BPNTR$(5),UN$(19),SA$(9),EA$(63)
380 UL$= "---------------------------------------------------------------"
390 STRMTH$= "  JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
395 PLOT 12,15,3,0,15:PRINT "DO YOU REQUIRE AUTOMATIC PAYMENT OF REGULAR ALLOTMENTS? ";:GOSUB 60
400 IF Q$= "Y"THEN GOSUB 8000
420 PLOT 12,14,3,28,1:PRINT "EXPENDITURE":PLOT 15
430 PLOT 3,13,5:PRINT "OPTIONS ARE:"
440 PLOT 3,13,7:PRINT "1. REGISTER AN EXPENDITURE"
450 PLOT 3,13,8:PRINT "2. RECORD COMPLETION OF A LOAN"
460 PLOT 3,13,9:PRINT "3. DISPLAY ACCOUNTS DUE"
465 PLOT 3,13,10:PRINT "4. DISPLAY BANK BALANCES"
467 PLOT 3,13,11:PRINT "5. DISPLAY FREE RECORDS LEFT"
468 PLOT 3,13,12:PRINT "6. ADD A BANK ALLOTMENT"
469 PLOT 3,13,13:PRINT "7. EDIT A BANK ALLOTMENT"
470 PLOT 3,13,15:PRINT "9. END"
480 PLOT 3,5,22:PRINT "PLEASE MAKE A SELECTION....";:GOSUB 74:ANS= VAL (Y$)
490 IF NOT ((ANS> = 1AND ANS< = 7)OR ANS= 9)THEN PLOT 7:GOTO 420
500 ON ANSGOSUB 1000,2000,4000,5000,6000,7000,7500,420,3000
510 GOTO 420
980 REM
990 REM
1000 FILE "R",1,DSK$+ "EXPTIT",1
1010 FILE "R",2,DSK$+ "EXPEND",1
1020 GET 1,1,5;NREC
1025 IF NREC= 2THEN PLOT 7,12,3,10,14:PRINT "NO CURRENT ACCOUNTS!!":FOR I= 1TO 1000:NEXT :GOTO 1880
1030 PLOT 12,3,1,1:PRINT "CURRENT ACCOUNTS ARE:"
1040 FOR REC= 2TO NREC- 1
1050 GET 1,REC;NME$[12]
1060 IF REC< = 15THEN PLOT 3,0,REC+ 1:PRINT REC- 1;" ";NME$;"":GOTO 1100
1065 IF REC= 17THEN PLOT 3,16,RE- 13:PRINT REC- 1;" CASH W'DRAWAL":GOTO 1100
1070 IF REC< = 29THEN PLOT 3,16,REC- 13:PRINT REC- 1;" ";NME$;"":GOTO 1100
1080 IF REC< = 43THEN PLOT 3,32,REC- 27:PRINT REC- 1;" ";NME$;"":GOTO 1100
1090 PLOT 3,48,REC- 41:PRINT REC- 1;" ";NME$;""
1100 NEXT REC
1105 GET 2,1;ENXT
1110 PLOT 3,5,25,11:INPUT "SELECT ACCOUNT NUMBER OR <RET>....";ACNUM$
1120 IF ACNUM$= ""THEN 1880
1130 IF VAL (ACNUM$)< 1OR VAL (ACNUM$)> NREC- 2THEN PLOT 7:GOTO 1110
1135 IF SEL= 2THEN 2010
1140 GET 1,VAL (ACNUM$)+ 1;NME$[12],DUMMY$[12],BAL,DDATE$[9]
1145 IF VAL (ACNUM$)= 16THEN 1210
1150 PLOT 3,5,30,11:PRINT "RECORD OR PAY A BILL ";:GOSUB 74
1160 IF Y$< > "R"AND Y$< > "P"THEN PLOT 7:GOTO 1150
1170 REM
1180 IF Y$= "P"THEN 1210
1190 RP= 1:GOSUB 10000:PRINT :IP$= "I":CHNUM= 0:BAL= BAL+ AMT:GOTO 1820
1200 REM
1210 RP= 0:GOSUB 11000:PRINT
1220 PLOT 12,3,5,14:PRINT "PAYMENT FROM BANK OR SAVINGS ACCOUNT (Y/N)? ";:GOSUB 60
1230 IF Q$= "N"THEN 1431
1240 REM
1250 FILE "R",3,DSK$+ "BNKTIT",1
1260 FILE "R",4,DSK$+ "TRANS",1
1270 GET 3,1;NBANK:GET 4,1;NTRANS
1280 IF NBANK= 2THEN PLOT 7,3,5,16:PRINT "NO BANK ACCOUNTS ON FILE":FOR I= 1TO 1000:NEXT I:FILE "C",3,4:GOTO 1860
1290 PLOT 12,3,1,1:PRINT "CURRENT ACCOUNTS ARE:"
1300 FOR REC= 2TO NBANK- 1
1310 GET 3,REC;BNAME$[12]:PLOT 3,5,REC+ 3:PRINT REC- 1,"";BNAME$;""
1320 NEXT REC
1330 PLOT 3,0,30,11:PRINT "SELECT ACCOUNT NUMBER ";:GOSUB 74
1340 PRINT :IF VAL (Y$)< 1OR VAL (Y$)> (NBANK- 2)THEN PLOT 7:GOTO 1330
1350 BACCT$= Y$
1360 GET 3,VAL (BACCT$)+ 1;BNAME$[12],BDETAILS$[13],BBAL,LBDATE$[9]:D7$= LB$:GOSUB 14000:LB= D7
1370 GOSUB 12000:PRINT
1380 PUT 4,NTRANS;BACCT$[2],DATE$[9],NME$[12],CHNUM,AMT,"W"[1]
1390 NTRANS= NTRANS+ 1:PUT 4,1;NTRANS
1400 BBAL= BBAL- AMT:DETAIL$= BNAME$:D7$= DA$:GOSUB 14000:LJ= D7:IF LB< LJTHEN LB$= DA$
1410 PUT 3,VAL (BACCT$)+ 1,26;BBAL,LB$[9]
1420 FILE "C",3,4
1421 PLOT 12,3,5,14:PRINT "DO YOU REQUIRE A CHEQUE PRINTED (Y/N)? ";:GOSUB 60:IF Q$= "N"THEN 1810
1423 POKE 33289,132:FILE "R",3,DSK$+ "PRNTER",1:GET 3,1;PRNTER$[7],EMPH$[4],NEMPH$[4],SOPZERO$[4],PAPEROWT$[4],RESET$[4],COMPRCHAR$[4]
1424 FILE "C",3
1425 PLOT 3,5,16:INPUT "INSERT CHEQUE & TURN ON PRINTER ";A:GOSUB 13000:PRINT PRNTER$;EMPH$;"                                                ";
1427 PRINT SO$;DATE$;NEMPH$;COMPRCHAR$:PRINT :PRINT TAB( 5)PYEE$:PRINT :AM$= STR$ (AMT):AM$= MID$ (AM$,2):GOSUB 30000:PRINT CH$;:MO= AMT:GOSUB 114:PRINT TAB( 85)MID$ (MO$,2)
1429 PRINT :PRINT :PRINT :PRINT :PRINT :PRINT RESET$:POKE 33265,0:GOTO 1810
1431 PLOT 12,3,5,14:PRINT "PAYMENT BY CREDIT CARD (Y/N)? ";:GOSUB 60
1434 IF Q$= "N"THEN 1800
1440 REM
1450 FILE "R",3,DSK$+ "LIABS",1
1460 FILE "R",4,DSK$+ "INCOME",1
1470 GET 3,1;NLIAB:GET 4,1;NTRANS
1480 IF NLIAB= 2THEN PLOT 7,3,5,16:PRINT "NO LIABILITIES ON FILE":FOR I= 1TO 1000:NEXT I:FILE "C",3,4:GOTO 1860
1485 PLOT 12,3,1,1:PRINT "CURRENT ACCOUNTS ARE:"
1490 FOR REC= 2TO NLIAB- 1
1495 GET 3,REC;LIABAC$[20]:PLOT 3,5,REC+ 3:PRINT REC- 1,"";LIABAC$;""
1500 NEXT REC
1530 PLOT 3,0,30,11:PRINT "SELECT ACCOUNT NUMBER ";:GOSUB 74
1540 PRINT :IF VAL (Y$)< 1OR VAL (Y$)> (NLIAB- 2)THEN PLOT 7:GOTO 1530
1550 BACCT$= Y$
1560 GET 3,VAL (BACCT$)+ 1;LIABAC$[20],BBAL
1580 PUT 4,NTRANS;" 2"[2],DATE$[9],LIAC$[12],AMT
1590 NTRANS= NTRANS+ 1:PUT 4,1;NTRANS
1600 BBAL= BBAL+ AMT:DETAIL$= LIABAC$
1610 REM
1620 FILE "C",3,4:GOTO 1810
1680 REM
1800 IF VAL (ACNUM$)= 16THEN 1220
1804 DETAIL$= "CASH":CHNUM= 0
1806 GET 1,17,25;CBAL:CBAL= CBAL+ AMT:PUT 1,17,25;CBAL
1810 IP$= "P":BAL= BAL- AMT
1820 PUT 2,ENXT;ACNUM$[2],DATE$[9],DETAILS$[12],CHNUM,IP$[1],AMT
1830 ENXT= ENXT+ 1:IF RP= 0THEN 1850
1840 PLOT 3,0,31,11:PRINT "DO YOU WANT TO PAY THIS BILL NOW (Y/N)? ";:GOSUB 60:IF Q$= "Y"THEN 1210
1842 IF Q$< > "N"THEN PLOT 7:GOTO 1840
1850 PUT 2,1;ENXT:PUT 1,VAL (ACNUM$)+ 1,25;BAL,DDATE$[9]
1860 PRINT :PLOT 15,12,3,5,14,11:PRINT "RECORD OR PAY ANY MORE BILLS (Y/N)? ";:GOSUB 60
1870 IF Q$= "Y"THEN 1030
1880 FILE "C",1,2
1890 RETURN
1970 REM
1980 REM
1990 REM
2000 SEL= 2:GOTO 1000
2010 PLOT 3,5,26,11:PRINT "ENTER 'Y' TO RECORD THE FINALIZATION OF THIS LOAN: ";:GOSUB 74:PRINT :IF Y$< > "Y"THEN PLOT 7:GOTO 2030
2015 PUT 1,VAL (ACNUM$)+ 1,38;"Y"[1]
2030 FILE "C",1,2:PRINT :PLOT 15,12,3,5,14,11:PRINT "DONE: RECORD ANY MORE LOAN COMPLETIONS (Y/N)? ";:GOSUB 60
2040 IF Q$= "Y"THEN 2000
2060 SEL= 0:RETURN
3000 PRINT :PLOT 12,3,5,12:INPUT "LOAD APPROPRIATE PROGRAM DISK AND HIT <RETURN> ";A:LOAD "MENU":RUN
3970 REM
3980 REM
3990 REM
4000 SUM= 0:FLAG= 0:PLOT 12,3,0,10:INPUT "ENTER TODAY'S DATE (D.M.YY): ";TD$:IF TD$= ""THEN PLOT 7,28,11:GOTO 4000
4010 GOSUB 21000:IF ERR= 1THEN PLOT 7:GOTO 4000
4015 D7$= TD$:GOSUB 14000:SJUL= D7
4020 INPUT "WITHIN HOW MANY DAYS? (OR <RET>): ";DAYS:IF DAYS= 0THEN FLAG= 1
4030 PRINT "";TAB( 24)"ACCOUNTS DUE":PRINT TAB( 24)"------------":PRINT
4040 PRINT "";TAB( 10)"NAME              BALANCE     DUE DATE":PRINT "";UL$:PRINT
4050 FILE "R",1,DSK$+ "EXPTIT",1:GET 1,1,5;NREC:FOR REC= 2TO NREC- 1:GET 1,REC;NAME$[12],DUMMY$[12],BAL,DUEDATE$[9]:IF BAL< = 0OR REC= 17THEN 4090
4060 IF FLAG= 1THEN 4080
4070 D7$= DUEDATE$:GOSUB 14000:IF SJUL+ DAYS< = D7THEN 4090
4080 PRINT "";TAB( 10)NAME$;"";:MO= BAL:GOSUB 114:PRINT TAB( 25)MO$;"";TAB( 40)DUEDATE$:SUM= SUM+ BAL
4090 NEXT REC
4092 GET 1,17,25;BAL:PRINT :PRINT TAB( 10)"PROGRESSIVE CASH EXPENDITURE...........";:MO= - BAL:GOSUB 114:PRINT MO$:PRINT :FILE "C",1
4100 PRINT "";UL$:PRINT "";TAB( 10)"TOTAL";:MO= SUM:GOSUB 114:PRINT TAB( 25)"";MO$
4110 PRINT "";UL$;""
4130 PRINT :INPUT "HIT <RETURN> TO CONTINUE: ";A:RETURN
4150 REM
4985 REM
4990 REM
4995 REM
5000 FILE "R",1,DSK$+ "BNKTIT",1
5010 REC= 1:GET 1,REC;NREC
5020 PRINT :PLOT 12,27,24,3,20,0:PRINT "BANK BALANCES":PLOT 3,20,2:PRINT "-------------"
5030 IF NREC< = 2THEN 5090
5040 PRINT :PRINT :PRINT "     NAME         IDENT           BALANCE LAST T'ACTION DATE":PRINT :PRINT "";UL$;"":PRINT :PRINT
5050 FOR REC= 2TO NREC- 1
5060 GET 1,REC;NAME$[12],NUMBER$[13],BAL,DATE$[9]
5070 PRINT ""NAME$;"   ";NUMBER$;"   ";:MO= BAL:GOSUB 114:PRINT MO$;"   ";DATE$
5080 NEXT REC
5090 PRINT :PRINT "";UL$;"":FILE "C",1
5095 PRINT :PRINT :INPUT "HIT <RETURN> TO CONTINUE: ";A:RETURN
5100 REM
6000 PRINT :PLOT 12,27,11,3,20,0:PRINT "FREE RECORDS":PLOT 3,20,2:PRINT "============"
6010 PRINT :PRINT :PRINT " FILE       DESCRIPTION          TOTAL     USED   FREE":FOR I= 1TO 54:PRINT "-";:NEXT :PRINT :PRINT
6020 FILE "R",1,"INCTIT",1:GET 1,1;A:PRINT "INCTIT INCOME TITLES";TAB( 33)19;TAB( 43)"";A- 1;TAB( 50)"";19- A+ 1:FILE "C",1
6030 FILE "R",1,"INCOME",1:GET 1,1;A:PRINT "INCOME INCOME DETAILS";TAB( 33)66;TAB( 43)"";A- 1;TAB( 50)"";66- A+ 1:FILE "C",1
6040 FILE "R",1,"EXPTIT",1:GET 1,1,5;A:PRINT "EXPTIT EXPENDITURE TITLES";TAB( 33)64;TAB( 43)"";A- 1;TAB( 50)"";64- A+ 1:FILE "C",1
6050 FILE "R",1,"EXPEND",1:GET 1,1;A:PRINT "EXPEND EXPENDITURE DETAILS";TAB( 33)600;TAB( 43)"";A- 1;TAB( 50)"";600- A+ 1:FILE "C",1
6060 FILE "R",1,"BNKTIT",1:GET 1,1;A:PRINT "BNKTIT BANK & SAVINGS TITLES";TAB( 33)10;TAB( 43)"";A- 1;TAB( 50)"";10- A+ 1:FILE "C",1
6070 FILE "R",1,"TRANS",1:GET 1,1;A:PRINT "TRANS  BANK TRANSACTIONS";TAB( 33)400;TAB( 43)"";A- 1;TAB( 50)"";400- A+ 1:FILE "C",1
6080 FILE "R",1,"PAYS",1:GET 1,1;A:PRINT "PAYS   PAY DETAILS";TAB( 33)52;TAB( 43)"";A- 1;TAB( 50)"";52- A+ 1:FILE "C",1
6090 FILE "R",1,"PAYTIT",1:GET 1,1;A:PRINT "PAYTIT PAY (INCOME) TITLES";TAB( 33)8;TAB( 43)"";A- 1;TAB( 50)"";8- A+ 1:FILE "C",1
6100 FILE "R",1,"ASSETS",1:GET 1,1;A:PRINT "ASSETS ASSET DETAILS";TAB( 33)24;TAB( 43)"";A- 1;TAB( 50)"";24- A+ 1:FILE "C",1
6110 FILE "R",1,"LIABS",1:GET 1,1;A:PRINT "LIABS  LIABILITY DETAILS";TAB( 33)24;TAB( 43)"";A- 1;TAB( 50)"";24- A+ 1:FILE "C",1
6114 PRINT :PRINT "";:FOR I= 1TO 54:PRINT "=";:NEXT :PRINT
6120 PRINT :PRINT :PRINT :INPUT "HIT <RETURN> TO CONTINUE: ";A:RETURN
6990 REM
7000 FILE "R",1,DSK$+ "BNKTIT",1
7020 GET 1,1;NBANK
7030 IF NBANK= 2THEN PLOT 7,3,5,16:PRINT "NO BANK ACCOUNTS ON FILE":FOR I= 1TO 1000:NEXT I:FILE "C",1,2:GOTO 7310
7040 PLOT 12,3,1,1:PRINT "CURRENT SAVINGS ACCOUNTS ARE:"
7050 FOR REC= 2TO NBANK- 1
7060 GET 1,REC;BNAME$[12]:PLOT 3,5,REC+ 3:PRINT REC- 1,"";BNAME$;""
7070 NEXT REC
7080 PLOT 3,0,30,11:PRINT "SELECT ACCOUNT NUMBER OR <RET> TO ABORT ";:GOSUB 74:IF VAL (Y$)= 0THEN FILE "C",1:GOTO 7310
7090 PRINT :IF VAL (Y$)< 1OR VAL (Y$)> (NBANK- 2)THEN PLOT 7:GOTO 7080
7100 BACCT$= " "+ Y$:FILE "C",1
7110 FILE "R",1,DSK$+ "EXPTIT",1
7130 GET 1,1,5;NREC
7140 IF NREC= 2THEN PLOT 7,12,3,10,14:PRINT "NO CURRENT ACCOUNTS!!":FOR I= 1TO 1000:NEXT :FILE "C",1:GOTO 7310
7150 PLOT 12,3,1,1:PRINT "CURRENT EXPENDITURE ACCOUNTS ARE:"
7160 FOR REC= 2TO NREC- 1
7170 GET 1,REC;NME$[12]
7180 IF REC< = 15THEN PLOT 3,0,REC+ 1:PRINT REC- 1;" ";NME$;"":GOTO 7230
7190 IF REC= 17THEN 7230
7200 IF REC< = 29THEN PLOT 3,16,REC- 13:PRINT REC- 1;" ";NME$;"":GOTO 7230
7210 IF REC< = 43THEN PLOT 3,32,REC- 27:PRINT REC- 1;" ";NME$;"":GOTO 7230
7220 PLOT 3,48,REC- 41:PRINT REC- 1;" ";NME$;""
7230 NEXT REC
7250 PLOT 3,5,25,11:INPUT "SELECT ACCOUNT NUMBER OR <RET> TO ABORT....";ACNUM$
7260 IF ACNUM$= ""THEN FILE "C",1:GOTO 7310
7270 IF VAL (ACNUM$)< 1OR VAL (ACNUM$)> NREC- 2OR VAL (AC$)= 16THEN PLOT 7:GOTO 7150
7272 IF LEN (AC$)< 2THEN AC$= " "+ AC$
7275 FILE "C",1
7280 GOSUB 15010
7290 FILE "R",1,"ALLOTS",1:GET 1,1;NREC:IF NREC= 14THEN PLOT 7,3,0,31,11:PRINT "YOU HAVE USED YOUR QUOTA OF 13 RECORDS":FOR I= 1TO 1000:NEXT :GOTO 7310
7300 PUT 1,NREC;AC$[2],BA$[2],AMT,SD$[9],FRQ$[2]:NR= NR+ 1:PUT 1,1;NR:FILE "C",1
7310 RETURN
7320 REM
7480
7490 REM
7500 FILE "R",1,DSK$+ "BNKTIT",1:GET 1,1;NR:IF NR< = 2THEN FILE "C",1:PLOT 7,3,0,31,11:PRINT "NO BANK ACCOUNTS ON FILE":FOR I= 1TO 1000:NEXT :GOTO 7870
7510 FOR I= 2TO NR- 1:GET 1,I;SA$(I- 1)[12]:NEXT I
7520 FILE "C",1
7530 FILE "R",1,"EXPTIT",1:GET 1,1,5;NR
7540 FOR I= 2TO NR- 1:GET 1,I;EA$(I- 1)[12]:NEXT I:FILE "C",1
7550 FILE "R",1,"ALLOTS",1:GET 1,1;NREC
7560 IF NREC< = 2THEN PLOT 7,3,0,31,11:PRINT "NO ALLOTMENTS RECORDED":FOR I= 1TO 1000:NEXT :GOTO 7870
7570 PLOT 12,3,0,1,27,24:PRINT "   BANK ACCOUNT      EXPEND. ACCT."
7580 PLOT 3,0,2:PRINT "RECNO  NAME          NO  NAME              AMOUNT   DATE    FRQ"
7590 SCREEN= 2:FOR I= 4TO 28:PLOT 3,1,I,11:NEXT I
7600 FOR REC= 2TO NREC- 1
7610 GET 1,REC;AC$[2],BA$[2],AMT,SD$[9],FRQ$[2]:AC= VAL (AC$):BA= VAL (BA$)
7620 PLOT 3,0,SCREEN+ 4:PRINT ""REC;:PLOT 3,3,SCREEN+ 4:PRINT ""BA$;" (";SA$(BA);") ";AC$;" (";EA$(AC);") ";:MO= AMT:GOSUB 114:PRINT MO$;" ";SD$;" ";FRQ$
7630 SCREEN= SCREEN+ 1
7640 NEXT REC
7650 GOSUB 150
7660 IF Q$= "N"THEN FILE "C",1:GOTO 7870
7670 GOSUB 160
7680 GET 1,RREC;AC$[2],BA$[2],AMT,SD$[9],FRQ$[2]:AC= VAL (AC$):BA= VAL (BA$)
7690 GOSUB 190:PLOT 3,3,ROW:PRINT "";BA$;"":PLOT 3,3,ROW:GOSUB 200:IF Z1= 13THEN 7710
7700 BA$= " "+ CHR$ (Z1):BA= VAL (BA$)
7710 PLOT 3,3,ROW:PRINT BA$;" (";SA$(BA);")"
7720 PLOT 3,21,ROW:PRINT "";AC$;"":PLOT 3,21,ROW:GOSUB 200:IF Z1= 13THEN 7740
7730 Z1$= CHR$ (Z1):INPUT "";A$:AC$= Z1$+ A$:AC= VAL (AC$)
7735 IF LEN (AC$)< 2THEN AC$= " "+ AC$
7740 PLOT 3,21,ROW:PRINT AC$;" (";EA$(AC);")"
7750 MO= AMT:GOSUB 114:PLOT 3,39,ROW:PRINT "";MO$;"":PLOT 3,39,ROW:GOSUB 200:IF Z1= 13THEN 7770
7760 Z1$= CHR$ (Z1):INPUT "";A$:AMT= VAL (Z1$+ A$):MO= AMT:GOSUB 114
7770 PLOT 3,39,ROW:PRINT MO$
7780 PLOT 3,50,ROW:PRINT "";SD$;"":PLOT 3,50,ROW:GOSUB 200:IF Z1= 13THEN 7810
7790 Z1$= CHR$ (Z1):INPUT "";A$:TD$= Z1$+ A$:GOSUB 21000:IF ERR= 1THEN PLOT 7:GOTO 7780
7800 SD$= TD$
7810 PLOT 3,50,ROW:PRINT SD$
7820 PLOT 3,60,ROW:PRINT "";FRQ$;"":PLOT 3,60,ROW:GOSUB 200:IF Z1= 13THEN 7840
7830 Z1$= CHR$ (Z1):INPUT "";A$:FRQ$= Z1$+ A$
7835 IF LEN (FR$)< 2THEN FR$= " "+ FR$
7840 PLOT 3,60,ROW:PRINT FRQ$
7850 PUT 1,RREC;AC$[2],BA$[2],AMT,SD$[9],FRQ$[2]
7860 GOSUB 180:GOTO 7660
7870 RETURN
7880 REM
7890
7980
7990
8000 PLOT 3,0,31,11:INPUT "ENTER TODAY'S DATE: ";TD$:GOSUB 21000:D7$= TD$:GOSUB 14000:JTD= D7:PLOT 12,3,28,14:PRINT "WORKING"
8010 FILE "R",1,"ALLOTS",1:GET 1,1;NR:IF NR< = 2THEN PLOT 7,3,0,31,11:PRINT "NO ALLOTMENTS RECORDED":FOR I= 1TO 3000:NEXT :GOTO 8360
8022 FILE "R",2,"BNKTIT",1:GET 2,1;NB:FOR I= 2TO NB- 1:GET 2,I;SA$(I- 1)[12]:NEXT I:FILE "C",2
8024 FILE "R",2,"EXPTIT",1:GET 2,1,5;NB:FOR I= 2TO NB- 1:GET 2,I;EA$(I- 1)[12]:NEXT I:FILE "C",2
8030 FOR REC= 2TO NR- 1
8040 GET 1,REC;AC$[2],BA$[2],AMT,SD$[9],FR$[2]:IF AMT= 0THEN 8340
8050 D7$= SD$:GOSUB 14000:IF D7< = JTDTHEN 8060
8055 PRINT "          PAYMENT ALREADY ON FILE FOR ";EA$(VAL (AC$))"":FOR I= 1TO 1000:NEXT :GOTO 8340
8060 GOSUB 8500
8310 GOSUB 8700:PUT 1,REC,9;NI$[9]:GOTO 8040
8340 NEXT REC
8360 FILE "C",1:RETURN
8380
8400 FOR KL= ERTO ER- 10STEP - 1:IF KL< 2THEN NV= 1:GOTO 8430
8410 GET 2,KL,3;D7$[9]:GOSUB 14000:IF D7> = PDTHEN NV= 2:GOTO 8430
8420 NEXT KL:NV= 1
8430 RETURN
8480
8490 REM
8500 PE= VAL (FR$):DU$= SD$:NI$= SD$
8510 JU= 12/ PE:IF JUMP< 1THEN 8580
8520 D7$= NI$:GOSUB 14000:Y1= Y1- 1900
8530 M= M+ INT (JUMP)
8540 IF M< = 12THEN 8560
8550 M= M- 12:Y1= Y1+ 1
8560 N1$= MID$ (STR$ (D),2)+ "."+ MID$ (STR$ (M),2)+ "."+ MID$ (STR$ (Y1),2):TD$= N1$:GOSUB 21000:D7$= TD$:GOSUB 14000:T1= D7
8570 GOTO 8590
8580 JUMP= INT (365/ PERIOD):D7$= NI$:GOSUB 14000:T1= D7+ JUMP
8590 REM
8600 D7= T1:GOSUB 8900:NI$= D7$
8610 REM
8620 RETURN
8680
8700 PRINT "          MAKING PAYMENT AGAINST ";EA$(VAL (AC$))""
8705 FILE "R",2,"EXPEND",1:GET 2,1;NE
8710 PUT 2,NE;AC$[2],SD$[9],"ALLOTMENT   "[12],0,"I"[1],AMT
8720 PUT 2,NE+ 1;AC$[2],SD$[9],SA$(VAL (BA$))[12],0,"P"[1],AMT
8730 PUT 2,1;NE+ 2:FILE "C",2
8740 FILE "R",2,"BNKTIT",1:GET 2,VAL (BA$)+ 1,26;BAL,OD$[9]:D7$= OD$:GOSUB 14000:OD= D7:D7$= SD$:GOSUB 14000:IF OD< D7THEN OD$= SD$
8750 BAL= BAL- AMT:PUT 2,VAL (BA$)+ 1,26;BAL,OD$[9]:FILE "C",2
8760 FILE "R",2,"TRANS",1:GET 2,1;NT:PUT 2,NT;BA$[2],SD$[9],EA$(VAL (AC$))[12],0,AMT,"W"[1]:PUT 2,1;NT+ 1:FILE "C",2
8770 RETURN
8880
8900 J2= D7
8902 J3= INT (J2+ C9)
8904 D8= J2- J3
8906 J2= J3
8908 L= J2+ 2483589
8910 N= INT ((4* L/ 146097)+ C9)
8912 L= L- INT (((146097* N+ 3)/ 4)+ C9)
8914 Y2= INT ((4000* (L+ 1)/ 1461001)+ C9)
8916 L= L- INT (1461* (Y2/ 4)+ C9)+ 31
8918 M1= INT (80* (L/ 2447)+ C9)
8920 C9= .001
8922 D1= L- INT ((2447* M1/ 80)+ C9)
8924 IF M1> 0GOTO 8928
8926 D1= D1- 1
8928 L= INT ((M1/ 11)+ C9)
8930 D8= INT (10* D8+ .5)
8932 D1= D1+ (D8/ 10)
8934 M1= M1+ 2- 12* L
8936 Y2= 100* (N- 49)+ Y2+ L
8938 D1$= STR$ (D1):D1$= RIGHT$ (D1$,(LEN (D1$)- 1)):IF LEN (D1$)= 1THEN D1$= " "+ D1$
8940 Y1$= STR$ (Y2):Y1$= RIGHT$ (Y1$,2)
8942 M1$= MID$ (STRMTH$,M1* 3,3)
8944 D7$= D1$+ " "+ M1$+ " "+ Y1$:RETURN
8950
10000 REM
10010 PLOT 15,12,3,23,5
10020 PRINT "ENTER DETAILS"
10040 PLOT 3,1,10:PRINT "ACCOUNT NUMBER"
10050 PLOT 3,1,11:PRINT "ACCOUNT NAME"
10060 PLOT 3,1,12:PRINT "BALANCE"
10070 PLOT 3,1,14:PRINT "AMOUNT OF BILL         $"
10080 PLOT 3,1,15:PRINT "DATE OF BILL (D.M.YY)"
10081 PLOT 3,1,16:PRINT "DETAILS"
10082 PLOT 3,1,17:PRINT "DUE DATE (D.M.YY) OR RET"
10090 PLOT 3,25,10:PRINT ""ACNUM$""
10100 PLOT 3,25,11:PRINT ""NME$""
10110 MO= BAL:GOSUB 114:PLOT 3,25,12:PRINT ""MO$""
10120 PLOT 3,25,14:PRINT "        "
10130 PLOT 3,25,15:PRINT "        "
10131 PLOT 3,25,16:PRINT "            "
10132 PLOT 3,25,17:PRINT "        "
10140 REM
10150 PLOT 6,2,3,0,19:GOSUB 20000
10210 X= 25:Y= 14:ML= 8:NA$= "N"
10220 PLOT 6,38
10230 GOSUB 86
10240 IF KB= 9GOTO 10230
10250 AMT= VAL (FI$)
10260 X= 25:Y= 15:ML= 8:NA$= "A"
10270 PLOT 6,38
10280 GOSUB 86
10290 IF KB= 9GOTO 10210
10300 TD$= FI$:GOSUB 21000:IF ERR= 1THEN PLOT 7:GOTO 10260
10305 DATE$= TD$
10310 X= 25:Y= 16:ML= 12:NA$= "A"
10320 PLOT 6,38
10330 GOSUB 86
10340 IF KB= 9THEN 10260
10350 DETAILS$= FI$
10352 X= 25:Y= 17:ML= 8:NA$= "A":PLOT 6,38:GOSUB 86:IF KB= 9THEN 10310
10353 IF FI$= ""THEN DDATE$= DATE$:GOTO 10460
10354 TD$= FI$:GOSUB 21000:IF ERR= 1THEN PLOT 7:GOTO 10352
10360 DDATE$= TD$
10460 PLOT 6,2:RETURN
11000 REM
11010 PLOT 15,12,3,23,5
11020 PRINT "ENTER DETAILS"
11030 PLOT 3,1,9:PRINT "ACCOUNT NUMBER"
11040 PLOT 3,1,10:PRINT "ACCOUNT NAME"
11045 IF VAL (ACNUM$)= 16THEN PLOT 3,1,11:PRINT "TOTAL TO DATE":GOTO 11060
11050 PLOT 3,1,11:PRINT "BALANCE"
11055 PLOT 3,1,12:PRINT "DUE DATE"
11060 IF VAL (AC$)= 16THEN PLOT 3,1,14:PRINT "AMT OF PAYMENT        $":GOTO 11070
11065 PLOT 3,1,14:PRINT "AMT OF PAYMENT OR RET $"
11070 IF VAL (AC$)= 16THEN PLOT 3,1,15:PRINT "DATE OF PAYMENT":GOTO 11100
11075 PLOT 3,1,15:PRINT "DATE OF PAYMENT OR RET"
11100 PLOT 3,25,9:PRINT ""ACNUM$""
11110 PLOT 3,25,10:PRINT ""NME$""
11115 IF VAL (ACNUM$)= 16THEN MO= - BAL:GOSUB 114:PLOT 3,25,11:PRINT ""MO$"":GOTO 11125
11120 MO= BAL:GOSUB 114:PLOT 3,25,11:PRINT ""MO$""
11125 PLOT 3,25,12:PRINT ""DDATE$""
11130 PLOT 3,25,14:PRINT "        "
11140 PLOT 3,25,15:PRINT "        "
11170 REM
11180 PLOT 6,2,3,0,17:GOSUB 20000
11190 X= 25:Y= 14:ML= 8:NA$= "N"
11200 PLOT 6,38
11210 GOSUB 86
11220 IF KB= 9GOTO 11210
11221 IF FI$= ""AND VAL (ACNUM$)= 16THEN PLOT 7:GOTO 11190
11222 IF FI$= ""THEN AMT= BAL:GOTO 11240
11230 AMT= VAL (FI$)
11240 X= 25:Y= 15:ML= 8:NA$= "A"
11250 PLOT 6,38
11260 GOSUB 86
11270 IF KB= 9GOTO 11190
11273 IF FI$= ""AND VAL (ACNUM$)= 16THEN PLOT 7:GOTO 11240
11275 IF FI$= ""THEN DATE$= DDATE$:GOTO 11360
11280 TD$= FI$:GOSUB 21000:IF ERR= 1THEN PLOT 7:GOTO 11240
11290 DATE$= TD$
11360 PLOT 6,2:RETURN
12000 REM
12010 PLOT 15,12,3,23,5
12020 PRINT "ENTER DETAILS"
12030 PLOT 3,1,10:PRINT "ACCOUNT NUMBER"
12040 PLOT 3,1,11:PRINT "ACCOUNT NAME"
12050 PLOT 3,1,12:PRINT "ACCOUNT IDENTIFICATION"
12060 PLOT 3,1,13:PRINT "ACCOUNT BALANCE        "
12070 PLOT 3,1,14:PRINT "LAST TRANSACTION DATE"
12080 PLOT 3,1,16:PRINT "CHEQUE NUMBER"
12100 PLOT 3,25,10:PRINT ""BACCT$""
12110 PLOT 3,25,11:PRINT ""BNAME$""
12120 PLOT 3,25,12:PRINT ""BDETAIL$""
12130 MO= BBAL:GOSUB 114:PLOT 3,25,13:PRINT ""MO$""
12140 PLOT 3,25,14:PRINT ""LBDATE$""
12150 PLOT 3,25,16:PRINT "      "
12170 REM
12180 PLOT 6,2,3,0,18:GOSUB 20000
12190 X= 25:Y= 16:ML= 6:NA$= "N"
12200 PLOT 6,38
12210 GOSUB 86
12220 IF KB= 9GOTO 12210
12230 CHNUM= VAL (FI$)
12360 PLOT 6,2:RETURN
13000 REM
13010 PLOT 14,12,3,23,5
13020 PRINT "ENTER PAYEE"
13140 PLOT 15,3,10,14:PRINT "                                        "
13145 PLOT 3,10,15:PRINT "                                        "
13150 REM
13160 PLOT 6,2,3,0,18:GOSUB 20000
13170 X= 10:Y= 14:ML= 40:NA$= "A"
13180 PLOT 6,38
13190 GOSUB 86
13200 IF KB= 9GOTO 13190
13210 T1$= FI$
13211 X= 10:Y= 15:ML= 40:NA$= "A"
13212 PLOT 6,38
13213 GOSUB 86
13214 IF KB= 9GOTO 13170
13215 PYEE$= T1$+ FI$
13220 PLOT 6,2:RETURN
13980 REM
13990 REM
14000 Y1= VAL (RIGHT$ (D7$,2)):D= VAL (LEFT$ (D7$,2))
14010 FOR K= 1TO 12:IF MID$ (STRMTH$,K* 3,3)= MID$ (D7$,4,3)THEN M= K:GOTO 14030
14020 NEXT K
14030 Y1= Y1+ 1900
14040 C9= .001
14050 M9= (- 1)* INT (((14- M)/ 12)+ C9)
14060 J1= D- 2447095+ INT ((1461* (Y1+ 4800+ M9)/ 4)+ C9)
14070 J2= J1+ INT ((367* (M- 2- 12* M9)/ 12)+ C9)
14080 J1= J2- INT ((3* (Y1+ 4900+ M9)/ 400)+ C9)
14090 J2= J1
14100 D7= J2:RETURN
15000 REM
15010 PLOT 15,12,3,23,5
15020 PRINT "ENTER DETAILS"
15030 PLOT 3,1,10:PRINT "BANK ACCOUNT NUMBER"
15040 PLOT 3,1,11:PRINT "EXP. ACCOUNT NUMBER"
15060 PLOT 3,1,14:PRINT "REGULAR AMOUNT         $"
15070 PLOT 3,1,15:PRINT "START DATE (D.M.YY)"
15080 PLOT 3,1,16:PRINT "FREQ. (12,26,52 ETC)"
15100 PLOT 3,25,10:PRINT ""BA$""
15110 PLOT 3,25,11:PRINT ""AC$""
15130 PLOT 3,25,14:PRINT "        "
15140 PLOT 3,25,15:PRINT "        "
15150 PLOT 3,25,16:PRINT "   "
15170 REM
15180 PLOT 6,2,3,0,19:GOSUB 20000
15190 X= 25:Y= 14:ML= 8:NA$= "N"
15200 PLOT 6,38
15210 GOSUB 86
15220 IF KB= 9GOTO 15210
15230 AMT= VAL (FI$)
15240 X= 25:Y= 15:ML= 8:NA$= "A"
15250 PLOT 6,38
15260 GOSUB 86
15270 IF KB= 9GOTO 15190
15280 TD$= FI$:GOSUB 21000:IF ERR= 1THEN PLOT 7:GOTO 15240
15290 SDATE$= TD$
15300 X= 25:Y= 16:ML= 12:NA$= "N"
15310 PLOT 6,38
15320 GOSUB 86
15330 IF KB= 9THEN 15240
15340 FRQ$= FI$
15390 PLOT 6,2:RETURN
19997 REM
19998 REM
19999 REM
20000 PRINT "           1. ONLY LEFT & RIGHT CURSOR ALLOWED."
20010 PRINT "           2. CURSOR WON'T GO OUT OF A FIELD."
20020 PRINT "           3. DEL/INS CHAR AND DEL LINE ALL WORK."
20030 PRINT "           4. ALPHA CHARS DISABLED IN NUMERIC FLD."
20040 PRINT "           5. TAB KEY BACKS UP A FIELD.";
20050 RETURN
20950 REM
20960 REM
20970 REM
20980 REM
20990 REM
21000 ERR= 0:IF LEN (TD$)= 0THEN ERR= 1:GOTO 21080
21003 FOR JI= 1TO LEN (TD$):T6= ASC (MID$ (TD$,JI,1)):IF NOT (T6= 46OR (T6> 47AND T6< 58))THEN ERR= 1:GOTO 21080
21005 NEXT JI
21020 IF MID$ (TD$,2,1)= "."THEN TD$= "0"+ TD$
21030 IF MID$ (TD$,5,1)= "."THEN TD$= LEFT$ (TD$,3)+ "0"+ RIGHT$ (TD$,4)
21040 MM= VAL (MID$ (TD$,4,2))
21050 MM$= " "+ MID$ (STRMTH$,MM* 3,3)+ " "
21060 TD$= LEFT$ (TD$,2)+ MM$+ RIGHT$ (TD$,2)
21070 IF LEFT$ (TD$,1)= "0"THEN TD$= " "+ RIGHT$ (TD$,8)
21080 RETURN
30000 REM
30010 REM
30020 REM
30030 REM
30040 REM
30050 REM
30060 GOSUB 30110:GOTO 30150
30110 FOR I= 1TO 19:READ UN$(I):NEXT :FOR I= 2TO 9:READ TE$(I):NEXT :FOR I= 2TO 5:READ MU$(I):NEXT
30120 DATA ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,ELEVEN,TWELVE,THIRTEEN,FOURTEEN,FIFTEEN,SIXTEEN,SEVENTEEN,EIGHTEEN
30130 DATA NINETEEN,TWENTY,THIRTY,FORTY,FIFTY,SIXTY,SEVENTY,EIGHTY,NINETY,THOUSAND,MILLION,BILLION,TRILLION
30140 RETURN
30150 CH$= "":DO$= "":CE$= "":IF VAL (AM$)< .01THEN CH$= "*** VOID ***":RETURN
30160 FOR I= 1TO LEN (AM$):IF MID$ (AM$,I,1)= "."THEN DE= I:GOTO 30180
30170 NEXT I:DE= 0
30180 IF DE= 0THEN DO$= AM$:GOTO 30210
30190 IF DE= 1THEN DO$= "":CE$= MID$ (AM$,2,2):GOTO 30210
30200 DO$= LEFT$ (AM$,DE- 1):CE$= MID$ (AM$,DE+ 1,2)
30210 IF VAL (CE$)= 0THEN CE$= "":AM$= DO$
30220 IF LEN (CE$)= 1THEN CE$= CE$+ "0"
30230 IF INT (LEN (DO$)/ 3)< > LEN (DO$)/ 3THEN DO$= "0"+ DO$:GOTO 30230
30240 FOR I= LEN (DO$)/ 3TO 1STEP - 1:D1= VAL (LEFT$ (DO$,1)):D2= VAL (MID$ (DO$,2,1)):D3= VAL (MID$ (DO$,3,1))
30250 IF D1> 0THEN CH$= CH$+ UN$(D1)+ " HUNDRED "
30260 IF D2= 0THEN CH$= CH$+ UN$(D3)+ " "
30270 IF D2= 1THEN CH$= CH$+ UN$(10+ D3)+ " "
30280 IF D2< = 1THEN 30310
30290 CH$= CH$+ TE$(D2):IF D3> 0THEN CH$= CH$+ "-"+ UN$(D3)+ " ":GOTO 30310
30300 CH$= CH$+ " "
30310 IF I> 1THEN DO$= MID$ (DO$,4):IF D1+ D2+ D3> 0THEN CH$= CH$+ MU$(I)+ " "
30320 NEXT I
30330 IF CH$= " "THEN CH$= "NONE"
30340 IF CE$< > ""THEN 30370
30350 CH$= "EXACTLY "+ CH$:IF VAL (AM$)= 1THEN CH$= CH$+ " DOLLAR":GOTO 30380
30360 CH$= CH$+ " DOLLARS":GOTO 30380
30370 CH$= CH$+ " AND "+ CE$+ "/100 DOLLARS"
30380 FOR I= 1TO LEN (CH$):IF MID$ (CH$,I,2)= "  "THEN CH$= MID$ (CH$,1,I)+ MID$ (CH$,I+ 2):I= I- 1
30390 NEXT
30400 RETURN