Home » Archimedes archive » Acorn User » AU 1994-12.adf » !StarInfo_StarInfo » Kennedy/!AutoDesk/!RunImage

Kennedy/!AutoDesk/!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 User » AU 1994-12.adf » !StarInfo_StarInfo
Filename: Kennedy/!AutoDesk/!RunImage
Read OK:
File size: 161A bytes
Load address: 0000
Exec address: 0000
File contents
   10REM>!AutoDesk.!RunImage
   20REM by Nick Kennedy
   30:
   40DIMb% 256:msgs%=0:handle%=0
   50ON ERROR !b%=0:$(b%+4)=REPORT$+" at line "+STR$ERL:SYS"Wimp_ReportError",b%,1,"AutoDesk":PROCquit
   60PROCinit
   70ON ERROR !b%=ERR:$(b%+4)=REPORT$+" at line "+STR$ERL+".":SYS"Wimp_ReportError",b%,3,"AutoDesk" TO ,but%:IF but%=2 PROCquit
   80REPEAT
   90PROCpoll
  100UNTILquit%=TRUE
  110PROCquit
  120:
  130DEFPROCinit
  140PROCmessageinit:PROCvduvariables
  150DIMm% 256,ind% 320,cwi% 960,ind2% 512:ein%=ind%+320:ein2%=ind2%+512
  160mask%=NOT(4+8+64+(1<<7)+(1<<9)+(1<<8)+(1<<17)+(1<<18))
  170quit%=FALSE:men%=0
  180SYS"Wimp_Initialise",200,&4B534154,FNlookup("APPNAME") TO version%,handle%
  190SYS"Wimp_OpenTemplate",,"<AutoDesk$dir>.Templates"
  200SYS"Wimp_LoadTemplate",,cwi%,ind%,ein%,-1,"Info"
  210SYS"Wimp_CreateWindow",,cwi% TO info%
  220SYS"Wimp_LoadTemplate",,cwi%,ind2%,ein2%,-1,"Main"
  230SYS"Wimp_CreateWindow",,cwi% TO main%
  240file%=cwi%!(88+32+20)
  250SYS"Wimp_CloseTemplate"
  260PROCopenwindow
  270ENDPROC
  280:
  290DEFPROCpoll
  300SYS"Wimp_Poll",mask%,b% TO r%
  310CASE r% OF
  320WHEN 2     : SYS"Wimp_OpenWindow",,b%
  330WHEN 3     : SYS"Wimp_CloseWindow",,b%
  340WHEN 6     : PROCmouse
  350WHEN 7     : IFdragtype%>-1 PROCstopdrag
  360WHEN 9     : PROCmenuselect
  370WHEN 17,18 : PROCreceivemessage
  380ENDCASE
  390ENDPROC
  400:
  410DEFPROCmouse
  420PROCpointerinfo(b%)
  430mx%=!b%:my%=b%!4:but%=b%!8:win%=b%!12:icon%=b%!16
  440CASE win% OF
  450WHEN main% : CASE but% OF
  460    WHEN 2 : PROCmenu(1)
  470    WHEN 4 : CASE icon% OF
  480      WHEN 2 : set%=FNset(main%,2):PROCshady(1+set%)
  490      WHEN 4 : PROCok:quit%=TRUE
  500      WHEN 5 : quit%=TRUE
  510    ENDCASE
  520    WHEN 1 : CASE icon% OF
  530      WHEN 4 : PROCok:PROCopenwindow
  540      WHEN 5 : PROCopenwindow
  550    ENDCASE
  560    WHEN 64 : IFicon%=0 PROCstartdrag
  570  ENDCASE
  580ENDCASE
  590ENDPROC
  600:
  610DEFPROCok
  620LOCALpath$,fhandle%:path$=FNpathname($file%)
  630IFNOTFNset(main%,2) $file%=""
  640IF$file%<>"" SYS"OS_SetVarVal","SaveDesk$File",file%,LEN$file%,0,0 ELSE SYS"XOS_SetVarVal","SaveDesk$File",file%,-1,0,0
  650bootopt%=FNset(main%,3)
  660SYS"OS_Byte",161,16 TO ,,byte16%
  670byte16%=((byte16%ANDNOT16)OR16*-bootopt%)
  680SYS"OS_Byte",162,16,byte16%
  690IF bootopt% SYS"OS_FSControl",48,path$,2
  700fhandle%=OPENOUT("<AutoDesk$Dir>.!Boot")
  710BPUT#fhandle%,"| !Boot file for !AutoDesk"
  720BPUT#fhandle%,"| Written by Nick Kennedy"
  730BPUT#fhandle%,"IconSprites <Obey$Dir>.!Sprites"
  740IF$file%<>"" BPUT#fhandle%,"Set SaveDesk$File "+$file% ELSE BPUT#fhandle%,"UnSet SaveDesk$File"
  750CLOSE#fhandle%
  760OSCLI"SetType <AutoDesk$Dir>.!Boot Obey"
  770ENDPROC
  780:
  790DEFPROCpointerinfo(b%)
  800mx%=!b%:my%=b%!4:but%=b%!8:win%=b%!12:icon%=b%!16
  810ENDPROC
  820:
  830DEFPROCopenwindow
  840LOCALlen%
  850SYS"XOS_ReadVarVal","SaveDesk$File",file%,256,,3 TO ,,len% ; flag%
  860IF (flag%AND1) OR len%=0 $file%="!Boot":PROCclear(main%,2) ELSE file%?len%=13:PROCset(main%,2)
  870PROCclear(main%,1)
  880PROCbootopt
  890!b%=main%:SYS"Wimp_GetWindowState",,b%:SYS"Wimp_OpenWindow",,b%
  900ENDPROC
  910:
  920DEFPROCbootopt
  930LOCALpath$
  940SYS"OS_Byte",161,16 TO ,,byte16%
  950bootopt%=((byte16%AND16)>>4):OSCLI"Set Byte16 "+STR$bootopt%
  960IFbootopt% PROCset(main%,3) ELSE PROCclear(main%,3)
  970ENDPROC
  980:
  990DEFPROCvduvariables
 1000!b%=4:b%!4=5:b%!8=11:b%!12=12:b%!16=-1:SYS"OS_ReadVduVariables",b%,b%
 1010xlimit%=(b%!8)<<(!b%):ylimit%=(b%!12)<<(b%!4)
 1020ENDPROC
 1030:
 1040DEFPROCstartdrag
 1050SYS"OS_Byte",161,28 TO ,,byte28%
 1060dragtype%=((byte28%>>1)AND1)
 1070!b%=main%:SYS"Wimp_GetWindowState",,b%:wx%=b%!4+b%!20:wy%=b%!16-b%!24
 1080b%!4=0:SYS"Wimp_GetIconState",,b%:b%!8+=wx%:b%!12+=wy%:b%!16+=wx%:b%!20+=wy%
 1090CASE dragtype% OF
 1100WHEN 0 : !b%=0:b%!4=5:b%!24=0:b%!28=0:b%!32=xlimit%:b%!36=ylimit%:SYS"Wimp_DragBox",,b%
 1110WHEN 1 : SYS"DragASprite_Start",197,1,"file_fea",b%+8
 1120ENDCASE
 1130ENDPROC
 1140:
 1150DEFPROCstopdrag
 1160LOCALwin%,icon%,mx%,my%,dest%,dest$
 1170IF dragtype%=1 SYS"DragASprite_Stop"
 1180SYS"Wimp_GetPointerInfo",,b%:PROCpointerinfo(b%):file$=FNleafname($file%)
 1190!b%=0:SYS"Wimp_SendMessage",0,b%,win%,icon% TO ,,dest%
 1200SYS"TaskManager_TaskNameFromHandle",dest% TO dest$
 1210IFdest$="Filer" THEN
 1220b%!0=64:b%!12=0:b%!16=1:b%!20=win%:b%!24=icon%:b%!28=mx%:b%!32=my%:b%!36=256:b%!40=&FEA
 1230$(b%+44)=file$:SYS"Wimp_SendMessage",17,b%,win%,icon%
 1240ENDIF
 1250ENDPROC
 1260:
 1270DEFPROCmenuselect
 1280CASE !b% OF
 1290  WHEN 1 : quit%=TRUE
 1300ENDCASE
 1310ENDPROC
 1320:
 1330DEFPROCreceivemessage
 1340CASE b%!16 OF
 1350  WHEN 0 : quit%=TRUE
 1360  WHEN 2 : PROCset(main%,2):$file%=FNread0(b%+44):PROCclear(main%,1):PROCbootopt
 1370  WHEN &400C1 : PROCvduvariables
 1380ENDCASE
 1390ENDPROC
 1400:
 1410DEFFNread0(adr%)
 1420LOCALstr$:WHILE?adr%>31:str$+=CHR$?adr%:adr%+=1:ENDWHILE:=str$
 1430:
 1440DEFFNpathname(file$):IFINSTR(file$,".")=0 ="" ELSE =LEFT$(file$,LENfile$-LENFNleafname(file$)-1)
 1450DEFFNleafname(file$):WHILEINSTR(file$,".")>0:file$=MID$(file$,1+INSTR(file$,".")):ENDWHILE:=file$
 1460:
 1470DEFPROCset(win%,icon%)
 1480!b%=win%:b%!4=icon%:b%!8=(1<<21):b%!12=(1<<21)
 1490SYS"Wimp_SetIconState",,b%
 1500IFicon%=2 PROCshady(0)
 1510ENDPROC
 1520:
 1530DEFPROCclear(win%,icon%)
 1540!b%=win%:b%!4=icon%:b%!8=0:b%!12=(1<<21)
 1550SYS"Wimp_SetIconState",,b%
 1560IFicon%=2 PROCshady(1)
 1570ENDPROC
 1580:
 1590DEFFNset(win%,icon%)
 1600!b%=win%:b%!4=icon%:SYS"Wimp_GetIconState",,b%
 1610=(b%!24AND(1<<21))=(1<<21)
 1620:
 1630DEFPROCshady(set%)
 1640!b%=main%:b%!4=1:b%!8=set%*(1<<22):b%!12=(1<<22)
 1650SYS"Wimp_SetIconState",,b%
 1660ENDPROC
 1670:
 1680DEFPROCmenu(mennum%)
 1690men%=mennum%
 1700$b%="APPNAME":p%=b%+LEN"APPNAME"+1
 1710!p%=&70207:p%?4=44:p%?5=0:p%+=6
 1720PROCmenuitem(0,"INFO")
 1730PROCmenuitem(&80,"QUIT")
 1740!p%=0
 1750SYS"MessageTrans_MakeMenus",msgs%,b%,m%,256
 1760m%!(28+4)=info%
 1770SYS"Wimp_CreateMenu",,m%,mx%-70,my%+16
 1780ENDPROC
 1790:
 1800DEFPROCmenuitem(flags%,token$)
 1810$p%=token$+CHR$0:p%+=LENtoken$+1:p%=((p%+3)ANDNOT3):!p%=flags%:p%!4=0:p%!8=&7000021:p%+=12
 1820ENDPROC
 1830:
 1840DEFPROCquit
 1850IFmsgs%<>0 SYS"XMessageTrans_CloseFile",msgs%
 1860IFhandle%<>0 SYS"XWimp_CloseDown",handle%,&4B534154
 1870END
 1880:
 1890DEFPROCmessageinit
 1900LOCALmesflag%,mesfile$
 1910DIM msgs% 256,msg_out% 256
 1920mesfile$="<AutoDesk$Dir>.Messages"
 1930SYS"MessageTrans_FileInfo",,mesfile$ TO mesflag%,,messize%
 1940IF (mesflag% AND 1)=0 DIM msg_buffer% messize%
 1950$(msgs%+16)=mesfile$
 1960SYS"MessageTrans_OpenFile",msgs%,msgs%+16,msg_buffer%
 1970ENDPROC
 1980:
 1990DEFFNlookup(token$)
 2000LOCALvalue$
 2010SYS"MessageTrans_Lookup",msgs%,token$,msg_out%,256,0,0,0,0 TO ,,value$
 2020=value$
 2030:

�>!AutoDesk.!RunImage
� by Nick Kennedy
:
(�b% 256:msgs%=0:handle%=0
2R� � !b%=0:$(b%+4)=�$+" at line "+Þ:ș"Wimp_ReportError",b%,1,"AutoDesk":�quit
<	�init
Fg� � !b%=�:$(b%+4)=�$+" at line "+Þ+".":ș"Wimp_ReportError",b%,3,"AutoDesk" � ,but%:� but%=2 �quit
P�
Z	�poll
d�quit%=�
n	�quit
x:
�
��init
��messageinit:�vduvariables
�E�m% 256,ind% 320,cwi% 960,ind2% 512:ein%=ind%+320:ein2%=ind2%+512
�8mask%=�(4+8+64+(1<<7)+(1<<9)+(1<<8)+(1<<17)+(1<<18))
�quit%=�:men%=0
�Kș"Wimp_Initialise",200,&4B534154,�lookup("APPNAME") � version%,handle%
�5ș"Wimp_OpenTemplate",,"<AutoDesk$dir>.Templates"
�3ș"Wimp_LoadTemplate",,cwi%,ind%,ein%,-1,"Info"
�'ș"Wimp_CreateWindow",,cwi% � info%
�5ș"Wimp_LoadTemplate",,cwi%,ind2%,ein2%,-1,"Main"
�'ș"Wimp_CreateWindow",,cwi% � main%
�file%=cwi%!(88+32+20)
�ș"Wimp_CloseTemplate"
�openwindow
�
:
"
��poll
,ș"Wimp_Poll",mask%,b% � r%
6Ȏ r% �
@%� 2     : ș"Wimp_OpenWindow",,b%
J&� 3     : ș"Wimp_CloseWindow",,b%
T� 6     : �mouse
^%� 7     : �dragtype%>-1 �stopdrag
h� 9     : �menuselect
r� 17,18 : �receivemessage
|�
��
�:
���mouse
��pointerinfo(b%)
�5mx%=!b%:my%=b%!4:but%=b%!8:win%=b%!12:icon%=b%!16
�
Ȏ win% �
�� main% : Ȏ but% �
�    � 2 : �menu(1)
�    � 4 : Ȏ icon% �
�1      � 2 : set%=�set(main%,2):�shady(1+set%)
�      � 4 : �ok:quit%=�
�      � 5 : quit%=�
�	    �
    � 1 : Ȏ icon% �
      � 4 : �ok:�openwindow
      � 5 : �openwindow
&	    �
0"    � 64 : �icon%=0 �startdrag
:  �
D�
N�
X:
b��ok
l+�path$,fhandle%:path$=�pathname($file%)
v笤set(main%,2) $file%=""
�s�$file%<>"" ș"OS_SetVarVal","SaveDesk$File",file%,�$file%,0,0 � ș"XOS_SetVarVal","SaveDesk$File",file%,-1,0,0
�bootopt%=�set(main%,3)
�"ș"OS_Byte",161,16 � ,,byte16%
�(byte16%=((byte16%��16)�16*-bootopt%)
�ș"OS_Byte",162,16,byte16%
�*� bootopt% ș"OS_FSControl",48,path$,2
�&fhandle%=�("<AutoDesk$Dir>.!Boot")
�+�#fhandle%,"| !Boot file for !AutoDesk"
�*�#fhandle%,"| Written by Nick Kennedy"
�0�#fhandle%,"IconSprites <Obey$Dir>.!Sprites"
�Y�$file%<>"" �#fhandle%,"Set SaveDesk$File "+$file% � �#fhandle%,"UnSet SaveDesk$File"
��#fhandle%
�(�"SetType <AutoDesk$Dir>.!Boot Obey"
�
:
��pointerinfo(b%)
 5mx%=!b%:my%=b%!4:but%=b%!8:win%=b%!12:icon%=b%!16
*�
4:
>��openwindow
H	�len%
RDș"XOS_ReadVarVal","SaveDesk$File",file%,256,,3 � ,,len% ; flag%
\U� (flag%�1) � len%=0 $file%="!Boot":�clear(main%,2) � file%?len%=13:�set(main%,2)
f�clear(main%,1)
p�bootopt
zA!b%=main%:ș"Wimp_GetWindowState",,b%:ș"Wimp_OpenWindow",,b%
��
�:
�
��bootopt
�
�path$
�"ș"OS_Byte",161,16 � ,,byte16%
�7bootopt%=((byte16%�16)>>4):�"Set Byte16 "+�bootopt%
�-�bootopt% �set(main%,3) � �clear(main%,3)
��
�:
���vduvariables
�H!b%=4:b%!4=5:b%!8=11:b%!12=12:b%!16=-1:ș"OS_ReadVduVariables",b%,b%
�1xlimit%=(b%!8)<<(!b%):ylimit%=(b%!12)<<(b%!4)
��
:
��startdrag
"ș"OS_Byte",161,28 � ,,byte28%
$dragtype%=((byte28%>>1)�1)
.H!b%=main%:ș"Wimp_GetWindowState",,b%:wx%=b%!4+b%!20:wy%=b%!16-b%!24
8Ob%!4=0:ș"Wimp_GetIconState",,b%:b%!8+=wx%:b%!12+=wy%:b%!16+=wx%:b%!20+=wy%
BȎ dragtype% �
LW� 0 : !b%=0:b%!4=5:b%!24=0:b%!28=0:b%!32=xlimit%:b%!36=ylimit%:ș"Wimp_DragBox",,b%
V5� 1 : ș"DragASprite_Start",197,1,"file_fea",b%+8
`�
j�
t:
~��stopdrag
�#�win%,icon%,mx%,my%,dest%,dest$
�&� dragtype%=1 ș"DragASprite_Stop"
�Hș"Wimp_GetPointerInfo",,b%:�pointerinfo(b%):file$=�leafname($file%)
�8!b%=0:ș"Wimp_SendMessage",0,b%,win%,icon% � ,,dest%
�4ș"TaskManager_TaskNameFromHandle",dest% � dest$
��dest$="Filer" �
�[b%!0=64:b%!12=0:b%!16=1:b%!20=win%:b%!24=icon%:b%!28=mx%:b%!32=my%:b%!36=256:b%!40=&FEA
�8$(b%+44)=file$:ș"Wimp_SendMessage",17,b%,win%,icon%
��
��
�:
���menuselect
Ȏ !b% �

  � 1 : quit%=�
�
�
(:
2��receivemessage
<Ȏ b%!16 �
F  � 0 : quit%=�
PG  � 2 : �set(main%,2):$file%=�read0(b%+44):�clear(main%,1):�bootopt
Z  � &400C1 : �vduvariables
d�
n�
x:
�ݤread0(adr%)
�1�str$:ȕ?adr%>31:str$+=�?adr%:adr%+=1:�:=str$
�:
�Nݤpathname(file$):�file$,".")=0 ="" � =�file$,�file$-��leafname(file$)-1)
�Jݤleafname(file$):ȕ�file$,".")>0:file$=�file$,1+�file$,".")):�:=file$
�:
���set(win%,icon%)
�2!b%=win%:b%!4=icon%:b%!8=(1<<21):b%!12=(1<<21)
�ș"Wimp_SetIconState",,b%
��icon%=2 �shady(0)
��
�:
���clear(win%,icon%)
,!b%=win%:b%!4=icon%:b%!8=0:b%!12=(1<<21)
ș"Wimp_SetIconState",,b%
�icon%=2 �shady(1)
"�
,:
6ݤset(win%,icon%)
@1!b%=win%:b%!4=icon%:ș"Wimp_GetIconState",,b%
J=(b%!24�(1<<21))=(1<<21)
T:
^��shady(set%)
h4!b%=main%:b%!4=1:b%!8=set%*(1<<22):b%!12=(1<<22)
rș"Wimp_SetIconState",,b%
|�
�:
���menu(mennum%)
�men%=mennum%
�$$b%="APPNAME":p%=b%+�"APPNAME"+1
�#!p%=&70207:p%?4=44:p%?5=0:p%+=6
��menuitem(0,"INFO")
��menuitem(&80,"QUIT")
�	!p%=0
�.ș"MessageTrans_MakeMenus",msgs%,b%,m%,256
�m%!(28+4)=info%
�)ș"Wimp_CreateMenu",,m%,mx%-70,my%+16
��
�:
��menuitem(flags%,token$)
U$p%=token$+�0:p%+=�token$+1:p%=((p%+3)��3):!p%=flags%:p%!4=0:p%!8=&7000021:p%+=12
�
&:
0
��quit
:/�msgs%<>0 ș"XMessageTrans_CloseFile",msgs%
D5�handle%<>0 ș"XWimp_CloseDown",handle%,&4B534154
N�
X:
b��messageinit
l�mesflag%,mesfile$
v� msgs% 256,msg_out% 256
�&mesfile$="<AutoDesk$Dir>.Messages"
�<ș"MessageTrans_FileInfo",,mesfile$ � mesflag%,,messize%
�-� (mesflag% � 1)=0 � msg_buffer% messize%
�$(msgs%+16)=mesfile$
�8ș"MessageTrans_OpenFile",msgs%,msgs%+16,msg_buffer%
��
�:
�ݤlookup(token$)
��value$
�Hș"MessageTrans_Lookup",msgs%,token$,msg_out%,256,0,0,0,0 � ,,value$
�=value$
�:
�
00000000  0d 00 0a 19 f4 3e 21 41  75 74 6f 44 65 73 6b 2e  |.....>!AutoDesk.|
00000010  21 52 75 6e 49 6d 61 67  65 0d 00 14 15 f4 20 62  |!RunImage..... b|
00000020  79 20 4e 69 63 6b 20 4b  65 6e 6e 65 64 79 0d 00  |y Nick Kennedy..|
00000030  1e 05 3a 0d 00 28 1d de  62 25 20 32 35 36 3a 6d  |..:..(..b% 256:m|
00000040  73 67 73 25 3d 30 3a 68  61 6e 64 6c 65 25 3d 30  |sgs%=0:handle%=0|
00000050  0d 00 32 52 ee 20 85 20  21 62 25 3d 30 3a 24 28  |..2R. . !b%=0:$(|
00000060  62 25 2b 34 29 3d f6 24  2b 22 20 61 74 20 6c 69  |b%+4)=.$+" at li|
00000070  6e 65 20 22 2b c3 9e 3a  c8 99 22 57 69 6d 70 5f  |ne "+..:.."Wimp_|
00000080  52 65 70 6f 72 74 45 72  72 6f 72 22 2c 62 25 2c  |ReportError",b%,|
00000090  31 2c 22 41 75 74 6f 44  65 73 6b 22 3a f2 71 75  |1,"AutoDesk":.qu|
000000a0  69 74 0d 00 3c 09 f2 69  6e 69 74 0d 00 46 67 ee  |it..<..init..Fg.|
000000b0  20 85 20 21 62 25 3d 9f  3a 24 28 62 25 2b 34 29  | . !b%=.:$(b%+4)|
000000c0  3d f6 24 2b 22 20 61 74  20 6c 69 6e 65 20 22 2b  |=.$+" at line "+|
000000d0  c3 9e 2b 22 2e 22 3a c8  99 22 57 69 6d 70 5f 52  |..+".":.."Wimp_R|
000000e0  65 70 6f 72 74 45 72 72  6f 72 22 2c 62 25 2c 33  |eportError",b%,3|
000000f0  2c 22 41 75 74 6f 44 65  73 6b 22 20 b8 20 2c 62  |,"AutoDesk" . ,b|
00000100  75 74 25 3a e7 20 62 75  74 25 3d 32 20 f2 71 75  |ut%:. but%=2 .qu|
00000110  69 74 0d 00 50 05 f5 0d  00 5a 09 f2 70 6f 6c 6c  |it..P....Z..poll|
00000120  0d 00 64 0c fd 71 75 69  74 25 3d b9 0d 00 6e 09  |..d..quit%=...n.|
00000130  f2 71 75 69 74 0d 00 78  05 3a 0d 00 82 0a dd f2  |.quit..x.:......|
00000140  69 6e 69 74 0d 00 8c 1e  f2 6d 65 73 73 61 67 65  |init.....message|
00000150  69 6e 69 74 3a f2 76 64  75 76 61 72 69 61 62 6c  |init:.vduvariabl|
00000160  65 73 0d 00 96 45 de 6d  25 20 32 35 36 2c 69 6e  |es...E.m% 256,in|
00000170  64 25 20 33 32 30 2c 63  77 69 25 20 39 36 30 2c  |d% 320,cwi% 960,|
00000180  69 6e 64 32 25 20 35 31  32 3a 65 69 6e 25 3d 69  |ind2% 512:ein%=i|
00000190  6e 64 25 2b 33 32 30 3a  65 69 6e 32 25 3d 69 6e  |nd%+320:ein2%=in|
000001a0  64 32 25 2b 35 31 32 0d  00 a0 38 6d 61 73 6b 25  |d2%+512...8mask%|
000001b0  3d ac 28 34 2b 38 2b 36  34 2b 28 31 3c 3c 37 29  |=.(4+8+64+(1<<7)|
000001c0  2b 28 31 3c 3c 39 29 2b  28 31 3c 3c 38 29 2b 28  |+(1<<9)+(1<<8)+(|
000001d0  31 3c 3c 31 37 29 2b 28  31 3c 3c 31 38 29 29 0d  |1<<17)+(1<<18)).|
000001e0  00 aa 12 71 75 69 74 25  3d a3 3a 6d 65 6e 25 3d  |...quit%=.:men%=|
000001f0  30 0d 00 b4 4b c8 99 22  57 69 6d 70 5f 49 6e 69  |0...K.."Wimp_Ini|
00000200  74 69 61 6c 69 73 65 22  2c 32 30 30 2c 26 34 42  |tialise",200,&4B|
00000210  35 33 34 31 35 34 2c a4  6c 6f 6f 6b 75 70 28 22  |534154,.lookup("|
00000220  41 50 50 4e 41 4d 45 22  29 20 b8 20 76 65 72 73  |APPNAME") . vers|
00000230  69 6f 6e 25 2c 68 61 6e  64 6c 65 25 0d 00 be 35  |ion%,handle%...5|
00000240  c8 99 22 57 69 6d 70 5f  4f 70 65 6e 54 65 6d 70  |.."Wimp_OpenTemp|
00000250  6c 61 74 65 22 2c 2c 22  3c 41 75 74 6f 44 65 73  |late",,"<AutoDes|
00000260  6b 24 64 69 72 3e 2e 54  65 6d 70 6c 61 74 65 73  |k$dir>.Templates|
00000270  22 0d 00 c8 33 c8 99 22  57 69 6d 70 5f 4c 6f 61  |"...3.."Wimp_Loa|
00000280  64 54 65 6d 70 6c 61 74  65 22 2c 2c 63 77 69 25  |dTemplate",,cwi%|
00000290  2c 69 6e 64 25 2c 65 69  6e 25 2c 2d 31 2c 22 49  |,ind%,ein%,-1,"I|
000002a0  6e 66 6f 22 0d 00 d2 27  c8 99 22 57 69 6d 70 5f  |nfo"...'.."Wimp_|
000002b0  43 72 65 61 74 65 57 69  6e 64 6f 77 22 2c 2c 63  |CreateWindow",,c|
000002c0  77 69 25 20 b8 20 69 6e  66 6f 25 0d 00 dc 35 c8  |wi% . info%...5.|
000002d0  99 22 57 69 6d 70 5f 4c  6f 61 64 54 65 6d 70 6c  |."Wimp_LoadTempl|
000002e0  61 74 65 22 2c 2c 63 77  69 25 2c 69 6e 64 32 25  |ate",,cwi%,ind2%|
000002f0  2c 65 69 6e 32 25 2c 2d  31 2c 22 4d 61 69 6e 22  |,ein2%,-1,"Main"|
00000300  0d 00 e6 27 c8 99 22 57  69 6d 70 5f 43 72 65 61  |...'.."Wimp_Crea|
00000310  74 65 57 69 6e 64 6f 77  22 2c 2c 63 77 69 25 20  |teWindow",,cwi% |
00000320  b8 20 6d 61 69 6e 25 0d  00 f0 19 66 69 6c 65 25  |. main%....file%|
00000330  3d 63 77 69 25 21 28 38  38 2b 33 32 2b 32 30 29  |=cwi%!(88+32+20)|
00000340  0d 00 fa 1a c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |......"Wimp_Clos|
00000350  65 54 65 6d 70 6c 61 74  65 22 0d 01 04 0f f2 6f  |eTemplate".....o|
00000360  70 65 6e 77 69 6e 64 6f  77 0d 01 0e 05 e1 0d 01  |penwindow.......|
00000370  18 05 3a 0d 01 22 0a dd  f2 70 6f 6c 6c 0d 01 2c  |..:.."...poll..,|
00000380  1f c8 99 22 57 69 6d 70  5f 50 6f 6c 6c 22 2c 6d  |..."Wimp_Poll",m|
00000390  61 73 6b 25 2c 62 25 20  b8 20 72 25 0d 01 36 0b  |ask%,b% . r%..6.|
000003a0  c8 8e 20 72 25 20 ca 0d  01 40 25 c9 20 32 20 20  |.. r% ...@%. 2  |
000003b0  20 20 20 3a 20 c8 99 22  57 69 6d 70 5f 4f 70 65  |   : .."Wimp_Ope|
000003c0  6e 57 69 6e 64 6f 77 22  2c 2c 62 25 0d 01 4a 26  |nWindow",,b%..J&|
000003d0  c9 20 33 20 20 20 20 20  3a 20 c8 99 22 57 69 6d  |. 3     : .."Wim|
000003e0  70 5f 43 6c 6f 73 65 57  69 6e 64 6f 77 22 2c 2c  |p_CloseWindow",,|
000003f0  62 25 0d 01 54 14 c9 20  36 20 20 20 20 20 3a 20  |b%..T.. 6     : |
00000400  f2 6d 6f 75 73 65 0d 01  5e 25 c9 20 37 20 20 20  |.mouse..^%. 7   |
00000410  20 20 3a 20 e7 64 72 61  67 74 79 70 65 25 3e 2d  |  : .dragtype%>-|
00000420  31 20 f2 73 74 6f 70 64  72 61 67 0d 01 68 19 c9  |1 .stopdrag..h..|
00000430  20 39 20 20 20 20 20 3a  20 f2 6d 65 6e 75 73 65  | 9     : .menuse|
00000440  6c 65 63 74 0d 01 72 1d  c9 20 31 37 2c 31 38 20  |lect..r.. 17,18 |
00000450  3a 20 f2 72 65 63 65 69  76 65 6d 65 73 73 61 67  |: .receivemessag|
00000460  65 0d 01 7c 05 cb 0d 01  86 05 e1 0d 01 90 05 3a  |e..|...........:|
00000470  0d 01 9a 0b dd f2 6d 6f  75 73 65 0d 01 a4 14 f2  |......mouse.....|
00000480  70 6f 69 6e 74 65 72 69  6e 66 6f 28 62 25 29 0d  |pointerinfo(b%).|
00000490  01 ae 35 6d 78 25 3d 21  62 25 3a 6d 79 25 3d 62  |..5mx%=!b%:my%=b|
000004a0  25 21 34 3a 62 75 74 25  3d 62 25 21 38 3a 77 69  |%!4:but%=b%!8:wi|
000004b0  6e 25 3d 62 25 21 31 32  3a 69 63 6f 6e 25 3d 62  |n%=b%!12:icon%=b|
000004c0  25 21 31 36 0d 01 b8 0d  c8 8e 20 77 69 6e 25 20  |%!16...... win% |
000004d0  ca 0d 01 c2 17 c9 20 6d  61 69 6e 25 20 3a 20 c8  |...... main% : .|
000004e0  8e 20 62 75 74 25 20 ca  0d 01 cc 16 20 20 20 20  |. but% .....    |
000004f0  c9 20 32 20 3a 20 f2 6d  65 6e 75 28 31 29 0d 01  |. 2 : .menu(1)..|
00000500  d6 18 20 20 20 20 c9 20  34 20 3a 20 c8 8e 20 69  |..    . 4 : .. i|
00000510  63 6f 6e 25 20 ca 0d 01  e0 31 20 20 20 20 20 20  |con% ....1      |
00000520  c9 20 32 20 3a 20 73 65  74 25 3d a4 73 65 74 28  |. 2 : set%=.set(|
00000530  6d 61 69 6e 25 2c 32 29  3a f2 73 68 61 64 79 28  |main%,2):.shady(|
00000540  31 2b 73 65 74 25 29 0d  01 ea 1b 20 20 20 20 20  |1+set%)....     |
00000550  20 c9 20 34 20 3a 20 f2  6f 6b 3a 71 75 69 74 25  | . 4 : .ok:quit%|
00000560  3d b9 0d 01 f4 17 20 20  20 20 20 20 c9 20 35 20  |=.....      . 5 |
00000570  3a 20 71 75 69 74 25 3d  b9 0d 01 fe 09 20 20 20  |: quit%=.....   |
00000580  20 cb 0d 02 08 18 20 20  20 20 c9 20 31 20 3a 20  | .....    . 1 : |
00000590  c8 8e 20 69 63 6f 6e 25  20 ca 0d 02 12 1f 20 20  |.. icon% .....  |
000005a0  20 20 20 20 c9 20 34 20  3a 20 f2 6f 6b 3a f2 6f  |    . 4 : .ok:.o|
000005b0  70 65 6e 77 69 6e 64 6f  77 0d 02 1c 1b 20 20 20  |penwindow....   |
000005c0  20 20 20 c9 20 35 20 3a  20 f2 6f 70 65 6e 77 69  |   . 5 : .openwi|
000005d0  6e 64 6f 77 0d 02 26 09  20 20 20 20 cb 0d 02 30  |ndow..&.    ...0|
000005e0  22 20 20 20 20 c9 20 36  34 20 3a 20 e7 69 63 6f  |"    . 64 : .ico|
000005f0  6e 25 3d 30 20 f2 73 74  61 72 74 64 72 61 67 0d  |n%=0 .startdrag.|
00000600  02 3a 07 20 20 cb 0d 02  44 05 cb 0d 02 4e 05 e1  |.:.  ...D....N..|
00000610  0d 02 58 05 3a 0d 02 62  08 dd f2 6f 6b 0d 02 6c  |..X.:..b...ok..l|
00000620  2b ea 70 61 74 68 24 2c  66 68 61 6e 64 6c 65 25  |+.path$,fhandle%|
00000630  3a 70 61 74 68 24 3d a4  70 61 74 68 6e 61 6d 65  |:path$=.pathname|
00000640  28 24 66 69 6c 65 25 29  0d 02 76 1d e7 ac a4 73  |($file%)..v....s|
00000650  65 74 28 6d 61 69 6e 25  2c 32 29 20 24 66 69 6c  |et(main%,2) $fil|
00000660  65 25 3d 22 22 0d 02 80  73 e7 24 66 69 6c 65 25  |e%=""...s.$file%|
00000670  3c 3e 22 22 20 c8 99 22  4f 53 5f 53 65 74 56 61  |<>"" .."OS_SetVa|
00000680  72 56 61 6c 22 2c 22 53  61 76 65 44 65 73 6b 24  |rVal","SaveDesk$|
00000690  46 69 6c 65 22 2c 66 69  6c 65 25 2c a9 24 66 69  |File",file%,.$fi|
000006a0  6c 65 25 2c 30 2c 30 20  8b 20 c8 99 22 58 4f 53  |le%,0,0 . .."XOS|
000006b0  5f 53 65 74 56 61 72 56  61 6c 22 2c 22 53 61 76  |_SetVarVal","Sav|
000006c0  65 44 65 73 6b 24 46 69  6c 65 22 2c 66 69 6c 65  |eDesk$File",file|
000006d0  25 2c 2d 31 2c 30 2c 30  0d 02 8a 1a 62 6f 6f 74  |%,-1,0,0....boot|
000006e0  6f 70 74 25 3d a4 73 65  74 28 6d 61 69 6e 25 2c  |opt%=.set(main%,|
000006f0  33 29 0d 02 94 22 c8 99  22 4f 53 5f 42 79 74 65  |3)...".."OS_Byte|
00000700  22 2c 31 36 31 2c 31 36  20 b8 20 2c 2c 62 79 74  |",161,16 . ,,byt|
00000710  65 31 36 25 0d 02 9e 28  62 79 74 65 31 36 25 3d  |e16%...(byte16%=|
00000720  28 28 62 79 74 65 31 36  25 80 ac 31 36 29 84 31  |((byte16%..16).1|
00000730  36 2a 2d 62 6f 6f 74 6f  70 74 25 29 0d 02 a8 1e  |6*-bootopt%)....|
00000740  c8 99 22 4f 53 5f 42 79  74 65 22 2c 31 36 32 2c  |.."OS_Byte",162,|
00000750  31 36 2c 62 79 74 65 31  36 25 0d 02 b2 2a e7 20  |16,byte16%...*. |
00000760  62 6f 6f 74 6f 70 74 25  20 c8 99 22 4f 53 5f 46  |bootopt% .."OS_F|
00000770  53 43 6f 6e 74 72 6f 6c  22 2c 34 38 2c 70 61 74  |SControl",48,pat|
00000780  68 24 2c 32 0d 02 bc 26  66 68 61 6e 64 6c 65 25  |h$,2...&fhandle%|
00000790  3d ae 28 22 3c 41 75 74  6f 44 65 73 6b 24 44 69  |=.("<AutoDesk$Di|
000007a0  72 3e 2e 21 42 6f 6f 74  22 29 0d 02 c6 2b d5 23  |r>.!Boot")...+.#|
000007b0  66 68 61 6e 64 6c 65 25  2c 22 7c 20 21 42 6f 6f  |fhandle%,"| !Boo|
000007c0  74 20 66 69 6c 65 20 66  6f 72 20 21 41 75 74 6f  |t file for !Auto|
000007d0  44 65 73 6b 22 0d 02 d0  2a d5 23 66 68 61 6e 64  |Desk"...*.#fhand|
000007e0  6c 65 25 2c 22 7c 20 57  72 69 74 74 65 6e 20 62  |le%,"| Written b|
000007f0  79 20 4e 69 63 6b 20 4b  65 6e 6e 65 64 79 22 0d  |y Nick Kennedy".|
00000800  02 da 30 d5 23 66 68 61  6e 64 6c 65 25 2c 22 49  |..0.#fhandle%,"I|
00000810  63 6f 6e 53 70 72 69 74  65 73 20 3c 4f 62 65 79  |conSprites <Obey|
00000820  24 44 69 72 3e 2e 21 53  70 72 69 74 65 73 22 0d  |$Dir>.!Sprites".|
00000830  02 e4 59 e7 24 66 69 6c  65 25 3c 3e 22 22 20 d5  |..Y.$file%<>"" .|
00000840  23 66 68 61 6e 64 6c 65  25 2c 22 53 65 74 20 53  |#fhandle%,"Set S|
00000850  61 76 65 44 65 73 6b 24  46 69 6c 65 20 22 2b 24  |aveDesk$File "+$|
00000860  66 69 6c 65 25 20 8b 20  d5 23 66 68 61 6e 64 6c  |file% . .#fhandl|
00000870  65 25 2c 22 55 6e 53 65  74 20 53 61 76 65 44 65  |e%,"UnSet SaveDe|
00000880  73 6b 24 46 69 6c 65 22  0d 02 ee 0e d9 23 66 68  |sk$File".....#fh|
00000890  61 6e 64 6c 65 25 0d 02  f8 28 ff 22 53 65 74 54  |andle%...(."SetT|
000008a0  79 70 65 20 3c 41 75 74  6f 44 65 73 6b 24 44 69  |ype <AutoDesk$Di|
000008b0  72 3e 2e 21 42 6f 6f 74  20 4f 62 65 79 22 0d 03  |r>.!Boot Obey"..|
000008c0  02 05 e1 0d 03 0c 05 3a  0d 03 16 15 dd f2 70 6f  |.......:......po|
000008d0  69 6e 74 65 72 69 6e 66  6f 28 62 25 29 0d 03 20  |interinfo(b%).. |
000008e0  35 6d 78 25 3d 21 62 25  3a 6d 79 25 3d 62 25 21  |5mx%=!b%:my%=b%!|
000008f0  34 3a 62 75 74 25 3d 62  25 21 38 3a 77 69 6e 25  |4:but%=b%!8:win%|
00000900  3d 62 25 21 31 32 3a 69  63 6f 6e 25 3d 62 25 21  |=b%!12:icon%=b%!|
00000910  31 36 0d 03 2a 05 e1 0d  03 34 05 3a 0d 03 3e 10  |16..*....4.:..>.|
00000920  dd f2 6f 70 65 6e 77 69  6e 64 6f 77 0d 03 48 09  |..openwindow..H.|
00000930  ea 6c 65 6e 25 0d 03 52  44 c8 99 22 58 4f 53 5f  |.len%..RD.."XOS_|
00000940  52 65 61 64 56 61 72 56  61 6c 22 2c 22 53 61 76  |ReadVarVal","Sav|
00000950  65 44 65 73 6b 24 46 69  6c 65 22 2c 66 69 6c 65  |eDesk$File",file|
00000960  25 2c 32 35 36 2c 2c 33  20 b8 20 2c 2c 6c 65 6e  |%,256,,3 . ,,len|
00000970  25 20 3b 20 66 6c 61 67  25 0d 03 5c 55 e7 20 28  |% ; flag%..\U. (|
00000980  66 6c 61 67 25 80 31 29  20 84 20 6c 65 6e 25 3d  |flag%.1) . len%=|
00000990  30 20 24 66 69 6c 65 25  3d 22 21 42 6f 6f 74 22  |0 $file%="!Boot"|
000009a0  3a f2 63 6c 65 61 72 28  6d 61 69 6e 25 2c 32 29  |:.clear(main%,2)|
000009b0  20 8b 20 66 69 6c 65 25  3f 6c 65 6e 25 3d 31 33  | . file%?len%=13|
000009c0  3a f2 73 65 74 28 6d 61  69 6e 25 2c 32 29 0d 03  |:.set(main%,2)..|
000009d0  66 13 f2 63 6c 65 61 72  28 6d 61 69 6e 25 2c 31  |f..clear(main%,1|
000009e0  29 0d 03 70 0c f2 62 6f  6f 74 6f 70 74 0d 03 7a  |)..p..bootopt..z|
000009f0  41 21 62 25 3d 6d 61 69  6e 25 3a c8 99 22 57 69  |A!b%=main%:.."Wi|
00000a00  6d 70 5f 47 65 74 57 69  6e 64 6f 77 53 74 61 74  |mp_GetWindowStat|
00000a10  65 22 2c 2c 62 25 3a c8  99 22 57 69 6d 70 5f 4f  |e",,b%:.."Wimp_O|
00000a20  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 62 25 0d 03  |penWindow",,b%..|
00000a30  84 05 e1 0d 03 8e 05 3a  0d 03 98 0d dd f2 62 6f  |.......:......bo|
00000a40  6f 74 6f 70 74 0d 03 a2  0a ea 70 61 74 68 24 0d  |otopt.....path$.|
00000a50  03 ac 22 c8 99 22 4f 53  5f 42 79 74 65 22 2c 31  |..".."OS_Byte",1|
00000a60  36 31 2c 31 36 20 b8 20  2c 2c 62 79 74 65 31 36  |61,16 . ,,byte16|
00000a70  25 0d 03 b6 37 62 6f 6f  74 6f 70 74 25 3d 28 28  |%...7bootopt%=((|
00000a80  62 79 74 65 31 36 25 80  31 36 29 3e 3e 34 29 3a  |byte16%.16)>>4):|
00000a90  ff 22 53 65 74 20 42 79  74 65 31 36 20 22 2b c3  |."Set Byte16 "+.|
00000aa0  62 6f 6f 74 6f 70 74 25  0d 03 c0 2d e7 62 6f 6f  |bootopt%...-.boo|
00000ab0  74 6f 70 74 25 20 f2 73  65 74 28 6d 61 69 6e 25  |topt% .set(main%|
00000ac0  2c 33 29 20 8b 20 f2 63  6c 65 61 72 28 6d 61 69  |,3) . .clear(mai|
00000ad0  6e 25 2c 33 29 0d 03 ca  05 e1 0d 03 d4 05 3a 0d  |n%,3).........:.|
00000ae0  03 de 12 dd f2 76 64 75  76 61 72 69 61 62 6c 65  |.....vduvariable|
00000af0  73 0d 03 e8 48 21 62 25  3d 34 3a 62 25 21 34 3d  |s...H!b%=4:b%!4=|
00000b00  35 3a 62 25 21 38 3d 31  31 3a 62 25 21 31 32 3d  |5:b%!8=11:b%!12=|
00000b10  31 32 3a 62 25 21 31 36  3d 2d 31 3a c8 99 22 4f  |12:b%!16=-1:.."O|
00000b20  53 5f 52 65 61 64 56 64  75 56 61 72 69 61 62 6c  |S_ReadVduVariabl|
00000b30  65 73 22 2c 62 25 2c 62  25 0d 03 f2 31 78 6c 69  |es",b%,b%...1xli|
00000b40  6d 69 74 25 3d 28 62 25  21 38 29 3c 3c 28 21 62  |mit%=(b%!8)<<(!b|
00000b50  25 29 3a 79 6c 69 6d 69  74 25 3d 28 62 25 21 31  |%):ylimit%=(b%!1|
00000b60  32 29 3c 3c 28 62 25 21  34 29 0d 03 fc 05 e1 0d  |2)<<(b%!4)......|
00000b70  04 06 05 3a 0d 04 10 0f  dd f2 73 74 61 72 74 64  |...:......startd|
00000b80  72 61 67 0d 04 1a 22 c8  99 22 4f 53 5f 42 79 74  |rag...".."OS_Byt|
00000b90  65 22 2c 31 36 31 2c 32  38 20 b8 20 2c 2c 62 79  |e",161,28 . ,,by|
00000ba0  74 65 32 38 25 0d 04 24  1e 64 72 61 67 74 79 70  |te28%..$.dragtyp|
00000bb0  65 25 3d 28 28 62 79 74  65 32 38 25 3e 3e 31 29  |e%=((byte28%>>1)|
00000bc0  80 31 29 0d 04 2e 48 21  62 25 3d 6d 61 69 6e 25  |.1)...H!b%=main%|
00000bd0  3a c8 99 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  |:.."Wimp_GetWind|
00000be0  6f 77 53 74 61 74 65 22  2c 2c 62 25 3a 77 78 25  |owState",,b%:wx%|
00000bf0  3d 62 25 21 34 2b 62 25  21 32 30 3a 77 79 25 3d  |=b%!4+b%!20:wy%=|
00000c00  62 25 21 31 36 2d 62 25  21 32 34 0d 04 38 4f 62  |b%!16-b%!24..8Ob|
00000c10  25 21 34 3d 30 3a c8 99  22 57 69 6d 70 5f 47 65  |%!4=0:.."Wimp_Ge|
00000c20  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 62 25 3a  |tIconState",,b%:|
00000c30  62 25 21 38 2b 3d 77 78  25 3a 62 25 21 31 32 2b  |b%!8+=wx%:b%!12+|
00000c40  3d 77 79 25 3a 62 25 21  31 36 2b 3d 77 78 25 3a  |=wy%:b%!16+=wx%:|
00000c50  62 25 21 32 30 2b 3d 77  79 25 0d 04 42 12 c8 8e  |b%!20+=wy%..B...|
00000c60  20 64 72 61 67 74 79 70  65 25 20 ca 0d 04 4c 57  | dragtype% ...LW|
00000c70  c9 20 30 20 3a 20 21 62  25 3d 30 3a 62 25 21 34  |. 0 : !b%=0:b%!4|
00000c80  3d 35 3a 62 25 21 32 34  3d 30 3a 62 25 21 32 38  |=5:b%!24=0:b%!28|
00000c90  3d 30 3a 62 25 21 33 32  3d 78 6c 69 6d 69 74 25  |=0:b%!32=xlimit%|
00000ca0  3a 62 25 21 33 36 3d 79  6c 69 6d 69 74 25 3a c8  |:b%!36=ylimit%:.|
00000cb0  99 22 57 69 6d 70 5f 44  72 61 67 42 6f 78 22 2c  |."Wimp_DragBox",|
00000cc0  2c 62 25 0d 04 56 35 c9  20 31 20 3a 20 c8 99 22  |,b%..V5. 1 : .."|
00000cd0  44 72 61 67 41 53 70 72  69 74 65 5f 53 74 61 72  |DragASprite_Star|
00000ce0  74 22 2c 31 39 37 2c 31  2c 22 66 69 6c 65 5f 66  |t",197,1,"file_f|
00000cf0  65 61 22 2c 62 25 2b 38  0d 04 60 05 cb 0d 04 6a  |ea",b%+8..`....j|
00000d00  05 e1 0d 04 74 05 3a 0d  04 7e 0e dd f2 73 74 6f  |....t.:..~...sto|
00000d10  70 64 72 61 67 0d 04 88  23 ea 77 69 6e 25 2c 69  |pdrag...#.win%,i|
00000d20  63 6f 6e 25 2c 6d 78 25  2c 6d 79 25 2c 64 65 73  |con%,mx%,my%,des|
00000d30  74 25 2c 64 65 73 74 24  0d 04 92 26 e7 20 64 72  |t%,dest$...&. dr|
00000d40  61 67 74 79 70 65 25 3d  31 20 c8 99 22 44 72 61  |agtype%=1 .."Dra|
00000d50  67 41 53 70 72 69 74 65  5f 53 74 6f 70 22 0d 04  |gASprite_Stop"..|
00000d60  9c 48 c8 99 22 57 69 6d  70 5f 47 65 74 50 6f 69  |.H.."Wimp_GetPoi|
00000d70  6e 74 65 72 49 6e 66 6f  22 2c 2c 62 25 3a f2 70  |nterInfo",,b%:.p|
00000d80  6f 69 6e 74 65 72 69 6e  66 6f 28 62 25 29 3a 66  |ointerinfo(b%):f|
00000d90  69 6c 65 24 3d a4 6c 65  61 66 6e 61 6d 65 28 24  |ile$=.leafname($|
00000da0  66 69 6c 65 25 29 0d 04  a6 38 21 62 25 3d 30 3a  |file%)...8!b%=0:|
00000db0  c8 99 22 57 69 6d 70 5f  53 65 6e 64 4d 65 73 73  |.."Wimp_SendMess|
00000dc0  61 67 65 22 2c 30 2c 62  25 2c 77 69 6e 25 2c 69  |age",0,b%,win%,i|
00000dd0  63 6f 6e 25 20 b8 20 2c  2c 64 65 73 74 25 0d 04  |con% . ,,dest%..|
00000de0  b0 34 c8 99 22 54 61 73  6b 4d 61 6e 61 67 65 72  |.4.."TaskManager|
00000df0  5f 54 61 73 6b 4e 61 6d  65 46 72 6f 6d 48 61 6e  |_TaskNameFromHan|
00000e00  64 6c 65 22 2c 64 65 73  74 25 20 b8 20 64 65 73  |dle",dest% . des|
00000e10  74 24 0d 04 ba 14 e7 64  65 73 74 24 3d 22 46 69  |t$.....dest$="Fi|
00000e20  6c 65 72 22 20 8c 0d 04  c4 5b 62 25 21 30 3d 36  |ler" ....[b%!0=6|
00000e30  34 3a 62 25 21 31 32 3d  30 3a 62 25 21 31 36 3d  |4:b%!12=0:b%!16=|
00000e40  31 3a 62 25 21 32 30 3d  77 69 6e 25 3a 62 25 21  |1:b%!20=win%:b%!|
00000e50  32 34 3d 69 63 6f 6e 25  3a 62 25 21 32 38 3d 6d  |24=icon%:b%!28=m|
00000e60  78 25 3a 62 25 21 33 32  3d 6d 79 25 3a 62 25 21  |x%:b%!32=my%:b%!|
00000e70  33 36 3d 32 35 36 3a 62  25 21 34 30 3d 26 46 45  |36=256:b%!40=&FE|
00000e80  41 0d 04 ce 38 24 28 62  25 2b 34 34 29 3d 66 69  |A...8$(b%+44)=fi|
00000e90  6c 65 24 3a c8 99 22 57  69 6d 70 5f 53 65 6e 64  |le$:.."Wimp_Send|
00000ea0  4d 65 73 73 61 67 65 22  2c 31 37 2c 62 25 2c 77  |Message",17,b%,w|
00000eb0  69 6e 25 2c 69 63 6f 6e  25 0d 04 d8 05 cd 0d 04  |in%,icon%.......|
00000ec0  e2 05 e1 0d 04 ec 05 3a  0d 04 f6 10 dd f2 6d 65  |.......:......me|
00000ed0  6e 75 73 65 6c 65 63 74  0d 05 00 0c c8 8e 20 21  |nuselect...... !|
00000ee0  62 25 20 ca 0d 05 0a 13  20 20 c9 20 31 20 3a 20  |b% .....  . 1 : |
00000ef0  71 75 69 74 25 3d b9 0d  05 14 05 cb 0d 05 1e 05  |quit%=..........|
00000f00  e1 0d 05 28 05 3a 0d 05  32 14 dd f2 72 65 63 65  |...(.:..2...rece|
00000f10  69 76 65 6d 65 73 73 61  67 65 0d 05 3c 0e c8 8e  |ivemessage..<...|
00000f20  20 62 25 21 31 36 20 ca  0d 05 46 13 20 20 c9 20  | b%!16 ...F.  . |
00000f30  30 20 3a 20 71 75 69 74  25 3d b9 0d 05 50 47 20  |0 : quit%=...PG |
00000f40  20 c9 20 32 20 3a 20 f2  73 65 74 28 6d 61 69 6e  | . 2 : .set(main|
00000f50  25 2c 32 29 3a 24 66 69  6c 65 25 3d a4 72 65 61  |%,2):$file%=.rea|
00000f60  64 30 28 62 25 2b 34 34  29 3a f2 63 6c 65 61 72  |d0(b%+44):.clear|
00000f70  28 6d 61 69 6e 25 2c 31  29 3a f2 62 6f 6f 74 6f  |(main%,1):.booto|
00000f80  70 74 0d 05 5a 1e 20 20  c9 20 26 34 30 30 43 31  |pt..Z.  . &400C1|
00000f90  20 3a 20 f2 76 64 75 76  61 72 69 61 62 6c 65 73  | : .vduvariables|
00000fa0  0d 05 64 05 cb 0d 05 6e  05 e1 0d 05 78 05 3a 0d  |..d....n....x.:.|
00000fb0  05 82 11 dd a4 72 65 61  64 30 28 61 64 72 25 29  |.....read0(adr%)|
00000fc0  0d 05 8c 31 ea 73 74 72  24 3a c8 95 3f 61 64 72  |...1.str$:..?adr|
00000fd0  25 3e 33 31 3a 73 74 72  24 2b 3d bd 3f 61 64 72  |%>31:str$+=.?adr|
00000fe0  25 3a 61 64 72 25 2b 3d  31 3a ce 3a 3d 73 74 72  |%:adr%+=1:.:=str|
00000ff0  24 0d 05 96 05 3a 0d 05  a0 4e dd a4 70 61 74 68  |$....:...N..path|
00001000  6e 61 6d 65 28 66 69 6c  65 24 29 3a e7 a7 66 69  |name(file$):..fi|
00001010  6c 65 24 2c 22 2e 22 29  3d 30 20 3d 22 22 20 8b  |le$,".")=0 ="" .|
00001020  20 3d c0 66 69 6c 65 24  2c a9 66 69 6c 65 24 2d  | =.file$,.file$-|
00001030  a9 a4 6c 65 61 66 6e 61  6d 65 28 66 69 6c 65 24  |..leafname(file$|
00001040  29 2d 31 29 0d 05 aa 4a  dd a4 6c 65 61 66 6e 61  |)-1)...J..leafna|
00001050  6d 65 28 66 69 6c 65 24  29 3a c8 95 a7 66 69 6c  |me(file$):...fil|
00001060  65 24 2c 22 2e 22 29 3e  30 3a 66 69 6c 65 24 3d  |e$,".")>0:file$=|
00001070  c1 66 69 6c 65 24 2c 31  2b a7 66 69 6c 65 24 2c  |.file$,1+.file$,|
00001080  22 2e 22 29 29 3a ce 3a  3d 66 69 6c 65 24 0d 05  |".")):.:=file$..|
00001090  b4 05 3a 0d 05 be 15 dd  f2 73 65 74 28 77 69 6e  |..:......set(win|
000010a0  25 2c 69 63 6f 6e 25 29  0d 05 c8 32 21 62 25 3d  |%,icon%)...2!b%=|
000010b0  77 69 6e 25 3a 62 25 21  34 3d 69 63 6f 6e 25 3a  |win%:b%!4=icon%:|
000010c0  62 25 21 38 3d 28 31 3c  3c 32 31 29 3a 62 25 21  |b%!8=(1<<21):b%!|
000010d0  31 32 3d 28 31 3c 3c 32  31 29 0d 05 d2 1d c8 99  |12=(1<<21)......|
000010e0  22 57 69 6d 70 5f 53 65  74 49 63 6f 6e 53 74 61  |"Wimp_SetIconSta|
000010f0  74 65 22 2c 2c 62 25 0d  05 dc 16 e7 69 63 6f 6e  |te",,b%.....icon|
00001100  25 3d 32 20 f2 73 68 61  64 79 28 30 29 0d 05 e6  |%=2 .shady(0)...|
00001110  05 e1 0d 05 f0 05 3a 0d  05 fa 17 dd f2 63 6c 65  |......:......cle|
00001120  61 72 28 77 69 6e 25 2c  69 63 6f 6e 25 29 0d 06  |ar(win%,icon%)..|
00001130  04 2c 21 62 25 3d 77 69  6e 25 3a 62 25 21 34 3d  |.,!b%=win%:b%!4=|
00001140  69 63 6f 6e 25 3a 62 25  21 38 3d 30 3a 62 25 21  |icon%:b%!8=0:b%!|
00001150  31 32 3d 28 31 3c 3c 32  31 29 0d 06 0e 1d c8 99  |12=(1<<21)......|
00001160  22 57 69 6d 70 5f 53 65  74 49 63 6f 6e 53 74 61  |"Wimp_SetIconSta|
00001170  74 65 22 2c 2c 62 25 0d  06 18 16 e7 69 63 6f 6e  |te",,b%.....icon|
00001180  25 3d 32 20 f2 73 68 61  64 79 28 31 29 0d 06 22  |%=2 .shady(1).."|
00001190  05 e1 0d 06 2c 05 3a 0d  06 36 15 dd a4 73 65 74  |....,.:..6...set|
000011a0  28 77 69 6e 25 2c 69 63  6f 6e 25 29 0d 06 40 31  |(win%,icon%)..@1|
000011b0  21 62 25 3d 77 69 6e 25  3a 62 25 21 34 3d 69 63  |!b%=win%:b%!4=ic|
000011c0  6f 6e 25 3a c8 99 22 57  69 6d 70 5f 47 65 74 49  |on%:.."Wimp_GetI|
000011d0  63 6f 6e 53 74 61 74 65  22 2c 2c 62 25 0d 06 4a  |conState",,b%..J|
000011e0  1c 3d 28 62 25 21 32 34  80 28 31 3c 3c 32 31 29  |.=(b%!24.(1<<21)|
000011f0  29 3d 28 31 3c 3c 32 31  29 0d 06 54 05 3a 0d 06  |)=(1<<21)..T.:..|
00001200  5e 11 dd f2 73 68 61 64  79 28 73 65 74 25 29 0d  |^...shady(set%).|
00001210  06 68 34 21 62 25 3d 6d  61 69 6e 25 3a 62 25 21  |.h4!b%=main%:b%!|
00001220  34 3d 31 3a 62 25 21 38  3d 73 65 74 25 2a 28 31  |4=1:b%!8=set%*(1|
00001230  3c 3c 32 32 29 3a 62 25  21 31 32 3d 28 31 3c 3c  |<<22):b%!12=(1<<|
00001240  32 32 29 0d 06 72 1d c8  99 22 57 69 6d 70 5f 53  |22)..r..."Wimp_S|
00001250  65 74 49 63 6f 6e 53 74  61 74 65 22 2c 2c 62 25  |etIconState",,b%|
00001260  0d 06 7c 05 e1 0d 06 86  05 3a 0d 06 90 13 dd f2  |..|......:......|
00001270  6d 65 6e 75 28 6d 65 6e  6e 75 6d 25 29 0d 06 9a  |menu(mennum%)...|
00001280  10 6d 65 6e 25 3d 6d 65  6e 6e 75 6d 25 0d 06 a4  |.men%=mennum%...|
00001290  24 24 62 25 3d 22 41 50  50 4e 41 4d 45 22 3a 70  |$$b%="APPNAME":p|
000012a0  25 3d 62 25 2b a9 22 41  50 50 4e 41 4d 45 22 2b  |%=b%+."APPNAME"+|
000012b0  31 0d 06 ae 23 21 70 25  3d 26 37 30 32 30 37 3a  |1...#!p%=&70207:|
000012c0  70 25 3f 34 3d 34 34 3a  70 25 3f 35 3d 30 3a 70  |p%?4=44:p%?5=0:p|
000012d0  25 2b 3d 36 0d 06 b8 17  f2 6d 65 6e 75 69 74 65  |%+=6.....menuite|
000012e0  6d 28 30 2c 22 49 4e 46  4f 22 29 0d 06 c2 19 f2  |m(0,"INFO").....|
000012f0  6d 65 6e 75 69 74 65 6d  28 26 38 30 2c 22 51 55  |menuitem(&80,"QU|
00001300  49 54 22 29 0d 06 cc 09  21 70 25 3d 30 0d 06 d6  |IT")....!p%=0...|
00001310  2e c8 99 22 4d 65 73 73  61 67 65 54 72 61 6e 73  |..."MessageTrans|
00001320  5f 4d 61 6b 65 4d 65 6e  75 73 22 2c 6d 73 67 73  |_MakeMenus",msgs|
00001330  25 2c 62 25 2c 6d 25 2c  32 35 36 0d 06 e0 13 6d  |%,b%,m%,256....m|
00001340  25 21 28 32 38 2b 34 29  3d 69 6e 66 6f 25 0d 06  |%!(28+4)=info%..|
00001350  ea 29 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |.).."Wimp_Create|
00001360  4d 65 6e 75 22 2c 2c 6d  25 2c 6d 78 25 2d 37 30  |Menu",,m%,mx%-70|
00001370  2c 6d 79 25 2b 31 36 0d  06 f4 05 e1 0d 06 fe 05  |,my%+16.........|
00001380  3a 0d 07 08 1d dd f2 6d  65 6e 75 69 74 65 6d 28  |:......menuitem(|
00001390  66 6c 61 67 73 25 2c 74  6f 6b 65 6e 24 29 0d 07  |flags%,token$)..|
000013a0  12 55 24 70 25 3d 74 6f  6b 65 6e 24 2b bd 30 3a  |.U$p%=token$+.0:|
000013b0  70 25 2b 3d a9 74 6f 6b  65 6e 24 2b 31 3a 70 25  |p%+=.token$+1:p%|
000013c0  3d 28 28 70 25 2b 33 29  80 ac 33 29 3a 21 70 25  |=((p%+3)..3):!p%|
000013d0  3d 66 6c 61 67 73 25 3a  70 25 21 34 3d 30 3a 70  |=flags%:p%!4=0:p|
000013e0  25 21 38 3d 26 37 30 30  30 30 32 31 3a 70 25 2b  |%!8=&7000021:p%+|
000013f0  3d 31 32 0d 07 1c 05 e1  0d 07 26 05 3a 0d 07 30  |=12.......&.:..0|
00001400  0a dd f2 71 75 69 74 0d  07 3a 2f e7 6d 73 67 73  |...quit..:/.msgs|
00001410  25 3c 3e 30 20 c8 99 22  58 4d 65 73 73 61 67 65  |%<>0 .."XMessage|
00001420  54 72 61 6e 73 5f 43 6c  6f 73 65 46 69 6c 65 22  |Trans_CloseFile"|
00001430  2c 6d 73 67 73 25 0d 07  44 35 e7 68 61 6e 64 6c  |,msgs%..D5.handl|
00001440  65 25 3c 3e 30 20 c8 99  22 58 57 69 6d 70 5f 43  |e%<>0 .."XWimp_C|
00001450  6c 6f 73 65 44 6f 77 6e  22 2c 68 61 6e 64 6c 65  |loseDown",handle|
00001460  25 2c 26 34 42 35 33 34  31 35 34 0d 07 4e 05 e0  |%,&4B534154..N..|
00001470  0d 07 58 05 3a 0d 07 62  11 dd f2 6d 65 73 73 61  |..X.:..b...messa|
00001480  67 65 69 6e 69 74 0d 07  6c 16 ea 6d 65 73 66 6c  |geinit..l..mesfl|
00001490  61 67 25 2c 6d 65 73 66  69 6c 65 24 0d 07 76 1c  |ag%,mesfile$..v.|
000014a0  de 20 6d 73 67 73 25 20  32 35 36 2c 6d 73 67 5f  |. msgs% 256,msg_|
000014b0  6f 75 74 25 20 32 35 36  0d 07 80 26 6d 65 73 66  |out% 256...&mesf|
000014c0  69 6c 65 24 3d 22 3c 41  75 74 6f 44 65 73 6b 24  |ile$="<AutoDesk$|
000014d0  44 69 72 3e 2e 4d 65 73  73 61 67 65 73 22 0d 07  |Dir>.Messages"..|
000014e0  8a 3c c8 99 22 4d 65 73  73 61 67 65 54 72 61 6e  |.<.."MessageTran|
000014f0  73 5f 46 69 6c 65 49 6e  66 6f 22 2c 2c 6d 65 73  |s_FileInfo",,mes|
00001500  66 69 6c 65 24 20 b8 20  6d 65 73 66 6c 61 67 25  |file$ . mesflag%|
00001510  2c 2c 6d 65 73 73 69 7a  65 25 0d 07 94 2d e7 20  |,,messize%...-. |
00001520  28 6d 65 73 66 6c 61 67  25 20 80 20 31 29 3d 30  |(mesflag% . 1)=0|
00001530  20 de 20 6d 73 67 5f 62  75 66 66 65 72 25 20 6d  | . msg_buffer% m|
00001540  65 73 73 69 7a 65 25 0d  07 9e 18 24 28 6d 73 67  |essize%....$(msg|
00001550  73 25 2b 31 36 29 3d 6d  65 73 66 69 6c 65 24 0d  |s%+16)=mesfile$.|
00001560  07 a8 38 c8 99 22 4d 65  73 73 61 67 65 54 72 61  |..8.."MessageTra|
00001570  6e 73 5f 4f 70 65 6e 46  69 6c 65 22 2c 6d 73 67  |ns_OpenFile",msg|
00001580  73 25 2c 6d 73 67 73 25  2b 31 36 2c 6d 73 67 5f  |s%,msgs%+16,msg_|
00001590  62 75 66 66 65 72 25 0d  07 b2 05 e1 0d 07 bc 05  |buffer%.........|
000015a0  3a 0d 07 c6 14 dd a4 6c  6f 6f 6b 75 70 28 74 6f  |:......lookup(to|
000015b0  6b 65 6e 24 29 0d 07 d0  0b ea 76 61 6c 75 65 24  |ken$).....value$|
000015c0  0d 07 da 48 c8 99 22 4d  65 73 73 61 67 65 54 72  |...H.."MessageTr|
000015d0  61 6e 73 5f 4c 6f 6f 6b  75 70 22 2c 6d 73 67 73  |ans_Lookup",msgs|
000015e0  25 2c 74 6f 6b 65 6e 24  2c 6d 73 67 5f 6f 75 74  |%,token$,msg_out|
000015f0  25 2c 32 35 36 2c 30 2c  30 2c 30 2c 30 20 b8 20  |%,256,0,0,0,0 . |
00001600  2c 2c 76 61 6c 75 65 24  0d 07 e4 0b 3d 76 61 6c  |,,value$....=val|
00001610  75 65 24 0d 07 ee 05 3a  0d ff                    |ue$....:..|
0000161a