Home » Archimedes archive » Acorn Computing » 1993 09 Mega Disk.adf » 93_09 » Miscellany/Grafix/GRAFIX!

Miscellany/Grafix/GRAFIX!

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 Computing » 1993 09 Mega Disk.adf » 93_09
Filename: Miscellany/Grafix/GRAFIX!
Read OK:
File size: 0BFE bytes
Load address: 0000
Exec address: 0000
File contents
   10REM> GRAFIX!
   20REM by Mike Goldberg
   30REM (c) Acorn Computing
   35MODE15
   40MODE13
   50OFF
   60DIMdx%(7),dy%(7)
   70FORI%=0TO7
   80READdx%(I%),dy%(I%)
   90dx%(I%)=dx%(I%)*16
  100dy%(I%)=dy%(I%)*16
  110NEXT
  120DATA0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1
  130PROCsprites
  140PROCpic
  150
  160REPEAT
  170G=GET-48
  180CASE G OF
  190WHEN 0:PROCpic
  200WHEN 1:PROCpic:PROCfx1
  210WHEN 2:PROCpic:PROCfx2
  220WHEN 3:PROCpic:PROCfx3
  230WHEN 4:PROCpic:PROCfx4
  240WHEN 5:PROCpic:PROCfx5
  250WHEN 6:PROCpic:PROCfx6
  260WHEN 7:PROCfx7
  270WHEN 8:PROCfx8
  280WHEN 9:PROCfx9
  290ENDCASE
  300UNTIL0
  310
  320END
  330
  340REM PIC
  350DEFPROCpic
  360CLS
  370GCOL2
  380X%=320
  390Y%=256
  400W%=400
  410H%=600
  420SYS O$,&222,area%,pic%,X%,Y%,0
  430ENDPROC
  440
  450REM FX1
  460DEFPROCfx1
  470Z%=0
  480FORI%=Y% TO Y%+H% STEP4
  490Z%+=4
  500RECTANGLEFILL X%,I%,W%,0 TO X%+Z%,I%
  510NEXT
  520ENDPROC
  530
  540REM FX2
  550DEFPROCfx2
  560Z%=0
  570offset%=4
  580FORI%=Y% TO Y%+H% STEP4
  590Z%+=offset%
  600RECTANGLEFILL X%,I%,W%,0 TO X%+Z%,I%
  610IFI%>=Y%+H%/2offset%=-4
  620NEXT
  630ENDPROC
  640
  650REM FX3
  660DEFPROCfx3
  670C%=0
  680Z%=0
  690offset%=8
  700FORI%=Y% TO Y%+H% STEP4
  710IFC%<offset%Z%+=4
  720IFC%>=offset%Z%-=4
  730RECTANGLEFILL X%,I%,W%,0 TO X%+Z%,I%
  740C%=(C%+1)MOD(offset%*2)
  750NEXT
  760ENDPROC
  770
  780REM FX4
  790DEFPROCfx4
  800FORJ%=0TOW%/2STEP4
  810FORI%=Y% TO Y%+H% STEP4
  820RECTANGLEFILL X%,I%,(W%/2)-4,0 TO X%+4,I%
  830RECTANGLEFILL X%+(W%/2)+4,I%,(W%/2)-4,0 TO X%+(W%/2),I%
  840NEXT
  850NEXT
  860PROCpic
  870ENDPROC
  880
  890REM FX5
  900DEFPROCfx5
  910Z%=0
  920FORI%=X% TO X%+W% STEP4
  930Z%+=4
  940RECTANGLEFILL I%,Y%,0,H% TO I%,Y%-Z%
  950NEXT
  960ENDPROC
  970
  980REM  FX6
  990DEFPROCfx6
 1000A%=16
 1010width%=0
 1020FORJ%=Y% TO Y%-H% STEP-A%
 1030FORI%=X% TO X%+W% STEPwidth%+8
 1040RECTANGLEFILL I%,J%+A%,width%,H% TO I%,J%
 1050NEXT
 1060NEXT
 1070ENDPROC
 1080
 1090REM FX7
 1100DEFPROCfx7
 1110CLS
 1120SYS O$,&222,area%,pic%,X%,Y%,3
 1130GCOL2,0
 1140 REM GCOL2,3:G=GET
 1150TINT2,0
 1160CIRCLEFILLX%+W%/2,Y%+H%/2,200
 1170 REM G=GET
 1180SYS O$,&222,area%,pic%,X%,Y%,3
 1190
 1200ENDPROC
 1210
 1220REM FX8
 1230DEFPROCfx8
 1240x%=X%+W%/2
 1250y%=Y%+H%/2
 1260R%=RND(8)-1
 1270SYS6,112,2:CLS
 1280SYS6,112,1:CLS
 1290Z%=1
 1300GCOL2,0:TINT2,0
 1310REPEAT
 1320Z%=3-Z%
 1330SYS6,112,Z%
 1340CLS
 1350IFINKEY-101 GCOL0,63:MOVEx%-160,y%:DRAWX%+W%/2,64:DRAWx%+160,y%:GCOL2,0:TINT2,0
 1360SYS O$,&222,area%,pic%,X%,Y%,3
 1370CIRCLEFILLx%,y%,160
 1380SYS O$,&222,area%,pic%,X%,Y%,3
 1390SYS6,113,Z%
 1400WAIT
 1410IFRND(8)=1R%=RND(8)-1
 1420IFx%+dx%(R%)<X% ORx%+dx%(R%)>X%+W%GOTO1410
 1430IFy%+dy%(R%)<Y% ORy%+dy%(R%)>Y%+H%GOTO1410
 1440x%+=dx%(R%)
 1450y%+=dy%(R%)
 1460UNTILINKEY-40ORINKEY-74
 1470SYS6,112,1:SYS6,113,1
 1480CLS:PROCpic
 1490ENDPROC
 1500
 1510REM FX9
 1520DEFPROCfx9
 1530r%=8:GCOL2,0:TINT2,0
 1540SYS6,112,2:CLS:SYS6,112,1:CLS
 1550x%=X%+W%/2:y%=Y%+H%/2
 1560REPEAT
 1570Z%=3-Z%:SYS6,112,Z%
 1580CLS
 1590SYS O$,&222,area%,pic%,X%,Y%,3
 1600CIRCLEFILLx%,y%,r%
 1610SYS O$,&222,area%,pic%,X%,Y%,3
 1620SYS6,113,Z%
 1630WAIT
 1640r%+=8
 1650UNTILINKEY-40ORINKEY-74ORr%>(H%/2)+48
 1660SYS6,112,1:SYS6,113,1
 1670ENDPROC
 1680
 1690REM +++++++++++++++++++++++++++++++
 1700DEFPROCsprites
 1710O$="OS_SpriteOp"
 1720REM  Load in the Spritefile
 1730sprites$="<MAGs$Dir>.FACEFILE"
 1740file%=OPENIN(sprites$)
 1750size%=EXT#file%+64
 1760CLOSE#file%
 1770
 1780REM Dimension an AREA the SIZE of           the file to store sprites in
 1790DIM area% size%
 1800area%!0=size%
 1810
 1820REM Initialise area to load the             sprite definitions to
 1830SYS O$,256+9,area%
 1840
 1850REM Now load the sprite definitions         to this area
 1860SYS O$,256+10,area%,sprites$
 1870
 1880REM SORT SPRITES OUT
 1890PROCsetsprite("PIC",pic%,h%,w%)
 1900ENDPROC
 1910
 1920REM Init sprites
 1930DEFPROCsetsprite(string$,RETURN value%,RETURN width%,RETURN height%)
 1940SYS O$,256+24,area%,string$ TO,,value%
 1950SYS O$,256+40,area%,string$ TO,,,width%,height%
 1960ENDPROC

�> GRAFIX!
� by Mike Goldberg
� (c) Acorn Computing
#�15
(�13
2�
<�dx%(7),dy%(7)
F�I%=0�7
P�dx%(I%),dy%(I%)
Zdx%(I%)=dx%(I%)*16
ddy%(I%)=dy%(I%)*16
n�
x*�0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1
��sprites
��pic
�
��
�
G=�-48
�
Ȏ G �
�� 0:�pic
�� 1:�pic:�fx1
�� 2:�pic:�fx2
�� 3:�pic:�fx3
�� 4:�pic:�fx4
�� 5:�pic:�fx5
�� 6:�pic:�fx6
� 7:�fx7
� 8:�fx8
� 9:�fx9
"�
,�0
6
@�
J
T	� PIC
^	��pic
h�
r�2
|
X%=320
�
Y%=256
�
W%=400
�
H%=600
�!ș O$,&222,area%,pic%,X%,Y%,0
��
�
�	� FX1
�	��fx1
�Z%=0
��I%=Y% � Y%+H% �4
�	Z%+=4
�ȓȐ X%,I%,W%,0 � X%+Z%,I%
��
�

	� FX2
&	��fx2
0Z%=0
:
offset%=4
D�I%=Y% � Y%+H% �4
NZ%+=offset%
XȓȐ X%,I%,W%,0 � X%+Z%,I%
b�I%>=Y%+H%/2offset%=-4
l�
v�
�
�	� FX3
�	��fx3
�C%=0
�Z%=0
�
offset%=8
��I%=Y% � Y%+H% �4
��C%<offset%Z%+=4
��C%>=offset%Z%-=4
�ȓȐ X%,I%,W%,0 � X%+Z%,I%
�C%=(C%+1)�(offset%*2)
��
��

	� FX4
	��fx4
 �J%=0�W%/2�4
*�I%=Y% � Y%+H% �4
4#ȓȐ X%,I%,(W%/2)-4,0 � X%+4,I%
>1ȓȐ X%+(W%/2)+4,I%,(W%/2)-4,0 � X%+(W%/2),I%
H�
R�
\�pic
f�
p
z	� FX5
�	��fx5
�Z%=0
��I%=X% � X%+W% �4
�	Z%+=4
�ȓȐ I%,Y%,0,H% � I%,Y%-Z%
��
��
�
�
�  FX6
�	��fx6
�	A%=16
�width%=0
��J%=Y% � Y%-H% �-A%
�I%=X% � X%+W% �width%+8
#ȓȐ I%,J%+A%,width%,H% � I%,J%
�
$�
.�
8
B	� FX7
L	��fx7
V�
`!ș O$,&222,area%,pic%,X%,Y%,3
j�2,0
t � GCOL2,3:G=GET
~	Ȝ2,0
�ȏȐX%+W%/2,Y%+H%/2,200
� � G=GET
�!ș O$,&222,area%,pic%,X%,Y%,3
�
��
�
�	� FX8
�	��fx8
�x%=X%+W%/2
�y%=Y%+H%/2
�
R%=�(8)-1
�ș6,112,2:�
ș6,112,1:�

Z%=1
�2,0:Ȝ2,0
�
(Z%=3-Z%
2ș6,112,Z%
<�
F=�-101 �0,63:�x%-160,y%:�X%+W%/2,64:�x%+160,y%:�2,0:Ȝ2,0
P!ș O$,&222,area%,pic%,X%,Y%,3
ZȏȐx%,y%,160
d!ș O$,&222,area%,pic%,X%,Y%,3
nș6,113,Z%
xȖ
��(8)=1R%=�(8)-1
�)�x%+dx%(R%)<X% �x%+dx%(R%)>X%+W%�tBE
�)�y%+dy%(R%)<Y% �y%+dy%(R%)>Y%+H%�tBE
�x%+=dx%(R%)
�y%+=dy%(R%)
���-40��-74
�ș6,112,1:ș6,113,1
�
�:�pic
��
�
�	� FX9
�	��fx9
�r%=8:�2,0:Ȝ2,0
ș6,112,2:�:ș6,112,1:�
x%=X%+W%/2:y%=Y%+H%/2
�
"Z%=3-Z%:ș6,112,Z%
,�
6!ș O$,&222,area%,pic%,X%,Y%,3
@ȏȐx%,y%,r%
J!ș O$,&222,area%,pic%,X%,Y%,3
Tș6,113,Z%
^Ȗ
h	r%+=8
r��-40��-74�r%>(H%/2)+48
|ș6,112,1:ș6,113,1
��
�
�%� +++++++++++++++++++++++++++++++
�
��sprites
�O$="OS_SpriteOp"
��  Load in the Spritefile
�"sprites$="<MAGs$Dir>.FACEFILE"
�file%=�(sprites$)
�size%=�#file%+64
��#file%
�
�J� Dimension an AREA the SIZE of           the file to store sprites in
�� area% size%
area%!0=size%

C� Initialise area to load the             sprite definitions to
&ș O$,256+9,area%
0
::� Now load the sprite definitions         to this area
Dș O$,256+10,area%,sprites$
N
X� SORT SPRITES OUT
b �setsprite("PIC",pic%,h%,w%)
l�
v
�� Init sprites
�4��setsprite(string$,� value%,� width%,� height%)
�(ș O$,256+24,area%,string$ �,,value%
�1ș O$,256+40,area%,string$ �,,,width%,height%
��
�
00000000  0d 00 0a 0e f4 3e 20 47  52 41 46 49 58 21 0d 00  |.....> GRAFIX!..|
00000010  14 16 f4 20 62 79 20 4d  69 6b 65 20 47 6f 6c 64  |... by Mike Gold|
00000020  62 65 72 67 0d 00 1e 19  f4 20 28 63 29 20 41 63  |berg..... (c) Ac|
00000030  6f 72 6e 20 43 6f 6d 70  75 74 69 6e 67 0d 00 23  |orn Computing..#|
00000040  07 eb 31 35 0d 00 28 07  eb 31 33 0d 00 32 05 87  |..15..(..13..2..|
00000050  0d 00 3c 12 de 64 78 25  28 37 29 2c 64 79 25 28  |..<..dx%(7),dy%(|
00000060  37 29 0d 00 46 0b e3 49  25 3d 30 b8 37 0d 00 50  |7)..F..I%=0.7..P|
00000070  14 f3 64 78 25 28 49 25  29 2c 64 79 25 28 49 25  |..dx%(I%),dy%(I%|
00000080  29 0d 00 5a 16 64 78 25  28 49 25 29 3d 64 78 25  |)..Z.dx%(I%)=dx%|
00000090  28 49 25 29 2a 31 36 0d  00 64 16 64 79 25 28 49  |(I%)*16..d.dy%(I|
000000a0  25 29 3d 64 79 25 28 49  25 29 2a 31 36 0d 00 6e  |%)=dy%(I%)*16..n|
000000b0  05 ed 0d 00 78 2a dc 30  2c 31 2c 31 2c 31 2c 31  |....x*.0,1,1,1,1|
000000c0  2c 30 2c 31 2c 2d 31 2c  30 2c 2d 31 2c 2d 31 2c  |,0,1,-1,0,-1,-1,|
000000d0  2d 31 2c 2d 31 2c 30 2c  2d 31 2c 31 0d 00 82 0c  |-1,-1,0,-1,1....|
000000e0  f2 73 70 72 69 74 65 73  0d 00 8c 08 f2 70 69 63  |.sprites.....pic|
000000f0  0d 00 96 04 0d 00 a0 05  f5 0d 00 aa 0a 47 3d a5  |.............G=.|
00000100  2d 34 38 0d 00 b4 0a c8  8e 20 47 20 ca 0d 00 be  |-48...... G ....|
00000110  0c c9 20 30 3a f2 70 69  63 0d 00 c8 11 c9 20 31  |.. 0:.pic..... 1|
00000120  3a f2 70 69 63 3a f2 66  78 31 0d 00 d2 11 c9 20  |:.pic:.fx1..... |
00000130  32 3a f2 70 69 63 3a f2  66 78 32 0d 00 dc 11 c9  |2:.pic:.fx2.....|
00000140  20 33 3a f2 70 69 63 3a  f2 66 78 33 0d 00 e6 11  | 3:.pic:.fx3....|
00000150  c9 20 34 3a f2 70 69 63  3a f2 66 78 34 0d 00 f0  |. 4:.pic:.fx4...|
00000160  11 c9 20 35 3a f2 70 69  63 3a f2 66 78 35 0d 00  |.. 5:.pic:.fx5..|
00000170  fa 11 c9 20 36 3a f2 70  69 63 3a f2 66 78 36 0d  |... 6:.pic:.fx6.|
00000180  01 04 0c c9 20 37 3a f2  66 78 37 0d 01 0e 0c c9  |.... 7:.fx7.....|
00000190  20 38 3a f2 66 78 38 0d  01 18 0c c9 20 39 3a f2  | 8:.fx8..... 9:.|
000001a0  66 78 39 0d 01 22 05 cb  0d 01 2c 06 fd 30 0d 01  |fx9.."....,..0..|
000001b0  36 04 0d 01 40 05 e0 0d  01 4a 04 0d 01 54 09 f4  |6...@....J...T..|
000001c0  20 50 49 43 0d 01 5e 09  dd f2 70 69 63 0d 01 68  | PIC..^...pic..h|
000001d0  05 db 0d 01 72 06 e6 32  0d 01 7c 0a 58 25 3d 33  |....r..2..|.X%=3|
000001e0  32 30 0d 01 86 0a 59 25  3d 32 35 36 0d 01 90 0a  |20....Y%=256....|
000001f0  57 25 3d 34 30 30 0d 01  9a 0a 48 25 3d 36 30 30  |W%=400....H%=600|
00000200  0d 01 a4 21 c8 99 20 4f  24 2c 26 32 32 32 2c 61  |...!.. O$,&222,a|
00000210  72 65 61 25 2c 70 69 63  25 2c 58 25 2c 59 25 2c  |rea%,pic%,X%,Y%,|
00000220  30 0d 01 ae 05 e1 0d 01  b8 04 0d 01 c2 09 f4 20  |0.............. |
00000230  46 58 31 0d 01 cc 09 dd  f2 66 78 31 0d 01 d6 08  |FX1......fx1....|
00000240  5a 25 3d 30 0d 01 e0 15  e3 49 25 3d 59 25 20 b8  |Z%=0.....I%=Y% .|
00000250  20 59 25 2b 48 25 20 88  34 0d 01 ea 09 5a 25 2b  | Y%+H% .4....Z%+|
00000260  3d 34 0d 01 f4 1e c8 93  c8 90 20 58 25 2c 49 25  |=4........ X%,I%|
00000270  2c 57 25 2c 30 20 b8 20  58 25 2b 5a 25 2c 49 25  |,W%,0 . X%+Z%,I%|
00000280  0d 01 fe 05 ed 0d 02 08  05 e1 0d 02 12 04 0d 02  |................|
00000290  1c 09 f4 20 46 58 32 0d  02 26 09 dd f2 66 78 32  |... FX2..&...fx2|
000002a0  0d 02 30 08 5a 25 3d 30  0d 02 3a 0d 6f 66 66 73  |..0.Z%=0..:.offs|
000002b0  65 74 25 3d 34 0d 02 44  15 e3 49 25 3d 59 25 20  |et%=4..D..I%=Y% |
000002c0  b8 20 59 25 2b 48 25 20  88 34 0d 02 4e 0f 5a 25  |. Y%+H% .4..N.Z%|
000002d0  2b 3d 6f 66 66 73 65 74  25 0d 02 58 1e c8 93 c8  |+=offset%..X....|
000002e0  90 20 58 25 2c 49 25 2c  57 25 2c 30 20 b8 20 58  |. X%,I%,W%,0 . X|
000002f0  25 2b 5a 25 2c 49 25 0d  02 62 1a e7 49 25 3e 3d  |%+Z%,I%..b..I%>=|
00000300  59 25 2b 48 25 2f 32 6f  66 66 73 65 74 25 3d 2d  |Y%+H%/2offset%=-|
00000310  34 0d 02 6c 05 ed 0d 02  76 05 e1 0d 02 80 04 0d  |4..l....v.......|
00000320  02 8a 09 f4 20 46 58 33  0d 02 94 09 dd f2 66 78  |.... FX3......fx|
00000330  33 0d 02 9e 08 43 25 3d  30 0d 02 a8 08 5a 25 3d  |3....C%=0....Z%=|
00000340  30 0d 02 b2 0d 6f 66 66  73 65 74 25 3d 38 0d 02  |0....offset%=8..|
00000350  bc 15 e3 49 25 3d 59 25  20 b8 20 59 25 2b 48 25  |...I%=Y% . Y%+H%|
00000360  20 88 34 0d 02 c6 14 e7  43 25 3c 6f 66 66 73 65  | .4.....C%<offse|
00000370  74 25 5a 25 2b 3d 34 0d  02 d0 15 e7 43 25 3e 3d  |t%Z%+=4.....C%>=|
00000380  6f 66 66 73 65 74 25 5a  25 2d 3d 34 0d 02 da 1e  |offset%Z%-=4....|
00000390  c8 93 c8 90 20 58 25 2c  49 25 2c 57 25 2c 30 20  |.... X%,I%,W%,0 |
000003a0  b8 20 58 25 2b 5a 25 2c  49 25 0d 02 e4 19 43 25  |. X%+Z%,I%....C%|
000003b0  3d 28 43 25 2b 31 29 83  28 6f 66 66 73 65 74 25  |=(C%+1).(offset%|
000003c0  2a 32 29 0d 02 ee 05 ed  0d 02 f8 05 e1 0d 03 02  |*2).............|
000003d0  04 0d 03 0c 09 f4 20 46  58 34 0d 03 16 09 dd f2  |...... FX4......|
000003e0  66 78 34 0d 03 20 10 e3  4a 25 3d 30 b8 57 25 2f  |fx4.. ..J%=0.W%/|
000003f0  32 88 34 0d 03 2a 15 e3  49 25 3d 59 25 20 b8 20  |2.4..*..I%=Y% . |
00000400  59 25 2b 48 25 20 88 34  0d 03 34 23 c8 93 c8 90  |Y%+H% .4..4#....|
00000410  20 58 25 2c 49 25 2c 28  57 25 2f 32 29 2d 34 2c  | X%,I%,(W%/2)-4,|
00000420  30 20 b8 20 58 25 2b 34  2c 49 25 0d 03 3e 31 c8  |0 . X%+4,I%..>1.|
00000430  93 c8 90 20 58 25 2b 28  57 25 2f 32 29 2b 34 2c  |... X%+(W%/2)+4,|
00000440  49 25 2c 28 57 25 2f 32  29 2d 34 2c 30 20 b8 20  |I%,(W%/2)-4,0 . |
00000450  58 25 2b 28 57 25 2f 32  29 2c 49 25 0d 03 48 05  |X%+(W%/2),I%..H.|
00000460  ed 0d 03 52 05 ed 0d 03  5c 08 f2 70 69 63 0d 03  |...R....\..pic..|
00000470  66 05 e1 0d 03 70 04 0d  03 7a 09 f4 20 46 58 35  |f....p...z.. FX5|
00000480  0d 03 84 09 dd f2 66 78  35 0d 03 8e 08 5a 25 3d  |......fx5....Z%=|
00000490  30 0d 03 98 15 e3 49 25  3d 58 25 20 b8 20 58 25  |0.....I%=X% . X%|
000004a0  2b 57 25 20 88 34 0d 03  a2 09 5a 25 2b 3d 34 0d  |+W% .4....Z%+=4.|
000004b0  03 ac 1e c8 93 c8 90 20  49 25 2c 59 25 2c 30 2c  |....... I%,Y%,0,|
000004c0  48 25 20 b8 20 49 25 2c  59 25 2d 5a 25 0d 03 b6  |H% . I%,Y%-Z%...|
000004d0  05 ed 0d 03 c0 05 e1 0d  03 ca 04 0d 03 d4 0a f4  |................|
000004e0  20 20 46 58 36 0d 03 de  09 dd f2 66 78 36 0d 03  |  FX6......fx6..|
000004f0  e8 09 41 25 3d 31 36 0d  03 f2 0c 77 69 64 74 68  |..A%=16....width|
00000500  25 3d 30 0d 03 fc 17 e3  4a 25 3d 59 25 20 b8 20  |%=0.....J%=Y% . |
00000510  59 25 2d 48 25 20 88 2d  41 25 0d 04 06 1c e3 49  |Y%-H% .-A%.....I|
00000520  25 3d 58 25 20 b8 20 58  25 2b 57 25 20 88 77 69  |%=X% . X%+W% .wi|
00000530  64 74 68 25 2b 38 0d 04  10 23 c8 93 c8 90 20 49  |dth%+8...#.... I|
00000540  25 2c 4a 25 2b 41 25 2c  77 69 64 74 68 25 2c 48  |%,J%+A%,width%,H|
00000550  25 20 b8 20 49 25 2c 4a  25 0d 04 1a 05 ed 0d 04  |% . I%,J%.......|
00000560  24 05 ed 0d 04 2e 05 e1  0d 04 38 04 0d 04 42 09  |$.........8...B.|
00000570  f4 20 46 58 37 0d 04 4c  09 dd f2 66 78 37 0d 04  |. FX7..L...fx7..|
00000580  56 05 db 0d 04 60 21 c8  99 20 4f 24 2c 26 32 32  |V....`!.. O$,&22|
00000590  32 2c 61 72 65 61 25 2c  70 69 63 25 2c 58 25 2c  |2,area%,pic%,X%,|
000005a0  59 25 2c 33 0d 04 6a 08  e6 32 2c 30 0d 04 74 14  |Y%,3..j..2,0..t.|
000005b0  20 f4 20 47 43 4f 4c 32  2c 33 3a 47 3d 47 45 54  | . GCOL2,3:G=GET|
000005c0  0d 04 7e 09 c8 9c 32 2c  30 0d 04 88 1b c8 8f c8  |..~...2,0.......|
000005d0  90 58 25 2b 57 25 2f 32  2c 59 25 2b 48 25 2f 32  |.X%+W%/2,Y%+H%/2|
000005e0  2c 32 30 30 0d 04 92 0c  20 f4 20 47 3d 47 45 54  |,200.... . G=GET|
000005f0  0d 04 9c 21 c8 99 20 4f  24 2c 26 32 32 32 2c 61  |...!.. O$,&222,a|
00000600  72 65 61 25 2c 70 69 63  25 2c 58 25 2c 59 25 2c  |rea%,pic%,X%,Y%,|
00000610  33 0d 04 a6 04 0d 04 b0  05 e1 0d 04 ba 04 0d 04  |3...............|
00000620  c4 09 f4 20 46 58 38 0d  04 ce 09 dd f2 66 78 38  |... FX8......fx8|
00000630  0d 04 d8 0e 78 25 3d 58  25 2b 57 25 2f 32 0d 04  |....x%=X%+W%/2..|
00000640  e2 0e 79 25 3d 59 25 2b  48 25 2f 32 0d 04 ec 0d  |..y%=Y%+H%/2....|
00000650  52 25 3d b3 28 38 29 2d  31 0d 04 f6 0f c8 99 36  |R%=.(8)-1......6|
00000660  2c 31 31 32 2c 32 3a db  0d 05 00 0f c8 99 36 2c  |,112,2:.......6,|
00000670  31 31 32 2c 31 3a db 0d  05 0a 08 5a 25 3d 31 0d  |112,1:.....Z%=1.|
00000680  05 14 0e e6 32 2c 30 3a  c8 9c 32 2c 30 0d 05 1e  |....2,0:..2,0...|
00000690  05 f5 0d 05 28 0b 5a 25  3d 33 2d 5a 25 0d 05 32  |....(.Z%=3-Z%..2|
000006a0  0e c8 99 36 2c 31 31 32  2c 5a 25 0d 05 3c 05 db  |...6,112,Z%..<..|
000006b0  0d 05 46 3d e7 a6 2d 31  30 31 20 e6 30 2c 36 33  |..F=..-101 .0,63|
000006c0  3a ec 78 25 2d 31 36 30  2c 79 25 3a df 58 25 2b  |:.x%-160,y%:.X%+|
000006d0  57 25 2f 32 2c 36 34 3a  df 78 25 2b 31 36 30 2c  |W%/2,64:.x%+160,|
000006e0  79 25 3a e6 32 2c 30 3a  c8 9c 32 2c 30 0d 05 50  |y%:.2,0:..2,0..P|
000006f0  21 c8 99 20 4f 24 2c 26  32 32 32 2c 61 72 65 61  |!.. O$,&222,area|
00000700  25 2c 70 69 63 25 2c 58  25 2c 59 25 2c 33 0d 05  |%,pic%,X%,Y%,3..|
00000710  5a 11 c8 8f c8 90 78 25  2c 79 25 2c 31 36 30 0d  |Z.....x%,y%,160.|
00000720  05 64 21 c8 99 20 4f 24  2c 26 32 32 32 2c 61 72  |.d!.. O$,&222,ar|
00000730  65 61 25 2c 70 69 63 25  2c 58 25 2c 59 25 2c 33  |ea%,pic%,X%,Y%,3|
00000740  0d 05 6e 0e c8 99 36 2c  31 31 33 2c 5a 25 0d 05  |..n...6,113,Z%..|
00000750  78 06 c8 96 0d 05 82 14  e7 b3 28 38 29 3d 31 52  |x.........(8)=1R|
00000760  25 3d b3 28 38 29 2d 31  0d 05 8c 29 e7 78 25 2b  |%=.(8)-1...).x%+|
00000770  64 78 25 28 52 25 29 3c  58 25 20 84 78 25 2b 64  |dx%(R%)<X% .x%+d|
00000780  78 25 28 52 25 29 3e 58  25 2b 57 25 e5 8d 74 42  |x%(R%)>X%+W%..tB|
00000790  45 0d 05 96 29 e7 79 25  2b 64 79 25 28 52 25 29  |E...).y%+dy%(R%)|
000007a0  3c 59 25 20 84 79 25 2b  64 79 25 28 52 25 29 3e  |<Y% .y%+dy%(R%)>|
000007b0  59 25 2b 48 25 e5 8d 74  42 45 0d 05 a0 0f 78 25  |Y%+H%..tBE....x%|
000007c0  2b 3d 64 78 25 28 52 25  29 0d 05 aa 0f 79 25 2b  |+=dx%(R%)....y%+|
000007d0  3d 64 79 25 28 52 25 29  0d 05 b4 0e fd a6 2d 34  |=dy%(R%)......-4|
000007e0  30 84 a6 2d 37 34 0d 05  be 17 c8 99 36 2c 31 31  |0..-74......6,11|
000007f0  32 2c 31 3a c8 99 36 2c  31 31 33 2c 31 0d 05 c8  |2,1:..6,113,1...|
00000800  0a db 3a f2 70 69 63 0d  05 d2 05 e1 0d 05 dc 04  |..:.pic.........|
00000810  0d 05 e6 09 f4 20 46 58  39 0d 05 f0 09 dd f2 66  |..... FX9......f|
00000820  78 39 0d 05 fa 13 72 25  3d 38 3a e6 32 2c 30 3a  |x9....r%=8:.2,0:|
00000830  c8 9c 32 2c 30 0d 06 04  1b c8 99 36 2c 31 31 32  |..2,0......6,112|
00000840  2c 32 3a db 3a c8 99 36  2c 31 31 32 2c 31 3a db  |,2:.:..6,112,1:.|
00000850  0d 06 0e 19 78 25 3d 58  25 2b 57 25 2f 32 3a 79  |....x%=X%+W%/2:y|
00000860  25 3d 59 25 2b 48 25 2f  32 0d 06 18 05 f5 0d 06  |%=Y%+H%/2.......|
00000870  22 16 5a 25 3d 33 2d 5a  25 3a c8 99 36 2c 31 31  |".Z%=3-Z%:..6,11|
00000880  32 2c 5a 25 0d 06 2c 05  db 0d 06 36 21 c8 99 20  |2,Z%..,....6!.. |
00000890  4f 24 2c 26 32 32 32 2c  61 72 65 61 25 2c 70 69  |O$,&222,area%,pi|
000008a0  63 25 2c 58 25 2c 59 25  2c 33 0d 06 40 10 c8 8f  |c%,X%,Y%,3..@...|
000008b0  c8 90 78 25 2c 79 25 2c  72 25 0d 06 4a 21 c8 99  |..x%,y%,r%..J!..|
000008c0  20 4f 24 2c 26 32 32 32  2c 61 72 65 61 25 2c 70  | O$,&222,area%,p|
000008d0  69 63 25 2c 58 25 2c 59  25 2c 33 0d 06 54 0e c8  |ic%,X%,Y%,3..T..|
000008e0  99 36 2c 31 31 33 2c 5a  25 0d 06 5e 06 c8 96 0d  |.6,113,Z%..^....|
000008f0  06 68 09 72 25 2b 3d 38  0d 06 72 1b fd a6 2d 34  |.h.r%+=8..r...-4|
00000900  30 84 a6 2d 37 34 84 72  25 3e 28 48 25 2f 32 29  |0..-74.r%>(H%/2)|
00000910  2b 34 38 0d 06 7c 17 c8  99 36 2c 31 31 32 2c 31  |+48..|...6,112,1|
00000920  3a c8 99 36 2c 31 31 33  2c 31 0d 06 86 05 e1 0d  |:..6,113,1......|
00000930  06 90 04 0d 06 9a 25 f4  20 2b 2b 2b 2b 2b 2b 2b  |......%. +++++++|
00000940  2b 2b 2b 2b 2b 2b 2b 2b  2b 2b 2b 2b 2b 2b 2b 2b  |++++++++++++++++|
00000950  2b 2b 2b 2b 2b 2b 2b 2b  0d 06 a4 0d dd f2 73 70  |++++++++......sp|
00000960  72 69 74 65 73 0d 06 ae  14 4f 24 3d 22 4f 53 5f  |rites....O$="OS_|
00000970  53 70 72 69 74 65 4f 70  22 0d 06 b8 1d f4 20 20  |SpriteOp".....  |
00000980  4c 6f 61 64 20 69 6e 20  74 68 65 20 53 70 72 69  |Load in the Spri|
00000990  74 65 66 69 6c 65 0d 06  c2 22 73 70 72 69 74 65  |tefile..."sprite|
000009a0  73 24 3d 22 3c 4d 41 47  73 24 44 69 72 3e 2e 46  |s$="<MAGs$Dir>.F|
000009b0  41 43 45 46 49 4c 45 22  0d 06 cc 15 66 69 6c 65  |ACEFILE"....file|
000009c0  25 3d 8e 28 73 70 72 69  74 65 73 24 29 0d 06 d6  |%=.(sprites$)...|
000009d0  14 73 69 7a 65 25 3d a2  23 66 69 6c 65 25 2b 36  |.size%=.#file%+6|
000009e0  34 0d 06 e0 0b d9 23 66  69 6c 65 25 0d 06 ea 04  |4.....#file%....|
000009f0  0d 06 f4 4a f4 20 44 69  6d 65 6e 73 69 6f 6e 20  |...J. Dimension |
00000a00  61 6e 20 41 52 45 41 20  74 68 65 20 53 49 5a 45  |an AREA the SIZE|
00000a10  20 6f 66 20 20 20 20 20  20 20 20 20 20 20 74 68  | of           th|
00000a20  65 20 66 69 6c 65 20 74  6f 20 73 74 6f 72 65 20  |e file to store |
00000a30  73 70 72 69 74 65 73 20  69 6e 0d 06 fe 11 de 20  |sprites in..... |
00000a40  61 72 65 61 25 20 73 69  7a 65 25 0d 07 08 11 61  |area% size%....a|
00000a50  72 65 61 25 21 30 3d 73  69 7a 65 25 0d 07 12 04  |rea%!0=size%....|
00000a60  0d 07 1c 43 f4 20 49 6e  69 74 69 61 6c 69 73 65  |...C. Initialise|
00000a70  20 61 72 65 61 20 74 6f  20 6c 6f 61 64 20 74 68  | area to load th|
00000a80  65 20 20 20 20 20 20 20  20 20 20 20 20 20 73 70  |e             sp|
00000a90  72 69 74 65 20 64 65 66  69 6e 69 74 69 6f 6e 73  |rite definitions|
00000aa0  20 74 6f 0d 07 26 15 c8  99 20 4f 24 2c 32 35 36  | to..&... O$,256|
00000ab0  2b 39 2c 61 72 65 61 25  0d 07 30 04 0d 07 3a 3a  |+9,area%..0...::|
00000ac0  f4 20 4e 6f 77 20 6c 6f  61 64 20 74 68 65 20 73  |. Now load the s|
00000ad0  70 72 69 74 65 20 64 65  66 69 6e 69 74 69 6f 6e  |prite definition|
00000ae0  73 20 20 20 20 20 20 20  20 20 74 6f 20 74 68 69  |s         to thi|
00000af0  73 20 61 72 65 61 0d 07  44 1f c8 99 20 4f 24 2c  |s area..D... O$,|
00000b00  32 35 36 2b 31 30 2c 61  72 65 61 25 2c 73 70 72  |256+10,area%,spr|
00000b10  69 74 65 73 24 0d 07 4e  04 0d 07 58 16 f4 20 53  |ites$..N...X.. S|
00000b20  4f 52 54 20 53 50 52 49  54 45 53 20 4f 55 54 0d  |ORT SPRITES OUT.|
00000b30  07 62 20 f2 73 65 74 73  70 72 69 74 65 28 22 50  |.b .setsprite("P|
00000b40  49 43 22 2c 70 69 63 25  2c 68 25 2c 77 25 29 0d  |IC",pic%,h%,w%).|
00000b50  07 6c 05 e1 0d 07 76 04  0d 07 80 12 f4 20 49 6e  |.l....v...... In|
00000b60  69 74 20 73 70 72 69 74  65 73 0d 07 8a 34 dd f2  |it sprites...4..|
00000b70  73 65 74 73 70 72 69 74  65 28 73 74 72 69 6e 67  |setsprite(string|
00000b80  24 2c f8 20 76 61 6c 75  65 25 2c f8 20 77 69 64  |$,. value%,. wid|
00000b90  74 68 25 2c f8 20 68 65  69 67 68 74 25 29 0d 07  |th%,. height%)..|
00000ba0  94 28 c8 99 20 4f 24 2c  32 35 36 2b 32 34 2c 61  |.(.. O$,256+24,a|
00000bb0  72 65 61 25 2c 73 74 72  69 6e 67 24 20 b8 2c 2c  |rea%,string$ .,,|
00000bc0  76 61 6c 75 65 25 0d 07  9e 31 c8 99 20 4f 24 2c  |value%...1.. O$,|
00000bd0  32 35 36 2b 34 30 2c 61  72 65 61 25 2c 73 74 72  |256+40,area%,str|
00000be0  69 6e 67 24 20 b8 2c 2c  2c 77 69 64 74 68 25 2c  |ing$ .,,,width%,|
00000bf0  68 65 69 67 68 74 25 0d  07 a8 05 e1 0d ff        |height%.......|
00000bfe