10  COM P9,P8,P,T1,T[30],R[30],A$[18],C$[36],A[80],B[80],N[80],M[80]
20  COM I2,E$[6],D$[18],S$[26],T7,T8,T9
25  REM HP CONTRIBUTED LIBRARY, 2/75, 6 PROGRAMS:  ATG, ATGE, ATGIB,
26  REM ATGM, ATGM1, ATGW.
30  DIM H$[30],R$[4]
40  GOTO 680
50  PRINT '10"WHEN YOU ARE READY FOR THE INCOME STATEMENT, TYPE GO ";
60  INPUT R$
70  IF R$#"GO" THEN 50
80  PRINT '10'10TAB(14);C$
90  PRINT '10TAB(17)"INCOME STATEMENT"
100  PRINT '10TAB(16);A$
110  T2=T3=0
120  PRINT '10'10"INCOME"
130  PRINT "------"'10
140  FOR I=1 TO I2
150  IF R[I]<39 OR R[I]>46 THEN 200
160  X=R[I]
170  GOSUB 500
180  PRINT TAB(5);H$;TAB(54);T[I]
190  T2=T2+T[I]
200  NEXT I
210  PRINT '10'10"EXPENSES"
220  PRINT "--------"'10
230  FOR I=1 TO I2
240  IF R[I]<53 OR R[I]>74 THEN 290
250  X=R[I]
260  GOSUB 500
270  PRINT TAB(5);H$;TAB(38);T[I]
280  T3=T3+T[I]
290  NEXT I
300  PRINT TAB(36)"------------"
310  PRINT '10"TOTAL EXPENSES"TAB(54);T3
320  PRINT TAB(52)"------------"
330  IF T2<T3 THEN 360
340  PRINT '10"NET INCOME"TAB(54);T2-T3
350  GOTO 370
360  PRINT '10"NET LOSS"TAB(54);T3-T2
370  PRINT TAB(52)"------------"
380  PRINT TAB(52)"------------"
390  IF P>3 THEN 450
400  IF (P=1 AND T2=1300 AND T3=1025) OR (P=2 AND T2=2008.32 AND T3=2145.53) THEN 440
410  IF (P=3 AND T2=1056 AND T3=944) THEN 440
420  PRINT '10"***** ERROR - YOUR DATA IS INCORRECT FOR PROBLEM # "P"*****"
430  STOP 
440  PRINT '10'7"#"'7"#"'7"#"'7"#"'7"#"'7" GREAT!! YOUR ANSWERS MATCH MINE FOR PROBLEM # "P'7"#"'7"#"'7"#"'7"#"'7"#"'7
450  PRINT '10"DO YOU WISH TO TRY ANOTHER PROBLEM (Y/N) ";
460  INPUT R$
470  IF R$="Y" THEN 490
480  STOP 
490  CHAIN "ATG"
500  RESTORE 
510  FOR J=1 TO INT((X+1)/2)
520  READ H$
530  NEXT J
540  RETURN 
550  DATA "CASH","ACCOUNTS RECEIVABLE","ALLOWANCE FOR BAD DEBTS"
560  DATA "MERCHANDISE INVENTORY","SUPPLIES","PREPAID RENT","PREPAID INSURANCE"
570  DATA "EQUIPMENT","ACCUM. DEPREC.-  EQUIPMENT","BUILDING"
580  DATA "ACCUM.. DEPREC.- BUILDING","LAND","MISC. ASSETS","ACCOUNTS PAYABLE"
590  DATA "SALARIES PAYABLE","MISC. PAYABLE","CAPITAL","DRAWING"
600  DATA "INCOME AND EXPENSE SUMMARY","FEES INCOME","SALES"
610  DATA "SALES RETURNS & ALLOWANCES","SALES DISCOUENT","PURCHASES"
620  DATA "PURCHASES RETURNS & ALLOWANCES","PURCHASES DISCOUNT"
630  DATA "ADVERTISING EXPENSE","BAD DEBTS EXPENSE","DELIVERY EXPENSE"
640  DATA "DEPREC. EXPENSE - BUILDING","DEPREC. EXPENSE - EQUIPMENT"
650  DATA "INSURANCE EXPENSE","RENT EXPENSE","SALARY EXPENSE"
660  DATA "SUPPLIES EXPENSE","UTILITIES EXPENSE","MISC. EXPENSE"
670  DATA "RENT INCOME","GAIN ON FIXED ASSETS","LOSS ON FIXED ASSETS"
680  IF P9>6 THEN 730
690  PRINT '10"WHEN YOU ARE READY FOR THE TRIAL BALANCE, TYPE GO ";
700  INPUT R$
710  IF R$#"GO" THEN 690
720  GOTO 760
730  PRINT '10"WHEN YOU ARE READY FOR THE POST CLOSING TRIAL BALANCE, TYPE GO ";
740  INPUT R$
750  IF R$#"GO" THEN 730
760  PRINT '10'10TAB(12);C$
770  IF P9>6 THEN 800
780  PRINT TAB(14)'10"TRIAL BALANCE"
790  GOTO 810
800  PRINT '10TAB(8);"POST CLOSING TRIAL BALANCE"
810  PRINT '10TAB(12);A$'10'10
820  GOSUB 1060
830  PRINT TAB(31)"------------"TAB(47)"------------"
840  PRINT '10TAB(31);T2;TAB(47);T3
850  PRINT TAB(31)"------------"TAB(47)"------------"
860  PRINT TAB(31)"------------"TAB(47)"------------"'10
870  T2=INT((T2+.05)*10)/10
880  T3=INT((T3+.05)*10)/10
890  IF T2#T3 THEN 980
900  GOTO 1200
910  IF P9#7 THEN 950
920  IF (P=1 AND T2=10540) OR (P=2 AND T2=14200) OR (P=3 AND T2=21965.3) OR P>3 THEN 1030
930  PRINT "***** ERROR - YOU BALANCE, BUT YOUR DATA IS INCORRECT FOR PROBLEM "P"*****"
940  CHAIN "ATGE"
950  IF P9#9 THEN 1000
960  IF (P=1 AND T2=13915) OR (P=2 AND T2=36256.4) OR (P=3 AND T2=10310) OR P>3 THEN 1030
970  GOTO 930
980  PRINT "***** ERROR - THE DEBIT AND CREDIT COLUMNS DO NOT BALANCE *****"
990  CHAIN "ATGE"
1000  IF P9#13 THEN 1030
1010  IF (P=2 AND T2=31923) OR (P=4 AND T2=35173.) OR (P#2 AND P#4) THEN 1030
1020  GOTO 930
1030  PRINT '10'7"#"'7"#"'7"#"'7"#"'7"#"'7" NICE GOING - YOU BALANCE "'7"#"'7"#"'7"#"'7"#"'7"#"'7
1040  IF P9=6 THEN 50
1050  GOTO 450
1060  T2=T3=0
1070  FOR I=1 TO I2
1080  IF T[I]=0 OR ABS(T[I])<.01 THEN 1180
1090  X=R[I]
1100  GOSUB 500
1110  IF (26<X AND X<47) OR (74<X AND X<79) OR T[I]<0 THEN 1150
1120  PRINT H$;TAB(32);T[I]
1130  T2=T2+T[I]
1140  GOTO 1180
1150  T[I]=T[I]*-1
1160  PRINT H$;TAB(48);T[I]
1170  T3=T3+T[I]
1180  NEXT I
1190  RETURN 
1200  IF P9#5 THEN 1230
1210  IF (P=1 AND T2=4000) OR (P=2 AND T2=12420.2) OR (P=3 AND T2=11606) OR P>3 THEN 1260
1220  GOTO 930
1230  IF P9#6 THEN 910
1240  IF (P=1 AND T2=8300) OR (P=2 AND T2=19758.3) OR (P=3 AND T2=14881) OR P>3 THEN 1260
1250  GOTO 930
1260  GOTO 1030
1270  END 
