Compucolor.org – Virtual Media

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

100 REM  ****************** INCOME ***************************
120 GOTO 610
130
140
150 POKE 33278,0
160 Z1= PEEK (33278):IF Z1= 0THEN 160
170 RETURN :END
180
190
200 POKE 33278,0
210 IF PEEK (33278)= 0GOTO 210
220 IF PEEK (33278)= 89THEN PRINT "ES":Q$= "Y":RETURN
230 IF PEEK (33278)= 78THEN PRINT "O":Q$= "N":RETURN
240 PLOT 7,26,32,26:GOTO 200
250
260
270
280 POKE 33278,0
290 Y= PEEK (33278)
300 IF Y= 0GOTO 290
310 Y$= CHR$ (Y)
320 RETURN :END
330
340
350 PO= PEEK (32940)+ PEEK (32941)* 256+ 1
360 SA= 28672+ 128* Y+ X+ X
370 ZZ= INT (SA/ 256):POKE PO+ 3,SA- 256* ZZ:POKE PO+ 4,ZZ
380 SA= SA- 2
390 POKE PO+ 1,ASC (NA$)
400 FI$= ""
410 PLOT 3,X,Y
420 KB= CALL (ML)
430 IF KB= 9OR PEEK (PO)= 0THEN RETURN
440 FOR I= 2TO PEEK (PO)* 2STEP 2
450 FI$= FI$+ CHR$ (PEEK (SA+ I)):NEXT I
460 RETURN :END
470
480
490
500 RH$= STR$ ((1000* (MO* SGN (MO)- INT (MO* SGN (MO)))+ 1005)/ 10)
510 IF VAL (RH$)> = 200THEN MO= (MO* SGN (MO)+ 1)* SGN (MO)
520 LH$= STR$ (INT (MO* SGN (MO))* SGN (MO)):IF VAL (LH$)= 0AND SGN (MO)= - 1THEN LH$= "-0"
530 LH$= "$"+ LH$
540 IF LEN (LH$)> = 6THEN 560
550 LH$= " "+ LH$:GOTO 540
560 RH$= MID$ (RH$,3,2):MO$= LH$+ "."+ RH$
570 RETURN :END
580
590
600
610 PLOT 27,4:PRINT "RUN FIELDS":PLOT 27,27:CLEAR 5000
611 A= 0:AM= 0:AN= 0:AS= 0:BA= 0:BB= 0:C9= 0:CB= 0:D= 0:DD= 0:ER= 0:ES= 0
612 FC= 0:GR= 0:I= 0:IS= 0:J1= 0:J2= 0:JD= 0:JI= 0:JL= 0:K= 0:KB= 0:M= 0
613 M9= 0:ML= 0:MM= 0:MO= 0:N2= 0:N3= 0:N4= 0:NB= 0:NE= 0:NI= 0:NP= 0
614 NR= 0:NU= 0:PB= 0:PO= 0:R1= 0:RE= 0:SA= 0:T6= 0:X= 0:Y= 0:Y1= 0:Z1= 0
615 ZZ= 0:PV= 0
616 A$= "":AC$= "":AN$= "":BA$= "":BN$= "":BU$= "":D7$= "":DA$= ""
617 DE$= "":DS$= "":FI$= "":FR$= "":IN$= "":LD$= "":LH$= "":LI$= ""
618 MM$= "":MO$= "":NA$= "":NL$= "":NU$= "":PD$= "":PV$= "":Q$= ""
619 RH$= "":ST$= "":TA$= "":TD$= "":Y$= "":Z1$= ""
620 DD= PEEK (65535):DSK$= MID$ (STR$ (DD- 1),2)+ ":"
630 DIM INC(7,2),EX(15,2),BANK(5,2),INC$(7),EX$(15),BANK$(5),BPNTR$(5)
640 NLNGTH$= "            "
650 IF DD= 1THEN PLOT 12,3,10,15:INPUT "LOAD DATA DISK AND HIT <RETURN> ";A
660 PLOT 12,14,3,28,1:PRINT "INCOME":PLOT 15
670 PLOT 3,3,5:PRINT "OPTIONS ARE:"
680 PLOT 3,13,9:PRINT "1. RECORD A SUNDRY INCOME NOT DEPOSITED"
690 PLOT 3,13,10:PRINT "2. RECORD A SUNDRY DEPOSIT INTO AN ACCOUNT"
700 PLOT 3,13,11:PRINT "3. ENTER A PAY"
710 PLOT 3,13,12:PRINT "9. END"
720 PLOT 3,5,22:PRINT "PLEASE MAKE A SELECTION....";:GOSUB 280:ANS= VAL (Y$)
730 IF NOT ((ANS> = 1AND ANS< = 3)OR ANS= 9)THEN PLOT 7:GOTO 660
740 ON ANSGOSUB 1000,2000,3000,9000,9000,9000,9000,9000,9000
750 GOTO 660
1000 FILE "R",1,DSK$+ "INCTIT",1:FILE "R",2,DSK$+ "INCOME",1:FILE "R",3,DSK$+ "EXPTIT",1
1010 GET 1,1;NREC:GET 3,17,25;CBAL
1020 PLOT 12,3,1,1
1030 PRINT "CURRENT INCOME ACCOUNTS ARE: "
1040 PRINT :FOR REC= 4TO NREC- 1:GET 1,REC;NAME$[12]
1050 PRINT "  ";REC- 1;" "NAME$""
1060 NEXT REC:PRINT
1070 INPUT "PLEASE SELECT ONE OF THE ABOVE ACCOUNTS OR <RET> ";ANS
1110 IF ANS= 0THEN 1220
1120 IF ANS< 3OR ANS> (NREC- 2)THEN PLOT 7,28,11:GOTO 1070
1125 GET 1,ANS+ 1;NAME$[12]
1130 ACCT$= STR$ (ANS):ACCT$= MID$ (ACCT$,2)
1140 GET 2,1;N2REC
1150 IF N2REC> 64THEN 1190
1160 GOSUB 10000
1170 PUT 2,N2REC;ACCT$[2],DATE$[9],DETAILS$[12],AMT
1175 CBAL= CBAL- AMT:PUT 3,17,25;CBAL
1180 N2REC= N2REC+ 1:PUT 2,1;N2REC:PLOT 12:GOTO 1200
1190 PLOT 7,12,3,1,15:PRINT "YOU HAVE USED YOUR QUOTA OF 63 RECORDS"
1200 PRINT :PLOT 3,1,17:PRINT "DO YOU WISH TO RECORD ANY MORE INCOMES NOT DEPOSITED(Y/N)? ";:GOSUB 200
1210 IF Q$= "Y"THEN 1010
1215 IF Q$< > "N"THEN PLOT 7:GOTO 1200
1220 FILE "C",1,2,3:RETURN
2000 PLOT 12,3,10,12:PRINT "PLEASE SELECT:"
2010 PLOT 3,10,14:PRINT "1. DEPOSIT SUNDRY INCOME INTO AN ACCOUNT"
2020 PLOT 3,10,16:PRINT "2. ENTER MISCELLANEOUS DEPOSIT....";:GOSUB 280
2030 PRINT :ANS= VAL (Y$):IF ANS< 1OR ANS> 2THEN PLOT 7:GOTO 2000
2040 IF ANS= 1THEN 2310
2050 FILE "R",1,DSK$+ "BNKTIT",1:FILE "R",2,DSK$+ "TRANS",1:FILE "R",3,DSK$+ "EXPTIT",1:GET 3,17,25;CBAL
2060 GET 1,1;NREC:IF NREC< = 2THEN 2290
2070 PLOT 12:PRINT :PRINT "CURRENT BANK ACCOUNTS ARE:"
2080 PRINT :FOR REC= 2TO NREC- 1:GET 1,REC;NAME$[12]
2090 PRINT "  ";REC- 1;" ";NAME$"":NEXT REC:PRINT
2100 PRINT "PLEASE SELECT AN ACCOUNT NUMBER (OR <RET>)";:GOSUB 280
2110 PRINT :IF ASC (Y$)= 13THEN 2300
2120 IF VAL (Y$)< 1OR VAL (Y$)> NREC- 2THEN PLOT 7,28,11:GOTO 2100
2130 ACCT$= Y$:R1REC= VAL (Y$)+ 1
2140 GET 1,R1REC;ANAME$[12],NUM$[13],BAL,LDATE$[9]:D7$= LD$:GOSUB 30000:JLAST= J2
2150 GET 2,1;N2REC
2160 IF N2REC> 400THEN 2230
2170 GOSUB 11000
2180 BAL= BAL+ AMT:CBAL= CBAL+ AMT:D7$= DA$:GOSUB 30000:JDAY= J2:IF JD< JLASTTHEN DATE$= LDATE$
2190 PUT 1,R1REC,26;BAL,DATE$[9]:PUT 3,17,25;CBAL
2200 PUT 2,N2REC;ACCT$[2],DATE$[9],DETAILS$[12],0,AMT,"D"[1],"N"[1]
2210 N2REC= N2REC+ 1
2220 PUT 2,1;N2REC:PLOT 12:GOTO 2240
2230 PLOT 7,12,3,10,12:PRINT "YOU HAVE USED YOUR QUOTA OF 399 RECORDS"
2240 PLOT 3,5,14:PRINT "ANY MORE MISC. DEPOSITS FOR ";ANAME$;" ACCOUNT (Y/N)? ";:GOSUB 200
2250 PRINT :IF Q$= "Y"THEN 2140
2255 IF Q$< > "N"THEN PLOT 7:GOTO 2240
2260 PLOT 3,5,16:PRINT "MORE MISC. DEPOSITS FOR OTHER ACCOUNTS (Y/N)? ";:GOSUB 200
2270 PRINT :IF Q$= "Y"THEN 2060
2275 IF Q$< > "N"THEN PLOT 7:GOTO 2260
2280 GOTO 2300
2290 PLOT 7,3,10,18:PRINT "NO BANK OR SAVINGS ACCOUNTS REGISTERED!!!":FOR I= 1TO 2000:NEXT
2300 FILE "C",1,2,3:GOTO 2740
2310 FILE "R",1,DSK$+ "INCTIT",1:FILE "R",2,DSK$+ "INCOME",1
2320 FILE "R",3,DSK$+ "BNKTIT",1:FILE "R",4,DSK$+ "TRANS",1
2330 GET 1,1;NREC
2340 PLOT 12,3,1,1
2350 PRINT "CURRENT INCOME ACCOUNTS ARE: "
2360 PRINT :FOR REC= 4TO NREC- 1:GET 1,REC;NAME$[12]
2370 PRINT "  ";REC- 1;" "NAME$""
2380 NEXT REC:PRINT
2390 PLOT 3,1,24:INPUT "PLEASE SELECT ONE OF THE ABOVE ACCOUNTS OR <RET> ";ANS
2400 IF ANS= 0THEN 2730
2410 IF ANS< 3OR ANS> (NREC- 2)THEN PLOT 7,28,11:GOTO 2390
2420 GET 1,ANS+ 1;INAME$[12]
2430 BACCT$= STR$ (ANS):BACCT$= MID$ (BACCT$,2)
2440 GET 2,1;N2REC
2450 IF N2REC> 64THEN 2700
2460 GET 3,1;N3REC:IF N3REC< = 2THEN 2660
2470 PLOT 3,32,1:PRINT "CURRENT BANK ACCOUNTS ARE:"
2480 FOR REC= 2TO N3REC- 1:GET 3,REC;NAME$[12]
2490 PLOT 3,32,REC+ 1:PRINT "  ";REC- 1;" ";NAME$"":NEXT REC:PLOT 3,0,24:PLOT 11
2500 PRINT "PLEASE SELECT AN ACCOUNT NUMBER (OR <RET>)";:GOSUB 280
2510 PRINT :IF ASC (Y$)= 13THEN 2730
2520 IF VAL (Y$)< 1OR VAL (Y$)> N3REC- 2THEN PLOT 7,28,11:GOTO 2500
2530 ACCT$= Y$:R1REC= VAL (Y$)+ 1
2540 GET 3,R1REC;ANAME$[12],NUM$[13],BAL,LDATE$[9]:D7$= LD$:GOSUB 30000:JL= J2
2550 GET 4,1;N4REC
2560 IF N4REC> 400THEN 2650
2570 GOSUB 11000
2580 BAL= BAL+ AMT:D7$= DA$:GOSUB 30000:JD= J2:IF JD< JLTHEN DA$= LD$
2590 PUT 3,R1REC,26;BAL,DATE$[9]
2600 PUT 4,N4REC;ACCT$[2],DATE$[9],DETAILS$[12],0,AMT,"D"[1],"N"[1]
2610 N4REC= N4REC+ 1
2620 PUT 4,1;N4REC
2630 PUT 2,N2REC;BACCT$[2],DATE$[9],DETAILS$[12],AMT
2640 N2REC= N2REC+ 1:PUT 2,1;N2REC:PLOT 12:GOTO 2670
2650 PLOT 7,12,3,5,12:PRINT "YOU HAVE USED YOUR QUOTA OF 399 RECORDS":GOTO 2670
2660 PLOT 7,12,3,5,12:PRINT "NO BANK OR SAVINGS ACCOUNTS REGISTERED!!!"
2670 PLOT 3,5,14:PRINT "ANY MORE DEPOSITS FOR ";INAME$;" INCOME ACCOUNT (Y/N)? ";:GOSUB 200
2680 PRINT :IF Q$= "Y"THEN PLOT 12:GOTO 2440
2685 IF Q$< > "N"THEN PLOT 7:GOTO 2670
2690 GOTO 2710
2700 PLOT 12,3,5,14:PRINT "YOU HAVE USED YOUR QUOTA OF 63 RECORDS"
2710 PLOT 3,5,16:PRINT "MORE DEPOSITS FOR OTHER INCOME ACCOUNTS (Y/N)? ";:GOSUB 200
2720 PRINT :IF Q$= "Y"THEN 2330
2725 IF Q$< > "N"THEN PLOT 7:GOTO 2710
2730 FILE "C",1,2,3,4
2740 PLOT 12,3,8,14:PRINT "DO YOU WISH TO MAKE ANY MORE DEPOSITS (Y/N)? ";:GOSUB 200
2750 IF Q$= "Y"THEN 2000
2755 IF Q$< > "N"THEN PLOT 7:GOTO 2740
2760 RETURN
3000 FILE "R",1,DSK$+ "PAYS",1
3010 FILE "R",2,DSK$+ "PAYTIT",1
3020 FILE "R",3,DSK$+ "EXPEND",1
3030 FILE "R",4,DSK$+ "EXPTIT",1
3040 FILE "R",5,DSK$+ "BNKTIT",1
3050 GET 1,1;NPAY,NINC,NEX,NBANK:PLOT 27,24
3060 IF NPAY= 2THEN GREC= 2
3070 IF NPAY< > 2THEN GREC= NPAY- 1
3080 GET 1,GREC;PVA,LDATE$[9]
3090 FOR I= 1TO 7
3100 GET 1,GREC,I* 4+ 10;INC(I,2):INC(I,1)= I:NEXT I
3110 FOR I= 1TO 15
3120 GET 1,GREC,I* 4+ 38;EX(I,2):EX(I,1)= I:NEXT I
3130 FOR I= 1TO 5
3140 GET 1,GREC,I* 6+ 96;BPNTR$(I)[2],BANK(I,2):BANK(I,1)= I:NEXT I
3150 FOR I= 1TO 7
3160 GET 2,I+ 1;INC$(I)[12]:NEXT I
3170 FOR I= 1TO 15
3180 GET 4,I+ 1;EX$(I)[12]:NEXT I
3190 FOR I= 1TO 5
3200 GET 5,VAL (BPNTR$(I))+ 1;BANK$(I)[12]:NEXT I
3205 GET 4,17,25;CBAL
3210 GOSUB 5000
3220 PLOT 3,0,31,11:PRINT "DO YOU WISH TO ADD ANY ACCOUNTS (Y/N)? ";:GOSUB 200
3230
3240 IF Q$= "N"THEN 3810
3245 IF Q$< > "Y"THEN PLOT 7:GOTO 3220
3250 PLOT 3,0,31,11
3260 PRINT "INCOME, EXPENDITURE, OR SAVINGS ACCOUNT? ";:GOSUB 280
3270 PRINT :IF NOT (Y$= "I"OR Y$= "E"OR Y$= "S")THEN PLOT 7:GOTO 3250
3280 IF Y$= "E"OR Y$= "S"THEN 3430
3290
3300
3310 IF NINC> 7THEN 3425
3312 PLOT 3,0,31,11
3320 PRINT "INCOME ACCOUNT: ";NINC:NUM= NINC
3349 PLOT 3,20,31
3350 INPUT "ENTER INCOME ACCOUNT NAME : ";INC$(NUM):INC$(NUM)= INC$(NUM)+ MID$ (NLNGTH$,LEN (INC$(NUM))+ 1):INC$(NUM)= MID$ (INC$(NUM),1,12)
3360 PUT 2,NUM+ 1;INC$(NUM)[12]
3370 NINC= NINC+ 1
3380 PUT 2,1;NINC+ 1:PUT 1,1,5;NINC
3390 GOSUB 5000
3400 PLOT 3,0,31,11:PRINT "ADD ANY MORE INCOME ACCOUNTS (Y/N)? ";:GOSUB 200
3410 IF Q$= "Y"THEN 3310
3415 IF Q$< > "N"THEN PLOT 7:GOTO 3400
3420
3425 GOTO 3720
3430 IF Y$= "S"THEN 3600
3440
3450
3460 IF NEX> 15THEN 3575
3465 PLOT 3,0,31,11
3470 PRINT "EXPEND ACCOUNT:";NEX
3480 NUM= NEX
3500 GOSUB 12000
3510 PUT 4,NUM+ 1;EX$(NUM)[12],BUDCAT$[1],TAX$[1],FRQ$[2],FCAST,LIABAC$[2],INCAC$[2],BAL,"         "[9],"N"[1]
3520 NEX= NEX+ 1
3530 PUT 4,1;NEX+ 1:PUT 1,1,9;NEX
3540 GOSUB 5000
3550 PLOT 3,0,31,11:PRINT "ADD ANY MORE EXPENDITURE ACCOUNTS (Y/N)? ";:GOSUB 200
3560 IF Q$= "Y"THEN 3460
3565 IF Q$< > "N"THEN PLOT 7:GOTO 3550
3570
3575 GOTO 3720
3580
3590
3600 IF NBANK> 5THEN 3720
3601 GET 5,1;NREC:IF NREC= 2THEN 3655
3602 PLOT 12,3,5,5:PRINT "CURRENT ACCOUNTS ARE:"
3610 FOR REC= 2TO NREC- 1:GET 5,REC;BNAME$[12]
3615 PRINT "  ";REC- 1;"  ";BNAME$;"":NEXT REC
3620 PLOT 3,5,18:PRINT "SELECT SAVINGS ACCOUNT NUMBER OR <RET>....";:GOSUB 280
3625 IF ASC (Y$)= 13THEN PRINT :GOSUB 5000:GOTO 3720
3630 PRINT :NUM= VAL (Y$):IF NUM> NREC- 2OR NUM> 8THEN PLOT 7,28,11:GOTO 3620
3635 GET 5,NUM+ 1;BANK$(NBANK)[12]
3637 BPNTR$(NBANK)= STR$ (NUM)
3640 NBANK= NBANK+ 1
3645 PUT 1,1,13;NBANK
3650 GOSUB 5000:GOTO 3660
3655 PLOT 7,3,0,31,11:PRINT "NO BANK ACCOUNTS ON FILE":FOR I= 1TO 1000:NEXT I
3660 PLOT 3,10,31,11:PRINT "ADD ANY MORE SAVINGS ACCOUNTS (Y/N)? ";:GOSUB 200
3700 IF Q$= "Y"THEN 3600
3705 IF Q$< > "N"THEN PLOT 7:GOTO 3660
3710
3720 GOTO 3220
3730
3810 FOR I= 1TO 7
3820 PUT 2,I+ 1;INC$(I)[12]:NEXT I
3830 FOR I= 1TO 15
3840 PUT 4,I+ 1;EX$(I)[12]:NEXT I
3850
3855 PLOT 3,0,31,11:PRINT "ENTER PAY NUMBER AND DATE"
3860 PLOT 3,17,0:PRINT "";PVA;""
3862 PLOT 3,18,0:INPUT "";PVA$:IF ASC (PVA$)= 13THEN PLOT 7:GOTO 3862
3863 PVA= VAL (PVA$):PLOT 3,17,0:PRINT "";PVA;"       "
3865 PLOT 3,51,0:PRINT "";LDATE$;"":PLOT 3,51,0:INPUT "";TD$:GOSUB 21045:IF ERR= 1THEN PLOT 7:GOTO 3865
3870 LDATE$= TD$:PLOT 3,51,0:PRINT "";LDATE$;""
3900 PLOT 3,0,31,11:D7$= LD$:GOSUB 30000:JD= J2
3910 PRINT "CHANGE ANY VALUES (Y/N)? ";:GOSUB 200
3920
3922 IF Q$= "N"THEN 4200
3924 IF Q$< > "Y"THEN PLOT 7:GOTO 3900
3930 PLOT 3,0,31,11
3940 PRINT "INCOME, EXPENDITURE, OR SAVINGS? ";:GOSUB 280
3950 PRINT :IF Y$< > "I"AND Y$< > "E"AND Y$< > "S"THEN PLOT 7:GOTO 3930
3955
3960 IF Y$= "E"OR Y$= "S"THEN 4020
3962 PLOT 3,0,31,11:PRINT "ENTER NEW VALUES OR <RETURN> "
3964 FOR I= 1TO 7
3970 PLOT 3,17,I+ 1:PRINT "";:MO= INC(I,2):GOSUB 500:PRINT MO$;"":PLOT 3,17,I+ 1:GOSUB 150:IF Z1= 13THEN 3982
3980 Z1$= CHR$ (Z1):INPUT "";A$:INC(I,2)= VAL (Z1$+ A$)
3982 MO= INC(I,2):GOSUB 500:PLOT 3,17,I+ 1:PRINT MO$
3990 NEXT I
4000 PRINT "":GOSUB 5000:GOTO 4180
4010
4020 IF Y$= "S"THEN 4110
4030 PLOT 3,0,31,11:PRINT "ENTER NEW VALUES OR <RETURN> "
4040 FOR I= 1TO 15
4050 PLOT 3,27,I+ 8:PRINT "";:MO= EX(I,2):GOSUB 500:PRINT MO$;"":PLOT 3,27,I+ 8:GOSUB 150:IF Z1= 13THEN 4070
4060 Z1$= CHR$ (Z1):INPUT "";A$:EX(I,2)= VAL (Z1$+ A$)
4070 MO= EX(I,2):GOSUB 500:PLOT 3,27,I+ 8:PRINT MO$
4080 NEXT I
4090 PRINT "":GOSUB 5000:GOTO 4180
4100
4110 PLOT 3,0,30,11:PRINT "ENTER NEW VALUES OR <RETURN> "
4120 FOR I= 1TO 5
4130 PLOT 3,37,I+ 23:PRINT "";:MO= BANK(I,2):GOSUB 500:PRINT MO$;"":PLOT 3,37,I+ 23:GOSUB 150:IF Z1= 13THEN 4150
4140 Z1$= CHR$ (Z1):INPUT "";A$:BANK(I,2)= VAL (Z1$+ A$)
4150 MO= BANK(I,2):GOSUB 500:PLOT 3,37,I+ 23:PRINT MO$
4160 NEXT I
4170 PRINT "":GOSUB 5000
4180 PLOT 3,0,31,11:GOTO 3910
4200 PUT 1,NPAY;PVA,LDATE$[9]:CBAL= CBAL- PBAL:PUT 4,17,25;CBAL
4210 FOR I= 1TO 7
4220 PUT 1,NPAY,I* 4+ 10;INC(I,2):NEXT I
4230 FOR I= 1TO 15
4240 PUT 1,NPAY,I* 4+ 38;EX(I,2):NEXT I
4250 FOR I= 1TO 5
4260 PUT 1,NPAY,I* 6+ 96;BPNTR$(I)[2],BANK(I,2):NEXT I
4270 NPAY= NPAY+ 1:PUT 1,1;NPAY
4272 IF NEX= 1THEN 4390
4280
4290
4300
4310
4320
4330
4340
4350 IF NBANK< = 1THEN 4390
4360 FOR I= 1TO NBANK- 1:GET 5,VAL (BPNTR$(I))+ 1,26;BBAL,PD$[9]:BBAL= BBAL+ BANK(I,2)
4362 D7$= PD$:GOSUB 30000:JL= J2:IF JL< JDTHEN PD$= LD$
4370 PUT 5,VAL (BPNTR$(I))+ 1,26;BBAL,PD$[9]
4380 NEXT I
4390 FILE "C",1,2,3,4,5
4400
4410
4420
4430
4440 IF NBANK= 1THEN 4520
4450 FILE "R",1,DSK$+ "TRANS",1:GET 1,1;N2REC
4460 FOR I= 1TO NBANK- 1
4470 PUT 1,N2REC;BPNTR$(I)[2],LDATE$[9],"ALLOTMENT"[12],0,BANK(I,2),"D"[1],"N"[1]
4480 N2REC= N2REC+ 1
4490 NEXT I
4500 PUT 1,1;N2REC
4510 FILE "C",1
4520 RETURN
5000 PLOT 12,3,5,0:PRINT "PAY NUMBER: ";PVA:PLOT 3,45,0:PRINT "DATE: ";LDATE$
5010 PLOT 3,18,1:PRINT "INCOME    EXPEND    ALLOTS          BALANCE"
5020 ISUM= 0:ESUM= 0:ASUM= 0:PBAL= 0
5030 FOR I= 1TO 7:ISUM= ISUM+ INC(I,2):PBAL= PBAL+ INC(I,2)
5040 PRINT "";INC(I,1);:PLOT 3,4,I+ 1:PRINT INC$(I);" ";:MO= INC(I,2):GOSUB 500:PRINT MO$;
5050 MO= PBAL:GOSUB 500:PRINT "                           ";MO$
5060 NEXT I
5070 FOR I= 1TO 15:ESUM= ESUM+ EX(I,2):PBAL= PBAL- EX(I,2)
5080 PRINT "";EX(I,1);:PLOT 3,4,I+ 8:PRINT EX$(I);"";:MO= EX(I,2):GOSUB 500:PRINT "           ";MO$;
5090 MO= PBAL:GOSUB 500:PRINT "                 ";MO$
5100 NEXT I
5110 FOR I= 1TO 5:ASUM= ASUM+ BANK(I,2):PBAL= PBAL- BANK(I,2)
5120 PRINT "";BANK(I,1);:PLOT 3,4,I+ 23:PRINT BANK$(I);:MO= BANK(I,2):GOSUB 500:PRINT "                     ";MO$;
5130 MO= PBAL:GOSUB 500:PRINT "       ";MO$
5140 NEXT I
5150 PRINT "                 ========= ========= =========       ========="
5160 PRINT "    TOTAL        ";:MO= ISUM:GOSUB 500:PRINT MO$;" ";:MO= ESUM:GOSUB 500:PRINT MO$;" ";
5170 MO= ASUM:GOSUB 500:PRINT MO$;"       ";:MO= ISUM- ESUM- ASUM:GOSUB 500:PRINT MO$
5190 RETURN
9000 PRINT :PLOT 12,3,5,12:INPUT "LOAD APPROPRIATE PROGRAM DISK AND HIT <RETURN> ";A:LOAD "MENU":RUN
10000
10010 PLOT 15,12,3,23,5
10020 PRINT "ENTER INCOME DETAILS"
10040 PLOT 3,1,10:PRINT "ACCOUNT NUMBER"
10050 PLOT 3,1,11:PRINT "ACCOUNT NAME"
10060 PLOT 3,1,13:PRINT "DATE"
10070 PLOT 3,1,14:PRINT "DETAILS"
10080 PLOT 3,1,15:PRINT "AMOUNT                 $"
10090 PLOT 3,25,10:PRINT ""ACCT$""
10100 PLOT 3,25,11:PRINT ""NAME$""
10110 PLOT 3,25,13:PRINT "        "
10120 PLOT 3,25,14:PRINT "            "
10130 PLOT 3,25,15:PRINT "         "
10140
10150 PLOT 6,2,3,0,17:GOSUB 20000
10210 X= 25:Y= 13:ML= 8:NA$= "A":PLOT 6,38
10230 GOSUB 350:IF KB= 9GOTO 10230
10250 TD$= FI$:GOSUB 21045:IF ERR= 1THEN PLOT 7:GOTO 10210
10255 DATE$= TD$
10260 X= 25:Y= 14:ML= 12:NA$= "A":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 10210
10300 DETAILS$= FI$
10310 X= 25:Y= 15:ML= 9:NA$= "N":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 10260
10350 AMT= VAL (FI$):PLOT 6,2:RETURN
11000
11010 PLOT 15,12,3,23,5
11020 PRINT "ENTER TRANSACTION DETAILS"
11030 PLOT 3,1,10:PRINT "ACCOUNT NUMBER"
11040 PLOT 3,1,11:PRINT "ACCOUNT NAME"
11050 PLOT 3,1,12:PRINT "ACCOUNT DETAILS"
11060 PLOT 3,1,13:PRINT "BALANCE                $"
11070 PLOT 3,1,14:PRINT "LAST TRANSACTION DATE"
11071 PLOT 3,1,16:PRINT "DATE(D.M.Y)"
11072 PLOT 3,1,17:PRINT "FROM WHOM"
11073 PLOT 3,1,18:PRINT "AMOUNT                 $"
11080 PLOT 3,25,10:PRINT ""ACCT$""
11090 PLOT 3,25,11:PRINT ""ANAME$""
11091 PLOT 3,25,12:PRINT ""NUM$""
11092 PLOT 3,25,13:PRINT ""BAL""
11093 PLOT 3,25,14:PRINT ""LDATE$""
11100 PLOT 3,25,16:PRINT "        "
11110 PLOT 3,25,17:PRINT "            "
11120 PLOT 3,25,18:PRINT "         "
11130
11140 PLOT 6,2,3,0,20:GOSUB 20000
11150 X= 25:Y= 16:ML= 8:NA$= "A":PLOT 6,38
11170 GOSUB 350:IF KB= 9GOTO 11170
11190 TD$= FI$:GOSUB 21045:IF ERR= 1THEN PLOT 7:GOTO 11150
11195 DATE$= TD$
11200 X= 25:Y= 17:ML= 12:NA$= "A":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 11150
11240 DETAILS$= FI$
11250 X= 25:Y= 18:ML= 9:NA$= "N":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 11200
11290 AMT= VAL (FI$):PRINT :PLOT 6,2:RETURN
12000
12010 PLOT 12,3,23,20
12020 PRINT "ENTER EXPENDITURE DETAILS"
12030 PLOT 3,0,18,15
12040 PLOT 3,1,22:PRINT "ACCOUNT NUMBER"
12050 PLOT 3,1,23:PRINT "ACCOUNT NAME"
12060 PLOT 3,1,24:PRINT "BUDGET CATEGORY"
12070 PLOT 3,1,25:PRINT "TAXABLE (Y/N)?"
12080 PLOT 3,1,26:PRINT "TIMES PER YEAR"
12090 PLOT 3,1,27:PRINT "FORECAST AMOUNT        $"
12100 PLOT 3,1,28:PRINT "LIABILITY A/C NUMBER"
12110 PLOT 3,1,29:PRINT "INCOME A/C NUMBER"
12120 PLOT 3,1,30:PRINT "BALANCE                $"
12130 PLOT 3,25,22:PRINT ""NUM""
12140 PLOT 3,25,23:PRINT "            "
12150 PLOT 3,25,24:PRINT " "
12160 PLOT 3,25,25:PRINT " "
12170 PLOT 3,25,26:PRINT "  "
12180 PLOT 3,25,27:PRINT "         "
12190 PLOT 3,25,28:PRINT "  "
12200 PLOT 3,25,29:PRINT "  "
12210 PLOT 3,25,30:PRINT "         "
12220
12230 PLOT 6,2
12240 X= 25:Y= 23:ML= 12:NA$= "A":PLOT 6,38
12260 GOSUB 350:IF KB= 9GOTO 12260
12280 EX$(NUM)= FI$:EX$(NUM)= EX$(NUM)+ MID$ (NLNGTH$,LEN (EX$(NUM))+ 1)
12290 X= 25:Y= 24:ML= 1:NA$= "A":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 12240
12330 BUDCAT$= FI$
12340 X= 25:Y= 25:ML= 1:NA$= "A":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 12290
12380 TAX$= FI$
12390 X= 25:Y= 26:ML= 2:NA$= "A":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 12340
12430 FRQ$= FI$
12440 X= 25:Y= 27:ML= 9:NA$= "N":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 12390
12470 FCAST= VAL (FI$)
12480 X= 25:Y= 28:ML= 2:NA$= "A":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 12440
12510 LIABAC$= FI$
12520 X= 25:Y= 29:ML= 2:NA$= "A":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 12480
12550 INCAC$= FI$
12560 X= 25:Y= 30:ML= 9:NA$= "N":PLOT 6,38:GOSUB 350:IF KB= 9GOTO 12520
12590 BAL= VAL (FI$):PLOT 6,2:RETURN
19997
19998
19999
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
21000
21010
21020
21030
21040
21045 ERR= 0:IF LEN (TD$)= 0THEN ERR= 1:GOTO 21120
21047 FOR JI= 1TO LEN (TD$):T6= ASC (MID$ (TD$,JI,1)):IF NOT (T6= 46OR (T6> 47AND T6< 58))THEN ERR= 1:GOTO 21120
21049 NEXT JI
21050 STRMTH$= "  JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
21060 IF  MID$ (TD$,2,1)= "."THEN TD$= "0"+ TD$
21070 IF  MID$ (TD$,5,1)= "."THEN TD$= LEFT$ (TD$,3)+ "0"+ RIGHT$ (TD$,4)
21080 MM= VAL (MID$ (TD$,4,2))
21090 MM$= " "+ MID$ (STRMTH$,MM* 3,3)+ " "
21100 TD$= LEFT$ (TD$,2)+ MM$+ RIGHT$ (TD$,2)
21110 IF  LEFT$ (TD$,1)= "0"THEN TD$= " "+ RIGHT$ (TD$,8)
21120 RETURN
29980
29990
30000 STRMTH$= "  JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
30010 Y1= VAL (RIGHT$ (D7$,2)):D= VAL (LEFT$ (D7$,2))
30020 FOR K= 1TO 12:IF MID$ (STRMTH$,K* 3,3)= MID$ (D7$,4,3)THEN M= K:GOTO 30040
30030 NEXT K
30040 Y1= Y1+ 1900
30050 C9= .001
30060 M9= (- 1)* INT (((14- M)/ 12)+ C9)
30070 J1= D- 2447095+ INT ((1461* (Y1+ 4800+ M9)/ 4)+ C9)
30080 J2= J1+ INT ((367* (M- 2- 12* M9)/ 12)+ C9)
30090 J1= J2- INT ((3* (Y1+ 4900+ M9)/ 400)+ C9)
30100 J2= J1
30110 RETURN :END