Home » Personal collection » Acorn ADFS disks » Electron » Utilities_2.ADF » GRAPHICS/Elk-Paint

GRAPHICS/Elk-Paint

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 ADFS disks » Electron » Utilities_2.ADF
Filename: GRAPHICS/Elk-Paint
Read OK:
File size: 12E0 bytes
Load address: FFFF0E00
Exec address: FFFF8023
File contents
   10REM Elkpaint by Stuart Bain
   20REM (c) Electron User
   30ONERRORMODE6:REPORT:PRINT" at line ";ERL:END
   40MODE5:PROCinit:MOVE0,836:DRAW1279,836:VDU24,0;0;1279;831;23,1,0;0;0;0;
   50PRINTTAB(0,0)"COL 3"'"SPE 1":PROCcurs(X%,Y%):PROCscr(0)
   60REPEATPROCmove:IFK%=66PROCband ELSEIFK%=67PROCcirc ELSEIFK%=82PROCrect
   70IFK%=69PROCellip ELSEIFK%=70PROCfill ELSEIFK%=87ORK%=81PROCwipe
   80IFK%=77PROCzoom ELSEIFK%=80PROCcut ELSEIFK%=65PROCbrush
   90IFK%=83PROCscr(0)ELSEIFK%=85PROCscr(1)ELSEIFK%=84PROCtext
  100IFK%=76ORK%=75PROCfile(K%-75)
  110PRINTTAB(0,3)SPC14:UNTIL0
  120DEFPROCmove
  130K%=INKEY0:*FX15
  140IFK%>32ANDK%<39sp%=8*(K%-32):PRINTTAB(4,1);sp%DIV8ELSEIFK%>47ANDK%<52col%=K%-48:PRINTTAB(4,0);col%
  150x%=X%:y%=Y%:X%=X%+(INKEY-98-INKEY-67)*sp%:IFX%<0X%=0ELSEIFX%>1279X%=1279
  160Y%=Y%+(INKEY-105-INKEY-73)*sp%DIV2:IFY%<0Y%=0ELSEIFY%>831Y%=831
  170PROCcurs(x%,y%):PROCcurs(X%,Y%)
  180ENDPROC
  190DEFPROCcurs(A%,B%)GCOL3,3:MOVEA%-24,B%+12:VDU5,225,4:ENDPROC
  200DEFPROCbp:SOUND1,-10,170,2:ENDPROC
  210DEFPROCband
  220PRINTTAB(0,3)"RUBBER BANDING":REPEATrx%=X%:ry%=Y%:GCOL3,3:PLOT69,X%,Y%
  230REPEATPROCmove:MOVEx%,y%:DRAWrx%,ry%:DRAWX%,Y%:FORI%=0TO30:NEXT
  240UNTILINKEY-99ORINKEY-74:PROCcurs(X%,Y%):GCOL0,col%:MOVEX%,Y%:DRAWrx%,ry%:PROCcurs(X%,Y%)
  250UNTILINKEY-74:PROCbp:ENDPROC
  260DEFPROCcirc
  270PRINTTAB(0,3)"CIRCLE":REPEATrx%=X%:ry%=Y%:PROCdots
  280REPEATPROCdots:PROCmove:PROCdots:UNTILINKEY-99ORINKEY-74:IFINKEY-74ret%=1ELSEret%=0
  290PROCcurs(X%,Y%):PROCdots:GCOL0,col%:MOVErx%+r%,ry%:FORI%=0TO19:DRAWrx%+r%*s%(I%+5)DIV100,ry%+r%*s%(I%)DIV100:NEXT
  300X%=rx%:Y%=ry%:PROCcurs(X%,Y%):PROCbp:UNTILret%:ENDPROC
  310DEFPROCdots:r%=SQR((X%-rx%)^2+(Y%-ry%)^2):GCOL3,3:FORI%=0TO18STEP2:PLOT69,rx%+r%*s%(I%+5)DIV100,ry%+r%*s%(I%)DIV100:NEXT:ENDPROC
  320DEFPROCellip
  330PRINTTAB(0,3)"ELLIPSE":REPEATrx%=X%:ry%=Y%:PROCell
  340REPEATPROCell:PROCmove:PROCell:UNTILINKEY-99ORINKEY-74:IFINKEY-74ret%=1ELSEret%=0
  350PROCcurs(X%,Y%):PROCell:GCOL0,col%:MOVErx%+r%,ry%:FORI%=0TO19:DRAWrx%+r%*s%(I%+5)DIV100,ry%+s%*s%(I%)DIV100:NEXT
  360X%=rx%:Y%=ry%:PROCcurs(X%,Y%):PROCbp:UNTILret%:ENDPROC
  370DEFPROCell:r%=ABS(X%-rx%):s%=ABS(Y%-ry%):GCOL3,3:FORI%=0TO18STEP2:PLOT69,rx%+r%*s%(I%+5)DIV100,ry%+s%*s%(I%)DIV100:NEXT:ENDPROC
  380DEFPROCrect
  390PRINTTAB(0,3)"RECTANGLE":REPEATrx%=X%:ry%=Y%:GCOL3,3:PROCbox
  400REPEATPROCbox:PROCmove:PROCbox
  410UNTILINKEY-99ORINKEY-74:IFINKEY-74ret%=1ELSEret%=0
  420PROCcurs(X%,Y%):GCOL0,col%:PROCbox:PROCcurs(X%,Y%):PROCbp:UNTILret%:ENDPROC
  430DEFPROCbox:MOVErx%,ry%:DRAWX%,ry%:DRAWX%,Y%:DRAWrx%,Y%:DRAWrx%,ry%:ENDPROC
  440DEFPROCfill
  450PRINTTAB(0,3)"FILL":PROCcurs(X%,Y%):Z%=POINT(X%,Y%):GCOL0,col%:GCOL0,Z%+128
  460PROCflood(X%,Y%,4):PROCflood(X%,Y%-4,-4):PROCcurs(X%,Y%):GCOL0,128:PROCbp:ENDPROC
  470DEFPROCflood(A%,B%,D%)
  480IFPOINT(A%,B%)<>Z%ENDPROC
  490REPEATPLOT77,A%,B%:B%=B%+D%:UNTILPOINT(A%,B%)<>Z%:PROCflood((!&314*8+!&310)DIV2AND&FFFF,B%,D%):ENDPROC
  500DEFPROCwipe:IFINKEY-34ANDINKEY-17CLG:PROCbp:PROCcurs(X%,Y%)
  510ENDPROC
  520DEFPROCzoom
  530PRINTTAB(0,3)"ZOOM":PROCcurs(X%,Y%):VDU26:GCOL0,3:MOVE752,1023:DRAW752,847:MOVE1136,1023:DRAW1136,847
  540PROCpixel:A%=5:B%=5:PROCcro:REPEATK%=GET:PROCcro:*FX15
  550IFK%=90ANDA%>0A%=A%-1ELSEIFK%=88ANDA%<10A%=A%+1ELSEIFK%=58ANDB%<10B%=B%+1ELSEIFK%=47ANDB%>0B%=B%-1
  560IFK%>47ANDK%<52col%=K%-48:PRINTTAB(4,0);col%ELSEIFK%=32GCOL0,col%:MOVE768+A%*32,863+B%*16:VDU5,224,4:PLOT69,rx%+A%*8,ry%+B%*4
  570IFK%=136X%=X%-24ELSEIFK%=137X%=X%+24ELSEIFK%=138Y%=Y%-12ELSEIFK%=139Y%=Y%+12
  580IFK%>135ANDK%<140PROCpixel:A%=5:B%=5
  590PROCcro:UNTILINKEY-74:VDU24,752;847;1136;1023;16,24,0;0;1279;831;:PROCcurs(X%,Y%):PROCbp:ENDPROC
  600DEFPROCpixel:rx%=X%-40:ry%=Y%-20:IFrx%<0rx%=0ELSEIFrx%>1192rx%=1192
  610IFry%>791ry%=791ELSEIFry%<0ry%=0
  620VDU5:FORI%=0TO10:FORJ%=0TO10:GCOL0,POINT(rx%+I%*8,ry%+J%*4):MOVE768+I%*32,863+J%*16:VDU224:NEXT,:ENDPROC
  630DEFPROCcro:GCOL3,3:MOVE768+32*A%,863+16*B%:VDU5,226,4:ENDPROC
  640DEFPROCcut
  650PRINTTAB(0,3)"CUT+PASTE":rx%=X%:ry%=Y%:PROCbox
  660REPEATPROCbox:PROCmove:PROCbox:UNTILINKEY-99:PROCcurs(X%,Y%):IFX%<rx%a%=X%:X%=rx%:rx%=a%
  670IFY%<ry%a%=Y%:Y%=ry%:ry%=a%
  680C%=rx%:D%=ry%:E%=X%-rx%:F%=Y%-ry%:PROCcurs(X%,Y%):REPEATPROCbox:PROCmove:rx%=X%-E%:ry%=Y%-F%:PROCbox:UNTILINKEY-74:PROCbox
  690PROCcurs(X%,Y%):REPEATA%=GET:UNTILA%=32ORA%=72ORA%=86ORA%=82:step%=8
  700IFA%=82PROCrotate:cos=COSRADan%:sin=SINRADan%:step%=4:IF(an%>40ANDan%<140)OR(an%>220ANDan%<320)sin=sin*2
  710FORI%=0TOE%STEPstep%:FORJ%=0TOF%STEPstep%DIV2:GCOL0,POINT(C%+I%,D%+J%)
  720IFA%=32PLOT69,rx%+I%,ry%+J%ELSEIFA%=72PLOT69,rx%+E%-I%,ry%+J%ELSEIFA%=86PLOT69,rx%+I%,ry%+F%-J%ELSEPLOT69,rx%+I%*cos-J%*sin,ry%+sin*I%DIV4+J%*cos
  730NEXT,:PROCcurs(X%,Y%):PROCbp:ENDPROC
  740DEFPROCrotate:an%=0:PROCline
  750REPEATI%=an%+10*(INKEY-67-INKEY-98):IFI%<0I%=350ELSEIFI%>350I%=0
  760IFI%<>an%PROCline:an%=I%:PROCline
  770UNTILINKEY-99:PROCline:ENDPROC
  780DEFPROCline:MOVErx%+60*COSRADan%,ry%+60*SINRADan%:DRAWrx%,ry%:DRAWrx%+10*COSRAD(an%+90),ry%+10*SINRAD(an%+90):ENDPROC
  790DEFPROCbrush
  800FORI%=0TO4:PRINTTAB(7,I%)CHR$(227+I%)" - ";I%+1:NEXT:PRINTTAB(0,3)"BRUSH":REPEATI%=GET-49:UNTILI%>=0ANDI%<5
  810REPEATPROCmove:IFINKEY-99PROCcurs(X%,Y%):GCOL0,col%:MOVEX%-24,Y%+12:VDU5,227+I%,4:PROCcurs(X%,Y%)
  820UNTILINKEY-74:FORI%=0TO4:PRINTTAB(7,I%)SPC8:NEXT:PROCbp:ENDPROC
  830DEFPROCtext
  840PRINTTAB(0,3)"TEXT":A$="":rx%=X%-24:ry%=Y%+12
  850REPEATREPEATI%=GET:UNTILI%>31ANDI%<128ORI%=13:PROCcurs(X%,Y%):MOVErx%,ry%:VDU5:PRINTA$
  860IFI%>31ANDI%<127ANDX%<1216A$=A$+CHR$I%:X%=X%+64ELSEIFI%=127ANDA$<>""A$=LEFT$(A$,LEN(A$)-1):X%=X%-64
  870MOVErx%,ry%:PRINTA$:PROCcurs(X%,Y%):UNTILI%=13
  880GCOL0,col%:MOVErx%,ry%:VDU5:PRINTA$:VDU4:PROCbp:ENDPROC
  890DEFPROCfile(I%)
  900VDU28,0,4,19,0,12:INPUT'"Filename ?"'A$:IFA$<>""PROCfi2(I%)
  910CLS:PRINT"COL ";col%'"SPE ";sp%/8:PROCbp:ENDPROC
  920DEFPROCfi2(I%)
  930PRINT'':IFI%OSCLI"LOAD "+A$+" 5F80"ELSEOSCLI"SAVE "+A$+" 5F80 8000"
  940ENDPROC
  950DEFPROCscr(C%)PROCcurs(X%,Y%):!&70=&5F80:!&72=S%:A%=C%:CALLQ%:PROCcurs(X%,Y%):PROCbp:ENDPROC
  960DEFPROCinit:*FX229,1
  970DIMS%8320,s%(24):FORI%=1TO25:s%(I%-1)=100*SINRAD(I%*18):NEXT:*FX4,1
  980VDU23,224,240,240,240,240,0;0;23,225,16,16,0,198,0,16,16,0,23,226,0,96,96,0;0;0;23,227;0;24,24;0;0;
  990VDU23,228,0,0,60,60,60,60,0;23,229,0,0,0,16,56,16;0;23,230,0,0,24,60,60,24,0;23,231,16,8,34,8,130,33,20,34
 1000X%=0:Y%=0:sp%=8:col%=3:FORI%=0TO2STEP2:P%=&900:[OPTI%
 1010.Q%TAX:LDY#0:.s1:LDA(&70),Y:CPX#0:BNEsw:STA(&72),Y:SEC:BCSs2:.sw:PHA:LDA(&72),Y:STA(&70),Y:PLA:STA(&72),Y
 1020.s2:INC&70:BNEs3:INC&71:.s3:INC&72:BNEs4:INC&73:.s4:LDA&71:CMP#&80:BNEs1:RTS:]NEXT:ENDPROC

� Elkpaint by Stuart Bain
� (c) Electron User
��6:�:�" at line ";�:�
(<�5:�init:�0,836:�1279,836:�24,0;0;1279;831;23,1,0;0;0;0;
2.�0,0)"COL 3"'"SPE 1":�curs(X%,Y%):�scr(0)
<0��move:�K%=66�band ��K%=67�circ ��K%=82�rect
F0�K%=69�ellip ��K%=70�fill ��K%=87�K%=81�wipe
P)�K%=77�zoom ��K%=80�cut ��K%=65�brush
Z+�K%=83�scr(0)��K%=85�scr(1)��K%=84�text
d�K%=76�K%=75�file(K%-75)
n�0,3)�14:�0
x
��move
�K%=�0:*FX15
�M�K%>32�K%<39sp%=8*(K%-32):�4,1);sp%�8��K%>47�K%<52col%=K%-48:�4,0);col%
�?x%=X%:y%=Y%:X%=X%+(�-98-�-67)*sp%:�X%<0X%=0��X%>1279X%=1279
�4Y%=Y%+(�-105-�-73)*sp%�2:�Y%<0Y%=0��Y%>831Y%=831
��curs(x%,y%):�curs(X%,Y%)
��
�-��curs(A%,B%)�3,3:�A%-24,B%+12:�5,225,4:�
���bp:�1,-10,170,2:�
�
��band
�8�0,3)"RUBBER BANDING":�rx%=X%:ry%=Y%:�3,3:�69,X%,Y%
�,��move:�x%,y%:�rx%,ry%:�X%,Y%:�I%=0�30:�
�@��-99��-74:�curs(X%,Y%):�0,col%:�X%,Y%:�rx%,ry%:�curs(X%,Y%)
���-74:�bp:�

��circ
'�0,3)"CIRCLE":�rx%=X%:ry%=Y%:�dots
4��dots:�move:�dots:��-99��-74:�-74ret%=1�ret%=0
"\�curs(X%,Y%):�dots:�0,col%:�rx%+r%,ry%:�I%=0�19:�rx%+r%*s%(I%+5)�100,ry%+r%*s%(I%)�100:�
,*X%=rx%:Y%=ry%:�curs(X%,Y%):�bp:�ret%:�
6d��dots:r%=�((X%-rx%)^2+(Y%-ry%)^2):�3,3:�I%=0�18�2:�69,rx%+r%*s%(I%+5)�100,ry%+r%*s%(I%)�100:�:�
@��ellip
J'�0,3)"ELLIPSE":�rx%=X%:ry%=Y%:�ell
T2��ell:�move:�ell:��-99��-74:�-74ret%=1�ret%=0
^[�curs(X%,Y%):�ell:�0,col%:�rx%+r%,ry%:�I%=0�19:�rx%+r%*s%(I%+5)�100,ry%+s%*s%(I%)�100:�
h*X%=rx%:Y%=ry%:�curs(X%,Y%):�bp:�ret%:�
ra��ell:r%=�(X%-rx%):s%=�(Y%-ry%):�3,3:�I%=0�18�2:�69,rx%+r%*s%(I%+5)�100,ry%+s%*s%(I%)�100:�:�
|
��rect
�.�0,3)"RECTANGLE":�rx%=X%:ry%=Y%:�3,3:�box
���box:�move:�box
�!��-99��-74:�-74ret%=1�ret%=0
�6�curs(X%,Y%):�0,col%:�box:�curs(X%,Y%):�bp:�ret%:�
�4��box:�rx%,ry%:�X%,ry%:�X%,Y%:�rx%,Y%:�rx%,ry%:�
�
��fill
�:�0,3)"FILL":�curs(X%,Y%):Z%=�X%,Y%):�0,col%:�0,Z%+128
�@�flood(X%,Y%,4):�flood(X%,Y%-4,-4):�curs(X%,Y%):�0,128:�bp:�
���flood(A%,B%,D%)
��A%,B%)<>Z%�
�L��77,A%,B%:B%=B%+D%:��A%,B%)<>Z%:�flood((!&314*8+!&310)�2�&FFFF,B%,D%):�
�'��wipe:�-34��-17�:�bp:�curs(X%,Y%)
��

��zoom
N�0,3)"ZOOM":�curs(X%,Y%):�26:�0,3:�752,1023:�752,847:�1136,1023:�1136,847
*�pixel:A%=5:B%=5:�cro:�K%=�:�cro:*FX15
&Q�K%=90�A%>0A%=A%-1��K%=88�A%<10A%=A%+1��K%=58�B%<10B%=B%+1��K%=47�B%>0B%=B%-1
0h�K%>47�K%<52col%=K%-48:�4,0);col%��K%=32�0,col%:�768+A%*32,863+B%*16:�5,224,4:�69,rx%+A%*8,ry%+B%*4
:C�K%=136X%=X%-24��K%=137X%=X%+24��K%=138Y%=Y%-12��K%=139Y%=Y%+12
D"�K%>135�K%<140�pixel:A%=5:B%=5
NK�cro:��-74:�24,752;847;1136;1023;16,24,0;0;1279;831;:�curs(X%,Y%):�bp:�
X=��pixel:rx%=X%-40:ry%=Y%-20:�rx%<0rx%=0��rx%>1192rx%=1192
b�ry%>791ry%=791��ry%<0ry%=0
lN�5:�I%=0�10:�J%=0�10:�0,�rx%+I%*8,ry%+J%*4):�768+I%*32,863+J%*16:�224:�,:�
v.��cro:�3,3:�768+32*A%,863+16*B%:�5,226,4:�
�	��cut
�(�0,3)"CUT+PASTE":rx%=X%:ry%=Y%:�box
�B��box:�move:�box:��-99:�curs(X%,Y%):�X%<rx%a%=X%:X%=rx%:rx%=a%
��Y%<ry%a%=Y%:Y%=ry%:ry%=a%
�bC%=rx%:D%=ry%:E%=X%-rx%:F%=Y%-ry%:�curs(X%,Y%):��box:�move:rx%=X%-E%:ry%=Y%-F%:�box:��-74:�box
�7�curs(X%,Y%):�A%=�:�A%=32�A%=72�A%=86�A%=82:step%=8
�Z�A%=82�rotate:cos=��an%:sin=��an%:step%=4:�(an%>40�an%<140)�(an%>220�an%<320)sin=sin*2
�4�I%=0�E%�step%:�J%=0�F%�step%�2:�0,�C%+I%,D%+J%)
�{�A%=32�69,rx%+I%,ry%+J%��A%=72�69,rx%+E%-I%,ry%+J%��A%=86�69,rx%+I%,ry%+F%-J%��69,rx%+I%*cos-J%*sin,ry%+sin*I%�4+J%*cos
��,:�curs(X%,Y%):�bp:�
���rotate:an%=0:�line
�2�I%=an%+10*(�-67-�-98):�I%<0I%=350��I%>350I%=0
��I%<>an%�line:an%=I%:�line
��-99:�line:�
U��line:�rx%+60*��an%,ry%+60*��an%:�rx%,ry%:�rx%+10*��(an%+90),ry%+10*��(an%+90):�
��brush
 K�I%=0�4:�7,I%)�(227+I%)" - ";I%+1:�:�0,3)"BRUSH":�I%=�-49:�I%>=0�I%<5
*J��move:�-99�curs(X%,Y%):�0,col%:�X%-24,Y%+12:�5,227+I%,4:�curs(X%,Y%)
4#��-74:�I%=0�4:�7,I%)�8:�:�bp:�
>
��text
H*�0,3)"TEXT":A$="":rx%=X%-24:ry%=Y%+12
R;��I%=�:�I%>31�I%<128�I%=13:�curs(X%,Y%):�rx%,ry%:�5:�A$
\R�I%>31�I%<127�X%<1216A$=A$+�I%:X%=X%+64��I%=127�A$<>""A$=�A$,�(A$)-1):X%=X%-64
f$�rx%,ry%:�A$:�curs(X%,Y%):�I%=13
p$�0,col%:�rx%,ry%:�5:�A$:�4:�bp:�
z��file(I%)
�5�28,0,4,19,0,12:�'"Filename ?"'A$:�A$<>""�fi2(I%)
�%�:�"COL ";col%'"SPE ";sp%/8:�bp:�
�
��fi2(I%)
�7�'':�I%�"LOAD "+A$+" 5F80"��"SAVE "+A$+" 5F80 8000"
��
�I��scr(C%)�curs(X%,Y%):!&70=&5F80:!&72=S%:A%=C%:�Q%:�curs(X%,Y%):�bp:�
���init:*FX229,1
�;�S%8320,s%(24):�I%=1�25:s%(I%-1)=100*��(I%*18):�:*FX4,1
�e�23,224,240,240,240,240,0;0;23,225,16,16,0,198,0,16,16,0,23,226,0,96,96,0;0;0;23,227;0;24,24;0;0;
�l�23,228,0,0,60,60,60,60,0;23,229,0,0,0,16,56,16;0;23,230,0,0,24,60,60,24,0;23,231,16,8,34,8,130,33,20,34
�3X%=0:Y%=0:sp%=8:col%=3:�I%=0�2�2:P%=&900:[OPTI%
�m.Q%TAX:LDY#0:.s1:LDA(&70),Y:CPX#0:BNEsw:STA(&72),Y:SEC:BCSs2:.sw:PHA:LDA(&72),Y:STA(&70),Y:PLA:STA(&72),Y
�U.s2:INC&70:BNEs3:INC&71:.s3:INC&72:BNEs4:INC&73:.s4:LDA&71:CMP#&80:BNEs1:RTS:]�:�
�
00000000  0d 00 0a 1d f4 20 45 6c  6b 70 61 69 6e 74 20 62  |..... Elkpaint b|
00000010  79 20 53 74 75 61 72 74  20 42 61 69 6e 0d 00 14  |y Stuart Bain...|
00000020  17 f4 20 28 63 29 20 45  6c 65 63 74 72 6f 6e 20  |.. (c) Electron |
00000030  55 73 65 72 0d 00 1e 1b  ee 85 eb 36 3a f6 3a f1  |User.......6:.:.|
00000040  22 20 61 74 20 6c 69 6e  65 20 22 3b 9e 3a e0 0d  |" at line ";.:..|
00000050  00 28 3c eb 35 3a f2 69  6e 69 74 3a ec 30 2c 38  |.(<.5:.init:.0,8|
00000060  33 36 3a df 31 32 37 39  2c 38 33 36 3a ef 32 34  |36:.1279,836:.24|
00000070  2c 30 3b 30 3b 31 32 37  39 3b 38 33 31 3b 32 33  |,0;0;1279;831;23|
00000080  2c 31 2c 30 3b 30 3b 30  3b 30 3b 0d 00 32 2e f1  |,1,0;0;0;0;..2..|
00000090  8a 30 2c 30 29 22 43 4f  4c 20 33 22 27 22 53 50  |.0,0)"COL 3"'"SP|
000000a0  45 20 31 22 3a f2 63 75  72 73 28 58 25 2c 59 25  |E 1":.curs(X%,Y%|
000000b0  29 3a f2 73 63 72 28 30  29 0d 00 3c 30 f5 f2 6d  |):.scr(0)..<0..m|
000000c0  6f 76 65 3a e7 4b 25 3d  36 36 f2 62 61 6e 64 20  |ove:.K%=66.band |
000000d0  8b e7 4b 25 3d 36 37 f2  63 69 72 63 20 8b e7 4b  |..K%=67.circ ..K|
000000e0  25 3d 38 32 f2 72 65 63  74 0d 00 46 30 e7 4b 25  |%=82.rect..F0.K%|
000000f0  3d 36 39 f2 65 6c 6c 69  70 20 8b e7 4b 25 3d 37  |=69.ellip ..K%=7|
00000100  30 f2 66 69 6c 6c 20 8b  e7 4b 25 3d 38 37 84 4b  |0.fill ..K%=87.K|
00000110  25 3d 38 31 f2 77 69 70  65 0d 00 50 29 e7 4b 25  |%=81.wipe..P).K%|
00000120  3d 37 37 f2 7a 6f 6f 6d  20 8b e7 4b 25 3d 38 30  |=77.zoom ..K%=80|
00000130  f2 63 75 74 20 8b e7 4b  25 3d 36 35 f2 62 72 75  |.cut ..K%=65.bru|
00000140  73 68 0d 00 5a 2b e7 4b  25 3d 38 33 f2 73 63 72  |sh..Z+.K%=83.scr|
00000150  28 30 29 8b e7 4b 25 3d  38 35 f2 73 63 72 28 31  |(0)..K%=85.scr(1|
00000160  29 8b e7 4b 25 3d 38 34  f2 74 65 78 74 0d 00 64  |)..K%=84.text..d|
00000170  1c e7 4b 25 3d 37 36 84  4b 25 3d 37 35 f2 66 69  |..K%=76.K%=75.fi|
00000180  6c 65 28 4b 25 2d 37 35  29 0d 00 6e 10 f1 8a 30  |le(K%-75)..n...0|
00000190  2c 33 29 89 31 34 3a fd  30 0d 00 78 0a dd f2 6d  |,3).14:.0..x...m|
000001a0  6f 76 65 0d 00 82 0f 4b  25 3d a6 30 3a 2a 46 58  |ove....K%=.0:*FX|
000001b0  31 35 0d 00 8c 4d e7 4b  25 3e 33 32 80 4b 25 3c  |15...M.K%>32.K%<|
000001c0  33 39 73 70 25 3d 38 2a  28 4b 25 2d 33 32 29 3a  |39sp%=8*(K%-32):|
000001d0  f1 8a 34 2c 31 29 3b 73  70 25 81 38 8b e7 4b 25  |..4,1);sp%.8..K%|
000001e0  3e 34 37 80 4b 25 3c 35  32 63 6f 6c 25 3d 4b 25  |>47.K%<52col%=K%|
000001f0  2d 34 38 3a f1 8a 34 2c  30 29 3b 63 6f 6c 25 0d  |-48:..4,0);col%.|
00000200  00 96 3f 78 25 3d 58 25  3a 79 25 3d 59 25 3a 58  |..?x%=X%:y%=Y%:X|
00000210  25 3d 58 25 2b 28 a6 2d  39 38 2d a6 2d 36 37 29  |%=X%+(.-98-.-67)|
00000220  2a 73 70 25 3a e7 58 25  3c 30 58 25 3d 30 8b e7  |*sp%:.X%<0X%=0..|
00000230  58 25 3e 31 32 37 39 58  25 3d 31 32 37 39 0d 00  |X%>1279X%=1279..|
00000240  a0 34 59 25 3d 59 25 2b  28 a6 2d 31 30 35 2d a6  |.4Y%=Y%+(.-105-.|
00000250  2d 37 33 29 2a 73 70 25  81 32 3a e7 59 25 3c 30  |-73)*sp%.2:.Y%<0|
00000260  59 25 3d 30 8b e7 59 25  3e 38 33 31 59 25 3d 38  |Y%=0..Y%>831Y%=8|
00000270  33 31 0d 00 aa 1d f2 63  75 72 73 28 78 25 2c 79  |31.....curs(x%,y|
00000280  25 29 3a f2 63 75 72 73  28 58 25 2c 59 25 29 0d  |%):.curs(X%,Y%).|
00000290  00 b4 05 e1 0d 00 be 2d  dd f2 63 75 72 73 28 41  |.......-..curs(A|
000002a0  25 2c 42 25 29 e6 33 2c  33 3a ec 41 25 2d 32 34  |%,B%).3,3:.A%-24|
000002b0  2c 42 25 2b 31 32 3a ef  35 2c 32 32 35 2c 34 3a  |,B%+12:.5,225,4:|
000002c0  e1 0d 00 c8 17 dd f2 62  70 3a d4 31 2c 2d 31 30  |.......bp:.1,-10|
000002d0  2c 31 37 30 2c 32 3a e1  0d 00 d2 0a dd f2 62 61  |,170,2:.......ba|
000002e0  6e 64 0d 00 dc 38 f1 8a  30 2c 33 29 22 52 55 42  |nd...8..0,3)"RUB|
000002f0  42 45 52 20 42 41 4e 44  49 4e 47 22 3a f5 72 78  |BER BANDING":.rx|
00000300  25 3d 58 25 3a 72 79 25  3d 59 25 3a e6 33 2c 33  |%=X%:ry%=Y%:.3,3|
00000310  3a f0 36 39 2c 58 25 2c  59 25 0d 00 e6 2c f5 f2  |:.69,X%,Y%...,..|
00000320  6d 6f 76 65 3a ec 78 25  2c 79 25 3a df 72 78 25  |move:.x%,y%:.rx%|
00000330  2c 72 79 25 3a df 58 25  2c 59 25 3a e3 49 25 3d  |,ry%:.X%,Y%:.I%=|
00000340  30 b8 33 30 3a ed 0d 00  f0 40 fd a6 2d 39 39 84  |0.30:....@..-99.|
00000350  a6 2d 37 34 3a f2 63 75  72 73 28 58 25 2c 59 25  |.-74:.curs(X%,Y%|
00000360  29 3a e6 30 2c 63 6f 6c  25 3a ec 58 25 2c 59 25  |):.0,col%:.X%,Y%|
00000370  3a df 72 78 25 2c 72 79  25 3a f2 63 75 72 73 28  |:.rx%,ry%:.curs(|
00000380  58 25 2c 59 25 29 0d 00  fa 0f fd a6 2d 37 34 3a  |X%,Y%)......-74:|
00000390  f2 62 70 3a e1 0d 01 04  0a dd f2 63 69 72 63 0d  |.bp:.......circ.|
000003a0  01 0e 27 f1 8a 30 2c 33  29 22 43 49 52 43 4c 45  |..'..0,3)"CIRCLE|
000003b0  22 3a f5 72 78 25 3d 58  25 3a 72 79 25 3d 59 25  |":.rx%=X%:ry%=Y%|
000003c0  3a f2 64 6f 74 73 0d 01  18 34 f5 f2 64 6f 74 73  |:.dots...4..dots|
000003d0  3a f2 6d 6f 76 65 3a f2  64 6f 74 73 3a fd a6 2d  |:.move:.dots:..-|
000003e0  39 39 84 a6 2d 37 34 3a  e7 a6 2d 37 34 72 65 74  |99..-74:..-74ret|
000003f0  25 3d 31 8b 72 65 74 25  3d 30 0d 01 22 5c f2 63  |%=1.ret%=0.."\.c|
00000400  75 72 73 28 58 25 2c 59  25 29 3a f2 64 6f 74 73  |urs(X%,Y%):.dots|
00000410  3a e6 30 2c 63 6f 6c 25  3a ec 72 78 25 2b 72 25  |:.0,col%:.rx%+r%|
00000420  2c 72 79 25 3a e3 49 25  3d 30 b8 31 39 3a df 72  |,ry%:.I%=0.19:.r|
00000430  78 25 2b 72 25 2a 73 25  28 49 25 2b 35 29 81 31  |x%+r%*s%(I%+5).1|
00000440  30 30 2c 72 79 25 2b 72  25 2a 73 25 28 49 25 29  |00,ry%+r%*s%(I%)|
00000450  81 31 30 30 3a ed 0d 01  2c 2a 58 25 3d 72 78 25  |.100:...,*X%=rx%|
00000460  3a 59 25 3d 72 79 25 3a  f2 63 75 72 73 28 58 25  |:Y%=ry%:.curs(X%|
00000470  2c 59 25 29 3a f2 62 70  3a fd 72 65 74 25 3a e1  |,Y%):.bp:.ret%:.|
00000480  0d 01 36 64 dd f2 64 6f  74 73 3a 72 25 3d b6 28  |..6d..dots:r%=.(|
00000490  28 58 25 2d 72 78 25 29  5e 32 2b 28 59 25 2d 72  |(X%-rx%)^2+(Y%-r|
000004a0  79 25 29 5e 32 29 3a e6  33 2c 33 3a e3 49 25 3d  |y%)^2):.3,3:.I%=|
000004b0  30 b8 31 38 88 32 3a f0  36 39 2c 72 78 25 2b 72  |0.18.2:.69,rx%+r|
000004c0  25 2a 73 25 28 49 25 2b  35 29 81 31 30 30 2c 72  |%*s%(I%+5).100,r|
000004d0  79 25 2b 72 25 2a 73 25  28 49 25 29 81 31 30 30  |y%+r%*s%(I%).100|
000004e0  3a ed 3a e1 0d 01 40 0b  dd f2 65 6c 6c 69 70 0d  |:.:...@...ellip.|
000004f0  01 4a 27 f1 8a 30 2c 33  29 22 45 4c 4c 49 50 53  |.J'..0,3)"ELLIPS|
00000500  45 22 3a f5 72 78 25 3d  58 25 3a 72 79 25 3d 59  |E":.rx%=X%:ry%=Y|
00000510  25 3a f2 65 6c 6c 0d 01  54 32 f5 f2 65 6c 6c 3a  |%:.ell..T2..ell:|
00000520  f2 6d 6f 76 65 3a f2 65  6c 6c 3a fd a6 2d 39 39  |.move:.ell:..-99|
00000530  84 a6 2d 37 34 3a e7 a6  2d 37 34 72 65 74 25 3d  |..-74:..-74ret%=|
00000540  31 8b 72 65 74 25 3d 30  0d 01 5e 5b f2 63 75 72  |1.ret%=0..^[.cur|
00000550  73 28 58 25 2c 59 25 29  3a f2 65 6c 6c 3a e6 30  |s(X%,Y%):.ell:.0|
00000560  2c 63 6f 6c 25 3a ec 72  78 25 2b 72 25 2c 72 79  |,col%:.rx%+r%,ry|
00000570  25 3a e3 49 25 3d 30 b8  31 39 3a df 72 78 25 2b  |%:.I%=0.19:.rx%+|
00000580  72 25 2a 73 25 28 49 25  2b 35 29 81 31 30 30 2c  |r%*s%(I%+5).100,|
00000590  72 79 25 2b 73 25 2a 73  25 28 49 25 29 81 31 30  |ry%+s%*s%(I%).10|
000005a0  30 3a ed 0d 01 68 2a 58  25 3d 72 78 25 3a 59 25  |0:...h*X%=rx%:Y%|
000005b0  3d 72 79 25 3a f2 63 75  72 73 28 58 25 2c 59 25  |=ry%:.curs(X%,Y%|
000005c0  29 3a f2 62 70 3a fd 72  65 74 25 3a e1 0d 01 72  |):.bp:.ret%:...r|
000005d0  61 dd f2 65 6c 6c 3a 72  25 3d 94 28 58 25 2d 72  |a..ell:r%=.(X%-r|
000005e0  78 25 29 3a 73 25 3d 94  28 59 25 2d 72 79 25 29  |x%):s%=.(Y%-ry%)|
000005f0  3a e6 33 2c 33 3a e3 49  25 3d 30 b8 31 38 88 32  |:.3,3:.I%=0.18.2|
00000600  3a f0 36 39 2c 72 78 25  2b 72 25 2a 73 25 28 49  |:.69,rx%+r%*s%(I|
00000610  25 2b 35 29 81 31 30 30  2c 72 79 25 2b 73 25 2a  |%+5).100,ry%+s%*|
00000620  73 25 28 49 25 29 81 31  30 30 3a ed 3a e1 0d 01  |s%(I%).100:.:...|
00000630  7c 0a dd f2 72 65 63 74  0d 01 86 2e f1 8a 30 2c  ||...rect......0,|
00000640  33 29 22 52 45 43 54 41  4e 47 4c 45 22 3a f5 72  |3)"RECTANGLE":.r|
00000650  78 25 3d 58 25 3a 72 79  25 3d 59 25 3a e6 33 2c  |x%=X%:ry%=Y%:.3,|
00000660  33 3a f2 62 6f 78 0d 01  90 14 f5 f2 62 6f 78 3a  |3:.box......box:|
00000670  f2 6d 6f 76 65 3a f2 62  6f 78 0d 01 9a 21 fd a6  |.move:.box...!..|
00000680  2d 39 39 84 a6 2d 37 34  3a e7 a6 2d 37 34 72 65  |-99..-74:..-74re|
00000690  74 25 3d 31 8b 72 65 74  25 3d 30 0d 01 a4 36 f2  |t%=1.ret%=0...6.|
000006a0  63 75 72 73 28 58 25 2c  59 25 29 3a e6 30 2c 63  |curs(X%,Y%):.0,c|
000006b0  6f 6c 25 3a f2 62 6f 78  3a f2 63 75 72 73 28 58  |ol%:.box:.curs(X|
000006c0  25 2c 59 25 29 3a f2 62  70 3a fd 72 65 74 25 3a  |%,Y%):.bp:.ret%:|
000006d0  e1 0d 01 ae 34 dd f2 62  6f 78 3a ec 72 78 25 2c  |....4..box:.rx%,|
000006e0  72 79 25 3a df 58 25 2c  72 79 25 3a df 58 25 2c  |ry%:.X%,ry%:.X%,|
000006f0  59 25 3a df 72 78 25 2c  59 25 3a df 72 78 25 2c  |Y%:.rx%,Y%:.rx%,|
00000700  72 79 25 3a e1 0d 01 b8  0a dd f2 66 69 6c 6c 0d  |ry%:.......fill.|
00000710  01 c2 3a f1 8a 30 2c 33  29 22 46 49 4c 4c 22 3a  |..:..0,3)"FILL":|
00000720  f2 63 75 72 73 28 58 25  2c 59 25 29 3a 5a 25 3d  |.curs(X%,Y%):Z%=|
00000730  b0 58 25 2c 59 25 29 3a  e6 30 2c 63 6f 6c 25 3a  |.X%,Y%):.0,col%:|
00000740  e6 30 2c 5a 25 2b 31 32  38 0d 01 cc 40 f2 66 6c  |.0,Z%+128...@.fl|
00000750  6f 6f 64 28 58 25 2c 59  25 2c 34 29 3a f2 66 6c  |ood(X%,Y%,4):.fl|
00000760  6f 6f 64 28 58 25 2c 59  25 2d 34 2c 2d 34 29 3a  |ood(X%,Y%-4,-4):|
00000770  f2 63 75 72 73 28 58 25  2c 59 25 29 3a e6 30 2c  |.curs(X%,Y%):.0,|
00000780  31 32 38 3a f2 62 70 3a  e1 0d 01 d6 15 dd f2 66  |128:.bp:.......f|
00000790  6c 6f 6f 64 28 41 25 2c  42 25 2c 44 25 29 0d 01  |lood(A%,B%,D%)..|
000007a0  e0 11 e7 b0 41 25 2c 42  25 29 3c 3e 5a 25 e1 0d  |....A%,B%)<>Z%..|
000007b0  01 ea 4c f5 f0 37 37 2c  41 25 2c 42 25 3a 42 25  |..L..77,A%,B%:B%|
000007c0  3d 42 25 2b 44 25 3a fd  b0 41 25 2c 42 25 29 3c  |=B%+D%:..A%,B%)<|
000007d0  3e 5a 25 3a f2 66 6c 6f  6f 64 28 28 21 26 33 31  |>Z%:.flood((!&31|
000007e0  34 2a 38 2b 21 26 33 31  30 29 81 32 80 26 46 46  |4*8+!&310).2.&FF|
000007f0  46 46 2c 42 25 2c 44 25  29 3a e1 0d 01 f4 27 dd  |FF,B%,D%):....'.|
00000800  f2 77 69 70 65 3a e7 a6  2d 33 34 80 a6 2d 31 37  |.wipe:..-34..-17|
00000810  da 3a f2 62 70 3a f2 63  75 72 73 28 58 25 2c 59  |.:.bp:.curs(X%,Y|
00000820  25 29 0d 01 fe 05 e1 0d  02 08 0a dd f2 7a 6f 6f  |%)...........zoo|
00000830  6d 0d 02 12 4e f1 8a 30  2c 33 29 22 5a 4f 4f 4d  |m...N..0,3)"ZOOM|
00000840  22 3a f2 63 75 72 73 28  58 25 2c 59 25 29 3a ef  |":.curs(X%,Y%):.|
00000850  32 36 3a e6 30 2c 33 3a  ec 37 35 32 2c 31 30 32  |26:.0,3:.752,102|
00000860  33 3a df 37 35 32 2c 38  34 37 3a ec 31 31 33 36  |3:.752,847:.1136|
00000870  2c 31 30 32 33 3a df 31  31 33 36 2c 38 34 37 0d  |,1023:.1136,847.|
00000880  02 1c 2a f2 70 69 78 65  6c 3a 41 25 3d 35 3a 42  |..*.pixel:A%=5:B|
00000890  25 3d 35 3a f2 63 72 6f  3a f5 4b 25 3d a5 3a f2  |%=5:.cro:.K%=.:.|
000008a0  63 72 6f 3a 2a 46 58 31  35 0d 02 26 51 e7 4b 25  |cro:*FX15..&Q.K%|
000008b0  3d 39 30 80 41 25 3e 30  41 25 3d 41 25 2d 31 8b  |=90.A%>0A%=A%-1.|
000008c0  e7 4b 25 3d 38 38 80 41  25 3c 31 30 41 25 3d 41  |.K%=88.A%<10A%=A|
000008d0  25 2b 31 8b e7 4b 25 3d  35 38 80 42 25 3c 31 30  |%+1..K%=58.B%<10|
000008e0  42 25 3d 42 25 2b 31 8b  e7 4b 25 3d 34 37 80 42  |B%=B%+1..K%=47.B|
000008f0  25 3e 30 42 25 3d 42 25  2d 31 0d 02 30 68 e7 4b  |%>0B%=B%-1..0h.K|
00000900  25 3e 34 37 80 4b 25 3c  35 32 63 6f 6c 25 3d 4b  |%>47.K%<52col%=K|
00000910  25 2d 34 38 3a f1 8a 34  2c 30 29 3b 63 6f 6c 25  |%-48:..4,0);col%|
00000920  8b e7 4b 25 3d 33 32 e6  30 2c 63 6f 6c 25 3a ec  |..K%=32.0,col%:.|
00000930  37 36 38 2b 41 25 2a 33  32 2c 38 36 33 2b 42 25  |768+A%*32,863+B%|
00000940  2a 31 36 3a ef 35 2c 32  32 34 2c 34 3a f0 36 39  |*16:.5,224,4:.69|
00000950  2c 72 78 25 2b 41 25 2a  38 2c 72 79 25 2b 42 25  |,rx%+A%*8,ry%+B%|
00000960  2a 34 0d 02 3a 43 e7 4b  25 3d 31 33 36 58 25 3d  |*4..:C.K%=136X%=|
00000970  58 25 2d 32 34 8b e7 4b  25 3d 31 33 37 58 25 3d  |X%-24..K%=137X%=|
00000980  58 25 2b 32 34 8b e7 4b  25 3d 31 33 38 59 25 3d  |X%+24..K%=138Y%=|
00000990  59 25 2d 31 32 8b e7 4b  25 3d 31 33 39 59 25 3d  |Y%-12..K%=139Y%=|
000009a0  59 25 2b 31 32 0d 02 44  22 e7 4b 25 3e 31 33 35  |Y%+12..D".K%>135|
000009b0  80 4b 25 3c 31 34 30 f2  70 69 78 65 6c 3a 41 25  |.K%<140.pixel:A%|
000009c0  3d 35 3a 42 25 3d 35 0d  02 4e 4b f2 63 72 6f 3a  |=5:B%=5..NK.cro:|
000009d0  fd a6 2d 37 34 3a ef 32  34 2c 37 35 32 3b 38 34  |..-74:.24,752;84|
000009e0  37 3b 31 31 33 36 3b 31  30 32 33 3b 31 36 2c 32  |7;1136;1023;16,2|
000009f0  34 2c 30 3b 30 3b 31 32  37 39 3b 38 33 31 3b 3a  |4,0;0;1279;831;:|
00000a00  f2 63 75 72 73 28 58 25  2c 59 25 29 3a f2 62 70  |.curs(X%,Y%):.bp|
00000a10  3a e1 0d 02 58 3d dd f2  70 69 78 65 6c 3a 72 78  |:...X=..pixel:rx|
00000a20  25 3d 58 25 2d 34 30 3a  72 79 25 3d 59 25 2d 32  |%=X%-40:ry%=Y%-2|
00000a30  30 3a e7 72 78 25 3c 30  72 78 25 3d 30 8b e7 72  |0:.rx%<0rx%=0..r|
00000a40  78 25 3e 31 31 39 32 72  78 25 3d 31 31 39 32 0d  |x%>1192rx%=1192.|
00000a50  02 62 1f e7 72 79 25 3e  37 39 31 72 79 25 3d 37  |.b..ry%>791ry%=7|
00000a60  39 31 8b e7 72 79 25 3c  30 72 79 25 3d 30 0d 02  |91..ry%<0ry%=0..|
00000a70  6c 4e ef 35 3a e3 49 25  3d 30 b8 31 30 3a e3 4a  |lN.5:.I%=0.10:.J|
00000a80  25 3d 30 b8 31 30 3a e6  30 2c b0 72 78 25 2b 49  |%=0.10:.0,.rx%+I|
00000a90  25 2a 38 2c 72 79 25 2b  4a 25 2a 34 29 3a ec 37  |%*8,ry%+J%*4):.7|
00000aa0  36 38 2b 49 25 2a 33 32  2c 38 36 33 2b 4a 25 2a  |68+I%*32,863+J%*|
00000ab0  31 36 3a ef 32 32 34 3a  ed 2c 3a e1 0d 02 76 2e  |16:.224:.,:...v.|
00000ac0  dd f2 63 72 6f 3a e6 33  2c 33 3a ec 37 36 38 2b  |..cro:.3,3:.768+|
00000ad0  33 32 2a 41 25 2c 38 36  33 2b 31 36 2a 42 25 3a  |32*A%,863+16*B%:|
00000ae0  ef 35 2c 32 32 36 2c 34  3a e1 0d 02 80 09 dd f2  |.5,226,4:.......|
00000af0  63 75 74 0d 02 8a 28 f1  8a 30 2c 33 29 22 43 55  |cut...(..0,3)"CU|
00000b00  54 2b 50 41 53 54 45 22  3a 72 78 25 3d 58 25 3a  |T+PASTE":rx%=X%:|
00000b10  72 79 25 3d 59 25 3a f2  62 6f 78 0d 02 94 42 f5  |ry%=Y%:.box...B.|
00000b20  f2 62 6f 78 3a f2 6d 6f  76 65 3a f2 62 6f 78 3a  |.box:.move:.box:|
00000b30  fd a6 2d 39 39 3a f2 63  75 72 73 28 58 25 2c 59  |..-99:.curs(X%,Y|
00000b40  25 29 3a e7 58 25 3c 72  78 25 61 25 3d 58 25 3a  |%):.X%<rx%a%=X%:|
00000b50  58 25 3d 72 78 25 3a 72  78 25 3d 61 25 0d 02 9e  |X%=rx%:rx%=a%...|
00000b60  1e e7 59 25 3c 72 79 25  61 25 3d 59 25 3a 59 25  |..Y%<ry%a%=Y%:Y%|
00000b70  3d 72 79 25 3a 72 79 25  3d 61 25 0d 02 a8 62 43  |=ry%:ry%=a%...bC|
00000b80  25 3d 72 78 25 3a 44 25  3d 72 79 25 3a 45 25 3d  |%=rx%:D%=ry%:E%=|
00000b90  58 25 2d 72 78 25 3a 46  25 3d 59 25 2d 72 79 25  |X%-rx%:F%=Y%-ry%|
00000ba0  3a f2 63 75 72 73 28 58  25 2c 59 25 29 3a f5 f2  |:.curs(X%,Y%):..|
00000bb0  62 6f 78 3a f2 6d 6f 76  65 3a 72 78 25 3d 58 25  |box:.move:rx%=X%|
00000bc0  2d 45 25 3a 72 79 25 3d  59 25 2d 46 25 3a f2 62  |-E%:ry%=Y%-F%:.b|
00000bd0  6f 78 3a fd a6 2d 37 34  3a f2 62 6f 78 0d 02 b2  |ox:..-74:.box...|
00000be0  37 f2 63 75 72 73 28 58  25 2c 59 25 29 3a f5 41  |7.curs(X%,Y%):.A|
00000bf0  25 3d a5 3a fd 41 25 3d  33 32 84 41 25 3d 37 32  |%=.:.A%=32.A%=72|
00000c00  84 41 25 3d 38 36 84 41  25 3d 38 32 3a 73 74 65  |.A%=86.A%=82:ste|
00000c10  70 25 3d 38 0d 02 bc 5a  e7 41 25 3d 38 32 f2 72  |p%=8...Z.A%=82.r|
00000c20  6f 74 61 74 65 3a 63 6f  73 3d 9b b2 61 6e 25 3a  |otate:cos=..an%:|
00000c30  73 69 6e 3d b5 b2 61 6e  25 3a 73 74 65 70 25 3d  |sin=..an%:step%=|
00000c40  34 3a e7 28 61 6e 25 3e  34 30 80 61 6e 25 3c 31  |4:.(an%>40.an%<1|
00000c50  34 30 29 84 28 61 6e 25  3e 32 32 30 80 61 6e 25  |40).(an%>220.an%|
00000c60  3c 33 32 30 29 73 69 6e  3d 73 69 6e 2a 32 0d 02  |<320)sin=sin*2..|
00000c70  c6 34 e3 49 25 3d 30 b8  45 25 88 73 74 65 70 25  |.4.I%=0.E%.step%|
00000c80  3a e3 4a 25 3d 30 b8 46  25 88 73 74 65 70 25 81  |:.J%=0.F%.step%.|
00000c90  32 3a e6 30 2c b0 43 25  2b 49 25 2c 44 25 2b 4a  |2:.0,.C%+I%,D%+J|
00000ca0  25 29 0d 02 d0 7b e7 41  25 3d 33 32 f0 36 39 2c  |%)...{.A%=32.69,|
00000cb0  72 78 25 2b 49 25 2c 72  79 25 2b 4a 25 8b e7 41  |rx%+I%,ry%+J%..A|
00000cc0  25 3d 37 32 f0 36 39 2c  72 78 25 2b 45 25 2d 49  |%=72.69,rx%+E%-I|
00000cd0  25 2c 72 79 25 2b 4a 25  8b e7 41 25 3d 38 36 f0  |%,ry%+J%..A%=86.|
00000ce0  36 39 2c 72 78 25 2b 49  25 2c 72 79 25 2b 46 25  |69,rx%+I%,ry%+F%|
00000cf0  2d 4a 25 8b f0 36 39 2c  72 78 25 2b 49 25 2a 63  |-J%..69,rx%+I%*c|
00000d00  6f 73 2d 4a 25 2a 73 69  6e 2c 72 79 25 2b 73 69  |os-J%*sin,ry%+si|
00000d10  6e 2a 49 25 81 34 2b 4a  25 2a 63 6f 73 0d 02 da  |n*I%.4+J%*cos...|
00000d20  19 ed 2c 3a f2 63 75 72  73 28 58 25 2c 59 25 29  |..,:.curs(X%,Y%)|
00000d30  3a f2 62 70 3a e1 0d 02  e4 18 dd f2 72 6f 74 61  |:.bp:.......rota|
00000d40  74 65 3a 61 6e 25 3d 30  3a f2 6c 69 6e 65 0d 02  |te:an%=0:.line..|
00000d50  ee 32 f5 49 25 3d 61 6e  25 2b 31 30 2a 28 a6 2d  |.2.I%=an%+10*(.-|
00000d60  36 37 2d a6 2d 39 38 29  3a e7 49 25 3c 30 49 25  |67-.-98):.I%<0I%|
00000d70  3d 33 35 30 8b e7 49 25  3e 33 35 30 49 25 3d 30  |=350..I%>350I%=0|
00000d80  0d 02 f8 1e e7 49 25 3c  3e 61 6e 25 f2 6c 69 6e  |.....I%<>an%.lin|
00000d90  65 3a 61 6e 25 3d 49 25  3a f2 6c 69 6e 65 0d 03  |e:an%=I%:.line..|
00000da0  02 11 fd a6 2d 39 39 3a  f2 6c 69 6e 65 3a e1 0d  |....-99:.line:..|
00000db0  03 0c 55 dd f2 6c 69 6e  65 3a ec 72 78 25 2b 36  |..U..line:.rx%+6|
00000dc0  30 2a 9b b2 61 6e 25 2c  72 79 25 2b 36 30 2a b5  |0*..an%,ry%+60*.|
00000dd0  b2 61 6e 25 3a df 72 78  25 2c 72 79 25 3a df 72  |.an%:.rx%,ry%:.r|
00000de0  78 25 2b 31 30 2a 9b b2  28 61 6e 25 2b 39 30 29  |x%+10*..(an%+90)|
00000df0  2c 72 79 25 2b 31 30 2a  b5 b2 28 61 6e 25 2b 39  |,ry%+10*..(an%+9|
00000e00  30 29 3a e1 0d 03 16 0b  dd f2 62 72 75 73 68 0d  |0):.......brush.|
00000e10  03 20 4b e3 49 25 3d 30  b8 34 3a f1 8a 37 2c 49  |. K.I%=0.4:..7,I|
00000e20  25 29 bd 28 32 32 37 2b  49 25 29 22 20 2d 20 22  |%).(227+I%)" - "|
00000e30  3b 49 25 2b 31 3a ed 3a  f1 8a 30 2c 33 29 22 42  |;I%+1:.:..0,3)"B|
00000e40  52 55 53 48 22 3a f5 49  25 3d a5 2d 34 39 3a fd  |RUSH":.I%=.-49:.|
00000e50  49 25 3e 3d 30 80 49 25  3c 35 0d 03 2a 4a f5 f2  |I%>=0.I%<5..*J..|
00000e60  6d 6f 76 65 3a e7 a6 2d  39 39 f2 63 75 72 73 28  |move:..-99.curs(|
00000e70  58 25 2c 59 25 29 3a e6  30 2c 63 6f 6c 25 3a ec  |X%,Y%):.0,col%:.|
00000e80  58 25 2d 32 34 2c 59 25  2b 31 32 3a ef 35 2c 32  |X%-24,Y%+12:.5,2|
00000e90  32 37 2b 49 25 2c 34 3a  f2 63 75 72 73 28 58 25  |27+I%,4:.curs(X%|
00000ea0  2c 59 25 29 0d 03 34 23  fd a6 2d 37 34 3a e3 49  |,Y%)..4#..-74:.I|
00000eb0  25 3d 30 b8 34 3a f1 8a  37 2c 49 25 29 89 38 3a  |%=0.4:..7,I%).8:|
00000ec0  ed 3a f2 62 70 3a e1 0d  03 3e 0a dd f2 74 65 78  |.:.bp:...>...tex|
00000ed0  74 0d 03 48 2a f1 8a 30  2c 33 29 22 54 45 58 54  |t..H*..0,3)"TEXT|
00000ee0  22 3a 41 24 3d 22 22 3a  72 78 25 3d 58 25 2d 32  |":A$="":rx%=X%-2|
00000ef0  34 3a 72 79 25 3d 59 25  2b 31 32 0d 03 52 3b f5  |4:ry%=Y%+12..R;.|
00000f00  f5 49 25 3d a5 3a fd 49  25 3e 33 31 80 49 25 3c  |.I%=.:.I%>31.I%<|
00000f10  31 32 38 84 49 25 3d 31  33 3a f2 63 75 72 73 28  |128.I%=13:.curs(|
00000f20  58 25 2c 59 25 29 3a ec  72 78 25 2c 72 79 25 3a  |X%,Y%):.rx%,ry%:|
00000f30  ef 35 3a f1 41 24 0d 03  5c 52 e7 49 25 3e 33 31  |.5:.A$..\R.I%>31|
00000f40  80 49 25 3c 31 32 37 80  58 25 3c 31 32 31 36 41  |.I%<127.X%<1216A|
00000f50  24 3d 41 24 2b bd 49 25  3a 58 25 3d 58 25 2b 36  |$=A$+.I%:X%=X%+6|
00000f60  34 8b e7 49 25 3d 31 32  37 80 41 24 3c 3e 22 22  |4..I%=127.A$<>""|
00000f70  41 24 3d c0 41 24 2c a9  28 41 24 29 2d 31 29 3a  |A$=.A$,.(A$)-1):|
00000f80  58 25 3d 58 25 2d 36 34  0d 03 66 24 ec 72 78 25  |X%=X%-64..f$.rx%|
00000f90  2c 72 79 25 3a f1 41 24  3a f2 63 75 72 73 28 58  |,ry%:.A$:.curs(X|
00000fa0  25 2c 59 25 29 3a fd 49  25 3d 31 33 0d 03 70 24  |%,Y%):.I%=13..p$|
00000fb0  e6 30 2c 63 6f 6c 25 3a  ec 72 78 25 2c 72 79 25  |.0,col%:.rx%,ry%|
00000fc0  3a ef 35 3a f1 41 24 3a  ef 34 3a f2 62 70 3a e1  |:.5:.A$:.4:.bp:.|
00000fd0  0d 03 7a 0e dd f2 66 69  6c 65 28 49 25 29 0d 03  |..z...file(I%)..|
00000fe0  84 35 ef 32 38 2c 30 2c  34 2c 31 39 2c 30 2c 31  |.5.28,0,4,19,0,1|
00000ff0  32 3a e8 27 22 46 69 6c  65 6e 61 6d 65 20 3f 22  |2:.'"Filename ?"|
00001000  27 41 24 3a e7 41 24 3c  3e 22 22 f2 66 69 32 28  |'A$:.A$<>"".fi2(|
00001010  49 25 29 0d 03 8e 25 db  3a f1 22 43 4f 4c 20 22  |I%)...%.:."COL "|
00001020  3b 63 6f 6c 25 27 22 53  50 45 20 22 3b 73 70 25  |;col%'"SPE ";sp%|
00001030  2f 38 3a f2 62 70 3a e1  0d 03 98 0d dd f2 66 69  |/8:.bp:.......fi|
00001040  32 28 49 25 29 0d 03 a2  37 f1 27 27 3a e7 49 25  |2(I%)...7.'':.I%|
00001050  ff 22 4c 4f 41 44 20 22  2b 41 24 2b 22 20 35 46  |."LOAD "+A$+" 5F|
00001060  38 30 22 8b ff 22 53 41  56 45 20 22 2b 41 24 2b  |80".."SAVE "+A$+|
00001070  22 20 35 46 38 30 20 38  30 30 30 22 0d 03 ac 05  |" 5F80 8000"....|
00001080  e1 0d 03 b6 49 dd f2 73  63 72 28 43 25 29 f2 63  |....I..scr(C%).c|
00001090  75 72 73 28 58 25 2c 59  25 29 3a 21 26 37 30 3d  |urs(X%,Y%):!&70=|
000010a0  26 35 46 38 30 3a 21 26  37 32 3d 53 25 3a 41 25  |&5F80:!&72=S%:A%|
000010b0  3d 43 25 3a d6 51 25 3a  f2 63 75 72 73 28 58 25  |=C%:.Q%:.curs(X%|
000010c0  2c 59 25 29 3a f2 62 70  3a e1 0d 03 c0 13 dd f2  |,Y%):.bp:.......|
000010d0  69 6e 69 74 3a 2a 46 58  32 32 39 2c 31 0d 03 ca  |init:*FX229,1...|
000010e0  3b de 53 25 38 33 32 30  2c 73 25 28 32 34 29 3a  |;.S%8320,s%(24):|
000010f0  e3 49 25 3d 31 b8 32 35  3a 73 25 28 49 25 2d 31  |.I%=1.25:s%(I%-1|
00001100  29 3d 31 30 30 2a b5 b2  28 49 25 2a 31 38 29 3a  |)=100*..(I%*18):|
00001110  ed 3a 2a 46 58 34 2c 31  0d 03 d4 65 ef 32 33 2c  |.:*FX4,1...e.23,|
00001120  32 32 34 2c 32 34 30 2c  32 34 30 2c 32 34 30 2c  |224,240,240,240,|
00001130  32 34 30 2c 30 3b 30 3b  32 33 2c 32 32 35 2c 31  |240,0;0;23,225,1|
00001140  36 2c 31 36 2c 30 2c 31  39 38 2c 30 2c 31 36 2c  |6,16,0,198,0,16,|
00001150  31 36 2c 30 2c 32 33 2c  32 32 36 2c 30 2c 39 36  |16,0,23,226,0,96|
00001160  2c 39 36 2c 30 3b 30 3b  30 3b 32 33 2c 32 32 37  |,96,0;0;0;23,227|
00001170  3b 30 3b 32 34 2c 32 34  3b 30 3b 30 3b 0d 03 de  |;0;24,24;0;0;...|
00001180  6c ef 32 33 2c 32 32 38  2c 30 2c 30 2c 36 30 2c  |l.23,228,0,0,60,|
00001190  36 30 2c 36 30 2c 36 30  2c 30 3b 32 33 2c 32 32  |60,60,60,0;23,22|
000011a0  39 2c 30 2c 30 2c 30 2c  31 36 2c 35 36 2c 31 36  |9,0,0,0,16,56,16|
000011b0  3b 30 3b 32 33 2c 32 33  30 2c 30 2c 30 2c 32 34  |;0;23,230,0,0,24|
000011c0  2c 36 30 2c 36 30 2c 32  34 2c 30 3b 32 33 2c 32  |,60,60,24,0;23,2|
000011d0  33 31 2c 31 36 2c 38 2c  33 34 2c 38 2c 31 33 30  |31,16,8,34,8,130|
000011e0  2c 33 33 2c 32 30 2c 33  34 0d 03 e8 33 58 25 3d  |,33,20,34...3X%=|
000011f0  30 3a 59 25 3d 30 3a 73  70 25 3d 38 3a 63 6f 6c  |0:Y%=0:sp%=8:col|
00001200  25 3d 33 3a e3 49 25 3d  30 b8 32 88 32 3a 50 25  |%=3:.I%=0.2.2:P%|
00001210  3d 26 39 30 30 3a 5b 4f  50 54 49 25 0d 03 f2 6d  |=&900:[OPTI%...m|
00001220  2e 51 25 54 41 58 3a 4c  44 59 23 30 3a 2e 73 31  |.Q%TAX:LDY#0:.s1|
00001230  3a 4c 44 41 28 26 37 30  29 2c 59 3a 43 50 58 23  |:LDA(&70),Y:CPX#|
00001240  30 3a 42 4e 45 73 77 3a  53 54 41 28 26 37 32 29  |0:BNEsw:STA(&72)|
00001250  2c 59 3a 53 45 43 3a 42  43 53 73 32 3a 2e 73 77  |,Y:SEC:BCSs2:.sw|
00001260  3a 50 48 41 3a 4c 44 41  28 26 37 32 29 2c 59 3a  |:PHA:LDA(&72),Y:|
00001270  53 54 41 28 26 37 30 29  2c 59 3a 50 4c 41 3a 53  |STA(&70),Y:PLA:S|
00001280  54 41 28 26 37 32 29 2c  59 0d 03 fc 55 2e 73 32  |TA(&72),Y...U.s2|
00001290  3a 49 4e 43 26 37 30 3a  42 4e 45 73 33 3a 49 4e  |:INC&70:BNEs3:IN|
000012a0  43 26 37 31 3a 2e 73 33  3a 49 4e 43 26 37 32 3a  |C&71:.s3:INC&72:|
000012b0  42 4e 45 73 34 3a 49 4e  43 26 37 33 3a 2e 73 34  |BNEs4:INC&73:.s4|
000012c0  3a 4c 44 41 26 37 31 3a  43 4d 50 23 26 38 30 3a  |:LDA&71:CMP#&80:|
000012d0  42 4e 45 73 31 3a 52 54  53 3a 5d ed 3a e1 0d ff  |BNEs1:RTS:].:...|
000012e0
GRAPHICS/Elk-Paint.m0
GRAPHICS/Elk-Paint.m1
GRAPHICS/Elk-Paint.m2
GRAPHICS/Elk-Paint.m4
GRAPHICS/Elk-Paint.m5