Listing of file='BKEEP.BAS;01' on disk='vmedia/ncc_17-sector.ccvf'
100 GOTO 1670 110 CLEAR 500:DIM T$(40),F$(6),O$(1),T2$(50),A(10),C1(10),Y1(10):FILE "T",1570:F$= "HOUSE" 120 PLOT 6,6,14,12:PRINT ,,"SIMPLE BOOKKEEPING PROGRAM":PRINT 130 PRINT "PLEASE ENTER THE NUMBER OF THE FUNCTION" 140 PRINT "LISTED BELOW WHICH YOU WISH TO PERFORM.":PRINT 150 PRINT ,"1 = CREATE A NEW DATA FILE FOR BOOKKEEPING" 160 PRINT ,"2 = ADD INCOME/EXPENSE CATEGORIES" 170 PRINT ,"3 = START NEW YEAR" 180 PRINT ,"4 = START NEW MONTH" 190 PRINT ,"5 = ADD ENTRIES (INCOME OR EXPENSE) TO THE DATA FILE" 200 PRINT ,"6 = PRINT MONTHLY SUMMARY" 210 PRINT ,"7 = PRINT DATA INPUT SHEET" 220 PRINT ,"8 = HELP/PROGRAM INFORMATION" 230 PRINT ,"9 = END THIS PROGRAM":PRINT 240 INPUT "WHAT FUNCTION DO YOU WANT TO PERFORM? ";O 250 IF O< > INT (O)THEN PRINT "ERROR : MUST BE AN INTEGER":GOTO 240 260 IF O< 1OR O> 9THEN PRINT "ERROR : OUT OF RANGE (1 TO 9)":GOTO 240 270 ON OGOTO 280,340,550,620,680,890,1200,1310,1300 280 PLOT 6,6,15,12 290 PRINT "ENTER NAME OF NEW DATA FILE (6 CHAR MAX) : ";:INPUT F$ 300 IF LEN (F$)> 1AND LEN (F$)< = 6THEN 320 310 GOSUB 1440:GOTO 290 320 FILE "N",F$,50,54,4:FILE "R",1,F$,5:NA= 0:HL= 1:LL= 1 330 PUT 1,50;NA,HL,LL:FILE "C",1:INPUT "FILE CREATED - HIT RETURN TO CONTINUE ";O:GOTO 120 340 GOSUB 1470 350 PRINT "ENTER NAME OF INCOME/EXPENSE CATEGORY(40 CHAR MAX) NUMBER ";NA+ 1:INPUT T$:IF T$= "0"THEN 540 360 IF LEN (T$)> 1AND LEN (T$)< = 40THEN 380 370 GOSUB 1440:GOTO 350 380 C1= 0:Y1= 0 390 INPUT "IS THIS AN INCOME(I) OR EXPENSE(E) CATEGORY ? ";O$ 400 IF LEFT$ (O$,1)= "I"THEN S1= 1:GOTO 430 410 IF LEFT$ (O$,1)= "E"THEN S1= - 1:GOTO 430 420 GOTO 390 430 PRINT "NAME = ";T$,"ACCT. # ";NA+ 1,O$ 440 INPUT "IS THIS CATEGORY CORRECT ? ";C$ 450 IF LEFT$ (C$,1)= "Y"THEN 480 460 IF LEFT$ (C$,1)= "N"THEN 350 470 GOTO 430 480 NA= NA+ 1:IF NA> = 50THEN GOSUB 1440 490 PUT 1,NA;T$[40],S1,C1,Y1 500 INPUT "DO YOU WANT TO ADD ANOTHER CATEGORY TO THIS FILE ? ";U$ 510 IF LEFT$ (U$,1)= "Y"THEN 350 520 IF LEFT$ (U$,1)= "N"THEN 540 530 GOTO 500 540 PUT 1,50;NA:FILE "C",1:GOTO 120 550 GOSUB 1470:PRINT :PRINT :PRINT ,,"WORKING":FOR I= 1TO NA:GET 1,I;T$[40],S1,C1,Y1 560 C1= 0:Y1= 0:PUT 1,I;T$[40],S1,C1,Y1:NEXT I 570 HL= 1:LL= 1:PUT 1,50;NA,HL,LL:FILE "C",1:PLOT 12 580 PRINT :PRINT :PRINT "FILE IS SET FOR A NEW YEAR":PRINT :PRINT 590 PRINT "REMEMBER THAT ALL LINE NUMBERS ARE SET TO 1.":PRINT :PRINT :PRINT 600 INPUT "HIT RETURN TO CONTINUE ";O 610 GOTO 120 620 GOSUB 1470:PRINT :PRINT :PRINT ,,"WORKING":FOR I= 1TO NA:GET 1,I;T$[40],S1,C1,Y1:C1= 0 630 PUT 1,I;T$[40],S1,C1,Y1:NEXT I 640 LL= HL:PUT 1,50;NA,HL,LL 650 FILE "C",1:PLOT 12:PRINT :PRINT :PRINT 660 PRINT ,"FILE IS SET FOR NEW MONTH":PRINT :PRINT :PRINT 670 INPUT "HIT RETURN TO CONTINUE ";O:GOTO 120 680 GOSUB 1470:PLOT 6,6,15,12:PRINT ,,"ACCOUNT CATEGORIES ARE :" 690 FOR I= 1TO NA:GET 1,I;T$[40],S1:PLOT 6,6,27,24 700 IF S1= 1THEN V$= "I" 710 IF S1= - 1THEN V$= "E" 720 L= 1:IF I/ 2= INT (I/ 2)THEN L= 37 730 PRINT TAB( L);I;TAB( L+ 4);LEFT$ (T$,20);TAB( L+ 25);V$; 740 NEXT I:XQ= 0:YQ= INT (NA/ 2+ .5)+ 3:HQ= 32- YQ:WQ= 64:CQ= 1:GOSUB 1590 750 PLOT 6,6,27,24 760 GOSUB 1630 770 PRINT "ENTER ACCOUNT #0 TO END INPUT":GOSUB 1630 780 PRINT "LINE # ";HL,"AMOUNT($) ";:INPUT A 790 GOSUB 1630 800 PRINT ,,"ACCOUNT # ";:INPUT A2:IF A2> 0THEN 830 810 FILE "C",1:PLOT 27,11,6,6,14,12:PRINT :PRINT :PRINT :PRINT ,,"DATA ENTRY COMPLETE" 820 PRINT :PRINT :PRINT ,,;:INPUT "HIT RETURN TO CONTINUE ";O:GOTO 120 830 IF A2< > INT (A2)THEN GOSUB 1630:PRINT "ERROR :MUST BE AN INTEGER!!":GOTO 790 840 IF A2< = NATHEN 860 850 GOSUB 1630:PRINT ,"ACCOUNT NUMBERS IN RANGE OF 1 - ";NA:GOTO 760 860 GET 1,A2;T$[40],S1,C1,Y1:A= A* S1:C1= C1+ A:Y1= Y1+ A 870 PUT 1,A2;T$[40],S1,C1,Y1 880 HL= HL+ 1:PUT 1,50;NA,HL,LL:GOTO 760 890 GOSUB 1470:PLOT 6,6,15:PRINT "ENTER CURRENT MONTH AND YEAR FOR TITLE OF REPORT (NO COMMA'S)":INPUT T2$ 900 P$= "":INPUT "DO YOU WANT THIS PRINTED ON THE PRINTER ?";P$ 910 PRINT "HIT RETURN WHEN READY TO PRINT ";:INPUT Z:PLOT 6,6,15,12 920 IF LEFT$ (P$,1)= "Y"THEN GOSUB 1460 930 PRINT :PRINT :PRINT :PRINT :PRINT TAB( 28);F$:PRINT TAB( 16);"SUMMARY REPORT FOR ";T2$:PRINT :PRINT 940 PRINT "ACCT.";TAB( 15);"ACCOUNT";TAB( 40);"TYPE";TAB( 46);"CURRENT";TAB( 55);"YEAR TO" 950 PRINT " #";TAB( 15);"CATEGORY";TAB( 39);"(I/E)";TAB( 47);"MONTH";TAB( 55);"TO DATE" 960 PRINT :PRINT :E1= 0:E2= 0:I1= 0:I2= 0 970 FOR I= 1TO NA:GET 1,I;T$[40],S1,C1,Y1 980 C1= ABS (C1)* 100:C1= INT (C1+ .005) 990 Y1= ABS (Y1)* 100:Y1= INT (Y1+ .005) 1000 IF S1= 1THEN 1020 1010 E1= E1+ C1:E2= E2+ Y1:GOTO 1030 1020 I1= I1+ C1:I2= I2+ Y1 1030 IF S1= 1THEN V$= "I" 1040 IF S1= - 1THEN V$= "E" 1050 C1$= " "+ STR$ (C1):Y1$= " "+ STR$ (Y1) 1060 E1$= " "+ STR$ (E1):E2$= " "+ STR$ (E2) 1070 I1$= " "+ STR$ (I1):I2$= " "+ STR$ (I2) 1080 N1$= " "+ STR$ (I1- E1):N2$= " "+ STR$ (I2- E2) 1090 PRINT I;TAB( 5);LEFT$ (T$,35);TAB( 42);V$;TAB( 44); 1100 PRINT MID$ (C1$,LEN (C1$)- 7,6);".";RIGHT$ (C1$,2);TAB( 54); 1110 PRINT MID$ (Y1$,LEN (Y1$)- 7,6);".";RIGHT$ (Y1$,2):NEXT I:PRINT :PRINT 1120 PRINT TAB( 15);"GROSS INCOME";TAB( 44);MID$ (I1$,LEN (I1$)- 7,6);".";RIGHT$ (I1$,2); 1130 PRINT TAB( 54);MID$ (I2$,LEN (I2$)- 7,6);".";RIGHT$ (I2$,2) 1140 PRINT :PRINT TAB( 18);"TOTAL EXPENSES";TAB( 44);MID$ (E1$,LEN (E1$)- 7,6);".";RIGHT$ (E1$,2); 1150 PRINT TAB( 54);MID$ (E2$,LEN (E2$)- 7,6);".";RIGHT$ (E2$,2) 1160 PRINT :PRINT TAB( 21);"NET INCOME (CASH BASIS)";TAB( 44);MID$ (N1$,LEN (N1$)- 7,6);"."; 1170 PRINT RIGHT$ (N1$,2);TAB( 54);MID$ (N2$,LEN (N2$)- 7,6);".";RIGHT$ (N2$,2) 1180 PRINT :PRINT TAB( 6);"CURRENT ENTRIES FROM LINE ITEMS ";LL;" THRU ";HL:IF LEFT$ (P$,1)= "Y"THEN PRINT CHR$ (12) 1190 GOSUB 1450:PLOT 6,6,15:FILE "C",1:INPUT "PRESS ENTER TO CONTINUE";X:GOTO 120 1200 PLOT 12:PRINT :PRINT :PRINT :INPUT "ENTER LOWEST LINE NUMBER DESIRED ON THE INPUT SHEET : ";LO:LO= INT (LO) 1210 IF LO< 1THEN PRINT "LOWEST LINE NUMBER ALLOWED IS 1":GOTO 1200 1220 L9$= "":FOR I= 1TO 30:L9$= L9$+ "_":NEXT I:L8$= "_"+ "!"+ LEFT$ (L9$,8)+ "!"+ LEFT$ (L9$,4)+ "!" 1230 L8$= L8$+ LEFT$ (L9$,30)+ "!"+ LEFT$ (L9$,6)+ "!"+ LEFT$ (L9$,10) 1240 GOSUB 1460:PRINT CHR$ (27)CHR$ (121)CHR$ (12):PRINT :PRINT :PRINT TAB( 27);"DATA INPUT SHEET":PRINT 1250 PRINT " LINE";TAB( 7)"AMOUNT"TAB( 15)"ACCT"TAB( 21)"DESCRIPTION"TAB( 52)"DATE"TAB( 60)"REMARKS" 1260 FOR I= LOTO LO+ 39:PRINT TAB( 5)"!"TAB( 14)"!"TAB( 19)"!"TAB( 50)"!"TAB( 57)"!" 1270 I$= "":I$= " "+ STR$ (I):I$= RIGHT$ (I$,4):PRINT I$;L8$:NEXT I:PRINT CHR$ (12) 1280 GOSUB 1450:GOTO 120 1290 PRINT :PRINT :INPUT "HIT RETURN TO CONTINUE ";O:GOTO 120 1300 PLOT 6,2,14,12:PRINT :PRINT :PRINT :PRINT ,"END OF BOOKKEEPING PROGRAM":FOR I= 1TO 2000:NEXT :LOAD "MENU":RUN 1310 PLOT 6,6,15,12:PRINT :PRINT :PRINT 1320 PRINT "THIS IS A SIMPLE BOOKKEEPING SYSTEM" 1330 PRINT "BASED ON THE CONCEPT THAT YOU HAVE LINE" 1340 PRINT "ITEM EXPENSES AND INCOMES WHICH ARE ACCRUED" 1350 PRINT "INTO ACCOUNT CATEGORIES. CURRENT MONTH AND" 1360 PRINT "YEAR-TO-DATE TOTALS ARE KEPT. WHEN YOU CREATE" 1370 PRINT "A NEW FILE,ALL TOTALS ARE SET TO ZERO AS THEY" 1380 PRINT "ARE WITH THE NEW YEAR OPTION BUT WITH THE NEW" 1390 PRINT "MONTH OPTION ONLY THE CURRENT MONTH TOTALS ARE" 1400 PRINT "RESET TO ZERO. PLEASE USE THE OPTION TO PRINT" 1410 PRINT "THE DATA INPUT SHEETS AS THE SYSTEM PROMPTS YOU" 1420 PRINT "FOR INPUT BY LINE ITEM NUMBER.":PRINT :PRINT 1430 INPUT "HIT RETURN TO CONTINUE ";O:GOTO 120 1440 PRINT "ERROR - ENTRY OUT OF RANGE":RETURN 1450 POKE 33289,64:POKE 33265,0:RETURN 1460 PRINT ,,"PRINTING":POKE 33289,80:PLOT 14,27,18,6,27,13:RETURN 1470 PLOT 15,27,4:PRINT "DIR":PLOT 27,27,6,2,15 1480 PRINT :PRINT "HIT RETURN TO USE -";F$;"- DATA FILE OTHERWISE" 1490 INPUT "ENTER NAME OF YOUR DATA FILE (6 CHAR MAX) : ";G$ 1500 IF LEN (G$)= 1THEN 1550 1510 IF LEN (G$)> 1THEN F$= G$ 1520 IF LEN (F$)> 1AND LEN (F$)< = 6THEN 1550 1530 GOSUB 1440 1540 GOTO 1470 1550 FILE "R",1,F$,6:PLOT 12 1560 GET 1,50;NA,HL,LL:RETURN 1570 PRINT :PRINT 1580 PRINT "DISK FILE ERROR - RUN PROGRAM AGAIN ":PRINT :GOTO 1300 1590 GOSUB 1830 1600 ZQ= 28672+ 128* YQ+ XQ+ XQ:AD= TM+ 2:GOSUB 1820 1610 ZQ= 128- WQ- WQ:AD= TM+ 25:GOSUB 1820 1620 POKE TM+ 5,HQ- 1:POKE TM+ 7,WQ* (CQ+ 1):POKE TM+ 19,35* (1- CQ):RETURN 1630 YQ= YQ+ 1:IF YQ> = 32THEN ZZ= CALL (O):YQ= 31 1640 GOSUB 1650:PRINT SPC( WQ)"" 1650 PLOT 3,0,YQ:RETURN 1660 GOSUB 1630:GOTO 1630 1670 GOSUB 1830 1680 RESTORE 1690 1690 DATA 33,-1,-1,6,-1,14,-1,17,128,0,25,126 1700 DATA 17,128,255,25,119,35,-1,13,194,-1,-1 1710 DATA 17,-1,-1,25,5,194,-1,-1,201 1720 IF TM> 65503THEN TM= TM- 32:GOTO 1750 1730 FOR I= 1TO 32:READ A 1740 IF A> = 0AND A< > PEEK (TM+ 1)THEN I= 32:TM= TM- 32:NEXT 1750 RESTORE 1690 1760 FOR I= 1TO 32:READ A:POKE TM+ I,A- (A< 0):NEXT 1770 ZQ= TM+ 1:AD= 33283:GOSUB 1820 1780 ZQ= TM:AD= ER:GOSUB 1820 1790 ZQ= TM+ 6:AD= TM+ 30:GOSUB 1820 1800 ZQ= TM+ 8:AD= TM+ 22:GOSUB 1820 1810 CLEAR 50:GOTO 110 1820 ZZ= INT (ZQ/ 256):POKE AD,ZQ- 256* ZZ:POKE AD+ 1,ZZ:RETURN 1830 ER= 32940:TM= 256* PEEK (ER+ 1)+ PEEK (ER):RETURN