Home » Archimedes archive » Acorn User » AU 1994-05.adf » !Risc_Risc » Sheet

Sheet

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 » Archimedes archive » Acorn User » AU 1994-05.adf » !Risc_Risc
Filename: Sheet
Read OK:
File size: 0754 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Sheet
   20MODE "X320 Y256 C16M":OFF
   30size=128
   40COLOUR 128:CLS
   50MOUSE OFF
   60PROCass
   70DIM rf(3),gf(3),bf(3)
   80FOR i=0 TO 3
   90 rf(i)=(RND(1)*5+1)
  100 gf(i)=(RND(1)*5+1)
  110 bf(i)=(RND(1)*5+1)
  120NEXT
  130a=0
  140REPEAT
  150 c=cols
  160 FOR i=0 TO 3
  170  c?0=127+127*SIN(a*rf(i))
  180  c?1=127+127*SIN(a*gf(i))
  190  c?2=127+127*SIN(a*bf(i))
  200  c+=4
  210 NEXT
  220 WAIT:CALL go
  230 a+=0.02
  240UNTIL 0
  250
  260
  270!rgbT=&000000
  280!rgbB=&FF0000
  290!rgbL=&000000
  300!rgbR=&0000FF
  310CALL go
  320END
  330:
  340DEF PROCass
  350DIM code 4000
  360sp=13
  370lr=14
  380pc=15
  390FOR pass=0 TO 2 STEP 2:P%=code
  400[OPT pass
  410.go
  420   STMFD sp !,{lr}
  430   STR   sp, SP
  440
  450   LDR   r12,scr
  460   MOV   r8,#size-1
  470
  480.row
  490
  500   LDRB  r0,rgbT+0
  510   LDRB  r1,rgbB+0
  520   FNdiv(0,1,8,2)
  530   LDRB  r0,rgbT+1
  540   LDRB  r1,rgbB+1
  550   FNdiv(0,1,8,3)
  560   LDRB  r0,rgbT+2
  570   LDRB  r1,rgbB+2
  580   FNdiv(0,1,8,4)
  590
  600   MOV   r11,r12
  610   MOV   r9,#size-1
  620
  630   LDRB  r0,rgbL+0
  640   LDRB  r1,rgbR+0
  650
  660   LDRB  r5,rgbL+1
  670   LDRB  r6,rgbR+1
  680
  690   LDRB  r7,rgbL+2
  700   LDRB  r10,rgbR+2
  710.col
  720
  730   FNdiv(0,1,9,lr)
  740
  750   ADD   lr,r2,lr
  760   MOV   r13,lr,LSR #1
  770
  780   FNdiv(5,6,9,lr)
  790
  800   ADD   lr,r3,lr
  810   MOV   lr,lr,LSR #1
  820   ORR   r13,r13,lr,LSL #8
  830
  840   FNdiv(7,10,9,lr)
  850
  860   ADD   lr,r4,lr
  870   MOV   lr,lr,LSR #1
  880   ORR   r13,r13,lr,LSL #16
  890
  900   STR   r13,[r11],#4
  910
  920   SUBS  r9,r9,#1
  930   BPL   col
  940
  950   ADD   r12,r12,#320*4
  960
  970   SUBS  r8,r8,#1
  980   BPL   row
  990
 1000   LDR   sp,SP
 1010   LDMFD sp !,{pc}
 1020
 1030
 1040
 1050.SP   EQUD 0
 1060
 1070
 1080.scr  EQUD 148
 1090      EQUD -1
 1100.cols
 1110.rgbT EQUD 0
 1120.rgbB EQUD 0
 1130.rgbL EQUD 0
 1140.rgbR EQUD 0
 1150]
 1160NEXT
 1170SYS "OS_ReadVduVariables",scr,scr
 1180!scr=!scr+((256-size)/2)*320*4+((320-size)/2)*4
 1190ENDPROC
 1200:
 1210DEF FNdiv(a,b,d,r)
 1220[OPT pass
 1230   SUB   r,a,b
 1240   MUL   r,d,r
 1250   ADD   r,b,r,ASR #(LNsize/LN2)
 1260]
 1270=""

� >Sheet
� "X320 Y256 C16M":�
size=128
(� 128:�
2ȗ �
<�ass
F� rf(3),gf(3),bf(3)
P
� i=0 � 3
Z rf(i)=(�(1)*5+1)
d gf(i)=(�(1)*5+1)
n bf(i)=(�(1)*5+1)
x�
�a=0
��
� c=cols
� � i=0 � 3
�  c?0=127+127*�(a*rf(i))
�  c?1=127+127*�(a*gf(i))
�  c?2=127+127*�(a*bf(i))
�
  c+=4
� �
� Ȗ:� go
� a+=0.02
�� 0
�

!rgbT=&000000
!rgbB=&FF0000
"!rgbL=&000000
,!rgbR=&0000FF
6� go
@�
J:
T
� �ass
^� code 4000
h	sp=13
r	lr=14
|	pc=15
�� pass=0 � 2 � 2:P%=code
�
[OPT pass
�.go
�   STMFD sp !,{lr}
�   STR   sp, SP
�
�   LDR   r12,scr
�   MOV   r8,#size-1
�
�.row
�
�   LDRB  r0,rgbT+0
�   LDRB  r1,rgbB+0
   �div(0,1,8,2)
   LDRB  r0,rgbT+1
   LDRB  r1,rgbB+1
&   �div(0,1,8,3)
0   LDRB  r0,rgbT+2
:   LDRB  r1,rgbB+2
D   �div(0,1,8,4)
N
X   MOV   r11,r12
b   MOV   r9,#size-1
l
v   LDRB  r0,rgbL+0
�   LDRB  r1,rgbR+0
�
�   LDRB  r5,rgbL+1
�   LDRB  r6,rgbR+1
�
�   LDRB  r7,rgbL+2
�   LDRB  r10,rgbR+2
�.col
�
�   �div(0,1,9,lr)
�
�   ADD   lr,r2,lr
�   MOV   r13,lr,LSR #1

   �div(5,6,9,lr)

    ADD   lr,r3,lr
*   MOV   lr,lr,LSR #1
4   �R   r13,r13,lr,LSL #8
>
H   �div(7,10,9,lr)
R
\   ADD   lr,r4,lr
f   MOV   lr,lr,LSR #1
p   �R   r13,r13,lr,LSL #16
z
�   STR   r13,[r11],#4
�
�   SUBS  r9,r9,#1
�   BPL   col
�
�   ADD   r12,r12,#320*4
�
�   SUBS  r8,r8,#1
�   BPL   row
�
�   LDR   sp,SP
�   LDMFD sp !,{pc}
�


.SP   EQUD 0
$
.
8.scr  EQUD 148
B      EQUD -1
L	.cols
V.rgbT EQUD 0
`.rgbB EQUD 0
j.rgbL EQUD 0
t.rgbR EQUD 0
~]
��
�$ș "OS_ReadVduVariables",scr,scr
�3!scr=!scr+((256-size)/2)*320*4+((320-size)/2)*4
��
�:
�� �div(a,b,d,r)
�
[OPT pass
�   SUB   r,a,b
�   MUL   r,d,r
�"   ADD   r,b,r,ASR #(�size/�2)
�]
�=""
�
00000000  0d 00 0a 0c f4 20 3e 53  68 65 65 74 0d 00 14 18  |..... >Sheet....|
00000010  eb 20 22 58 33 32 30 20  59 32 35 36 20 43 31 36  |. "X320 Y256 C16|
00000020  4d 22 3a 87 0d 00 1e 0c  73 69 7a 65 3d 31 32 38  |M":.....size=128|
00000030  0d 00 28 0b fb 20 31 32  38 3a db 0d 00 32 08 c8  |..(.. 128:...2..|
00000040  97 20 87 0d 00 3c 08 f2  61 73 73 0d 00 46 17 de  |. ...<..ass..F..|
00000050  20 72 66 28 33 29 2c 67  66 28 33 29 2c 62 66 28  | rf(3),gf(3),bf(|
00000060  33 29 0d 00 50 0d e3 20  69 3d 30 20 b8 20 33 0d  |3)..P.. i=0 . 3.|
00000070  00 5a 15 20 72 66 28 69  29 3d 28 b3 28 31 29 2a  |.Z. rf(i)=(.(1)*|
00000080  35 2b 31 29 0d 00 64 15  20 67 66 28 69 29 3d 28  |5+1)..d. gf(i)=(|
00000090  b3 28 31 29 2a 35 2b 31  29 0d 00 6e 15 20 62 66  |.(1)*5+1)..n. bf|
000000a0  28 69 29 3d 28 b3 28 31  29 2a 35 2b 31 29 0d 00  |(i)=(.(1)*5+1)..|
000000b0  78 05 ed 0d 00 82 07 61  3d 30 0d 00 8c 05 f5 0d  |x......a=0......|
000000c0  00 96 0b 20 63 3d 63 6f  6c 73 0d 00 a0 0e 20 e3  |... c=cols.... .|
000000d0  20 69 3d 30 20 b8 20 33  0d 00 aa 1c 20 20 63 3f  | i=0 . 3....  c?|
000000e0  30 3d 31 32 37 2b 31 32  37 2a b5 28 61 2a 72 66  |0=127+127*.(a*rf|
000000f0  28 69 29 29 0d 00 b4 1c  20 20 63 3f 31 3d 31 32  |(i))....  c?1=12|
00000100  37 2b 31 32 37 2a b5 28  61 2a 67 66 28 69 29 29  |7+127*.(a*gf(i))|
00000110  0d 00 be 1c 20 20 63 3f  32 3d 31 32 37 2b 31 32  |....  c?2=127+12|
00000120  37 2a b5 28 61 2a 62 66  28 69 29 29 0d 00 c8 0a  |7*.(a*bf(i))....|
00000130  20 20 63 2b 3d 34 0d 00  d2 06 20 ed 0d 00 dc 0c  |  c+=4.... .....|
00000140  20 c8 96 3a d6 20 67 6f  0d 00 e6 0c 20 61 2b 3d  | ..:. go.... a+=|
00000150  30 2e 30 32 0d 00 f0 07  fd 20 30 0d 00 fa 04 0d  |0.02..... 0.....|
00000160  01 04 04 0d 01 0e 11 21  72 67 62 54 3d 26 30 30  |.......!rgbT=&00|
00000170  30 30 30 30 0d 01 18 11  21 72 67 62 42 3d 26 46  |0000....!rgbB=&F|
00000180  46 30 30 30 30 0d 01 22  11 21 72 67 62 4c 3d 26  |F0000..".!rgbL=&|
00000190  30 30 30 30 30 30 0d 01  2c 11 21 72 67 62 52 3d  |000000..,.!rgbR=|
000001a0  26 30 30 30 30 46 46 0d  01 36 08 d6 20 67 6f 0d  |&0000FF..6.. go.|
000001b0  01 40 05 e0 0d 01 4a 05  3a 0d 01 54 0a dd 20 f2  |.@....J.:..T.. .|
000001c0  61 73 73 0d 01 5e 0f de  20 63 6f 64 65 20 34 30  |ass..^.. code 40|
000001d0  30 30 0d 01 68 09 73 70  3d 31 33 0d 01 72 09 6c  |00..h.sp=13..r.l|
000001e0  72 3d 31 34 0d 01 7c 09  70 63 3d 31 35 0d 01 86  |r=14..|.pc=15...|
000001f0  1c e3 20 70 61 73 73 3d  30 20 b8 20 32 20 88 20  |.. pass=0 . 2 . |
00000200  32 3a 50 25 3d 63 6f 64  65 0d 01 90 0d 5b 4f 50  |2:P%=code....[OP|
00000210  54 20 70 61 73 73 0d 01  9a 07 2e 67 6f 0d 01 a4  |T pass.....go...|
00000220  16 20 20 20 53 54 4d 46  44 20 73 70 20 21 2c 7b  |.   STMFD sp !,{|
00000230  6c 72 7d 0d 01 ae 13 20  20 20 53 54 52 20 20 20  |lr}....   STR   |
00000240  73 70 2c 20 53 50 0d 01  b8 04 0d 01 c2 14 20 20  |sp, SP........  |
00000250  20 4c 44 52 20 20 20 72  31 32 2c 73 63 72 0d 01  | LDR   r12,scr..|
00000260  cc 17 20 20 20 4d 4f 56  20 20 20 72 38 2c 23 73  |..   MOV   r8,#s|
00000270  69 7a 65 2d 31 0d 01 d6  04 0d 01 e0 08 2e 72 6f  |ize-1.........ro|
00000280  77 0d 01 ea 04 0d 01 f4  16 20 20 20 4c 44 52 42  |w........   LDRB|
00000290  20 20 72 30 2c 72 67 62  54 2b 30 0d 01 fe 16 20  |  r0,rgbT+0.... |
000002a0  20 20 4c 44 52 42 20 20  72 31 2c 72 67 62 42 2b  |  LDRB  r1,rgbB+|
000002b0  30 0d 02 08 14 20 20 20  a4 64 69 76 28 30 2c 31  |0....   .div(0,1|
000002c0  2c 38 2c 32 29 0d 02 12  16 20 20 20 4c 44 52 42  |,8,2)....   LDRB|
000002d0  20 20 72 30 2c 72 67 62  54 2b 31 0d 02 1c 16 20  |  r0,rgbT+1.... |
000002e0  20 20 4c 44 52 42 20 20  72 31 2c 72 67 62 42 2b  |  LDRB  r1,rgbB+|
000002f0  31 0d 02 26 14 20 20 20  a4 64 69 76 28 30 2c 31  |1..&.   .div(0,1|
00000300  2c 38 2c 33 29 0d 02 30  16 20 20 20 4c 44 52 42  |,8,3)..0.   LDRB|
00000310  20 20 72 30 2c 72 67 62  54 2b 32 0d 02 3a 16 20  |  r0,rgbT+2..:. |
00000320  20 20 4c 44 52 42 20 20  72 31 2c 72 67 62 42 2b  |  LDRB  r1,rgbB+|
00000330  32 0d 02 44 14 20 20 20  a4 64 69 76 28 30 2c 31  |2..D.   .div(0,1|
00000340  2c 38 2c 34 29 0d 02 4e  04 0d 02 58 14 20 20 20  |,8,4)..N...X.   |
00000350  4d 4f 56 20 20 20 72 31  31 2c 72 31 32 0d 02 62  |MOV   r11,r12..b|
00000360  17 20 20 20 4d 4f 56 20  20 20 72 39 2c 23 73 69  |.   MOV   r9,#si|
00000370  7a 65 2d 31 0d 02 6c 04  0d 02 76 16 20 20 20 4c  |ze-1..l...v.   L|
00000380  44 52 42 20 20 72 30 2c  72 67 62 4c 2b 30 0d 02  |DRB  r0,rgbL+0..|
00000390  80 16 20 20 20 4c 44 52  42 20 20 72 31 2c 72 67  |..   LDRB  r1,rg|
000003a0  62 52 2b 30 0d 02 8a 04  0d 02 94 16 20 20 20 4c  |bR+0........   L|
000003b0  44 52 42 20 20 72 35 2c  72 67 62 4c 2b 31 0d 02  |DRB  r5,rgbL+1..|
000003c0  9e 16 20 20 20 4c 44 52  42 20 20 72 36 2c 72 67  |..   LDRB  r6,rg|
000003d0  62 52 2b 31 0d 02 a8 04  0d 02 b2 16 20 20 20 4c  |bR+1........   L|
000003e0  44 52 42 20 20 72 37 2c  72 67 62 4c 2b 32 0d 02  |DRB  r7,rgbL+2..|
000003f0  bc 17 20 20 20 4c 44 52  42 20 20 72 31 30 2c 72  |..   LDRB  r10,r|
00000400  67 62 52 2b 32 0d 02 c6  08 2e 63 6f 6c 0d 02 d0  |gbR+2.....col...|
00000410  04 0d 02 da 15 20 20 20  a4 64 69 76 28 30 2c 31  |.....   .div(0,1|
00000420  2c 39 2c 6c 72 29 0d 02  e4 04 0d 02 ee 15 20 20  |,9,lr)........  |
00000430  20 41 44 44 20 20 20 6c  72 2c 72 32 2c 6c 72 0d  | ADD   lr,r2,lr.|
00000440  02 f8 1a 20 20 20 4d 4f  56 20 20 20 72 31 33 2c  |...   MOV   r13,|
00000450  6c 72 2c 4c 53 52 20 23  31 0d 03 02 04 0d 03 0c  |lr,LSR #1.......|
00000460  15 20 20 20 a4 64 69 76  28 35 2c 36 2c 39 2c 6c  |.   .div(5,6,9,l|
00000470  72 29 0d 03 16 04 0d 03  20 15 20 20 20 41 44 44  |r)...... .   ADD|
00000480  20 20 20 6c 72 2c 72 33  2c 6c 72 0d 03 2a 19 20  |   lr,r3,lr..*. |
00000490  20 20 4d 4f 56 20 20 20  6c 72 2c 6c 72 2c 4c 53  |  MOV   lr,lr,LS|
000004a0  52 20 23 31 0d 03 34 1d  20 20 20 84 52 20 20 20  |R #1..4.   .R   |
000004b0  72 31 33 2c 72 31 33 2c  6c 72 2c 4c 53 4c 20 23  |r13,r13,lr,LSL #|
000004c0  38 0d 03 3e 04 0d 03 48  16 20 20 20 a4 64 69 76  |8..>...H.   .div|
000004d0  28 37 2c 31 30 2c 39 2c  6c 72 29 0d 03 52 04 0d  |(7,10,9,lr)..R..|
000004e0  03 5c 15 20 20 20 41 44  44 20 20 20 6c 72 2c 72  |.\.   ADD   lr,r|
000004f0  34 2c 6c 72 0d 03 66 19  20 20 20 4d 4f 56 20 20  |4,lr..f.   MOV  |
00000500  20 6c 72 2c 6c 72 2c 4c  53 52 20 23 31 0d 03 70  | lr,lr,LSR #1..p|
00000510  1e 20 20 20 84 52 20 20  20 72 31 33 2c 72 31 33  |.   .R   r13,r13|
00000520  2c 6c 72 2c 4c 53 4c 20  23 31 36 0d 03 7a 04 0d  |,lr,LSL #16..z..|
00000530  03 84 19 20 20 20 53 54  52 20 20 20 72 31 33 2c  |...   STR   r13,|
00000540  5b 72 31 31 5d 2c 23 34  0d 03 8e 04 0d 03 98 15  |[r11],#4........|
00000550  20 20 20 53 55 42 53 20  20 72 39 2c 72 39 2c 23  |   SUBS  r9,r9,#|
00000560  31 0d 03 a2 10 20 20 20  42 50 4c 20 20 20 63 6f  |1....   BPL   co|
00000570  6c 0d 03 ac 04 0d 03 b6  1b 20 20 20 41 44 44 20  |l........   ADD |
00000580  20 20 72 31 32 2c 72 31  32 2c 23 33 32 30 2a 34  |  r12,r12,#320*4|
00000590  0d 03 c0 04 0d 03 ca 15  20 20 20 53 55 42 53 20  |........   SUBS |
000005a0  20 72 38 2c 72 38 2c 23  31 0d 03 d4 10 20 20 20  | r8,r8,#1....   |
000005b0  42 50 4c 20 20 20 72 6f  77 0d 03 de 04 0d 03 e8  |BPL   row.......|
000005c0  12 20 20 20 4c 44 52 20  20 20 73 70 2c 53 50 0d  |.   LDR   sp,SP.|
000005d0  03 f2 16 20 20 20 4c 44  4d 46 44 20 73 70 20 21  |...   LDMFD sp !|
000005e0  2c 7b 70 63 7d 0d 03 fc  04 0d 04 06 04 0d 04 10  |,{pc}...........|
000005f0  04 0d 04 1a 10 2e 53 50  20 20 20 45 51 55 44 20  |......SP   EQUD |
00000600  30 0d 04 24 04 0d 04 2e  04 0d 04 38 12 2e 73 63  |0..$.......8..sc|
00000610  72 20 20 45 51 55 44 20  31 34 38 0d 04 42 11 20  |r  EQUD 148..B. |
00000620  20 20 20 20 20 45 51 55  44 20 2d 31 0d 04 4c 09  |     EQUD -1..L.|
00000630  2e 63 6f 6c 73 0d 04 56  10 2e 72 67 62 54 20 45  |.cols..V..rgbT E|
00000640  51 55 44 20 30 0d 04 60  10 2e 72 67 62 42 20 45  |QUD 0..`..rgbB E|
00000650  51 55 44 20 30 0d 04 6a  10 2e 72 67 62 4c 20 45  |QUD 0..j..rgbL E|
00000660  51 55 44 20 30 0d 04 74  10 2e 72 67 62 52 20 45  |QUD 0..t..rgbR E|
00000670  51 55 44 20 30 0d 04 7e  05 5d 0d 04 88 05 ed 0d  |QUD 0..~.]......|
00000680  04 92 24 c8 99 20 22 4f  53 5f 52 65 61 64 56 64  |..$.. "OS_ReadVd|
00000690  75 56 61 72 69 61 62 6c  65 73 22 2c 73 63 72 2c  |uVariables",scr,|
000006a0  73 63 72 0d 04 9c 33 21  73 63 72 3d 21 73 63 72  |scr...3!scr=!scr|
000006b0  2b 28 28 32 35 36 2d 73  69 7a 65 29 2f 32 29 2a  |+((256-size)/2)*|
000006c0  33 32 30 2a 34 2b 28 28  33 32 30 2d 73 69 7a 65  |320*4+((320-size|
000006d0  29 2f 32 29 2a 34 0d 04  a6 05 e1 0d 04 b0 05 3a  |)/2)*4.........:|
000006e0  0d 04 ba 13 dd 20 a4 64  69 76 28 61 2c 62 2c 64  |..... .div(a,b,d|
000006f0  2c 72 29 0d 04 c4 0d 5b  4f 50 54 20 70 61 73 73  |,r)....[OPT pass|
00000700  0d 04 ce 12 20 20 20 53  55 42 20 20 20 72 2c 61  |....   SUB   r,a|
00000710  2c 62 0d 04 d8 12 20 20  20 4d 55 4c 20 20 20 72  |,b....   MUL   r|
00000720  2c 64 2c 72 0d 04 e2 22  20 20 20 41 44 44 20 20  |,d,r..."   ADD  |
00000730  20 72 2c 62 2c 72 2c 41  53 52 20 23 28 aa 73 69  | r,b,r,ASR #(.si|
00000740  7a 65 2f aa 32 29 0d 04  ec 05 5d 0d 04 f6 07 3d  |ze/.2)....]....=|
00000750  22 22 0d ff                                       |""..|
00000754