Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199403_2.adf » Disk2Mar94 » !AWMar94/Goodies/yass/!Yass2/Savers/Pattern
!AWMar94/Goodies/yass/!Yass2/Savers/Pattern
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 » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199403_2.adf » Disk2Mar94 |
Filename: | !AWMar94/Goodies/yass/!Yass2/Savers/Pattern |
Read OK: | ✔ |
File size: | 05C8 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1REM 2REM Yass 2 Screen Saver Module : Pattern 3REM 4REM LEN copyright Ian Palmer, 1993 5REM 6 7DEFFNpattern_start 8LOCAL S$,S%,F%,P% 9S$=MID$(TIME$,5,2)+MID$(TIME$,17,2)+MID$(TIME$,20,2)+MID$(TIME$,23,2):S%=VAL(S$):S%=RND(-S%) 10Pattern_Stat=0 11SYS &35,-1,4 TO ,,F%:SYS &35,-1,11 TO ,,P%:Patt_MX%=(P%<<F%)DIV 2 12SYS &35,-1,5 TO ,,F%:SYS &35,-1,12 TO ,,P%:Patt_MY%=(P%<<F%)DIV 2 13=0 14 15DEFFNrandom =RND(1)*RND(Pattern_Size%)*SGN(RND(1)-0.5) 16 17DEFFNpattern_poll 18CASE Pattern_Stat OF 19 WHEN 0 : Pattern_Size%=RND(20):PROCclearscreen(-1) 20 Pattern_A=FNrandom:Pattern_B=FNrandom:Pattern_C=FNrandom 21 Pattern_scale=150/(ABS(Pattern_A)+ABS(Pattern_B)+ABS(Pattern_C)) 22 Pattern_x=0:Pattern_y=0:Pattern_Col%=RND(8)-1:Pattern_Loop%=0 23 Pattern_Stat = 1 24 WHEN 1 : Pattern_Loop%+=1:Pattern_Col%=(Pattern_Col%+1)MOD8 25 Pattern_I%=0:Pattern_Stat=2 26 IF Pattern_Loop%=9 Pattern_Stat=3 27 WHEN 2 : Pattern_temp=Pattern_y-SGN(Pattern_x)*SQRABS(Pattern_B*Pattern_x-Pattern_C) 28 Pattern_y=Pattern_A-Pattern_x:Pattern_x=Pattern_temp:SYS "Wimp_SetColour",8+Pattern_Col% 29 POINT Patt_MX%+Pattern_scale*(Pattern_y+Pattern_x-Pattern_A),Patt_MY%+Pattern_scale*(Pattern_y-Pattern_x) 30 Pattern_I%+=1:IF Pattern_I%=2000 Pattern_Stat=1 31 WHEN 3 : SYS "OS_ReadMonotonicTime" TO Pattern_Time 32 Pattern_Stat = 4 33 WHEN 4 : SYS "OS_ReadMonotonicTime" TO Pattern_Now 34 IF (Pattern_Now > (Pattern_Time + 500)) THEN =TRUE 35ENDCASE 36=FALSE 37 38DEFFNpattern_stop 39=0 40
� *� Yass 2 Screen Saver Module : Pattern � "� � copyright Ian Palmer, 1993 � ݤpattern_start � S$,S%,F%,P% @S$=��$,5,2)+��$,17,2)+��$,20,2)+��$,23,2):S%=�(S$):S%=�(-S%) Pattern_Stat=0 ?ș &35,-1,4 � ,,F%:ș &35,-1,11 � ,,P%:Patt_MX%=(P%<<F%)� 2 ?ș &35,-1,5 � ,,F%:ș &35,-1,12 � ,,P%:Patt_MY%=(P%<<F%)� 2 =0 /ݤrandom =�(1)*�(Pattern_Size%)*�(�(1)-0.5) ݤpattern_poll Ȏ Pattern_Stat � 0 � 0 : Pattern_Size%=�(20):�clearscreen(-1) D Pattern_A=�random:Pattern_B=�random:Pattern_C=�random I Pattern_scale=150/(�(Pattern_A)+�(Pattern_B)+�(Pattern_C)) J Pattern_x=0:Pattern_y=0:Pattern_Col%=�(8)-1:Pattern_Loop%=0 Pattern_Stat = 1 < � 1 : Pattern_Loop%+=1:Pattern_Col%=(Pattern_Col%+1)�8 * Pattern_I%=0:Pattern_Stat=2 / � Pattern_Loop%=9 Pattern_Stat=3 Q � 2 : Pattern_temp=Pattern_y-�(Pattern_x)*��(Pattern_B*Pattern_x-Pattern_C) f Pattern_y=Pattern_A-Pattern_x:Pattern_x=Pattern_temp:ș "Wimp_SetColour",8+Pattern_Col% u Ȓ Patt_MX%+Pattern_scale*(Pattern_y+Pattern_x-Pattern_A),Patt_MY%+Pattern_scale*(Pattern_y-Pattern_x) = Pattern_I%+=1:� Pattern_I%=2000 Pattern_Stat=1 4 � 3 : ș "OS_ReadMonotonicTime" � Pattern_Time Pattern_Stat = 4 !3 � 4 : ș "OS_ReadMonotonicTime" � Pattern_Now ": � (Pattern_Now > (Pattern_Time + 500)) � =� #� $=� % &ݤpattern_stop '=0 ( �
00000000 0d 00 01 05 f4 0d 00 02 2a f4 20 59 61 73 73 20 |........*. Yass | 00000010 32 20 53 63 72 65 65 6e 20 53 61 76 65 72 20 4d |2 Screen Saver M| 00000020 6f 64 75 6c 65 20 3a 20 50 61 74 74 65 72 6e 0d |odule : Pattern.| 00000030 00 03 05 f4 0d 00 04 22 f4 20 a9 20 63 6f 70 79 |.......". . copy| 00000040 72 69 67 68 74 20 49 61 6e 20 50 61 6c 6d 65 72 |right Ian Palmer| 00000050 2c 20 31 39 39 33 0d 00 05 05 f4 0d 00 06 04 0d |, 1993..........| 00000060 00 07 13 dd a4 70 61 74 74 65 72 6e 5f 73 74 61 |.....pattern_sta| 00000070 72 74 0d 00 08 11 ea 20 53 24 2c 53 25 2c 46 25 |rt..... S$,S%,F%| 00000080 2c 50 25 0d 00 09 40 53 24 3d c1 91 24 2c 35 2c |,P%...@S$=..$,5,| 00000090 32 29 2b c1 91 24 2c 31 37 2c 32 29 2b c1 91 24 |2)+..$,17,2)+..$| 000000a0 2c 32 30 2c 32 29 2b c1 91 24 2c 32 33 2c 32 29 |,20,2)+..$,23,2)| 000000b0 3a 53 25 3d bb 28 53 24 29 3a 53 25 3d b3 28 2d |:S%=.(S$):S%=.(-| 000000c0 53 25 29 0d 00 0a 12 50 61 74 74 65 72 6e 5f 53 |S%)....Pattern_S| 000000d0 74 61 74 3d 30 0d 00 0b 3f c8 99 20 26 33 35 2c |tat=0...?.. &35,| 000000e0 2d 31 2c 34 20 b8 20 2c 2c 46 25 3a c8 99 20 26 |-1,4 . ,,F%:.. &| 000000f0 33 35 2c 2d 31 2c 31 31 20 b8 20 2c 2c 50 25 3a |35,-1,11 . ,,P%:| 00000100 50 61 74 74 5f 4d 58 25 3d 28 50 25 3c 3c 46 25 |Patt_MX%=(P%<<F%| 00000110 29 81 20 32 0d 00 0c 3f c8 99 20 26 33 35 2c 2d |). 2...?.. &35,-| 00000120 31 2c 35 20 b8 20 2c 2c 46 25 3a c8 99 20 26 33 |1,5 . ,,F%:.. &3| 00000130 35 2c 2d 31 2c 31 32 20 b8 20 2c 2c 50 25 3a 50 |5,-1,12 . ,,P%:P| 00000140 61 74 74 5f 4d 59 25 3d 28 50 25 3c 3c 46 25 29 |att_MY%=(P%<<F%)| 00000150 81 20 32 0d 00 0d 06 3d 30 0d 00 0e 04 0d 00 0f |. 2....=0.......| 00000160 2f dd a4 72 61 6e 64 6f 6d 20 3d b3 28 31 29 2a |/..random =.(1)*| 00000170 b3 28 50 61 74 74 65 72 6e 5f 53 69 7a 65 25 29 |.(Pattern_Size%)| 00000180 2a b4 28 b3 28 31 29 2d 30 2e 35 29 0d 00 10 04 |*.(.(1)-0.5)....| 00000190 0d 00 11 12 dd a4 70 61 74 74 65 72 6e 5f 70 6f |......pattern_po| 000001a0 6c 6c 0d 00 12 15 c8 8e 20 50 61 74 74 65 72 6e |ll...... Pattern| 000001b0 5f 53 74 61 74 20 ca 0d 00 13 30 20 20 c9 20 30 |_Stat ....0 . 0| 000001c0 20 3a 20 50 61 74 74 65 72 6e 5f 53 69 7a 65 25 | : Pattern_Size%| 000001d0 3d b3 28 32 30 29 3a f2 63 6c 65 61 72 73 63 72 |=.(20):.clearscr| 000001e0 65 65 6e 28 2d 31 29 0d 00 14 44 20 20 20 20 20 |een(-1)...D | 000001f0 20 20 20 20 20 20 50 61 74 74 65 72 6e 5f 41 3d | Pattern_A=| 00000200 a4 72 61 6e 64 6f 6d 3a 50 61 74 74 65 72 6e 5f |.random:Pattern_| 00000210 42 3d a4 72 61 6e 64 6f 6d 3a 50 61 74 74 65 72 |B=.random:Patter| 00000220 6e 5f 43 3d a4 72 61 6e 64 6f 6d 0d 00 15 49 20 |n_C=.random...I | 00000230 20 20 20 20 20 20 20 20 20 20 50 61 74 74 65 72 | Patter| 00000240 6e 5f 73 63 61 6c 65 3d 31 35 30 2f 28 94 28 50 |n_scale=150/(.(P| 00000250 61 74 74 65 72 6e 5f 41 29 2b 94 28 50 61 74 74 |attern_A)+.(Patt| 00000260 65 72 6e 5f 42 29 2b 94 28 50 61 74 74 65 72 6e |ern_B)+.(Pattern| 00000270 5f 43 29 29 0d 00 16 4a 20 20 20 20 20 20 20 20 |_C))...J | 00000280 20 20 20 50 61 74 74 65 72 6e 5f 78 3d 30 3a 50 | Pattern_x=0:P| 00000290 61 74 74 65 72 6e 5f 79 3d 30 3a 50 61 74 74 65 |attern_y=0:Patte| 000002a0 72 6e 5f 43 6f 6c 25 3d b3 28 38 29 2d 31 3a 50 |rn_Col%=.(8)-1:P| 000002b0 61 74 74 65 72 6e 5f 4c 6f 6f 70 25 3d 30 0d 00 |attern_Loop%=0..| 000002c0 17 1f 20 20 20 20 20 20 20 20 20 20 20 50 61 74 |.. Pat| 000002d0 74 65 72 6e 5f 53 74 61 74 20 3d 20 31 0d 00 18 |tern_Stat = 1...| 000002e0 3c 20 20 c9 20 31 20 3a 20 50 61 74 74 65 72 6e |< . 1 : Pattern| 000002f0 5f 4c 6f 6f 70 25 2b 3d 31 3a 50 61 74 74 65 72 |_Loop%+=1:Patter| 00000300 6e 5f 43 6f 6c 25 3d 28 50 61 74 74 65 72 6e 5f |n_Col%=(Pattern_| 00000310 43 6f 6c 25 2b 31 29 83 38 0d 00 19 2a 20 20 20 |Col%+1).8...* | 00000320 20 20 20 20 20 20 20 20 50 61 74 74 65 72 6e 5f | Pattern_| 00000330 49 25 3d 30 3a 50 61 74 74 65 72 6e 5f 53 74 61 |I%=0:Pattern_Sta| 00000340 74 3d 32 0d 00 1a 2f 20 20 20 20 20 20 20 20 20 |t=2.../ | 00000350 20 20 e7 20 50 61 74 74 65 72 6e 5f 4c 6f 6f 70 | . Pattern_Loop| 00000360 25 3d 39 20 50 61 74 74 65 72 6e 5f 53 74 61 74 |%=9 Pattern_Stat| 00000370 3d 33 0d 00 1b 51 20 20 c9 20 32 20 3a 20 50 61 |=3...Q . 2 : Pa| 00000380 74 74 65 72 6e 5f 74 65 6d 70 3d 50 61 74 74 65 |ttern_temp=Patte| 00000390 72 6e 5f 79 2d b4 28 50 61 74 74 65 72 6e 5f 78 |rn_y-.(Pattern_x| 000003a0 29 2a b6 94 28 50 61 74 74 65 72 6e 5f 42 2a 50 |)*..(Pattern_B*P| 000003b0 61 74 74 65 72 6e 5f 78 2d 50 61 74 74 65 72 6e |attern_x-Pattern| 000003c0 5f 43 29 0d 00 1c 66 20 20 20 20 20 20 20 20 20 |_C)...f | 000003d0 20 20 50 61 74 74 65 72 6e 5f 79 3d 50 61 74 74 | Pattern_y=Patt| 000003e0 65 72 6e 5f 41 2d 50 61 74 74 65 72 6e 5f 78 3a |ern_A-Pattern_x:| 000003f0 50 61 74 74 65 72 6e 5f 78 3d 50 61 74 74 65 72 |Pattern_x=Patter| 00000400 6e 5f 74 65 6d 70 3a c8 99 20 22 57 69 6d 70 5f |n_temp:.. "Wimp_| 00000410 53 65 74 43 6f 6c 6f 75 72 22 2c 38 2b 50 61 74 |SetColour",8+Pat| 00000420 74 65 72 6e 5f 43 6f 6c 25 0d 00 1d 75 20 20 20 |tern_Col%...u | 00000430 20 20 20 20 20 20 20 20 c8 92 20 50 61 74 74 5f | .. Patt_| 00000440 4d 58 25 2b 50 61 74 74 65 72 6e 5f 73 63 61 6c |MX%+Pattern_scal| 00000450 65 2a 28 50 61 74 74 65 72 6e 5f 79 2b 50 61 74 |e*(Pattern_y+Pat| 00000460 74 65 72 6e 5f 78 2d 50 61 74 74 65 72 6e 5f 41 |tern_x-Pattern_A| 00000470 29 2c 50 61 74 74 5f 4d 59 25 2b 50 61 74 74 65 |),Patt_MY%+Patte| 00000480 72 6e 5f 73 63 61 6c 65 2a 28 50 61 74 74 65 72 |rn_scale*(Patter| 00000490 6e 5f 79 2d 50 61 74 74 65 72 6e 5f 78 29 0d 00 |n_y-Pattern_x)..| 000004a0 1e 3d 20 20 20 20 20 20 20 20 20 20 20 50 61 74 |.= Pat| 000004b0 74 65 72 6e 5f 49 25 2b 3d 31 3a e7 20 50 61 74 |tern_I%+=1:. Pat| 000004c0 74 65 72 6e 5f 49 25 3d 32 30 30 30 20 50 61 74 |tern_I%=2000 Pat| 000004d0 74 65 72 6e 5f 53 74 61 74 3d 31 0d 00 1f 34 20 |tern_Stat=1...4 | 000004e0 20 c9 20 33 20 3a 20 c8 99 20 22 4f 53 5f 52 65 | . 3 : .. "OS_Re| 000004f0 61 64 4d 6f 6e 6f 74 6f 6e 69 63 54 69 6d 65 22 |adMonotonicTime"| 00000500 20 b8 20 50 61 74 74 65 72 6e 5f 54 69 6d 65 0d | . Pattern_Time.| 00000510 00 20 1f 20 20 20 20 20 20 20 20 20 20 20 50 61 |. . Pa| 00000520 74 74 65 72 6e 5f 53 74 61 74 20 3d 20 34 0d 00 |ttern_Stat = 4..| 00000530 21 33 20 20 c9 20 34 20 3a 20 c8 99 20 22 4f 53 |!3 . 4 : .. "OS| 00000540 5f 52 65 61 64 4d 6f 6e 6f 74 6f 6e 69 63 54 69 |_ReadMonotonicTi| 00000550 6d 65 22 20 b8 20 50 61 74 74 65 72 6e 5f 4e 6f |me" . Pattern_No| 00000560 77 0d 00 22 3a 20 20 20 20 20 20 20 20 20 20 20 |w..": | 00000570 e7 20 28 50 61 74 74 65 72 6e 5f 4e 6f 77 20 3e |. (Pattern_Now >| 00000580 20 28 50 61 74 74 65 72 6e 5f 54 69 6d 65 20 2b | (Pattern_Time +| 00000590 20 35 30 30 29 29 20 8c 20 3d b9 0d 00 23 05 cb | 500)) . =...#..| 000005a0 0d 00 24 06 3d a3 0d 00 25 04 0d 00 26 12 dd a4 |..$.=...%...&...| 000005b0 70 61 74 74 65 72 6e 5f 73 74 6f 70 0d 00 27 06 |pattern_stop..'.| 000005c0 3d 30 0d 00 28 04 0d ff |=0..(...| 000005c8