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 ATGM1, ATGW.
30  DIM H$[30],R$[4],S[80]
40  DEF FNR()=(INT(*10+.5))/10
50  IF P8=1 THEN 290
60  FOR I=1 TO T1
70  GOSUB 100
80  NEXT I
90  GOTO 290
100  PRINT "ACCOUNT NUMBER ";
110  INPUT N[I]
120  M[I]=N[I]
130  IF N[I]<81 THEN 160
140  PRINT "***** ERROR - ACCOUNT NUMBER IS GREATER THAN 80 *****"
150  GOTO 100
160  X=N[I]
170  GOSUB 2140
180  PRINT "AMOUNT ";
190  INPUT A[I]
200  B[I]=A[I]
210  PRINT '10"ACCOUNT # ";N[I];"NAME - ";H$;"    AMOUNT = ";A[I]
220  PRINT "ARE THEY CORRECT (Y/N) ";
230  INPUT R$
240  IF R$#"N" THEN 270
250  PRINT "LET'S TRY AGAIN !"
260  GOTO 100
270  IF R$#"Y" THEN 210
280  RETURN 
290  PRINT '10'10"STUDENT NAME - ";S$
300  PRINT "EXERCISE - ";E$
310  PRINT "DATE - ";D$
320  PRINT TAB(26)'10'10C$
330  PRINT TAB(20);'10"JOURNAL OF FINANCIAL TRANSACTIONS"
340  PRINT TAB(28)'10A$
350  PRINT '10'10TAB(10)"NAME OF ACCOUNT"TAB(40)"DEBIT"TAB(50)"CREDIT"
360  Z0=1
370  T2=T3=0
380  FOR I=1 TO T7
390  GOSUB 440
400  NEXT I
410  T2=FNR(T2)
420  T3=FNR(T3)
430  GOTO 590
440  X=N[I]
450  IF N[I]=2*(INT(N[I]/2)) THEN 530
460  GOSUB 2140
470  IF Z0=0 THEN 500
480  PRINT 
490  Z0=0
500  PRINT H$;TAB(40);A[I]
510  T2=T2+A[I]
520  GOTO 580
530  X=N[I]
540  GOSUB 2140
550  Z0=1
560  PRINT "   "H$;TAB(50);A[I]
570  T3=T3+A[I]
580  RETURN 
590  PRINT '10'10"TOTALS FOR THIS DATE"TAB(40);T2;TAB(50);T3;'10
600  IF T2=T3 THEN 630
610  PRINT "***** ERROR - TOTALS DO NOT MATCH - NAUGHTY, NAUGHTY! *****"
620  CHAIN "ATGE"
630  IF P9#7 THEN 670
640  IF (P=1 AND T2=11560) OR (P=2 AND T2=15350) OR (P=3 AND T2=31720.7) OR P>3 THEN 760
650  PRINT "***** ERROR - YOUR DATA FOR EXERCISE # ";P;"IS INCORRECT *****"
660  CHAIN "ATGE"
670  IF P9#8 THEN 700
680  IF (P=1 AND T2=20560) OR (P=2 AND T2=34761.9) OR (P=3 AND T2=143912.) OR P>3 THEN 760
690  GOTO 650
700  IF P9#9 THEN 730
710  IF (P=1 AND T2=17100) OR (P=2 AND T2=56526.6) OR (P=3 AND T2=18665) OR P>3 THEN 760
720  GOTO 650
730  IF P9#13 THEN 770
740  IF (P<3 AND T2=46383.) OR (P<5 AND T2=51853.) OR P>4 THEN 770
750  GOTO 650
760  IF P9=7 THEN 1060
770  IF T8#0 THEN 840
780  PRINT '10"GREAT, NOW PLEASE TELL ME HOW MANY ADJUSTING EN"'20"IES YOU HAVE ";
790  INPUT T8
800  T1=T1+T8
810  FOR I=T7+1 TO T1
820  GOSUB 100
830  NEXT I
840  PRINT '10'10"ADJUSTING ENTRIES"
850  PRINT "--------- -------"'10
860  FOR I=T7+1 TO T7+T8
870  GOSUB 440
880  NEXT I
890  T2=FNR(T2)
900  T3=FNR(T3)
910  PRINT '10"TOTALS FOR THIS DATE"TAB(40);T2;TAB(50);T3;'10
920  IF T2=T3 THEN 950
930  PRINT '7"*"'7"*"'7"*"'7"*"'7"*"'7" ERROR - TOTALS DO NOT MATCH "'7"*"'7"*"'7"*"'7"*"'7"*"'7'10
940  CHAIN "ATGE"
950  IF P9#8 THEN 990
960  IF (P=1 AND T2=35355.) OR (P=2 AND T2=46263.8) OR (P=3 AND T2=217160.) OR P>3 THEN 1360
970  PRINT '7"*"'7"*"'7"*"'7"*"'7"*"'7" ERROR - YOUR TOTALS ARE NOT CORECT FOR PROBLEM # ";P;'7"*"'7"*"'7"*"'7"*"'7"*"'7'10
980  CHAIN "ATGE"
990  IF P9#9 THEN 1020
1000  IF (P=1 AND T2=27860) OR (P=2 AND T2=89225.1) OR (P=3 AND T2=19795) OR P>3 THEN 1060
1010  GOTO 970
1020  IF P9#13 THEN 1060
1030  IF (P<3 AND T2=65833.) OR (P<5 AND T2=70558.) OR P>4 THEN 1050
1040  GOTO 970
1050  IF P=1 OR P=3 THEN 1360
1060  IF T9#0 THEN 1140
1070  PRINT '10"VERY GOOD, NOW I NEED TO KNOW HOW MANY CLOSING ENTRIES YOU HAVE ";
1080  Z0=0
1090  INPUT T9
1100  T1=T1+T9
1110  FOR I=T7+T8+1 TO T1
1120  GOSUB 100
1130  NEXT I
1140  PRINT '10'10"CLOSING ENTRIES"
1150  PRINT "------- -------"'10
1160  FOR I=T7+T8+1 TO T1
1170  GOSUB 440
1180  NEXT I
1190  T2=FNR(T2)
1200  T3=FNR(T3)
1210  PRINT '10'10"TOTALS FOR THIS DATE"TAB(40);T2;TAB(50);T3;'10
1220  IF T2=T3 THEN 1250
1230  PRINT '7"*"'7"*"'7"*"'7"*"'7"*"'7" ERROR - TOTALS DO NOT MATCH - SORRY ABOUT THAT "'7"*"'7"*"'7"*"'7"*"'7"*"'7'10
1240  CHAIN "ATGE"
1250  IF P9#7 THEN 1290
1260  IF (P=1 AND T2=15960) OR (P=2 AND T2=16800) OR (P=3 AND T2=39450.7) OR P>3 THEN 1290
1270  PRINT '10'7"*"'7"*"'7"*"'7"*"'7"*"'7" ERROR - YOUR TOTALS ARE NOT CORRECT FOR PROBLEM ";P;"*"'7"*"'7"*"'7"*"'7"*"'7'10
1280  CHAIN "ATGE"
1290  IF P9#9 THEN 1320
1300  IF (P=1 AND T2=36045.) OR (P=2 AND INT(T2)=106065.) OR (P=3 AND T2=24485) OR P>3 THEN 1350
1310  GOTO 1270
1320  IF P9#13 THEN 1350
1330  IF (P=2 AND T2=80717.) OR (P=4 AND T2=88613.) OR (P#2 AND P#4) THEN 1350
1340  GOTO 1270
1350  PRINT '10"*"'7"*"'7"*"'7"*"'7"*"'7" RIGHT YOU ARE - YOU BALANCE "'7"*"'7"*"'7"*"'7"*"'7"*"'7'10
1360  PRINT '10"WHEN YOU ARE READY FOR THE 'T ACCOUNTS', TYPE GO ";
1370  INPUT R$
1380  IF R$#"GO" THEN 1280
1390  FOR I=1 TO T1-1
1400  FOR J=I+1 TO T1
1410  IF N[I] <= N[J] THEN 1480
1420  S1=N[I]
1430  N[I]=N[J]
1440  N[J]=S1
1450  S1=A[I]
1460  A[I]=A[J]
1470  A[J]=S1
1480  NEXT J
1490  NEXT I
1500  PRINT '10'10"      "C$
1510  PRINT '10"  DEBITS AND CREDITS BY ACCOUNT"
1520  PRINT '10"       "A$
1530  I2=0
1540  I9=1
1550  FOR I=1 TO T1
1560  IF I9=1 THEN 1600
1570  FOR I4=1 TO I9-1
1580  IF N[I]=S[I4] THEN 1930
1590  NEXT I4
1600  FOR I3=1 TO 80
1610  IF N[I]=I3 THEN 1650
1620  NEXT I3
1630  PRINT "***** ERROR - ACCOUNT NUMBERS DO NOT MATCH *****"
1640  CHAIN "ATGE"
1650  S[I9]=I3
1660  I9=I9+1
1670  IF N[I]=2*INT(N[I]/2) THEN 1700
1680  S[I9]=I3+1
1690  GOTO 1710
1700  S[I9]=I3-1
1710  I9=I9+1
1720  X=N[I]
1730  GOSUB 2140
1740  PRINT '10'10"    "H$
1750  PRINT "--------------------------------"
1760  I2=I2+1
1770  T[I2]=0
1780  FOR I3=1 TO T1
1790  IF N[I3]#X THEN 1870
1800  IF N[I3]=2*INT(N[I3]/2) THEN 1840
1810  PRINT TAB(5);A[I3];TAB(17)"I"
1820  T[I2]=T[I2]+A[I3]
1830  GOTO 1910
1840  PRINT TAB(17)"I     "A[I3]
1850  T[I2]=T[I2]-A[I3]
1860  GOTO 1910
1870  IF N[I3]=2*INT(N[I3]/2) THEN 1900
1880  IF N[I3]+1=X THEN 1810
1890  GOTO 1910
1900  IF N[I3]-1=X THEN 1840
1910  NEXT I3
1920  R[I2]=X
1930  NEXT I
1940  IF P9=13 AND (P=1 OR P=3) THEN 1960
1950  IF P9#8 THEN 2000
1960  PRINT '10"WHEN YOU ARE READY FOR THE WORK SHEET, TYPE GO ";
1970  INPUT R$
1980  IF R$#"GO" THEN 1960
1990  CHAIN "ATGW"
2000  CHAIN "ATGIB"
2010  DATA "CASH","ACCOUNTS RECEIVABLE","ALLOWANCE FOR BAD DEBTS"
2020  DATA "MERCHANDISE INVENTORY","SUPPLIES","PREPAID RENT","PREPAID INSURANCE"
2030  DATA "EQUIPMENT","ACCUM. DEPREC.-  EQUIPMENT","BUILDING"
2040  DATA "ACCUM.. DEPREC.- BUILDING","LAND","MISC. ASSETS","ACCOUNTS PAYABLE"
2050  DATA "SALARIES PAYABLE","MISC. PAYABLE","CAPITAL","DRAWING"
2060  DATA "INCOME AND EXPENSE SUMMARY","FEES INCOME","SALES"
2070  DATA "SALES RETURNS & ALLOWANCES","SALES DISCOUNT","PURCHASES"
2080  DATA "PURCHASES RETURNS & ALLOWANCES","PURCHASES DISCOUNT"
2090  DATA "ADVERTISING EXPENSE","BAD DEBTS EXPENSE","DELIVERY EXPENSE"
2100  DATA "DEPREC. EXPENSE - BUILDING","DEPREC. EXPENSE - EQUIPMENT"
2110  DATA "INSURANCE EXPENSE","RENT EXPENSE","SALARY EXPENSE"
2120  DATA "SUPPLIES EXPENSE","UTILITIES EXPENSE","MISC. EXPENSE"
2130  DATA "RENT INCOME","GAIN ON FIXED ASSETS","LOSS ON FIXED ASSETS"
2140  RESTORE 
2150  FOR J=1 TO INT((X+1)/2)
2160  READ H$
2170  NEXT J
2180  RETURN 
2190  END 
