Listing of file='RECCE.BAS;01' on disk='vmedia/home_budget_2-sector.ccvf'
0 REM ************* BANK RECONCILIATION ******************* 1 REM 50 CLEAR 10000 51 DD= PEEK (65535):DSK$= MID$ (STR$ (DD- 1),2)+ ":" 53 STRMTH$= " JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" 54 GOTO 350 56 REM 60 REM ****************** YES/NO ****************)********** 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 "ODATA :Q$= "N":RETURN 68 PLOT 7,26,32,26:GOTO 60 70 REM 72 REM ************** INKEY (SINGLE KEY INPUT) ************* 74 POKE 33278,0 76 Y= PEEK (33278) 78 IF Y= 0GOTO 76 80 Y$= CHR$ (Y):RETURN 82 REM 90 REM ****************** YES/NO ****************)********** 92 POKE 33278,0 94 IF PEEK (33278)= 0GOTO 94 96 IF PEEK (33278)= 89THEN Q$= "Y":RETURN 98 IF PEEK (33278)= 78THEN Q$= "N":RETURN 100 PLOT 7,26,32,26:GOTO 92 102 REM 110 REM ************* FORMAT MONEY ************************** 112 REM MO ->->-> MO$ 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$)> = 6THEN 120 119 LH$= " "+ LH$:GOTO 118 120 RH$= MID$ (RH$,3,2):MO$= LH$+ "."+ RH$:RETURN 121 REM 122 REM ************* MAIN PROGRAM ************************* 123 REM 350 NLNGTH$= " " 392 PLOT 12,3,10,12:PRINT "BEFORE RUNNING THIS PROGRAM, USE THE APPROPRIATE" 394 PLOT 3,10,13:PRINT "PROGRAMS TO RECORD ANY DEBITS AND/OR CREDITS" 396 PLOT 3,10,14:PRINT "WHICH ARE INCLUDED ON THE STATEMENT, BUT HAVE" 398 PLOT 3,10,15:PRINT "NOT BEEN RECORDED." 400 PLOT 3,10,17:PRINT "ENTER 1 TO EXIT THIS PROGRAM" 402 PLOT 3,10,18:PRINT " 2 TO CONTINUE ";:GOSUB 74:IF Y$= "1"THEN 9000 404 IF Y$< > "2"THEN PLOT 7:GOTO 402 420 PRINT :PLOT 12,14,3,24,1:PRINT "BANK RECONCILIATION":PLOT 15 430 PLOT 3,20,5:PRINT "OPTIONS ARE:" 440 PLOT 3,20,7:PRINT "1. RECONCILE AN ACCOUNT" 470 PLOT 3,20,8:PRINT "2. END" 480 PLOT 3,5,22:PRINT "PLEASE MAKE A SELECTION....";:GOSUB 72:ANS= VAL (Y$) 490 IF NOT ((ANS> = 1AND ANS< = 2))THEN PLOT 7:GOTO 420 500 ON ANSGOSUB 995,9000 510 RUN 980 REM 990 REM ***************** MAIN PROGRAM ********************** 995 REM 1000 PRINT :PLOT 12,15,3,5,2:PRINT "THERE IS A POSSIBILITY THAT THERE MAY BE SOME DATA" 1010 PLOT 3,5,3:PRINT "ON LAST YEAR'S DISK, WHICH HAS YET TO BE TAKEN INTO " 1020 PLOT 3,5,4:PRINT "ACCOUNT BEFORE THE STATEMENT CAN BE RECONCILED." 1030 PLOT 3,5,6:PRINT "IF THIS IS THE CASE, OR EVEN IF YOU ARE NOT SURE WHETHER" 1040 PLOT 3,5,7:PRINT "THERE IS UFRECONCILED DATA ON LAST YEAR'S DISK, ENTER '2'" 1050 PLOT 3,5,8:PRINT "TO THE NEXT SELECTION, AND THE PROGRAM WILL TAKE " 1060 PLOT 3,5,9:PRINT "CARE OF IT." 1070 PLOT 3,5,17:PRINT "ENTER 1. IF DATA ON ONLY ONE DISK" 1080 PLOT 3,5,18,11:PRINT " 2. IF DATA ON MORE THAN ONE DISK ";:GOSUB 74:IF Y$< > "1"AND Y$< > "2"THEN PLOT 7:GOTO 1080 1090 PRINT :SIZE= 150:PASS= 0:IF Y$= "2"THEN FLAG= 1 1100 DIM ACC$(SIZE),AMT(SIZE),DEPDATE$(SIZE),REC(SIZE),DISK(SIZE) 1110 DIM CHECK(SIZE),WD$(SIZE),YN$(SIZE) 1230 IF FLAG= 1THEN PLOT 12,14,3,10,15:INPUT "LOAD LAST YEAR'S DATA DISK AND HIT <RET> ";A:PLOT 15 1240 IF FLAG= 0THEN PLOT 12,14,3,10,15:INPUT "LOAD THIS YEAR'S DATA DISK AND HIT <RET> ";A:PLOT 15 1250 FILE "R",1,DSK$+ "BNKTIT",1 1260 FILE "R",2,DSK$+ "TRANS",1 1270 GET 1,1;NBANK:GET 2,1;NTRANS 1280 IF NBANK= 2THEN PLOT 7,3,5,16:PRINT "NO BANK ACCOUNTS ON FILE":FOR I= 1TO 1500:NEXT I:FILE "C",1,2:GOTO 1530 1282 IF PASS= 1THEN 1380 1290 PLOT 12,3,1,1:PRINT "CURRENT ACCOUNTS ARE:" 1300 FOR REC= 2TO NBANK- 1 1310 GET 1,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 BKCCT$= Y$ 1360 GET 1,VAL (BKCCT$)+ 1;BNAME$[12],BDETAILS$[13],BBAL,LBDATE$[9]:MO= BBAL:GOSUB 114:BBAL$= MO$ 1370 DSUM= 0:WSUM= 0:TBAL= 0 1380 PLOT 12,3,30,15:PRINT "WORKING" 1390 GOSUB 1560:FILE "C",1,2:REM GET DEPOSITS AND DATES 1401 IF FLAG= 1AND TRANS= 0THEN PLOT 7,12,3,10,15:PRINT "NO UNCLEARED AMOUNTS ON LAST YEAR'S DISK":FLAG= 0:FOR I= 1TO 1500:NEXT :GOTO 1230 1402 IF FLAG= 1AND PASS= 0THEN PLOT 7,12,3,10,15:INPUT "LOAD THIS YEARS DISK AND HIT <RETURN> ";A:PASS= 1:F1= TRANS:GOTO 1250 1404 IF TRANS= 0THEN PLOT 7,12,3,10,15:PRINT "NO UNCLEARED AMOUNTS ON DISK":GOTO 1530 1410 TBAL= DSUM- WSUM 1420 GOSUB 2110:REM SORT DATES 1430 PLOT 12,27,24:PRINT TAB( 2)"DATE CHEQUE ITEM CREDIT DEBIT BALANCE" 1440 UL$= " --------------------------------------------------------------":PRINT UL$ 1450 PRINT 1460 GOSUB 2260:REM PRINT AND EDIT OUTPUT 1464 PLOT 12,3,10,14:INPUT "LOAD FIRST DISK & HIT <RET> ";A:FILE "R",1,DSK$+ "TRANS",1 1466 FOR I= 1TO TRANS:TT= ARDATE(I,2):IF DISK(TT)= 2OR YN$(TT)= "N"THEN 1470 1468 PUT 1,REC(TT),33;YN$(TT)[1] 1470 NEXT I:FILE "C",1:IF FLAG= 0THEN 1485 1472 PLOT 12,3,10,14:INPUT "LOAD SECOND DISK & HIT <RET> ";A:FILE "R",1,DSK$+ "TRANS",1 1474 FOR I= 1TO TRANS:TT= ARDATE(I,2):IF DISK(TT)= 1OR YN$(TT)= "N"THEN 1478 1476 PUT 1,REC(TT),33;YN$(TT)[1] 1478 NEXT I:FILE "C",1 1480 FILE "R",1,DSK$+ "BNKTIT",1:GET 1,VAL (BKCCT$)+ 1;BNAME$[12],BDETAILS$[13],BBAL,LBDATE$[9]:MO= BBAL:GOSUB 114:BBAL$= MO$:FILE "C",1 1484 PRINT UL$ 1485 PLOT 12,3,10,10:INPUT "ENTER FINAL BALANCE ON STATEMENT ";FBAL:FBAL= FBAL+ UD- UW:MO= FBAL:GOSUB 114:FBAL$= MO$ 1487 PLOT 12,14,3,10,0:PRINT "ACCOUNT :";BNAME$;:PLOT 3,35,0:PRINT "NUMBER: ";BDETAILS$;"" 1490 PLOT 3,10,12:PRINT "YOUR BALANCE ";BBAL$ 1495 PLOT 3,10,14:PRINT "ADJUSTED STATEMENT BALANCE ";FBAL$ 1500 PLOT 3,44,15:PRINT "---------" 1505 DFF= BBAL- FBAL:MO= DFF:GOSUB 114:DFF$= MO$ 1510 PLOT 3,10,18:PRINT "YOUR BALANCE MINUS STATEMENT ";DFF$ 1515 PLOT 3,44,19:PRINT "=========" 1520 IF ABS (DFF)< .005THEN PLOT 3,10,29:PRINT "YOUR ACCOUNTS BALANCE":GOTO 1530 1525 PLOT 7,7,7,7,7,3,10,29:PRINT "YOU HAVE A PROBLEM" 1530 PLOT 3,10,31:INPUT "HIT <RETURN> TO CONTINUE ";A:RETURN 1555 REM 1560 REM ********************* GET DEPOSITS AND DATES ******** 1570 REM 1580 IF PASS= 0THEN TRANS= 0 1600 FOR RICRD= 2TO NTRANS- 1 1610 GET 2,RICRD;T2$[2]:GET 2,RICRD,32;WD$[1],YN$[1] 1620 IF NOT (VAL (T2$)= VAL (BKCCT$)AND YN$< > "Y")THEN 1650 1630 TRANS= TRANS+ 1:GET 2,RICRD,3;DEPDATE$(TRANS)[9],ACC$(TRANS)[12],CHECK(TRANS),AMT(TRANS),WD$(TRANS)[1]:REC(TRANS)= RICRD 1632 IF PASS= 0THEN DISK(TRANS)= 1 1634 IF PASS= 1THEN DISK(TRANS)= 2 1640 DSUM= DSUM+ AMT(TRANS) 1650 NEXT RICRD 1660 RETURN 1670 REM 1800 REM ******** CONVERT JULIAN DAY TO DATE **************** 1810 REM 1820 J3= INT (J2+ C9) 1830 D8= J2- J3 1840 J2= J3 1850 L= J2+ 2483589 1860 N= INT ((4* L/ 146097)+ C9) 1870 L= L- INT (((146097* N+ 3)/ 4)+ C9) 1880 Y2= INT ((4000* (L+ 1)/ 1461001)+ C9) 1890 L= L- INT (1461* (Y2/ 4)+ C9)+ 31 1900 M1= INT (80* (L/ 2447)+ C9) 1910 C9= .001 1920 D1= L- INT ((2447* M1/ 80)+ C9) 1930 IF M1> 0GOTO 1950 1940 D1= D1- 1 1950 L= INT ((M1/ 11)+ C9) 1960 D8= INT (10* D8+ .5) 1970 D1= D1+ (D8/ 10) 1980 M1= M1+ 2- 12* L 1990 Y2= 100* (N- 49)+ Y2+ L 2000 RETURN 2010 REM ******* CONVERT DATE TO JULIAN DAY ***************** 2020 REM 2030 Y1= Y1+ 1900 2040 C9= .001 2050 M9= (- 1)* INT (((14- M)/ 12)+ C9) 2060 J1= D- 2447095+ INT ((1461* (Y1+ 4800+ M9)/ 4)+ C9) 2070 J2= J1+ INT ((367* (M- 2- 12* M9)/ 12)+ C9) 2080 J1= J2- INT ((3* (Y1+ 4900+ M9)/ 400)+ C9) 2090 J2= J1 2100 RETURN 2110 REM ********************* SORT DATES ******************** 2120 REM 2130 DIM ARDATE$(TRANS),ARDATE(TRANS,2) 2140 FOR I= 1TO TRANS 2150 ARDATE$(I)= DEPDATE$(I) 2160 NEXT I 2200 FOR I= 1TO (TRANS) 2210 D7$= ARDATE$(I):GOSUB 2410:ARDATE(I,1)= D7:ARDATE(I,2)= I 2220 NEXT I 2230 GOSUB 2570:REM ! SHELL SORT 2240 RETURN 2250 REM 2260 REM ********************* PRINT OUTPUT ****************** 2270 REM 2280 CR= 0:DR= 0:BAL= 0:SCREEN= 0:ADD= - 25 2300 FOR K= 1TO (TRANS) 2325 PLOT 18:IF DISK(ARDATE(K,2))= 2THEN PLOT 17 2330 MO= AMT(ARDATE(K,2)):GOSUB 114:AMT$= MO$ 2332 IF WD$(ARDATE(K,2))= "W"THEN 2350 2334 BAL= BAL+ AMT(ARDATE(K,2)):MO= BAL:GOSUB 114:BAL$= MO$ 2340 PLOT 3,0,SCREEN+ 3:PRINT DEPDATE$(ARDATE(K,2));TAB( 17)ACC$(ARDATE(K,2));REC(ARDATE(K,2));TAB( 34)AMT$;TAB( 54)BAL$:GOTO 2390 2350 BAL= BAL- AMT(ARDATE(K,2)):MO= BAL:GOSUB 114:BAL$= MO$ 2380 PLOT 3,0,SCREEN+ 3:PRINT DEPDATE$(ARDATE(K,2));TAB( 10)CHECK(ARDATE(K,2));TAB( 17)ACCT$(AR(K,2));REC(ARDATE(K,2));TAB( 44)AMT$;TAB( 54)BAL$ 2390 SCREEN= SCREEN+ 1:IF SCREEN= 25THEN GOSUB 3000:FOR I= 3TO 29:PLOT 3,0,I,11:NEXT I:SCREEN= 0 2395 NEXT K:GOSUB 3000 2400 RETURN 2410 REM ********************** CNVERT DATE TO JD ************ 2420 REM 2430 Y1= VAL (RIGHT$ (D7$,2)):D= VAL (LEFT$ (D7$,2)) 2440 FOR K= 1TO 12:IF MID$ (STRMTH$,K* 3,3)= MID$ (D7$,4,3)THEN M= K:GOTO 2460 2450 NEXT K 2460 GOSUB 2010:D7= J2:RETURN 2470 REM ********************* CNVERT JD TO DATE ************* 2480 REM 2490 J2= D7 2500 GOSUB 1800:REM CNVERT TO DATE 2510 D1$= STR$ (D1):D1$= RIGHT$ (D1#)(LEN (C1$)- 1)):IF LEN (D1$)= 1THEN D1$= " "+ D1$ 2520 Y1$= STR$ (Y2):Y1$= RIGHT$ (Y1$,2) 2530 M1$= MID$ (STRMTH$,M1* 3,3) 2540 D7$= D1$+ " "+ M1$+ " "+ Y1$:RETURN 2550 REM 2560 REM 2570 REM ******************** SHELL SORT ********************* 2580 REM 2590 N= TRANS 2600 INC= (2^ INT (LOG (N)/ LOG (2)))- 1 2610 INC= INT (INC/ 2):IF INC< 1THEN RETURN 2620 FOR I= 1TO INC:FOR J= I+ INCTO NSTEP INC:K= J:T1= ARDATE(K,1):T2= ARDATE(K,2) 2630 IF ARDATE(K- INC,1)< = T1THEN 2650 2640 ARDATE(K,1)= ARDATE(K- INC,1):ARDATE(K,2)= ARDATE(K- INC,2):K= K- INC:IF K> INCTHEN 2630 2650 ARDATE(K,1)= T1:ARDATE(K,2)= T2:NEXT J,I:GOTO 2610 2670 REM 2680 REM *************** MARK CLEARED AMOUNTS **************** 2690 REM 3000 PLOT 3,0,31:PRINT "ENTER Y IF CLEARED, OTHERWISE N " 3010 ADD= ADD+ 25:FOR II= 1TO SCREEN:PLOT 3,63,II+ 2,6,5 3020 GOSUB 92:PLOT 6,2 3050 TT= ARDATE(II+ ADD,2):YN$(TT)= Q$:IF Q$= "Y"THEN 3100 3060 IF WD$(TT)= "W"THEN UW= UW+ AMT(TT):GOTO 3100 3070 UD= UD+ AMT(TT) 3100 NEXT II:RETURN 9000 PRINT :PLOT 12,3,5,12:INPUT "LOAD APPROPRIATE PROGRAM DISK AND HIT <RETURN> ";A:LOAD "MENU":RUN 21000 REM ******************** DATE ROUTINE ******************* 21010 REM 21020 REM INPUT DATE AS D.M.YY ,ASSIGN TO TD$, AND CALL THIS 21030 REM OUTPUT IS TD$ IN THE FO@M OF!(12 JAO 81' 21040 REM 21045 IF LEN (TD$)= 0THEN TD$= ".. XXX YY":GOTO 21120 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$ 00D$,0) 21120 RETURN