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