Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape32b_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_tape32b_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:
- AEW website » mu » mu_5_25_discs_Micro_User_10_01_D-MU10_01.ssd » Lenses
- Personal collection » Acorn tapes » Electron_User » Electron_User_tape32a_acorn_eu_1992_march.wav » Lenses
- Personal collection » Acorn tapes » Electron_User » Electron_User_tape32b_acorn_eu_1992_march.wav » Lenses
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