home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / misc3 / ckbook.lzh / CKBOOK.BAS next >
BASIC Source File  |  1987-01-22  |  31KB  |  389 lines

  1. 1 CLEAR:KEY OFF:WIDTH 80:GOSUB 3710
  2. 10 CLEAR:KEY OFF:WIDTH 80:DIM LN$(500):DIM ID(500):DIM AMT(500):DIM CKNUM$(500):DIM DEPNUM$(500):DIM AM(500):DIM LIN$(500):DIM M1$(40):DIM S9(20,2):DIM X$(500):DIM NOMATCH$(500):DIM M2$(500):DIM M3$(500):DIM M4$(500):DIM N2(500):DIM N3(500)
  3. 20 GOTO 970
  4. 30 REM             PC-CHECK MANAGER
  5. 40 REM Written by: Charles F. Little
  6. 50 REM             807 Lipton Drive
  7. 60 REM             Newport News, Va 23602
  8. 70 REM                (804) 874-7877
  9. 80 REM
  10. 90 REM   (c) copyright Charles F. Little  -- 1983
  11. 100 REM
  12. 110 CC2$="SUBROUTINES":IF CC1$="BALANCE"THEN GOSUB 840
  13. 120 IF CC1$="DELETE"THEN GOSUB 770
  14. 130 IF CC1$="OPEN FZ$"THEN GOSUB 400
  15. 140 IF CC1$="OPEN FX$"THEN GOSUB 410
  16. 150 IF CC1$="OPEN FY$"THEN GOSUB 420
  17. 160 IF CC1$="STRINGS"THEN GOSUB 740
  18. 170 IF CC1$="SORT"THEN GOSUB 790
  19. 180 IF CC1$="PRINTOUT"THEN COLOR 15,0:GOSUB 430:COLOR 7
  20. 190 IF CC1$="PRESS"THEN GOSUB 510
  21. 200 IF CC1$="KEY"THEN GOSUB 520
  22. 210 IF CC1$="KEY OFF"THEN GOSUB 540
  23. 220 IF CC1$="KEY ON"THEN GOSUB 530
  24. 230 IF CC1$="ROUNDING"THEN GOSUB 550
  25. 240 IF CC1$="ESCAPE"THEN GOSUB 450
  26. 250 IF CC1$="ENTER"THEN COLOR 15,0:GOSUB 580:COLOR 7
  27. 260 IF CC1$="SCRN:"THEN GOSUB 650
  28. 270 IF CC1$="LPT1:"THEN GOSUB 660
  29. 280 IF CC1$="KEYBOARD"THEN GOSUB 670
  30. 290 IF CC1$="OPTION"THEN GOSUB 630
  31. 300 CC1$="":RETURN
  32. 310 FY$="PAYEE.DAT":FX$="LEDGER.DAT":CC1$="OPEN FX$"
  33. 315 IF L2>L3 THEN X=L2:GOTO 320
  34. 316 IF L3>L2 THEN X=L3
  35. 320 FOR Y=1 TO X:M3$(Y)="":M4$(Y)="":N3(Y)=0:M2$(Y)="":N2(Y)=0:NEXT:L2=0:L3=0:GOSUB 110:CC1$="OPEN FY$":GOSUB 110
  36. 330 GET 2:IF LEDGER$=STRING$(30,15)THEN L2=L2+1:GOTO 330
  37. 340 IF LEDGER$=STRING$(30,0)THEN 360
  38. 350 L2=L2+1:M2$(L2)=LEDGER$:N2(L2)=LOC(2):FF2=LOC(2):GOTO 330
  39. 360 GET 3:IF PAYEE$=STRING$(30,15)THEN L3=L3+1:GOTO 360
  40. 370 IF PAYEE$=STRING$(30,0)THEN 390
  41. 380 L3=L3+1:M3$(L3)=PAYEE$:M4$(L3)=GLA$:N3(L3)=LOC(3):FF3=LOC(3):GOTO 360
  42. 390 L4=L1:CLOSE:RETURN
  43. 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
  44. 410 CLOSE 2:OPEN "R",2, FX$, 64 :FIELD 2,30 AS LEDGER$,34 AS MISC1$:RETURN
  45. 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
  46. 430 GOSUB 650:B$="":CC1$="KEY OFF":GOSUB 110:KEY 10,"1":LOCATE 25,1,0:PRINT"Print report ";:GOSUB 500:PRINT" {F10}";:LOCATE 25,30,0:PRINT"Continue ";:GOSUB 500:PRINT" {ENTER}";:LOCATE 25,60,0:PRINT"Main menu ";:GOSUB 500:PRINT" {Esc}";
  47. 440 CC1$="PRESS":GOSUB 110
  48. 450 IF B$=CHR$(27)THEN GOSUB 490:GOTO 1110
  49. 460 IF B$=CHR$(13)THEN B$="":GOTO 490
  50. 470 IF B$="1"THEN GOSUB 660:GOTO 490
  51. 480 GOTO 440
  52. 490 CC1$="KEY ON":GOSUB 110:LOCATE,,1:RETURN
  53. 500 PRINT CHR$(205)+CHR$(205)+CHR$(62);:RETURN
  54. 510 B$="":WHILE B$="":B$=INKEY$:WEND:RETURN
  55. 520 KEY 1,"1"+CHR$(13):KEY 2,"2"+CHR$(13):KEY 3,"3"+CHR$(13):KEY 4,"4"+CHR$(13):KEY 5,"5"+CHR$(13):KEY 6,"6"+CHR$(13):KEY 7,"7"+CHR$(13):KEY 8,"8"+CHR$(13):KEY 9,"9"+CHR$(13):KEY 10,"10"+CHR$(13):RETURN
  56. 530 KEY 1,"1":KEY 2,"2":KEY 3,"3":KEY 4,"4":KEY 5,"5":KEY 6,"6":KEY 7,"7":KEY 8,"8":KEY 9,"9":KEY 10,"10":RETURN
  57. 540 KEY OFF:KEY 1,"":KEY 2,"":KEY 3,"":KEY 4,"":KEY 5,"":KEY 6,"":KEY 7,"":KEY 8,"":KEY 9,"":KEY 10,"":KEY OFF:RETURN
  58. 550 B=X*100:IF B-32767>0 THEN Y=B/32767:Z=INT(Y)*32767:Z1=CINT(B-Z):X=(Z+Z1)/100:GOTO 570
  59. 560 X=CINT(B)/100
  60. 570 RETURN
  61. 580 CC1$="KEY OFF":GOSUB 110:LOCATE 25,30,0:PRINT"Continue ";:GOSUB 500:PRINT" {ENTER}";:LOCATE 25,60,0:PRINT"Main menu ";:GOSUB 500:PRINT" {Esc}";
  62. 590 CC1$="PRESS":GOSUB 110:IF B$=CHR$(27)THEN CLOSE:GOTO 1110
  63. 600 IF B$=CHR$(13)THEN 620
  64. 610 GOTO 590
  65. 620 CC1$="KEY":GOSUB 110:LOCATE,,1:CLS:RETURN
  66. 630 COLOR 15,0:CC1$="KEY ON":GOSUB 110:KEY 10,"A":LOCATE 25,1,0:PRINT" Select Function Key: ";:GOSUB 500:CC1$="PRESS":GOSUB 110:IF B$="A"THEN B$="10
  67. 640 Q=VAL(B$):COLOR 7,0:LOCATE,,1:GOSUB 530:CLS:RETURN
  68. 650 CLOSE#3:OPEN "SCRN:" FOR OUTPUT AS #3:RETURN
  69. 660 PRINT"Directing output to printer.  Please wait...";:CLOSE#3:OPEN "LPT1:" FOR OUTPUT AS #3:CC1$="":RETURN
  70. 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
  71. 680 DEF SEG:RETURN
  72. 690 IF ERR=5 THEN BEEP
  73. 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 
  74. 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
  75. 720 ON ERROR GOTO 690
  76. 730 DATE$=V$:RETURN
  77. 740 AA2$="Rec  Check ":AA3$="No.  Num     Pay To                              Date           Check   Deposit":AA4$="###  \   \   \                               \  \        \ ##,###.##  ##,###.##
  78. 750 AA5$="       Totals                                             ###,###.## ###,###.##":CC4$="* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *":CC3$="*********************** WARNING *************************
  79. 760 CC5$="********** WARNING ********* ":RETURN
  80. 770 CLS:COLOR 15,0:LOCATE 3,26:PRINT"********** WARNING *********  ":COLOR 7:LOCATE 6,24:PRINT USING"This routine will DELETE & DATA";F$:LOCATE 7,25:PRINT USING"pertaining to the & selected.";F$:LOCATE 10,14:COLOR 15,0:CC1$="STRINGS":GOSUB 110
  81. 780 PRINT CC3$:COLOR 7:LOCATE 12,22:PRINT"If you wish to DELETE Record press ";:COLOR 23,0:PRINT"{F9}":COLOR 7:LOCATE 14,39:PRINT"or":LOCATE 16,34:PRINT"press {ENTER}":CC1$="KEY OFF":GOSUB 110:KEY 9,"9":CC1$="PRESS":GOSUB 110:LOCATE,,1:RETURN
  82. 790 ID(0)=INDEX:FLAG=-1:WHILE INDEX>1 AND FLAG<>0:FLAG=0:FOR P=1 TO INDEX-1:IF LN$(P)>LN$(P+1)THEN SWAP LN$(P),LN$(P+1):SWAP ID(P),ID(P+1):FLAG=-1
  83. 800 NEXT P:INDEX=INDEX-1:WEND:RETURN
  84. 810 PRINT#3,"":PRINT#3,"":PRINT#3,"":PRINT#3,"":PRINT#3,"":PRINT#3,"
  85. 820 PRINT#3,"":PRINT#3,"":PRINT#3,"
  86. 830 L=0:PRINT#3,"":PRINT#3,TAB(20)AA1$:PRINT#3,"":PRINT#3,AA2$:PRINT#3,AA3$:PRINT#3,"":RETURN
  87. 840 BALANCE=0:CC1$="OPEN FZ$":GOSUB 110:CLS:PRINT"Computing Checkbook Balance":PRINT:FOR ID=1 TO 1500:GET 1,ID:IF PAY$=STRING$(45,0)OR PAY$=STRING$(45,15)THEN 860
  88. 850 BALANCE=BALANCE+CVS(DEP$)-CVS(CHK$):NEXT
  89. 860 BALANCE=BALANCE+CVS(DEP$)-CVS(CHK$):PRINT USING"$########,.##";BALANCE:CLOSE:RETURN
  90. 870 CLS:B$="":CC1$="SCRN:":GOSUB 110
  91. 880 INDEX=0:L=0:IF B$<>"1"THEN CLS:GOSUB 830
  92. 890 IF B$="1"THEN GOSUB 820:INDEX=0
  93. 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
  94. 910 IF L>=16 AND B$=""THEN CC1$="PRINTOUT":GOSUB 110
  95. 920 IF B$="1"THEN 880
  96. 930 IF L>=16 AND B$=""THEN CLS:L=0:B$="":GOSUB 830
  97. 940 NEXT:RETURN
  98. 950 DATA ONE:DATA TWO:DATA THREE:DATA FOUR:DATA FIVE:DATA SIX:DATA SEVEN:DATA EIGHT:DATA NINE:DATA TEN:DATA ELEVEN:DATA TWELVE:DATA THIRTEEN:DATA FOURTEEN:DATA FIFTEEN:DATA SIXTEEN:DATA SEVENTEEN:DATA EIGHTEEN:DATA NINETEEN:DATA TWENTY:DATA THIRTY
  99. 960 DATA FORTY:DATA FIFTY:DATA SIXTY:DATA SEVENTY:DATA EIGHTY:DATA NINETY
  100. 970 FOR I=1 TO 27:READ M1$(I):NEXT:GOSUB 310:CLS:CC1$="KEY ON":GOSUB 110:GOTO 990
  101. 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
  102. 990 CLS
  103. 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
  104. 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
  105. 1020 FJ$=B$:PRINT"Disk drive `";FJ$;"' has been selected....... ":PRINT:ON ERROR GOTO 980
  106. 1030 FILES FJ$+":*.   ":PRINT:ON ERROR GOTO 0
  107. 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.
  108. 1050 PRINT:PRINT TAB(20)"CHECKBOOK FILE NAME? ";:LINE INPUT A$:ABC$=" ":CCC$=A$+" 
  109. 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
  110. 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
  111. 1080 IF LEN(A$)>0 THEN FZ$=A$
  112. 1090 IF LEN(A$)<1 THEN PRINT:PRINT" You have not entered a checkbook name. Please try again.":PRINT:GOTO 1050
  113. 1100 FZ$=FJ$+":"+A$:FY$="PAYEE.DAT":FX$="LEDGER.DAT":ON ERROR GOTO 0
  114. 1110 KEY 10,"":CLS:COLOR 15,0:LOCATE 24,60:PRINT"File: ";FZ$:LOCATE 24,2:PRINT"{Esc} ══> END";:COLOR 7,0
  115. 1120 H=2:LOCATE H,35:PRINT"MAIN MENU":H=H+2:LOCATE H,25:PRINT"1) Update Checkbook Data Menu":H=H+2:LOCATE H,25:PRINT"2) Compute Checkbook Balance":H=H+2:LOCATE H,25:PRINT"3) List Outstanding Checks":H=H+2:LOCATE H,25:PRINT"4) List ALL Checks":H=H+2
  116. 1130 LOCATE H,25:PRINT"5) Balance Checkbook Routine":H=H+2:LOCATE H,25:PRINT"6) New Checkbook File":H=H+2:LOCATE H,25:PRINT"7) RUN Account Listing":H=H+2:LOCATE H,25:PRINT"8) All Ledger Accounts":H=H+2:LOCATE H,25
  117. 1140 PRINT"9) Update/Change Automatic Data Entry";:CC1$="OPTION":GOSUB 110:PRT$="":L=0:IF B$=CHR$(27)THEN END
  118. 1150 IF Q<1 OR Q>9 THEN 1120
  119. 1160 ON Q GOTO 1170,1910,1770,2290,1930,10,2580,2730,3040
  120. 1170 CLS:COLOR 15,0:LOCATE 24,60:PRINT"File: ";FZ$:COLOR 7,0:H=4:LOCATE H,30:PRINT"UPDATE CHECKBOOK DATA":H=H+2:LOCATE H,32:PRINT"1) Add New Data":H=H+2:LOCATE H,32:PRINT"2) Modify Data":H=H+2:LOCATE H,32:PRINT"3) Delete Data":H=H+2:LOCATE H,32
  121. 1180 PRINT"4) Main Menu":CC1$="OPTION":GOSUB 110:ON Q GOTO 1210,1480,1420,1110
  122. 1190 IF Q<1 OR Q>4 THEN BEEP:GOTO 1170
  123. 1200 CKDTE$=DATE$:LOCATE 25,55:GOSUB 2900:RETURN
  124. 1210 PRINT TAB(30)"Add Data":PRINT:PRINT:CC1$="BALANCE":GOSUB 110:CC1$="OPEN FZ$":GOSUB 110:FOR X=1 TO 2000:NEXT:PRINT:CLS:V$="":INPUT"Date of Check: ",V$:IF V$<"1"THEN CLOSE:GOTO 1170
  125. 1220 GOSUB 720
  126. 1230 GET 1:IF PAY$<>STRING$(45,0)AND PAY$<>STRING$(45,15)THEN 1230
  127. 1240 CLS:GOSUB 1200:GOSUB 2510:IF P$<"1"THEN 1250ELSE 1270
  128. 1250 CLS:PRINT:V$="":INPUT"Date of Check: ",V$:IF V$<"1"THEN CLOSE:GOTO 1170
  129. 1260 GOSUB 720:GOTO 1240
  130. 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)
  131. 1280 PRINT:INPUT"Purpose: ",F$:IF GL$>" "THEN 1310
  132. 1290 GOSUB 2440:IF G$>" "THEN GL$=G$
  133. 1300 CLS:GOSUB 1200:LOCATE 1,1:PRINT"
  134. 1310 DE=0:AC=0:X=0:INPUT"Amount of Check:   ",X:CC1$="ROUNDING":GOSUB 110:AC=X:IF AC>0 THEN 1330
  135. 1320 X=0:INPUT"Amount of Deposit: ",X:CC1$="ROUNDING":GOSUB 110:DE=X
  136. 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
  137. 1340 IF OC$="1"THEN OCC$="Transaction received on statement
  138. 1350 CLS
  139. 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
  140. 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
  141. 1380 IF B$="Y"OR B$="y"THEN 1390ELSE 1360
  142. 1390 GOSUB 1400:PUT 1,LOC(1):GOSUB 1410:GOTO 1230
  143. 1400 LSET PAY$=P$:LSET NUM$=N$:LSET FOR1$=F$:LSET CODE$=GL$:LSET CHK$=MKS$(AC):LSET CKDATE$=DATE$:LSET DEP$=MKS$(DE):LSET OUT1$=OC$:LSET PNT$=PT$:RETURN
  144. 1410 GL$="":AC=0:XX$="":PT$="":DE=0:F$="":N$="":OC$="":P$="":RETURN
  145. 1420 F$="Check":CC1$="DELETE":GOSUB 110:IF B$<>"9"THEN CC1$="KEY ON":GOSUB 110:GOTO 1170
  146. 1430 CLS:PRINT"Deleting Checkbook Data":PRINT:INPUT"Record # ",ID:IF ID<1 THEN CLOSE 1:GOTO 1170
  147. 1440 CC1$="OPEN FZ$":GOSUB 110:GET 1,ID:IF NUM$=STRING$(5,0)OR NUM$=STRING$(5,15)THEN 1430
  148. 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
  149. 1460 DEL$=SS$:LSET NUM$=STRING$(5,48):B$="DELETED":LSET PAY$=B$:LSET FOR1$=STRING$(25,15):LSET CHK$=MKS$(0):LSET DEP$=MKS$(0):OT$="9":LSET OUT1$=OT$:LSET PNT1$=STRING$(1,15):LSET CODE$=STRING$(2,15):LSET CKDATE$=STRING$(10,15):LSET MISC$=STRING$(6,15)
  150. 1470 PUT 1,ID:CLOSE:GOTO 1430
  151. 1480 GOSUB 1490:GOTO 1500
  152. 1490 PRINT
  153. 1500 PRINT:PRINT:CC1$="OPEN FZ$":GOSUB 110
  154. 1510 CLS:PRINT"Modify Checkbook Data":PRINT:INPUT"Record #           ",ID:IF ID<1 THEN CLOSE 1:GOTO 1110
  155. 1520 GET 1,ID:IF NUM$=STRING$(5,0)OR NUM$=STRING$(5,15)THEN 1510
  156. 1530 Z$=CKDATE$:CKDTE$=Z$
  157. 1540 CLS:P$=PAY$:F$=FOR1$:N$=NUM$:AC=CVS(CHK$):DE=CVS(DEP$):OC$=OUT1$:GL$=CODE$:PT$=PNT$:PRINT TAB(30)"MODIFY CHECKBOOK DATA":PRINT:PRINT TAB(32)"Record Number: ";ID:PRINT:PRINT USING" 1) Date:     \        \";Z$:PRINT
  158. 1550 PRINT USING" 2) Pay To:   \                                        \  ";P$:PRINT:PRINT USING" 3) Purpose:  \                      \ ";F$:PRINT:PRINT USING" 4) Check or Deposit Number:        \   \";N$:PRINT
  159. 1560 PRINT USING" 5) Amount of Check:              $#,###.##";AC:PRINT USING" 6) Amount of Deposit:            $#,###.##     \                             \";DE,XX$:PRINT:PRINT USING" 7) Out code (0=out,1=returned):    \\ ";OC$:C=VAL(GL$)
  160. 1570 PRINT USING" 8) General Ledger Code:            \\  \                    \";GL$;M2$(C):PRINT:PRINT" 9) ANOTHER Check   ":PRINT"10) PREVIOUS MENU":LOCATE 22,1:PRINT CC4$:GOSUB 2900:CC1$="OPTION":GOSUB 110
  161. 1580 ON Q GOTO 1740,1620,1630,1640,1650,1690,1700,1710,1610,1750
  162. 1590 IF Q<1 OR Q>10 THEN 1540
  163. 1600 GOTO 1540
  164. 1610 Z$="":V$="":AC=0:PT$="":DE=0:XX$="":OC$="":GL$="":GOTO 1510
  165. 1620 GOSUB 2510:GOTO 1760
  166. 1630 INPUT" Purpose: ",F$:GOTO 1760
  167. 1640 INPUT" New Check No.: ",N$:GOTO 1760
  168. 1650 AC=0:INPUT" New Check Amt: ",AC:GOTO 1760
  169. 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
  170. 1670 IF PT$="Y"OR PT$="N"OR PT$="P"THEN 1680ELSE CLS:GOTO 1660
  171. 1680 GOTO 1760
  172. 1690 DE=0:INPUT" New Deposit Amt: ",DE:GOTO 1760
  173. 1700 INPUT" New Out Code: ",OC$:GOTO 1760
  174. 1710 GOSUB 2440:IF G$>"1"THEN GL$=G$
  175. 1720 IF G$<"1"THEN GL$=G$
  176. 1730 GOTO 1760
  177. 1740 INPUT" New Date: ",V$:GOSUB 720:Z$=V$:V$="":GOTO 1760
  178. 1750 GOSUB 1400:PUT 1,ID:CLOSE:GOTO 1170
  179. 1760 GOSUB 1400:PUT 1,ID:GOTO 1540
  180. 1770 BALANCE=0:INDEX=0:CLS:CC1$="OPEN FZ$":GOSUB 110:PRINT"WORKING......":DEF FNT(D!)=VAL(MID$(TIME$,7,2))+VAL(MID$(TIME$,4,2))*60+VAL(MID$(TIME$,1,2))*3600:TM1=FNT(D!)
  181. 1780 GET 1:IF NUM$=STRING$(5,15)AND PAY$=STRING$(45,15)THEN 1780
  182. 1790 IF NUM$=STRING$(5,0)AND PAY$=STRING$(45,0)THEN 1840
  183. 1800 BALANCE=BALANCE+CVS(DEP$)-CVS(CHK$):IF CVS(CHK$)<1 AND CVS(DEP$)<1 THEN 1780
  184. 1810 IF OUT1$=>"1"THEN 1780
  185. 1820 IF OUT1$<>"1"THEN A=A+CVS(CHK$):B1=B1+CVS(DEP$)
  186. 1830 INDEX=INDEX+1:LN$(INDEX)=RIGHT$(NUM$,LEN(NUM$)):ID(INDEX)=LOC(1):GOTO 1780
  187. 1840 CC1$="SORT":GOSUB 110:TM2=FNT(D!):LOCATE 12,30:PRINT TM2-TM1;"Seconds to sort":FOR ZZ=1 TO 1000:NEXT:AA1$="Listing Outstanding Checks/Deposits":CC1$="STRINGS":GOSUB 110:GOTO 1850
  188. 1850 GOSUB 870:PRINT#3,"":PRINT#3,USING AA5$;A;B1
  189. 1860 CC1$="PRINTOUT":GOSUB 110:IF B$="1"THEN GOSUB 920:GOTO 1860
  190. 1870 CLS:PRINT USING"Checkbook Balance: $#,###,###.##";BALANCE:PRINT:INPUT"Balance on Statement: ",BAL:PRINT:G=0:G=BAL+B1-A-BALANCE:IF G>-.01 AND G<.01 THEN PRINT"Your Checkbook balances":GOTO 1890
  191. 1880 PRINT USING"Your checkbook is out of balance by $#,###,###.##";G:CC1$="ENTER":GOSUB 110:GOTO 1900
  192. 1890 CC1$="ENTER":GOSUB 110
  193. 1900 L=0:G=0:BAL=0:BALANCE=0:A=0:B1=0:CLOSE:GOTO 1110
  194. 1910 CC1$="BALANCE":GOSUB 110:CC1$="ENTER":GOSUB 110:GOTO 1110
  195. 1920 COLOR 15,0:LOCATE 25,30,0:PRINT"Continue ";:GOSUB 500:PRINT" {ENTER}";:LOCATE 1,1:PRINT"":COLOR 7,0:RETURN
  196. 1930 GOSUB 1920:I=0:FOR I=1 TO 300:X$="":INPUT"Check number ";X$:IF X$<"1"THEN 2000
  197. 1940 IF LEN(X$)=5 THEN CKNUM$(I)=X$
  198. 1950 IF LEN(X$)=4 THEN CKNUM$(I)=X$+" 
  199. 1960 IF LEN(X$)=3 THEN CKNUM$(I)=X$+"  
  200. 1970 IF LEN(X$)=2 THEN CKNUM$(I)=X$+"   
  201. 1980 IF LEN(X$)=1 THEN CKNUM$(I)=X$+"
  202. 1990 AMT(I)=0:INPUT"Amount of check ";AMT(I):PRINT:NEXT
  203. 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
  204. 2010 IF OUT1$="1"THEN 2080
  205. 2020 IF NUM$=STRING$(5,15)THEN 2250
  206. 2030 IF CHK$=STRING$(6,0)OR CHK$=STRING$(6,15)THEN 2080
  207. 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
  208. 2050 IF NUM$=CKNUM$(J)THEN OT$="1":LSET OUT1$=OT$:OT$=" ":PUT 1,ID:F=1:PRINT NUM$:GOTO 2070
  209. 2060 NEXT J:GOTO 2080
  210. 2070 AMT(J)=0:CKNUM$(J)="
  211. 2080 NEXT ID
  212. 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)
  213. 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
  214. 2110 IF LEN(X$)=5 THEN DEPNUM$(I)=X$
  215. 2120 IF LEN(X$)=4 THEN DEPNUM$(I)=X$+" 
  216. 2130 IF LEN(X$)=3 THEN DEPNUM$(I)=X$+"  
  217. 2140 IF LEN(X$)=2 THEN DEPNUM$(I)=X$+"   
  218. 2150 IF LEN(X$)=1 THEN DEPNUM$(I)=X$+"    
  219. 2160 AM(I)=0:INPUT"Amount of deposit ";AM(I):PRINT:NEXT
  220. 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
  221. 2180 IF OUT1$="1"THEN 2260
  222. 2190 IF NUM$=STRING$(5,15)THEN 2260
  223. 2200 IF DEP$=STRING$(6,15)THEN 2260
  224. 2210 IF DEP$=STRING$(6,0)THEN 2260
  225. 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
  226. 2230 IF NUM$=DEPNUM$(J)THEN OT$="1":LSET OUT1$=OT$:OT$=" ":PUT 1,ID:PRINT NUM$:GOTO 2250
  227. 2240 NEXT J:GOTO 2260
  228. 2250 AM(J)=0:DEPNUM$(J)="
  229. 2260 NEXT ID
  230. 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)
  231. 2280 NEXT:CC1$="ENTER":GOSUB 110:CLOSE:GOTO 1110
  232. 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
  233. 2300 ID=0:L=0:CC1$="OPEN FZ$":GOSUB 110:IF B$<>"1"THEN CLS:GOSUB 830
  234. 2310 IF B$="1"THEN GOSUB 820:ID=0
  235. 2320 ID=ID2-1:IF ID<0 THEN ID=0
  236. 2330 ID=ID+1:GET 1,ID:IF NUM$=STRING$(5,15)THEN 2330
  237. 2340 IF ID>ID1 THEN 2420
  238. 2350 IF NUM$=STRING$(5,0)THEN 2420
  239. 2360 IF CVS(CHK$)<1 AND CVS(DEP$)<1 THEN 2330
  240. 2370 PRINT#3,USING AA4$;ID;NUM$;PAY$;CKDATE$;CVS(CHK$);CVS(DEP$):L=L+1:IF B$="1"AND L>50 THEN GOSUB 810:L=0:GOTO 2330ELSE IF B$="1"THEN 2330
  241. 2380 IF L>=17 AND B$=""THEN CC1$="PRINTOUT":GOSUB 110
  242. 2390 IF B$="1"THEN 2300
  243. 2400 IF L>=17 AND B$=""THEN CLS:L=0:B$="":GOSUB 830:GOTO 2330
  244. 2410 GOTO 2330
  245. 2420 CC1$="PRINTOUT":GOSUB 110:IF B$="1"THEN 2390
  246. 2430 GOTO 1110
  247. 2440 L1=0
  248. 2450 CLS:IF P$<"1"THEN P$="Accounts
  249. 2460 PRINT"Account Codes for ";P$:PRINT:PRINT"Code  Expenses"TAB(40)"Code  Expenses":PRINT:NN=1:N1=4:FOR N=1 TO 38:L1=L1+1:IF N=20 THEN N1=4
  250. 2470 IF N>=20 THEN NN=40
  251. 2480 N1=N1+1:LOCATE N1,NN:PRINT USING"##) &";N2(L1),M2$(L1):NEXT:G$=" ":LOCATE 25,1:INPUT"Ledger Account Code:  ",G$:IF L1>=FF2 AND G$<"1"THEN G$=" ":RETURN
  252. 2490 IF G$<"1"THEN 2450
  253. 2500 L1=0:RETURN
  254. 2510 P$="":LOCATE 1,1:PRINT"    Payee   ";:PRINT TAB(40)"    Payee":NN=1:N1=3:L1=0:FOR N=1 TO 38:L1=L1+1:IF N=20 THEN N1=3
  255. 2520 IF N>=20 THEN NN=40
  256. 2530 N1=N1+1:LOCATE N1,NN:PRINT USING"##) & &";N3(L1),M3$(L1),M4$(L1):NEXT:LOCATE 24,1:INPUT"Payable To:  ",P$:IF L1>=FF3 THEN 2550
  257. 2540 IF P$<"1"THEN 2510
  258. 2550 IF P$<"A"THEN GOSUB 2570
  259. 2560 L1=0:RETURN
  260. 2570 N=VAL(P$):P$=M3$(N):GL$=M4$(N):RETURN
  261. 2580 GOSUB 2440:IF G$<"1"THEN 2720
  262. 2590 INDEX=0:TC=0:TD=O:TDEP=0:TCHK=0:CLS:CC1$="OPEN FZ$":GOSUB 110:PRINT"WORKING......
  263. 2600 GET 1:IF NUM$=STRING$(5,15)THEN 2600
  264. 2610 IF NUM$=STRING$(5,0)THEN 2680
  265. 2620 TD=TD+CVS(DEP$):TC=TC+CVS(CHK$):IF RIGHT$(CODE$,1)>" "THEN C$=CODE$:GOTO 2650
  266. 2630 IF RIGHT$(CODE$,1)=" "THEN 2640
  267. 2640 C$=LEFT$(CODE$,1)
  268. 2650 IF G$=C$THEN 2660ELSE 2600
  269. 2660 TDEP=TDEP+CVS(DEP$):TCHK=TCHK+CVS(CHK$):IF CVS(CHK$)<1 AND CVS(DEP$)<1 THEN 2600
  270. 2670 INDEX=INDEX+1:LN$(INDEX)=RIGHT$(NUM$,LEN(NUM$)):ID(INDEX)=LOC(1):GOTO 2600
  271. 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
  272. 2690 IF TD=0 THEN TD=1
  273. 2700 PRINT#3,"":PRINT#3,USING"             Percent of Total                                 ###.##     ###.##";TCHK/TC;TDEP/TD
  274. 2710 CC1$="PRINTOUT":GOSUB 110:IF B$="1"THEN GOSUB 920:GOTO 2710
  275. 2720 CLOSE:GOTO 1110
  276. 2730 L1=0:FOR G=1 TO FF3:G$=STR$(G):TC=0:TD=0:IF LEN(STR$(G))=2 THEN G$=RIGHT$(G$,1)
  277. 2740 IF LEN(STR$(G))=3 THEN G$=RIGHT$(G$,2)
  278. 2750 CC1$="OPEN FZ$":GOSUB 110:L1=L1+1:INDEX=0:TC=0:TD=O:TDEP=0:TCHK=0:CLS:PRINT"WORKING......":LOCATE 12,35:PRINT M2$(L1)
  279. 2760 GET 1:IF NUM$=STRING$(5,15)THEN 2760
  280. 2770 IF NUM$=STRING$(5,0)THEN 2840
  281. 2780 TD=TD+CVS(DEP$):TC=TC+CVS(CHK$):IF RIGHT$(CODE$,1)>" "THEN C$=CODE$:GOTO 2810
  282. 2790 IF RIGHT$(CODE$,1)=" "THEN 2800
  283. 2800 C$=LEFT$(CODE$,1)
  284. 2810 IF G$=C$THEN 2820ELSE 2760
  285. 2820 TDEP=TDEP+CVS(DEP$):TCHK=TCHK+CVS(CHK$):IF CVS(CHK$)<1 AND CVS(DEP$)<1 THEN 2760
  286. 2830 INDEX=INDEX+1:LN$(INDEX)=RIGHT$(NUM$,LEN(NUM$)):ID(INDEX)=LOC(1):GOTO 2760
  287. 2840 IF TCHK<1 AND TDEP<1 THEN 2890
  288. 2850 CC1$="SORT":GOSUB 110:AA1$="Listing ALL Checks/Deposits":CC1$="STRINGS":GOSUB 110:GOSUB 870:PRINT#3,"":PRINT#3,USING"            Totals for Account \                 \         ##,###.## ###,###.##";M2$(L1);TCHK;TDEP:IF TC=0 THEN TC=1
  289. 2860 IF TD=0 THEN TD=1
  290. 2870 PRINT#3,"":PRINT#3,USING"             Percent of Total                                 ###.##     ###.##";TCHK/TC;TDEP/TD
  291. 2880 CC1$="PRINTOUT":GOSUB 110:IF B$="1"THEN GOSUB 920:GOTO 2880
  292. 2890 CLOSE:NEXT G:CLOSE:GOTO 1110
  293. 2900 IF LEFT$(CKDTE$,2)="01"THEN M$="JANUARY
  294. 2910 IF LEFT$(CKDTE$,2)="02"THEN M$="FEBURARY
  295. 2920 IF LEFT$(CKDTE$,2)="03"THEN M$="MARCH
  296. 2930 IF LEFT$(CKDTE$,2)="04"THEN M$="APRIL
  297. 2940 IF LEFT$(CKDTE$,2)="05"THEN M$="MAY
  298. 2950 IF LEFT$(CKDTE$,2)="06"THEN M$="JUNE
  299. 2960 IF LEFT$(CKDTE$,2)="07"THEN M$="JULY
  300. 2970 IF LEFT$(CKDTE$,2)="08"THEN M$="AUGUST
  301. 2980 IF LEFT$(CKDTE$,2)="09"THEN M$="SEPTEMBER
  302. 2990 IF LEFT$(CKDTE$,2)="10"THEN M$="OCTOBER
  303. 3000 IF LEFT$(CKDTE$,2)="11"THEN M$="NOVEMBER
  304. 3010 IF LEFT$(CKDTE$,2)="12"THEN M$="DECEMBER
  305. 3020 IF MID$(CKDTE$,4,1)<"1"THEN D$=MID$(CKDTE$,5,1)ELSE D$=MID$(CKDTE$,4,2)
  306. 3030 Y$=RIGHT$(CKDTE$,4):PRINT USING"Date: & &, &  ";M$,D$,Y$;:RETURN
  307. 3040 CLOSE:CLS:GOSUB 310:LOCATE 4,29:PRINT"Update Payee Data Menu":PRINT:PRINT TAB(29)"1) Add Payee Data ":PRINT TAB(29)"2) Modify Payee Data":PRINT TAB(29)"3) Delete Payee Data":LOCATE 11,29:PRINT"Update Ledger Data Menu":PRINT
  308. 3050 PRINT TAB(29)"4) Add Ledger Data ":PRINT TAB(29)"5) Modify Ledger Data":PRINT TAB(29)"6) Delete Ledger Data":PRINT:PRINT TAB(29)"7) Return to Previous Menu":CC1$="OPTION":GOSUB 110:ON Q GOTO 3080,3420,3300,3210,3600,3370,3070
  309. 3060 IF Q<1 OR Q>8 THEN BEEP:GOTO 3040
  310. 3070 GOSUB 310:GOTO 1110
  311. 3080 CC1$="OPEN FY$":GOSUB 110
  312. 3090 GET 3:IF PAYEE$<>STRING$(30,0)AND PAYEE$<>STRING$(30,15)THEN 3090
  313. 3100 CLS:PRINT"This will be Record # ";LOC(3):PRINT:I=0
  314. 3110 INPUT"Name: ",P$:IF P$<"1"THEN CLOSE:GOTO 3040
  315. 3120 PRINT:INPUT"Street Address:     ",S1$:IF S1$<"1"THEN 3140
  316. 3130 INPUT"Street Address #2:  ",S2$:PRINT:INPUT"City:               ",C$:PRINT:INPUT"State (Use two letter code): ",S3$:PRINT:INPUT"Zip Code:           ",Z$
  317. 3140 GOSUB 2440:CLS
  318. 3150 LOCATE 4,1:PRINT" Name: ";TAB(10)P$:PRINT" Address:"TAB(10);S1$:IF S2$>="1"THEN PRINT TAB(10)S2$
  319. 3160 PRINT TAB(10)C$;:PRINT TAB(30)S3$;TAB(50)Z$:PRINT:PRINT:PRINT" Ledger Account Code:";TAB(25)G$,M2$(VAL(G$)):LOCATE 22,11:PRINT"Is this right (Y/N)?  ":CC1$="PRESS":GOSUB 110:IF B$="n"OR B$="N"THEN CLS:GOSUB 3200:GOTO 3110
  320. 3170 IF B$="y"OR B$="Y"THEN 3180ELSE 3150
  321. 3180 CLS:GOSUB 3190:PUT 3,LOC(3):GOSUB 3200:GOTO 3090
  322. 3190 LSET PAYEE$=P$:LSET STRT$=S1$:LSET CITY$=C$:LSET STRT2$=S2$:LSET STATE$=S3$:LSET ZIP$=Z$:LSET GLA$=G$:RETURN
  323. 3200 P$="":S1$="":S2$="":S3$="":C$="":Z$="":G$="":RETURN
  324. 3210 CC1$="OPEN FX$":GOSUB 110
  325. 3220 GET 2:IF LEDGER$<>STRING$(30,0)AND LEDGER$<>STRING$(30,15)THEN 3220
  326. 3230 CLS:PRINT"This will be Record # ";LOC(2):PRINT:I=0
  327. 3240 L$="":INPUT"Ledger Name: ",L$:IF L$<"1"THEN CLOSE:GOTO 3040
  328. 3250 CLS
  329. 3260 LOCATE 20,11:PRINT L$:LOCATE 22,11:PRINT"Is this right (Y/N)?  ":CC1$="PRESS":GOSUB 110:IF B$="n"OR B$="N"THEN 3240
  330. 3270 IF B$="y"OR B$="Y"THEN 3280ELSE 3260
  331. 3280 CLS:GOSUB 3290:PUT 2,LOC(2):GOTO 3220
  332. 3290 LSET LEDGER$=L$:RETURN
  333. 3300 F$="Payee":CC1$="DELETE":GOSUB 110:IF B$<>"9"THEN CC1$="KEY ON":GOSUB 110:GOTO 1170
  334. 3310 CC1$="OPEN FY$":GOSUB 110
  335. 3320 CLS:PRINT"Deleting Record Data":PRINT:INPUT"Record # ",ID:IF ID<1 THEN CLOSE 3:GOTO 3040
  336. 3330 GET 3,ID:IF PAYEE1$=STRING$(30,0)OR PAYEE$=STRING$(30,15)THEN 3320
  337. 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
  338. 3350 IF B$=CHR$(13)THEN 3320ELSE 3340
  339. 3360 LOCATE 25,35:PRINT"Deleting...":LSET PAYEE$=STRING$(30,15):LSET STRT$=STRING$(25,15):LSET CITY$=STRING$(15,15):LSET STRT2$=STRING$(25,15):LSET STATE$=STRING$(2,15):LSET ZIP$=STRING$(5,15):LSET GLA$=STRING$(1,15):PUT 3,ID:GOTO 3320
  340. 3370 F$="Ledger":CC1$="DELETE":GOSUB 110:CC1$="OPEN FX$":GOSUB 110
  341. 3380 CLS:PRINT"Deleting Record Data":PRINT:INPUT"Record # ",ID:IF ID<1 THEN CLOSE 2:GOTO 3040
  342. 3390 CC1$="OPEN FX$":GOSUB 110:GET 2,ID:IF LEDGER$=STRING$(30,0)OR LEDGER$=STRING$(30,15)THEN 3380
  343. 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
  344. 3410 LSET LEDGER$=STRING$(30,15):PUT 2,ID:GOTO 3380
  345. 3420 GOSUB 3430:GOTO 3440
  346. 3430 CC1$="OPEN FY$":GOSUB 110
  347. 3440 CLS:PRINT"Modify Payee Data":PRINT:INPUT"Record #           ",ID:IF ID<1 THEN CLOSE 3:GOTO 3040
  348. 3450 GET 3,ID:IF PAYEE$=STRING$(30,0)OR PAYEE$=STRING$(30,15)THEN 3440
  349. 3460 CLS:PRINT:PRINT:P$=PAYEE$:S1$=STRT$:S2$=STRT2$:S3$=STATE$:C$=CITY$:Z$=ZIP$:G$=GLA$:PRINT:PRINT TAB(30)"MODIFY Payee DATA":PRINT:PRINT:PRINT TAB(25)"Record Number";ID:PRINT:A$=" ":PRINT TAB(25)"1) Payee:       ";P$
  350. 3470 PRINT TAB(25)"2) Address:     ";S1$:PRINT TAB(25)"3) Address:     ";S2$:PRINT TAB(25)"4) City:        ";C$:PRINT TAB(25)"5) State:       ";S3$:PRINT TAB(25)"6) Zip Code:    ";Z$:PRINT TAB(25)"7) Ledger Code: ";G$;" ";M2$(VAL(G$)):PRINT:PRINT:PRINT
  351. 3480 PRINT TAB(25)"8) ANOTHER Payee   ":PRINT TAB(25)"9) PREVIOUS MENU":LOCATE 23,1:PRINT CC4$:CC1$="OPTION":GOSUB 110:ON Q GOTO 3500,3510,3520,3530,3540,3550,3560,3580,3570
  352. 3490 GOTO 3460
  353. 3500 INPUT"Payee's Name: ",P$:GOTO 3590
  354. 3510 INPUT" New Address: ",S1$:GOTO 3590
  355. 3520 INPUT" New Address 2: ",S2$:GOTO 3590
  356. 3530 INPUT" New City: ",C$:GOTO 3590
  357. 3540 INPUT" New State: ",S3$:GOTO 3590
  358. 3550 INPUT" New Zip Code: ",Z$:GOTO 3590
  359. 3560 GOSUB 2440:GOTO 3590
  360. 3570 Q=0:GOSUB 3190:PUT 3,ID:CLOSE:GOTO 3040
  361. 3580 Q=0:GOSUB 3190:PUT 3,ID:GOTO 3440
  362. 3590 Q=0:GOSUB 3190:PUT 3,ID:GOTO 3460
  363. 3600 CC1$="OPEN FX$":GOSUB 110
  364. 3610 CLS:GOSUB 2440:ID=VAL(G$):IF ID<1 THEN CLOSE 3:GOTO 3040
  365. 3620 GET 2,ID:IF LEDGER$=STRING$(30,0)OR LEDGER$=STRING$(30,15)THEN 3610
  366. 3630 CLS:PRINT:PRINT:L$=LEDGER$:PRINT:PRINT TAB(30)"MODIFY Ledger Data":PRINT:PRINT:PRINT TAB(33)"Record Number";ID:PRINT:A$="":PRINT TAB(30)"1) Ledger:      ";L$:PRINT:PRINT:PRINT:PRINT TAB(30)"2) ANOTHER Ledger  ":PRINT TAB(30)"3) PREVIOUS MENU
  367. 3640 LOCATE 23,1:PRINT CC4$:CC1$="OPTION":GOSUB 110:ON Q GOTO 3670,3690,3680
  368. 3650 IF Q<1 OR Q>3 THEN 3630
  369. 3660 GOTO 3630
  370. 3670 L$="":INPUT"New Ledger Name: ",L$:GOTO 3700
  371. 3680 Q=0:LSET LEDGER$=L$:PUT 2,ID:CLOSE:GOTO 3040
  372. 3690 Q=0:LSET LEDGER$=L$:PUT 2,ID:GOTO 3610
  373. 3700 Q=0:LSET LEDGER$=L$:PUT 2,ID:GOTO 3630
  374. 3710 CLS:T$="╔":T1$="╗":T2$="╚":T3$="╝":T4$="║":PRINT TAB(4)T$;STRING$(73,205);T1$:FOR C=2 TO 22:PRINT TAB(4)T4$;TAB(78)T4$:NEXT:PRINT TAB(4)T2$;STRING$(73,205);T3$;:COLOR 15,0:LOCATE 3,11,0
  375. 3720 PRINT"╔═╗ ╔═╕    ╔═╕ ╖ ╖ ╔═╕ ╔═╕ ╖╖    ╔╦╗ ╔═╗ ╔═╗ ╔═╗ ╔═╕ ╔═╕ ╔═╗":LOCATE 4,11,0:PRINT"╠═╝ ║   ╒╛ ║   ╠═╣ ╠╕  ║   ╠╩╗   ║╜║ ╠═╣ ║ ║ ╠═╣ ║ ╖ ╠╕  ╠╦╝":LOCATE 5,11:REM 0
  376. 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
  377. 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
  378. 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
  379. 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
  380. 3770 PRINT"{ENTER} ══> Continue           {I} ══> Instructions";:COLOR 7,0
  381. 3780 GOSUB 510:IF B$="I"OR B$="i"THEN 3810
  382. 3790 IF B$=CHR$(13)THEN RETURN
  383. 3800 GOTO 3780
  384. 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
  385. 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
  386. 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
  387. 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 
  388. 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
  389. ive":PRINT TAB(30)"Newport News, VA  23602":COLOR 15,0:LOCATE 25,30:PRINT"{ENTER} ══> Continue  ";:C