1 REM ++++++++++++++++++++++++++++++++ 2 REM ! Program .... R[KNARE 3 REM ! Utg}va 2.0 83-09-17 4 REM ! av (c) Guido Petz 5 REM ! {ndrat av Stig Rosengren 7 REM ! Minne 16 Kbytes 8 REM ! Ins{nt av 2415 9 REM ++++++++++++++++++++++++++++++++ 10 REM 11 REM Screened by C R LERIN. 12 REM 20 IF PEEK(49152%)=42% AND PEEK(52040%)=177% AND PEEK(53010%)=201% \%=49152% 30 IF PEEK(32768%)=42% AND PEEK(35656%)=177% AND PEEK(36626%)=201% \%=32768% ELSE IF \%<>49152% STOP 40 DEFFN\%(I%,M%,K%)=CALL(\%+2597%,I%)+CALL(\%+2587%,M%)+CALL(\%+2577%,K%) 50 DEFFNU%(R%,I%,K%,U%)=FN\%(I%,M%,K%)+CALL(\%+3536%+R%+R%+R%,U%) 60 DEFFNM%(R%,I%,M%,K%)=FN\%(I%,M%,K%)+CALL(\%+3536%+R%+R%+R%,U%) 70 DEFFNL%(I%,K%)=FNM%(22%,I%,0%,K%) 80 DEFFNI%(R%,I%)=FNM%(R%,I%,M%,K%) 90 DEFFN[%(I%,U%)=CALL(\%+2597%,I%)+CALL(\%+3584%,U%) 100 DEFFNP%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(\%+3569%) 110 DEFFNQ%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(\%+3572%) 120 N%=PEEK(\%+3755%)+256%*PEEK(\%+3756%) : IF N%=0% A0%=3867%+\% : GOTO 140 130 A0%=PEEK(\%+3770%)+256%*PEEK(\%+3771%) : ; "Ny precision?" : GET F$ : IF F$<>"J" 150 140 F$="J" : ; "N"; : INPUT I% : POKE \%+3755%,I%,SWAP%(I%) : A0%=A0%-N%+I% : N%=I% : POKE \%+3770%,A0%,SWAP%(A0%) 150 F%=(PEEK(65052%)+256%*PEEK(65053%)-A0%-1%)/(N%+3%) : H%=F%-1% : IF F%<13% OR N%<4% 140 ELSE IF F$<>"J" 170 160 S%=FNI%(18%,6%)+FNI%(42%,6%)+FNL%(7%,6%)+FNI%(62%,6%)+FNI%(24%,6%)+FNI%(56%,7%)+FN[%(5%,6%)+FNP%(7%,7%,5%) 170 N1%=2.4*N% : POKE \%+1675%,F%,SWAP%(F%) : DIM B$=N1%+15% : GOTO 420 180 GET F$ : ; F$; : S%=ASC(F$) : IF S%>57% OR S%<43% OR S%=44% OR S%=47% RETURN 190 GOSUB 700 : INPUTLINE B$ : B$=F$+LEFT$(B$,LEN(B$)-2%) 200 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% 210 IF F$='.' C%=1% : F$='0' 220 ONERRORGOTO 300 : S%=FN[%(3%,10%)+FN[%(2%,VAL(F$)) : B%=0% : E%=0% 230 IF A%>LEN(B$) 280 ELSE F$=MID$(B$,A%,1%) : A%=A%+1% 240 IF F$='E' OR F$='e' 270 250 IF F$='.' B%=0% : C%=1% : GOTO 230 260 S%=FN[%(4%,VAL(F$))+FNP%(2%,2%,3%)+FNM%(9%,2%,2%,4%) : B%=B%+1% : GOTO 230 270 E%=VAL(RIGHT$(B$,A%)) 280 E%=E%-C%*B% : S%=FNU%(21%,4%,3%,ABS(E%)) : IF E%<0% S%=FNQ%(8%,2%,4%) ELSE S%=FNP%(8%,2%,4%) 290 IF G% S%=CALL(\%+3608%) 300 ONERRORGOTO 0 : RETURN 310 A%=A0%+8%*N%+24% : IF PEEK(A%-3%)<128% ; CHR$(7%)'0.'+STRING$(N1%,48%) ELSE 320 : RETURN 320 E%=INT(.30103*(1-(2% AND PEEK(A%)))*(PEEK(A%-2%)+256*PEEK(A%-1%)))-1% : S%=FN[%(2%,10%)+FNU%(21%,4%,2%,ABS(E%)) 330 IF E%>0% S%=FNQ%(3%,8%,4%) ELSE S%=FNP%(3%,8%,4%) 340 S%=FNI%(18%,2%)+FNU%(46%,2%,0%,8%*N%-1%)+FNI%(19%,2%)+FNP%(3%,3%,2%) : A%=A0%+3%*N%+9% 350 B$=NUM$((1%-2%*(PEEK(A%) AND 1%))*2%^PEEK(A%-2%)*PEEK(A%-3%)/256%)+"." : S%=CALL(\%+3638%)+FN[%(4%,10000%) 360 IF LEN(B$)=4% B$=LEFT$(B$,2%)+"."+MID$(B$,3%,1%) : E%=E%+1% 370 FOR B%=1% TO (5%+N1%-LEN(B$))/4% 380 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%)) 390 F$="000"+RIGHT$(NUM$(S%),2%) : B$=B$+RIGHT$(F$,LEN(F$)-3%) : S%=CALL(\%+3638%) : NEXT B% 400 B$=LEFT$(B$,N1%+2%)+"E"+NUM$(E%) 410 ONERRORGOTO 0 : ; CHR$(7%)B$ : RETURN 420 IF N1%>=36% W%=0% ELSE W%=(36%-N1%)/2%-1% 430 ; CHR$(12%)TAB(13%)'RPN-KALKYLATOR!' 440 ; TAB(3%)'Nogrannheten {r ungef{r'N1%' siffror!' : ; TAB(12%)'Register 12 -'F%-2% : ; TAB(12%)'STORA BOKST[VER!' 450 ; "Q+:W-:R*:T/:Ychs:Usgn:Iabs:Oint:Pfrac" 460 ; ']inv:^x*x:Asqr:Sexp:Dln:Frutin:Gsin' 470 ; "Hasin:Jcos:Kacos:Ltan:\atn:[min:'lastx" 480 ; 'Znormalf:Xrdn:Clog:Vrcl:Bsto:Ny**x:Mx*2' 490 ; ",x/2:' 'ent:F% 670 680 S%=FNL%(I%,8%) : GOTO 500 690 S%=FNL%(F%,8%)+FNI%(R1%,8%) : GOTO 500 700 S%=FNL%(11%,10%)+FNL%(10%,9%)+FNL%(9%,8%) : RETURN