Home » Archimedes archive » Archimedes World » AW-1995-04-Disc1.adf » Disk1Apr95 » !AWApr95/Goodies/Lottery/!Lottery/!RunImage

!AWApr95/Goodies/Lottery/!Lottery/!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 » Archimedes World » AW-1995-04-Disc1.adf » Disk1Apr95
Filename: !AWApr95/Goodies/Lottery/!Lottery/!RunImage
Read OK:
File size: 2CF1 bytes
Load address: 0000
Exec address: 0000
File contents
   10                           PROCWimp_Start("Lottery",650,390)
   20                           PROCUser_SetInitialData
   30                           PROCCreate_Windows
   40                           PROCCreate_Menus
   50                           PROCWimp_WaitForEvent
   60                           PROCWimp_CloseDown
   70                           END
   80       :
   90       DEF PROCUser_SetInitialData
  100       DIMnumber(49),Block% 256
  110       ENDPROC
  120       :
  130       DEF PROCCreate_Windows
  140                PROCWimp_SpritesLoad
  150                random_Window%=FNWimp_WindowLoad("random")
  160                info_Window%=FNWimp_WindowLoad("info")
  170       Bar_Icon%=FNWimp_IconBar("!Lottery")
  180       ENDPROC
  190        :
  200        DEF FNEvent_Save(window%)=FALSE
  210        :
  220        DEF FNEvent_Sprites(window%)=sprites%
  230       :
  240       DEF PROCCreate_Menus
  250         Bar_Menu%=FNWimp_MenuCreate("Lottery\Info>info_Window%\Quit")
  260       ENDPROC:info_Window%="XXXXX"
  270        :
  280        DEF FNEvent_Menu(window%)
  290        CASE window% OF
  300         WHEN Bar_Window%        : =Bar_Menu%
  310         OTHERWISE               : =FALSE
  320        ENDCASE
  330       :
  340       DEF PROCEvent_WindowClose(window%,buttons%)
  350       CASE window% OF
  360       ENDCASE
  370       ENDPROC
  380       :
  390       DEF PROCEvent_Draw(window%,x_origin%,y_origin%)
  400       CASE window% OF
  410        WHEN random_Window%      : PROCUser_DrawrandomWindow
  420       ENDCASE
  430       ENDPROC
  440             :
  450             DEF PROCUser_DrawrandomWindow
  460             ENDPROC
  470       :
  480       DEF PROCEvent_MouseClick(window%,icon%,button%,x%,y%)
  490       CASE window% OF
  500        WHEN Bar_Window%        : PROCUser_MouseBar
  510        WHEN random_Window%     : IF icon%=10 THEN PROCnumbers
  520       ENDCASE
  530       ENDPROC
  540         :
  550         DEF PROCUser_MouseBar
  560           PROCWimp_WindowOpen(random_Window%)
  570         ENDPROC
  580         :
  590       :
  600       DEF PROCEvent_KeyPress(window%,icon%,key%)
  610       ENDPROC
  620         :
  630       DEF PROCEvent_MenuChoice(menu%)
  640        CASE menu% OF
  650              WHEN Bar_Menu%          : PROCUser_MenuChoiceBar
  660        ENDCASE
  670       ENDPROC
  680       :
  690       DEF PROCUser_MenuChoiceBar
  700        CASE FNWimp_MenuChoice(0) OF
  710         WHEN 2 :finished%=TRUE
  720        ENDCASE
  730       ENDPROC
  740       :
  750       :
  760DEFPROCnumbers
  770
  780        SYS "OS_SpriteOp",&13C,sprites%,"logo",0 TO r0,r1,r2,r3
  790        SYS "OS_SpriteOp",&122,sprites%,"logo2",0,0,8
  800        SYS "OS_SpriteOp",r0,r1,r2,r3
  810        Block%!0=random_Window%
  820        Block%!4=10
  830        Block%!8=0
  840        Block%!12=0
  850        SYS "Wimp_SetIconState",,Block%
  860
  870
  880FOR shuffle=1 TO 5
  890
  900no=6
  910
  920SYS"Hourglass_On"
  930  FOR loop = 1 TO no
  940   REPEAT
  950     A%=RND(49)
  960     used%=0
  970     AA=A%+((TIME AND 31)+RND(5)):IF AA>49 THEN AA-=49
  980     x=1
  990     REPEAT:
 1000       IF AA=number(x) THEN used%=1
 1010       x+=1
 1020     UNTIL x=49 OR used%=1
 1030   UNTIL used%=0
 1040   number(loop)=AA
 1050 NEXT loop
 1060  SYS"Hourglass_Off"
 1070
 1080ico=1
 1090 FOR x=1 TO 49
 1100  FOR xx=1 TO no
 1110   IF number(xx)=x THEN PROCWimp_IconPutText(random_Window%,ico,STR$(number(xx))):ico+=1
 1120  NEXT
 1130 NEXT
 1140
 1150NEXT  shuffle
 1160
 1170        SYS "OS_SpriteOp",&13C,sprites%,"logo",0 TO r0,r1,r2,r3
 1180        SYS "OS_SpriteOp",&122,sprites%,"logoX",0,0,8
 1190        SYS "OS_SpriteOp",r0,r1,r2,r3
 1200        Block%!0=random_Window%
 1210        Block%!4=10
 1220        Block%!8=0
 1230        Block%!12=0
 1240        SYS "Wimp_SetIconState",,Block%
 1250
 1260
 1270
 1280ENDPROC
 1290
 1300
 1310DEF PROCWimp_WindowAlert(title$,message$)
 1320PROCWimp_WindowAlertBox(title$,message$,0)
 1330ENDPROC
 1340:
 1350DEF PROCWimp_WindowAlertBox(title$,message$,button%)
 1360LOCAL response%
 1370$(wimp%+4)=message$
 1380CASE button% OF
 1390 WHEN 2    : response%=1
 1400 WHEN 1    : response%=15
 1410 WHEN 3    : response%=(1<<5)+16
 1420 WHEN 4    : response%=(1<<6)+16
 1430OTHERWISE : response%=16
 1440ENDCASE
 1450SYS "Wimp_ReportError",wimp%,response%,title$ TO ,response%
 1460ENDPROC
 1470:
 1480DEF FNWimp_WindowLoad(window$)
 1490=FNWimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates")
 1500:
 1510DEF FNWimp_WindowLoadFrom(window$,template$)
 1520LOCAL c%,i%,n%,j%,sp$,sp2$
 1530SYS "Wimp_OpenTemplate",,template$
 1540SYS "Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0 TO ,,icons%
 1550CASE sprites% OF
 1560 WHEN 1    : wimp%!64=sprites%
 1570 OTHERWISE : wimp%!64=FNEvent_Sprites(window%)
 1580ENDCASE
 1590SYS "Wimp_CreateWindow",,wimp% TO c%
 1600SYS "Wimp_CloseTemplate"
 1610SYS "Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8)
 1620CASE wimp%!40 OF
 1630 WHEN -1   :
 1640 OTHERWISE : i%=40
 1650 REPEAT
 1660   wimp%!4=wimp%!i% : wimp%!0=c%
 1670   SYS "Wimp_GetIconState",,wimp%
 1680   sp$=FNWimp_GetStringAtAddress(wimp%!28)
 1690   SYS "Wimp_DeleteIcon",,wimp%
 1700   CASE sprites% OF
 1710    WHEN 1    : wimp%!32=1
 1720    OTHERWISE :
 1730     SYS "OS_SpriteOp",&108,sprites% TO ,,,n%
 1740     j%=0
 1750     REPEAT : j%+=1
 1760      SYS "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
 1770      sp2$=FNWimp_GetStringAtAddress(pointer_block%)
 1780     UNTIL j%=n% OR sp$=sp2$
 1790     IF sp$=sp2$ THEN wimp%!32=sprites% ELSE wimp%!32=1
 1800   ENDCASE
 1810   wimp%!4=c%
 1820   SYS "Wimp_CreateIcon",,wimp%+4
 1830   i%+=4
 1840 UNTIL (wimp%!i%)=-1
 1850ENDCASE
 1860=c%
 1870:
 1880:
 1890DEF PROCWimp_WindowOpen(window%)
 1900!wimp%=window%
 1910SYS "Wimp_GetWindowState",,wimp%
 1920SYS "Wimp_OpenWindow",,wimp%
 1930ENDPROC
 1940:
 1950:
 1960DEF FNWimp_IconBar(Sprite$)
 1970LOCAL icon%
 1980wimp%!0=-1
 1990wimp%!4=0     : wimp%!8=0
 2000wimp%!12=68 : wimp%!16=68
 2010wimp%!20=&3002
 2020$(wimp%+24)=Sprite$
 2030SYS "Wimp_CreateIcon",,wimp% TO icon%
 2040=icon%
 2050:
 2060DEF PROCWimp_IconCaret(window%,icon%,chars%)
 2070SYS "Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
 2080ENDPROC
 2090:
 2100DEF FNWimp_IconText(window%,icon%)
 2110wimp%!0=window% : wimp%!4=icon%
 2120SYS "Wimp_GetIconState",,wimp%
 2130IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
 2140=$(wimp%!28)
 2150:
 2160:
 2170DEF PROCWimp_IconPutText(window%,icon%,text$)
 2180wimp%!0=window% : wimp%!4=icon%
 2190SYS "Wimp_GetIconState",,wimp%
 2200IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
 2210$(wimp%!28)=text$
 2220wimp%!0=window% : wimp%!4=icon%
 2230wimp%!8=0 : wimp%!12=0
 2240SYS "Wimp_SetIconState",,wimp%
 2250ENDPROC
 2260:
 2270DEF FNWimp_MenuChoice(level%)
 2280=(wimp%!(4*level%))+1
 2290:
 2300DEF FNWimp_MenuCreate(menu$)
 2310IF menu$="Colours" THEN=FNWimp_MenuColours
 2320LOCAL menu%,index%,width%,length%,k%,s%
 2330DIM menu% 28+FNWimp_MenuNoOfEntries(menu$)*24
 2340menu%?12=7   : menu%?13=2  : menu%?14=7 :menu%?15=0
 2350menu%!16=140 : menu%!20=44 : menu%!24=0
 2360index%=menu%+28
 2370$menu%=LEFT$(menu$,INSTR(menu$,"\")-1)
 2380width%=LEN(LEFT$(menu$,INSTR(menu$,"\")-1))
 2390menu$+="\" :
 2400WHILE menu$<>""
 2410menu$=MID$(menu$,INSTR(menu$,"\")+1)
 2420CASE menu$ OF
 2430 WHEN ""
 2440 OTHERWISE :
 2450  !index%=0 : index%!4=-1 : index%!8=&7000021
 2460  length%=INSTR(menu$,"\")-1
 2470  k%=INSTR(LEFT$(menu$,length%),">")
 2480  CASE k% OF
 2490   WHEN 0
 2500   OTHERWISE
 2510    s%=EVAL(MID$(menu$,k%+1,length%-k%))
 2520    index%!4=s%
 2530    length%=k%-1
 2540  ENDCASE
 2550  $(index%+12)=LEFT$(menu$,length%)
 2560  IF length%>width% THEN width%=length%
 2570  index%+=24
 2580ENDCASE
 2590ENDWHILE
 2600menu%!16=16*(width%+1)
 2610index%!-24=index%!-24 OR &80 : =menu%
 2620:
 2630DEF FNWimp_MenuColours
 2640=FNWimp_MenuCreateColours(" ")
 2650:
 2660DEF FNWimp_MenuCreateColours(title$)
 2670LOCAL x$,men%,j%,i%
 2680x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
 2690men%=FNWimp_MenuCreate(x$)
 2700FOR i%=0 TO 15
 2710CASE TRUE OF
 2720WHEN i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7
 2730OTHERWISE : j%=0
 2740ENDCASE
 2750men%?(39+i%*24)=i%*16+j%
 2760PROCWimp_MenuCentre(men%,i%+1)
 2770NEXT
 2780=men%
 2790:
 2800DEF FNWimp_MenuNoOfEntries(menu$)
 2810LOCAL n% ,j% : n%=0 : j%=0
 2820REPEAT
 2830j%=INSTR(menu$,"\",j%+1)
 2840IF j%<>0 THEN n%+=1
 2850UNTIL j%=0
 2860=n%
 2870:
 2880:
 2890DEF PROCWimp_MenuCentre(menu%,item%)
 2900menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<3)
 2910ENDPROC
 2920:
 2930:
 2940:
 2950:
 2960
 2970DEF FNWimp_GetStringAtAddress(array%)
 2980LOCALs$:s$=""
 2990WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE:
 3000=s$
 3010:
 3020DEF FNWimp_GetFileFromPathname(f$)
 3030CASE INSTR(f$,".") OF
 3040 WHEN 0    :=f$
 3050 OTHERWISE :=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
 3060ENDCASE
 3070:
 3080DEF PROCWimp_Start(TaskName$,wimp_memory%,icon%)
 3090DIM wimp% wimp_memory%,icons% icon%
 3100IF wimp_memory%<256 THEN wimp_memory%=256
 3110icon_memory%=icons%+icon%
 3120task$=TaskName$
 3130PROCWimp_SetEventVariables
 3140ON ERROR PROCWimp_Error:END
 3150SYS"Wimp_Initialise",200,&4B534154,TaskName$ TO version%,task%
 3160ENDPROC
 3170:
 3180:
 3190DEF PROCWimp_SetEventVariables
 3200DIM pointer_block% 20
 3210interface%=FALSE
 3220key%=1<<8:menu%=1<<9:
 3230window%=0
 3240sprites%=1:version%=0:task%=0
 3250Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0
 3260x_origin%=0:y_origin%=0:
 3270ENDPROC
 3280:
 3290DEF PROCWimp_Error
 3300LOCALX$,x%
 3310ON ERROR OFF
 3320x%=ERL
 3330X$=REPORT$+"atline"+STR$(x%DIV10)
 3340DIMErrorMsg%36
 3350ErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x%
 3360$(ErrorMsg%+24)="!RunImage"
 3370SYS"Wimp_SendMessage",17,ErrorMsg%
 3380PROCWimp_WindowAlert(task$,X$)
 3390PROCWimp_CloseDown
 3400ENDPROC
 3410:
 3420DEF PROCWimp_CloseDown
 3430SYS"Wimp_CloseDown",task%,"TASK"
 3440ENDPROC
 3450:
 3460:
 3470:
 3480:
 3490DEF PROCWimp_WaitForEvent
 3500LOCAL mask%,event%
 3510finished%=FALSE
 3520mask%=%111000011001
 3530REPEAT
 3540 SYS"Wimp_Poll",mask%,wimp% TO event%
 3550 CASE event% OF
 3560  WHEN1 : PROCWimp_PollDrawWindow
 3570  WHEN2 : SYS "Wimp_OpenWindow",,wimp%
 3580  WHEN3 : PROCWimp_PollCloseWindow
 3590  WHEN6 : PROCWimp_PollMouseClick
 3600  WHEN8 : PROCWimp_PollKeyPress
 3610  WHEN9 : PROCEvent_MenuChoice(menu%)
 3620  WHEN17,18: REM messages
 3630    CASE wimp%!16 OF
 3640     WHEN 0:finished%=TRUE
 3650   ENDCASE
 3660 ENDCASE
 3670UNTIL finished%
 3680ENDPROC
 3690:
 3700DEF PROCWimp_PollDrawWindow
 3710LOCAL more%
 3720SYS"Wimp_RedrawWindow",,wimp%TOmore%
 3730window%=wimp%!0
 3740x_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24
 3750WHILEmore%
 3760 IF interface% THEN SYS"Wimp_BorderWindow",,wimp%
 3770 PROCEvent_Draw(window%,x_origin%,y_origin%)
 3780 SYS"Wimp_GetRectangle",,wimp%TOmore%
 3790ENDWHILE
 3800ENDPROC
 3810:
 3820DEF PROCWimp_PollCloseWindow
 3830  SYS "Wimp_GetPointerInfo",,wimp%
 3840  window%=wimp%!12 : buttons%=wimp%!8
 3850 PROCEvent_WindowClose(window%,buttons%)
 3860 !wimp%=window% : SYS "Wimp_CloseWindow",,wimp%
 3870ENDPROC
 3880:
 3890DEF PROCWimp_PollMouseClick
 3900 button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
 3910 CASE button% OF
 3920   WHEN2    : PROCWimp_PollMenuPopUp
 3930   OTHERWISE: CASE FNEvent_Save(window%) OF
 3940               WHEN TRUE : PROCWimp_PollMouseSave
 3950               WHEN FALSE: PROCWimp_PollEventMouseClick
 3960              ENDCASE
 3970 ENDCASE
 3980ENDPROC
 3990:
 4000DEF PROCWimp_PollMenuPopUp
 4010menu%=FNEvent_Menu(window%)
 4020  CASE menu%  OF
 4030   WHEN FALSE:
 4040   OTHERWISE :
 4050     CASE window% OF
 4060      WHEN -2   : n%=0
 4070        WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0
 4080         n%+=1
 4090        ENDWHILE
 4100        SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+44+(n%*44)
 4110      OTHERWISE : SYS"Wimp_CreateMenu",,menu%,x%-64,y%+20
 4120     ENDCASE
 4130  ENDCASE
 4140ENDPROC
 4150:
 4160DEF PROCWimp_PollMouseSave
 4170 CASE icon% OF
 4180  WHEN 0 : IF button% AND &50 THEN PROCWimp_PollDragBox(window%)
 4190  WHEN 2 : IF button% AND 5 THEN  PROCWimp_PollSaveFile(window%)
 4200 ENDCASE
 4210ENDPROC
 4220:
 4230DEF PROCWimp_PollEventMouseClick
 4240 IF interface% THEN SYS"Wimp_BorderIcon",,wimp%
 4250 PROCEvent_MouseClick(window%,icon%,button%,x%,y%)
 4260 CASE  interface% OF
 4270  WHEN TRUE :
 4280   wimp%!0=x%:wimp%!4=y% : wimp%!8=0
 4290   wimp%!12=window% : wimp%!16=icon%
 4300   SYS"Wimp_BorderIcon",,wimp%
 4310 ENDCASE
 4320ENDPROC
 4330:
 4340:
 4350DEF PROCWimp_PollDragBox(window%)
 4360LOCALx%,y%
 4370 !wimp%=window%
 4380 SYS"Wimp_GetWindowState",,wimp%
 4390 x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24
 4400 wimp%!4=0
 4410 SYS"Wimp_GetIconState",,wimp%
 4420 !wimp%=window%
 4430 wimp%!4=5
 4440 wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
 4450 wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
 4460 wimp%!24=0:wimp%!28=0
 4470 wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
 4480 SYS"Wimp_DragBox",,wimp%
 4490ENDPROC
 4500:
 4510DEF PROCWimp_PollKeyPress
 4520  window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
 4530  CASE FNEvent_Save(window%) OF
 4540   WHEN TRUE : PROCWimp_PollSaveFile(window%)
 4550   WHEN FALSE: PROCEvent_KeyPress(window%,icon%,key%)
 4560  ENDCASE
 4570ENDPROC
 4580:
 4590DEF PROCWimp_SpritesLoad
 4600PROCWimp_SpritesPathLoad("<Obey$Dir>.Sprites")
 4610direct_sprites%=sprites%
 4620ENDPROC
 4630:
 4640DEF PROCWimp_SpritesPathLoad(pathname$)
 4650LOCALS%,T%
 4660S%=OPENIN"<Obey$Dir>.Sprites":T%=EXT#S%+16:CLOSE#S%
 4670DIMsprites%T%,spname%12
 4680!sprites%=T%:sprites%!8=0
 4690SYS"OS_SpriteOp",&109,sprites%
 4700SYS"OS_SpriteOp",&10A,sprites%,pathname$
 4710ENDPROC

=                           �Wimp_Start("Lottery",650,390)
3                           �User_SetInitialData
.                           �Create_Windows
(,                           �Create_Menus
21                           �Wimp_WaitForEvent
<.                           �Wimp_CloseDown
F                            �
P       :
Z!       � �User_SetInitialData
d!       �number(49),Block% 256
n       �
x       :
�       � �Create_Windows
�%                �Wimp_SpritesLoad
�=                random_Window%=�Wimp_WindowLoad("random")
�9                info_Window%=�Wimp_WindowLoad("info")
�.       Bar_Icon%=�Wimp_IconBar("!Lottery")
�       �
�
        :
�$        � �Event_Save(window%)=�
�
        :
�.        � �Event_Sprites(window%)=sprites%
�       :
�       � �Create_Menus
�I         Bar_Menu%=�Wimp_MenuCreate("Lottery\Info>info_Window%\Quit")
!       �:info_Window%="XXXXX"

        :
"        � �Event_Menu(window%)
"        Ȏ window% �
,.         � Bar_Window%        : =Bar_Menu%
6!                        : =�
@
        �
J       :
T1       � �Event_WindowClose(window%,buttons%)
^       Ȏ window% �
h       �
r       �
|       :
�5       � �Event_Draw(window%,x_origin%,y_origin%)
�       Ȏ window% �
�:        � random_Window%      : �User_DrawrandomWindow
�       �
�       �
�             :
�)             � �User_DrawrandomWindow
�             �
�       :
�;       � �Event_MouseClick(window%,icon%,button%,x%,y%)
�       Ȏ window% �
�1        � Bar_Window%        : �User_MouseBar
�8        � random_Window%     : � icon%=10 � �numbers
       �
       �
         :
&         � �User_MouseBar
0/           �Wimp_WindowOpen(random_Window%)
:         �
D         :
N       :
X0       � �Event_KeyPress(window%,icon%,key%)
b       �
l         :
v%       � �Event_MenuChoice(menu%)
�        Ȏ menu% �
�<              � Bar_Menu%          : �User_MenuChoiceBar
�
        �
�       �
�       :
�        � �User_MenuChoiceBar
�$        Ȏ �Wimp_MenuChoice(0) �
�         � 2 :finished%=�
�
        �
�       �
�       :
�       :
�
��numbers

A        ș "OS_SpriteOp",&13C,sprites%,"logo",0 � r0,r1,r2,r3
8        ș "OS_SpriteOp",&122,sprites%,"logo2",0,0,8
 (        ș "OS_SpriteOp",r0,r1,r2,r3
*#        Block%!0=random_Window%
4        Block%!4=10
>        Block%!8=0
H        Block%!12=0
R*        ș "Wimp_SetIconState",,Block%
\
f
p� shuffle=1 � 5
z
�no=6
�
�ș"Hourglass_On"
�  � loop = 1 � no
�   �
�     A%=�(49)
�     used%=0
�/     AA=A%+((� � 31)+�(5)):� AA>49 � AA-=49
�     x=1
�     �:
�#       � AA=number(x) � used%=1
�       x+=1
�     � x=49 � used%=1
   � used%=0
   number(loop)=AA
 � loop
$  ș"Hourglass_Off"
.
8	ico=1
B � x=1 � 49
L  � xx=1 � no
VR   � number(xx)=x � �Wimp_IconPutText(random_Window%,ico,�(number(xx))):ico+=1
`  �
j �
t
~�  shuffle
�
�A        ș "OS_SpriteOp",&13C,sprites%,"logo",0 � r0,r1,r2,r3
�8        ș "OS_SpriteOp",&122,sprites%,"logoX",0,0,8
�(        ș "OS_SpriteOp",r0,r1,r2,r3
�#        Block%!0=random_Window%
�        Block%!4=10
�        Block%!8=0
�        Block%!12=0
�*        ș "Wimp_SetIconState",,Block%
�
�
�
�



(� �Wimp_WindowAlert(title$,message$)
(+�Wimp_WindowAlertBox(title$,message$,0)
2�
<:
F3� �Wimp_WindowAlertBox(title$,message$,button%)
P� response%
Z$(wimp%+4)=message$
dȎ button% �
n � 2    : response%=1
x � 1    : response%=15
�! � 3    : response%=(1<<5)+16
�! � 4    : response%=(1<<6)+16
� : response%=16
��
�=ș "Wimp_ReportError",wimp%,response%,title$ � ,response%
��
�:
�� �Wimp_WindowLoad(window$)
�9=�Wimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates")
�:
�-� �Wimp_WindowLoadFrom(window$,template$)
�� c%,i%,n%,j%,sp$,sp2$
�%ș "Wimp_OpenTemplate",,template$
Mș "Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0 � ,,icons%
Ȏ sprites% �
 � 1    : wimp%!64=sprites%
")  : wimp%!64=�Event_Sprites(window%)
,�
6&ș "Wimp_CreateWindow",,wimp% � c%
@ș "Wimp_CloseTemplate"
J7ș "Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8)
TȎ wimp%!40 �
^
 � -1   :
h  : i%=40
r �
|$   wimp%!4=wimp%!i% : wimp%!0=c%
�$   ș "Wimp_GetIconState",,wimp%
�-   sp$=�Wimp_GetStringAtAddress(wimp%!28)
�"   ș "Wimp_DeleteIcon",,wimp%
�   Ȏ sprites% �
�    � 1    : wimp%!32=1
�     :
�/     ș "OS_SpriteOp",&108,sprites% � ,,,n%
�
     j%=0
�     � : j%+=1
�=      ș "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
�7      sp2$=�Wimp_GetStringAtAddress(pointer_block%)
�     � j%=n% � sp$=sp2$
�4     � sp$=sp2$ � wimp%!32=sprites% � wimp%!32=1
   �
   wimp%!4=c%
$   ș "Wimp_CreateIcon",,wimp%+4
&   i%+=4
0 � (wimp%!i%)=-1
:�
D=c%
N:
X:
b� �Wimp_WindowOpen(window%)
l!wimp%=window%
v#ș "Wimp_GetWindowState",,wimp%
�ș "Wimp_OpenWindow",,wimp%
��
�:
�:
�� �Wimp_IconBar(Sprite$)
�� icon%
�wimp%!0=-1
�wimp%!4=0     : wimp%!8=0
�wimp%!12=68 : wimp%!16=68
�wimp%!20=&3002
�$(wimp%+24)=Sprite$
�'ș "Wimp_CreateIcon",,wimp% � icon%
�
=icon%
:
+� �Wimp_IconCaret(window%,icon%,chars%)
8ș "Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
 �
*:
4#� �Wimp_IconText(window%,icon%)
>#wimp%!0=window% : wimp%!4=icon%
H!ș "Wimp_GetIconState",,wimp%
R7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
\=$(wimp%!28)
f:
p:
z,� �Wimp_IconPutText(window%,icon%,text$)
�#wimp%!0=window% : wimp%!4=icon%
�!ș "Wimp_GetIconState",,wimp%
�7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
�$(wimp%!28)=text$
�#wimp%!0=window% : wimp%!4=icon%
�wimp%!8=0 : wimp%!12=0
�!ș "Wimp_SetIconState",,wimp%
��
�:
�� �Wimp_MenuChoice(level%)
�=(wimp%!(4*level%))+1
�:
�� �Wimp_MenuCreate(menu$)
	)� menu$="Colours" �=�Wimp_MenuColours
	'� menu%,index%,width%,length%,k%,s%
	.� menu% 28+�Wimp_MenuNoOfEntries(menu$)*24
	$7menu%?12=7   : menu%?13=2  : menu%?14=7 :menu%?15=0
	.+menu%!16=140 : menu%!20=44 : menu%!24=0
	8index%=menu%+28
	B $menu%=�menu$,�menu$,"\")-1)
	L#width%=�(�menu$,�menu$,"\")-1))
	Vmenu$+="\" :
	`ȕ menu$<>""
	jmenu$=�menu$,�menu$,"\")+1)
	tȎ menu$ �
	~	 � ""
	�  :
	�1  !index%=0 : index%!4=-1 : index%!8=&7000021
	�  length%=�menu$,"\")-1
	�  k%=��menu$,length%),">")
	�
  Ȏ k% �
	�
   � 0
	�   
	�%    s%=�(�menu$,k%+1,length%-k%))
	�    index%!4=s%
	�    length%=k%-1
	�  �
	�"  $(index%+12)=�menu$,length%)
'  � length%>width% � width%=length%

  index%+=24
�
�
(menu%!16=16*(width%+1)
2(index%!-24=index%!-24 � &80 : =menu%
<:
F� �Wimp_MenuColours
P!=�Wimp_MenuCreateColours(" ")
Z:
d%� �Wimp_MenuCreateColours(title$)
n� x$,men%,j%,i%
x6x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
�men%=�Wimp_MenuCreate(x$)
�� i%=0 � 15
�
Ȏ � �
�(� i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7
� : j%=0
��
�men%?(39+i%*24)=i%*16+j%
��Wimp_MenuCentre(men%,i%+1)
��
�	=men%
�:
�"� �Wimp_MenuNoOfEntries(menu$)
�� n% ,j% : n%=0 : j%=0
�
j%=�menu$,"\",j%+1)
� j%<>0 � n%+=1
"
� j%=0
,=n%
6:
@:
J#� �Wimp_MenuCentre(menu%,item%)
T:menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<3)
^�
h:
r:
|:
�:
�
�&� �Wimp_GetStringAtAddress(array%)
�
�s$:s$=""
�<ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�:
�=s$
�:
�#� �Wimp_GetFileFromPathname(f$)
�Ȏ �f$,".") �
� � 0    :=f$
�7  :=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,".")))
��
�:
/� �Wimp_Start(TaskName$,wimp_memory%,icon%)
%� wimp% wimp_memory%,icons% icon%
)� wimp_memory%<256 � wimp_memory%=256
&icon_memory%=icons%+icon%
0task$=TaskName$
:�Wimp_SetEventVariables
D� � �Wimp_Error:�
N@ș"Wimp_Initialise",200,&4B534154,TaskName$ � version%,task%
X�
b:
l:
v� �Wimp_SetEventVariables
�� pointer_block% 20
�interface%=�
�key%=1<<8:menu%=1<<9:
�
window%=0
�!sprites%=1:version%=0:task%=0
�*Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0
�x_origin%=0:y_origin%=0:
��
�:
�� �Wimp_Error
�
�X$,x%
�	� � �
�x%=�

X$=�$+"atline"+�(x%�10)

�ErrorMsg%36

EErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x%

 $(ErrorMsg%+24)="!RunImage"

*%ș"Wimp_SendMessage",17,ErrorMsg%

4�Wimp_WindowAlert(task$,X$)

>�Wimp_CloseDown

H�

R:

\� �Wimp_CloseDown

f#ș"Wimp_CloseDown",task%,"TASK"

p�

z:

�:

�:

�:

�� �Wimp_WaitForEvent

�� mask%,event%

�finished%=�

�mask%=%111000011001

��

�' ș"Wimp_Poll",mask%,wimp% � event%

� Ȏ event% �

�  �1 : �Wimp_PollDrawWindow

�&  �2 : ș "Wimp_OpenWindow",,wimp%

�   �3 : �Wimp_PollCloseWindow
  �6 : �Wimp_PollMouseClick
  �8 : �Wimp_PollKeyPress
#  �9 : �Event_MenuChoice(menu%)
$  �17,18: � messages
.    Ȏ wimp%!16 �
8     � 0:finished%=�
B   �
L �
V� finished%
`�
j:
t� �Wimp_PollDrawWindow
~� more%
�&ș"Wimp_RedrawWindow",,wimp%�more%
�window%=wimp%!0
�Ax_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24
�ȕmore%
�0 � interface% � ș"Wimp_BorderWindow",,wimp%
�- �Event_Draw(window%,x_origin%,y_origin%)
�' ș"Wimp_GetRectangle",,wimp%�more%
��
��
�:
�� �Wimp_PollCloseWindow
�%  ș "Wimp_GetPointerInfo",,wimp%
)  window%=wimp%!12 : buttons%=wimp%!8

) �Event_WindowClose(window%,buttons%)
2 !wimp%=window% : ș "Wimp_CloseWindow",,wimp%
�
(:
2� �Wimp_PollMouseClick
<J button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
F Ȏ button% �
P"   �2    : �Wimp_PollMenuPopUp
Z#   : Ȏ �Event_Save(window%) �
d,               � � : �Wimp_PollMouseSave
n1               � �: �Wimp_PollEventMouseClick
x              �
� �
��
�:
�� �Wimp_PollMenuPopUp
�menu%=�Event_Menu(window%)
�  Ȏ menu%  �
�   � �:
�
    :
�     Ȏ window% �
�      � -2   : n%=0
�3        ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0
�         n%+=1
�
        �
?        ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+44+(n%*44)
4       : ș"Wimp_CreateMenu",,menu%,x%-64,y%+20

     �
"  �
,�
6:
@� �Wimp_PollMouseSave
J Ȏ icon% �
T8  � 0 : � button% � &50 � �Wimp_PollDragBox(window%)
^8  � 2 : � button% � 5 �  �Wimp_PollSaveFile(window%)
h �
r�
|:
�� �Wimp_PollEventMouseClick
�. � interface% � ș"Wimp_BorderIcon",,wimp%
�3 �Event_MouseClick(window%,icon%,button%,x%,y%)
� Ȏ  interface% �
�  � � :
�(   wimp%!0=x%:wimp%!4=y% : wimp%!8=0
�(   wimp%!12=window% : wimp%!16=icon%
�!   ș"Wimp_BorderIcon",,wimp%
� �
��
�:
�:
� � �Wimp_PollDragBox(window%)

�x%,y%
 !wimp%=window%
# ș"Wimp_GetWindowState",,wimp%
&- x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24
0 wimp%!4=0
:! ș"Wimp_GetIconState",,wimp%
D !wimp%=window%
N wimp%!4=5
X, wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
b. wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
l wimp%!24=0:wimp%!28=0
v* wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
� ș"Wimp_DragBox",,wimp%
��
�:
�� �Wimp_PollKeyPress
�1  window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
�  Ȏ �Event_Save(window%) �
�(   � � : �Wimp_PollSaveFile(window%)
�/   � �: �Event_KeyPress(window%,icon%,key%)
�  �
��
�:
�� �Wimp_SpritesLoad
�/�Wimp_SpritesPathLoad("<Obey$Dir>.Sprites")
direct_sprites%=sprites%
�
:
 &� �Wimp_SpritesPathLoad(pathname$)
*
�S%,T%
4,S%=�"<Obey$Dir>.Sprites":T%=�#S%+16:�#S%
>�sprites%T%,spname%12
H!sprites%=T%:sprites%!8=0
R!ș"OS_SpriteOp",&109,sprites%
\+ș"OS_SpriteOp",&10A,sprites%,pathname$
f�
�
00000000  0d 00 0a 3d 20 20 20 20  20 20 20 20 20 20 20 20  |...=            |
00000010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00000020  57 69 6d 70 5f 53 74 61  72 74 28 22 4c 6f 74 74  |Wimp_Start("Lott|
00000030  65 72 79 22 2c 36 35 30  2c 33 39 30 29 0d 00 14  |ery",650,390)...|
00000040  33 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |3               |
00000050  20 20 20 20 20 20 20 20  20 20 20 20 f2 55 73 65  |            .Use|
00000060  72 5f 53 65 74 49 6e 69  74 69 61 6c 44 61 74 61  |r_SetInitialData|
00000070  0d 00 1e 2e 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00000080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00000090  43 72 65 61 74 65 5f 57  69 6e 64 6f 77 73 0d 00  |Create_Windows..|
000000a0  28 2c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |(,              |
000000b0  20 20 20 20 20 20 20 20  20 20 20 20 20 f2 43 72  |             .Cr|
000000c0  65 61 74 65 5f 4d 65 6e  75 73 0d 00 32 31 20 20  |eate_Menus..21  |
000000d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000e0  20 20 20 20 20 20 20 20  20 f2 57 69 6d 70 5f 57  |         .Wimp_W|
000000f0  61 69 74 46 6f 72 45 76  65 6e 74 0d 00 3c 2e 20  |aitForEvent..<. |
00000100  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000110  20 20 20 20 20 20 20 20  20 20 f2 57 69 6d 70 5f  |          .Wimp_|
00000120  43 6c 6f 73 65 44 6f 77  6e 0d 00 46 20 20 20 20  |CloseDown..F    |
00000130  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000140  20 20 20 20 20 20 20 20  e0 0d 00 50 0c 20 20 20  |        ...P.   |
00000150  20 20 20 20 3a 0d 00 5a  21 20 20 20 20 20 20 20  |    :..Z!       |
00000160  dd 20 f2 55 73 65 72 5f  53 65 74 49 6e 69 74 69  |. .User_SetIniti|
00000170  61 6c 44 61 74 61 0d 00  64 21 20 20 20 20 20 20  |alData..d!      |
00000180  20 de 6e 75 6d 62 65 72  28 34 39 29 2c 42 6c 6f  | .number(49),Blo|
00000190  63 6b 25 20 32 35 36 0d  00 6e 0c 20 20 20 20 20  |ck% 256..n.     |
000001a0  20 20 e1 0d 00 78 0c 20  20 20 20 20 20 20 3a 0d  |  ...x.       :.|
000001b0  00 82 1c 20 20 20 20 20  20 20 dd 20 f2 43 72 65  |...       . .Cre|
000001c0  61 74 65 5f 57 69 6e 64  6f 77 73 0d 00 8c 25 20  |ate_Windows...% |
000001d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
000001e0  57 69 6d 70 5f 53 70 72  69 74 65 73 4c 6f 61 64  |Wimp_SpritesLoad|
000001f0  0d 00 96 3d 20 20 20 20  20 20 20 20 20 20 20 20  |...=            |
00000200  20 20 20 20 72 61 6e 64  6f 6d 5f 57 69 6e 64 6f  |    random_Windo|
00000210  77 25 3d a4 57 69 6d 70  5f 57 69 6e 64 6f 77 4c  |w%=.Wimp_WindowL|
00000220  6f 61 64 28 22 72 61 6e  64 6f 6d 22 29 0d 00 a0  |oad("random")...|
00000230  39 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |9               |
00000240  20 69 6e 66 6f 5f 57 69  6e 64 6f 77 25 3d a4 57  | info_Window%=.W|
00000250  69 6d 70 5f 57 69 6e 64  6f 77 4c 6f 61 64 28 22  |imp_WindowLoad("|
00000260  69 6e 66 6f 22 29 0d 00  aa 2e 20 20 20 20 20 20  |info")....      |
00000270  20 42 61 72 5f 49 63 6f  6e 25 3d a4 57 69 6d 70  | Bar_Icon%=.Wimp|
00000280  5f 49 63 6f 6e 42 61 72  28 22 21 4c 6f 74 74 65  |_IconBar("!Lotte|
00000290  72 79 22 29 0d 00 b4 0c  20 20 20 20 20 20 20 e1  |ry")....       .|
000002a0  0d 00 be 0d 20 20 20 20  20 20 20 20 3a 0d 00 c8  |....        :...|
000002b0  24 20 20 20 20 20 20 20  20 dd 20 a4 45 76 65 6e  |$        . .Even|
000002c0  74 5f 53 61 76 65 28 77  69 6e 64 6f 77 25 29 3d  |t_Save(window%)=|
000002d0  a3 0d 00 d2 0d 20 20 20  20 20 20 20 20 3a 0d 00  |.....        :..|
000002e0  dc 2e 20 20 20 20 20 20  20 20 dd 20 a4 45 76 65  |..        . .Eve|
000002f0  6e 74 5f 53 70 72 69 74  65 73 28 77 69 6e 64 6f  |nt_Sprites(windo|
00000300  77 25 29 3d 73 70 72 69  74 65 73 25 0d 00 e6 0c  |w%)=sprites%....|
00000310  20 20 20 20 20 20 20 3a  0d 00 f0 1a 20 20 20 20  |       :....    |
00000320  20 20 20 dd 20 f2 43 72  65 61 74 65 5f 4d 65 6e  |   . .Create_Men|
00000330  75 73 0d 00 fa 49 20 20  20 20 20 20 20 20 20 42  |us...I         B|
00000340  61 72 5f 4d 65 6e 75 25  3d a4 57 69 6d 70 5f 4d  |ar_Menu%=.Wimp_M|
00000350  65 6e 75 43 72 65 61 74  65 28 22 4c 6f 74 74 65  |enuCreate("Lotte|
00000360  72 79 5c 49 6e 66 6f 3e  69 6e 66 6f 5f 57 69 6e  |ry\Info>info_Win|
00000370  64 6f 77 25 5c 51 75 69  74 22 29 0d 01 04 21 20  |dow%\Quit")...! |
00000380  20 20 20 20 20 20 e1 3a  69 6e 66 6f 5f 57 69 6e  |      .:info_Win|
00000390  64 6f 77 25 3d 22 58 58  58 58 58 22 0d 01 0e 0d  |dow%="XXXXX"....|
000003a0  20 20 20 20 20 20 20 20  3a 0d 01 18 22 20 20 20  |        :..."   |
000003b0  20 20 20 20 20 dd 20 a4  45 76 65 6e 74 5f 4d 65  |     . .Event_Me|
000003c0  6e 75 28 77 69 6e 64 6f  77 25 29 0d 01 22 18 20  |nu(window%)..". |
000003d0  20 20 20 20 20 20 20 c8  8e 20 77 69 6e 64 6f 77  |       .. window|
000003e0  25 20 ca 0d 01 2c 2e 20  20 20 20 20 20 20 20 20  |% ...,.         |
000003f0  c9 20 42 61 72 5f 57 69  6e 64 6f 77 25 20 20 20  |. Bar_Window%   |
00000400  20 20 20 20 20 3a 20 3d  42 61 72 5f 4d 65 6e 75  |     : =Bar_Menu|
00000410  25 0d 01 36 21 20 20 20  20 20 20 20 20 20 7f 20  |%..6!         . |
00000420  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |              : |
00000430  3d a3 0d 01 40 0d 20 20  20 20 20 20 20 20 cb 0d  |=...@.        ..|
00000440  01 4a 0c 20 20 20 20 20  20 20 3a 0d 01 54 31 20  |.J.       :..T1 |
00000450  20 20 20 20 20 20 dd 20  f2 45 76 65 6e 74 5f 57  |      . .Event_W|
00000460  69 6e 64 6f 77 43 6c 6f  73 65 28 77 69 6e 64 6f  |indowClose(windo|
00000470  77 25 2c 62 75 74 74 6f  6e 73 25 29 0d 01 5e 17  |w%,buttons%)..^.|
00000480  20 20 20 20 20 20 20 c8  8e 20 77 69 6e 64 6f 77  |       .. window|
00000490  25 20 ca 0d 01 68 0c 20  20 20 20 20 20 20 cb 0d  |% ...h.       ..|
000004a0  01 72 0c 20 20 20 20 20  20 20 e1 0d 01 7c 0c 20  |.r.       ...|. |
000004b0  20 20 20 20 20 20 3a 0d  01 86 35 20 20 20 20 20  |      :...5     |
000004c0  20 20 dd 20 f2 45 76 65  6e 74 5f 44 72 61 77 28  |  . .Event_Draw(|
000004d0  77 69 6e 64 6f 77 25 2c  78 5f 6f 72 69 67 69 6e  |window%,x_origin|
000004e0  25 2c 79 5f 6f 72 69 67  69 6e 25 29 0d 01 90 17  |%,y_origin%)....|
000004f0  20 20 20 20 20 20 20 c8  8e 20 77 69 6e 64 6f 77  |       .. window|
00000500  25 20 ca 0d 01 9a 3a 20  20 20 20 20 20 20 20 c9  |% ....:        .|
00000510  20 72 61 6e 64 6f 6d 5f  57 69 6e 64 6f 77 25 20  | random_Window% |
00000520  20 20 20 20 20 3a 20 f2  55 73 65 72 5f 44 72 61  |     : .User_Dra|
00000530  77 72 61 6e 64 6f 6d 57  69 6e 64 6f 77 0d 01 a4  |wrandomWindow...|
00000540  0c 20 20 20 20 20 20 20  cb 0d 01 ae 0c 20 20 20  |.       .....   |
00000550  20 20 20 20 e1 0d 01 b8  12 20 20 20 20 20 20 20  |    .....       |
00000560  20 20 20 20 20 20 3a 0d  01 c2 29 20 20 20 20 20  |      :...)     |
00000570  20 20 20 20 20 20 20 20  dd 20 f2 55 73 65 72 5f  |        . .User_|
00000580  44 72 61 77 72 61 6e 64  6f 6d 57 69 6e 64 6f 77  |DrawrandomWindow|
00000590  0d 01 cc 12 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
000005a0  20 e1 0d 01 d6 0c 20 20  20 20 20 20 20 3a 0d 01  | .....       :..|
000005b0  e0 3b 20 20 20 20 20 20  20 dd 20 f2 45 76 65 6e  |.;       . .Even|
000005c0  74 5f 4d 6f 75 73 65 43  6c 69 63 6b 28 77 69 6e  |t_MouseClick(win|
000005d0  64 6f 77 25 2c 69 63 6f  6e 25 2c 62 75 74 74 6f  |dow%,icon%,butto|
000005e0  6e 25 2c 78 25 2c 79 25  29 0d 01 ea 17 20 20 20  |n%,x%,y%)....   |
000005f0  20 20 20 20 c8 8e 20 77  69 6e 64 6f 77 25 20 ca  |    .. window% .|
00000600  0d 01 f4 31 20 20 20 20  20 20 20 20 c9 20 42 61  |...1        . Ba|
00000610  72 5f 57 69 6e 64 6f 77  25 20 20 20 20 20 20 20  |r_Window%       |
00000620  20 3a 20 f2 55 73 65 72  5f 4d 6f 75 73 65 42 61  | : .User_MouseBa|
00000630  72 0d 01 fe 38 20 20 20  20 20 20 20 20 c9 20 72  |r...8        . r|
00000640  61 6e 64 6f 6d 5f 57 69  6e 64 6f 77 25 20 20 20  |andom_Window%   |
00000650  20 20 3a 20 e7 20 69 63  6f 6e 25 3d 31 30 20 8c  |  : . icon%=10 .|
00000660  20 f2 6e 75 6d 62 65 72  73 0d 02 08 0c 20 20 20  | .numbers....   |
00000670  20 20 20 20 cb 0d 02 12  0c 20 20 20 20 20 20 20  |    .....       |
00000680  e1 0d 02 1c 0e 20 20 20  20 20 20 20 20 20 3a 0d  |.....         :.|
00000690  02 26 1d 20 20 20 20 20  20 20 20 20 dd 20 f2 55  |.&.         . .U|
000006a0  73 65 72 5f 4d 6f 75 73  65 42 61 72 0d 02 30 2f  |ser_MouseBar..0/|
000006b0  20 20 20 20 20 20 20 20  20 20 20 f2 57 69 6d 70  |           .Wimp|
000006c0  5f 57 69 6e 64 6f 77 4f  70 65 6e 28 72 61 6e 64  |_WindowOpen(rand|
000006d0  6f 6d 5f 57 69 6e 64 6f  77 25 29 0d 02 3a 0e 20  |om_Window%)..:. |
000006e0  20 20 20 20 20 20 20 20  e1 0d 02 44 0e 20 20 20  |        ...D.   |
000006f0  20 20 20 20 20 20 3a 0d  02 4e 0c 20 20 20 20 20  |      :..N.     |
00000700  20 20 3a 0d 02 58 30 20  20 20 20 20 20 20 dd 20  |  :..X0       . |
00000710  f2 45 76 65 6e 74 5f 4b  65 79 50 72 65 73 73 28  |.Event_KeyPress(|
00000720  77 69 6e 64 6f 77 25 2c  69 63 6f 6e 25 2c 6b 65  |window%,icon%,ke|
00000730  79 25 29 0d 02 62 0c 20  20 20 20 20 20 20 e1 0d  |y%)..b.       ..|
00000740  02 6c 0e 20 20 20 20 20  20 20 20 20 3a 0d 02 76  |.l.         :..v|
00000750  25 20 20 20 20 20 20 20  dd 20 f2 45 76 65 6e 74  |%       . .Event|
00000760  5f 4d 65 6e 75 43 68 6f  69 63 65 28 6d 65 6e 75  |_MenuChoice(menu|
00000770  25 29 0d 02 80 16 20 20  20 20 20 20 20 20 c8 8e  |%)....        ..|
00000780  20 6d 65 6e 75 25 20 ca  0d 02 8a 3c 20 20 20 20  | menu% ....<    |
00000790  20 20 20 20 20 20 20 20  20 20 c9 20 42 61 72 5f  |          . Bar_|
000007a0  4d 65 6e 75 25 20 20 20  20 20 20 20 20 20 20 3a  |Menu%          :|
000007b0  20 f2 55 73 65 72 5f 4d  65 6e 75 43 68 6f 69 63  | .User_MenuChoic|
000007c0  65 42 61 72 0d 02 94 0d  20 20 20 20 20 20 20 20  |eBar....        |
000007d0  cb 0d 02 9e 0c 20 20 20  20 20 20 20 e1 0d 02 a8  |.....       ....|
000007e0  0c 20 20 20 20 20 20 20  3a 0d 02 b2 20 20 20 20  |.       :...    |
000007f0  20 20 20 20 dd 20 f2 55  73 65 72 5f 4d 65 6e 75  |    . .User_Menu|
00000800  43 68 6f 69 63 65 42 61  72 0d 02 bc 24 20 20 20  |ChoiceBar...$   |
00000810  20 20 20 20 20 c8 8e 20  a4 57 69 6d 70 5f 4d 65  |     .. .Wimp_Me|
00000820  6e 75 43 68 6f 69 63 65  28 30 29 20 ca 0d 02 c6  |nuChoice(0) ....|
00000830  1d 20 20 20 20 20 20 20  20 20 c9 20 32 20 3a 66  |.         . 2 :f|
00000840  69 6e 69 73 68 65 64 25  3d b9 0d 02 d0 0d 20 20  |inished%=.....  |
00000850  20 20 20 20 20 20 cb 0d  02 da 0c 20 20 20 20 20  |      .....     |
00000860  20 20 e1 0d 02 e4 0c 20  20 20 20 20 20 20 3a 0d  |  .....       :.|
00000870  02 ee 0c 20 20 20 20 20  20 20 3a 0d 02 f8 0d dd  |...       :.....|
00000880  f2 6e 75 6d 62 65 72 73  0d 03 02 04 0d 03 0c 41  |.numbers.......A|
00000890  20 20 20 20 20 20 20 20  c8 99 20 22 4f 53 5f 53  |        .. "OS_S|
000008a0  70 72 69 74 65 4f 70 22  2c 26 31 33 43 2c 73 70  |priteOp",&13C,sp|
000008b0  72 69 74 65 73 25 2c 22  6c 6f 67 6f 22 2c 30 20  |rites%,"logo",0 |
000008c0  b8 20 72 30 2c 72 31 2c  72 32 2c 72 33 0d 03 16  |. r0,r1,r2,r3...|
000008d0  38 20 20 20 20 20 20 20  20 c8 99 20 22 4f 53 5f  |8        .. "OS_|
000008e0  53 70 72 69 74 65 4f 70  22 2c 26 31 32 32 2c 73  |SpriteOp",&122,s|
000008f0  70 72 69 74 65 73 25 2c  22 6c 6f 67 6f 32 22 2c  |prites%,"logo2",|
00000900  30 2c 30 2c 38 0d 03 20  28 20 20 20 20 20 20 20  |0,0,8.. (       |
00000910  20 c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  | .. "OS_SpriteOp|
00000920  22 2c 72 30 2c 72 31 2c  72 32 2c 72 33 0d 03 2a  |",r0,r1,r2,r3..*|
00000930  23 20 20 20 20 20 20 20  20 42 6c 6f 63 6b 25 21  |#        Block%!|
00000940  30 3d 72 61 6e 64 6f 6d  5f 57 69 6e 64 6f 77 25  |0=random_Window%|
00000950  0d 03 34 17 20 20 20 20  20 20 20 20 42 6c 6f 63  |..4.        Bloc|
00000960  6b 25 21 34 3d 31 30 0d  03 3e 16 20 20 20 20 20  |k%!4=10..>.     |
00000970  20 20 20 42 6c 6f 63 6b  25 21 38 3d 30 0d 03 48  |   Block%!8=0..H|
00000980  17 20 20 20 20 20 20 20  20 42 6c 6f 63 6b 25 21  |.        Block%!|
00000990  31 32 3d 30 0d 03 52 2a  20 20 20 20 20 20 20 20  |12=0..R*        |
000009a0  c8 99 20 22 57 69 6d 70  5f 53 65 74 49 63 6f 6e  |.. "Wimp_SetIcon|
000009b0  53 74 61 74 65 22 2c 2c  42 6c 6f 63 6b 25 0d 03  |State",,Block%..|
000009c0  5c 04 0d 03 66 04 0d 03  70 13 e3 20 73 68 75 66  |\...f...p.. shuf|
000009d0  66 6c 65 3d 31 20 b8 20  35 0d 03 7a 04 0d 03 84  |fle=1 . 5..z....|
000009e0  08 6e 6f 3d 36 0d 03 8e  04 0d 03 98 14 c8 99 22  |.no=6.........."|
000009f0  48 6f 75 72 67 6c 61 73  73 5f 4f 6e 22 0d 03 a2  |Hourglass_On"...|
00000a00  15 20 20 e3 20 6c 6f 6f  70 20 3d 20 31 20 b8 20  |.  . loop = 1 . |
00000a10  6e 6f 0d 03 ac 08 20 20  20 f5 0d 03 b6 11 20 20  |no....   .....  |
00000a20  20 20 20 41 25 3d b3 28  34 39 29 0d 03 c0 10 20  |   A%=.(49).... |
00000a30  20 20 20 20 75 73 65 64  25 3d 30 0d 03 ca 2f 20  |    used%=0.../ |
00000a40  20 20 20 20 41 41 3d 41  25 2b 28 28 91 20 80 20  |    AA=A%+((. . |
00000a50  33 31 29 2b b3 28 35 29  29 3a e7 20 41 41 3e 34  |31)+.(5)):. AA>4|
00000a60  39 20 8c 20 41 41 2d 3d  34 39 0d 03 d4 0c 20 20  |9 . AA-=49....  |
00000a70  20 20 20 78 3d 31 0d 03  de 0b 20 20 20 20 20 f5  |   x=1....     .|
00000a80  3a 0d 03 e8 23 20 20 20  20 20 20 20 e7 20 41 41  |:...#       . AA|
00000a90  3d 6e 75 6d 62 65 72 28  78 29 20 8c 20 75 73 65  |=number(x) . use|
00000aa0  64 25 3d 31 0d 03 f2 0f  20 20 20 20 20 20 20 78  |d%=1....       x|
00000ab0  2b 3d 31 0d 03 fc 19 20  20 20 20 20 fd 20 78 3d  |+=1....     . x=|
00000ac0  34 39 20 84 20 75 73 65  64 25 3d 31 0d 04 06 10  |49 . used%=1....|
00000ad0  20 20 20 fd 20 75 73 65  64 25 3d 30 0d 04 10 16  |   . used%=0....|
00000ae0  20 20 20 6e 75 6d 62 65  72 28 6c 6f 6f 70 29 3d  |   number(loop)=|
00000af0  41 41 0d 04 1a 0b 20 ed  20 6c 6f 6f 70 0d 04 24  |AA.... . loop..$|
00000b00  17 20 20 c8 99 22 48 6f  75 72 67 6c 61 73 73 5f  |.  .."Hourglass_|
00000b10  4f 66 66 22 0d 04 2e 04  0d 04 38 09 69 63 6f 3d  |Off"......8.ico=|
00000b20  31 0d 04 42 0f 20 e3 20  78 3d 31 20 b8 20 34 39  |1..B. . x=1 . 49|
00000b30  0d 04 4c 11 20 20 e3 20  78 78 3d 31 20 b8 20 6e  |..L.  . xx=1 . n|
00000b40  6f 0d 04 56 52 20 20 20  e7 20 6e 75 6d 62 65 72  |o..VR   . number|
00000b50  28 78 78 29 3d 78 20 8c  20 f2 57 69 6d 70 5f 49  |(xx)=x . .Wimp_I|
00000b60  63 6f 6e 50 75 74 54 65  78 74 28 72 61 6e 64 6f  |conPutText(rando|
00000b70  6d 5f 57 69 6e 64 6f 77  25 2c 69 63 6f 2c c3 28  |m_Window%,ico,.(|
00000b80  6e 75 6d 62 65 72 28 78  78 29 29 29 3a 69 63 6f  |number(xx))):ico|
00000b90  2b 3d 31 0d 04 60 07 20  20 ed 0d 04 6a 06 20 ed  |+=1..`.  ...j. .|
00000ba0  0d 04 74 04 0d 04 7e 0e  ed 20 20 73 68 75 66 66  |..t...~..  shuff|
00000bb0  6c 65 0d 04 88 04 0d 04  92 41 20 20 20 20 20 20  |le.......A      |
00000bc0  20 20 c8 99 20 22 4f 53  5f 53 70 72 69 74 65 4f  |  .. "OS_SpriteO|
00000bd0  70 22 2c 26 31 33 43 2c  73 70 72 69 74 65 73 25  |p",&13C,sprites%|
00000be0  2c 22 6c 6f 67 6f 22 2c  30 20 b8 20 72 30 2c 72  |,"logo",0 . r0,r|
00000bf0  31 2c 72 32 2c 72 33 0d  04 9c 38 20 20 20 20 20  |1,r2,r3...8     |
00000c00  20 20 20 c8 99 20 22 4f  53 5f 53 70 72 69 74 65  |   .. "OS_Sprite|
00000c10  4f 70 22 2c 26 31 32 32  2c 73 70 72 69 74 65 73  |Op",&122,sprites|
00000c20  25 2c 22 6c 6f 67 6f 58  22 2c 30 2c 30 2c 38 0d  |%,"logoX",0,0,8.|
00000c30  04 a6 28 20 20 20 20 20  20 20 20 c8 99 20 22 4f  |..(        .. "O|
00000c40  53 5f 53 70 72 69 74 65  4f 70 22 2c 72 30 2c 72  |S_SpriteOp",r0,r|
00000c50  31 2c 72 32 2c 72 33 0d  04 b0 23 20 20 20 20 20  |1,r2,r3...#     |
00000c60  20 20 20 42 6c 6f 63 6b  25 21 30 3d 72 61 6e 64  |   Block%!0=rand|
00000c70  6f 6d 5f 57 69 6e 64 6f  77 25 0d 04 ba 17 20 20  |om_Window%....  |
00000c80  20 20 20 20 20 20 42 6c  6f 63 6b 25 21 34 3d 31  |      Block%!4=1|
00000c90  30 0d 04 c4 16 20 20 20  20 20 20 20 20 42 6c 6f  |0....        Blo|
00000ca0  63 6b 25 21 38 3d 30 0d  04 ce 17 20 20 20 20 20  |ck%!8=0....     |
00000cb0  20 20 20 42 6c 6f 63 6b  25 21 31 32 3d 30 0d 04  |   Block%!12=0..|
00000cc0  d8 2a 20 20 20 20 20 20  20 20 c8 99 20 22 57 69  |.*        .. "Wi|
00000cd0  6d 70 5f 53 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_SetIconState"|
00000ce0  2c 2c 42 6c 6f 63 6b 25  0d 04 e2 04 0d 04 ec 04  |,,Block%........|
00000cf0  0d 04 f6 04 0d 05 00 05  e1 0d 05 0a 04 0d 05 14  |................|
00000d00  04 0d 05 1e 28 dd 20 f2  57 69 6d 70 5f 57 69 6e  |....(. .Wimp_Win|
00000d10  64 6f 77 41 6c 65 72 74  28 74 69 74 6c 65 24 2c  |dowAlert(title$,|
00000d20  6d 65 73 73 61 67 65 24  29 0d 05 28 2b f2 57 69  |message$)..(+.Wi|
00000d30  6d 70 5f 57 69 6e 64 6f  77 41 6c 65 72 74 42 6f  |mp_WindowAlertBo|
00000d40  78 28 74 69 74 6c 65 24  2c 6d 65 73 73 61 67 65  |x(title$,message|
00000d50  24 2c 30 29 0d 05 32 05  e1 0d 05 3c 05 3a 0d 05  |$,0)..2....<.:..|
00000d60  46 33 dd 20 f2 57 69 6d  70 5f 57 69 6e 64 6f 77  |F3. .Wimp_Window|
00000d70  41 6c 65 72 74 42 6f 78  28 74 69 74 6c 65 24 2c  |AlertBox(title$,|
00000d80  6d 65 73 73 61 67 65 24  2c 62 75 74 74 6f 6e 25  |message$,button%|
00000d90  29 0d 05 50 0f ea 20 72  65 73 70 6f 6e 73 65 25  |)..P.. response%|
00000da0  0d 05 5a 17 24 28 77 69  6d 70 25 2b 34 29 3d 6d  |..Z.$(wimp%+4)=m|
00000db0  65 73 73 61 67 65 24 0d  05 64 10 c8 8e 20 62 75  |essage$..d... bu|
00000dc0  74 74 6f 6e 25 20 ca 0d  05 6e 19 20 c9 20 32 20  |tton% ...n. . 2 |
00000dd0  20 20 20 3a 20 72 65 73  70 6f 6e 73 65 25 3d 31  |   : response%=1|
00000de0  0d 05 78 1a 20 c9 20 31  20 20 20 20 3a 20 72 65  |..x. . 1    : re|
00000df0  73 70 6f 6e 73 65 25 3d  31 35 0d 05 82 21 20 c9  |sponse%=15...! .|
00000e00  20 33 20 20 20 20 3a 20  72 65 73 70 6f 6e 73 65  | 3    : response|
00000e10  25 3d 28 31 3c 3c 35 29  2b 31 36 0d 05 8c 21 20  |%=(1<<5)+16...! |
00000e20  c9 20 34 20 20 20 20 3a  20 72 65 73 70 6f 6e 73  |. 4    : respons|
00000e30  65 25 3d 28 31 3c 3c 36  29 2b 31 36 0d 05 96 14  |e%=(1<<6)+16....|
00000e40  7f 20 3a 20 72 65 73 70  6f 6e 73 65 25 3d 31 36  |. : response%=16|
00000e50  0d 05 a0 05 cb 0d 05 aa  3d c8 99 20 22 57 69 6d  |........=.. "Wim|
00000e60  70 5f 52 65 70 6f 72 74  45 72 72 6f 72 22 2c 77  |p_ReportError",w|
00000e70  69 6d 70 25 2c 72 65 73  70 6f 6e 73 65 25 2c 74  |imp%,response%,t|
00000e80  69 74 6c 65 24 20 b8 20  2c 72 65 73 70 6f 6e 73  |itle$ . ,respons|
00000e90  65 25 0d 05 b4 05 e1 0d  05 be 05 3a 0d 05 c8 1f  |e%.........:....|
00000ea0  dd 20 a4 57 69 6d 70 5f  57 69 6e 64 6f 77 4c 6f  |. .Wimp_WindowLo|
00000eb0  61 64 28 77 69 6e 64 6f  77 24 29 0d 05 d2 39 3d  |ad(window$)...9=|
00000ec0  a4 57 69 6d 70 5f 57 69  6e 64 6f 77 4c 6f 61 64  |.Wimp_WindowLoad|
00000ed0  46 72 6f 6d 28 77 69 6e  64 6f 77 24 2c 22 3c 4f  |From(window$,"<O|
00000ee0  62 65 79 24 44 69 72 3e  2e 54 65 6d 70 6c 61 74  |bey$Dir>.Templat|
00000ef0  65 73 22 29 0d 05 dc 05  3a 0d 05 e6 2d dd 20 a4  |es")....:...-. .|
00000f00  57 69 6d 70 5f 57 69 6e  64 6f 77 4c 6f 61 64 46  |Wimp_WindowLoadF|
00000f10  72 6f 6d 28 77 69 6e 64  6f 77 24 2c 74 65 6d 70  |rom(window$,temp|
00000f20  6c 61 74 65 24 29 0d 05  f0 1a ea 20 63 25 2c 69  |late$)..... c%,i|
00000f30  25 2c 6e 25 2c 6a 25 2c  73 70 24 2c 73 70 32 24  |%,n%,j%,sp$,sp2$|
00000f40  0d 05 fa 25 c8 99 20 22  57 69 6d 70 5f 4f 70 65  |...%.. "Wimp_Ope|
00000f50  6e 54 65 6d 70 6c 61 74  65 22 2c 2c 74 65 6d 70  |nTemplate",,temp|
00000f60  6c 61 74 65 24 0d 06 04  4d c8 99 20 22 57 69 6d  |late$...M.. "Wim|
00000f70  70 5f 4c 6f 61 64 54 65  6d 70 6c 61 74 65 22 2c  |p_LoadTemplate",|
00000f80  2c 77 69 6d 70 25 2c 69  63 6f 6e 73 25 2c 69 63  |,wimp%,icons%,ic|
00000f90  6f 6e 5f 6d 65 6d 6f 72  79 25 2c 2d 31 2c 77 69  |on_memory%,-1,wi|
00000fa0  6e 64 6f 77 24 2c 30 20  b8 20 2c 2c 69 63 6f 6e  |ndow$,0 . ,,icon|
00000fb0  73 25 0d 06 0e 11 c8 8e  20 73 70 72 69 74 65 73  |s%...... sprites|
00000fc0  25 20 ca 0d 06 18 1f 20  c9 20 31 20 20 20 20 3a  |% ..... . 1    :|
00000fd0  20 77 69 6d 70 25 21 36  34 3d 73 70 72 69 74 65  | wimp%!64=sprite|
00000fe0  73 25 0d 06 22 29 20 7f  20 3a 20 77 69 6d 70 25  |s%..") . : wimp%|
00000ff0  21 36 34 3d a4 45 76 65  6e 74 5f 53 70 72 69 74  |!64=.Event_Sprit|
00001000  65 73 28 77 69 6e 64 6f  77 25 29 0d 06 2c 05 cb  |es(window%)..,..|
00001010  0d 06 36 26 c8 99 20 22  57 69 6d 70 5f 43 72 65  |..6&.. "Wimp_Cre|
00001020  61 74 65 57 69 6e 64 6f  77 22 2c 2c 77 69 6d 70  |ateWindow",,wimp|
00001030  25 20 b8 20 63 25 0d 06  40 1b c8 99 20 22 57 69  |% . c%..@... "Wi|
00001040  6d 70 5f 43 6c 6f 73 65  54 65 6d 70 6c 61 74 65  |mp_CloseTemplate|
00001050  22 0d 06 4a 37 c8 99 20  22 57 69 6d 70 5f 57 68  |"..J7.. "Wimp_Wh|
00001060  69 63 68 49 63 6f 6e 22  2c 63 25 2c 77 69 6d 70  |ichIcon",c%,wimp|
00001070  25 2b 34 30 2c 31 2b 32  2b 28 31 3c 3c 38 29 2c  |%+40,1+2+(1<<8),|
00001080  32 2b 28 31 3c 3c 38 29  0d 06 54 11 c8 8e 20 77  |2+(1<<8)..T... w|
00001090  69 6d 70 25 21 34 30 20  ca 0d 06 5e 0d 20 c9 20  |imp%!40 ...^. . |
000010a0  2d 31 20 20 20 3a 0d 06  68 0e 20 7f 20 3a 20 69  |-1   :..h. . : i|
000010b0  25 3d 34 30 0d 06 72 06  20 f5 0d 06 7c 24 20 20  |%=40..r. ...|$  |
000010c0  20 77 69 6d 70 25 21 34  3d 77 69 6d 70 25 21 69  | wimp%!4=wimp%!i|
000010d0  25 20 3a 20 77 69 6d 70  25 21 30 3d 63 25 0d 06  |% : wimp%!0=c%..|
000010e0  86 24 20 20 20 c8 99 20  22 57 69 6d 70 5f 47 65  |.$   .. "Wimp_Ge|
000010f0  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 77 69 6d  |tIconState",,wim|
00001100  70 25 0d 06 90 2d 20 20  20 73 70 24 3d a4 57 69  |p%...-   sp$=.Wi|
00001110  6d 70 5f 47 65 74 53 74  72 69 6e 67 41 74 41 64  |mp_GetStringAtAd|
00001120  64 72 65 73 73 28 77 69  6d 70 25 21 32 38 29 0d  |dress(wimp%!28).|
00001130  06 9a 22 20 20 20 c8 99  20 22 57 69 6d 70 5f 44  |.."   .. "Wimp_D|
00001140  65 6c 65 74 65 49 63 6f  6e 22 2c 2c 77 69 6d 70  |eleteIcon",,wimp|
00001150  25 0d 06 a4 14 20 20 20  c8 8e 20 73 70 72 69 74  |%....   .. sprit|
00001160  65 73 25 20 ca 0d 06 ae  1b 20 20 20 20 c9 20 31  |es% .....    . 1|
00001170  20 20 20 20 3a 20 77 69  6d 70 25 21 33 32 3d 31  |    : wimp%!32=1|
00001180  0d 06 b8 0b 20 20 20 20  7f 20 3a 0d 06 c2 2f 20  |....    . :.../ |
00001190  20 20 20 20 c8 99 20 22  4f 53 5f 53 70 72 69 74  |    .. "OS_Sprit|
000011a0  65 4f 70 22 2c 26 31 30  38 2c 73 70 72 69 74 65  |eOp",&108,sprite|
000011b0  73 25 20 b8 20 2c 2c 2c  6e 25 0d 06 cc 0d 20 20  |s% . ,,,n%....  |
000011c0  20 20 20 6a 25 3d 30 0d  06 d6 12 20 20 20 20 20  |   j%=0....     |
000011d0  f5 20 3a 20 6a 25 2b 3d  31 0d 06 e0 3d 20 20 20  |. : j%+=1...=   |
000011e0  20 20 20 c8 99 20 22 4f  53 5f 53 70 72 69 74 65  |   .. "OS_Sprite|
000011f0  4f 70 22 2c 26 31 30 44  2c 73 70 72 69 74 65 73  |Op",&10D,sprites|
00001200  25 2c 70 6f 69 6e 74 65  72 5f 62 6c 6f 63 6b 25  |%,pointer_block%|
00001210  2c 32 30 2c 6a 25 0d 06  ea 37 20 20 20 20 20 20  |,20,j%...7      |
00001220  73 70 32 24 3d a4 57 69  6d 70 5f 47 65 74 53 74  |sp2$=.Wimp_GetSt|
00001230  72 69 6e 67 41 74 41 64  64 72 65 73 73 28 70 6f  |ringAtAddress(po|
00001240  69 6e 74 65 72 5f 62 6c  6f 63 6b 25 29 0d 06 f4  |inter_block%)...|
00001250  1b 20 20 20 20 20 fd 20  6a 25 3d 6e 25 20 84 20  |.     . j%=n% . |
00001260  73 70 24 3d 73 70 32 24  0d 06 fe 34 20 20 20 20  |sp$=sp2$...4    |
00001270  20 e7 20 73 70 24 3d 73  70 32 24 20 8c 20 77 69  | . sp$=sp2$ . wi|
00001280  6d 70 25 21 33 32 3d 73  70 72 69 74 65 73 25 20  |mp%!32=sprites% |
00001290  8b 20 77 69 6d 70 25 21  33 32 3d 31 0d 07 08 08  |. wimp%!32=1....|
000012a0  20 20 20 cb 0d 07 12 11  20 20 20 77 69 6d 70 25  |   .....   wimp%|
000012b0  21 34 3d 63 25 0d 07 1c  24 20 20 20 c8 99 20 22  |!4=c%...$   .. "|
000012c0  57 69 6d 70 5f 43 72 65  61 74 65 49 63 6f 6e 22  |Wimp_CreateIcon"|
000012d0  2c 2c 77 69 6d 70 25 2b  34 0d 07 26 0c 20 20 20  |,,wimp%+4..&.   |
000012e0  69 25 2b 3d 34 0d 07 30  14 20 fd 20 28 77 69 6d  |i%+=4..0. . (wim|
000012f0  70 25 21 69 25 29 3d 2d  31 0d 07 3a 05 cb 0d 07  |p%!i%)=-1..:....|
00001300  44 07 3d 63 25 0d 07 4e  05 3a 0d 07 58 05 3a 0d  |D.=c%..N.:..X.:.|
00001310  07 62 1f dd 20 f2 57 69  6d 70 5f 57 69 6e 64 6f  |.b.. .Wimp_Windo|
00001320  77 4f 70 65 6e 28 77 69  6e 64 6f 77 25 29 0d 07  |wOpen(window%)..|
00001330  6c 12 21 77 69 6d 70 25  3d 77 69 6e 64 6f 77 25  |l.!wimp%=window%|
00001340  0d 07 76 23 c8 99 20 22  57 69 6d 70 5f 47 65 74  |..v#.. "Wimp_Get|
00001350  57 69 6e 64 6f 77 53 74  61 74 65 22 2c 2c 77 69  |WindowState",,wi|
00001360  6d 70 25 0d 07 80 1f c8  99 20 22 57 69 6d 70 5f  |mp%...... "Wimp_|
00001370  4f 70 65 6e 57 69 6e 64  6f 77 22 2c 2c 77 69 6d  |OpenWindow",,wim|
00001380  70 25 0d 07 8a 05 e1 0d  07 94 05 3a 0d 07 9e 05  |p%.........:....|
00001390  3a 0d 07 a8 1c dd 20 a4  57 69 6d 70 5f 49 63 6f  |:..... .Wimp_Ico|
000013a0  6e 42 61 72 28 53 70 72  69 74 65 24 29 0d 07 b2  |nBar(Sprite$)...|
000013b0  0b ea 20 69 63 6f 6e 25  0d 07 bc 0e 77 69 6d 70  |.. icon%....wimp|
000013c0  25 21 30 3d 2d 31 0d 07  c6 1d 77 69 6d 70 25 21  |%!0=-1....wimp%!|
000013d0  34 3d 30 20 20 20 20 20  3a 20 77 69 6d 70 25 21  |4=0     : wimp%!|
000013e0  38 3d 30 0d 07 d0 1d 77  69 6d 70 25 21 31 32 3d  |8=0....wimp%!12=|
000013f0  36 38 20 3a 20 77 69 6d  70 25 21 31 36 3d 36 38  |68 : wimp%!16=68|
00001400  0d 07 da 12 77 69 6d 70  25 21 32 30 3d 26 33 30  |....wimp%!20=&30|
00001410  30 32 0d 07 e4 17 24 28  77 69 6d 70 25 2b 32 34  |02....$(wimp%+24|
00001420  29 3d 53 70 72 69 74 65  24 0d 07 ee 27 c8 99 20  |)=Sprite$...'.. |
00001430  22 57 69 6d 70 5f 43 72  65 61 74 65 49 63 6f 6e  |"Wimp_CreateIcon|
00001440  22 2c 2c 77 69 6d 70 25  20 b8 20 69 63 6f 6e 25  |",,wimp% . icon%|
00001450  0d 07 f8 0a 3d 69 63 6f  6e 25 0d 08 02 05 3a 0d  |....=icon%....:.|
00001460  08 0c 2b dd 20 f2 57 69  6d 70 5f 49 63 6f 6e 43  |..+. .Wimp_IconC|
00001470  61 72 65 74 28 77 69 6e  64 6f 77 25 2c 69 63 6f  |aret(window%,ico|
00001480  6e 25 2c 63 68 61 72 73  25 29 0d 08 16 38 c8 99  |n%,chars%)...8..|
00001490  20 22 57 69 6d 70 5f 53  65 74 43 61 72 65 74 50  | "Wimp_SetCaretP|
000014a0  6f 73 69 74 69 6f 6e 22  2c 77 69 6e 64 6f 77 25  |osition",window%|
000014b0  2c 69 63 6f 6e 25 2c 2c  2c 2d 31 2c 63 68 61 72  |,icon%,,,-1,char|
000014c0  73 25 0d 08 20 05 e1 0d  08 2a 05 3a 0d 08 34 23  |s%.. ....*.:..4#|
000014d0  dd 20 a4 57 69 6d 70 5f  49 63 6f 6e 54 65 78 74  |. .Wimp_IconText|
000014e0  28 77 69 6e 64 6f 77 25  2c 69 63 6f 6e 25 29 0d  |(window%,icon%).|
000014f0  08 3e 23 77 69 6d 70 25  21 30 3d 77 69 6e 64 6f  |.>#wimp%!0=windo|
00001500  77 25 20 3a 20 77 69 6d  70 25 21 34 3d 69 63 6f  |w% : wimp%!4=ico|
00001510  6e 25 0d 08 48 21 c8 99  20 22 57 69 6d 70 5f 47  |n%..H!.. "Wimp_G|
00001520  65 74 49 63 6f 6e 53 74  61 74 65 22 2c 2c 77 69  |etIconState",,wi|
00001530  6d 70 25 0d 08 52 37 e7  20 28 28 77 69 6d 70 25  |mp%..R7. ((wimp%|
00001540  21 32 34 29 20 80 20 26  31 30 30 29 3d 30 20 85  |!24) . &100)=0 .|
00001550  20 31 2c 22 49 63 6f 6e  20 69 73 6e 27 74 20 69  | 1,"Icon isn't i|
00001560  6e 64 69 72 65 63 74 65  64 22 0d 08 5c 10 3d 24  |ndirected"..\.=$|
00001570  28 77 69 6d 70 25 21 32  38 29 0d 08 66 05 3a 0d  |(wimp%!28)..f.:.|
00001580  08 70 05 3a 0d 08 7a 2c  dd 20 f2 57 69 6d 70 5f  |.p.:..z,. .Wimp_|
00001590  49 63 6f 6e 50 75 74 54  65 78 74 28 77 69 6e 64  |IconPutText(wind|
000015a0  6f 77 25 2c 69 63 6f 6e  25 2c 74 65 78 74 24 29  |ow%,icon%,text$)|
000015b0  0d 08 84 23 77 69 6d 70  25 21 30 3d 77 69 6e 64  |...#wimp%!0=wind|
000015c0  6f 77 25 20 3a 20 77 69  6d 70 25 21 34 3d 69 63  |ow% : wimp%!4=ic|
000015d0  6f 6e 25 0d 08 8e 21 c8  99 20 22 57 69 6d 70 5f  |on%...!.. "Wimp_|
000015e0  47 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 77  |GetIconState",,w|
000015f0  69 6d 70 25 0d 08 98 37  e7 20 28 28 77 69 6d 70  |imp%...7. ((wimp|
00001600  25 21 32 34 29 20 80 20  26 31 30 30 29 3d 30 20  |%!24) . &100)=0 |
00001610  85 20 31 2c 22 49 63 6f  6e 20 69 73 6e 27 74 20  |. 1,"Icon isn't |
00001620  69 6e 64 69 72 65 63 74  65 64 22 0d 08 a2 15 24  |indirected"....$|
00001630  28 77 69 6d 70 25 21 32  38 29 3d 74 65 78 74 24  |(wimp%!28)=text$|
00001640  0d 08 ac 23 77 69 6d 70  25 21 30 3d 77 69 6e 64  |...#wimp%!0=wind|
00001650  6f 77 25 20 3a 20 77 69  6d 70 25 21 34 3d 69 63  |ow% : wimp%!4=ic|
00001660  6f 6e 25 0d 08 b6 1a 77  69 6d 70 25 21 38 3d 30  |on%....wimp%!8=0|
00001670  20 3a 20 77 69 6d 70 25  21 31 32 3d 30 0d 08 c0  | : wimp%!12=0...|
00001680  21 c8 99 20 22 57 69 6d  70 5f 53 65 74 49 63 6f  |!.. "Wimp_SetIco|
00001690  6e 53 74 61 74 65 22 2c  2c 77 69 6d 70 25 0d 08  |nState",,wimp%..|
000016a0  ca 05 e1 0d 08 d4 05 3a  0d 08 de 1e dd 20 a4 57  |.......:..... .W|
000016b0  69 6d 70 5f 4d 65 6e 75  43 68 6f 69 63 65 28 6c  |imp_MenuChoice(l|
000016c0  65 76 65 6c 25 29 0d 08  e8 19 3d 28 77 69 6d 70  |evel%)....=(wimp|
000016d0  25 21 28 34 2a 6c 65 76  65 6c 25 29 29 2b 31 0d  |%!(4*level%))+1.|
000016e0  08 f2 05 3a 0d 08 fc 1d  dd 20 a4 57 69 6d 70 5f  |...:..... .Wimp_|
000016f0  4d 65 6e 75 43 72 65 61  74 65 28 6d 65 6e 75 24  |MenuCreate(menu$|
00001700  29 0d 09 06 29 e7 20 6d  65 6e 75 24 3d 22 43 6f  |)...). menu$="Co|
00001710  6c 6f 75 72 73 22 20 8c  3d a4 57 69 6d 70 5f 4d  |lours" .=.Wimp_M|
00001720  65 6e 75 43 6f 6c 6f 75  72 73 0d 09 10 27 ea 20  |enuColours...'. |
00001730  6d 65 6e 75 25 2c 69 6e  64 65 78 25 2c 77 69 64  |menu%,index%,wid|
00001740  74 68 25 2c 6c 65 6e 67  74 68 25 2c 6b 25 2c 73  |th%,length%,k%,s|
00001750  25 0d 09 1a 2e de 20 6d  65 6e 75 25 20 32 38 2b  |%..... menu% 28+|
00001760  a4 57 69 6d 70 5f 4d 65  6e 75 4e 6f 4f 66 45 6e  |.Wimp_MenuNoOfEn|
00001770  74 72 69 65 73 28 6d 65  6e 75 24 29 2a 32 34 0d  |tries(menu$)*24.|
00001780  09 24 37 6d 65 6e 75 25  3f 31 32 3d 37 20 20 20  |.$7menu%?12=7   |
00001790  3a 20 6d 65 6e 75 25 3f  31 33 3d 32 20 20 3a 20  |: menu%?13=2  : |
000017a0  6d 65 6e 75 25 3f 31 34  3d 37 20 3a 6d 65 6e 75  |menu%?14=7 :menu|
000017b0  25 3f 31 35 3d 30 0d 09  2e 2b 6d 65 6e 75 25 21  |%?15=0...+menu%!|
000017c0  31 36 3d 31 34 30 20 3a  20 6d 65 6e 75 25 21 32  |16=140 : menu%!2|
000017d0  30 3d 34 34 20 3a 20 6d  65 6e 75 25 21 32 34 3d  |0=44 : menu%!24=|
000017e0  30 0d 09 38 13 69 6e 64  65 78 25 3d 6d 65 6e 75  |0..8.index%=menu|
000017f0  25 2b 32 38 0d 09 42 20  24 6d 65 6e 75 25 3d c0  |%+28..B $menu%=.|
00001800  6d 65 6e 75 24 2c a7 6d  65 6e 75 24 2c 22 5c 22  |menu$,.menu$,"\"|
00001810  29 2d 31 29 0d 09 4c 23  77 69 64 74 68 25 3d a9  |)-1)..L#width%=.|
00001820  28 c0 6d 65 6e 75 24 2c  a7 6d 65 6e 75 24 2c 22  |(.menu$,.menu$,"|
00001830  5c 22 29 2d 31 29 29 0d  09 56 10 6d 65 6e 75 24  |\")-1))..V.menu$|
00001840  2b 3d 22 5c 22 20 3a 0d  09 60 10 c8 95 20 6d 65  |+="\" :..`... me|
00001850  6e 75 24 3c 3e 22 22 0d  09 6a 1f 6d 65 6e 75 24  |nu$<>""..j.menu$|
00001860  3d c1 6d 65 6e 75 24 2c  a7 6d 65 6e 75 24 2c 22  |=.menu$,.menu$,"|
00001870  5c 22 29 2b 31 29 0d 09  74 0e c8 8e 20 6d 65 6e  |\")+1)..t... men|
00001880  75 24 20 ca 0d 09 7e 09  20 c9 20 22 22 0d 09 88  |u$ ...~. . ""...|
00001890  08 20 7f 20 3a 0d 09 92  31 20 20 21 69 6e 64 65  |. . :...1  !inde|
000018a0  78 25 3d 30 20 3a 20 69  6e 64 65 78 25 21 34 3d  |x%=0 : index%!4=|
000018b0  2d 31 20 3a 20 69 6e 64  65 78 25 21 38 3d 26 37  |-1 : index%!8=&7|
000018c0  30 30 30 30 32 31 0d 09  9c 1b 20 20 6c 65 6e 67  |000021....  leng|
000018d0  74 68 25 3d a7 6d 65 6e  75 24 2c 22 5c 22 29 2d  |th%=.menu$,"\")-|
000018e0  31 0d 09 a6 1e 20 20 6b  25 3d a7 c0 6d 65 6e 75  |1....  k%=..menu|
000018f0  24 2c 6c 65 6e 67 74 68  25 29 2c 22 3e 22 29 0d  |$,length%),">").|
00001900  09 b0 0d 20 20 c8 8e 20  6b 25 20 ca 0d 09 ba 0a  |...  .. k% .....|
00001910  20 20 20 c9 20 30 0d 09  c4 08 20 20 20 7f 0d 09  |   . 0....   ...|
00001920  ce 25 20 20 20 20 73 25  3d a0 28 c1 6d 65 6e 75  |.%    s%=.(.menu|
00001930  24 2c 6b 25 2b 31 2c 6c  65 6e 67 74 68 25 2d 6b  |$,k%+1,length%-k|
00001940  25 29 29 0d 09 d8 13 20  20 20 20 69 6e 64 65 78  |%))....    index|
00001950  25 21 34 3d 73 25 0d 09  e2 14 20 20 20 20 6c 65  |%!4=s%....    le|
00001960  6e 67 74 68 25 3d 6b 25  2d 31 0d 09 ec 07 20 20  |ngth%=k%-1....  |
00001970  cb 0d 09 f6 22 20 20 24  28 69 6e 64 65 78 25 2b  |...."  $(index%+|
00001980  31 32 29 3d c0 6d 65 6e  75 24 2c 6c 65 6e 67 74  |12)=.menu$,lengt|
00001990  68 25 29 0d 0a 00 27 20  20 e7 20 6c 65 6e 67 74  |h%)...'  . lengt|
000019a0  68 25 3e 77 69 64 74 68  25 20 8c 20 77 69 64 74  |h%>width% . widt|
000019b0  68 25 3d 6c 65 6e 67 74  68 25 0d 0a 0a 10 20 20  |h%=length%....  |
000019c0  69 6e 64 65 78 25 2b 3d  32 34 0d 0a 14 05 cb 0d  |index%+=24......|
000019d0  0a 1e 05 ce 0d 0a 28 1a  6d 65 6e 75 25 21 31 36  |......(.menu%!16|
000019e0  3d 31 36 2a 28 77 69 64  74 68 25 2b 31 29 0d 0a  |=16*(width%+1)..|
000019f0  32 28 69 6e 64 65 78 25  21 2d 32 34 3d 69 6e 64  |2(index%!-24=ind|
00001a00  65 78 25 21 2d 32 34 20  84 20 26 38 30 20 3a 20  |ex%!-24 . &80 : |
00001a10  3d 6d 65 6e 75 25 0d 0a  3c 05 3a 0d 0a 46 17 dd  |=menu%..<.:..F..|
00001a20  20 a4 57 69 6d 70 5f 4d  65 6e 75 43 6f 6c 6f 75  | .Wimp_MenuColou|
00001a30  72 73 0d 0a 50 21 3d a4  57 69 6d 70 5f 4d 65 6e  |rs..P!=.Wimp_Men|
00001a40  75 43 72 65 61 74 65 43  6f 6c 6f 75 72 73 28 22  |uCreateColours("|
00001a50  20 22 29 0d 0a 5a 05 3a  0d 0a 64 25 dd 20 a4 57  | ")..Z.:..d%. .W|
00001a60  69 6d 70 5f 4d 65 6e 75  43 72 65 61 74 65 43 6f  |imp_MenuCreateCo|
00001a70  6c 6f 75 72 73 28 74 69  74 6c 65 24 29 0d 0a 6e  |lours(title$)..n|
00001a80  13 ea 20 78 24 2c 6d 65  6e 25 2c 6a 25 2c 69 25  |.. x$,men%,j%,i%|
00001a90  0d 0a 78 36 78 24 3d 74  69 74 6c 65 24 2b 22 5c  |..x6x$=title$+"\|
00001aa0  30 5c 31 5c 32 5c 33 5c  34 5c 35 5c 36 5c 37 5c  |0\1\2\3\4\5\6\7\|
00001ab0  38 5c 39 5c 31 30 5c 31  31 5c 31 32 5c 31 33 5c  |8\9\10\11\12\13\|
00001ac0  31 34 5c 31 35 22 0d 0a  82 1d 6d 65 6e 25 3d a4  |14\15"....men%=.|
00001ad0  57 69 6d 70 5f 4d 65 6e  75 43 72 65 61 74 65 28  |Wimp_MenuCreate(|
00001ae0  78 24 29 0d 0a 8c 0f e3  20 69 25 3d 30 20 b8 20  |x$)..... i%=0 . |
00001af0  31 35 0d 0a 96 0a c8 8e  20 b9 20 ca 0d 0a a0 28  |15...... . ....(|
00001b00  c9 20 69 25 3c 34 2c 69  25 3d 39 2c 69 25 3d 31  |. i%<4,i%=9,i%=1|
00001b10  32 2c 69 25 3d 31 34 2c  69 25 3d 31 35 20 3a 20  |2,i%=14,i%=15 : |
00001b20  6a 25 3d 37 0d 0a aa 0c  7f 20 3a 20 6a 25 3d 30  |j%=7..... : j%=0|
00001b30  0d 0a b4 05 cb 0d 0a be  1c 6d 65 6e 25 3f 28 33  |.........men%?(3|
00001b40  39 2b 69 25 2a 32 34 29  3d 69 25 2a 31 36 2b 6a  |9+i%*24)=i%*16+j|
00001b50  25 0d 0a c8 1f f2 57 69  6d 70 5f 4d 65 6e 75 43  |%.....Wimp_MenuC|
00001b60  65 6e 74 72 65 28 6d 65  6e 25 2c 69 25 2b 31 29  |entre(men%,i%+1)|
00001b70  0d 0a d2 05 ed 0d 0a dc  09 3d 6d 65 6e 25 0d 0a  |.........=men%..|
00001b80  e6 05 3a 0d 0a f0 22 dd  20 a4 57 69 6d 70 5f 4d  |..:...". .Wimp_M|
00001b90  65 6e 75 4e 6f 4f 66 45  6e 74 72 69 65 73 28 6d  |enuNoOfEntries(m|
00001ba0  65 6e 75 24 29 0d 0a fa  1a ea 20 6e 25 20 2c 6a  |enu$)..... n% ,j|
00001bb0  25 20 3a 20 6e 25 3d 30  20 3a 20 6a 25 3d 30 0d  |% : n%=0 : j%=0.|
00001bc0  0b 04 05 f5 0d 0b 0e 17  6a 25 3d a7 6d 65 6e 75  |........j%=.menu|
00001bd0  24 2c 22 5c 22 2c 6a 25  2b 31 29 0d 0b 18 13 e7  |$,"\",j%+1).....|
00001be0  20 6a 25 3c 3e 30 20 8c  20 6e 25 2b 3d 31 0d 0b  | j%<>0 . n%+=1..|
00001bf0  22 0a fd 20 6a 25 3d 30  0d 0b 2c 07 3d 6e 25 0d  |".. j%=0..,.=n%.|
00001c00  0b 36 05 3a 0d 0b 40 05  3a 0d 0b 4a 23 dd 20 f2  |.6.:..@.:..J#. .|
00001c10  57 69 6d 70 5f 4d 65 6e  75 43 65 6e 74 72 65 28  |Wimp_MenuCentre(|
00001c20  6d 65 6e 75 25 2c 69 74  65 6d 25 29 0d 0b 54 3a  |menu%,item%)..T:|
00001c30  6d 65 6e 75 25 21 28 33  36 2b 28 69 74 65 6d 25  |menu%!(36+(item%|
00001c40  2d 31 29 2a 32 34 29 3d  6d 65 6e 75 25 21 28 33  |-1)*24)=menu%!(3|
00001c50  36 2b 28 69 74 65 6d 25  2d 31 29 2a 32 34 29 84  |6+(item%-1)*24).|
00001c60  28 31 3c 3c 33 29 0d 0b  5e 05 e1 0d 0b 68 05 3a  |(1<<3)..^....h.:|
00001c70  0d 0b 72 05 3a 0d 0b 7c  05 3a 0d 0b 86 05 3a 0d  |..r.:..|.:....:.|
00001c80  0b 90 04 0d 0b 9a 26 dd  20 a4 57 69 6d 70 5f 47  |......&. .Wimp_G|
00001c90  65 74 53 74 72 69 6e 67  41 74 41 64 64 72 65 73  |etStringAtAddres|
00001ca0  73 28 61 72 72 61 79 25  29 0d 0b a4 0d ea 73 24  |s(array%).....s$|
00001cb0  3a 73 24 3d 22 22 0d 0b  ae 3c c8 95 28 3f 61 72  |:s$=""...<..(?ar|
00001cc0  72 61 79 25 3c 3e 31 33  29 80 28 3f 61 72 72 61  |ray%<>13).(?arra|
00001cd0  79 25 3c 3e 30 29 3a 73  24 2b 3d bd 28 3f 61 72  |y%<>0):s$+=.(?ar|
00001ce0  72 61 79 25 29 3a 61 72  72 61 79 25 2b 3d 31 3a  |ray%):array%+=1:|
00001cf0  ce 3a 0d 0b b8 07 3d 73  24 0d 0b c2 05 3a 0d 0b  |.:....=s$....:..|
00001d00  cc 23 dd 20 a4 57 69 6d  70 5f 47 65 74 46 69 6c  |.#. .Wimp_GetFil|
00001d10  65 46 72 6f 6d 50 61 74  68 6e 61 6d 65 28 66 24  |eFromPathname(f$|
00001d20  29 0d 0b d6 11 c8 8e 20  a7 66 24 2c 22 2e 22 29  |)...... .f$,".")|
00001d30  20 ca 0d 0b e0 10 20 c9  20 30 20 20 20 20 3a 3d  | ..... . 0    :=|
00001d40  66 24 0d 0b ea 37 20 7f  20 3a 3d a4 57 69 6d 70  |f$...7 . :=.Wimp|
00001d50  5f 47 65 74 46 69 6c 65  46 72 6f 6d 50 61 74 68  |_GetFileFromPath|
00001d60  6e 61 6d 65 28 c2 66 24  2c a9 28 66 24 29 2d a7  |name(.f$,.(f$)-.|
00001d70  66 24 2c 22 2e 22 29 29  29 0d 0b f4 05 cb 0d 0b  |f$,"."))).......|
00001d80  fe 05 3a 0d 0c 08 2f dd  20 f2 57 69 6d 70 5f 53  |..:.../. .Wimp_S|
00001d90  74 61 72 74 28 54 61 73  6b 4e 61 6d 65 24 2c 77  |tart(TaskName$,w|
00001da0  69 6d 70 5f 6d 65 6d 6f  72 79 25 2c 69 63 6f 6e  |imp_memory%,icon|
00001db0  25 29 0d 0c 12 25 de 20  77 69 6d 70 25 20 77 69  |%)...%. wimp% wi|
00001dc0  6d 70 5f 6d 65 6d 6f 72  79 25 2c 69 63 6f 6e 73  |mp_memory%,icons|
00001dd0  25 20 69 63 6f 6e 25 0d  0c 1c 29 e7 20 77 69 6d  |% icon%...). wim|
00001de0  70 5f 6d 65 6d 6f 72 79  25 3c 32 35 36 20 8c 20  |p_memory%<256 . |
00001df0  77 69 6d 70 5f 6d 65 6d  6f 72 79 25 3d 32 35 36  |wimp_memory%=256|
00001e00  0d 0c 26 1d 69 63 6f 6e  5f 6d 65 6d 6f 72 79 25  |..&.icon_memory%|
00001e10  3d 69 63 6f 6e 73 25 2b  69 63 6f 6e 25 0d 0c 30  |=icons%+icon%..0|
00001e20  13 74 61 73 6b 24 3d 54  61 73 6b 4e 61 6d 65 24  |.task$=TaskName$|
00001e30  0d 0c 3a 1b f2 57 69 6d  70 5f 53 65 74 45 76 65  |..:..Wimp_SetEve|
00001e40  6e 74 56 61 72 69 61 62  6c 65 73 0d 0c 44 15 ee  |ntVariables..D..|
00001e50  20 85 20 f2 57 69 6d 70  5f 45 72 72 6f 72 3a e0  | . .Wimp_Error:.|
00001e60  0d 0c 4e 40 c8 99 22 57  69 6d 70 5f 49 6e 69 74  |..N@.."Wimp_Init|
00001e70  69 61 6c 69 73 65 22 2c  32 30 30 2c 26 34 42 35  |ialise",200,&4B5|
00001e80  33 34 31 35 34 2c 54 61  73 6b 4e 61 6d 65 24 20  |34154,TaskName$ |
00001e90  b8 20 76 65 72 73 69 6f  6e 25 2c 74 61 73 6b 25  |. version%,task%|
00001ea0  0d 0c 58 05 e1 0d 0c 62  05 3a 0d 0c 6c 05 3a 0d  |..X....b.:..l.:.|
00001eb0  0c 76 1d dd 20 f2 57 69  6d 70 5f 53 65 74 45 76  |.v.. .Wimp_SetEv|
00001ec0  65 6e 74 56 61 72 69 61  62 6c 65 73 0d 0c 80 17  |entVariables....|
00001ed0  de 20 70 6f 69 6e 74 65  72 5f 62 6c 6f 63 6b 25  |. pointer_block%|
00001ee0  20 32 30 0d 0c 8a 10 69  6e 74 65 72 66 61 63 65  | 20....interface|
00001ef0  25 3d a3 0d 0c 94 19 6b  65 79 25 3d 31 3c 3c 38  |%=.....key%=1<<8|
00001f00  3a 6d 65 6e 75 25 3d 31  3c 3c 39 3a 0d 0c 9e 0d  |:menu%=1<<9:....|
00001f10  77 69 6e 64 6f 77 25 3d  30 0d 0c a8 21 73 70 72  |window%=0...!spr|
00001f20  69 74 65 73 25 3d 31 3a  76 65 72 73 69 6f 6e 25  |ites%=1:version%|
00001f30  3d 30 3a 74 61 73 6b 25  3d 30 0d 0c b2 2a 42 61  |=0:task%=0...*Ba|
00001f40  72 5f 57 69 6e 64 6f 77  25 3d 2d 32 3a 42 61 72  |r_Window%=-2:Bar|
00001f50  5f 49 63 6f 6e 25 3d 30  3a 42 61 72 5f 4d 65 6e  |_Icon%=0:Bar_Men|
00001f60  75 25 3d 30 0d 0c bc 1c  78 5f 6f 72 69 67 69 6e  |u%=0....x_origin|
00001f70  25 3d 30 3a 79 5f 6f 72  69 67 69 6e 25 3d 30 3a  |%=0:y_origin%=0:|
00001f80  0d 0c c6 05 e1 0d 0c d0  05 3a 0d 0c da 11 dd 20  |.........:..... |
00001f90  f2 57 69 6d 70 5f 45 72  72 6f 72 0d 0c e4 0a ea  |.Wimp_Error.....|
00001fa0  58 24 2c 78 25 0d 0c ee  09 ee 20 85 20 87 0d 0c  |X$,x%..... . ...|
00001fb0  f8 08 78 25 3d 9e 0d 0d  02 1b 58 24 3d f6 24 2b  |..x%=.....X$=.$+|
00001fc0  22 61 74 6c 69 6e 65 22  2b c3 28 78 25 81 31 30  |"atline"+.(x%.10|
00001fd0  29 0d 0d 0c 10 de 45 72  72 6f 72 4d 73 67 25 33  |).....ErrorMsg%3|
00001fe0  36 0d 0d 16 45 45 72 72  6f 72 4d 73 67 25 21 30  |6...EErrorMsg%!0|
00001ff0  3d 33 36 3a 45 72 72 6f  72 4d 73 67 25 21 31 32  |=36:ErrorMsg%!12|
00002000  3d 30 3a 45 72 72 6f 72  4d 73 67 25 21 31 36 3d  |=0:ErrorMsg%!16=|
00002010  26 38 31 30 38 30 3a 45  72 72 6f 72 4d 73 67 25  |&81080:ErrorMsg%|
00002020  21 32 30 3d 78 25 0d 0d  20 1f 24 28 45 72 72 6f  |!20=x%.. .$(Erro|
00002030  72 4d 73 67 25 2b 32 34  29 3d 22 21 52 75 6e 49  |rMsg%+24)="!RunI|
00002040  6d 61 67 65 22 0d 0d 2a  25 c8 99 22 57 69 6d 70  |mage"..*%.."Wimp|
00002050  5f 53 65 6e 64 4d 65 73  73 61 67 65 22 2c 31 37  |_SendMessage",17|
00002060  2c 45 72 72 6f 72 4d 73  67 25 0d 0d 34 1f f2 57  |,ErrorMsg%..4..W|
00002070  69 6d 70 5f 57 69 6e 64  6f 77 41 6c 65 72 74 28  |imp_WindowAlert(|
00002080  74 61 73 6b 24 2c 58 24  29 0d 0d 3e 13 f2 57 69  |task$,X$)..>..Wi|
00002090  6d 70 5f 43 6c 6f 73 65  44 6f 77 6e 0d 0d 48 05  |mp_CloseDown..H.|
000020a0  e1 0d 0d 52 05 3a 0d 0d  5c 15 dd 20 f2 57 69 6d  |...R.:..\.. .Wim|
000020b0  70 5f 43 6c 6f 73 65 44  6f 77 6e 0d 0d 66 23 c8  |p_CloseDown..f#.|
000020c0  99 22 57 69 6d 70 5f 43  6c 6f 73 65 44 6f 77 6e  |."Wimp_CloseDown|
000020d0  22 2c 74 61 73 6b 25 2c  22 54 41 53 4b 22 0d 0d  |",task%,"TASK"..|
000020e0  70 05 e1 0d 0d 7a 05 3a  0d 0d 84 05 3a 0d 0d 8e  |p....z.:....:...|
000020f0  05 3a 0d 0d 98 05 3a 0d  0d a2 18 dd 20 f2 57 69  |.:....:..... .Wi|
00002100  6d 70 5f 57 61 69 74 46  6f 72 45 76 65 6e 74 0d  |mp_WaitForEvent.|
00002110  0d ac 12 ea 20 6d 61 73  6b 25 2c 65 76 65 6e 74  |.... mask%,event|
00002120  25 0d 0d b6 0f 66 69 6e  69 73 68 65 64 25 3d a3  |%....finished%=.|
00002130  0d 0d c0 17 6d 61 73 6b  25 3d 25 31 31 31 30 30  |....mask%=%11100|
00002140  30 30 31 31 30 30 31 0d  0d ca 05 f5 0d 0d d4 27  |0011001........'|
00002150  20 c8 99 22 57 69 6d 70  5f 50 6f 6c 6c 22 2c 6d  | .."Wimp_Poll",m|
00002160  61 73 6b 25 2c 77 69 6d  70 25 20 b8 20 65 76 65  |ask%,wimp% . eve|
00002170  6e 74 25 0d 0d de 10 20  c8 8e 20 65 76 65 6e 74  |nt%.... .. event|
00002180  25 20 ca 0d 0d e8 1f 20  20 c9 31 20 3a 20 f2 57  |% .....  .1 : .W|
00002190  69 6d 70 5f 50 6f 6c 6c  44 72 61 77 57 69 6e 64  |imp_PollDrawWind|
000021a0  6f 77 0d 0d f2 26 20 20  c9 32 20 3a 20 c8 99 20  |ow...&  .2 : .. |
000021b0  22 57 69 6d 70 5f 4f 70  65 6e 57 69 6e 64 6f 77  |"Wimp_OpenWindow|
000021c0  22 2c 2c 77 69 6d 70 25  0d 0d fc 20 20 20 c9 33  |",,wimp%...   .3|
000021d0  20 3a 20 f2 57 69 6d 70  5f 50 6f 6c 6c 43 6c 6f  | : .Wimp_PollClo|
000021e0  73 65 57 69 6e 64 6f 77  0d 0e 06 1f 20 20 c9 36  |seWindow....  .6|
000021f0  20 3a 20 f2 57 69 6d 70  5f 50 6f 6c 6c 4d 6f 75  | : .Wimp_PollMou|
00002200  73 65 43 6c 69 63 6b 0d  0e 10 1d 20 20 c9 38 20  |seClick....  .8 |
00002210  3a 20 f2 57 69 6d 70 5f  50 6f 6c 6c 4b 65 79 50  |: .Wimp_PollKeyP|
00002220  72 65 73 73 0d 0e 1a 23  20 20 c9 39 20 3a 20 f2  |ress...#  .9 : .|
00002230  45 76 65 6e 74 5f 4d 65  6e 75 43 68 6f 69 63 65  |Event_MenuChoice|
00002240  28 6d 65 6e 75 25 29 0d  0e 24 18 20 20 c9 31 37  |(menu%)..$.  .17|
00002250  2c 31 38 3a 20 f4 20 6d  65 73 73 61 67 65 73 0d  |,18: . messages.|
00002260  0e 2e 15 20 20 20 20 c8  8e 20 77 69 6d 70 25 21  |...    .. wimp%!|
00002270  31 36 20 ca 0d 0e 38 18  20 20 20 20 20 c9 20 30  |16 ...8.     . 0|
00002280  3a 66 69 6e 69 73 68 65  64 25 3d b9 0d 0e 42 08  |:finished%=...B.|
00002290  20 20 20 cb 0d 0e 4c 06  20 cb 0d 0e 56 0f fd 20  |   ...L. ...V.. |
000022a0  66 69 6e 69 73 68 65 64  25 0d 0e 60 05 e1 0d 0e  |finished%..`....|
000022b0  6a 05 3a 0d 0e 74 1a dd  20 f2 57 69 6d 70 5f 50  |j.:..t.. .Wimp_P|
000022c0  6f 6c 6c 44 72 61 77 57  69 6e 64 6f 77 0d 0e 7e  |ollDrawWindow..~|
000022d0  0b ea 20 6d 6f 72 65 25  0d 0e 88 26 c8 99 22 57  |.. more%...&.."W|
000022e0  69 6d 70 5f 52 65 64 72  61 77 57 69 6e 64 6f 77  |imp_RedrawWindow|
000022f0  22 2c 2c 77 69 6d 70 25  b8 6d 6f 72 65 25 0d 0e  |",,wimp%.more%..|
00002300  92 13 77 69 6e 64 6f 77  25 3d 77 69 6d 70 25 21  |..window%=wimp%!|
00002310  30 0d 0e 9c 41 78 5f 6f  72 69 67 69 6e 25 3d 31  |0...Ax_origin%=1|
00002320  36 2b 77 69 6d 70 25 21  34 2d 77 69 6d 70 25 21  |6+wimp%!4-wimp%!|
00002330  32 30 3a 79 5f 6f 72 69  67 69 6e 25 3d 2d 31 36  |20:y_origin%=-16|
00002340  2b 77 69 6d 70 25 21 31  36 2d 77 69 6d 70 25 21  |+wimp%!16-wimp%!|
00002350  32 34 0d 0e a6 0b c8 95  6d 6f 72 65 25 0d 0e b0  |24......more%...|
00002360  30 20 e7 20 69 6e 74 65  72 66 61 63 65 25 20 8c  |0 . interface% .|
00002370  20 c8 99 22 57 69 6d 70  5f 42 6f 72 64 65 72 57  | .."Wimp_BorderW|
00002380  69 6e 64 6f 77 22 2c 2c  77 69 6d 70 25 0d 0e ba  |indow",,wimp%...|
00002390  2d 20 f2 45 76 65 6e 74  5f 44 72 61 77 28 77 69  |- .Event_Draw(wi|
000023a0  6e 64 6f 77 25 2c 78 5f  6f 72 69 67 69 6e 25 2c  |ndow%,x_origin%,|
000023b0  79 5f 6f 72 69 67 69 6e  25 29 0d 0e c4 27 20 c8  |y_origin%)...' .|
000023c0  99 22 57 69 6d 70 5f 47  65 74 52 65 63 74 61 6e  |."Wimp_GetRectan|
000023d0  67 6c 65 22 2c 2c 77 69  6d 70 25 b8 6d 6f 72 65  |gle",,wimp%.more|
000023e0  25 0d 0e ce 05 ce 0d 0e  d8 05 e1 0d 0e e2 05 3a  |%..............:|
000023f0  0d 0e ec 1b dd 20 f2 57  69 6d 70 5f 50 6f 6c 6c  |..... .Wimp_Poll|
00002400  43 6c 6f 73 65 57 69 6e  64 6f 77 0d 0e f6 25 20  |CloseWindow...% |
00002410  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 50 6f 69  | .. "Wimp_GetPoi|
00002420  6e 74 65 72 49 6e 66 6f  22 2c 2c 77 69 6d 70 25  |nterInfo",,wimp%|
00002430  0d 0f 00 29 20 20 77 69  6e 64 6f 77 25 3d 77 69  |...)  window%=wi|
00002440  6d 70 25 21 31 32 20 3a  20 62 75 74 74 6f 6e 73  |mp%!12 : buttons|
00002450  25 3d 77 69 6d 70 25 21  38 0d 0f 0a 29 20 f2 45  |%=wimp%!8...) .E|
00002460  76 65 6e 74 5f 57 69 6e  64 6f 77 43 6c 6f 73 65  |vent_WindowClose|
00002470  28 77 69 6e 64 6f 77 25  2c 62 75 74 74 6f 6e 73  |(window%,buttons|
00002480  25 29 0d 0f 14 32 20 21  77 69 6d 70 25 3d 77 69  |%)...2 !wimp%=wi|
00002490  6e 64 6f 77 25 20 3a 20  c8 99 20 22 57 69 6d 70  |ndow% : .. "Wimp|
000024a0  5f 43 6c 6f 73 65 57 69  6e 64 6f 77 22 2c 2c 77  |_CloseWindow",,w|
000024b0  69 6d 70 25 0d 0f 1e 05  e1 0d 0f 28 05 3a 0d 0f  |imp%.......(.:..|
000024c0  32 1a dd 20 f2 57 69 6d  70 5f 50 6f 6c 6c 4d 6f  |2.. .Wimp_PollMo|
000024d0  75 73 65 43 6c 69 63 6b  0d 0f 3c 4a 20 62 75 74  |useClick..<J but|
000024e0  74 6f 6e 25 3d 77 69 6d  70 25 21 38 3a 77 69 6e  |ton%=wimp%!8:win|
000024f0  64 6f 77 25 3d 77 69 6d  70 25 21 31 32 3a 69 63  |dow%=wimp%!12:ic|
00002500  6f 6e 25 3d 77 69 6d 70  25 21 31 36 3a 78 25 3d  |on%=wimp%!16:x%=|
00002510  77 69 6d 70 25 21 30 3a  79 25 3d 77 69 6d 70 25  |wimp%!0:y%=wimp%|
00002520  21 34 0d 0f 46 11 20 c8  8e 20 62 75 74 74 6f 6e  |!4..F. .. button|
00002530  25 20 ca 0d 0f 50 22 20  20 20 c9 32 20 20 20 20  |% ...P"   .2    |
00002540  3a 20 f2 57 69 6d 70 5f  50 6f 6c 6c 4d 65 6e 75  |: .Wimp_PollMenu|
00002550  50 6f 70 55 70 0d 0f 5a  23 20 20 20 7f 3a 20 c8  |PopUp..Z#   .: .|
00002560  8e 20 a4 45 76 65 6e 74  5f 53 61 76 65 28 77 69  |. .Event_Save(wi|
00002570  6e 64 6f 77 25 29 20 ca  0d 0f 64 2c 20 20 20 20  |ndow%) ...d,    |
00002580  20 20 20 20 20 20 20 20  20 20 20 c9 20 b9 20 3a  |           . . :|
00002590  20 f2 57 69 6d 70 5f 50  6f 6c 6c 4d 6f 75 73 65  | .Wimp_PollMouse|
000025a0  53 61 76 65 0d 0f 6e 31  20 20 20 20 20 20 20 20  |Save..n1        |
000025b0  20 20 20 20 20 20 20 c9  20 a3 3a 20 f2 57 69 6d  |       . .: .Wim|
000025c0  70 5f 50 6f 6c 6c 45 76  65 6e 74 4d 6f 75 73 65  |p_PollEventMouse|
000025d0  43 6c 69 63 6b 0d 0f 78  13 20 20 20 20 20 20 20  |Click..x.       |
000025e0  20 20 20 20 20 20 20 cb  0d 0f 82 06 20 cb 0d 0f  |       ..... ...|
000025f0  8c 05 e1 0d 0f 96 05 3a  0d 0f a0 19 dd 20 f2 57  |.......:..... .W|
00002600  69 6d 70 5f 50 6f 6c 6c  4d 65 6e 75 50 6f 70 55  |imp_PollMenuPopU|
00002610  70 0d 0f aa 1e 6d 65 6e  75 25 3d a4 45 76 65 6e  |p....menu%=.Even|
00002620  74 5f 4d 65 6e 75 28 77  69 6e 64 6f 77 25 29 0d  |t_Menu(window%).|
00002630  0f b4 11 20 20 c8 8e 20  6d 65 6e 75 25 20 20 ca  |...  .. menu%  .|
00002640  0d 0f be 0b 20 20 20 c9  20 a3 3a 0d 0f c8 0a 20  |....   . .:.... |
00002650  20 20 7f 20 3a 0d 0f d2  15 20 20 20 20 20 c8 8e  |  . :....     ..|
00002660  20 77 69 6e 64 6f 77 25  20 ca 0d 0f dc 17 20 20  | window% .....  |
00002670  20 20 20 20 c9 20 2d 32  20 20 20 3a 20 6e 25 3d  |    . -2   : n%=|
00002680  30 0d 0f e6 33 20 20 20  20 20 20 20 20 c8 95 20  |0...3        .. |
00002690  28 28 42 61 72 5f 4d 65  6e 75 25 21 28 32 38 2b  |((Bar_Menu%!(28+|
000026a0  6e 25 2a 32 34 29 29 80  25 31 30 30 30 30 30 30  |n%*24)).%1000000|
000026b0  30 29 3d 30 0d 0f f0 12  20 20 20 20 20 20 20 20  |0)=0....        |
000026c0  20 6e 25 2b 3d 31 0d 0f  fa 0d 20 20 20 20 20 20  | n%+=1....      |
000026d0  20 20 ce 0d 10 04 3f 20  20 20 20 20 20 20 20 c8  |  ....?        .|
000026e0  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |. "Wimp_CreateMe|
000026f0  6e 75 22 2c 2c 42 61 72  5f 4d 65 6e 75 25 2c 78  |nu",,Bar_Menu%,x|
00002700  25 2d 36 34 2c 39 36 2b  34 34 2b 28 6e 25 2a 34  |%-64,96+44+(n%*4|
00002710  34 29 0d 10 0e 34 20 20  20 20 20 20 7f 20 3a 20  |4)...4      . : |
00002720  c8 99 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |.."Wimp_CreateMe|
00002730  6e 75 22 2c 2c 6d 65 6e  75 25 2c 78 25 2d 36 34  |nu",,menu%,x%-64|
00002740  2c 79 25 2b 32 30 0d 10  18 0a 20 20 20 20 20 cb  |,y%+20....     .|
00002750  0d 10 22 07 20 20 cb 0d  10 2c 05 e1 0d 10 36 05  |..".  ...,....6.|
00002760  3a 0d 10 40 19 dd 20 f2  57 69 6d 70 5f 50 6f 6c  |:..@.. .Wimp_Pol|
00002770  6c 4d 6f 75 73 65 53 61  76 65 0d 10 4a 0f 20 c8  |lMouseSave..J. .|
00002780  8e 20 69 63 6f 6e 25 20  ca 0d 10 54 38 20 20 c9  |. icon% ...T8  .|
00002790  20 30 20 3a 20 e7 20 62  75 74 74 6f 6e 25 20 80  | 0 : . button% .|
000027a0  20 26 35 30 20 8c 20 f2  57 69 6d 70 5f 50 6f 6c  | &50 . .Wimp_Pol|
000027b0  6c 44 72 61 67 42 6f 78  28 77 69 6e 64 6f 77 25  |lDragBox(window%|
000027c0  29 0d 10 5e 38 20 20 c9  20 32 20 3a 20 e7 20 62  |)..^8  . 2 : . b|
000027d0  75 74 74 6f 6e 25 20 80  20 35 20 8c 20 20 f2 57  |utton% . 5 .  .W|
000027e0  69 6d 70 5f 50 6f 6c 6c  53 61 76 65 46 69 6c 65  |imp_PollSaveFile|
000027f0  28 77 69 6e 64 6f 77 25  29 0d 10 68 06 20 cb 0d  |(window%)..h. ..|
00002800  10 72 05 e1 0d 10 7c 05  3a 0d 10 86 1f dd 20 f2  |.r....|.:..... .|
00002810  57 69 6d 70 5f 50 6f 6c  6c 45 76 65 6e 74 4d 6f  |Wimp_PollEventMo|
00002820  75 73 65 43 6c 69 63 6b  0d 10 90 2e 20 e7 20 69  |useClick.... . i|
00002830  6e 74 65 72 66 61 63 65  25 20 8c 20 c8 99 22 57  |nterface% . .."W|
00002840  69 6d 70 5f 42 6f 72 64  65 72 49 63 6f 6e 22 2c  |imp_BorderIcon",|
00002850  2c 77 69 6d 70 25 0d 10  9a 33 20 f2 45 76 65 6e  |,wimp%...3 .Even|
00002860  74 5f 4d 6f 75 73 65 43  6c 69 63 6b 28 77 69 6e  |t_MouseClick(win|
00002870  64 6f 77 25 2c 69 63 6f  6e 25 2c 62 75 74 74 6f  |dow%,icon%,butto|
00002880  6e 25 2c 78 25 2c 79 25  29 0d 10 a4 15 20 c8 8e  |n%,x%,y%).... ..|
00002890  20 20 69 6e 74 65 72 66  61 63 65 25 20 ca 0d 10  |  interface% ...|
000028a0  ae 0b 20 20 c9 20 b9 20  3a 0d 10 b8 28 20 20 20  |..  . . :...(   |
000028b0  77 69 6d 70 25 21 30 3d  78 25 3a 77 69 6d 70 25  |wimp%!0=x%:wimp%|
000028c0  21 34 3d 79 25 20 3a 20  77 69 6d 70 25 21 38 3d  |!4=y% : wimp%!8=|
000028d0  30 0d 10 c2 28 20 20 20  77 69 6d 70 25 21 31 32  |0...(   wimp%!12|
000028e0  3d 77 69 6e 64 6f 77 25  20 3a 20 77 69 6d 70 25  |=window% : wimp%|
000028f0  21 31 36 3d 69 63 6f 6e  25 0d 10 cc 21 20 20 20  |!16=icon%...!   |
00002900  c8 99 22 57 69 6d 70 5f  42 6f 72 64 65 72 49 63  |.."Wimp_BorderIc|
00002910  6f 6e 22 2c 2c 77 69 6d  70 25 0d 10 d6 06 20 cb  |on",,wimp%.... .|
00002920  0d 10 e0 05 e1 0d 10 ea  05 3a 0d 10 f4 05 3a 0d  |.........:....:.|
00002930  10 fe 20 dd 20 f2 57 69  6d 70 5f 50 6f 6c 6c 44  |.. . .Wimp_PollD|
00002940  72 61 67 42 6f 78 28 77  69 6e 64 6f 77 25 29 0d  |ragBox(window%).|
00002950  11 08 0a ea 78 25 2c 79  25 0d 11 12 13 20 21 77  |....x%,y%.... !w|
00002960  69 6d 70 25 3d 77 69 6e  64 6f 77 25 0d 11 1c 23  |imp%=window%...#|
00002970  20 c8 99 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  | .."Wimp_GetWind|
00002980  6f 77 53 74 61 74 65 22  2c 2c 77 69 6d 70 25 0d  |owState",,wimp%.|
00002990  11 26 2d 20 78 25 3d 77  69 6d 70 25 21 34 2d 77  |.&- x%=wimp%!4-w|
000029a0  69 6d 70 25 21 32 30 3a  79 25 3d 77 69 6d 70 25  |imp%!20:y%=wimp%|
000029b0  21 31 36 2d 77 69 6d 70  25 21 32 34 0d 11 30 0e  |!16-wimp%!24..0.|
000029c0  20 77 69 6d 70 25 21 34  3d 30 0d 11 3a 21 20 c8  | wimp%!4=0..:! .|
000029d0  99 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  |."Wimp_GetIconSt|
000029e0  61 74 65 22 2c 2c 77 69  6d 70 25 0d 11 44 13 20  |ate",,wimp%..D. |
000029f0  21 77 69 6d 70 25 3d 77  69 6e 64 6f 77 25 0d 11  |!wimp%=window%..|
00002a00  4e 0e 20 77 69 6d 70 25  21 34 3d 35 0d 11 58 2c  |N. wimp%!4=5..X,|
00002a10  20 77 69 6d 70 25 21 38  3d 78 25 2b 77 69 6d 70  | wimp%!8=x%+wimp|
00002a20  25 21 38 3a 77 69 6d 70  25 21 31 32 3d 79 25 2b  |%!8:wimp%!12=y%+|
00002a30  77 69 6d 70 25 21 31 32  0d 11 62 2e 20 77 69 6d  |wimp%!12..b. wim|
00002a40  70 25 21 31 36 3d 78 25  2b 77 69 6d 70 25 21 31  |p%!16=x%+wimp%!1|
00002a50  36 3a 77 69 6d 70 25 21  32 30 3d 79 25 2b 77 69  |6:wimp%!20=y%+wi|
00002a60  6d 70 25 21 32 30 0d 11  6c 1a 20 77 69 6d 70 25  |mp%!20..l. wimp%|
00002a70  21 32 34 3d 30 3a 77 69  6d 70 25 21 32 38 3d 30  |!24=0:wimp%!28=0|
00002a80  0d 11 76 2a 20 77 69 6d  70 25 21 33 32 3d 26 37  |..v* wimp%!32=&7|
00002a90  46 46 46 46 46 46 46 3a  77 69 6d 70 25 21 33 36  |FFFFFFF:wimp%!36|
00002aa0  3d 26 37 46 46 46 46 46  46 46 0d 11 80 1c 20 c8  |=&7FFFFFFF.... .|
00002ab0  99 22 57 69 6d 70 5f 44  72 61 67 42 6f 78 22 2c  |."Wimp_DragBox",|
00002ac0  2c 77 69 6d 70 25 0d 11  8a 05 e1 0d 11 94 05 3a  |,wimp%.........:|
00002ad0  0d 11 9e 18 dd 20 f2 57  69 6d 70 5f 50 6f 6c 6c  |..... .Wimp_Poll|
00002ae0  4b 65 79 50 72 65 73 73  0d 11 a8 31 20 20 77 69  |KeyPress...1  wi|
00002af0  6e 64 6f 77 25 3d 77 69  6d 70 25 21 30 3a 69 63  |ndow%=wimp%!0:ic|
00002b00  6f 6e 25 3d 77 69 6d 70  25 21 34 3a 6b 65 79 25  |on%=wimp%!4:key%|
00002b10  3d 77 69 6d 70 25 21 32  34 0d 11 b2 1f 20 20 c8  |=wimp%!24....  .|
00002b20  8e 20 a4 45 76 65 6e 74  5f 53 61 76 65 28 77 69  |. .Event_Save(wi|
00002b30  6e 64 6f 77 25 29 20 ca  0d 11 bc 28 20 20 20 c9  |ndow%) ....(   .|
00002b40  20 b9 20 3a 20 f2 57 69  6d 70 5f 50 6f 6c 6c 53  | . : .Wimp_PollS|
00002b50  61 76 65 46 69 6c 65 28  77 69 6e 64 6f 77 25 29  |aveFile(window%)|
00002b60  0d 11 c6 2f 20 20 20 c9  20 a3 3a 20 f2 45 76 65  |.../   . .: .Eve|
00002b70  6e 74 5f 4b 65 79 50 72  65 73 73 28 77 69 6e 64  |nt_KeyPress(wind|
00002b80  6f 77 25 2c 69 63 6f 6e  25 2c 6b 65 79 25 29 0d  |ow%,icon%,key%).|
00002b90  11 d0 07 20 20 cb 0d 11  da 05 e1 0d 11 e4 05 3a  |...  ..........:|
00002ba0  0d 11 ee 17 dd 20 f2 57  69 6d 70 5f 53 70 72 69  |..... .Wimp_Spri|
00002bb0  74 65 73 4c 6f 61 64 0d  11 f8 2f f2 57 69 6d 70  |tesLoad.../.Wimp|
00002bc0  5f 53 70 72 69 74 65 73  50 61 74 68 4c 6f 61 64  |_SpritesPathLoad|
00002bd0  28 22 3c 4f 62 65 79 24  44 69 72 3e 2e 53 70 72  |("<Obey$Dir>.Spr|
00002be0  69 74 65 73 22 29 0d 12  02 1c 64 69 72 65 63 74  |ites")....direct|
00002bf0  5f 73 70 72 69 74 65 73  25 3d 73 70 72 69 74 65  |_sprites%=sprite|
00002c00  73 25 0d 12 0c 05 e1 0d  12 16 05 3a 0d 12 20 26  |s%.........:.. &|
00002c10  dd 20 f2 57 69 6d 70 5f  53 70 72 69 74 65 73 50  |. .Wimp_SpritesP|
00002c20  61 74 68 4c 6f 61 64 28  70 61 74 68 6e 61 6d 65  |athLoad(pathname|
00002c30  24 29 0d 12 2a 0a ea 53  25 2c 54 25 0d 12 34 2c  |$)..*..S%,T%..4,|
00002c40  53 25 3d 8e 22 3c 4f 62  65 79 24 44 69 72 3e 2e  |S%=."<Obey$Dir>.|
00002c50  53 70 72 69 74 65 73 22  3a 54 25 3d a2 23 53 25  |Sprites":T%=.#S%|
00002c60  2b 31 36 3a d9 23 53 25  0d 12 3e 19 de 73 70 72  |+16:.#S%..>..spr|
00002c70  69 74 65 73 25 54 25 2c  73 70 6e 61 6d 65 25 31  |ites%T%,spname%1|
00002c80  32 0d 12 48 1d 21 73 70  72 69 74 65 73 25 3d 54  |2..H.!sprites%=T|
00002c90  25 3a 73 70 72 69 74 65  73 25 21 38 3d 30 0d 12  |%:sprites%!8=0..|
00002ca0  52 21 c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |R!.."OS_SpriteOp|
00002cb0  22 2c 26 31 30 39 2c 73  70 72 69 74 65 73 25 0d  |",&109,sprites%.|
00002cc0  12 5c 2b c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |.\+.."OS_SpriteO|
00002cd0  70 22 2c 26 31 30 41 2c  73 70 72 69 74 65 73 25  |p",&10A,sprites%|
00002ce0  2c 70 61 74 68 6e 61 6d  65 24 0d 12 66 05 e1 0d  |,pathname$..f...|
00002cf0  ff                                                |.|
00002cf1