Home » Archimedes archive » Archimedes World » AW-1994-05-Disc2.adf » Disk2May94 » !AWMay94/Goodies/Amaze/!aMaze/Program/!MazeMake/Wimp

!AWMay94/Goodies/Amaze/!aMaze/Program/!MazeMake/Wimp

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-1994-05-Disc2.adf » Disk2May94
Filename: !AWMay94/Goodies/Amaze/!aMaze/Program/!MazeMake/Wimp
Read OK:
File size: 55F0 bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM The Wimp Procedure Library of !MazeMake
   20REM|_________________________________________________________________________
   30REM|_________________________________________________________________________
   40REM|
   50REM|
   60REM|
   70REM|                -------------------------------          6/1/92
   80REM|                   WIMP PROCEDURE LIBRARY
   90REM|
  100REM|                     Index of Contents
  110REM|
  120REM|                -------------------------------
  130REM|
  140REM|                    1.EVALWindows
  150REM|
  160REM|                    2.EVALIcons
  170REM|
  180REM|                    3.EVALMenus
  190REM|
  200REM|                    4.EVALSprites
  210REM|
  220REM|                    5.EVALMiscellaneous
  230REM|
  240REM|                    6.EVALPolling
  250REM|
  260REM|                -------------------------------
  270REM|
  280REM|
  290REM|
  300REM|
  310REM|
  320REM|
  330REM|                -------------------------------
  340REM|                          1.EVALWindows
  350REM|                -------------------------------
  360REM|
  370REM|
  380REM|          ------------------------------------------------
  390REM|
  400REM|                      Procedures :
  410REM|
  420REM|             PROCWimp_WindowAlert(title$,message$)
  430REM|             PROCWimp_WindowAlertBox(title$,message$,button%)
  440REM|             FNWimp_WindowCancel(title$,message$)
  450REM|             PROCWimp_WindowErrorBox(title$,message$)
  460REM|             FNWimp_WindowTitle(window%)
  470REM|             FNWimp_WindowLoad(window$)
  480REM|             FNWimp_WindowLoadFrom(window$,template$)
  490REM|             PROCWimp_WindowBringToTop(window%)
  500REM|             PROCWimp_WindowForceDraw(window%)
  510REM|             PROCWimp_WindowOpen(window%)
  520REM|             PROCWimp_WindowInterface
  530REM|
  540REM|           ----------------------------------------------
  550REM|
  560REM|
  570REM|
  580DEF PROCWimp_WindowAlert(title$,message$)
  590PROCWimp_WindowAlertBox(title$,message$,0)
  600ENDPROC
  610:
  620DEF PROCWimp_WindowAlertBox(title$,message$,button%)
  630LOCAL response%
  640$(wimp%+4)=message$
  650CASE button% OF
  660 WHEN 2    : response%=1
  670 WHEN 1    : response%=15
  680 WHEN 3    : response%=(1<<5)+16
  690 WHEN 4    : response%=(1<<6)+16
  700OTHERWISE : response%=16
  710ENDCASE
  720SYS "Wimp_ReportError",wimp%,response%,title$ TO ,response%
  730ENDPROC
  740:
  750DEF FNWimp_WindowCancel(title$,message$)
  760$(wimp%+4)=message$
  770response%=23
  780SYS "Wimp_ReportError",wimp%,response%,title$ TO ,response%
  790=response%-2
  800:
  810DEF PROCWimp_WindowErrorBox(title$,message$)
  820PROCWimp_WindowAlertBox(title$,message$,2)
  830ENDPROC
  840:
  850DEF FNWimp_WindowTitle(window%)
  860wimp%!0=window%
  870SYS "Wimp_GetWindInfo",,wimp%
  880IF ((wimp%!60)AND&100)=0 ERROR 1,"Title isn't indirected"
  890=$(wimp%!76)
  900:
  910DEF FNWimp_WindowLoad(window$)
  920=FNWimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates")
  930:
  940DEF FNWimp_WindowLoadFrom(window$,template$)
  950LOCAL c%,i%,n%,j%,sp$,sp2$
  960SYS "Wimp_OpenTemplate",,template$
  970SYS "Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0 TO ,,icons%
  980CASE sprites% OF
  990 WHEN 1    : wimp%!64=sprites%
 1000 OTHERWISE : wimp%!64=FNEvent_Sprites(window%)
 1010ENDCASE
 1020SYS "Wimp_CreateWindow",,wimp% TO c%
 1030SYS "Wimp_CloseTemplate"
 1040SYS "Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8)
 1050CASE wimp%!40 OF
 1060 WHEN -1   :
 1070 OTHERWISE : i%=40
 1080 REPEAT
 1090   wimp%!4=wimp%!i% : wimp%!0=c%
 1100   SYS "Wimp_GetIconState",,wimp%
 1110   sp$=FNWimp_GetStringAtAddress(wimp%!28)
 1120   SYS "Wimp_DeleteIcon",,wimp%
 1130   CASE sprites% OF
 1140    WHEN 1    : wimp%!32=1
 1150    OTHERWISE :
 1160     SYS "OS_SpriteOp",&108,sprites% TO ,,,n%
 1170     j%=0
 1180     REPEAT : j%+=1
 1190      SYS "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
 1200      sp2$=FNWimp_GetStringAtAddress(pointer_block%)
 1210     UNTIL j%=n% OR sp$=sp2$
 1220     IF sp$=sp2$ THEN wimp%!32=sprites% ELSE wimp%!32=1
 1230   ENDCASE
 1240   wimp%!4=c%
 1250   SYS "Wimp_CreateIcon",,wimp%+4 TO handle%
 1260   i%+=4
 1270 UNTIL (wimp%!i%)=-1
 1280ENDCASE
 1290=c%
 1300:
 1310DEF PROCWimp_WindowBringToTop(window%)
 1320!wimp%=window%
 1330SYS "Wimp_GetWindowState",,wimp%
 1340wimp%!28=-1
 1350SYS "Wimp_OpenWindow",,wimp%
 1360ENDPROC
 1370:
 1380DEF PROCWimp_WindowClose(window%)
 1390!wimp%=window%
 1400SYS "Wimp_CloseWindow",,wimp%
 1410ENDPROC
 1420:
 1430DEF PROCWimp_WindowForceDraw(window%)
 1440CASE window% OF
 1450 WHEN -1   : SYS "Wimp_ForceRedraw",-1,0,0,2*1280,2*1024
 1460 OTHERWISE : SYS "Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0
 1470ENDCASE
 1480ENDPROC
 1490:
 1500DEF PROCWimp_WindowOpen(window%)
 1510!wimp%=window%
 1520SYS "Wimp_GetWindowState",,wimp%
 1530SYS "Wimp_OpenWindow",,wimp%
 1540ENDPROC
 1550:
 1560PROCWimp_WindowInterface
 1570SYS"Wimp_BorderWindow",,wimp%
 1580ENDPROC
 1590REM|
 1600REM|
 1610REM|
 1620REM|                  -------------------------
 1630REM|                          2.EVALIcons
 1640REM|                  -------------------------
 1650REM|
 1660REM|
 1670REM|             ------------------------------------------
 1680REM|
 1690REM|                      Procedures :
 1700REM|
 1710REM|              FNWimp_IconBar(Sprite$)
 1720REM|              PROCWimp_IconCaret(window%,icon%,chars%)
 1730REM|              FNWimp_IconText(window%,icon%)
 1740REM|              FNWimp_IconValidation(window%,icon%)
 1750REM|              PROCWimp_IconDisable(window%,icon%)
 1760REM|              PROCWimp_IconEnable(window%,icon%)
 1770REM|              FNWimp_IconPutSprite(window%,icon%,sprite$)
 1780REM|              PROCWimp_IconPutText(window%,icon%,text$)
 1790REM|              PROCWimp_IconInterfaceStart
 1800REM|              PROCWimp_IconInterfaceFinish
 1810REM|
 1820REM|             ------------------------------------------
 1830REM|
 1840:
 1850DEF FNWimp_IconBar(Sprite$)
 1860LOCAL icon%
 1870wimp%!0=-1
 1880wimp%!4=0     : wimp%!8=0
 1890wimp%!12=68 : wimp%!16=68
 1900wimp%!20=&3002
 1910$(wimp%+24)=Sprite$
 1920SYS "Wimp_CreateIcon",,wimp% TO icon%
 1930=icon%
 1940:
 1950DEF PROCWimp_IconCaret(window%,icon%,chars%)
 1960SYS "Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
 1970ENDPROC
 1980:
 1990DEF FNWimp_IconText(window%,icon%)
 2000wimp%!0=window% : wimp%!4=icon%
 2010SYS "Wimp_GetIconState",,wimp%
 2020IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
 2030=$(wimp%!28)
 2040:
 2050DEF FNWimp_IconValidation(window%,icon%)
 2060wimp%!0=window% : wimp%!4=icon%
 2070SYS "Wimp_GetIconState",,wimp%
 2080IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
 2090=$(wimp%!32)
 2100:
 2110DEF PROCWimp_IconDisable(window%,icon%)
 2120wimp%!0=window% : wimp%!4=icon%
 2130wimp%!8=1<<22   : wimp%!12=1<<22
 2140SYS "Wimp_SetIconState",,wimp%
 2150ENDPROC
 2160:
 2170DEF PROCWimp_IconEnable(window%,icon%)
 2180wimp%!0=window% : wimp%!4=icon%
 2190wimp%!8=0       : wimp%!12=1<<22
 2200SYS "Wimp_SetIconState",,wimp%
 2210ENDPROC
 2220:
 2230DEF FNWimp_IconPutSprite(window%,icon%,sprite$)
 2240wimp%!0=window%:wimp%!4=icon%
 2250SYS "Wimp_GetIconState",,wimp%
 2260SYS "Wimp_DeleteIcon",,wimp%
 2270wimp%!4=wimp%!8   : wimp%!8=wimp%!12  : wimp%!12=wimp%!16
 2280wimp%!16=wimp%!20 : wimp%!20=wimp%!24 : $(wimp%+24)=sprite$
 2290SYS "Wimp_CreateIcon",,wimp% TO icon%
 2300=icon%
 2310:
 2320DEF PROCWimp_IconPutText(window%,icon%,text$)
 2330wimp%!0=window% : wimp%!4=icon%
 2340SYS "Wimp_GetIconState",,wimp%
 2350IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
 2360$(wimp%!28)=text$
 2370wimp%!0=window% : wimp%!4=icon%
 2380wimp%!8=0 : wimp%!12=0
 2390SYS "Wimp_SetIconState",,wimp%
 2400ENDPROC
 2410:
 2420DEF PROCWimp_IconInterfaceStart
 2430SYS"Wimp_BorderIcon",,wimp%
 2440ENDPROC
 2450:
 2460DEF PROCWimp_IconInterfaceFinish
 2470wimp%!8=0
 2480SYS"Wimp_BorderIcon",,wimp%
 2490ENDPROC
 2500:
 2510REM|
 2520REM|
 2530REM|
 2540REM|                  -------------------------
 2550REM|                          3.EVALMenus
 2560REM|                  -------------------------
 2570REM|
 2580REM|
 2590REM|           ----------------------------------------------
 2600REM|
 2610REM|                      Procedures :
 2620REM|
 2630REM|
 2640REM|            PROCWimp_MenuAdjustOn(menu%)
 2650REM|            FNWimp_MenuChoice(level%)
 2660REM|            FNWimp_MenuCreate(menu$)
 2670REM|            FNWimp_MenuColours
 2680REM|            FNWimp_MenuCreateColours(title$)
 2690REM|            FNWimp_MenuNoOfEntries(menu$)
 2700REM|            PROCWimp_MenuBackGroundColour(menu%,item%,colour%)
 2710REM|            PROCWimp_MenuCentre(menu%,item%)
 2720REM|            PROCWimp_MenuClose
 2730REM|            PROCWimp_MenuDisable(menu%,item%)
 2740REM|            PROCWimp_MenuDottedLine(menu%,item%)
 2750REM|            PROCWimp_MenuEnable(menu%,item%)
 2760REM|            PROCWimp_MenuForegroundColour(menu%,item%,colour%)
 2770REM|            PROCWimp_MenuGlue(menu1%,item%,menu2%)
 2780REM|            PROCWimp_MenuItem(menu%,item%,item$)
 2790REM|            PROCWimp_MenuMessage(menu%,item%)
 2800REM|            PROCWimp_MenuPopUp(Menu%,x%,y%)
 2810REM|            PROCWimp_MenuPopUpBar(x%,y%)
 2820REM|            PROCWimp_MenuTick(menu%,item%)
 2830REM|            PROCWimp_MenuTitle(menu%,title$)
 2840REM|            PROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
 2850REM|
 2860REM|           ----------------------------------------------
 2870REM|
 2880:
 2890DEF PROCWimp_MenuAdjustOn(menu%)
 2900SYS "Wimp_GetPointerInfo",,pointer_block%
 2910IF ((pointer_block%!8)AND1)=1 THEN SYS "Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4
 2920ENDPROC
 2930:
 2940DEF FNWimp_MenuChoice(level%)
 2950=(wimp%!(4*level%))+1
 2960:
 2970DEF FNWimp_MenuCreate(menu$)
 2980IF menu$="Colours" THEN=FNWimp_MenuColours
 2990LOCAL menu%,index%,width%,length%,k%,s%
 3000DIM menu% 28+FNWimp_MenuNoOfEntries(menu$)*24
 3010menu%?12=7   : menu%?13=2  : menu%?14=7 :menu%?15=0
 3020menu%!16=140 : menu%!20=44 : menu%!24=0
 3030index%=menu%+28
 3040$menu%=LEFT$(menu$,INSTR(menu$,"\")-1)
 3050width%=LEN(LEFT$(menu$,INSTR(menu$,"\")-1))
 3060menu$+="\" : Menu_NoOfEntries%=0
 3070WHILE menu$<>""
 3080menu$=MID$(menu$,INSTR(menu$,"\")+1)
 3090CASE menu$ OF
 3100 WHEN ""
 3110 OTHERWISE :
 3120  !index%=0 : index%!4=-1 : index%!8=&7000021
 3130  length%=INSTR(menu$,"\")-1
 3140  k%=INSTR(LEFT$(menu$,length%),">")
 3150  CASE k% OF
 3160   WHEN 0
 3170   OTHERWISE
 3180    s%=EVAL(MID$(menu$,k%+1,length%-k%))
 3190    index%!4=s%
 3200    length%=k%-1
 3210  ENDCASE
 3220  $(index%+12)=LEFT$(menu$,length%)
 3230  IF length%>width% THEN width%=length%
 3240  index%+=24
 3250ENDCASE
 3260ENDWHILE
 3270menu%!16=16*(width%+1)
 3280index%!-24=index%!-24 OR &80 : =menu%
 3290:
 3300DEF FNWimp_MenuColours
 3310=FNWimp_MenuCreateColours(" ")
 3320:
 3330DEF FNWimp_MenuCreateColours(title$)
 3340LOCAL x$,men%,j%,i%
 3350x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
 3360men%=FNWimp_MenuCreate(x$)
 3370FOR i%=0 TO 15
 3380CASE TRUE OF
 3390WHEN i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7
 3400OTHERWISE : j%=0
 3410ENDCASE
 3420men%?(39+i%*24)=i%*16+j%
 3430PROCWimp_MenuCentre(men%,i%+1)
 3440NEXT
 3450=men%
 3460:
 3470DEF FNWimp_MenuNoOfEntries(menu$)
 3480LOCAL n% ,j% : n%=0 : j%=0
 3490REPEAT
 3500j%=INSTR(menu$,"\",j%+1)
 3510IF j%<>0 THEN n%+=1
 3520UNTIL j%=0
 3530=n%
 3540:
 3550DEF PROCWimp_MenuBackGroundColour(menu%,item%,colour%)
 3560LOCAL fore%,i%
 3570fore%=(menu%?(39+(item%-1)*24))MOD16
 3580i%=((menu%?(39+(item%-1)*24))DIV16)MOD16
 3590menu%?(39+(item%-1)*24)=fore%+16*colour%+i%
 3600ENDPROC
 3610:
 3620DEF PROCWimp_MenuCentre(menu%,item%)
 3630menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<3)
 3640ENDPROC
 3650:
 3660DEF PROCWimp_MenuClose
 3670SYS "Wimp_CreateMenu",-1
 3680ENDPROC
 3690:
 3700DEF PROCWimp_MenuDisable(menu%,item%)
 3710menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<22)
 3720ENDPROC
 3730:
 3740DEF PROCWimp_MenuDottedLine(menu%,item%)
 3750menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR2
 3760ENDPROC
 3770:
 3780DEF PROCWimp_MenuEnable(menu%,item%)
 3790PROCWimp_MenuDisable(menu%,item%)
 3800menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)EOR(1<<22)
 3810ENDPROC
 3820:
 3830DEF PROCWimp_MenuForegroundColour(menu%,item%,colour%)
 3840menu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))DIV16)
 3850ENDPROC
 3860:
 3870DEF PROCWimp_MenuGlue(menu1%,item%,menu2%)
 3880menu1%!(8+item%*24)=menu2%
 3890ENDPROC
 3900:
 3910DEF PROCWimp_MenuItem(menu%,item%,item$)
 3920$(menu%+(40+(item%-1)*24))=LEFT$(item$,12)+CHR$0
 3930ENDPROC
 3940:
 3950DEF PROCWimp_MenuMessage(menu%,item%)
 3960menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR(1<<3)
 3970ENDPROC
 3980:
 3990DEF PROCWimp_MenuPopUp(Menu%,x%,y%)
 4000menu%=Menu%
 4010SYS "Wimp_CreateMenu",,menu%,x%-64,y%+20
 4020ENDPROC
 4030:
 4040DEF PROCWimp_MenuPopUpBar(x%,y%)
 4050LOCAL n% : n%=0
 4060WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0
 4070n%+=1
 4080ENDWHILE
 4090SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
 4100menu%=Bar_Menu%
 4110ENDPROC
 4120:
 4130DEF PROCWimp_MenuTick(menu%,item%)
 4140menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR1
 4150ENDPROC
 4160:
 4170DEF PROCWimp_MenuTitle(menu%,title$)
 4180$menu%=LEFT$(title$,12)+CHR$0
 4190ENDPROC
 4200:
 4210DEF PROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
 4220menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR4
 4230menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR&100
 4240menu%!(40+(item%-1)*24)=buffer%
 4250menu%!(44+(item%-1)*24)=val%
 4260menu%!(48+(item%-1)*24)=BufferLength%
 4270ENDPROC
 4280:
 4290REM|
 4300REM|
 4310REM|
 4320REM|                  -------------------------
 4330REM|                          4.EVALSprites
 4340REM|                  -------------------------
 4350REM|
 4360REM|
 4370REM|                ------------------------------------
 4380REM|
 4390REM|                      Procedures :
 4400REM|
 4410REM|
 4420REM|                  PROCWimp_SpritesLoad
 4430REM|                  PROCWimp_SpritesPathLoad(pathname$
 4440REM|
 4450REM|
 4460REM|
 4470REM|                ------------------------------------
 4480REM|
 4490:
 4500DEF PROCWimp_SpritesLoad
 4510PROCWimp_SpritesPathLoad("<Obey$Dir>.Sprites")
 4520direct_sprites%=sprites%
 4530ENDPROC
 4540:
 4550DEF PROCWimp_SpritesPathLoad(pathname$)
 4560LOCALS%,T%
 4570S%=OPENIN"<Obey$Dir>.Sprites":T%=EXT#S%+16:CLOSE#S%
 4580DIMsprites%T%,spname%12
 4590!sprites%=T%:sprites%!8=0
 4600SYS"OS_SpriteOp",&109,sprites%
 4610SYS"OS_SpriteOp",&10A,sprites%,pathname$
 4620ENDPROC
 4630:
 4640REM|
 4650REM|
 4660REM|
 4670REM|                  -------------------------
 4680REM|                          5.EVALFiles
 4690REM|                  -------------------------
 4700REM|
 4710REM|
 4720REM|                -------------------------------
 4730REM|
 4740REM|                      Procedures :
 4750REM|
 4760REM|
 4770REM|                  FNWimp_FileType(type%)
 4780REM|                  FNWimp_GetFilePathName
 4790REM|                  FNWimp_FileLoad(pathname$)
 4800REM|                  FNWimp_GetStringAtAddress(array%)
 4810REM|                  FNWimp_GetFileFromPathname(f$)
 4820REM|                  PROCWimp_SendToEdit(file$)
 4830REM|
 4840REM|                -------------------------------
 4850REM|
 4860REM|
 4870REM|
 4880:
 4890DEF FNWimp_FileType(type%)
 4900CASEtype%OF
 4910WHEN&FFF:="Text"
 4920WHEN&FFD:="Data"
 4930WHEN&FFB:="Basic"
 4940WHEN&FF9:="Sprite"
 4950WHEN&FED:="Palette"
 4960WHEN&FEC:="Template"
 4970WHEN&AFF:="Draw"
 4980WHEN&1000:="Folder"
 4990WHEN&2000:="Application"
 5000OTHERWISE=STR$~(type%)
 5010ENDCASE
 5020:
 5030DEF FNWimp_GetFilePathName
 5040=FNWimp_GetStringAtAddress(wimp%+44)
 5050:
 5060DEF FNWimp_FileLoad(pathname$)
 5070LOCALS%,T%,file%
 5080S%=OPENINpathname$
 5090T%=EXT#S%+16
 5100CLOSE#S%
 5110DIMfile%T%
 5120OSCLI("LOAD"+pathname$+""+STR$~file%)
 5130=file%
 5140;
 5150DEF FNWimp_GetStringAtAddress(array%)
 5160LOCALs$:s$=""
 5170WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE:
 5180=s$
 5190:
 5200DEF FNWimp_GetFileFromPathname(f$)
 5210CASE INSTR(f$,".") OF
 5220 WHEN 0    :=f$
 5230 OTHERWISE :=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
 5240ENDCASE
 5250:
 5260DEF PROCWimp_SendToEdit(file$)
 5270LOCAL n%
 5280wimp%!4=&6CC01C0C
 5290wimp%!16=5
 5300wimp%!36=0
 5310wimp%!40=&FFF
 5320$(wimp%+44)=file$+CHR$0
 5330n%=LENfile$+45
 5340IF n%MOD4 THEN !wimp%=4+(n%>>2)<<2 ELSE !wimp%=n%
 5350SYS "Wimp_SendMessage",17,wimp%,0
 5360ENDPROC
 5370:
 5380REM|
 5390REM|
 5400REM|
 5410REM|                  -------------------------
 5420REM|                      5.EVALMiscellaneous
 5430REM|                  -------------------------
 5440REM|
 5450REM|
 5460REM|                -------------------------------
 5470REM|
 5480REM|                      Procedures :
 5490REM|
 5500REM|
 5510REM|                  PROCWimp_Start(TaskName$)
 5520REM|                  FNWimp_BASICParameters
 5530REM|                  PROCWimp_SetEventVariables
 5540REM|                  PROCWimp_Error(task%,TaskName$)
 5550REM|                  PROCWimp_CloseDown
 5560REM|                  PROCWimp_Quit
 5570REM|                  FNWimp_ReadVariable(Variable$)
 5580REM|
 5590REM|
 5600REM|                -------------------------------
 5610REM|
 5620:
 5630DEF PROCWimp_Start(TaskName$,wimp_memory%,icon%)
 5640DIM wimp% wimp_memory%,icons% icon%
 5650IF wimp_memory%<256 THEN wimp_memory%=256
 5660icon_memory%=icons%+icon%
 5670task$=TaskName$
 5680indirect_sprites%=1 : direct_sprites%=1
 5690PROCWimp_SetEventVariables
 5700ON ERROR PROCWimp_Error:END
 5710SYS"Wimp_Initialise",200,&4B534154,TaskName$ TO version%,task%
 5720ENDPROC
 5730:
 5740DEF FNWimp_BASICParameters
 5750 LOCAL com$,param$,I%
 5760 SYS "OS_GetEnv" TO com$
 5770 params$=""
 5780 I%=INSTR(com$," -quit ")
 5790 IF I% THEN params$=MID$(com$,INSTR(com$," ",I%+LEN" -quit ")+1)
 5800=params$
 5810:
 5820DEF PROCWimp_SetEventVariables
 5830DIM pointer_block% 20
 5840interface%=FALSE
 5850null%=1  :draw%=2 :  pointer_leaving%=1<<4
 5860pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7
 5870key%=1<<8:menu%=1<<9:scroll%=1<<10
 5880lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18)
 5890recorder%=1<<18:acknowledge%=1<<19:window%=0
 5900sprites%=1:version%=0:task%=0
 5910Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0
 5920x_origin%=0:y_origin%=0:SaveWindow%=-3
 5930message_quit%=0:message_save%=2:message_load%=3
 5940mouse_button%=2:save_event%=0
 5950top_line%=0 : bottom_line%=0
 5960ENDPROC
 5970:
 5980DEF PROCWimp_Error
 5990LOCALX$,x%
 6000ON ERROR OFF
 6010x%=ERL
 6020X$=REPORT$+"atline"+STR$(x%DIV10)
 6030DIMErrorMsg%36
 6040ErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x%
 6050$(ErrorMsg%+24)="!RunImage"
 6060SYS"Wimp_SendMessage",17,ErrorMsg%
 6070PROCWimp_WindowAlert(task$,X$)
 6080PROCWimp_CloseDown
 6090ENDPROC
 6100:
 6110DEF PROCWimp_CloseDown
 6120SYS"Wimp_CloseDown",task%,"TASK"
 6130ENDPROC
 6140:
 6150DEF PROCWimp_Quit
 6160finished%=TRUE
 6170ENDPROC
 6180:
 6190DEF FNWimp_ReadVariable(Variable$)
 6200LOCALlen%,result%,variable%
 6210$wimp%=Variable$
 6220SYS"OS_ReadVarVal",wimp%,wimp%+255,255,,3TO,,len%
 6230wimp%?(len%+255)=13
 6240=$(wimp%+255)
 6250:
 6260:
 6270REM|
 6280REM|
 6290REM|
 6300REM|
 6310REM|                   ----------------
 6320REM|                     Wimp Polling
 6330REM|                   ----------------
 6340REM|
 6350REM|
 6360:
 6370DEF PROCWimp_WaitForEvent
 6380LOCAL mask%,event%
 6390finished%=FALSE
 6400mask%=%111000011001
 6410REPEAT
 6420 SYS"Wimp_Poll",mask%,wimp% TO event%
 6430 CASE event% OF
 6440  WHEN0 :
 6450  WHEN1 : PROCWimp_PollDrawWindow
 6460  WHEN2 : SYS "Wimp_OpenWindow",,wimp%
 6470  WHEN3 : PROCWimp_PollCloseWindow
 6480  WHEN4 :
 6490  WHEN5 :
 6500  WHEN6 : PROCWimp_PollMouseClick
 6510  WHEN7 : PROCWimp_PollSaveMessage
 6520  WHEN8 : PROCWimp_PollKeyPress
 6530  WHEN9 : PROCEvent_MenuChoice(menu%)
 6540  WHEN10:
 6550  WHEN11:
 6560  WHEN12:
 6570  WHEN17,18: PROCWimp_PollMessages
 6580  WHEN19:
 6590 ENDCASE
 6600UNTIL finished%
 6610ENDPROC
 6620:
 6630DEF PROCWimp_PollDrawWindow
 6640LOCAL more%
 6650SYS"Wimp_RedrawWindow",,wimp%TOmore%
 6660window%=wimp%!0
 6670x_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24
 6680WHILEmore%
 6690 IF interface% THEN SYS"Wimp_BorderWindow",,wimp%
 6700 PROCEvent_Draw(window%,x_origin%,y_origin%)
 6710 SYS"Wimp_GetRectangle",,wimp%TOmore%
 6720ENDWHILE
 6730ENDPROC
 6740:
 6750DEF PROCWimp_PollCloseWindow
 6760  SYS "Wimp_GetPointerInfo",,wimp%
 6770  window%=wimp%!12 : buttons%=wimp%!8
 6780 PROCEvent_WindowClose(window%,buttons%)
 6790 !wimp%=window% : SYS "Wimp_CloseWindow",,wimp%
 6800ENDPROC
 6810:
 6820DEF PROCWimp_PollMouseClick
 6830 button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
 6840 CASE button% OF
 6850   WHEN2    : PROCWimp_PollMenuPopUp
 6860   OTHERWISE: CASE FNEvent_Save(window%) OF
 6870               WHEN TRUE : PROCWimp_PollMouseSave
 6880               WHEN FALSE: PROCWimp_PollEventMouseClick
 6890              ENDCASE
 6900 ENDCASE
 6910ENDPROC
 6920:
 6930DEF PROCWimp_PollMenuPopUp
 6940menu%=FNEvent_Menu(window%)
 6950  CASE menu%  OF
 6960   WHEN FALSE:
 6970   OTHERWISE :
 6980     CASE window% OF
 6990      WHEN -2   : n%=0
 7000        WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0
 7010         n%+=1
 7020        ENDWHILE
 7030        SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
 7040      OTHERWISE : SYS"Wimp_CreateMenu",,menu%,x%-64,y%+20
 7050     ENDCASE
 7060  ENDCASE
 7070ENDPROC
 7080:
 7090DEF PROCWimp_PollMouseSave
 7100 CASE icon% OF
 7110  WHEN 0 : IF button% AND &50 THEN PROCWimp_PollDragBox(window%)
 7120  WHEN 2 : IF button% AND 5 THEN  PROCWimp_PollSaveFile(window%)
 7130 ENDCASE
 7140ENDPROC
 7150:
 7160DEF PROCWimp_PollEventMouseClick
 7170 IF interface% THEN SYS"Wimp_BorderIcon",,wimp%
 7180 PROCEvent_MouseClick(window%,icon%,button%,x%,y%)
 7190 CASE  interface% OF
 7200  WHEN TRUE :
 7210   wimp%!0=x%:wimp%!4=y% : wimp%!8=0
 7220   wimp%!12=window% : wimp%!16=icon%
 7230   SYS"Wimp_BorderIcon",,wimp%
 7240 ENDCASE
 7250ENDPROC
 7260:
 7270DEF PROCWimp_PollSaveFile(window%)
 7280LOCALfile$
 7290 wimp%!0=window% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp%
 7300 file$=$(wimp%!28)
 7310 CASE INSTR(file$,".") OF
 7320  WHEN 0   :
 7321file$="<Amaze$Dir>.LevelData."+file$
 7322 PROCEvent_SaveFile(file$,window%)
 7350  OTHERWISE:
 7360   PROCEvent_SaveFile(file$,window%)
 7370 ENDCASE
 7380 SYS"Wimp_CreateMenu",-1
 7390ENDPROC
 7400:
 7410DEF PROCWimp_PollDragBox(window%)
 7420LOCALx%,y%
 7430 save%=window%
 7440 !wimp%=window%
 7450 SYS"Wimp_GetWindowState",,wimp%
 7460 x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24
 7470 wimp%!4=0
 7480 SYS"Wimp_GetIconState",,wimp%
 7490 !wimp%=window%
 7500 wimp%!4=5
 7510 wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
 7520 wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
 7530 wimp%!24=0:wimp%!28=0
 7540 wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
 7550 SYS"Wimp_DragBox",,wimp%
 7560ENDPROC
 7570:
 7580DEF PROCWimp_PollKeyPress
 7590  window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
 7600  CASE FNEvent_Save(window%) OF
 7610   WHEN TRUE : PROCWimp_PollSaveFile(window%)
 7620   WHEN FALSE: PROCEvent_KeyPress(window%,icon%,key%)
 7630  ENDCASE
 7640ENDPROC
 7650:
 7660DEF PROCWimp_PollSaveMessage
 7670
 7680IF dragging%>0 THEN
 7690DIM myblock% 255
 7700SYS"Wimp_GetPointerInfo",,myblock%
 7710IF myblock%!12=Smll_Window% PROCswitch(myblock%!16) ELSE dragging%=FALSE
 7720ENDPROC
 7730ENDIF
 7740
 7750LOCALfile$,window%,icon%,x%,y%
 7760 SYS"Wimp_GetPointerInfo",,wimp%
 7770IF wimp%!12=Smll_Window% ENDPROC
 7780 window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
 7790 wimp%!0=save% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp%
 7800 file$=$(wimp%!28)
 7810 file$=FNWimp_GetFileFromPathname(file$)
 7820 wimp%!20=window%
 7830 wimp%!24=icon%
 7840 wimp%!28=x%:wimp%!32=y%
 7850 wimp%!36=length%
 7860 wimp%!0=64
 7870 wimp%!12=0
 7880 wimp%!16=1
 7890 wimp%!40=&FFF
 7900 $(wimp%+44)=file$
 7910 SYS"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24
 7920ENDPROC
 7930:
 7940DEF PROCWimp_PollMessages
 7950LOCAL file$
 7960file$=FNWimp_GetStringAtAddress(wimp%+44)
 7970    CASE wimp%!16 OF
 7980     WHEN 0 : finished%=TRUE
 7990     WHEN 1 :
 8000     WHEN 2 :
 8010         wimp%!0=save% : wimp%!4=1 : SYS "Wimp_GetIconState",,wimp%
 8020      $(wimp%!28)=file$
 8030      wimp%!0=save% : wimp%!4=1 : wimp%!8=0 : wimp%!12=0
 8040      SYS "Wimp_SetIconState",,wimp%
 8050      SYS "Wimp_SetCaretPosition",save%,1,,,-1,LENfile$
 8060      PROCEvent_SaveFile(file$,save%)
 8070
 8080     WHEN 3
 8090      type$=FNWimp_FileType(wimp%!40) : PROCEvent_LoadFile(file$,type$)
 8100    WHEN 5
 8110    IF wimp%!40=&666 THEN
 8120wimp%!12=wimp%!8
 8130SYS "Wimp_SendMessage",19,wimp%
 8140PROCEvent_LoadFile(file$,"Data")
 8150ENDIF
 8160WHEN 8
 8170quitsend%=wimp%!4
 8180IF Modified%=TRUE THEN
 8190wimp%!12=wimp%!8
 8200SYS "Wimp_SendMessage",19,wimp%
 8210IF FN_OKtoQuit THEN
 8220SYS"Wimp_GetCaretPosition",,wimp%
 8230wimp%!24=&1fc
 8240SYS"Wimp_SendMessage",8,wimp%,quitsend%
 8250ENDIF
 8260Modified%=FALSE
 8270ENDIF
 8280ENDCASE
 8290ENDPROC
 8300:
 8310DEF FNWimp_GetStringAtAddress(array%)
 8320LOCALs$:s$=""
 8330WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE:
 8340=s$
 8350:
 8360DEF FNWimp_GetFileFromPathname(f$)
 8370CASE INSTR(f$,".") OF
 8380 WHEN 0    :=f$
 8390 OTHERWISE :=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
 8400ENDCASE
 8410:
 8420DEF FNWimp_FileType(type%)
 8430CASEtype%OF
 8440WHEN&FFF:="Text"
 8450WHEN&FFD:="Data"
 8460WHEN&FFB:="Basic"
 8470WHEN&FF9:="Sprite"
 8480WHEN&FED:="Palette"
 8490WHEN&FEC:="Template"
 8500WHEN&AFF:="Draw"
 8510WHEN&1000:="Folder"
 8520WHEN&2000:="Application"
 8530OTHERWISE=STR$~(type%)
 8540ENDCASE
 8550:
 8560

. � The Wimp Procedure Library of !MazeMake
O�|_________________________________________________________________________
O�|_________________________________________________________________________
(�|
2�|
<�|
FE�|                -------------------------------          6/1/92
P/�|                   WIMP PROCEDURE LIBRARY
Z�|
d,�|                     Index of Contents
n�|
x5�|                -------------------------------
��|
�$�|                    1.�Windows
��|
�"�|                    2.�Icons
��|
�"�|                    3.�Menus
��|
�$�|                    4.�Sprites
��|
�*�|                    5.�Miscellaneous
��|
�$�|                    6.�Polling
��|
5�|                -------------------------------
�|
�|
"�|
,�|
6�|
@�|
J5�|                -------------------------------
T*�|                          1.�Windows
^5�|                -------------------------------
h�|
r�|
|@�|          ------------------------------------------------
��|
�(�|                      Procedures :
��|
�8�|             PROCWimp_WindowAlert(title$,message$)
�C�|             PROCWimp_WindowAlertBox(title$,message$,button%)
�7�|             FNWimp_WindowCancel(title$,message$)
�;�|             PROCWimp_WindowErrorBox(title$,message$)
�.�|             FNWimp_WindowTitle(window%)
�-�|             FNWimp_WindowLoad(window$)
�;�|             FNWimp_WindowLoadFrom(window$,template$)
�5�|             PROCWimp_WindowBringToTop(window%)
�4�|             PROCWimp_WindowForceDraw(window%)
�/�|             PROCWimp_WindowOpen(window%)
+�|             PROCWimp_WindowInterface
�|
?�|           ----------------------------------------------
&�|
0�|
:�|
D(� �Wimp_WindowAlert(title$,message$)
N+�Wimp_WindowAlertBox(title$,message$,0)
X�
b:
l3� �Wimp_WindowAlertBox(title$,message$,button%)
v� response%
�$(wimp%+4)=message$
�Ȏ button% �
� � 2    : response%=1
� � 1    : response%=15
�! � 3    : response%=(1<<5)+16
�! � 4    : response%=(1<<6)+16
� : response%=16
��
�=ș "Wimp_ReportError",wimp%,response%,title$ � ,response%
��
�:
�)� �Wimp_WindowCancel(title$,message$)
�$(wimp%+4)=message$
response%=23
=ș "Wimp_ReportError",wimp%,response%,title$ � ,response%
=response%-2
 :
*+� �Wimp_WindowErrorBox(title$,message$)
4+�Wimp_WindowAlertBox(title$,message$,2)
>�
H:
R � �Wimp_WindowTitle(window%)
\wimp%!0=window%
f ș "Wimp_GetWindInfo",,wimp%
p6� ((wimp%!60)�&100)=0 � 1,"Title isn't indirected"
z=$(wimp%!76)
�:
�� �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%)
��
�&ș "Wimp_CreateWindow",,wimp% � c%
ș "Wimp_CloseTemplate"
7ș "Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8)
Ȏ wimp%!40 �
$
 � -1   :
.  : i%=40
8 �
B$   wimp%!4=wimp%!i% : wimp%!0=c%
L$   ș "Wimp_GetIconState",,wimp%
V-   sp$=�Wimp_GetStringAtAddress(wimp%!28)
`"   ș "Wimp_DeleteIcon",,wimp%
j   Ȏ sprites% �
t    � 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 � handle%
�   i%+=4
� � (wimp%!i%)=-1
�

=c%
:
%� �Wimp_WindowBringToTop(window%)
(!wimp%=window%
2#ș "Wimp_GetWindowState",,wimp%
<wimp%!28=-1
Fș "Wimp_OpenWindow",,wimp%
P�
Z:
d � �Wimp_WindowClose(window%)
n!wimp%=window%
x ș "Wimp_CloseWindow",,wimp%
��
�:
�$� �Wimp_WindowForceDraw(window%)
�Ȏ window% �
�8 � -1   : ș "Wimp_ForceRedraw",-1,0,0,2*1280,2*1024
�9  : ș "Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0
��
��
�:
�� �Wimp_WindowOpen(window%)
�!wimp%=window%
�#ș "Wimp_GetWindowState",,wimp%
�ș "Wimp_OpenWindow",,wimp%
�
:
�Wimp_WindowInterface
" ș"Wimp_BorderWindow",,wimp%
,�
6�|
@�|
J�|
T1�|                  -------------------------
^(�|                          2.�Icons
h1�|                  -------------------------
r�|
|�|
�=�|             ------------------------------------------
��|
�(�|                      Procedures :
��|
�+�|              FNWimp_IconBar(Sprite$)
�<�|              PROCWimp_IconCaret(window%,icon%,chars%)
�2�|              FNWimp_IconText(window%,icon%)
�8�|              FNWimp_IconValidation(window%,icon%)
�7�|              PROCWimp_IconDisable(window%,icon%)
�6�|              PROCWimp_IconEnable(window%,icon%)
�?�|              FNWimp_IconPutSprite(window%,icon%,sprite$)
�=�|              PROCWimp_IconPutText(window%,icon%,text$)
�/�|              PROCWimp_IconInterfaceStart
0�|              PROCWimp_IconInterfaceFinish
�|
=�|             ------------------------------------------
&�|
0:
:� �Wimp_IconBar(Sprite$)
D� icon%
Nwimp%!0=-1
Xwimp%!4=0     : wimp%!8=0
bwimp%!12=68 : wimp%!16=68
lwimp%!20=&3002
v$(wimp%+24)=Sprite$
�'ș "Wimp_CreateIcon",,wimp% � icon%
�
=icon%
�:
�+� �Wimp_IconCaret(window%,icon%,chars%)
�8ș "Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
��
�:
�#� �Wimp_IconText(window%,icon%)
�#wimp%!0=window% : wimp%!4=icon%
�!ș "Wimp_GetIconState",,wimp%
�7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
�=$(wimp%!28)
�:
)� �Wimp_IconValidation(window%,icon%)
#wimp%!0=window% : wimp%!4=icon%
!ș "Wimp_GetIconState",,wimp%
 7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
*=$(wimp%!32)
4:
>&� �Wimp_IconDisable(window%,icon%)
H#wimp%!0=window% : wimp%!4=icon%
R$wimp%!8=1<<22   : wimp%!12=1<<22
\!ș "Wimp_SetIconState",,wimp%
f�
p:
z%� �Wimp_IconEnable(window%,icon%)
�#wimp%!0=window% : wimp%!4=icon%
�$wimp%!8=0       : wimp%!12=1<<22
�!ș "Wimp_SetIconState",,wimp%
��
�:
�0� �Wimp_IconPutSprite(window%,icon%,sprite$)
�!wimp%!0=window%:wimp%!4=icon%
�!ș "Wimp_GetIconState",,wimp%
�ș "Wimp_DeleteIcon",,wimp%
�=wimp%!4=wimp%!8   : wimp%!8=wimp%!12  : wimp%!12=wimp%!16
�?wimp%!16=wimp%!20 : wimp%!20=wimp%!24 : $(wimp%+24)=sprite$
�'ș "Wimp_CreateIcon",,wimp% � icon%
�
=icon%
	:
	,� �Wimp_IconPutText(window%,icon%,text$)
	#wimp%!0=window% : wimp%!4=icon%
	$!ș "Wimp_GetIconState",,wimp%
	.7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
	8$(wimp%!28)=text$
	B#wimp%!0=window% : wimp%!4=icon%
	Lwimp%!8=0 : wimp%!12=0
	V!ș "Wimp_SetIconState",,wimp%
	`�
	j:
	t� �Wimp_IconInterfaceStart
	~ș"Wimp_BorderIcon",,wimp%
	��
	�:
	�� �Wimp_IconInterfaceFinish
	�
wimp%!8=0
	�ș"Wimp_BorderIcon",,wimp%
	��
	�:
	��|
	��|
	��|
	�1�|                  -------------------------
	�(�|                          3.�Menus
1�|                  -------------------------

�|
�|
?�|           ----------------------------------------------
(�|
2(�|                      Procedures :
<�|
F�|
P.�|            PROCWimp_MenuAdjustOn(menu%)
Z+�|            FNWimp_MenuChoice(level%)
d*�|            FNWimp_MenuCreate(menu$)
n$�|            FNWimp_MenuColours
x2�|            FNWimp_MenuCreateColours(title$)
�/�|            FNWimp_MenuNoOfEntries(menu$)
�D�|            PROCWimp_MenuBackGroundColour(menu%,item%,colour%)
�2�|            PROCWimp_MenuCentre(menu%,item%)
�$�|            PROCWimp_MenuClose
�3�|            PROCWimp_MenuDisable(menu%,item%)
�6�|            PROCWimp_MenuDottedLine(menu%,item%)
�2�|            PROCWimp_MenuEnable(menu%,item%)
�D�|            PROCWimp_MenuForegroundColour(menu%,item%,colour%)
�8�|            PROCWimp_MenuGlue(menu1%,item%,menu2%)
�6�|            PROCWimp_MenuItem(menu%,item%,item$)
�3�|            PROCWimp_MenuMessage(menu%,item%)
�1�|            PROCWimp_MenuPopUp(Menu%,x%,y%)
�.�|            PROCWimp_MenuPopUpBar(x%,y%)
0�|            PROCWimp_MenuTick(menu%,item%)
2�|            PROCWimp_MenuTitle(menu%,title$)
L�|            PROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
"�|
,?�|           ----------------------------------------------
6�|
@:
J� �Wimp_MenuAdjustOn(menu%)
T,ș "Wimp_GetPointerInfo",,pointer_block%
^^� ((pointer_block%!8)�1)=1 � ș "Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4
h�
r:
|� �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
�index%=menu%+28
� $menu%=�menu$,�menu$,"\")-1)
�#width%=�(�menu$,�menu$,"\")-1))
�$menu$+="\" : Menu_NoOfEntries%=0
�ȕ menu$<>""
menu$=�menu$,�menu$,"\")+1)
Ȏ menu$ �
	 � ""
&  :
01  !index%=0 : index%!4=-1 : index%!8=&7000021
:  length%=�menu$,"\")-1
D  k%=��menu$,length%),">")
N
  Ȏ k% �
X
   � 0
b   
l%    s%=�(�menu$,k%+1,length%-k%))
v    index%!4=s%
�    length%=k%-1
�  �
�"  $(index%+12)=�menu$,length%)
�'  � length%>width% � width%=length%
�  index%+=24
��
��
�menu%!16=16*(width%+1)
�(index%!-24=index%!-24 � &80 : =menu%
�:
�� �Wimp_MenuColours
�!=�Wimp_MenuCreateColours(" ")
�:

%� �Wimp_MenuCreateColours(title$)

� x$,men%,j%,i%

6x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"

 men%=�Wimp_MenuCreate(x$)

*� i%=0 � 15

4
Ȏ � �

>(� i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7

H : j%=0

R�

\men%?(39+i%*24)=i%*16+j%

f�Wimp_MenuCentre(men%,i%+1)

p�

z	=men%

�:

�"� �Wimp_MenuNoOfEntries(menu$)

�� n% ,j% : n%=0 : j%=0

��

�j%=�menu$,"\",j%+1)

�� j%<>0 � n%+=1

�
� j%=0

�=n%

�:

�5� �Wimp_MenuBackGroundColour(menu%,item%,colour%)

�� fore%,i%

�&fore%=(menu%?(39+(item%-1)*24))�16

�(i%=((menu%?(39+(item%-1)*24))�16)�16
/menu%?(39+(item%-1)*24)=fore%+16*colour%+i%
�
:
$#� �Wimp_MenuCentre(menu%,item%)
.:menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<3)
8�
B:
L� �Wimp_MenuClose
Vș "Wimp_CreateMenu",-1
`�
j:
t$� �Wimp_MenuDisable(menu%,item%)
~;menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22)
��
�:
�'� �Wimp_MenuDottedLine(menu%,item%)
�7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�2
��
�:
�#� �Wimp_MenuEnable(menu%,item%)
�"�Wimp_MenuDisable(menu%,item%)
�;menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22)
��
�:
�5� �Wimp_MenuForegroundColour(menu%,item%,colour%)
Emenu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))�16)

�
:
)� �Wimp_MenuGlue(menu1%,item%,menu2%)
(menu1%!(8+item%*24)=menu2%
2�
<:
F'� �Wimp_MenuItem(menu%,item%,item$)
P,$(menu%+(40+(item%-1)*24))=�item$,12)+�0
Z�
d:
n$� �Wimp_MenuMessage(menu%,item%)
x<menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�(1<<3)
��
�:
�"� �Wimp_MenuPopUp(Menu%,x%,y%)
�menu%=Menu%
�+ș "Wimp_CreateMenu",,menu%,x%-64,y%+20
��
�:
�� �Wimp_MenuPopUpBar(x%,y%)
�� n% : n%=0
�+ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0
�	n%+=1
��
�2ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
menu%=Bar_Menu%
�
:
"!� �Wimp_MenuTick(menu%,item%)
,7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�1
6�
@:
J#� �Wimp_MenuTitle(menu%,title$)
T$menu%=�title$,12)+�0
^�
h:
r=� �Wimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
|7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�4
�8menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�&100
�#menu%!(40+(item%-1)*24)=buffer%
� menu%!(44+(item%-1)*24)=val%
�)menu%!(48+(item%-1)*24)=BufferLength%
��
�:
��|
��|
��|
�1�|                  -------------------------
�*�|                          4.�Sprites
�1�|                  -------------------------
��|
�|
:�|                ------------------------------------
�|
&(�|                      Procedures :
0�|
:�|
D,�|                  PROCWimp_SpritesLoad
N:�|                  PROCWimp_SpritesPathLoad(pathname$
X�|
b�|
l�|
v:�|                ------------------------------------
��|
�:
�� �Wimp_SpritesLoad
�/�Wimp_SpritesPathLoad("<Obey$Dir>.Sprites")
�direct_sprites%=sprites%
��
�:
�&� �Wimp_SpritesPathLoad(pathname$)
�
�S%,T%
�,S%=�"<Obey$Dir>.Sprites":T%=�#S%+16:�#S%
��sprites%T%,spname%12
�!sprites%=T%:sprites%!8=0
�!ș"OS_SpriteOp",&109,sprites%
+ș"OS_SpriteOp",&10A,sprites%,pathname$
�
:
 �|
*�|
4�|
>1�|                  -------------------------
H(�|                          5.�Files
R1�|                  -------------------------
\�|
f�|
p5�|                -------------------------------
z�|
�(�|                      Procedures :
��|
��|
�.�|                  FNWimp_FileType(type%)
�.�|                  FNWimp_GetFilePathName
�2�|                  FNWimp_FileLoad(pathname$)
�9�|                  FNWimp_GetStringAtAddress(array%)
�6�|                  FNWimp_GetFileFromPathname(f$)
�2�|                  PROCWimp_SendToEdit(file$)
��|
�5�|                -------------------------------
��|
��|
�|
:
� �Wimp_FileType(type%)
$Ȏtype%�
.�&FFF:="Text"
8�&FFD:="Data"
B�&FFB:="Basic"
L�&FF9:="Sprite"
V�&FED:="Palette"
`�&FEC:="Template"
j�&AFF:="Draw"
t�&1000:="Folder"
~�&2000:="Application"
�=�~(type%)
��
�:
�� �Wimp_GetFilePathName
�'=�Wimp_GetStringAtAddress(wimp%+44)
�:
�� �Wimp_FileLoad(pathname$)
��S%,T%,file%
�S%=�pathname$
�T%=�#S%+16
��#S%
��file%T%
"�("LOAD"+pathname$+""+�~file%)


=file%
;
&� �Wimp_GetStringAtAddress(array%)
(
�s$:s$=""
2<ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�:
<=s$
F:
P#� �Wimp_GetFileFromPathname(f$)
ZȎ �f$,".") �
d � 0    :=f$
n7  :=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,".")))
x�
�:
�� �Wimp_SendToEdit(file$)
�� n%
�wimp%!4=&6CC01C0C
�wimp%!16=5
�wimp%!36=0
�wimp%!40=&FFF
�$(wimp%+44)=file$+�0
�n%=�file$+45
�,� n%�4 � !wimp%=4+(n%>>2)<<2 � !wimp%=n%
�$ș "Wimp_SendMessage",17,wimp%,0
��
�:
�|
�|
�|
"1�|                  -------------------------
,,�|                      5.�Miscellaneous
61�|                  -------------------------
@�|
J�|
T5�|                -------------------------------
^�|
h(�|                      Procedures :
r�|
|�|
�1�|                  PROCWimp_Start(TaskName$)
�.�|                  FNWimp_BASICParameters
�2�|                  PROCWimp_SetEventVariables
�7�|                  PROCWimp_Error(task%,TaskName$)
�*�|                  PROCWimp_CloseDown
�%�|                  PROCWimp_Quit
�6�|                  FNWimp_ReadVariable(Variable$)
��|
��|
�5�|                -------------------------------
��|
�:
�/� �Wimp_Start(TaskName$,wimp_memory%,icon%)
%� wimp% wimp_memory%,icons% icon%
)� wimp_memory%<256 � wimp_memory%=256
icon_memory%=icons%+icon%
&task$=TaskName$
0+indirect_sprites%=1 : direct_sprites%=1
:�Wimp_SetEventVariables
D� � �Wimp_Error:�
N@ș"Wimp_Initialise",200,&4B534154,TaskName$ � version%,task%
X�
b:
l� �Wimp_BASICParameters
v � com$,param$,I%
� ș "OS_GetEnv" � com$
� params$=""
� I%=�com$," -quit ")
�5 � I% � params$=�com$,�com$," ",I%+�" -quit ")+1)
�=params$
�:
�� �Wimp_SetEventVariables
�� pointer_block% 20
�interface%=�
�.null%=1  :draw%=2 :  pointer_leaving%=1<<4
�1pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7
�&key%=1<<8:menu%=1<<9:scroll%=1<<10
�@lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18)
0recorder%=1<<18:acknowledge%=1<<19:window%=0
!sprites%=1:version%=0:task%=0
*Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0
 *x_origin%=0:y_origin%=0:SaveWindow%=-3
*3message_quit%=0:message_save%=2:message_load%=3
4!mouse_button%=2:save_event%=0
> top_line%=0 : bottom_line%=0
H�
R:
\� �Wimp_Error
f
�X$,x%
p	� � �
zx%=�
�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%
��Wimp_WindowAlert(task$,X$)
��Wimp_CloseDown
��
�:
�� �Wimp_CloseDown
�#ș"Wimp_CloseDown",task%,"TASK"
��
�:
� �Wimp_Quit
finished%=�
�
$:
.#� �Wimp_ReadVariable(Variable$)
8�len%,result%,variable%
B$wimp%=Variable$
L3ș"OS_ReadVarVal",wimp%,wimp%+255,255,,3�,,len%
Vwimp%?(len%+255)=13
`=$(wimp%+255)
j:
t:
~�|
��|
��|
��|
�)�|                   ----------------
�'�|                     Wimp Polling
�)�|                   ----------------
��|
��|
�:
�� �Wimp_WaitForEvent
�� mask%,event%
�finished%=�
mask%=%111000011001

�
' ș"Wimp_Poll",mask%,wimp% � event%
 Ȏ event% �
(
  �0 :
2  �1 : �Wimp_PollDrawWindow
<&  �2 : ș "Wimp_OpenWindow",,wimp%
F   �3 : �Wimp_PollCloseWindow
P
  �4 :
Z
  �5 :
d  �6 : �Wimp_PollMouseClick
n   �7 : �Wimp_PollSaveMessage
x  �8 : �Wimp_PollKeyPress
�#  �9 : �Event_MenuChoice(menu%)
�
  �10:
�
  �11:
�
  �12:
�   �17,18: �Wimp_PollMessages
�
  �19:
� �
�� finished%
��
�:
�� �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%)
6' ș"Wimp_GetRectangle",,wimp%�more%
@�
J�
T:
^� �Wimp_PollCloseWindow
h%  ș "Wimp_GetPointerInfo",,wimp%
r)  window%=wimp%!12 : buttons%=wimp%!8
|) �Event_WindowClose(window%,buttons%)
�2 !wimp%=window% : ș "Wimp_CloseWindow",,wimp%
��
�:
�� �Wimp_PollMouseClick
�J button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
� Ȏ button% �
�"   �2    : �Wimp_PollMenuPopUp
�#   : Ȏ �Event_Save(window%) �
�,               � � : �Wimp_PollMouseSave
�1               � �: �Wimp_PollEventMouseClick
�              �
� �
��
:
� �Wimp_PollMenuPopUp
menu%=�Event_Menu(window%)
&  Ȏ menu%  �
0   � �:
:
    :
D     Ȏ window% �
N      � -2   : n%=0
X3        ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0
b         n%+=1
l
        �
v:        ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
�4       : ș"Wimp_CreateMenu",,menu%,x%-64,y%+20
�
     �
�  �
��
�:
�� �Wimp_PollMouseSave
� Ȏ icon% �
�8  � 0 : � button% � &50 � �Wimp_PollDragBox(window%)
�8  � 2 : � button% � 5 �  �Wimp_PollSaveFile(window%)
� �
��
�:
�� �Wimp_PollEventMouseClick
. � interface% � ș"Wimp_BorderIcon",,wimp%
3 �Event_MouseClick(window%,icon%,button%,x%,y%)
 Ȏ  interface% �
   � � :
*(   wimp%!0=x%:wimp%!4=y% : wimp%!8=0
4(   wimp%!12=window% : wimp%!16=icon%
>!   ș"Wimp_BorderIcon",,wimp%
H �
R�
\:
f!� �Wimp_PollSaveFile(window%)
p
�file$
z@ wimp%!0=window% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp%
� file$=$(wimp%!28)
� Ȏ �file$,".") �
�
  � 0   :
�(file$="<Amaze$Dir>.LevelData."+file$
�# �Event_SaveFile(file$,window%)
�  :
�%   �Event_SaveFile(file$,window%)
� �
� ș"Wimp_CreateMenu",-1
��
�:
� � �Wimp_PollDragBox(window%)
�
�x%,y%
 save%=window%
 !wimp%=window%
# ș"Wimp_GetWindowState",,wimp%
$- x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24
. wimp%!4=0
8! ș"Wimp_GetIconState",,wimp%
B !wimp%=window%
L wimp%!4=5
V, wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
`. wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
j wimp%!24=0:wimp%!28=0
t* 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_PollSaveMessage
�
� dragging%>0 �

� myblock% 255
%ș"Wimp_GetPointerInfo",,myblock%
A� myblock%!12=Smll_Window% �switch(myblock%!16) � dragging%=�
(�
2�
<
F�file$,window%,icon%,x%,y%
P# ș"Wimp_GetPointerInfo",,wimp%
Z� wimp%!12=Smll_Window% �
d: window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
n> wimp%!0=save% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp%
x file$=$(wimp%!28)
�+ file$=�Wimp_GetFileFromPathname(file$)
� wimp%!20=window%
� wimp%!24=icon%
� wimp%!28=x%:wimp%!32=y%
� wimp%!36=length%
� wimp%!0=64
� wimp%!12=0
� wimp%!16=1
� wimp%!40=&FFF
� $(wimp%+44)=file$
�4 ș"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24
��
�:
� �Wimp_PollMessages
� file$
,file$=�Wimp_GetStringAtAddress(wimp%+44)
"    Ȏ wimp%!16 �
,     � 0 : finished%=�
6     � 1 :
@     � 2 :
JF         wimp%!0=save% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp%
T      $(wimp%!28)=file$
^<      wimp%!0=save% : wimp%!4=1 : wimp%!8=0 : wimp%!12=0
h'      ș "Wimp_SetIconState",,wimp%
r8      ș "Wimp_SetCaretPosition",save%,1,,,-1,�file$
|&      �Event_SaveFile(file$,save%)
�
�     � 3
�G      type$=�Wimp_FileType(wimp%!40) : �Event_LoadFile(file$,type$)
�    � 5
�    � wimp%!40=&666 �
�wimp%!12=wimp%!8
�"ș "Wimp_SendMessage",19,wimp%
�!�Event_LoadFile(file$,"Data")
��
�� 8
�quitsend%=wimp%!4
�� Modified%=� �
�wimp%!12=wimp%!8
 "ș "Wimp_SendMessage",19,wimp%
 � �_OKtoQuit �
 $ș"Wimp_GetCaretPosition",,wimp%
 &wimp%!24=&1fc
 0*ș"Wimp_SendMessage",8,wimp%,quitsend%
 :�
 DModified%=�
 N�
 X�
 b�
 l:
 v&� �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_FileType(type%)
 �Ȏtype%�
 ��&FFF:="Text"
!�&FFD:="Data"
!�&FFB:="Basic"
!�&FF9:="Sprite"
! �&FED:="Palette"
!*�&FEC:="Template"
!4�&AFF:="Draw"
!>�&1000:="Folder"
!H�&2000:="Application"
!R=�~(type%)
!\�
!f:
!p
�
00000000  0d 00 0a 2e 20 f4 20 54  68 65 20 57 69 6d 70 20  |.... . The Wimp |
00000010  50 72 6f 63 65 64 75 72  65 20 4c 69 62 72 61 72  |Procedure Librar|
00000020  79 20 6f 66 20 21 4d 61  7a 65 4d 61 6b 65 0d 00  |y of !MazeMake..|
00000030  14 4f f4 7c 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |.O.|____________|
00000040  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00000070  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 0d 00 1e  |_____________...|
00000080  4f f4 7c 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |O.|_____________|
00000090  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
000000c0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 0d 00 28 06  |____________..(.|
000000d0  f4 7c 0d 00 32 06 f4 7c  0d 00 3c 06 f4 7c 0d 00  |.|..2..|..<..|..|
000000e0  46 45 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |FE.|            |
000000f0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
00000100  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000110  2d 2d 2d 20 20 20 20 20  20 20 20 20 20 36 2f 31  |---          6/1|
00000120  2f 39 32 0d 00 50 2f f4  7c 20 20 20 20 20 20 20  |/92..P/.|       |
00000130  20 20 20 20 20 20 20 20  20 20 20 20 57 49 4d 50  |            WIMP|
00000140  20 50 52 4f 43 45 44 55  52 45 20 4c 49 42 52 41  | PROCEDURE LIBRA|
00000150  52 59 0d 00 5a 06 f4 7c  0d 00 64 2c f4 7c 20 20  |RY..Z..|..d,.|  |
00000160  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000170  20 20 20 49 6e 64 65 78  20 6f 66 20 43 6f 6e 74  |   Index of Cont|
00000180  65 6e 74 73 0d 00 6e 06  f4 7c 0d 00 78 35 f4 7c  |ents..n..|..x5.||
00000190  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000001a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000001b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
000001c0  00 82 06 f4 7c 0d 00 8c  24 f4 7c 20 20 20 20 20  |....|...$.|     |
000001d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 31  |               1|
000001e0  2e a0 57 69 6e 64 6f 77  73 0d 00 96 06 f4 7c 0d  |..Windows.....|.|
000001f0  00 a0 22 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..".|           |
00000200  20 20 20 20 20 20 20 20  20 32 2e a0 49 63 6f 6e  |         2..Icon|
00000210  73 0d 00 aa 06 f4 7c 0d  00 b4 22 f4 7c 20 20 20  |s.....|...".|   |
00000220  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000230  20 33 2e a0 4d 65 6e 75  73 0d 00 be 06 f4 7c 0d  | 3..Menus.....|.|
00000240  00 c8 24 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..$.|           |
00000250  20 20 20 20 20 20 20 20  20 34 2e a0 53 70 72 69  |         4..Spri|
00000260  74 65 73 0d 00 d2 06 f4  7c 0d 00 dc 2a f4 7c 20  |tes.....|...*.| |
00000270  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000280  20 20 20 35 2e a0 4d 69  73 63 65 6c 6c 61 6e 65  |   5..Miscellane|
00000290  6f 75 73 0d 00 e6 06 f4  7c 0d 00 f0 24 f4 7c 20  |ous.....|...$.| |
000002a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000002b0  20 20 20 36 2e a0 50 6f  6c 6c 69 6e 67 0d 00 fa  |   6..Polling...|
000002c0  06 f4 7c 0d 01 04 35 f4  7c 20 20 20 20 20 20 20  |..|...5.|       |
000002d0  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 2d  |         -------|
000002e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000002f0  2d 2d 2d 2d 2d 2d 2d 2d  0d 01 0e 06 f4 7c 0d 01  |--------.....|..|
00000300  18 06 f4 7c 0d 01 22 06  f4 7c 0d 01 2c 06 f4 7c  |...|.."..|..,..||
00000310  0d 01 36 06 f4 7c 0d 01  40 06 f4 7c 0d 01 4a 35  |..6..|..@..|..J5|
00000320  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
00000330  20 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  --------------|
00000340  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000350  2d 0d 01 54 2a f4 7c 20  20 20 20 20 20 20 20 20  |-..T*.|         |
00000360  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000370  20 31 2e a0 57 69 6e 64  6f 77 73 0d 01 5e 35 f4  | 1..Windows..^5.|
00000380  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00000390  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
000003a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000003b0  0d 01 68 06 f4 7c 0d 01  72 06 f4 7c 0d 01 7c 40  |..h..|..r..|..|@|
000003c0  f4 7c 20 20 20 20 20 20  20 20 20 20 2d 2d 2d 2d  |.|          ----|
000003d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000003f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 01 86 06  |------------....|
00000400  f4 7c 0d 01 90 28 f4 7c  20 20 20 20 20 20 20 20  |.|...(.|        |
00000410  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 72  |              Pr|
00000420  6f 63 65 64 75 72 65 73  20 3a 0d 01 9a 06 f4 7c  |ocedures :.....||
00000430  0d 01 a4 38 f4 7c 20 20  20 20 20 20 20 20 20 20  |...8.|          |
00000440  20 20 20 50 52 4f 43 57  69 6d 70 5f 57 69 6e 64  |   PROCWimp_Wind|
00000450  6f 77 41 6c 65 72 74 28  74 69 74 6c 65 24 2c 6d  |owAlert(title$,m|
00000460  65 73 73 61 67 65 24 29  0d 01 ae 43 f4 7c 20 20  |essage$)...C.|  |
00000470  20 20 20 20 20 20 20 20  20 20 20 50 52 4f 43 57  |           PROCW|
00000480  69 6d 70 5f 57 69 6e 64  6f 77 41 6c 65 72 74 42  |imp_WindowAlertB|
00000490  6f 78 28 74 69 74 6c 65  24 2c 6d 65 73 73 61 67  |ox(title$,messag|
000004a0  65 24 2c 62 75 74 74 6f  6e 25 29 0d 01 b8 37 f4  |e$,button%)...7.|
000004b0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 46 4e  ||             FN|
000004c0  57 69 6d 70 5f 57 69 6e  64 6f 77 43 61 6e 63 65  |Wimp_WindowCance|
000004d0  6c 28 74 69 74 6c 65 24  2c 6d 65 73 73 61 67 65  |l(title$,message|
000004e0  24 29 0d 01 c2 3b f4 7c  20 20 20 20 20 20 20 20  |$)...;.|        |
000004f0  20 20 20 20 20 50 52 4f  43 57 69 6d 70 5f 57 69  |     PROCWimp_Wi|
00000500  6e 64 6f 77 45 72 72 6f  72 42 6f 78 28 74 69 74  |ndowErrorBox(tit|
00000510  6c 65 24 2c 6d 65 73 73  61 67 65 24 29 0d 01 cc  |le$,message$)...|
00000520  2e f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |..|             |
00000530  46 4e 57 69 6d 70 5f 57  69 6e 64 6f 77 54 69 74  |FNWimp_WindowTit|
00000540  6c 65 28 77 69 6e 64 6f  77 25 29 0d 01 d6 2d f4  |le(window%)...-.|
00000550  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 46 4e  ||             FN|
00000560  57 69 6d 70 5f 57 69 6e  64 6f 77 4c 6f 61 64 28  |Wimp_WindowLoad(|
00000570  77 69 6e 64 6f 77 24 29  0d 01 e0 3b f4 7c 20 20  |window$)...;.|  |
00000580  20 20 20 20 20 20 20 20  20 20 20 46 4e 57 69 6d  |           FNWim|
00000590  70 5f 57 69 6e 64 6f 77  4c 6f 61 64 46 72 6f 6d  |p_WindowLoadFrom|
000005a0  28 77 69 6e 64 6f 77 24  2c 74 65 6d 70 6c 61 74  |(window$,templat|
000005b0  65 24 29 0d 01 ea 35 f4  7c 20 20 20 20 20 20 20  |e$)...5.|       |
000005c0  20 20 20 20 20 20 50 52  4f 43 57 69 6d 70 5f 57  |      PROCWimp_W|
000005d0  69 6e 64 6f 77 42 72 69  6e 67 54 6f 54 6f 70 28  |indowBringToTop(|
000005e0  77 69 6e 64 6f 77 25 29  0d 01 f4 34 f4 7c 20 20  |window%)...4.|  |
000005f0  20 20 20 20 20 20 20 20  20 20 20 50 52 4f 43 57  |           PROCW|
00000600  69 6d 70 5f 57 69 6e 64  6f 77 46 6f 72 63 65 44  |imp_WindowForceD|
00000610  72 61 77 28 77 69 6e 64  6f 77 25 29 0d 01 fe 2f  |raw(window%).../|
00000620  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |.|             P|
00000630  52 4f 43 57 69 6d 70 5f  57 69 6e 64 6f 77 4f 70  |ROCWimp_WindowOp|
00000640  65 6e 28 77 69 6e 64 6f  77 25 29 0d 02 08 2b f4  |en(window%)...+.|
00000650  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 50 52  ||             PR|
00000660  4f 43 57 69 6d 70 5f 57  69 6e 64 6f 77 49 6e 74  |OCWimp_WindowInt|
00000670  65 72 66 61 63 65 0d 02  12 06 f4 7c 0d 02 1c 3f  |erface.....|...?|
00000680  f4 7c 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |.|           ---|
00000690  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000006b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 02 26 06 f4  |-----------..&..|
000006c0  7c 0d 02 30 06 f4 7c 0d  02 3a 06 f4 7c 0d 02 44  ||..0..|..:..|..D|
000006d0  28 dd 20 f2 57 69 6d 70  5f 57 69 6e 64 6f 77 41  |(. .Wimp_WindowA|
000006e0  6c 65 72 74 28 74 69 74  6c 65 24 2c 6d 65 73 73  |lert(title$,mess|
000006f0  61 67 65 24 29 0d 02 4e  2b f2 57 69 6d 70 5f 57  |age$)..N+.Wimp_W|
00000700  69 6e 64 6f 77 41 6c 65  72 74 42 6f 78 28 74 69  |indowAlertBox(ti|
00000710  74 6c 65 24 2c 6d 65 73  73 61 67 65 24 2c 30 29  |tle$,message$,0)|
00000720  0d 02 58 05 e1 0d 02 62  05 3a 0d 02 6c 33 dd 20  |..X....b.:..l3. |
00000730  f2 57 69 6d 70 5f 57 69  6e 64 6f 77 41 6c 65 72  |.Wimp_WindowAler|
00000740  74 42 6f 78 28 74 69 74  6c 65 24 2c 6d 65 73 73  |tBox(title$,mess|
00000750  61 67 65 24 2c 62 75 74  74 6f 6e 25 29 0d 02 76  |age$,button%)..v|
00000760  0f ea 20 72 65 73 70 6f  6e 73 65 25 0d 02 80 17  |.. response%....|
00000770  24 28 77 69 6d 70 25 2b  34 29 3d 6d 65 73 73 61  |$(wimp%+4)=messa|
00000780  67 65 24 0d 02 8a 10 c8  8e 20 62 75 74 74 6f 6e  |ge$...... button|
00000790  25 20 ca 0d 02 94 19 20  c9 20 32 20 20 20 20 3a  |% ..... . 2    :|
000007a0  20 72 65 73 70 6f 6e 73  65 25 3d 31 0d 02 9e 1a  | response%=1....|
000007b0  20 c9 20 31 20 20 20 20  3a 20 72 65 73 70 6f 6e  | . 1    : respon|
000007c0  73 65 25 3d 31 35 0d 02  a8 21 20 c9 20 33 20 20  |se%=15...! . 3  |
000007d0  20 20 3a 20 72 65 73 70  6f 6e 73 65 25 3d 28 31  |  : response%=(1|
000007e0  3c 3c 35 29 2b 31 36 0d  02 b2 21 20 c9 20 34 20  |<<5)+16...! . 4 |
000007f0  20 20 20 3a 20 72 65 73  70 6f 6e 73 65 25 3d 28  |   : response%=(|
00000800  31 3c 3c 36 29 2b 31 36  0d 02 bc 14 7f 20 3a 20  |1<<6)+16..... : |
00000810  72 65 73 70 6f 6e 73 65  25 3d 31 36 0d 02 c6 05  |response%=16....|
00000820  cb 0d 02 d0 3d c8 99 20  22 57 69 6d 70 5f 52 65  |....=.. "Wimp_Re|
00000830  70 6f 72 74 45 72 72 6f  72 22 2c 77 69 6d 70 25  |portError",wimp%|
00000840  2c 72 65 73 70 6f 6e 73  65 25 2c 74 69 74 6c 65  |,response%,title|
00000850  24 20 b8 20 2c 72 65 73  70 6f 6e 73 65 25 0d 02  |$ . ,response%..|
00000860  da 05 e1 0d 02 e4 05 3a  0d 02 ee 29 dd 20 a4 57  |.......:...). .W|
00000870  69 6d 70 5f 57 69 6e 64  6f 77 43 61 6e 63 65 6c  |imp_WindowCancel|
00000880  28 74 69 74 6c 65 24 2c  6d 65 73 73 61 67 65 24  |(title$,message$|
00000890  29 0d 02 f8 17 24 28 77  69 6d 70 25 2b 34 29 3d  |)....$(wimp%+4)=|
000008a0  6d 65 73 73 61 67 65 24  0d 03 02 10 72 65 73 70  |message$....resp|
000008b0  6f 6e 73 65 25 3d 32 33  0d 03 0c 3d c8 99 20 22  |onse%=23...=.. "|
000008c0  57 69 6d 70 5f 52 65 70  6f 72 74 45 72 72 6f 72  |Wimp_ReportError|
000008d0  22 2c 77 69 6d 70 25 2c  72 65 73 70 6f 6e 73 65  |",wimp%,response|
000008e0  25 2c 74 69 74 6c 65 24  20 b8 20 2c 72 65 73 70  |%,title$ . ,resp|
000008f0  6f 6e 73 65 25 0d 03 16  10 3d 72 65 73 70 6f 6e  |onse%....=respon|
00000900  73 65 25 2d 32 0d 03 20  05 3a 0d 03 2a 2b dd 20  |se%-2.. .:..*+. |
00000910  f2 57 69 6d 70 5f 57 69  6e 64 6f 77 45 72 72 6f  |.Wimp_WindowErro|
00000920  72 42 6f 78 28 74 69 74  6c 65 24 2c 6d 65 73 73  |rBox(title$,mess|
00000930  61 67 65 24 29 0d 03 34  2b f2 57 69 6d 70 5f 57  |age$)..4+.Wimp_W|
00000940  69 6e 64 6f 77 41 6c 65  72 74 42 6f 78 28 74 69  |indowAlertBox(ti|
00000950  74 6c 65 24 2c 6d 65 73  73 61 67 65 24 2c 32 29  |tle$,message$,2)|
00000960  0d 03 3e 05 e1 0d 03 48  05 3a 0d 03 52 20 dd 20  |..>....H.:..R . |
00000970  a4 57 69 6d 70 5f 57 69  6e 64 6f 77 54 69 74 6c  |.Wimp_WindowTitl|
00000980  65 28 77 69 6e 64 6f 77  25 29 0d 03 5c 13 77 69  |e(window%)..\.wi|
00000990  6d 70 25 21 30 3d 77 69  6e 64 6f 77 25 0d 03 66  |mp%!0=window%..f|
000009a0  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 57 69 6e  | .. "Wimp_GetWin|
000009b0  64 49 6e 66 6f 22 2c 2c  77 69 6d 70 25 0d 03 70  |dInfo",,wimp%..p|
000009c0  36 e7 20 28 28 77 69 6d  70 25 21 36 30 29 80 26  |6. ((wimp%!60).&|
000009d0  31 30 30 29 3d 30 20 85  20 31 2c 22 54 69 74 6c  |100)=0 . 1,"Titl|
000009e0  65 20 69 73 6e 27 74 20  69 6e 64 69 72 65 63 74  |e isn't indirect|
000009f0  65 64 22 0d 03 7a 10 3d  24 28 77 69 6d 70 25 21  |ed"..z.=$(wimp%!|
00000a00  37 36 29 0d 03 84 05 3a  0d 03 8e 1f dd 20 a4 57  |76)....:..... .W|
00000a10  69 6d 70 5f 57 69 6e 64  6f 77 4c 6f 61 64 28 77  |imp_WindowLoad(w|
00000a20  69 6e 64 6f 77 24 29 0d  03 98 39 3d a4 57 69 6d  |indow$)...9=.Wim|
00000a30  70 5f 57 69 6e 64 6f 77  4c 6f 61 64 46 72 6f 6d  |p_WindowLoadFrom|
00000a40  28 77 69 6e 64 6f 77 24  2c 22 3c 4f 62 65 79 24  |(window$,"<Obey$|
00000a50  44 69 72 3e 2e 54 65 6d  70 6c 61 74 65 73 22 29  |Dir>.Templates")|
00000a60  0d 03 a2 05 3a 0d 03 ac  2d dd 20 a4 57 69 6d 70  |....:...-. .Wimp|
00000a70  5f 57 69 6e 64 6f 77 4c  6f 61 64 46 72 6f 6d 28  |_WindowLoadFrom(|
00000a80  77 69 6e 64 6f 77 24 2c  74 65 6d 70 6c 61 74 65  |window$,template|
00000a90  24 29 0d 03 b6 1a ea 20  63 25 2c 69 25 2c 6e 25  |$)..... c%,i%,n%|
00000aa0  2c 6a 25 2c 73 70 24 2c  73 70 32 24 0d 03 c0 25  |,j%,sp$,sp2$...%|
00000ab0  c8 99 20 22 57 69 6d 70  5f 4f 70 65 6e 54 65 6d  |.. "Wimp_OpenTem|
00000ac0  70 6c 61 74 65 22 2c 2c  74 65 6d 70 6c 61 74 65  |plate",,template|
00000ad0  24 0d 03 ca 4d c8 99 20  22 57 69 6d 70 5f 4c 6f  |$...M.. "Wimp_Lo|
00000ae0  61 64 54 65 6d 70 6c 61  74 65 22 2c 2c 77 69 6d  |adTemplate",,wim|
00000af0  70 25 2c 69 63 6f 6e 73  25 2c 69 63 6f 6e 5f 6d  |p%,icons%,icon_m|
00000b00  65 6d 6f 72 79 25 2c 2d  31 2c 77 69 6e 64 6f 77  |emory%,-1,window|
00000b10  24 2c 30 20 b8 20 2c 2c  69 63 6f 6e 73 25 0d 03  |$,0 . ,,icons%..|
00000b20  d4 11 c8 8e 20 73 70 72  69 74 65 73 25 20 ca 0d  |.... sprites% ..|
00000b30  03 de 1f 20 c9 20 31 20  20 20 20 3a 20 77 69 6d  |... . 1    : wim|
00000b40  70 25 21 36 34 3d 73 70  72 69 74 65 73 25 0d 03  |p%!64=sprites%..|
00000b50  e8 29 20 7f 20 3a 20 77  69 6d 70 25 21 36 34 3d  |.) . : wimp%!64=|
00000b60  a4 45 76 65 6e 74 5f 53  70 72 69 74 65 73 28 77  |.Event_Sprites(w|
00000b70  69 6e 64 6f 77 25 29 0d  03 f2 05 cb 0d 03 fc 26  |indow%)........&|
00000b80  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 57  |.. "Wimp_CreateW|
00000b90  69 6e 64 6f 77 22 2c 2c  77 69 6d 70 25 20 b8 20  |indow",,wimp% . |
00000ba0  63 25 0d 04 06 1b c8 99  20 22 57 69 6d 70 5f 43  |c%...... "Wimp_C|
00000bb0  6c 6f 73 65 54 65 6d 70  6c 61 74 65 22 0d 04 10  |loseTemplate"...|
00000bc0  37 c8 99 20 22 57 69 6d  70 5f 57 68 69 63 68 49  |7.. "Wimp_WhichI|
00000bd0  63 6f 6e 22 2c 63 25 2c  77 69 6d 70 25 2b 34 30  |con",c%,wimp%+40|
00000be0  2c 31 2b 32 2b 28 31 3c  3c 38 29 2c 32 2b 28 31  |,1+2+(1<<8),2+(1|
00000bf0  3c 3c 38 29 0d 04 1a 11  c8 8e 20 77 69 6d 70 25  |<<8)...... wimp%|
00000c00  21 34 30 20 ca 0d 04 24  0d 20 c9 20 2d 31 20 20  |!40 ...$. . -1  |
00000c10  20 3a 0d 04 2e 0e 20 7f  20 3a 20 69 25 3d 34 30  | :.... . : i%=40|
00000c20  0d 04 38 06 20 f5 0d 04  42 24 20 20 20 77 69 6d  |..8. ...B$   wim|
00000c30  70 25 21 34 3d 77 69 6d  70 25 21 69 25 20 3a 20  |p%!4=wimp%!i% : |
00000c40  77 69 6d 70 25 21 30 3d  63 25 0d 04 4c 24 20 20  |wimp%!0=c%..L$  |
00000c50  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 49 63 6f  | .. "Wimp_GetIco|
00000c60  6e 53 74 61 74 65 22 2c  2c 77 69 6d 70 25 0d 04  |nState",,wimp%..|
00000c70  56 2d 20 20 20 73 70 24  3d a4 57 69 6d 70 5f 47  |V-   sp$=.Wimp_G|
00000c80  65 74 53 74 72 69 6e 67  41 74 41 64 64 72 65 73  |etStringAtAddres|
00000c90  73 28 77 69 6d 70 25 21  32 38 29 0d 04 60 22 20  |s(wimp%!28)..`" |
00000ca0  20 20 c8 99 20 22 57 69  6d 70 5f 44 65 6c 65 74  |  .. "Wimp_Delet|
00000cb0  65 49 63 6f 6e 22 2c 2c  77 69 6d 70 25 0d 04 6a  |eIcon",,wimp%..j|
00000cc0  14 20 20 20 c8 8e 20 73  70 72 69 74 65 73 25 20  |.   .. sprites% |
00000cd0  ca 0d 04 74 1b 20 20 20  20 c9 20 31 20 20 20 20  |...t.    . 1    |
00000ce0  3a 20 77 69 6d 70 25 21  33 32 3d 31 0d 04 7e 0b  |: wimp%!32=1..~.|
00000cf0  20 20 20 20 7f 20 3a 0d  04 88 2f 20 20 20 20 20  |    . :.../     |
00000d00  c8 99 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |.. "OS_SpriteOp"|
00000d10  2c 26 31 30 38 2c 73 70  72 69 74 65 73 25 20 b8  |,&108,sprites% .|
00000d20  20 2c 2c 2c 6e 25 0d 04  92 0d 20 20 20 20 20 6a  | ,,,n%....     j|
00000d30  25 3d 30 0d 04 9c 12 20  20 20 20 20 f5 20 3a 20  |%=0....     . : |
00000d40  6a 25 2b 3d 31 0d 04 a6  3d 20 20 20 20 20 20 c8  |j%+=1...=      .|
00000d50  99 20 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |. "OS_SpriteOp",|
00000d60  26 31 30 44 2c 73 70 72  69 74 65 73 25 2c 70 6f  |&10D,sprites%,po|
00000d70  69 6e 74 65 72 5f 62 6c  6f 63 6b 25 2c 32 30 2c  |inter_block%,20,|
00000d80  6a 25 0d 04 b0 37 20 20  20 20 20 20 73 70 32 24  |j%...7      sp2$|
00000d90  3d a4 57 69 6d 70 5f 47  65 74 53 74 72 69 6e 67  |=.Wimp_GetString|
00000da0  41 74 41 64 64 72 65 73  73 28 70 6f 69 6e 74 65  |AtAddress(pointe|
00000db0  72 5f 62 6c 6f 63 6b 25  29 0d 04 ba 1b 20 20 20  |r_block%)....   |
00000dc0  20 20 fd 20 6a 25 3d 6e  25 20 84 20 73 70 24 3d  |  . j%=n% . sp$=|
00000dd0  73 70 32 24 0d 04 c4 34  20 20 20 20 20 e7 20 73  |sp2$...4     . s|
00000de0  70 24 3d 73 70 32 24 20  8c 20 77 69 6d 70 25 21  |p$=sp2$ . wimp%!|
00000df0  33 32 3d 73 70 72 69 74  65 73 25 20 8b 20 77 69  |32=sprites% . wi|
00000e00  6d 70 25 21 33 32 3d 31  0d 04 ce 08 20 20 20 cb  |mp%!32=1....   .|
00000e10  0d 04 d8 11 20 20 20 77  69 6d 70 25 21 34 3d 63  |....   wimp%!4=c|
00000e20  25 0d 04 e2 2e 20 20 20  c8 99 20 22 57 69 6d 70  |%....   .. "Wimp|
00000e30  5f 43 72 65 61 74 65 49  63 6f 6e 22 2c 2c 77 69  |_CreateIcon",,wi|
00000e40  6d 70 25 2b 34 20 b8 20  68 61 6e 64 6c 65 25 0d  |mp%+4 . handle%.|
00000e50  04 ec 0c 20 20 20 69 25  2b 3d 34 0d 04 f6 14 20  |...   i%+=4.... |
00000e60  fd 20 28 77 69 6d 70 25  21 69 25 29 3d 2d 31 0d  |. (wimp%!i%)=-1.|
00000e70  05 00 05 cb 0d 05 0a 07  3d 63 25 0d 05 14 05 3a  |........=c%....:|
00000e80  0d 05 1e 25 dd 20 f2 57  69 6d 70 5f 57 69 6e 64  |...%. .Wimp_Wind|
00000e90  6f 77 42 72 69 6e 67 54  6f 54 6f 70 28 77 69 6e  |owBringToTop(win|
00000ea0  64 6f 77 25 29 0d 05 28  12 21 77 69 6d 70 25 3d  |dow%)..(.!wimp%=|
00000eb0  77 69 6e 64 6f 77 25 0d  05 32 23 c8 99 20 22 57  |window%..2#.. "W|
00000ec0  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 53 74 61  |imp_GetWindowSta|
00000ed0  74 65 22 2c 2c 77 69 6d  70 25 0d 05 3c 0f 77 69  |te",,wimp%..<.wi|
00000ee0  6d 70 25 21 32 38 3d 2d  31 0d 05 46 1f c8 99 20  |mp%!28=-1..F... |
00000ef0  22 57 69 6d 70 5f 4f 70  65 6e 57 69 6e 64 6f 77  |"Wimp_OpenWindow|
00000f00  22 2c 2c 77 69 6d 70 25  0d 05 50 05 e1 0d 05 5a  |",,wimp%..P....Z|
00000f10  05 3a 0d 05 64 20 dd 20  f2 57 69 6d 70 5f 57 69  |.:..d . .Wimp_Wi|
00000f20  6e 64 6f 77 43 6c 6f 73  65 28 77 69 6e 64 6f 77  |ndowClose(window|
00000f30  25 29 0d 05 6e 12 21 77  69 6d 70 25 3d 77 69 6e  |%)..n.!wimp%=win|
00000f40  64 6f 77 25 0d 05 78 20  c8 99 20 22 57 69 6d 70  |dow%..x .. "Wimp|
00000f50  5f 43 6c 6f 73 65 57 69  6e 64 6f 77 22 2c 2c 77  |_CloseWindow",,w|
00000f60  69 6d 70 25 0d 05 82 05  e1 0d 05 8c 05 3a 0d 05  |imp%.........:..|
00000f70  96 24 dd 20 f2 57 69 6d  70 5f 57 69 6e 64 6f 77  |.$. .Wimp_Window|
00000f80  46 6f 72 63 65 44 72 61  77 28 77 69 6e 64 6f 77  |ForceDraw(window|
00000f90  25 29 0d 05 a0 10 c8 8e  20 77 69 6e 64 6f 77 25  |%)...... window%|
00000fa0  20 ca 0d 05 aa 38 20 c9  20 2d 31 20 20 20 3a 20  | ....8 . -1   : |
00000fb0  c8 99 20 22 57 69 6d 70  5f 46 6f 72 63 65 52 65  |.. "Wimp_ForceRe|
00000fc0  64 72 61 77 22 2c 2d 31  2c 30 2c 30 2c 32 2a 31  |draw",-1,0,0,2*1|
00000fd0  32 38 30 2c 32 2a 31 30  32 34 0d 05 b4 39 20 7f  |280,2*1024...9 .|
00000fe0  20 3a 20 c8 99 20 22 57  69 6d 70 5f 46 6f 72 63  | : .. "Wimp_Forc|
00000ff0  65 52 65 64 72 61 77 22  2c 77 69 6e 64 6f 77 25  |eRedraw",window%|
00001000  2c 30 2c 2d 32 2a 31 30  32 34 2c 32 2a 31 32 38  |,0,-2*1024,2*128|
00001010  30 2c 30 0d 05 be 05 cb  0d 05 c8 05 e1 0d 05 d2  |0,0.............|
00001020  05 3a 0d 05 dc 1f dd 20  f2 57 69 6d 70 5f 57 69  |.:..... .Wimp_Wi|
00001030  6e 64 6f 77 4f 70 65 6e  28 77 69 6e 64 6f 77 25  |ndowOpen(window%|
00001040  29 0d 05 e6 12 21 77 69  6d 70 25 3d 77 69 6e 64  |)....!wimp%=wind|
00001050  6f 77 25 0d 05 f0 23 c8  99 20 22 57 69 6d 70 5f  |ow%...#.. "Wimp_|
00001060  47 65 74 57 69 6e 64 6f  77 53 74 61 74 65 22 2c  |GetWindowState",|
00001070  2c 77 69 6d 70 25 0d 05  fa 1f c8 99 20 22 57 69  |,wimp%...... "Wi|
00001080  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00001090  77 69 6d 70 25 0d 06 04  05 e1 0d 06 0e 05 3a 0d  |wimp%.........:.|
000010a0  06 18 19 f2 57 69 6d 70  5f 57 69 6e 64 6f 77 49  |....Wimp_WindowI|
000010b0  6e 74 65 72 66 61 63 65  0d 06 22 20 c8 99 22 57  |nterface.." .."W|
000010c0  69 6d 70 5f 42 6f 72 64  65 72 57 69 6e 64 6f 77  |imp_BorderWindow|
000010d0  22 2c 2c 77 69 6d 70 25  0d 06 2c 05 e1 0d 06 36  |",,wimp%..,....6|
000010e0  06 f4 7c 0d 06 40 06 f4  7c 0d 06 4a 06 f4 7c 0d  |..|..@..|..J..|.|
000010f0  06 54 31 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |.T1.|           |
00001100  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
00001110  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001120  0d 06 5e 28 f4 7c 20 20  20 20 20 20 20 20 20 20  |..^(.|          |
00001130  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001140  32 2e a0 49 63 6f 6e 73  0d 06 68 31 f4 7c 20 20  |2..Icons..h1.|  |
00001150  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001160  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001170  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 06 72 06 f4 7c 0d  |---------..r..|.|
00001180  06 7c 06 f4 7c 0d 06 86  3d f4 7c 20 20 20 20 20  |.|..|...=.|     |
00001190  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |        --------|
000011a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000011c0  2d 2d 0d 06 90 06 f4 7c  0d 06 9a 28 f4 7c 20 20  |--.....|...(.|  |
000011d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000011e0  20 20 20 20 50 72 6f 63  65 64 75 72 65 73 20 3a  |    Procedures :|
000011f0  0d 06 a4 06 f4 7c 0d 06  ae 2b f4 7c 20 20 20 20  |.....|...+.|    |
00001200  20 20 20 20 20 20 20 20  20 20 46 4e 57 69 6d 70  |          FNWimp|
00001210  5f 49 63 6f 6e 42 61 72  28 53 70 72 69 74 65 24  |_IconBar(Sprite$|
00001220  29 0d 06 b8 3c f4 7c 20  20 20 20 20 20 20 20 20  |)...<.|         |
00001230  20 20 20 20 20 50 52 4f  43 57 69 6d 70 5f 49 63  |     PROCWimp_Ic|
00001240  6f 6e 43 61 72 65 74 28  77 69 6e 64 6f 77 25 2c  |onCaret(window%,|
00001250  69 63 6f 6e 25 2c 63 68  61 72 73 25 29 0d 06 c2  |icon%,chars%)...|
00001260  32 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |2.|             |
00001270  20 46 4e 57 69 6d 70 5f  49 63 6f 6e 54 65 78 74  | FNWimp_IconText|
00001280  28 77 69 6e 64 6f 77 25  2c 69 63 6f 6e 25 29 0d  |(window%,icon%).|
00001290  06 cc 38 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..8.|           |
000012a0  20 20 20 46 4e 57 69 6d  70 5f 49 63 6f 6e 56 61  |   FNWimp_IconVa|
000012b0  6c 69 64 61 74 69 6f 6e  28 77 69 6e 64 6f 77 25  |lidation(window%|
000012c0  2c 69 63 6f 6e 25 29 0d  06 d6 37 f4 7c 20 20 20  |,icon%)...7.|   |
000012d0  20 20 20 20 20 20 20 20  20 20 20 50 52 4f 43 57  |           PROCW|
000012e0  69 6d 70 5f 49 63 6f 6e  44 69 73 61 62 6c 65 28  |imp_IconDisable(|
000012f0  77 69 6e 64 6f 77 25 2c  69 63 6f 6e 25 29 0d 06  |window%,icon%)..|
00001300  e0 36 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.6.|            |
00001310  20 20 50 52 4f 43 57 69  6d 70 5f 49 63 6f 6e 45  |  PROCWimp_IconE|
00001320  6e 61 62 6c 65 28 77 69  6e 64 6f 77 25 2c 69 63  |nable(window%,ic|
00001330  6f 6e 25 29 0d 06 ea 3f  f4 7c 20 20 20 20 20 20  |on%)...?.|      |
00001340  20 20 20 20 20 20 20 20  46 4e 57 69 6d 70 5f 49  |        FNWimp_I|
00001350  63 6f 6e 50 75 74 53 70  72 69 74 65 28 77 69 6e  |conPutSprite(win|
00001360  64 6f 77 25 2c 69 63 6f  6e 25 2c 73 70 72 69 74  |dow%,icon%,sprit|
00001370  65 24 29 0d 06 f4 3d f4  7c 20 20 20 20 20 20 20  |e$)...=.|       |
00001380  20 20 20 20 20 20 20 50  52 4f 43 57 69 6d 70 5f  |       PROCWimp_|
00001390  49 63 6f 6e 50 75 74 54  65 78 74 28 77 69 6e 64  |IconPutText(wind|
000013a0  6f 77 25 2c 69 63 6f 6e  25 2c 74 65 78 74 24 29  |ow%,icon%,text$)|
000013b0  0d 06 fe 2f f4 7c 20 20  20 20 20 20 20 20 20 20  |.../.|          |
000013c0  20 20 20 20 50 52 4f 43  57 69 6d 70 5f 49 63 6f  |    PROCWimp_Ico|
000013d0  6e 49 6e 74 65 72 66 61  63 65 53 74 61 72 74 0d  |nInterfaceStart.|
000013e0  07 08 30 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..0.|           |
000013f0  20 20 20 50 52 4f 43 57  69 6d 70 5f 49 63 6f 6e  |   PROCWimp_Icon|
00001400  49 6e 74 65 72 66 61 63  65 46 69 6e 69 73 68 0d  |InterfaceFinish.|
00001410  07 12 06 f4 7c 0d 07 1c  3d f4 7c 20 20 20 20 20  |....|...=.|     |
00001420  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |        --------|
00001430  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001450  2d 2d 0d 07 26 06 f4 7c  0d 07 30 05 3a 0d 07 3a  |--..&..|..0.:..:|
00001460  1c dd 20 a4 57 69 6d 70  5f 49 63 6f 6e 42 61 72  |.. .Wimp_IconBar|
00001470  28 53 70 72 69 74 65 24  29 0d 07 44 0b ea 20 69  |(Sprite$)..D.. i|
00001480  63 6f 6e 25 0d 07 4e 0e  77 69 6d 70 25 21 30 3d  |con%..N.wimp%!0=|
00001490  2d 31 0d 07 58 1d 77 69  6d 70 25 21 34 3d 30 20  |-1..X.wimp%!4=0 |
000014a0  20 20 20 20 3a 20 77 69  6d 70 25 21 38 3d 30 0d  |    : wimp%!8=0.|
000014b0  07 62 1d 77 69 6d 70 25  21 31 32 3d 36 38 20 3a  |.b.wimp%!12=68 :|
000014c0  20 77 69 6d 70 25 21 31  36 3d 36 38 0d 07 6c 12  | wimp%!16=68..l.|
000014d0  77 69 6d 70 25 21 32 30  3d 26 33 30 30 32 0d 07  |wimp%!20=&3002..|
000014e0  76 17 24 28 77 69 6d 70  25 2b 32 34 29 3d 53 70  |v.$(wimp%+24)=Sp|
000014f0  72 69 74 65 24 0d 07 80  27 c8 99 20 22 57 69 6d  |rite$...'.. "Wim|
00001500  70 5f 43 72 65 61 74 65  49 63 6f 6e 22 2c 2c 77  |p_CreateIcon",,w|
00001510  69 6d 70 25 20 b8 20 69  63 6f 6e 25 0d 07 8a 0a  |imp% . icon%....|
00001520  3d 69 63 6f 6e 25 0d 07  94 05 3a 0d 07 9e 2b dd  |=icon%....:...+.|
00001530  20 f2 57 69 6d 70 5f 49  63 6f 6e 43 61 72 65 74  | .Wimp_IconCaret|
00001540  28 77 69 6e 64 6f 77 25  2c 69 63 6f 6e 25 2c 63  |(window%,icon%,c|
00001550  68 61 72 73 25 29 0d 07  a8 38 c8 99 20 22 57 69  |hars%)...8.. "Wi|
00001560  6d 70 5f 53 65 74 43 61  72 65 74 50 6f 73 69 74  |mp_SetCaretPosit|
00001570  69 6f 6e 22 2c 77 69 6e  64 6f 77 25 2c 69 63 6f  |ion",window%,ico|
00001580  6e 25 2c 2c 2c 2d 31 2c  63 68 61 72 73 25 0d 07  |n%,,,-1,chars%..|
00001590  b2 05 e1 0d 07 bc 05 3a  0d 07 c6 23 dd 20 a4 57  |.......:...#. .W|
000015a0  69 6d 70 5f 49 63 6f 6e  54 65 78 74 28 77 69 6e  |imp_IconText(win|
000015b0  64 6f 77 25 2c 69 63 6f  6e 25 29 0d 07 d0 23 77  |dow%,icon%)...#w|
000015c0  69 6d 70 25 21 30 3d 77  69 6e 64 6f 77 25 20 3a  |imp%!0=window% :|
000015d0  20 77 69 6d 70 25 21 34  3d 69 63 6f 6e 25 0d 07  | wimp%!4=icon%..|
000015e0  da 21 c8 99 20 22 57 69  6d 70 5f 47 65 74 49 63  |.!.. "Wimp_GetIc|
000015f0  6f 6e 53 74 61 74 65 22  2c 2c 77 69 6d 70 25 0d  |onState",,wimp%.|
00001600  07 e4 37 e7 20 28 28 77  69 6d 70 25 21 32 34 29  |..7. ((wimp%!24)|
00001610  20 80 20 26 31 30 30 29  3d 30 20 85 20 31 2c 22  | . &100)=0 . 1,"|
00001620  49 63 6f 6e 20 69 73 6e  27 74 20 69 6e 64 69 72  |Icon isn't indir|
00001630  65 63 74 65 64 22 0d 07  ee 10 3d 24 28 77 69 6d  |ected"....=$(wim|
00001640  70 25 21 32 38 29 0d 07  f8 05 3a 0d 08 02 29 dd  |p%!28)....:...).|
00001650  20 a4 57 69 6d 70 5f 49  63 6f 6e 56 61 6c 69 64  | .Wimp_IconValid|
00001660  61 74 69 6f 6e 28 77 69  6e 64 6f 77 25 2c 69 63  |ation(window%,ic|
00001670  6f 6e 25 29 0d 08 0c 23  77 69 6d 70 25 21 30 3d  |on%)...#wimp%!0=|
00001680  77 69 6e 64 6f 77 25 20  3a 20 77 69 6d 70 25 21  |window% : wimp%!|
00001690  34 3d 69 63 6f 6e 25 0d  08 16 21 c8 99 20 22 57  |4=icon%...!.. "W|
000016a0  69 6d 70 5f 47 65 74 49  63 6f 6e 53 74 61 74 65  |imp_GetIconState|
000016b0  22 2c 2c 77 69 6d 70 25  0d 08 20 37 e7 20 28 28  |",,wimp%.. 7. ((|
000016c0  77 69 6d 70 25 21 32 34  29 20 80 20 26 31 30 30  |wimp%!24) . &100|
000016d0  29 3d 30 20 85 20 31 2c  22 49 63 6f 6e 20 69 73  |)=0 . 1,"Icon is|
000016e0  6e 27 74 20 69 6e 64 69  72 65 63 74 65 64 22 0d  |n't indirected".|
000016f0  08 2a 10 3d 24 28 77 69  6d 70 25 21 33 32 29 0d  |.*.=$(wimp%!32).|
00001700  08 34 05 3a 0d 08 3e 26  dd 20 f2 57 69 6d 70 5f  |.4.:..>&. .Wimp_|
00001710  49 63 6f 6e 44 69 73 61  62 6c 65 28 77 69 6e 64  |IconDisable(wind|
00001720  6f 77 25 2c 69 63 6f 6e  25 29 0d 08 48 23 77 69  |ow%,icon%)..H#wi|
00001730  6d 70 25 21 30 3d 77 69  6e 64 6f 77 25 20 3a 20  |mp%!0=window% : |
00001740  77 69 6d 70 25 21 34 3d  69 63 6f 6e 25 0d 08 52  |wimp%!4=icon%..R|
00001750  24 77 69 6d 70 25 21 38  3d 31 3c 3c 32 32 20 20  |$wimp%!8=1<<22  |
00001760  20 3a 20 77 69 6d 70 25  21 31 32 3d 31 3c 3c 32  | : wimp%!12=1<<2|
00001770  32 0d 08 5c 21 c8 99 20  22 57 69 6d 70 5f 53 65  |2..\!.. "Wimp_Se|
00001780  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 77 69 6d  |tIconState",,wim|
00001790  70 25 0d 08 66 05 e1 0d  08 70 05 3a 0d 08 7a 25  |p%..f....p.:..z%|
000017a0  dd 20 f2 57 69 6d 70 5f  49 63 6f 6e 45 6e 61 62  |. .Wimp_IconEnab|
000017b0  6c 65 28 77 69 6e 64 6f  77 25 2c 69 63 6f 6e 25  |le(window%,icon%|
000017c0  29 0d 08 84 23 77 69 6d  70 25 21 30 3d 77 69 6e  |)...#wimp%!0=win|
000017d0  64 6f 77 25 20 3a 20 77  69 6d 70 25 21 34 3d 69  |dow% : wimp%!4=i|
000017e0  63 6f 6e 25 0d 08 8e 24  77 69 6d 70 25 21 38 3d  |con%...$wimp%!8=|
000017f0  30 20 20 20 20 20 20 20  3a 20 77 69 6d 70 25 21  |0       : wimp%!|
00001800  31 32 3d 31 3c 3c 32 32  0d 08 98 21 c8 99 20 22  |12=1<<22...!.. "|
00001810  57 69 6d 70 5f 53 65 74  49 63 6f 6e 53 74 61 74  |Wimp_SetIconStat|
00001820  65 22 2c 2c 77 69 6d 70  25 0d 08 a2 05 e1 0d 08  |e",,wimp%.......|
00001830  ac 05 3a 0d 08 b6 30 dd  20 a4 57 69 6d 70 5f 49  |..:...0. .Wimp_I|
00001840  63 6f 6e 50 75 74 53 70  72 69 74 65 28 77 69 6e  |conPutSprite(win|
00001850  64 6f 77 25 2c 69 63 6f  6e 25 2c 73 70 72 69 74  |dow%,icon%,sprit|
00001860  65 24 29 0d 08 c0 21 77  69 6d 70 25 21 30 3d 77  |e$)...!wimp%!0=w|
00001870  69 6e 64 6f 77 25 3a 77  69 6d 70 25 21 34 3d 69  |indow%:wimp%!4=i|
00001880  63 6f 6e 25 0d 08 ca 21  c8 99 20 22 57 69 6d 70  |con%...!.. "Wimp|
00001890  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
000018a0  77 69 6d 70 25 0d 08 d4  1f c8 99 20 22 57 69 6d  |wimp%...... "Wim|
000018b0  70 5f 44 65 6c 65 74 65  49 63 6f 6e 22 2c 2c 77  |p_DeleteIcon",,w|
000018c0  69 6d 70 25 0d 08 de 3d  77 69 6d 70 25 21 34 3d  |imp%...=wimp%!4=|
000018d0  77 69 6d 70 25 21 38 20  20 20 3a 20 77 69 6d 70  |wimp%!8   : wimp|
000018e0  25 21 38 3d 77 69 6d 70  25 21 31 32 20 20 3a 20  |%!8=wimp%!12  : |
000018f0  77 69 6d 70 25 21 31 32  3d 77 69 6d 70 25 21 31  |wimp%!12=wimp%!1|
00001900  36 0d 08 e8 3f 77 69 6d  70 25 21 31 36 3d 77 69  |6...?wimp%!16=wi|
00001910  6d 70 25 21 32 30 20 3a  20 77 69 6d 70 25 21 32  |mp%!20 : wimp%!2|
00001920  30 3d 77 69 6d 70 25 21  32 34 20 3a 20 24 28 77  |0=wimp%!24 : $(w|
00001930  69 6d 70 25 2b 32 34 29  3d 73 70 72 69 74 65 24  |imp%+24)=sprite$|
00001940  0d 08 f2 27 c8 99 20 22  57 69 6d 70 5f 43 72 65  |...'.. "Wimp_Cre|
00001950  61 74 65 49 63 6f 6e 22  2c 2c 77 69 6d 70 25 20  |ateIcon",,wimp% |
00001960  b8 20 69 63 6f 6e 25 0d  08 fc 0a 3d 69 63 6f 6e  |. icon%....=icon|
00001970  25 0d 09 06 05 3a 0d 09  10 2c dd 20 f2 57 69 6d  |%....:...,. .Wim|
00001980  70 5f 49 63 6f 6e 50 75  74 54 65 78 74 28 77 69  |p_IconPutText(wi|
00001990  6e 64 6f 77 25 2c 69 63  6f 6e 25 2c 74 65 78 74  |ndow%,icon%,text|
000019a0  24 29 0d 09 1a 23 77 69  6d 70 25 21 30 3d 77 69  |$)...#wimp%!0=wi|
000019b0  6e 64 6f 77 25 20 3a 20  77 69 6d 70 25 21 34 3d  |ndow% : wimp%!4=|
000019c0  69 63 6f 6e 25 0d 09 24  21 c8 99 20 22 57 69 6d  |icon%..$!.. "Wim|
000019d0  70 5f 47 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_GetIconState",|
000019e0  2c 77 69 6d 70 25 0d 09  2e 37 e7 20 28 28 77 69  |,wimp%...7. ((wi|
000019f0  6d 70 25 21 32 34 29 20  80 20 26 31 30 30 29 3d  |mp%!24) . &100)=|
00001a00  30 20 85 20 31 2c 22 49  63 6f 6e 20 69 73 6e 27  |0 . 1,"Icon isn'|
00001a10  74 20 69 6e 64 69 72 65  63 74 65 64 22 0d 09 38  |t indirected"..8|
00001a20  15 24 28 77 69 6d 70 25  21 32 38 29 3d 74 65 78  |.$(wimp%!28)=tex|
00001a30  74 24 0d 09 42 23 77 69  6d 70 25 21 30 3d 77 69  |t$..B#wimp%!0=wi|
00001a40  6e 64 6f 77 25 20 3a 20  77 69 6d 70 25 21 34 3d  |ndow% : wimp%!4=|
00001a50  69 63 6f 6e 25 0d 09 4c  1a 77 69 6d 70 25 21 38  |icon%..L.wimp%!8|
00001a60  3d 30 20 3a 20 77 69 6d  70 25 21 31 32 3d 30 0d  |=0 : wimp%!12=0.|
00001a70  09 56 21 c8 99 20 22 57  69 6d 70 5f 53 65 74 49  |.V!.. "Wimp_SetI|
00001a80  63 6f 6e 53 74 61 74 65  22 2c 2c 77 69 6d 70 25  |conState",,wimp%|
00001a90  0d 09 60 05 e1 0d 09 6a  05 3a 0d 09 74 1e dd 20  |..`....j.:..t.. |
00001aa0  f2 57 69 6d 70 5f 49 63  6f 6e 49 6e 74 65 72 66  |.Wimp_IconInterf|
00001ab0  61 63 65 53 74 61 72 74  0d 09 7e 1e c8 99 22 57  |aceStart..~..."W|
00001ac0  69 6d 70 5f 42 6f 72 64  65 72 49 63 6f 6e 22 2c  |imp_BorderIcon",|
00001ad0  2c 77 69 6d 70 25 0d 09  88 05 e1 0d 09 92 05 3a  |,wimp%.........:|
00001ae0  0d 09 9c 1f dd 20 f2 57  69 6d 70 5f 49 63 6f 6e  |..... .Wimp_Icon|
00001af0  49 6e 74 65 72 66 61 63  65 46 69 6e 69 73 68 0d  |InterfaceFinish.|
00001b00  09 a6 0d 77 69 6d 70 25  21 38 3d 30 0d 09 b0 1e  |...wimp%!8=0....|
00001b10  c8 99 22 57 69 6d 70 5f  42 6f 72 64 65 72 49 63  |.."Wimp_BorderIc|
00001b20  6f 6e 22 2c 2c 77 69 6d  70 25 0d 09 ba 05 e1 0d  |on",,wimp%......|
00001b30  09 c4 05 3a 0d 09 ce 06  f4 7c 0d 09 d8 06 f4 7c  |...:.....|.....||
00001b40  0d 09 e2 06 f4 7c 0d 09  ec 31 f4 7c 20 20 20 20  |.....|...1.|    |
00001b50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 2d  |              --|
00001b60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001b70  2d 2d 2d 2d 2d 2d 2d 0d  09 f6 28 f4 7c 20 20 20  |-------...(.|   |
00001b80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001b90  20 20 20 20 20 20 20 33  2e a0 4d 65 6e 75 73 0d  |       3..Menus.|
00001ba0  0a 00 31 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..1.|           |
00001bb0  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
00001bc0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001bd0  0d 0a 0a 06 f4 7c 0d 0a  14 06 f4 7c 0d 0a 1e 3f  |.....|.....|...?|
00001be0  f4 7c 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |.|           ---|
00001bf0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001c10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 0a 28 06 f4  |-----------..(..|
00001c20  7c 0d 0a 32 28 f4 7c 20  20 20 20 20 20 20 20 20  ||..2(.|         |
00001c30  20 20 20 20 20 20 20 20  20 20 20 20 20 50 72 6f  |             Pro|
00001c40  63 65 64 75 72 65 73 20  3a 0d 0a 3c 06 f4 7c 0d  |cedures :..<..|.|
00001c50  0a 46 06 f4 7c 0d 0a 50  2e f4 7c 20 20 20 20 20  |.F..|..P..|     |
00001c60  20 20 20 20 20 20 20 50  52 4f 43 57 69 6d 70 5f  |       PROCWimp_|
00001c70  4d 65 6e 75 41 64 6a 75  73 74 4f 6e 28 6d 65 6e  |MenuAdjustOn(men|
00001c80  75 25 29 0d 0a 5a 2b f4  7c 20 20 20 20 20 20 20  |u%)..Z+.|       |
00001c90  20 20 20 20 20 46 4e 57  69 6d 70 5f 4d 65 6e 75  |     FNWimp_Menu|
00001ca0  43 68 6f 69 63 65 28 6c  65 76 65 6c 25 29 0d 0a  |Choice(level%)..|
00001cb0  64 2a f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |d*.|            |
00001cc0  46 4e 57 69 6d 70 5f 4d  65 6e 75 43 72 65 61 74  |FNWimp_MenuCreat|
00001cd0  65 28 6d 65 6e 75 24 29  0d 0a 6e 24 f4 7c 20 20  |e(menu$)..n$.|  |
00001ce0  20 20 20 20 20 20 20 20  20 20 46 4e 57 69 6d 70  |          FNWimp|
00001cf0  5f 4d 65 6e 75 43 6f 6c  6f 75 72 73 0d 0a 78 32  |_MenuColours..x2|
00001d00  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 46 4e  |.|            FN|
00001d10  57 69 6d 70 5f 4d 65 6e  75 43 72 65 61 74 65 43  |Wimp_MenuCreateC|
00001d20  6f 6c 6f 75 72 73 28 74  69 74 6c 65 24 29 0d 0a  |olours(title$)..|
00001d30  82 2f f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |./.|            |
00001d40  46 4e 57 69 6d 70 5f 4d  65 6e 75 4e 6f 4f 66 45  |FNWimp_MenuNoOfE|
00001d50  6e 74 72 69 65 73 28 6d  65 6e 75 24 29 0d 0a 8c  |ntries(menu$)...|
00001d60  44 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 50  |D.|            P|
00001d70  52 4f 43 57 69 6d 70 5f  4d 65 6e 75 42 61 63 6b  |ROCWimp_MenuBack|
00001d80  47 72 6f 75 6e 64 43 6f  6c 6f 75 72 28 6d 65 6e  |GroundColour(men|
00001d90  75 25 2c 69 74 65 6d 25  2c 63 6f 6c 6f 75 72 25  |u%,item%,colour%|
00001da0  29 0d 0a 96 32 f4 7c 20  20 20 20 20 20 20 20 20  |)...2.|         |
00001db0  20 20 20 50 52 4f 43 57  69 6d 70 5f 4d 65 6e 75  |   PROCWimp_Menu|
00001dc0  43 65 6e 74 72 65 28 6d  65 6e 75 25 2c 69 74 65  |Centre(menu%,ite|
00001dd0  6d 25 29 0d 0a a0 24 f4  7c 20 20 20 20 20 20 20  |m%)...$.|       |
00001de0  20 20 20 20 20 50 52 4f  43 57 69 6d 70 5f 4d 65  |     PROCWimp_Me|
00001df0  6e 75 43 6c 6f 73 65 0d  0a aa 33 f4 7c 20 20 20  |nuClose...3.|   |
00001e00  20 20 20 20 20 20 20 20  20 50 52 4f 43 57 69 6d  |         PROCWim|
00001e10  70 5f 4d 65 6e 75 44 69  73 61 62 6c 65 28 6d 65  |p_MenuDisable(me|
00001e20  6e 75 25 2c 69 74 65 6d  25 29 0d 0a b4 36 f4 7c  |nu%,item%)...6.||
00001e30  20 20 20 20 20 20 20 20  20 20 20 20 50 52 4f 43  |            PROC|
00001e40  57 69 6d 70 5f 4d 65 6e  75 44 6f 74 74 65 64 4c  |Wimp_MenuDottedL|
00001e50  69 6e 65 28 6d 65 6e 75  25 2c 69 74 65 6d 25 29  |ine(menu%,item%)|
00001e60  0d 0a be 32 f4 7c 20 20  20 20 20 20 20 20 20 20  |...2.|          |
00001e70  20 20 50 52 4f 43 57 69  6d 70 5f 4d 65 6e 75 45  |  PROCWimp_MenuE|
00001e80  6e 61 62 6c 65 28 6d 65  6e 75 25 2c 69 74 65 6d  |nable(menu%,item|
00001e90  25 29 0d 0a c8 44 f4 7c  20 20 20 20 20 20 20 20  |%)...D.|        |
00001ea0  20 20 20 20 50 52 4f 43  57 69 6d 70 5f 4d 65 6e  |    PROCWimp_Men|
00001eb0  75 46 6f 72 65 67 72 6f  75 6e 64 43 6f 6c 6f 75  |uForegroundColou|
00001ec0  72 28 6d 65 6e 75 25 2c  69 74 65 6d 25 2c 63 6f  |r(menu%,item%,co|
00001ed0  6c 6f 75 72 25 29 0d 0a  d2 38 f4 7c 20 20 20 20  |lour%)...8.|    |
00001ee0  20 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  |        PROCWimp|
00001ef0  5f 4d 65 6e 75 47 6c 75  65 28 6d 65 6e 75 31 25  |_MenuGlue(menu1%|
00001f00  2c 69 74 65 6d 25 2c 6d  65 6e 75 32 25 29 0d 0a  |,item%,menu2%)..|
00001f10  dc 36 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.6.|            |
00001f20  50 52 4f 43 57 69 6d 70  5f 4d 65 6e 75 49 74 65  |PROCWimp_MenuIte|
00001f30  6d 28 6d 65 6e 75 25 2c  69 74 65 6d 25 2c 69 74  |m(menu%,item%,it|
00001f40  65 6d 24 29 0d 0a e6 33  f4 7c 20 20 20 20 20 20  |em$)...3.|      |
00001f50  20 20 20 20 20 20 50 52  4f 43 57 69 6d 70 5f 4d  |      PROCWimp_M|
00001f60  65 6e 75 4d 65 73 73 61  67 65 28 6d 65 6e 75 25  |enuMessage(menu%|
00001f70  2c 69 74 65 6d 25 29 0d  0a f0 31 f4 7c 20 20 20  |,item%)...1.|   |
00001f80  20 20 20 20 20 20 20 20  20 50 52 4f 43 57 69 6d  |         PROCWim|
00001f90  70 5f 4d 65 6e 75 50 6f  70 55 70 28 4d 65 6e 75  |p_MenuPopUp(Menu|
00001fa0  25 2c 78 25 2c 79 25 29  0d 0a fa 2e f4 7c 20 20  |%,x%,y%).....|  |
00001fb0  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00001fc0  6d 70 5f 4d 65 6e 75 50  6f 70 55 70 42 61 72 28  |mp_MenuPopUpBar(|
00001fd0  78 25 2c 79 25 29 0d 0b  04 30 f4 7c 20 20 20 20  |x%,y%)...0.|    |
00001fe0  20 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  |        PROCWimp|
00001ff0  5f 4d 65 6e 75 54 69 63  6b 28 6d 65 6e 75 25 2c  |_MenuTick(menu%,|
00002000  69 74 65 6d 25 29 0d 0b  0e 32 f4 7c 20 20 20 20  |item%)...2.|    |
00002010  20 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  |        PROCWimp|
00002020  5f 4d 65 6e 75 54 69 74  6c 65 28 6d 65 6e 75 25  |_MenuTitle(menu%|
00002030  2c 74 69 74 6c 65 24 29  0d 0b 18 4c f4 7c 20 20  |,title$)...L.|  |
00002040  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00002050  6d 70 5f 4d 65 6e 75 57  72 69 74 65 28 6d 65 6e  |mp_MenuWrite(men|
00002060  75 25 2c 69 74 65 6d 25  2c 62 75 66 66 65 72 25  |u%,item%,buffer%|
00002070  2c 76 61 6c 25 2c 42 75  66 66 65 72 4c 65 6e 67  |,val%,BufferLeng|
00002080  74 68 25 29 0d 0b 22 06  f4 7c 0d 0b 2c 3f f4 7c  |th%).."..|..,?.||
00002090  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
000020a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000020c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 0b 36 06 f4 7c 0d  |---------..6..|.|
000020d0  0b 40 05 3a 0d 0b 4a 1f  dd 20 f2 57 69 6d 70 5f  |.@.:..J.. .Wimp_|
000020e0  4d 65 6e 75 41 64 6a 75  73 74 4f 6e 28 6d 65 6e  |MenuAdjustOn(men|
000020f0  75 25 29 0d 0b 54 2c c8  99 20 22 57 69 6d 70 5f  |u%)..T,.. "Wimp_|
00002100  47 65 74 50 6f 69 6e 74  65 72 49 6e 66 6f 22 2c  |GetPointerInfo",|
00002110  2c 70 6f 69 6e 74 65 72  5f 62 6c 6f 63 6b 25 0d  |,pointer_block%.|
00002120  0b 5e 5e e7 20 28 28 70  6f 69 6e 74 65 72 5f 62  |.^^. ((pointer_b|
00002130  6c 6f 63 6b 25 21 38 29  80 31 29 3d 31 20 8c 20  |lock%!8).1)=1 . |
00002140  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  |.. "Wimp_CreateM|
00002150  65 6e 75 22 2c 2c 6d 65  6e 75 25 2c 70 6f 69 6e  |enu",,menu%,poin|
00002160  74 65 72 5f 62 6c 6f 63  6b 25 21 30 2c 70 6f 69  |ter_block%!0,poi|
00002170  6e 74 65 72 5f 62 6c 6f  63 6b 25 21 34 0d 0b 68  |nter_block%!4..h|
00002180  05 e1 0d 0b 72 05 3a 0d  0b 7c 1e dd 20 a4 57 69  |....r.:..|.. .Wi|
00002190  6d 70 5f 4d 65 6e 75 43  68 6f 69 63 65 28 6c 65  |mp_MenuChoice(le|
000021a0  76 65 6c 25 29 0d 0b 86  19 3d 28 77 69 6d 70 25  |vel%)....=(wimp%|
000021b0  21 28 34 2a 6c 65 76 65  6c 25 29 29 2b 31 0d 0b  |!(4*level%))+1..|
000021c0  90 05 3a 0d 0b 9a 1d dd  20 a4 57 69 6d 70 5f 4d  |..:..... .Wimp_M|
000021d0  65 6e 75 43 72 65 61 74  65 28 6d 65 6e 75 24 29  |enuCreate(menu$)|
000021e0  0d 0b a4 29 e7 20 6d 65  6e 75 24 3d 22 43 6f 6c  |...). menu$="Col|
000021f0  6f 75 72 73 22 20 8c 3d  a4 57 69 6d 70 5f 4d 65  |ours" .=.Wimp_Me|
00002200  6e 75 43 6f 6c 6f 75 72  73 0d 0b ae 27 ea 20 6d  |nuColours...'. m|
00002210  65 6e 75 25 2c 69 6e 64  65 78 25 2c 77 69 64 74  |enu%,index%,widt|
00002220  68 25 2c 6c 65 6e 67 74  68 25 2c 6b 25 2c 73 25  |h%,length%,k%,s%|
00002230  0d 0b b8 2e de 20 6d 65  6e 75 25 20 32 38 2b a4  |..... menu% 28+.|
00002240  57 69 6d 70 5f 4d 65 6e  75 4e 6f 4f 66 45 6e 74  |Wimp_MenuNoOfEnt|
00002250  72 69 65 73 28 6d 65 6e  75 24 29 2a 32 34 0d 0b  |ries(menu$)*24..|
00002260  c2 37 6d 65 6e 75 25 3f  31 32 3d 37 20 20 20 3a  |.7menu%?12=7   :|
00002270  20 6d 65 6e 75 25 3f 31  33 3d 32 20 20 3a 20 6d  | menu%?13=2  : m|
00002280  65 6e 75 25 3f 31 34 3d  37 20 3a 6d 65 6e 75 25  |enu%?14=7 :menu%|
00002290  3f 31 35 3d 30 0d 0b cc  2b 6d 65 6e 75 25 21 31  |?15=0...+menu%!1|
000022a0  36 3d 31 34 30 20 3a 20  6d 65 6e 75 25 21 32 30  |6=140 : menu%!20|
000022b0  3d 34 34 20 3a 20 6d 65  6e 75 25 21 32 34 3d 30  |=44 : menu%!24=0|
000022c0  0d 0b d6 13 69 6e 64 65  78 25 3d 6d 65 6e 75 25  |....index%=menu%|
000022d0  2b 32 38 0d 0b e0 20 24  6d 65 6e 75 25 3d c0 6d  |+28... $menu%=.m|
000022e0  65 6e 75 24 2c a7 6d 65  6e 75 24 2c 22 5c 22 29  |enu$,.menu$,"\")|
000022f0  2d 31 29 0d 0b ea 23 77  69 64 74 68 25 3d a9 28  |-1)...#width%=.(|
00002300  c0 6d 65 6e 75 24 2c a7  6d 65 6e 75 24 2c 22 5c  |.menu$,.menu$,"\|
00002310  22 29 2d 31 29 29 0d 0b  f4 24 6d 65 6e 75 24 2b  |")-1))...$menu$+|
00002320  3d 22 5c 22 20 3a 20 4d  65 6e 75 5f 4e 6f 4f 66  |="\" : Menu_NoOf|
00002330  45 6e 74 72 69 65 73 25  3d 30 0d 0b fe 10 c8 95  |Entries%=0......|
00002340  20 6d 65 6e 75 24 3c 3e  22 22 0d 0c 08 1f 6d 65  | menu$<>""....me|
00002350  6e 75 24 3d c1 6d 65 6e  75 24 2c a7 6d 65 6e 75  |nu$=.menu$,.menu|
00002360  24 2c 22 5c 22 29 2b 31  29 0d 0c 12 0e c8 8e 20  |$,"\")+1)...... |
00002370  6d 65 6e 75 24 20 ca 0d  0c 1c 09 20 c9 20 22 22  |menu$ ..... . ""|
00002380  0d 0c 26 08 20 7f 20 3a  0d 0c 30 31 20 20 21 69  |..&. . :..01  !i|
00002390  6e 64 65 78 25 3d 30 20  3a 20 69 6e 64 65 78 25  |ndex%=0 : index%|
000023a0  21 34 3d 2d 31 20 3a 20  69 6e 64 65 78 25 21 38  |!4=-1 : index%!8|
000023b0  3d 26 37 30 30 30 30 32  31 0d 0c 3a 1b 20 20 6c  |=&7000021..:.  l|
000023c0  65 6e 67 74 68 25 3d a7  6d 65 6e 75 24 2c 22 5c  |ength%=.menu$,"\|
000023d0  22 29 2d 31 0d 0c 44 1e  20 20 6b 25 3d a7 c0 6d  |")-1..D.  k%=..m|
000023e0  65 6e 75 24 2c 6c 65 6e  67 74 68 25 29 2c 22 3e  |enu$,length%),">|
000023f0  22 29 0d 0c 4e 0d 20 20  c8 8e 20 6b 25 20 ca 0d  |")..N.  .. k% ..|
00002400  0c 58 0a 20 20 20 c9 20  30 0d 0c 62 08 20 20 20  |.X.   . 0..b.   |
00002410  7f 0d 0c 6c 25 20 20 20  20 73 25 3d a0 28 c1 6d  |...l%    s%=.(.m|
00002420  65 6e 75 24 2c 6b 25 2b  31 2c 6c 65 6e 67 74 68  |enu$,k%+1,length|
00002430  25 2d 6b 25 29 29 0d 0c  76 13 20 20 20 20 69 6e  |%-k%))..v.    in|
00002440  64 65 78 25 21 34 3d 73  25 0d 0c 80 14 20 20 20  |dex%!4=s%....   |
00002450  20 6c 65 6e 67 74 68 25  3d 6b 25 2d 31 0d 0c 8a  | length%=k%-1...|
00002460  07 20 20 cb 0d 0c 94 22  20 20 24 28 69 6e 64 65  |.  ...."  $(inde|
00002470  78 25 2b 31 32 29 3d c0  6d 65 6e 75 24 2c 6c 65  |x%+12)=.menu$,le|
00002480  6e 67 74 68 25 29 0d 0c  9e 27 20 20 e7 20 6c 65  |ngth%)...'  . le|
00002490  6e 67 74 68 25 3e 77 69  64 74 68 25 20 8c 20 77  |ngth%>width% . w|
000024a0  69 64 74 68 25 3d 6c 65  6e 67 74 68 25 0d 0c a8  |idth%=length%...|
000024b0  10 20 20 69 6e 64 65 78  25 2b 3d 32 34 0d 0c b2  |.  index%+=24...|
000024c0  05 cb 0d 0c bc 05 ce 0d  0c c6 1a 6d 65 6e 75 25  |...........menu%|
000024d0  21 31 36 3d 31 36 2a 28  77 69 64 74 68 25 2b 31  |!16=16*(width%+1|
000024e0  29 0d 0c d0 28 69 6e 64  65 78 25 21 2d 32 34 3d  |)...(index%!-24=|
000024f0  69 6e 64 65 78 25 21 2d  32 34 20 84 20 26 38 30  |index%!-24 . &80|
00002500  20 3a 20 3d 6d 65 6e 75  25 0d 0c da 05 3a 0d 0c  | : =menu%....:..|
00002510  e4 17 dd 20 a4 57 69 6d  70 5f 4d 65 6e 75 43 6f  |... .Wimp_MenuCo|
00002520  6c 6f 75 72 73 0d 0c ee  21 3d a4 57 69 6d 70 5f  |lours...!=.Wimp_|
00002530  4d 65 6e 75 43 72 65 61  74 65 43 6f 6c 6f 75 72  |MenuCreateColour|
00002540  73 28 22 20 22 29 0d 0c  f8 05 3a 0d 0d 02 25 dd  |s(" ")....:...%.|
00002550  20 a4 57 69 6d 70 5f 4d  65 6e 75 43 72 65 61 74  | .Wimp_MenuCreat|
00002560  65 43 6f 6c 6f 75 72 73  28 74 69 74 6c 65 24 29  |eColours(title$)|
00002570  0d 0d 0c 13 ea 20 78 24  2c 6d 65 6e 25 2c 6a 25  |..... x$,men%,j%|
00002580  2c 69 25 0d 0d 16 36 78  24 3d 74 69 74 6c 65 24  |,i%...6x$=title$|
00002590  2b 22 5c 30 5c 31 5c 32  5c 33 5c 34 5c 35 5c 36  |+"\0\1\2\3\4\5\6|
000025a0  5c 37 5c 38 5c 39 5c 31  30 5c 31 31 5c 31 32 5c  |\7\8\9\10\11\12\|
000025b0  31 33 5c 31 34 5c 31 35  22 0d 0d 20 1d 6d 65 6e  |13\14\15".. .men|
000025c0  25 3d a4 57 69 6d 70 5f  4d 65 6e 75 43 72 65 61  |%=.Wimp_MenuCrea|
000025d0  74 65 28 78 24 29 0d 0d  2a 0f e3 20 69 25 3d 30  |te(x$)..*.. i%=0|
000025e0  20 b8 20 31 35 0d 0d 34  0a c8 8e 20 b9 20 ca 0d  | . 15..4... . ..|
000025f0  0d 3e 28 c9 20 69 25 3c  34 2c 69 25 3d 39 2c 69  |.>(. i%<4,i%=9,i|
00002600  25 3d 31 32 2c 69 25 3d  31 34 2c 69 25 3d 31 35  |%=12,i%=14,i%=15|
00002610  20 3a 20 6a 25 3d 37 0d  0d 48 0c 7f 20 3a 20 6a  | : j%=7..H.. : j|
00002620  25 3d 30 0d 0d 52 05 cb  0d 0d 5c 1c 6d 65 6e 25  |%=0..R....\.men%|
00002630  3f 28 33 39 2b 69 25 2a  32 34 29 3d 69 25 2a 31  |?(39+i%*24)=i%*1|
00002640  36 2b 6a 25 0d 0d 66 1f  f2 57 69 6d 70 5f 4d 65  |6+j%..f..Wimp_Me|
00002650  6e 75 43 65 6e 74 72 65  28 6d 65 6e 25 2c 69 25  |nuCentre(men%,i%|
00002660  2b 31 29 0d 0d 70 05 ed  0d 0d 7a 09 3d 6d 65 6e  |+1)..p....z.=men|
00002670  25 0d 0d 84 05 3a 0d 0d  8e 22 dd 20 a4 57 69 6d  |%....:...". .Wim|
00002680  70 5f 4d 65 6e 75 4e 6f  4f 66 45 6e 74 72 69 65  |p_MenuNoOfEntrie|
00002690  73 28 6d 65 6e 75 24 29  0d 0d 98 1a ea 20 6e 25  |s(menu$)..... n%|
000026a0  20 2c 6a 25 20 3a 20 6e  25 3d 30 20 3a 20 6a 25  | ,j% : n%=0 : j%|
000026b0  3d 30 0d 0d a2 05 f5 0d  0d ac 17 6a 25 3d a7 6d  |=0.........j%=.m|
000026c0  65 6e 75 24 2c 22 5c 22  2c 6a 25 2b 31 29 0d 0d  |enu$,"\",j%+1)..|
000026d0  b6 13 e7 20 6a 25 3c 3e  30 20 8c 20 6e 25 2b 3d  |... j%<>0 . n%+=|
000026e0  31 0d 0d c0 0a fd 20 6a  25 3d 30 0d 0d ca 07 3d  |1..... j%=0....=|
000026f0  6e 25 0d 0d d4 05 3a 0d  0d de 35 dd 20 f2 57 69  |n%....:...5. .Wi|
00002700  6d 70 5f 4d 65 6e 75 42  61 63 6b 47 72 6f 75 6e  |mp_MenuBackGroun|
00002710  64 43 6f 6c 6f 75 72 28  6d 65 6e 75 25 2c 69 74  |dColour(menu%,it|
00002720  65 6d 25 2c 63 6f 6c 6f  75 72 25 29 0d 0d e8 0e  |em%,colour%)....|
00002730  ea 20 66 6f 72 65 25 2c  69 25 0d 0d f2 26 66 6f  |. fore%,i%...&fo|
00002740  72 65 25 3d 28 6d 65 6e  75 25 3f 28 33 39 2b 28  |re%=(menu%?(39+(|
00002750  69 74 65 6d 25 2d 31 29  2a 32 34 29 29 83 31 36  |item%-1)*24)).16|
00002760  0d 0d fc 28 69 25 3d 28  28 6d 65 6e 75 25 3f 28  |...(i%=((menu%?(|
00002770  33 39 2b 28 69 74 65 6d  25 2d 31 29 2a 32 34 29  |39+(item%-1)*24)|
00002780  29 81 31 36 29 83 31 36  0d 0e 06 2f 6d 65 6e 75  |).16).16.../menu|
00002790  25 3f 28 33 39 2b 28 69  74 65 6d 25 2d 31 29 2a  |%?(39+(item%-1)*|
000027a0  32 34 29 3d 66 6f 72 65  25 2b 31 36 2a 63 6f 6c  |24)=fore%+16*col|
000027b0  6f 75 72 25 2b 69 25 0d  0e 10 05 e1 0d 0e 1a 05  |our%+i%.........|
000027c0  3a 0d 0e 24 23 dd 20 f2  57 69 6d 70 5f 4d 65 6e  |:..$#. .Wimp_Men|
000027d0  75 43 65 6e 74 72 65 28  6d 65 6e 75 25 2c 69 74  |uCentre(menu%,it|
000027e0  65 6d 25 29 0d 0e 2e 3a  6d 65 6e 75 25 21 28 33  |em%)...:menu%!(3|
000027f0  36 2b 28 69 74 65 6d 25  2d 31 29 2a 32 34 29 3d  |6+(item%-1)*24)=|
00002800  6d 65 6e 75 25 21 28 33  36 2b 28 69 74 65 6d 25  |menu%!(36+(item%|
00002810  2d 31 29 2a 32 34 29 84  28 31 3c 3c 33 29 0d 0e  |-1)*24).(1<<3)..|
00002820  38 05 e1 0d 0e 42 05 3a  0d 0e 4c 15 dd 20 f2 57  |8....B.:..L.. .W|
00002830  69 6d 70 5f 4d 65 6e 75  43 6c 6f 73 65 0d 0e 56  |imp_MenuClose..V|
00002840  1b c8 99 20 22 57 69 6d  70 5f 43 72 65 61 74 65  |... "Wimp_Create|
00002850  4d 65 6e 75 22 2c 2d 31  0d 0e 60 05 e1 0d 0e 6a  |Menu",-1..`....j|
00002860  05 3a 0d 0e 74 24 dd 20  f2 57 69 6d 70 5f 4d 65  |.:..t$. .Wimp_Me|
00002870  6e 75 44 69 73 61 62 6c  65 28 6d 65 6e 75 25 2c  |nuDisable(menu%,|
00002880  69 74 65 6d 25 29 0d 0e  7e 3b 6d 65 6e 75 25 21  |item%)..~;menu%!|
00002890  28 33 36 2b 28 69 74 65  6d 25 2d 31 29 2a 32 34  |(36+(item%-1)*24|
000028a0  29 3d 6d 65 6e 75 25 21  28 33 36 2b 28 69 74 65  |)=menu%!(36+(ite|
000028b0  6d 25 2d 31 29 2a 32 34  29 84 28 31 3c 3c 32 32  |m%-1)*24).(1<<22|
000028c0  29 0d 0e 88 05 e1 0d 0e  92 05 3a 0d 0e 9c 27 dd  |).........:...'.|
000028d0  20 f2 57 69 6d 70 5f 4d  65 6e 75 44 6f 74 74 65  | .Wimp_MenuDotte|
000028e0  64 4c 69 6e 65 28 6d 65  6e 75 25 2c 69 74 65 6d  |dLine(menu%,item|
000028f0  25 29 0d 0e a6 37 6d 65  6e 75 25 21 28 32 38 2b  |%)...7menu%!(28+|
00002900  28 69 74 65 6d 25 2d 31  29 2a 32 34 29 3d 28 6d  |(item%-1)*24)=(m|
00002910  65 6e 75 25 21 28 32 38  2b 28 69 74 65 6d 25 2d  |enu%!(28+(item%-|
00002920  31 29 2a 32 34 29 29 84  32 0d 0e b0 05 e1 0d 0e  |1)*24)).2.......|
00002930  ba 05 3a 0d 0e c4 23 dd  20 f2 57 69 6d 70 5f 4d  |..:...#. .Wimp_M|
00002940  65 6e 75 45 6e 61 62 6c  65 28 6d 65 6e 75 25 2c  |enuEnable(menu%,|
00002950  69 74 65 6d 25 29 0d 0e  ce 22 f2 57 69 6d 70 5f  |item%)...".Wimp_|
00002960  4d 65 6e 75 44 69 73 61  62 6c 65 28 6d 65 6e 75  |MenuDisable(menu|
00002970  25 2c 69 74 65 6d 25 29  0d 0e d8 3b 6d 65 6e 75  |%,item%)...;menu|
00002980  25 21 28 33 36 2b 28 69  74 65 6d 25 2d 31 29 2a  |%!(36+(item%-1)*|
00002990  32 34 29 3d 6d 65 6e 75  25 21 28 33 36 2b 28 69  |24)=menu%!(36+(i|
000029a0  74 65 6d 25 2d 31 29 2a  32 34 29 82 28 31 3c 3c  |tem%-1)*24).(1<<|
000029b0  32 32 29 0d 0e e2 05 e1  0d 0e ec 05 3a 0d 0e f6  |22).........:...|
000029c0  35 dd 20 f2 57 69 6d 70  5f 4d 65 6e 75 46 6f 72  |5. .Wimp_MenuFor|
000029d0  65 67 72 6f 75 6e 64 43  6f 6c 6f 75 72 28 6d 65  |egroundColour(me|
000029e0  6e 75 25 2c 69 74 65 6d  25 2c 63 6f 6c 6f 75 72  |nu%,item%,colour|
000029f0  25 29 0d 0f 00 45 6d 65  6e 75 25 3f 28 33 39 2b  |%)...Emenu%?(39+|
00002a00  28 69 74 65 6d 25 2d 31  29 2a 32 34 29 3d 63 6f  |(item%-1)*24)=co|
00002a10  6c 6f 75 72 25 2b 31 36  2a 28 28 6d 65 6e 75 25  |lour%+16*((menu%|
00002a20  3f 28 33 39 2b 28 69 74  65 6d 25 2d 31 29 2a 32  |?(39+(item%-1)*2|
00002a30  34 29 29 81 31 36 29 0d  0f 0a 05 e1 0d 0f 14 05  |4)).16).........|
00002a40  3a 0d 0f 1e 29 dd 20 f2  57 69 6d 70 5f 4d 65 6e  |:...). .Wimp_Men|
00002a50  75 47 6c 75 65 28 6d 65  6e 75 31 25 2c 69 74 65  |uGlue(menu1%,ite|
00002a60  6d 25 2c 6d 65 6e 75 32  25 29 0d 0f 28 1e 6d 65  |m%,menu2%)..(.me|
00002a70  6e 75 31 25 21 28 38 2b  69 74 65 6d 25 2a 32 34  |nu1%!(8+item%*24|
00002a80  29 3d 6d 65 6e 75 32 25  0d 0f 32 05 e1 0d 0f 3c  |)=menu2%..2....<|
00002a90  05 3a 0d 0f 46 27 dd 20  f2 57 69 6d 70 5f 4d 65  |.:..F'. .Wimp_Me|
00002aa0  6e 75 49 74 65 6d 28 6d  65 6e 75 25 2c 69 74 65  |nuItem(menu%,ite|
00002ab0  6d 25 2c 69 74 65 6d 24  29 0d 0f 50 2c 24 28 6d  |m%,item$)..P,$(m|
00002ac0  65 6e 75 25 2b 28 34 30  2b 28 69 74 65 6d 25 2d  |enu%+(40+(item%-|
00002ad0  31 29 2a 32 34 29 29 3d  c0 69 74 65 6d 24 2c 31  |1)*24))=.item$,1|
00002ae0  32 29 2b bd 30 0d 0f 5a  05 e1 0d 0f 64 05 3a 0d  |2)+.0..Z....d.:.|
00002af0  0f 6e 24 dd 20 f2 57 69  6d 70 5f 4d 65 6e 75 4d  |.n$. .Wimp_MenuM|
00002b00  65 73 73 61 67 65 28 6d  65 6e 75 25 2c 69 74 65  |essage(menu%,ite|
00002b10  6d 25 29 0d 0f 78 3c 6d  65 6e 75 25 21 28 32 38  |m%)..x<menu%!(28|
00002b20  2b 28 69 74 65 6d 25 2d  31 29 2a 32 34 29 3d 28  |+(item%-1)*24)=(|
00002b30  6d 65 6e 75 25 21 28 32  38 2b 28 69 74 65 6d 25  |menu%!(28+(item%|
00002b40  2d 31 29 2a 32 34 29 29  82 28 31 3c 3c 33 29 0d  |-1)*24)).(1<<3).|
00002b50  0f 82 05 e1 0d 0f 8c 05  3a 0d 0f 96 22 dd 20 f2  |........:...". .|
00002b60  57 69 6d 70 5f 4d 65 6e  75 50 6f 70 55 70 28 4d  |Wimp_MenuPopUp(M|
00002b70  65 6e 75 25 2c 78 25 2c  79 25 29 0d 0f a0 0f 6d  |enu%,x%,y%)....m|
00002b80  65 6e 75 25 3d 4d 65 6e  75 25 0d 0f aa 2b c8 99  |enu%=Menu%...+..|
00002b90  20 22 57 69 6d 70 5f 43  72 65 61 74 65 4d 65 6e  | "Wimp_CreateMen|
00002ba0  75 22 2c 2c 6d 65 6e 75  25 2c 78 25 2d 36 34 2c  |u",,menu%,x%-64,|
00002bb0  79 25 2b 32 30 0d 0f b4  05 e1 0d 0f be 05 3a 0d  |y%+20.........:.|
00002bc0  0f c8 1f dd 20 f2 57 69  6d 70 5f 4d 65 6e 75 50  |.... .Wimp_MenuP|
00002bd0  6f 70 55 70 42 61 72 28  78 25 2c 79 25 29 0d 0f  |opUpBar(x%,y%)..|
00002be0  d2 0f ea 20 6e 25 20 3a  20 6e 25 3d 30 0d 0f dc  |... n% : n%=0...|
00002bf0  2b c8 95 20 28 28 42 61  72 5f 4d 65 6e 75 25 21  |+.. ((Bar_Menu%!|
00002c00  28 32 38 2b 6e 25 2a 32  34 29 29 80 25 31 30 30  |(28+n%*24)).%100|
00002c10  30 30 30 30 30 29 3d 30  0d 0f e6 09 6e 25 2b 3d  |00000)=0....n%+=|
00002c20  31 0d 0f f0 05 ce 0d 0f  fa 32 c8 99 20 22 57 69  |1........2.. "Wi|
00002c30  6d 70 5f 43 72 65 61 74  65 4d 65 6e 75 22 2c 2c  |mp_CreateMenu",,|
00002c40  42 61 72 5f 4d 65 6e 75  25 2c 78 25 2d 36 34 2c  |Bar_Menu%,x%-64,|
00002c50  39 36 2b 6e 25 2a 34 34  0d 10 04 13 6d 65 6e 75  |96+n%*44....menu|
00002c60  25 3d 42 61 72 5f 4d 65  6e 75 25 0d 10 0e 05 e1  |%=Bar_Menu%.....|
00002c70  0d 10 18 05 3a 0d 10 22  21 dd 20 f2 57 69 6d 70  |....:.."!. .Wimp|
00002c80  5f 4d 65 6e 75 54 69 63  6b 28 6d 65 6e 75 25 2c  |_MenuTick(menu%,|
00002c90  69 74 65 6d 25 29 0d 10  2c 37 6d 65 6e 75 25 21  |item%)..,7menu%!|
00002ca0  28 32 38 2b 28 69 74 65  6d 25 2d 31 29 2a 32 34  |(28+(item%-1)*24|
00002cb0  29 3d 28 6d 65 6e 75 25  21 28 32 38 2b 28 69 74  |)=(menu%!(28+(it|
00002cc0  65 6d 25 2d 31 29 2a 32  34 29 29 82 31 0d 10 36  |em%-1)*24)).1..6|
00002cd0  05 e1 0d 10 40 05 3a 0d  10 4a 23 dd 20 f2 57 69  |....@.:..J#. .Wi|
00002ce0  6d 70 5f 4d 65 6e 75 54  69 74 6c 65 28 6d 65 6e  |mp_MenuTitle(men|
00002cf0  75 25 2c 74 69 74 6c 65  24 29 0d 10 54 19 24 6d  |u%,title$)..T.$m|
00002d00  65 6e 75 25 3d c0 74 69  74 6c 65 24 2c 31 32 29  |enu%=.title$,12)|
00002d10  2b bd 30 0d 10 5e 05 e1  0d 10 68 05 3a 0d 10 72  |+.0..^....h.:..r|
00002d20  3d dd 20 f2 57 69 6d 70  5f 4d 65 6e 75 57 72 69  |=. .Wimp_MenuWri|
00002d30  74 65 28 6d 65 6e 75 25  2c 69 74 65 6d 25 2c 62  |te(menu%,item%,b|
00002d40  75 66 66 65 72 25 2c 76  61 6c 25 2c 42 75 66 66  |uffer%,val%,Buff|
00002d50  65 72 4c 65 6e 67 74 68  25 29 0d 10 7c 37 6d 65  |erLength%)..|7me|
00002d60  6e 75 25 21 28 32 38 2b  28 69 74 65 6d 25 2d 31  |nu%!(28+(item%-1|
00002d70  29 2a 32 34 29 3d 28 6d  65 6e 75 25 21 28 32 38  |)*24)=(menu%!(28|
00002d80  2b 28 69 74 65 6d 25 2d  31 29 2a 32 34 29 29 84  |+(item%-1)*24)).|
00002d90  34 0d 10 86 38 6d 65 6e  75 25 21 28 33 36 2b 28  |4...8menu%!(36+(|
00002da0  69 74 65 6d 25 2d 31 29  2a 32 34 29 3d 6d 65 6e  |item%-1)*24)=men|
00002db0  75 25 21 28 33 36 2b 28  69 74 65 6d 25 2d 31 29  |u%!(36+(item%-1)|
00002dc0  2a 32 34 29 84 26 31 30  30 0d 10 90 23 6d 65 6e  |*24).&100...#men|
00002dd0  75 25 21 28 34 30 2b 28  69 74 65 6d 25 2d 31 29  |u%!(40+(item%-1)|
00002de0  2a 32 34 29 3d 62 75 66  66 65 72 25 0d 10 9a 20  |*24)=buffer%... |
00002df0  6d 65 6e 75 25 21 28 34  34 2b 28 69 74 65 6d 25  |menu%!(44+(item%|
00002e00  2d 31 29 2a 32 34 29 3d  76 61 6c 25 0d 10 a4 29  |-1)*24)=val%...)|
00002e10  6d 65 6e 75 25 21 28 34  38 2b 28 69 74 65 6d 25  |menu%!(48+(item%|
00002e20  2d 31 29 2a 32 34 29 3d  42 75 66 66 65 72 4c 65  |-1)*24)=BufferLe|
00002e30  6e 67 74 68 25 0d 10 ae  05 e1 0d 10 b8 05 3a 0d  |ngth%.........:.|
00002e40  10 c2 06 f4 7c 0d 10 cc  06 f4 7c 0d 10 d6 06 f4  |....|.....|.....|
00002e50  7c 0d 10 e0 31 f4 7c 20  20 20 20 20 20 20 20 20  ||...1.|         |
00002e60  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 2d  |         -------|
00002e70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002e80  2d 2d 0d 10 ea 2a f4 7c  20 20 20 20 20 20 20 20  |--...*.|        |
00002e90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002ea0  20 20 34 2e a0 53 70 72  69 74 65 73 0d 10 f4 31  |  4..Sprites...1|
00002eb0  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
00002ec0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
00002ed0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 10 fe  |-------------...|
00002ee0  06 f4 7c 0d 11 08 06 f4  7c 0d 11 12 3a f4 7c 20  |..|.....|...:.| |
00002ef0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  |               -|
00002f00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002f20  2d 2d 2d 0d 11 1c 06 f4  7c 0d 11 26 28 f4 7c 20  |---.....|..&(.| |
00002f30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002f40  20 20 20 20 20 50 72 6f  63 65 64 75 72 65 73 20  |     Procedures |
00002f50  3a 0d 11 30 06 f4 7c 0d  11 3a 06 f4 7c 0d 11 44  |:..0..|..:..|..D|
00002f60  2c f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |,.|             |
00002f70  20 20 20 20 20 50 52 4f  43 57 69 6d 70 5f 53 70  |     PROCWimp_Sp|
00002f80  72 69 74 65 73 4c 6f 61  64 0d 11 4e 3a f4 7c 20  |ritesLoad..N:.| |
00002f90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002fa0  20 50 52 4f 43 57 69 6d  70 5f 53 70 72 69 74 65  | PROCWimp_Sprite|
00002fb0  73 50 61 74 68 4c 6f 61  64 28 70 61 74 68 6e 61  |sPathLoad(pathna|
00002fc0  6d 65 24 0d 11 58 06 f4  7c 0d 11 62 06 f4 7c 0d  |me$..X..|..b..|.|
00002fd0  11 6c 06 f4 7c 0d 11 76  3a f4 7c 20 20 20 20 20  |.l..|..v:.|     |
00002fe0  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
00002ff0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003000  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00003010  11 80 06 f4 7c 0d 11 8a  05 3a 0d 11 94 17 dd 20  |....|....:..... |
00003020  f2 57 69 6d 70 5f 53 70  72 69 74 65 73 4c 6f 61  |.Wimp_SpritesLoa|
00003030  64 0d 11 9e 2f f2 57 69  6d 70 5f 53 70 72 69 74  |d.../.Wimp_Sprit|
00003040  65 73 50 61 74 68 4c 6f  61 64 28 22 3c 4f 62 65  |esPathLoad("<Obe|
00003050  79 24 44 69 72 3e 2e 53  70 72 69 74 65 73 22 29  |y$Dir>.Sprites")|
00003060  0d 11 a8 1c 64 69 72 65  63 74 5f 73 70 72 69 74  |....direct_sprit|
00003070  65 73 25 3d 73 70 72 69  74 65 73 25 0d 11 b2 05  |es%=sprites%....|
00003080  e1 0d 11 bc 05 3a 0d 11  c6 26 dd 20 f2 57 69 6d  |.....:...&. .Wim|
00003090  70 5f 53 70 72 69 74 65  73 50 61 74 68 4c 6f 61  |p_SpritesPathLoa|
000030a0  64 28 70 61 74 68 6e 61  6d 65 24 29 0d 11 d0 0a  |d(pathname$)....|
000030b0  ea 53 25 2c 54 25 0d 11  da 2c 53 25 3d 8e 22 3c  |.S%,T%...,S%=."<|
000030c0  4f 62 65 79 24 44 69 72  3e 2e 53 70 72 69 74 65  |Obey$Dir>.Sprite|
000030d0  73 22 3a 54 25 3d a2 23  53 25 2b 31 36 3a d9 23  |s":T%=.#S%+16:.#|
000030e0  53 25 0d 11 e4 19 de 73  70 72 69 74 65 73 25 54  |S%.....sprites%T|
000030f0  25 2c 73 70 6e 61 6d 65  25 31 32 0d 11 ee 1d 21  |%,spname%12....!|
00003100  73 70 72 69 74 65 73 25  3d 54 25 3a 73 70 72 69  |sprites%=T%:spri|
00003110  74 65 73 25 21 38 3d 30  0d 11 f8 21 c8 99 22 4f  |tes%!8=0...!.."O|
00003120  53 5f 53 70 72 69 74 65  4f 70 22 2c 26 31 30 39  |S_SpriteOp",&109|
00003130  2c 73 70 72 69 74 65 73  25 0d 12 02 2b c8 99 22  |,sprites%...+.."|
00003140  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 26 31 30  |OS_SpriteOp",&10|
00003150  41 2c 73 70 72 69 74 65  73 25 2c 70 61 74 68 6e  |A,sprites%,pathn|
00003160  61 6d 65 24 0d 12 0c 05  e1 0d 12 16 05 3a 0d 12  |ame$.........:..|
00003170  20 06 f4 7c 0d 12 2a 06  f4 7c 0d 12 34 06 f4 7c  | ..|..*..|..4..||
00003180  0d 12 3e 31 f4 7c 20 20  20 20 20 20 20 20 20 20  |..>1.|          |
00003190  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |        --------|
000031a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000031b0  2d 0d 12 48 28 f4 7c 20  20 20 20 20 20 20 20 20  |-..H(.|         |
000031c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000031d0  20 35 2e a0 46 69 6c 65  73 0d 12 52 31 f4 7c 20  | 5..Files..R1.| |
000031e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000031f0  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00003200  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 12 5c 06 f4 7c  |----------..\..||
00003210  0d 12 66 06 f4 7c 0d 12  70 35 f4 7c 20 20 20 20  |..f..|..p5.|    |
00003220  20 20 20 20 20 20 20 20  20 20 20 20 2d 2d 2d 2d  |            ----|
00003230  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003240  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 12 7a 06 f4  |-----------..z..|
00003250  7c 0d 12 84 28 f4 7c 20  20 20 20 20 20 20 20 20  ||...(.|         |
00003260  20 20 20 20 20 20 20 20  20 20 20 20 20 50 72 6f  |             Pro|
00003270  63 65 64 75 72 65 73 20  3a 0d 12 8e 06 f4 7c 0d  |cedures :.....|.|
00003280  12 98 06 f4 7c 0d 12 a2  2e f4 7c 20 20 20 20 20  |....|.....|     |
00003290  20 20 20 20 20 20 20 20  20 20 20 20 20 46 4e 57  |             FNW|
000032a0  69 6d 70 5f 46 69 6c 65  54 79 70 65 28 74 79 70  |imp_FileType(typ|
000032b0  65 25 29 0d 12 ac 2e f4  7c 20 20 20 20 20 20 20  |e%).....|       |
000032c0  20 20 20 20 20 20 20 20  20 20 20 46 4e 57 69 6d  |           FNWim|
000032d0  70 5f 47 65 74 46 69 6c  65 50 61 74 68 4e 61 6d  |p_GetFilePathNam|
000032e0  65 0d 12 b6 32 f4 7c 20  20 20 20 20 20 20 20 20  |e...2.|         |
000032f0  20 20 20 20 20 20 20 20  20 46 4e 57 69 6d 70 5f  |         FNWimp_|
00003300  46 69 6c 65 4c 6f 61 64  28 70 61 74 68 6e 61 6d  |FileLoad(pathnam|
00003310  65 24 29 0d 12 c0 39 f4  7c 20 20 20 20 20 20 20  |e$)...9.|       |
00003320  20 20 20 20 20 20 20 20  20 20 20 46 4e 57 69 6d  |           FNWim|
00003330  70 5f 47 65 74 53 74 72  69 6e 67 41 74 41 64 64  |p_GetStringAtAdd|
00003340  72 65 73 73 28 61 72 72  61 79 25 29 0d 12 ca 36  |ress(array%)...6|
00003350  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
00003360  20 20 20 20 46 4e 57 69  6d 70 5f 47 65 74 46 69  |    FNWimp_GetFi|
00003370  6c 65 46 72 6f 6d 50 61  74 68 6e 61 6d 65 28 66  |leFromPathname(f|
00003380  24 29 0d 12 d4 32 f4 7c  20 20 20 20 20 20 20 20  |$)...2.|        |
00003390  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
000033a0  6d 70 5f 53 65 6e 64 54  6f 45 64 69 74 28 66 69  |mp_SendToEdit(fi|
000033b0  6c 65 24 29 0d 12 de 06  f4 7c 0d 12 e8 35 f4 7c  |le$).....|...5.||
000033c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000033d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000033e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
000033f0  12 f2 06 f4 7c 0d 12 fc  06 f4 7c 0d 13 06 06 f4  |....|.....|.....|
00003400  7c 0d 13 10 05 3a 0d 13  1a 1b dd 20 a4 57 69 6d  ||....:..... .Wim|
00003410  70 5f 46 69 6c 65 54 79  70 65 28 74 79 70 65 25  |p_FileType(type%|
00003420  29 0d 13 24 0c c8 8e 74  79 70 65 25 ca 0d 13 2e  |)..$...type%....|
00003430  11 c9 26 46 46 46 3a 3d  22 54 65 78 74 22 0d 13  |..&FFF:="Text"..|
00003440  38 11 c9 26 46 46 44 3a  3d 22 44 61 74 61 22 0d  |8..&FFD:="Data".|
00003450  13 42 12 c9 26 46 46 42  3a 3d 22 42 61 73 69 63  |.B..&FFB:="Basic|
00003460  22 0d 13 4c 13 c9 26 46  46 39 3a 3d 22 53 70 72  |"..L..&FF9:="Spr|
00003470  69 74 65 22 0d 13 56 14  c9 26 46 45 44 3a 3d 22  |ite"..V..&FED:="|
00003480  50 61 6c 65 74 74 65 22  0d 13 60 15 c9 26 46 45  |Palette"..`..&FE|
00003490  43 3a 3d 22 54 65 6d 70  6c 61 74 65 22 0d 13 6a  |C:="Template"..j|
000034a0  11 c9 26 41 46 46 3a 3d  22 44 72 61 77 22 0d 13  |..&AFF:="Draw"..|
000034b0  74 14 c9 26 31 30 30 30  3a 3d 22 46 6f 6c 64 65  |t..&1000:="Folde|
000034c0  72 22 0d 13 7e 19 c9 26  32 30 30 30 3a 3d 22 41  |r"..~..&2000:="A|
000034d0  70 70 6c 69 63 61 74 69  6f 6e 22 0d 13 88 0f 7f  |pplication".....|
000034e0  3d c3 7e 28 74 79 70 65  25 29 0d 13 92 05 cb 0d  |=.~(type%)......|
000034f0  13 9c 05 3a 0d 13 a6 1b  dd 20 a4 57 69 6d 70 5f  |...:..... .Wimp_|
00003500  47 65 74 46 69 6c 65 50  61 74 68 4e 61 6d 65 0d  |GetFilePathName.|
00003510  13 b0 27 3d a4 57 69 6d  70 5f 47 65 74 53 74 72  |..'=.Wimp_GetStr|
00003520  69 6e 67 41 74 41 64 64  72 65 73 73 28 77 69 6d  |ingAtAddress(wim|
00003530  70 25 2b 34 34 29 0d 13  ba 05 3a 0d 13 c4 1f dd  |p%+44)....:.....|
00003540  20 a4 57 69 6d 70 5f 46  69 6c 65 4c 6f 61 64 28  | .Wimp_FileLoad(|
00003550  70 61 74 68 6e 61 6d 65  24 29 0d 13 ce 10 ea 53  |pathname$).....S|
00003560  25 2c 54 25 2c 66 69 6c  65 25 0d 13 d8 11 53 25  |%,T%,file%....S%|
00003570  3d 8e 70 61 74 68 6e 61  6d 65 24 0d 13 e2 0e 54  |=.pathname$....T|
00003580  25 3d a2 23 53 25 2b 31  36 0d 13 ec 08 d9 23 53  |%=.#S%+16.....#S|
00003590  25 0d 13 f6 0c de 66 69  6c 65 25 54 25 0d 14 00  |%.....file%T%...|
000035a0  22 ff 28 22 4c 4f 41 44  22 2b 70 61 74 68 6e 61  |".("LOAD"+pathna|
000035b0  6d 65 24 2b 22 22 2b c3  7e 66 69 6c 65 25 29 0d  |me$+""+.~file%).|
000035c0  14 0a 0a 3d 66 69 6c 65  25 0d 14 14 05 3b 0d 14  |...=file%....;..|
000035d0  1e 26 dd 20 a4 57 69 6d  70 5f 47 65 74 53 74 72  |.&. .Wimp_GetStr|
000035e0  69 6e 67 41 74 41 64 64  72 65 73 73 28 61 72 72  |ingAtAddress(arr|
000035f0  61 79 25 29 0d 14 28 0d  ea 73 24 3a 73 24 3d 22  |ay%)..(..s$:s$="|
00003600  22 0d 14 32 3c c8 95 28  3f 61 72 72 61 79 25 3c  |"..2<..(?array%<|
00003610  3e 31 33 29 80 28 3f 61  72 72 61 79 25 3c 3e 30  |>13).(?array%<>0|
00003620  29 3a 73 24 2b 3d bd 28  3f 61 72 72 61 79 25 29  |):s$+=.(?array%)|
00003630  3a 61 72 72 61 79 25 2b  3d 31 3a ce 3a 0d 14 3c  |:array%+=1:.:..<|
00003640  07 3d 73 24 0d 14 46 05  3a 0d 14 50 23 dd 20 a4  |.=s$..F.:..P#. .|
00003650  57 69 6d 70 5f 47 65 74  46 69 6c 65 46 72 6f 6d  |Wimp_GetFileFrom|
00003660  50 61 74 68 6e 61 6d 65  28 66 24 29 0d 14 5a 11  |Pathname(f$)..Z.|
00003670  c8 8e 20 a7 66 24 2c 22  2e 22 29 20 ca 0d 14 64  |.. .f$,".") ...d|
00003680  10 20 c9 20 30 20 20 20  20 3a 3d 66 24 0d 14 6e  |. . 0    :=f$..n|
00003690  37 20 7f 20 3a 3d a4 57  69 6d 70 5f 47 65 74 46  |7 . :=.Wimp_GetF|
000036a0  69 6c 65 46 72 6f 6d 50  61 74 68 6e 61 6d 65 28  |ileFromPathname(|
000036b0  c2 66 24 2c a9 28 66 24  29 2d a7 66 24 2c 22 2e  |.f$,.(f$)-.f$,".|
000036c0  22 29 29 29 0d 14 78 05  cb 0d 14 82 05 3a 0d 14  |")))..x......:..|
000036d0  8c 1d dd 20 f2 57 69 6d  70 5f 53 65 6e 64 54 6f  |... .Wimp_SendTo|
000036e0  45 64 69 74 28 66 69 6c  65 24 29 0d 14 96 08 ea  |Edit(file$).....|
000036f0  20 6e 25 0d 14 a0 15 77  69 6d 70 25 21 34 3d 26  | n%....wimp%!4=&|
00003700  36 43 43 30 31 43 30 43  0d 14 aa 0e 77 69 6d 70  |6CC01C0C....wimp|
00003710  25 21 31 36 3d 35 0d 14  b4 0e 77 69 6d 70 25 21  |%!16=5....wimp%!|
00003720  33 36 3d 30 0d 14 be 11  77 69 6d 70 25 21 34 30  |36=0....wimp%!40|
00003730  3d 26 46 46 46 0d 14 c8  18 24 28 77 69 6d 70 25  |=&FFF....$(wimp%|
00003740  2b 34 34 29 3d 66 69 6c  65 24 2b bd 30 0d 14 d2  |+44)=file$+.0...|
00003750  10 6e 25 3d a9 66 69 6c  65 24 2b 34 35 0d 14 dc  |.n%=.file$+45...|
00003760  2c e7 20 6e 25 83 34 20  8c 20 21 77 69 6d 70 25  |,. n%.4 . !wimp%|
00003770  3d 34 2b 28 6e 25 3e 3e  32 29 3c 3c 32 20 8b 20  |=4+(n%>>2)<<2 . |
00003780  21 77 69 6d 70 25 3d 6e  25 0d 14 e6 24 c8 99 20  |!wimp%=n%...$.. |
00003790  22 57 69 6d 70 5f 53 65  6e 64 4d 65 73 73 61 67  |"Wimp_SendMessag|
000037a0  65 22 2c 31 37 2c 77 69  6d 70 25 2c 30 0d 14 f0  |e",17,wimp%,0...|
000037b0  05 e1 0d 14 fa 05 3a 0d  15 04 06 f4 7c 0d 15 0e  |......:.....|...|
000037c0  06 f4 7c 0d 15 18 06 f4  7c 0d 15 22 31 f4 7c 20  |..|.....|.."1.| |
000037d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000037e0  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
000037f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 15 2c 2c f4 7c  |----------..,,.||
00003800  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003810  20 20 20 20 20 20 35 2e  a0 4d 69 73 63 65 6c 6c  |      5..Miscell|
00003820  61 6e 65 6f 75 73 0d 15  36 31 f4 7c 20 20 20 20  |aneous..61.|    |
00003830  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 2d  |              --|
00003840  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003850  2d 2d 2d 2d 2d 2d 2d 0d  15 40 06 f4 7c 0d 15 4a  |-------..@..|..J|
00003860  06 f4 7c 0d 15 54 35 f4  7c 20 20 20 20 20 20 20  |..|..T5.|       |
00003870  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 2d  |         -------|
00003880  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003890  2d 2d 2d 2d 2d 2d 2d 2d  0d 15 5e 06 f4 7c 0d 15  |--------..^..|..|
000038a0  68 28 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |h(.|            |
000038b0  20 20 20 20 20 20 20 20  20 20 50 72 6f 63 65 64  |          Proced|
000038c0  75 72 65 73 20 3a 0d 15  72 06 f4 7c 0d 15 7c 06  |ures :..r..|..|.|
000038d0  f4 7c 0d 15 86 31 f4 7c  20 20 20 20 20 20 20 20  |.|...1.|        |
000038e0  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
000038f0  6d 70 5f 53 74 61 72 74  28 54 61 73 6b 4e 61 6d  |mp_Start(TaskNam|
00003900  65 24 29 0d 15 90 2e f4  7c 20 20 20 20 20 20 20  |e$).....|       |
00003910  20 20 20 20 20 20 20 20  20 20 20 46 4e 57 69 6d  |           FNWim|
00003920  70 5f 42 41 53 49 43 50  61 72 61 6d 65 74 65 72  |p_BASICParameter|
00003930  73 0d 15 9a 32 f4 7c 20  20 20 20 20 20 20 20 20  |s...2.|         |
00003940  20 20 20 20 20 20 20 20  20 50 52 4f 43 57 69 6d  |         PROCWim|
00003950  70 5f 53 65 74 45 76 65  6e 74 56 61 72 69 61 62  |p_SetEventVariab|
00003960  6c 65 73 0d 15 a4 37 f4  7c 20 20 20 20 20 20 20  |les...7.|       |
00003970  20 20 20 20 20 20 20 20  20 20 20 50 52 4f 43 57  |           PROCW|
00003980  69 6d 70 5f 45 72 72 6f  72 28 74 61 73 6b 25 2c  |imp_Error(task%,|
00003990  54 61 73 6b 4e 61 6d 65  24 29 0d 15 ae 2a f4 7c  |TaskName$)...*.||
000039a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000039b0  20 20 50 52 4f 43 57 69  6d 70 5f 43 6c 6f 73 65  |  PROCWimp_Close|
000039c0  44 6f 77 6e 0d 15 b8 25  f4 7c 20 20 20 20 20 20  |Down...%.|      |
000039d0  20 20 20 20 20 20 20 20  20 20 20 20 50 52 4f 43  |            PROC|
000039e0  57 69 6d 70 5f 51 75 69  74 0d 15 c2 36 f4 7c 20  |Wimp_Quit...6.| |
000039f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003a00  20 46 4e 57 69 6d 70 5f  52 65 61 64 56 61 72 69  | FNWimp_ReadVari|
00003a10  61 62 6c 65 28 56 61 72  69 61 62 6c 65 24 29 0d  |able(Variable$).|
00003a20  15 cc 06 f4 7c 0d 15 d6  06 f4 7c 0d 15 e0 35 f4  |....|.....|...5.|
00003a30  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00003a40  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00003a50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003a60  0d 15 ea 06 f4 7c 0d 15  f4 05 3a 0d 15 fe 2f dd  |.....|....:.../.|
00003a70  20 f2 57 69 6d 70 5f 53  74 61 72 74 28 54 61 73  | .Wimp_Start(Tas|
00003a80  6b 4e 61 6d 65 24 2c 77  69 6d 70 5f 6d 65 6d 6f  |kName$,wimp_memo|
00003a90  72 79 25 2c 69 63 6f 6e  25 29 0d 16 08 25 de 20  |ry%,icon%)...%. |
00003aa0  77 69 6d 70 25 20 77 69  6d 70 5f 6d 65 6d 6f 72  |wimp% wimp_memor|
00003ab0  79 25 2c 69 63 6f 6e 73  25 20 69 63 6f 6e 25 0d  |y%,icons% icon%.|
00003ac0  16 12 29 e7 20 77 69 6d  70 5f 6d 65 6d 6f 72 79  |..). wimp_memory|
00003ad0  25 3c 32 35 36 20 8c 20  77 69 6d 70 5f 6d 65 6d  |%<256 . wimp_mem|
00003ae0  6f 72 79 25 3d 32 35 36  0d 16 1c 1d 69 63 6f 6e  |ory%=256....icon|
00003af0  5f 6d 65 6d 6f 72 79 25  3d 69 63 6f 6e 73 25 2b  |_memory%=icons%+|
00003b00  69 63 6f 6e 25 0d 16 26  13 74 61 73 6b 24 3d 54  |icon%..&.task$=T|
00003b10  61 73 6b 4e 61 6d 65 24  0d 16 30 2b 69 6e 64 69  |askName$..0+indi|
00003b20  72 65 63 74 5f 73 70 72  69 74 65 73 25 3d 31 20  |rect_sprites%=1 |
00003b30  3a 20 64 69 72 65 63 74  5f 73 70 72 69 74 65 73  |: direct_sprites|
00003b40  25 3d 31 0d 16 3a 1b f2  57 69 6d 70 5f 53 65 74  |%=1..:..Wimp_Set|
00003b50  45 76 65 6e 74 56 61 72  69 61 62 6c 65 73 0d 16  |EventVariables..|
00003b60  44 15 ee 20 85 20 f2 57  69 6d 70 5f 45 72 72 6f  |D.. . .Wimp_Erro|
00003b70  72 3a e0 0d 16 4e 40 c8  99 22 57 69 6d 70 5f 49  |r:...N@.."Wimp_I|
00003b80  6e 69 74 69 61 6c 69 73  65 22 2c 32 30 30 2c 26  |nitialise",200,&|
00003b90  34 42 35 33 34 31 35 34  2c 54 61 73 6b 4e 61 6d  |4B534154,TaskNam|
00003ba0  65 24 20 b8 20 76 65 72  73 69 6f 6e 25 2c 74 61  |e$ . version%,ta|
00003bb0  73 6b 25 0d 16 58 05 e1  0d 16 62 05 3a 0d 16 6c  |sk%..X....b.:..l|
00003bc0  1b dd 20 a4 57 69 6d 70  5f 42 41 53 49 43 50 61  |.. .Wimp_BASICPa|
00003bd0  72 61 6d 65 74 65 72 73  0d 16 76 15 20 ea 20 63  |rameters..v. . c|
00003be0  6f 6d 24 2c 70 61 72 61  6d 24 2c 49 25 0d 16 80  |om$,param$,I%...|
00003bf0  1a 20 c8 99 20 22 4f 53  5f 47 65 74 45 6e 76 22  |. .. "OS_GetEnv"|
00003c00  20 b8 20 63 6f 6d 24 0d  16 8a 0f 20 70 61 72 61  | . com$.... para|
00003c10  6d 73 24 3d 22 22 0d 16  94 18 20 49 25 3d a7 63  |ms$="".... I%=.c|
00003c20  6f 6d 24 2c 22 20 2d 71  75 69 74 20 22 29 0d 16  |om$," -quit ")..|
00003c30  9e 35 20 e7 20 49 25 20  8c 20 70 61 72 61 6d 73  |.5 . I% . params|
00003c40  24 3d c1 63 6f 6d 24 2c  a7 63 6f 6d 24 2c 22 20  |$=.com$,.com$," |
00003c50  22 2c 49 25 2b a9 22 20  2d 71 75 69 74 20 22 29  |",I%+." -quit ")|
00003c60  2b 31 29 0d 16 a8 0c 3d  70 61 72 61 6d 73 24 0d  |+1)....=params$.|
00003c70  16 b2 05 3a 0d 16 bc 1d  dd 20 f2 57 69 6d 70 5f  |...:..... .Wimp_|
00003c80  53 65 74 45 76 65 6e 74  56 61 72 69 61 62 6c 65  |SetEventVariable|
00003c90  73 0d 16 c6 17 de 20 70  6f 69 6e 74 65 72 5f 62  |s..... pointer_b|
00003ca0  6c 6f 63 6b 25 20 32 30  0d 16 d0 10 69 6e 74 65  |lock% 20....inte|
00003cb0  72 66 61 63 65 25 3d a3  0d 16 da 2e 6e 75 6c 6c  |rface%=.....null|
00003cc0  25 3d 31 20 20 3a 64 72  61 77 25 3d 32 20 3a 20  |%=1  :draw%=2 : |
00003cd0  20 70 6f 69 6e 74 65 72  5f 6c 65 61 76 69 6e 67  | pointer_leaving|
00003ce0  25 3d 31 3c 3c 34 0d 16  e4 31 70 6f 69 6e 74 65  |%=1<<4...1pointe|
00003cf0  72 5f 65 6e 74 65 72 69  6e 67 25 3d 31 3c 3c 35  |r_entering%=1<<5|
00003d00  3a 6d 6f 75 73 65 25 3d  31 3c 3c 36 3a 64 72 61  |:mouse%=1<<6:dra|
00003d10  67 25 3d 31 3c 3c 37 0d  16 ee 26 6b 65 79 25 3d  |g%=1<<7...&key%=|
00003d20  31 3c 3c 38 3a 6d 65 6e  75 25 3d 31 3c 3c 39 3a  |1<<8:menu%=1<<9:|
00003d30  73 63 72 6f 6c 6c 25 3d  31 3c 3c 31 30 0d 16 f8  |scroll%=1<<10...|
00003d40  40 6c 6f 73 65 5f 63 61  72 65 74 25 3d 31 3c 3c  |@lose_caret%=1<<|
00003d50  31 31 3a 67 61 69 6e 5f  63 61 72 65 74 25 3d 31  |11:gain_caret%=1|
00003d60  3c 3c 31 32 3a 6d 65 73  73 61 67 65 25 3d 28 31  |<<12:message%=(1|
00003d70  3c 3c 31 37 29 2b 28 31  3c 3c 31 38 29 0d 17 02  |<<17)+(1<<18)...|
00003d80  30 72 65 63 6f 72 64 65  72 25 3d 31 3c 3c 31 38  |0recorder%=1<<18|
00003d90  3a 61 63 6b 6e 6f 77 6c  65 64 67 65 25 3d 31 3c  |:acknowledge%=1<|
00003da0  3c 31 39 3a 77 69 6e 64  6f 77 25 3d 30 0d 17 0c  |<19:window%=0...|
00003db0  21 73 70 72 69 74 65 73  25 3d 31 3a 76 65 72 73  |!sprites%=1:vers|
00003dc0  69 6f 6e 25 3d 30 3a 74  61 73 6b 25 3d 30 0d 17  |ion%=0:task%=0..|
00003dd0  16 2a 42 61 72 5f 57 69  6e 64 6f 77 25 3d 2d 32  |.*Bar_Window%=-2|
00003de0  3a 42 61 72 5f 49 63 6f  6e 25 3d 30 3a 42 61 72  |:Bar_Icon%=0:Bar|
00003df0  5f 4d 65 6e 75 25 3d 30  0d 17 20 2a 78 5f 6f 72  |_Menu%=0.. *x_or|
00003e00  69 67 69 6e 25 3d 30 3a  79 5f 6f 72 69 67 69 6e  |igin%=0:y_origin|
00003e10  25 3d 30 3a 53 61 76 65  57 69 6e 64 6f 77 25 3d  |%=0:SaveWindow%=|
00003e20  2d 33 0d 17 2a 33 6d 65  73 73 61 67 65 5f 71 75  |-3..*3message_qu|
00003e30  69 74 25 3d 30 3a 6d 65  73 73 61 67 65 5f 73 61  |it%=0:message_sa|
00003e40  76 65 25 3d 32 3a 6d 65  73 73 61 67 65 5f 6c 6f  |ve%=2:message_lo|
00003e50  61 64 25 3d 33 0d 17 34  21 6d 6f 75 73 65 5f 62  |ad%=3..4!mouse_b|
00003e60  75 74 74 6f 6e 25 3d 32  3a 73 61 76 65 5f 65 76  |utton%=2:save_ev|
00003e70  65 6e 74 25 3d 30 0d 17  3e 20 74 6f 70 5f 6c 69  |ent%=0..> top_li|
00003e80  6e 65 25 3d 30 20 3a 20  62 6f 74 74 6f 6d 5f 6c  |ne%=0 : bottom_l|
00003e90  69 6e 65 25 3d 30 0d 17  48 05 e1 0d 17 52 05 3a  |ine%=0..H....R.:|
00003ea0  0d 17 5c 11 dd 20 f2 57  69 6d 70 5f 45 72 72 6f  |..\.. .Wimp_Erro|
00003eb0  72 0d 17 66 0a ea 58 24  2c 78 25 0d 17 70 09 ee  |r..f..X$,x%..p..|
00003ec0  20 85 20 87 0d 17 7a 08  78 25 3d 9e 0d 17 84 1b  | . ...z.x%=.....|
00003ed0  58 24 3d f6 24 2b 22 61  74 6c 69 6e 65 22 2b c3  |X$=.$+"atline"+.|
00003ee0  28 78 25 81 31 30 29 0d  17 8e 10 de 45 72 72 6f  |(x%.10).....Erro|
00003ef0  72 4d 73 67 25 33 36 0d  17 98 45 45 72 72 6f 72  |rMsg%36...EError|
00003f00  4d 73 67 25 21 30 3d 33  36 3a 45 72 72 6f 72 4d  |Msg%!0=36:ErrorM|
00003f10  73 67 25 21 31 32 3d 30  3a 45 72 72 6f 72 4d 73  |sg%!12=0:ErrorMs|
00003f20  67 25 21 31 36 3d 26 38  31 30 38 30 3a 45 72 72  |g%!16=&81080:Err|
00003f30  6f 72 4d 73 67 25 21 32  30 3d 78 25 0d 17 a2 1f  |orMsg%!20=x%....|
00003f40  24 28 45 72 72 6f 72 4d  73 67 25 2b 32 34 29 3d  |$(ErrorMsg%+24)=|
00003f50  22 21 52 75 6e 49 6d 61  67 65 22 0d 17 ac 25 c8  |"!RunImage"...%.|
00003f60  99 22 57 69 6d 70 5f 53  65 6e 64 4d 65 73 73 61  |."Wimp_SendMessa|
00003f70  67 65 22 2c 31 37 2c 45  72 72 6f 72 4d 73 67 25  |ge",17,ErrorMsg%|
00003f80  0d 17 b6 1f f2 57 69 6d  70 5f 57 69 6e 64 6f 77  |.....Wimp_Window|
00003f90  41 6c 65 72 74 28 74 61  73 6b 24 2c 58 24 29 0d  |Alert(task$,X$).|
00003fa0  17 c0 13 f2 57 69 6d 70  5f 43 6c 6f 73 65 44 6f  |....Wimp_CloseDo|
00003fb0  77 6e 0d 17 ca 05 e1 0d  17 d4 05 3a 0d 17 de 15  |wn.........:....|
00003fc0  dd 20 f2 57 69 6d 70 5f  43 6c 6f 73 65 44 6f 77  |. .Wimp_CloseDow|
00003fd0  6e 0d 17 e8 23 c8 99 22  57 69 6d 70 5f 43 6c 6f  |n...#.."Wimp_Clo|
00003fe0  73 65 44 6f 77 6e 22 2c  74 61 73 6b 25 2c 22 54  |seDown",task%,"T|
00003ff0  41 53 4b 22 0d 17 f2 05  e1 0d 17 fc 05 3a 0d 18  |ASK".........:..|
00004000  06 10 dd 20 f2 57 69 6d  70 5f 51 75 69 74 0d 18  |... .Wimp_Quit..|
00004010  10 0f 66 69 6e 69 73 68  65 64 25 3d b9 0d 18 1a  |..finished%=....|
00004020  05 e1 0d 18 24 05 3a 0d  18 2e 23 dd 20 a4 57 69  |....$.:...#. .Wi|
00004030  6d 70 5f 52 65 61 64 56  61 72 69 61 62 6c 65 28  |mp_ReadVariable(|
00004040  56 61 72 69 61 62 6c 65  24 29 0d 18 38 1b ea 6c  |Variable$)..8..l|
00004050  65 6e 25 2c 72 65 73 75  6c 74 25 2c 76 61 72 69  |en%,result%,vari|
00004060  61 62 6c 65 25 0d 18 42  14 24 77 69 6d 70 25 3d  |able%..B.$wimp%=|
00004070  56 61 72 69 61 62 6c 65  24 0d 18 4c 33 c8 99 22  |Variable$..L3.."|
00004080  4f 53 5f 52 65 61 64 56  61 72 56 61 6c 22 2c 77  |OS_ReadVarVal",w|
00004090  69 6d 70 25 2c 77 69 6d  70 25 2b 32 35 35 2c 32  |imp%,wimp%+255,2|
000040a0  35 35 2c 2c 33 b8 2c 2c  6c 65 6e 25 0d 18 56 17  |55,,3.,,len%..V.|
000040b0  77 69 6d 70 25 3f 28 6c  65 6e 25 2b 32 35 35 29  |wimp%?(len%+255)|
000040c0  3d 31 33 0d 18 60 11 3d  24 28 77 69 6d 70 25 2b  |=13..`.=$(wimp%+|
000040d0  32 35 35 29 0d 18 6a 05  3a 0d 18 74 05 3a 0d 18  |255)..j.:..t.:..|
000040e0  7e 06 f4 7c 0d 18 88 06  f4 7c 0d 18 92 06 f4 7c  |~..|.....|.....||
000040f0  0d 18 9c 06 f4 7c 0d 18  a6 29 f4 7c 20 20 20 20  |.....|...).|    |
00004100  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  |               -|
00004110  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00004120  18 b0 27 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..'.|           |
00004130  20 20 20 20 20 20 20 20  20 20 57 69 6d 70 20 50  |          Wimp P|
00004140  6f 6c 6c 69 6e 67 0d 18  ba 29 f4 7c 20 20 20 20  |olling...).|    |
00004150  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  |               -|
00004160  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00004170  18 c4 06 f4 7c 0d 18 ce  06 f4 7c 0d 18 d8 05 3a  |....|.....|....:|
00004180  0d 18 e2 18 dd 20 f2 57  69 6d 70 5f 57 61 69 74  |..... .Wimp_Wait|
00004190  46 6f 72 45 76 65 6e 74  0d 18 ec 12 ea 20 6d 61  |ForEvent..... ma|
000041a0  73 6b 25 2c 65 76 65 6e  74 25 0d 18 f6 0f 66 69  |sk%,event%....fi|
000041b0  6e 69 73 68 65 64 25 3d  a3 0d 19 00 17 6d 61 73  |nished%=.....mas|
000041c0  6b 25 3d 25 31 31 31 30  30 30 30 31 31 30 30 31  |k%=%111000011001|
000041d0  0d 19 0a 05 f5 0d 19 14  27 20 c8 99 22 57 69 6d  |........' .."Wim|
000041e0  70 5f 50 6f 6c 6c 22 2c  6d 61 73 6b 25 2c 77 69  |p_Poll",mask%,wi|
000041f0  6d 70 25 20 b8 20 65 76  65 6e 74 25 0d 19 1e 10  |mp% . event%....|
00004200  20 c8 8e 20 65 76 65 6e  74 25 20 ca 0d 19 28 0a  | .. event% ...(.|
00004210  20 20 c9 30 20 3a 0d 19  32 1f 20 20 c9 31 20 3a  |  .0 :..2.  .1 :|
00004220  20 f2 57 69 6d 70 5f 50  6f 6c 6c 44 72 61 77 57  | .Wimp_PollDrawW|
00004230  69 6e 64 6f 77 0d 19 3c  26 20 20 c9 32 20 3a 20  |indow..<&  .2 : |
00004240  c8 99 20 22 57 69 6d 70  5f 4f 70 65 6e 57 69 6e  |.. "Wimp_OpenWin|
00004250  64 6f 77 22 2c 2c 77 69  6d 70 25 0d 19 46 20 20  |dow",,wimp%..F  |
00004260  20 c9 33 20 3a 20 f2 57  69 6d 70 5f 50 6f 6c 6c  | .3 : .Wimp_Poll|
00004270  43 6c 6f 73 65 57 69 6e  64 6f 77 0d 19 50 0a 20  |CloseWindow..P. |
00004280  20 c9 34 20 3a 0d 19 5a  0a 20 20 c9 35 20 3a 0d  | .4 :..Z.  .5 :.|
00004290  19 64 1f 20 20 c9 36 20  3a 20 f2 57 69 6d 70 5f  |.d.  .6 : .Wimp_|
000042a0  50 6f 6c 6c 4d 6f 75 73  65 43 6c 69 63 6b 0d 19  |PollMouseClick..|
000042b0  6e 20 20 20 c9 37 20 3a  20 f2 57 69 6d 70 5f 50  |n   .7 : .Wimp_P|
000042c0  6f 6c 6c 53 61 76 65 4d  65 73 73 61 67 65 0d 19  |ollSaveMessage..|
000042d0  78 1d 20 20 c9 38 20 3a  20 f2 57 69 6d 70 5f 50  |x.  .8 : .Wimp_P|
000042e0  6f 6c 6c 4b 65 79 50 72  65 73 73 0d 19 82 23 20  |ollKeyPress...# |
000042f0  20 c9 39 20 3a 20 f2 45  76 65 6e 74 5f 4d 65 6e  | .9 : .Event_Men|
00004300  75 43 68 6f 69 63 65 28  6d 65 6e 75 25 29 0d 19  |uChoice(menu%)..|
00004310  8c 0a 20 20 c9 31 30 3a  0d 19 96 0a 20 20 c9 31  |..  .10:....  .1|
00004320  31 3a 0d 19 a0 0a 20 20  c9 31 32 3a 0d 19 aa 20  |1:....  .12:... |
00004330  20 20 c9 31 37 2c 31 38  3a 20 f2 57 69 6d 70 5f  |  .17,18: .Wimp_|
00004340  50 6f 6c 6c 4d 65 73 73  61 67 65 73 0d 19 b4 0a  |PollMessages....|
00004350  20 20 c9 31 39 3a 0d 19  be 06 20 cb 0d 19 c8 0f  |  .19:.... .....|
00004360  fd 20 66 69 6e 69 73 68  65 64 25 0d 19 d2 05 e1  |. finished%.....|
00004370  0d 19 dc 05 3a 0d 19 e6  1a dd 20 f2 57 69 6d 70  |....:..... .Wimp|
00004380  5f 50 6f 6c 6c 44 72 61  77 57 69 6e 64 6f 77 0d  |_PollDrawWindow.|
00004390  19 f0 0b ea 20 6d 6f 72  65 25 0d 19 fa 26 c8 99  |.... more%...&..|
000043a0  22 57 69 6d 70 5f 52 65  64 72 61 77 57 69 6e 64  |"Wimp_RedrawWind|
000043b0  6f 77 22 2c 2c 77 69 6d  70 25 b8 6d 6f 72 65 25  |ow",,wimp%.more%|
000043c0  0d 1a 04 13 77 69 6e 64  6f 77 25 3d 77 69 6d 70  |....window%=wimp|
000043d0  25 21 30 0d 1a 0e 41 78  5f 6f 72 69 67 69 6e 25  |%!0...Ax_origin%|
000043e0  3d 31 36 2b 77 69 6d 70  25 21 34 2d 77 69 6d 70  |=16+wimp%!4-wimp|
000043f0  25 21 32 30 3a 79 5f 6f  72 69 67 69 6e 25 3d 2d  |%!20:y_origin%=-|
00004400  31 36 2b 77 69 6d 70 25  21 31 36 2d 77 69 6d 70  |16+wimp%!16-wimp|
00004410  25 21 32 34 0d 1a 18 0b  c8 95 6d 6f 72 65 25 0d  |%!24......more%.|
00004420  1a 22 30 20 e7 20 69 6e  74 65 72 66 61 63 65 25  |."0 . interface%|
00004430  20 8c 20 c8 99 22 57 69  6d 70 5f 42 6f 72 64 65  | . .."Wimp_Borde|
00004440  72 57 69 6e 64 6f 77 22  2c 2c 77 69 6d 70 25 0d  |rWindow",,wimp%.|
00004450  1a 2c 2d 20 f2 45 76 65  6e 74 5f 44 72 61 77 28  |.,- .Event_Draw(|
00004460  77 69 6e 64 6f 77 25 2c  78 5f 6f 72 69 67 69 6e  |window%,x_origin|
00004470  25 2c 79 5f 6f 72 69 67  69 6e 25 29 0d 1a 36 27  |%,y_origin%)..6'|
00004480  20 c8 99 22 57 69 6d 70  5f 47 65 74 52 65 63 74  | .."Wimp_GetRect|
00004490  61 6e 67 6c 65 22 2c 2c  77 69 6d 70 25 b8 6d 6f  |angle",,wimp%.mo|
000044a0  72 65 25 0d 1a 40 05 ce  0d 1a 4a 05 e1 0d 1a 54  |re%..@....J....T|
000044b0  05 3a 0d 1a 5e 1b dd 20  f2 57 69 6d 70 5f 50 6f  |.:..^.. .Wimp_Po|
000044c0  6c 6c 43 6c 6f 73 65 57  69 6e 64 6f 77 0d 1a 68  |llCloseWindow..h|
000044d0  25 20 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 50  |%  .. "Wimp_GetP|
000044e0  6f 69 6e 74 65 72 49 6e  66 6f 22 2c 2c 77 69 6d  |ointerInfo",,wim|
000044f0  70 25 0d 1a 72 29 20 20  77 69 6e 64 6f 77 25 3d  |p%..r)  window%=|
00004500  77 69 6d 70 25 21 31 32  20 3a 20 62 75 74 74 6f  |wimp%!12 : butto|
00004510  6e 73 25 3d 77 69 6d 70  25 21 38 0d 1a 7c 29 20  |ns%=wimp%!8..|) |
00004520  f2 45 76 65 6e 74 5f 57  69 6e 64 6f 77 43 6c 6f  |.Event_WindowClo|
00004530  73 65 28 77 69 6e 64 6f  77 25 2c 62 75 74 74 6f  |se(window%,butto|
00004540  6e 73 25 29 0d 1a 86 32  20 21 77 69 6d 70 25 3d  |ns%)...2 !wimp%=|
00004550  77 69 6e 64 6f 77 25 20  3a 20 c8 99 20 22 57 69  |window% : .. "Wi|
00004560  6d 70 5f 43 6c 6f 73 65  57 69 6e 64 6f 77 22 2c  |mp_CloseWindow",|
00004570  2c 77 69 6d 70 25 0d 1a  90 05 e1 0d 1a 9a 05 3a  |,wimp%.........:|
00004580  0d 1a a4 1a dd 20 f2 57  69 6d 70 5f 50 6f 6c 6c  |..... .Wimp_Poll|
00004590  4d 6f 75 73 65 43 6c 69  63 6b 0d 1a ae 4a 20 62  |MouseClick...J b|
000045a0  75 74 74 6f 6e 25 3d 77  69 6d 70 25 21 38 3a 77  |utton%=wimp%!8:w|
000045b0  69 6e 64 6f 77 25 3d 77  69 6d 70 25 21 31 32 3a  |indow%=wimp%!12:|
000045c0  69 63 6f 6e 25 3d 77 69  6d 70 25 21 31 36 3a 78  |icon%=wimp%!16:x|
000045d0  25 3d 77 69 6d 70 25 21  30 3a 79 25 3d 77 69 6d  |%=wimp%!0:y%=wim|
000045e0  70 25 21 34 0d 1a b8 11  20 c8 8e 20 62 75 74 74  |p%!4.... .. butt|
000045f0  6f 6e 25 20 ca 0d 1a c2  22 20 20 20 c9 32 20 20  |on% ...."   .2  |
00004600  20 20 3a 20 f2 57 69 6d  70 5f 50 6f 6c 6c 4d 65  |  : .Wimp_PollMe|
00004610  6e 75 50 6f 70 55 70 0d  1a cc 23 20 20 20 7f 3a  |nuPopUp...#   .:|
00004620  20 c8 8e 20 a4 45 76 65  6e 74 5f 53 61 76 65 28  | .. .Event_Save(|
00004630  77 69 6e 64 6f 77 25 29  20 ca 0d 1a d6 2c 20 20  |window%) ....,  |
00004640  20 20 20 20 20 20 20 20  20 20 20 20 20 c9 20 b9  |             . .|
00004650  20 3a 20 f2 57 69 6d 70  5f 50 6f 6c 6c 4d 6f 75  | : .Wimp_PollMou|
00004660  73 65 53 61 76 65 0d 1a  e0 31 20 20 20 20 20 20  |seSave...1      |
00004670  20 20 20 20 20 20 20 20  20 c9 20 a3 3a 20 f2 57  |         . .: .W|
00004680  69 6d 70 5f 50 6f 6c 6c  45 76 65 6e 74 4d 6f 75  |imp_PollEventMou|
00004690  73 65 43 6c 69 63 6b 0d  1a ea 13 20 20 20 20 20  |seClick....     |
000046a0  20 20 20 20 20 20 20 20  20 cb 0d 1a f4 06 20 cb  |         ..... .|
000046b0  0d 1a fe 05 e1 0d 1b 08  05 3a 0d 1b 12 19 dd 20  |.........:..... |
000046c0  f2 57 69 6d 70 5f 50 6f  6c 6c 4d 65 6e 75 50 6f  |.Wimp_PollMenuPo|
000046d0  70 55 70 0d 1b 1c 1e 6d  65 6e 75 25 3d a4 45 76  |pUp....menu%=.Ev|
000046e0  65 6e 74 5f 4d 65 6e 75  28 77 69 6e 64 6f 77 25  |ent_Menu(window%|
000046f0  29 0d 1b 26 11 20 20 c8  8e 20 6d 65 6e 75 25 20  |)..&.  .. menu% |
00004700  20 ca 0d 1b 30 0b 20 20  20 c9 20 a3 3a 0d 1b 3a  | ...0.   . .:..:|
00004710  0a 20 20 20 7f 20 3a 0d  1b 44 15 20 20 20 20 20  |.   . :..D.     |
00004720  c8 8e 20 77 69 6e 64 6f  77 25 20 ca 0d 1b 4e 17  |.. window% ...N.|
00004730  20 20 20 20 20 20 c9 20  2d 32 20 20 20 3a 20 6e  |      . -2   : n|
00004740  25 3d 30 0d 1b 58 33 20  20 20 20 20 20 20 20 c8  |%=0..X3        .|
00004750  95 20 28 28 42 61 72 5f  4d 65 6e 75 25 21 28 32  |. ((Bar_Menu%!(2|
00004760  38 2b 6e 25 2a 32 34 29  29 80 25 31 30 30 30 30  |8+n%*24)).%10000|
00004770  30 30 30 29 3d 30 0d 1b  62 12 20 20 20 20 20 20  |000)=0..b.      |
00004780  20 20 20 6e 25 2b 3d 31  0d 1b 6c 0d 20 20 20 20  |   n%+=1..l.    |
00004790  20 20 20 20 ce 0d 1b 76  3a 20 20 20 20 20 20 20  |    ...v:       |
000047a0  20 c8 99 20 22 57 69 6d  70 5f 43 72 65 61 74 65  | .. "Wimp_Create|
000047b0  4d 65 6e 75 22 2c 2c 42  61 72 5f 4d 65 6e 75 25  |Menu",,Bar_Menu%|
000047c0  2c 78 25 2d 36 34 2c 39  36 2b 6e 25 2a 34 34 0d  |,x%-64,96+n%*44.|
000047d0  1b 80 34 20 20 20 20 20  20 7f 20 3a 20 c8 99 22  |..4      . : .."|
000047e0  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
000047f0  2c 2c 6d 65 6e 75 25 2c  78 25 2d 36 34 2c 79 25  |,,menu%,x%-64,y%|
00004800  2b 32 30 0d 1b 8a 0a 20  20 20 20 20 cb 0d 1b 94  |+20....     ....|
00004810  07 20 20 cb 0d 1b 9e 05  e1 0d 1b a8 05 3a 0d 1b  |.  ..........:..|
00004820  b2 19 dd 20 f2 57 69 6d  70 5f 50 6f 6c 6c 4d 6f  |... .Wimp_PollMo|
00004830  75 73 65 53 61 76 65 0d  1b bc 0f 20 c8 8e 20 69  |useSave.... .. i|
00004840  63 6f 6e 25 20 ca 0d 1b  c6 38 20 20 c9 20 30 20  |con% ....8  . 0 |
00004850  3a 20 e7 20 62 75 74 74  6f 6e 25 20 80 20 26 35  |: . button% . &5|
00004860  30 20 8c 20 f2 57 69 6d  70 5f 50 6f 6c 6c 44 72  |0 . .Wimp_PollDr|
00004870  61 67 42 6f 78 28 77 69  6e 64 6f 77 25 29 0d 1b  |agBox(window%)..|
00004880  d0 38 20 20 c9 20 32 20  3a 20 e7 20 62 75 74 74  |.8  . 2 : . butt|
00004890  6f 6e 25 20 80 20 35 20  8c 20 20 f2 57 69 6d 70  |on% . 5 .  .Wimp|
000048a0  5f 50 6f 6c 6c 53 61 76  65 46 69 6c 65 28 77 69  |_PollSaveFile(wi|
000048b0  6e 64 6f 77 25 29 0d 1b  da 06 20 cb 0d 1b e4 05  |ndow%).... .....|
000048c0  e1 0d 1b ee 05 3a 0d 1b  f8 1f dd 20 f2 57 69 6d  |.....:..... .Wim|
000048d0  70 5f 50 6f 6c 6c 45 76  65 6e 74 4d 6f 75 73 65  |p_PollEventMouse|
000048e0  43 6c 69 63 6b 0d 1c 02  2e 20 e7 20 69 6e 74 65  |Click.... . inte|
000048f0  72 66 61 63 65 25 20 8c  20 c8 99 22 57 69 6d 70  |rface% . .."Wimp|
00004900  5f 42 6f 72 64 65 72 49  63 6f 6e 22 2c 2c 77 69  |_BorderIcon",,wi|
00004910  6d 70 25 0d 1c 0c 33 20  f2 45 76 65 6e 74 5f 4d  |mp%...3 .Event_M|
00004920  6f 75 73 65 43 6c 69 63  6b 28 77 69 6e 64 6f 77  |ouseClick(window|
00004930  25 2c 69 63 6f 6e 25 2c  62 75 74 74 6f 6e 25 2c  |%,icon%,button%,|
00004940  78 25 2c 79 25 29 0d 1c  16 15 20 c8 8e 20 20 69  |x%,y%).... ..  i|
00004950  6e 74 65 72 66 61 63 65  25 20 ca 0d 1c 20 0b 20  |nterface% ... . |
00004960  20 c9 20 b9 20 3a 0d 1c  2a 28 20 20 20 77 69 6d  | . . :..*(   wim|
00004970  70 25 21 30 3d 78 25 3a  77 69 6d 70 25 21 34 3d  |p%!0=x%:wimp%!4=|
00004980  79 25 20 3a 20 77 69 6d  70 25 21 38 3d 30 0d 1c  |y% : wimp%!8=0..|
00004990  34 28 20 20 20 77 69 6d  70 25 21 31 32 3d 77 69  |4(   wimp%!12=wi|
000049a0  6e 64 6f 77 25 20 3a 20  77 69 6d 70 25 21 31 36  |ndow% : wimp%!16|
000049b0  3d 69 63 6f 6e 25 0d 1c  3e 21 20 20 20 c8 99 22  |=icon%..>!   .."|
000049c0  57 69 6d 70 5f 42 6f 72  64 65 72 49 63 6f 6e 22  |Wimp_BorderIcon"|
000049d0  2c 2c 77 69 6d 70 25 0d  1c 48 06 20 cb 0d 1c 52  |,,wimp%..H. ...R|
000049e0  05 e1 0d 1c 5c 05 3a 0d  1c 66 21 dd 20 f2 57 69  |....\.:..f!. .Wi|
000049f0  6d 70 5f 50 6f 6c 6c 53  61 76 65 46 69 6c 65 28  |mp_PollSaveFile(|
00004a00  77 69 6e 64 6f 77 25 29  0d 1c 70 0a ea 66 69 6c  |window%)..p..fil|
00004a10  65 24 0d 1c 7a 40 20 77  69 6d 70 25 21 30 3d 77  |e$..z@ wimp%!0=w|
00004a20  69 6e 64 6f 77 25 20 3a  20 77 69 6d 70 25 21 34  |indow% : wimp%!4|
00004a30  3d 31 20 3a 20 c8 99 20  22 57 69 6d 70 5f 47 65  |=1 : .. "Wimp_Ge|
00004a40  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 77 69 6d  |tIconState",,wim|
00004a50  70 25 0d 1c 84 16 20 66  69 6c 65 24 3d 24 28 77  |p%.... file$=$(w|
00004a60  69 6d 70 25 21 32 38 29  0d 1c 8e 15 20 c8 8e 20  |imp%!28).... .. |
00004a70  a7 66 69 6c 65 24 2c 22  2e 22 29 20 ca 0d 1c 98  |.file$,".") ....|
00004a80  0d 20 20 c9 20 30 20 20  20 3a 0d 1c 99 28 66 69  |.  . 0   :...(fi|
00004a90  6c 65 24 3d 22 3c 41 6d  61 7a 65 24 44 69 72 3e  |le$="<Amaze$Dir>|
00004aa0  2e 4c 65 76 65 6c 44 61  74 61 2e 22 2b 66 69 6c  |.LevelData."+fil|
00004ab0  65 24 0d 1c 9a 23 20 f2  45 76 65 6e 74 5f 53 61  |e$...# .Event_Sa|
00004ac0  76 65 46 69 6c 65 28 66  69 6c 65 24 2c 77 69 6e  |veFile(file$,win|
00004ad0  64 6f 77 25 29 0d 1c b6  08 20 20 7f 3a 0d 1c c0  |dow%)....  .:...|
00004ae0  25 20 20 20 f2 45 76 65  6e 74 5f 53 61 76 65 46  |%   .Event_SaveF|
00004af0  69 6c 65 28 66 69 6c 65  24 2c 77 69 6e 64 6f 77  |ile(file$,window|
00004b00  25 29 0d 1c ca 06 20 cb  0d 1c d4 1b 20 c8 99 22  |%).... ..... .."|
00004b10  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
00004b20  2c 2d 31 0d 1c de 05 e1  0d 1c e8 05 3a 0d 1c f2  |,-1.........:...|
00004b30  20 dd 20 f2 57 69 6d 70  5f 50 6f 6c 6c 44 72 61  | . .Wimp_PollDra|
00004b40  67 42 6f 78 28 77 69 6e  64 6f 77 25 29 0d 1c fc  |gBox(window%)...|
00004b50  0a ea 78 25 2c 79 25 0d  1d 06 12 20 73 61 76 65  |..x%,y%.... save|
00004b60  25 3d 77 69 6e 64 6f 77  25 0d 1d 10 13 20 21 77  |%=window%.... !w|
00004b70  69 6d 70 25 3d 77 69 6e  64 6f 77 25 0d 1d 1a 23  |imp%=window%...#|
00004b80  20 c8 99 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  | .."Wimp_GetWind|
00004b90  6f 77 53 74 61 74 65 22  2c 2c 77 69 6d 70 25 0d  |owState",,wimp%.|
00004ba0  1d 24 2d 20 78 25 3d 77  69 6d 70 25 21 34 2d 77  |.$- x%=wimp%!4-w|
00004bb0  69 6d 70 25 21 32 30 3a  79 25 3d 77 69 6d 70 25  |imp%!20:y%=wimp%|
00004bc0  21 31 36 2d 77 69 6d 70  25 21 32 34 0d 1d 2e 0e  |!16-wimp%!24....|
00004bd0  20 77 69 6d 70 25 21 34  3d 30 0d 1d 38 21 20 c8  | wimp%!4=0..8! .|
00004be0  99 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  |."Wimp_GetIconSt|
00004bf0  61 74 65 22 2c 2c 77 69  6d 70 25 0d 1d 42 13 20  |ate",,wimp%..B. |
00004c00  21 77 69 6d 70 25 3d 77  69 6e 64 6f 77 25 0d 1d  |!wimp%=window%..|
00004c10  4c 0e 20 77 69 6d 70 25  21 34 3d 35 0d 1d 56 2c  |L. wimp%!4=5..V,|
00004c20  20 77 69 6d 70 25 21 38  3d 78 25 2b 77 69 6d 70  | wimp%!8=x%+wimp|
00004c30  25 21 38 3a 77 69 6d 70  25 21 31 32 3d 79 25 2b  |%!8:wimp%!12=y%+|
00004c40  77 69 6d 70 25 21 31 32  0d 1d 60 2e 20 77 69 6d  |wimp%!12..`. wim|
00004c50  70 25 21 31 36 3d 78 25  2b 77 69 6d 70 25 21 31  |p%!16=x%+wimp%!1|
00004c60  36 3a 77 69 6d 70 25 21  32 30 3d 79 25 2b 77 69  |6:wimp%!20=y%+wi|
00004c70  6d 70 25 21 32 30 0d 1d  6a 1a 20 77 69 6d 70 25  |mp%!20..j. wimp%|
00004c80  21 32 34 3d 30 3a 77 69  6d 70 25 21 32 38 3d 30  |!24=0:wimp%!28=0|
00004c90  0d 1d 74 2a 20 77 69 6d  70 25 21 33 32 3d 26 37  |..t* wimp%!32=&7|
00004ca0  46 46 46 46 46 46 46 3a  77 69 6d 70 25 21 33 36  |FFFFFFF:wimp%!36|
00004cb0  3d 26 37 46 46 46 46 46  46 46 0d 1d 7e 1c 20 c8  |=&7FFFFFFF..~. .|
00004cc0  99 22 57 69 6d 70 5f 44  72 61 67 42 6f 78 22 2c  |."Wimp_DragBox",|
00004cd0  2c 77 69 6d 70 25 0d 1d  88 05 e1 0d 1d 92 05 3a  |,wimp%.........:|
00004ce0  0d 1d 9c 18 dd 20 f2 57  69 6d 70 5f 50 6f 6c 6c  |..... .Wimp_Poll|
00004cf0  4b 65 79 50 72 65 73 73  0d 1d a6 31 20 20 77 69  |KeyPress...1  wi|
00004d00  6e 64 6f 77 25 3d 77 69  6d 70 25 21 30 3a 69 63  |ndow%=wimp%!0:ic|
00004d10  6f 6e 25 3d 77 69 6d 70  25 21 34 3a 6b 65 79 25  |on%=wimp%!4:key%|
00004d20  3d 77 69 6d 70 25 21 32  34 0d 1d b0 1f 20 20 c8  |=wimp%!24....  .|
00004d30  8e 20 a4 45 76 65 6e 74  5f 53 61 76 65 28 77 69  |. .Event_Save(wi|
00004d40  6e 64 6f 77 25 29 20 ca  0d 1d ba 28 20 20 20 c9  |ndow%) ....(   .|
00004d50  20 b9 20 3a 20 f2 57 69  6d 70 5f 50 6f 6c 6c 53  | . : .Wimp_PollS|
00004d60  61 76 65 46 69 6c 65 28  77 69 6e 64 6f 77 25 29  |aveFile(window%)|
00004d70  0d 1d c4 2f 20 20 20 c9  20 a3 3a 20 f2 45 76 65  |.../   . .: .Eve|
00004d80  6e 74 5f 4b 65 79 50 72  65 73 73 28 77 69 6e 64  |nt_KeyPress(wind|
00004d90  6f 77 25 2c 69 63 6f 6e  25 2c 6b 65 79 25 29 0d  |ow%,icon%,key%).|
00004da0  1d ce 07 20 20 cb 0d 1d  d8 05 e1 0d 1d e2 05 3a  |...  ..........:|
00004db0  0d 1d ec 1b dd 20 f2 57  69 6d 70 5f 50 6f 6c 6c  |..... .Wimp_Poll|
00004dc0  53 61 76 65 4d 65 73 73  61 67 65 0d 1d f6 04 0d  |SaveMessage.....|
00004dd0  1e 00 13 e7 20 64 72 61  67 67 69 6e 67 25 3e 30  |.... dragging%>0|
00004de0  20 8c 0d 1e 0a 12 de 20  6d 79 62 6c 6f 63 6b 25  | ...... myblock%|
00004df0  20 32 35 35 0d 1e 14 25  c8 99 22 57 69 6d 70 5f  | 255...%.."Wimp_|
00004e00  47 65 74 50 6f 69 6e 74  65 72 49 6e 66 6f 22 2c  |GetPointerInfo",|
00004e10  2c 6d 79 62 6c 6f 63 6b  25 0d 1e 1e 41 e7 20 6d  |,myblock%...A. m|
00004e20  79 62 6c 6f 63 6b 25 21  31 32 3d 53 6d 6c 6c 5f  |yblock%!12=Smll_|
00004e30  57 69 6e 64 6f 77 25 20  f2 73 77 69 74 63 68 28  |Window% .switch(|
00004e40  6d 79 62 6c 6f 63 6b 25  21 31 36 29 20 8b 20 64  |myblock%!16) . d|
00004e50  72 61 67 67 69 6e 67 25  3d a3 0d 1e 28 05 e1 0d  |ragging%=...(...|
00004e60  1e 32 05 cd 0d 1e 3c 04  0d 1e 46 1e ea 66 69 6c  |.2....<...F..fil|
00004e70  65 24 2c 77 69 6e 64 6f  77 25 2c 69 63 6f 6e 25  |e$,window%,icon%|
00004e80  2c 78 25 2c 79 25 0d 1e  50 23 20 c8 99 22 57 69  |,x%,y%..P# .."Wi|
00004e90  6d 70 5f 47 65 74 50 6f  69 6e 74 65 72 49 6e 66  |mp_GetPointerInf|
00004ea0  6f 22 2c 2c 77 69 6d 70  25 0d 1e 5a 1d e7 20 77  |o",,wimp%..Z.. w|
00004eb0  69 6d 70 25 21 31 32 3d  53 6d 6c 6c 5f 57 69 6e  |imp%!12=Smll_Win|
00004ec0  64 6f 77 25 20 e1 0d 1e  64 3a 20 77 69 6e 64 6f  |dow% ...d: windo|
00004ed0  77 25 3d 77 69 6d 70 25  21 31 32 3a 69 63 6f 6e  |w%=wimp%!12:icon|
00004ee0  25 3d 77 69 6d 70 25 21  31 36 3a 78 25 3d 77 69  |%=wimp%!16:x%=wi|
00004ef0  6d 70 25 21 30 3a 79 25  3d 77 69 6d 70 25 21 34  |mp%!0:y%=wimp%!4|
00004f00  0d 1e 6e 3e 20 77 69 6d  70 25 21 30 3d 73 61 76  |..n> wimp%!0=sav|
00004f10  65 25 20 3a 20 77 69 6d  70 25 21 34 3d 31 20 3a  |e% : wimp%!4=1 :|
00004f20  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 49 63 6f  | .. "Wimp_GetIco|
00004f30  6e 53 74 61 74 65 22 2c  2c 77 69 6d 70 25 0d 1e  |nState",,wimp%..|
00004f40  78 16 20 66 69 6c 65 24  3d 24 28 77 69 6d 70 25  |x. file$=$(wimp%|
00004f50  21 32 38 29 0d 1e 82 2b  20 66 69 6c 65 24 3d a4  |!28)...+ file$=.|
00004f60  57 69 6d 70 5f 47 65 74  46 69 6c 65 46 72 6f 6d  |Wimp_GetFileFrom|
00004f70  50 61 74 68 6e 61 6d 65  28 66 69 6c 65 24 29 0d  |Pathname(file$).|
00004f80  1e 8c 15 20 77 69 6d 70  25 21 32 30 3d 77 69 6e  |... wimp%!20=win|
00004f90  64 6f 77 25 0d 1e 96 13  20 77 69 6d 70 25 21 32  |dow%.... wimp%!2|
00004fa0  34 3d 69 63 6f 6e 25 0d  1e a0 1c 20 77 69 6d 70  |4=icon%.... wimp|
00004fb0  25 21 32 38 3d 78 25 3a  77 69 6d 70 25 21 33 32  |%!28=x%:wimp%!32|
00004fc0  3d 79 25 0d 1e aa 15 20  77 69 6d 70 25 21 33 36  |=y%.... wimp%!36|
00004fd0  3d 6c 65 6e 67 74 68 25  0d 1e b4 0f 20 77 69 6d  |=length%.... wim|
00004fe0  70 25 21 30 3d 36 34 0d  1e be 0f 20 77 69 6d 70  |p%!0=64.... wimp|
00004ff0  25 21 31 32 3d 30 0d 1e  c8 0f 20 77 69 6d 70 25  |%!12=0.... wimp%|
00005000  21 31 36 3d 31 0d 1e d2  12 20 77 69 6d 70 25 21  |!16=1.... wimp%!|
00005010  34 30 3d 26 46 46 46 0d  1e dc 16 20 24 28 77 69  |40=&FFF.... $(wi|
00005020  6d 70 25 2b 34 34 29 3d  66 69 6c 65 24 0d 1e e6  |mp%+44)=file$...|
00005030  34 20 c8 99 22 57 69 6d  70 5f 53 65 6e 64 4d 65  |4 .."Wimp_SendMe|
00005040  73 73 61 67 65 22 2c 31  37 2c 77 69 6d 70 25 2c  |ssage",17,wimp%,|
00005050  77 69 6d 70 25 21 32 30  2c 77 69 6d 70 25 21 32  |wimp%!20,wimp%!2|
00005060  34 0d 1e f0 05 e1 0d 1e  fa 05 3a 0d 1f 04 18 dd  |4.........:.....|
00005070  20 f2 57 69 6d 70 5f 50  6f 6c 6c 4d 65 73 73 61  | .Wimp_PollMessa|
00005080  67 65 73 0d 1f 0e 0b ea  20 66 69 6c 65 24 0d 1f  |ges..... file$..|
00005090  18 2c 66 69 6c 65 24 3d  a4 57 69 6d 70 5f 47 65  |.,file$=.Wimp_Ge|
000050a0  74 53 74 72 69 6e 67 41  74 41 64 64 72 65 73 73  |tStringAtAddress|
000050b0  28 77 69 6d 70 25 2b 34  34 29 0d 1f 22 15 20 20  |(wimp%+44)..".  |
000050c0  20 20 c8 8e 20 77 69 6d  70 25 21 31 36 20 ca 0d  |  .. wimp%!16 ..|
000050d0  1f 2c 1a 20 20 20 20 20  c9 20 30 20 3a 20 66 69  |.,.     . 0 : fi|
000050e0  6e 69 73 68 65 64 25 3d  b9 0d 1f 36 0e 20 20 20  |nished%=...6.   |
000050f0  20 20 c9 20 31 20 3a 0d  1f 40 0e 20 20 20 20 20  |  . 1 :..@.     |
00005100  c9 20 32 20 3a 0d 1f 4a  46 20 20 20 20 20 20 20  |. 2 :..JF       |
00005110  20 20 77 69 6d 70 25 21  30 3d 73 61 76 65 25 20  |  wimp%!0=save% |
00005120  3a 20 77 69 6d 70 25 21  34 3d 31 20 3a 20 c8 99  |: wimp%!4=1 : ..|
00005130  20 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  | "Wimp_GetIconSt|
00005140  61 74 65 22 2c 2c 77 69  6d 70 25 0d 1f 54 1b 20  |ate",,wimp%..T. |
00005150  20 20 20 20 20 24 28 77  69 6d 70 25 21 32 38 29  |     $(wimp%!28)|
00005160  3d 66 69 6c 65 24 0d 1f  5e 3c 20 20 20 20 20 20  |=file$..^<      |
00005170  77 69 6d 70 25 21 30 3d  73 61 76 65 25 20 3a 20  |wimp%!0=save% : |
00005180  77 69 6d 70 25 21 34 3d  31 20 3a 20 77 69 6d 70  |wimp%!4=1 : wimp|
00005190  25 21 38 3d 30 20 3a 20  77 69 6d 70 25 21 31 32  |%!8=0 : wimp%!12|
000051a0  3d 30 0d 1f 68 27 20 20  20 20 20 20 c8 99 20 22  |=0..h'      .. "|
000051b0  57 69 6d 70 5f 53 65 74  49 63 6f 6e 53 74 61 74  |Wimp_SetIconStat|
000051c0  65 22 2c 2c 77 69 6d 70  25 0d 1f 72 38 20 20 20  |e",,wimp%..r8   |
000051d0  20 20 20 c8 99 20 22 57  69 6d 70 5f 53 65 74 43  |   .. "Wimp_SetC|
000051e0  61 72 65 74 50 6f 73 69  74 69 6f 6e 22 2c 73 61  |aretPosition",sa|
000051f0  76 65 25 2c 31 2c 2c 2c  2d 31 2c a9 66 69 6c 65  |ve%,1,,,-1,.file|
00005200  24 0d 1f 7c 26 20 20 20  20 20 20 f2 45 76 65 6e  |$..|&      .Even|
00005210  74 5f 53 61 76 65 46 69  6c 65 28 66 69 6c 65 24  |t_SaveFile(file$|
00005220  2c 73 61 76 65 25 29 0d  1f 86 04 0d 1f 90 0c 20  |,save%)........ |
00005230  20 20 20 20 c9 20 33 0d  1f 9a 47 20 20 20 20 20  |    . 3...G     |
00005240  20 74 79 70 65 24 3d a4  57 69 6d 70 5f 46 69 6c  | type$=.Wimp_Fil|
00005250  65 54 79 70 65 28 77 69  6d 70 25 21 34 30 29 20  |eType(wimp%!40) |
00005260  3a 20 f2 45 76 65 6e 74  5f 4c 6f 61 64 46 69 6c  |: .Event_LoadFil|
00005270  65 28 66 69 6c 65 24 2c  74 79 70 65 24 29 0d 1f  |e(file$,type$)..|
00005280  a4 0b 20 20 20 20 c9 20  35 0d 1f ae 19 20 20 20  |..    . 5....   |
00005290  20 e7 20 77 69 6d 70 25  21 34 30 3d 26 36 36 36  | . wimp%!40=&666|
000052a0  20 8c 0d 1f b8 14 77 69  6d 70 25 21 31 32 3d 77  | .....wimp%!12=w|
000052b0  69 6d 70 25 21 38 0d 1f  c2 22 c8 99 20 22 57 69  |imp%!8...".. "Wi|
000052c0  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
000052d0  31 39 2c 77 69 6d 70 25  0d 1f cc 21 f2 45 76 65  |19,wimp%...!.Eve|
000052e0  6e 74 5f 4c 6f 61 64 46  69 6c 65 28 66 69 6c 65  |nt_LoadFile(file|
000052f0  24 2c 22 44 61 74 61 22  29 0d 1f d6 05 cd 0d 1f  |$,"Data").......|
00005300  e0 07 c9 20 38 0d 1f ea  15 71 75 69 74 73 65 6e  |... 8....quitsen|
00005310  64 25 3d 77 69 6d 70 25  21 34 0d 1f f4 13 e7 20  |d%=wimp%!4..... |
00005320  4d 6f 64 69 66 69 65 64  25 3d b9 20 8c 0d 1f fe  |Modified%=. ....|
00005330  14 77 69 6d 70 25 21 31  32 3d 77 69 6d 70 25 21  |.wimp%!12=wimp%!|
00005340  38 0d 20 08 22 c8 99 20  22 57 69 6d 70 5f 53 65  |8. .".. "Wimp_Se|
00005350  6e 64 4d 65 73 73 61 67  65 22 2c 31 39 2c 77 69  |ndMessage",19,wi|
00005360  6d 70 25 0d 20 12 12 e7  20 a4 5f 4f 4b 74 6f 51  |mp%. ... ._OKtoQ|
00005370  75 69 74 20 8c 0d 20 1c  24 c8 99 22 57 69 6d 70  |uit .. .$.."Wimp|
00005380  5f 47 65 74 43 61 72 65  74 50 6f 73 69 74 69 6f  |_GetCaretPositio|
00005390  6e 22 2c 2c 77 69 6d 70  25 0d 20 26 11 77 69 6d  |n",,wimp%. &.wim|
000053a0  70 25 21 32 34 3d 26 31  66 63 0d 20 30 2a c8 99  |p%!24=&1fc. 0*..|
000053b0  22 57 69 6d 70 5f 53 65  6e 64 4d 65 73 73 61 67  |"Wimp_SendMessag|
000053c0  65 22 2c 38 2c 77 69 6d  70 25 2c 71 75 69 74 73  |e",8,wimp%,quits|
000053d0  65 6e 64 25 0d 20 3a 05  cd 0d 20 44 0f 4d 6f 64  |end%. :... D.Mod|
000053e0  69 66 69 65 64 25 3d a3  0d 20 4e 05 cd 0d 20 58  |ified%=.. N... X|
000053f0  05 cb 0d 20 62 05 e1 0d  20 6c 05 3a 0d 20 76 26  |... b... l.:. v&|
00005400  dd 20 a4 57 69 6d 70 5f  47 65 74 53 74 72 69 6e  |. .Wimp_GetStrin|
00005410  67 41 74 41 64 64 72 65  73 73 28 61 72 72 61 79  |gAtAddress(array|
00005420  25 29 0d 20 80 0d ea 73  24 3a 73 24 3d 22 22 0d  |%). ...s$:s$="".|
00005430  20 8a 3c c8 95 28 3f 61  72 72 61 79 25 3c 3e 31  | .<..(?array%<>1|
00005440  33 29 80 28 3f 61 72 72  61 79 25 3c 3e 30 29 3a  |3).(?array%<>0):|
00005450  73 24 2b 3d bd 28 3f 61  72 72 61 79 25 29 3a 61  |s$+=.(?array%):a|
00005460  72 72 61 79 25 2b 3d 31  3a ce 3a 0d 20 94 07 3d  |rray%+=1:.:. ..=|
00005470  73 24 0d 20 9e 05 3a 0d  20 a8 23 dd 20 a4 57 69  |s$. ..:. .#. .Wi|
00005480  6d 70 5f 47 65 74 46 69  6c 65 46 72 6f 6d 50 61  |mp_GetFileFromPa|
00005490  74 68 6e 61 6d 65 28 66  24 29 0d 20 b2 11 c8 8e  |thname(f$). ....|
000054a0  20 a7 66 24 2c 22 2e 22  29 20 ca 0d 20 bc 10 20  | .f$,".") .. .. |
000054b0  c9 20 30 20 20 20 20 3a  3d 66 24 0d 20 c6 37 20  |. 0    :=f$. .7 |
000054c0  7f 20 3a 3d a4 57 69 6d  70 5f 47 65 74 46 69 6c  |. :=.Wimp_GetFil|
000054d0  65 46 72 6f 6d 50 61 74  68 6e 61 6d 65 28 c2 66  |eFromPathname(.f|
000054e0  24 2c a9 28 66 24 29 2d  a7 66 24 2c 22 2e 22 29  |$,.(f$)-.f$,".")|
000054f0  29 29 0d 20 d0 05 cb 0d  20 da 05 3a 0d 20 e4 1b  |)). .... ..:. ..|
00005500  dd 20 a4 57 69 6d 70 5f  46 69 6c 65 54 79 70 65  |. .Wimp_FileType|
00005510  28 74 79 70 65 25 29 0d  20 ee 0c c8 8e 74 79 70  |(type%). ....typ|
00005520  65 25 ca 0d 20 f8 11 c9  26 46 46 46 3a 3d 22 54  |e%.. ...&FFF:="T|
00005530  65 78 74 22 0d 21 02 11  c9 26 46 46 44 3a 3d 22  |ext".!...&FFD:="|
00005540  44 61 74 61 22 0d 21 0c  12 c9 26 46 46 42 3a 3d  |Data".!...&FFB:=|
00005550  22 42 61 73 69 63 22 0d  21 16 13 c9 26 46 46 39  |"Basic".!...&FF9|
00005560  3a 3d 22 53 70 72 69 74  65 22 0d 21 20 14 c9 26  |:="Sprite".! ..&|
00005570  46 45 44 3a 3d 22 50 61  6c 65 74 74 65 22 0d 21  |FED:="Palette".!|
00005580  2a 15 c9 26 46 45 43 3a  3d 22 54 65 6d 70 6c 61  |*..&FEC:="Templa|
00005590  74 65 22 0d 21 34 11 c9  26 41 46 46 3a 3d 22 44  |te".!4..&AFF:="D|
000055a0  72 61 77 22 0d 21 3e 14  c9 26 31 30 30 30 3a 3d  |raw".!>..&1000:=|
000055b0  22 46 6f 6c 64 65 72 22  0d 21 48 19 c9 26 32 30  |"Folder".!H..&20|
000055c0  30 30 3a 3d 22 41 70 70  6c 69 63 61 74 69 6f 6e  |00:="Application|
000055d0  22 0d 21 52 0f 7f 3d c3  7e 28 74 79 70 65 25 29  |".!R..=.~(type%)|
000055e0  0d 21 5c 05 cb 0d 21 66  05 3a 0d 21 70 04 0d ff  |.!\...!f.:.!p...|
000055f0