Home » Personal collection » Acorn hard disk » misc » dcfprogs » Plasma2

Plasma2

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 » Personal collection » Acorn hard disk » misc » dcfprogs
Filename: Plasma2
Read OK:
File size: 052D bytes
Load address: 0000
Exec address: 0000
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10MODE 15
   20ON ERROR REPORT:PRINT;" @ ";ERL:END
   30PROCass
   40FORr=0TO255:?(rantab+r)=0:NEXT
   50FORr=1TO255:REPEAT
   60ad=rantab+RND(256)-1
   70IF?ad<>0 THEN UNTIL FALSE ELSE UNTIL TRUE
   80?ad=r
   90NEXT
  100CALL plasma
  110REPEAT UNTIL FALSE
  120:
  130DEFPROCass
  140DIM space &1000
  150FORpass=0TO2STEP2
  160P%=space
  170[OPT pass
  180.plasma STMFD R13!,{R14}
  190MOV R0,#1
  200ADR R1,xpos
  210STR R0,[R1]
  220.yloop MOV R0,#1
  230ADR R1,ypos
  240STR R0,[R1]
  250.xloop ADR R10,xpos
  260STR R0,[R10]
  270ADR R10,ypos
  280STR R1,[R10]
  290:
  300BL getmem
  310.getlop BL getran
  320\LDR R1,[R0,#-1]
  330\LDR R2,[R0]
  340\SUB R1,R1,R2
  350\CMP R1,#-2
  360\BCS getlop
  370\CMP R1,#2
  380\BCS getlop
  390STR R1,[R0]
  400:
  410ADR R10,xpos
  420LDR R0,[R10]
  430ADR R10,ypos
  440LDR R1,[R10]
  450:
  460ADD R0,R0,#1
  470CMP R0,#639
  480BNExloop
  490ADD R1,R1,#1
  500CMP R1,#255
  510BNEyloop
  520.
  530LDMFD R13!,{PC}
  540:
  550.getmem ADR R0,screen
  560LDR R0,[R0]
  570ADR R1,xpos
  580LDR R1,[R1]
  590ADD R0,R0,R1
  600ADR R1,ypos
  610LDR R1,[R1]
  620MOV R2,#&280
  630MUL R3,R1,R2
  640ADD R0,R0,R3
  650MOV PC,R14
  660:
  670.getran ADR R1,ranno
  680LDRB R0,[R1]
  690EOR R0,R0,#&73
  700ADD R0,R0,#&45
  710AND R0,R0,#&FF
  720ADR R2,rantab
  730LDRB R0,[R2,R0]
  740STRB R0,[R1]
  750LDR R0,[R2,R0]
  760.ranlop CMP R0,#7
  770BCC rangot
  780SUB R0,R0,#5
  790B ranlop
  800.rangot SUB R1,R0,#3
  810MOV PC,R14
  820:
  830.ranno EQUB 0
  840.screen EQUD &1FD8000
  850.xpos EQUD 1
  860.ypos EQUD 1
  870.rantab
  880]:NEXT
  890ENDPROC

� 15
� � �:�;" @ ";�:�
�ass
(�r=0�255:?(rantab+r)=0:�
2�r=1�255:�
<ad=rantab+�(256)-1
F�?ad<>0 � � � � � �
P	?ad=r
Z�
d� plasma
n	� � �
x:
�	��ass
�� space &1000
��pass=0�2�2
�P%=space
�
[OPT pass
�.plasma STMFD R13!,{R14}
�
MOV R0,#1
�ADR R1,xpos
�STR R0,[R1]
�.yloop MOV R0,#1
�ADR R1,ypos
�STR R0,[R1]
�.xloop ADR R10,xpos
STR R0,[R10]
ADR R10,ypos
STR R1,[R10]
":
,
BL getmem
6.getlop BL getran
@\LDR R1,[R0,#-1]
J\LDR R2,[R0]
T\SUB R1,R1,R2
^\CMP R1,#-2
h\BCS getlop
r\CMP R1,#2
|\BCS getlop
�STR R1,[R0]
�:
�ADR R10,xpos
�LDR R0,[R10]
�ADR R10,ypos
�LDR R1,[R10]
�:
�ADD R0,R0,#1
�CMP R0,#639
�BNExloop
�ADD R1,R1,#1
�CMP R1,#255
�BNEyloop
.
LDMFD R13!,{PC}
:
&.getmem ADR R0,screen
0LDR R0,[R0]
:ADR R1,xpos
DLDR R1,[R1]
NADD R0,R0,R1
XADR R1,ypos
bLDR R1,[R1]
lMOV R2,#&280
vMUL R3,R1,R2
�ADD R0,R0,R3
�MOV PC,R14
�:
�.getran ADR R1,ranno
�LDRB R0,[R1]
�� R0,R0,#&73
�ADD R0,R0,#&45
�� R0,R0,#&FF
�ADR R2,rantab
�LDRB R0,[R2,R0]
�STRB R0,[R1]
�LDR R0,[R2,R0]
�.ranlop CMP R0,#7
BCC rangot
SUB R0,R0,#5
B ranlop
 .rangot SUB R1,R0,#3
*MOV PC,R14
4:
>.ranno EQUB 0
H.screen EQUD &1FD8000
R.xpos EQUD 1
\.ypos EQUD 1
f.rantab
p]:�
z�
�
00000000  0d 00 0a 08 eb 20 31 35  0d 00 14 15 ee 20 85 20  |..... 15..... . |
00000010  f6 3a f1 3b 22 20 40 20  22 3b 9e 3a e0 0d 00 1e  |.:.;" @ ";.:....|
00000020  08 f2 61 73 73 0d 00 28  1c e3 72 3d 30 b8 32 35  |..ass..(..r=0.25|
00000030  35 3a 3f 28 72 61 6e 74  61 62 2b 72 29 3d 30 3a  |5:?(rantab+r)=0:|
00000040  ed 0d 00 32 0e e3 72 3d  31 b8 32 35 35 3a f5 0d  |...2..r=1.255:..|
00000050  00 3c 16 61 64 3d 72 61  6e 74 61 62 2b b3 28 32  |.<.ad=rantab+.(2|
00000060  35 36 29 2d 31 0d 00 46  17 e7 3f 61 64 3c 3e 30  |56)-1..F..?ad<>0|
00000070  20 8c 20 fd 20 a3 20 8b  20 fd 20 b9 0d 00 50 09  | . . . . . ...P.|
00000080  3f 61 64 3d 72 0d 00 5a  05 ed 0d 00 64 0c d6 20  |?ad=r..Z....d.. |
00000090  70 6c 61 73 6d 61 0d 00  6e 09 f5 20 fd 20 a3 0d  |plasma..n.. . ..|
000000a0  00 78 05 3a 0d 00 82 09  dd f2 61 73 73 0d 00 8c  |.x.:......ass...|
000000b0  11 de 20 73 70 61 63 65  20 26 31 30 30 30 0d 00  |.. space &1000..|
000000c0  96 0f e3 70 61 73 73 3d  30 b8 32 88 32 0d 00 a0  |...pass=0.2.2...|
000000d0  0c 50 25 3d 73 70 61 63  65 0d 00 aa 0d 5b 4f 50  |.P%=space....[OP|
000000e0  54 20 70 61 73 73 0d 00  b4 1c 2e 70 6c 61 73 6d  |T pass.....plasm|
000000f0  61 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |a STMFD R13!,{R1|
00000100  34 7d 0d 00 be 0d 4d 4f  56 20 52 30 2c 23 31 0d  |4}....MOV R0,#1.|
00000110  00 c8 0f 41 44 52 20 52  31 2c 78 70 6f 73 0d 00  |...ADR R1,xpos..|
00000120  d2 0f 53 54 52 20 52 30  2c 5b 52 31 5d 0d 00 dc  |..STR R0,[R1]...|
00000130  14 2e 79 6c 6f 6f 70 20  4d 4f 56 20 52 30 2c 23  |..yloop MOV R0,#|
00000140  31 0d 00 e6 0f 41 44 52  20 52 31 2c 79 70 6f 73  |1....ADR R1,ypos|
00000150  0d 00 f0 0f 53 54 52 20  52 30 2c 5b 52 31 5d 0d  |....STR R0,[R1].|
00000160  00 fa 17 2e 78 6c 6f 6f  70 20 41 44 52 20 52 31  |....xloop ADR R1|
00000170  30 2c 78 70 6f 73 0d 01  04 10 53 54 52 20 52 30  |0,xpos....STR R0|
00000180  2c 5b 52 31 30 5d 0d 01  0e 10 41 44 52 20 52 31  |,[R10]....ADR R1|
00000190  30 2c 79 70 6f 73 0d 01  18 10 53 54 52 20 52 31  |0,ypos....STR R1|
000001a0  2c 5b 52 31 30 5d 0d 01  22 05 3a 0d 01 2c 0d 42  |,[R10]..".:..,.B|
000001b0  4c 20 67 65 74 6d 65 6d  0d 01 36 15 2e 67 65 74  |L getmem..6..get|
000001c0  6c 6f 70 20 42 4c 20 67  65 74 72 61 6e 0d 01 40  |lop BL getran..@|
000001d0  14 5c 4c 44 52 20 52 31  2c 5b 52 30 2c 23 2d 31  |.\LDR R1,[R0,#-1|
000001e0  5d 0d 01 4a 10 5c 4c 44  52 20 52 32 2c 5b 52 30  |]..J.\LDR R2,[R0|
000001f0  5d 0d 01 54 11 5c 53 55  42 20 52 31 2c 52 31 2c  |]..T.\SUB R1,R1,|
00000200  52 32 0d 01 5e 0f 5c 43  4d 50 20 52 31 2c 23 2d  |R2..^.\CMP R1,#-|
00000210  32 0d 01 68 0f 5c 42 43  53 20 67 65 74 6c 6f 70  |2..h.\BCS getlop|
00000220  0d 01 72 0e 5c 43 4d 50  20 52 31 2c 23 32 0d 01  |..r.\CMP R1,#2..|
00000230  7c 0f 5c 42 43 53 20 67  65 74 6c 6f 70 0d 01 86  ||.\BCS getlop...|
00000240  0f 53 54 52 20 52 31 2c  5b 52 30 5d 0d 01 90 05  |.STR R1,[R0]....|
00000250  3a 0d 01 9a 10 41 44 52  20 52 31 30 2c 78 70 6f  |:....ADR R10,xpo|
00000260  73 0d 01 a4 10 4c 44 52  20 52 30 2c 5b 52 31 30  |s....LDR R0,[R10|
00000270  5d 0d 01 ae 10 41 44 52  20 52 31 30 2c 79 70 6f  |]....ADR R10,ypo|
00000280  73 0d 01 b8 10 4c 44 52  20 52 31 2c 5b 52 31 30  |s....LDR R1,[R10|
00000290  5d 0d 01 c2 05 3a 0d 01  cc 10 41 44 44 20 52 30  |]....:....ADD R0|
000002a0  2c 52 30 2c 23 31 0d 01  d6 0f 43 4d 50 20 52 30  |,R0,#1....CMP R0|
000002b0  2c 23 36 33 39 0d 01 e0  0c 42 4e 45 78 6c 6f 6f  |,#639....BNExloo|
000002c0  70 0d 01 ea 10 41 44 44  20 52 31 2c 52 31 2c 23  |p....ADD R1,R1,#|
000002d0  31 0d 01 f4 0f 43 4d 50  20 52 31 2c 23 32 35 35  |1....CMP R1,#255|
000002e0  0d 01 fe 0c 42 4e 45 79  6c 6f 6f 70 0d 02 08 05  |....BNEyloop....|
000002f0  2e 0d 02 12 13 4c 44 4d  46 44 20 52 31 33 21 2c  |.....LDMFD R13!,|
00000300  7b 50 43 7d 0d 02 1c 05  3a 0d 02 26 19 2e 67 65  |{PC}....:..&..ge|
00000310  74 6d 65 6d 20 41 44 52  20 52 30 2c 73 63 72 65  |tmem ADR R0,scre|
00000320  65 6e 0d 02 30 0f 4c 44  52 20 52 30 2c 5b 52 30  |en..0.LDR R0,[R0|
00000330  5d 0d 02 3a 0f 41 44 52  20 52 31 2c 78 70 6f 73  |]..:.ADR R1,xpos|
00000340  0d 02 44 0f 4c 44 52 20  52 31 2c 5b 52 31 5d 0d  |..D.LDR R1,[R1].|
00000350  02 4e 10 41 44 44 20 52  30 2c 52 30 2c 52 31 0d  |.N.ADD R0,R0,R1.|
00000360  02 58 0f 41 44 52 20 52  31 2c 79 70 6f 73 0d 02  |.X.ADR R1,ypos..|
00000370  62 0f 4c 44 52 20 52 31  2c 5b 52 31 5d 0d 02 6c  |b.LDR R1,[R1]..l|
00000380  10 4d 4f 56 20 52 32 2c  23 26 32 38 30 0d 02 76  |.MOV R2,#&280..v|
00000390  10 4d 55 4c 20 52 33 2c  52 31 2c 52 32 0d 02 80  |.MUL R3,R1,R2...|
000003a0  10 41 44 44 20 52 30 2c  52 30 2c 52 33 0d 02 8a  |.ADD R0,R0,R3...|
000003b0  0e 4d 4f 56 20 50 43 2c  52 31 34 0d 02 94 05 3a  |.MOV PC,R14....:|
000003c0  0d 02 9e 18 2e 67 65 74  72 61 6e 20 41 44 52 20  |.....getran ADR |
000003d0  52 31 2c 72 61 6e 6e 6f  0d 02 a8 10 4c 44 52 42  |R1,ranno....LDRB|
000003e0  20 52 30 2c 5b 52 31 5d  0d 02 b2 10 82 20 52 30  | R0,[R1]..... R0|
000003f0  2c 52 30 2c 23 26 37 33  0d 02 bc 12 41 44 44 20  |,R0,#&73....ADD |
00000400  52 30 2c 52 30 2c 23 26  34 35 0d 02 c6 10 80 20  |R0,R0,#&45..... |
00000410  52 30 2c 52 30 2c 23 26  46 46 0d 02 d0 11 41 44  |R0,R0,#&FF....AD|
00000420  52 20 52 32 2c 72 61 6e  74 61 62 0d 02 da 13 4c  |R R2,rantab....L|
00000430  44 52 42 20 52 30 2c 5b  52 32 2c 52 30 5d 0d 02  |DRB R0,[R2,R0]..|
00000440  e4 10 53 54 52 42 20 52  30 2c 5b 52 31 5d 0d 02  |..STRB R0,[R1]..|
00000450  ee 12 4c 44 52 20 52 30  2c 5b 52 32 2c 52 30 5d  |..LDR R0,[R2,R0]|
00000460  0d 02 f8 15 2e 72 61 6e  6c 6f 70 20 43 4d 50 20  |.....ranlop CMP |
00000470  52 30 2c 23 37 0d 03 02  0e 42 43 43 20 72 61 6e  |R0,#7....BCC ran|
00000480  67 6f 74 0d 03 0c 10 53  55 42 20 52 30 2c 52 30  |got....SUB R0,R0|
00000490  2c 23 35 0d 03 16 0c 42  20 72 61 6e 6c 6f 70 0d  |,#5....B ranlop.|
000004a0  03 20 18 2e 72 61 6e 67  6f 74 20 53 55 42 20 52  |. ..rangot SUB R|
000004b0  31 2c 52 30 2c 23 33 0d  03 2a 0e 4d 4f 56 20 50  |1,R0,#3..*.MOV P|
000004c0  43 2c 52 31 34 0d 03 34  05 3a 0d 03 3e 11 2e 72  |C,R14..4.:..>..r|
000004d0  61 6e 6e 6f 20 45 51 55  42 20 30 0d 03 48 19 2e  |anno EQUB 0..H..|
000004e0  73 63 72 65 65 6e 20 45  51 55 44 20 26 31 46 44  |screen EQUD &1FD|
000004f0  38 30 30 30 0d 03 52 10  2e 78 70 6f 73 20 45 51  |8000..R..xpos EQ|
00000500  55 44 20 31 0d 03 5c 10  2e 79 70 6f 73 20 45 51  |UD 1..\..ypos EQ|
00000510  55 44 20 31 0d 03 66 0b  2e 72 61 6e 74 61 62 0d  |UD 1..f..rantab.|
00000520  03 70 07 5d 3a ed 0d 03  7a 05 e1 0d ff           |.p.]:...z....|
0000052d