Home » Personal collection » Acorn tapes » Commercial_Releases » box06_tape05b_acorn_amx_mouse.wav » DESIGN

DESIGN

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 tapes » Commercial_Releases » box06_tape05b_acorn_amx_mouse.wav
Filename: DESIGN
Read OK:
File size: 1B71 bytes
Load address: FFFF0E00
Exec address: FFFF8023
File contents
    0 
    1REM     Design  V1.1
    2 
    3REM    21/10/1984a
    4 
   10 
   20MODE 4
   21DIM chars1 1024,chars2 1024,temp 32
   25DIM S%(16,16),wnlx%(7),wnrx%(7),wnby%(7),wnty%(7),drw%(6,5),icn%(15),icy%(15),icx%(15)
   30PROCinit
  100PROCdesk
  200exec%=-107
  210move%=-108
  220canc%=-109
  300 
  310*SENSITIVITY 2,2
  320*BUTTONS OFF
  330*POINTER ON
  900 
  920*POINTER 80
 1000*SHOWPOINTER
 1010REM      Main program loop
 1020A%=-129
 1030 
 1040REPEAT*MOVEP.
 1050UNTIL NOT INKEYA%
 1060 
 1070REM      Which key ?
 1080 
 1090IF INKEYexec% THEN 2000
 1100IF INKEYmove% THEN 3000
 1110IF INKEYcanc% THEN 4000
 1115GOTO 1020
 1120*POINTER 80
 1121A%=-129
 1125REPEAT
 1130*MOVEP.
 1140UNTILINKEYA%
 1150GOTO 1020
 1980 
 1990REM                    Execute button pressed
 1999 
 2000*UPDATE
 2010IF FNinw(0) AND VPOS>=wnty%(0)+2 THEN 2500
 2015IF FNinw(5) THEN 2050
 2020A%=FNchkicon
 2030IF A%=-1 THEN 1120
 2040IF A%=32 THEN 2100
 2046GOTO 1120
 2050IF w_ls=FALSE THEN 1120
 2060*UPDATE
 2070V%=VPOS
 2080*HIDEPOINTER
 2090IF V%=3 THEN 2150
 2092IF V%=4 THEN 2170
 2094IF V%=5 THEN 2190
 2096PROCw_me:VDU26:GOTO 1000
 2100 
 2102REM           File icon
 2104PROCw_ls
 2105GOTO 1120
 2147PROCw_me:VDU26:GOTO 1000
 2150PROCwindow(5,24,5,38,1,"Load icons")
 2152PRINT'';
 2153VDU 23,1,1;0;0;0;:ON ERROR GOTO 32000
 2154INPUT ":"A$
 2155VDU 23,1,0;0;0;0;
 2156PROCload(A$,0):VDU 26:ON ERROR OFF
 2158PROCdisp_all
 2160GOTO 2147
 2170 
 2172PROCwindow(5,24,5,38,1,"Load Alt.")
 2174PRINT'';:VDU 23,1,1;0;0;0;
 2175ON ERROR GOTO 32000
 2176INPUT ":"A$:VDU 23,1,0;0;0;0;
 2178PROCload(A$,1):VDU 26:ON ERROR OFF
 2180PROCdisp_alt
 2182GOTO 2147
 2190 
 2191PROCwindow(5,24,5,38,1,"Save icons")
 2192PRINT'';:VDU 23,1,1;0;0;0;:ON ERROR GOTO 32000
 2193INPUT ":"A$:VDU 23,1,0;0;0;0;
 2194PROCoscli("S."+A$+" "+STR$~chars1+" +400 8000 5800")
 2195ON ERROR OFF:VDU 26:GOTO 2147
 2500*HIDEPOINTER
 2510PROCdot(POS-wnlx%(0),VPOS-wnty%(0)-2,1-S%(POS-wnlx%(0),VPOS-wnty%(0)-2))
 2520*SHOWPOINTER
 2530GOTO 1120
 2970 
 2980REM                    Move button pressed
 2990 
 3000 
 3010*UPDATE
 3015frmL%=FALSE
 3016IF FNinw(4) THEN 3050
 3020IF FNinw(2) THEN 3100
 3030IF FNinw(0) THEN PROCdefine(temp):frmL%=TRUE:GOTO 3120
 3032IF FNinw(3) THEN 3600
 3040GOTO 1120
 3050 
 3060X%=(POS-wnlx%(4))/2:Y%=(VPOS-wnty%(4))/2
 3070ch%=drw%(X%,Y%)
 3080IF ch%>=0 THEN 3110 ELSE 1120
 3100ch%=(POS-wnlx%(2))/2+16*((VPOS-wnty%(2)-2)DIV2)
 3101IF ch%<0 OR ch%>31 THEN 1120
 3110PROCdefine(FNadd(ch%))
 3120*POINTER 0,95
 3130REPEAT
 3140*MOVEP.
 3150UNTIL NOT INKEYmove%
 3160 
 3170*UPDATE
 3180IF FNinw(0) THEN 3500
 3190IF FNinw(4) THEN 3300
 3200IF FNinw(2) THEN 3400
 3210IF FNinw(3) THEN PROCerr("  not allowed"):GOTO 1120
 3220IF FNinw(4) THEN 3300
 3230GOTO 1120
 3300IF frmL%=TRUE THEN PROCerr("  not allowed"):GOTO 1120
 3302X%=(POS+1-wnlx%(4))/2:Y%=(VPOS+1-wnty%(4))/2
 3305IF POS>wnrx%(4) OR VPOS>wnby%(4)-1 THEN 1120
 3307*HIDEPOINTER
 3308*FX19
 3310PROCdrw(X%,Y%,ch%)
 3320*SHOWPOINTER
 3330GOTO 1120
 3400 
 3401IF frmL%=FALSE THEN 3450
 3405ch%=(POS+1-wnlx%(2))/2+16*((VPOS+1-wnty%(2)-2)DIV2)
 3410IF ch%<0 OR ch%>31 THEN 1120
 3415A%=FNadd(ch%)
 3420FOR X%=0 TO 31:A%?X%=temp?X%:NEXT
 3422*HIDEPOINTER
 3425PROCdisp_icon(ch%)
 3427*SHOWPOINTER
 3430REM    Update drawing area
 3432FOR X%=0 TO 6:FOR Y%=0 TO 5:IF drw%(X%,Y%)=ch% THEN PROCdrw(X%,Y%,ch%)
 3434NEXT,
 3436GOTO 1120
 3449 
 3450B%=FNadd(ch%)
 3460ch%=(POS+1-wnlx%(2))/2+16*((VPOS+1-wnty%(2)-2)DIV2):IF ch%<0 OR ch%>31 THEN 1120
 3470A%=FNadd(ch%)
 3480FOR X%=0 TO 31:A%?X%=B%?X%:NEXT
 3490*HIDEPOINTER
 3492PROCdisp_icon(ch%):*SHOWPOINTER
 3494GOTO 3430
 3500IF frmL%=TRUE THEN PROCerr("  not allowed"):GOTO 1120
 3510*HIDEPOINTER
 3515PRINTTAB(11,1);ch%;" ";
 3520PROCget(FNadd(ch%))
 3530*SHOWPOINTER
 3540GOTO 1120
 3600 
 3610ch%=(POS-wnlx%(3))/2+16*((VPOS-wnty%(3))DIV2)
 3620IF ch%<0 OR ch%>31 THEN 1120
 3630PROCdefine((31-ch%)*32+chars2)
 3640ch%=ch%+32:GOTO 3120
 4000GOTO 1120
 4970 
 4980REM                    Cancel button pressed
 4990 
10000 
10010DEFPROCdisp(A%,X%,Y%)
10020PROCdefine(FNadd(A%))
10030PRINTTAB(X%,Y%);:*ICON 0
10035ENDPROC
10040DEFPROCdefine(A%):LOCAL D%,E%
10050D%=A%
10060FOR A%=0 TO 3
10070VDU 23,128+A%
10080FOR E%=0 TO 7
10090F%=?(D%+E%+A%*8):VDU F%
10100NEXT,
10105ENDPROC
10120 
10130DEFPROCdisp_all
10135VDU 26
10140FOR A%=0 TO 15
10150PROCdisp_icon(A%)
10160PROCdisp_icon(A%+16)
10190NEXT
10192ENDPROC
10194 
10196DEFPROCdisp_alt
10198VDU 26
10200FOR A%=15 TO 0 STEP -1:PROCdispA(chars2+A%*32,wnlx%(3)+(15-A%)*2,wnty%(3)+2)
10202PROCdispA(chars2+A%*32+512,wnlx%(3)+(15-A%)*2,wnty%(3))
10204NEXT
10206ENDPROC
10208 
10210 
10220DEFPROCdisp_icon(A%)
10230PROCdisp(A%,(A%AND15)*2+wnlx%(2),wnty%(2)+2+2*(A%DIV16))
10240ENDPROC
10300 
10310DEFPROCdispA(A%,X%,Y%)
10320PROCdefine(A%)
10330PRINTTAB(X%,Y%);:*ICON 0
10340ENDPROC
11000 
11010DEFPROCdot(X%,Y%,C%):LOCAL A%,Z%
11011S%(X%,Y%)=C%
11020VDU 31,X%+wnlx%(0),Y%+wnty%(0)+2
11030IF C%=0 THEN VDU 32 ELSE VDU 132
11040GCOL 0,C%
11050PLOT 69,X%*4+640,956-Y%*4
11065A%=temp+Y%+(X%DIV8)*16:Z%=7-(X%AND7)
11066?A%=(?A% AND (255-2^Z%)) OR C%*2^Z%
11070ENDPROC
11100 
11110DEFFNadd(ch%)
11120IF ch%>31 THEN =chars2+32*(63-ch%)
11130=chars1+(31-ch%)*32
12000 
12010DEFPROCget(A%)
12020LOCAL B%,C%,D%,E%
12200 
12210FOR B%=0 TO 15
12220FOR D%=0 TO 7
12230IF (A%?B% AND 2^(7-D%))<>0 THEN S%(D%,B%)=1 ELSE S%(D%,B%)=0
12240PROCdot(D%,B%,S%(D%,B%))
12250NEXTD%,B%
12260FOR B%=0 TO 15
12270FOR D%=0 TO 7
12280IF (?(A%+B%+16) AND 2^(7-D%))<>0 THEN S%(D%+8,B%)=1 ELSE S%(D%+8,B%)=0
12290PROCdot(D%+8,B%,S%(D%+8,B%))
12300NEXT,
12310ENDPROC
12400 
12410DEFPROCput(A%)
12420LOCAL B%,C%,D%,E%
12600 
12610FOR B%=0 TO 15:C%=0
12620FOR D%=0 TO 7
12630C%=C%*2+S%(D%,B%)
12640NEXTD%
12650A%?B%=C%
12660NEXTB%
12670FOR B%=0 TO 15:C%=0
12680FOR D%=8 TO 15
12690C%=C%*2+S%(D%,B%)
12700NEXT
12710A%?(B%+16)=C%
12720NEXT
12722PROCdisp(ch%,(ch%AND15)*16,176+(ch%AND48))
12724VDU 7
12730ENDPROC
15000 
15010 
15020 
15030 
15040DEFPROCinit
15050FOR X%=0 TO 6
15060FOR Y%=0 TO 5
15070drw%(X%,Y%)=-1
15080NEXT
15090NEXT
15100FOR X%=0 TO 31
15110temp?X%=0
15120NEXT
15130nic%=0
15140FOR X%=0 TO 1020 STEP 4
15150chars1!X%=0:chars2!X%=0
15160NEXT
15170ENDPROC
15500 
15510DEFPROCload(A$,W%)
15520IF W%=1 THEN 15600
15530PROCoscli("L."+A$+" "+STR$~chars1)
15535VDU 26
15540PRINTTAB(wnlx%(2)+7,wnty%(2));"Icon file:"A$;STRING$(14-LENA$," ");
15550PROCredraw
15560ENDPROC
15600 
15610PROCoscli("L."+A$+" "+STR$~chars2)
15611VDU 26
15615PROCredraw
15620ENDPROC
16000 
16010        Redraw drawing area in full
16020 
16030DEFPROCredraw
16040LOCAL A%,B%,C%
16050FOR B%=0 TO 6:FOR C%=0 TO 5
16055IF drw%(B%,C%)>=0 THEN PROCdefine(FNadd(drw%(B%,C%)))
16060PROCdrw(B%,C%,drw%(B%,C%))
16070NEXT
16080NEXT
16090ENDPROC
18000 
18010DEFPROCw_ls
18020PROCwindow(5,24,5,38,1,"   Load/Save")
18030PRINT''"Load icons"
18040PRINT"Load alt."
18050PRINT"Save icons";
18060w_ls=TRUE
18065VDU 26
18070ENDPROC
18080 
18100DEFPROCw_me
18110PROCwindow(5,24,5,38,1,"  Messages")
18120w_ls=FALSE
18130ENDPROC
20000 
20010DEFPROCdesk
20020*DESK
20030PROCwindow(0,1,18,16,1,"  Icon No.")
20040PROCwindow(1,19,4,22,1,"")
20050PROCwindow(2,1,25,32,20,"         No icons")
20060PROCwindow(3,1,30,32,27,"")
20065PROCwindow(4,19,18,32,7,"")
20066PROCw_me
20070VDU 26
20080VDU 23,132,-1;-1;-1;-1;
20090VDU 23,1,0;0;0;0;0;
20100PROCicon(32,36,7)
20102PROCicon(33,36,28)
20110PROCredraw
20190ENDPROC
20200 
20210DEF FNinw(w%)
20220IF POS>=wnlx%(w%) AND POS<=wnrx%(w%) AND VPOS>=wnty%(w%) AND VPOS<=wnby%(w%) THEN =TRUE ELSE =FALSE
20250 
20260DEF FNchkicon
20265LOCAL N%,X%:N%=-1
20270FOR X%=0 TO nic%-1
20280IF (POS=icx%(X%) OR POS=icx%(X%)+1) AND (VPOS=icy%(X%) OR VPOS=icy%(X%)+1) THEN N%=icn%(X%):X%=nic%
20290NEXT
20300=N%
20500 
20510DEFPROCwindow(w%,lx%,by%,rx%,ty%,A$)
20512wnlx%(w%)=lx%
20514wnby%(w%)=by%
20515wnlx%(w%)=lx%
20516wnrx%(w%)=rx%
20518wnty%(w%)=ty%
20520IF A$="" THEN PROCoscli("WINDOW "+STR$lx%+","+STR$by%+","+STR$rx%+","+STR$ty%):ENDPROC
20530PROCoscli("WINDOW "+STR$lx%+","+STR$by%+","+STR$rx%+","+STR$ty%+","+A$)
20540ENDPROC
20550 
20560DEFPROCicon(N%,X%,Y%)
20570icx%(nic%)=X%:icn%(nic%)=N%
20580icy%(nic%)=Y%
20590PROCoscli("ICON "+STR$N%+","+STR$X%+","+STR$Y%):nic%=nic%+1:ENDPROC
20600 
20610DEFPROCoscli(A$)
20620$&700=A$
20630LOCAL X%,Y%
20640X%=0:Y%=7:CALL &FFF7
20650ENDPROC
20700 
20710DEFPROCdrw(X%,Y%,I%)
20711IF X%<0 OR X%>6 OR Y%<0 OR Y%>5 THEN ENDPROC
20715drw%(X%,Y%)=I%
20720VDU 31,X%*2+wnlx%(4),Y%*2+wnty%(4)
20730IF I%=-1 THEN *ICON 93
20732IF I%>=0 THEN *ICON 0
20735VDU 26
20740ENDPROC
30000 
30010DEFPROCinit
30020nic%=0
30100ENDPROC
30200 
30210DEFPROCget_cord
30220CALL get_cord
30225DEFPROCget_cord1
30230MX%=!&70 AND &FFFF
30240MY%=?&72
30250ENDPROC
30260 
30270DEFFNscan_keys
30280=(?&FE60 AND&E0)/32
30290 
30300 
30310DEFFNget_inp
30320LOCAL K%
30330REPEAT
30340CALL move_cur
30350K%=FNscan_keys
30360UNTILK%<7
30370PROCget_cord1
30380=K%
31000 
31010DEFPROCerr(A$)
31015VDU 7
31020PROCw_me
31030PRINT''A$
31040PRINT"Press a button";
31050REPEATUNTILNOTINKEY-129
31060PROCw_me
31070VDU 26:ENDPROC
32000 
32010ON ERROR OFF
32020VDU 7
32030PROCwindow(5,24,5,38,1,"  Messages")
32040PRINT';
32045VDU 23,1,0;0;0;0;
32050REPORT
32055REPEATUNTILINKEY-129
32060PRINT'"Press a button";
32070REPEATUNTILNOTINKEY-129
32080PROCw_me:VDU26
32100GOTO 1000
 
�     Design  V1.1
 
�    21/10/1984a
 

 
� 4
%� chars1 1024,chars2 1024,temp 32
X� S%(16,16),wnlx%(7),wnrx%(7),wnby%(7),wnty%(7),drw%(6,5),icn%(15),icy%(15),icx%(15)
	�init
d	�desk
�exec%=-107
�move%=-108
�canc%=-109
, 
6*SENSITIVITY 2,2
@*BUTTONS OFF
J*POINTER ON
� 
�*POINTER 80
�*SHOWPOINTER
��      Main program loop
�A%=-129
 
�*MOVEP.
� � �A%
$ 
.�      Which key ?
8 
B� �exec% � �dPG
L� �move% � �txK
V� �canc% � �t`O
[
� �d|C
`*POINTER 80
aA%=-129
e�
j*MOVEP.
t��A%
~
� �d|C
� 
�/�                    Execute button pressed
� 
�*UPDATE
�$� �inw(0) � �>=wnty%(0)+2 � �dDI
�� �inw(5) � �TBH
�A%=�chkicon
�� A%=-1 � �D`D
�� A%=32 � �TtH
�
� �D`D
� w_ls=� � �D`D
*UPDATE
V%=�
 *HIDEPOINTER
*� V%=3 � �DfH
,� V%=4 � �DzH
.� V%=5 � �tNH
0�w_me:�26:� �dhC
4 
6�           File icon
8	�w_ls
9
� �D`D
c�w_me:�26:� �dhC
f%�window(5,24,5,38,1,"Load icons")
h�'';
i� 23,1,1;0;0;0;:� � � �P@}
j� ":"A$
k� 23,1,0;0;0;0;
l�load(A$,0):� 26:� � �
n
�disp_all
p
� �DcH
z 
|$�window(5,24,5,38,1,"Load Alt.")
~�'';:� 23,1,1;0;0;0;
� � � �P@}
�� ":"A$:� 23,1,0;0;0;0;
��load(A$,1):� 26:� � �
�
�disp_alt
�
� �DcH
� 
�%�window(5,24,5,38,1,"Save icons")
�#�'';:� 23,1,1;0;0;0;:� � � �P@}
�� ":"A$:� 23,1,0;0;0;0;
�2�oscli("S."+A$+" "+�~chars1+" +400 8000 5800")
�� � �:� 26:� �DcH
	�*HIDEPOINTER
	�?�dot(�-wnlx%(0),�-wnty%(0)-2,1-S%(�-wnlx%(0),�-wnty%(0)-2))
	�*SHOWPOINTER
	�
� �D`D
� 
�,�                    Move button pressed
� 
� 
�*UPDATE
�frmL%=�
�� �inw(4) � �djK
�� �inw(2) � �T\L
�,� �inw(0) � �define(temp):frmL%=�:� �TpL
�� �inw(3) � �TPN
�
� �D`D
� 
�'X%=(�-wnlx%(4))/2:Y%=(�-wnty%(4))/2
�ch%=drw%(X%,Y%)
� ch%>=0 � �TfL � �D`D
,ch%=(�-wnlx%(2))/2+16*((�-wnty%(2)-2)�2)
� ch%<0 � ch%>31 � �D`D
&�define(�add(ch%))
0*POINTER 0,95
:�
D*MOVEP.
N� � �move%
X 
b*UPDATE
l� �inw(0) � �tlM
v� �inw(4) � �ddL
�� �inw(2) � �DHM
�,� �inw(3) � �err("  not allowed"):� �D`D
�� �inw(4) � �ddL
�
� �D`D
�,� frmL%=� � �err("  not allowed"):� �D`D
�+X%=(�+1-wnlx%(4))/2:Y%=(�+1-wnty%(4))/2
�&� �>wnrx%(4) � �>wnby%(4)-1 � �D`D
�*HIDEPOINTER
�	*FX19
��drw(X%,Y%,ch%)
�*SHOWPOINTER


� �D`D

H 

I� frmL%=� � �DzM

M0ch%=(�+1-wnlx%(2))/2+16*((�+1-wnty%(2)-2)�2)

R� ch%<0 � ch%>31 � �D`D

WA%=�add(ch%)

\� X%=0 � 31:A%?X%=temp?X%:�

^*HIDEPOINTER

a�disp_icon(ch%)

c*SHOWPOINTER

f�    Update drawing area

h=� X%=0 � 6:� Y%=0 � 5:� drw%(X%,Y%)=ch% � �drw(X%,Y%,ch%)

j�,

l
� �D`D

y 

zB%=�add(ch%)

�Hch%=(�+1-wnlx%(2))/2+16*((�+1-wnty%(2)-2)�2):� ch%<0 � ch%>31 � �D`D

�A%=�add(ch%)

�� X%=0 � 31:A%?X%=B%?X%:�

�*HIDEPOINTER

� �disp_icon(ch%):*SHOWPOINTER

�
� �DfM

�,� frmL%=� � �err("  not allowed"):� �D`D

�*HIDEPOINTER

��11,1);ch%;" ";

��get(�add(ch%))

�*SHOWPOINTER

�
� �D`D
 
*ch%=(�-wnlx%(3))/2+16*((�-wnty%(3))�2)
$� ch%<0 � ch%>31 � �D`D
.�define((31-ch%)*32+chars2)
8ch%=ch%+32:� �TpL
�
� �D`D
j 
t.�                    Cancel button pressed
~ 
' 
'��disp(A%,X%,Y%)
'$�define(�add(A%))
'.�X%,Y%);:*ICON 0
'3�
'8��define(A%):� D%,E%
'B	D%=A%
'L� A%=0 � 3
'V� 23,128+A%
'`� E%=0 � 7
'jF%=?(D%+E%+A%*8):� F%
't�,
'y�
'� 
'���disp_all
'�� 26
'�� A%=0 � 15
'��disp_icon(A%)
'��disp_icon(A%+16)
'��
'��
'� 
'���disp_alt
'�� 26
'�G� A%=15 � 0 � -1:�dispA(chars2+A%*32,wnlx%(3)+(15-A%)*2,wnty%(3)+2)
'�8�dispA(chars2+A%*32+512,wnlx%(3)+(15-A%)*2,wnty%(3))
'��
'��
'� 
'� 
'���disp_icon(A%)
'�5�disp(A%,(A%�15)*2+wnlx%(2),wnty%(2)+2+2*(A%�16))
(�
(< 
(F��dispA(A%,X%,Y%)
(P�define(A%)
(Z�X%,Y%);:*ICON 0
(d�
*� 
+��dot(X%,Y%,C%):� A%,Z%
+S%(X%,Y%)=C%
+"� 31,X%+wnlx%(0),Y%+wnty%(0)+2
+� C%=0 � � 32 � � 132
+ 
� 0,C%
+*� 69,X%*4+640,956-Y%*4
+9$A%=temp+Y%+(X%�8)*16:Z%=7-(X%�7)
+:$?A%=(?A% � (255-2^Z%)) � C%*2^Z%
+>�
+\ 
+fݤadd(ch%)
+p"� ch%>31 � =chars2+32*(63-ch%)
+z=chars1+(31-ch%)*32
.� 
.�
��get(A%)
.�� B%,C%,D%,E%
/� 
/�� B%=0 � 15
/�� D%=0 � 7
/�7� (A%?B% � 2^(7-D%))<>0 � S%(D%,B%)=1 � S%(D%,B%)=0
/��dot(D%,B%,S%(D%,B%))
/�
�D%,B%
/�� B%=0 � 15
/�� D%=0 � 7
/�A� (?(A%+B%+16) � 2^(7-D%))<>0 � S%(D%+8,B%)=1 � S%(D%+8,B%)=0
0�dot(D%+8,B%,S%(D%+8,B%))
0�,
0�
0p 
0z
��put(A%)
0�� B%,C%,D%,E%
18 
1B� B%=0 � 15:C%=0
1L� D%=0 � 7
1VC%=C%*2+S%(D%,B%)
1`�D%
1jA%?B%=C%
1t�B%
1~� B%=0 � 15:C%=0
1�� D%=8 � 15
1�C%=C%*2+S%(D%,B%)
1��
1�A%?(B%+16)=C%
1��
1�'�disp(ch%,(ch%�15)*16,176+(ch%�48))
1�� 7
1��
:� 
:� 
:� 
:� 
:�
��init
:�� X%=0 � 6
:�� Y%=0 � 5
:�drw%(X%,Y%)=-1
:��
:��
:�� X%=0 � 31
;
temp?X%=0
;�
;
nic%=0
;$� X%=0 � 1020 � 4
;.chars1!X%=0:chars2!X%=0
;8�
;B�
<� 
<���load(A$,W%)
<�� W%=1 � �dp|
<� �oscli("L."+A$+" "+�~chars1)
<�� 26
<�7�wnlx%(2)+7,wnty%(2));"Icon file:"A$;�14-�A$," ");
<��redraw
<��
<� 
<� �oscli("L."+A$+" "+�~chars2)
<�� 26
<��redraw
=�
>� 
>�'        Redraw drawing area in full
>� 
>���redraw
>�� A%,B%,C%
>�� B%=0 � 6:� C%=0 � 5
>�1� drw%(B%,C%)>=0 � �define(�add(drw%(B%,C%)))
>��drw(B%,C%,drw%(B%,C%))
>��
>��
>��
FP 
FZ
��w_ls
Fd'�window(5,24,5,38,1,"   Load/Save")
Fn�''"Load icons"
Fx�"Load alt."
F��"Save icons";
F�
w_ls=�
F�� 26
F��
F� 
F�
��w_me
F�%�window(5,24,5,38,1,"  Messages")
F�
w_ls=�
F��
N  
N*
��desk
N4	*DESK
N>%�window(0,1,18,16,1,"  Icon No.")
NH�window(1,19,4,22,1,"")
NR-�window(2,1,25,32,20,"         No icons")
N\�window(3,1,30,32,27,"")
Na�window(4,19,18,32,7,"")
Nb	�w_me
Nf� 26
Np� 23,132,-1;-1;-1;-1;
Nz� 23,1,0;0;0;0;0;
N��icon(32,36,7)
N��icon(33,36,28)
N��redraw
N��
N� 
N�� �inw(w%)
N�I� �>=wnlx%(w%) � �<=wnrx%(w%) � �>=wnty%(w%) � �<=wnby%(w%) � =� � =�
O 
O$� �chkicon
O)� N%,X%:N%=-1
O.� X%=0 � nic%-1
O8U� (�=icx%(X%) � �=icx%(X%)+1) � (�=icy%(X%) � �=icy%(X%)+1) � N%=icn%(X%):X%=nic%
OB�
OL=N%
P 
P#��window(w%,lx%,by%,rx%,ty%,A$)
P wnlx%(w%)=lx%
P"wnby%(w%)=by%
P#wnlx%(w%)=lx%
P$wnrx%(w%)=rx%
P&wnty%(w%)=ty%
P(A� A$="" � �oscli("WINDOW "+�lx%+","+�by%+","+�rx%+","+�ty%):�
P2<�oscli("WINDOW "+�lx%+","+�by%+","+�rx%+","+�ty%+","+A$)
P<�
PF 
PP��icon(N%,X%,Y%)
PZicx%(nic%)=X%:icn%(nic%)=N%
Pdicy%(nic%)=Y%
Pn5�oscli("ICON "+�N%+","+�X%+","+�Y%):nic%=nic%+1:�
Px 
P���oscli(A$)
P�$&700=A$
P�� X%,Y%
P�X%=0:Y%=7:� &FFF7
P��
P� 
P���drw(X%,Y%,I%)
P�#� X%<0 � X%>6 � Y%<0 � Y%>5 � �
P�drw%(X%,Y%)=I%
P�$� 31,X%*2+wnlx%(4),Y%*2+wnty%(4)
P�� I%=-1 � *ICON 93
P�� I%>=0 � *ICON 0
P�� 26
Q�
u0 
u:
��init
uD
nic%=0
u��
u� 
v��get_cord
v� get_cord
v��get_cord1
vMX%=!&70 � &FFFF
v MY%=?&72
v*�
v4 
v>ݤscan_keys
vH=(?&FE60 �&E0)/32
vR 
v\ 
vf
ݤget_inp
vp� K%
vz�
v�� move_cur
v�K%=�scan_keys
v�	�K%<7
v��get_cord1
v�=K%
y 
y"
��err(A$)
y'� 7
y,	�w_me
y6	�''A$
y@�"Press a button";
yJ����-129
yT	�w_me
y^
� 26:�
} 
}
	� � �
}� 7
}%�window(5,24,5,38,1,"  Messages")
}(�';
}-� 23,1,0;0;0;0;
}2�
}7���-129
}<�'"Press a button";
}F����-129
}P
�w_me:�26
}d
� �dhC
�
00000000  0d 00 00 05 20 0d 00 01  16 f4 20 20 20 20 20 44  |.... .....     D|
00000010  65 73 69 67 6e 20 20 56  31 2e 31 0d 00 02 05 20  |esign  V1.1.... |
00000020  0d 00 03 14 f4 20 20 20  20 32 31 2f 31 30 2f 31  |.....    21/10/1|
00000030  39 38 34 61 0d 00 04 05  20 0d 00 0a 05 20 0d 00  |984a.... .... ..|
00000040  14 07 eb 20 34 0d 00 15  25 de 20 63 68 61 72 73  |... 4...%. chars|
00000050  31 20 31 30 32 34 2c 63  68 61 72 73 32 20 31 30  |1 1024,chars2 10|
00000060  32 34 2c 74 65 6d 70 20  33 32 0d 00 19 58 de 20  |24,temp 32...X. |
00000070  53 25 28 31 36 2c 31 36  29 2c 77 6e 6c 78 25 28  |S%(16,16),wnlx%(|
00000080  37 29 2c 77 6e 72 78 25  28 37 29 2c 77 6e 62 79  |7),wnrx%(7),wnby|
00000090  25 28 37 29 2c 77 6e 74  79 25 28 37 29 2c 64 72  |%(7),wnty%(7),dr|
000000a0  77 25 28 36 2c 35 29 2c  69 63 6e 25 28 31 35 29  |w%(6,5),icn%(15)|
000000b0  2c 69 63 79 25 28 31 35  29 2c 69 63 78 25 28 31  |,icy%(15),icx%(1|
000000c0  35 29 0d 00 1e 09 f2 69  6e 69 74 0d 00 64 09 f2  |5).....init..d..|
000000d0  64 65 73 6b 0d 00 c8 0e  65 78 65 63 25 3d 2d 31  |desk....exec%=-1|
000000e0  30 37 0d 00 d2 0e 6d 6f  76 65 25 3d 2d 31 30 38  |07....move%=-108|
000000f0  0d 00 dc 0e 63 61 6e 63  25 3d 2d 31 30 39 0d 01  |....canc%=-109..|
00000100  2c 05 20 0d 01 36 14 2a  53 45 4e 53 49 54 49 56  |,. ..6.*SENSITIV|
00000110  49 54 59 20 32 2c 32 0d  01 40 10 2a 42 55 54 54  |ITY 2,2..@.*BUTT|
00000120  4f 4e 53 20 4f 46 46 0d  01 4a 0f 2a 50 4f 49 4e  |ONS OFF..J.*POIN|
00000130  54 45 52 20 4f 4e 0d 03  84 05 20 0d 03 98 0f 2a  |TER ON.... ....*|
00000140  50 4f 49 4e 54 45 52 20  38 30 0d 03 e8 10 2a 53  |POINTER 80....*S|
00000150  48 4f 57 50 4f 49 4e 54  45 52 0d 03 f2 1c f4 20  |HOWPOINTER..... |
00000160  20 20 20 20 20 4d 61 69  6e 20 70 72 6f 67 72 61  |     Main progra|
00000170  6d 20 6c 6f 6f 70 0d 03  fc 0b 41 25 3d 2d 31 32  |m loop....A%=-12|
00000180  39 0d 04 06 05 20 0d 04  10 0c f5 2a 4d 4f 56 45  |9.... .....*MOVE|
00000190  50 2e 0d 04 1a 0b fd 20  ac 20 a6 41 25 0d 04 24  |P...... . .A%..$|
000001a0  05 20 0d 04 2e 16 f4 20  20 20 20 20 20 57 68 69  |. .....      Whi|
000001b0  63 68 20 6b 65 79 20 3f  0d 04 38 05 20 0d 04 42  |ch key ?..8. ..B|
000001c0  13 e7 20 a6 65 78 65 63  25 20 8c 20 8d 64 50 47  |.. .exec% . .dPG|
000001d0  0d 04 4c 13 e7 20 a6 6d  6f 76 65 25 20 8c 20 8d  |..L.. .move% . .|
000001e0  74 78 4b 0d 04 56 13 e7  20 a6 63 61 6e 63 25 20  |txK..V.. .canc% |
000001f0  8c 20 8d 74 60 4f 0d 04  5b 0a e5 20 8d 64 7c 43  |. .t`O..[.. .d|C|
00000200  0d 04 60 0f 2a 50 4f 49  4e 54 45 52 20 38 30 0d  |..`.*POINTER 80.|
00000210  04 61 0b 41 25 3d 2d 31  32 39 0d 04 65 05 f5 0d  |.a.A%=-129..e...|
00000220  04 6a 0b 2a 4d 4f 56 45  50 2e 0d 04 74 08 fd a6  |.j.*MOVEP...t...|
00000230  41 25 0d 04 7e 0a e5 20  8d 64 7c 43 0d 07 bc 05  |A%..~.. .d|C....|
00000240  20 0d 07 c6 2f f4 20 20  20 20 20 20 20 20 20 20  | .../.          |
00000250  20 20 20 20 20 20 20 20  20 20 45 78 65 63 75 74  |          Execut|
00000260  65 20 62 75 74 74 6f 6e  20 70 72 65 73 73 65 64  |e button pressed|
00000270  0d 07 cf 05 20 0d 07 d0  0b 2a 55 50 44 41 54 45  |.... ....*UPDATE|
00000280  0d 07 da 24 e7 20 a4 69  6e 77 28 30 29 20 80 20  |...$. .inw(0) . |
00000290  bc 3e 3d 77 6e 74 79 25  28 30 29 2b 32 20 8c 20  |.>=wnty%(0)+2 . |
000002a0  8d 64 44 49 0d 07 df 14  e7 20 a4 69 6e 77 28 35  |.dDI..... .inw(5|
000002b0  29 20 8c 20 8d 54 42 48  0d 07 e4 0f 41 25 3d a4  |) . .TBH....A%=.|
000002c0  63 68 6b 69 63 6f 6e 0d  07 ee 12 e7 20 41 25 3d  |chkicon..... A%=|
000002d0  2d 31 20 8c 20 8d 44 60  44 0d 07 f8 12 e7 20 41  |-1 . .D`D..... A|
000002e0  25 3d 33 32 20 8c 20 8d  54 74 48 0d 07 fe 0a e5  |%=32 . .TtH.....|
000002f0  20 8d 44 60 44 0d 08 02  13 e7 20 77 5f 6c 73 3d  | .D`D..... w_ls=|
00000300  a3 20 8c 20 8d 44 60 44  0d 08 0c 0b 2a 55 50 44  |. . .D`D....*UPD|
00000310  41 54 45 0d 08 16 08 56  25 3d bc 0d 08 20 10 2a  |ATE....V%=... .*|
00000320  48 49 44 45 50 4f 49 4e  54 45 52 0d 08 2a 11 e7  |HIDEPOINTER..*..|
00000330  20 56 25 3d 33 20 8c 20  8d 44 66 48 0d 08 2c 11  | V%=3 . .DfH..,.|
00000340  e7 20 56 25 3d 34 20 8c  20 8d 44 7a 48 0d 08 2e  |. V%=4 . .DzH...|
00000350  11 e7 20 56 25 3d 35 20  8c 20 8d 74 4e 48 0d 08  |.. V%=5 . .tNH..|
00000360  30 14 f2 77 5f 6d 65 3a  ef 32 36 3a e5 20 8d 64  |0..w_me:.26:. .d|
00000370  68 43 0d 08 34 05 20 0d  08 36 19 f4 20 20 20 20  |hC..4. ..6..    |
00000380  20 20 20 20 20 20 20 46  69 6c 65 20 69 63 6f 6e  |       File icon|
00000390  0d 08 38 09 f2 77 5f 6c  73 0d 08 39 0a e5 20 8d  |..8..w_ls..9.. .|
000003a0  44 60 44 0d 08 63 14 f2  77 5f 6d 65 3a ef 32 36  |D`D..c..w_me:.26|
000003b0  3a e5 20 8d 64 68 43 0d  08 66 25 f2 77 69 6e 64  |:. .dhC..f%.wind|
000003c0  6f 77 28 35 2c 32 34 2c  35 2c 33 38 2c 31 2c 22  |ow(5,24,5,38,1,"|
000003d0  4c 6f 61 64 20 69 63 6f  6e 73 22 29 0d 08 68 08  |Load icons")..h.|
000003e0  f1 27 27 3b 0d 08 69 1e  ef 20 32 33 2c 31 2c 31  |.'';..i.. 23,1,1|
000003f0  3b 30 3b 30 3b 30 3b 3a  ee 20 85 20 e5 20 8d 50  |;0;0;0;:. . . .P|
00000400  40 7d 0d 08 6a 0b e8 20  22 3a 22 41 24 0d 08 6b  |@}..j.. ":"A$..k|
00000410  13 ef 20 32 33 2c 31 2c  30 3b 30 3b 30 3b 30 3b  |.. 23,1,0;0;0;0;|
00000420  0d 08 6c 1a f2 6c 6f 61  64 28 41 24 2c 30 29 3a  |..l..load(A$,0):|
00000430  ef 20 32 36 3a ee 20 85  20 87 0d 08 6e 0d f2 64  |. 26:. . ...n..d|
00000440  69 73 70 5f 61 6c 6c 0d  08 70 0a e5 20 8d 44 63  |isp_all..p.. .Dc|
00000450  48 0d 08 7a 05 20 0d 08  7c 24 f2 77 69 6e 64 6f  |H..z. ..|$.windo|
00000460  77 28 35 2c 32 34 2c 35  2c 33 38 2c 31 2c 22 4c  |w(5,24,5,38,1,"L|
00000470  6f 61 64 20 41 6c 74 2e  22 29 0d 08 7e 18 f1 27  |oad Alt.")..~..'|
00000480  27 3b 3a ef 20 32 33 2c  31 2c 31 3b 30 3b 30 3b  |';:. 23,1,1;0;0;|
00000490  30 3b 0d 08 7f 0e ee 20  85 20 e5 20 8d 50 40 7d  |0;..... . . .P@}|
000004a0  0d 08 80 1b e8 20 22 3a  22 41 24 3a ef 20 32 33  |..... ":"A$:. 23|
000004b0  2c 31 2c 30 3b 30 3b 30  3b 30 3b 0d 08 82 1a f2  |,1,0;0;0;0;.....|
000004c0  6c 6f 61 64 28 41 24 2c  31 29 3a ef 20 32 36 3a  |load(A$,1):. 26:|
000004d0  ee 20 85 20 87 0d 08 84  0d f2 64 69 73 70 5f 61  |. . ......disp_a|
000004e0  6c 74 0d 08 86 0a e5 20  8d 44 63 48 0d 08 8e 05  |lt..... .DcH....|
000004f0  20 0d 08 8f 25 f2 77 69  6e 64 6f 77 28 35 2c 32  | ...%.window(5,2|
00000500  34 2c 35 2c 33 38 2c 31  2c 22 53 61 76 65 20 69  |4,5,38,1,"Save i|
00000510  63 6f 6e 73 22 29 0d 08  90 23 f1 27 27 3b 3a ef  |cons")...#.'';:.|
00000520  20 32 33 2c 31 2c 31 3b  30 3b 30 3b 30 3b 3a ee  | 23,1,1;0;0;0;:.|
00000530  20 85 20 e5 20 8d 50 40  7d 0d 08 91 1b e8 20 22  | . . .P@}..... "|
00000540  3a 22 41 24 3a ef 20 32  33 2c 31 2c 30 3b 30 3b  |:"A$:. 23,1,0;0;|
00000550  30 3b 30 3b 0d 08 92 32  f2 6f 73 63 6c 69 28 22  |0;0;...2.oscli("|
00000560  53 2e 22 2b 41 24 2b 22  20 22 2b c3 7e 63 68 61  |S."+A$+" "+.~cha|
00000570  72 73 31 2b 22 20 2b 34  30 30 20 38 30 30 30 20  |rs1+" +400 8000 |
00000580  35 38 30 30 22 29 0d 08  93 15 ee 20 85 20 87 3a  |5800")..... . .:|
00000590  ef 20 32 36 3a e5 20 8d  44 63 48 0d 09 c4 10 2a  |. 26:. .DcH....*|
000005a0  48 49 44 45 50 4f 49 4e  54 45 52 0d 09 ce 3f f2  |HIDEPOINTER...?.|
000005b0  64 6f 74 28 b1 2d 77 6e  6c 78 25 28 30 29 2c bc  |dot(.-wnlx%(0),.|
000005c0  2d 77 6e 74 79 25 28 30  29 2d 32 2c 31 2d 53 25  |-wnty%(0)-2,1-S%|
000005d0  28 b1 2d 77 6e 6c 78 25  28 30 29 2c bc 2d 77 6e  |(.-wnlx%(0),.-wn|
000005e0  74 79 25 28 30 29 2d 32  29 29 0d 09 d8 10 2a 53  |ty%(0)-2))....*S|
000005f0  48 4f 57 50 4f 49 4e 54  45 52 0d 09 e2 0a e5 20  |HOWPOINTER..... |
00000600  8d 44 60 44 0d 0b 9a 05  20 0d 0b a4 2c f4 20 20  |.D`D.... ...,.  |
00000610  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000620  20 20 4d 6f 76 65 20 62  75 74 74 6f 6e 20 70 72  |  Move button pr|
00000630  65 73 73 65 64 0d 0b ae  05 20 0d 0b b8 05 20 0d  |essed.... .... .|
00000640  0b c2 0b 2a 55 50 44 41  54 45 0d 0b c7 0b 66 72  |...*UPDATE....fr|
00000650  6d 4c 25 3d a3 0d 0b c8  14 e7 20 a4 69 6e 77 28  |mL%=...... .inw(|
00000660  34 29 20 8c 20 8d 64 6a  4b 0d 0b cc 14 e7 20 a4  |4) . .djK..... .|
00000670  69 6e 77 28 32 29 20 8c  20 8d 54 5c 4c 0d 0b d6  |inw(2) . .T\L...|
00000680  2c e7 20 a4 69 6e 77 28  30 29 20 8c 20 f2 64 65  |,. .inw(0) . .de|
00000690  66 69 6e 65 28 74 65 6d  70 29 3a 66 72 6d 4c 25  |fine(temp):frmL%|
000006a0  3d b9 3a e5 20 8d 54 70  4c 0d 0b d8 14 e7 20 a4  |=.:. .TpL..... .|
000006b0  69 6e 77 28 33 29 20 8c  20 8d 54 50 4e 0d 0b e0  |inw(3) . .TPN...|
000006c0  0a e5 20 8d 44 60 44 0d  0b ea 05 20 0d 0b f4 27  |.. .D`D.... ...'|
000006d0  58 25 3d 28 b1 2d 77 6e  6c 78 25 28 34 29 29 2f  |X%=(.-wnlx%(4))/|
000006e0  32 3a 59 25 3d 28 bc 2d  77 6e 74 79 25 28 34 29  |2:Y%=(.-wnty%(4)|
000006f0  29 2f 32 0d 0b fe 13 63  68 25 3d 64 72 77 25 28  |)/2....ch%=drw%(|
00000700  58 25 2c 59 25 29 0d 0c  08 1a e7 20 63 68 25 3e  |X%,Y%)..... ch%>|
00000710  3d 30 20 8c 20 8d 54 66  4c 20 8b 20 8d 44 60 44  |=0 . .TfL . .D`D|
00000720  0d 0c 1c 2c 63 68 25 3d  28 b1 2d 77 6e 6c 78 25  |...,ch%=(.-wnlx%|
00000730  28 32 29 29 2f 32 2b 31  36 2a 28 28 bc 2d 77 6e  |(2))/2+16*((.-wn|
00000740  74 79 25 28 32 29 2d 32  29 81 32 29 0d 0c 1d 1b  |ty%(2)-2).2)....|
00000750  e7 20 63 68 25 3c 30 20  84 20 63 68 25 3e 33 31  |. ch%<0 . ch%>31|
00000760  20 8c 20 8d 44 60 44 0d  0c 26 16 f2 64 65 66 69  | . .D`D..&..defi|
00000770  6e 65 28 a4 61 64 64 28  63 68 25 29 29 0d 0c 30  |ne(.add(ch%))..0|
00000780  11 2a 50 4f 49 4e 54 45  52 20 30 2c 39 35 0d 0c  |.*POINTER 0,95..|
00000790  3a 05 f5 0d 0c 44 0b 2a  4d 4f 56 45 50 2e 0d 0c  |:....D.*MOVEP...|
000007a0  4e 0e fd 20 ac 20 a6 6d  6f 76 65 25 0d 0c 58 05  |N.. . .move%..X.|
000007b0  20 0d 0c 62 0b 2a 55 50  44 41 54 45 0d 0c 6c 14  | ..b.*UPDATE..l.|
000007c0  e7 20 a4 69 6e 77 28 30  29 20 8c 20 8d 74 6c 4d  |. .inw(0) . .tlM|
000007d0  0d 0c 76 14 e7 20 a4 69  6e 77 28 34 29 20 8c 20  |..v.. .inw(4) . |
000007e0  8d 64 64 4c 0d 0c 80 14  e7 20 a4 69 6e 77 28 32  |.ddL..... .inw(2|
000007f0  29 20 8c 20 8d 44 48 4d  0d 0c 8a 2c e7 20 a4 69  |) . .DHM...,. .i|
00000800  6e 77 28 33 29 20 8c 20  f2 65 72 72 28 22 20 20  |nw(3) . .err("  |
00000810  6e 6f 74 20 61 6c 6c 6f  77 65 64 22 29 3a e5 20  |not allowed"):. |
00000820  8d 44 60 44 0d 0c 94 14  e7 20 a4 69 6e 77 28 34  |.D`D..... .inw(4|
00000830  29 20 8c 20 8d 64 64 4c  0d 0c 9e 0a e5 20 8d 44  |) . .ddL..... .D|
00000840  60 44 0d 0c e4 2c e7 20  66 72 6d 4c 25 3d b9 20  |`D...,. frmL%=. |
00000850  8c 20 f2 65 72 72 28 22  20 20 6e 6f 74 20 61 6c  |. .err("  not al|
00000860  6c 6f 77 65 64 22 29 3a  e5 20 8d 44 60 44 0d 0c  |lowed"):. .D`D..|
00000870  e6 2b 58 25 3d 28 b1 2b  31 2d 77 6e 6c 78 25 28  |.+X%=(.+1-wnlx%(|
00000880  34 29 29 2f 32 3a 59 25  3d 28 bc 2b 31 2d 77 6e  |4))/2:Y%=(.+1-wn|
00000890  74 79 25 28 34 29 29 2f  32 0d 0c e9 26 e7 20 b1  |ty%(4))/2...&. .|
000008a0  3e 77 6e 72 78 25 28 34  29 20 84 20 bc 3e 77 6e  |>wnrx%(4) . .>wn|
000008b0  62 79 25 28 34 29 2d 31  20 8c 20 8d 44 60 44 0d  |by%(4)-1 . .D`D.|
000008c0  0c eb 10 2a 48 49 44 45  50 4f 49 4e 54 45 52 0d  |...*HIDEPOINTER.|
000008d0  0c ec 09 2a 46 58 31 39  0d 0c ee 13 f2 64 72 77  |...*FX19.....drw|
000008e0  28 58 25 2c 59 25 2c 63  68 25 29 0d 0c f8 10 2a  |(X%,Y%,ch%)....*|
000008f0  53 48 4f 57 50 4f 49 4e  54 45 52 0d 0d 02 0a e5  |SHOWPOINTER.....|
00000900  20 8d 44 60 44 0d 0d 48  05 20 0d 0d 49 14 e7 20  | .D`D..H. ..I.. |
00000910  66 72 6d 4c 25 3d a3 20  8c 20 8d 44 7a 4d 0d 0d  |frmL%=. . .DzM..|
00000920  4d 30 63 68 25 3d 28 b1  2b 31 2d 77 6e 6c 78 25  |M0ch%=(.+1-wnlx%|
00000930  28 32 29 29 2f 32 2b 31  36 2a 28 28 bc 2b 31 2d  |(2))/2+16*((.+1-|
00000940  77 6e 74 79 25 28 32 29  2d 32 29 81 32 29 0d 0d  |wnty%(2)-2).2)..|
00000950  52 1b e7 20 63 68 25 3c  30 20 84 20 63 68 25 3e  |R.. ch%<0 . ch%>|
00000960  33 31 20 8c 20 8d 44 60  44 0d 0d 57 10 41 25 3d  |31 . .D`D..W.A%=|
00000970  a4 61 64 64 28 63 68 25  29 0d 0d 5c 1f e3 20 58  |.add(ch%)..\.. X|
00000980  25 3d 30 20 b8 20 33 31  3a 41 25 3f 58 25 3d 74  |%=0 . 31:A%?X%=t|
00000990  65 6d 70 3f 58 25 3a ed  0d 0d 5e 10 2a 48 49 44  |emp?X%:...^.*HID|
000009a0  45 50 4f 49 4e 54 45 52  0d 0d 61 13 f2 64 69 73  |EPOINTER..a..dis|
000009b0  70 5f 69 63 6f 6e 28 63  68 25 29 0d 0d 63 10 2a  |p_icon(ch%)..c.*|
000009c0  53 48 4f 57 50 4f 49 4e  54 45 52 0d 0d 66 1c f4  |SHOWPOINTER..f..|
000009d0  20 20 20 20 55 70 64 61  74 65 20 64 72 61 77 69  |    Update drawi|
000009e0  6e 67 20 61 72 65 61 0d  0d 68 3d e3 20 58 25 3d  |ng area..h=. X%=|
000009f0  30 20 b8 20 36 3a e3 20  59 25 3d 30 20 b8 20 35  |0 . 6:. Y%=0 . 5|
00000a00  3a e7 20 64 72 77 25 28  58 25 2c 59 25 29 3d 63  |:. drw%(X%,Y%)=c|
00000a10  68 25 20 8c 20 f2 64 72  77 28 58 25 2c 59 25 2c  |h% . .drw(X%,Y%,|
00000a20  63 68 25 29 0d 0d 6a 06  ed 2c 0d 0d 6c 0a e5 20  |ch%)..j..,..l.. |
00000a30  8d 44 60 44 0d 0d 79 05  20 0d 0d 7a 10 42 25 3d  |.D`D..y. ..z.B%=|
00000a40  a4 61 64 64 28 63 68 25  29 0d 0d 84 48 63 68 25  |.add(ch%)...Hch%|
00000a50  3d 28 b1 2b 31 2d 77 6e  6c 78 25 28 32 29 29 2f  |=(.+1-wnlx%(2))/|
00000a60  32 2b 31 36 2a 28 28 bc  2b 31 2d 77 6e 74 79 25  |2+16*((.+1-wnty%|
00000a70  28 32 29 2d 32 29 81 32  29 3a e7 20 63 68 25 3c  |(2)-2).2):. ch%<|
00000a80  30 20 84 20 63 68 25 3e  33 31 20 8c 20 8d 44 60  |0 . ch%>31 . .D`|
00000a90  44 0d 0d 8e 10 41 25 3d  a4 61 64 64 28 63 68 25  |D....A%=.add(ch%|
00000aa0  29 0d 0d 98 1d e3 20 58  25 3d 30 20 b8 20 33 31  |)..... X%=0 . 31|
00000ab0  3a 41 25 3f 58 25 3d 42  25 3f 58 25 3a ed 0d 0d  |:A%?X%=B%?X%:...|
00000ac0  a2 10 2a 48 49 44 45 50  4f 49 4e 54 45 52 0d 0d  |..*HIDEPOINTER..|
00000ad0  a4 20 f2 64 69 73 70 5f  69 63 6f 6e 28 63 68 25  |. .disp_icon(ch%|
00000ae0  29 3a 2a 53 48 4f 57 50  4f 49 4e 54 45 52 0d 0d  |):*SHOWPOINTER..|
00000af0  a6 0a e5 20 8d 44 66 4d  0d 0d ac 2c e7 20 66 72  |... .DfM...,. fr|
00000b00  6d 4c 25 3d b9 20 8c 20  f2 65 72 72 28 22 20 20  |mL%=. . .err("  |
00000b10  6e 6f 74 20 61 6c 6c 6f  77 65 64 22 29 3a e5 20  |not allowed"):. |
00000b20  8d 44 60 44 0d 0d b6 10  2a 48 49 44 45 50 4f 49  |.D`D....*HIDEPOI|
00000b30  4e 54 45 52 0d 0d bb 14  f1 8a 31 31 2c 31 29 3b  |NTER......11,1);|
00000b40  63 68 25 3b 22 20 22 3b  0d 0d c0 13 f2 67 65 74  |ch%;" ";.....get|
00000b50  28 a4 61 64 64 28 63 68  25 29 29 0d 0d ca 10 2a  |(.add(ch%))....*|
00000b60  53 48 4f 57 50 4f 49 4e  54 45 52 0d 0d d4 0a e5  |SHOWPOINTER.....|
00000b70  20 8d 44 60 44 0d 0e 10  05 20 0d 0e 1a 2a 63 68  | .D`D.... ...*ch|
00000b80  25 3d 28 b1 2d 77 6e 6c  78 25 28 33 29 29 2f 32  |%=(.-wnlx%(3))/2|
00000b90  2b 31 36 2a 28 28 bc 2d  77 6e 74 79 25 28 33 29  |+16*((.-wnty%(3)|
00000ba0  29 81 32 29 0d 0e 24 1b  e7 20 63 68 25 3c 30 20  |).2)..$.. ch%<0 |
00000bb0  84 20 63 68 25 3e 33 31  20 8c 20 8d 44 60 44 0d  |. ch%>31 . .D`D.|
00000bc0  0e 2e 1f f2 64 65 66 69  6e 65 28 28 33 31 2d 63  |....define((31-c|
00000bd0  68 25 29 2a 33 32 2b 63  68 61 72 73 32 29 0d 0e  |h%)*32+chars2)..|
00000be0  38 15 63 68 25 3d 63 68  25 2b 33 32 3a e5 20 8d  |8.ch%=ch%+32:. .|
00000bf0  54 70 4c 0d 0f a0 0a e5  20 8d 44 60 44 0d 13 6a  |TpL..... .D`D..j|
00000c00  05 20 0d 13 74 2e f4 20  20 20 20 20 20 20 20 20  |. ..t..         |
00000c10  20 20 20 20 20 20 20 20  20 20 20 43 61 6e 63 65  |           Cance|
00000c20  6c 20 62 75 74 74 6f 6e  20 70 72 65 73 73 65 64  |l button pressed|
00000c30  0d 13 7e 05 20 0d 27 10  05 20 0d 27 1a 14 dd f2  |..~. .'.. .'....|
00000c40  64 69 73 70 28 41 25 2c  58 25 2c 59 25 29 0d 27  |disp(A%,X%,Y%).'|
00000c50  24 15 f2 64 65 66 69 6e  65 28 a4 61 64 64 28 41  |$..define(.add(A|
00000c60  25 29 29 0d 27 2e 15 f1  8a 58 25 2c 59 25 29 3b  |%)).'....X%,Y%);|
00000c70  3a 2a 49 43 4f 4e 20 30  0d 27 33 05 e1 0d 27 38  |:*ICON 0.'3...'8|
00000c80  18 dd f2 64 65 66 69 6e  65 28 41 25 29 3a ea 20  |...define(A%):. |
00000c90  44 25 2c 45 25 0d 27 42  09 44 25 3d 41 25 0d 27  |D%,E%.'B.D%=A%.'|
00000ca0  4c 0e e3 20 41 25 3d 30  20 b8 20 33 0d 27 56 0f  |L.. A%=0 . 3.'V.|
00000cb0  ef 20 32 33 2c 31 32 38  2b 41 25 0d 27 60 0e e3  |. 23,128+A%.'`..|
00000cc0  20 45 25 3d 30 20 b8 20  37 0d 27 6a 19 46 25 3d  | E%=0 . 7.'j.F%=|
00000cd0  3f 28 44 25 2b 45 25 2b  41 25 2a 38 29 3a ef 20  |?(D%+E%+A%*8):. |
00000ce0  46 25 0d 27 74 06 ed 2c  0d 27 79 05 e1 0d 27 88  |F%.'t..,.'y...'.|
00000cf0  05 20 0d 27 92 0e dd f2  64 69 73 70 5f 61 6c 6c  |. .'....disp_all|
00000d00  0d 27 97 08 ef 20 32 36  0d 27 9c 0f e3 20 41 25  |.'... 26.'... A%|
00000d10  3d 30 20 b8 20 31 35 0d  27 a6 12 f2 64 69 73 70  |=0 . 15.'...disp|
00000d20  5f 69 63 6f 6e 28 41 25  29 0d 27 b0 15 f2 64 69  |_icon(A%).'...di|
00000d30  73 70 5f 69 63 6f 6e 28  41 25 2b 31 36 29 0d 27  |sp_icon(A%+16).'|
00000d40  ce 05 ed 0d 27 d0 05 e1  0d 27 d2 05 20 0d 27 d4  |....'....'.. .'.|
00000d50  0e dd f2 64 69 73 70 5f  61 6c 74 0d 27 d6 08 ef  |...disp_alt.'...|
00000d60  20 32 36 0d 27 d8 47 e3  20 41 25 3d 31 35 20 b8  | 26.'.G. A%=15 .|
00000d70  20 30 20 88 20 2d 31 3a  f2 64 69 73 70 41 28 63  | 0 . -1:.dispA(c|
00000d80  68 61 72 73 32 2b 41 25  2a 33 32 2c 77 6e 6c 78  |hars2+A%*32,wnlx|
00000d90  25 28 33 29 2b 28 31 35  2d 41 25 29 2a 32 2c 77  |%(3)+(15-A%)*2,w|
00000da0  6e 74 79 25 28 33 29 2b  32 29 0d 27 da 38 f2 64  |nty%(3)+2).'.8.d|
00000db0  69 73 70 41 28 63 68 61  72 73 32 2b 41 25 2a 33  |ispA(chars2+A%*3|
00000dc0  32 2b 35 31 32 2c 77 6e  6c 78 25 28 33 29 2b 28  |2+512,wnlx%(3)+(|
00000dd0  31 35 2d 41 25 29 2a 32  2c 77 6e 74 79 25 28 33  |15-A%)*2,wnty%(3|
00000de0  29 29 0d 27 dc 05 ed 0d  27 de 05 e1 0d 27 e0 05  |)).'....'....'..|
00000df0  20 0d 27 e2 05 20 0d 27  ec 13 dd f2 64 69 73 70  | .'.. .'....disp|
00000e00  5f 69 63 6f 6e 28 41 25  29 0d 27 f6 35 f2 64 69  |_icon(A%).'.5.di|
00000e10  73 70 28 41 25 2c 28 41  25 80 31 35 29 2a 32 2b  |sp(A%,(A%.15)*2+|
00000e20  77 6e 6c 78 25 28 32 29  2c 77 6e 74 79 25 28 32  |wnlx%(2),wnty%(2|
00000e30  29 2b 32 2b 32 2a 28 41  25 81 31 36 29 29 0d 28  |)+2+2*(A%.16)).(|
00000e40  00 05 e1 0d 28 3c 05 20  0d 28 46 15 dd f2 64 69  |....(<. .(F...di|
00000e50  73 70 41 28 41 25 2c 58  25 2c 59 25 29 0d 28 50  |spA(A%,X%,Y%).(P|
00000e60  0f f2 64 65 66 69 6e 65  28 41 25 29 0d 28 5a 15  |..define(A%).(Z.|
00000e70  f1 8a 58 25 2c 59 25 29  3b 3a 2a 49 43 4f 4e 20  |..X%,Y%);:*ICON |
00000e80  30 0d 28 64 05 e1 0d 2a  f8 05 20 0d 2b 02 1b dd  |0.(d...*.. .+...|
00000e90  f2 64 6f 74 28 58 25 2c  59 25 2c 43 25 29 3a ea  |.dot(X%,Y%,C%):.|
00000ea0  20 41 25 2c 5a 25 0d 2b  03 10 53 25 28 58 25 2c  | A%,Z%.+..S%(X%,|
00000eb0  59 25 29 3d 43 25 0d 2b  0c 22 ef 20 33 31 2c 58  |Y%)=C%.+.". 31,X|
00000ec0  25 2b 77 6e 6c 78 25 28  30 29 2c 59 25 2b 77 6e  |%+wnlx%(0),Y%+wn|
00000ed0  74 79 25 28 30 29 2b 32  0d 2b 16 19 e7 20 43 25  |ty%(0)+2.+... C%|
00000ee0  3d 30 20 8c 20 ef 20 33  32 20 8b 20 ef 20 31 33  |=0 . . 32 . . 13|
00000ef0  32 0d 2b 20 0a e6 20 30  2c 43 25 0d 2b 2a 1a f0  |2.+ .. 0,C%.+*..|
00000f00  20 36 39 2c 58 25 2a 34  2b 36 34 30 2c 39 35 36  | 69,X%*4+640,956|
00000f10  2d 59 25 2a 34 0d 2b 39  24 41 25 3d 74 65 6d 70  |-Y%*4.+9$A%=temp|
00000f20  2b 59 25 2b 28 58 25 81  38 29 2a 31 36 3a 5a 25  |+Y%+(X%.8)*16:Z%|
00000f30  3d 37 2d 28 58 25 80 37  29 0d 2b 3a 24 3f 41 25  |=7-(X%.7).+:$?A%|
00000f40  3d 28 3f 41 25 20 80 20  28 32 35 35 2d 32 5e 5a  |=(?A% . (255-2^Z|
00000f50  25 29 29 20 84 20 43 25  2a 32 5e 5a 25 0d 2b 3e  |%)) . C%*2^Z%.+>|
00000f60  05 e1 0d 2b 5c 05 20 0d  2b 66 0e dd a4 61 64 64  |...+\. .+f...add|
00000f70  28 63 68 25 29 0d 2b 70  22 e7 20 63 68 25 3e 33  |(ch%).+p". ch%>3|
00000f80  31 20 8c 20 3d 63 68 61  72 73 32 2b 33 32 2a 28  |1 . =chars2+32*(|
00000f90  36 33 2d 63 68 25 29 0d  2b 7a 17 3d 63 68 61 72  |63-ch%).+z.=char|
00000fa0  73 31 2b 28 33 31 2d 63  68 25 29 2a 33 32 0d 2e  |s1+(31-ch%)*32..|
00000fb0  e0 05 20 0d 2e ea 0d dd  f2 67 65 74 28 41 25 29  |.. ......get(A%)|
00000fc0  0d 2e f4 11 ea 20 42 25  2c 43 25 2c 44 25 2c 45  |..... B%,C%,D%,E|
00000fd0  25 0d 2f a8 05 20 0d 2f  b2 0f e3 20 42 25 3d 30  |%./.. ./... B%=0|
00000fe0  20 b8 20 31 35 0d 2f bc  0e e3 20 44 25 3d 30 20  | . 15./... D%=0 |
00000ff0  b8 20 37 0d 2f c6 37 e7  20 28 41 25 3f 42 25 20  |. 7./.7. (A%?B% |
00001000  80 20 32 5e 28 37 2d 44  25 29 29 3c 3e 30 20 8c  |. 2^(7-D%))<>0 .|
00001010  20 53 25 28 44 25 2c 42  25 29 3d 31 20 8b 20 53  | S%(D%,B%)=1 . S|
00001020  25 28 44 25 2c 42 25 29  3d 30 0d 2f d0 19 f2 64  |%(D%,B%)=0./...d|
00001030  6f 74 28 44 25 2c 42 25  2c 53 25 28 44 25 2c 42  |ot(D%,B%,S%(D%,B|
00001040  25 29 29 0d 2f da 0a ed  44 25 2c 42 25 0d 2f e4  |%))./...D%,B%./.|
00001050  0f e3 20 42 25 3d 30 20  b8 20 31 35 0d 2f ee 0e  |.. B%=0 . 15./..|
00001060  e3 20 44 25 3d 30 20 b8  20 37 0d 2f f8 41 e7 20  |. D%=0 . 7./.A. |
00001070  28 3f 28 41 25 2b 42 25  2b 31 36 29 20 80 20 32  |(?(A%+B%+16) . 2|
00001080  5e 28 37 2d 44 25 29 29  3c 3e 30 20 8c 20 53 25  |^(7-D%))<>0 . S%|
00001090  28 44 25 2b 38 2c 42 25  29 3d 31 20 8b 20 53 25  |(D%+8,B%)=1 . S%|
000010a0  28 44 25 2b 38 2c 42 25  29 3d 30 0d 30 02 1d f2  |(D%+8,B%)=0.0...|
000010b0  64 6f 74 28 44 25 2b 38  2c 42 25 2c 53 25 28 44  |dot(D%+8,B%,S%(D|
000010c0  25 2b 38 2c 42 25 29 29  0d 30 0c 06 ed 2c 0d 30  |%+8,B%)).0...,.0|
000010d0  16 05 e1 0d 30 70 05 20  0d 30 7a 0d dd f2 70 75  |....0p. .0z...pu|
000010e0  74 28 41 25 29 0d 30 84  11 ea 20 42 25 2c 43 25  |t(A%).0... B%,C%|
000010f0  2c 44 25 2c 45 25 0d 31  38 05 20 0d 31 42 14 e3  |,D%,E%.18. .1B..|
00001100  20 42 25 3d 30 20 b8 20  31 35 3a 43 25 3d 30 0d  | B%=0 . 15:C%=0.|
00001110  31 4c 0e e3 20 44 25 3d  30 20 b8 20 37 0d 31 56  |1L.. D%=0 . 7.1V|
00001120  15 43 25 3d 43 25 2a 32  2b 53 25 28 44 25 2c 42  |.C%=C%*2+S%(D%,B|
00001130  25 29 0d 31 60 07 ed 44  25 0d 31 6a 0c 41 25 3f  |%).1`..D%.1j.A%?|
00001140  42 25 3d 43 25 0d 31 74  07 ed 42 25 0d 31 7e 14  |B%=C%.1t..B%.1~.|
00001150  e3 20 42 25 3d 30 20 b8  20 31 35 3a 43 25 3d 30  |. B%=0 . 15:C%=0|
00001160  0d 31 88 0f e3 20 44 25  3d 38 20 b8 20 31 35 0d  |.1... D%=8 . 15.|
00001170  31 92 15 43 25 3d 43 25  2a 32 2b 53 25 28 44 25  |1..C%=C%*2+S%(D%|
00001180  2c 42 25 29 0d 31 9c 05  ed 0d 31 a6 11 41 25 3f  |,B%).1....1..A%?|
00001190  28 42 25 2b 31 36 29 3d  43 25 0d 31 b0 05 ed 0d  |(B%+16)=C%.1....|
000011a0  31 b2 27 f2 64 69 73 70  28 63 68 25 2c 28 63 68  |1.'.disp(ch%,(ch|
000011b0  25 80 31 35 29 2a 31 36  2c 31 37 36 2b 28 63 68  |%.15)*16,176+(ch|
000011c0  25 80 34 38 29 29 0d 31  b4 07 ef 20 37 0d 31 ba  |%.48)).1... 7.1.|
000011d0  05 e1 0d 3a 98 05 20 0d  3a a2 05 20 0d 3a ac 05  |...:.. .:.. .:..|
000011e0  20 0d 3a b6 05 20 0d 3a  c0 0a dd f2 69 6e 69 74  | .:.. .:....init|
000011f0  0d 3a ca 0e e3 20 58 25  3d 30 20 b8 20 36 0d 3a  |.:... X%=0 . 6.:|
00001200  d4 0e e3 20 59 25 3d 30  20 b8 20 35 0d 3a de 12  |... Y%=0 . 5.:..|
00001210  64 72 77 25 28 58 25 2c  59 25 29 3d 2d 31 0d 3a  |drw%(X%,Y%)=-1.:|
00001220  e8 05 ed 0d 3a f2 05 ed  0d 3a fc 0f e3 20 58 25  |....:....:... X%|
00001230  3d 30 20 b8 20 33 31 0d  3b 06 0d 74 65 6d 70 3f  |=0 . 31.;..temp?|
00001240  58 25 3d 30 0d 3b 10 05  ed 0d 3b 1a 0a 6e 69 63  |X%=0.;....;..nic|
00001250  25 3d 30 0d 3b 24 15 e3  20 58 25 3d 30 20 b8 20  |%=0.;$.. X%=0 . |
00001260  31 30 32 30 20 88 20 34  0d 3b 2e 1b 63 68 61 72  |1020 . 4.;..char|
00001270  73 31 21 58 25 3d 30 3a  63 68 61 72 73 32 21 58  |s1!X%=0:chars2!X|
00001280  25 3d 30 0d 3b 38 05 ed  0d 3b 42 05 e1 0d 3c 8c  |%=0.;8...;B...<.|
00001290  05 20 0d 3c 96 11 dd f2  6c 6f 61 64 28 41 24 2c  |. .<....load(A$,|
000012a0  57 25 29 0d 3c a0 11 e7  20 57 25 3d 31 20 8c 20  |W%).<... W%=1 . |
000012b0  8d 64 70 7c 0d 3c aa 20  f2 6f 73 63 6c 69 28 22  |.dp|.<. .oscli("|
000012c0  4c 2e 22 2b 41 24 2b 22  20 22 2b c3 7e 63 68 61  |L."+A$+" "+.~cha|
000012d0  72 73 31 29 0d 3c af 08  ef 20 32 36 0d 3c b4 37  |rs1).<... 26.<.7|
000012e0  f1 8a 77 6e 6c 78 25 28  32 29 2b 37 2c 77 6e 74  |..wnlx%(2)+7,wnt|
000012f0  79 25 28 32 29 29 3b 22  49 63 6f 6e 20 66 69 6c  |y%(2));"Icon fil|
00001300  65 3a 22 41 24 3b c4 31  34 2d a9 41 24 2c 22 20  |e:"A$;.14-.A$," |
00001310  22 29 3b 0d 3c be 0b f2  72 65 64 72 61 77 0d 3c  |");.<...redraw.<|
00001320  c8 05 e1 0d 3c f0 05 20  0d 3c fa 20 f2 6f 73 63  |....<.. .<. .osc|
00001330  6c 69 28 22 4c 2e 22 2b  41 24 2b 22 20 22 2b c3  |li("L."+A$+" "+.|
00001340  7e 63 68 61 72 73 32 29  0d 3c fb 08 ef 20 32 36  |~chars2).<... 26|
00001350  0d 3c ff 0b f2 72 65 64  72 61 77 0d 3d 04 05 e1  |.<...redraw.=...|
00001360  0d 3e 80 05 20 0d 3e 8a  27 20 20 20 20 20 20 20  |.>.. .>.'       |
00001370  20 52 65 64 72 61 77 20  64 72 61 77 69 6e 67 20  | Redraw drawing |
00001380  61 72 65 61 20 69 6e 20  66 75 6c 6c 0d 3e 94 05  |area in full.>..|
00001390  20 0d 3e 9e 0c dd f2 72  65 64 72 61 77 0d 3e a8  | .>....redraw.>.|
000013a0  0e ea 20 41 25 2c 42 25  2c 43 25 0d 3e b2 19 e3  |.. A%,B%,C%.>...|
000013b0  20 42 25 3d 30 20 b8 20  36 3a e3 20 43 25 3d 30  | B%=0 . 6:. C%=0|
000013c0  20 b8 20 35 0d 3e b7 31  e7 20 64 72 77 25 28 42  | . 5.>.1. drw%(B|
000013d0  25 2c 43 25 29 3e 3d 30  20 8c 20 f2 64 65 66 69  |%,C%)>=0 . .defi|
000013e0  6e 65 28 a4 61 64 64 28  64 72 77 25 28 42 25 2c  |ne(.add(drw%(B%,|
000013f0  43 25 29 29 29 0d 3e bc  1b f2 64 72 77 28 42 25  |C%))).>...drw(B%|
00001400  2c 43 25 2c 64 72 77 25  28 42 25 2c 43 25 29 29  |,C%,drw%(B%,C%))|
00001410  0d 3e c6 05 ed 0d 3e d0  05 ed 0d 3e da 05 e1 0d  |.>....>....>....|
00001420  46 50 05 20 0d 46 5a 0a  dd f2 77 5f 6c 73 0d 46  |FP. .FZ...w_ls.F|
00001430  64 27 f2 77 69 6e 64 6f  77 28 35 2c 32 34 2c 35  |d'.window(5,24,5|
00001440  2c 33 38 2c 31 2c 22 20  20 20 4c 6f 61 64 2f 53  |,38,1,"   Load/S|
00001450  61 76 65 22 29 0d 46 6e  13 f1 27 27 22 4c 6f 61  |ave").Fn..''"Loa|
00001460  64 20 69 63 6f 6e 73 22  0d 46 78 10 f1 22 4c 6f  |d icons".Fx.."Lo|
00001470  61 64 20 61 6c 74 2e 22  0d 46 82 12 f1 22 53 61  |ad alt.".F..."Sa|
00001480  76 65 20 69 63 6f 6e 73  22 3b 0d 46 8c 0a 77 5f  |ve icons";.F..w_|
00001490  6c 73 3d b9 0d 46 91 08  ef 20 32 36 0d 46 96 05  |ls=..F... 26.F..|
000014a0  e1 0d 46 a0 05 20 0d 46  b4 0a dd f2 77 5f 6d 65  |..F.. .F....w_me|
000014b0  0d 46 be 25 f2 77 69 6e  64 6f 77 28 35 2c 32 34  |.F.%.window(5,24|
000014c0  2c 35 2c 33 38 2c 31 2c  22 20 20 4d 65 73 73 61  |,5,38,1,"  Messa|
000014d0  67 65 73 22 29 0d 46 c8  0a 77 5f 6c 73 3d a3 0d  |ges").F..w_ls=..|
000014e0  46 d2 05 e1 0d 4e 20 05  20 0d 4e 2a 0a dd f2 64  |F....N . .N*...d|
000014f0  65 73 6b 0d 4e 34 09 2a  44 45 53 4b 0d 4e 3e 25  |esk.N4.*DESK.N>%|
00001500  f2 77 69 6e 64 6f 77 28  30 2c 31 2c 31 38 2c 31  |.window(0,1,18,1|
00001510  36 2c 31 2c 22 20 20 49  63 6f 6e 20 4e 6f 2e 22  |6,1,"  Icon No."|
00001520  29 0d 4e 48 1b f2 77 69  6e 64 6f 77 28 31 2c 31  |).NH..window(1,1|
00001530  39 2c 34 2c 32 32 2c 31  2c 22 22 29 0d 4e 52 2d  |9,4,22,1,"").NR-|
00001540  f2 77 69 6e 64 6f 77 28  32 2c 31 2c 32 35 2c 33  |.window(2,1,25,3|
00001550  32 2c 32 30 2c 22 20 20  20 20 20 20 20 20 20 4e  |2,20,"         N|
00001560  6f 20 69 63 6f 6e 73 22  29 0d 4e 5c 1c f2 77 69  |o icons").N\..wi|
00001570  6e 64 6f 77 28 33 2c 31  2c 33 30 2c 33 32 2c 32  |ndow(3,1,30,32,2|
00001580  37 2c 22 22 29 0d 4e 61  1c f2 77 69 6e 64 6f 77  |7,"").Na..window|
00001590  28 34 2c 31 39 2c 31 38  2c 33 32 2c 37 2c 22 22  |(4,19,18,32,7,""|
000015a0  29 0d 4e 62 09 f2 77 5f  6d 65 0d 4e 66 08 ef 20  |).Nb..w_me.Nf.. |
000015b0  32 36 0d 4e 70 19 ef 20  32 33 2c 31 33 32 2c 2d  |26.Np.. 23,132,-|
000015c0  31 3b 2d 31 3b 2d 31 3b  2d 31 3b 0d 4e 7a 15 ef  |1;-1;-1;-1;.Nz..|
000015d0  20 32 33 2c 31 2c 30 3b  30 3b 30 3b 30 3b 30 3b  | 23,1,0;0;0;0;0;|
000015e0  0d 4e 84 12 f2 69 63 6f  6e 28 33 32 2c 33 36 2c  |.N...icon(32,36,|
000015f0  37 29 0d 4e 86 13 f2 69  63 6f 6e 28 33 33 2c 33  |7).N...icon(33,3|
00001600  36 2c 32 38 29 0d 4e 8e  0b f2 72 65 64 72 61 77  |6,28).N...redraw|
00001610  0d 4e de 05 e1 0d 4e e8  05 20 0d 4e f2 0e dd 20  |.N....N.. .N... |
00001620  a4 69 6e 77 28 77 25 29  0d 4e fc 49 e7 20 b1 3e  |.inw(w%).N.I. .>|
00001630  3d 77 6e 6c 78 25 28 77  25 29 20 80 20 b1 3c 3d  |=wnlx%(w%) . .<=|
00001640  77 6e 72 78 25 28 77 25  29 20 80 20 bc 3e 3d 77  |wnrx%(w%) . .>=w|
00001650  6e 74 79 25 28 77 25 29  20 80 20 bc 3c 3d 77 6e  |nty%(w%) . .<=wn|
00001660  62 79 25 28 77 25 29 20  8c 20 3d b9 20 8b 20 3d  |by%(w%) . =. . =|
00001670  a3 0d 4f 1a 05 20 0d 4f  24 0e dd 20 a4 63 68 6b  |..O.. .O$.. .chk|
00001680  69 63 6f 6e 0d 4f 29 11  ea 20 4e 25 2c 58 25 3a  |icon.O).. N%,X%:|
00001690  4e 25 3d 2d 31 0d 4f 2e  13 e3 20 58 25 3d 30 20  |N%=-1.O... X%=0 |
000016a0  b8 20 6e 69 63 25 2d 31  0d 4f 38 55 e7 20 28 b1  |. nic%-1.O8U. (.|
000016b0  3d 69 63 78 25 28 58 25  29 20 84 20 b1 3d 69 63  |=icx%(X%) . .=ic|
000016c0  78 25 28 58 25 29 2b 31  29 20 80 20 28 bc 3d 69  |x%(X%)+1) . (.=i|
000016d0  63 79 25 28 58 25 29 20  84 20 bc 3d 69 63 79 25  |cy%(X%) . .=icy%|
000016e0  28 58 25 29 2b 31 29 20  8c 20 4e 25 3d 69 63 6e  |(X%)+1) . N%=icn|
000016f0  25 28 58 25 29 3a 58 25  3d 6e 69 63 25 0d 4f 42  |%(X%):X%=nic%.OB|
00001700  05 ed 0d 4f 4c 07 3d 4e  25 0d 50 14 05 20 0d 50  |...OL.=N%.P.. .P|
00001710  1e 23 dd f2 77 69 6e 64  6f 77 28 77 25 2c 6c 78  |.#..window(w%,lx|
00001720  25 2c 62 79 25 2c 72 78  25 2c 74 79 25 2c 41 24  |%,by%,rx%,ty%,A$|
00001730  29 0d 50 20 11 77 6e 6c  78 25 28 77 25 29 3d 6c  |).P .wnlx%(w%)=l|
00001740  78 25 0d 50 22 11 77 6e  62 79 25 28 77 25 29 3d  |x%.P".wnby%(w%)=|
00001750  62 79 25 0d 50 23 11 77  6e 6c 78 25 28 77 25 29  |by%.P#.wnlx%(w%)|
00001760  3d 6c 78 25 0d 50 24 11  77 6e 72 78 25 28 77 25  |=lx%.P$.wnrx%(w%|
00001770  29 3d 72 78 25 0d 50 26  11 77 6e 74 79 25 28 77  |)=rx%.P&.wnty%(w|
00001780  25 29 3d 74 79 25 0d 50  28 41 e7 20 41 24 3d 22  |%)=ty%.P(A. A$="|
00001790  22 20 8c 20 f2 6f 73 63  6c 69 28 22 57 49 4e 44  |" . .oscli("WIND|
000017a0  4f 57 20 22 2b c3 6c 78  25 2b 22 2c 22 2b c3 62  |OW "+.lx%+","+.b|
000017b0  79 25 2b 22 2c 22 2b c3  72 78 25 2b 22 2c 22 2b  |y%+","+.rx%+","+|
000017c0  c3 74 79 25 29 3a e1 0d  50 32 3c f2 6f 73 63 6c  |.ty%):..P2<.oscl|
000017d0  69 28 22 57 49 4e 44 4f  57 20 22 2b c3 6c 78 25  |i("WINDOW "+.lx%|
000017e0  2b 22 2c 22 2b c3 62 79  25 2b 22 2c 22 2b c3 72  |+","+.by%+","+.r|
000017f0  78 25 2b 22 2c 22 2b c3  74 79 25 2b 22 2c 22 2b  |x%+","+.ty%+","+|
00001800  41 24 29 0d 50 3c 05 e1  0d 50 46 05 20 0d 50 50  |A$).P<...PF. .PP|
00001810  14 dd f2 69 63 6f 6e 28  4e 25 2c 58 25 2c 59 25  |...icon(N%,X%,Y%|
00001820  29 0d 50 5a 1f 69 63 78  25 28 6e 69 63 25 29 3d  |).PZ.icx%(nic%)=|
00001830  58 25 3a 69 63 6e 25 28  6e 69 63 25 29 3d 4e 25  |X%:icn%(nic%)=N%|
00001840  0d 50 64 11 69 63 79 25  28 6e 69 63 25 29 3d 59  |.Pd.icy%(nic%)=Y|
00001850  25 0d 50 6e 35 f2 6f 73  63 6c 69 28 22 49 43 4f  |%.Pn5.oscli("ICO|
00001860  4e 20 22 2b c3 4e 25 2b  22 2c 22 2b c3 58 25 2b  |N "+.N%+","+.X%+|
00001870  22 2c 22 2b c3 59 25 29  3a 6e 69 63 25 3d 6e 69  |","+.Y%):nic%=ni|
00001880  63 25 2b 31 3a e1 0d 50  78 05 20 0d 50 82 0f dd  |c%+1:..Px. .P...|
00001890  f2 6f 73 63 6c 69 28 41  24 29 0d 50 8c 0c 24 26  |.oscli(A$).P..$&|
000018a0  37 30 30 3d 41 24 0d 50  96 0b ea 20 58 25 2c 59  |700=A$.P... X%,Y|
000018b0  25 0d 50 a0 15 58 25 3d  30 3a 59 25 3d 37 3a d6  |%.P..X%=0:Y%=7:.|
000018c0  20 26 46 46 46 37 0d 50  aa 05 e1 0d 50 dc 05 20  | &FFF7.P....P.. |
000018d0  0d 50 e6 13 dd f2 64 72  77 28 58 25 2c 59 25 2c  |.P....drw(X%,Y%,|
000018e0  49 25 29 0d 50 e7 23 e7  20 58 25 3c 30 20 84 20  |I%).P.#. X%<0 . |
000018f0  58 25 3e 36 20 84 20 59  25 3c 30 20 84 20 59 25  |X%>6 . Y%<0 . Y%|
00001900  3e 35 20 8c 20 e1 0d 50  eb 12 64 72 77 25 28 58  |>5 . ..P..drw%(X|
00001910  25 2c 59 25 29 3d 49 25  0d 50 f0 24 ef 20 33 31  |%,Y%)=I%.P.$. 31|
00001920  2c 58 25 2a 32 2b 77 6e  6c 78 25 28 34 29 2c 59  |,X%*2+wnlx%(4),Y|
00001930  25 2a 32 2b 77 6e 74 79  25 28 34 29 0d 50 fa 16  |%*2+wnty%(4).P..|
00001940  e7 20 49 25 3d 2d 31 20  8c 20 2a 49 43 4f 4e 20  |. I%=-1 . *ICON |
00001950  39 33 0d 50 fc 15 e7 20  49 25 3e 3d 30 20 8c 20  |93.P... I%>=0 . |
00001960  2a 49 43 4f 4e 20 30 0d  50 ff 08 ef 20 32 36 0d  |*ICON 0.P... 26.|
00001970  51 04 05 e1 0d 75 30 05  20 0d 75 3a 0a dd f2 69  |Q....u0. .u:...i|
00001980  6e 69 74 0d 75 44 0a 6e  69 63 25 3d 30 0d 75 94  |nit.uD.nic%=0.u.|
00001990  05 e1 0d 75 f8 05 20 0d  76 02 0e dd f2 67 65 74  |...u.. .v....get|
000019a0  5f 63 6f 72 64 0d 76 0c  0e d6 20 67 65 74 5f 63  |_cord.v... get_c|
000019b0  6f 72 64 0d 76 11 0f dd  f2 67 65 74 5f 63 6f 72  |ord.v....get_cor|
000019c0  64 31 0d 76 16 14 4d 58  25 3d 21 26 37 30 20 80  |d1.v..MX%=!&70 .|
000019d0  20 26 46 46 46 46 0d 76  20 0c 4d 59 25 3d 3f 26  | &FFFF.v .MY%=?&|
000019e0  37 32 0d 76 2a 05 e1 0d  76 34 05 20 0d 76 3e 0f  |72.v*...v4. .v>.|
000019f0  dd a4 73 63 61 6e 5f 6b  65 79 73 0d 76 48 15 3d  |..scan_keys.vH.=|
00001a00  28 3f 26 46 45 36 30 20  80 26 45 30 29 2f 33 32  |(?&FE60 .&E0)/32|
00001a10  0d 76 52 05 20 0d 76 5c  05 20 0d 76 66 0d dd a4  |.vR. .v\. .vf...|
00001a20  67 65 74 5f 69 6e 70 0d  76 70 08 ea 20 4b 25 0d  |get_inp.vp.. K%.|
00001a30  76 7a 05 f5 0d 76 84 0e  d6 20 6d 6f 76 65 5f 63  |vz...v... move_c|
00001a40  75 72 0d 76 8e 11 4b 25  3d a4 73 63 61 6e 5f 6b  |ur.v..K%=.scan_k|
00001a50  65 79 73 0d 76 98 09 fd  4b 25 3c 37 0d 76 a2 0e  |eys.v...K%<7.v..|
00001a60  f2 67 65 74 5f 63 6f 72  64 31 0d 76 ac 07 3d 4b  |.get_cord1.v..=K|
00001a70  25 0d 79 18 05 20 0d 79  22 0d dd f2 65 72 72 28  |%.y.. .y"...err(|
00001a80  41 24 29 0d 79 27 07 ef  20 37 0d 79 2c 09 f2 77  |A$).y'.. 7.y,..w|
00001a90  5f 6d 65 0d 79 36 09 f1  27 27 41 24 0d 79 40 16  |_me.y6..''A$.y@.|
00001aa0  f1 22 50 72 65 73 73 20  61 20 62 75 74 74 6f 6e  |."Press a button|
00001ab0  22 3b 0d 79 4a 0c f5 fd  ac a6 2d 31 32 39 0d 79  |";.yJ.....-129.y|
00001ac0  54 09 f2 77 5f 6d 65 0d  79 5e 0a ef 20 32 36 3a  |T..w_me.y^.. 26:|
00001ad0  e1 0d 7d 00 05 20 0d 7d  0a 09 ee 20 85 20 87 0d  |..}.. .}... . ..|
00001ae0  7d 14 07 ef 20 37 0d 7d  1e 25 f2 77 69 6e 64 6f  |}... 7.}.%.windo|
00001af0  77 28 35 2c 32 34 2c 35  2c 33 38 2c 31 2c 22 20  |w(5,24,5,38,1," |
00001b00  20 4d 65 73 73 61 67 65  73 22 29 0d 7d 28 07 f1  | Messages").}(..|
00001b10  27 3b 0d 7d 2d 13 ef 20  32 33 2c 31 2c 30 3b 30  |';.}-.. 23,1,0;0|
00001b20  3b 30 3b 30 3b 0d 7d 32  05 f6 0d 7d 37 0b f5 fd  |;0;0;.}2...}7...|
00001b30  a6 2d 31 32 39 0d 7d 3c  17 f1 27 22 50 72 65 73  |.-129.}<..'"Pres|
00001b40  73 20 61 20 62 75 74 74  6f 6e 22 3b 0d 7d 46 0c  |s a button";.}F.|
00001b50  f5 fd ac a6 2d 31 32 39  0d 7d 50 0d f2 77 5f 6d  |....-129.}P..w_m|
00001b60  65 3a ef 32 36 0d 7d 64  0a e5 20 8d 64 68 43 0d  |e:.26.}d.. .dhC.|
00001b70  ff                                                |.|
00001b71
DESIGN.m0
DESIGN.m1
DESIGN.m2
DESIGN.m4
DESIGN.m5