10 DEF FNz=-LOG(SQR(x*x+y*y)) 20 ed=10:sf=500:st=0.1:ax=60:az=70 30 e$=CHR$(27):cl$=e$+"E"+e$+"H":PRINT eS"f 40 PRINT cl$:DEFINT h-k:DIM h(720) 50 xc=360:yc=124:pi=3.14159:ax=ax*pi/180:az=az*pi/180 60 v1=-SIN(az)*2:v2=-COS(az)*COS(ax):v3=-C0S(az)*SIN(ax) 70 v4=COS(az):v5=-SIN(az)*COS(ax):v6=-SIN(az)*SIN(ax) 80 v7=SIN(ax):v8=-C0S(ax):POKE 441,0:GOSUB 270 90 FOR y=2 TO -2 STEP -st:flag=0 100 FOR x=2 TO -2 STEP -st:z=FNz 110 IF flag=0 THEN flag=1:GOSUB 250:GOTO 190 120 GOSUB 250 130 dy=sy-ty:dx=sx-tx:n=dy/dx:nx=SGN(dx):ny=SGN(dy) 140 IF ABS(n)>1 THEN n=1/n:GOTO 170 150 FOR tx=tx TO sx STEP nx:ty=ty+n*nx 160 GOSUB 200:NEXT:GOTO 190 170 FOR ty=ty TO sy STEP ny:tx=tx+n*ny 180 GOSUB 200:NEXT 190 tx=sx:ty=sy:NEXT x,y:PRINT e$"e":END 200 a%=INT(tx):b%=INT(ty) 210 IF a%<0 OR a%>719 OR b%<0 OR b%>247 THEN 240 220 IF b%VAL("&H"+x$) THEN e=e+1:PRINT "Error in Line";10*(f+40) 360 NEXT 370 IF e=0 THEN RETURN 380 PRINT e; "ERROR";:IF e=1 THEN PRINT ELSE PRINT "s" 390 STOP 400 DATA 0A,32,7C,C0,4E,23,46,21,250 410 DATA CF,02,A7,ED,42,D8,ED,43,4AF 420 DATA 78,C0,EB,5E,23,56,7A,A7,41B 430 DATA C0,93,3D,5F,ED,53,7A,C0,469 440 DATA F3,ED,73,7D,C0,31,9D,C0,51E 450 DATA 01,36,C0,CD,5A,FC,E9,00,403 460 DATA ED,7B,7D,C0,FB,C9,2A,7A,50D 470 DATA C0,29,11,00,B6,19,5E,23,24A 480 DATA 56,7B,E6,F8,CB,27,CB,12,47E 490 DATA 47,7B,E6,07,B0,5F,2A,78,360 500 DATA C0,45,7D,E6,F8,6F,EB,19,4D3 510 DATA 78,E6,07,3C,47,AF,37,1F,2ED 520 DATA 10,FD,47,3A,7C,C0,A7,20,391 530 DATA 05,78,2F,A6,77,C9,3D,78,347 540 DATA 20,03,B6,77,C9,AE,77,C9,407