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