10 DEFDBL A,X
20 DIM A(999):DIM A$(210):DIM X$(210):DIM Y$(210)
30 'CHECK REGISTER PROGRAM
40 'COPYRIGHT HARRY HAYMAN
50 '1985
60 PRINT CHR$(26):PRINT:PRINT:PRINT
70 PRINT TAB(20) "CHECK REGISTER PROGRAM"
80 PRINT TAB(17) "COPYRIGHT HARRY HAYMAN - 1985"
90 PRINT:PRINT:PRINT TAB(15) STRING$(33,"*")
100 PRINT  TAB(16) "MENU FOR CHECK REGISTER PROGRAM"
110 PRINT TAB(15) STRING$(33,"*")
120 PRINT
130 PRINT TAB(10)"1.   TO ENTER DEPOSITS OR CHECKS"
140 PRINT TAB(10)"2.   TO ENTER AND CORRECT ACCOUNTS"
150 PRINT TAB(10)"3.   TO START THE NEW YEAR"
160 PRINT TAB(10)"4.   TO PRINT OUT LIST OF ACCOUNTS"
170 PRINT TAB(10)"5.   TO PRINT SELECTED INFORMATION"
180 PRINT TAB(10)"6.   TO CORRECT INDIVIDUAL ENTRIES"
190 PRINT TAB(10)"7.   TO BALANCE ACCOUNT AGAINST BANK STATEMENT"
200 PRINT TAB(10)"8.   TO CORRECT BANK BALANCES"
210 PRINT TAB(10)"9.   TO END PROGRAM"
220 PRINT:PRINT:PRINT
230 PRINT "                        MAKE YOUR SELECTION   "  
240 INPUT A
245 IF A<1 GOTO 230
246 IF A>9 GOTO 230
250 ON A GOTO 300,320,260,360,410,450,490,550,520
260 PRINT CHR$(26):PRINT:PRINT:PRINT
270 PRINT TAB(10) "READING PROGRAM TO START THE NEW YEAR"
280 FOR N=1 TO 2500:NEXT N
290 RUN "STARTER"
300 PRINT CHR$(26):PRINT:PRINT:PRINT
310 GOTO 580
320 PRINT CHR$(26):PRINT:PRINT:PRINT
330 PRINT TAB(10) "READING PROGRAM TO ENTER ACCOUNTS"
340 FOR N=1 TO 2500:NEXT N
350 RUN "ACCOUNT"
360 RUN "A/CLIST"
370 PRINT  CHR$(26):PRINT:PRINT:PRINT
380 PRINT TAB(10)"READING PROGRAM TO CORRECT LIST OF ACCOUNTS"
390 FOR N=1 TO 2500:NEXT N
400 RUN "CORRECT"
410 PRINT CHR$(26):PRINT:PRINT:PRINT
420 PRINT TAB(10) "READING PRINT PROGRAM"
430 FOR N=1 TO 2000:NEXT N
440 RUN "PRINT"
450 PRINT CHR$(26):PRINT:PRINT:PRINT
460 PRINT TAB(10) "READING PROGRAM TO CORRECT INDIVIDUAL ENTRIES"
470 FOR N=1 TO 1000:NEXT N
480 RUN "CORINDEN"
490 PRINT CHR$(26):PRINT:PRINT:PRINT
500 PRINT TAB(10) "READING PROGRAM TO BALANCE ACCOUNT AGAINST BANK STATEMENT"
510 RUN "BANK"
520 PRINT CHR$(26):PRINT:PRINT:PRINT
530 PRINT TAB(10) "PROGRAM IS FINISHED"
540 SYSTEM
550 PRINT CHR$(26):FOR N=1 TO 10:PRINT:NEXT N
560 PRINT TAB(10) "READING PROGRAM TO CORRECT BANK BALANCE AND ENTRIES"
570 RUN "CORRBAL"
580 GOSUB 1700
590 GOSUB 1450
600 'BLANK
610 'CHECK REGISTER PROGRAM
620 'COPYRIGHT HARRY HAYMAN - 1985
630 'SUB PROGRAM - TO ENTER CHECKS OR DEPOSITS
640 PRINT CHR$(26)
650 PRINT TAB(10) "CHECK REGISTER PROGRAM - COPYRIGHT HARRY HAYMAN - 1985"
660 PRINT TAB(30)"NEW ENTRIES"
670 PRINT TAB(24) "ALL ENTRIES IN CAPS"
680 PRINT TAB(13) "TO EXIT PROGRAM ENTER 0 IN THE FIRST ENTRY"
690 IMAGE$="\        \\                         \$$##,###.##"
700 D$="BALANCE"
710 PRINT
720 PRINT USING IMAGE$;D$;Y$(1);CVD(X1$)
730 PRINT USING IMAGE$;D$,Y$(2);CVD(X2$)
740 PRINT USING IMAGE$;D$;Y$(3);CVD(X3$)
750 A1$="":A2$="":A3$="":A4=0:A(5)=0:A6=0:A(7)=0:A8=0:A(9)=0:A10=0:A(11)=0:C$=""
760 GOSUB 2040
770 INPUT "1.  CHECK NUMBER  ";A1$
780 IF A1$="0" THEN GOTO 30
790 LINE INPUT "2.  DATE          ";A2$
800 INPUT "3.  PAYEE         ";A3$
810 INPUT "4.  AMOUNT (DEPOSITS SHOULD BE PROCEEDED BY -  ";A4
820 N=5:INPUT "5.  ACCOUNT TO BE DEBITED  ";A(N)
830 IF A(N)<4.1 THEN GOTO 930
840 IF A4<0 THEN GOTO 1000
850 PRINT CHR$(27)+"="+CHR$(51)
860 PRINT "YOU HAVE NOT ENTERED A BANK ACCOUNT IN THE FIRST ITEM THEREFOR"
870 PRINT "  THE FIRST ITEM MUST BE A '-' ITEM"
880 FOR N=1 TO 1700:NEXT N
890 PRINT CHR$(27)+"="+CHR$(44)
900 FOR N=1 TO 9:PRINT SPACE$(75):NEXT N
910 PRINT CHR$(27)+"="+CHR$(44)
920 GOTO 810
930 IF A(N)<3.1 THEN GOTO 1000
940 IF A4<0 THEN GOTO 1000
950 PRINT "YOU HAVE ENTERED THE MEMO ITEM AS A CHARGE"
960 PRINT "THEREFOR EACH OF THE OTHER ITEMS MUST BE A CHARGE"
970 PRINT "IF THIS IS NOT SATISFACTORY ENTER 'NO'"
980 INPUT K$
990 IF K$="NO" GOTO 590
991 PRINT CHR$(27)+"="+CHR$(46)
992 FOR N=1 TO 4:PRINT SPACE$(75):NEXT N
993 PRINT CHR$(27)+"="+CHR$(46)
1000 IF Y$(A(N))="" THEN PRINT "YOU HAVE ENTERED AN UNASSIGNED ACCOUNT - PLEASE REENTER ITEM 5."
1010 IF Y$(A(N))="" THEN GOTO 820
1020 PRINT TAB(20) Y$(A(N))
1030 INPUT "6.  AMOUNT TO BE CHARGED  ";A6
1040 N=7:INPUT "7.  ACCOUNT TO BE CHARGED  ";A(N)
1050 PRINT TAB(20) Y$(A(N))
1060 IF Y$(A(N))>"!" THEN GOTO 1130
1070 PRINT "YOU HAVE ENTERED AN UNASSIGNED ACCOUNT - PLEASE REENTER ITEM 7"
1080 FOR N=1 TO 2000:NEXT N
1090 PRINT CHR$(27)+"="+CHR$(48)
1100 FOR N=1 TO 3:PRINT SPACE$(80):NEXT N
1110 PRINT CHR$(27)+"="+CHR$(48)
1120 GOTO 1040
1130 IF A4>0 THEN A6=A6*-1
1140 IF A4+A6=0 THEN GOTO 1860
1150 INPUT "8.  AMOUNT TO BE CHARGED  ";A8
1160 N=9:INPUT "9.  ACCOUNT TO BE CHARGED  ";A(N)
1170 PRINT TAB(20) Y$(A(N))
1180 IF Y$(A(N))>"!" THEN GOTO 1250
1190 PRINT "YOU HAVE ENTERED AN UNASSIGNED ACCOUNT - PLEASE REENTER ITEM 9"
1200 FOR N=1 TO 2000:NEXT N
1210 PRINT CHR$(27)+"="+CHR$(51)
1220 FOR N=1 TO 3:PRINT SPACE$(75):NEXT N
1230 PRINT CHR$(27)+"="+CHR$(51)
1240 GOTO 1160
1250 IF A4>0 THEN A8=A8*-1
1260 IF ABS(A4+A6+A8)<.01 THEN GOTO 1860
1270 INPUT "10. AMOUNT TO BE CHARGED  ";A10
1280 IF A4>0 THEN A10=A10*-1
1290 IF ABS(A4+A6+A8+A10)>.009 THEN GOTO 1410
1300 N=11:INPUT "11. ACCOUNT TO BE CHARGED  ";A(N)
1310 PRINT TAB(20) Y$(A(N))
1320 IF Y$(A(N))>"!" THEN GOTO 1390
1330 PRINT "YOU HAVE ENTERED AN UNASSIGNED ACCOUNT - PLEASE REENTER ITEM 11"
1340 FOR N=1 TO 2000:NEXT N
1350 PRINT CHR$(27)+"="+CHR$(51)
1360 FOR N=1 TO 3:PRINT SPACE$(75):NEXT N
1370 PRINT CHR$(27)+"="+CHR$(51)
1380 GOTO 1300
1390 IF ABS(A4+A6+A8+A10)<.01 THEN GOTO 1860
1400 PRINT CHR$(26):PRINT:PRINT:PRINT
1410 PRINT TAB(10) "THE TOTAL OF ALL ENTRIES DOES NOT ZERO OUT"
1420 PRINT TAB(12) "  PLEASE REENTER CORRECTLY"
1430 FOR N=1 TO 3000:NEXT N
1440 GOTO 590
1450 OPEN "R",#1,"B:BALANCE",58
1460 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$
1470 GET #1,1
1480 CLOSE #1
1490 X1=CVD(X1$):X2=CVD(X2$):X3=CVD(X3$):X4=CVD(X4$):X5=CVD(X5$):X6=CVD(X6$)   
1500 ZZ=VAL(ZZ$)
1510 RETURN
1520 OPEN "R",#1,"B:BALANCE",58
1530 ZZ=ZZ+1
1540 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS Z1$
1550 LSET X1$=MKD$(X1):LSET X2$=MKD$(X2):LSET X3$=MKD$(X3)
1560 LSET X4$=MKD$(X4):LSET X5$=MKD$(X5):LSET X6$=MKD$(X6)
1570 LSET Z1$=STR$(ZZ)
1580 PUT #1,1
1590 CLOSE #1
1600 RETURN
1610 OPEN "R",#1,"B:ENTRIES",136
1620 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$
1630 LSET AA1$=A1$:LSET AA2$=A2$:LSET AA3$=A3$:LSET AA4$=STR$(A4)
1640 LSET AA5$=STR$(A(5)):LSET AA6$=STR$(A6):LSET AA7$=STR$(A(7))
1650 LSET AA8$=STR$(A8):LSET AA9$=STR$(A(9)):LSET AA10$=STR$(A10)
1660 LSET AA11$=STR$(A(11)):LSET AC$=C$:LSET AD$="N"
1670 PUT #1,ZZ
1680 CLOSE #1
1690 RETURN
1700 Z=1
1710 PRINT CHR$(26):FOR N=1 TO 10:PRINT:NEXT N
1720 PRINT TAB(20) "READING ACCOUNTS"
1730 PRINT CHR$(27) CHR$(46)+"0"
1740 PRINT CHR$(27)+"="+CHR$(47)
1750 PRINT TAB(25)Z
1760 OPEN "R",#1,"B:ACCOUNTS",28
1770 FIELD #1,3 AS CC1$,25 AS CC2$
1780 GET #1,Z
1790 IF EOF(1) GOTO 1840
1800 CLOSE #1
1810 X$(Z)=CC1$:Y$(Z)=CC2$
1820 Z=Z+1
1830 GOTO 1740
1840 CLOSE #1:PRINT CHR$(27) CHR$(46)+"2"
1850 RETURN
1860 LINE INPUT "REMARKS  ";C$
1870 INPUT "IS THE ABOVE ENTRY CORRECT - YES OR NO";D$
1880 IF D$="NO" THEN GOTO 590
1890 IF A(5)=1 THEN X1=X1-A4
1900 IF A(5)=2 THEN X2=X2-A4
1910 IF A(5)=3 THEN X3=X3-A4
1920 IF A(7)=1 THEN X1=X1-A6
1930 IF A(7)=2 THEN X2=X2-A6
1940 IF A(7)=3 THEN X3=X3-A6
1950 IF A(9)=1 THEN X1=X1-A8
1960 IF A(9)=2 THEN X2=X2-A8
1970 IF A(9)=3 THEN X3=X3-A8
1980 IF A(11)=1 THEN X1=X1-A10
1990 IF A(11)=2 THEN X2=X2-A10
2000 IF A(11)=3 THEN X3=X3-A10
2010 GOSUB 1520
2020 GOSUB 1610
2030 GOTO 590
2040 OPEN "R",#1,"B:ENTRIES",136
2050 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$
2060 ON ERROR GOTO 2110
2070 GET #1,ZZ
2080 CLOSE #1
2090 PRINT "LAST ENTRY WAS # ";ZZ;"  CHECK NO. ";AA1$;"  PAYEE: ";AA3$
2100 RETURN
2110 CLOSE #1:GOTO 770
Z
2080 CLOSE #1
2090 PRINT "LAST ENTRY WAS # ";ZZ;"  CHECK NO. ";AA1$;"  PAYEE: ";AA3$
2100 RETURN
2110 CLOSE