Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape18a_acorn_eu_1991_january.wav » R.Graph

R.Graph

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape18a_acorn_eu_1991_january.wav
Filename: R.Graph
Read OK:
File size: 0395 bytes
Load address: FFFF1900
Exec address: FFFF802B
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10REM Program to graph a function
   20REM by Nigel Jones
   30REM (c) The Micro User
   40REM January 1991
   50MODE 0:VDU 22,7:@%=&20205
   60PRINT TAB(7)"Graph Plotter by Nigel Jones"'TAB(6);CHR$145;STRING$(28,",")
   70REPEAT:INPUT TAB(0,6)"Function to be plotted: Y="func$:UNTIL func$<>""
   80REPEAT:PRINT TAB(0,9)STRING$(120," "):INPUT TAB(0,9)"Minimum X value: "minx:INPUT TAB(0,11)"Maximum X value: "maxx:UNTIL maxx>minx
   90REPEAT:PRINT TAB(0,14)STRING$(120," "):INPUT TAB(0,14)"Minimum Y value: "miny:INPUT TAB(0,16)"Maximum Y value: "maxy:UNTIL maxy>miny
  100MODE 0:VDU19,0,7;0;19,1,4;0;:rangex=maxx-minx:rangey=maxy-miny:cx=rangex/1280:cy=rangey/1024:IF miny<0 THEN ay=ABS(miny) ELSE ay=0
  110ay=ay/cy:MOVE 0,ay:DRAW 1280,ay:IF minx<0 THEN ax=ABS(minx) ELSE ax=0
  120ax=ax/cx:MOVE ax,0:DRAW ax,1024:VDU 5:FOR inc=0 TO 7:MOVE 160*inc,ay:PRINT STR$(INT(((160*inc*cx)+minx)*10+0.5)/10):MOVE ax+4,128*inc:PRINT STR$(INT(((128*inc*cy)+miny)*10+0.5)/10)
  130NEXT:PRINT TAB(1,1)"Graph of Y="func$:GCOL 0,1:X=minx+0*cx:Y=(EVAL(func$)-miny)/cy:MOVE X,Y
  140FOR inc=0 TO 1280 STEP 2:X=minx+inc*cx:Y=(EVAL(func$)-miny)/cy:DRAW inc,Y:NEXT:VDU 4:PRINT TAB(0,5);:END

!� Program to graph a function
� by Nigel Jones
� (c) The Micro User
(� January 1991
2� 0:� 22,7:@%=&20205
<9� �7)"Graph Plotter by Nigel Jones"'�6);�145;�28,",")
F:�:� �0,6)"Function to be plotted: Y="func$:� func$<>""
Pa�:� �0,9)�120," "):� �0,9)"Minimum X value: "minx:� �0,11)"Maximum X value: "maxx:� maxx>minx
Zc�:� �0,14)�120," "):� �0,14)"Minimum Y value: "miny:� �0,16)"Maximum Y value: "maxy:� maxy>miny
dx� 0:�19,0,7;0;19,1,4;0;:rangex=maxx-minx:rangey=maxy-miny:cx=rangex/1280:cy=rangey/1024:� miny<0 � ay=�(miny) � ay=0
n:ay=ay/cy:� 0,ay:� 1280,ay:� minx<0 � ax=�(minx) � ax=0
x�ax=ax/cx:� ax,0:� ax,1024:� 5:� inc=0 � 7:� 160*inc,ay:� �(�(((160*inc*cx)+minx)*10+0.5)/10):� ax+4,128*inc:� �(�(((128*inc*cy)+miny)*10+0.5)/10)
�L�:� �1,1)"Graph of Y="func$:� 0,1:X=minx+0*cx:Y=(�(func$)-miny)/cy:� X,Y
�R� inc=0 � 1280 � 2:X=minx+inc*cx:Y=(�(func$)-miny)/cy:� inc,Y:�:� 4:� �0,5);:�
�
00000000  0d 00 0a 21 f4 20 50 72  6f 67 72 61 6d 20 74 6f  |...!. Program to|
00000010  20 67 72 61 70 68 20 61  20 66 75 6e 63 74 69 6f  | graph a functio|
00000020  6e 0d 00 14 14 f4 20 62  79 20 4e 69 67 65 6c 20  |n..... by Nigel |
00000030  4a 6f 6e 65 73 0d 00 1e  18 f4 20 28 63 29 20 54  |Jones..... (c) T|
00000040  68 65 20 4d 69 63 72 6f  20 55 73 65 72 0d 00 28  |he Micro User..(|
00000050  12 f4 20 4a 61 6e 75 61  72 79 20 31 39 39 31 0d  |.. January 1991.|
00000060  00 32 18 eb 20 30 3a ef  20 32 32 2c 37 3a 40 25  |.2.. 0:. 22,7:@%|
00000070  3d 26 32 30 32 30 35 0d  00 3c 39 f1 20 8a 37 29  |=&20205..<9. .7)|
00000080  22 47 72 61 70 68 20 50  6c 6f 74 74 65 72 20 62  |"Graph Plotter b|
00000090  79 20 4e 69 67 65 6c 20  4a 6f 6e 65 73 22 27 8a  |y Nigel Jones"'.|
000000a0  36 29 3b bd 31 34 35 3b  c4 32 38 2c 22 2c 22 29  |6);.145;.28,",")|
000000b0  0d 00 46 3a f5 3a e8 20  8a 30 2c 36 29 22 46 75  |..F:.:. .0,6)"Fu|
000000c0  6e 63 74 69 6f 6e 20 74  6f 20 62 65 20 70 6c 6f  |nction to be plo|
000000d0  74 74 65 64 3a 20 59 3d  22 66 75 6e 63 24 3a fd  |tted: Y="func$:.|
000000e0  20 66 75 6e 63 24 3c 3e  22 22 0d 00 50 61 f5 3a  | func$<>""..Pa.:|
000000f0  f1 20 8a 30 2c 39 29 c4  31 32 30 2c 22 20 22 29  |. .0,9).120," ")|
00000100  3a e8 20 8a 30 2c 39 29  22 4d 69 6e 69 6d 75 6d  |:. .0,9)"Minimum|
00000110  20 58 20 76 61 6c 75 65  3a 20 22 6d 69 6e 78 3a  | X value: "minx:|
00000120  e8 20 8a 30 2c 31 31 29  22 4d 61 78 69 6d 75 6d  |. .0,11)"Maximum|
00000130  20 58 20 76 61 6c 75 65  3a 20 22 6d 61 78 78 3a  | X value: "maxx:|
00000140  fd 20 6d 61 78 78 3e 6d  69 6e 78 0d 00 5a 63 f5  |. maxx>minx..Zc.|
00000150  3a f1 20 8a 30 2c 31 34  29 c4 31 32 30 2c 22 20  |:. .0,14).120," |
00000160  22 29 3a e8 20 8a 30 2c  31 34 29 22 4d 69 6e 69  |"):. .0,14)"Mini|
00000170  6d 75 6d 20 59 20 76 61  6c 75 65 3a 20 22 6d 69  |mum Y value: "mi|
00000180  6e 79 3a e8 20 8a 30 2c  31 36 29 22 4d 61 78 69  |ny:. .0,16)"Maxi|
00000190  6d 75 6d 20 59 20 76 61  6c 75 65 3a 20 22 6d 61  |mum Y value: "ma|
000001a0  78 79 3a fd 20 6d 61 78  79 3e 6d 69 6e 79 0d 00  |xy:. maxy>miny..|
000001b0  64 78 eb 20 30 3a ef 31  39 2c 30 2c 37 3b 30 3b  |dx. 0:.19,0,7;0;|
000001c0  31 39 2c 31 2c 34 3b 30  3b 3a 72 61 6e 67 65 78  |19,1,4;0;:rangex|
000001d0  3d 6d 61 78 78 2d 6d 69  6e 78 3a 72 61 6e 67 65  |=maxx-minx:range|
000001e0  79 3d 6d 61 78 79 2d 6d  69 6e 79 3a 63 78 3d 72  |y=maxy-miny:cx=r|
000001f0  61 6e 67 65 78 2f 31 32  38 30 3a 63 79 3d 72 61  |angex/1280:cy=ra|
00000200  6e 67 65 79 2f 31 30 32  34 3a e7 20 6d 69 6e 79  |ngey/1024:. miny|
00000210  3c 30 20 8c 20 61 79 3d  94 28 6d 69 6e 79 29 20  |<0 . ay=.(miny) |
00000220  8b 20 61 79 3d 30 0d 00  6e 3a 61 79 3d 61 79 2f  |. ay=0..n:ay=ay/|
00000230  63 79 3a ec 20 30 2c 61  79 3a df 20 31 32 38 30  |cy:. 0,ay:. 1280|
00000240  2c 61 79 3a e7 20 6d 69  6e 78 3c 30 20 8c 20 61  |,ay:. minx<0 . a|
00000250  78 3d 94 28 6d 69 6e 78  29 20 8b 20 61 78 3d 30  |x=.(minx) . ax=0|
00000260  0d 00 78 95 61 78 3d 61  78 2f 63 78 3a ec 20 61  |..x.ax=ax/cx:. a|
00000270  78 2c 30 3a df 20 61 78  2c 31 30 32 34 3a ef 20  |x,0:. ax,1024:. |
00000280  35 3a e3 20 69 6e 63 3d  30 20 b8 20 37 3a ec 20  |5:. inc=0 . 7:. |
00000290  31 36 30 2a 69 6e 63 2c  61 79 3a f1 20 c3 28 a8  |160*inc,ay:. .(.|
000002a0  28 28 28 31 36 30 2a 69  6e 63 2a 63 78 29 2b 6d  |(((160*inc*cx)+m|
000002b0  69 6e 78 29 2a 31 30 2b  30 2e 35 29 2f 31 30 29  |inx)*10+0.5)/10)|
000002c0  3a ec 20 61 78 2b 34 2c  31 32 38 2a 69 6e 63 3a  |:. ax+4,128*inc:|
000002d0  f1 20 c3 28 a8 28 28 28  31 32 38 2a 69 6e 63 2a  |. .(.(((128*inc*|
000002e0  63 79 29 2b 6d 69 6e 79  29 2a 31 30 2b 30 2e 35  |cy)+miny)*10+0.5|
000002f0  29 2f 31 30 29 0d 00 82  4c ed 3a f1 20 8a 31 2c  |)/10)...L.:. .1,|
00000300  31 29 22 47 72 61 70 68  20 6f 66 20 59 3d 22 66  |1)"Graph of Y="f|
00000310  75 6e 63 24 3a e6 20 30  2c 31 3a 58 3d 6d 69 6e  |unc$:. 0,1:X=min|
00000320  78 2b 30 2a 63 78 3a 59  3d 28 a0 28 66 75 6e 63  |x+0*cx:Y=(.(func|
00000330  24 29 2d 6d 69 6e 79 29  2f 63 79 3a ec 20 58 2c  |$)-miny)/cy:. X,|
00000340  59 0d 00 8c 52 e3 20 69  6e 63 3d 30 20 b8 20 31  |Y...R. inc=0 . 1|
00000350  32 38 30 20 88 20 32 3a  58 3d 6d 69 6e 78 2b 69  |280 . 2:X=minx+i|
00000360  6e 63 2a 63 78 3a 59 3d  28 a0 28 66 75 6e 63 24  |nc*cx:Y=(.(func$|
00000370  29 2d 6d 69 6e 79 29 2f  63 79 3a df 20 69 6e 63  |)-miny)/cy:. inc|
00000380  2c 59 3a ed 3a ef 20 34  3a f1 20 8a 30 2c 35 29  |,Y:.:. 4:. .0,5)|
00000390  3b 3a e0 0d ff                                    |;:...|
00000395
R.Graph.m0
R.Graph.m1
R.Graph.m2
R.Graph.m4
R.Graph.m5