Double-entry bookkeeping program. Requires 64K RAM.
Content
Source Code
10 REM E£RND)SIN ; FAST )5 ;SGN \' LOAD \' GOSUB %K FOR \.'4Q 7( CLS TAN 89XXX
20 REM
Skip to content
Bookkeeper
Double-entry bookkeeping program. Requires 64K RAM.
Content
Source Code
10 REM E£RND)SIN ; FAST )5 ;SGN \' LOAD \' GOSUB %K FOR \.'4Q 7( CLS TAN 89XXX
20 REM \2A\10\40\11\43\00\ED\52\E5\11\21\00\ED\52\D1\01\EF\01\ED\B8\EB\06\20\2B\36\00\10\FB\C9\3D\3D\3D
40 FAST
50 CLS
70 GOSUB 6320
80 SLOW
82 PRINT AT 21,0;"COMMAND"
84 PRINT AT 21,7;"? ";AT 21,7;"%?"
90 IF INKEY$="" THEN GOTO 80
100 FAST
110 GOTO 6400
130 FAST
140 CLS
160 GOSUB 6170
170 SLOW
175 PRINT AT 21,0;"COMMAND"
176 PRINT AT 21,7;"? ";AT 21,7;"%?"
180 IF INKEY$="" THEN GOTO 175
190 FAST
200 GOTO 6200
230 IF INKEY$="" THEN GOTO 230
240 FAST
250 RETURN
325 LET SC=0
330 FOR N=1 TO 3
340 LET P=QJ-3+N
350 IF P<1 THEN GOTO 370
360 GOSUB A3
370 NEXT N
380 RETURN
470 LET BN=A(P)
480 GOSUB A8
490 PRINT AT 21,0;A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
492 GOSUB C7
500 RAND USR UP
510 PRINT AT 21,12;"%D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);TAB 31;A$(P,27)
512 GOSUB C7
520 RAND USR UP
530 PRINT AT 21,6;P;TAB 12;"%C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
532 GOSUB C7
540 RAND USR UP
545 GOSUB C7
550 RAND USR UP
570 RETURN
590 PRINT AT 0,0;G$;G$;G$;
600 LET BN=N(1)
610 GOSUB A8
620 PRINT AT 0,0;N$(1, TO 11);" ";X$
630 LET BN=N(2)
640 GOSUB A8
650 PRINT N$(2, TO 11);" ";X$
660 LET BN=N(3)
670 GOSUB A8
680 PRINT N$(3, TO 11);" ";X$
690 LET AB=N(1)+N(2)+N(3)
700 LET BN=AB
710 GOSUB A8
720 PRINT "TOTAL ";X$
730 PRINT H$;"NO...DATE...NAME..........AMOUNT"
740 RETURN
760 CLS
770 LET QJ=I
780 GOSUB A2
790 GOSUB A4
800 IF I=A THEN RETURN
810 DIM Z$(26)
820 LET QJ=I
830 LET IT=I+1
840 LET Z=0
850 LET EF=1
860 LET OA=0
870 GOSUB 920
880 FAST
890 IF EF=1 THEN RETURN
900 LET I=I+1
910 GOTO 790
930 PRINT AT 0,22;"%E%N%T%E%R "
940 RAND USR UP
950 RAND USR UP
970 PRINT AT 21,0;"%?"
980 SLOW
990 INPUT K$
1000 FAST
1010 PRINT AT 21,0;" "
1030 IF K$=" " THEN GOTO 1090
1040 IF K$="" THEN RETURN
1050 IF K$="N" THEN LET CT=CN+1
1060 IF CODE K$<38 THEN LET CT=VAL K$
1070 LET K$=STR$ CT
1080 LET Z$(4-LEN K$ TO )=K$
1090 PRINT AT 21,0;Z$( TO 3)
1110 PRINT AT 21,4;"%?"
1120 SLOW
1130 INPUT K$
1140 FAST
1150 IF K$=" " THEN GOTO 1250
1160 IF K$="" THEN RETURN
1165 IF K$="N" THEN LET K$=A$(QJ,4 TO 10)
1166 IF K$="N" THEN GOTO 1240
1170 IF LEN K$<7 THEN LET K$=" "+K$
1180 IF VAL K$( TO 2)>31 THEN GOTO 1120
1190 LET MN=0
1200 FOR N=3 TO 36 STEP 3
1210 IF M$(N-2 TO N)=K$(3 TO 5) THEN LET MN=N/3
1220 NEXT N
1230 IF NOT MN THEN GOTO 1120
1240 LET Z$(4 TO 10)=K$
1250 PRINT AT 21,4;Z$(4 TO 10);" %?"
1270 SLOW
1280 INPUT K$
1290 FAST
1300 IF K$=" " THEN GOTO 1330
1310 IF K$="" THEN RETURN
1320 LET Z$(11 TO 22)=K$
1330 PRINT AT 21,12;Z$(11 TO 22);" %?"
1350 SLOW
1360 INPUT K$
1370 FAST
1380 IF K$=" " THEN GOTO 1410
1390 IF K$="" THEN RETURN
1400 LET Z=VAL K$
1410 LET BN=Z
1420 GOSUB A8
1430 PRINT AT 21,24;X$(2 TO )
1450 RAND USR UP
1460 PRINT AT 21,12;"%D%R %?"
1470 SLOW
1480 INPUT K$
1490 IF K$=" " THEN GOTO 1550
1500 IF K$="" THEN RETURN
1510 LET DR=VAL K$
1520 IF DR>99 THEN GOTO 1470
1530 LET Z$(23 TO 24)=K$
1550 PRINT AT 21,15;Z$(23 TO 24);" ";N$(DR, TO 6)
1570 RAND USR UP
1580 PRINT AT 21,12;"%C%R %?"
1590 INPUT K$
1600 IF K$=" " THEN GOTO 1650
1610 IF K$="" THEN RETURN
1620 LET CR=VAL K$
1630 IF CR>99 THEN GOTO 2340
1640 LET Z$(25 TO 26)=K$
1650 PRINT AT 21,15;Z$(25 TO 26);" ";N$(CR, TO 6)
1670 RAND USR UP
1680 PRINT AT 21,5;"%?"
1690 INPUT K$
1700 LET D$=K$
1710 PRINT AT 21,5;D$
1740 PRINT AT 21,0;"%O%K%?"
1750 INPUT K$
1760 PRINT AT 21,0;" "
1770 IF K$="N" THEN RETURN
1772 IF K$="Y" THEN GOTO 1780
1774 GOTO 1740
1780 LET EF=0
1800 FAST
1810 LET A$(IT)=Z$
1820 LET A(IT)=Z
1830 LET N(DR)=N(DR)+Z
1840 LET BN=N(DR)
1850 GOSUB A8
1860 LET B$(DR)=X$
1870 LET N(CR)=N(CR)-Z
1880 LET BN=N(CR)
1890 GOSUB A8
1900 LET B$(CR)=X$
1910 LET CN=CT
1920 LET P=IT
1930 PRINT AT 20,6;P
1940 GOSUB 2540
1950 LPRINT " ";D$
1960 LPRINT
1970 LET D$=""
1980 RETURN
2000 PRINT AT 21,0;"ARE YOU SURE? "
2002 INPUT K$
2004 IF K$<>"Y" THEN RETURN
2006 FAST
2010 PRINT AT 21,0;"ENTER NO. OR ""O"""
2012 INPUT K$
2014 IF K$="" THEN RETURN
2015 IF K$="O" THEN LET QJ=R+1
2016 IF K$="O" THEN GOTO 2025
2020 LET QJ=VAL K$
2025 LET I=I-QJ+1
2030 FOR N=1 TO I
2035 LET A$(N)=A$(N+QJ-1)
2040 LET A(N)=A(N+QJ-1)
2045 NEXT N
2055 LET QJ=I
2060 LET R=0
2065 RETURN
2200 PRINT AT 21,0;"ARE YOU SURE? "
2202 INPUT K$
2204 IF K$<>"Y" THEN RETURN
2206 FAST
2210 LET CX=0
2212 LET S=0
2214 GOSUB 3280
2220 LET BN=BT+ST
2222 LET N(VAL C$(8,13 TO 14))=BN+N(VAL C$(8,13 TO 14))
2223 LET BN=N(VAL C$(8,13 TO 14))
2224 GOSUB A8
2226 LET B$(VAL C$(8,13 TO 14))=X$
2230 LET CX=1
2232 PRINT AT 21,0;"THE BOOKS ARE CLOSED"
2234 SLOW
2236 PAUSE 20
2238 RETURN
2470 LET X$=" 0 "
2480 LET B=INT (BN*100)
2490 IF BN*100-B>=.5 THEN LET B=B+1
2500 LET J$=STR$ B
2510 LET X$(10-LEN J$ TO )=J$
2520 LET X$( TO 7)=X$(2 TO 7)+"."
2530 RETURN
2540 REM *** LPRINT JOURNAL1 ***
2550 LET BN=A(P)
2560 GOSUB A8
2570 LPRINT " ";P,,A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
2580 LPRINT " %D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);" ";A$(P,27)
2590 LPRINT " %C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
2600 RETURN
2610 REM *** ACCT BAL PRINT ****
2630 FOR N=1 TO 15
2640 LET P=QB-15+N
2650 IF P<1 THEN GOTO 2690
2660 RAND USR UP
2670 PRINT AT 20,0;
2680 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2690 NEXT N
2700 RETURN
2720 PRINT AT 21,0;"WHICH ACCOUNT?"
2730 SLOW
2732 INPUT K$
2734 FAST
2735 PRINT AT 21,0;" "
2736 IF K$="" THEN RETURN
2740 LET QB=VAL K$
2745 GOSUB 2620
2746 PRINT AT 20,3;"%?"
2747 SLOW
2749 INPUT K$
2751 IF K$="" THEN RETURN
2753 LET N$(QB)=K$
2760 PRINT AT 20,3;N$(QB);TAB 23;B$(QB)
2770 GOTO 2720
2790 IF QB=99 THEN RETURN
2800 LET QB=QB+1
2810 RAND USR UP
2820 LET P=QB
2830 PRINT AT 20,0;
2840 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2850 RETURN
2870 IF QB=1 THEN RETURN
2880 LET QB=QB-1
2890 RAND USR DN
2900 IF QB<=16 THEN RETURN
2910 LET P=QB-15
2920 PRINT AT 6,0;
2930 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2940 RETURN
2952 PRINT AT 21,0;"DATE? "
2953 SLOW
2954 INPUT D$
2955 FAST
2960 LET CX=1
2962 LET S=0
2964 CLS
2966 GOSUB D6
2968 LET SC=5
2970 GOSUB C7
2972 GOSUB C6
2974 PRINT TAB 8;F$(N)
2976 GOSUB C7
2978 PRINT TAB 8;F$(7)
2980 GOSUB C7
2982 GOSUB C6
2984 PRINT TAB (32-LEN D$)/2;D$
2986 GOSUB C7
2988 GOSUB C6
2990 PRINT TAB 8;F$(M)
2992 GOSUB C7
2994 PRINT TAB 8;F$(7)
2996 GOSUB C7
2998 RETURN
3002 LET N=1
3004 LET M=2
3006 GOSUB B4
3008 LET X=1
3010 LET Y=4
3012 GOSUB B9
3014 LET ST=BT
3016 LET BN=ST
3018 GOSUB A8
3020 LET N=14
3022 LET M=4
3024 GOSUB B6
3026 LET X=5
3028 LET Y=7
3030 GOSUB B9
3032 LET LT=BT
3034 LET BN=LT
3036 GOSUB A8
3038 LET N=16
3040 LET M=5
3042 GOSUB B6
3044 LET X=8
3046 LET Y=8
3048 GOSUB B9
3050 LET BN=LT+BT
3052 GOSUB A8
3054 LET N=6
3056 GOSUB B7
3058 LET N=8
3060 GOTO 3220
3064 GOSUB C5
3066 PRINT F$(N);TAB 23;X$
3068 GOSUB C7
3070 GOSUB C6
3072 PRINT H$
3074 GOSUB C7
3076 GOSUB C6
3078 GOSUB C6
3080 PRINT TAB 8;F$(M)
3082 GOSUB C7
3084 PRINT TAB 8;F$(7)
3086 GOSUB C7
3088 GOSUB C6
3090 RETURN
3190 REM *** BAL/INC SUB 3 *****
3200 GOSUB C5
3202 PRINT F$(N)
3204 GOSUB C7
3206 PRINT TAB 23;X$
3208 GOSUB C7
3210 GOSUB C6
3212 PRINT H$
3214 GOSUB C7
3216 GOSUB C6
3218 RETURN
3220 LET BN=ST+BN
3222 GOSUB A8
3224 GOSUB C5
3226 PRINT F$(N);TAB 23;X$
3228 GOSUB C7
3230 GOSUB C6
3232 PRINT H$
3234 GOSUB C7
3236 PRINT H$
3238 GOSUB C7
3240 LET SC=22
3242 GOSUB C7
3244 RETURN
3260 LET N=9
3262 LET M=13
3264 GOSUB B4
3280 LET X=9
3282 LET Y=11
3284 GOSUB B9
3310 LET ST=BT
3312 IF NOT CX THEN GOTO 3350
3314 LET BN=ST
3316 GOSUB A8
3318 LET N=15
3320 LET M=11
3322 GOSUB B6
3350 LET X=12
3352 LET Y=18
3354 GOSUB B9
3360 IF NOT CX THEN RETURN
3380 LET BN=BT
3382 GOSUB A8
3400 LET N=3
3402 GOSUB B7
3430 LET N=12
3432 GOTO 3220
3460 LET BT=0
3462 FOR N=X TO Y
3490 LET AT=0
3492 IF S THEN GOTO 3592
3500 IF NOT CX THEN GOTO 3505
3501 PRINT C$(N, TO 12)
3502 GOSUB C7
3503 GOSUB C6
3505 IF C$(N,13 TO 14)=" " THEN GOTO 3590
3506 IF C$(N,15 TO 16)=" " THEN GOTO 3590
3510 FOR M=VAL C$(N,13 TO 14) TO VAL C$(N,15 TO )
3520 IF CX THEN GOSUB 3620
3530 LET AT=AT+N(M)
3532 IF CX THEN GOTO 3540
3534 LET N(M)=0
3536 LET B$(M)=" "
3540 IF M=99 THEN LET S=1
3550 NEXT M
3560 IF NOT CX THEN GOTO 3590
3562 LET BN=AT
3564 GOSUB A8
3566 GOSUB C5
3570 PRINT TAB 3;"TOTAL";TAB 23;X$
3572 GOSUB C7
3574 GOSUB C6
3590 LET BT=BT+AT
3592 NEXT N
3594 RETURN
3630 IF N$(M,1)=" " THEN RETURN
3640 PRINT M;TAB 3;N$(M);TAB 23;B$(M)
3642 GOSUB C7
3650 RETURN
3670 PRINT AT 21,0;"%S%E%A%R%C%H% %B%Y% %N%U%M%,% %D%A%T%E%,% %O%R% %N%A%M%E%?"
3680 SLOW
3690 INPUT K$
3700 FAST
3710 PRINT AT 18,0;G$;G$;G$;G$
3715 PRINT AT 19,0;"SEARCH: ";K$
3720 IF K$="" THEN RETURN
3730 IF K$="NUM" THEN GOTO 3770
3740 IF K$="DATE" THEN GOTO 3820
3750 IF K$="NAME" THEN GOTO 3870
3760 GOTO 3670
3780 LET X=1
3790 LET Y=3
3800 DIM S$(3)
3810 GOTO 3910
3830 LET X=4
3840 LET Y=10
3850 DIM S$(7)
3860 GOTO 3910
3880 LET X=11
3890 LET Y=22
3900 DIM S$(12)
3910 PRINT AT 21,0;"%E%N%T%E%R% %T%H%E% %S%T%R%I%N%G"
3920 SLOW
3930 INPUT K$
3935 IF K$="" THEN RETURN
3940 FAST
3945 CLS
3950 LET QJ=0
3960 LET S$=K$
3970 LET QJ=QJ+1
3980 IF QJ=I THEN GOTO 4090
3990 IF A$(QJ,X TO Y)=S$ THEN GOTO 4010
4000 GOTO 3970
4010 GOSUB A2
4020 IF QJ=I THEN RETURN
4030 PRINT AT 21,0;"%A%D%V%A%N%C%E%? "
4040 SLOW
4050 INPUT K$
4060 FAST
4070 IF K$="Y" THEN GOTO 3970
4080 RETURN
4090 RAND USR UP
4093 PRINT AT 20,0;S$;" NOT FOUND"
4097 RETURN
4100 IF QJ=I THEN RETURN
4110 LET QJ=QJ+1
4120 LET P=QJ
4130 GOSUB A3
4140 RETURN
4160 IF QJ=1 THEN RETURN
4170 LET QJ=QJ-1
4180 GOSUB A2
4190 RETURN
4210 CLS
4230 LET QJ=R
4240 LET RF=0
4250 LET BO=0
4260 IF NOT R THEN LET QJ=1
4280 IF A$(QJ,27)="*" THEN GOTO 4550
4290 IF VAL A$(QJ,23 TO 24)>=4 THEN GOTO 4300
4292 LET DR=1
4294 LET CR=NOT DR
4296 GOTO 4320
4300 IF VAL A$(QJ,25 TO 26)>=4 THEN GOTO 4540
4302 LET CR=1
4304 LET DR=NOT CR
4320 LET SC=0
4330 LET P=QJ
4340 GOSUB A3
4350 PRINT AT 21,0;"%R%E%T%U%R%N%E%D%?"
4360 SLOW
4370 INPUT K$
4380 FAST
4390 PRINT AT 21,0;G$
4400 IF K$="" THEN RETURN
4410 IF K$="Y" THEN GOTO 4480
4420 IF K$<>"N" THEN GOTO 4350
4430 LET BO=BO-A(QJ)*DR+A(QJ)*CR
4460 LET RF=1
4470 GOTO 4540
4490 IF RF THEN GOTO 4510
4500 LET R=QJ
4510 PRINT AT 19,31;"*"
4520 LET A$(QJ,27)="*"
4530 GOTO 4540
4550 IF QJ=I THEN GOTO 4580
4560 LET QJ=QJ+1
4570 GOTO 4270
4590 LET BN=AB
4600 GOSUB A8
4610 PRINT AT 0,0;"ACCOUNT";TAB 16;X$
4620 LET BN=BO
4630 GOSUB A8
4640 PRINT "OUTSTANDING";TAB 16;X$;" "
4650 PRINT "BANK";TAB 16;"%E%N%T%E%R"
4660 PRINT "ERROR"
4680 SLOW
4690 INPUT K$
4700 FAST
4710 LET BB=VAL K$
4720 LET BN=BB
4730 GOSUB A8
4740 PRINT AT 2,16;X$
4750 LET BN=BB-AB-BO
4760 GOSUB A8
4770 PRINT AT 3,16;X$
4780 SLOW
4790 RETURN
4835 LET SC=0
4840 CLS
4842 GOSUB D6
4845 PRINT R$
4847 LET O1=0
4848 SLOW
4849 PRINT AT 8,0;"%?"
4850 GOSUB A11
4851 PRINT AT 8,0;INKEY$
4852 IF CODE INKEY$=118 THEN RETURN
4853 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4849
4854 IF INKEY$="Y" THEN LET O1=1
4855 LET O2=0
4856 SLOW
4857 PRINT AT 9,0;"%?"
4859 GOSUB A11
4860 IF CODE INKEY$=118 THEN RETURN
4861 PRINT AT 9,0;INKEY$
4862 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4857
4864 IF INKEY$="Y" THEN LET O2=1
4865 PAUSE 30
4870 PRINT AT 21,0;"CHOICE?"
4875 SLOW
4880 IF INKEY$="" THEN GOTO 4880
4882 IF INKEY$="C" THEN GOSUB 5560
4884 IF INKEY$="M" THEN RETURN
4886 IF INKEY$="J" THEN GOSUB 5410
4888 IF INKEY$="B" THEN GOSUB 3000
4890 IF INKEY$="I" THEN GOSUB 3250
4892 IF INKEY$="L" THEN GOSUB 5040
4894 GOTO 4835
4902 PRINT TAB 23;E$
4904 GOTO 4930
4910 PRINT
4912 GOTO 4930
4930 LET SC=SC+1
4932 IF INKEY$="S" AND INKEY$<>"A" THEN GOTO 4932
4935 IF SC<22 THEN RETURN
4937 SLOW
4942 IF O1 THEN INPUT K$
4950 IF O2 THEN COPY
4952 CLS
4955 LET SC=0
4957 FAST
4960 RETURN
5030 REM *** OUTPUT ACCOUNTS ***
5040 PRINT AT 21,0;"ACCOUNT NO. OR ALL?"
5050 SLOW
5060 INPUT K$
5070 IF K$="" THEN RETURN
5080 LET U=VAL K$
5090 LET F=1
5095 PRINT AT 18,0;"ACCT. NO. ";K$
5100 PRINT ,,,,"MONTH DESIRED, JAN - DEC OR ALL?"
5110 INPUT K$
5120 FAST
5130 IF K$="" THEN RETURN
5135 CLS
5140 LET X=1
5150 LET Y=99
5160 IF U THEN LET X=U
5170 IF U THEN LET Y=U
5180 IF K$="ALL" THEN LET F=0
5190 FOR U=X TO Y
5200 IF N(U)=0 THEN GOTO 5380
5210 LET AT=0
5220 GOSUB C6
5221 GOSUB C6
5222 PRINT U;TAB 3;N$(U)
5224 GOSUB C7
5226 PRINT H$
5228 GOSUB C7
5230 LET N=0
5240 LET N=N+1
5250 IF N=I+1 THEN GOTO 5340
5260 IF F AND A$(N,6 TO 8)<>K$ THEN GOTO 5240
5270 IF VAL A$(N,23 TO 24)<>U AND VAL A$(N,25 TO 26)<>U THEN GOTO 5240
5280 IF VAL A$(N,23 TO 24)=U THEN LET BN=A(N)
5290 IF VAL A$(N,25 TO 26)=U THEN LET BN=-A(N)
5300 LET AT=AT+BN
5310 GOSUB A8
5320 PRINT A$(N, TO 3);" ";A$(N,4 TO 10);" ";A$(N,11 TO 21);X$
5322 GOSUB C7
5330 GOTO 5240
5340 GOSUB C5
5350 LET BN=AT
5360 GOSUB A8
5370 PRINT "TOTAL";TAB 23;X$
5372 GOSUB C7
5380 NEXT U
5382 LET SC=22
5384 GOSUB C7
5390 RETURN
5410 PRINT AT 18,0;"START WHERE? ";
5420 SLOW
5430 INPUT K$
5440 IF K$="" THEN RETURN
5450 LET X=VAL K$
5460 PRINT ,X
5470 PRINT ,,"END WHERE?";
5480 INPUT K$
5490 LET Y=VAL K$
5500 PRINT ,Y
5510 PAUSE 20
5511 FAST
5512 POKE 16518,0
5513 POKE 16528,182
5514 POKE 16529,2
5521 CLS
5522 LET SC=0
5524 FOR N=X TO Y
5526 IF N>I THEN GOTO 5550
5528 LET P=N
5530 GOSUB A3
5532 NEXT N
5550 LET SC=22
5552 GOSUB C7
5554 POKE 16518,199
5555 POKE 16528,239
5556 POKE 16529,1
5557 RETURN
5561 FAST
5562 LET S=0
5563 LET CX=1
5564 CLS
5565 GOSUB D6
5566 LET SC=5
5567 GOSUB C7
5568 PRINT H$
5569 GOSUB C7
5570 GOSUB C6
5575 LET X=1
5580 LET Y=18
5590 GOSUB B9
5592 LET SC=22
5594 GOSUB C7
5600 RETURN
5660 CLS
5665 PRINT "CATEGORY GROUP ACCOUNTS"," FROM TO"
5670 PRINT AT 2,0;"ASSETS";AT 6,0;"LIABIL";AT 9,0;"CAPITAL";AT 10,0;"INCOME";AT 13,0;"EXPENSE"
5680 PRINT AT 2,0;
5690 FOR N=1 TO 18
5700 PRINT TAB 9;N;TAB 12;C$(N, TO 12);TAB 26;C$(N,13 TO 14);TAB 30;C$(N,15 TO 16)
5710 NEXT N
5720 PRINT AT 21,0;"CHANGE WHICH GROUP?"
5730 SLOW
5740 INPUT K$
5750 IF K$="" THEN RETURN
5760 PRINT AT 21,0;G$
5770 LET Y=VAL K$
5790 PRINT AT 1+Y,11;"%?"
5800 INPUT K$
5810 IF K$="" THEN GOTO 5830
5820 LET C$(Y)=K$
5830 PRINT AT 1+Y,11;C$(Y, TO 12);TAB 26;"%?"
5840 INPUT K$
5850 IF K$="" THEN GOTO 5870
5860 LET C$(Y,13 TO 14)=K$
5870 PRINT AT 1+Y,26;C$(Y,13 TO 14);TAB 30;"%?"
5880 INPUT K$
5890 IF K$="" THEN GOTO 5910
5900 LET C$(Y,15 TO )=K$
5910 PRINT AT 1+Y,30;C$(Y,15 TO )
5920 GOTO 5720
6172 CLS
6174 GOSUB D6
6176 PRINT P$
6190 RETURN
6210 IF INKEY$="J" THEN GOTO 40
6215 IF INKEY$="M" THEN GOTO 130
6220 IF INKEY$="N" THEN GOSUB 2720
6225 IF INKEY$="G" THEN GOSUB 5660
6230 IF INKEY$="C" THEN COPY
6235 IF INKEY$="O" THEN GOSUB 4835
6240 IF INKEY$="E" THEN GOSUB 2190
6250 IF INKEY$="Q" THEN GOTO 6840
6260 IF INKEY$="T" THEN GOSUB 6600
6270 IF INKEY$="S" THEN GOTO 6740
6290 IF CODE INKEY$=112 THEN GOSUB 2780
6300 IF CODE INKEY$=113 THEN GOSUB 2860
6310 GOTO 170
6330 CLS
6340 GOSUB D6
6350 PRINT Q$
6410 IF INKEY$="L" THEN GOTO 0120
6420 IF INKEY$="C" THEN COPY
6430 IF INKEY$="B" THEN GOSUB 1990
6440 IF INKEY$="E" THEN GOSUB 750
6450 IF INKEY$="F" THEN GOSUB 3660
6460 IF INKEY$="M" THEN GOTO 30
6470 IF INKEY$="O" THEN GOSUB 4830
6490 IF INKEY$="S" THEN GOTO 6740
6500 IF INKEY$="R" THEN GOSUB 4210
6510 IF INKEY$="Q" THEN GOTO 6840
6520 IF CODE INKEY$=112 THEN GOSUB 4100
6530 IF CODE INKEY$=113 THEN GOSUB 4150
6540 GOTO 80
6550 REM SHORT SUB
6560 PRINT L$;H$;O$(1);O$(2);O$(3);H$
6570 RETURN
6605 PRINT AT 21,0;" "
6606 SLOW
6607 PRINT AT 2,0;"%?"
6610 INPUT K$
6615 IF K$="" THEN GOTO 6625
6620 LET O$(1)=K$
6625 PRINT AT 2,0;O$(1);"%?"
6635 INPUT K$
6640 IF K$="" THEN GOTO 6650
6645 LET O$(2)=K$
6650 PRINT AT 3,0;O$(2);"%?"
6655 INPUT K$
6660 IF K$="" THEN GOTO 6670
6665 LET O$(3)=K$
6670 PRINT AT 4,0;O$(3)
6675 RETURN
6750 RAND USR UP
6760 PRINT AT 21,0;"SAVE BOOKS?"
6770 SLOW
6780 INPUT K$
6790 FAST
6800 PRINT AT 21,0;G$
6810 IF K$<>"Y" THEN GOTO 80
6820 SAVE "BOOK%S"
6830 GOTO 30
6850 CLS
6890 LIST
7020 DIM A$(A,27)
7030 DIM A(A)
7040 DIM N(99)
7050 DIM B$(99,9)
7060 LET I=0
7070 LET QJ=I
7090 LET R=I
7100 LET CN=I
7110 GOTO 30
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
People
No people associated with this content.
A
Skip to content
Bookkeeper
Double-entry bookkeeping program. Requires 64K RAM.
Content
Source Code
10 REM E£RND)SIN ; FAST )5 ;SGN \' LOAD \' GOSUB %K FOR \.'4Q 7( CLS TAN 89XXX
20 REM \2A\10\40\11\43\00\ED\52\E5\11\21\00\ED\52\D1\01\EF\01\ED\B8\EB\06\20\2B\36\00\10\FB\C9\3D\3D\3D
40 FAST
50 CLS
70 GOSUB 6320
80 SLOW
82 PRINT AT 21,0;"COMMAND"
84 PRINT AT 21,7;"? ";AT 21,7;"%?"
90 IF INKEY$="" THEN GOTO 80
100 FAST
110 GOTO 6400
130 FAST
140 CLS
160 GOSUB 6170
170 SLOW
175 PRINT AT 21,0;"COMMAND"
176 PRINT AT 21,7;"? ";AT 21,7;"%?"
180 IF INKEY$="" THEN GOTO 175
190 FAST
200 GOTO 6200
230 IF INKEY$="" THEN GOTO 230
240 FAST
250 RETURN
325 LET SC=0
330 FOR N=1 TO 3
340 LET P=QJ-3+N
350 IF P<1 THEN GOTO 370
360 GOSUB A3
370 NEXT N
380 RETURN
470 LET BN=A(P)
480 GOSUB A8
490 PRINT AT 21,0;A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
492 GOSUB C7
500 RAND USR UP
510 PRINT AT 21,12;"%D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);TAB 31;A$(P,27)
512 GOSUB C7
520 RAND USR UP
530 PRINT AT 21,6;P;TAB 12;"%C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
532 GOSUB C7
540 RAND USR UP
545 GOSUB C7
550 RAND USR UP
570 RETURN
590 PRINT AT 0,0;G$;G$;G$;
600 LET BN=N(1)
610 GOSUB A8
620 PRINT AT 0,0;N$(1, TO 11);" ";X$
630 LET BN=N(2)
640 GOSUB A8
650 PRINT N$(2, TO 11);" ";X$
660 LET BN=N(3)
670 GOSUB A8
680 PRINT N$(3, TO 11);" ";X$
690 LET AB=N(1)+N(2)+N(3)
700 LET BN=AB
710 GOSUB A8
720 PRINT "TOTAL ";X$
730 PRINT H$;"NO...DATE...NAME..........AMOUNT"
740 RETURN
760 CLS
770 LET QJ=I
780 GOSUB A2
790 GOSUB A4
800 IF I=A THEN RETURN
810 DIM Z$(26)
820 LET QJ=I
830 LET IT=I+1
840 LET Z=0
850 LET EF=1
860 LET OA=0
870 GOSUB 920
880 FAST
890 IF EF=1 THEN RETURN
900 LET I=I+1
910 GOTO 790
930 PRINT AT 0,22;"%E%N%T%E%R "
940 RAND USR UP
950 RAND USR UP
970 PRINT AT 21,0;"%?"
980 SLOW
990 INPUT K$
1000 FAST
1010 PRINT AT 21,0;" "
1030 IF K$=" " THEN GOTO 1090
1040 IF K$="" THEN RETURN
1050 IF K$="N" THEN LET CT=CN+1
1060 IF CODE K$<38 THEN LET CT=VAL K$
1070 LET K$=STR$ CT
1080 LET Z$(4-LEN K$ TO )=K$
1090 PRINT AT 21,0;Z$( TO 3)
1110 PRINT AT 21,4;"%?"
1120 SLOW
1130 INPUT K$
1140 FAST
1150 IF K$=" " THEN GOTO 1250
1160 IF K$="" THEN RETURN
1165 IF K$="N" THEN LET K$=A$(QJ,4 TO 10)
1166 IF K$="N" THEN GOTO 1240
1170 IF LEN K$<7 THEN LET K$=" "+K$
1180 IF VAL K$( TO 2)>31 THEN GOTO 1120
1190 LET MN=0
1200 FOR N=3 TO 36 STEP 3
1210 IF M$(N-2 TO N)=K$(3 TO 5) THEN LET MN=N/3
1220 NEXT N
1230 IF NOT MN THEN GOTO 1120
1240 LET Z$(4 TO 10)=K$
1250 PRINT AT 21,4;Z$(4 TO 10);" %?"
1270 SLOW
1280 INPUT K$
1290 FAST
1300 IF K$=" " THEN GOTO 1330
1310 IF K$="" THEN RETURN
1320 LET Z$(11 TO 22)=K$
1330 PRINT AT 21,12;Z$(11 TO 22);" %?"
1350 SLOW
1360 INPUT K$
1370 FAST
1380 IF K$=" " THEN GOTO 1410
1390 IF K$="" THEN RETURN
1400 LET Z=VAL K$
1410 LET BN=Z
1420 GOSUB A8
1430 PRINT AT 21,24;X$(2 TO )
1450 RAND USR UP
1460 PRINT AT 21,12;"%D%R %?"
1470 SLOW
1480 INPUT K$
1490 IF K$=" " THEN GOTO 1550
1500 IF K$="" THEN RETURN
1510 LET DR=VAL K$
1520 IF DR>99 THEN GOTO 1470
1530 LET Z$(23 TO 24)=K$
1550 PRINT AT 21,15;Z$(23 TO 24);" ";N$(DR, TO 6)
1570 RAND USR UP
1580 PRINT AT 21,12;"%C%R %?"
1590 INPUT K$
1600 IF K$=" " THEN GOTO 1650
1610 IF K$="" THEN RETURN
1620 LET CR=VAL K$
1630 IF CR>99 THEN GOTO 2340
1640 LET Z$(25 TO 26)=K$
1650 PRINT AT 21,15;Z$(25 TO 26);" ";N$(CR, TO 6)
1670 RAND USR UP
1680 PRINT AT 21,5;"%?"
1690 INPUT K$
1700 LET D$=K$
1710 PRINT AT 21,5;D$
1740 PRINT AT 21,0;"%O%K%?"
1750 INPUT K$
1760 PRINT AT 21,0;" "
1770 IF K$="N" THEN RETURN
1772 IF K$="Y" THEN GOTO 1780
1774 GOTO 1740
1780 LET EF=0
1800 FAST
1810 LET A$(IT)=Z$
1820 LET A(IT)=Z
1830 LET N(DR)=N(DR)+Z
1840 LET BN=N(DR)
1850 GOSUB A8
1860 LET B$(DR)=X$
1870 LET N(CR)=N(CR)-Z
1880 LET BN=N(CR)
1890 GOSUB A8
1900 LET B$(CR)=X$
1910 LET CN=CT
1920 LET P=IT
1930 PRINT AT 20,6;P
1940 GOSUB 2540
1950 LPRINT " ";D$
1960 LPRINT
1970 LET D$=""
1980 RETURN
2000 PRINT AT 21,0;"ARE YOU SURE? "
2002 INPUT K$
2004 IF K$<>"Y" THEN RETURN
2006 FAST
2010 PRINT AT 21,0;"ENTER NO. OR ""O"""
2012 INPUT K$
2014 IF K$="" THEN RETURN
2015 IF K$="O" THEN LET QJ=R+1
2016 IF K$="O" THEN GOTO 2025
2020 LET QJ=VAL K$
2025 LET I=I-QJ+1
2030 FOR N=1 TO I
2035 LET A$(N)=A$(N+QJ-1)
2040 LET A(N)=A(N+QJ-1)
2045 NEXT N
2055 LET QJ=I
2060 LET R=0
2065 RETURN
2200 PRINT AT 21,0;"ARE YOU SURE? "
2202 INPUT K$
2204 IF K$<>"Y" THEN RETURN
2206 FAST
2210 LET CX=0
2212 LET S=0
2214 GOSUB 3280
2220 LET BN=BT+ST
2222 LET N(VAL C$(8,13 TO 14))=BN+N(VAL C$(8,13 TO 14))
2223 LET BN=N(VAL C$(8,13 TO 14))
2224 GOSUB A8
2226 LET B$(VAL C$(8,13 TO 14))=X$
2230 LET CX=1
2232 PRINT AT 21,0;"THE BOOKS ARE CLOSED"
2234 SLOW
2236 PAUSE 20
2238 RETURN
2470 LET X$=" 0 "
2480 LET B=INT (BN*100)
2490 IF BN*100-B>=.5 THEN LET B=B+1
2500 LET J$=STR$ B
2510 LET X$(10-LEN J$ TO )=J$
2520 LET X$( TO 7)=X$(2 TO 7)+"."
2530 RETURN
2540 REM *** LPRINT JOURNAL1 ***
2550 LET BN=A(P)
2560 GOSUB A8
2570 LPRINT " ";P,,A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
2580 LPRINT " %D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);" ";A$(P,27)
2590 LPRINT " %C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
2600 RETURN
2610 REM *** ACCT BAL PRINT ****
2630 FOR N=1 TO 15
2640 LET P=QB-15+N
2650 IF P<1 THEN GOTO 2690
2660 RAND USR UP
2670 PRINT AT 20,0;
2680 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2690 NEXT N
2700 RETURN
2720 PRINT AT 21,0;"WHICH ACCOUNT?"
2730 SLOW
2732 INPUT K$
2734 FAST
2735 PRINT AT 21,0;" "
2736 IF K$="" THEN RETURN
2740 LET QB=VAL K$
2745 GOSUB 2620
2746 PRINT AT 20,3;"%?"
2747 SLOW
2749 INPUT K$
2751 IF K$="" THEN RETURN
2753 LET N$(QB)=K$
2760 PRINT AT 20,3;N$(QB);TAB 23;B$(QB)
2770 GOTO 2720
2790 IF QB=99 THEN RETURN
2800 LET QB=QB+1
2810 RAND USR UP
2820 LET P=QB
2830 PRINT AT 20,0;
2840 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2850 RETURN
2870 IF QB=1 THEN RETURN
2880 LET QB=QB-1
2890 RAND USR DN
2900 IF QB<=16 THEN RETURN
2910 LET P=QB-15
2920 PRINT AT 6,0;
2930 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2940 RETURN
2952 PRINT AT 21,0;"DATE? "
2953 SLOW
2954 INPUT D$
2955 FAST
2960 LET CX=1
2962 LET S=0
2964 CLS
2966 GOSUB D6
2968 LET SC=5
2970 GOSUB C7
2972 GOSUB C6
2974 PRINT TAB 8;F$(N)
2976 GOSUB C7
2978 PRINT TAB 8;F$(7)
2980 GOSUB C7
2982 GOSUB C6
2984 PRINT TAB (32-LEN D$)/2;D$
2986 GOSUB C7
2988 GOSUB C6
2990 PRINT TAB 8;F$(M)
2992 GOSUB C7
2994 PRINT TAB 8;F$(7)
2996 GOSUB C7
2998 RETURN
3002 LET N=1
3004 LET M=2
3006 GOSUB B4
3008 LET X=1
3010 LET Y=4
3012 GOSUB B9
3014 LET ST=BT
3016 LET BN=ST
3018 GOSUB A8
3020 LET N=14
3022 LET M=4
3024 GOSUB B6
3026 LET X=5
3028 LET Y=7
3030 GOSUB B9
3032 LET LT=BT
3034 LET BN=LT
3036 GOSUB A8
3038 LET N=16
3040 LET M=5
3042 GOSUB B6
3044 LET X=8
3046 LET Y=8
3048 GOSUB B9
3050 LET BN=LT+BT
3052 GOSUB A8
3054 LET N=6
3056 GOSUB B7
3058 LET N=8
3060 GOTO 3220
3064 GOSUB C5
3066 PRINT F$(N);TAB 23;X$
3068 GOSUB C7
3070 GOSUB C6
3072 PRINT H$
3074 GOSUB C7
3076 GOSUB C6
3078 GOSUB C6
3080 PRINT TAB 8;F$(M)
3082 GOSUB C7
3084 PRINT TAB 8;F$(7)
3086 GOSUB C7
3088 GOSUB C6
3090 RETURN
3190 REM *** BAL/INC SUB 3 *****
3200 GOSUB C5
3202 PRINT F$(N)
3204 GOSUB C7
3206 PRINT TAB 23;X$
3208 GOSUB C7
3210 GOSUB C6
3212 PRINT H$
3214 GOSUB C7
3216 GOSUB C6
3218 RETURN
3220 LET BN=ST+BN
3222 GOSUB A8
3224 GOSUB C5
3226 PRINT F$(N);TAB 23;X$
3228 GOSUB C7
3230 GOSUB C6
3232 PRINT H$
3234 GOSUB C7
3236 PRINT H$
3238 GOSUB C7
3240 LET SC=22
3242 GOSUB C7
3244 RETURN
3260 LET N=9
3262 LET M=13
3264 GOSUB B4
3280 LET X=9
3282 LET Y=11
3284 GOSUB B9
3310 LET ST=BT
3312 IF NOT CX THEN GOTO 3350
3314 LET BN=ST
3316 GOSUB A8
3318 LET N=15
3320 LET M=11
3322 GOSUB B6
3350 LET X=12
3352 LET Y=18
3354 GOSUB B9
3360 IF NOT CX THEN RETURN
3380 LET BN=BT
3382 GOSUB A8
3400 LET N=3
3402 GOSUB B7
3430 LET N=12
3432 GOTO 3220
3460 LET BT=0
3462 FOR N=X TO Y
3490 LET AT=0
3492 IF S THEN GOTO 3592
3500 IF NOT CX THEN GOTO 3505
3501 PRINT C$(N, TO 12)
3502 GOSUB C7
3503 GOSUB C6
3505 IF C$(N,13 TO 14)=" " THEN GOTO 3590
3506 IF C$(N,15 TO 16)=" " THEN GOTO 3590
3510 FOR M=VAL C$(N,13 TO 14) TO VAL C$(N,15 TO )
3520 IF CX THEN GOSUB 3620
3530 LET AT=AT+N(M)
3532 IF CX THEN GOTO 3540
3534 LET N(M)=0
3536 LET B$(M)=" "
3540 IF M=99 THEN LET S=1
3550 NEXT M
3560 IF NOT CX THEN GOTO 3590
3562 LET BN=AT
3564 GOSUB A8
3566 GOSUB C5
3570 PRINT TAB 3;"TOTAL";TAB 23;X$
3572 GOSUB C7
3574 GOSUB C6
3590 LET BT=BT+AT
3592 NEXT N
3594 RETURN
3630 IF N$(M,1)=" " THEN RETURN
3640 PRINT M;TAB 3;N$(M);TAB 23;B$(M)
3642 GOSUB C7
3650 RETURN
3670 PRINT AT 21,0;"%S%E%A%R%C%H% %B%Y% %N%U%M%,% %D%A%T%E%,% %O%R% %N%A%M%E%?"
3680 SLOW
3690 INPUT K$
3700 FAST
3710 PRINT AT 18,0;G$;G$;G$;G$
3715 PRINT AT 19,0;"SEARCH: ";K$
3720 IF K$="" THEN RETURN
3730 IF K$="NUM" THEN GOTO 3770
3740 IF K$="DATE" THEN GOTO 3820
3750 IF K$="NAME" THEN GOTO 3870
3760 GOTO 3670
3780 LET X=1
3790 LET Y=3
3800 DIM S$(3)
3810 GOTO 3910
3830 LET X=4
3840 LET Y=10
3850 DIM S$(7)
3860 GOTO 3910
3880 LET X=11
3890 LET Y=22
3900 DIM S$(12)
3910 PRINT AT 21,0;"%E%N%T%E%R% %T%H%E% %S%T%R%I%N%G"
3920 SLOW
3930 INPUT K$
3935 IF K$="" THEN RETURN
3940 FAST
3945 CLS
3950 LET QJ=0
3960 LET S$=K$
3970 LET QJ=QJ+1
3980 IF QJ=I THEN GOTO 4090
3990 IF A$(QJ,X TO Y)=S$ THEN GOTO 4010
4000 GOTO 3970
4010 GOSUB A2
4020 IF QJ=I THEN RETURN
4030 PRINT AT 21,0;"%A%D%V%A%N%C%E%? "
4040 SLOW
4050 INPUT K$
4060 FAST
4070 IF K$="Y" THEN GOTO 3970
4080 RETURN
4090 RAND USR UP
4093 PRINT AT 20,0;S$;" NOT FOUND"
4097 RETURN
4100 IF QJ=I THEN RETURN
4110 LET QJ=QJ+1
4120 LET P=QJ
4130 GOSUB A3
4140 RETURN
4160 IF QJ=1 THEN RETURN
4170 LET QJ=QJ-1
4180 GOSUB A2
4190 RETURN
4210 CLS
4230 LET QJ=R
4240 LET RF=0
4250 LET BO=0
4260 IF NOT R THEN LET QJ=1
4280 IF A$(QJ,27)="*" THEN GOTO 4550
4290 IF VAL A$(QJ,23 TO 24)>=4 THEN GOTO 4300
4292 LET DR=1
4294 LET CR=NOT DR
4296 GOTO 4320
4300 IF VAL A$(QJ,25 TO 26)>=4 THEN GOTO 4540
4302 LET CR=1
4304 LET DR=NOT CR
4320 LET SC=0
4330 LET P=QJ
4340 GOSUB A3
4350 PRINT AT 21,0;"%R%E%T%U%R%N%E%D%?"
4360 SLOW
4370 INPUT K$
4380 FAST
4390 PRINT AT 21,0;G$
4400 IF K$="" THEN RETURN
4410 IF K$="Y" THEN GOTO 4480
4420 IF K$<>"N" THEN GOTO 4350
4430 LET BO=BO-A(QJ)*DR+A(QJ)*CR
4460 LET RF=1
4470 GOTO 4540
4490 IF RF THEN GOTO 4510
4500 LET R=QJ
4510 PRINT AT 19,31;"*"
4520 LET A$(QJ,27)="*"
4530 GOTO 4540
4550 IF QJ=I THEN GOTO 4580
4560 LET QJ=QJ+1
4570 GOTO 4270
4590 LET BN=AB
4600 GOSUB A8
4610 PRINT AT 0,0;"ACCOUNT";TAB 16;X$
4620 LET BN=BO
4630 GOSUB A8
4640 PRINT "OUTSTANDING";TAB 16;X$;" "
4650 PRINT "BANK";TAB 16;"%E%N%T%E%R"
4660 PRINT "ERROR"
4680 SLOW
4690 INPUT K$
4700 FAST
4710 LET BB=VAL K$
4720 LET BN=BB
4730 GOSUB A8
4740 PRINT AT 2,16;X$
4750 LET BN=BB-AB-BO
4760 GOSUB A8
4770 PRINT AT 3,16;X$
4780 SLOW
4790 RETURN
4835 LET SC=0
4840 CLS
4842 GOSUB D6
4845 PRINT R$
4847 LET O1=0
4848 SLOW
4849 PRINT AT 8,0;"%?"
4850 GOSUB A11
4851 PRINT AT 8,0;INKEY$
4852 IF CODE INKEY$=118 THEN RETURN
4853 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4849
4854 IF INKEY$="Y" THEN LET O1=1
4855 LET O2=0
4856 SLOW
4857 PRINT AT 9,0;"%?"
4859 GOSUB A11
4860 IF CODE INKEY$=118 THEN RETURN
4861 PRINT AT 9,0;INKEY$
4862 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4857
4864 IF INKEY$="Y" THEN LET O2=1
4865 PAUSE 30
4870 PRINT AT 21,0;"CHOICE?"
4875 SLOW
4880 IF INKEY$="" THEN GOTO 4880
4882 IF INKEY$="C" THEN GOSUB 5560
4884 IF INKEY$="M" THEN RETURN
4886 IF INKEY$="J" THEN GOSUB 5410
4888 IF INKEY$="B" THEN GOSUB 3000
4890 IF INKEY$="I" THEN GOSUB 3250
4892 IF INKEY$="L" THEN GOSUB 5040
4894 GOTO 4835
4902 PRINT TAB 23;E$
4904 GOTO 4930
4910 PRINT
4912 GOTO 4930
4930 LET SC=SC+1
4932 IF INKEY$="S" AND INKEY$<>"A" THEN GOTO 4932
4935 IF SC<22 THEN RETURN
4937 SLOW
4942 IF O1 THEN INPUT K$
4950 IF O2 THEN COPY
4952 CLS
4955 LET SC=0
4957 FAST
4960 RETURN
5030 REM *** OUTPUT ACCOUNTS ***
5040 PRINT AT 21,0;"ACCOUNT NO. OR ALL?"
5050 SLOW
5060 INPUT K$
5070 IF K$="" THEN RETURN
5080 LET U=VAL K$
5090 LET F=1
5095 PRINT AT 18,0;"ACCT. NO. ";K$
5100 PRINT ,,,,"MONTH DESIRED, JAN - DEC OR ALL?"
5110 INPUT K$
5120 FAST
5130 IF K$="" THEN RETURN
5135 CLS
5140 LET X=1
5150 LET Y=99
5160 IF U THEN LET X=U
5170 IF U THEN LET Y=U
5180 IF K$="ALL" THEN LET F=0
5190 FOR U=X TO Y
5200 IF N(U)=0 THEN GOTO 5380
5210 LET AT=0
5220 GOSUB C6
5221 GOSUB C6
5222 PRINT U;TAB 3;N$(U)
5224 GOSUB C7
5226 PRINT H$
5228 GOSUB C7
5230 LET N=0
5240 LET N=N+1
5250 IF N=I+1 THEN GOTO 5340
5260 IF F AND A$(N,6 TO 8)<>K$ THEN GOTO 5240
5270 IF VAL A$(N,23 TO 24)<>U AND VAL A$(N,25 TO 26)<>U THEN GOTO 5240
5280 IF VAL A$(N,23 TO 24)=U THEN LET BN=A(N)
5290 IF VAL A$(N,25 TO 26)=U THEN LET BN=-A(N)
5300 LET AT=AT+BN
5310 GOSUB A8
5320 PRINT A$(N, TO 3);" ";A$(N,4 TO 10);" ";A$(N,11 TO 21);X$
5322 GOSUB C7
5330 GOTO 5240
5340 GOSUB C5
5350 LET BN=AT
5360 GOSUB A8
5370 PRINT "TOTAL";TAB 23;X$
5372 GOSUB C7
5380 NEXT U
5382 LET SC=22
5384 GOSUB C7
5390 RETURN
5410 PRINT AT 18,0;"START WHERE? ";
5420 SLOW
5430 INPUT K$
5440 IF K$="" THEN RETURN
5450 LET X=VAL K$
5460 PRINT ,X
5470 PRINT ,,"END WHERE?";
5480 INPUT K$
5490 LET Y=VAL K$
5500 PRINT ,Y
5510 PAUSE 20
5511 FAST
5512 POKE 16518,0
5513 POKE 16528,182
5514 POKE 16529,2
5521 CLS
5522 LET SC=0
5524 FOR N=X TO Y
5526 IF N>I THEN GOTO 5550
5528 LET P=N
5530 GOSUB A3
5532 NEXT N
5550 LET SC=22
5552 GOSUB C7
5554 POKE 16518,199
5555 POKE 16528,239
5556 POKE 16529,1
5557 RETURN
5561 FAST
5562 LET S=0
5563 LET CX=1
5564 CLS
5565 GOSUB D6
5566 LET SC=5
5567 GOSUB C7
5568 PRINT H$
5569 GOSUB C7
5570 GOSUB C6
5575 LET X=1
5580 LET Y=18
5590 GOSUB B9
5592 LET SC=22
5594 GOSUB C7
5600 RETURN
5660 CLS
5665 PRINT "CATEGORY GROUP ACCOUNTS"," FROM TO"
5670 PRINT AT 2,0;"ASSETS";AT 6,0;"LIABIL";AT 9,0;"CAPITAL";AT 10,0;"INCOME";AT 13,0;"EXPENSE"
5680 PRINT AT 2,0;
5690 FOR N=1 TO 18
5700 PRINT TAB 9;N;TAB 12;C$(N, TO 12);TAB 26;C$(N,13 TO 14);TAB 30;C$(N,15 TO 16)
5710 NEXT N
5720 PRINT AT 21,0;"CHANGE WHICH GROUP?"
5730 SLOW
5740 INPUT K$
5750 IF K$="" THEN RETURN
5760 PRINT AT 21,0;G$
5770 LET Y=VAL K$
5790 PRINT AT 1+Y,11;"%?"
5800 INPUT K$
5810 IF K$="" THEN GOTO 5830
5820 LET C$(Y)=K$
5830 PRINT AT 1+Y,11;C$(Y, TO 12);TAB 26;"%?"
5840 INPUT K$
5850 IF K$="" THEN GOTO 5870
5860 LET C$(Y,13 TO 14)=K$
5870 PRINT AT 1+Y,26;C$(Y,13 TO 14);TAB 30;"%?"
5880 INPUT K$
5890 IF K$="" THEN GOTO 5910
5900 LET C$(Y,15 TO )=K$
5910 PRINT AT 1+Y,30;C$(Y,15 TO )
5920 GOTO 5720
6172 CLS
6174 GOSUB D6
6176 PRINT P$
6190 RETURN
6210 IF INKEY$="J" THEN GOTO 40
6215 IF INKEY$="M" THEN GOTO 130
6220 IF INKEY$="N" THEN GOSUB 2720
6225 IF INKEY$="G" THEN GOSUB 5660
6230 IF INKEY$="C" THEN COPY
6235 IF INKEY$="O" THEN GOSUB 4835
6240 IF INKEY$="E" THEN GOSUB 2190
6250 IF INKEY$="Q" THEN GOTO 6840
6260 IF INKEY$="T" THEN GOSUB 6600
6270 IF INKEY$="S" THEN GOTO 6740
6290 IF CODE INKEY$=112 THEN GOSUB 2780
6300 IF CODE INKEY$=113 THEN GOSUB 2860
6310 GOTO 170
6330 CLS
6340 GOSUB D6
6350 PRINT Q$
6410 IF INKEY$="L" THEN GOTO 0120
6420 IF INKEY$="C" THEN COPY
6430 IF INKEY$="B" THEN GOSUB 1990
6440 IF INKEY$="E" THEN GOSUB 750
6450 IF INKEY$="F" THEN GOSUB 3660
6460 IF INKEY$="M" THEN GOTO 30
6470 IF INKEY$="O" THEN GOSUB 4830
6490 IF INKEY$="S" THEN GOTO 6740
6500 IF INKEY$="R" THEN GOSUB 4210
6510 IF INKEY$="Q" THEN GOTO 6840
6520 IF CODE INKEY$=112 THEN GOSUB 4100
6530 IF CODE INKEY$=113 THEN GOSUB 4150
6540 GOTO 80
6550 REM SHORT SUB
6560 PRINT L$;H$;O$(1);O$(2);O$(3);H$
6570 RETURN
6605 PRINT AT 21,0;" "
6606 SLOW
6607 PRINT AT 2,0;"%?"
6610 INPUT K$
6615 IF K$="" THEN GOTO 6625
6620 LET O$(1)=K$
6625 PRINT AT 2,0;O$(1);"%?"
6635 INPUT K$
6640 IF K$="" THEN GOTO 6650
6645 LET O$(2)=K$
6650 PRINT AT 3,0;O$(2);"%?"
6655 INPUT K$
6660 IF K$="" THEN GOTO 6670
6665 LET O$(3)=K$
6670 PRINT AT 4,0;O$(3)
6675 RETURN
6750 RAND USR UP
6760 PRINT AT 21,0;"SAVE BOOKS?"
6770 SLOW
6780 INPUT K$
6790 FAST
6800 PRINT AT 21,0;G$
6810 IF K$<>"Y" THEN GOTO 80
6820 SAVE "BOOK%S"
6830 GOTO 30
6850 CLS
6890 LIST
7020 DIM A$(A,27)
7030 DIM A(A)
7040 DIM N(99)
7050 DIM B$(99,9)
7060 LET I=0
7070 LET QJ=I
7090 LET R=I
7100 LET CN=I
7110 GOTO 30
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
People
No people associated with this content.
\ED\E5
Skip to content
Bookkeeper
Double-entry bookkeeping program. Requires 64K RAM.
Content
Source Code
10 REM E£RND)SIN ; FAST )5 ;SGN \' LOAD \' GOSUB %K FOR \.'4Q 7( CLS TAN 89XXX
20 REM \2A\10\40\11\43\00\ED\52\E5\11\21\00\ED\52\D1\01\EF\01\ED\B8\EB\06\20\2B\36\00\10\FB\C9\3D\3D\3D
40 FAST
50 CLS
70 GOSUB 6320
80 SLOW
82 PRINT AT 21,0;"COMMAND"
84 PRINT AT 21,7;"? ";AT 21,7;"%?"
90 IF INKEY$="" THEN GOTO 80
100 FAST
110 GOTO 6400
130 FAST
140 CLS
160 GOSUB 6170
170 SLOW
175 PRINT AT 21,0;"COMMAND"
176 PRINT AT 21,7;"? ";AT 21,7;"%?"
180 IF INKEY$="" THEN GOTO 175
190 FAST
200 GOTO 6200
230 IF INKEY$="" THEN GOTO 230
240 FAST
250 RETURN
325 LET SC=0
330 FOR N=1 TO 3
340 LET P=QJ-3+N
350 IF P<1 THEN GOTO 370
360 GOSUB A3
370 NEXT N
380 RETURN
470 LET BN=A(P)
480 GOSUB A8
490 PRINT AT 21,0;A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
492 GOSUB C7
500 RAND USR UP
510 PRINT AT 21,12;"%D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);TAB 31;A$(P,27)
512 GOSUB C7
520 RAND USR UP
530 PRINT AT 21,6;P;TAB 12;"%C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
532 GOSUB C7
540 RAND USR UP
545 GOSUB C7
550 RAND USR UP
570 RETURN
590 PRINT AT 0,0;G$;G$;G$;
600 LET BN=N(1)
610 GOSUB A8
620 PRINT AT 0,0;N$(1, TO 11);" ";X$
630 LET BN=N(2)
640 GOSUB A8
650 PRINT N$(2, TO 11);" ";X$
660 LET BN=N(3)
670 GOSUB A8
680 PRINT N$(3, TO 11);" ";X$
690 LET AB=N(1)+N(2)+N(3)
700 LET BN=AB
710 GOSUB A8
720 PRINT "TOTAL ";X$
730 PRINT H$;"NO...DATE...NAME..........AMOUNT"
740 RETURN
760 CLS
770 LET QJ=I
780 GOSUB A2
790 GOSUB A4
800 IF I=A THEN RETURN
810 DIM Z$(26)
820 LET QJ=I
830 LET IT=I+1
840 LET Z=0
850 LET EF=1
860 LET OA=0
870 GOSUB 920
880 FAST
890 IF EF=1 THEN RETURN
900 LET I=I+1
910 GOTO 790
930 PRINT AT 0,22;"%E%N%T%E%R "
940 RAND USR UP
950 RAND USR UP
970 PRINT AT 21,0;"%?"
980 SLOW
990 INPUT K$
1000 FAST
1010 PRINT AT 21,0;" "
1030 IF K$=" " THEN GOTO 1090
1040 IF K$="" THEN RETURN
1050 IF K$="N" THEN LET CT=CN+1
1060 IF CODE K$<38 THEN LET CT=VAL K$
1070 LET K$=STR$ CT
1080 LET Z$(4-LEN K$ TO )=K$
1090 PRINT AT 21,0;Z$( TO 3)
1110 PRINT AT 21,4;"%?"
1120 SLOW
1130 INPUT K$
1140 FAST
1150 IF K$=" " THEN GOTO 1250
1160 IF K$="" THEN RETURN
1165 IF K$="N" THEN LET K$=A$(QJ,4 TO 10)
1166 IF K$="N" THEN GOTO 1240
1170 IF LEN K$<7 THEN LET K$=" "+K$
1180 IF VAL K$( TO 2)>31 THEN GOTO 1120
1190 LET MN=0
1200 FOR N=3 TO 36 STEP 3
1210 IF M$(N-2 TO N)=K$(3 TO 5) THEN LET MN=N/3
1220 NEXT N
1230 IF NOT MN THEN GOTO 1120
1240 LET Z$(4 TO 10)=K$
1250 PRINT AT 21,4;Z$(4 TO 10);" %?"
1270 SLOW
1280 INPUT K$
1290 FAST
1300 IF K$=" " THEN GOTO 1330
1310 IF K$="" THEN RETURN
1320 LET Z$(11 TO 22)=K$
1330 PRINT AT 21,12;Z$(11 TO 22);" %?"
1350 SLOW
1360 INPUT K$
1370 FAST
1380 IF K$=" " THEN GOTO 1410
1390 IF K$="" THEN RETURN
1400 LET Z=VAL K$
1410 LET BN=Z
1420 GOSUB A8
1430 PRINT AT 21,24;X$(2 TO )
1450 RAND USR UP
1460 PRINT AT 21,12;"%D%R %?"
1470 SLOW
1480 INPUT K$
1490 IF K$=" " THEN GOTO 1550
1500 IF K$="" THEN RETURN
1510 LET DR=VAL K$
1520 IF DR>99 THEN GOTO 1470
1530 LET Z$(23 TO 24)=K$
1550 PRINT AT 21,15;Z$(23 TO 24);" ";N$(DR, TO 6)
1570 RAND USR UP
1580 PRINT AT 21,12;"%C%R %?"
1590 INPUT K$
1600 IF K$=" " THEN GOTO 1650
1610 IF K$="" THEN RETURN
1620 LET CR=VAL K$
1630 IF CR>99 THEN GOTO 2340
1640 LET Z$(25 TO 26)=K$
1650 PRINT AT 21,15;Z$(25 TO 26);" ";N$(CR, TO 6)
1670 RAND USR UP
1680 PRINT AT 21,5;"%?"
1690 INPUT K$
1700 LET D$=K$
1710 PRINT AT 21,5;D$
1740 PRINT AT 21,0;"%O%K%?"
1750 INPUT K$
1760 PRINT AT 21,0;" "
1770 IF K$="N" THEN RETURN
1772 IF K$="Y" THEN GOTO 1780
1774 GOTO 1740
1780 LET EF=0
1800 FAST
1810 LET A$(IT)=Z$
1820 LET A(IT)=Z
1830 LET N(DR)=N(DR)+Z
1840 LET BN=N(DR)
1850 GOSUB A8
1860 LET B$(DR)=X$
1870 LET N(CR)=N(CR)-Z
1880 LET BN=N(CR)
1890 GOSUB A8
1900 LET B$(CR)=X$
1910 LET CN=CT
1920 LET P=IT
1930 PRINT AT 20,6;P
1940 GOSUB 2540
1950 LPRINT " ";D$
1960 LPRINT
1970 LET D$=""
1980 RETURN
2000 PRINT AT 21,0;"ARE YOU SURE? "
2002 INPUT K$
2004 IF K$<>"Y" THEN RETURN
2006 FAST
2010 PRINT AT 21,0;"ENTER NO. OR ""O"""
2012 INPUT K$
2014 IF K$="" THEN RETURN
2015 IF K$="O" THEN LET QJ=R+1
2016 IF K$="O" THEN GOTO 2025
2020 LET QJ=VAL K$
2025 LET I=I-QJ+1
2030 FOR N=1 TO I
2035 LET A$(N)=A$(N+QJ-1)
2040 LET A(N)=A(N+QJ-1)
2045 NEXT N
2055 LET QJ=I
2060 LET R=0
2065 RETURN
2200 PRINT AT 21,0;"ARE YOU SURE? "
2202 INPUT K$
2204 IF K$<>"Y" THEN RETURN
2206 FAST
2210 LET CX=0
2212 LET S=0
2214 GOSUB 3280
2220 LET BN=BT+ST
2222 LET N(VAL C$(8,13 TO 14))=BN+N(VAL C$(8,13 TO 14))
2223 LET BN=N(VAL C$(8,13 TO 14))
2224 GOSUB A8
2226 LET B$(VAL C$(8,13 TO 14))=X$
2230 LET CX=1
2232 PRINT AT 21,0;"THE BOOKS ARE CLOSED"
2234 SLOW
2236 PAUSE 20
2238 RETURN
2470 LET X$=" 0 "
2480 LET B=INT (BN*100)
2490 IF BN*100-B>=.5 THEN LET B=B+1
2500 LET J$=STR$ B
2510 LET X$(10-LEN J$ TO )=J$
2520 LET X$( TO 7)=X$(2 TO 7)+"."
2530 RETURN
2540 REM *** LPRINT JOURNAL1 ***
2550 LET BN=A(P)
2560 GOSUB A8
2570 LPRINT " ";P,,A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
2580 LPRINT " %D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);" ";A$(P,27)
2590 LPRINT " %C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
2600 RETURN
2610 REM *** ACCT BAL PRINT ****
2630 FOR N=1 TO 15
2640 LET P=QB-15+N
2650 IF P<1 THEN GOTO 2690
2660 RAND USR UP
2670 PRINT AT 20,0;
2680 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2690 NEXT N
2700 RETURN
2720 PRINT AT 21,0;"WHICH ACCOUNT?"
2730 SLOW
2732 INPUT K$
2734 FAST
2735 PRINT AT 21,0;" "
2736 IF K$="" THEN RETURN
2740 LET QB=VAL K$
2745 GOSUB 2620
2746 PRINT AT 20,3;"%?"
2747 SLOW
2749 INPUT K$
2751 IF K$="" THEN RETURN
2753 LET N$(QB)=K$
2760 PRINT AT 20,3;N$(QB);TAB 23;B$(QB)
2770 GOTO 2720
2790 IF QB=99 THEN RETURN
2800 LET QB=QB+1
2810 RAND USR UP
2820 LET P=QB
2830 PRINT AT 20,0;
2840 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2850 RETURN
2870 IF QB=1 THEN RETURN
2880 LET QB=QB-1
2890 RAND USR DN
2900 IF QB<=16 THEN RETURN
2910 LET P=QB-15
2920 PRINT AT 6,0;
2930 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2940 RETURN
2952 PRINT AT 21,0;"DATE? "
2953 SLOW
2954 INPUT D$
2955 FAST
2960 LET CX=1
2962 LET S=0
2964 CLS
2966 GOSUB D6
2968 LET SC=5
2970 GOSUB C7
2972 GOSUB C6
2974 PRINT TAB 8;F$(N)
2976 GOSUB C7
2978 PRINT TAB 8;F$(7)
2980 GOSUB C7
2982 GOSUB C6
2984 PRINT TAB (32-LEN D$)/2;D$
2986 GOSUB C7
2988 GOSUB C6
2990 PRINT TAB 8;F$(M)
2992 GOSUB C7
2994 PRINT TAB 8;F$(7)
2996 GOSUB C7
2998 RETURN
3002 LET N=1
3004 LET M=2
3006 GOSUB B4
3008 LET X=1
3010 LET Y=4
3012 GOSUB B9
3014 LET ST=BT
3016 LET BN=ST
3018 GOSUB A8
3020 LET N=14
3022 LET M=4
3024 GOSUB B6
3026 LET X=5
3028 LET Y=7
3030 GOSUB B9
3032 LET LT=BT
3034 LET BN=LT
3036 GOSUB A8
3038 LET N=16
3040 LET M=5
3042 GOSUB B6
3044 LET X=8
3046 LET Y=8
3048 GOSUB B9
3050 LET BN=LT+BT
3052 GOSUB A8
3054 LET N=6
3056 GOSUB B7
3058 LET N=8
3060 GOTO 3220
3064 GOSUB C5
3066 PRINT F$(N);TAB 23;X$
3068 GOSUB C7
3070 GOSUB C6
3072 PRINT H$
3074 GOSUB C7
3076 GOSUB C6
3078 GOSUB C6
3080 PRINT TAB 8;F$(M)
3082 GOSUB C7
3084 PRINT TAB 8;F$(7)
3086 GOSUB C7
3088 GOSUB C6
3090 RETURN
3190 REM *** BAL/INC SUB 3 *****
3200 GOSUB C5
3202 PRINT F$(N)
3204 GOSUB C7
3206 PRINT TAB 23;X$
3208 GOSUB C7
3210 GOSUB C6
3212 PRINT H$
3214 GOSUB C7
3216 GOSUB C6
3218 RETURN
3220 LET BN=ST+BN
3222 GOSUB A8
3224 GOSUB C5
3226 PRINT F$(N);TAB 23;X$
3228 GOSUB C7
3230 GOSUB C6
3232 PRINT H$
3234 GOSUB C7
3236 PRINT H$
3238 GOSUB C7
3240 LET SC=22
3242 GOSUB C7
3244 RETURN
3260 LET N=9
3262 LET M=13
3264 GOSUB B4
3280 LET X=9
3282 LET Y=11
3284 GOSUB B9
3310 LET ST=BT
3312 IF NOT CX THEN GOTO 3350
3314 LET BN=ST
3316 GOSUB A8
3318 LET N=15
3320 LET M=11
3322 GOSUB B6
3350 LET X=12
3352 LET Y=18
3354 GOSUB B9
3360 IF NOT CX THEN RETURN
3380 LET BN=BT
3382 GOSUB A8
3400 LET N=3
3402 GOSUB B7
3430 LET N=12
3432 GOTO 3220
3460 LET BT=0
3462 FOR N=X TO Y
3490 LET AT=0
3492 IF S THEN GOTO 3592
3500 IF NOT CX THEN GOTO 3505
3501 PRINT C$(N, TO 12)
3502 GOSUB C7
3503 GOSUB C6
3505 IF C$(N,13 TO 14)=" " THEN GOTO 3590
3506 IF C$(N,15 TO 16)=" " THEN GOTO 3590
3510 FOR M=VAL C$(N,13 TO 14) TO VAL C$(N,15 TO )
3520 IF CX THEN GOSUB 3620
3530 LET AT=AT+N(M)
3532 IF CX THEN GOTO 3540
3534 LET N(M)=0
3536 LET B$(M)=" "
3540 IF M=99 THEN LET S=1
3550 NEXT M
3560 IF NOT CX THEN GOTO 3590
3562 LET BN=AT
3564 GOSUB A8
3566 GOSUB C5
3570 PRINT TAB 3;"TOTAL";TAB 23;X$
3572 GOSUB C7
3574 GOSUB C6
3590 LET BT=BT+AT
3592 NEXT N
3594 RETURN
3630 IF N$(M,1)=" " THEN RETURN
3640 PRINT M;TAB 3;N$(M);TAB 23;B$(M)
3642 GOSUB C7
3650 RETURN
3670 PRINT AT 21,0;"%S%E%A%R%C%H% %B%Y% %N%U%M%,% %D%A%T%E%,% %O%R% %N%A%M%E%?"
3680 SLOW
3690 INPUT K$
3700 FAST
3710 PRINT AT 18,0;G$;G$;G$;G$
3715 PRINT AT 19,0;"SEARCH: ";K$
3720 IF K$="" THEN RETURN
3730 IF K$="NUM" THEN GOTO 3770
3740 IF K$="DATE" THEN GOTO 3820
3750 IF K$="NAME" THEN GOTO 3870
3760 GOTO 3670
3780 LET X=1
3790 LET Y=3
3800 DIM S$(3)
3810 GOTO 3910
3830 LET X=4
3840 LET Y=10
3850 DIM S$(7)
3860 GOTO 3910
3880 LET X=11
3890 LET Y=22
3900 DIM S$(12)
3910 PRINT AT 21,0;"%E%N%T%E%R% %T%H%E% %S%T%R%I%N%G"
3920 SLOW
3930 INPUT K$
3935 IF K$="" THEN RETURN
3940 FAST
3945 CLS
3950 LET QJ=0
3960 LET S$=K$
3970 LET QJ=QJ+1
3980 IF QJ=I THEN GOTO 4090
3990 IF A$(QJ,X TO Y)=S$ THEN GOTO 4010
4000 GOTO 3970
4010 GOSUB A2
4020 IF QJ=I THEN RETURN
4030 PRINT AT 21,0;"%A%D%V%A%N%C%E%? "
4040 SLOW
4050 INPUT K$
4060 FAST
4070 IF K$="Y" THEN GOTO 3970
4080 RETURN
4090 RAND USR UP
4093 PRINT AT 20,0;S$;" NOT FOUND"
4097 RETURN
4100 IF QJ=I THEN RETURN
4110 LET QJ=QJ+1
4120 LET P=QJ
4130 GOSUB A3
4140 RETURN
4160 IF QJ=1 THEN RETURN
4170 LET QJ=QJ-1
4180 GOSUB A2
4190 RETURN
4210 CLS
4230 LET QJ=R
4240 LET RF=0
4250 LET BO=0
4260 IF NOT R THEN LET QJ=1
4280 IF A$(QJ,27)="*" THEN GOTO 4550
4290 IF VAL A$(QJ,23 TO 24)>=4 THEN GOTO 4300
4292 LET DR=1
4294 LET CR=NOT DR
4296 GOTO 4320
4300 IF VAL A$(QJ,25 TO 26)>=4 THEN GOTO 4540
4302 LET CR=1
4304 LET DR=NOT CR
4320 LET SC=0
4330 LET P=QJ
4340 GOSUB A3
4350 PRINT AT 21,0;"%R%E%T%U%R%N%E%D%?"
4360 SLOW
4370 INPUT K$
4380 FAST
4390 PRINT AT 21,0;G$
4400 IF K$="" THEN RETURN
4410 IF K$="Y" THEN GOTO 4480
4420 IF K$<>"N" THEN GOTO 4350
4430 LET BO=BO-A(QJ)*DR+A(QJ)*CR
4460 LET RF=1
4470 GOTO 4540
4490 IF RF THEN GOTO 4510
4500 LET R=QJ
4510 PRINT AT 19,31;"*"
4520 LET A$(QJ,27)="*"
4530 GOTO 4540
4550 IF QJ=I THEN GOTO 4580
4560 LET QJ=QJ+1
4570 GOTO 4270
4590 LET BN=AB
4600 GOSUB A8
4610 PRINT AT 0,0;"ACCOUNT";TAB 16;X$
4620 LET BN=BO
4630 GOSUB A8
4640 PRINT "OUTSTANDING";TAB 16;X$;" "
4650 PRINT "BANK";TAB 16;"%E%N%T%E%R"
4660 PRINT "ERROR"
4680 SLOW
4690 INPUT K$
4700 FAST
4710 LET BB=VAL K$
4720 LET BN=BB
4730 GOSUB A8
4740 PRINT AT 2,16;X$
4750 LET BN=BB-AB-BO
4760 GOSUB A8
4770 PRINT AT 3,16;X$
4780 SLOW
4790 RETURN
4835 LET SC=0
4840 CLS
4842 GOSUB D6
4845 PRINT R$
4847 LET O1=0
4848 SLOW
4849 PRINT AT 8,0;"%?"
4850 GOSUB A11
4851 PRINT AT 8,0;INKEY$
4852 IF CODE INKEY$=118 THEN RETURN
4853 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4849
4854 IF INKEY$="Y" THEN LET O1=1
4855 LET O2=0
4856 SLOW
4857 PRINT AT 9,0;"%?"
4859 GOSUB A11
4860 IF CODE INKEY$=118 THEN RETURN
4861 PRINT AT 9,0;INKEY$
4862 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4857
4864 IF INKEY$="Y" THEN LET O2=1
4865 PAUSE 30
4870 PRINT AT 21,0;"CHOICE?"
4875 SLOW
4880 IF INKEY$="" THEN GOTO 4880
4882 IF INKEY$="C" THEN GOSUB 5560
4884 IF INKEY$="M" THEN RETURN
4886 IF INKEY$="J" THEN GOSUB 5410
4888 IF INKEY$="B" THEN GOSUB 3000
4890 IF INKEY$="I" THEN GOSUB 3250
4892 IF INKEY$="L" THEN GOSUB 5040
4894 GOTO 4835
4902 PRINT TAB 23;E$
4904 GOTO 4930
4910 PRINT
4912 GOTO 4930
4930 LET SC=SC+1
4932 IF INKEY$="S" AND INKEY$<>"A" THEN GOTO 4932
4935 IF SC<22 THEN RETURN
4937 SLOW
4942 IF O1 THEN INPUT K$
4950 IF O2 THEN COPY
4952 CLS
4955 LET SC=0
4957 FAST
4960 RETURN
5030 REM *** OUTPUT ACCOUNTS ***
5040 PRINT AT 21,0;"ACCOUNT NO. OR ALL?"
5050 SLOW
5060 INPUT K$
5070 IF K$="" THEN RETURN
5080 LET U=VAL K$
5090 LET F=1
5095 PRINT AT 18,0;"ACCT. NO. ";K$
5100 PRINT ,,,,"MONTH DESIRED, JAN - DEC OR ALL?"
5110 INPUT K$
5120 FAST
5130 IF K$="" THEN RETURN
5135 CLS
5140 LET X=1
5150 LET Y=99
5160 IF U THEN LET X=U
5170 IF U THEN LET Y=U
5180 IF K$="ALL" THEN LET F=0
5190 FOR U=X TO Y
5200 IF N(U)=0 THEN GOTO 5380
5210 LET AT=0
5220 GOSUB C6
5221 GOSUB C6
5222 PRINT U;TAB 3;N$(U)
5224 GOSUB C7
5226 PRINT H$
5228 GOSUB C7
5230 LET N=0
5240 LET N=N+1
5250 IF N=I+1 THEN GOTO 5340
5260 IF F AND A$(N,6 TO 8)<>K$ THEN GOTO 5240
5270 IF VAL A$(N,23 TO 24)<>U AND VAL A$(N,25 TO 26)<>U THEN GOTO 5240
5280 IF VAL A$(N,23 TO 24)=U THEN LET BN=A(N)
5290 IF VAL A$(N,25 TO 26)=U THEN LET BN=-A(N)
5300 LET AT=AT+BN
5310 GOSUB A8
5320 PRINT A$(N, TO 3);" ";A$(N,4 TO 10);" ";A$(N,11 TO 21);X$
5322 GOSUB C7
5330 GOTO 5240
5340 GOSUB C5
5350 LET BN=AT
5360 GOSUB A8
5370 PRINT "TOTAL";TAB 23;X$
5372 GOSUB C7
5380 NEXT U
5382 LET SC=22
5384 GOSUB C7
5390 RETURN
5410 PRINT AT 18,0;"START WHERE? ";
5420 SLOW
5430 INPUT K$
5440 IF K$="" THEN RETURN
5450 LET X=VAL K$
5460 PRINT ,X
5470 PRINT ,,"END WHERE?";
5480 INPUT K$
5490 LET Y=VAL K$
5500 PRINT ,Y
5510 PAUSE 20
5511 FAST
5512 POKE 16518,0
5513 POKE 16528,182
5514 POKE 16529,2
5521 CLS
5522 LET SC=0
5524 FOR N=X TO Y
5526 IF N>I THEN GOTO 5550
5528 LET P=N
5530 GOSUB A3
5532 NEXT N
5550 LET SC=22
5552 GOSUB C7
5554 POKE 16518,199
5555 POKE 16528,239
5556 POKE 16529,1
5557 RETURN
5561 FAST
5562 LET S=0
5563 LET CX=1
5564 CLS
5565 GOSUB D6
5566 LET SC=5
5567 GOSUB C7
5568 PRINT H$
5569 GOSUB C7
5570 GOSUB C6
5575 LET X=1
5580 LET Y=18
5590 GOSUB B9
5592 LET SC=22
5594 GOSUB C7
5600 RETURN
5660 CLS
5665 PRINT "CATEGORY GROUP ACCOUNTS"," FROM TO"
5670 PRINT AT 2,0;"ASSETS";AT 6,0;"LIABIL";AT 9,0;"CAPITAL";AT 10,0;"INCOME";AT 13,0;"EXPENSE"
5680 PRINT AT 2,0;
5690 FOR N=1 TO 18
5700 PRINT TAB 9;N;TAB 12;C$(N, TO 12);TAB 26;C$(N,13 TO 14);TAB 30;C$(N,15 TO 16)
5710 NEXT N
5720 PRINT AT 21,0;"CHANGE WHICH GROUP?"
5730 SLOW
5740 INPUT K$
5750 IF K$="" THEN RETURN
5760 PRINT AT 21,0;G$
5770 LET Y=VAL K$
5790 PRINT AT 1+Y,11;"%?"
5800 INPUT K$
5810 IF K$="" THEN GOTO 5830
5820 LET C$(Y)=K$
5830 PRINT AT 1+Y,11;C$(Y, TO 12);TAB 26;"%?"
5840 INPUT K$
5850 IF K$="" THEN GOTO 5870
5860 LET C$(Y,13 TO 14)=K$
5870 PRINT AT 1+Y,26;C$(Y,13 TO 14);TAB 30;"%?"
5880 INPUT K$
5890 IF K$="" THEN GOTO 5910
5900 LET C$(Y,15 TO )=K$
5910 PRINT AT 1+Y,30;C$(Y,15 TO )
5920 GOTO 5720
6172 CLS
6174 GOSUB D6
6176 PRINT P$
6190 RETURN
6210 IF INKEY$="J" THEN GOTO 40
6215 IF INKEY$="M" THEN GOTO 130
6220 IF INKEY$="N" THEN GOSUB 2720
6225 IF INKEY$="G" THEN GOSUB 5660
6230 IF INKEY$="C" THEN COPY
6235 IF INKEY$="O" THEN GOSUB 4835
6240 IF INKEY$="E" THEN GOSUB 2190
6250 IF INKEY$="Q" THEN GOTO 6840
6260 IF INKEY$="T" THEN GOSUB 6600
6270 IF INKEY$="S" THEN GOTO 6740
6290 IF CODE INKEY$=112 THEN GOSUB 2780
6300 IF CODE INKEY$=113 THEN GOSUB 2860
6310 GOTO 170
6330 CLS
6340 GOSUB D6
6350 PRINT Q$
6410 IF INKEY$="L" THEN GOTO 0120
6420 IF INKEY$="C" THEN COPY
6430 IF INKEY$="B" THEN GOSUB 1990
6440 IF INKEY$="E" THEN GOSUB 750
6450 IF INKEY$="F" THEN GOSUB 3660
6460 IF INKEY$="M" THEN GOTO 30
6470 IF INKEY$="O" THEN GOSUB 4830
6490 IF INKEY$="S" THEN GOTO 6740
6500 IF INKEY$="R" THEN GOSUB 4210
6510 IF INKEY$="Q" THEN GOTO 6840
6520 IF CODE INKEY$=112 THEN GOSUB 4100
6530 IF CODE INKEY$=113 THEN GOSUB 4150
6540 GOTO 80
6550 REM SHORT SUB
6560 PRINT L$;H$;O$(1);O$(2);O$(3);H$
6570 RETURN
6605 PRINT AT 21,0;" "
6606 SLOW
6607 PRINT AT 2,0;"%?"
6610 INPUT K$
6615 IF K$="" THEN GOTO 6625
6620 LET O$(1)=K$
6625 PRINT AT 2,0;O$(1);"%?"
6635 INPUT K$
6640 IF K$="" THEN GOTO 6650
6645 LET O$(2)=K$
6650 PRINT AT 3,0;O$(2);"%?"
6655 INPUT K$
6660 IF K$="" THEN GOTO 6670
6665 LET O$(3)=K$
6670 PRINT AT 4,0;O$(3)
6675 RETURN
6750 RAND USR UP
6760 PRINT AT 21,0;"SAVE BOOKS?"
6770 SLOW
6780 INPUT K$
6790 FAST
6800 PRINT AT 21,0;G$
6810 IF K$<>"Y" THEN GOTO 80
6820 SAVE "BOOK%S"
6830 GOTO 30
6850 CLS
6890 LIST
7020 DIM A$(A,27)
7030 DIM A(A)
7040 DIM N(99)
7050 DIM B$(99,9)
7060 LET I=0
7070 LET QJ=I
7090 LET R=I
7100 LET CN=I
7110 GOTO 30
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
People
No people associated with this content.
\ED\D1 itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-56664 wp-custom-logo wp-embed-responsive wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.12.1 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.12.1"\EF itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-56664 wp-custom-logo wp-embed-responsive wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.12.1 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.12.1"\ED\B8\EB
Skip to content
Bookkeeper
Double-entry bookkeeping program. Requires 64K RAM.
Content
Source Code
10 REM E£RND)SIN ; FAST )5 ;SGN \' LOAD \' GOSUB %K FOR \.'4Q 7( CLS TAN 89XXX
20 REM \2A\10\40\11\43\00\ED\52\E5\11\21\00\ED\52\D1\01\EF\01\ED\B8\EB\06\20\2B\36\00\10\FB\C9\3D\3D\3D
40 FAST
50 CLS
70 GOSUB 6320
80 SLOW
82 PRINT AT 21,0;"COMMAND"
84 PRINT AT 21,7;"? ";AT 21,7;"%?"
90 IF INKEY$="" THEN GOTO 80
100 FAST
110 GOTO 6400
130 FAST
140 CLS
160 GOSUB 6170
170 SLOW
175 PRINT AT 21,0;"COMMAND"
176 PRINT AT 21,7;"? ";AT 21,7;"%?"
180 IF INKEY$="" THEN GOTO 175
190 FAST
200 GOTO 6200
230 IF INKEY$="" THEN GOTO 230
240 FAST
250 RETURN
325 LET SC=0
330 FOR N=1 TO 3
340 LET P=QJ-3+N
350 IF P<1 THEN GOTO 370
360 GOSUB A3
370 NEXT N
380 RETURN
470 LET BN=A(P)
480 GOSUB A8
490 PRINT AT 21,0;A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
492 GOSUB C7
500 RAND USR UP
510 PRINT AT 21,12;"%D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);TAB 31;A$(P,27)
512 GOSUB C7
520 RAND USR UP
530 PRINT AT 21,6;P;TAB 12;"%C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
532 GOSUB C7
540 RAND USR UP
545 GOSUB C7
550 RAND USR UP
570 RETURN
590 PRINT AT 0,0;G$;G$;G$;
600 LET BN=N(1)
610 GOSUB A8
620 PRINT AT 0,0;N$(1, TO 11);" ";X$
630 LET BN=N(2)
640 GOSUB A8
650 PRINT N$(2, TO 11);" ";X$
660 LET BN=N(3)
670 GOSUB A8
680 PRINT N$(3, TO 11);" ";X$
690 LET AB=N(1)+N(2)+N(3)
700 LET BN=AB
710 GOSUB A8
720 PRINT "TOTAL ";X$
730 PRINT H$;"NO...DATE...NAME..........AMOUNT"
740 RETURN
760 CLS
770 LET QJ=I
780 GOSUB A2
790 GOSUB A4
800 IF I=A THEN RETURN
810 DIM Z$(26)
820 LET QJ=I
830 LET IT=I+1
840 LET Z=0
850 LET EF=1
860 LET OA=0
870 GOSUB 920
880 FAST
890 IF EF=1 THEN RETURN
900 LET I=I+1
910 GOTO 790
930 PRINT AT 0,22;"%E%N%T%E%R "
940 RAND USR UP
950 RAND USR UP
970 PRINT AT 21,0;"%?"
980 SLOW
990 INPUT K$
1000 FAST
1010 PRINT AT 21,0;" "
1030 IF K$=" " THEN GOTO 1090
1040 IF K$="" THEN RETURN
1050 IF K$="N" THEN LET CT=CN+1
1060 IF CODE K$<38 THEN LET CT=VAL K$
1070 LET K$=STR$ CT
1080 LET Z$(4-LEN K$ TO )=K$
1090 PRINT AT 21,0;Z$( TO 3)
1110 PRINT AT 21,4;"%?"
1120 SLOW
1130 INPUT K$
1140 FAST
1150 IF K$=" " THEN GOTO 1250
1160 IF K$="" THEN RETURN
1165 IF K$="N" THEN LET K$=A$(QJ,4 TO 10)
1166 IF K$="N" THEN GOTO 1240
1170 IF LEN K$<7 THEN LET K$=" "+K$
1180 IF VAL K$( TO 2)>31 THEN GOTO 1120
1190 LET MN=0
1200 FOR N=3 TO 36 STEP 3
1210 IF M$(N-2 TO N)=K$(3 TO 5) THEN LET MN=N/3
1220 NEXT N
1230 IF NOT MN THEN GOTO 1120
1240 LET Z$(4 TO 10)=K$
1250 PRINT AT 21,4;Z$(4 TO 10);" %?"
1270 SLOW
1280 INPUT K$
1290 FAST
1300 IF K$=" " THEN GOTO 1330
1310 IF K$="" THEN RETURN
1320 LET Z$(11 TO 22)=K$
1330 PRINT AT 21,12;Z$(11 TO 22);" %?"
1350 SLOW
1360 INPUT K$
1370 FAST
1380 IF K$=" " THEN GOTO 1410
1390 IF K$="" THEN RETURN
1400 LET Z=VAL K$
1410 LET BN=Z
1420 GOSUB A8
1430 PRINT AT 21,24;X$(2 TO )
1450 RAND USR UP
1460 PRINT AT 21,12;"%D%R %?"
1470 SLOW
1480 INPUT K$
1490 IF K$=" " THEN GOTO 1550
1500 IF K$="" THEN RETURN
1510 LET DR=VAL K$
1520 IF DR>99 THEN GOTO 1470
1530 LET Z$(23 TO 24)=K$
1550 PRINT AT 21,15;Z$(23 TO 24);" ";N$(DR, TO 6)
1570 RAND USR UP
1580 PRINT AT 21,12;"%C%R %?"
1590 INPUT K$
1600 IF K$=" " THEN GOTO 1650
1610 IF K$="" THEN RETURN
1620 LET CR=VAL K$
1630 IF CR>99 THEN GOTO 2340
1640 LET Z$(25 TO 26)=K$
1650 PRINT AT 21,15;Z$(25 TO 26);" ";N$(CR, TO 6)
1670 RAND USR UP
1680 PRINT AT 21,5;"%?"
1690 INPUT K$
1700 LET D$=K$
1710 PRINT AT 21,5;D$
1740 PRINT AT 21,0;"%O%K%?"
1750 INPUT K$
1760 PRINT AT 21,0;" "
1770 IF K$="N" THEN RETURN
1772 IF K$="Y" THEN GOTO 1780
1774 GOTO 1740
1780 LET EF=0
1800 FAST
1810 LET A$(IT)=Z$
1820 LET A(IT)=Z
1830 LET N(DR)=N(DR)+Z
1840 LET BN=N(DR)
1850 GOSUB A8
1860 LET B$(DR)=X$
1870 LET N(CR)=N(CR)-Z
1880 LET BN=N(CR)
1890 GOSUB A8
1900 LET B$(CR)=X$
1910 LET CN=CT
1920 LET P=IT
1930 PRINT AT 20,6;P
1940 GOSUB 2540
1950 LPRINT " ";D$
1960 LPRINT
1970 LET D$=""
1980 RETURN
2000 PRINT AT 21,0;"ARE YOU SURE? "
2002 INPUT K$
2004 IF K$<>"Y" THEN RETURN
2006 FAST
2010 PRINT AT 21,0;"ENTER NO. OR ""O"""
2012 INPUT K$
2014 IF K$="" THEN RETURN
2015 IF K$="O" THEN LET QJ=R+1
2016 IF K$="O" THEN GOTO 2025
2020 LET QJ=VAL K$
2025 LET I=I-QJ+1
2030 FOR N=1 TO I
2035 LET A$(N)=A$(N+QJ-1)
2040 LET A(N)=A(N+QJ-1)
2045 NEXT N
2055 LET QJ=I
2060 LET R=0
2065 RETURN
2200 PRINT AT 21,0;"ARE YOU SURE? "
2202 INPUT K$
2204 IF K$<>"Y" THEN RETURN
2206 FAST
2210 LET CX=0
2212 LET S=0
2214 GOSUB 3280
2220 LET BN=BT+ST
2222 LET N(VAL C$(8,13 TO 14))=BN+N(VAL C$(8,13 TO 14))
2223 LET BN=N(VAL C$(8,13 TO 14))
2224 GOSUB A8
2226 LET B$(VAL C$(8,13 TO 14))=X$
2230 LET CX=1
2232 PRINT AT 21,0;"THE BOOKS ARE CLOSED"
2234 SLOW
2236 PAUSE 20
2238 RETURN
2470 LET X$=" 0 "
2480 LET B=INT (BN*100)
2490 IF BN*100-B>=.5 THEN LET B=B+1
2500 LET J$=STR$ B
2510 LET X$(10-LEN J$ TO )=J$
2520 LET X$( TO 7)=X$(2 TO 7)+"."
2530 RETURN
2540 REM *** LPRINT JOURNAL1 ***
2550 LET BN=A(P)
2560 GOSUB A8
2570 LPRINT " ";P,,A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
2580 LPRINT " %D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);" ";A$(P,27)
2590 LPRINT " %C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
2600 RETURN
2610 REM *** ACCT BAL PRINT ****
2630 FOR N=1 TO 15
2640 LET P=QB-15+N
2650 IF P<1 THEN GOTO 2690
2660 RAND USR UP
2670 PRINT AT 20,0;
2680 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2690 NEXT N
2700 RETURN
2720 PRINT AT 21,0;"WHICH ACCOUNT?"
2730 SLOW
2732 INPUT K$
2734 FAST
2735 PRINT AT 21,0;" "
2736 IF K$="" THEN RETURN
2740 LET QB=VAL K$
2745 GOSUB 2620
2746 PRINT AT 20,3;"%?"
2747 SLOW
2749 INPUT K$
2751 IF K$="" THEN RETURN
2753 LET N$(QB)=K$
2760 PRINT AT 20,3;N$(QB);TAB 23;B$(QB)
2770 GOTO 2720
2790 IF QB=99 THEN RETURN
2800 LET QB=QB+1
2810 RAND USR UP
2820 LET P=QB
2830 PRINT AT 20,0;
2840 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2850 RETURN
2870 IF QB=1 THEN RETURN
2880 LET QB=QB-1
2890 RAND USR DN
2900 IF QB<=16 THEN RETURN
2910 LET P=QB-15
2920 PRINT AT 6,0;
2930 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2940 RETURN
2952 PRINT AT 21,0;"DATE? "
2953 SLOW
2954 INPUT D$
2955 FAST
2960 LET CX=1
2962 LET S=0
2964 CLS
2966 GOSUB D6
2968 LET SC=5
2970 GOSUB C7
2972 GOSUB C6
2974 PRINT TAB 8;F$(N)
2976 GOSUB C7
2978 PRINT TAB 8;F$(7)
2980 GOSUB C7
2982 GOSUB C6
2984 PRINT TAB (32-LEN D$)/2;D$
2986 GOSUB C7
2988 GOSUB C6
2990 PRINT TAB 8;F$(M)
2992 GOSUB C7
2994 PRINT TAB 8;F$(7)
2996 GOSUB C7
2998 RETURN
3002 LET N=1
3004 LET M=2
3006 GOSUB B4
3008 LET X=1
3010 LET Y=4
3012 GOSUB B9
3014 LET ST=BT
3016 LET BN=ST
3018 GOSUB A8
3020 LET N=14
3022 LET M=4
3024 GOSUB B6
3026 LET X=5
3028 LET Y=7
3030 GOSUB B9
3032 LET LT=BT
3034 LET BN=LT
3036 GOSUB A8
3038 LET N=16
3040 LET M=5
3042 GOSUB B6
3044 LET X=8
3046 LET Y=8
3048 GOSUB B9
3050 LET BN=LT+BT
3052 GOSUB A8
3054 LET N=6
3056 GOSUB B7
3058 LET N=8
3060 GOTO 3220
3064 GOSUB C5
3066 PRINT F$(N);TAB 23;X$
3068 GOSUB C7
3070 GOSUB C6
3072 PRINT H$
3074 GOSUB C7
3076 GOSUB C6
3078 GOSUB C6
3080 PRINT TAB 8;F$(M)
3082 GOSUB C7
3084 PRINT TAB 8;F$(7)
3086 GOSUB C7
3088 GOSUB C6
3090 RETURN
3190 REM *** BAL/INC SUB 3 *****
3200 GOSUB C5
3202 PRINT F$(N)
3204 GOSUB C7
3206 PRINT TAB 23;X$
3208 GOSUB C7
3210 GOSUB C6
3212 PRINT H$
3214 GOSUB C7
3216 GOSUB C6
3218 RETURN
3220 LET BN=ST+BN
3222 GOSUB A8
3224 GOSUB C5
3226 PRINT F$(N);TAB 23;X$
3228 GOSUB C7
3230 GOSUB C6
3232 PRINT H$
3234 GOSUB C7
3236 PRINT H$
3238 GOSUB C7
3240 LET SC=22
3242 GOSUB C7
3244 RETURN
3260 LET N=9
3262 LET M=13
3264 GOSUB B4
3280 LET X=9
3282 LET Y=11
3284 GOSUB B9
3310 LET ST=BT
3312 IF NOT CX THEN GOTO 3350
3314 LET BN=ST
3316 GOSUB A8
3318 LET N=15
3320 LET M=11
3322 GOSUB B6
3350 LET X=12
3352 LET Y=18
3354 GOSUB B9
3360 IF NOT CX THEN RETURN
3380 LET BN=BT
3382 GOSUB A8
3400 LET N=3
3402 GOSUB B7
3430 LET N=12
3432 GOTO 3220
3460 LET BT=0
3462 FOR N=X TO Y
3490 LET AT=0
3492 IF S THEN GOTO 3592
3500 IF NOT CX THEN GOTO 3505
3501 PRINT C$(N, TO 12)
3502 GOSUB C7
3503 GOSUB C6
3505 IF C$(N,13 TO 14)=" " THEN GOTO 3590
3506 IF C$(N,15 TO 16)=" " THEN GOTO 3590
3510 FOR M=VAL C$(N,13 TO 14) TO VAL C$(N,15 TO )
3520 IF CX THEN GOSUB 3620
3530 LET AT=AT+N(M)
3532 IF CX THEN GOTO 3540
3534 LET N(M)=0
3536 LET B$(M)=" "
3540 IF M=99 THEN LET S=1
3550 NEXT M
3560 IF NOT CX THEN GOTO 3590
3562 LET BN=AT
3564 GOSUB A8
3566 GOSUB C5
3570 PRINT TAB 3;"TOTAL";TAB 23;X$
3572 GOSUB C7
3574 GOSUB C6
3590 LET BT=BT+AT
3592 NEXT N
3594 RETURN
3630 IF N$(M,1)=" " THEN RETURN
3640 PRINT M;TAB 3;N$(M);TAB 23;B$(M)
3642 GOSUB C7
3650 RETURN
3670 PRINT AT 21,0;"%S%E%A%R%C%H% %B%Y% %N%U%M%,% %D%A%T%E%,% %O%R% %N%A%M%E%?"
3680 SLOW
3690 INPUT K$
3700 FAST
3710 PRINT AT 18,0;G$;G$;G$;G$
3715 PRINT AT 19,0;"SEARCH: ";K$
3720 IF K$="" THEN RETURN
3730 IF K$="NUM" THEN GOTO 3770
3740 IF K$="DATE" THEN GOTO 3820
3750 IF K$="NAME" THEN GOTO 3870
3760 GOTO 3670
3780 LET X=1
3790 LET Y=3
3800 DIM S$(3)
3810 GOTO 3910
3830 LET X=4
3840 LET Y=10
3850 DIM S$(7)
3860 GOTO 3910
3880 LET X=11
3890 LET Y=22
3900 DIM S$(12)
3910 PRINT AT 21,0;"%E%N%T%E%R% %T%H%E% %S%T%R%I%N%G"
3920 SLOW
3930 INPUT K$
3935 IF K$="" THEN RETURN
3940 FAST
3945 CLS
3950 LET QJ=0
3960 LET S$=K$
3970 LET QJ=QJ+1
3980 IF QJ=I THEN GOTO 4090
3990 IF A$(QJ,X TO Y)=S$ THEN GOTO 4010
4000 GOTO 3970
4010 GOSUB A2
4020 IF QJ=I THEN RETURN
4030 PRINT AT 21,0;"%A%D%V%A%N%C%E%? "
4040 SLOW
4050 INPUT K$
4060 FAST
4070 IF K$="Y" THEN GOTO 3970
4080 RETURN
4090 RAND USR UP
4093 PRINT AT 20,0;S$;" NOT FOUND"
4097 RETURN
4100 IF QJ=I THEN RETURN
4110 LET QJ=QJ+1
4120 LET P=QJ
4130 GOSUB A3
4140 RETURN
4160 IF QJ=1 THEN RETURN
4170 LET QJ=QJ-1
4180 GOSUB A2
4190 RETURN
4210 CLS
4230 LET QJ=R
4240 LET RF=0
4250 LET BO=0
4260 IF NOT R THEN LET QJ=1
4280 IF A$(QJ,27)="*" THEN GOTO 4550
4290 IF VAL A$(QJ,23 TO 24)>=4 THEN GOTO 4300
4292 LET DR=1
4294 LET CR=NOT DR
4296 GOTO 4320
4300 IF VAL A$(QJ,25 TO 26)>=4 THEN GOTO 4540
4302 LET CR=1
4304 LET DR=NOT CR
4320 LET SC=0
4330 LET P=QJ
4340 GOSUB A3
4350 PRINT AT 21,0;"%R%E%T%U%R%N%E%D%?"
4360 SLOW
4370 INPUT K$
4380 FAST
4390 PRINT AT 21,0;G$
4400 IF K$="" THEN RETURN
4410 IF K$="Y" THEN GOTO 4480
4420 IF K$<>"N" THEN GOTO 4350
4430 LET BO=BO-A(QJ)*DR+A(QJ)*CR
4460 LET RF=1
4470 GOTO 4540
4490 IF RF THEN GOTO 4510
4500 LET R=QJ
4510 PRINT AT 19,31;"*"
4520 LET A$(QJ,27)="*"
4530 GOTO 4540
4550 IF QJ=I THEN GOTO 4580
4560 LET QJ=QJ+1
4570 GOTO 4270
4590 LET BN=AB
4600 GOSUB A8
4610 PRINT AT 0,0;"ACCOUNT";TAB 16;X$
4620 LET BN=BO
4630 GOSUB A8
4640 PRINT "OUTSTANDING";TAB 16;X$;" "
4650 PRINT "BANK";TAB 16;"%E%N%T%E%R"
4660 PRINT "ERROR"
4680 SLOW
4690 INPUT K$
4700 FAST
4710 LET BB=VAL K$
4720 LET BN=BB
4730 GOSUB A8
4740 PRINT AT 2,16;X$
4750 LET BN=BB-AB-BO
4760 GOSUB A8
4770 PRINT AT 3,16;X$
4780 SLOW
4790 RETURN
4835 LET SC=0
4840 CLS
4842 GOSUB D6
4845 PRINT R$
4847 LET O1=0
4848 SLOW
4849 PRINT AT 8,0;"%?"
4850 GOSUB A11
4851 PRINT AT 8,0;INKEY$
4852 IF CODE INKEY$=118 THEN RETURN
4853 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4849
4854 IF INKEY$="Y" THEN LET O1=1
4855 LET O2=0
4856 SLOW
4857 PRINT AT 9,0;"%?"
4859 GOSUB A11
4860 IF CODE INKEY$=118 THEN RETURN
4861 PRINT AT 9,0;INKEY$
4862 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4857
4864 IF INKEY$="Y" THEN LET O2=1
4865 PAUSE 30
4870 PRINT AT 21,0;"CHOICE?"
4875 SLOW
4880 IF INKEY$="" THEN GOTO 4880
4882 IF INKEY$="C" THEN GOSUB 5560
4884 IF INKEY$="M" THEN RETURN
4886 IF INKEY$="J" THEN GOSUB 5410
4888 IF INKEY$="B" THEN GOSUB 3000
4890 IF INKEY$="I" THEN GOSUB 3250
4892 IF INKEY$="L" THEN GOSUB 5040
4894 GOTO 4835
4902 PRINT TAB 23;E$
4904 GOTO 4930
4910 PRINT
4912 GOTO 4930
4930 LET SC=SC+1
4932 IF INKEY$="S" AND INKEY$<>"A" THEN GOTO 4932
4935 IF SC<22 THEN RETURN
4937 SLOW
4942 IF O1 THEN INPUT K$
4950 IF O2 THEN COPY
4952 CLS
4955 LET SC=0
4957 FAST
4960 RETURN
5030 REM *** OUTPUT ACCOUNTS ***
5040 PRINT AT 21,0;"ACCOUNT NO. OR ALL?"
5050 SLOW
5060 INPUT K$
5070 IF K$="" THEN RETURN
5080 LET U=VAL K$
5090 LET F=1
5095 PRINT AT 18,0;"ACCT. NO. ";K$
5100 PRINT ,,,,"MONTH DESIRED, JAN - DEC OR ALL?"
5110 INPUT K$
5120 FAST
5130 IF K$="" THEN RETURN
5135 CLS
5140 LET X=1
5150 LET Y=99
5160 IF U THEN LET X=U
5170 IF U THEN LET Y=U
5180 IF K$="ALL" THEN LET F=0
5190 FOR U=X TO Y
5200 IF N(U)=0 THEN GOTO 5380
5210 LET AT=0
5220 GOSUB C6
5221 GOSUB C6
5222 PRINT U;TAB 3;N$(U)
5224 GOSUB C7
5226 PRINT H$
5228 GOSUB C7
5230 LET N=0
5240 LET N=N+1
5250 IF N=I+1 THEN GOTO 5340
5260 IF F AND A$(N,6 TO 8)<>K$ THEN GOTO 5240
5270 IF VAL A$(N,23 TO 24)<>U AND VAL A$(N,25 TO 26)<>U THEN GOTO 5240
5280 IF VAL A$(N,23 TO 24)=U THEN LET BN=A(N)
5290 IF VAL A$(N,25 TO 26)=U THEN LET BN=-A(N)
5300 LET AT=AT+BN
5310 GOSUB A8
5320 PRINT A$(N, TO 3);" ";A$(N,4 TO 10);" ";A$(N,11 TO 21);X$
5322 GOSUB C7
5330 GOTO 5240
5340 GOSUB C5
5350 LET BN=AT
5360 GOSUB A8
5370 PRINT "TOTAL";TAB 23;X$
5372 GOSUB C7
5380 NEXT U
5382 LET SC=22
5384 GOSUB C7
5390 RETURN
5410 PRINT AT 18,0;"START WHERE? ";
5420 SLOW
5430 INPUT K$
5440 IF K$="" THEN RETURN
5450 LET X=VAL K$
5460 PRINT ,X
5470 PRINT ,,"END WHERE?";
5480 INPUT K$
5490 LET Y=VAL K$
5500 PRINT ,Y
5510 PAUSE 20
5511 FAST
5512 POKE 16518,0
5513 POKE 16528,182
5514 POKE 16529,2
5521 CLS
5522 LET SC=0
5524 FOR N=X TO Y
5526 IF N>I THEN GOTO 5550
5528 LET P=N
5530 GOSUB A3
5532 NEXT N
5550 LET SC=22
5552 GOSUB C7
5554 POKE 16518,199
5555 POKE 16528,239
5556 POKE 16529,1
5557 RETURN
5561 FAST
5562 LET S=0
5563 LET CX=1
5564 CLS
5565 GOSUB D6
5566 LET SC=5
5567 GOSUB C7
5568 PRINT H$
5569 GOSUB C7
5570 GOSUB C6
5575 LET X=1
5580 LET Y=18
5590 GOSUB B9
5592 LET SC=22
5594 GOSUB C7
5600 RETURN
5660 CLS
5665 PRINT "CATEGORY GROUP ACCOUNTS"," FROM TO"
5670 PRINT AT 2,0;"ASSETS";AT 6,0;"LIABIL";AT 9,0;"CAPITAL";AT 10,0;"INCOME";AT 13,0;"EXPENSE"
5680 PRINT AT 2,0;
5690 FOR N=1 TO 18
5700 PRINT TAB 9;N;TAB 12;C$(N, TO 12);TAB 26;C$(N,13 TO 14);TAB 30;C$(N,15 TO 16)
5710 NEXT N
5720 PRINT AT 21,0;"CHANGE WHICH GROUP?"
5730 SLOW
5740 INPUT K$
5750 IF K$="" THEN RETURN
5760 PRINT AT 21,0;G$
5770 LET Y=VAL K$
5790 PRINT AT 1+Y,11;"%?"
5800 INPUT K$
5810 IF K$="" THEN GOTO 5830
5820 LET C$(Y)=K$
5830 PRINT AT 1+Y,11;C$(Y, TO 12);TAB 26;"%?"
5840 INPUT K$
5850 IF K$="" THEN GOTO 5870
5860 LET C$(Y,13 TO 14)=K$
5870 PRINT AT 1+Y,26;C$(Y,13 TO 14);TAB 30;"%?"
5880 INPUT K$
5890 IF K$="" THEN GOTO 5910
5900 LET C$(Y,15 TO )=K$
5910 PRINT AT 1+Y,30;C$(Y,15 TO )
5920 GOTO 5720
6172 CLS
6174 GOSUB D6
6176 PRINT P$
6190 RETURN
6210 IF INKEY$="J" THEN GOTO 40
6215 IF INKEY$="M" THEN GOTO 130
6220 IF INKEY$="N" THEN GOSUB 2720
6225 IF INKEY$="G" THEN GOSUB 5660
6230 IF INKEY$="C" THEN COPY
6235 IF INKEY$="O" THEN GOSUB 4835
6240 IF INKEY$="E" THEN GOSUB 2190
6250 IF INKEY$="Q" THEN GOTO 6840
6260 IF INKEY$="T" THEN GOSUB 6600
6270 IF INKEY$="S" THEN GOTO 6740
6290 IF CODE INKEY$=112 THEN GOSUB 2780
6300 IF CODE INKEY$=113 THEN GOSUB 2860
6310 GOTO 170
6330 CLS
6340 GOSUB D6
6350 PRINT Q$
6410 IF INKEY$="L" THEN GOTO 0120
6420 IF INKEY$="C" THEN COPY
6430 IF INKEY$="B" THEN GOSUB 1990
6440 IF INKEY$="E" THEN GOSUB 750
6450 IF INKEY$="F" THEN GOSUB 3660
6460 IF INKEY$="M" THEN GOTO 30
6470 IF INKEY$="O" THEN GOSUB 4830
6490 IF INKEY$="S" THEN GOTO 6740
6500 IF INKEY$="R" THEN GOSUB 4210
6510 IF INKEY$="Q" THEN GOTO 6840
6520 IF CODE INKEY$=112 THEN GOSUB 4100
6530 IF CODE INKEY$=113 THEN GOSUB 4150
6540 GOTO 80
6550 REM SHORT SUB
6560 PRINT L$;H$;O$(1);O$(2);O$(3);H$
6570 RETURN
6605 PRINT AT 21,0;" "
6606 SLOW
6607 PRINT AT 2,0;"%?"
6610 INPUT K$
6615 IF K$="" THEN GOTO 6625
6620 LET O$(1)=K$
6625 PRINT AT 2,0;O$(1);"%?"
6635 INPUT K$
6640 IF K$="" THEN GOTO 6650
6645 LET O$(2)=K$
6650 PRINT AT 3,0;O$(2);"%?"
6655 INPUT K$
6660 IF K$="" THEN GOTO 6670
6665 LET O$(3)=K$
6670 PRINT AT 4,0;O$(3)
6675 RETURN
6750 RAND USR UP
6760 PRINT AT 21,0;"SAVE BOOKS?"
6770 SLOW
6780 INPUT K$
6790 FAST
6800 PRINT AT 21,0;G$
6810 IF K$<>"Y" THEN GOTO 80
6820 SAVE "BOOK%S"
6830 GOTO 30
6850 CLS
6890 LIST
7020 DIM A$(A,27)
7030 DIM A(A)
7040 DIM N(99)
7050 DIM B$(99,9)
7060 LET I=0
7070 LET QJ=I
7090 LET R=I
7100 LET CN=I
7110 GOTO 30
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
People
No people associated with this content.
B
Skip to content
Bookkeeper
Double-entry bookkeeping program. Requires 64K RAM.
Content
Source Code
10 REM E£RND)SIN ; FAST )5 ;SGN \' LOAD \' GOSUB %K FOR \.'4Q 7( CLS TAN 89XXX
20 REM \2A\10\40\11\43\00\ED\52\E5\11\21\00\ED\52\D1\01\EF\01\ED\B8\EB\06\20\2B\36\00\10\FB\C9\3D\3D\3D
40 FAST
50 CLS
70 GOSUB 6320
80 SLOW
82 PRINT AT 21,0;"COMMAND"
84 PRINT AT 21,7;"? ";AT 21,7;"%?"
90 IF INKEY$="" THEN GOTO 80
100 FAST
110 GOTO 6400
130 FAST
140 CLS
160 GOSUB 6170
170 SLOW
175 PRINT AT 21,0;"COMMAND"
176 PRINT AT 21,7;"? ";AT 21,7;"%?"
180 IF INKEY$="" THEN GOTO 175
190 FAST
200 GOTO 6200
230 IF INKEY$="" THEN GOTO 230
240 FAST
250 RETURN
325 LET SC=0
330 FOR N=1 TO 3
340 LET P=QJ-3+N
350 IF P<1 THEN GOTO 370
360 GOSUB A3
370 NEXT N
380 RETURN
470 LET BN=A(P)
480 GOSUB A8
490 PRINT AT 21,0;A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
492 GOSUB C7
500 RAND USR UP
510 PRINT AT 21,12;"%D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);TAB 31;A$(P,27)
512 GOSUB C7
520 RAND USR UP
530 PRINT AT 21,6;P;TAB 12;"%C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
532 GOSUB C7
540 RAND USR UP
545 GOSUB C7
550 RAND USR UP
570 RETURN
590 PRINT AT 0,0;G$;G$;G$;
600 LET BN=N(1)
610 GOSUB A8
620 PRINT AT 0,0;N$(1, TO 11);" ";X$
630 LET BN=N(2)
640 GOSUB A8
650 PRINT N$(2, TO 11);" ";X$
660 LET BN=N(3)
670 GOSUB A8
680 PRINT N$(3, TO 11);" ";X$
690 LET AB=N(1)+N(2)+N(3)
700 LET BN=AB
710 GOSUB A8
720 PRINT "TOTAL ";X$
730 PRINT H$;"NO...DATE...NAME..........AMOUNT"
740 RETURN
760 CLS
770 LET QJ=I
780 GOSUB A2
790 GOSUB A4
800 IF I=A THEN RETURN
810 DIM Z$(26)
820 LET QJ=I
830 LET IT=I+1
840 LET Z=0
850 LET EF=1
860 LET OA=0
870 GOSUB 920
880 FAST
890 IF EF=1 THEN RETURN
900 LET I=I+1
910 GOTO 790
930 PRINT AT 0,22;"%E%N%T%E%R "
940 RAND USR UP
950 RAND USR UP
970 PRINT AT 21,0;"%?"
980 SLOW
990 INPUT K$
1000 FAST
1010 PRINT AT 21,0;" "
1030 IF K$=" " THEN GOTO 1090
1040 IF K$="" THEN RETURN
1050 IF K$="N" THEN LET CT=CN+1
1060 IF CODE K$<38 THEN LET CT=VAL K$
1070 LET K$=STR$ CT
1080 LET Z$(4-LEN K$ TO )=K$
1090 PRINT AT 21,0;Z$( TO 3)
1110 PRINT AT 21,4;"%?"
1120 SLOW
1130 INPUT K$
1140 FAST
1150 IF K$=" " THEN GOTO 1250
1160 IF K$="" THEN RETURN
1165 IF K$="N" THEN LET K$=A$(QJ,4 TO 10)
1166 IF K$="N" THEN GOTO 1240
1170 IF LEN K$<7 THEN LET K$=" "+K$
1180 IF VAL K$( TO 2)>31 THEN GOTO 1120
1190 LET MN=0
1200 FOR N=3 TO 36 STEP 3
1210 IF M$(N-2 TO N)=K$(3 TO 5) THEN LET MN=N/3
1220 NEXT N
1230 IF NOT MN THEN GOTO 1120
1240 LET Z$(4 TO 10)=K$
1250 PRINT AT 21,4;Z$(4 TO 10);" %?"
1270 SLOW
1280 INPUT K$
1290 FAST
1300 IF K$=" " THEN GOTO 1330
1310 IF K$="" THEN RETURN
1320 LET Z$(11 TO 22)=K$
1330 PRINT AT 21,12;Z$(11 TO 22);" %?"
1350 SLOW
1360 INPUT K$
1370 FAST
1380 IF K$=" " THEN GOTO 1410
1390 IF K$="" THEN RETURN
1400 LET Z=VAL K$
1410 LET BN=Z
1420 GOSUB A8
1430 PRINT AT 21,24;X$(2 TO )
1450 RAND USR UP
1460 PRINT AT 21,12;"%D%R %?"
1470 SLOW
1480 INPUT K$
1490 IF K$=" " THEN GOTO 1550
1500 IF K$="" THEN RETURN
1510 LET DR=VAL K$
1520 IF DR>99 THEN GOTO 1470
1530 LET Z$(23 TO 24)=K$
1550 PRINT AT 21,15;Z$(23 TO 24);" ";N$(DR, TO 6)
1570 RAND USR UP
1580 PRINT AT 21,12;"%C%R %?"
1590 INPUT K$
1600 IF K$=" " THEN GOTO 1650
1610 IF K$="" THEN RETURN
1620 LET CR=VAL K$
1630 IF CR>99 THEN GOTO 2340
1640 LET Z$(25 TO 26)=K$
1650 PRINT AT 21,15;Z$(25 TO 26);" ";N$(CR, TO 6)
1670 RAND USR UP
1680 PRINT AT 21,5;"%?"
1690 INPUT K$
1700 LET D$=K$
1710 PRINT AT 21,5;D$
1740 PRINT AT 21,0;"%O%K%?"
1750 INPUT K$
1760 PRINT AT 21,0;" "
1770 IF K$="N" THEN RETURN
1772 IF K$="Y" THEN GOTO 1780
1774 GOTO 1740
1780 LET EF=0
1800 FAST
1810 LET A$(IT)=Z$
1820 LET A(IT)=Z
1830 LET N(DR)=N(DR)+Z
1840 LET BN=N(DR)
1850 GOSUB A8
1860 LET B$(DR)=X$
1870 LET N(CR)=N(CR)-Z
1880 LET BN=N(CR)
1890 GOSUB A8
1900 LET B$(CR)=X$
1910 LET CN=CT
1920 LET P=IT
1930 PRINT AT 20,6;P
1940 GOSUB 2540
1950 LPRINT " ";D$
1960 LPRINT
1970 LET D$=""
1980 RETURN
2000 PRINT AT 21,0;"ARE YOU SURE? "
2002 INPUT K$
2004 IF K$<>"Y" THEN RETURN
2006 FAST
2010 PRINT AT 21,0;"ENTER NO. OR ""O"""
2012 INPUT K$
2014 IF K$="" THEN RETURN
2015 IF K$="O" THEN LET QJ=R+1
2016 IF K$="O" THEN GOTO 2025
2020 LET QJ=VAL K$
2025 LET I=I-QJ+1
2030 FOR N=1 TO I
2035 LET A$(N)=A$(N+QJ-1)
2040 LET A(N)=A(N+QJ-1)
2045 NEXT N
2055 LET QJ=I
2060 LET R=0
2065 RETURN
2200 PRINT AT 21,0;"ARE YOU SURE? "
2202 INPUT K$
2204 IF K$<>"Y" THEN RETURN
2206 FAST
2210 LET CX=0
2212 LET S=0
2214 GOSUB 3280
2220 LET BN=BT+ST
2222 LET N(VAL C$(8,13 TO 14))=BN+N(VAL C$(8,13 TO 14))
2223 LET BN=N(VAL C$(8,13 TO 14))
2224 GOSUB A8
2226 LET B$(VAL C$(8,13 TO 14))=X$
2230 LET CX=1
2232 PRINT AT 21,0;"THE BOOKS ARE CLOSED"
2234 SLOW
2236 PAUSE 20
2238 RETURN
2470 LET X$=" 0 "
2480 LET B=INT (BN*100)
2490 IF BN*100-B>=.5 THEN LET B=B+1
2500 LET J$=STR$ B
2510 LET X$(10-LEN J$ TO )=J$
2520 LET X$( TO 7)=X$(2 TO 7)+"."
2530 RETURN
2540 REM *** LPRINT JOURNAL1 ***
2550 LET BN=A(P)
2560 GOSUB A8
2570 LPRINT " ";P,,A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
2580 LPRINT " %D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);" ";A$(P,27)
2590 LPRINT " %C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
2600 RETURN
2610 REM *** ACCT BAL PRINT ****
2630 FOR N=1 TO 15
2640 LET P=QB-15+N
2650 IF P<1 THEN GOTO 2690
2660 RAND USR UP
2670 PRINT AT 20,0;
2680 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2690 NEXT N
2700 RETURN
2720 PRINT AT 21,0;"WHICH ACCOUNT?"
2730 SLOW
2732 INPUT K$
2734 FAST
2735 PRINT AT 21,0;" "
2736 IF K$="" THEN RETURN
2740 LET QB=VAL K$
2745 GOSUB 2620
2746 PRINT AT 20,3;"%?"
2747 SLOW
2749 INPUT K$
2751 IF K$="" THEN RETURN
2753 LET N$(QB)=K$
2760 PRINT AT 20,3;N$(QB);TAB 23;B$(QB)
2770 GOTO 2720
2790 IF QB=99 THEN RETURN
2800 LET QB=QB+1
2810 RAND USR UP
2820 LET P=QB
2830 PRINT AT 20,0;
2840 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2850 RETURN
2870 IF QB=1 THEN RETURN
2880 LET QB=QB-1
2890 RAND USR DN
2900 IF QB<=16 THEN RETURN
2910 LET P=QB-15
2920 PRINT AT 6,0;
2930 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
2940 RETURN
2952 PRINT AT 21,0;"DATE? "
2953 SLOW
2954 INPUT D$
2955 FAST
2960 LET CX=1
2962 LET S=0
2964 CLS
2966 GOSUB D6
2968 LET SC=5
2970 GOSUB C7
2972 GOSUB C6
2974 PRINT TAB 8;F$(N)
2976 GOSUB C7
2978 PRINT TAB 8;F$(7)
2980 GOSUB C7
2982 GOSUB C6
2984 PRINT TAB (32-LEN D$)/2;D$
2986 GOSUB C7
2988 GOSUB C6
2990 PRINT TAB 8;F$(M)
2992 GOSUB C7
2994 PRINT TAB 8;F$(7)
2996 GOSUB C7
2998 RETURN
3002 LET N=1
3004 LET M=2
3006 GOSUB B4
3008 LET X=1
3010 LET Y=4
3012 GOSUB B9
3014 LET ST=BT
3016 LET BN=ST
3018 GOSUB A8
3020 LET N=14
3022 LET M=4
3024 GOSUB B6
3026 LET X=5
3028 LET Y=7
3030 GOSUB B9
3032 LET LT=BT
3034 LET BN=LT
3036 GOSUB A8
3038 LET N=16
3040 LET M=5
3042 GOSUB B6
3044 LET X=8
3046 LET Y=8
3048 GOSUB B9
3050 LET BN=LT+BT
3052 GOSUB A8
3054 LET N=6
3056 GOSUB B7
3058 LET N=8
3060 GOTO 3220
3064 GOSUB C5
3066 PRINT F$(N);TAB 23;X$
3068 GOSUB C7
3070 GOSUB C6
3072 PRINT H$
3074 GOSUB C7
3076 GOSUB C6
3078 GOSUB C6
3080 PRINT TAB 8;F$(M)
3082 GOSUB C7
3084 PRINT TAB 8;F$(7)
3086 GOSUB C7
3088 GOSUB C6
3090 RETURN
3190 REM *** BAL/INC SUB 3 *****
3200 GOSUB C5
3202 PRINT F$(N)
3204 GOSUB C7
3206 PRINT TAB 23;X$
3208 GOSUB C7
3210 GOSUB C6
3212 PRINT H$
3214 GOSUB C7
3216 GOSUB C6
3218 RETURN
3220 LET BN=ST+BN
3222 GOSUB A8
3224 GOSUB C5
3226 PRINT F$(N);TAB 23;X$
3228 GOSUB C7
3230 GOSUB C6
3232 PRINT H$
3234 GOSUB C7
3236 PRINT H$
3238 GOSUB C7
3240 LET SC=22
3242 GOSUB C7
3244 RETURN
3260 LET N=9
3262 LET M=13
3264 GOSUB B4
3280 LET X=9
3282 LET Y=11
3284 GOSUB B9
3310 LET ST=BT
3312 IF NOT CX THEN GOTO 3350
3314 LET BN=ST
3316 GOSUB A8
3318 LET N=15
3320 LET M=11
3322 GOSUB B6
3350 LET X=12
3352 LET Y=18
3354 GOSUB B9
3360 IF NOT CX THEN RETURN
3380 LET BN=BT
3382 GOSUB A8
3400 LET N=3
3402 GOSUB B7
3430 LET N=12
3432 GOTO 3220
3460 LET BT=0
3462 FOR N=X TO Y
3490 LET AT=0
3492 IF S THEN GOTO 3592
3500 IF NOT CX THEN GOTO 3505
3501 PRINT C$(N, TO 12)
3502 GOSUB C7
3503 GOSUB C6
3505 IF C$(N,13 TO 14)=" " THEN GOTO 3590
3506 IF C$(N,15 TO 16)=" " THEN GOTO 3590
3510 FOR M=VAL C$(N,13 TO 14) TO VAL C$(N,15 TO )
3520 IF CX THEN GOSUB 3620
3530 LET AT=AT+N(M)
3532 IF CX THEN GOTO 3540
3534 LET N(M)=0
3536 LET B$(M)=" "
3540 IF M=99 THEN LET S=1
3550 NEXT M
3560 IF NOT CX THEN GOTO 3590
3562 LET BN=AT
3564 GOSUB A8
3566 GOSUB C5
3570 PRINT TAB 3;"TOTAL";TAB 23;X$
3572 GOSUB C7
3574 GOSUB C6
3590 LET BT=BT+AT
3592 NEXT N
3594 RETURN
3630 IF N$(M,1)=" " THEN RETURN
3640 PRINT M;TAB 3;N$(M);TAB 23;B$(M)
3642 GOSUB C7
3650 RETURN
3670 PRINT AT 21,0;"%S%E%A%R%C%H% %B%Y% %N%U%M%,% %D%A%T%E%,% %O%R% %N%A%M%E%?"
3680 SLOW
3690 INPUT K$
3700 FAST
3710 PRINT AT 18,0;G$;G$;G$;G$
3715 PRINT AT 19,0;"SEARCH: ";K$
3720 IF K$="" THEN RETURN
3730 IF K$="NUM" THEN GOTO 3770
3740 IF K$="DATE" THEN GOTO 3820
3750 IF K$="NAME" THEN GOTO 3870
3760 GOTO 3670
3780 LET X=1
3790 LET Y=3
3800 DIM S$(3)
3810 GOTO 3910
3830 LET X=4
3840 LET Y=10
3850 DIM S$(7)
3860 GOTO 3910
3880 LET X=11
3890 LET Y=22
3900 DIM S$(12)
3910 PRINT AT 21,0;"%E%N%T%E%R% %T%H%E% %S%T%R%I%N%G"
3920 SLOW
3930 INPUT K$
3935 IF K$="" THEN RETURN
3940 FAST
3945 CLS
3950 LET QJ=0
3960 LET S$=K$
3970 LET QJ=QJ+1
3980 IF QJ=I THEN GOTO 4090
3990 IF A$(QJ,X TO Y)=S$ THEN GOTO 4010
4000 GOTO 3970
4010 GOSUB A2
4020 IF QJ=I THEN RETURN
4030 PRINT AT 21,0;"%A%D%V%A%N%C%E%? "
4040 SLOW
4050 INPUT K$
4060 FAST
4070 IF K$="Y" THEN GOTO 3970
4080 RETURN
4090 RAND USR UP
4093 PRINT AT 20,0;S$;" NOT FOUND"
4097 RETURN
4100 IF QJ=I THEN RETURN
4110 LET QJ=QJ+1
4120 LET P=QJ
4130 GOSUB A3
4140 RETURN
4160 IF QJ=1 THEN RETURN
4170 LET QJ=QJ-1
4180 GOSUB A2
4190 RETURN
4210 CLS
4230 LET QJ=R
4240 LET RF=0
4250 LET BO=0
4260 IF NOT R THEN LET QJ=1
4280 IF A$(QJ,27)="*" THEN GOTO 4550
4290 IF VAL A$(QJ,23 TO 24)>=4 THEN GOTO 4300
4292 LET DR=1
4294 LET CR=NOT DR
4296 GOTO 4320
4300 IF VAL A$(QJ,25 TO 26)>=4 THEN GOTO 4540
4302 LET CR=1
4304 LET DR=NOT CR
4320 LET SC=0
4330 LET P=QJ
4340 GOSUB A3
4350 PRINT AT 21,0;"%R%E%T%U%R%N%E%D%?"
4360 SLOW
4370 INPUT K$
4380 FAST
4390 PRINT AT 21,0;G$
4400 IF K$="" THEN RETURN
4410 IF K$="Y" THEN GOTO 4480
4420 IF K$<>"N" THEN GOTO 4350
4430 LET BO=BO-A(QJ)*DR+A(QJ)*CR
4460 LET RF=1
4470 GOTO 4540
4490 IF RF THEN GOTO 4510
4500 LET R=QJ
4510 PRINT AT 19,31;"*"
4520 LET A$(QJ,27)="*"
4530 GOTO 4540
4550 IF QJ=I THEN GOTO 4580
4560 LET QJ=QJ+1
4570 GOTO 4270
4590 LET BN=AB
4600 GOSUB A8
4610 PRINT AT 0,0;"ACCOUNT";TAB 16;X$
4620 LET BN=BO
4630 GOSUB A8
4640 PRINT "OUTSTANDING";TAB 16;X$;" "
4650 PRINT "BANK";TAB 16;"%E%N%T%E%R"
4660 PRINT "ERROR"
4680 SLOW
4690 INPUT K$
4700 FAST
4710 LET BB=VAL K$
4720 LET BN=BB
4730 GOSUB A8
4740 PRINT AT 2,16;X$
4750 LET BN=BB-AB-BO
4760 GOSUB A8
4770 PRINT AT 3,16;X$
4780 SLOW
4790 RETURN
4835 LET SC=0
4840 CLS
4842 GOSUB D6
4845 PRINT R$
4847 LET O1=0
4848 SLOW
4849 PRINT AT 8,0;"%?"
4850 GOSUB A11
4851 PRINT AT 8,0;INKEY$
4852 IF CODE INKEY$=118 THEN RETURN
4853 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4849
4854 IF INKEY$="Y" THEN LET O1=1
4855 LET O2=0
4856 SLOW
4857 PRINT AT 9,0;"%?"
4859 GOSUB A11
4860 IF CODE INKEY$=118 THEN RETURN
4861 PRINT AT 9,0;INKEY$
4862 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4857
4864 IF INKEY$="Y" THEN LET O2=1
4865 PAUSE 30
4870 PRINT AT 21,0;"CHOICE?"
4875 SLOW
4880 IF INKEY$="" THEN GOTO 4880
4882 IF INKEY$="C" THEN GOSUB 5560
4884 IF INKEY$="M" THEN RETURN
4886 IF INKEY$="J" THEN GOSUB 5410
4888 IF INKEY$="B" THEN GOSUB 3000
4890 IF INKEY$="I" THEN GOSUB 3250
4892 IF INKEY$="L" THEN GOSUB 5040
4894 GOTO 4835
4902 PRINT TAB 23;E$
4904 GOTO 4930
4910 PRINT
4912 GOTO 4930
4930 LET SC=SC+1
4932 IF INKEY$="S" AND INKEY$<>"A" THEN GOTO 4932
4935 IF SC<22 THEN RETURN
4937 SLOW
4942 IF O1 THEN INPUT K$
4950 IF O2 THEN COPY
4952 CLS
4955 LET SC=0
4957 FAST
4960 RETURN
5030 REM *** OUTPUT ACCOUNTS ***
5040 PRINT AT 21,0;"ACCOUNT NO. OR ALL?"
5050 SLOW
5060 INPUT K$
5070 IF K$="" THEN RETURN
5080 LET U=VAL K$
5090 LET F=1
5095 PRINT AT 18,0;"ACCT. NO. ";K$
5100 PRINT ,,,,"MONTH DESIRED, JAN - DEC OR ALL?"
5110 INPUT K$
5120 FAST
5130 IF K$="" THEN RETURN
5135 CLS
5140 LET X=1
5150 LET Y=99
5160 IF U THEN LET X=U
5170 IF U THEN LET Y=U
5180 IF K$="ALL" THEN LET F=0
5190 FOR U=X TO Y
5200 IF N(U)=0 THEN GOTO 5380
5210 LET AT=0
5220 GOSUB C6
5221 GOSUB C6
5222 PRINT U;TAB 3;N$(U)
5224 GOSUB C7
5226 PRINT H$
5228 GOSUB C7
5230 LET N=0
5240 LET N=N+1
5250 IF N=I+1 THEN GOTO 5340
5260 IF F AND A$(N,6 TO 8)<>K$ THEN GOTO 5240
5270 IF VAL A$(N,23 TO 24)<>U AND VAL A$(N,25 TO 26)<>U THEN GOTO 5240
5280 IF VAL A$(N,23 TO 24)=U THEN LET BN=A(N)
5290 IF VAL A$(N,25 TO 26)=U THEN LET BN=-A(N)
5300 LET AT=AT+BN
5310 GOSUB A8
5320 PRINT A$(N, TO 3);" ";A$(N,4 TO 10);" ";A$(N,11 TO 21);X$
5322 GOSUB C7
5330 GOTO 5240
5340 GOSUB C5
5350 LET BN=AT
5360 GOSUB A8
5370 PRINT "TOTAL";TAB 23;X$
5372 GOSUB C7
5380 NEXT U
5382 LET SC=22
5384 GOSUB C7
5390 RETURN
5410 PRINT AT 18,0;"START WHERE? ";
5420 SLOW
5430 INPUT K$
5440 IF K$="" THEN RETURN
5450 LET X=VAL K$
5460 PRINT ,X
5470 PRINT ,,"END WHERE?";
5480 INPUT K$
5490 LET Y=VAL K$
5500 PRINT ,Y
5510 PAUSE 20
5511 FAST
5512 POKE 16518,0
5513 POKE 16528,182
5514 POKE 16529,2
5521 CLS
5522 LET SC=0
5524 FOR N=X TO Y
5526 IF N>I THEN GOTO 5550
5528 LET P=N
5530 GOSUB A3
5532 NEXT N
5550 LET SC=22
5552 GOSUB C7
5554 POKE 16518,199
5555 POKE 16528,239
5556 POKE 16529,1
5557 RETURN
5561 FAST
5562 LET S=0
5563 LET CX=1
5564 CLS
5565 GOSUB D6
5566 LET SC=5
5567 GOSUB C7
5568 PRINT H$
5569 GOSUB C7
5570 GOSUB C6
5575 LET X=1
5580 LET Y=18
5590 GOSUB B9
5592 LET SC=22
5594 GOSUB C7
5600 RETURN
5660 CLS
5665 PRINT "CATEGORY GROUP ACCOUNTS"," FROM TO"
5670 PRINT AT 2,0;"ASSETS";AT 6,0;"LIABIL";AT 9,0;"CAPITAL";AT 10,0;"INCOME";AT 13,0;"EXPENSE"
5680 PRINT AT 2,0;
5690 FOR N=1 TO 18
5700 PRINT TAB 9;N;TAB 12;C$(N, TO 12);TAB 26;C$(N,13 TO 14);TAB 30;C$(N,15 TO 16)
5710 NEXT N
5720 PRINT AT 21,0;"CHANGE WHICH GROUP?"
5730 SLOW
5740 INPUT K$
5750 IF K$="" THEN RETURN
5760 PRINT AT 21,0;G$
5770 LET Y=VAL K$
5790 PRINT AT 1+Y,11;"%?"
5800 INPUT K$
5810 IF K$="" THEN GOTO 5830
5820 LET C$(Y)=K$
5830 PRINT AT 1+Y,11;C$(Y, TO 12);TAB 26;"%?"
5840 INPUT K$
5850 IF K$="" THEN GOTO 5870
5860 LET C$(Y,13 TO 14)=K$
5870 PRINT AT 1+Y,26;C$(Y,13 TO 14);TAB 30;"%?"
5880 INPUT K$
5890 IF K$="" THEN GOTO 5910
5900 LET C$(Y,15 TO )=K$
5910 PRINT AT 1+Y,30;C$(Y,15 TO )
5920 GOTO 5720
6172 CLS
6174 GOSUB D6
6176 PRINT P$
6190 RETURN
6210 IF INKEY$="J" THEN GOTO 40
6215 IF INKEY$="M" THEN GOTO 130
6220 IF INKEY$="N" THEN GOSUB 2720
6225 IF INKEY$="G" THEN GOSUB 5660
6230 IF INKEY$="C" THEN COPY
6235 IF INKEY$="O" THEN GOSUB 4835
6240 IF INKEY$="E" THEN GOSUB 2190
6250 IF INKEY$="Q" THEN GOTO 6840
6260 IF INKEY$="T" THEN GOSUB 6600
6270 IF INKEY$="S" THEN GOTO 6740
6290 IF CODE INKEY$=112 THEN GOSUB 2780
6300 IF CODE INKEY$=113 THEN GOSUB 2860
6310 GOTO 170
6330 CLS
6340 GOSUB D6
6350 PRINT Q$
6410 IF INKEY$="L" THEN GOTO 0120
6420 IF INKEY$="C" THEN COPY
6430 IF INKEY$="B" THEN GOSUB 1990
6440 IF INKEY$="E" THEN GOSUB 750
6450 IF INKEY$="F" THEN GOSUB 3660
6460 IF INKEY$="M" THEN GOTO 30
6470 IF INKEY$="O" THEN GOSUB 4830
6490 IF INKEY$="S" THEN GOTO 6740
6500 IF INKEY$="R" THEN GOSUB 4210
6510 IF INKEY$="Q" THEN GOTO 6840
6520 IF CODE INKEY$=112 THEN GOSUB 4100
6530 IF CODE INKEY$=113 THEN GOSUB 4150
6540 GOTO 80
6550 REM SHORT SUB
6560 PRINT L$;H$;O$(1);O$(2);O$(3);H$
6570 RETURN
6605 PRINT AT 21,0;" "
6606 SLOW
6607 PRINT AT 2,0;"%?"
6610 INPUT K$
6615 IF K$="" THEN GOTO 6625
6620 LET O$(1)=K$
6625 PRINT AT 2,0;O$(1);"%?"
6635 INPUT K$
6640 IF K$="" THEN GOTO 6650
6645 LET O$(2)=K$
6650 PRINT AT 3,0;O$(2);"%?"
6655 INPUT K$
6660 IF K$="" THEN GOTO 6670
6665 LET O$(3)=K$
6670 PRINT AT 4,0;O$(3)
6675 RETURN
6750 RAND USR UP
6760 PRINT AT 21,0;"SAVE BOOKS?"
6770 SLOW
6780 INPUT K$
6790 FAST
6800 PRINT AT 21,0;G$
6810 IF K$<>"Y" THEN GOTO 80
6820 SAVE "BOOK%S"
6830 GOTO 30
6850 CLS
6890 LIST
7020 DIM A$(A,27)
7030 DIM A(A)
7040 DIM N(99)
7050 DIM B$(99,9)
7060 LET I=0
7070 LET QJ=I
7090 LET R=I
7100 LET CN=I
7110 GOTO 30
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
People
No people associated with this content.
\FB\C9DDD
40 FAST
50 CLS
70 GOSUB 6320
80 SLOW
82 PRINT AT 21,0;"COMMAND"
84 PRINT AT 21,7;"? ";AT 21,7;"%?"
90 IF INKEY$="" THEN GOTO 80
100 FAST
110 GOTO 6400
130 FAST
140 CLS
160 GOSUB 6170
170 SLOW
175 PRINT AT 21,0;"COMMAND"
176 PRINT AT 21,7;"? ";AT 21,7;"%?"
180 IF INKEY$="" THEN GOTO 175
190 FAST
200 GOTO 6200
230 IF INKEY$="" THEN GOTO 230
240 FAST
250 RETURN
325 LET SC=0
330 FOR N=1 TO 3
340 LET P=QJ-3+N
350 IF P<1 THEN GOTO 370
360 GOSUB A3
370 NEXT N
380 RETURN
470 LET BN=A(P)
480 GOSUB A8
490 PRINT AT 21,0;A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
492 GOSUB C7
500 RAND USR UP
510 PRINT AT 21,12;"%D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);TAB 31;A$(P,27)
512 GOSUB C7
520 RAND USR UP
530 PRINT AT 21,6;P;TAB 12;"%C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
532 GOSUB C7
540 RAND USR UP
545 GOSUB C7
550 RAND USR UP
570 RETURN
590 PRINT AT 0,0;G$;G$;G$;
600 LET BN=N(1)
610 GOSUB A8
620 PRINT AT 0,0;N$(1, TO 11);" ";X$
630 LET BN=N(2)
640 GOSUB A8
650 PRINT N$(2, TO 11);" ";X$
660 LET BN=N(3)
670 GOSUB A8
680 PRINT N$(3, TO 11);" ";X$
690 LET AB=N(1)+N(2)+N(3)
700 LET BN=AB
710 GOSUB A8
720 PRINT "TOTAL ";X$
730 PRINT H$;"NO...DATE...NAME..........AMOUNT"
740 RETURN
760 CLS
770 LET QJ=I
780 GOSUB A2
790 GOSUB A4
800 IF I=A THEN RETURN
810 DIM Z$(26)
820 LET QJ=I
830 LET IT=I+1
840 LET Z=0
850 LET EF=1
860 LET OA=0
870 GOSUB 920
880 FAST
890 IF EF=1 THEN RETURN
900 LET I=I+1
910 GOTO 790
930 PRINT AT 0,22;"%E%N%T%E%R "
940 RAND USR UP
950 RAND USR UP
970 PRINT AT 21,0;"%?"
980 SLOW
990 INPUT K$
\n1000 FAST
\n1010 PRINT AT 21,0;" "
\n1030 IF K$=" " THEN GOTO 1090
\n1040 IF K$="" THEN RETURN
\n1050 IF K$="N" THEN LET CT=CN+1
\n1060 IF CODE K$<38 THEN LET CT=VAL K$
\n1070 LET K$=STR$ CT
\n1080 LET Z$(4-LEN K$ TO )=K$
\n1090 PRINT AT 21,0;Z$( TO 3)
\n1110 PRINT AT 21,4;"%?"
\n1120 SLOW
\n1130 INPUT K$
\n1140 FAST
\n1150 IF K$=" " THEN GOTO 1250
\n1160 IF K$="" THEN RETURN
\n1165 IF K$="N" THEN LET K$=A$(QJ,4 TO 10)
\n1166 IF K$="N" THEN GOTO 1240
\n1170 IF LEN K$<7 THEN LET K$=" "+K$
\n1180 IF VAL K$( TO 2)>31 THEN GOTO 1120
\n1190 LET MN=0
\n1200 FOR N=3 TO 36 STEP 3
\n1210 IF M$(N-2 TO N)=K$(3 TO 5) THEN LET MN=N/3
\n1220 NEXT N
\n1230 IF NOT MN THEN GOTO 1120
\n1240 LET Z$(4 TO 10)=K$
\n1250 PRINT AT 21,4;Z$(4 TO 10);" %?"
\n1270 SLOW
\n1280 INPUT K$
\n1290 FAST
\n1300 IF K$=" " THEN GOTO 1330
\n1310 IF K$="" THEN RETURN
\n1320 LET Z$(11 TO 22)=K$
\n1330 PRINT AT 21,12;Z$(11 TO 22);" %?"
\n1350 SLOW
\n1360 INPUT K$
\n1370 FAST
\n1380 IF K$=" " THEN GOTO 1410
\n1390 IF K$="" THEN RETURN
\n1400 LET Z=VAL K$
\n1410 LET BN=Z
\n1420 GOSUB A8
\n1430 PRINT AT 21,24;X$(2 TO )
\n1450 RAND USR UP
\n1460 PRINT AT 21,12;"%D%R %?"
\n1470 SLOW
\n1480 INPUT K$
\n1490 IF K$=" " THEN GOTO 1550
\n1500 IF K$="" THEN RETURN
\n1510 LET DR=VAL K$
\n1520 IF DR>99 THEN GOTO 1470
\n1530 LET Z$(23 TO 24)=K$
\n1550 PRINT AT 21,15;Z$(23 TO 24);" ";N$(DR, TO 6)
\n1570 RAND USR UP
\n1580 PRINT AT 21,12;"%C%R %?"
\n1590 INPUT K$
\n1600 IF K$=" " THEN GOTO 1650
\n1610 IF K$="" THEN RETURN
\n1620 LET CR=VAL K$
\n1630 IF CR>99 THEN GOTO 2340
\n1640 LET Z$(25 TO 26)=K$
\n1650 PRINT AT 21,15;Z$(25 TO 26);" ";N$(CR, TO 6)
\n1670 RAND USR UP
\n1680 PRINT AT 21,5;"%?"
\n1690 INPUT K$
\n1700 LET D$=K$
\n1710 PRINT AT 21,5;D$
\n1740 PRINT AT 21,0;"%O%K%?"
\n1750 INPUT K$
\n1760 PRINT AT 21,0;" "
\n1770 IF K$="N" THEN RETURN
\n1772 IF K$="Y" THEN GOTO 1780
\n1774 GOTO 1740
\n1780 LET EF=0
\n1800 FAST
\n1810 LET A$(IT)=Z$
\n1820 LET A(IT)=Z
\n1830 LET N(DR)=N(DR)+Z
\n1840 LET BN=N(DR)
\n1850 GOSUB A8
\n1860 LET B$(DR)=X$
\n1870 LET N(CR)=N(CR)-Z
\n1880 LET BN=N(CR)
\n1890 GOSUB A8
\n1900 LET B$(CR)=X$
\n1910 LET CN=CT
\n1920 LET P=IT
\n1930 PRINT AT 20,6;P
\n1940 GOSUB 2540
\n1950 LPRINT " ";D$
\n1960 LPRINT
\n1970 LET D$=""
\n1980 RETURN
\n2000 PRINT AT 21,0;"ARE YOU SURE? "
\n2002 INPUT K$
\n2004 IF K$<>"Y" THEN RETURN
\n2006 FAST
\n2010 PRINT AT 21,0;"ENTER NO. OR ""O"""
\n2012 INPUT K$
\n2014 IF K$="" THEN RETURN
\n2015 IF K$="O" THEN LET QJ=R+1
\n2016 IF K$="O" THEN GOTO 2025
\n2020 LET QJ=VAL K$
\n2025 LET I=I-QJ+1
\n2030 FOR N=1 TO I
\n2035 LET A$(N)=A$(N+QJ-1)
\n2040 LET A(N)=A(N+QJ-1)
\n2045 NEXT N
\n2055 LET QJ=I
\n2060 LET R=0
\n2065 RETURN
\n2200 PRINT AT 21,0;"ARE YOU SURE? "
\n2202 INPUT K$
\n2204 IF K$<>"Y" THEN RETURN
\n2206 FAST
\n2210 LET CX=0
\n2212 LET S=0
\n2214 GOSUB 3280
\n2220 LET BN=BT+ST
\n2222 LET N(VAL C$(8,13 TO 14))=BN+N(VAL C$(8,13 TO 14))
\n2223 LET BN=N(VAL C$(8,13 TO 14))
\n2224 GOSUB A8
\n2226 LET B$(VAL C$(8,13 TO 14))=X$
\n2230 LET CX=1
\n2232 PRINT AT 21,0;"THE BOOKS ARE CLOSED"
\n2234 SLOW
\n2236 PAUSE 20
\n2238 RETURN
\n2470 LET X$=" 0 "
\n2480 LET B=INT (BN*100)
\n2490 IF BN*100-B>=.5 THEN LET B=B+1
\n2500 LET J$=STR$ B
\n2510 LET X$(10-LEN J$ TO )=J$
\n2520 LET X$( TO 7)=X$(2 TO 7)+"."
\n2530 RETURN
\n2540 REM *** LPRINT JOURNAL1 ***
\n2550 LET BN=A(P)
\n2560 GOSUB A8
\n2570 LPRINT " ";P,,A$(P, TO 3);" ";A$(P,4 TO 10);" ";A$(P,11 TO 22);X$(2 TO )
\n2580 LPRINT " %D%R ";A$(P,23 TO 24);" ";N$(VAL A$(P,23 TO 24), TO 6);" ";A$(P,27)
\n2590 LPRINT " %C%R ";A$(P,25 TO 26);" ";N$(VAL A$(P,25 TO 26), TO 6)
\n2600 RETURN
\n2610 REM *** ACCT BAL PRINT ****
\n2630 FOR N=1 TO 15
\n2640 LET P=QB-15+N
\n2650 IF P<1 THEN GOTO 2690
\n2660 RAND USR UP
\n2670 PRINT AT 20,0;
\n2680 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
\n2690 NEXT N
\n2700 RETURN
\n2720 PRINT AT 21,0;"WHICH ACCOUNT?"
\n2730 SLOW
\n2732 INPUT K$
\n2734 FAST
\n2735 PRINT AT 21,0;" "
\n2736 IF K$="" THEN RETURN
\n2740 LET QB=VAL K$
\n2745 GOSUB 2620
\n2746 PRINT AT 20,3;"%?"
\n2747 SLOW
\n2749 INPUT K$
\n2751 IF K$="" THEN RETURN
\n2753 LET N$(QB)=K$
\n2760 PRINT AT 20,3;N$(QB);TAB 23;B$(QB)
\n2770 GOTO 2720
\n2790 IF QB=99 THEN RETURN
\n2800 LET QB=QB+1
\n2810 RAND USR UP
\n2820 LET P=QB
\n2830 PRINT AT 20,0;
\n2840 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
\n2850 RETURN
\n2870 IF QB=1 THEN RETURN
\n2880 LET QB=QB-1
\n2890 RAND USR DN
\n2900 IF QB<=16 THEN RETURN
\n2910 LET P=QB-15
\n2920 PRINT AT 6,0;
\n2930 PRINT P;TAB 3;N$(P);TAB 23;B$(P)
\n2940 RETURN
\n2952 PRINT AT 21,0;"DATE? "
\n2953 SLOW
\n2954 INPUT D$
\n2955 FAST
\n2960 LET CX=1
\n2962 LET S=0
\n2964 CLS
\n2966 GOSUB D6
\n2968 LET SC=5
\n2970 GOSUB C7
\n2972 GOSUB C6
\n2974 PRINT TAB 8;F$(N)
\n2976 GOSUB C7
\n2978 PRINT TAB 8;F$(7)
\n2980 GOSUB C7
\n2982 GOSUB C6
\n2984 PRINT TAB (32-LEN D$)/2;D$
\n2986 GOSUB C7
\n2988 GOSUB C6
\n2990 PRINT TAB 8;F$(M)
\n2992 GOSUB C7
\n2994 PRINT TAB 8;F$(7)
\n2996 GOSUB C7
\n2998 RETURN
\n3002 LET N=1
\n3004 LET M=2
\n3006 GOSUB B4
\n3008 LET X=1
\n3010 LET Y=4
\n3012 GOSUB B9
\n3014 LET ST=BT
\n3016 LET BN=ST
\n3018 GOSUB A8
\n3020 LET N=14
\n3022 LET M=4
\n3024 GOSUB B6
\n3026 LET X=5
\n3028 LET Y=7
\n3030 GOSUB B9
\n3032 LET LT=BT
\n3034 LET BN=LT
\n3036 GOSUB A8
\n3038 LET N=16
\n3040 LET M=5
\n3042 GOSUB B6
\n3044 LET X=8
\n3046 LET Y=8
\n3048 GOSUB B9
\n3050 LET BN=LT+BT
\n3052 GOSUB A8
\n3054 LET N=6
\n3056 GOSUB B7
\n3058 LET N=8
\n3060 GOTO 3220
\n3064 GOSUB C5
\n3066 PRINT F$(N);TAB 23;X$
\n3068 GOSUB C7
\n3070 GOSUB C6
\n3072 PRINT H$
\n3074 GOSUB C7
\n3076 GOSUB C6
\n3078 GOSUB C6
\n3080 PRINT TAB 8;F$(M)
\n3082 GOSUB C7
\n3084 PRINT TAB 8;F$(7)
\n3086 GOSUB C7
\n3088 GOSUB C6
\n3090 RETURN
\n3190 REM *** BAL/INC SUB 3 *****
\n3200 GOSUB C5
\n3202 PRINT F$(N)
\n3204 GOSUB C7
\n3206 PRINT TAB 23;X$
\n3208 GOSUB C7
\n3210 GOSUB C6
\n3212 PRINT H$
\n3214 GOSUB C7
\n3216 GOSUB C6
\n3218 RETURN
\n3220 LET BN=ST+BN
\n3222 GOSUB A8
\n3224 GOSUB C5
\n3226 PRINT F$(N);TAB 23;X$
\n3228 GOSUB C7
\n3230 GOSUB C6
\n3232 PRINT H$
\n3234 GOSUB C7
\n3236 PRINT H$
\n3238 GOSUB C7
\n3240 LET SC=22
\n3242 GOSUB C7
\n3244 RETURN
\n3260 LET N=9
\n3262 LET M=13
\n3264 GOSUB B4
\n3280 LET X=9
\n3282 LET Y=11
\n3284 GOSUB B9
\n3310 LET ST=BT
\n3312 IF NOT CX THEN GOTO 3350
\n3314 LET BN=ST
\n3316 GOSUB A8
\n3318 LET N=15
\n3320 LET M=11
\n3322 GOSUB B6
\n3350 LET X=12
\n3352 LET Y=18
\n3354 GOSUB B9
\n3360 IF NOT CX THEN RETURN
\n3380 LET BN=BT
\n3382 GOSUB A8
\n3400 LET N=3
\n3402 GOSUB B7
\n3430 LET N=12
\n3432 GOTO 3220
\n3460 LET BT=0
\n3462 FOR N=X TO Y
\n3490 LET AT=0
\n3492 IF S THEN GOTO 3592
\n3500 IF NOT CX THEN GOTO 3505
\n3501 PRINT C$(N, TO 12)
\n3502 GOSUB C7
\n3503 GOSUB C6
\n3505 IF C$(N,13 TO 14)=" " THEN GOTO 3590
\n3506 IF C$(N,15 TO 16)=" " THEN GOTO 3590
\n3510 FOR M=VAL C$(N,13 TO 14) TO VAL C$(N,15 TO )
\n3520 IF CX THEN GOSUB 3620
\n3530 LET AT=AT+N(M)
\n3532 IF CX THEN GOTO 3540
\n3534 LET N(M)=0
\n3536 LET B$(M)=" "
\n3540 IF M=99 THEN LET S=1
\n3550 NEXT M
\n3560 IF NOT CX THEN GOTO 3590
\n3562 LET BN=AT
\n3564 GOSUB A8
\n3566 GOSUB C5
\n3570 PRINT TAB 3;"TOTAL";TAB 23;X$
\n3572 GOSUB C7
\n3574 GOSUB C6
\n3590 LET BT=BT+AT
\n3592 NEXT N
\n3594 RETURN
\n3630 IF N$(M,1)=" " THEN RETURN
\n3640 PRINT M;TAB 3;N$(M);TAB 23;B$(M)
\n3642 GOSUB C7
\n3650 RETURN
\n3670 PRINT AT 21,0;"%S%E%A%R%C%H% %B%Y% %N%U%M%,% %D%A%T%E%,% %O%R% %N%A%M%E%?"
\n3680 SLOW
\n3690 INPUT K$
\n3700 FAST
\n3710 PRINT AT 18,0;G$;G$;G$;G$
\n3715 PRINT AT 19,0;"SEARCH: ";K$
\n3720 IF K$="" THEN RETURN
\n3730 IF K$="NUM" THEN GOTO 3770
\n3740 IF K$="DATE" THEN GOTO 3820
\n3750 IF K$="NAME" THEN GOTO 3870
\n3760 GOTO 3670
\n3780 LET X=1
\n3790 LET Y=3
\n3800 DIM S$(3)
\n3810 GOTO 3910
\n3830 LET X=4
\n3840 LET Y=10
\n3850 DIM S$(7)
\n3860 GOTO 3910
\n3880 LET X=11
\n3890 LET Y=22
\n3900 DIM S$(12)
\n3910 PRINT AT 21,0;"%E%N%T%E%R% %T%H%E% %S%T%R%I%N%G"
\n3920 SLOW
\n3930 INPUT K$
\n3935 IF K$="" THEN RETURN
\n3940 FAST
\n3945 CLS
\n3950 LET QJ=0
\n3960 LET S$=K$
\n3970 LET QJ=QJ+1
\n3980 IF QJ=I THEN GOTO 4090
\n3990 IF A$(QJ,X TO Y)=S$ THEN GOTO 4010
\n4000 GOTO 3970
\n4010 GOSUB A2
\n4020 IF QJ=I THEN RETURN
\n4030 PRINT AT 21,0;"%A%D%V%A%N%C%E%? "
\n4040 SLOW
\n4050 INPUT K$
\n4060 FAST
\n4070 IF K$="Y" THEN GOTO 3970
\n4080 RETURN
\n4090 RAND USR UP
\n4093 PRINT AT 20,0;S$;" NOT FOUND"
\n4097 RETURN
\n4100 IF QJ=I THEN RETURN
\n4110 LET QJ=QJ+1
\n4120 LET P=QJ
\n4130 GOSUB A3
\n4140 RETURN
\n4160 IF QJ=1 THEN RETURN
\n4170 LET QJ=QJ-1
\n4180 GOSUB A2
\n4190 RETURN
\n4210 CLS
\n4230 LET QJ=R
\n4240 LET RF=0
\n4250 LET BO=0
\n4260 IF NOT R THEN LET QJ=1
\n4280 IF A$(QJ,27)="*" THEN GOTO 4550
\n4290 IF VAL A$(QJ,23 TO 24)>=4 THEN GOTO 4300
\n4292 LET DR=1
\n4294 LET CR=NOT DR
\n4296 GOTO 4320
\n4300 IF VAL A$(QJ,25 TO 26)>=4 THEN GOTO 4540
\n4302 LET CR=1
\n4304 LET DR=NOT CR
\n4320 LET SC=0
\n4330 LET P=QJ
\n4340 GOSUB A3
\n4350 PRINT AT 21,0;"%R%E%T%U%R%N%E%D%?"
\n4360 SLOW
\n4370 INPUT K$
\n4380 FAST
\n4390 PRINT AT 21,0;G$
\n4400 IF K$="" THEN RETURN
\n4410 IF K$="Y" THEN GOTO 4480
\n4420 IF K$<>"N" THEN GOTO 4350
\n4430 LET BO=BO-A(QJ)*DR+A(QJ)*CR
\n4460 LET RF=1
\n4470 GOTO 4540
\n4490 IF RF THEN GOTO 4510
\n4500 LET R=QJ
\n4510 PRINT AT 19,31;"*"
\n4520 LET A$(QJ,27)="*"
\n4530 GOTO 4540
\n4550 IF QJ=I THEN GOTO 4580
\n4560 LET QJ=QJ+1
\n4570 GOTO 4270
\n4590 LET BN=AB
\n4600 GOSUB A8
\n4610 PRINT AT 0,0;"ACCOUNT";TAB 16;X$
\n4620 LET BN=BO
\n4630 GOSUB A8
\n4640 PRINT "OUTSTANDING";TAB 16;X$;" "
\n4650 PRINT "BANK";TAB 16;"%E%N%T%E%R"
\n4660 PRINT "ERROR"
\n4680 SLOW
\n4690 INPUT K$
\n4700 FAST
\n4710 LET BB=VAL K$
\n4720 LET BN=BB
\n4730 GOSUB A8
\n4740 PRINT AT 2,16;X$
\n4750 LET BN=BB-AB-BO
\n4760 GOSUB A8
\n4770 PRINT AT 3,16;X$
\n4780 SLOW
\n4790 RETURN
\n4835 LET SC=0
\n4840 CLS
\n4842 GOSUB D6
\n4845 PRINT R$
\n4847 LET O1=0
\n4848 SLOW
\n4849 PRINT AT 8,0;"%?"
\n4850 GOSUB A11
\n4851 PRINT AT 8,0;INKEY$
\n4852 IF CODE INKEY$=118 THEN RETURN
\n4853 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4849
\n4854 IF INKEY$="Y" THEN LET O1=1
\n4855 LET O2=0
\n4856 SLOW
\n4857 PRINT AT 9,0;"%?"
\n4859 GOSUB A11
\n4860 IF CODE INKEY$=118 THEN RETURN
\n4861 PRINT AT 9,0;INKEY$
\n4862 REM IF INKEY$<>"Y" OR INKEY$<>"N" THEN GOTO 4857
\n4864 IF INKEY$="Y" THEN LET O2=1
\n4865 PAUSE 30
\n4870 PRINT AT 21,0;"CHOICE?"
\n4875 SLOW
\n4880 IF INKEY$="" THEN GOTO 4880
\n4882 IF INKEY$="C" THEN GOSUB 5560
\n4884 IF INKEY$="M" THEN RETURN
\n4886 IF INKEY$="J" THEN GOSUB 5410
\n4888 IF INKEY$="B" THEN GOSUB 3000
\n4890 IF INKEY$="I" THEN GOSUB 3250
\n4892 IF INKEY$="L" THEN GOSUB 5040
\n4894 GOTO 4835
\n4902 PRINT TAB 23;E$
\n4904 GOTO 4930
\n4910 PRINT
\n4912 GOTO 4930
\n4930 LET SC=SC+1
\n4932 IF INKEY$="S" AND INKEY$<>"A" THEN GOTO 4932
\n4935 IF SC<22 THEN RETURN
\n4937 SLOW
\n4942 IF O1 THEN INPUT K$
\n4950 IF O2 THEN COPY
\n4952 CLS
\n4955 LET SC=0
\n4957 FAST
\n4960 RETURN
\n5030 REM *** OUTPUT ACCOUNTS ***
\n5040 PRINT AT 21,0;"ACCOUNT NO. OR ALL?"
\n5050 SLOW
\n5060 INPUT K$
\n5070 IF K$="" THEN RETURN
\n5080 LET U=VAL K$
\n5090 LET F=1
\n5095 PRINT AT 18,0;"ACCT. NO. ";K$
\n5100 PRINT ,,,,"MONTH DESIRED, JAN - DEC OR ALL?"
\n5110 INPUT K$
\n5120 FAST
\n5130 IF K$="" THEN RETURN
\n5135 CLS
\n5140 LET X=1
\n5150 LET Y=99
\n5160 IF U THEN LET X=U
\n5170 IF U THEN LET Y=U
\n5180 IF K$="ALL" THEN LET F=0
\n5190 FOR U=X TO Y
\n5200 IF N(U)=0 THEN GOTO 5380
\n5210 LET AT=0
\n5220 GOSUB C6
\n5221 GOSUB C6
\n5222 PRINT U;TAB 3;N$(U)
\n5224 GOSUB C7
\n5226 PRINT H$
\n5228 GOSUB C7
\n5230 LET N=0
\n5240 LET N=N+1
\n5250 IF N=I+1 THEN GOTO 5340
\n5260 IF F AND A$(N,6 TO 8)<>K$ THEN GOTO 5240
\n5270 IF VAL A$(N,23 TO 24)<>U AND VAL A$(N,25 TO 26)<>U THEN GOTO 5240
\n5280 IF VAL A$(N,23 TO 24)=U THEN LET BN=A(N)
\n5290 IF VAL A$(N,25 TO 26)=U THEN LET BN=-A(N)
\n5300 LET AT=AT+BN
\n5310 GOSUB A8
\n5320 PRINT A$(N, TO 3);" ";A$(N,4 TO 10);" ";A$(N,11 TO 21);X$
\n5322 GOSUB C7
\n5330 GOTO 5240
\n5340 GOSUB C5
\n5350 LET BN=AT
\n5360 GOSUB A8
\n5370 PRINT "TOTAL";TAB 23;X$
\n5372 GOSUB C7
\n5380 NEXT U
\n5382 LET SC=22
\n5384 GOSUB C7
\n5390 RETURN
\n5410 PRINT AT 18,0;"START WHERE? ";
\n5420 SLOW
\n5430 INPUT K$
\n5440 IF K$="" THEN RETURN
\n5450 LET X=VAL K$
\n5460 PRINT ,X
\n5470 PRINT ,,"END WHERE?";
\n5480 INPUT K$
\n5490 LET Y=VAL K$
\n5500 PRINT ,Y
\n5510 PAUSE 20
\n5511 FAST
\n5512 POKE 16518,0
\n5513 POKE 16528,182
\n5514 POKE 16529,2
\n5521 CLS
\n5522 LET SC=0
\n5524 FOR N=X TO Y
\n5526 IF N>I THEN GOTO 5550
\n5528 LET P=N
\n5530 GOSUB A3
\n5532 NEXT N
\n5550 LET SC=22
\n5552 GOSUB C7
\n5554 POKE 16518,199
\n5555 POKE 16528,239
\n5556 POKE 16529,1
\n5557 RETURN
\n5561 FAST
\n5562 LET S=0
\n5563 LET CX=1
\n5564 CLS
\n5565 GOSUB D6
\n5566 LET SC=5
\n5567 GOSUB C7
\n5568 PRINT H$
\n5569 GOSUB C7
\n5570 GOSUB C6
\n5575 LET X=1
\n5580 LET Y=18
\n5590 GOSUB B9
\n5592 LET SC=22
\n5594 GOSUB C7
\n5600 RETURN
\n5660 CLS
\n5665 PRINT "CATEGORY GROUP ACCOUNTS"," FROM TO"
\n5670 PRINT AT 2,0;"ASSETS";AT 6,0;"LIABIL";AT 9,0;"CAPITAL";AT 10,0;"INCOME";AT 13,0;"EXPENSE"
\n5680 PRINT AT 2,0;
\n5690 FOR N=1 TO 18
\n5700 PRINT TAB 9;N;TAB 12;C$(N, TO 12);TAB 26;C$(N,13 TO 14);TAB 30;C$(N,15 TO 16)
\n5710 NEXT N
\n5720 PRINT AT 21,0;"CHANGE WHICH GROUP?"
\n5730 SLOW
\n5740 INPUT K$
\n5750 IF K$="" THEN RETURN
\n5760 PRINT AT 21,0;G$
\n5770 LET Y=VAL K$
\n5790 PRINT AT 1+Y,11;"%?"
\n5800 INPUT K$
\n5810 IF K$="" THEN GOTO 5830
\n5820 LET C$(Y)=K$
\n5830 PRINT AT 1+Y,11;C$(Y, TO 12);TAB 26;"%?"
\n5840 INPUT K$
\n5850 IF K$="" THEN GOTO 5870
\n5860 LET C$(Y,13 TO 14)=K$
\n5870 PRINT AT 1+Y,26;C$(Y,13 TO 14);TAB 30;"%?"
\n5880 INPUT K$
\n5890 IF K$="" THEN GOTO 5910
\n5900 LET C$(Y,15 TO )=K$
\n5910 PRINT AT 1+Y,30;C$(Y,15 TO )
\n5920 GOTO 5720
\n6172 CLS
\n6174 GOSUB D6
\n6176 PRINT P$
\n6190 RETURN
\n6210 IF INKEY$="J" THEN GOTO 40
\n6215 IF INKEY$="M" THEN GOTO 130
\n6220 IF INKEY$="N" THEN GOSUB 2720
\n6225 IF INKEY$="G" THEN GOSUB 5660
\n6230 IF INKEY$="C" THEN COPY
\n6235 IF INKEY$="O" THEN GOSUB 4835
\n6240 IF INKEY$="E" THEN GOSUB 2190
\n6250 IF INKEY$="Q" THEN GOTO 6840
\n6260 IF INKEY$="T" THEN GOSUB 6600
\n6270 IF INKEY$="S" THEN GOTO 6740
\n6290 IF CODE INKEY$=112 THEN GOSUB 2780
\n6300 IF CODE INKEY$=113 THEN GOSUB 2860
\n6310 GOTO 170
\n6330 CLS
\n6340 GOSUB D6
\n6350 PRINT Q$
\n6410 IF INKEY$="L" THEN GOTO 0120
\n6420 IF INKEY$="C" THEN COPY
\n6430 IF INKEY$="B" THEN GOSUB 1990
\n6440 IF INKEY$="E" THEN GOSUB 750
\n6450 IF INKEY$="F" THEN GOSUB 3660
\n6460 IF INKEY$="M" THEN GOTO 30
\n6470 IF INKEY$="O" THEN GOSUB 4830
\n6490 IF INKEY$="S" THEN GOTO 6740
\n6500 IF INKEY$="R" THEN GOSUB 4210
\n6510 IF INKEY$="Q" THEN GOTO 6840
\n6520 IF CODE INKEY$=112 THEN GOSUB 4100
\n6530 IF CODE INKEY$=113 THEN GOSUB 4150
\n6540 GOTO 80
\n6550 REM SHORT SUB
\n6560 PRINT L$;H$;O$(1);O$(2);O$(3);H$
\n6570 RETURN
\n6605 PRINT AT 21,0;" "
\n6606 SLOW
\n6607 PRINT AT 2,0;"%?"
\n6610 INPUT K$
\n6615 IF K$="" THEN GOTO 6625
\n6620 LET O$(1)=K$
\n6625 PRINT AT 2,0;O$(1);"%?"
\n6635 INPUT K$
\n6640 IF K$="" THEN GOTO 6650
\n6645 LET O$(2)=K$
\n6650 PRINT AT 3,0;O$(2);"%?"
\n6655 INPUT K$
\n6660 IF K$="" THEN GOTO 6670
\n6665 LET O$(3)=K$
\n6670 PRINT AT 4,0;O$(3)
\n6675 RETURN
\n6750 RAND USR UP
\n6760 PRINT AT 21,0;"SAVE BOOKS?"
\n6770 SLOW
\n6780 INPUT K$
\n6790 FAST
\n6800 PRINT AT 21,0;G$
\n6810 IF K$<>"Y" THEN GOTO 80
\n6820 SAVE "BOOK%S"
\n6830 GOTO 30
\n6850 CLS
\n6890 LIST
\n7020 DIM A$(A,27)
\n7030 DIM A(A)
\n7040 DIM N(99)
\n7050 DIM B$(99,9)
\n7060 LET I=0
\n7070 LET QJ=I
\n7090 LET R=I
\n7100 LET CN=I
\n7110 GOTO 30
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.



