1 REM Ins{nd av Guido Petz <1098> 1985-01-29 21.34.07 10 REM GUIDO PETZ 1984 20 A=PEEK(65054)+PEEK(65055)*256 : POKE 36639,A,SWAP%(A) : DIM C(79%) 30 DEFFN\%(I%,M%,K%)=CALL(35365%,I%)+CALL(35355%,M%)+CALL(35345%,K%) 40 DEFFNH%(R%,I%,K%,D)=(FN\%(I%,M%,K%)+CALL(36304%+R%+R%+R%,D) AND 0%)+PEEK(32828%)-1% 50 DEFFNM%(R%,I%,M%,K%)=(FN\%(I%,M%,K%)+CALL(36304%+R%+R%+R%,D) AND 0%)+PEEK(32828%)-1% 60 DEFFNK%(R%,I%,K%)=FNM%(R%,I%,M%,K%) 70 DEFFNL%(I%,K%)=FNM%(R%,I%,M%,K%) 80 DEFFNI%(R%,I%)=FNM%(R%,I%,M%,K%) 90 DEFFNR%(R%)=FNM%(R%,I%,M%,K%) 100 DEFFN[%(I%,D)=CALL(35365%,I%)+CALL(36352%,D) 110 DEFFNS%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(36331%) 120 DEFFND%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(36334%) 130 DEFFNP%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(36337%) 140 DEFFNQ%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(36340%) 150 B0=PEEK(65053)*256+PEEK(65052) : B=PEEK(36643)+PEEK(36644)*256 : I%=(B0-B)/26% 160 ; CHR$(12) : ; CUR(10,5)'HUR M]NGA BYTES I MANTISSAN:'CUR(11,14)'4<=N<='NUM$(I%)CUR(10,32); 170 ONERRORGOTO 160 : INPUT N2% : IF N2%<4% N2%=4% ELSE IF N2%>I% N2%=I% ELSE N1%=2.4*N2% : DIM B$=N1%+15% 180 ; CUR(14,5)'Vill du definiera f1-f3(j)'; : GET F$ : IF F$<>'j' 490 190 ONERRORGOTO 190 : F=1 : GOSUB 230 : FOR I=1 TO 8 : ; TAB(19); : INPUT B% : POKE 34424+2*I,B%,SWAP%(B%) : NEXT I 200 ONERRORGOTO 200 : F=2 : GOSUB 230 : FOR I=1 TO 8 : ; TAB(19); : INPUT B% : POKE 34495+2*I,B%,SWAP%(B%) : NEXT I 210 ONERRORGOTO 210 : F=3 : GOSUB 230 : FOR I=1 TO 8 : ; TAB(19); : INPUT B% : POKE 35915+2*I,B%,SWAP%(B%) : NEXT I 220 GOTO 490 230 ; CHR$(12)CUR(5,11)'ANGE b1-b8 F\R f'F':' : ; : RETURN 240 D%=1% : IF I%<8% I%=8% ELSE IF I%>F% I%=F% 250 IF F<>0% 270 : GET F$ : ; F$; : S%=ASC(F$) : IF (S%>57%)+(S%<43%)+(S%=44%)+(S%=47%) RETURN 260 R%=22% : S%=FNL%(11%,10%)+FNL%(10%,9%)+FNL%(9%,8%) : I%=8% : INPUTLINE B$ : B$=F$+LEFT$(B$,LEN(B$)-2) : GOTO 280 270 ONERRORGOTO 370 : INPUT B$ : D%=ASC(B$) : IF D%=0% 370 280 C%=0% : A%=2% : F$=MID$(B$,1%,1%) : G%=-(F$='-') : IF F$='+' OR F$=' ' OR G%=1% F$=MID$(B$,2%,1%) : A%=3% 290 IF F$='.' C%=1% : F$='0' 300 S%=FN[%(3%,10%)+FN[%(2%,VAL(F$)) : B%=0% : E%=0% 310 IF A%>LEN(B$) 350 ELSE F$=MID$(B$,A%,1%) : A%=A%+1% 320 IF F$='E' OR F$='e' 340 : IF F$='.' B%=0% : C%=1% : GOTO 310 330 S%=FN[%(4%,VAL(F$))+FNP%(2%,2%,3%)+FNS%(2%,2%,4%) : B%=B%+1% : GOTO 310 340 E%=VAL(RIGHT$(B$,A%)) 350 E%=E%-C%*B% : S%=FNH%(21%,4%,3%,ABS(E%)) : IF E%<0% S%=FNQ%(I%,2%,4%) ELSE S%=FNP%(I%,2%,4%) 360 IF G%=0% 370 ELSE S%=CALL(36376%) 370 ONERRORGOTO 0 : RETURN 380 A=A0+I%*(N%+3%) : IF PEEK(A-3%)<128% B$=' 0.'+STRING$(N1%,48%) : GOTO 480 390 E%=INT(.30103*(1-(2% AND PEEK(A)))*(PEEK(A-2%)+256*PEEK(A-1%)))-1% : S%=FN[%(2%,10%)+FNH%(21%,4%,2%,ABS(E%)) 400 IF E%>0% S%=FNQ%(3%,I%,4%) ELSE S%=FNP%(3%,I%,4%) 410 S%=FNI%(18%,2%)+FNH%(46%,2%,0%,8%*N%-1%)+FNI%(19%,2%)+FNP%(3%,3%,2%) : A=A0+3%*(N%+3%) 420 B$=NUM$((1%-2%*(PEEK(A) AND 1%))*2%^PEEK(A-2%)*PEEK(A-3%)/256%)+'.' : S%=CALL(36406)+FN[%(4%,10000%) 430 IF LEN(B$)=4% B$=LEFT$(B$,2%)+'.'+MID$(B$,3%,1%) : E%=E%+1% 440 FOR B%=1% TO (5%+N1%-LEN(B$))/4% 450 S%=FNP%(3%,3%,4%) AND 0% : IF (2% AND PEEK(A))=0% S%=(64%*PEEK(A-3%)+PEEK(A-4%)/4%)/2%^(14%-PEEK(A-2%)) 460 F$='000'+RIGHT$(NUM$(S%),2%) : B$=B$+RIGHT$(F$,LEN(F$)-3%) : S%=CALL(36406) : NEXT B% 470 B$=LEFT$(B$,N1%+2%)+'E'+NUM$(E%) 480 ONERRORGOTO 0 : RETURN 490 F=1 : N%=N2% : N1%=N2%*2.4 : GOSUB 1010 : \%=10%*LOG(N%) : ; CHR$(12)TAB(14)'CALCULUS' 500 ; : ; 'Funktionen definieras p} rad 1340 med' : ; 'hj{lp av FN(.)-satser som R9=F(R8)' 510 ; 'Konstanter laddas p} raderna 1050-1059' : ; TAB(6)N1%' Siffror i mantissan!' 520 ; 'Registren 21 -'F%' {r disponibla!' : ; TAB(15)'Meny 'CUR(16,12)'4 INTEGRAL' 530 ; CUR(12,12)'2 EVALUERING'CUR(14,12)'3 NOLLST[LLEN'CUR(10,12)'1 SLUTA'CUR(18,12)'5 PLOTTNING' 540 ; CUR(20,12)'6 KALKYLATOR'CUR(22,12); : GET F$ : ON INSTR(1%,'123456',F$)+1% GOTO 540,550,560,600,770,910,1090 550 ; CHR$(12) : END 560 ; CHR$(12) : ; TAB(15)'EVALUERING' 570 GOSUB 1070 : IF D%=0% 490 ELSE GOSUB 1080 580 S%=FNK%(22%,8%,11%) : GOSUB 1340 : I%=9% : GOSUB 380 : ; B$ : S%=FNS%(11%,11%,19%) : S%=FNK%(7%,11%,10%) 590 IF S%<=0% 580 ELSE 570 600 I%=16% : B$='1E-'+NUM$(N1%) : GOSUB 280 : ; CHR$(12)TAB(15)'NOLLST[LLEN' 610 GOSUB 1070 : IF D%=0% 490 ELSE GOSUB 1080 620 S%=FNK%(22%,8%,11%) : GOSUB 1340 : S%=FNK%(22%,14%,9%) 630 S%=FNK%(22%,18%,11%)+FNS%(11%,11%,19%) : S%=FNK%(7%,10%,11%) : IF S%=-1% 610 640 S%=FNK%(22%,8%,11%) : GOSUB 1340 : S%=FNK%(22%,8%,14%)+FNK%(22%,13%,14%)+FNK%(22%,14%,9%) 650 S%=FNP%(8%,8%,9%) : S%=FNI%(3%,8%) : IF S%>=0% 630 660 S%=FNK%(22%,17%,11%)+FND%(20%,13%,14%)+FNI%(40%,20%)+FNI%(28%,20%) 670 S%=FND%(8%,17%,18%)+FND%(9%,14%,13%)+FNQ%(12%,8%,9%)+FNI%(24%,12%)+FNP%(12%,12%,14%) 680 S%=FNS%(12%,12%,17%)+FNK%(22%,8%,12%) : GOSUB 1340 690 S%=FNK%(22%,15%,9%)+FNP%(8%,14%,15%) : S%=FNI%(3%,8%) 700 IF S% S%=FNK%(22%,18%,17%)+FNK%(22%,13%,14%) ELSE S%=FNI%(42%,13%) 710 S%=FND%(8%,15%,14%)+FNI%(28%,8%) : S%=FNK%(7%,8%,20%) : IF S%>=0% 620 720 S%=FNK%(22%,17%,12%)+FNK%(22%,14%,15%)+FND%(8%,17%,18%)+FNI%(28%,8%) 730 S%=FNK%(7%,8%,16%) : A%=FNI%(3%,14%) : IF R1%>\% 740 ELSE IF S%>0% IF A%<>0% 670 740 I%=17% : GOSUB 380 : ; B$ 750 I%=14% : GOSUB 380 : B$=LEFT$(B$,5%)+RIGHT$(B$,N1%+3%) : ; TAB(2)B$ 760 S%=FN[%(11%,18%)+FNQ%(11%,19%,11%)+FNS%(11%,17%,11%) : GOTO 620 770 ; CHR$(12)TAB(15)'INTEGRAL' 780 S%=FN[%(18%,3%)+FNI%(48%,18%)+FNI%(36%,18%)+FN[%(20%,15%) 790 S%=FNI%(17%,19%) : GOSUB 1070 : IF D%=0% 490 800 ONERRORGOTO 800 : ; 'Antal dubbleringar av delintervallen:'; : INPUT R1% : \%=2% : IF R1%<1% R1%=1% 810 FOR M%=0% TO R1% 820 \%=\%*2% : S%=FN[%(14%,\%)+FNI%(40%,14%)+FND%(13%,10%,11%)+FNQ%(13%,13%,14%) 830 S%=FND%(14%,11%,13%)+FNP%(15%,13%,18%)+FNI%(17%,17%)+FNK%(39%,19%,13%) 840 FOR K%=1% TO \% 850 S%=FNS%(14%,14%,19%)+FND%(8%,14%,15%) : GOSUB 1340 : S%=FNS%(17%,17%,9%)+FNS%(8%,14%,15%) : GOSUB 1340 860 S%=FNS%(17%,17%,9%) : NEXT K% : S%=FNP%(17%,17%,13%) 870 S%=FND%(19%,17%,16%)+FNQ%(19%,19%,20%)+FNS%(19%,19%,17%)+FNK%(22%,16%,17%) 880 IF M%=0% 890 : ; \%TAB(4)':'; : I%=19% : GOSUB 380 : ; B$ 890 NEXT M% 900 ; 'En g}ng till(j)?'; : GET F$ : ; F$ : IF F$<>'j' 790 ELSE 820 910 F=-1% : N%=4% : N1%=9% : GOSUB 1010 : ; CHR$(12)TAB(15)'PLOTTNING' : GOSUB 1070 : IF D%=0% 490 ELSE A3=VAL(B$) 920 S%=FN[%(20%,78%)+FND%(19%,10%,11%)+FNQ%(19%,19%,20%) 930 ; CHR$(12)CUR(10,9)'DET TAR N]GON MINUT!' : B1=0 : B2=0 : I%=9% : S%=FND%(11%,11%,19%) : FOR K%=2% TO 79% 940 S%=FNS%(11%,11%,19%)+FNK%(22%,8%,11%) : GOSUB 1340 : GOSUB 380 : F1=VAL(B$) : C(K%)=F1 950 B1=B1+F1 : B2=B2+F1*F1 : NEXT K% : T1=200/SQR(ABS(B2-B1*B1/78)) : ; CHR$(12) 960 FOR I%=0% TO 22% : ; CUR(I%,0%)CHR$(151) : NEXT I% : FOR I%=2% TO 79% : SETDOT 36%,I% : NEXT I% 970 FOR I%=2% TO 79% : A1=T1*C(I%) : IF ABS(A1)<=35% SETDOT 36%-A1,I% 980 NEXT I% 990 ONERRORGOTO 910 : ; CUR(23,0)A2;CUR(23,6)INT(100*T1)/100" SKALNINGSFAKTOR";CUR(23,35)A3;CUR(23,28); 1000 INPUT T1 : ; CHR$(12) : GOTO 960 1010 A0=B+N% : F%=(B0-A0-1)/(N%+3%) : POKE 36538,A0,SWAP%(A0) : POKE 34443,F%,SWAP%(F%) : POKE 36523,N%,SWAP%(N%) 1020 H%=F%-1% : IF F=-1% 1030 ELSE ; CHR$(12)CUR(10,10)'Ber{kna PI,LN2 (j)'; : GET F$ : ; F$ : IF F$<>'j' 1050 1030 S%=CALL(35365,7)+CALL(32838)+CALL(34845)+CALL(35710)+CALL(35362)+CALL(33619,6)+CALL(35131)+CALL(35365,7) 1040 S%=CALL(35352)+CALL(33669)+CALL(35365,6)+CALL(32838)+CALL(34845)+CALL(36070)+CALL(32832) 1050 REM 1060 RETURN 1070 I%=11% : ; 'a='; : GOSUB 240 : IF D%=0% RETURN ELSE A2=VAL(B$) : I%=10% : ; 'b='; : GOSUB 240 : RETURN 1080 I%=19% : ; 'h='; : GOSUB 240 : RETURN 1090 IF N1%>=36% W%=0% ELSE W%=(36%-N1%)/2%-2% 1100 F=0 : ; CHR$(12)TAB(13)'RPN-KALKYLATOR!' 1110 ; TAB(2)'Nogrannheten {r ungef{r 'N1%' siffsor!' : ; TAB(12)'Register 8 -'F%-2% : ; TAB(12)'STORA BOKST[VER!!' 1120 ; "Q+:W-:R*:T/:Ychs:Usgn:Iabs:Oint:Pfrac"6 : ; ']inv:^x*x:Asqr:Sexp:Dln:Frutin:Gsin' 1130 ; "Hasin:Jcos:Kacos:Ltan:\atn:[min:'lastx" : ; 'Zx**n:Xrdn:Clog:Vrcl:Bsto:Nx**y:Mr*2' 1140 ; ",r/2:' 'ent:0% 1330 1260 R1%=-(F$='\')*60%-(F$='C')*64%-(F$='M')*40%-(F$=',')*42% : IF R1%<>0% 1330 ELSE 1150 1270 ONERRORGOTO 1270 : ; CUR(9,0)SPACE$(42)CUR(9,15)'RCL:'; : INPUT G% : R%=22% : S%=FNL%(11%,10%)+FNL%(10%,9%) 1280 S%=FNL%(9%,8%)+FNL%(8%,G%) : GOTO 1150 1290 ONERRORGOTO 1290 : ; CUR(9,16)'N='; : INPUT D : S%=FNK%(22%,F%,8%)+FNK%(21%,8%,8%) : GOTO 1150 1300 ONERRORGOTO 1300 : ; CUR(9,0)'R='; : INPUT R% : ; CUR(9,8)'I='; : INPUT I% : ; CUR(9,16)'K='; : INPUT K% 1310 ; CUR(9,24)'M='; : INPUT M% : ; CUR(9,32)'D='; : INPUT D : S%=FNK%(22%,F%,8%)+FNM%(R%,I%,M%,K%) : GOTO 1150 1320 ONERRORGOTO 1320 : ; CUR(9,15)'STO:'; : INPUT I% : S%=FNK%(22%,I%,8%) : GOTO 1150 1330 S%=FNK%(22%,F%,8%)+FNM%(R1%,8%,9%,K%) : GOTO 1150 1340 S%=FNK%(51%,9%,8%)+FNK%(35%,21%,9%)+FNP%(9%,9%,8%)+FND%(9%,9%,21%) : RETURN