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