Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199403_2.adf » Disk2Mar94 » !AWMar94/Goodies/yass/!Yass2/Savers/Stars

!AWMar94/Goodies/yass/!Yass2/Savers/Stars

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/Stars
Read OK:
File size: 03C5 bytes
Load address: 0000
Exec address: 0000
File contents
    1REM
    2REM Yass 2 Screen Saver Module : Stars
    3REM
    4REM LEN copyright Ian Palmer, 1993
    5REM
    6
    7DEFPROCstars_new(A%)
    8|(t_dx%+A%*5)=(RND(3001)-1501)/150:|(t_dy%+A%*5)=(RND(3001)-1501)/150
    9|(t_x%+A%*5)=(max_x% / 2):|(t_y%+A%*5)=(max_y% / 2)
   10ENDPROC
   11
   12DEFFNstars_start
   13LOCAL A%:mxs%=40:sacc=1.03:PROCclearscreen(-1)
   14t_x%=FNmalloc(5*mxs%):t_y%=FNmalloc(5*mxs%)
   15t_dx%=FNmalloc(5*mxs%):t_dy%=FNmalloc(5*mxs%)
   16IF t_dy%=0 THEN A%=FNstars_stop:=TRUE
   17FOR A%=0 TO mxs%-1:PROCstars_new(A%):NEXT
   18=0
   19
   20DEFFNstars_poll
   21LOCAL A%
   22FOR A%=0 TO mxs%-1:PROCset_colour(0,7):PLOT69,|(t_x%+A%*5),|(t_y%+A%*5)
   23|(t_x%+A%*5)+=|(t_dx%+A%*5):|(t_y%+A%*5)+=|(t_dy%+A%*5)
   24|(t_dx%+A%*5)=|(t_dx%+A%*5)*sacc:|(t_dy%+A%*5)=|(t_dy%+A%*5)*sacc
   25IF |(t_x%+A%*5)<0 OR |(t_x%+A%*5)>max_x% OR |(t_y%+A%*5)<0 OR |(t_y%+A%*5)>max_y% THEN PROCstars_new(A%)
   26PROCset_colour(0,0):PLOT69,|(t_x%+A%*5),|(t_y%+A%*5)
   27NEXT
   28IF now_going%>12000 THEN =TRUE
   29=0
   30
   31DEFFNstars_stop
   32PROCfree(t_x%):PROCfree(t_y%):PROCfree(t_dx%):PROCfree(t_dy%)
   33=0
   34
�
(� Yass 2 Screen Saver Module : Stars
�
"� � copyright Ian Palmer, 1993
�

��stars_new(A%)
E|(t_dx%+A%*5)=(�(3001)-1501)/150:|(t_dy%+A%*5)=(�(3001)-1501)/150
	7|(t_x%+A%*5)=(max_x% / 2):|(t_y%+A%*5)=(max_y% / 2)

�

ݤstars_start

+� A%:mxs%=40:sacc=1.03:�clearscreen(-1)
-t_x%=�malloc(5*mxs%):t_y%=�malloc(5*mxs%)
/t_dx%=�malloc(5*mxs%):t_dy%=�malloc(5*mxs%)
!� t_dy%=0 � A%=�stars_stop:=�
$� A%=0 � mxs%-1:�stars_new(A%):�
=0

ݤstars_poll
� A%
B� A%=0 � mxs%-1:�set_colour(0,7):�69,|(t_x%+A%*5),|(t_y%+A%*5)
;|(t_x%+A%*5)+=|(t_dx%+A%*5):|(t_y%+A%*5)+=|(t_dy%+A%*5)
E|(t_dx%+A%*5)=|(t_dx%+A%*5)*sacc:|(t_dy%+A%*5)=|(t_dy%+A%*5)*sacc
b� |(t_x%+A%*5)<0 � |(t_x%+A%*5)>max_x% � |(t_y%+A%*5)<0 � |(t_y%+A%*5)>max_y% � �stars_new(A%)
2�set_colour(0,0):�69,|(t_x%+A%*5),|(t_y%+A%*5)
�
� now_going%>12000 � =�
=0

ݤstars_stop
 5�free(t_x%):�free(t_y%):�free(t_dx%):�free(t_dy%)
!=0
"
�
00000000  0d 00 01 05 f4 0d 00 02  28 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  53 74 61 72 73 0d 00 03  |odule : Stars...|
00000030  05 f4 0d 00 04 22 f4 20  a9 20 63 6f 70 79 72 69  |.....". . copyri|
00000040  67 68 74 20 49 61 6e 20  50 61 6c 6d 65 72 2c 20  |ght Ian Palmer, |
00000050  31 39 39 33 0d 00 05 05  f4 0d 00 06 04 0d 00 07  |1993............|
00000060  13 dd f2 73 74 61 72 73  5f 6e 65 77 28 41 25 29  |...stars_new(A%)|
00000070  0d 00 08 45 7c 28 74 5f  64 78 25 2b 41 25 2a 35  |...E|(t_dx%+A%*5|
00000080  29 3d 28 b3 28 33 30 30  31 29 2d 31 35 30 31 29  |)=(.(3001)-1501)|
00000090  2f 31 35 30 3a 7c 28 74  5f 64 79 25 2b 41 25 2a  |/150:|(t_dy%+A%*|
000000a0  35 29 3d 28 b3 28 33 30  30 31 29 2d 31 35 30 31  |5)=(.(3001)-1501|
000000b0  29 2f 31 35 30 0d 00 09  37 7c 28 74 5f 78 25 2b  |)/150...7|(t_x%+|
000000c0  41 25 2a 35 29 3d 28 6d  61 78 5f 78 25 20 2f 20  |A%*5)=(max_x% / |
000000d0  32 29 3a 7c 28 74 5f 79  25 2b 41 25 2a 35 29 3d  |2):|(t_y%+A%*5)=|
000000e0  28 6d 61 78 5f 79 25 20  2f 20 32 29 0d 00 0a 05  |(max_y% / 2)....|
000000f0  e1 0d 00 0b 04 0d 00 0c  11 dd a4 73 74 61 72 73  |...........stars|
00000100  5f 73 74 61 72 74 0d 00  0d 2b ea 20 41 25 3a 6d  |_start...+. A%:m|
00000110  78 73 25 3d 34 30 3a 73  61 63 63 3d 31 2e 30 33  |xs%=40:sacc=1.03|
00000120  3a f2 63 6c 65 61 72 73  63 72 65 65 6e 28 2d 31  |:.clearscreen(-1|
00000130  29 0d 00 0e 2d 74 5f 78  25 3d a4 6d 61 6c 6c 6f  |)...-t_x%=.mallo|
00000140  63 28 35 2a 6d 78 73 25  29 3a 74 5f 79 25 3d a4  |c(5*mxs%):t_y%=.|
00000150  6d 61 6c 6c 6f 63 28 35  2a 6d 78 73 25 29 0d 00  |malloc(5*mxs%)..|
00000160  0f 2f 74 5f 64 78 25 3d  a4 6d 61 6c 6c 6f 63 28  |./t_dx%=.malloc(|
00000170  35 2a 6d 78 73 25 29 3a  74 5f 64 79 25 3d a4 6d  |5*mxs%):t_dy%=.m|
00000180  61 6c 6c 6f 63 28 35 2a  6d 78 73 25 29 0d 00 10  |alloc(5*mxs%)...|
00000190  21 e7 20 74 5f 64 79 25  3d 30 20 8c 20 41 25 3d  |!. t_dy%=0 . A%=|
000001a0  a4 73 74 61 72 73 5f 73  74 6f 70 3a 3d b9 0d 00  |.stars_stop:=...|
000001b0  11 24 e3 20 41 25 3d 30  20 b8 20 6d 78 73 25 2d  |.$. A%=0 . mxs%-|
000001c0  31 3a f2 73 74 61 72 73  5f 6e 65 77 28 41 25 29  |1:.stars_new(A%)|
000001d0  3a ed 0d 00 12 06 3d 30  0d 00 13 04 0d 00 14 10  |:.....=0........|
000001e0  dd a4 73 74 61 72 73 5f  70 6f 6c 6c 0d 00 15 08  |..stars_poll....|
000001f0  ea 20 41 25 0d 00 16 42  e3 20 41 25 3d 30 20 b8  |. A%...B. A%=0 .|
00000200  20 6d 78 73 25 2d 31 3a  f2 73 65 74 5f 63 6f 6c  | mxs%-1:.set_col|
00000210  6f 75 72 28 30 2c 37 29  3a f0 36 39 2c 7c 28 74  |our(0,7):.69,|(t|
00000220  5f 78 25 2b 41 25 2a 35  29 2c 7c 28 74 5f 79 25  |_x%+A%*5),|(t_y%|
00000230  2b 41 25 2a 35 29 0d 00  17 3b 7c 28 74 5f 78 25  |+A%*5)...;|(t_x%|
00000240  2b 41 25 2a 35 29 2b 3d  7c 28 74 5f 64 78 25 2b  |+A%*5)+=|(t_dx%+|
00000250  41 25 2a 35 29 3a 7c 28  74 5f 79 25 2b 41 25 2a  |A%*5):|(t_y%+A%*|
00000260  35 29 2b 3d 7c 28 74 5f  64 79 25 2b 41 25 2a 35  |5)+=|(t_dy%+A%*5|
00000270  29 0d 00 18 45 7c 28 74  5f 64 78 25 2b 41 25 2a  |)...E|(t_dx%+A%*|
00000280  35 29 3d 7c 28 74 5f 64  78 25 2b 41 25 2a 35 29  |5)=|(t_dx%+A%*5)|
00000290  2a 73 61 63 63 3a 7c 28  74 5f 64 79 25 2b 41 25  |*sacc:|(t_dy%+A%|
000002a0  2a 35 29 3d 7c 28 74 5f  64 79 25 2b 41 25 2a 35  |*5)=|(t_dy%+A%*5|
000002b0  29 2a 73 61 63 63 0d 00  19 62 e7 20 7c 28 74 5f  |)*sacc...b. |(t_|
000002c0  78 25 2b 41 25 2a 35 29  3c 30 20 84 20 7c 28 74  |x%+A%*5)<0 . |(t|
000002d0  5f 78 25 2b 41 25 2a 35  29 3e 6d 61 78 5f 78 25  |_x%+A%*5)>max_x%|
000002e0  20 84 20 7c 28 74 5f 79  25 2b 41 25 2a 35 29 3c  | . |(t_y%+A%*5)<|
000002f0  30 20 84 20 7c 28 74 5f  79 25 2b 41 25 2a 35 29  |0 . |(t_y%+A%*5)|
00000300  3e 6d 61 78 5f 79 25 20  8c 20 f2 73 74 61 72 73  |>max_y% . .stars|
00000310  5f 6e 65 77 28 41 25 29  0d 00 1a 32 f2 73 65 74  |_new(A%)...2.set|
00000320  5f 63 6f 6c 6f 75 72 28  30 2c 30 29 3a f0 36 39  |_colour(0,0):.69|
00000330  2c 7c 28 74 5f 78 25 2b  41 25 2a 35 29 2c 7c 28  |,|(t_x%+A%*5),|(|
00000340  74 5f 79 25 2b 41 25 2a  35 29 0d 00 1b 05 ed 0d  |t_y%+A%*5)......|
00000350  00 1c 1b e7 20 6e 6f 77  5f 67 6f 69 6e 67 25 3e  |.... now_going%>|
00000360  31 32 30 30 30 20 8c 20  3d b9 0d 00 1d 06 3d 30  |12000 . =.....=0|
00000370  0d 00 1e 04 0d 00 1f 10  dd a4 73 74 61 72 73 5f  |..........stars_|
00000380  73 74 6f 70 0d 00 20 35  f2 66 72 65 65 28 74 5f  |stop.. 5.free(t_|
00000390  78 25 29 3a f2 66 72 65  65 28 74 5f 79 25 29 3a  |x%):.free(t_y%):|
000003a0  f2 66 72 65 65 28 74 5f  64 78 25 29 3a f2 66 72  |.free(t_dx%):.fr|
000003b0  65 65 28 74 5f 64 79 25  29 0d 00 21 06 3d 30 0d  |ee(t_dy%)..!.=0.|
000003c0  00 22 04 0d ff                                    |."...|
000003c5