Home » Archimedes archive » Acorn User » AU 1998-08.adf » Regulars » StarInfo/Adcock/InkBlot

StarInfo/Adcock/InkBlot

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 1998-08.adf » Regulars
Filename: StarInfo/Adcock/InkBlot
Read OK:
File size: 049E bytes
Load address: 0000
Exec address: 0000
File contents
    1m=13
    2MODE m:OFF
    3CASE m OF
    4WHEN13:m1=320:m2=255:m3=0:m4=18:m5=0.25:m6=1000
    5WHEN15:m1=640:m2=255:m3=1:m4=19:m5=0.25:m6=1020
    6WHEN28:m1=640:m2=479:m3=0:m4=19:m5=0.5:m6=947
    7OTHERWISE:PRINT "InkBlot only runs in modes 13,15 & 28":END
    8ENDCASE
    9DIM i 8:DIM o 4:i!0=149:i!4=-1:SYS49,i,o:BA=o!0
   10PROCC
   11DIM C(3600)
   12DIM S(3600)
   13FOR A=0 TO 35
   14FOR B=0 TO 99
   15D=B*3.6+A:IF D>=360 D-=360
   16C(A*100+B)=COS(RAD D)*(2^20)
   17S(A*100+B)=SIN(RAD D)*(2^20)
   18NEXT B
   19NEXT A
   20GCOL8TINT0:RECTANGLE FILL0,0,1280,1024
   21MOUSE ON:MOUSE RECTANGLE 5,5,1274,m6
   22R=1
   23REPEAT
   24MOUSE X,Y,B
   25A%=X<<m4:B%=(m2-(Y*m5))<<20:C%=S(R):D%=C(R)
   26CASE B OF
   27WHEN1:RECTANGLE FILL0,0,1280,1024
   28WHEN2:E%=128:F%=64:CALL G
   29WHEN4:E%=64:F%=128:CALL G
   30ENDCASE
   31R+=1
   32IF R>=3600THEN R=0
   33UNTIL0
   34DEF PROCC
   35DIM B 255
   36P%=B
   37[OPT 2
   38.sx EQUD m1
   39.sy EQUD m2
   40.Screen EQUD BA
   41.End STRB R10,[R5]
   42MOV R15,R14
   43.G LDR R6,sx
   44LDR R12,sy
   45MOV R10,R5
   46MOV R11,R4
   47LDR R4,Screen
   48.loop ADD R0,R0,R2
   49ADD R1,R1,R3
   50MOV R8,R0,LSR #20
   51MOV R9,R1,LSR #20
   52MLA R5,R9,R6,R8
   53ADD R5,R4,R5
   54LDRB R7,[R5]
   55CMP R7,R11
   56BEQ End
   57CMP R0,#(1<<20)
   58BLE End
   59CMP R1,#(1<<20)
   60BLE End
   61CMP R0,R6,LSL#20
   62BGE End
   63CMP R1,R12,LSL#20
   64BGE End
   65B loop
   66]
   67ENDPROC
   68
   69
   70
m=13
	� m:�

Ȏ m �
0�13:m1=320:m2=255:m3=0:m4=18:m5=0.25:m6=1000
0�15:m1=640:m2=255:m3=1:m4=19:m5=0.25:m6=1020
.�28:m1=640:m2=479:m3=0:m4=19:m5=0.5:m6=947
1:� "InkBlot only runs in modes 13,15 & 28":�
�
	.� i 8:� o 4:i!0=149:i!4=-1:ș49,i,o:BA=o!0

�C

� C(3600)

� S(3600)

� A=0 � 35
� B=0 � 99
D=B*3.6+A:� D>=360 D-=360
C(A*100+B)=�(� D)*(2^20)
S(A*100+B)=�(� D)*(2^20)
� B
� A
�8Ȝ0:ȓ Ȑ0,0,1280,1024
ȗ �:ȗ ȓ 5,5,1274,m6
R=1
�
ȗ X,Y,B
/A%=X<<m4:B%=(m2-(Y*m5))<<20:C%=S(R):D%=C(R)

Ȏ B �
�1:ȓ Ȑ0,0,1280,1024
�2:E%=128:F%=64:� G
�4:E%=64:F%=128:� G
�
R+=1
 � R>=3600� R=0
!�0
"� �C
#� B 255
$P%=B
%
[OPT 2
&.sx EQUD m1
'.sy EQUD m2
(.Screen EQUD BA
).End STRB R10,[R5]
*MOV R15,R14
+.G LDR R6,sx
,LDR R12,sy
-MOV R10,R5
.MOV R11,R4
/LDR R4,Screen
0.loop ADD R0,R0,R2
1ADD R1,R1,R3
2MOV R8,R0,LSR #20
3MOV R9,R1,LSR #20
4MLA R5,R9,R6,R8
5ADD R5,R4,R5
6LDRB R7,[R5]
7CMP R7,R11
8BEQ End
9CMP R0,#(1<<20)
:BLE End
;CMP R1,#(1<<20)
<BLE End
=CMP R0,R6,LSL#20
>BGE End
?CMP R1,R12,LSL#20
@BGE End
A
B loop
B]
C�
D
E
F
�
00000000  0d 00 01 08 6d 3d 31 33  0d 00 02 09 eb 20 6d 3a  |....m=13..... m:|
00000010  87 0d 00 03 0a c8 8e 20  6d 20 ca 0d 00 04 30 c9  |....... m ....0.|
00000020  31 33 3a 6d 31 3d 33 32  30 3a 6d 32 3d 32 35 35  |13:m1=320:m2=255|
00000030  3a 6d 33 3d 30 3a 6d 34  3d 31 38 3a 6d 35 3d 30  |:m3=0:m4=18:m5=0|
00000040  2e 32 35 3a 6d 36 3d 31  30 30 30 0d 00 05 30 c9  |.25:m6=1000...0.|
00000050  31 35 3a 6d 31 3d 36 34  30 3a 6d 32 3d 32 35 35  |15:m1=640:m2=255|
00000060  3a 6d 33 3d 31 3a 6d 34  3d 31 39 3a 6d 35 3d 30  |:m3=1:m4=19:m5=0|
00000070  2e 32 35 3a 6d 36 3d 31  30 32 30 0d 00 06 2e c9  |.25:m6=1020.....|
00000080  32 38 3a 6d 31 3d 36 34  30 3a 6d 32 3d 34 37 39  |28:m1=640:m2=479|
00000090  3a 6d 33 3d 30 3a 6d 34  3d 31 39 3a 6d 35 3d 30  |:m3=0:m4=19:m5=0|
000000a0  2e 35 3a 6d 36 3d 39 34  37 0d 00 07 31 7f 3a f1  |.5:m6=947...1.:.|
000000b0  20 22 49 6e 6b 42 6c 6f  74 20 6f 6e 6c 79 20 72  | "InkBlot only r|
000000c0  75 6e 73 20 69 6e 20 6d  6f 64 65 73 20 31 33 2c  |uns in modes 13,|
000000d0  31 35 20 26 20 32 38 22  3a e0 0d 00 08 05 cb 0d  |15 & 28":.......|
000000e0  00 09 2e de 20 69 20 38  3a de 20 6f 20 34 3a 69  |.... i 8:. o 4:i|
000000f0  21 30 3d 31 34 39 3a 69  21 34 3d 2d 31 3a c8 99  |!0=149:i!4=-1:..|
00000100  34 39 2c 69 2c 6f 3a 42  41 3d 6f 21 30 0d 00 0a  |49,i,o:BA=o!0...|
00000110  06 f2 43 0d 00 0b 0d de  20 43 28 33 36 30 30 29  |..C..... C(3600)|
00000120  0d 00 0c 0d de 20 53 28  33 36 30 30 29 0d 00 0d  |..... S(3600)...|
00000130  0e e3 20 41 3d 30 20 b8  20 33 35 0d 00 0e 0e e3  |.. A=0 . 35.....|
00000140  20 42 3d 30 20 b8 20 39  39 0d 00 0f 1d 44 3d 42  | B=0 . 99....D=B|
00000150  2a 33 2e 36 2b 41 3a e7  20 44 3e 3d 33 36 30 20  |*3.6+A:. D>=360 |
00000160  44 2d 3d 33 36 30 0d 00  10 1c 43 28 41 2a 31 30  |D-=360....C(A*10|
00000170  30 2b 42 29 3d 9b 28 b2  20 44 29 2a 28 32 5e 32  |0+B)=.(. D)*(2^2|
00000180  30 29 0d 00 11 1c 53 28  41 2a 31 30 30 2b 42 29  |0)....S(A*100+B)|
00000190  3d b5 28 b2 20 44 29 2a  28 32 5e 32 30 29 0d 00  |=.(. D)*(2^20)..|
000001a0  12 07 ed 20 42 0d 00 13  07 ed 20 41 0d 00 14 1c  |... B..... A....|
000001b0  e6 38 c8 9c 30 3a c8 93  20 c8 90 30 2c 30 2c 31  |.8..0:.. ..0,0,1|
000001c0  32 38 30 2c 31 30 32 34  0d 00 15 1a c8 97 20 ee  |280,1024...... .|
000001d0  3a c8 97 20 c8 93 20 35  2c 35 2c 31 32 37 34 2c  |:.. .. 5,5,1274,|
000001e0  6d 36 0d 00 16 07 52 3d  31 0d 00 17 05 f5 0d 00  |m6....R=1.......|
000001f0  18 0c c8 97 20 58 2c 59  2c 42 0d 00 19 2f 41 25  |.... X,Y,B.../A%|
00000200  3d 58 3c 3c 6d 34 3a 42  25 3d 28 6d 32 2d 28 59  |=X<<m4:B%=(m2-(Y|
00000210  2a 6d 35 29 29 3c 3c 32  30 3a 43 25 3d 53 28 52  |*m5))<<20:C%=S(R|
00000220  29 3a 44 25 3d 43 28 52  29 0d 00 1a 0a c8 8e 20  |):D%=C(R)...... |
00000230  42 20 ca 0d 00 1b 19 c9  31 3a c8 93 20 c8 90 30  |B ......1:.. ..0|
00000240  2c 30 2c 31 32 38 30 2c  31 30 32 34 0d 00 1c 17  |,0,1280,1024....|
00000250  c9 32 3a 45 25 3d 31 32  38 3a 46 25 3d 36 34 3a  |.2:E%=128:F%=64:|
00000260  d6 20 47 0d 00 1d 17 c9  34 3a 45 25 3d 36 34 3a  |. G.....4:E%=64:|
00000270  46 25 3d 31 32 38 3a d6  20 47 0d 00 1e 05 cb 0d  |F%=128:. G......|
00000280  00 1f 08 52 2b 3d 31 0d  00 20 12 e7 20 52 3e 3d  |...R+=1.. .. R>=|
00000290  33 36 30 30 8c 20 52 3d  30 0d 00 21 06 fd 30 0d  |3600. R=0..!..0.|
000002a0  00 22 08 dd 20 f2 43 0d  00 23 0b de 20 42 20 32  |.".. .C..#.. B 2|
000002b0  35 35 0d 00 24 08 50 25  3d 42 0d 00 25 0a 5b 4f  |55..$.P%=B..%.[O|
000002c0  50 54 20 32 0d 00 26 0f  2e 73 78 20 45 51 55 44  |PT 2..&..sx EQUD|
000002d0  20 6d 31 0d 00 27 0f 2e  73 79 20 45 51 55 44 20  | m1..'..sy EQUD |
000002e0  6d 32 0d 00 28 13 2e 53  63 72 65 65 6e 20 45 51  |m2..(..Screen EQ|
000002f0  55 44 20 42 41 0d 00 29  16 2e 45 6e 64 20 53 54  |UD BA..)..End ST|
00000300  52 42 20 52 31 30 2c 5b  52 35 5d 0d 00 2a 0f 4d  |RB R10,[R5]..*.M|
00000310  4f 56 20 52 31 35 2c 52  31 34 0d 00 2b 10 2e 47  |OV R15,R14..+..G|
00000320  20 4c 44 52 20 52 36 2c  73 78 0d 00 2c 0e 4c 44  | LDR R6,sx..,.LD|
00000330  52 20 52 31 32 2c 73 79  0d 00 2d 0e 4d 4f 56 20  |R R12,sy..-.MOV |
00000340  52 31 30 2c 52 35 0d 00  2e 0e 4d 4f 56 20 52 31  |R10,R5....MOV R1|
00000350  31 2c 52 34 0d 00 2f 11  4c 44 52 20 52 34 2c 53  |1,R4../.LDR R4,S|
00000360  63 72 65 65 6e 0d 00 30  16 2e 6c 6f 6f 70 20 41  |creen..0..loop A|
00000370  44 44 20 52 30 2c 52 30  2c 52 32 0d 00 31 10 41  |DD R0,R0,R2..1.A|
00000380  44 44 20 52 31 2c 52 31  2c 52 33 0d 00 32 15 4d  |DD R1,R1,R3..2.M|
00000390  4f 56 20 52 38 2c 52 30  2c 4c 53 52 20 23 32 30  |OV R8,R0,LSR #20|
000003a0  0d 00 33 15 4d 4f 56 20  52 39 2c 52 31 2c 4c 53  |..3.MOV R9,R1,LS|
000003b0  52 20 23 32 30 0d 00 34  13 4d 4c 41 20 52 35 2c  |R #20..4.MLA R5,|
000003c0  52 39 2c 52 36 2c 52 38  0d 00 35 10 41 44 44 20  |R9,R6,R8..5.ADD |
000003d0  52 35 2c 52 34 2c 52 35  0d 00 36 10 4c 44 52 42  |R5,R4,R5..6.LDRB|
000003e0  20 52 37 2c 5b 52 35 5d  0d 00 37 0e 43 4d 50 20  | R7,[R5]..7.CMP |
000003f0  52 37 2c 52 31 31 0d 00  38 0b 42 45 51 20 45 6e  |R7,R11..8.BEQ En|
00000400  64 0d 00 39 13 43 4d 50  20 52 30 2c 23 28 31 3c  |d..9.CMP R0,#(1<|
00000410  3c 32 30 29 0d 00 3a 0b  42 4c 45 20 45 6e 64 0d  |<20)..:.BLE End.|
00000420  00 3b 13 43 4d 50 20 52  31 2c 23 28 31 3c 3c 32  |.;.CMP R1,#(1<<2|
00000430  30 29 0d 00 3c 0b 42 4c  45 20 45 6e 64 0d 00 3d  |0)..<.BLE End..=|
00000440  14 43 4d 50 20 52 30 2c  52 36 2c 4c 53 4c 23 32  |.CMP R0,R6,LSL#2|
00000450  30 0d 00 3e 0b 42 47 45  20 45 6e 64 0d 00 3f 15  |0..>.BGE End..?.|
00000460  43 4d 50 20 52 31 2c 52  31 32 2c 4c 53 4c 23 32  |CMP R1,R12,LSL#2|
00000470  30 0d 00 40 0b 42 47 45  20 45 6e 64 0d 00 41 0a  |0..@.BGE End..A.|
00000480  42 20 6c 6f 6f 70 0d 00  42 05 5d 0d 00 43 05 e1  |B loop..B.]..C..|
00000490  0d 00 44 04 0d 00 45 04  0d 00 46 04 0d ff        |..D...E...F...|
0000049e