Cassette from the ICS computer training series.
Content
Source Code
10 REM
15 GOSUB 8900
20 GOSUB 8700
30 GOSUB 7000
40 INPUT S
50 IF S>0 AND S<7 THEN GOTO 160
60 IF S=7 THEN GOTO 100
65 IF S=8 THEN GOTO 200
70 PRINT AT 20,0;"INVALID SELECTION, RE-ENTER"
80 REM
90 GOTO 40
100 REM THE END
110 CLS
120 PRINT AT 10,0;"SET RECORDER WITH BLANK TAPE"
130 PRINT "PRESS ANY KEY WHEN READY"
140 IF INKEY$="" THEN GOTO 140
141 CLS
142 SAVE "G%L"
143 PRINT "% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
144 FOR X=1 TO 20
145 PRINT "% ";TAB 31;"% "
146 NEXT X
147 PRINT "% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
148 PRINT AT 3,9;"GENERAL LEDGER";AT 5,14;"FOR";AT 7,1;"COMPUTER ASSISTED BOOKKEEPING";AT 14,2;"INTERNATIONAL CORRESPONDENCE";AT 15,12;"SCHOOLS";AT 17,6;"SCRANTON, PA. 18515";AT 19,4;"COPYRIGHT ICS INTEXT 1983"
149 PAUSE 20000
150 GOTO 30
160 REM
170 GOSUB S*1000
180 GOTO 30
200 GOSUB 8900
220 GOTO 30
\n1000 REM CHART OF ACCOUNTS
\n1050 CLS
\n1060 PRINT AT 0,6;"CHART OF ACCOUNTS"
\n1070 PRINT AT 1,5;C$
\n1080 PRINT AT 3,0;"%A%S%S%E%T%S%: CURRENT 101-115"
\n1083 PRINT AT 4,18;"FIXED 121-135"
\n1085 PRINT AT 5,18;"OTHER 141-143"
\n1087 PRINT AT 7,0;"%L%I%A%B%I%L%I%T%I%E%S%: CURRENT 201-210"
\n1090 PRINT AT 8,14;"LONG TERM 211-215"
\n1093 PRINT AT 10,0;"%C%A%P%I%T%A%L%:";AT 10,25;"221-225"
\n1095 PRINT AT 12,0;"%R%E%V%E%N%U%E%:";AT 12,25;"301-305"
\n1097 PRINT AT 14,0;"%C%O%S%T% %O%F% %G%O%O%D%S% %S%O%L%D%:";AT 14,25;"401-408"
\n1100 PRINT AT 16,0;"%O%P%E%R%A%T%I%N%G% %E%X%P%E%N%S%E%S%:";AT 16,25;"501-525"
\n1110 PRINT AT 18,0;"%O%T%H%E%R% %I%N%C%O%M%E%:";AT 18,25;"601"
\n1120 PRINT AT 20,0;"%O%T%H%E%R% %E%X%P%E%N%S%E%S%:";AT 20,25;"611"
\n1270 PRINT AT 21,1;"ENTER NEW ACCOUNT NO.(0 TO END)"
\n1290 INPUT J$
\n1295 IF J$="0" THEN RETURN
\n1296 CLS
\n1298 GOSUB 1500
\n1299 IF S>93 THEN GOTO 1270
\n1310 PRINT AT 1,3;"ACCOUNT NO:";J$;AT 21,1;"ENTER ACCOUNT NAME"
\n1313 INPUT A$(S)
\n1315 PRINT AT 3,9;"NAME:";A$(S)
\n1317 PAUSE 100
\n1330 GOTO 1000
\n1500 REM SEARCH FOR ACCT. SUB
\n1501 FAST
\n1505 LET S=0
\n1507 LET S=S+1
\n1513 IF S>93 THEN GOTO 1520
\n1514 IF J$=P$(S) THEN GOTO 1520
\n1515 GOTO 1507
\n1520 SLOW
\n1530 RETURN
\n2000 REM
\n2060 GOSUB 8000
\n2080 GOSUB 8500
\n2090 PRINT AT 18,2;"MORE? (Y/N)"
\n2100 INPUT R$
\n2110 IF R$="Y" THEN GOTO 2000
\n2120 IF R$="N" THEN RETURN
\n2125 GOTO 2090
\n3000 REM DISPLAY ACCOUNTS
\n3010 CLS
\n3020 PRINT AT 1,9;"TRIAL BALANCE"
\n3030 PRINT AT 3,7;"A. DISPLAY"
\n3040 PRINT AT 5,7;"B. PRINTOUT"
\n3050 PRINT AT 7,7;"C. END"
\n3070 PRINT AT 18,1;"ENTER CHOICE"
\n3080 INPUT M$
\n3090 IF M$="A" THEN GOTO 3145
\n3100 IF M$="B" THEN GOTO 3300
\n3110 IF M$="C" THEN RETURN
\n3130 PRINT AT 18,1;"INVALID CHOICE"
\n3140 GOTO 3080
\n3145 REM ACCOUNT BALANCES
\n3150 CLS
\n3155 FOR A=1 TO 93
\n3160 PRINT P$(A);" ";A$(A, TO 13);" ";B(A)
\n3162 IF NOT (A=21 OR A=42 OR A=63 OR A=84) THEN GOTO 3190
\n3165 PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE"
\n3168 PAUSE 32767
\n3170 CLS
\n3190 NEXT A
\n3195 PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE"
\n3198 PAUSE 32767
\n3200 GOTO 3000
\n3300 REM TRIAL BALANCE
\n3303 CLS
\n3304 FAST
\n3305 LPRINT TAB (9);"TRIAL BALANCE"
\n3310 LPRINT
\n3315 LPRINT "ACCT";TAB (7);"NAME";TAB (21);"DR";TAB (28);"CR"
\n3320 LPRINT
\n3323 LET TB1=0
\n3324 LET TB2=TB1
\n3325 LET T1=25
\n3330 LET T2=31
\n3331 LET B1=T1
\n3332 LET B2=T2
\n3335 LET L=1
\n3340 LET H=33
\n3345 GOSUB 3600
\n3350 LET B1=T2
\n3353 LPRINT
\n3355 LET B2=T1
\n3360 LET L=34
\n3365 LET H=58
\n3370 GOSUB 3600
\n3375 LET B1=T1
\n3380 LET B2=T2
\n3385 LET L=59
\n3390 LET H=91
\n3395 GOSUB 3600
\n3400 LET B1=T2
\n3405 LET B2=T1
\n3410 LET L=92
\n3415 LET H=L
\n3420 GOSUB 3600
\n3430 LET B1=T1
\n3435 LET B2=T2
\n3440 LET L=93
\n3445 LET H=L
\n3450 GOSUB 3600
\n3451 LPRINT
\n3452 LPRINT "TOTALS";TAB (13);TB1;TAB (23);TB2
\n3453 SLOW
\n3455 GOTO 3000
\n3600 FOR A=L TO H
\n3605 IF A$(A,1)=" " THEN GOTO 3660
\n3606 IF B(A)<0 AND B1=T1 THEN LET TB2=TB2+ABS (B(A))
\n3607 IF B(A)<0 AND B1<>T1 THEN LET TB1=TB1+ABS (B(A))
\n3608 LET U=LEN (STR$ (ABS (B(A))))
\n3610 LET Q=B1-U
\n3630 IF B(A)<0 THEN LET Q=B2-U
\n3640 IF B(A)>0 AND B1=T1 THEN LET TB1=TB1+B(A)
\n3650 IF B(A)>0 AND B1<>T1 THEN LET TB2=TB2+B(A)
\n3655 LPRINT P$(A);" ";A$(A);TAB Q;ABS B(A)
\n3660 NEXT A
\n3670 RETURN
\n4000 REM DISPLAY JOURNAL AND MAKE CORECTIONS
\n4001 CLS
\n4003 PRINT AT 4,10;"JOURNAL ENTRIES"
\n4004 PRINT AT 6,5;"1. LIST JOURNAL ENTRIES"
\n4005 PRINT AT 8,5;"2. CORRECT JOURNAL ENTRIES"
\n4006 PRINT AT 18,1;"ENTER CHOICE OR 0 TO END"
\n4007 INPUT A
\n4008 IF A=2 THEN GOTO 4180
\n4009 IF A=0 THEN RETURN
\n4010 IF A=1 THEN GOTO 4020
\n4015 GOTO 4001
\n4020 CLS
\n4025 FAST
\n4032 LPRINT
\n4035 LPRINT TAB (6);"GENERAL JOURNAL ";F$;"/";Y$(3 TO 4)
\n4040 LPRINT TAB (0);"LINE ";"DAY"
\n4050 FOR A=1 TO N
\n4060 LET J$=G$(A,18 TO 20)
\n4070 GOSUB 1500
\n4075 IF J$="MDR" THEN GOTO 4090
\n4080 IF S>93 THEN GOTO 4170
\n4090 LPRINT TAB (0);A;TAB (6);G$(A,1 TO 2);TAB (10);G$(A,3 TO 17)
\n4096 IF J$="MDR" THEN GOTO 4105
\n4100 LPRINT TAB (2);"DR:";P$(S);TAB (20);G(A)
\n4102 LPRINT A$(S)
\n4105 LET J$=G$(A,21 TO 23)
\n4107 GOSUB 1500
\n4109 IF S>93 THEN GOTO 4170
\n4110 LPRINT TAB (2);"CR:";P$(S);TAB (20);G(A)
\n4115 LPRINT A$(S)
\n4120 LPRINT " "
\n4170 NEXT A
\n4173 SLOW
\n4175 GOTO 4000
\n4180 CLS
\n4185 PRINT AT 18,1;"ENTER LINE TO REMOVE-0 TO END"
\n4190 INPUT A
\n4200 IF A=0 THEN RETURN
\n4210 LET F=G(A)*-1
\n4211 LET J$=G$(A,18 TO 20)
\n4212 GOSUB 1500
\n4213 LET S1=S
\n4214 LET J$=G$(A,21 TO 23)
\n4215 GOSUB 1500
\n4216 LET S2=S
\n4217 LET H$=G$(A,18 TO 20)
\n4218 LET I$=G$(A,21 TO 23)
\n4220 GOSUB 9003
\n4223 LET G$(A)=" "
\n4240 GOTO 4180
\n5000 REM INCOME STATEMENT
\n5005 CLS
\n5010 FAST
\n5035 LPRINT TAB (10);C$
\n5040 LPRINT TAB (8);"INCOME STATEMENT"
\n5050 LPRINT TAB (7);"01/01/";Y$(3 TO 4);" TO ";F$;"/";E;"/";Y$(3 TO 4)
\n5060 LET L=54
\n5070 LET H=58
\n5080 GOSUB 5500
\n5090 LET A1=T
\n5100 LPRINT "NET SALES";TAB (23);A1
\n5110 LET L=59
\n5120 LET H=66
\n5130 GOSUB 5500
\n5140 LET A2=T
\n5150 LPRINT "COST OF SALES";TAB (23);A2
\n5160 LPRINT "GROSS PROFIT";TAB (23);A1-A2
\n5170 LET L=67
\n5180 LET H=91
\n5190 GOSUB 5500
\n5210 LPRINT "TOTAL OPERATING EXP";TAB (23);T
\n5220 LPRINT "NET PROFIT/OPNS";TAB (23);A1-A2-T
\n5230 LPRINT A$(92);TAB (23);B(92)
\n5240 LPRINT A$(93);TAB (23);B(93)
\n5245 LET NET=A1-A2-T+B(92)-B(93)
\n5250 LPRINT "TOTAL NET INCOME";TAB (23);NET
\n5260 SLOW
\n5270 RETURN
\n5500 LPRINT
\n5510 LET T=0
\n5520 FOR A=L TO H
\n5530 IF A$(A,1)=" " THEN GOTO 5560
\n5540 LPRINT A$(A);TAB (15);B(A)
\n5550 LET T=T+B(A)
\n5560 NEXT A
\n5570 RETURN
\n6000 REM BALANCE SHEET
\n6005 CLS
\n6010 LPRINT TAB (10);C$
\n6020 LPRINT TAB (9);"BALANCE SHEET"
\n6030 LPRINT TAB (12);F$;"/";E;"/";Y$(3 TO 4)
\n6040 LET L=1
\n6050 LET H=15
\n6060 GOSUB 5500
\n6070 LPRINT "CURRENT ASSETS";TAB (23);T
\n6080 LET A1=T
\n6090 LET L=16
\n6100 LET H=30
\n6110 GOSUB 5500
\n6120 LPRINT "FIXED ASSETS";TAB (23);T
\n6130 LET A2=T
\n6140 LET L=31
\n6150 LET H=33
\n6160 GOSUB 5500
\n6170 LPRINT "OTHER ASSETS";TAB (23);T
\n6180 LET T1=A1+A2+T
\n6190 LPRINT "TOTAL ASSETS";TAB (23);T1
\n6200 LET L=34
\n6210 LET H=43
\n6220 GOSUB 5500
\n6230 LPRINT "CURRENT LIABS";TAB (23);T
\n6240 LET A1=T
\n6250 LET L=44
\n6260 LET H=48
\n6270 GOSUB 5500
\n6280 LPRINT "LONG TERM LIABS";TAB (23);T
\n6290 LET T2=A1+T
\n6300 LPRINT "TOTAL LIABS";TAB (23);T2
\n6310 LET L=49
\n6320 LET H=53
\n6330 GOSUB 5500
\n6340 LPRINT "TOTAL CAPITAL";TAB (23);T
\n6355 LPRINT "(NET INCOME)";TAB (23);NET
\n6360 LPRINT "TOTAL LIABS/CAPITAL";TAB (23);NET+T+T2
\n6390 SLOW
\n6400 RETURN
\n7000 CLS
\n7010 PRINT AT 2,8;"GENERAL LEDGER"
\n7020 PRINT AT 5,4;"1. CHART OF ACCOUNTS"
\n7030 PRINT AT 7,4;"2. RECORD TRANS IN JOURNAL"
\n7040 PRINT AT 9,4;"3. TRIAL BALANCE"
\n7050 PRINT AT 11,4;"4. LIST/CORRECT JOURNAL"
\n7060 PRINT AT 13,4;"5. INCOME STATEMENT"
\n7070 PRINT AT 15,4;"6. BALANCE SHEET"
\n7080 PRINT AT 17,4;"7. SAVE TO TAPE"
\n7085 PRINT AT 19,4;"8. START NEW MONTH"
\n7090 PRINT AT 21,0;"ENTER NO. OF SELECTION"
\n7095 RETURN
\n8000 CLS
\n8005 PRINT TAB (3);"THERE IS ROOM FOR ";25-N;" MORE"
\n8010 PRINT AT 1,8;"JOURNAL ENTRIES"
\n8075 PRINT AT 5,1;"ENTER DAY DD"
\n8076 INPUT E
\n8077 PRINT AT 5,11;" ";AT 5,11;E
\n8080 PRINT AT 7,1;"ENTER DESC XXXXXXXXXXXXXXX"
\n8090 INPUT D$
\n8100 PRINT AT 7,12;Z$;AT 7,12;D$
\n8105 PRINT AT 8,1;"DEBIT PR XXX"
\n8110 INPUT H$
\n8115 PRINT AT 8,11;H$
\n8122 LET J$=H$
\n8123 GOSUB 1500
\n8124 IF H$="MDR" THEN LET S=0
\n8125 IF S>93 THEN GOTO 8105
\n8126 LET S1=S
\n8129 PRINT AT 9,1;"CREDIT PR XXX"
\n8130 INPUT I$
\n8135 PRINT AT 9,11;I$
\n8138 LET J$=I$
\n8140 GOSUB 1500
\n8145 IF I$="MCR" THEN LET S=0
\n8150 IF S>93 THEN GOTO 8129
\n8160 LET S2=S
\n8200 PRINT AT 13,1;"ENTER AMOUNT XXXXX.XX "
\n8210 INPUT F
\n8220 PRINT AT 13,15;F;" "
\n8230 PRINT AT 16,2;"OK? (Y/N)"
\n8240 INPUT R$
\n8250 IF R$="N" THEN GOTO 8075
\n8260 IF R$<>"Y" THEN GOTO 8230
\n8490 RETURN
\n8500 REM
\n8501 IF H$<>"MDR" AND I$<>"MCR" THEN GOTO 8504
\n8502 IF H$="MDR" THEN GOTO 9100
\n8503 IF I$="MCR" THEN GOTO 9500
\n8504 GOSUB 9000
\n8505 LET G$(N,1 TO 2)=STR$ E
\n8520 LET G$(N,3 TO 17)=D$
\n8550 LET G(N)=F
\n8560 LET G$(N,18 TO 20)=H$
\n8570 LET G$(N,21 TO 23)=I$
\n8690 RETURN
\n8700 REM INITIALIZATION SECTION
\n8890 RETURN
\n8900 REM DIMENSION JOURNAL TABLE
\n8910 CLS
\n8920 PRINT AT 6,0;"IF YOU CONTINUE THIS SECTION, A NEW JOURNAL WILL BE SET UP-YOU SHOULD MAKE SURE THAT YOU HAVE SAVED YOUR LAST JOURNAL ON TAPE AND HAVE A HARD-COPY"
\n8925 PRINT AT 12,0;"IF YOU WISH TO CANCEL PRESS ""N"", TO CONTINUE PRESS ANY KEY"
\n8930 IF INKEY$="" THEN GOTO 8930
\n8935 IF INKEY$="N" THEN RETURN
\n8940 CLS
\n8950 LET N=0
\n8954 PRINT AT 3,1;"ENTER YEAR XXXX"
\n8956 INPUT Y$
\n8960 PRINT AT 3,12;Y$
\n8964 PRINT AT 5,1;"ENTER MONTH MM"
\n8968 INPUT F$
\n8970 PRINT AT 5,13;F$;" "
\n8974 PRINT AT 7,1;"ENTER COMPANY NAME"
\n8976 INPUT C$
\n8978 PRINT AT 7,20;C$
\n8980 DIM G$(25,23)
\n8985 DIM G(25)
\n8990 RETURN
\n9000 REM POST TO ACCOUNTS
\n9001 LET N=N+1
\n9003 IF H$="MDR" THEN GOTO 9030
\n9005 IF H$="601" OR H$(1)="2" OR H$(1)="3" THEN LET B(S1)=B(S1)-F
\n9007 IF NOT (H$="601" OR H$(1)="2" OR H$(1)="3") THEN LET B(S1)=B(S1)+F
\n9010 IF B(S1)>-.01 AND B(S1)<.01 THEN LET B(S1)=0
\n9030 IF I$="MCR" THEN GOTO 9060
\n9040 IF NOT (I$="601" OR I$(1)="2" OR I$(1)="3") THEN LET B(S2)=B(S2)-F
\n9050 IF I$="601" OR I$(1)="2" OR I$(1)="3" THEN LET B(S2)=B(S2)+F
\n9055 IF B(S2)>-.01 AND B(S2)<.01 THEN LET B(S2)=0
\n9060 RETURN
\n9100 REM CASH DISBURSEMENTS
\n9110 DIM Y(10)
\n9120 DIM Z(10)
\n9130 LET X=0
\n9132 LET C1=0
\n9140 LET X=X+1
\n9150 PRINT AT 17,0;"PR TO DEBIT-XXX"
\n9160 INPUT Y(X)
\n9170 PRINT AT 17,12;Y(X)
\n9172 LET J$=STR$ Y(X)
\n9175 GOSUB 1500
\n9177 IF S>93 THEN GOTO 9150
\n9180 PRINT AT 17,16;"AMOUNT-XXX.XX"
\n9190 INPUT Z(X)
\n9200 PRINT AT 17,22;Z(X);" "
\n9210 LET C1=C1+Z(X)
\n9215 IF C1-F>-.009 AND C1-F<.009 THEN GOTO 9300
\n9220 IF C1<F THEN GOTO 9270
\n9240 PRINT AT 20,0;"DEBITS NOT EQUAL TO CREDITS"
\n9245 PRINT AT 21,0;"PRESS ANY KEY AND REENTER"
\n9250 PAUSE 40000
\n9260 GOTO 8690
\n9270 SCROLL
\n9280 GOTO 9140
\n9300 REM POST TO G/L AND ACCOUNTS
\n9310 GOSUB 9000
\n9320 LET G$(N,1 TO 2)=STR$ E
\n9330 LET G$(N,3 TO 17)=D$
\n9340 LET G(N)=F
\n9350 LET G$(N,21 TO 23)=I$
\n9360 LET G$(N,18 TO 20)="MDR"
\n9375 FOR A=1 TO X
\n9380 LET I$="MCR"
\n9382 LET H$=STR$ Y(A)
\n9384 LET F=Z(A)
\n9386 LET J$=H$
\n9390 GOSUB 1500
\n9392 LET S1=S
\n9399 GOSUB 9000
\n9400 LET G$(N,18 TO 20)=STR$ Y(A)
\n9410 LET G(N)=Z(A)
\n9430 LET G$(N,21 TO 23)="MCR"
\n9460 NEXT A
\n9470 GOTO 8690
\n9499 REM SALES JOURNAL
\n9500 DIM Y(10)
\n9501 DIM Z(10)
\n9502 LET X=0
\n9503 LET C1=0
\n9504 LET X=X+1
\n9505 PRINT AT 17,0;"PR TO CREDIT-XXX"
\n9506 INPUT Y(X)
\n9507 GOSUB 1500
\n9508 PRINT AT 17,13;Y(X);AT 17,17;"AMOUNT-XXX.XX"
\n9509 INPUT Z(X)
\n9510 PRINT AT 17,24;Z(X);" "
\n9511 LET C1=C1+Z(X)
\n9512 IF C1-F>-.009 AND C1-F<.009 THEN GOTO 9518
\n9513 IF C1<F THEN GOTO 9515
\n9514 GOTO 9240
\n9515 SCROLL
\n9516 GOTO 9504
\n9518 REM POST TO G/L AND ACCOUNTS
\n9519 GOSUB 9000
\n9520 LET G$(N,1 TO 2)=STR$ E
\n9530 LET G$(N,3 TO 17)=D$
\n9540 LET G(N)=F
\n9550 LET G$(N,21 TO 23)="MCR"
\n9560 LET G$(N,18 TO 20)=H$
\n9575 FOR A=1 TO X
\n9580 LET I$=STR$ Y(A)
\n9582 LET H$="MDR"
\n9584 LET F=Z(A)
\n9586 LET J$=I$
\n9588 GOSUB 1500
\n9590 LET S2=S
\n9599 GOSUB 9000
\n9600 LET G$(N,21 TO 23)=STR$ Y(A)
\n9610 LET G(N)=Z(A)
\n9630 LET G$(N,18 TO 20)="MDR"
\n9660 NEXT A
\n9670 GOTO 8690