Home » Archimedes archive » Acorn Computing » 1994 04 subscription disc.adf » 9404s » PD/BACKDROP/!Stream/!RunImage

PD/BACKDROP/!Stream/!RunImage

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn Computing » 1994 04 subscription disc.adf » 9404s
Filename: PD/BACKDROP/!Stream/!RunImage
Read OK:
File size: 249C bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >adfs::Software.$.Disc002.!Stream.!RunImage
   20REM PD
   30REM 1992
   40
   50ON ERROR PROCtellemoff("Fatal error: (type="+STR$ERL+") "+REPORT$+" Re-run & try again."):SYS "Wimp_CloseDown":END
   60REM errors in this bit of code cannot be dealt with - quit immediately
   70REM If you try, templates might not be loaded, menus not defined etc.
   80DIM q% 400,useful% 700,ind% &200,ind2% &200,menu% &80,pointer% 400
   90DIM icontext% 36,iconvalid% 36
  100edited%=FALSE
  110$q%="TASK"
  120SYS "Wimp_Initialise",200,!q%,"Stream" TO ,,taskh%
  130SYS "Interface_Initialise",,taskh%:REM claim Interface pointers
  140SYS "Wimp_OpenTemplate",,"<Stream$Dir>.Templates"
  150SYS "Wimp_LoadTemplate",,q%,ind%,ind%+&200,-1,"info",0
  160SYS "Wimp_CreateWindow",,q% TO infowind%
  170SYS "Wimp_LoadTemplate",,q%,ind2%,ind2%+&200,-1,"moreinfo",0
  180SYS "Wimp_CreateWindow",,q% TO moreinfo%
  190SYS "Wimp_CloseTemplate"
  200PROCmenu:REM create menus
  210
  220icon%=FNiconbar("!Stream","",-1):REM icon on iconbar
  230                                    REM -1 = Utility (RHS)
  240                                    REM -2 = Service (LHS)
  250
  260quit%=FALSE:REM Nothing happened yet!
  270
  280ON ERROR IF FNerror("Unexpected error: "+REPORT$+" (int. error code "+STR$ERL+")  Shall I quit ?",3)=1 SYS "Interface_CloseDown",,taskh%:SYS "Wimp_CloseDown":END
  290REM Error handler drops through to wimp_poll loop, AFTER wimp_initialise
  300SYS "OS_ReadMonotonicTime" TO ot%:REM get ready for wimp_poll,
  310REPEAT
  320SYS "Wimp_PollIdle",,q%,ot% TO reason%:REM and poll the wimp.
  330SYS "Interface_Poll",reason%,,taskh%:REM Ensure pointer up to date
  340SYS "OS_ReadMonotonicTime" TO nt%
  350WHILE nt%>ot%:ot%+=1:ENDWHILE
  360CASE reason% OF
  370WHEN 1     : PROCredraw
  380WHEN 2     : SYS "Wimp_OpenWindow",,q%
  390WHEN 3     : SYS "Wimp_CloseWindow",,q%
  400WHEN 6     : PROCcheckmouse
  410WHEN 7     : f$=FNlastbit(f$):PROCdragend
  420WHEN 9     : PROCprocess_menu
  430WHEN 17,18 : PROCmessage
  440ENDCASE
  450UNTIL quit%
  460SYS "Interface_CloseDown",,taskh%
  470SYS "Wimp_CloseDown":END:REM leave gracefully
  480
  490DEF FNiconbar(v$,t$,handle%)
  500LOCAL i%
  510IF handle%=-2 THEN                     :REM Service or Utility?
  520$iconvalid%="S"+v$:$icontext%=t$
  530ENDIF
  540q%!0=handle%
  550q%!4=0
  560IF handle%=-1 q%!8=0 ELSE q%!8=-16     :REM Set up proper co-ords
  570IF handle%=-1 q%!12=68 ELSE q%!12=78
  580IF handle%=-1 q%!16=96 ELSE q%!16=90
  590IF handle%=-1 THEN                     :REM And proper icon flags
  600q%!20=&2002
  610ELSE
  620q%!20=%00010111000000000011000100101011
  630ENDIF
  640IF handle%=-1 THEN                     :REM Indirected?
  650$(q%+24)=v$
  660ELSE
  670q%!24=icontext%
  680q%!28=iconvalid%
  690q%!32=LEN($icontext%)+1
  700ENDIF
  710SYS "Wimp_CreateIcon",,q% TO i%        :REM And draw the icon
  720=i%
  730
  740DEF PROCmessage
  750yr%=q%!8
  760CASE (q%!16) OF
  770WHEN 0    : quit%=TRUE:REM Message_Quit ?
  780WHEN 2    : PROCds:REM Message_DataSave ?
  790WHEN 3    : PROCdl:REM Message_DataLoad ?
  800WHEN 5    : PROCdo:REM Message_DataOpen ?
  810WHEN 8    : PROCpq:REM Message_PreQuit ?
  820WHEN &502 : PROCsendhelp:REM Message_Help ?
  830ENDCASE
  840ENDPROC
  850
  860DEF PROCcheckmouse
  870handle=(q%!12)
  880CASE (q%!12) OF
  890WHEN -2:REM iconbar ?
  900CASE (q%!8) OF
  910WHEN 4 : REM Select ?
  920WHEN 2 : SYS "Wimp_CreateMenu",,menu%,!q%-64,176:REM Menu ?
  930WHEN 1 : REM Adjust ?
  940ENDCASE
  950WHEN infowind%:REM And again...
  960CASE (q%!8) OF
  970WHEN 4 : CASE q%!16 OF
  980WHEN 9 : PROCslabicon:SYS "Wimp_CreateMenu",,-1:PROCopenup(moreinfo%,240,762,800,600)
  990ENDCASE
 1000ENDCASE
 1010WHEN moreinfo%
 1020CASE q%!8 OF
 1030WHEN 4 : CASE q%!16 OF
 1040WHEN 14 : PROCslabicon:PROCshut(moreinfo%)
 1050ENDCASE
 1060ENDCASE
 1070WHEN saveas%
 1080CASE q%!8 OF
 1090WHEN 4 : CASE q%!16 OF
 1100WHEN 1 : PROCslabicon:f$=FNgeticondata(saveas%,0):PROCquicksave
 1110WHEN 3 : f$=FNgeticondata(saveas%,0):PROCdragbox(saveas%,2)
 1120ENDCASE
 1130ENDCASE
 1140ENDCASE
 1150ENDPROC
 1160
 1170DEF PROCmenu
 1180REM Setup menus and menu block
 1190P%=menu%
 1200flags=&7000021
 1210PROCmenu_header("Stream",8)
 1220PROCmenu_item(&00,infowind%,flags,"Info")
 1230PROCmenu_item(&80,-1,flags,"Quit")
 1240ENDPROC
 1250
 1260DEF PROCmenu_header(T$,w)
 1270$P%=T$
 1280P%!12=&70207
 1290P%!16=w*16
 1300P%!20=40
 1310P%!24=0
 1320P%+=28
 1330ENDPROC
 1340
 1350DEF PROCmenu_item(A%,B%,C%,T$)
 1360P%!0=A%
 1370P%!4=B%
 1380P%!8=C%
 1390$(P%+12)=T$
 1400P%+=24
 1410ENDPROC
 1420
 1430DEF FNerror(e$,b%):!q%=0:$(q%+4)=e$+CHR$0
 1440SYS "Wimp_ReportError",q%,b%,"Stream" TO ,b%
 1450=b%
 1460
 1470DEF PROCdl
 1480LOCAL f$,T%
 1490f$=STRING$(250," "):f$="":T%=q%+44
 1500WHILE ?T%<>0:f$+=CHR$?T%:T%+=1:ENDWHILE
 1510CASE q%!40 OF
 1520WHEN &2000 : IF FNlastbit(f$)="!PinBoard" THEN PROCstream(f$)
 1530ENDCASE
 1540q%!12=q%!8:q%!16=4:SYS "Wimp_SendMessage",17,q%
 1550ENDPROC
 1560
 1570DEF PROCdo
 1580LOCAL f$,T%
 1590f$=STRING$(250," "):f$="":f$=FNrtoz(q%+44)
 1600CASE q%!40 OF
 1610OTHERWISE : ENDPROC
 1620ENDCASE
 1630q%!12=q%!8:q%!16=4:SYS "Wimp_SendMessage",17,q%
 1640ENDPROC
 1650
 1660DEF PROCredraw
 1670SYS "Wimp_RedrawWindow",,q% TO flag
 1680WHILE flag<>0
 1690SYS "Interface_Render3dWindow",,q%:REM Border all icons in window
 1700SYS "Wimp_GetRectangle",,q% TO flag
 1710ENDWHILE
 1720ENDPROC
 1730
 1740DEF PROCprocess_menu
 1750CASE handle OF
 1760WHEN -2
 1770CASE q%!0 OF
 1780WHEN 1 : IF edited%=TRUE THEN
 1790          IF FNok("File(s) edited but not saved. Really quit ?") THEN
 1800           quit%=TRUE
 1810          ELSE
 1820           quit%=FALSE
 1830          ENDIF
 1840         ELSE
 1850          IF edited%=FALSE THEN
 1860           quit%=TRUE
 1870          ENDIF
 1880         ENDIF
 1890ENDCASE
 1900ENDCASE
 1910ENDPROC
 1920
 1930DEF PROCopenup(handle,x,y,w,h)
 1940q%!0=handle
 1950q%!4=x:q%!8=y-h
 1960q%!12=x+w:q%!16=y
 1970q%!20=0:q%!24=0
 1980q%!28=-1
 1990SYS "Wimp_OpenWindow",,q%
 2000ENDPROC
 2010
 2020DEF PROCslabicon
 2030SYS "Interface_SlabButton",,q%:REM Slab in...
 2040q%!8=0
 2050SYS "Interface_SlabButton",,q%:REM ...and out
 2060ENDPROC
 2070
 2080DEF PROCshut(h%)
 2090pointer%!0=h%:SYS "Wimp_CloseWindow",,pointer%
 2100ENDPROC
 2110
 2120DEF PROCsendhelp
 2130q%!12=q%!8:q%!16=&503:help%=q%+20
 2140help%=FNhelp(q%!32,q%!36,help%):IF help%=0 ENDPROC:REM Interface help ?
 2150?help%=0:REM No, so send application help
 2160!q%=(help%+4-q%)ANDNOT3:REM Setup help block
 2170SYS "Wimp_SendMessage",17,q%,q%!4:REM and send it
 2180ENDPROC
 2190
 2200DEF FNhelp(window%,icon%,to%)
 2210$to%=""
 2220CASE window% OF
 2230 WHEN -2 : REM iconbar ?
 2240 CASE icon% OF
 2250  WHEN icon% : REM my icon ?
 2260  $to%="This is the Stream icon.|MDrag your copy of !PinBoard here to streamline it."
 2270 ENDCASE
 2280 WHEN infowind% : REM info window ?
 2290 CASE icon% OF
 2300  WHEN -1,0,1,2,3,4,5,6,7,8 : REM not over 'Click here...' icon ?
 2310  $to%="This is the Info window.|MIt provides information on Stream."
 2320  OTHERWISE : SYS "Interface_SendHelp",,q%:=0:REM Send Interface help
 2330 ENDCASE
 2340 WHEN moreinfo% : REM 'About the Author' window ?
 2350 CASE icon% OF
 2360  WHEN -1,0,1,2,3,4,5,6,7,8,9,10,11,12,13 : REM not over close icon ?
 2370  $to%="This is a secondary info window.|MIt gives information on the Author."
 2380  OTHERWISE : SYS "Interface_SendHelp",,q%:=0:REM Send Interface help
 2390 ENDCASE
 2400 WHEN saveas% : REM 'Save as:' window ?
 2410 CASE icon% OF
 2420  WHEN -1 : REM over work area ?
 2430  $to%="This is the 'Save' window.|MIt is used to save a file."
 2440  OTHERWISE : SYS "Interface_SendHelp",,q%:=0:REM Send Interface help
 2450 ENDCASE
 2460ENDCASE
 2470=to%+LEN($to%)
 2480
 2490DEF FNgeticondata(window%,icon%)
 2500pointer%!0=window%
 2510pointer%!4=icon%
 2520SYS "Wimp_GetIconState",,pointer%
 2530=$(pointer%!28)
 2540
 2550DEF PROCputicondata(window%,icon%,t$)
 2560pointer%!0=window%:pointer%!4=icon%
 2570SYS "Wimp_GetIconState",,pointer%
 2580$(pointer%!28)=t$
 2590pointer%!12=0:pointer%!8=0
 2600SYS "Wimp_SetIconState",,pointer%
 2610ENDPROC
 2620
 2630DEF PROCputiconsprite(window%,icon%,t$)
 2640pointer%!0=window%:pointer%!4=icon%
 2650SYS "Wimp_GetIconState",,pointer%
 2660SYS "Wimp_DeleteIcon",,pointer%
 2670pointer%!4=window%:$(pointer%+28)=t$
 2680pointer%+=4:SYS "Wimp_CreateIcon",,pointer%
 2690SYS "Wimp_ForceRedraw",pointer%!0,pointer%!4,pointer%!8,pointer%!12,pointer%!16
 2700pointer%-=4
 2710ENDPROC
 2720
 2730DEF PROCtellemoff(e$)
 2740er%=pointer%
 2750!er%=0
 2760$(er%+4)=e$+CHR$0
 2770SYS "Wimp_ReportError",er%,1,"Stream"
 2780ENDPROC
 2790
 2800DEF FNrtoz(T%):LOCAL q$:WHILE ?T%<>0:q$+=CHR$?T%:T%+=1:ENDWHILE:=q$
 2810
 2820DEF PROCpq
 2830IF edited% THEN
 2840IF NOT FNok("File(s) edited but not saved. Really quit ?"):PROCno_quit
 2850ENDIF
 2860ENDPROC
 2870
 2880DEF FNok(e$)
 2890er%=pointer%
 2900!er%=0
 2910$(er%+4)=e$+CHR$0
 2920SYS "Wimp_ReportError",er%,&17,"Message from !Stream" TO ,b%
 2930=(b%=1)
 2940
 2950DEF PROCno_quit
 2960q%!12=q%!8:q%!16=8:SYS "Wimp_SendMessage",17,q%,q%!4:ENDPROC
 2970
 2980DEF PROCdragend
 2990d%=pointer%
 3000SYS "Wimp_GetPointerInfo",,d%
 3010d%!32=d%!4                   :tt%=d%!32
 3020d%!28=!d%                    :te%=d%!28
 3030d%!24=d%!16                  :tf%=d%!24
 3040d%!20=d%!12                  :tw%=d%!20
 3050d%!16=1     :d%!12=0     :d%!36=0
 3060d%!40=0     :!d%=64      :$(d%+44)=f$
 3070SYS "Wimp_SendMessage",17,d%,d%!20,d%!24
 3080mr%=d%!8
 3090ENDPROC
 3100
 3110DEF FNlastbit(s$)
 3120WHILE INSTR(s$,":")>0
 3130s$=MID$(s$,INSTR(s$,":")+1)
 3140ENDWHILE
 3150WHILE INSTR(s$,".")>0
 3160s$=MID$(s$,INSTR(s$,".")+1)
 3170ENDWHILE
 3180=s$
 3190
 3200DEF PROCds
 3210PROCputicondata(saveas%,0,$(q%+44))
 3220f$=$(q%+44)
 3230PROCsd(&FFD)
 3240ENDPROC
 3250
 3260DEF PROCdragbox(w%,i%)
 3270d%=pointer%
 3280!d%=w%
 3290SYS "Wimp_GetWindowState",,d%
 3300ys%=d%!16-d%!8:x%=d%!4:y%=d%!8
 3310d%!4=i%
 3320SYS "Wimp_GetIconState",,d%
 3330f$=FNlastbit(f$)
 3340d%!8+=x%
 3350d%!12+=y%+ys%
 3360d%!16+=x%
 3370d%!20+=y%+ys%
 3380d%!24=0
 3390d%!28=0
 3400SYS "OS_ReadModeVariable",MODE,4 TO ,,h%:h%=FNextracth(h%)
 3410SYS "OS_ReadModeVariable",MODE,5 TO ,,v%:v%=FNextractv(v%)
 3420d%!32=(h%*2)
 3430d%!36=(v%*4)
 3440!d%=0
 3450d%!4=5
 3460SYS "Wimp_DragBox",,d%
 3470ENDPROC
 3480
 3490DEF PROCquicksave
 3500IF INSTR(f$,":")<1 AND INSTR(f$,".")<1 THEN
 3510PROCtellemoff("To save, drag icon to a directory viewer")
 3520ELSE
 3530PROCsd(&FFD)
 3540ENDIF
 3550ENDPROC
 3560
 3570DEF PROCsd(t%)
 3580d%=pointer%
 3590!d%=64
 3600d%!20=tw%
 3610d%!24=tf%
 3620d%!28=te%
 3630d%!32=tt%
 3640d%!12=yr%
 3650d%!16=3
 3660d%!36=0
 3670d%!40=t%
 3680$(d%+44)=f$
 3690SYS "Wimp_SendMessage",17,d%,d%!20
 3700SYS "OS_File",18,f$,t%
 3710SYS "Wimp_CreateMenu",,-1
 3720ENDPROC
 3730
 3740DEF FNextracth(a%)
 3750CASE a% OF
 3760 WHEN 0 : =1280
 3770 WHEN 1 : =640
 3780 WHEN 2 : =320
 3790 WHEN 3 : =160
 3800ENDCASE
 3810
 3820DEF FNextractv(a%)
 3830CASE a% OF
 3840 WHEN 1 : =512
 3850 WHEN 2 : =256
 3860ENDCASE
 3870
 3880DATA 3
 3890DATA !Help,Docs,ExtModls.Command.!Help,ExtModls.DirChange.!Help
 3900
 3910DEF PROCstream(f$)
 3920RESTORE 3880
 3930READ entries
 3940DIM file$(entries)
 3950FOR I=0 TO entries
 3960READ file$(I)
 3970NEXT
 3980FOR I=0 TO entries
 3990OSCLI("Wipe "+f$+"."+file$(I)+" ~c~vfr")
 4000NEXT
 4010ENDPROC

1� >adfs::Software.$.Disc002.!Stream.!RunImage
� PD

� 1992
(
2a� � �tellemoff("Fatal error: (type="+Þ+") "+�$+" Re-run & try again."):ș "Wimp_CloseDown":�
<H� errors in this bit of code cannot be dealt with - quit immediately
FG� If you try, templates might not be loaded, menus not defined etc.
PD� q% 400,useful% 700,ind% &200,ind2% &200,menu% &80,pointer% 400
Z � icontext% 36,iconvalid% 36
d
edited%=�
n$q%="TASK"
x4ș "Wimp_Initialise",200,!q%,"Stream" � ,,taskh%
�@ș "Interface_Initialise",,taskh%:� claim Interface pointers
�4ș "Wimp_OpenTemplate",,"<Stream$Dir>.Templates"
�9ș "Wimp_LoadTemplate",,q%,ind%,ind%+&200,-1,"info",0
�*ș "Wimp_CreateWindow",,q% � infowind%
�?ș "Wimp_LoadTemplate",,q%,ind2%,ind2%+&200,-1,"moreinfo",0
�*ș "Wimp_CreateWindow",,q% � moreinfo%
�ș "Wimp_CloseTemplate"
��menu:� create menus
�
�5icon%=�iconbar("!Stream","",-1):� icon on iconbar
�<                                    � -1 = Utility (RHS)
�<                                    � -2 = Service (LHS)
�
#quit%=�:� Nothing happened yet!

�� � � �error("Unexpected error: "+�$+" (int. error code "+Þ+")  Shall I quit ?",3)=1 ș "Interface_CloseDown",,taskh%:ș "Wimp_CloseDown":�
"J� Error handler drops through to wimp_poll loop, AFTER wimp_initialise
,>ș "OS_ReadMonotonicTime" � ot%:� get ready for wimp_poll,
6�
@=ș "Wimp_PollIdle",,q%,ot% � reason%:� and poll the wimp.
JCș "Interface_Poll",reason%,,taskh%:� Ensure pointer up to date
T#ș "OS_ReadMonotonicTime" � nt%
^ȕ nt%>ot%:ot%+=1:�
hȎ reason% �
r� 1     : �redraw
|&� 2     : ș "Wimp_OpenWindow",,q%
�'� 3     : ș "Wimp_CloseWindow",,q%
�� 6     : �checkmouse
�&� 7     : f$=�lastbit(f$):�dragend
�� 9     : �process_menu
�� 17,18 : �message
��
�� quit%
�$ș "Interface_CloseDown",,taskh%
�,ș "Wimp_CloseDown":�:� leave gracefully
�
�� �iconbar(v$,t$,handle%)
�� i%
�=� handle%=-2 �                     :� Service or Utility?
$$iconvalid%="S"+v$:$icontext%=t$
�
q%!0=handle%
&
q%!4=0
0?� handle%=-1 q%!8=0 � q%!8=-16     :� Set up proper co-ords
:$� handle%=-1 q%!12=68 � q%!12=78
D$� handle%=-1 q%!16=96 � q%!16=90
N?� handle%=-1 �                     :� And proper icon flags
Xq%!20=&2002
b�
l+q%!20=%00010111000000000011000100101011
v�
�5� handle%=-1 �                     :� Indirected?
�$(q%+24)=v$
��
�q%!24=icontext%
�q%!28=iconvalid%
�q%!32=�($icontext%)+1
��
�=ș "Wimp_CreateIcon",,q% � i%        :� And draw the icon
�=i%
�
�� �message
�yr%=q%!8
�Ȏ (q%!16) �
%� 0    : quit%=�:� Message_Quit ?
%� 2    : �ds:� Message_DataSave ?
%� 3    : �dl:� Message_DataLoad ?
 %� 5    : �do:� Message_DataOpen ?
*$� 8    : �pq:� Message_PreQuit ?
4'� &502 : �sendhelp:� Message_Help ?
>�
H�
R
\� �checkmouse
fhandle=(q%!12)
pȎ (q%!12) �
z� -2:� iconbar ?
�Ȏ (q%!8) �
�� 4 : � Select ?
�9� 2 : ș "Wimp_CreateMenu",,menu%,!q%-64,176:� Menu ?
�� 1 : � Adjust ?
��
�� infowind%:� And again...
�Ȏ (q%!8) �
�� 4 : Ȏ q%!16 �
�O� 9 : �slabicon:ș "Wimp_CreateMenu",,-1:�openup(moreinfo%,240,762,800,600)
��
��
�� moreinfo%
�
Ȏ q%!8 �
� 4 : Ȏ q%!16 �
%� 14 : �slabicon:�shut(moreinfo%)
�
$�
.
� saveas%
8
Ȏ q%!8 �
B� 4 : Ȏ q%!16 �
L9� 1 : �slabicon:f$=�geticondata(saveas%,0):�quicksave
V8� 3 : f$=�geticondata(saveas%,0):�dragbox(saveas%,2)
`�
j�
t�
~�
�
�� �menu
� � Setup menus and menu block
�P%=menu%
�flags=&7000021
��menu_header("Stream",8)
�*�menu_item(&00,infowind%,flags,"Info")
�#�menu_item(&80,-1,flags,"Quit")
��
�
�� �menu_header(T$,w)
�
$P%=T$
P%!12=&70207

P%!16=w*16
P%!20=40
P%!24=0
(
P%+=28
2�
<
F� �menu_item(A%,B%,C%,T$)
PP%!0=A%
ZP%!4=B%
dP%!8=C%
n$(P%+12)=T$
x
P%+=24
��
�
�'� �error(e$,b%):!q%=0:$(q%+4)=e$+�0
�.ș "Wimp_ReportError",q%,b%,"Stream" � ,b%
�=b%
�
�	� �dl
�� f$,T%
�f$=�250," "):f$="":T%=q%+44
�ȕ ?T%<>0:f$+=�?T%:T%+=1:�
�Ȏ q%!40 �
�6� &2000 : � �lastbit(f$)="!PinBoard" � �stream(f$)
��
2q%!12=q%!8:q%!16=4:ș "Wimp_SendMessage",17,q%
�

"	� �do
,� f$,T%
6&f$=�250," "):f$="":f$=�rtoz(q%+44)
@Ȏ q%!40 �
J	 : �
T�
^2q%!12=q%!8:q%!16=4:ș "Wimp_SendMessage",17,q%
h�
r
|
� �redraw
�%ș "Wimp_RedrawWindow",,q% � flag
�ȕ flag<>0
�Bș "Interface_Render3dWindow",,q%:� Border all icons in window
�%ș "Wimp_GetRectangle",,q% � flag
��
��
�
�� �process_menu
�Ȏ handle �
�� -2
�
Ȏ q%!0 �
�� 1 : � edited%=� �
�D          � �ok("File(s) edited but not saved. Really quit ?") �
           quit%=�
          �
           quit%=�
&          �
0         �
:          � edited%=� �
D           quit%=�
N          �
X         �
b�
l�
v�
�
�� �openup(handle,x,y,w,h)
�q%!0=handle
�q%!4=x:q%!8=y-h
�q%!12=x+w:q%!16=y
�q%!20=0:q%!24=0
�q%!28=-1
�ș "Wimp_OpenWindow",,q%
��
�
�� �slabicon
�.ș "Interface_SlabButton",,q%:� Slab in...
�
q%!8=0
.ș "Interface_SlabButton",,q%:� ...and out
�

 � �shut(h%)
*1pointer%!0=h%:ș "Wimp_CloseWindow",,pointer%
4�
>
H� �sendhelp
R%q%!12=q%!8:q%!16=&503:help%=q%+20
\Ahelp%=�help(q%!32,q%!36,help%):� help%=0 �:� Interface help ?
f+?help%=0:� No, so send application help
p*!q%=(help%+4-q%)��3:� Setup help block
z2ș "Wimp_SendMessage",17,q%,q%!4:� and send it
��
�
�� �help(window%,icon%,to%)
�$to%=""
�Ȏ window% �
� � -2 : � iconbar ?
� Ȏ icon% �
�  � icon% : � my icon ?
�Y  $to%="This is the Stream icon.|MDrag your copy of !PinBoard here to streamline it."
� �
�" � infowind% : � info window ?
� Ȏ icon% �
�@  � -1,0,1,2,3,4,5,6,7,8 : � not over 'Click here...' icon ?
	I  $to%="This is the Info window.|MIt provides information on Stream."
	>   : ș "Interface_SendHelp",,q%:=0:� Send Interface help
	 �
	$0 � moreinfo% : � 'About the Author' window ?
	. Ȏ icon% �
	8D  � -1,0,1,2,3,4,5,6,7,8,9,10,11,12,13 : � not over close icon ?
	BR  $to%="This is a secondary info window.|MIt gives information on the Author."
	L>   : ș "Interface_SendHelp",,q%:=0:� Send Interface help
	V �
	`& � saveas% : � 'Save as:' window ?
	j Ȏ icon% �
	t  � -1 : � over work area ?
	~C  $to%="This is the 'Save' window.|MIt is used to save a file."
	�>   : ș "Interface_SendHelp",,q%:=0:� Send Interface help
	� �
	��
	�=to%+�($to%)
	�
	�!� �geticondata(window%,icon%)
	�pointer%!0=window%
	�pointer%!4=icon%
	�$ș "Wimp_GetIconState",,pointer%
	�=$(pointer%!28)
	�
	�$� �puticondata(window%,icon%,t$)
'pointer%!0=window%:pointer%!4=icon%

$ș "Wimp_GetIconState",,pointer%
$(pointer%!28)=t$
pointer%!12=0:pointer%!8=0
($ș "Wimp_SetIconState",,pointer%
2�
<
F&� �puticonsprite(window%,icon%,t$)
P'pointer%!0=window%:pointer%!4=icon%
Z$ș "Wimp_GetIconState",,pointer%
d"ș "Wimp_DeleteIcon",,pointer%
n(pointer%!4=window%:$(pointer%+28)=t$
x.pointer%+=4:ș "Wimp_CreateIcon",,pointer%
�Rș "Wimp_ForceRedraw",pointer%!0,pointer%!4,pointer%!8,pointer%!12,pointer%!16
�pointer%-=4
��
�
�� �tellemoff(e$)
�er%=pointer%
�
!er%=0
�$(er%+4)=e$+�0
�(ș "Wimp_ReportError",er%,1,"Stream"
��
�
�3� �rtoz(T%):� q$:ȕ ?T%<>0:q$+=�?T%:T%+=1:�:=q$
�
	� �pq
� edited% �
C� � �ok("File(s) edited but not saved. Really quit ?"):�no_quit
"�
,�
6
@
� �ok(e$)
Jer%=pointer%
T
!er%=0
^$(er%+4)=e$+�0
h>ș "Wimp_ReportError",er%,&17,"Message from !Stream" � ,b%
r=(b%=1)
|
�� �no_quit
�9q%!12=q%!8:q%!16=8:ș "Wimp_SendMessage",17,q%,q%!4:�
�
�� �dragend
�d%=pointer%
� ș "Wimp_GetPointerInfo",,d%
�+d%!32=d%!4                   :tt%=d%!32
�+d%!28=!d%                    :te%=d%!28
�+d%!24=d%!16                  :tf%=d%!24
�+d%!20=d%!12                  :tw%=d%!20
�%d%!16=1     :d%!12=0     :d%!36=0
�)d%!40=0     :!d%=64      :$(d%+44)=f$
�+ș "Wimp_SendMessage",17,d%,d%!20,d%!24
mr%=d%!8
�

&� �lastbit(s$)
0ȕ �s$,":")>0
:s$=�s$,�s$,":")+1)
D�
Nȕ �s$,".")>0
Xs$=�s$,�s$,".")+1)
b�
l=s$
v
�	� �ds
�$�puticondata(saveas%,0,$(q%+44))
�f$=$(q%+44)
�
�sd(&FFD)
��
�
�� �dragbox(w%,i%)
�d%=pointer%
�
!d%=w%
� ș "Wimp_GetWindowState",,d%
�"ys%=d%!16-d%!8:x%=d%!4:y%=d%!8
�d%!4=i%
�ș "Wimp_GetIconState",,d%

f$=�lastbit(f$)

d%!8+=x%

d%!12+=y%+ys%

 
d%!16+=x%

*d%!20+=y%+ys%

4d%!24=0

>d%!28=0

H8ș "OS_ReadModeVariable",�,4 � ,,h%:h%=�extracth(h%)

R8ș "OS_ReadModeVariable",�,5 � ,,v%:v%=�extractv(v%)

\d%!32=(h%*2)

fd%!36=(v%*4)

p	!d%=0

z
d%!4=5

�ș "Wimp_DragBox",,d%

��

�

�� �quicksave

�� �f$,":")<1 � �f$,".")<1 �

�:�tellemoff("To save, drag icon to a directory viewer")

��

�
�sd(&FFD)

��

��

�

�
� �sd(t%)

�d%=pointer%

!d%=64

d%!20=tw%

d%!24=tf%
$
d%!28=te%
.
d%!32=tt%
8
d%!12=yr%
Bd%!16=3
Ld%!36=0
Vd%!40=t%
`$(d%+44)=f$
j%ș "Wimp_SendMessage",17,d%,d%!20
tș "OS_File",18,f$,t%
~ș "Wimp_CreateMenu",,-1
��
�
�� �extracth(a%)
�Ȏ a% �
� � 0 : =1280
� � 1 : =640
� � 2 : =320
� � 3 : =160
��
�
�� �extractv(a%)
�Ȏ a% �
 � 1 : =512

 � 2 : =256
�

(� 3
2@� !Help,Docs,ExtModls.Command.!Help,ExtModls.DirChange.!Help
<
F� �stream(f$)
P
� �ThO
Z
� entries
d� file$(entries)
n� I=0 � entries
x� file$(I)
��
�� I=0 � entries
�(�("Wipe "+f$+"."+file$(I)+" ~c~vfr")
��
��
�
00000000  0d 00 0a 31 f4 20 3e 61  64 66 73 3a 3a 53 6f 66  |...1. >adfs::Sof|
00000010  74 77 61 72 65 2e 24 2e  44 69 73 63 30 30 32 2e  |tware.$.Disc002.|
00000020  21 53 74 72 65 61 6d 2e  21 52 75 6e 49 6d 61 67  |!Stream.!RunImag|
00000030  65 0d 00 14 08 f4 20 50  44 0d 00 1e 0a f4 20 31  |e..... PD..... 1|
00000040  39 39 32 0d 00 28 04 0d  00 32 61 ee 20 85 20 f2  |992..(...2a. . .|
00000050  74 65 6c 6c 65 6d 6f 66  66 28 22 46 61 74 61 6c  |tellemoff("Fatal|
00000060  20 65 72 72 6f 72 3a 20  28 74 79 70 65 3d 22 2b  | error: (type="+|
00000070  c3 9e 2b 22 29 20 22 2b  f6 24 2b 22 20 52 65 2d  |..+") "+.$+" Re-|
00000080  72 75 6e 20 26 20 74 72  79 20 61 67 61 69 6e 2e  |run & try again.|
00000090  22 29 3a c8 99 20 22 57  69 6d 70 5f 43 6c 6f 73  |"):.. "Wimp_Clos|
000000a0  65 44 6f 77 6e 22 3a e0  0d 00 3c 48 f4 20 65 72  |eDown":...<H. er|
000000b0  72 6f 72 73 20 69 6e 20  74 68 69 73 20 62 69 74  |rors in this bit|
000000c0  20 6f 66 20 63 6f 64 65  20 63 61 6e 6e 6f 74 20  | of code cannot |
000000d0  62 65 20 64 65 61 6c 74  20 77 69 74 68 20 2d 20  |be dealt with - |
000000e0  71 75 69 74 20 69 6d 6d  65 64 69 61 74 65 6c 79  |quit immediately|
000000f0  0d 00 46 47 f4 20 49 66  20 79 6f 75 20 74 72 79  |..FG. If you try|
00000100  2c 20 74 65 6d 70 6c 61  74 65 73 20 6d 69 67 68  |, templates migh|
00000110  74 20 6e 6f 74 20 62 65  20 6c 6f 61 64 65 64 2c  |t not be loaded,|
00000120  20 6d 65 6e 75 73 20 6e  6f 74 20 64 65 66 69 6e  | menus not defin|
00000130  65 64 20 65 74 63 2e 0d  00 50 44 de 20 71 25 20  |ed etc...PD. q% |
00000140  34 30 30 2c 75 73 65 66  75 6c 25 20 37 30 30 2c  |400,useful% 700,|
00000150  69 6e 64 25 20 26 32 30  30 2c 69 6e 64 32 25 20  |ind% &200,ind2% |
00000160  26 32 30 30 2c 6d 65 6e  75 25 20 26 38 30 2c 70  |&200,menu% &80,p|
00000170  6f 69 6e 74 65 72 25 20  34 30 30 0d 00 5a 20 de  |ointer% 400..Z .|
00000180  20 69 63 6f 6e 74 65 78  74 25 20 33 36 2c 69 63  | icontext% 36,ic|
00000190  6f 6e 76 61 6c 69 64 25  20 33 36 0d 00 64 0d 65  |onvalid% 36..d.e|
000001a0  64 69 74 65 64 25 3d a3  0d 00 6e 0e 24 71 25 3d  |dited%=...n.$q%=|
000001b0  22 54 41 53 4b 22 0d 00  78 34 c8 99 20 22 57 69  |"TASK"..x4.. "Wi|
000001c0  6d 70 5f 49 6e 69 74 69  61 6c 69 73 65 22 2c 32  |mp_Initialise",2|
000001d0  30 30 2c 21 71 25 2c 22  53 74 72 65 61 6d 22 20  |00,!q%,"Stream" |
000001e0  b8 20 2c 2c 74 61 73 6b  68 25 0d 00 82 40 c8 99  |. ,,taskh%...@..|
000001f0  20 22 49 6e 74 65 72 66  61 63 65 5f 49 6e 69 74  | "Interface_Init|
00000200  69 61 6c 69 73 65 22 2c  2c 74 61 73 6b 68 25 3a  |ialise",,taskh%:|
00000210  f4 20 63 6c 61 69 6d 20  49 6e 74 65 72 66 61 63  |. claim Interfac|
00000220  65 20 70 6f 69 6e 74 65  72 73 0d 00 8c 34 c8 99  |e pointers...4..|
00000230  20 22 57 69 6d 70 5f 4f  70 65 6e 54 65 6d 70 6c  | "Wimp_OpenTempl|
00000240  61 74 65 22 2c 2c 22 3c  53 74 72 65 61 6d 24 44  |ate",,"<Stream$D|
00000250  69 72 3e 2e 54 65 6d 70  6c 61 74 65 73 22 0d 00  |ir>.Templates"..|
00000260  96 39 c8 99 20 22 57 69  6d 70 5f 4c 6f 61 64 54  |.9.. "Wimp_LoadT|
00000270  65 6d 70 6c 61 74 65 22  2c 2c 71 25 2c 69 6e 64  |emplate",,q%,ind|
00000280  25 2c 69 6e 64 25 2b 26  32 30 30 2c 2d 31 2c 22  |%,ind%+&200,-1,"|
00000290  69 6e 66 6f 22 2c 30 0d  00 a0 2a c8 99 20 22 57  |info",0...*.. "W|
000002a0  69 6d 70 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |imp_CreateWindow|
000002b0  22 2c 2c 71 25 20 b8 20  69 6e 66 6f 77 69 6e 64  |",,q% . infowind|
000002c0  25 0d 00 aa 3f c8 99 20  22 57 69 6d 70 5f 4c 6f  |%...?.. "Wimp_Lo|
000002d0  61 64 54 65 6d 70 6c 61  74 65 22 2c 2c 71 25 2c  |adTemplate",,q%,|
000002e0  69 6e 64 32 25 2c 69 6e  64 32 25 2b 26 32 30 30  |ind2%,ind2%+&200|
000002f0  2c 2d 31 2c 22 6d 6f 72  65 69 6e 66 6f 22 2c 30  |,-1,"moreinfo",0|
00000300  0d 00 b4 2a c8 99 20 22  57 69 6d 70 5f 43 72 65  |...*.. "Wimp_Cre|
00000310  61 74 65 57 69 6e 64 6f  77 22 2c 2c 71 25 20 b8  |ateWindow",,q% .|
00000320  20 6d 6f 72 65 69 6e 66  6f 25 0d 00 be 1b c8 99  | moreinfo%......|
00000330  20 22 57 69 6d 70 5f 43  6c 6f 73 65 54 65 6d 70  | "Wimp_CloseTemp|
00000340  6c 61 74 65 22 0d 00 c8  18 f2 6d 65 6e 75 3a f4  |late".....menu:.|
00000350  20 63 72 65 61 74 65 20  6d 65 6e 75 73 0d 00 d2  | create menus...|
00000360  04 0d 00 dc 35 69 63 6f  6e 25 3d a4 69 63 6f 6e  |....5icon%=.icon|
00000370  62 61 72 28 22 21 53 74  72 65 61 6d 22 2c 22 22  |bar("!Stream",""|
00000380  2c 2d 31 29 3a f4 20 69  63 6f 6e 20 6f 6e 20 69  |,-1):. icon on i|
00000390  63 6f 6e 62 61 72 0d 00  e6 3c 20 20 20 20 20 20  |conbar...<      |
000003a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000003b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 f4 20  |              . |
000003c0  2d 31 20 3d 20 55 74 69  6c 69 74 79 20 28 52 48  |-1 = Utility (RH|
000003d0  53 29 0d 00 f0 3c 20 20  20 20 20 20 20 20 20 20  |S)...<          |
000003e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000003f0  20 20 20 20 20 20 20 20  20 20 f4 20 2d 32 20 3d  |          . -2 =|
00000400  20 53 65 72 76 69 63 65  20 28 4c 48 53 29 0d 00  | Service (LHS)..|
00000410  fa 04 0d 01 04 23 71 75  69 74 25 3d a3 3a f4 20  |.....#quit%=.:. |
00000420  4e 6f 74 68 69 6e 67 20  68 61 70 70 65 6e 65 64  |Nothing happened|
00000430  20 79 65 74 21 0d 01 0e  04 0d 01 18 90 ee 20 85  | yet!......... .|
00000440  20 e7 20 a4 65 72 72 6f  72 28 22 55 6e 65 78 70  | . .error("Unexp|
00000450  65 63 74 65 64 20 65 72  72 6f 72 3a 20 22 2b f6  |ected error: "+.|
00000460  24 2b 22 20 28 69 6e 74  2e 20 65 72 72 6f 72 20  |$+" (int. error |
00000470  63 6f 64 65 20 22 2b c3  9e 2b 22 29 20 20 53 68  |code "+..+")  Sh|
00000480  61 6c 6c 20 49 20 71 75  69 74 20 3f 22 2c 33 29  |all I quit ?",3)|
00000490  3d 31 20 c8 99 20 22 49  6e 74 65 72 66 61 63 65  |=1 .. "Interface|
000004a0  5f 43 6c 6f 73 65 44 6f  77 6e 22 2c 2c 74 61 73  |_CloseDown",,tas|
000004b0  6b 68 25 3a c8 99 20 22  57 69 6d 70 5f 43 6c 6f  |kh%:.. "Wimp_Clo|
000004c0  73 65 44 6f 77 6e 22 3a  e0 0d 01 22 4a f4 20 45  |seDown":..."J. E|
000004d0  72 72 6f 72 20 68 61 6e  64 6c 65 72 20 64 72 6f  |rror handler dro|
000004e0  70 73 20 74 68 72 6f 75  67 68 20 74 6f 20 77 69  |ps through to wi|
000004f0  6d 70 5f 70 6f 6c 6c 20  6c 6f 6f 70 2c 20 41 46  |mp_poll loop, AF|
00000500  54 45 52 20 77 69 6d 70  5f 69 6e 69 74 69 61 6c  |TER wimp_initial|
00000510  69 73 65 0d 01 2c 3e c8  99 20 22 4f 53 5f 52 65  |ise..,>.. "OS_Re|
00000520  61 64 4d 6f 6e 6f 74 6f  6e 69 63 54 69 6d 65 22  |adMonotonicTime"|
00000530  20 b8 20 6f 74 25 3a f4  20 67 65 74 20 72 65 61  | . ot%:. get rea|
00000540  64 79 20 66 6f 72 20 77  69 6d 70 5f 70 6f 6c 6c  |dy for wimp_poll|
00000550  2c 0d 01 36 05 f5 0d 01  40 3d c8 99 20 22 57 69  |,..6....@=.. "Wi|
00000560  6d 70 5f 50 6f 6c 6c 49  64 6c 65 22 2c 2c 71 25  |mp_PollIdle",,q%|
00000570  2c 6f 74 25 20 b8 20 72  65 61 73 6f 6e 25 3a f4  |,ot% . reason%:.|
00000580  20 61 6e 64 20 70 6f 6c  6c 20 74 68 65 20 77 69  | and poll the wi|
00000590  6d 70 2e 0d 01 4a 43 c8  99 20 22 49 6e 74 65 72  |mp...JC.. "Inter|
000005a0  66 61 63 65 5f 50 6f 6c  6c 22 2c 72 65 61 73 6f  |face_Poll",reaso|
000005b0  6e 25 2c 2c 74 61 73 6b  68 25 3a f4 20 45 6e 73  |n%,,taskh%:. Ens|
000005c0  75 72 65 20 70 6f 69 6e  74 65 72 20 75 70 20 74  |ure pointer up t|
000005d0  6f 20 64 61 74 65 0d 01  54 23 c8 99 20 22 4f 53  |o date..T#.. "OS|
000005e0  5f 52 65 61 64 4d 6f 6e  6f 74 6f 6e 69 63 54 69  |_ReadMonotonicTi|
000005f0  6d 65 22 20 b8 20 6e 74  25 0d 01 5e 17 c8 95 20  |me" . nt%..^... |
00000600  6e 74 25 3e 6f 74 25 3a  6f 74 25 2b 3d 31 3a ce  |nt%>ot%:ot%+=1:.|
00000610  0d 01 68 10 c8 8e 20 72  65 61 73 6f 6e 25 20 ca  |..h... reason% .|
00000620  0d 01 72 15 c9 20 31 20  20 20 20 20 3a 20 f2 72  |..r.. 1     : .r|
00000630  65 64 72 61 77 0d 01 7c  26 c9 20 32 20 20 20 20  |edraw..|&. 2    |
00000640  20 3a 20 c8 99 20 22 57  69 6d 70 5f 4f 70 65 6e  | : .. "Wimp_Open|
00000650  57 69 6e 64 6f 77 22 2c  2c 71 25 0d 01 86 27 c9  |Window",,q%...'.|
00000660  20 33 20 20 20 20 20 3a  20 c8 99 20 22 57 69 6d  | 3     : .. "Wim|
00000670  70 5f 43 6c 6f 73 65 57  69 6e 64 6f 77 22 2c 2c  |p_CloseWindow",,|
00000680  71 25 0d 01 90 19 c9 20  36 20 20 20 20 20 3a 20  |q%..... 6     : |
00000690  f2 63 68 65 63 6b 6d 6f  75 73 65 0d 01 9a 26 c9  |.checkmouse...&.|
000006a0  20 37 20 20 20 20 20 3a  20 66 24 3d a4 6c 61 73  | 7     : f$=.las|
000006b0  74 62 69 74 28 66 24 29  3a f2 64 72 61 67 65 6e  |tbit(f$):.dragen|
000006c0  64 0d 01 a4 1b c9 20 39  20 20 20 20 20 3a 20 f2  |d..... 9     : .|
000006d0  70 72 6f 63 65 73 73 5f  6d 65 6e 75 0d 01 ae 16  |process_menu....|
000006e0  c9 20 31 37 2c 31 38 20  3a 20 f2 6d 65 73 73 61  |. 17,18 : .messa|
000006f0  67 65 0d 01 b8 05 cb 0d  01 c2 0b fd 20 71 75 69  |ge.......... qui|
00000700  74 25 0d 01 cc 24 c8 99  20 22 49 6e 74 65 72 66  |t%...$.. "Interf|
00000710  61 63 65 5f 43 6c 6f 73  65 44 6f 77 6e 22 2c 2c  |ace_CloseDown",,|
00000720  74 61 73 6b 68 25 0d 01  d6 2c c8 99 20 22 57 69  |taskh%...,.. "Wi|
00000730  6d 70 5f 43 6c 6f 73 65  44 6f 77 6e 22 3a e0 3a  |mp_CloseDown":.:|
00000740  f4 20 6c 65 61 76 65 20  67 72 61 63 65 66 75 6c  |. leave graceful|
00000750  6c 79 0d 01 e0 04 0d 01  ea 1d dd 20 a4 69 63 6f  |ly......... .ico|
00000760  6e 62 61 72 28 76 24 2c  74 24 2c 68 61 6e 64 6c  |nbar(v$,t$,handl|
00000770  65 25 29 0d 01 f4 08 ea  20 69 25 0d 01 fe 3d e7  |e%)..... i%...=.|
00000780  20 68 61 6e 64 6c 65 25  3d 2d 32 20 8c 20 20 20  | handle%=-2 .   |
00000790  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000007a0  20 20 3a f4 20 53 65 72  76 69 63 65 20 6f 72 20  |  :. Service or |
000007b0  55 74 69 6c 69 74 79 3f  0d 02 08 24 24 69 63 6f  |Utility?...$$ico|
000007c0  6e 76 61 6c 69 64 25 3d  22 53 22 2b 76 24 3a 24  |nvalid%="S"+v$:$|
000007d0  69 63 6f 6e 74 65 78 74  25 3d 74 24 0d 02 12 05  |icontext%=t$....|
000007e0  cd 0d 02 1c 10 71 25 21  30 3d 68 61 6e 64 6c 65  |.....q%!0=handle|
000007f0  25 0d 02 26 0a 71 25 21  34 3d 30 0d 02 30 3f e7  |%..&.q%!4=0..0?.|
00000800  20 68 61 6e 64 6c 65 25  3d 2d 31 20 71 25 21 38  | handle%=-1 q%!8|
00000810  3d 30 20 8b 20 71 25 21  38 3d 2d 31 36 20 20 20  |=0 . q%!8=-16   |
00000820  20 20 3a f4 20 53 65 74  20 75 70 20 70 72 6f 70  |  :. Set up prop|
00000830  65 72 20 63 6f 2d 6f 72  64 73 0d 02 3a 24 e7 20  |er co-ords..:$. |
00000840  68 61 6e 64 6c 65 25 3d  2d 31 20 71 25 21 31 32  |handle%=-1 q%!12|
00000850  3d 36 38 20 8b 20 71 25  21 31 32 3d 37 38 0d 02  |=68 . q%!12=78..|
00000860  44 24 e7 20 68 61 6e 64  6c 65 25 3d 2d 31 20 71  |D$. handle%=-1 q|
00000870  25 21 31 36 3d 39 36 20  8b 20 71 25 21 31 36 3d  |%!16=96 . q%!16=|
00000880  39 30 0d 02 4e 3f e7 20  68 61 6e 64 6c 65 25 3d  |90..N?. handle%=|
00000890  2d 31 20 8c 20 20 20 20  20 20 20 20 20 20 20 20  |-1 .            |
000008a0  20 20 20 20 20 20 20 20  20 3a f4 20 41 6e 64 20  |         :. And |
000008b0  70 72 6f 70 65 72 20 69  63 6f 6e 20 66 6c 61 67  |proper icon flag|
000008c0  73 0d 02 58 0f 71 25 21  32 30 3d 26 32 30 30 32  |s..X.q%!20=&2002|
000008d0  0d 02 62 05 cc 0d 02 6c  2b 71 25 21 32 30 3d 25  |..b....l+q%!20=%|
000008e0  30 30 30 31 30 31 31 31  30 30 30 30 30 30 30 30  |0001011100000000|
000008f0  30 30 31 31 30 30 30 31  30 30 31 30 31 30 31 31  |0011000100101011|
00000900  0d 02 76 05 cd 0d 02 80  35 e7 20 68 61 6e 64 6c  |..v.....5. handl|
00000910  65 25 3d 2d 31 20 8c 20  20 20 20 20 20 20 20 20  |e%=-1 .         |
00000920  20 20 20 20 20 20 20 20  20 20 20 20 3a f4 20 49  |            :. I|
00000930  6e 64 69 72 65 63 74 65  64 3f 0d 02 8a 0f 24 28  |ndirected?....$(|
00000940  71 25 2b 32 34 29 3d 76  24 0d 02 94 05 cc 0d 02  |q%+24)=v$.......|
00000950  9e 13 71 25 21 32 34 3d  69 63 6f 6e 74 65 78 74  |..q%!24=icontext|
00000960  25 0d 02 a8 14 71 25 21  32 38 3d 69 63 6f 6e 76  |%....q%!28=iconv|
00000970  61 6c 69 64 25 0d 02 b2  19 71 25 21 33 32 3d a9  |alid%....q%!32=.|
00000980  28 24 69 63 6f 6e 74 65  78 74 25 29 2b 31 0d 02  |($icontext%)+1..|
00000990  bc 05 cd 0d 02 c6 3d c8  99 20 22 57 69 6d 70 5f  |......=.. "Wimp_|
000009a0  43 72 65 61 74 65 49 63  6f 6e 22 2c 2c 71 25 20  |CreateIcon",,q% |
000009b0  b8 20 69 25 20 20 20 20  20 20 20 20 3a f4 20 41  |. i%        :. A|
000009c0  6e 64 20 64 72 61 77 20  74 68 65 20 69 63 6f 6e  |nd draw the icon|
000009d0  0d 02 d0 07 3d 69 25 0d  02 da 04 0d 02 e4 0e dd  |....=i%.........|
000009e0  20 f2 6d 65 73 73 61 67  65 0d 02 ee 0c 79 72 25  | .message....yr%|
000009f0  3d 71 25 21 38 0d 02 f8  10 c8 8e 20 28 71 25 21  |=q%!8...... (q%!|
00000a00  31 36 29 20 ca 0d 03 02  25 c9 20 30 20 20 20 20  |16) ....%. 0    |
00000a10  3a 20 71 75 69 74 25 3d  b9 3a f4 20 4d 65 73 73  |: quit%=.:. Mess|
00000a20  61 67 65 5f 51 75 69 74  20 3f 0d 03 0c 25 c9 20  |age_Quit ?...%. |
00000a30  32 20 20 20 20 3a 20 f2  64 73 3a f4 20 4d 65 73  |2    : .ds:. Mes|
00000a40  73 61 67 65 5f 44 61 74  61 53 61 76 65 20 3f 0d  |sage_DataSave ?.|
00000a50  03 16 25 c9 20 33 20 20  20 20 3a 20 f2 64 6c 3a  |..%. 3    : .dl:|
00000a60  f4 20 4d 65 73 73 61 67  65 5f 44 61 74 61 4c 6f  |. Message_DataLo|
00000a70  61 64 20 3f 0d 03 20 25  c9 20 35 20 20 20 20 3a  |ad ?.. %. 5    :|
00000a80  20 f2 64 6f 3a f4 20 4d  65 73 73 61 67 65 5f 44  | .do:. Message_D|
00000a90  61 74 61 4f 70 65 6e 20  3f 0d 03 2a 24 c9 20 38  |ataOpen ?..*$. 8|
00000aa0  20 20 20 20 3a 20 f2 70  71 3a f4 20 4d 65 73 73  |    : .pq:. Mess|
00000ab0  61 67 65 5f 50 72 65 51  75 69 74 20 3f 0d 03 34  |age_PreQuit ?..4|
00000ac0  27 c9 20 26 35 30 32 20  3a 20 f2 73 65 6e 64 68  |'. &502 : .sendh|
00000ad0  65 6c 70 3a f4 20 4d 65  73 73 61 67 65 5f 48 65  |elp:. Message_He|
00000ae0  6c 70 20 3f 0d 03 3e 05  cb 0d 03 48 05 e1 0d 03  |lp ?..>....H....|
00000af0  52 04 0d 03 5c 11 dd 20  f2 63 68 65 63 6b 6d 6f  |R...\.. .checkmo|
00000b00  75 73 65 0d 03 66 12 68  61 6e 64 6c 65 3d 28 71  |use..f.handle=(q|
00000b10  25 21 31 32 29 0d 03 70  10 c8 8e 20 28 71 25 21  |%!12)..p... (q%!|
00000b20  31 32 29 20 ca 0d 03 7a  14 c9 20 2d 32 3a f4 20  |12) ...z.. -2:. |
00000b30  69 63 6f 6e 62 61 72 20  3f 0d 03 84 0f c8 8e 20  |iconbar ?...... |
00000b40  28 71 25 21 38 29 20 ca  0d 03 8e 14 c9 20 34 20  |(q%!8) ...... 4 |
00000b50  3a 20 f4 20 53 65 6c 65  63 74 20 3f 0d 03 98 39  |: . Select ?...9|
00000b60  c9 20 32 20 3a 20 c8 99  20 22 57 69 6d 70 5f 43  |. 2 : .. "Wimp_C|
00000b70  72 65 61 74 65 4d 65 6e  75 22 2c 2c 6d 65 6e 75  |reateMenu",,menu|
00000b80  25 2c 21 71 25 2d 36 34  2c 31 37 36 3a f4 20 4d  |%,!q%-64,176:. M|
00000b90  65 6e 75 20 3f 0d 03 a2  14 c9 20 31 20 3a 20 f4  |enu ?..... 1 : .|
00000ba0  20 41 64 6a 75 73 74 20  3f 0d 03 ac 05 cb 0d 03  | Adjust ?.......|
00000bb0  b6 1e c9 20 69 6e 66 6f  77 69 6e 64 25 3a f4 20  |... infowind%:. |
00000bc0  41 6e 64 20 61 67 61 69  6e 2e 2e 2e 0d 03 c0 0f  |And again.......|
00000bd0  c8 8e 20 28 71 25 21 38  29 20 ca 0d 03 ca 14 c9  |.. (q%!8) ......|
00000be0  20 34 20 3a 20 c8 8e 20  71 25 21 31 36 20 ca 0d  | 4 : .. q%!16 ..|
00000bf0  03 d4 4f c9 20 39 20 3a  20 f2 73 6c 61 62 69 63  |..O. 9 : .slabic|
00000c00  6f 6e 3a c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |on:.. "Wimp_Crea|
00000c10  74 65 4d 65 6e 75 22 2c  2c 2d 31 3a f2 6f 70 65  |teMenu",,-1:.ope|
00000c20  6e 75 70 28 6d 6f 72 65  69 6e 66 6f 25 2c 32 34  |nup(moreinfo%,24|
00000c30  30 2c 37 36 32 2c 38 30  30 2c 36 30 30 29 0d 03  |0,762,800,600)..|
00000c40  de 05 cb 0d 03 e8 05 cb  0d 03 f2 0f c9 20 6d 6f  |............. mo|
00000c50  72 65 69 6e 66 6f 25 0d  03 fc 0d c8 8e 20 71 25  |reinfo%...... q%|
00000c60  21 38 20 ca 0d 04 06 14  c9 20 34 20 3a 20 c8 8e  |!8 ...... 4 : ..|
00000c70  20 71 25 21 31 36 20 ca  0d 04 10 25 c9 20 31 34  | q%!16 ....%. 14|
00000c80  20 3a 20 f2 73 6c 61 62  69 63 6f 6e 3a f2 73 68  | : .slabicon:.sh|
00000c90  75 74 28 6d 6f 72 65 69  6e 66 6f 25 29 0d 04 1a  |ut(moreinfo%)...|
00000ca0  05 cb 0d 04 24 05 cb 0d  04 2e 0d c9 20 73 61 76  |....$....... sav|
00000cb0  65 61 73 25 0d 04 38 0d  c8 8e 20 71 25 21 38 20  |eas%..8... q%!8 |
00000cc0  ca 0d 04 42 14 c9 20 34  20 3a 20 c8 8e 20 71 25  |...B.. 4 : .. q%|
00000cd0  21 31 36 20 ca 0d 04 4c  39 c9 20 31 20 3a 20 f2  |!16 ...L9. 1 : .|
00000ce0  73 6c 61 62 69 63 6f 6e  3a 66 24 3d a4 67 65 74  |slabicon:f$=.get|
00000cf0  69 63 6f 6e 64 61 74 61  28 73 61 76 65 61 73 25  |icondata(saveas%|
00000d00  2c 30 29 3a f2 71 75 69  63 6b 73 61 76 65 0d 04  |,0):.quicksave..|
00000d10  56 38 c9 20 33 20 3a 20  66 24 3d a4 67 65 74 69  |V8. 3 : f$=.geti|
00000d20  63 6f 6e 64 61 74 61 28  73 61 76 65 61 73 25 2c  |condata(saveas%,|
00000d30  30 29 3a f2 64 72 61 67  62 6f 78 28 73 61 76 65  |0):.dragbox(save|
00000d40  61 73 25 2c 32 29 0d 04  60 05 cb 0d 04 6a 05 cb  |as%,2)..`....j..|
00000d50  0d 04 74 05 cb 0d 04 7e  05 e1 0d 04 88 04 0d 04  |..t....~........|
00000d60  92 0b dd 20 f2 6d 65 6e  75 0d 04 9c 20 f4 20 53  |... .menu... . S|
00000d70  65 74 75 70 20 6d 65 6e  75 73 20 61 6e 64 20 6d  |etup menus and m|
00000d80  65 6e 75 20 62 6c 6f 63  6b 0d 04 a6 0c 50 25 3d  |enu block....P%=|
00000d90  6d 65 6e 75 25 0d 04 b0  12 66 6c 61 67 73 3d 26  |menu%....flags=&|
00000da0  37 30 30 30 30 32 31 0d  04 ba 1c f2 6d 65 6e 75  |7000021.....menu|
00000db0  5f 68 65 61 64 65 72 28  22 53 74 72 65 61 6d 22  |_header("Stream"|
00000dc0  2c 38 29 0d 04 c4 2a f2  6d 65 6e 75 5f 69 74 65  |,8)...*.menu_ite|
00000dd0  6d 28 26 30 30 2c 69 6e  66 6f 77 69 6e 64 25 2c  |m(&00,infowind%,|
00000de0  66 6c 61 67 73 2c 22 49  6e 66 6f 22 29 0d 04 ce  |flags,"Info")...|
00000df0  23 f2 6d 65 6e 75 5f 69  74 65 6d 28 26 38 30 2c  |#.menu_item(&80,|
00000e00  2d 31 2c 66 6c 61 67 73  2c 22 51 75 69 74 22 29  |-1,flags,"Quit")|
00000e10  0d 04 d8 05 e1 0d 04 e2  04 0d 04 ec 18 dd 20 f2  |.............. .|
00000e20  6d 65 6e 75 5f 68 65 61  64 65 72 28 54 24 2c 77  |menu_header(T$,w|
00000e30  29 0d 04 f6 0a 24 50 25  3d 54 24 0d 05 00 10 50  |)....$P%=T$....P|
00000e40  25 21 31 32 3d 26 37 30  32 30 37 0d 05 0a 0e 50  |%!12=&70207....P|
00000e50  25 21 31 36 3d 77 2a 31  36 0d 05 14 0c 50 25 21  |%!16=w*16....P%!|
00000e60  32 30 3d 34 30 0d 05 1e  0b 50 25 21 32 34 3d 30  |20=40....P%!24=0|
00000e70  0d 05 28 0a 50 25 2b 3d  32 38 0d 05 32 05 e1 0d  |..(.P%+=28..2...|
00000e80  05 3c 04 0d 05 46 1d dd  20 f2 6d 65 6e 75 5f 69  |.<...F.. .menu_i|
00000e90  74 65 6d 28 41 25 2c 42  25 2c 43 25 2c 54 24 29  |tem(A%,B%,C%,T$)|
00000ea0  0d 05 50 0b 50 25 21 30  3d 41 25 0d 05 5a 0b 50  |..P.P%!0=A%..Z.P|
00000eb0  25 21 34 3d 42 25 0d 05  64 0b 50 25 21 38 3d 43  |%!4=B%..d.P%!8=C|
00000ec0  25 0d 05 6e 0f 24 28 50  25 2b 31 32 29 3d 54 24  |%..n.$(P%+12)=T$|
00000ed0  0d 05 78 0a 50 25 2b 3d  32 34 0d 05 82 05 e1 0d  |..x.P%+=24......|
00000ee0  05 8c 04 0d 05 96 27 dd  20 a4 65 72 72 6f 72 28  |......'. .error(|
00000ef0  65 24 2c 62 25 29 3a 21  71 25 3d 30 3a 24 28 71  |e$,b%):!q%=0:$(q|
00000f00  25 2b 34 29 3d 65 24 2b  bd 30 0d 05 a0 2e c8 99  |%+4)=e$+.0......|
00000f10  20 22 57 69 6d 70 5f 52  65 70 6f 72 74 45 72 72  | "Wimp_ReportErr|
00000f20  6f 72 22 2c 71 25 2c 62  25 2c 22 53 74 72 65 61  |or",q%,b%,"Strea|
00000f30  6d 22 20 b8 20 2c 62 25  0d 05 aa 07 3d 62 25 0d  |m" . ,b%....=b%.|
00000f40  05 b4 04 0d 05 be 09 dd  20 f2 64 6c 0d 05 c8 0b  |........ .dl....|
00000f50  ea 20 66 24 2c 54 25 0d  05 d2 1f 66 24 3d c4 32  |. f$,T%....f$=.2|
00000f60  35 30 2c 22 20 22 29 3a  66 24 3d 22 22 3a 54 25  |50," "):f$="":T%|
00000f70  3d 71 25 2b 34 34 0d 05  dc 1e c8 95 20 3f 54 25  |=q%+44...... ?T%|
00000f80  3c 3e 30 3a 66 24 2b 3d  bd 3f 54 25 3a 54 25 2b  |<>0:f$+=.?T%:T%+|
00000f90  3d 31 3a ce 0d 05 e6 0e  c8 8e 20 71 25 21 34 30  |=1:....... q%!40|
00000fa0  20 ca 0d 05 f0 36 c9 20  26 32 30 30 30 20 3a 20  | ....6. &2000 : |
00000fb0  e7 20 a4 6c 61 73 74 62  69 74 28 66 24 29 3d 22  |. .lastbit(f$)="|
00000fc0  21 50 69 6e 42 6f 61 72  64 22 20 8c 20 f2 73 74  |!PinBoard" . .st|
00000fd0  72 65 61 6d 28 66 24 29  0d 05 fa 05 cb 0d 06 04  |ream(f$)........|
00000fe0  32 71 25 21 31 32 3d 71  25 21 38 3a 71 25 21 31  |2q%!12=q%!8:q%!1|
00000ff0  36 3d 34 3a c8 99 20 22  57 69 6d 70 5f 53 65 6e  |6=4:.. "Wimp_Sen|
00001000  64 4d 65 73 73 61 67 65  22 2c 31 37 2c 71 25 0d  |dMessage",17,q%.|
00001010  06 0e 05 e1 0d 06 18 04  0d 06 22 09 dd 20 f2 64  |..........".. .d|
00001020  6f 0d 06 2c 0b ea 20 66  24 2c 54 25 0d 06 36 26  |o..,.. f$,T%..6&|
00001030  66 24 3d c4 32 35 30 2c  22 20 22 29 3a 66 24 3d  |f$=.250," "):f$=|
00001040  22 22 3a 66 24 3d a4 72  74 6f 7a 28 71 25 2b 34  |"":f$=.rtoz(q%+4|
00001050  34 29 0d 06 40 0e c8 8e  20 71 25 21 34 30 20 ca  |4)..@... q%!40 .|
00001060  0d 06 4a 09 7f 20 3a 20  e1 0d 06 54 05 cb 0d 06  |..J.. : ...T....|
00001070  5e 32 71 25 21 31 32 3d  71 25 21 38 3a 71 25 21  |^2q%!12=q%!8:q%!|
00001080  31 36 3d 34 3a c8 99 20  22 57 69 6d 70 5f 53 65  |16=4:.. "Wimp_Se|
00001090  6e 64 4d 65 73 73 61 67  65 22 2c 31 37 2c 71 25  |ndMessage",17,q%|
000010a0  0d 06 68 05 e1 0d 06 72  04 0d 06 7c 0d dd 20 f2  |..h....r...|.. .|
000010b0  72 65 64 72 61 77 0d 06  86 25 c8 99 20 22 57 69  |redraw...%.. "Wi|
000010c0  6d 70 5f 52 65 64 72 61  77 57 69 6e 64 6f 77 22  |mp_RedrawWindow"|
000010d0  2c 2c 71 25 20 b8 20 66  6c 61 67 0d 06 90 0e c8  |,,q% . flag.....|
000010e0  95 20 66 6c 61 67 3c 3e  30 0d 06 9a 42 c8 99 20  |. flag<>0...B.. |
000010f0  22 49 6e 74 65 72 66 61  63 65 5f 52 65 6e 64 65  |"Interface_Rende|
00001100  72 33 64 57 69 6e 64 6f  77 22 2c 2c 71 25 3a f4  |r3dWindow",,q%:.|
00001110  20 42 6f 72 64 65 72 20  61 6c 6c 20 69 63 6f 6e  | Border all icon|
00001120  73 20 69 6e 20 77 69 6e  64 6f 77 0d 06 a4 25 c8  |s in window...%.|
00001130  99 20 22 57 69 6d 70 5f  47 65 74 52 65 63 74 61  |. "Wimp_GetRecta|
00001140  6e 67 6c 65 22 2c 2c 71  25 20 b8 20 66 6c 61 67  |ngle",,q% . flag|
00001150  0d 06 ae 05 ce 0d 06 b8  05 e1 0d 06 c2 04 0d 06  |................|
00001160  cc 13 dd 20 f2 70 72 6f  63 65 73 73 5f 6d 65 6e  |... .process_men|
00001170  75 0d 06 d6 0f c8 8e 20  68 61 6e 64 6c 65 20 ca  |u...... handle .|
00001180  0d 06 e0 08 c9 20 2d 32  0d 06 ea 0d c8 8e 20 71  |..... -2...... q|
00001190  25 21 30 20 ca 0d 06 f4  17 c9 20 31 20 3a 20 e7  |%!0 ...... 1 : .|
000011a0  20 65 64 69 74 65 64 25  3d b9 20 8c 0d 06 fe 44  | edited%=. ....D|
000011b0  20 20 20 20 20 20 20 20  20 20 e7 20 a4 6f 6b 28  |          . .ok(|
000011c0  22 46 69 6c 65 28 73 29  20 65 64 69 74 65 64 20  |"File(s) edited |
000011d0  62 75 74 20 6e 6f 74 20  73 61 76 65 64 2e 20 52  |but not saved. R|
000011e0  65 61 6c 6c 79 20 71 75  69 74 20 3f 22 29 20 8c  |eally quit ?") .|
000011f0  0d 07 08 16 20 20 20 20  20 20 20 20 20 20 20 71  |....           q|
00001200  75 69 74 25 3d b9 0d 07  12 0f 20 20 20 20 20 20  |uit%=.....      |
00001210  20 20 20 20 cc 0d 07 1c  16 20 20 20 20 20 20 20  |    .....       |
00001220  20 20 20 20 71 75 69 74  25 3d a3 0d 07 26 0f 20  |    quit%=...&. |
00001230  20 20 20 20 20 20 20 20  20 cd 0d 07 30 0e 20 20  |         ...0.  |
00001240  20 20 20 20 20 20 20 cc  0d 07 3a 1b 20 20 20 20  |       ...:.    |
00001250  20 20 20 20 20 20 e7 20  65 64 69 74 65 64 25 3d  |      . edited%=|
00001260  a3 20 8c 0d 07 44 16 20  20 20 20 20 20 20 20 20  |. ...D.         |
00001270  20 20 71 75 69 74 25 3d  b9 0d 07 4e 0f 20 20 20  |  quit%=...N.   |
00001280  20 20 20 20 20 20 20 cd  0d 07 58 0e 20 20 20 20  |       ...X.    |
00001290  20 20 20 20 20 cd 0d 07  62 05 cb 0d 07 6c 05 cb  |     ...b....l..|
000012a0  0d 07 76 05 e1 0d 07 80  04 0d 07 8a 1d dd 20 f2  |..v........... .|
000012b0  6f 70 65 6e 75 70 28 68  61 6e 64 6c 65 2c 78 2c  |openup(handle,x,|
000012c0  79 2c 77 2c 68 29 0d 07  94 0f 71 25 21 30 3d 68  |y,w,h)....q%!0=h|
000012d0  61 6e 64 6c 65 0d 07 9e  13 71 25 21 34 3d 78 3a  |andle....q%!4=x:|
000012e0  71 25 21 38 3d 79 2d 68  0d 07 a8 15 71 25 21 31  |q%!8=y-h....q%!1|
000012f0  32 3d 78 2b 77 3a 71 25  21 31 36 3d 79 0d 07 b2  |2=x+w:q%!16=y...|
00001300  13 71 25 21 32 30 3d 30  3a 71 25 21 32 34 3d 30  |.q%!20=0:q%!24=0|
00001310  0d 07 bc 0c 71 25 21 32  38 3d 2d 31 0d 07 c6 1c  |....q%!28=-1....|
00001320  c8 99 20 22 57 69 6d 70  5f 4f 70 65 6e 57 69 6e  |.. "Wimp_OpenWin|
00001330  64 6f 77 22 2c 2c 71 25  0d 07 d0 05 e1 0d 07 da  |dow",,q%........|
00001340  04 0d 07 e4 0f dd 20 f2  73 6c 61 62 69 63 6f 6e  |...... .slabicon|
00001350  0d 07 ee 2e c8 99 20 22  49 6e 74 65 72 66 61 63  |...... "Interfac|
00001360  65 5f 53 6c 61 62 42 75  74 74 6f 6e 22 2c 2c 71  |e_SlabButton",,q|
00001370  25 3a f4 20 53 6c 61 62  20 69 6e 2e 2e 2e 0d 07  |%:. Slab in.....|
00001380  f8 0a 71 25 21 38 3d 30  0d 08 02 2e c8 99 20 22  |..q%!8=0...... "|
00001390  49 6e 74 65 72 66 61 63  65 5f 53 6c 61 62 42 75  |Interface_SlabBu|
000013a0  74 74 6f 6e 22 2c 2c 71  25 3a f4 20 2e 2e 2e 61  |tton",,q%:. ...a|
000013b0  6e 64 20 6f 75 74 0d 08  0c 05 e1 0d 08 16 04 0d  |nd out..........|
000013c0  08 20 0f dd 20 f2 73 68  75 74 28 68 25 29 0d 08  |. .. .shut(h%)..|
000013d0  2a 31 70 6f 69 6e 74 65  72 25 21 30 3d 68 25 3a  |*1pointer%!0=h%:|
000013e0  c8 99 20 22 57 69 6d 70  5f 43 6c 6f 73 65 57 69  |.. "Wimp_CloseWi|
000013f0  6e 64 6f 77 22 2c 2c 70  6f 69 6e 74 65 72 25 0d  |ndow",,pointer%.|
00001400  08 34 05 e1 0d 08 3e 04  0d 08 48 0f dd 20 f2 73  |.4....>...H.. .s|
00001410  65 6e 64 68 65 6c 70 0d  08 52 25 71 25 21 31 32  |endhelp..R%q%!12|
00001420  3d 71 25 21 38 3a 71 25  21 31 36 3d 26 35 30 33  |=q%!8:q%!16=&503|
00001430  3a 68 65 6c 70 25 3d 71  25 2b 32 30 0d 08 5c 41  |:help%=q%+20..\A|
00001440  68 65 6c 70 25 3d a4 68  65 6c 70 28 71 25 21 33  |help%=.help(q%!3|
00001450  32 2c 71 25 21 33 36 2c  68 65 6c 70 25 29 3a e7  |2,q%!36,help%):.|
00001460  20 68 65 6c 70 25 3d 30  20 e1 3a f4 20 49 6e 74  | help%=0 .:. Int|
00001470  65 72 66 61 63 65 20 68  65 6c 70 20 3f 0d 08 66  |erface help ?..f|
00001480  2b 3f 68 65 6c 70 25 3d  30 3a f4 20 4e 6f 2c 20  |+?help%=0:. No, |
00001490  73 6f 20 73 65 6e 64 20  61 70 70 6c 69 63 61 74  |so send applicat|
000014a0  69 6f 6e 20 68 65 6c 70  0d 08 70 2a 21 71 25 3d  |ion help..p*!q%=|
000014b0  28 68 65 6c 70 25 2b 34  2d 71 25 29 80 ac 33 3a  |(help%+4-q%)..3:|
000014c0  f4 20 53 65 74 75 70 20  68 65 6c 70 20 62 6c 6f  |. Setup help blo|
000014d0  63 6b 0d 08 7a 32 c8 99  20 22 57 69 6d 70 5f 53  |ck..z2.. "Wimp_S|
000014e0  65 6e 64 4d 65 73 73 61  67 65 22 2c 31 37 2c 71  |endMessage",17,q|
000014f0  25 2c 71 25 21 34 3a f4  20 61 6e 64 20 73 65 6e  |%,q%!4:. and sen|
00001500  64 20 69 74 0d 08 84 05  e1 0d 08 8e 04 0d 08 98  |d it............|
00001510  1e dd 20 a4 68 65 6c 70  28 77 69 6e 64 6f 77 25  |.. .help(window%|
00001520  2c 69 63 6f 6e 25 2c 74  6f 25 29 0d 08 a2 0b 24  |,icon%,to%)....$|
00001530  74 6f 25 3d 22 22 0d 08  ac 10 c8 8e 20 77 69 6e  |to%=""...... win|
00001540  64 6f 77 25 20 ca 0d 08  b6 17 20 c9 20 2d 32 20  |dow% ..... . -2 |
00001550  3a 20 f4 20 69 63 6f 6e  62 61 72 20 3f 0d 08 c0  |: . iconbar ?...|
00001560  0f 20 c8 8e 20 69 63 6f  6e 25 20 ca 0d 08 ca 1b  |. .. icon% .....|
00001570  20 20 c9 20 69 63 6f 6e  25 20 3a 20 f4 20 6d 79  |  . icon% : . my|
00001580  20 69 63 6f 6e 20 3f 0d  08 d4 59 20 20 24 74 6f  | icon ?...Y  $to|
00001590  25 3d 22 54 68 69 73 20  69 73 20 74 68 65 20 53  |%="This is the S|
000015a0  74 72 65 61 6d 20 69 63  6f 6e 2e 7c 4d 44 72 61  |tream icon.|MDra|
000015b0  67 20 79 6f 75 72 20 63  6f 70 79 20 6f 66 20 21  |g your copy of !|
000015c0  50 69 6e 42 6f 61 72 64  20 68 65 72 65 20 74 6f  |PinBoard here to|
000015d0  20 73 74 72 65 61 6d 6c  69 6e 65 20 69 74 2e 22  | streamline it."|
000015e0  0d 08 de 06 20 cb 0d 08  e8 22 20 c9 20 69 6e 66  |.... ...." . inf|
000015f0  6f 77 69 6e 64 25 20 3a  20 f4 20 69 6e 66 6f 20  |owind% : . info |
00001600  77 69 6e 64 6f 77 20 3f  0d 08 f2 0f 20 c8 8e 20  |window ?.... .. |
00001610  69 63 6f 6e 25 20 ca 0d  08 fc 40 20 20 c9 20 2d  |icon% ....@  . -|
00001620  31 2c 30 2c 31 2c 32 2c  33 2c 34 2c 35 2c 36 2c  |1,0,1,2,3,4,5,6,|
00001630  37 2c 38 20 3a 20 f4 20  6e 6f 74 20 6f 76 65 72  |7,8 : . not over|
00001640  20 27 43 6c 69 63 6b 20  68 65 72 65 2e 2e 2e 27  | 'Click here...'|
00001650  20 69 63 6f 6e 20 3f 0d  09 06 49 20 20 24 74 6f  | icon ?...I  $to|
00001660  25 3d 22 54 68 69 73 20  69 73 20 74 68 65 20 49  |%="This is the I|
00001670  6e 66 6f 20 77 69 6e 64  6f 77 2e 7c 4d 49 74 20  |nfo window.|MIt |
00001680  70 72 6f 76 69 64 65 73  20 69 6e 66 6f 72 6d 61  |provides informa|
00001690  74 69 6f 6e 20 6f 6e 20  53 74 72 65 61 6d 2e 22  |tion on Stream."|
000016a0  0d 09 10 3e 20 20 7f 20  3a 20 c8 99 20 22 49 6e  |...>  . : .. "In|
000016b0  74 65 72 66 61 63 65 5f  53 65 6e 64 48 65 6c 70  |terface_SendHelp|
000016c0  22 2c 2c 71 25 3a 3d 30  3a f4 20 53 65 6e 64 20  |",,q%:=0:. Send |
000016d0  49 6e 74 65 72 66 61 63  65 20 68 65 6c 70 0d 09  |Interface help..|
000016e0  1a 06 20 cb 0d 09 24 30  20 c9 20 6d 6f 72 65 69  |.. ...$0 . morei|
000016f0  6e 66 6f 25 20 3a 20 f4  20 27 41 62 6f 75 74 20  |nfo% : . 'About |
00001700  74 68 65 20 41 75 74 68  6f 72 27 20 77 69 6e 64  |the Author' wind|
00001710  6f 77 20 3f 0d 09 2e 0f  20 c8 8e 20 69 63 6f 6e  |ow ?.... .. icon|
00001720  25 20 ca 0d 09 38 44 20  20 c9 20 2d 31 2c 30 2c  |% ...8D  . -1,0,|
00001730  31 2c 32 2c 33 2c 34 2c  35 2c 36 2c 37 2c 38 2c  |1,2,3,4,5,6,7,8,|
00001740  39 2c 31 30 2c 31 31 2c  31 32 2c 31 33 20 3a 20  |9,10,11,12,13 : |
00001750  f4 20 6e 6f 74 20 6f 76  65 72 20 63 6c 6f 73 65  |. not over close|
00001760  20 69 63 6f 6e 20 3f 0d  09 42 52 20 20 24 74 6f  | icon ?..BR  $to|
00001770  25 3d 22 54 68 69 73 20  69 73 20 61 20 73 65 63  |%="This is a sec|
00001780  6f 6e 64 61 72 79 20 69  6e 66 6f 20 77 69 6e 64  |ondary info wind|
00001790  6f 77 2e 7c 4d 49 74 20  67 69 76 65 73 20 69 6e  |ow.|MIt gives in|
000017a0  66 6f 72 6d 61 74 69 6f  6e 20 6f 6e 20 74 68 65  |formation on the|
000017b0  20 41 75 74 68 6f 72 2e  22 0d 09 4c 3e 20 20 7f  | Author."..L>  .|
000017c0  20 3a 20 c8 99 20 22 49  6e 74 65 72 66 61 63 65  | : .. "Interface|
000017d0  5f 53 65 6e 64 48 65 6c  70 22 2c 2c 71 25 3a 3d  |_SendHelp",,q%:=|
000017e0  30 3a f4 20 53 65 6e 64  20 49 6e 74 65 72 66 61  |0:. Send Interfa|
000017f0  63 65 20 68 65 6c 70 0d  09 56 06 20 cb 0d 09 60  |ce help..V. ...`|
00001800  26 20 c9 20 73 61 76 65  61 73 25 20 3a 20 f4 20  |& . saveas% : . |
00001810  27 53 61 76 65 20 61 73  3a 27 20 77 69 6e 64 6f  |'Save as:' windo|
00001820  77 20 3f 0d 09 6a 0f 20  c8 8e 20 69 63 6f 6e 25  |w ?..j. .. icon%|
00001830  20 ca 0d 09 74 1f 20 20  c9 20 2d 31 20 3a 20 f4  | ...t.  . -1 : .|
00001840  20 6f 76 65 72 20 77 6f  72 6b 20 61 72 65 61 20  | over work area |
00001850  3f 0d 09 7e 43 20 20 24  74 6f 25 3d 22 54 68 69  |?..~C  $to%="Thi|
00001860  73 20 69 73 20 74 68 65  20 27 53 61 76 65 27 20  |s is the 'Save' |
00001870  77 69 6e 64 6f 77 2e 7c  4d 49 74 20 69 73 20 75  |window.|MIt is u|
00001880  73 65 64 20 74 6f 20 73  61 76 65 20 61 20 66 69  |sed to save a fi|
00001890  6c 65 2e 22 0d 09 88 3e  20 20 7f 20 3a 20 c8 99  |le."...>  . : ..|
000018a0  20 22 49 6e 74 65 72 66  61 63 65 5f 53 65 6e 64  | "Interface_Send|
000018b0  48 65 6c 70 22 2c 2c 71  25 3a 3d 30 3a f4 20 53  |Help",,q%:=0:. S|
000018c0  65 6e 64 20 49 6e 74 65  72 66 61 63 65 20 68 65  |end Interface he|
000018d0  6c 70 0d 09 92 06 20 cb  0d 09 9c 05 cb 0d 09 a6  |lp.... .........|
000018e0  10 3d 74 6f 25 2b a9 28  24 74 6f 25 29 0d 09 b0  |.=to%+.($to%)...|
000018f0  04 0d 09 ba 21 dd 20 a4  67 65 74 69 63 6f 6e 64  |....!. .geticond|
00001900  61 74 61 28 77 69 6e 64  6f 77 25 2c 69 63 6f 6e  |ata(window%,icon|
00001910  25 29 0d 09 c4 16 70 6f  69 6e 74 65 72 25 21 30  |%)....pointer%!0|
00001920  3d 77 69 6e 64 6f 77 25  0d 09 ce 14 70 6f 69 6e  |=window%....poin|
00001930  74 65 72 25 21 34 3d 69  63 6f 6e 25 0d 09 d8 24  |ter%!4=icon%...$|
00001940  c8 99 20 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |.. "Wimp_GetIcon|
00001950  53 74 61 74 65 22 2c 2c  70 6f 69 6e 74 65 72 25  |State",,pointer%|
00001960  0d 09 e2 13 3d 24 28 70  6f 69 6e 74 65 72 25 21  |....=$(pointer%!|
00001970  32 38 29 0d 09 ec 04 0d  09 f6 24 dd 20 f2 70 75  |28).......$. .pu|
00001980  74 69 63 6f 6e 64 61 74  61 28 77 69 6e 64 6f 77  |ticondata(window|
00001990  25 2c 69 63 6f 6e 25 2c  74 24 29 0d 0a 00 27 70  |%,icon%,t$)...'p|
000019a0  6f 69 6e 74 65 72 25 21  30 3d 77 69 6e 64 6f 77  |ointer%!0=window|
000019b0  25 3a 70 6f 69 6e 74 65  72 25 21 34 3d 69 63 6f  |%:pointer%!4=ico|
000019c0  6e 25 0d 0a 0a 24 c8 99  20 22 57 69 6d 70 5f 47  |n%...$.. "Wimp_G|
000019d0  65 74 49 63 6f 6e 53 74  61 74 65 22 2c 2c 70 6f  |etIconState",,po|
000019e0  69 6e 74 65 72 25 0d 0a  14 15 24 28 70 6f 69 6e  |inter%....$(poin|
000019f0  74 65 72 25 21 32 38 29  3d 74 24 0d 0a 1e 1e 70  |ter%!28)=t$....p|
00001a00  6f 69 6e 74 65 72 25 21  31 32 3d 30 3a 70 6f 69  |ointer%!12=0:poi|
00001a10  6e 74 65 72 25 21 38 3d  30 0d 0a 28 24 c8 99 20  |nter%!8=0..($.. |
00001a20  22 57 69 6d 70 5f 53 65  74 49 63 6f 6e 53 74 61  |"Wimp_SetIconSta|
00001a30  74 65 22 2c 2c 70 6f 69  6e 74 65 72 25 0d 0a 32  |te",,pointer%..2|
00001a40  05 e1 0d 0a 3c 04 0d 0a  46 26 dd 20 f2 70 75 74  |....<...F&. .put|
00001a50  69 63 6f 6e 73 70 72 69  74 65 28 77 69 6e 64 6f  |iconsprite(windo|
00001a60  77 25 2c 69 63 6f 6e 25  2c 74 24 29 0d 0a 50 27  |w%,icon%,t$)..P'|
00001a70  70 6f 69 6e 74 65 72 25  21 30 3d 77 69 6e 64 6f  |pointer%!0=windo|
00001a80  77 25 3a 70 6f 69 6e 74  65 72 25 21 34 3d 69 63  |w%:pointer%!4=ic|
00001a90  6f 6e 25 0d 0a 5a 24 c8  99 20 22 57 69 6d 70 5f  |on%..Z$.. "Wimp_|
00001aa0  47 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 70  |GetIconState",,p|
00001ab0  6f 69 6e 74 65 72 25 0d  0a 64 22 c8 99 20 22 57  |ointer%..d".. "W|
00001ac0  69 6d 70 5f 44 65 6c 65  74 65 49 63 6f 6e 22 2c  |imp_DeleteIcon",|
00001ad0  2c 70 6f 69 6e 74 65 72  25 0d 0a 6e 28 70 6f 69  |,pointer%..n(poi|
00001ae0  6e 74 65 72 25 21 34 3d  77 69 6e 64 6f 77 25 3a  |nter%!4=window%:|
00001af0  24 28 70 6f 69 6e 74 65  72 25 2b 32 38 29 3d 74  |$(pointer%+28)=t|
00001b00  24 0d 0a 78 2e 70 6f 69  6e 74 65 72 25 2b 3d 34  |$..x.pointer%+=4|
00001b10  3a c8 99 20 22 57 69 6d  70 5f 43 72 65 61 74 65  |:.. "Wimp_Create|
00001b20  49 63 6f 6e 22 2c 2c 70  6f 69 6e 74 65 72 25 0d  |Icon",,pointer%.|
00001b30  0a 82 52 c8 99 20 22 57  69 6d 70 5f 46 6f 72 63  |..R.. "Wimp_Forc|
00001b40  65 52 65 64 72 61 77 22  2c 70 6f 69 6e 74 65 72  |eRedraw",pointer|
00001b50  25 21 30 2c 70 6f 69 6e  74 65 72 25 21 34 2c 70  |%!0,pointer%!4,p|
00001b60  6f 69 6e 74 65 72 25 21  38 2c 70 6f 69 6e 74 65  |ointer%!8,pointe|
00001b70  72 25 21 31 32 2c 70 6f  69 6e 74 65 72 25 21 31  |r%!12,pointer%!1|
00001b80  36 0d 0a 8c 0f 70 6f 69  6e 74 65 72 25 2d 3d 34  |6....pointer%-=4|
00001b90  0d 0a 96 05 e1 0d 0a a0  04 0d 0a aa 14 dd 20 f2  |.............. .|
00001ba0  74 65 6c 6c 65 6d 6f 66  66 28 65 24 29 0d 0a b4  |tellemoff(e$)...|
00001bb0  10 65 72 25 3d 70 6f 69  6e 74 65 72 25 0d 0a be  |.er%=pointer%...|
00001bc0  0a 21 65 72 25 3d 30 0d  0a c8 12 24 28 65 72 25  |.!er%=0....$(er%|
00001bd0  2b 34 29 3d 65 24 2b bd  30 0d 0a d2 28 c8 99 20  |+4)=e$+.0...(.. |
00001be0  22 57 69 6d 70 5f 52 65  70 6f 72 74 45 72 72 6f  |"Wimp_ReportErro|
00001bf0  72 22 2c 65 72 25 2c 31  2c 22 53 74 72 65 61 6d  |r",er%,1,"Stream|
00001c00  22 0d 0a dc 05 e1 0d 0a  e6 04 0d 0a f0 33 dd 20  |"............3. |
00001c10  a4 72 74 6f 7a 28 54 25  29 3a ea 20 71 24 3a c8  |.rtoz(T%):. q$:.|
00001c20  95 20 3f 54 25 3c 3e 30  3a 71 24 2b 3d bd 3f 54  |. ?T%<>0:q$+=.?T|
00001c30  25 3a 54 25 2b 3d 31 3a  ce 3a 3d 71 24 0d 0a fa  |%:T%+=1:.:=q$...|
00001c40  04 0d 0b 04 09 dd 20 f2  70 71 0d 0b 0e 0f e7 20  |...... .pq..... |
00001c50  65 64 69 74 65 64 25 20  8c 0d 0b 18 43 e7 20 ac  |edited% ....C. .|
00001c60  20 a4 6f 6b 28 22 46 69  6c 65 28 73 29 20 65 64  | .ok("File(s) ed|
00001c70  69 74 65 64 20 62 75 74  20 6e 6f 74 20 73 61 76  |ited but not sav|
00001c80  65 64 2e 20 52 65 61 6c  6c 79 20 71 75 69 74 20  |ed. Really quit |
00001c90  3f 22 29 3a f2 6e 6f 5f  71 75 69 74 0d 0b 22 05  |?"):.no_quit..".|
00001ca0  cd 0d 0b 2c 05 e1 0d 0b  36 04 0d 0b 40 0d dd 20  |...,....6...@.. |
00001cb0  a4 6f 6b 28 65 24 29 0d  0b 4a 10 65 72 25 3d 70  |.ok(e$)..J.er%=p|
00001cc0  6f 69 6e 74 65 72 25 0d  0b 54 0a 21 65 72 25 3d  |ointer%..T.!er%=|
00001cd0  30 0d 0b 5e 12 24 28 65  72 25 2b 34 29 3d 65 24  |0..^.$(er%+4)=e$|
00001ce0  2b bd 30 0d 0b 68 3e c8  99 20 22 57 69 6d 70 5f  |+.0..h>.. "Wimp_|
00001cf0  52 65 70 6f 72 74 45 72  72 6f 72 22 2c 65 72 25  |ReportError",er%|
00001d00  2c 26 31 37 2c 22 4d 65  73 73 61 67 65 20 66 72  |,&17,"Message fr|
00001d10  6f 6d 20 21 53 74 72 65  61 6d 22 20 b8 20 2c 62  |om !Stream" . ,b|
00001d20  25 0d 0b 72 0b 3d 28 62  25 3d 31 29 0d 0b 7c 04  |%..r.=(b%=1)..|.|
00001d30  0d 0b 86 0e dd 20 f2 6e  6f 5f 71 75 69 74 0d 0b  |..... .no_quit..|
00001d40  90 39 71 25 21 31 32 3d  71 25 21 38 3a 71 25 21  |.9q%!12=q%!8:q%!|
00001d50  31 36 3d 38 3a c8 99 20  22 57 69 6d 70 5f 53 65  |16=8:.. "Wimp_Se|
00001d60  6e 64 4d 65 73 73 61 67  65 22 2c 31 37 2c 71 25  |ndMessage",17,q%|
00001d70  2c 71 25 21 34 3a e1 0d  0b 9a 04 0d 0b a4 0e dd  |,q%!4:..........|
00001d80  20 f2 64 72 61 67 65 6e  64 0d 0b ae 0f 64 25 3d  | .dragend....d%=|
00001d90  70 6f 69 6e 74 65 72 25  0d 0b b8 20 c8 99 20 22  |pointer%... .. "|
00001da0  57 69 6d 70 5f 47 65 74  50 6f 69 6e 74 65 72 49  |Wimp_GetPointerI|
00001db0  6e 66 6f 22 2c 2c 64 25  0d 0b c2 2b 64 25 21 33  |nfo",,d%...+d%!3|
00001dc0  32 3d 64 25 21 34 20 20  20 20 20 20 20 20 20 20  |2=d%!4          |
00001dd0  20 20 20 20 20 20 20 20  20 3a 74 74 25 3d 64 25  |         :tt%=d%|
00001de0  21 33 32 0d 0b cc 2b 64  25 21 32 38 3d 21 64 25  |!32...+d%!28=!d%|
00001df0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001e00  20 20 20 20 3a 74 65 25  3d 64 25 21 32 38 0d 0b  |    :te%=d%!28..|
00001e10  d6 2b 64 25 21 32 34 3d  64 25 21 31 36 20 20 20  |.+d%!24=d%!16   |
00001e20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3a  |               :|
00001e30  74 66 25 3d 64 25 21 32  34 0d 0b e0 2b 64 25 21  |tf%=d%!24...+d%!|
00001e40  32 30 3d 64 25 21 31 32  20 20 20 20 20 20 20 20  |20=d%!12        |
00001e50  20 20 20 20 20 20 20 20  20 20 3a 74 77 25 3d 64  |          :tw%=d|
00001e60  25 21 32 30 0d 0b ea 25  64 25 21 31 36 3d 31 20  |%!20...%d%!16=1 |
00001e70  20 20 20 20 3a 64 25 21  31 32 3d 30 20 20 20 20  |    :d%!12=0    |
00001e80  20 3a 64 25 21 33 36 3d  30 0d 0b f4 29 64 25 21  | :d%!36=0...)d%!|
00001e90  34 30 3d 30 20 20 20 20  20 3a 21 64 25 3d 36 34  |40=0     :!d%=64|
00001ea0  20 20 20 20 20 20 3a 24  28 64 25 2b 34 34 29 3d  |      :$(d%+44)=|
00001eb0  66 24 0d 0b fe 2b c8 99  20 22 57 69 6d 70 5f 53  |f$...+.. "Wimp_S|
00001ec0  65 6e 64 4d 65 73 73 61  67 65 22 2c 31 37 2c 64  |endMessage",17,d|
00001ed0  25 2c 64 25 21 32 30 2c  64 25 21 32 34 0d 0c 08  |%,d%!20,d%!24...|
00001ee0  0c 6d 72 25 3d 64 25 21  38 0d 0c 12 05 e1 0d 0c  |.mr%=d%!8.......|
00001ef0  1c 04 0d 0c 26 12 dd 20  a4 6c 61 73 74 62 69 74  |....&.. .lastbit|
00001f00  28 73 24 29 0d 0c 30 11  c8 95 20 a7 73 24 2c 22  |(s$)..0... .s$,"|
00001f10  3a 22 29 3e 30 0d 0c 3a  16 73 24 3d c1 73 24 2c  |:")>0..:.s$=.s$,|
00001f20  a7 73 24 2c 22 3a 22 29  2b 31 29 0d 0c 44 05 ce  |.s$,":")+1)..D..|
00001f30  0d 0c 4e 11 c8 95 20 a7  73 24 2c 22 2e 22 29 3e  |..N... .s$,".")>|
00001f40  30 0d 0c 58 16 73 24 3d  c1 73 24 2c a7 73 24 2c  |0..X.s$=.s$,.s$,|
00001f50  22 2e 22 29 2b 31 29 0d  0c 62 05 ce 0d 0c 6c 07  |".")+1)..b....l.|
00001f60  3d 73 24 0d 0c 76 04 0d  0c 80 09 dd 20 f2 64 73  |=s$..v...... .ds|
00001f70  0d 0c 8a 24 f2 70 75 74  69 63 6f 6e 64 61 74 61  |...$.puticondata|
00001f80  28 73 61 76 65 61 73 25  2c 30 2c 24 28 71 25 2b  |(saveas%,0,$(q%+|
00001f90  34 34 29 29 0d 0c 94 0f  66 24 3d 24 28 71 25 2b  |44))....f$=$(q%+|
00001fa0  34 34 29 0d 0c 9e 0d f2  73 64 28 26 46 46 44 29  |44).....sd(&FFD)|
00001fb0  0d 0c a8 05 e1 0d 0c b2  04 0d 0c bc 15 dd 20 f2  |.............. .|
00001fc0  64 72 61 67 62 6f 78 28  77 25 2c 69 25 29 0d 0c  |dragbox(w%,i%)..|
00001fd0  c6 0f 64 25 3d 70 6f 69  6e 74 65 72 25 0d 0c d0  |..d%=pointer%...|
00001fe0  0a 21 64 25 3d 77 25 0d  0c da 20 c8 99 20 22 57  |.!d%=w%... .. "W|
00001ff0  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 53 74 61  |imp_GetWindowSta|
00002000  74 65 22 2c 2c 64 25 0d  0c e4 22 79 73 25 3d 64  |te",,d%..."ys%=d|
00002010  25 21 31 36 2d 64 25 21  38 3a 78 25 3d 64 25 21  |%!16-d%!8:x%=d%!|
00002020  34 3a 79 25 3d 64 25 21  38 0d 0c ee 0b 64 25 21  |4:y%=d%!8....d%!|
00002030  34 3d 69 25 0d 0c f8 1e  c8 99 20 22 57 69 6d 70  |4=i%...... "Wimp|
00002040  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
00002050  64 25 0d 0d 02 13 66 24  3d a4 6c 61 73 74 62 69  |d%....f$=.lastbi|
00002060  74 28 66 24 29 0d 0d 0c  0c 64 25 21 38 2b 3d 78  |t(f$)....d%!8+=x|
00002070  25 0d 0d 16 11 64 25 21  31 32 2b 3d 79 25 2b 79  |%....d%!12+=y%+y|
00002080  73 25 0d 0d 20 0d 64 25  21 31 36 2b 3d 78 25 0d  |s%.. .d%!16+=x%.|
00002090  0d 2a 11 64 25 21 32 30  2b 3d 79 25 2b 79 73 25  |.*.d%!20+=y%+ys%|
000020a0  0d 0d 34 0b 64 25 21 32  34 3d 30 0d 0d 3e 0b 64  |..4.d%!24=0..>.d|
000020b0  25 21 32 38 3d 30 0d 0d  48 38 c8 99 20 22 4f 53  |%!28=0..H8.. "OS|
000020c0  5f 52 65 61 64 4d 6f 64  65 56 61 72 69 61 62 6c  |_ReadModeVariabl|
000020d0  65 22 2c eb 2c 34 20 b8  20 2c 2c 68 25 3a 68 25  |e",.,4 . ,,h%:h%|
000020e0  3d a4 65 78 74 72 61 63  74 68 28 68 25 29 0d 0d  |=.extracth(h%)..|
000020f0  52 38 c8 99 20 22 4f 53  5f 52 65 61 64 4d 6f 64  |R8.. "OS_ReadMod|
00002100  65 56 61 72 69 61 62 6c  65 22 2c eb 2c 35 20 b8  |eVariable",.,5 .|
00002110  20 2c 2c 76 25 3a 76 25  3d a4 65 78 74 72 61 63  | ,,v%:v%=.extrac|
00002120  74 76 28 76 25 29 0d 0d  5c 10 64 25 21 33 32 3d  |tv(v%)..\.d%!32=|
00002130  28 68 25 2a 32 29 0d 0d  66 10 64 25 21 33 36 3d  |(h%*2)..f.d%!36=|
00002140  28 76 25 2a 34 29 0d 0d  70 09 21 64 25 3d 30 0d  |(v%*4)..p.!d%=0.|
00002150  0d 7a 0a 64 25 21 34 3d  35 0d 0d 84 19 c8 99 20  |.z.d%!4=5...... |
00002160  22 57 69 6d 70 5f 44 72  61 67 42 6f 78 22 2c 2c  |"Wimp_DragBox",,|
00002170  64 25 0d 0d 8e 05 e1 0d  0d 98 04 0d 0d a2 10 dd  |d%..............|
00002180  20 f2 71 75 69 63 6b 73  61 76 65 0d 0d ac 1f e7  | .quicksave.....|
00002190  20 a7 66 24 2c 22 3a 22  29 3c 31 20 80 20 a7 66  | .f$,":")<1 . .f|
000021a0  24 2c 22 2e 22 29 3c 31  20 8c 0d 0d b6 3a f2 74  |$,".")<1 ....:.t|
000021b0  65 6c 6c 65 6d 6f 66 66  28 22 54 6f 20 73 61 76  |ellemoff("To sav|
000021c0  65 2c 20 64 72 61 67 20  69 63 6f 6e 20 74 6f 20  |e, drag icon to |
000021d0  61 20 64 69 72 65 63 74  6f 72 79 20 76 69 65 77  |a directory view|
000021e0  65 72 22 29 0d 0d c0 05  cc 0d 0d ca 0d f2 73 64  |er")..........sd|
000021f0  28 26 46 46 44 29 0d 0d  d4 05 cd 0d 0d de 05 e1  |(&FFD)..........|
00002200  0d 0d e8 04 0d 0d f2 0d  dd 20 f2 73 64 28 74 25  |......... .sd(t%|
00002210  29 0d 0d fc 0f 64 25 3d  70 6f 69 6e 74 65 72 25  |)....d%=pointer%|
00002220  0d 0e 06 0a 21 64 25 3d  36 34 0d 0e 10 0d 64 25  |....!d%=64....d%|
00002230  21 32 30 3d 74 77 25 0d  0e 1a 0d 64 25 21 32 34  |!20=tw%....d%!24|
00002240  3d 74 66 25 0d 0e 24 0d  64 25 21 32 38 3d 74 65  |=tf%..$.d%!28=te|
00002250  25 0d 0e 2e 0d 64 25 21  33 32 3d 74 74 25 0d 0e  |%....d%!32=tt%..|
00002260  38 0d 64 25 21 31 32 3d  79 72 25 0d 0e 42 0b 64  |8.d%!12=yr%..B.d|
00002270  25 21 31 36 3d 33 0d 0e  4c 0b 64 25 21 33 36 3d  |%!16=3..L.d%!36=|
00002280  30 0d 0e 56 0c 64 25 21  34 30 3d 74 25 0d 0e 60  |0..V.d%!40=t%..`|
00002290  0f 24 28 64 25 2b 34 34  29 3d 66 24 0d 0e 6a 25  |.$(d%+44)=f$..j%|
000022a0  c8 99 20 22 57 69 6d 70  5f 53 65 6e 64 4d 65 73  |.. "Wimp_SendMes|
000022b0  73 61 67 65 22 2c 31 37  2c 64 25 2c 64 25 21 32  |sage",17,d%,d%!2|
000022c0  30 0d 0e 74 19 c8 99 20  22 4f 53 5f 46 69 6c 65  |0..t... "OS_File|
000022d0  22 2c 31 38 2c 66 24 2c  74 25 0d 0e 7e 1c c8 99  |",18,f$,t%..~...|
000022e0  20 22 57 69 6d 70 5f 43  72 65 61 74 65 4d 65 6e  | "Wimp_CreateMen|
000022f0  75 22 2c 2c 2d 31 0d 0e  88 05 e1 0d 0e 92 04 0d  |u",,-1..........|
00002300  0e 9c 13 dd 20 a4 65 78  74 72 61 63 74 68 28 61  |.... .extracth(a|
00002310  25 29 0d 0e a6 0b c8 8e  20 61 25 20 ca 0d 0e b0  |%)...... a% ....|
00002320  10 20 c9 20 30 20 3a 20  3d 31 32 38 30 0d 0e ba  |. . 0 : =1280...|
00002330  0f 20 c9 20 31 20 3a 20  3d 36 34 30 0d 0e c4 0f  |. . 1 : =640....|
00002340  20 c9 20 32 20 3a 20 3d  33 32 30 0d 0e ce 0f 20  | . 2 : =320.... |
00002350  c9 20 33 20 3a 20 3d 31  36 30 0d 0e d8 05 cb 0d  |. 3 : =160......|
00002360  0e e2 04 0d 0e ec 13 dd  20 a4 65 78 74 72 61 63  |........ .extrac|
00002370  74 76 28 61 25 29 0d 0e  f6 0b c8 8e 20 61 25 20  |tv(a%)...... a% |
00002380  ca 0d 0f 00 0f 20 c9 20  31 20 3a 20 3d 35 31 32  |..... . 1 : =512|
00002390  0d 0f 0a 0f 20 c9 20 32  20 3a 20 3d 32 35 36 0d  |.... . 2 : =256.|
000023a0  0f 14 05 cb 0d 0f 1e 04  0d 0f 28 07 dc 20 33 0d  |..........(.. 3.|
000023b0  0f 32 40 dc 20 21 48 65  6c 70 2c 44 6f 63 73 2c  |.2@. !Help,Docs,|
000023c0  45 78 74 4d 6f 64 6c 73  2e 43 6f 6d 6d 61 6e 64  |ExtModls.Command|
000023d0  2e 21 48 65 6c 70 2c 45  78 74 4d 6f 64 6c 73 2e  |.!Help,ExtModls.|
000023e0  44 69 72 43 68 61 6e 67  65 2e 21 48 65 6c 70 0d  |DirChange.!Help.|
000023f0  0f 3c 04 0d 0f 46 11 dd  20 f2 73 74 72 65 61 6d  |.<...F.. .stream|
00002400  28 66 24 29 0d 0f 50 0a  f7 20 8d 54 68 4f 0d 0f  |(f$)..P.. .ThO..|
00002410  5a 0d f3 20 65 6e 74 72  69 65 73 0d 0f 64 14 de  |Z.. entries..d..|
00002420  20 66 69 6c 65 24 28 65  6e 74 72 69 65 73 29 0d  | file$(entries).|
00002430  0f 6e 13 e3 20 49 3d 30  20 b8 20 65 6e 74 72 69  |.n.. I=0 . entri|
00002440  65 73 0d 0f 78 0e f3 20  66 69 6c 65 24 28 49 29  |es..x.. file$(I)|
00002450  0d 0f 82 05 ed 0d 0f 8c  13 e3 20 49 3d 30 20 b8  |.......... I=0 .|
00002460  20 65 6e 74 72 69 65 73  0d 0f 96 28 ff 28 22 57  | entries...(.("W|
00002470  69 70 65 20 22 2b 66 24  2b 22 2e 22 2b 66 69 6c  |ipe "+f$+"."+fil|
00002480  65 24 28 49 29 2b 22 20  7e 63 7e 76 66 72 22 29  |e$(I)+" ~c~vfr")|
00002490  0d 0f a0 05 ed 0d 0f aa  05 e1 0d ff              |............|
0000249c