   10MODE7
   20FOR D=1TO2:PRINT CHR$(141)CHR$(131)"BBC-BAS2 PROG ""SQUARES"" 140796,180597":NEXT D
   30PRINT''
   40PRINT"LEARN SQUARES AND SQUARE ROOTS"'" UP TO 100^2,"'" BY DS MCDONALD, WGTN, "'"(04)3-896-820."
   50INPUT'"ENTER MAX INT REQD SQUARE OF ";N
   60INPUT"ENTER 1=EASY,  2=HARD  (on goto.) ";EASY
   70ON EASY GOTO 80,560
   80DIM X(100+N)
   90@%=9
  100X(1)=1
  110FOR I=2TO  N
  120X(I)=((I*I+1)DIV5)*5
  130FOR D=1TO1
  140PRINT;  I; "^2 =  " X(I) : NEXT D
  150NEXT I : PRINT'"PRESS SPC.";GET$: GOTO 230
  160REPEAT INPUT'"ENTER APPROX I*I (RETN)  0=CONTINUE";X$
  170IF X$="0"THEN 220
  180IF X$<>""THEN X(I)=EVAL X$
  190UNTIL ABS LN(X(I)/(I*I))<.05
  200NEXT I
  210GOTO 230
  220UNTIL X$="0"
  230REPEAT
  240INPUT"PRINT TABLE OF SQUARES,  Y/N";A$
  250UNTIL A$="Y" OR A$="N"
  260IF A$<>"Y"THEN 350
  270MODE0
  280PRINT"TABLE OF APPROX. SQUARES, 0-99"'
  290FOR C=0TO9:  PRINT;TAB(6*C+6);C; : NEXT C
  300FOR R=0TO90STEP10
  310PRINT'';R;
  320FOR C=0TO9
  330PRINT;TAB(6*C+6);X(R+C);
  340NEXT C  :  NEXT R
  350PRINT''"PRESS ANY KEY";GET$ : MODE7
  360J=0 : S=0
  370INPUT'"ENTER RND NO. 2 - 178E6 ";X
  380Y=LN X:PRINT'"SEED = ";X"  "RND(-2E9*(Y-INT Y))
  390REPEAT
  400I=RND(N)  : J=J+1
  410REPEAT
  420FOR D=1TO2
  430PRINT'CHR$(141);J"  ENTER SQR ";X(I);:NEXT D
  440INPUT'"  0 QUIT  ";X"   ";:PRINT;X*X
  450IF X=0 THEN 510
  460ER=X-SQR X(I)
  470S=S+ER*ER
  480@%=&20308
  490PRINT" ERROR ";ER"  RMS = "SQR(S/J)
  500@%=8
  510UNTIL ABS(ER)<.75 OR X=0
  520UNTIL X=0
  530PRINT'"AVG ERROR (RMS) OF ";J-1" TESTS = ".001*INT(1000*SQR(S/(J-1)))
  540PRINT'"PROGRAM SQUARES  E N D.";:STOP
  550:
  560INPUT'"ENTER RND NO. 2 - 178E6  ";X
  570Y=LN X: PRINT"SEED = ";X"   "RND(-2E9*(Y-INT Y))
  580J=0
  581  S=0
  590REPEAT  X=N*RND(1)
  600X=INT(X*X+1)
  610 REPEAT J=J+1
  620FOR D=1TO2
  630PRINT'CHR$(141);J"  SQR ";X;:NEXT D
  640INPUT'"ENTER  ANS. , 0 END";Y
  650PRINT;Y"^2= "Y*Y" + difference  "X-Y*Y " = "X
  651
  652IF Y=0 THEN GOTO 680
  653ER=Y - SQR X
  654IF ABS(ER) >.65 THEN VDU7
  656S=S+ER*ER  :  
  657
  657@%=&20308
  658PRINT" ERROR ";ER"  RMS = "SQR(S/J)
  659@%=9
  660UNTIL ABS(ER) <=.75 OR Y=0
  680UNTIL Y=0
  690PRINT"PROGRAM  SQUARES   E N D.";:STOP
  700: