8 ! NYPREC.800 9 NO EXTEND : INTEGER 10 IF PEEK(32768)<>42 OR PEEK(35656)<>177 OR PEEK(36626)<>201 OR PEEK(65293)<144 GOTO 65000 20 ; "Assemblerrutinerna {r redan inmatade. Best{m precision och egen maskinspr}ks- area p} nytt med detta program." 30 ; "Hur m}nga byte eget maskinspr}ksprogram vill Du h|gst mata in"; : INPUT I. 40 ; "F|r rutinerna 13 och 51 t o m 64 m}ste vi ha R6=log2 och R7=PI. Skall dessa konstanter ber{knas?" : GET F$ 50 ON ERROR GOTO 50 : ; "Vilken precision N (decimal precision 2.4N)"; : INPUT N. : A0.=36635.+I.+N. : IF N.<4 GOTO 50 60 IF F$="N" OR F$="n" F$="N" : GOTO 80 70 IF A0.+7*(N.+3)>=PEEK(65292)+256.*PEEK(65293) ; "R7 g}r in p} BASIC-programmet. K|r pro- grammet igen." : STOP 80 ON ERROR GOTO 80 : POKE 36523,N.,SWAP%(N.) : POKE 36538,A0.,SWAP%(A0.) : ; "Var ska BASIC-programmen b|rja"; 90 INPUT B0. : B0.=FIX(B0.) : F=FIX((B0.-A0.-1)/(N.+3)) : POKE 34443,F,SWAP%(F) : IF F<6 OR B0.>62000. THEN 50 100?IF F$="N" 130 ELSE IF F<8 50 110 K=CALL(35365,7)+CALL(32838)+CALL(34845)+CALL(35710)+CALL(35362)+CALL(33619,6)+CALL(35131) 120 K=CALL(35365,7)+CALL(35352)+CALL(33669)+CALL(35365,6)+CALL(32838)+CALL(34845)+CALL(36070)+CALL(32832) 130 ; "Vill Du p} nytt definiera f1 - f3 (b1 - b8 icke-negativa heltal)?" : GET A$ : IF A$<>"J" AND A$<>"j" 180 140 ON ERROR GOTO 140 : ; "Ge b1 - b8 f|r f1:" : FOR I=1 TO 8 : INPUT B : POKE 34424+2*I,B,SWAP%(B) : NEXT I 150 ON ERROR GOTO 150 : ; "Ge b1 - b8 f|r f2:" : FOR I=1 TO 8 : INPUT B : POKE 34495+2*I,B,SWAP%(B) : NEXT I 160 ON ERROR GOTO 160 : ; "Ge b1 - b8 f|r f3:" : FOR I=1 TO 8 : INPUT B : POKE 35915+2*I,B,SWAP%(B) : NEXT I 170 ; "R{tt?" : GET A$ : IF A$="N" OR A$="n" 140 180 IF F$="N" ; "Du disponerar register 6 t o m";F : ; "fritt ({ndra kollen I%<8% i V[RD m fl)." : GOTO 200 190 ; "R6=log2 och R7=PI. Du disponerar fritt register 8 t o m";F;"." 200 POKE 65292,B0.,SWAP%(B0.) : ; "Jag har best{mt BOFA enligt Ditt svar." : CHAIN "NUL:" 210 END 65000 ; CHR$(12) 65010 ; 'Du m}ste k|ra PROG1 f|rst f|r' 65020 ; 'att mata in assembler-rutinerna.'