5 REM*** WISSENSCHAFTLICH TASCHENRECHNER MIT SPEICHER ***
10 INPUT "WOLLEN SIE INSTRUKTIONEN ";INST$:PRINT
20 IF LEFT$(INST$,1) = "J" THEN GOSUB 600
30 DIM MEM(9): REM** RESERVIERT 10 SPEICHERSTELLEN **
35 REM** DRUCKT INHALT DER VIER RECHENREGISTER **
40 PRINT " X =";X;" Y =";Y;" Z =";Z;" T =";T
50 INPUT TAST$:REM** EINGABE DES BEFEHLS ODER DER ZAHL**

   REM** AB HIER DIE EINGABE DEKODIERT **
60 IF TAST$ = "+" THEN X=X+Y:Y=Z:Z=T:T=0:GOTO 40
70 IF TAST$ = "-" THEN X=X-Y:Y=Z:Z=T:T=0:GOTO 40
80 IF TAST$ = "*" THEN X=X*Y:Y=Z:Z=T:T=0:GOTO 40
90 IF TAST$ <> "/" THEN 110
100 IF X=0 THEN PRINT "*** TEILEN DURCH NULL NICHT ERLAUBT ***":

    GOTO 40 ELSE X=Y/X:Y=Z:Z=T:T=0:GOTO 40
110 IF TAST$ <> "^" THEN 130
120 IF Y<= 0 THEN PRINT"*** UNERLAUBTE RECHENOPERATION ***":

    PRINT "Y IST < ODER = 0":GOTO 40 ELSE X=Y^X:Y=Z:Z=T:T=0:GOTO 40
130 IF TAST$ ="%" THEN X=Y/100*X:GOTO 40
140 IF TAST$ ="XY"THEN STACK=X:X=Y:Y=STACK:GOTO 40
150 IF TAST$ =">" THEN STACK=T:T=Z:Z=Y:Y=X:X=STACK:GOTO 40
160 IF TAST$ ="<" THEN STACK=X:X=Y:Y=Z:Z=T:T=STACK:GOTO 40
170 IF TAST$ <> "1/X" THEN 190
180 IF X=0 THEN GOTO 40 ELSE LET X=1/X:GOTO 40
190 IF TAST$ ="W" THEN X=SQR(ABS(X)):GOTO 40

    REM **WURZEL AUS NEGATIVER ZAHL NICHT DEFINIERT**
200 IF TAST$ ="Q" THEN X=X*X:GOTO 40
210 IF TAST$ ="EX" THEN X=2.718281828#^X:GOTO 40
215 RAD=57.29577951310004#
220 IF TAST$ ="SIN" THEN X=SIN(X/RAD):GOTO 40
230 IF TAST$ ="COS" THEN X=COS(X/RAD):GOTO 40
240 IF TAST$ ="TAN" THEN X=TAN(X/RAD):GOTO 40
250 IF TAST$ =<> "ASN" THEN 270
260 IF X<-1 OR X>1 THEN PRINT "** ARCSIN NUR VON -1 BIS +1 DEFINIERT **:

    GOTO 40 ELSE X=ATN(X/(SQR(1-X*X)))*RAD:GOTO 40
270 IF TAST$ <> "ACS" THEN 290
280 IF X <-1 OR X> 1 THEN PRINT "** ARCCOS NUR VON -1 BIS +1 DEFINIERT **":

    GOTO 40 ELSE X=(1.570790327#-ATN(X/(SQR(1-X*X))))*RAD:GOTO 40
290 IF TAST$ ="ATN" THEN X=ATN(X)*RAD:GOTO 40
300 IF TAST$ <>"LN" THEN 320
310 IF  X<= 0 THEN PRINT "** UNERLAUBTE RECHENOPERATION **":

    PRINT "X IST < ODER = 0":GOTO 40 ELSE X=LOG(X):GOTO 40
320 IF TAST$ <> "LOG" THEN 340
330 IF X<=0 THEN GOTO 310 ELSE X=LOG(X)/LOG(10):GOTO 40
340 IF TAST$ ="INT" THEN X=INT(X):GOTO 40
350 IF TAST$ ="ABS" THEN X=ABS(X):GOTO 40
360 IF TAST$ <> "MOD" THEN 390
370 IF Y-X>=0 AND X>0 THEN Y=Y-X:GOTO 370
380 X=Y:Y=0:GOTO 40
390 IF TAST$ ="PI" THEN T=Z:Z=Y:Y=X:X=3.141592654000003#:GOTO 40
400 IF TAST$ <> "N!"THEN 440:REM** SONDERFALL 0!=1
410 IF X=0 THEN X=1:GOTO 40
420 B=1
430 FOR N=1 TO X:B=B*N:NEXT N:X=B:GOTO 40
440 IF TAST$ ="S+" THEN S0=S0+X:S1=S1+1:S2=S2+X*X:GOTO 40
450 IF TAST$ ="S-" THEN S0=S0-X:S1=S1-1:S2=S2-X*X:GOTO 40
460 IF TAST$ ="MIT" THEN X=S0/S1:GOTO 40
470 IF TAST$ ="ABW" THEN X=SQR((S2-S0*S0/S1)/(S1-1)):GOTO 40
480 IF TAST$ ="+-"  THEN X=X*(-1):GOTO 40
490 IF TAST$ ="C" THEN X=0:GOTO 40
500 IF TAST$ <>"CM" THEN 520
510 FOR N=0 TO 9:MEM(N)=0:NEXT N:S0=0:S1=0:S2=0:GOTO 40
520 IF LEFT$(TAST$,1) <>"M" THEN 550
530 B=VAL(RIGHT$(TAST$,1))
540 IF B>=0 AND B<10 THEN MEM(B)=X:GOTO 40:

    REM** NUR SPEICHER 0 BIS 9 ERLAUBT **
550 IF LEFT$(TAST$,1)<> "R" THEN 580
560 B=VAL(RIGHT$(TAST$,1))
570 IF B>0 AND B<10 THEN T=Z:Z=Y:Y=X:X=MEM(B):GOTO 40
580 IF TAST$ ="?" THEN GOSUB 640:GOTO 40
590 T=Z:Z=Y:Y=X:X=VAL(TAST$):GOTO 40:REM** EINGABE EINER ZAHL **
600 PRINT:PRINT "WISSENSCHAFTLICHER RECHNER MIT SPEICHER"
610 PRINT "Der Rechner arbeitet mit umgekehrter polnischer Notation"
620 PRINT "Also erst Eingabe einer Zahl, dann der Operation"
630 PRINT "FOLGENDE FUNKTIONEN SIND PROGRAMMIERT:":PRINT
640 PRINT "+    INHALT DES Y-REGISTERS WIRD ZUM X-REGISTER ADDIERT"
650 PRINT "-    INHALT VOM X-REGISTER WIRD VOM Y-REGISTER SUBTRAHIERT"
660 PRINT "*    X MAL Y (ERGEBNIS IM X-REGISTER)"
670 PRINT "/    Y GETEILT DURCH X (ERGEBNIS IM X-REGISTER)"
680 PRINT "^    X = Y HOCH X"
690 PRINT "%    X = X % VON Y"
700 PRINT "XY   INHALT VON X- UND Y-REGISTER WERDEN VERTAUSCHT"
710 PRINT ">    RECHTS SCHIEBEN (X IN Y, Y IN Z, Z IN T, T IN X)"
720 PRINT "<    LINKS SCHIEBEN (Y IN X, Z IN Y, T IN Z, X IN T)"
730 PRINT "1/X  X=1 GETEILT DURCH X"
740 PRINT "W    X= WURZEL AUS X"
750 PRINT "Q    X = X ZUM QUADRAT"
760 PRINT "EX   X = ZAHL E (2.718281828) HOCH X"
770 PRINT "SIN  X = SINUS VON X (ANGABE IN ALTGRAD)"
780 PRINT "COS  X = COSINUS VON X"
790 INPUT "DRUECKEN SIE 'CR' FUER WEITER";DUMMY$
800 PRINT "TAN  X = TANGENS VON X"
810 PRINT "ASN  X = ARCUSSINUS VON X"
820 PRINT "ACS  X = ARCUSCOSINUS VON X"
830 PRINT "ATN  X = ARCUSTANGENS VON X"
840 PRINT "LOG  X = DEKADISCHER LOGARITHMUS VON X"
850 PRINT "LN   X = NATUERLICHER LOGARITHMUS VON X"
860 PRINT "INT  X = GANZAHLIGER ANTEIL VON X (2.75 -> 2)"
870 PRINT "ABS  X = ABSOLUTWERT VON X (-2.66 -> 2.66)"
880 PRINT "MOD  VOM Y-REGISTER WIRD X SO OFT WIE MOEGLICH ABGEZOGEN UND"
890 PRINT "     INS X-REGISTER GESCHOBEN"
900 PRINT "PI   ZAHL PI (3.141592654) WIRD INS X-REGISTER AUFGENOMMEN"
910 PRINT "N!   X = 1*2*3*.......*K"
920 PRINT "S+   SUMMIERT ZAHLEN ZUR MITTELWERTBERECHNUNG"
930 PRINT "S-   Erlaubt falsch eingegebene Zahl zu entfernen"
940 PRINT "MIT  Berechnet Mittelwert der eingegebenen Zahlen"
950 INPUT "DRUECKEN SIE 'CR' FUER WEITER";DUMMY$
960 PRINT "ABW  BERECHNET DIE STANDARDABWEICHUNG"
970 PRINT "+-   WECHSELT DAS VORZEICHEN DER ZAHL IM X-REGISTER"
980 PRINT "C    SETZT X-REGISTER AUF NULL"
990 PRINT "CM   SETZT ALLE REGISTER AUF NULL"
1000 PRINT "MR   SCHIEBT X-REGISTER IN SPEICHER R (R = 0 BIS 9)"
1010 PRINT "RR   HOLT SPEICER R IN X-REGISTER (R = 0 BIS 9)"
1020 PRINT:RETURN
1030 END
ISTER IN SPEICHER R (R = 0 BIS 9)"
1010 PRINT "RR   HOLT SPEICER R IN X-REGISTER (R 