Home » Archimedes archive » Acorn User » AU 1997-11 B.adf » Regulars » StarInfo/Holloway/!Shade/shadeH

StarInfo/Holloway/!Shade/shadeH

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 1997-11 B.adf » Regulars
Filename: StarInfo/Holloway/!Shade/shadeH
Read OK:
File size: 12A8 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM Unusual drawing program
   20REM Version 2.64
   30REM Requires RISC OS version 3.5 or later
   40REM 640x480x16m version
   50REM (c) Alex Holloway, 1997
   60:
   70ON ERROR IF ERR<>17 THEN PROCerror ELSE PROCfinish
   80SYS "OS_File",13,"<Shade$Dir>.Brushes" TO ,,,,l%
   90DIM code% 1000, vdut% 20, cols% 16, sprite% &130020, modeblk% 60, brushes% l%+16
  100SYS "OS_ScreenMode",1 TO ,ptr%
  110FOR i%=0 TO 56 STEP 4
  120modeblk%!i%=ptr%!i%
  130NEXT
  140MODE "X640 Y480 C16M EX1 EY1"
  150rb%=0:gb%=0:bb%=0
  160PROCsetcols
  170CLG:OFF
  180!sprite%=&130000:sprite%!8=16
  190SYS "OS_SpriteOp",256+9,sprite%
  200!brushes%=l%+16:brushes%!8=16
  210SYS "OS_SpriteOp",256+9,brushes%
  220SYS "OS_SpriteOp",256+10,brushes%,"<Shade$Dir>.Brushes"
  230pos%=0
  240SYS "OS_SpriteOp",256+8,brushes% TO ,,,numspr%,sprst%
  250DIM pixtable% 1600*numspr%,names% numspr%*12,snames$(numspr%)
  260FOR c%=0 TO numspr%-1
  270c2%=c%*12
  280PROCsetup_pixtable(brushes%+sprst%+124*c%)
  290SYS "OS_SpriteOp",256+13,brushes%,names%+c2%,12,c%+1
  300pofzero%=INSTR($(names%+c2%),CHR$0)
  310snames$(c%+1)=LEFT$($(names%+c2%),pofzero%-1)+CHR$13
  320NEXT
  330!cols%=0:size%=20:D%=40:H%=1
  340PROCchange_colourshift
  350PROCchange_brushtype
  360PROCchange_bg
  370CLG
  380PROCassm_setup
  390filename$="<Shade$Dir>.Screen"
  400*Pointer
  410x2%=640:y2%=480
  420MOUSE RECTANGLE 20,22,1238,918
  430REPEAT
  440MOUSE x%,y%,b%
  450x%-=x% MOD 2
  460IF b%>0 AND (x%<>x2% OR y%<>y2%) THEN PROCdraw
  470x2%=x%:y2%=y%
  480IF INKEY(-90) CLG
  490IF INKEY(-62) PROCmenu
  500IF INKEY(-33) PROCsave
  510UNTIL FALSE
  520PROCfinish
  530:
  540DEF PROCdraw
  550IF x%=x2% THEN x%+=1
  560IF ABS(x%-x2%)>ABS(y%-y2%) THEN PROCdraw_across ELSE PROCdraw_up
  570ENDPROC
  580:
  590DEF PROCdraw_across
  600m=(y%-y2%)/(x%-x2%)
  610c=y%-m*x%
  620IF x%>x2% THEN v%=x2%:w%=x%-2 ELSE v%=x%:w%=x2%-2
  630FOR i%=v% TO w% STEP 2
  640B%=i%-size%:C%=m*i%+c+size%:E%=D%
  650CALL plot
  660NEXT
  670ENDPROC
  680:
  690DEF PROCdraw_up
  700m=(y%-y2%)/(x%-x2%)
  710c=y%-m*x%
  720IF y%>y2% THEN v%=y2%:w%=y%-2 ELSE v%=y%:w%=y2%-2
  730FOR i%=v% TO w% STEP 2
  740B%=(i%-c)/m-size%:C%=i%+size%:E%=D%
  750B%-=B% MOD 2
  760CALL plot
  770NEXT
  780ENDPROC
  790:
  800DEF PROCassm_setup
  810!vdut%=149:vdut%!4=-1
  820SYS "OS_ReadVduVariables",vdut%,vdut%+8
  830A%=vdut%!8
  840F%=pixtable%
  850G%=cols%
  860FOR pass%=0 TO 2 STEP 2
  870P%=code%
  880[OPT pass%
  890.plot
  900STR R5,pxts
  910RSB R2,R2,#960
  920MOV R2,R2,LSR #1
  930MOV R4,R4,LSR #1
  940MOV R5,#1280
  950MOV R8,#2560
  960MLA R9,R2,R8,R0
  970ADD R9,R9,R1,LSL #1
  980ADD R12,R9,R3,LSL #1
  990MLA R10,R4,R8,R9
 1000ADD R10,R10,R3,LSL #1
 1010LDR R5,pxts
 1020SUB R7,R7,#1
 1030MOV R1,#1600
 1040MLA R5,R7,R1,R5
 1050MOV R0,#255
 1060.loop
 1070LDR R8,[R5],#4
 1080TEQ R8,#0
 1090BEQ skip
 1100LDR R11,[R9]
 1110MOV R7,#0
 1120.split
 1130LDR R1,[R6],#4
 1140AND R2,R0,R11,ASR R7
 1150ADDS R2,R2,R1
 1160MOVMI R2,#0
 1170CMP R2,R0
 1180MOVGT R2,R0
 1190BIC R11,R11,R0,ASL R7
 1200ORR R11,R11,R2,ASL R7
 1210ADD R7,R7,#8
 1220TEQ R7,#24
 1230BNE split
 1240STR R11,[R9]
 1250SUB R6,R6,#12
 1260.skip
 1270ADD R9,R9,#4
 1280CMP R9,R10
 1290MOVHS PC,R14
 1300CMP R9,R12
 1310ADDHS R9,R9,#2560
 1320SUBHS R9,R9,R3,LSL #1
 1330ADDHS R12,R12,#2560
 1340B loop
 1350.pxts
 1360EQUD 0
 1370]
 1380NEXT
 1390ENDPROC
 1400:
 1410DEF PROCsetup_pixtable(sprite%)
 1420FOR yc%=19 TO 0 STEP -1
 1430FOR xc%=0 TO 19
 1440SYS "OS_SpriteOp",512+41,brushes%,sprite%,xc%,yc% TO ,,,,,pixtable%!pos%
 1450pos%+=4
 1460NEXT,
 1470ENDPROC
 1480:
 1490DEF PROCmenu
 1500SYS "OS_Byte",21,0
 1510SYS "OS_SpriteOp",256+16,sprite%,"screendump",0,0,0,1280,960
 1520CLG
 1530PRINTTAB(11,0);"SketchPlus Menu Options:"
 1540PRINTTAB(11,1);"========================"
 1550PRINTTAB(11,3);"1: Change colour shift"
 1560PRINTTAB(11,4);"2: Change brush type"
 1570PRINTTAB(11,5);"3: Change background colour"
 1580PRINTTAB(11,6);"4: Change filename for screen save"
 1590O$=GET$
 1600CASE O$ OF
 1610WHEN "1":PROCchange_colourshift
 1620WHEN "2":PROCchange_brushtype
 1630WHEN "3":PROCchange_bg
 1640WHEN "4":PROCchange_filename
 1650ENDCASE
 1660CLG
 1670SYS "OS_SpriteOp",256+34,sprite%,"screendump",0,0,0
 1680IF O$="3" THEN CLG
 1690ENDPROC
 1700:
 1710DEF PROCchange_colourshift
 1720CLG
 1730PRINTTAB(11,0);"Specify new colour shift:"
 1740INPUTTAB(11,1);"Red element:   ";!cols%
 1750INPUTTAB(11,2);"Green element: ";cols%!4
 1760INPUTTAB(11,3);"Blue element:  ";cols%!8
 1770ENDPROC
 1780:
 1790DEF PROCchange_brushtype
 1800CLG
 1810old%=H%
 1820PRINTTAB(11,0);"Old brush type: ";snames$(old%)
 1830PRINTTAB(11,2);"Choose a new brush type:"
 1840line%=3
 1850FOR i%=1 TO numspr%
 1860PRINTTAB(11,line%);i%;": ";snames$(i%)
 1870line%+=1
 1880NEXT
 1890INPUTTAB(11,line%+1);H%
 1900IF H%<0 OR H%>numspr% THEN H%=old%:PROCchange_brushtype
 1910IF H%=0 THEN H%=old%
 1920size%=20:D%=40
 1930ENDPROC
 1940:
 1950DEF PROCchange_bg
 1960CLG
 1970PRINTTAB(11,0);"New background colour:"
 1980INPUTTAB(11,2);"Red element   ";rb%
 1990INPUTTAB(11,3);"Green element ";gb%
 2000INPUTTAB(11,4);"Blue element  ";bb%
 2010IF rb%<0 OR rb%>255 OR gb%<0 OR gb%>255 OR bb%<0 OR bb%>255 THEN PROCchange_bg
 2020PROCsetcols
 2030ENDPROC
 2040:
 2050DEF PROCsetcols
 2060GCOL 128,rb%,gb%,bb%
 2070IF (rb%+gb%+bb%)<384 THEN
 2080COLOUR 0
 2090COLOUR 191
 2100ELSE
 2110COLOUR 63
 2120COLOUR 128
 2130ENDIF
 2140ENDPROC
 2150:
 2160DEF PROCchange_filename
 2170CLG
 2180old$=filename$
 2190PRINTTAB(11,0);"Old filename:"
 2200PRINTTAB(11,1);filename$
 2210PRINTTAB(11,3);"New filename:"
 2220INPUTTAB(11,4);filename$
 2230IF filename$="" THEN filename$=old$
 2240ENDPROC
 2250:
 2260DEF PROCsave
 2270SYS "OS_Byte",21,0
 2280SYS "OS_SpriteOp",2,,filename$,0
 2290ENDPROC
 2300:
 2310DEF PROCerror
 2320PRINT REPORT$;" at line ";ERL
 2330key=GET
 2340PROCfinish
 2350:
 2360DEF PROCfinish
 2370SYS "Wimp_SetMode",modeblk%
 2380ON
 2390END

� Unusual drawing program
� Version 2.64
+� Requires RISC OS version 3.5 or later
(� 640x480x16m version
2� (c) Alex Holloway, 1997
<:
F"� � � �<>17 � �error � �finish
P2ș "OS_File",13,"<Shade$Dir>.Brushes" � ,,,,l%
ZR� code% 1000, vdut% 20, cols% 16, sprite% &130020, modeblk% 60, brushes% l%+16
d ș "OS_ScreenMode",1 � ,ptr%
n� i%=0 � 56 � 4
xmodeblk%!i%=ptr%!i%
��
�� "X640 Y480 C16M EX1 EY1"
�rb%=0:gb%=0:bb%=0
��setcols
��:�
�!!sprite%=&130000:sprite%!8=16
�"ș "OS_SpriteOp",256+9,sprite%
�!!brushes%=l%+16:brushes%!8=16
�#ș "OS_SpriteOp",256+9,brushes%
�:ș "OS_SpriteOp",256+10,brushes%,"<Shade$Dir>.Brushes"
�
pos%=0
�7ș "OS_SpriteOp",256+8,brushes% � ,,,numspr%,sprst%
�?� pixtable% 1600*numspr%,names% numspr%*12,snames$(numspr%)
� c%=0 � numspr%-1

c2%=c%*12
+�setup_pixtable(brushes%+sprst%+124*c%)
"7ș "OS_SpriteOp",256+13,brushes%,names%+c2%,12,c%+1
,pofzero%=�$(names%+c2%),�0)
60snames$(c%+1)=�$(names%+c2%),pofzero%-1)+�13
@�
J !cols%=0:size%=20:D%=40:H%=1
T�change_colourshift
^�change_brushtype
h�change_bg
r�
|�assm_setup
�"filename$="<Shade$Dir>.Screen"
�*Pointer
�x2%=640:y2%=480
�ȗ ȓ 20,22,1238,918
��
�ȗ x%,y%,b%
�x%-=x% � 2
�(� b%>0 � (x%<>x2% � y%<>y2%) � �draw
�x2%=x%:y2%=y%
�� �(-90) �
�� �(-62) �menu
�� �(-33) �save
�� �
�finish
:
� �draw
&� x%=x2% � x%+=1
03� �(x%-x2%)>�(y%-y2%) � �draw_across � �draw_up
:�
D:
N� �draw_across
Xm=(y%-y2%)/(x%-x2%)
b
c=y%-m*x%
l.� x%>x2% � v%=x2%:w%=x%-2 � v%=x%:w%=x2%-2
v� i%=v% � w% � 2
�%B%=i%-size%:C%=m*i%+c+size%:E%=D%
�
� plot
��
��
�:
�� �draw_up
�m=(y%-y2%)/(x%-x2%)
�
c=y%-m*x%
�.� y%>y2% � v%=y2%:w%=y%-2 � v%=y%:w%=y2%-2
�� i%=v% � w% � 2
�'B%=(i%-c)/m-size%:C%=i%+size%:E%=D%
�B%-=B% � 2
�
� plot
�
�
:
 � �assm_setup
*!vdut%=149:vdut%!4=-1
4*ș "OS_ReadVduVariables",vdut%,vdut%+8
>A%=vdut%!8
HF%=pixtable%
RG%=cols%
\� pass%=0 � 2 � 2
fP%=code%
p[OPT pass%
z	.plot
�STR R5,pxts
�RSB R2,R2,#960
�MOV R2,R2,LSR #1
�MOV R4,R4,LSR #1
�MOV R5,#1280
�MOV R8,#2560
�MLA R9,R2,R8,R0
�ADD R9,R9,R1,LSL #1
�ADD R12,R9,R3,LSL #1
�MLA R10,R4,R8,R9
�ADD R10,R10,R3,LSL #1
�LDR R5,pxts
�SUB R7,R7,#1
MOV R1,#1600
MLA R5,R7,R1,R5
MOV R0,#255
$	.loop
.LDR R8,[R5],#4
8
TEQ R8,#0
BBEQ skip
LLDR R11,[R9]
V
MOV R7,#0
`
.split
jLDR R1,[R6],#4
t� R2,R0,R11,ASR R7
~ADDS R2,R2,R1
�MOVMI R2,#0
�
CMP R2,R0
�MOVGT R2,R0
�BIC R11,R11,R0,ASL R7
��R R11,R11,R2,ASL R7
�ADD R7,R7,#8
�TEQ R7,#24
�
BNE split
�STR R11,[R9]
�SUB R6,R6,#12
�	.skip
�ADD R9,R9,#4
CMP R9,R10

MOVHS PC,R14
CMP R9,R12
ADDHS R9,R9,#2560
(SUBHS R9,R9,R3,LSL #1
2ADDHS R12,R12,#2560
<
B loop
F	.pxts
P
EQUD 0
Z]
d�
n�
x:
�� �setup_pixtable(sprite%)
�� yc%=19 � 0 � -1
�� xc%=0 � 19
�Jș "OS_SpriteOp",512+41,brushes%,sprite%,xc%,yc% � ,,,,,pixtable%!pos%
�pos%+=4
��,
��
�:
�� �menu
�ș "OS_Byte",21,0
�?ș "OS_SpriteOp",256+16,sprite%,"screendump",0,0,0,1280,960
��
�&�11,0);"SketchPlus Menu Options:"
&�11,1);"========================"
$�11,3);"1: Change colour shift"
"�11,4);"2: Change brush type"
")�11,5);"3: Change background colour"
,0�11,6);"4: Change filename for screen save"
6O$=�
@Ȏ O$ �
J� "1":�change_colourshift
T� "2":�change_brushtype
^� "3":�change_bg
h� "4":�change_filename
r�
|�
�6ș "OS_SpriteOp",256+34,sprite%,"screendump",0,0,0
�� O$="3" � �
��
�:
�� �change_colourshift
��
�'�11,0);"Specify new colour shift:"
�$�11,1);"Red element:   ";!cols%
�%�11,2);"Green element: ";cols%!4
�%�11,3);"Blue element:  ";cols%!8
��
�:
�� �change_brushtype
�
old%=H%
,�11,0);"Old brush type: ";snames$(old%)
&&�11,2);"Choose a new brush type:"
0line%=3
:� i%=1 � numspr%
D#�11,line%);i%;": ";snames$(i%)
Nline%+=1
X�
b�11,line%+1);H%
l3� H%<0 � H%>numspr% � H%=old%:�change_brushtype
v� H%=0 � H%=old%
�size%=20:D%=40
��
�:
�� �change_bg
��
�$�11,0);"New background colour:"
� �11,2);"Red element   ";rb%
� �11,3);"Green element ";gb%
� �11,4);"Blue element  ";bb%
�F� rb%<0 � rb%>255 � gb%<0 � gb%>255 � bb%<0 � bb%>255 � �change_bg
��setcols
��
�:
� �setcols
� 128,rb%,gb%,bb%
� (rb%+gb%+bb%)<384 �
 � 0
*	� 191
4�
>� 63
H	� 128
R�
\�
f:
p� �change_filename
z�
�old$=filename$
��11,0);"Old filename:"
��11,1);filename$
��11,3);"New filename:"
��11,4);filename$
�#� filename$="" � filename$=old$
��
�:
�� �save
�ș "OS_Byte",21,0
�#ș "OS_SpriteOp",2,,filename$,0
��
�:
	� �error
	� �$;" at line ";�
		key=�
	$�finish
	.:
	8
� �finish
	Bș "Wimp_SetMode",modeblk%
	L�
	V�
�
00000000  0d 00 0a 1d f4 20 55 6e  75 73 75 61 6c 20 64 72  |..... Unusual dr|
00000010  61 77 69 6e 67 20 70 72  6f 67 72 61 6d 0d 00 14  |awing program...|
00000020  12 f4 20 56 65 72 73 69  6f 6e 20 32 2e 36 34 0d  |.. Version 2.64.|
00000030  00 1e 2b f4 20 52 65 71  75 69 72 65 73 20 52 49  |..+. Requires RI|
00000040  53 43 20 4f 53 20 76 65  72 73 69 6f 6e 20 33 2e  |SC OS version 3.|
00000050  35 20 6f 72 20 6c 61 74  65 72 0d 00 28 19 f4 20  |5 or later..(.. |
00000060  36 34 30 78 34 38 30 78  31 36 6d 20 76 65 72 73  |640x480x16m vers|
00000070  69 6f 6e 0d 00 32 1d f4  20 28 63 29 20 41 6c 65  |ion..2.. (c) Ale|
00000080  78 20 48 6f 6c 6c 6f 77  61 79 2c 20 31 39 39 37  |x Holloway, 1997|
00000090  0d 00 3c 05 3a 0d 00 46  22 ee 20 85 20 e7 20 9f  |..<.:..F". . . .|
000000a0  3c 3e 31 37 20 8c 20 f2  65 72 72 6f 72 20 8b 20  |<>17 . .error . |
000000b0  f2 66 69 6e 69 73 68 0d  00 50 32 c8 99 20 22 4f  |.finish..P2.. "O|
000000c0  53 5f 46 69 6c 65 22 2c  31 33 2c 22 3c 53 68 61  |S_File",13,"<Sha|
000000d0  64 65 24 44 69 72 3e 2e  42 72 75 73 68 65 73 22  |de$Dir>.Brushes"|
000000e0  20 b8 20 2c 2c 2c 2c 6c  25 0d 00 5a 52 de 20 63  | . ,,,,l%..ZR. c|
000000f0  6f 64 65 25 20 31 30 30  30 2c 20 76 64 75 74 25  |ode% 1000, vdut%|
00000100  20 32 30 2c 20 63 6f 6c  73 25 20 31 36 2c 20 73  | 20, cols% 16, s|
00000110  70 72 69 74 65 25 20 26  31 33 30 30 32 30 2c 20  |prite% &130020, |
00000120  6d 6f 64 65 62 6c 6b 25  20 36 30 2c 20 62 72 75  |modeblk% 60, bru|
00000130  73 68 65 73 25 20 6c 25  2b 31 36 0d 00 64 20 c8  |shes% l%+16..d .|
00000140  99 20 22 4f 53 5f 53 63  72 65 65 6e 4d 6f 64 65  |. "OS_ScreenMode|
00000150  22 2c 31 20 b8 20 2c 70  74 72 25 0d 00 6e 13 e3  |",1 . ,ptr%..n..|
00000160  20 69 25 3d 30 20 b8 20  35 36 20 88 20 34 0d 00  | i%=0 . 56 . 4..|
00000170  78 17 6d 6f 64 65 62 6c  6b 25 21 69 25 3d 70 74  |x.modeblk%!i%=pt|
00000180  72 25 21 69 25 0d 00 82  05 ed 0d 00 8c 1e eb 20  |r%!i%.......... |
00000190  22 58 36 34 30 20 59 34  38 30 20 43 31 36 4d 20  |"X640 Y480 C16M |
000001a0  45 58 31 20 45 59 31 22  0d 00 96 15 72 62 25 3d  |EX1 EY1"....rb%=|
000001b0  30 3a 67 62 25 3d 30 3a  62 62 25 3d 30 0d 00 a0  |0:gb%=0:bb%=0...|
000001c0  0c f2 73 65 74 63 6f 6c  73 0d 00 aa 07 da 3a 87  |..setcols.....:.|
000001d0  0d 00 b4 21 21 73 70 72  69 74 65 25 3d 26 31 33  |...!!sprite%=&13|
000001e0  30 30 30 30 3a 73 70 72  69 74 65 25 21 38 3d 31  |0000:sprite%!8=1|
000001f0  36 0d 00 be 22 c8 99 20  22 4f 53 5f 53 70 72 69  |6...".. "OS_Spri|
00000200  74 65 4f 70 22 2c 32 35  36 2b 39 2c 73 70 72 69  |teOp",256+9,spri|
00000210  74 65 25 0d 00 c8 21 21  62 72 75 73 68 65 73 25  |te%...!!brushes%|
00000220  3d 6c 25 2b 31 36 3a 62  72 75 73 68 65 73 25 21  |=l%+16:brushes%!|
00000230  38 3d 31 36 0d 00 d2 23  c8 99 20 22 4f 53 5f 53  |8=16...#.. "OS_S|
00000240  70 72 69 74 65 4f 70 22  2c 32 35 36 2b 39 2c 62  |priteOp",256+9,b|
00000250  72 75 73 68 65 73 25 0d  00 dc 3a c8 99 20 22 4f  |rushes%...:.. "O|
00000260  53 5f 53 70 72 69 74 65  4f 70 22 2c 32 35 36 2b  |S_SpriteOp",256+|
00000270  31 30 2c 62 72 75 73 68  65 73 25 2c 22 3c 53 68  |10,brushes%,"<Sh|
00000280  61 64 65 24 44 69 72 3e  2e 42 72 75 73 68 65 73  |ade$Dir>.Brushes|
00000290  22 0d 00 e6 0a 70 6f 73  25 3d 30 0d 00 f0 37 c8  |"....pos%=0...7.|
000002a0  99 20 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |. "OS_SpriteOp",|
000002b0  32 35 36 2b 38 2c 62 72  75 73 68 65 73 25 20 b8  |256+8,brushes% .|
000002c0  20 2c 2c 2c 6e 75 6d 73  70 72 25 2c 73 70 72 73  | ,,,numspr%,sprs|
000002d0  74 25 0d 00 fa 3f de 20  70 69 78 74 61 62 6c 65  |t%...?. pixtable|
000002e0  25 20 31 36 30 30 2a 6e  75 6d 73 70 72 25 2c 6e  |% 1600*numspr%,n|
000002f0  61 6d 65 73 25 20 6e 75  6d 73 70 72 25 2a 31 32  |ames% numspr%*12|
00000300  2c 73 6e 61 6d 65 73 24  28 6e 75 6d 73 70 72 25  |,snames$(numspr%|
00000310  29 0d 01 04 16 e3 20 63  25 3d 30 20 b8 20 6e 75  |)..... c%=0 . nu|
00000320  6d 73 70 72 25 2d 31 0d  01 0e 0d 63 32 25 3d 63  |mspr%-1....c2%=c|
00000330  25 2a 31 32 0d 01 18 2b  f2 73 65 74 75 70 5f 70  |%*12...+.setup_p|
00000340  69 78 74 61 62 6c 65 28  62 72 75 73 68 65 73 25  |ixtable(brushes%|
00000350  2b 73 70 72 73 74 25 2b  31 32 34 2a 63 25 29 0d  |+sprst%+124*c%).|
00000360  01 22 37 c8 99 20 22 4f  53 5f 53 70 72 69 74 65  |."7.. "OS_Sprite|
00000370  4f 70 22 2c 32 35 36 2b  31 33 2c 62 72 75 73 68  |Op",256+13,brush|
00000380  65 73 25 2c 6e 61 6d 65  73 25 2b 63 32 25 2c 31  |es%,names%+c2%,1|
00000390  32 2c 63 25 2b 31 0d 01  2c 1f 70 6f 66 7a 65 72  |2,c%+1..,.pofzer|
000003a0  6f 25 3d a7 24 28 6e 61  6d 65 73 25 2b 63 32 25  |o%=.$(names%+c2%|
000003b0  29 2c bd 30 29 0d 01 36  30 73 6e 61 6d 65 73 24  |),.0)..60snames$|
000003c0  28 63 25 2b 31 29 3d c0  24 28 6e 61 6d 65 73 25  |(c%+1)=.$(names%|
000003d0  2b 63 32 25 29 2c 70 6f  66 7a 65 72 6f 25 2d 31  |+c2%),pofzero%-1|
000003e0  29 2b bd 31 33 0d 01 40  05 ed 0d 01 4a 20 21 63  |)+.13..@....J !c|
000003f0  6f 6c 73 25 3d 30 3a 73  69 7a 65 25 3d 32 30 3a  |ols%=0:size%=20:|
00000400  44 25 3d 34 30 3a 48 25  3d 31 0d 01 54 17 f2 63  |D%=40:H%=1..T..c|
00000410  68 61 6e 67 65 5f 63 6f  6c 6f 75 72 73 68 69 66  |hange_colourshif|
00000420  74 0d 01 5e 15 f2 63 68  61 6e 67 65 5f 62 72 75  |t..^..change_bru|
00000430  73 68 74 79 70 65 0d 01  68 0e f2 63 68 61 6e 67  |shtype..h..chang|
00000440  65 5f 62 67 0d 01 72 05  da 0d 01 7c 0f f2 61 73  |e_bg..r....|..as|
00000450  73 6d 5f 73 65 74 75 70  0d 01 86 22 66 69 6c 65  |sm_setup..."file|
00000460  6e 61 6d 65 24 3d 22 3c  53 68 61 64 65 24 44 69  |name$="<Shade$Di|
00000470  72 3e 2e 53 63 72 65 65  6e 22 0d 01 90 0c 2a 50  |r>.Screen"....*P|
00000480  6f 69 6e 74 65 72 0d 01  9a 13 78 32 25 3d 36 34  |ointer....x2%=64|
00000490  30 3a 79 32 25 3d 34 38  30 0d 01 a4 18 c8 97 20  |0:y2%=480...... |
000004a0  c8 93 20 32 30 2c 32 32  2c 31 32 33 38 2c 39 31  |.. 20,22,1238,91|
000004b0  38 0d 01 ae 05 f5 0d 01  b8 0f c8 97 20 78 25 2c  |8........... x%,|
000004c0  79 25 2c 62 25 0d 01 c2  0e 78 25 2d 3d 78 25 20  |y%,b%....x%-=x% |
000004d0  83 20 32 0d 01 cc 28 e7  20 62 25 3e 30 20 80 20  |. 2...(. b%>0 . |
000004e0  28 78 25 3c 3e 78 32 25  20 84 20 79 25 3c 3e 79  |(x%<>x2% . y%<>y|
000004f0  32 25 29 20 8c 20 f2 64  72 61 77 0d 01 d6 11 78  |2%) . .draw....x|
00000500  32 25 3d 78 25 3a 79 32  25 3d 79 25 0d 01 e0 0e  |2%=x%:y2%=y%....|
00000510  e7 20 a6 28 2d 39 30 29  20 da 0d 01 ea 12 e7 20  |. .(-90) ...... |
00000520  a6 28 2d 36 32 29 20 f2  6d 65 6e 75 0d 01 f4 12  |.(-62) .menu....|
00000530  e7 20 a6 28 2d 33 33 29  20 f2 73 61 76 65 0d 01  |. .(-33) .save..|
00000540  fe 07 fd 20 a3 0d 02 08  0b f2 66 69 6e 69 73 68  |... ......finish|
00000550  0d 02 12 05 3a 0d 02 1c  0b dd 20 f2 64 72 61 77  |....:..... .draw|
00000560  0d 02 26 14 e7 20 78 25  3d 78 32 25 20 8c 20 78  |..&.. x%=x2% . x|
00000570  25 2b 3d 31 0d 02 30 33  e7 20 94 28 78 25 2d 78  |%+=1..03. .(x%-x|
00000580  32 25 29 3e 94 28 79 25  2d 79 32 25 29 20 8c 20  |2%)>.(y%-y2%) . |
00000590  f2 64 72 61 77 5f 61 63  72 6f 73 73 20 8b 20 f2  |.draw_across . .|
000005a0  64 72 61 77 5f 75 70 0d  02 3a 05 e1 0d 02 44 05  |draw_up..:....D.|
000005b0  3a 0d 02 4e 12 dd 20 f2  64 72 61 77 5f 61 63 72  |:..N.. .draw_acr|
000005c0  6f 73 73 0d 02 58 17 6d  3d 28 79 25 2d 79 32 25  |oss..X.m=(y%-y2%|
000005d0  29 2f 28 78 25 2d 78 32  25 29 0d 02 62 0d 63 3d  |)/(x%-x2%)..b.c=|
000005e0  79 25 2d 6d 2a 78 25 0d  02 6c 2e e7 20 78 25 3e  |y%-m*x%..l.. x%>|
000005f0  78 32 25 20 8c 20 76 25  3d 78 32 25 3a 77 25 3d  |x2% . v%=x2%:w%=|
00000600  78 25 2d 32 20 8b 20 76  25 3d 78 25 3a 77 25 3d  |x%-2 . v%=x%:w%=|
00000610  78 32 25 2d 32 0d 02 76  14 e3 20 69 25 3d 76 25  |x2%-2..v.. i%=v%|
00000620  20 b8 20 77 25 20 88 20  32 0d 02 80 25 42 25 3d  | . w% . 2...%B%=|
00000630  69 25 2d 73 69 7a 65 25  3a 43 25 3d 6d 2a 69 25  |i%-size%:C%=m*i%|
00000640  2b 63 2b 73 69 7a 65 25  3a 45 25 3d 44 25 0d 02  |+c+size%:E%=D%..|
00000650  8a 0a d6 20 70 6c 6f 74  0d 02 94 05 ed 0d 02 9e  |... plot........|
00000660  05 e1 0d 02 a8 05 3a 0d  02 b2 0e dd 20 f2 64 72  |......:..... .dr|
00000670  61 77 5f 75 70 0d 02 bc  17 6d 3d 28 79 25 2d 79  |aw_up....m=(y%-y|
00000680  32 25 29 2f 28 78 25 2d  78 32 25 29 0d 02 c6 0d  |2%)/(x%-x2%)....|
00000690  63 3d 79 25 2d 6d 2a 78  25 0d 02 d0 2e e7 20 79  |c=y%-m*x%..... y|
000006a0  25 3e 79 32 25 20 8c 20  76 25 3d 79 32 25 3a 77  |%>y2% . v%=y2%:w|
000006b0  25 3d 79 25 2d 32 20 8b  20 76 25 3d 79 25 3a 77  |%=y%-2 . v%=y%:w|
000006c0  25 3d 79 32 25 2d 32 0d  02 da 14 e3 20 69 25 3d  |%=y2%-2..... i%=|
000006d0  76 25 20 b8 20 77 25 20  88 20 32 0d 02 e4 27 42  |v% . w% . 2...'B|
000006e0  25 3d 28 69 25 2d 63 29  2f 6d 2d 73 69 7a 65 25  |%=(i%-c)/m-size%|
000006f0  3a 43 25 3d 69 25 2b 73  69 7a 65 25 3a 45 25 3d  |:C%=i%+size%:E%=|
00000700  44 25 0d 02 ee 0e 42 25  2d 3d 42 25 20 83 20 32  |D%....B%-=B% . 2|
00000710  0d 02 f8 0a d6 20 70 6c  6f 74 0d 03 02 05 ed 0d  |..... plot......|
00000720  03 0c 05 e1 0d 03 16 05  3a 0d 03 20 11 dd 20 f2  |........:.. .. .|
00000730  61 73 73 6d 5f 73 65 74  75 70 0d 03 2a 19 21 76  |assm_setup..*.!v|
00000740  64 75 74 25 3d 31 34 39  3a 76 64 75 74 25 21 34  |dut%=149:vdut%!4|
00000750  3d 2d 31 0d 03 34 2a c8  99 20 22 4f 53 5f 52 65  |=-1..4*.. "OS_Re|
00000760  61 64 56 64 75 56 61 72  69 61 62 6c 65 73 22 2c  |adVduVariables",|
00000770  76 64 75 74 25 2c 76 64  75 74 25 2b 38 0d 03 3e  |vdut%,vdut%+8..>|
00000780  0e 41 25 3d 76 64 75 74  25 21 38 0d 03 48 10 46  |.A%=vdut%!8..H.F|
00000790  25 3d 70 69 78 74 61 62  6c 65 25 0d 03 52 0c 47  |%=pixtable%..R.G|
000007a0  25 3d 63 6f 6c 73 25 0d  03 5c 15 e3 20 70 61 73  |%=cols%..\.. pas|
000007b0  73 25 3d 30 20 b8 20 32  20 88 20 32 0d 03 66 0c  |s%=0 . 2 . 2..f.|
000007c0  50 25 3d 63 6f 64 65 25  0d 03 70 0e 5b 4f 50 54  |P%=code%..p.[OPT|
000007d0  20 70 61 73 73 25 0d 03  7a 09 2e 70 6c 6f 74 0d  | pass%..z..plot.|
000007e0  03 84 0f 53 54 52 20 52  35 2c 70 78 74 73 0d 03  |...STR R5,pxts..|
000007f0  8e 12 52 53 42 20 52 32  2c 52 32 2c 23 39 36 30  |..RSB R2,R2,#960|
00000800  0d 03 98 14 4d 4f 56 20  52 32 2c 52 32 2c 4c 53  |....MOV R2,R2,LS|
00000810  52 20 23 31 0d 03 a2 14  4d 4f 56 20 52 34 2c 52  |R #1....MOV R4,R|
00000820  34 2c 4c 53 52 20 23 31  0d 03 ac 10 4d 4f 56 20  |4,LSR #1....MOV |
00000830  52 35 2c 23 31 32 38 30  0d 03 b6 10 4d 4f 56 20  |R5,#1280....MOV |
00000840  52 38 2c 23 32 35 36 30  0d 03 c0 13 4d 4c 41 20  |R8,#2560....MLA |
00000850  52 39 2c 52 32 2c 52 38  2c 52 30 0d 03 ca 17 41  |R9,R2,R8,R0....A|
00000860  44 44 20 52 39 2c 52 39  2c 52 31 2c 4c 53 4c 20  |DD R9,R9,R1,LSL |
00000870  23 31 0d 03 d4 18 41 44  44 20 52 31 32 2c 52 39  |#1....ADD R12,R9|
00000880  2c 52 33 2c 4c 53 4c 20  23 31 0d 03 de 14 4d 4c  |,R3,LSL #1....ML|
00000890  41 20 52 31 30 2c 52 34  2c 52 38 2c 52 39 0d 03  |A R10,R4,R8,R9..|
000008a0  e8 19 41 44 44 20 52 31  30 2c 52 31 30 2c 52 33  |..ADD R10,R10,R3|
000008b0  2c 4c 53 4c 20 23 31 0d  03 f2 0f 4c 44 52 20 52  |,LSL #1....LDR R|
000008c0  35 2c 70 78 74 73 0d 03  fc 10 53 55 42 20 52 37  |5,pxts....SUB R7|
000008d0  2c 52 37 2c 23 31 0d 04  06 10 4d 4f 56 20 52 31  |,R7,#1....MOV R1|
000008e0  2c 23 31 36 30 30 0d 04  10 13 4d 4c 41 20 52 35  |,#1600....MLA R5|
000008f0  2c 52 37 2c 52 31 2c 52  35 0d 04 1a 0f 4d 4f 56  |,R7,R1,R5....MOV|
00000900  20 52 30 2c 23 32 35 35  0d 04 24 09 2e 6c 6f 6f  | R0,#255..$..loo|
00000910  70 0d 04 2e 12 4c 44 52  20 52 38 2c 5b 52 35 5d  |p....LDR R8,[R5]|
00000920  2c 23 34 0d 04 38 0d 54  45 51 20 52 38 2c 23 30  |,#4..8.TEQ R8,#0|
00000930  0d 04 42 0c 42 45 51 20  73 6b 69 70 0d 04 4c 10  |..B.BEQ skip..L.|
00000940  4c 44 52 20 52 31 31 2c  5b 52 39 5d 0d 04 56 0d  |LDR R11,[R9]..V.|
00000950  4d 4f 56 20 52 37 2c 23  30 0d 04 60 0a 2e 73 70  |MOV R7,#0..`..sp|
00000960  6c 69 74 0d 04 6a 12 4c  44 52 20 52 31 2c 5b 52  |lit..j.LDR R1,[R|
00000970  36 5d 2c 23 34 0d 04 74  16 80 20 52 32 2c 52 30  |6],#4..t.. R2,R0|
00000980  2c 52 31 31 2c 41 53 52  20 52 37 0d 04 7e 11 41  |,R11,ASR R7..~.A|
00000990  44 44 53 20 52 32 2c 52  32 2c 52 31 0d 04 88 0f  |DDS R2,R2,R1....|
000009a0  4d 4f 56 4d 49 20 52 32  2c 23 30 0d 04 92 0d 43  |MOVMI R2,#0....C|
000009b0  4d 50 20 52 32 2c 52 30  0d 04 9c 0f 4d 4f 56 47  |MP R2,R0....MOVG|
000009c0  54 20 52 32 2c 52 30 0d  04 a6 19 42 49 43 20 52  |T R2,R0....BIC R|
000009d0  31 31 2c 52 31 31 2c 52  30 2c 41 53 4c 20 52 37  |11,R11,R0,ASL R7|
000009e0  0d 04 b0 18 84 52 20 52  31 31 2c 52 31 31 2c 52  |.....R R11,R11,R|
000009f0  32 2c 41 53 4c 20 52 37  0d 04 ba 10 41 44 44 20  |2,ASL R7....ADD |
00000a00  52 37 2c 52 37 2c 23 38  0d 04 c4 0e 54 45 51 20  |R7,R7,#8....TEQ |
00000a10  52 37 2c 23 32 34 0d 04  ce 0d 42 4e 45 20 73 70  |R7,#24....BNE sp|
00000a20  6c 69 74 0d 04 d8 10 53  54 52 20 52 31 31 2c 5b  |lit....STR R11,[|
00000a30  52 39 5d 0d 04 e2 11 53  55 42 20 52 36 2c 52 36  |R9]....SUB R6,R6|
00000a40  2c 23 31 32 0d 04 ec 09  2e 73 6b 69 70 0d 04 f6  |,#12.....skip...|
00000a50  10 41 44 44 20 52 39 2c  52 39 2c 23 34 0d 05 00  |.ADD R9,R9,#4...|
00000a60  0e 43 4d 50 20 52 39 2c  52 31 30 0d 05 0a 10 4d  |.CMP R9,R10....M|
00000a70  4f 56 48 53 20 50 43 2c  52 31 34 0d 05 14 0e 43  |OVHS PC,R14....C|
00000a80  4d 50 20 52 39 2c 52 31  32 0d 05 1e 15 41 44 44  |MP R9,R12....ADD|
00000a90  48 53 20 52 39 2c 52 39  2c 23 32 35 36 30 0d 05  |HS R9,R9,#2560..|
00000aa0  28 19 53 55 42 48 53 20  52 39 2c 52 39 2c 52 33  |(.SUBHS R9,R9,R3|
00000ab0  2c 4c 53 4c 20 23 31 0d  05 32 17 41 44 44 48 53  |,LSL #1..2.ADDHS|
00000ac0  20 52 31 32 2c 52 31 32  2c 23 32 35 36 30 0d 05  | R12,R12,#2560..|
00000ad0  3c 0a 42 20 6c 6f 6f 70  0d 05 46 09 2e 70 78 74  |<.B loop..F..pxt|
00000ae0  73 0d 05 50 0a 45 51 55  44 20 30 0d 05 5a 05 5d  |s..P.EQUD 0..Z.]|
00000af0  0d 05 64 05 ed 0d 05 6e  05 e1 0d 05 78 05 3a 0d  |..d....n....x.:.|
00000b00  05 82 1e dd 20 f2 73 65  74 75 70 5f 70 69 78 74  |.... .setup_pixt|
00000b10  61 62 6c 65 28 73 70 72  69 74 65 25 29 0d 05 8c  |able(sprite%)...|
00000b20  15 e3 20 79 63 25 3d 31  39 20 b8 20 30 20 88 20  |.. yc%=19 . 0 . |
00000b30  2d 31 0d 05 96 10 e3 20  78 63 25 3d 30 20 b8 20  |-1..... xc%=0 . |
00000b40  31 39 0d 05 a0 4a c8 99  20 22 4f 53 5f 53 70 72  |19...J.. "OS_Spr|
00000b50  69 74 65 4f 70 22 2c 35  31 32 2b 34 31 2c 62 72  |iteOp",512+41,br|
00000b60  75 73 68 65 73 25 2c 73  70 72 69 74 65 25 2c 78  |ushes%,sprite%,x|
00000b70  63 25 2c 79 63 25 20 b8  20 2c 2c 2c 2c 2c 70 69  |c%,yc% . ,,,,,pi|
00000b80  78 74 61 62 6c 65 25 21  70 6f 73 25 0d 05 aa 0b  |xtable%!pos%....|
00000b90  70 6f 73 25 2b 3d 34 0d  05 b4 06 ed 2c 0d 05 be  |pos%+=4.....,...|
00000ba0  05 e1 0d 05 c8 05 3a 0d  05 d2 0b dd 20 f2 6d 65  |......:..... .me|
00000bb0  6e 75 0d 05 dc 15 c8 99  20 22 4f 53 5f 42 79 74  |nu...... "OS_Byt|
00000bc0  65 22 2c 32 31 2c 30 0d  05 e6 3f c8 99 20 22 4f  |e",21,0...?.. "O|
00000bd0  53 5f 53 70 72 69 74 65  4f 70 22 2c 32 35 36 2b  |S_SpriteOp",256+|
00000be0  31 36 2c 73 70 72 69 74  65 25 2c 22 73 63 72 65  |16,sprite%,"scre|
00000bf0  65 6e 64 75 6d 70 22 2c  30 2c 30 2c 30 2c 31 32  |endump",0,0,0,12|
00000c00  38 30 2c 39 36 30 0d 05  f0 05 da 0d 05 fa 26 f1  |80,960........&.|
00000c10  8a 31 31 2c 30 29 3b 22  53 6b 65 74 63 68 50 6c  |.11,0);"SketchPl|
00000c20  75 73 20 4d 65 6e 75 20  4f 70 74 69 6f 6e 73 3a  |us Menu Options:|
00000c30  22 0d 06 04 26 f1 8a 31  31 2c 31 29 3b 22 3d 3d  |"...&..11,1);"==|
00000c40  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00000c50  3d 3d 3d 3d 3d 3d 22 0d  06 0e 24 f1 8a 31 31 2c  |======"...$..11,|
00000c60  33 29 3b 22 31 3a 20 43  68 61 6e 67 65 20 63 6f  |3);"1: Change co|
00000c70  6c 6f 75 72 20 73 68 69  66 74 22 0d 06 18 22 f1  |lour shift"...".|
00000c80  8a 31 31 2c 34 29 3b 22  32 3a 20 43 68 61 6e 67  |.11,4);"2: Chang|
00000c90  65 20 62 72 75 73 68 20  74 79 70 65 22 0d 06 22  |e brush type".."|
00000ca0  29 f1 8a 31 31 2c 35 29  3b 22 33 3a 20 43 68 61  |)..11,5);"3: Cha|
00000cb0  6e 67 65 20 62 61 63 6b  67 72 6f 75 6e 64 20 63  |nge background c|
00000cc0  6f 6c 6f 75 72 22 0d 06  2c 30 f1 8a 31 31 2c 36  |olour"..,0..11,6|
00000cd0  29 3b 22 34 3a 20 43 68  61 6e 67 65 20 66 69 6c  |);"4: Change fil|
00000ce0  65 6e 61 6d 65 20 66 6f  72 20 73 63 72 65 65 6e  |ename for screen|
00000cf0  20 73 61 76 65 22 0d 06  36 08 4f 24 3d be 0d 06  | save"..6.O$=...|
00000d00  40 0b c8 8e 20 4f 24 20  ca 0d 06 4a 1d c9 20 22  |@... O$ ...J.. "|
00000d10  31 22 3a f2 63 68 61 6e  67 65 5f 63 6f 6c 6f 75  |1":.change_colou|
00000d20  72 73 68 69 66 74 0d 06  54 1b c9 20 22 32 22 3a  |rshift..T.. "2":|
00000d30  f2 63 68 61 6e 67 65 5f  62 72 75 73 68 74 79 70  |.change_brushtyp|
00000d40  65 0d 06 5e 14 c9 20 22  33 22 3a f2 63 68 61 6e  |e..^.. "3":.chan|
00000d50  67 65 5f 62 67 0d 06 68  1a c9 20 22 34 22 3a f2  |ge_bg..h.. "4":.|
00000d60  63 68 61 6e 67 65 5f 66  69 6c 65 6e 61 6d 65 0d  |change_filename.|
00000d70  06 72 05 cb 0d 06 7c 05  da 0d 06 86 36 c8 99 20  |.r....|.....6.. |
00000d80  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 32 35  |"OS_SpriteOp",25|
00000d90  36 2b 33 34 2c 73 70 72  69 74 65 25 2c 22 73 63  |6+34,sprite%,"sc|
00000da0  72 65 65 6e 64 75 6d 70  22 2c 30 2c 30 2c 30 0d  |reendump",0,0,0.|
00000db0  06 90 10 e7 20 4f 24 3d  22 33 22 20 8c 20 da 0d  |.... O$="3" . ..|
00000dc0  06 9a 05 e1 0d 06 a4 05  3a 0d 06 ae 19 dd 20 f2  |........:..... .|
00000dd0  63 68 61 6e 67 65 5f 63  6f 6c 6f 75 72 73 68 69  |change_colourshi|
00000de0  66 74 0d 06 b8 05 da 0d  06 c2 27 f1 8a 31 31 2c  |ft........'..11,|
00000df0  30 29 3b 22 53 70 65 63  69 66 79 20 6e 65 77 20  |0);"Specify new |
00000e00  63 6f 6c 6f 75 72 20 73  68 69 66 74 3a 22 0d 06  |colour shift:"..|
00000e10  cc 24 e8 8a 31 31 2c 31  29 3b 22 52 65 64 20 65  |.$..11,1);"Red e|
00000e20  6c 65 6d 65 6e 74 3a 20  20 20 22 3b 21 63 6f 6c  |lement:   ";!col|
00000e30  73 25 0d 06 d6 25 e8 8a  31 31 2c 32 29 3b 22 47  |s%...%..11,2);"G|
00000e40  72 65 65 6e 20 65 6c 65  6d 65 6e 74 3a 20 22 3b  |reen element: ";|
00000e50  63 6f 6c 73 25 21 34 0d  06 e0 25 e8 8a 31 31 2c  |cols%!4...%..11,|
00000e60  33 29 3b 22 42 6c 75 65  20 65 6c 65 6d 65 6e 74  |3);"Blue element|
00000e70  3a 20 20 22 3b 63 6f 6c  73 25 21 38 0d 06 ea 05  |:  ";cols%!8....|
00000e80  e1 0d 06 f4 05 3a 0d 06  fe 17 dd 20 f2 63 68 61  |.....:..... .cha|
00000e90  6e 67 65 5f 62 72 75 73  68 74 79 70 65 0d 07 08  |nge_brushtype...|
00000ea0  05 da 0d 07 12 0b 6f 6c  64 25 3d 48 25 0d 07 1c  |......old%=H%...|
00000eb0  2c f1 8a 31 31 2c 30 29  3b 22 4f 6c 64 20 62 72  |,..11,0);"Old br|
00000ec0  75 73 68 20 74 79 70 65  3a 20 22 3b 73 6e 61 6d  |ush type: ";snam|
00000ed0  65 73 24 28 6f 6c 64 25  29 0d 07 26 26 f1 8a 31  |es$(old%)..&&..1|
00000ee0  31 2c 32 29 3b 22 43 68  6f 6f 73 65 20 61 20 6e  |1,2);"Choose a n|
00000ef0  65 77 20 62 72 75 73 68  20 74 79 70 65 3a 22 0d  |ew brush type:".|
00000f00  07 30 0b 6c 69 6e 65 25  3d 33 0d 07 3a 14 e3 20  |.0.line%=3..:.. |
00000f10  69 25 3d 31 20 b8 20 6e  75 6d 73 70 72 25 0d 07  |i%=1 . numspr%..|
00000f20  44 23 f1 8a 31 31 2c 6c  69 6e 65 25 29 3b 69 25  |D#..11,line%);i%|
00000f30  3b 22 3a 20 22 3b 73 6e  61 6d 65 73 24 28 69 25  |;": ";snames$(i%|
00000f40  29 0d 07 4e 0c 6c 69 6e  65 25 2b 3d 31 0d 07 58  |)..N.line%+=1..X|
00000f50  05 ed 0d 07 62 14 e8 8a  31 31 2c 6c 69 6e 65 25  |....b...11,line%|
00000f60  2b 31 29 3b 48 25 0d 07  6c 33 e7 20 48 25 3c 30  |+1);H%..l3. H%<0|
00000f70  20 84 20 48 25 3e 6e 75  6d 73 70 72 25 20 8c 20  | . H%>numspr% . |
00000f80  48 25 3d 6f 6c 64 25 3a  f2 63 68 61 6e 67 65 5f  |H%=old%:.change_|
00000f90  62 72 75 73 68 74 79 70  65 0d 07 76 14 e7 20 48  |brushtype..v.. H|
00000fa0  25 3d 30 20 8c 20 48 25  3d 6f 6c 64 25 0d 07 80  |%=0 . H%=old%...|
00000fb0  12 73 69 7a 65 25 3d 32  30 3a 44 25 3d 34 30 0d  |.size%=20:D%=40.|
00000fc0  07 8a 05 e1 0d 07 94 05  3a 0d 07 9e 10 dd 20 f2  |........:..... .|
00000fd0  63 68 61 6e 67 65 5f 62  67 0d 07 a8 05 da 0d 07  |change_bg.......|
00000fe0  b2 24 f1 8a 31 31 2c 30  29 3b 22 4e 65 77 20 62  |.$..11,0);"New b|
00000ff0  61 63 6b 67 72 6f 75 6e  64 20 63 6f 6c 6f 75 72  |ackground colour|
00001000  3a 22 0d 07 bc 20 e8 8a  31 31 2c 32 29 3b 22 52  |:"... ..11,2);"R|
00001010  65 64 20 65 6c 65 6d 65  6e 74 20 20 20 22 3b 72  |ed element   ";r|
00001020  62 25 0d 07 c6 20 e8 8a  31 31 2c 33 29 3b 22 47  |b%... ..11,3);"G|
00001030  72 65 65 6e 20 65 6c 65  6d 65 6e 74 20 22 3b 67  |reen element ";g|
00001040  62 25 0d 07 d0 20 e8 8a  31 31 2c 34 29 3b 22 42  |b%... ..11,4);"B|
00001050  6c 75 65 20 65 6c 65 6d  65 6e 74 20 20 22 3b 62  |lue element  ";b|
00001060  62 25 0d 07 da 46 e7 20  72 62 25 3c 30 20 84 20  |b%...F. rb%<0 . |
00001070  72 62 25 3e 32 35 35 20  84 20 67 62 25 3c 30 20  |rb%>255 . gb%<0 |
00001080  84 20 67 62 25 3e 32 35  35 20 84 20 62 62 25 3c  |. gb%>255 . bb%<|
00001090  30 20 84 20 62 62 25 3e  32 35 35 20 8c 20 f2 63  |0 . bb%>255 . .c|
000010a0  68 61 6e 67 65 5f 62 67  0d 07 e4 0c f2 73 65 74  |hange_bg.....set|
000010b0  63 6f 6c 73 0d 07 ee 05  e1 0d 07 f8 05 3a 0d 08  |cols.........:..|
000010c0  02 0e dd 20 f2 73 65 74  63 6f 6c 73 0d 08 0c 15  |... .setcols....|
000010d0  e6 20 31 32 38 2c 72 62  25 2c 67 62 25 2c 62 62  |. 128,rb%,gb%,bb|
000010e0  25 0d 08 16 19 e7 20 28  72 62 25 2b 67 62 25 2b  |%..... (rb%+gb%+|
000010f0  62 62 25 29 3c 33 38 34  20 8c 0d 08 20 07 fb 20  |bb%)<384 ... .. |
00001100  30 0d 08 2a 09 fb 20 31  39 31 0d 08 34 05 cc 0d  |0..*.. 191..4...|
00001110  08 3e 08 fb 20 36 33 0d  08 48 09 fb 20 31 32 38  |.>.. 63..H.. 128|
00001120  0d 08 52 05 cd 0d 08 5c  05 e1 0d 08 66 05 3a 0d  |..R....\....f.:.|
00001130  08 70 16 dd 20 f2 63 68  61 6e 67 65 5f 66 69 6c  |.p.. .change_fil|
00001140  65 6e 61 6d 65 0d 08 7a  05 da 0d 08 84 12 6f 6c  |ename..z......ol|
00001150  64 24 3d 66 69 6c 65 6e  61 6d 65 24 0d 08 8e 1b  |d$=filename$....|
00001160  f1 8a 31 31 2c 30 29 3b  22 4f 6c 64 20 66 69 6c  |..11,0);"Old fil|
00001170  65 6e 61 6d 65 3a 22 0d  08 98 15 f1 8a 31 31 2c  |ename:"......11,|
00001180  31 29 3b 66 69 6c 65 6e  61 6d 65 24 0d 08 a2 1b  |1);filename$....|
00001190  f1 8a 31 31 2c 33 29 3b  22 4e 65 77 20 66 69 6c  |..11,3);"New fil|
000011a0  65 6e 61 6d 65 3a 22 0d  08 ac 15 e8 8a 31 31 2c  |ename:"......11,|
000011b0  34 29 3b 66 69 6c 65 6e  61 6d 65 24 0d 08 b6 23  |4);filename$...#|
000011c0  e7 20 66 69 6c 65 6e 61  6d 65 24 3d 22 22 20 8c  |. filename$="" .|
000011d0  20 66 69 6c 65 6e 61 6d  65 24 3d 6f 6c 64 24 0d  | filename$=old$.|
000011e0  08 c0 05 e1 0d 08 ca 05  3a 0d 08 d4 0b dd 20 f2  |........:..... .|
000011f0  73 61 76 65 0d 08 de 15  c8 99 20 22 4f 53 5f 42  |save...... "OS_B|
00001200  79 74 65 22 2c 32 31 2c  30 0d 08 e8 23 c8 99 20  |yte",21,0...#.. |
00001210  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 32 2c  |"OS_SpriteOp",2,|
00001220  2c 66 69 6c 65 6e 61 6d  65 24 2c 30 0d 08 f2 05  |,filename$,0....|
00001230  e1 0d 08 fc 05 3a 0d 09  06 0c dd 20 f2 65 72 72  |.....:..... .err|
00001240  6f 72 0d 09 10 16 f1 20  f6 24 3b 22 20 61 74 20  |or..... .$;" at |
00001250  6c 69 6e 65 20 22 3b 9e  0d 09 1a 09 6b 65 79 3d  |line ";.....key=|
00001260  a5 0d 09 24 0b f2 66 69  6e 69 73 68 0d 09 2e 05  |...$..finish....|
00001270  3a 0d 09 38 0d dd 20 f2  66 69 6e 69 73 68 0d 09  |:..8.. .finish..|
00001280  42 1e c8 99 20 22 57 69  6d 70 5f 53 65 74 4d 6f  |B... "Wimp_SetMo|
00001290  64 65 22 2c 6d 6f 64 65  62 6c 6b 25 0d 09 4c 05  |de",modeblk%..L.|
000012a0  ee 0d 09 56 05 e0 0d ff                           |...V....|
000012a8