400 CLOSE 1:OPEN "R",1, FZ$, 128:FIELD 1,5 AS NUM$,45 AS PAY$,25 AS FOR1$,6 AS CHK$,6 AS DEP$,1 AS OUT1$,2 AS CODE$,10 AS CKDATE$,1 AS PNT$,27 AS MISC$:RETURN
410 CLOSE 2:OPEN "R",2, FX$, 64 :FIELD 2,30 AS LEDGER$,34 AS MISC1$:RETURN
420 CLOSE 3:OPEN "R",3, FY$, 128 :FIELD 3,30 AS PAYEE$, 25 AS STRT$, 25 AS STRT2$,15 AS CITY$, 2 AS STATE$, 10 AS ZIP$, 3 AS GLA$ , 18 AS MISC$:RETURN
660 PRINT"Directing output to printer. Please wait...";:CLOSE#3:OPEN "LPT1:" FOR OUTPUT AS #3:CC1$="":RETURN
670 DEF SEG=&H40:KBLA=&H17:KBS=PEEK(KBLA):STATE=(KBS AND TESTBIT)=TESTBIT:IF NOT STATE AND R$="U"OR STATE AND R$="L"THEN POKE KBLA,KBS XOR TESTBIT
680 DEF SEG:RETURN
690 IF ERR=5 THEN BEEP
700 CLS:PRINT"The date was entered as ";:COLOR 15,0:PRINT V$;:COLOR 7,0:PRINT" and contains an error":PRINT:PRINT"Please check the format and enter the date below in the
710 PRINT"format MM/DD/YY (ie. 7/8/84 or 12/15/87) within the range of YY = 80 to 99":PRINT:INPUT"What is the DATE? ",V$:RESUME
720 ON ERROR GOTO 690
730 DATE$=V$:RETURN
740 AA2$="Rec Check ":AA3$="No. Num Pay To Date Check Deposit":AA4$="### \ \ \ \ \ \ ##,###.## ##,###.##
900 FOR INDEX=1 TO ID(0):GET 1,ID(INDEX):PRINT#3,USING AA4$;ID(INDEX);NUM$;PAY$;CKDATE$;CVS(CHK$);CVS(DEP$):L=L+1:IF B$="1"AND L>50 THEN GOSUB 810:L=0:GOTO 940ELSE IF B$="1"THEN 940
910 IF L>=16 AND B$=""THEN CC1$="PRINTOUT":GOSUB 110
920 IF B$="1"THEN 880
930 IF L>=16 AND B$=""THEN CLS:L=0:B$="":GOSUB 830
960 DATA FORTY:DATA FIFTY:DATA SIXTY:DATA SEVENTY:DATA EIGHTY:DATA NINETY
970 FOR I=1 TO 27:READ M1$(I):NEXT:GOSUB 310:CLS:CC1$="KEY ON":GOSUB 110:GOTO 990
980 OPEN "R",3, FJ$+":CKBOOK. ", 128:FIELD 3,5 AS NUM$,45 AS PAY$,25 AS FOR1$,6 AS CHK$,6 AS DEP$,1 AS OUT1$,2 AS CODE$,10 AS CKDATE$,1 AS PNT$,27 AS MISC$:CLOSE
990 CLS
1000 TESTBIT=&H40:R$="U":CC1$="KEYBOARD":GOSUB 110:PRINT" On which drive is the Checkbook Data (A, B, C, D): ":CC1$="PRESS":GOSUB 110:PRINT:CLS
1010 IF B$="A"OR B$="B"OR B$="C"OR B$="D"OR B$="a"OR B$="b"OR B$="c"OR B$="d"THEN 1020ELSE PRINT" You entered `";B$;"' instead of A, B, C, or D. Please try again.":PRINT:GOTO 1000
1020 FJ$=B$:PRINT"Disk drive `";FJ$;"' has been selected....... ":PRINT:ON ERROR GOTO 980
1030 FILES FJ$+":*. ":PRINT:ON ERROR GOTO 0
1040 PRINT:PRINT:PRINT" Above is a list of available checkbook names. Please select an existing checkbook name or open a new file by entering a new name.
1060 IF INSTR(CCC$,ABC$)<LEN(CCC$)THEN PRINT:PRINT" You have made an error entering the Checkbook File Name. Please use a file name without spaces, such as BUSINESS, BOB, or WIFE. Try again.":PRINT:GOTO 1050
1070 IF LEN(A$)>8 THEN PRINT:PRINT" You entered more than 8 characters for a checkbook name. You must limit the checkbook name to 8 characters. Please try again.":GOTO 1050
1080 IF LEN(A$)>0 THEN FZ$=A$
1090 IF LEN(A$)<1 THEN PRINT:PRINT" You have not entered a checkbook name. Please try again.":PRINT:GOTO 1050
1250 CLS:PRINT:V$="":INPUT"Date of Check: ",V$:IF V$<"1"THEN CLOSE:GOTO 1170
1260 GOSUB 720:GOTO 1240
1270 CLS:GOSUB 1200:LOCATE 1,1:PRINT P$TAB(50)"This will be Record # ";LOC(1):PRINT:N$="":INPUT"Check or Deposit Number: ",N$:IF N$<"1"THEN N$=RIGHT$(STR$(LOC(1)),LEN(STR$(LOC(1)))-1)
1310 DE=0:AC=0:X=0:INPUT"Amount of Check: ",X:CC1$="ROUNDING":GOSUB 110:AC=X:IF AC>0 THEN 1330
1320 X=0:INPUT"Amount of Deposit: ",X:CC1$="ROUNDING":GOSUB 110:DE=X
1330 OC$="":BALANCE=BALANCE+DE-AC:INPUT"Out Code (0=Out, 1=Received on statement): ",OC$:IF OC$<"1"THEN OCC$="Transaction not received on statement
1340 IF OC$="1"THEN OCC$="Transaction received on statement
1350 CLS
1360 GOSUB 1200:LOCATE 2,1:PRINT" Check Number: ";TAB(20)N$:PRINT:PRINT" Payable To: ";TAB(20)P$:PRINT:PRINT" Purpose:";TAB(20)F$:PRINT:N=VAL(GL$):PRINT" Ledger Account:";TAB(20)GL$;TAB(25)M2$(N):PRINT:PRINT" Amount of Check:";TAB(20)AC:PRINT
1370 PRINT" Amount of Deposit:";TAB(20)DE:PRINT:PRINT" Out Code:";TAB(20)OCC$:PRINT:PRINT" Check Book Balance: ";BALANCE:LOCATE 22,11:PRINT"Is this right (Y/N)? ":CC1$="PRESS":GOSUB 110:IF B$="n"OR B$="N"THEN GOSUB 1410:GOTO 1240
1450 LOCATE 6,10:PRINT"Payee: ";PAY$:LOCATE 8,10:PRINT"Check Number: ";NUM$:LOCATE 15,10:PRINT"Press {F9> if this is the correct CHECK.":CC1$="PRESS":GOSUB 110:IF B$="9"THEN 1460ELSE 1430
1660 PRINT"Is this check to be printed on continuous form checks?":PRINT:PRINT"Y = YES":PRINT"N = NO":INPUT"P = ALREADY PRINTED ",PT$:IF PT$="y"THEN PT$="Y"ELSE IF PT$="n"THEN PT$="N"ELSE IF PT$="p"THEN PT$="P
1670 IF PT$="Y"OR PT$="N"OR PT$="P"THEN 1680ELSE CLS:GOTO 1660
1680 GOTO 1760
1690 DE=0:INPUT" New Deposit Amt: ",DE:GOTO 1760
1700 INPUT" New Out Code: ",OC$:GOTO 1760
1710 GOSUB 2440:IF G$>"1"THEN GL$=G$
1720 IF G$<"1"THEN GL$=G$
1730 GOTO 1760
1740 INPUT" New Date: ",V$:GOSUB 720:Z$=V$:V$="":GOTO 1760
1920 COLOR 15,0:LOCATE 25,30,0:PRINT"Continue ";:GOSUB 500:PRINT" {ENTER}";:LOCATE 1,1:PRINT"":COLOR 7,0:RETURN
1930 GOSUB 1920:I=0:FOR I=1 TO 300:X$="":INPUT"Check number ";X$:IF X$<"1"THEN 2000
1940 IF LEN(X$)=5 THEN CKNUM$(I)=X$
1950 IF LEN(X$)=4 THEN CKNUM$(I)=X$+"
1960 IF LEN(X$)=3 THEN CKNUM$(I)=X$+"
1970 IF LEN(X$)=2 THEN CKNUM$(I)=X$+"
1980 IF LEN(X$)=1 THEN CKNUM$(I)=X$+"
1990 AMT(I)=0:INPUT"Amount of check ";AMT(I):PRINT:NEXT
2000 CC1$="ENTER":GOSUB 110:CC1$="OPEN FZ$":GOSUB 110:CLS:PRINT"Writing Checks on Statement to Checkbook":PRINT:FOR ID=1 TO 5000:GET 1,ID:F=0:J=0:IF NUM$=STRING$(5,0)THEN 2090
2010 IF OUT1$="1"THEN 2080
2020 IF NUM$=STRING$(5,15)THEN 2250
2030 IF CHK$=STRING$(6,0)OR CHK$=STRING$(6,15)THEN 2080
2040 FOR J=1 TO I:IF AMT(J)<CVS(CHK$)+5.000001E-03 AND AMT(J)>CVS(CHK$)-5.000001E-03 THEN 2050ELSE 2060
2050 IF NUM$=CKNUM$(J)THEN OT$="1":LSET OUT1$=OT$:OT$=" ":PUT 1,ID:F=1:PRINT NUM$:GOTO 2070
2060 NEXT J:GOTO 2080
2070 AMT(J)=0:CKNUM$(J)="
2080 NEXT ID
2090 K=0:CLS:PRINT"No match found .....":PRINT:PRINT"Check Number Amount":AA1$="\ \ $$######,.##":FOR K=1 TO I:IF CKNUM$(K)>""AND AMT(K)>0 THEN PRINT USING AA1$;CKNUM$(K);AMT(K)
2100 NEXT:CC1$="ENTER":GOSUB 110:J=0:CLOSE:I=0:ID=0:CLS:GOSUB 1920:FOR I=1 TO 200:X$="":INPUT"Deposit number ";X$:IF X$<"1"THEN 2170
2110 IF LEN(X$)=5 THEN DEPNUM$(I)=X$
2120 IF LEN(X$)=4 THEN DEPNUM$(I)=X$+"
2130 IF LEN(X$)=3 THEN DEPNUM$(I)=X$+"
2140 IF LEN(X$)=2 THEN DEPNUM$(I)=X$+"
2150 IF LEN(X$)=1 THEN DEPNUM$(I)=X$+"
2160 AM(I)=0:INPUT"Amount of deposit ";AM(I):PRINT:NEXT
2170 CC1$="ENTER":GOSUB 110:CC1$="OPEN FZ$":GOSUB 110:CLS:PRINT"Writing Deposits on Statement to Checkbook":PRINT:FOR ID=1 TO 5000:GET 1,ID:J=0:IF NUM$=STRING$(5,0)THEN 2270
2180 IF OUT1$="1"THEN 2260
2190 IF NUM$=STRING$(5,15)THEN 2260
2200 IF DEP$=STRING$(6,15)THEN 2260
2210 IF DEP$=STRING$(6,0)THEN 2260
2220 FOR J=1 TO I:IF AM(J)<CVS(DEP$)+5.000001E-03 AND AM(J)>CVS(DEP$)-5.000001E-03 THEN 2230ELSE 2240
2230 IF NUM$=DEPNUM$(J)THEN OT$="1":LSET OUT1$=OT$:OT$=" ":PUT 1,ID:PRINT NUM$:GOTO 2250
2240 NEXT J:GOTO 2260
2250 AM(J)=0:DEPNUM$(J)="
2260 NEXT ID
2270 K=0:CLS:PRINT"No match found.....":PRINT:PRINT"Deposit Number Amount":FOR K=1 TO I:IF DEPNUM$(K)>""AND AM(K)>0 THEN PRINT USING AA1$;DEPNUM$(K);AM(K)
2280 NEXT:CC1$="ENTER":GOSUB 110:CLOSE:GOTO 1110
2290 CLS:ID2=0:ID1=0:B$="":CC1$="SCRN:":GOSUB 110:AA1$="Listing ALL Checks/Deposits":CC1$="STRINGS":GOSUB 110:LOCATE 12,30:INPUT"Beginning record number: ",ID2:LOCATE 14,30:INPUT"Ending record number: ",ID1:CLS:IF ID1=0 THEN ID1=2000
2680 CC1$="SORT":GOSUB 110:AA1$="Listing ALL Checks/Deposits":CC1$="STRINGS":GOSUB 110:GOSUB 870:PRINT#3,"":PRINT#3,USING" Totals for this Account ##,###.## ###,###.##";TCHK;TDEP:IF TC=0 THEN TC=1
2690 IF TD=0 THEN TD=1
2700 PRINT#3,"":PRINT#3,USING" Percent of Total ###.## ###.##";TCHK/TC;TDEP/TD
3320 CLS:PRINT"Deleting Record Data":PRINT:INPUT"Record # ",ID:IF ID<1 THEN CLOSE 3:GOTO 3040
3330 GET 3,ID:IF PAYEE1$=STRING$(30,0)OR PAYEE$=STRING$(30,15)THEN 3320
3340 LOCATE 6,10:PRINT"Payee: ";PAYEE$:LOCATE 15,10:PRINT"Press {F9> if this is the correct PAYEE or press {ENTER} to continue.":CC1$="PRESS":GOSUB 110:IF B$="9"THEN 3360
3400 LOCATE 6,10:PRINT"Ledger: ";LEDGER$:LOCATE 15,10:PRINT"Press {F9> if this is the correct LEDGER or press {ENTER} to continue.":CC1$="PRESS":GOSUB 110:IF B$="9"THEN 3410ELSE 3380
3730 PRINT"╜ ╚═╛ ╚═╛ ╜ ╜ ╚═╛ ╚═╛ ╜ ╜ ╜ ╜ ╜ ╜ ╜ ╜ ╜ ╜ ╚═╝ ╚═╛ ╜╙ 2.1":LOCATE 6,20,0:PRINT"For the IBM and MS DOS Personal Computers":COLOR 7,0:LOCATE 7,21:PRINT"(c) copyright Charles F. Little - 1984":LOCATE 8,15
3740 PRINT"Portions Copyrighted by MICROSOFT CORPORATION, 1982":LOCATE 10,15:PRINT"If you are using this program and find it of value,":LOCATE 11,25:PRINT"a $25 contribution is suggested.":LOCATE 13,30:PRINT"Charles F. Little":LOCATE 14,30
3750 PRINT"807 Lipton Drive":LOCATE 15,30:PRINT"Newport News, Va. 23602":LOCATE 16,30:PRINT"Source ID BBI405":LOCATE 18,9:PRINT"You are encouraged to copy this program and share it with others":LOCATE 19,8
3760 PRINT"on the conditions that the program is not distributed in modified":LOCATE 20,12:PRINT"form, that no fee or consideration is charged, and that":LOCATE 21,20:PRINT"this notice is not bypassed or removed.":COLOR 15,0:LOCATE 25,15
3810 CLS:PRINT:PRINT TAB(32)"PC-CHECK MANAGER":PRINT:PRINT"This program is used to manage your checking account. You enter checks":PRINT"through data entry, balance your check book using Balancing Checkbook, and
3820 PRINT"obtain ledger summaries to sort your checks at income tax time. Additional":PRINT"documentation is available in the file CK.DOC. Use the batch file DOC.BAT":PRINT"or use your word processer to retrieve the ASCII file.":PRINT
3830 PRINT"This program is written in BASIC and the source code is available for easy":PRINT"maintenance. You are incouraged to modify this program for your own use.":PRINT"Please do not distribute this program in a modified form, although if your
3840 PRINT"improvement is beneficial, please send a copy to the author.":PRINT:PRINT:PRINT"Updates will be made continuously. You can obtain an updated copy of this":PRINT"program any time by sending a blank diskette and $3.00 for postage and
3850 PRINT"handling. A new disk will be furnished for $8.00":PRINT:PRINT TAB(30)"Charles Little":PRINT TAB(30)"807 Lipton Drive":PRINT TAB(30)"Newport News, VA 23602":COLOR 15,0:LOCATE 25,30:PRINT"{ENTER} ══> Continue ";:COLOR 7,0:GOSUB 510:RETURN
ive":PRINT TAB(30)"Newport News, VA 23602":COLOR 15,0:LOCATE 25,30:PRINT"{ENTER} ══> Continue ";:C