10 REM *************************** 20 REM * V[RD.BAC * 30 REM * VER 1.0 / 1982-09-08 * 40 REM * Gjort o. ins{nt av 2415 * 50 REM * Stig Rosenlund * 60 REM * V{stmannagatan 93 * 70 REM * 113 43 Stockholm * 80 REM * Tel. 08/331736 * 90 REM *************************** 100 REM 110 REM -----Inledning----- 120 REM FN\% s{tter pekare f|r de vari- abler som ber|rs av en operation. 130 DEFFN\%(I%,M%,K%)=CALL(35365%,I%)+CALL(35355%,M%)+CALL(35345%,K%) 140 DEFFNU%(R%,I%,K%,U)=(FN\%(I%,M%,K%)+CALL(36304%+R%+R%+R%,U) AND 0%)+PEEK(32828%)-1% 150 DEFFNM%(R%,I%,M%,K%)=(FN\%(I%,M%,K%)+CALL(36304%+R%+R%+R%,U) AND O%)+PEEK(32828%)-1% 160 DEFFNK%(R%,I%,K%)=FNM%(R%,I%,M%,K%) 170 DEFFNI%(R%,I%)=FNM%(R%,I%,M%,K%) 180 DEFFNR%(R%)=FNM%(R%,I%,M%,K%) 190 DEFFN[%(I%,U)=CALL(35365%,I%)+CALL(36352%,U) 200 DEFFNS%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(36331%) 210 DEFFND%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(36334%) 220 DEFFNP%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(36337%) 230 DEFFNQ%(I%,M%,K%)=FN\%(I%,M%,K%)+CALL(36340%) 240 REM 250 IF PEEK(32768%)<>42% OR PEEK(35656%)<>177% OR PEEK(36626%)<>201% STOP 260 N=PEEK(36523%)+256*PEEK(36524%) : A0=PEEK(36538%)+256*PEEK(36539%) 270 K%=M%=2% : F%=PEEK(34443%)+256%*PEEK(34444%) : DIM B$=2.4*N+15% 280 ; "Ber{kning, Inmatning eller Utmatning av Ri (B/I/U)? " : GET F$ : IF F$="B" OR F$="b" 580 290 IF F$="U" OR F$="u" 440 : IF F$<>"I" AND F$<>"i" 280 300 REM -----Inmatning----- 310 ; "Ge R(I%) p} decimal form." 320 ; "I%"; : INPUT I% : ; "R(I%)"; : INPUT B$ : GOSUB 330 : GOTO 320 330 IF I%<8% OR I%>F% ; "Fel I%!" : RETURN 340 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% 350 IF F$="." C%=1% : F$="0" 360 S%=FN[%(3%,10%)+FN[%(2%,VAL(F$)) : B%=0% : E%=0% 370 IF A%>LEN(B$) 410 : F$=MID$(B$,A%,1%) : A%=A%+1% 380 IF F$="E" OR F$="e" 400 : IF F$="." B%=0% : C%=1% : GOTO 370 390 S%=FN[%(4%,VAL(F$))+FNP%(2%,2%,3%)+FNS%(2%,2%,4%) : B%=B%+1% : GOTO 370 400 E%=VAL(RIGHT$(B$,A%)) 410 E%=E%-C%*B% : S%=FNU%(21%,4%,3%,ABS(E%)) : IF E%<0% S%=FNQ%(I%,2%,4%) ELSE S%=FNP%(I%,2%,4%) 420 IF G%=0% RETURN ELSE S%=CALL(36376%) : RETURN 430 REM -----Utmatning----- 440 ; "I%"; : INPUT I% : GOSUB 450 : ; B$ : GOTO 440 450 A=A0+I%*(N+3%) : IF PEEK(A-3%)<128% B$=" 0" : RETURN 460 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%)) 470 IF E%>0% S%=FNQ%(3%,I%,4%) ELSE S%=FNP%(3%,I%,4%) 480 S%=FNI%(18%,2%)+FNU%(46%,2%,0%,8%*N-1%)+FNI%(19%,2%)+FNP%(3%,3%,2%) : A=A0+3%*(N+3%) 490 B$=NUM$((1%-2%*(PEEK(A) AND 1%))*2%^PEEK(A-2%)*PEEK(A-3%)/256%)+"." : S%=CALL(36406%)+FN[%(4%,10000%) 500 IF LEN(B$)=4% B$=LEFT$(B$,2%)+"."+MID$(B$,3%,1%) : E%=E%+1% 510 FOR B%=1% TO (5%+2.4*N-LEN(B$))/4% 520 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%)) 530 F$="000"+RIGHT$(NUM$(S%),2%) : B$=B$+RIGHT$(F$,LEN(F$)-3%) : S%=CALL(36406%) : NEXT B% 540 B$=LEFT$(B$,2.4*N+2%)+"E"+NUM$(E%) : RETURN 550 REM -----Ber{kning----- 560 IF R%<1% OR R%>72% OR K%<2% OR K%>F% OR M%<2% OR M%>F% OR I%<8% OR I%>F% OR U<0% OR U>65535 ; "Fel!" : STOP 570 S%=FNR%(R%) : RETURN 580 ; "R%"; : INPUT R% : ; "I%"; : INPUT I% : ; "M%"; : INPUT M% : ; "K%"; 590 INPUT K% : ; "U"; : INPUT U : GOSUB 560 : GOSUB 450 : ; "R(I%) ="+B$ : GOTO 580