1 DEF FNF(X)=1000*SIN(PI/180*X+0.0001)/(X/180*PI+0.0001) 2 OPTION BASE 1 3 CALL CLEAR :: DISPLAY AT(12,5):"GRAPH OF F(X)" :: DISPLAY:"DEFINE F(X) IN LINE 1!!! *PRESS TO CONTINUE" 4 ACCEPT AT(22,25):K$ 10 DIM V(128) 20 CALL CLEAR :: INPUT "LABEL OF THE GRAPH?":AA$ :: INPUT "Xmin,Xmax?":XMIN,XMAX 21 XSTEP=(XMAX-XMIN)/128 :: FOR I=1 TO 128 :: X=I*XSTEP+XMIN :: V(I)=FNF(X) :: NEXT I :: CALL CLEAR :: DISPLAY AT(22,1):AA$ :: CALL GRAF(V(),B,XMIN,XMAX) 40 CALL SOUND(400,110,0) :: CALL SOUND(-400,1000,12) :: GOTO 40 9000 SUB GRAF(PLOT(),B,MIN,XMAX) 9004 DIM A$(8) 9005 FOR I=1 TO 8 :: CALL COLOR(I,2,16) :: NEXT I :: FOR I=9 TO 14 :: CALL COLOR(I,8,8) :: NEXT I :: CALL SCREEN(16) 9010 CALL CHAR(143,"") :: CALL CHAR(91,"01010101010101FF80808080808080FFFF808080808080808080808080808080") 9015 FOR I=1 TO 16 :: CALL VCHAR(1,I+6,143,16) :: NEXT I :: CALL VCHAR(1,6,91,16) :: CALL VCHAR(1,23,92,15) :: CALL HCHAR(17,7,93,17) 9016 I$="#####" :: FOR I=8 TO 23 STEP 6 :: DISPLAY AT(19,I-4)SIZE(5):USING I$:XMIN+(XMAX-XMIN)/16*(I-7) :: DISPLAY AT(20,I-1):USING I$:XMIN+(XMAX-XMIN)/16*(I-4) 9017 CALL HCHAR(18,I,94) :: CALL VCHAR(18,I+3,94,2) :: NEXT I :: DISPLAY AT(18,1)SIZE(5):USING I$:XMIN 9018 CALL HCHAR(16,23,94)!FOR I=9 TO 14 :: CALL COLOR(I,2,16):: NEXT I 9020 MAXI,MINI=PLOT(1) :: FOR I=2 TO 128 :: MAXI=MAX(MAXI,PLOT(I)) :: MINI=MIN(MINI,PLOT(I)) :: NEXT I 9030 FOR I=1 TO 128 :: PLOT(I)=128-((PLOT(I)-MINI)/(MAXI-MINI)*127+0.5) :: B$="0"&B$ :: NEXT I :: HEX$="0123456789ABCDEF" :: B=143 9035 FOR I=1 TO 16 :: DISPLAY AT(I,1)SIZE(3):USING "###":128-I*8+1 :: DISPLAY AT(17-I,22):USING "####.#":(MAXI-MINI)/16*(I-1)+MINI 9036 NEXT I 9040 FOR I=1 TO 128 STEP 8 :: MI=256 :: MA=-MI :: A$(1),A$(2),A$(3),A$(4),A$(5),A$(6),A$(7),A$(8)=B$ 9044 FOR J=1 TO 8 :: K=PLOT(I+J-1) :: A$(J)=SEG$(A$(J),1,K-1)&"1"&SEG$(A$(J),K+1,128-K) 9050 MI=MIN(MI,K) :: MA=MAX(MA,K) :: NEXT J :: FOR J=INT(MI/8)*8+1 TO MA STEP 8 :: M$="" :: FOR R=1 TO 8 :: K=J+R-1 9060 LOW=VAL(SEG$(A$(5),K,1))*8+VAL(SEG$(A$(6),K,1))*4+VAL(SEG$(A$(7),K,1))*2+VAL(SEG$(A$(8),K,1))+1 9070 HIGH=VAL(SEG$(A$(1),K,1))*8+VAL(SEG$(A$(2),K,1))*4+VAL(SEG$(A$(3),K,1))*2+VAL(SEG$(A$(4),K,1))+1 :: M$=M$&SEG$(HEX$,HIGH,1)&SEG$(HEX$,LOW,1) :: NEXT R 9080 B=B-1 :: CALL CHAR(B,M$) :: CALL VCHAR(J/8+1,INT(I/8)+7,B) :: NEXT J :: NEXT I 9090 FOR I=9 TO 14 :: CALL COLOR(I,2,4) :: NEXT I 9100 SUBEND