Mark Wickens

5 ONERRORGOTO500
10 MODE8:DIM:c$=CHR$(5)
20 CLS:PRINT"In(x)         (0≤n≤9,0≤x≤10)";
30 LOCATE0,1:PRINTc$;"n?   :x?      :I=";
40 LOCATE2,1:INPUT@3;n$:LOCATE0,0:n=VALF(LEFT$(n$,3)):u=ABSn:IFn<0 ORu>=10 ORFRACu<>0 THEN400
60 LOCATE8,1:INPUT@6;x$:LOCATE0,0:x=VALF(LEFT$(x$,6)):v=ABSx:IFx<0 ORv>10 THEN410
80 LOCATE17,1:PRINT" .....";:GOSUB200
100 IFx<0 THENr=r*(-1)^u
110 IFr<>0 ANDABSr>=1e-90 THENr=ROUND(r,LOG(ABSr)-7)
115 IFr<>0 ANDABSr<1e-90 THENr=r*1e10:r=ROUND(r,LOG(ABSr)-7):r=r/1e10
120 LOCATE18,1:PRINT"     ";:LOCATE17,1:PRINTr;:z$=INPUT$(1,@):GOTO30
200 IFv+u=0 THENr=1:RETURN
210 IFv=0 THENr=0:RETURN
220 k=30+(ABS(u-v)+ABS(u+v))/2
230 IFv<2 THENk=k-20
240 c=0:b=1E-99:s=0
250 FORk=INT(k-1) TO0 STEP-1
260 a=2*(k+1)*b/v+c
270 IFk=u THENd=a
280 s=s+a:c=b:b=a
290 NEXT
300 s=2*s-a:r=d/s*EXP(v)
310 RETURN
400 LOCATE2,1:PRINT"   ";:GOTO40
410 LOCATE8,1:PRINT"      ";:GOTO60
500 IFERR=1 THENCLS:ONERRORGOTO0
510 IFERL=40 THENRESUME400
520 IFERL=60 THENRESUME410
530 LOCATE17,1:PRINT"not found";:z$=INPUT$(1,@):RESUME20