Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape32a_acorn_eu_1992_march.wav » Lenses

Lenses

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_tape32a_acorn_eu_1992_march.wav
Filename: Lenses
Read OK:
File size: 032B bytes
Load address: FFFFFB43
Exec address: FFFF5824
Duplicates

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

File contents
   10REM > <Basicsave$dir>.Lenses
   20REM by The Safe Scientist
   30REM (c) The Micro User
   40X=-500:REPEAT
   50MODE4:VDU29,640;512;
   60PROCaxis:PROClens
   70PROCobject:PROCrays
   80UNTIL0:END
   90DEFPROCaxis
  100MOVE-640,0:DRAW640,0
  110MOVE200,5:DRAW200,-5
  120MOVE-200,5:DRAW-200,-5
  130ENDPROC
  140DEFPROClens
  150MOVE0,-512:DRAW0,512
  160PROCcurve(-2000,2690)
  170PROCcurve(3280,2690)
  180ENDPROC
  190DEFPROCcurve(c%,r%)
  200VDU29,c%;512;:MOVE0,r%
  210FORN=0TO360STEP5
  220DRAWSINRADN*r%,COSRADN*r%
  230NEXT:VDU29,640;512;
  240ENDPROC
  250DEFPROCobject
  260PRINTTAB(0,21)"Press Return"TAB(0,22)"to set object"
  270REPEATPROCmoveobject:UNTILG=13
  280ENDPROC
  290DEFPROCmoveobject
  300PROCmove:G=INKEY(200)
  310ENDPROC
  320DEFPROCmove
  330GCOL0,0:MOVEX,0:DRAWX,100
  340X=X-100:IFX=-700 X=-100
  350GCOL0,1:MOVEX,0:DRAWX,100
  360ENDPROC
  370DEFPROCrays
  380V=ABS(X):IF V=200 F=201 ELSE F=200
  390U=(F*V)/(V-F)
  400IF V<>200 H=-U/V*100 ELSE H=U/V*100
  410MOVEX,100:DRAW0,100:DRAWU,H
  420MOVEX,100:DRAW0,0:DRAWU,H
  430MOVEU,0:DRAWU,H
  440PRINTTAB(0,21)"Press Space"SPC1TAB(0,22)"to continue"SPC3
  450REPEATUNTILGET=32
  460ENDPROC

� > <Basicsave$dir>.Lenses
� by The Safe Scientist
� (c) The Micro User
(X=-500:�
2�4:�29,640;512;
<�axis:�lens
F�object:�rays
P�0:�
Z
��axis
d�-640,0:�640,0
n�200,5:�200,-5
x�-200,5:�-200,-5
��
�
��lens
��0,-512:�0,512
��curve(-2000,2690)
��curve(3280,2690)
��
���curve(c%,r%)
��29,c%;512;:�0,r%
��N=0�360�5
�ߵ�N*r%,��N*r%
��:�29,640;512;
��
���object
.�0,21)"Press Return"�0,22)"to set object"
��moveobject:�G=13
�
"��moveobject
,�move:G=�(200)
6�
@
��move
J�0,0:�X,0:�X,100
TX=X-100:�X=-700 X=-100
^�0,1:�X,0:�X,100
h�
r
��rays
| V=�(X):� V=200 F=201 � F=200
�U=(F*V)/(V-F)
�#� V<>200 H=-U/V*100 � H=U/V*100
��X,100:�0,100:�U,H
��X,100:�0,0:�U,H
�
�U,0:�U,H
�/�0,21)"Press Space"�1�0,22)"to continue"�3
�
���=32
��
�
00000000  0d 00 0a 1e f4 20 3e 20  3c 42 61 73 69 63 73 61  |..... > <Basicsa|
00000010  76 65 24 64 69 72 3e 2e  4c 65 6e 73 65 73 0d 00  |ve$dir>.Lenses..|
00000020  14 1b f4 20 62 79 20 54  68 65 20 53 61 66 65 20  |... by The Safe |
00000030  53 63 69 65 6e 74 69 73  74 0d 00 1e 18 f4 20 28  |Scientist..... (|
00000040  63 29 20 54 68 65 20 4d  69 63 72 6f 20 55 73 65  |c) The Micro Use|
00000050  72 0d 00 28 0c 58 3d 2d  35 30 30 3a f5 0d 00 32  |r..(.X=-500:...2|
00000060  13 eb 34 3a ef 32 39 2c  36 34 30 3b 35 31 32 3b  |..4:.29,640;512;|
00000070  0d 00 3c 0f f2 61 78 69  73 3a f2 6c 65 6e 73 0d  |..<..axis:.lens.|
00000080  00 46 11 f2 6f 62 6a 65  63 74 3a f2 72 61 79 73  |.F..object:.rays|
00000090  0d 00 50 08 fd 30 3a e0  0d 00 5a 0a dd f2 61 78  |..P..0:...Z...ax|
000000a0  69 73 0d 00 64 12 ec 2d  36 34 30 2c 30 3a df 36  |is..d..-640,0:.6|
000000b0  34 30 2c 30 0d 00 6e 12  ec 32 30 30 2c 35 3a df  |40,0..n..200,5:.|
000000c0  32 30 30 2c 2d 35 0d 00  78 14 ec 2d 32 30 30 2c  |200,-5..x..-200,|
000000d0  35 3a df 2d 32 30 30 2c  2d 35 0d 00 82 05 e1 0d  |5:.-200,-5......|
000000e0  00 8c 0a dd f2 6c 65 6e  73 0d 00 96 12 ec 30 2c  |.....lens.....0,|
000000f0  2d 35 31 32 3a df 30 2c  35 31 32 0d 00 a0 16 f2  |-512:.0,512.....|
00000100  63 75 72 76 65 28 2d 32  30 30 30 2c 32 36 39 30  |curve(-2000,2690|
00000110  29 0d 00 aa 15 f2 63 75  72 76 65 28 33 32 38 30  |).....curve(3280|
00000120  2c 32 36 39 30 29 0d 00  b4 05 e1 0d 00 be 12 dd  |,2690)..........|
00000130  f2 63 75 72 76 65 28 63  25 2c 72 25 29 0d 00 c8  |.curve(c%,r%)...|
00000140  15 ef 32 39 2c 63 25 3b  35 31 32 3b 3a ec 30 2c  |..29,c%;512;:.0,|
00000150  72 25 0d 00 d2 0e e3 4e  3d 30 b8 33 36 30 88 35  |r%.....N=0.360.5|
00000160  0d 00 dc 12 df b5 b2 4e  2a 72 25 2c 9b b2 4e 2a  |.......N*r%,..N*|
00000170  72 25 0d 00 e6 12 ed 3a  ef 32 39 2c 36 34 30 3b  |r%.....:.29,640;|
00000180  35 31 32 3b 0d 00 f0 05  e1 0d 00 fa 0c dd f2 6f  |512;...........o|
00000190  62 6a 65 63 74 0d 01 04  2e f1 8a 30 2c 32 31 29  |bject......0,21)|
000001a0  22 50 72 65 73 73 20 52  65 74 75 72 6e 22 8a 30  |"Press Return".0|
000001b0  2c 32 32 29 22 74 6f 20  73 65 74 20 6f 62 6a 65  |,22)"to set obje|
000001c0  63 74 22 0d 01 0e 16 f5  f2 6d 6f 76 65 6f 62 6a  |ct"......moveobj|
000001d0  65 63 74 3a fd 47 3d 31  33 0d 01 18 05 e1 0d 01  |ect:.G=13.......|
000001e0  22 10 dd f2 6d 6f 76 65  6f 62 6a 65 63 74 0d 01  |"...moveobject..|
000001f0  2c 12 f2 6d 6f 76 65 3a  47 3d a6 28 32 30 30 29  |,..move:G=.(200)|
00000200  0d 01 36 05 e1 0d 01 40  0a dd f2 6d 6f 76 65 0d  |..6....@...move.|
00000210  01 4a 14 e6 30 2c 30 3a  ec 58 2c 30 3a df 58 2c  |.J..0,0:.X,0:.X,|
00000220  31 30 30 0d 01 54 1a 58  3d 58 2d 31 30 30 3a e7  |100..T.X=X-100:.|
00000230  58 3d 2d 37 30 30 20 58  3d 2d 31 30 30 0d 01 5e  |X=-700 X=-100..^|
00000240  14 e6 30 2c 31 3a ec 58  2c 30 3a df 58 2c 31 30  |..0,1:.X,0:.X,10|
00000250  30 0d 01 68 05 e1 0d 01  72 0a dd f2 72 61 79 73  |0..h....r...rays|
00000260  0d 01 7c 20 56 3d 94 28  58 29 3a e7 20 56 3d 32  |..| V=.(X):. V=2|
00000270  30 30 20 46 3d 32 30 31  20 8b 20 46 3d 32 30 30  |00 F=201 . F=200|
00000280  0d 01 86 11 55 3d 28 46  2a 56 29 2f 28 56 2d 46  |....U=(F*V)/(V-F|
00000290  29 0d 01 90 23 e7 20 56  3c 3e 32 30 30 20 48 3d  |)...#. V<>200 H=|
000002a0  2d 55 2f 56 2a 31 30 30  20 8b 20 48 3d 55 2f 56  |-U/V*100 . H=U/V|
000002b0  2a 31 30 30 0d 01 9a 16  ec 58 2c 31 30 30 3a df  |*100.....X,100:.|
000002c0  30 2c 31 30 30 3a df 55  2c 48 0d 01 a4 14 ec 58  |0,100:.U,H.....X|
000002d0  2c 31 30 30 3a df 30 2c  30 3a df 55 2c 48 0d 01  |,100:.0,0:.U,H..|
000002e0  ae 0d ec 55 2c 30 3a df  55 2c 48 0d 01 b8 2f f1  |...U,0:.U,H.../.|
000002f0  8a 30 2c 32 31 29 22 50  72 65 73 73 20 53 70 61  |.0,21)"Press Spa|
00000300  63 65 22 89 31 8a 30 2c  32 32 29 22 74 6f 20 63  |ce".1.0,22)"to c|
00000310  6f 6e 74 69 6e 75 65 22  89 33 0d 01 c2 0a f5 fd  |ontinue".3......|
00000320  a5 3d 33 32 0d 01 cc 05  e1 0d ff                 |.=32.......|
0000032b
Lenses.m0
Lenses.m1
Lenses.m2
Lenses.m4
Lenses.m5