Home » Archimedes archive » Archimedes World » AW-1993-01.adf » AWJan93 » !AWJan93/Goodies/Wimp/Babbage/!Babbage/Wimp

!AWJan93/Goodies/Wimp/Babbage/!Babbage/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-1993-01.adf » AWJan93
Filename: !AWJan93/Goodies/Wimp/Babbage/!Babbage/Wimp
Read OK:
File size: 54C6 bytes
Load address: 0000
Exec address: 0000
Duplicates

There is 1 duplicate copy of this file in the archive:

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

� > Wimp Library
O�|_________________________________________________________________________
O�|_________________________________________________________________________
(O�|_________________________________________________________________________
2�|
<�|
F�|
PE�|                -------------------------------          6/1/92
Z/�|                   WIMP PROCEDURE LIBRARY
d�|
n,�|                     Index of Contents
x�|
�5�|                -------------------------------
��|
�$�|                    1.�Windows
��|
�"�|                    2.�Icons
��|
�"�|                    3.�Menus
��|
�$�|                    4.�Sprites
��|
�*�|                    5.�Miscellaneous
��|
�$�|                    6.�Polling
�|
5�|                -------------------------------
�|
"�|
,�|
6�|
@�|
J�|
T5�|                -------------------------------
^*�|                          1.�Windows
h5�|                -------------------------------
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�|
N(� �Wimp_WindowAlert(title$,message$)
X+�Wimp_WindowAlertBox(title$,message$,0)
b�
l:
v3� �Wimp_WindowAlertBox(title$,message$,button%)
�� 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
*:
4+� �Wimp_WindowErrorBox(title$,message$)
>+�Wimp_WindowAlertBox(title$,message$,2)
H�
R:
\ � �Wimp_WindowTitle(window%)
fwimp%!0=window%
p ș "Wimp_GetWindInfo",,wimp%
z6� ((wimp%!60)�&100)=0 � 1,"Title isn't indirected"
�=$(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   :
8  : i%=40
B �
L$   wimp%!4=wimp%!i% : wimp%!0=c%
V$   ș "Wimp_GetIconState",,wimp%
`-   sp$=�Wimp_GetStringAtAddress(wimp%!28)
j"   ș "Wimp_DeleteIcon",,wimp%
t   Ȏ sprites% �
~    � 1    : wimp%!32=1
�     :
�/     ș "OS_SpriteOp",&108,sprites% � ,,,n%
�
     j%=0
�     � : j%+=1
�=      ș "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
�7      sp2$=�Wimp_GetStringAtAddress(pointer_block%)
�     � j%=n% � sp$=sp2$
�4     � sp$=sp2$ � wimp%!32=sprites% � wimp%!32=1
�   �
�   wimp%!4=c%
�.   ș "Wimp_CreateIcon",,wimp%+4 � handle%
�   i%+=4
 � (wimp%!i%)=-1

�
=c%
:
(%� �Wimp_WindowBringToTop(window%)
2!wimp%=window%
<#ș "Wimp_GetWindowState",,wimp%
Fwimp%!28=-1
Pș "Wimp_OpenWindow",,wimp%
Z�
d:
n � �Wimp_WindowClose(window%)
x!wimp%=window%
� ș "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�|
T�|
^1�|                  -------------------------
h(�|                          2.�Icons
r1�|                  -------------------------
|�|
��|
�=�|             ------------------------------------------
��|
�(�|                      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�|
::
D� �Wimp_IconBar(Sprite$)
N� icon%
Xwimp%!0=-1
bwimp%!4=0     : wimp%!8=0
lwimp%!12=68 : wimp%!16=68
vwimp%!20=&3002
�$(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"
4=$(wimp%!32)
>:
H&� �Wimp_IconDisable(window%,icon%)
R#wimp%!0=window% : wimp%!4=icon%
\$wimp%!8=1<<22   : wimp%!12=1<<22
f!ș "Wimp_SetIconState",,wimp%
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%
	87� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
	B$(wimp%!28)=text$
	L#wimp%!0=window% : wimp%!4=icon%
	Vwimp%!8=0 : wimp%!12=0
	`!ș "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�|
Z.�|            PROCWimp_MenuAdjustOn(menu%)
d+�|            FNWimp_MenuChoice(level%)
n*�|            FNWimp_MenuCreate(menu$)
x$�|            FNWimp_MenuColours
�2�|            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:
T� �Wimp_MenuAdjustOn(menu%)
^,ș "Wimp_GetPointerInfo",,pointer_block%
h^� ((pointer_block%!8)�1)=1 � ș "Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4
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$ �
&	 � ""
0  :
:1  !index%=0 : index%!4=-1 : index%!8=&7000021
D  length%=�menu$,"\")-1
N  k%=��menu$,length%),">")
X
  Ȏ k% �
b
   � 0
l   
v%    s%=�(�menu$,k%+1,length%-k%))
�    index%!4=s%
�    length%=k%-1
�  �
�"  $(index%+12)=�menu$,length%)
�'  � length%>width% � width%=length%
�  index%+=24
��
��
�menu%!16=16*(width%+1)
�(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$)

4� i%=0 � 15

>
Ȏ � �

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

R : j%=0

\�

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

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

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%)
8:menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<3)
B�
L:
V� �Wimp_MenuClose
`ș "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%)
2menu1%!(8+item%*24)=menu2%
<�
F:
P'� �Wimp_MenuItem(menu%,item%,item$)
Z,$(menu%+(40+(item%-1)*24))=�item$,12)+�0
d�
n:
x$� �Wimp_MenuMessage(menu%,item%)
�<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%)
67menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�1
@�
J:
T#� �Wimp_MenuTitle(menu%,title$)
^$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�|                  -------------------------
�|
�|
:�|                ------------------------------------
&�|
0(�|                      Procedures :
:�|
D�|
N,�|                  PROCWimp_SpritesLoad
X:�|                  PROCWimp_SpritesPathLoad(pathname$
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�|
>�|
H1�|                  -------------------------
R(�|                          5.�Files
\1�|                  -------------------------
f�|
p�|
z5�|                -------------------------------
��|
�(�|                      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%�
8�&FFF:="Text"
B�&FFD:="Data"
L�&FFB:="Basic"
V�&FF9:="Sprite"
`�&FED:="Palette"
j�&FEC:="Template"
t�&AFF:="Draw"
~�&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%)
2
�s$:s$=""
<<ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�:
F=s$
P:
Z#� �Wimp_GetFileFromPathname(f$)
dȎ �f$,".") �
n � 0    :=f$
x7  :=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,".")))
��
�:
�� �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�|                  -------------------------
6,�|                      5.�Miscellaneous
@1�|                  -------------------------
J�|
T�|
^5�|                -------------------------------
h�|
r(�|                      Procedures :
|�|
��|
�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%
0task$=TaskName$
:+indirect_sprites%=1 : direct_sprites%=1
D�Wimp_SetEventVariables
N� � �Wimp_Error:�
X@ș"Wimp_Initialise",200,&4B534154,TaskName$ � version%,task%
b�
l:
v� �Wimp_BASICParameters
� � 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
43message_quit%=0:message_save%=2:message_load%=3
>!mouse_button%=2:save_event%=0
H top_line%=0 : bottom_line%=0
R�
\:
f� �Wimp_Error
p
�X$,x%
z	� � �
�x%=�
�X$=�$+"atline"+�(x%�10)
��ErrorMsg%36
�EErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x%
�$(ErrorMsg%+24)="!RunImage"
�%ș"Wimp_SendMessage",17,ErrorMsg%
��Wimp_WindowAlert(task$,X$)
��Wimp_CloseDown
��
�:
�� �Wimp_CloseDown
�#ș"Wimp_CloseDown",task%,"TASK"
��
:
� �Wimp_Quit
finished%=�
$�
.:
8#� �Wimp_ReadVariable(Variable$)
B�len%,result%,variable%
L$wimp%=Variable$
V3ș"OS_ReadVarVal",wimp%,wimp%+255,255,,3�,,len%
`wimp%?(len%+255)=13
j=$(wimp%+255)
t:
~:
��|
��|
��|
��|
�)�|                   ----------------
�'�|                     Wimp Polling
�)�|                   ----------------
��|
��|
�:
�� �Wimp_WaitForEvent
�� mask%,event%
finished%=�

mask%=%111000011001
�
' ș"Wimp_Poll",mask%,wimp% � event%
( Ȏ event% �
2
  �0 :
<  �1 : �Wimp_PollDrawWindow
F&  �2 : ș "Wimp_OpenWindow",,wimp%
P   �3 : �Wimp_PollCloseWindow
Z
  �4 :
d
  �5 :
n  �6 : �Wimp_PollMouseClick
x   �7 : �Wimp_PollSaveMessage
�  �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%
6- �Event_Draw(window%,x_origin%,y_origin%)
@' ș"Wimp_GetRectangle",,wimp%�more%
J�
T�
^:
h� �Wimp_PollCloseWindow
r%  ș "Wimp_GetPointerInfo",,wimp%
|)  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%)
0  Ȏ menu%  �
:   � �:
D
    :
N     Ȏ window% �
X      � -2   : n%=0
b3        ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0
l         n%+=1
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% �
*  � � :
4(   wimp%!0=x%:wimp%!4=y% : wimp%!8=0
>(   wimp%!12=window% : wimp%!16=icon%
H!   ș"Wimp_BorderIcon",,wimp%
R �
\�
f:
p!� �Wimp_PollSaveFile(window%)
z
�file$
�@ wimp%!0=window% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp%
� file$=$(wimp%!28)
� Ȏ �file$,".") �
�
  � 0   :
�@   $(wimp%+4)="To save, drag the icon to a directory window"
�+   ș "Wimp_ReportError",wimp%,16,task$
�  :
�%   �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
8 wimp%!4=0
B! ș"Wimp_GetIconState",,wimp%
L !wimp%=window%
V wimp%!4=5
`, wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
j. wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
t wimp%!24=0:wimp%!28=0
~* wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
� ș"Wimp_DragBox",,wimp%
��
�:
�� �Wimp_PollKeyPress
�1  window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
�  Ȏ �Event_Save(window%) �
�   � � :
�   Ȏ key% �
�+    � &01B : �Wimp_WindowClose(window%)
�'     : �Wimp_PollSaveFile(window%)
�   �
�/   � �: �Event_KeyPress(window%,icon%,key%)
  �

�
:
� �Wimp_PollSaveMessage
(�file$,window%,icon%,x%,y%
2# ș"Wimp_GetPointerInfo",,wimp%
<: window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
F> wimp%!0=save% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp%
P file$=$(wimp%!28)
Z+ file$=�Wimp_GetFileFromPathname(file$)
d wimp%!20=window%
n wimp%!24=icon%
x 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%=�
     � 1 :
     � 2 :
"/      � PROCWimp_IconPutText(save%,1,file$)
,C      wimp%!0=save% : wimp%!4=1 : ș "Wimp_GetIconState",,wimp%
6      $(wimp%!28)=file$
@<      wimp%!0=save% : wimp%!4=1 : wimp%!8=0 : wimp%!12=0
J'      ș "Wimp_SetIconState",,wimp%
T0      � PROCWimp_IconCaret(save%,1,LENfile$)
^8      ș "Wimp_SetCaretPosition",save%,1,,,-1,�file$
h&      �Event_SaveFile(file$,save%)
r     � 3
|G      type$=�Wimp_FileType(wimp%!40) : �Event_LoadFile(file$,type$)
�	    �
��
�:
�&� �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"
 0�&FFD:="Data"
 :�&FFB:="Basic"
 D�&FF9:="Sprite"
 N�&FED:="Palette"
 X�&FEC:="Template"
 b�&AFF:="Draw"
 l�&1000:="Folder"
 v�&2000:="Application"
 �=�~(type%)
 ��
 �:
 �
�
00000000  0d 00 0a 14 f4 20 3e 20  57 69 6d 70 20 4c 69 62  |..... > Wimp Lib|
00000010  72 61 72 79 0d 00 14 4f  f4 7c 5f 5f 5f 5f 5f 5f  |rary...O.|______|
00000020  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00000060  5f 5f 5f 0d 00 1e 4f f4  7c 5f 5f 5f 5f 5f 5f 5f  |___...O.|_______|
00000070  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
000000b0  5f 5f 0d 00 28 4f f4 7c  5f 5f 5f 5f 5f 5f 5f 5f  |__..(O.|________|
000000c0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00000100  5f 0d 00 32 06 f4 7c 0d  00 3c 06 f4 7c 0d 00 46  |_..2..|..<..|..F|
00000110  06 f4 7c 0d 00 50 45 f4  7c 20 20 20 20 20 20 20  |..|..PE.|       |
00000120  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 2d  |         -------|
00000130  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000140  2d 2d 2d 2d 2d 2d 2d 2d  20 20 20 20 20 20 20 20  |--------        |
00000150  20 20 36 2f 31 2f 39 32  0d 00 5a 2f f4 7c 20 20  |  6/1/92..Z/.|  |
00000160  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000170  20 57 49 4d 50 20 50 52  4f 43 45 44 55 52 45 20  | WIMP PROCEDURE |
00000180  4c 49 42 52 41 52 59 0d  00 64 06 f4 7c 0d 00 6e  |LIBRARY..d..|..n|
00000190  2c f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |,.|             |
000001a0  20 20 20 20 20 20 20 20  49 6e 64 65 78 20 6f 66  |        Index of|
000001b0  20 43 6f 6e 74 65 6e 74  73 0d 00 78 06 f4 7c 0d  | Contents..x..|.|
000001c0  00 82 35 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..5.|           |
000001d0  20 20 20 20 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |     -----------|
000001e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000001f0  2d 2d 2d 2d 0d 00 8c 06  f4 7c 0d 00 96 24 f4 7c  |----.....|...$.||
00000200  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000210  20 20 20 20 31 2e a0 57  69 6e 64 6f 77 73 0d 00  |    1..Windows..|
00000220  a0 06 f4 7c 0d 00 aa 22  f4 7c 20 20 20 20 20 20  |...|...".|      |
00000230  20 20 20 20 20 20 20 20  20 20 20 20 20 20 32 2e  |              2.|
00000240  a0 49 63 6f 6e 73 0d 00  b4 06 f4 7c 0d 00 be 22  |.Icons.....|..."|
00000250  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
00000260  20 20 20 20 20 20 33 2e  a0 4d 65 6e 75 73 0d 00  |      3..Menus..|
00000270  c8 06 f4 7c 0d 00 d2 24  f4 7c 20 20 20 20 20 20  |...|...$.|      |
00000280  20 20 20 20 20 20 20 20  20 20 20 20 20 20 34 2e  |              4.|
00000290  a0 53 70 72 69 74 65 73  0d 00 dc 06 f4 7c 0d 00  |.Sprites.....|..|
000002a0  e6 2a f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.*.|            |
000002b0  20 20 20 20 20 20 20 20  35 2e a0 4d 69 73 63 65  |        5..Misce|
000002c0  6c 6c 61 6e 65 6f 75 73  0d 00 f0 06 f4 7c 0d 00  |llaneous.....|..|
000002d0  fa 24 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.$.|            |
000002e0  20 20 20 20 20 20 20 20  36 2e a0 50 6f 6c 6c 69  |        6..Polli|
000002f0  6e 67 0d 01 04 06 f4 7c  0d 01 0e 35 f4 7c 20 20  |ng.....|...5.|  |
00000300  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 2d  |              --|
00000310  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000320  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 01 18  |-------------...|
00000330  06 f4 7c 0d 01 22 06 f4  7c 0d 01 2c 06 f4 7c 0d  |..|.."..|..,..|.|
00000340  01 36 06 f4 7c 0d 01 40  06 f4 7c 0d 01 4a 06 f4  |.6..|..@..|..J..|
00000350  7c 0d 01 54 35 f4 7c 20  20 20 20 20 20 20 20 20  ||..T5.|         |
00000360  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
00000370  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000380  2d 2d 2d 2d 2d 2d 0d 01  5e 2a f4 7c 20 20 20 20  |------..^*.|    |
00000390  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000003a0  20 20 20 20 20 20 31 2e  a0 57 69 6e 64 6f 77 73  |      1..Windows|
000003b0  0d 01 68 35 f4 7c 20 20  20 20 20 20 20 20 20 20  |..h5.|          |
000003c0  20 20 20 20 20 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |      ----------|
000003d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000003e0  2d 2d 2d 2d 2d 0d 01 72  06 f4 7c 0d 01 7c 06 f4  |-----..r..|..|..|
000003f0  7c 0d 01 86 40 f4 7c 20  20 20 20 20 20 20 20 20  ||...@.|         |
00000400  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00000410  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000430  2d 0d 01 90 06 f4 7c 0d  01 9a 28 f4 7c 20 20 20  |-.....|...(.|   |
00000440  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000450  20 20 20 50 72 6f 63 65  64 75 72 65 73 20 3a 0d  |   Procedures :.|
00000460  01 a4 06 f4 7c 0d 01 ae  38 f4 7c 20 20 20 20 20  |....|...8.|     |
00000470  20 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  |        PROCWimp|
00000480  5f 57 69 6e 64 6f 77 41  6c 65 72 74 28 74 69 74  |_WindowAlert(tit|
00000490  6c 65 24 2c 6d 65 73 73  61 67 65 24 29 0d 01 b8  |le$,message$)...|
000004a0  43 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |C.|             |
000004b0  50 52 4f 43 57 69 6d 70  5f 57 69 6e 64 6f 77 41  |PROCWimp_WindowA|
000004c0  6c 65 72 74 42 6f 78 28  74 69 74 6c 65 24 2c 6d  |lertBox(title$,m|
000004d0  65 73 73 61 67 65 24 2c  62 75 74 74 6f 6e 25 29  |essage$,button%)|
000004e0  0d 01 c2 37 f4 7c 20 20  20 20 20 20 20 20 20 20  |...7.|          |
000004f0  20 20 20 46 4e 57 69 6d  70 5f 57 69 6e 64 6f 77  |   FNWimp_Window|
00000500  43 61 6e 63 65 6c 28 74  69 74 6c 65 24 2c 6d 65  |Cancel(title$,me|
00000510  73 73 61 67 65 24 29 0d  01 cc 3b f4 7c 20 20 20  |ssage$)...;.|   |
00000520  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00000530  6d 70 5f 57 69 6e 64 6f  77 45 72 72 6f 72 42 6f  |mp_WindowErrorBo|
00000540  78 28 74 69 74 6c 65 24  2c 6d 65 73 73 61 67 65  |x(title$,message|
00000550  24 29 0d 01 d6 2e f4 7c  20 20 20 20 20 20 20 20  |$).....|        |
00000560  20 20 20 20 20 46 4e 57  69 6d 70 5f 57 69 6e 64  |     FNWimp_Wind|
00000570  6f 77 54 69 74 6c 65 28  77 69 6e 64 6f 77 25 29  |owTitle(window%)|
00000580  0d 01 e0 2d f4 7c 20 20  20 20 20 20 20 20 20 20  |...-.|          |
00000590  20 20 20 46 4e 57 69 6d  70 5f 57 69 6e 64 6f 77  |   FNWimp_Window|
000005a0  4c 6f 61 64 28 77 69 6e  64 6f 77 24 29 0d 01 ea  |Load(window$)...|
000005b0  3b f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |;.|             |
000005c0  46 4e 57 69 6d 70 5f 57  69 6e 64 6f 77 4c 6f 61  |FNWimp_WindowLoa|
000005d0  64 46 72 6f 6d 28 77 69  6e 64 6f 77 24 2c 74 65  |dFrom(window$,te|
000005e0  6d 70 6c 61 74 65 24 29  0d 01 f4 35 f4 7c 20 20  |mplate$)...5.|  |
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 42 72 69 6e 67 54  |imp_WindowBringT|
00000610  6f 54 6f 70 28 77 69 6e  64 6f 77 25 29 0d 01 fe  |oTop(window%)...|
00000620  34 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |4.|             |
00000630  50 52 4f 43 57 69 6d 70  5f 57 69 6e 64 6f 77 46  |PROCWimp_WindowF|
00000640  6f 72 63 65 44 72 61 77  28 77 69 6e 64 6f 77 25  |orceDraw(window%|
00000650  29 0d 02 08 2f f4 7c 20  20 20 20 20 20 20 20 20  |).../.|         |
00000660  20 20 20 20 50 52 4f 43  57 69 6d 70 5f 57 69 6e  |    PROCWimp_Win|
00000670  64 6f 77 4f 70 65 6e 28  77 69 6e 64 6f 77 25 29  |dowOpen(window%)|
00000680  0d 02 12 2b f4 7c 20 20  20 20 20 20 20 20 20 20  |...+.|          |
00000690  20 20 20 50 52 4f 43 57  69 6d 70 5f 57 69 6e 64  |   PROCWimp_Wind|
000006a0  6f 77 49 6e 74 65 72 66  61 63 65 0d 02 1c 06 f4  |owInterface.....|
000006b0  7c 0d 02 26 3f f4 7c 20  20 20 20 20 20 20 20 20  ||..&?.|         |
000006c0  20 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  --------------|
000006d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000006f0  0d 02 30 06 f4 7c 0d 02  3a 06 f4 7c 0d 02 44 06  |..0..|..:..|..D.|
00000700  f4 7c 0d 02 4e 28 dd 20  f2 57 69 6d 70 5f 57 69  |.|..N(. .Wimp_Wi|
00000710  6e 64 6f 77 41 6c 65 72  74 28 74 69 74 6c 65 24  |ndowAlert(title$|
00000720  2c 6d 65 73 73 61 67 65  24 29 0d 02 58 2b f2 57  |,message$)..X+.W|
00000730  69 6d 70 5f 57 69 6e 64  6f 77 41 6c 65 72 74 42  |imp_WindowAlertB|
00000740  6f 78 28 74 69 74 6c 65  24 2c 6d 65 73 73 61 67  |ox(title$,messag|
00000750  65 24 2c 30 29 0d 02 62  05 e1 0d 02 6c 05 3a 0d  |e$,0)..b....l.:.|
00000760  02 76 33 dd 20 f2 57 69  6d 70 5f 57 69 6e 64 6f  |.v3. .Wimp_Windo|
00000770  77 41 6c 65 72 74 42 6f  78 28 74 69 74 6c 65 24  |wAlertBox(title$|
00000780  2c 6d 65 73 73 61 67 65  24 2c 62 75 74 74 6f 6e  |,message$,button|
00000790  25 29 0d 02 80 0f ea 20  72 65 73 70 6f 6e 73 65  |%)..... response|
000007a0  25 0d 02 8a 17 24 28 77  69 6d 70 25 2b 34 29 3d  |%....$(wimp%+4)=|
000007b0  6d 65 73 73 61 67 65 24  0d 02 94 10 c8 8e 20 62  |message$...... b|
000007c0  75 74 74 6f 6e 25 20 ca  0d 02 9e 19 20 c9 20 32  |utton% ..... . 2|
000007d0  20 20 20 20 3a 20 72 65  73 70 6f 6e 73 65 25 3d  |    : response%=|
000007e0  31 0d 02 a8 1a 20 c9 20  31 20 20 20 20 3a 20 72  |1.... . 1    : r|
000007f0  65 73 70 6f 6e 73 65 25  3d 31 35 0d 02 b2 21 20  |esponse%=15...! |
00000800  c9 20 33 20 20 20 20 3a  20 72 65 73 70 6f 6e 73  |. 3    : respons|
00000810  65 25 3d 28 31 3c 3c 35  29 2b 31 36 0d 02 bc 21  |e%=(1<<5)+16...!|
00000820  20 c9 20 34 20 20 20 20  3a 20 72 65 73 70 6f 6e  | . 4    : respon|
00000830  73 65 25 3d 28 31 3c 3c  36 29 2b 31 36 0d 02 c6  |se%=(1<<6)+16...|
00000840  14 7f 20 3a 20 72 65 73  70 6f 6e 73 65 25 3d 31  |.. : response%=1|
00000850  36 0d 02 d0 05 cb 0d 02  da 3d c8 99 20 22 57 69  |6........=.. "Wi|
00000860  6d 70 5f 52 65 70 6f 72  74 45 72 72 6f 72 22 2c  |mp_ReportError",|
00000870  77 69 6d 70 25 2c 72 65  73 70 6f 6e 73 65 25 2c  |wimp%,response%,|
00000880  74 69 74 6c 65 24 20 b8  20 2c 72 65 73 70 6f 6e  |title$ . ,respon|
00000890  73 65 25 0d 02 e4 05 e1  0d 02 ee 05 3a 0d 02 f8  |se%.........:...|
000008a0  29 dd 20 a4 57 69 6d 70  5f 57 69 6e 64 6f 77 43  |). .Wimp_WindowC|
000008b0  61 6e 63 65 6c 28 74 69  74 6c 65 24 2c 6d 65 73  |ancel(title$,mes|
000008c0  73 61 67 65 24 29 0d 03  02 17 24 28 77 69 6d 70  |sage$)....$(wimp|
000008d0  25 2b 34 29 3d 6d 65 73  73 61 67 65 24 0d 03 0c  |%+4)=message$...|
000008e0  10 72 65 73 70 6f 6e 73  65 25 3d 32 33 0d 03 16  |.response%=23...|
000008f0  3d c8 99 20 22 57 69 6d  70 5f 52 65 70 6f 72 74  |=.. "Wimp_Report|
00000900  45 72 72 6f 72 22 2c 77  69 6d 70 25 2c 72 65 73  |Error",wimp%,res|
00000910  70 6f 6e 73 65 25 2c 74  69 74 6c 65 24 20 b8 20  |ponse%,title$ . |
00000920  2c 72 65 73 70 6f 6e 73  65 25 0d 03 20 10 3d 72  |,response%.. .=r|
00000930  65 73 70 6f 6e 73 65 25  2d 32 0d 03 2a 05 3a 0d  |esponse%-2..*.:.|
00000940  03 34 2b dd 20 f2 57 69  6d 70 5f 57 69 6e 64 6f  |.4+. .Wimp_Windo|
00000950  77 45 72 72 6f 72 42 6f  78 28 74 69 74 6c 65 24  |wErrorBox(title$|
00000960  2c 6d 65 73 73 61 67 65  24 29 0d 03 3e 2b f2 57  |,message$)..>+.W|
00000970  69 6d 70 5f 57 69 6e 64  6f 77 41 6c 65 72 74 42  |imp_WindowAlertB|
00000980  6f 78 28 74 69 74 6c 65  24 2c 6d 65 73 73 61 67  |ox(title$,messag|
00000990  65 24 2c 32 29 0d 03 48  05 e1 0d 03 52 05 3a 0d  |e$,2)..H....R.:.|
000009a0  03 5c 20 dd 20 a4 57 69  6d 70 5f 57 69 6e 64 6f  |.\ . .Wimp_Windo|
000009b0  77 54 69 74 6c 65 28 77  69 6e 64 6f 77 25 29 0d  |wTitle(window%).|
000009c0  03 66 13 77 69 6d 70 25  21 30 3d 77 69 6e 64 6f  |.f.wimp%!0=windo|
000009d0  77 25 0d 03 70 20 c8 99  20 22 57 69 6d 70 5f 47  |w%..p .. "Wimp_G|
000009e0  65 74 57 69 6e 64 49 6e  66 6f 22 2c 2c 77 69 6d  |etWindInfo",,wim|
000009f0  70 25 0d 03 7a 36 e7 20  28 28 77 69 6d 70 25 21  |p%..z6. ((wimp%!|
00000a00  36 30 29 80 26 31 30 30  29 3d 30 20 85 20 31 2c  |60).&100)=0 . 1,|
00000a10  22 54 69 74 6c 65 20 69  73 6e 27 74 20 69 6e 64  |"Title isn't ind|
00000a20  69 72 65 63 74 65 64 22  0d 03 84 10 3d 24 28 77  |irected"....=$(w|
00000a30  69 6d 70 25 21 37 36 29  0d 03 8e 05 3a 0d 03 98  |imp%!76)....:...|
00000a40  1f dd 20 a4 57 69 6d 70  5f 57 69 6e 64 6f 77 4c  |.. .Wimp_WindowL|
00000a50  6f 61 64 28 77 69 6e 64  6f 77 24 29 0d 03 a2 39  |oad(window$)...9|
00000a60  3d a4 57 69 6d 70 5f 57  69 6e 64 6f 77 4c 6f 61  |=.Wimp_WindowLoa|
00000a70  64 46 72 6f 6d 28 77 69  6e 64 6f 77 24 2c 22 3c  |dFrom(window$,"<|
00000a80  4f 62 65 79 24 44 69 72  3e 2e 54 65 6d 70 6c 61  |Obey$Dir>.Templa|
00000a90  74 65 73 22 29 0d 03 ac  05 3a 0d 03 b6 2d dd 20  |tes")....:...-. |
00000aa0  a4 57 69 6d 70 5f 57 69  6e 64 6f 77 4c 6f 61 64  |.Wimp_WindowLoad|
00000ab0  46 72 6f 6d 28 77 69 6e  64 6f 77 24 2c 74 65 6d  |From(window$,tem|
00000ac0  70 6c 61 74 65 24 29 0d  03 c0 1a ea 20 63 25 2c  |plate$)..... c%,|
00000ad0  69 25 2c 6e 25 2c 6a 25  2c 73 70 24 2c 73 70 32  |i%,n%,j%,sp$,sp2|
00000ae0  24 0d 03 ca 25 c8 99 20  22 57 69 6d 70 5f 4f 70  |$...%.. "Wimp_Op|
00000af0  65 6e 54 65 6d 70 6c 61  74 65 22 2c 2c 74 65 6d  |enTemplate",,tem|
00000b00  70 6c 61 74 65 24 0d 03  d4 4d c8 99 20 22 57 69  |plate$...M.. "Wi|
00000b10  6d 70 5f 4c 6f 61 64 54  65 6d 70 6c 61 74 65 22  |mp_LoadTemplate"|
00000b20  2c 2c 77 69 6d 70 25 2c  69 63 6f 6e 73 25 2c 69  |,,wimp%,icons%,i|
00000b30  63 6f 6e 5f 6d 65 6d 6f  72 79 25 2c 2d 31 2c 77  |con_memory%,-1,w|
00000b40  69 6e 64 6f 77 24 2c 30  20 b8 20 2c 2c 69 63 6f  |indow$,0 . ,,ico|
00000b50  6e 73 25 0d 03 de 11 c8  8e 20 73 70 72 69 74 65  |ns%...... sprite|
00000b60  73 25 20 ca 0d 03 e8 1f  20 c9 20 31 20 20 20 20  |s% ..... . 1    |
00000b70  3a 20 77 69 6d 70 25 21  36 34 3d 73 70 72 69 74  |: wimp%!64=sprit|
00000b80  65 73 25 0d 03 f2 29 20  7f 20 3a 20 77 69 6d 70  |es%...) . : wimp|
00000b90  25 21 36 34 3d a4 45 76  65 6e 74 5f 53 70 72 69  |%!64=.Event_Spri|
00000ba0  74 65 73 28 77 69 6e 64  6f 77 25 29 0d 03 fc 05  |tes(window%)....|
00000bb0  cb 0d 04 06 26 c8 99 20  22 57 69 6d 70 5f 43 72  |....&.. "Wimp_Cr|
00000bc0  65 61 74 65 57 69 6e 64  6f 77 22 2c 2c 77 69 6d  |eateWindow",,wim|
00000bd0  70 25 20 b8 20 63 25 0d  04 10 1b c8 99 20 22 57  |p% . c%...... "W|
00000be0  69 6d 70 5f 43 6c 6f 73  65 54 65 6d 70 6c 61 74  |imp_CloseTemplat|
00000bf0  65 22 0d 04 1a 37 c8 99  20 22 57 69 6d 70 5f 57  |e"...7.. "Wimp_W|
00000c00  68 69 63 68 49 63 6f 6e  22 2c 63 25 2c 77 69 6d  |hichIcon",c%,wim|
00000c10  70 25 2b 34 30 2c 31 2b  32 2b 28 31 3c 3c 38 29  |p%+40,1+2+(1<<8)|
00000c20  2c 32 2b 28 31 3c 3c 38  29 0d 04 24 11 c8 8e 20  |,2+(1<<8)..$... |
00000c30  77 69 6d 70 25 21 34 30  20 ca 0d 04 2e 0d 20 c9  |wimp%!40 ..... .|
00000c40  20 2d 31 20 20 20 3a 0d  04 38 0e 20 7f 20 3a 20  | -1   :..8. . : |
00000c50  69 25 3d 34 30 0d 04 42  06 20 f5 0d 04 4c 24 20  |i%=40..B. ...L$ |
00000c60  20 20 77 69 6d 70 25 21  34 3d 77 69 6d 70 25 21  |  wimp%!4=wimp%!|
00000c70  69 25 20 3a 20 77 69 6d  70 25 21 30 3d 63 25 0d  |i% : wimp%!0=c%.|
00000c80  04 56 24 20 20 20 c8 99  20 22 57 69 6d 70 5f 47  |.V$   .. "Wimp_G|
00000c90  65 74 49 63 6f 6e 53 74  61 74 65 22 2c 2c 77 69  |etIconState",,wi|
00000ca0  6d 70 25 0d 04 60 2d 20  20 20 73 70 24 3d a4 57  |mp%..`-   sp$=.W|
00000cb0  69 6d 70 5f 47 65 74 53  74 72 69 6e 67 41 74 41  |imp_GetStringAtA|
00000cc0  64 64 72 65 73 73 28 77  69 6d 70 25 21 32 38 29  |ddress(wimp%!28)|
00000cd0  0d 04 6a 22 20 20 20 c8  99 20 22 57 69 6d 70 5f  |..j"   .. "Wimp_|
00000ce0  44 65 6c 65 74 65 49 63  6f 6e 22 2c 2c 77 69 6d  |DeleteIcon",,wim|
00000cf0  70 25 0d 04 74 14 20 20  20 c8 8e 20 73 70 72 69  |p%..t.   .. spri|
00000d00  74 65 73 25 20 ca 0d 04  7e 1b 20 20 20 20 c9 20  |tes% ...~.    . |
00000d10  31 20 20 20 20 3a 20 77  69 6d 70 25 21 33 32 3d  |1    : wimp%!32=|
00000d20  31 0d 04 88 0b 20 20 20  20 7f 20 3a 0d 04 92 2f  |1....    . :.../|
00000d30  20 20 20 20 20 c8 99 20  22 4f 53 5f 53 70 72 69  |     .. "OS_Spri|
00000d40  74 65 4f 70 22 2c 26 31  30 38 2c 73 70 72 69 74  |teOp",&108,sprit|
00000d50  65 73 25 20 b8 20 2c 2c  2c 6e 25 0d 04 9c 0d 20  |es% . ,,,n%.... |
00000d60  20 20 20 20 6a 25 3d 30  0d 04 a6 12 20 20 20 20  |    j%=0....    |
00000d70  20 f5 20 3a 20 6a 25 2b  3d 31 0d 04 b0 3d 20 20  | . : j%+=1...=  |
00000d80  20 20 20 20 c8 99 20 22  4f 53 5f 53 70 72 69 74  |    .. "OS_Sprit|
00000d90  65 4f 70 22 2c 26 31 30  44 2c 73 70 72 69 74 65  |eOp",&10D,sprite|
00000da0  73 25 2c 70 6f 69 6e 74  65 72 5f 62 6c 6f 63 6b  |s%,pointer_block|
00000db0  25 2c 32 30 2c 6a 25 0d  04 ba 37 20 20 20 20 20  |%,20,j%...7     |
00000dc0  20 73 70 32 24 3d a4 57  69 6d 70 5f 47 65 74 53  | sp2$=.Wimp_GetS|
00000dd0  74 72 69 6e 67 41 74 41  64 64 72 65 73 73 28 70  |tringAtAddress(p|
00000de0  6f 69 6e 74 65 72 5f 62  6c 6f 63 6b 25 29 0d 04  |ointer_block%)..|
00000df0  c4 1b 20 20 20 20 20 fd  20 6a 25 3d 6e 25 20 84  |..     . j%=n% .|
00000e00  20 73 70 24 3d 73 70 32  24 0d 04 ce 34 20 20 20  | sp$=sp2$...4   |
00000e10  20 20 e7 20 73 70 24 3d  73 70 32 24 20 8c 20 77  |  . sp$=sp2$ . w|
00000e20  69 6d 70 25 21 33 32 3d  73 70 72 69 74 65 73 25  |imp%!32=sprites%|
00000e30  20 8b 20 77 69 6d 70 25  21 33 32 3d 31 0d 04 d8  | . wimp%!32=1...|
00000e40  08 20 20 20 cb 0d 04 e2  11 20 20 20 77 69 6d 70  |.   .....   wimp|
00000e50  25 21 34 3d 63 25 0d 04  ec 2e 20 20 20 c8 99 20  |%!4=c%....   .. |
00000e60  22 57 69 6d 70 5f 43 72  65 61 74 65 49 63 6f 6e  |"Wimp_CreateIcon|
00000e70  22 2c 2c 77 69 6d 70 25  2b 34 20 b8 20 68 61 6e  |",,wimp%+4 . han|
00000e80  64 6c 65 25 0d 04 f6 0c  20 20 20 69 25 2b 3d 34  |dle%....   i%+=4|
00000e90  0d 05 00 14 20 fd 20 28  77 69 6d 70 25 21 69 25  |.... . (wimp%!i%|
00000ea0  29 3d 2d 31 0d 05 0a 05  cb 0d 05 14 07 3d 63 25  |)=-1.........=c%|
00000eb0  0d 05 1e 05 3a 0d 05 28  25 dd 20 f2 57 69 6d 70  |....:..(%. .Wimp|
00000ec0  5f 57 69 6e 64 6f 77 42  72 69 6e 67 54 6f 54 6f  |_WindowBringToTo|
00000ed0  70 28 77 69 6e 64 6f 77  25 29 0d 05 32 12 21 77  |p(window%)..2.!w|
00000ee0  69 6d 70 25 3d 77 69 6e  64 6f 77 25 0d 05 3c 23  |imp%=window%..<#|
00000ef0  c8 99 20 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  |.. "Wimp_GetWind|
00000f00  6f 77 53 74 61 74 65 22  2c 2c 77 69 6d 70 25 0d  |owState",,wimp%.|
00000f10  05 46 0f 77 69 6d 70 25  21 32 38 3d 2d 31 0d 05  |.F.wimp%!28=-1..|
00000f20  50 1f c8 99 20 22 57 69  6d 70 5f 4f 70 65 6e 57  |P... "Wimp_OpenW|
00000f30  69 6e 64 6f 77 22 2c 2c  77 69 6d 70 25 0d 05 5a  |indow",,wimp%..Z|
00000f40  05 e1 0d 05 64 05 3a 0d  05 6e 20 dd 20 f2 57 69  |....d.:..n . .Wi|
00000f50  6d 70 5f 57 69 6e 64 6f  77 43 6c 6f 73 65 28 77  |mp_WindowClose(w|
00000f60  69 6e 64 6f 77 25 29 0d  05 78 12 21 77 69 6d 70  |indow%)..x.!wimp|
00000f70  25 3d 77 69 6e 64 6f 77  25 0d 05 82 20 c8 99 20  |%=window%... .. |
00000f80  22 57 69 6d 70 5f 43 6c  6f 73 65 57 69 6e 64 6f  |"Wimp_CloseWindo|
00000f90  77 22 2c 2c 77 69 6d 70  25 0d 05 8c 05 e1 0d 05  |w",,wimp%.......|
00000fa0  96 05 3a 0d 05 a0 24 dd  20 f2 57 69 6d 70 5f 57  |..:...$. .Wimp_W|
00000fb0  69 6e 64 6f 77 46 6f 72  63 65 44 72 61 77 28 77  |indowForceDraw(w|
00000fc0  69 6e 64 6f 77 25 29 0d  05 aa 10 c8 8e 20 77 69  |indow%)...... wi|
00000fd0  6e 64 6f 77 25 20 ca 0d  05 b4 38 20 c9 20 2d 31  |ndow% ....8 . -1|
00000fe0  20 20 20 3a 20 c8 99 20  22 57 69 6d 70 5f 46 6f  |   : .. "Wimp_Fo|
00000ff0  72 63 65 52 65 64 72 61  77 22 2c 2d 31 2c 30 2c  |rceRedraw",-1,0,|
00001000  30 2c 32 2a 31 32 38 30  2c 32 2a 31 30 32 34 0d  |0,2*1280,2*1024.|
00001010  05 be 39 20 7f 20 3a 20  c8 99 20 22 57 69 6d 70  |..9 . : .. "Wimp|
00001020  5f 46 6f 72 63 65 52 65  64 72 61 77 22 2c 77 69  |_ForceRedraw",wi|
00001030  6e 64 6f 77 25 2c 30 2c  2d 32 2a 31 30 32 34 2c  |ndow%,0,-2*1024,|
00001040  32 2a 31 32 38 30 2c 30  0d 05 c8 05 cb 0d 05 d2  |2*1280,0........|
00001050  05 e1 0d 05 dc 05 3a 0d  05 e6 1f dd 20 f2 57 69  |......:..... .Wi|
00001060  6d 70 5f 57 69 6e 64 6f  77 4f 70 65 6e 28 77 69  |mp_WindowOpen(wi|
00001070  6e 64 6f 77 25 29 0d 05  f0 12 21 77 69 6d 70 25  |ndow%)....!wimp%|
00001080  3d 77 69 6e 64 6f 77 25  0d 05 fa 23 c8 99 20 22  |=window%...#.. "|
00001090  57 69 6d 70 5f 47 65 74  57 69 6e 64 6f 77 53 74  |Wimp_GetWindowSt|
000010a0  61 74 65 22 2c 2c 77 69  6d 70 25 0d 06 04 1f c8  |ate",,wimp%.....|
000010b0  99 20 22 57 69 6d 70 5f  4f 70 65 6e 57 69 6e 64  |. "Wimp_OpenWind|
000010c0  6f 77 22 2c 2c 77 69 6d  70 25 0d 06 0e 05 e1 0d  |ow",,wimp%......|
000010d0  06 18 05 3a 0d 06 22 19  f2 57 69 6d 70 5f 57 69  |...:.."..Wimp_Wi|
000010e0  6e 64 6f 77 49 6e 74 65  72 66 61 63 65 0d 06 2c  |ndowInterface..,|
000010f0  20 c8 99 22 57 69 6d 70  5f 42 6f 72 64 65 72 57  | .."Wimp_BorderW|
00001100  69 6e 64 6f 77 22 2c 2c  77 69 6d 70 25 0d 06 36  |indow",,wimp%..6|
00001110  05 e1 0d 06 40 06 f4 7c  0d 06 4a 06 f4 7c 0d 06  |....@..|..J..|..|
00001120  54 06 f4 7c 0d 06 5e 31  f4 7c 20 20 20 20 20 20  |T..|..^1.|      |
00001130  20 20 20 20 20 20 20 20  20 20 20 20 2d 2d 2d 2d  |            ----|
00001140  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001150  2d 2d 2d 2d 2d 0d 06 68  28 f4 7c 20 20 20 20 20  |-----..h(.|     |
00001160  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001170  20 20 20 20 20 32 2e a0  49 63 6f 6e 73 0d 06 72  |     2..Icons..r|
00001180  31 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |1.|             |
00001190  20 20 20 20 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |     -----------|
000011a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 06  |--------------..|
000011b0  7c 06 f4 7c 0d 06 86 06  f4 7c 0d 06 90 3d f4 7c  ||..|.....|...=.||
000011c0  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |             ---|
000011d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000011f0  2d 2d 2d 2d 2d 2d 2d 0d  06 9a 06 f4 7c 0d 06 a4  |-------.....|...|
00001200  28 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |(.|             |
00001210  20 20 20 20 20 20 20 20  20 50 72 6f 63 65 64 75  |         Procedu|
00001220  72 65 73 20 3a 0d 06 ae  06 f4 7c 0d 06 b8 2b f4  |res :.....|...+.|
00001230  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 46  ||              F|
00001240  4e 57 69 6d 70 5f 49 63  6f 6e 42 61 72 28 53 70  |NWimp_IconBar(Sp|
00001250  72 69 74 65 24 29 0d 06  c2 3c f4 7c 20 20 20 20  |rite$)...<.|    |
00001260  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00001270  6d 70 5f 49 63 6f 6e 43  61 72 65 74 28 77 69 6e  |mp_IconCaret(win|
00001280  64 6f 77 25 2c 69 63 6f  6e 25 2c 63 68 61 72 73  |dow%,icon%,chars|
00001290  25 29 0d 06 cc 32 f4 7c  20 20 20 20 20 20 20 20  |%)...2.|        |
000012a0  20 20 20 20 20 20 46 4e  57 69 6d 70 5f 49 63 6f  |      FNWimp_Ico|
000012b0  6e 54 65 78 74 28 77 69  6e 64 6f 77 25 2c 69 63  |nText(window%,ic|
000012c0  6f 6e 25 29 0d 06 d6 38  f4 7c 20 20 20 20 20 20  |on%)...8.|      |
000012d0  20 20 20 20 20 20 20 20  46 4e 57 69 6d 70 5f 49  |        FNWimp_I|
000012e0  63 6f 6e 56 61 6c 69 64  61 74 69 6f 6e 28 77 69  |conValidation(wi|
000012f0  6e 64 6f 77 25 2c 69 63  6f 6e 25 29 0d 06 e0 37  |ndow%,icon%)...7|
00001300  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
00001310  50 52 4f 43 57 69 6d 70  5f 49 63 6f 6e 44 69 73  |PROCWimp_IconDis|
00001320  61 62 6c 65 28 77 69 6e  64 6f 77 25 2c 69 63 6f  |able(window%,ico|
00001330  6e 25 29 0d 06 ea 36 f4  7c 20 20 20 20 20 20 20  |n%)...6.|       |
00001340  20 20 20 20 20 20 20 50  52 4f 43 57 69 6d 70 5f  |       PROCWimp_|
00001350  49 63 6f 6e 45 6e 61 62  6c 65 28 77 69 6e 64 6f  |IconEnable(windo|
00001360  77 25 2c 69 63 6f 6e 25  29 0d 06 f4 3f f4 7c 20  |w%,icon%)...?.| |
00001370  20 20 20 20 20 20 20 20  20 20 20 20 20 46 4e 57  |             FNW|
00001380  69 6d 70 5f 49 63 6f 6e  50 75 74 53 70 72 69 74  |imp_IconPutSprit|
00001390  65 28 77 69 6e 64 6f 77  25 2c 69 63 6f 6e 25 2c  |e(window%,icon%,|
000013a0  73 70 72 69 74 65 24 29  0d 06 fe 3d f4 7c 20 20  |sprite$)...=.|  |
000013b0  20 20 20 20 20 20 20 20  20 20 20 20 50 52 4f 43  |            PROC|
000013c0  57 69 6d 70 5f 49 63 6f  6e 50 75 74 54 65 78 74  |Wimp_IconPutText|
000013d0  28 77 69 6e 64 6f 77 25  2c 69 63 6f 6e 25 2c 74  |(window%,icon%,t|
000013e0  65 78 74 24 29 0d 07 08  2f f4 7c 20 20 20 20 20  |ext$).../.|     |
000013f0  20 20 20 20 20 20 20 20  20 50 52 4f 43 57 69 6d  |         PROCWim|
00001400  70 5f 49 63 6f 6e 49 6e  74 65 72 66 61 63 65 53  |p_IconInterfaceS|
00001410  74 61 72 74 0d 07 12 30  f4 7c 20 20 20 20 20 20  |tart...0.|      |
00001420  20 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  |        PROCWimp|
00001430  5f 49 63 6f 6e 49 6e 74  65 72 66 61 63 65 46 69  |_IconInterfaceFi|
00001440  6e 69 73 68 0d 07 1c 06  f4 7c 0d 07 26 3d f4 7c  |nish.....|..&=.||
00001450  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |             ---|
00001460  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001480  2d 2d 2d 2d 2d 2d 2d 0d  07 30 06 f4 7c 0d 07 3a  |-------..0..|..:|
00001490  05 3a 0d 07 44 1c dd 20  a4 57 69 6d 70 5f 49 63  |.:..D.. .Wimp_Ic|
000014a0  6f 6e 42 61 72 28 53 70  72 69 74 65 24 29 0d 07  |onBar(Sprite$)..|
000014b0  4e 0b ea 20 69 63 6f 6e  25 0d 07 58 0e 77 69 6d  |N.. icon%..X.wim|
000014c0  70 25 21 30 3d 2d 31 0d  07 62 1d 77 69 6d 70 25  |p%!0=-1..b.wimp%|
000014d0  21 34 3d 30 20 20 20 20  20 3a 20 77 69 6d 70 25  |!4=0     : wimp%|
000014e0  21 38 3d 30 0d 07 6c 1d  77 69 6d 70 25 21 31 32  |!8=0..l.wimp%!12|
000014f0  3d 36 38 20 3a 20 77 69  6d 70 25 21 31 36 3d 36  |=68 : wimp%!16=6|
00001500  38 0d 07 76 12 77 69 6d  70 25 21 32 30 3d 26 33  |8..v.wimp%!20=&3|
00001510  30 30 32 0d 07 80 17 24  28 77 69 6d 70 25 2b 32  |002....$(wimp%+2|
00001520  34 29 3d 53 70 72 69 74  65 24 0d 07 8a 27 c8 99  |4)=Sprite$...'..|
00001530  20 22 57 69 6d 70 5f 43  72 65 61 74 65 49 63 6f  | "Wimp_CreateIco|
00001540  6e 22 2c 2c 77 69 6d 70  25 20 b8 20 69 63 6f 6e  |n",,wimp% . icon|
00001550  25 0d 07 94 0a 3d 69 63  6f 6e 25 0d 07 9e 05 3a  |%....=icon%....:|
00001560  0d 07 a8 2b dd 20 f2 57  69 6d 70 5f 49 63 6f 6e  |...+. .Wimp_Icon|
00001570  43 61 72 65 74 28 77 69  6e 64 6f 77 25 2c 69 63  |Caret(window%,ic|
00001580  6f 6e 25 2c 63 68 61 72  73 25 29 0d 07 b2 38 c8  |on%,chars%)...8.|
00001590  99 20 22 57 69 6d 70 5f  53 65 74 43 61 72 65 74  |. "Wimp_SetCaret|
000015a0  50 6f 73 69 74 69 6f 6e  22 2c 77 69 6e 64 6f 77  |Position",window|
000015b0  25 2c 69 63 6f 6e 25 2c  2c 2c 2d 31 2c 63 68 61  |%,icon%,,,-1,cha|
000015c0  72 73 25 0d 07 bc 05 e1  0d 07 c6 05 3a 0d 07 d0  |rs%.........:...|
000015d0  23 dd 20 a4 57 69 6d 70  5f 49 63 6f 6e 54 65 78  |#. .Wimp_IconTex|
000015e0  74 28 77 69 6e 64 6f 77  25 2c 69 63 6f 6e 25 29  |t(window%,icon%)|
000015f0  0d 07 da 23 77 69 6d 70  25 21 30 3d 77 69 6e 64  |...#wimp%!0=wind|
00001600  6f 77 25 20 3a 20 77 69  6d 70 25 21 34 3d 69 63  |ow% : wimp%!4=ic|
00001610  6f 6e 25 0d 07 e4 21 c8  99 20 22 57 69 6d 70 5f  |on%...!.. "Wimp_|
00001620  47 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 77  |GetIconState",,w|
00001630  69 6d 70 25 0d 07 ee 37  e7 20 28 28 77 69 6d 70  |imp%...7. ((wimp|
00001640  25 21 32 34 29 20 80 20  26 31 30 30 29 3d 30 20  |%!24) . &100)=0 |
00001650  85 20 31 2c 22 49 63 6f  6e 20 69 73 6e 27 74 20  |. 1,"Icon isn't |
00001660  69 6e 64 69 72 65 63 74  65 64 22 0d 07 f8 10 3d  |indirected"....=|
00001670  24 28 77 69 6d 70 25 21  32 38 29 0d 08 02 05 3a  |$(wimp%!28)....:|
00001680  0d 08 0c 29 dd 20 a4 57  69 6d 70 5f 49 63 6f 6e  |...). .Wimp_Icon|
00001690  56 61 6c 69 64 61 74 69  6f 6e 28 77 69 6e 64 6f  |Validation(windo|
000016a0  77 25 2c 69 63 6f 6e 25  29 0d 08 16 23 77 69 6d  |w%,icon%)...#wim|
000016b0  70 25 21 30 3d 77 69 6e  64 6f 77 25 20 3a 20 77  |p%!0=window% : w|
000016c0  69 6d 70 25 21 34 3d 69  63 6f 6e 25 0d 08 20 21  |imp%!4=icon%.. !|
000016d0  c8 99 20 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |.. "Wimp_GetIcon|
000016e0  53 74 61 74 65 22 2c 2c  77 69 6d 70 25 0d 08 2a  |State",,wimp%..*|
000016f0  37 e7 20 28 28 77 69 6d  70 25 21 32 34 29 20 80  |7. ((wimp%!24) .|
00001700  20 26 31 30 30 29 3d 30  20 85 20 31 2c 22 49 63  | &100)=0 . 1,"Ic|
00001710  6f 6e 20 69 73 6e 27 74  20 69 6e 64 69 72 65 63  |on isn't indirec|
00001720  74 65 64 22 0d 08 34 10  3d 24 28 77 69 6d 70 25  |ted"..4.=$(wimp%|
00001730  21 33 32 29 0d 08 3e 05  3a 0d 08 48 26 dd 20 f2  |!32)..>.:..H&. .|
00001740  57 69 6d 70 5f 49 63 6f  6e 44 69 73 61 62 6c 65  |Wimp_IconDisable|
00001750  28 77 69 6e 64 6f 77 25  2c 69 63 6f 6e 25 29 0d  |(window%,icon%).|
00001760  08 52 23 77 69 6d 70 25  21 30 3d 77 69 6e 64 6f  |.R#wimp%!0=windo|
00001770  77 25 20 3a 20 77 69 6d  70 25 21 34 3d 69 63 6f  |w% : wimp%!4=ico|
00001780  6e 25 0d 08 5c 24 77 69  6d 70 25 21 38 3d 31 3c  |n%..\$wimp%!8=1<|
00001790  3c 32 32 20 20 20 3a 20  77 69 6d 70 25 21 31 32  |<22   : wimp%!12|
000017a0  3d 31 3c 3c 32 32 0d 08  66 21 c8 99 20 22 57 69  |=1<<22..f!.. "Wi|
000017b0  6d 70 5f 53 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_SetIconState"|
000017c0  2c 2c 77 69 6d 70 25 0d  08 70 05 e1 0d 08 7a 05  |,,wimp%..p....z.|
000017d0  3a 0d 08 84 25 dd 20 f2  57 69 6d 70 5f 49 63 6f  |:...%. .Wimp_Ico|
000017e0  6e 45 6e 61 62 6c 65 28  77 69 6e 64 6f 77 25 2c  |nEnable(window%,|
000017f0  69 63 6f 6e 25 29 0d 08  8e 23 77 69 6d 70 25 21  |icon%)...#wimp%!|
00001800  30 3d 77 69 6e 64 6f 77  25 20 3a 20 77 69 6d 70  |0=window% : wimp|
00001810  25 21 34 3d 69 63 6f 6e  25 0d 08 98 24 77 69 6d  |%!4=icon%...$wim|
00001820  70 25 21 38 3d 30 20 20  20 20 20 20 20 3a 20 77  |p%!8=0       : w|
00001830  69 6d 70 25 21 31 32 3d  31 3c 3c 32 32 0d 08 a2  |imp%!12=1<<22...|
00001840  21 c8 99 20 22 57 69 6d  70 5f 53 65 74 49 63 6f  |!.. "Wimp_SetIco|
00001850  6e 53 74 61 74 65 22 2c  2c 77 69 6d 70 25 0d 08  |nState",,wimp%..|
00001860  ac 05 e1 0d 08 b6 05 3a  0d 08 c0 30 dd 20 a4 57  |.......:...0. .W|
00001870  69 6d 70 5f 49 63 6f 6e  50 75 74 53 70 72 69 74  |imp_IconPutSprit|
00001880  65 28 77 69 6e 64 6f 77  25 2c 69 63 6f 6e 25 2c  |e(window%,icon%,|
00001890  73 70 72 69 74 65 24 29  0d 08 ca 21 77 69 6d 70  |sprite$)...!wimp|
000018a0  25 21 30 3d 77 69 6e 64  6f 77 25 3a 77 69 6d 70  |%!0=window%:wimp|
000018b0  25 21 34 3d 69 63 6f 6e  25 0d 08 d4 21 c8 99 20  |%!4=icon%...!.. |
000018c0  22 57 69 6d 70 5f 47 65  74 49 63 6f 6e 53 74 61  |"Wimp_GetIconSta|
000018d0  74 65 22 2c 2c 77 69 6d  70 25 0d 08 de 1f c8 99  |te",,wimp%......|
000018e0  20 22 57 69 6d 70 5f 44  65 6c 65 74 65 49 63 6f  | "Wimp_DeleteIco|
000018f0  6e 22 2c 2c 77 69 6d 70  25 0d 08 e8 3d 77 69 6d  |n",,wimp%...=wim|
00001900  70 25 21 34 3d 77 69 6d  70 25 21 38 20 20 20 3a  |p%!4=wimp%!8   :|
00001910  20 77 69 6d 70 25 21 38  3d 77 69 6d 70 25 21 31  | wimp%!8=wimp%!1|
00001920  32 20 20 3a 20 77 69 6d  70 25 21 31 32 3d 77 69  |2  : wimp%!12=wi|
00001930  6d 70 25 21 31 36 0d 08  f2 3f 77 69 6d 70 25 21  |mp%!16...?wimp%!|
00001940  31 36 3d 77 69 6d 70 25  21 32 30 20 3a 20 77 69  |16=wimp%!20 : wi|
00001950  6d 70 25 21 32 30 3d 77  69 6d 70 25 21 32 34 20  |mp%!20=wimp%!24 |
00001960  3a 20 24 28 77 69 6d 70  25 2b 32 34 29 3d 73 70  |: $(wimp%+24)=sp|
00001970  72 69 74 65 24 0d 08 fc  27 c8 99 20 22 57 69 6d  |rite$...'.. "Wim|
00001980  70 5f 43 72 65 61 74 65  49 63 6f 6e 22 2c 2c 77  |p_CreateIcon",,w|
00001990  69 6d 70 25 20 b8 20 69  63 6f 6e 25 0d 09 06 0a  |imp% . icon%....|
000019a0  3d 69 63 6f 6e 25 0d 09  10 05 3a 0d 09 1a 2c dd  |=icon%....:...,.|
000019b0  20 f2 57 69 6d 70 5f 49  63 6f 6e 50 75 74 54 65  | .Wimp_IconPutTe|
000019c0  78 74 28 77 69 6e 64 6f  77 25 2c 69 63 6f 6e 25  |xt(window%,icon%|
000019d0  2c 74 65 78 74 24 29 0d  09 24 23 77 69 6d 70 25  |,text$)..$#wimp%|
000019e0  21 30 3d 77 69 6e 64 6f  77 25 20 3a 20 77 69 6d  |!0=window% : wim|
000019f0  70 25 21 34 3d 69 63 6f  6e 25 0d 09 2e 21 c8 99  |p%!4=icon%...!..|
00001a00  20 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  | "Wimp_GetIconSt|
00001a10  61 74 65 22 2c 2c 77 69  6d 70 25 0d 09 38 37 e7  |ate",,wimp%..87.|
00001a20  20 28 28 77 69 6d 70 25  21 32 34 29 20 80 20 26  | ((wimp%!24) . &|
00001a30  31 30 30 29 3d 30 20 85  20 31 2c 22 49 63 6f 6e  |100)=0 . 1,"Icon|
00001a40  20 69 73 6e 27 74 20 69  6e 64 69 72 65 63 74 65  | isn't indirecte|
00001a50  64 22 0d 09 42 15 24 28  77 69 6d 70 25 21 32 38  |d"..B.$(wimp%!28|
00001a60  29 3d 74 65 78 74 24 0d  09 4c 23 77 69 6d 70 25  |)=text$..L#wimp%|
00001a70  21 30 3d 77 69 6e 64 6f  77 25 20 3a 20 77 69 6d  |!0=window% : wim|
00001a80  70 25 21 34 3d 69 63 6f  6e 25 0d 09 56 1a 77 69  |p%!4=icon%..V.wi|
00001a90  6d 70 25 21 38 3d 30 20  3a 20 77 69 6d 70 25 21  |mp%!8=0 : wimp%!|
00001aa0  31 32 3d 30 0d 09 60 21  c8 99 20 22 57 69 6d 70  |12=0..`!.. "Wimp|
00001ab0  5f 53 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_SetIconState",,|
00001ac0  77 69 6d 70 25 0d 09 6a  05 e1 0d 09 74 05 3a 0d  |wimp%..j....t.:.|
00001ad0  09 7e 1e dd 20 f2 57 69  6d 70 5f 49 63 6f 6e 49  |.~.. .Wimp_IconI|
00001ae0  6e 74 65 72 66 61 63 65  53 74 61 72 74 0d 09 88  |nterfaceStart...|
00001af0  1e c8 99 22 57 69 6d 70  5f 42 6f 72 64 65 72 49  |..."Wimp_BorderI|
00001b00  63 6f 6e 22 2c 2c 77 69  6d 70 25 0d 09 92 05 e1  |con",,wimp%.....|
00001b10  0d 09 9c 05 3a 0d 09 a6  1f dd 20 f2 57 69 6d 70  |....:..... .Wimp|
00001b20  5f 49 63 6f 6e 49 6e 74  65 72 66 61 63 65 46 69  |_IconInterfaceFi|
00001b30  6e 69 73 68 0d 09 b0 0d  77 69 6d 70 25 21 38 3d  |nish....wimp%!8=|
00001b40  30 0d 09 ba 1e c8 99 22  57 69 6d 70 5f 42 6f 72  |0......"Wimp_Bor|
00001b50  64 65 72 49 63 6f 6e 22  2c 2c 77 69 6d 70 25 0d  |derIcon",,wimp%.|
00001b60  09 c4 05 e1 0d 09 ce 05  3a 0d 09 d8 06 f4 7c 0d  |........:.....|.|
00001b70  09 e2 06 f4 7c 0d 09 ec  06 f4 7c 0d 09 f6 31 f4  |....|.....|...1.|
00001b80  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00001b90  20 20 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |   -------------|
00001ba0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 0a 00 28  |------------...(|
00001bb0  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
00001bc0  20 20 20 20 20 20 20 20  20 20 20 20 33 2e a0 4d  |            3..M|
00001bd0  65 6e 75 73 0d 0a 0a 31  f4 7c 20 20 20 20 20 20  |enus...1.|      |
00001be0  20 20 20 20 20 20 20 20  20 20 20 20 2d 2d 2d 2d  |            ----|
00001bf0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001c00  2d 2d 2d 2d 2d 0d 0a 14  06 f4 7c 0d 0a 1e 06 f4  |-----.....|.....|
00001c10  7c 0d 0a 28 3f f4 7c 20  20 20 20 20 20 20 20 20  ||..(?.|         |
00001c20  20 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  --------------|
00001c30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001c50  0d 0a 32 06 f4 7c 0d 0a  3c 28 f4 7c 20 20 20 20  |..2..|..<(.|    |
00001c60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001c70  20 20 50 72 6f 63 65 64  75 72 65 73 20 3a 0d 0a  |  Procedures :..|
00001c80  46 06 f4 7c 0d 0a 50 06  f4 7c 0d 0a 5a 2e f4 7c  |F..|..P..|..Z..||
00001c90  20 20 20 20 20 20 20 20  20 20 20 20 50 52 4f 43  |            PROC|
00001ca0  57 69 6d 70 5f 4d 65 6e  75 41 64 6a 75 73 74 4f  |Wimp_MenuAdjustO|
00001cb0  6e 28 6d 65 6e 75 25 29  0d 0a 64 2b f4 7c 20 20  |n(menu%)..d+.|  |
00001cc0  20 20 20 20 20 20 20 20  20 20 46 4e 57 69 6d 70  |          FNWimp|
00001cd0  5f 4d 65 6e 75 43 68 6f  69 63 65 28 6c 65 76 65  |_MenuChoice(leve|
00001ce0  6c 25 29 0d 0a 6e 2a f4  7c 20 20 20 20 20 20 20  |l%)..n*.|       |
00001cf0  20 20 20 20 20 46 4e 57  69 6d 70 5f 4d 65 6e 75  |     FNWimp_Menu|
00001d00  43 72 65 61 74 65 28 6d  65 6e 75 24 29 0d 0a 78  |Create(menu$)..x|
00001d10  24 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 46  |$.|            F|
00001d20  4e 57 69 6d 70 5f 4d 65  6e 75 43 6f 6c 6f 75 72  |NWimp_MenuColour|
00001d30  73 0d 0a 82 32 f4 7c 20  20 20 20 20 20 20 20 20  |s...2.|         |
00001d40  20 20 20 46 4e 57 69 6d  70 5f 4d 65 6e 75 43 72  |   FNWimp_MenuCr|
00001d50  65 61 74 65 43 6f 6c 6f  75 72 73 28 74 69 74 6c  |eateColours(titl|
00001d60  65 24 29 0d 0a 8c 2f f4  7c 20 20 20 20 20 20 20  |e$).../.|       |
00001d70  20 20 20 20 20 46 4e 57  69 6d 70 5f 4d 65 6e 75  |     FNWimp_Menu|
00001d80  4e 6f 4f 66 45 6e 74 72  69 65 73 28 6d 65 6e 75  |NoOfEntries(menu|
00001d90  24 29 0d 0a 96 44 f4 7c  20 20 20 20 20 20 20 20  |$)...D.|        |
00001da0  20 20 20 20 50 52 4f 43  57 69 6d 70 5f 4d 65 6e  |    PROCWimp_Men|
00001db0  75 42 61 63 6b 47 72 6f  75 6e 64 43 6f 6c 6f 75  |uBackGroundColou|
00001dc0  72 28 6d 65 6e 75 25 2c  69 74 65 6d 25 2c 63 6f  |r(menu%,item%,co|
00001dd0  6c 6f 75 72 25 29 0d 0a  a0 32 f4 7c 20 20 20 20  |lour%)...2.|    |
00001de0  20 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  |        PROCWimp|
00001df0  5f 4d 65 6e 75 43 65 6e  74 72 65 28 6d 65 6e 75  |_MenuCentre(menu|
00001e00  25 2c 69 74 65 6d 25 29  0d 0a aa 24 f4 7c 20 20  |%,item%)...$.|  |
00001e10  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00001e20  6d 70 5f 4d 65 6e 75 43  6c 6f 73 65 0d 0a b4 33  |mp_MenuClose...3|
00001e30  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 50 52  |.|            PR|
00001e40  4f 43 57 69 6d 70 5f 4d  65 6e 75 44 69 73 61 62  |OCWimp_MenuDisab|
00001e50  6c 65 28 6d 65 6e 75 25  2c 69 74 65 6d 25 29 0d  |le(menu%,item%).|
00001e60  0a be 36 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..6.|           |
00001e70  20 50 52 4f 43 57 69 6d  70 5f 4d 65 6e 75 44 6f  | PROCWimp_MenuDo|
00001e80  74 74 65 64 4c 69 6e 65  28 6d 65 6e 75 25 2c 69  |ttedLine(menu%,i|
00001e90  74 65 6d 25 29 0d 0a c8  32 f4 7c 20 20 20 20 20  |tem%)...2.|     |
00001ea0  20 20 20 20 20 20 20 50  52 4f 43 57 69 6d 70 5f  |       PROCWimp_|
00001eb0  4d 65 6e 75 45 6e 61 62  6c 65 28 6d 65 6e 75 25  |MenuEnable(menu%|
00001ec0  2c 69 74 65 6d 25 29 0d  0a d2 44 f4 7c 20 20 20  |,item%)...D.|   |
00001ed0  20 20 20 20 20 20 20 20  20 50 52 4f 43 57 69 6d  |         PROCWim|
00001ee0  70 5f 4d 65 6e 75 46 6f  72 65 67 72 6f 75 6e 64  |p_MenuForeground|
00001ef0  43 6f 6c 6f 75 72 28 6d  65 6e 75 25 2c 69 74 65  |Colour(menu%,ite|
00001f00  6d 25 2c 63 6f 6c 6f 75  72 25 29 0d 0a dc 38 f4  |m%,colour%)...8.|
00001f10  7c 20 20 20 20 20 20 20  20 20 20 20 20 50 52 4f  ||            PRO|
00001f20  43 57 69 6d 70 5f 4d 65  6e 75 47 6c 75 65 28 6d  |CWimp_MenuGlue(m|
00001f30  65 6e 75 31 25 2c 69 74  65 6d 25 2c 6d 65 6e 75  |enu1%,item%,menu|
00001f40  32 25 29 0d 0a e6 36 f4  7c 20 20 20 20 20 20 20  |2%)...6.|       |
00001f50  20 20 20 20 20 50 52 4f  43 57 69 6d 70 5f 4d 65  |     PROCWimp_Me|
00001f60  6e 75 49 74 65 6d 28 6d  65 6e 75 25 2c 69 74 65  |nuItem(menu%,ite|
00001f70  6d 25 2c 69 74 65 6d 24  29 0d 0a f0 33 f4 7c 20  |m%,item$)...3.| |
00001f80  20 20 20 20 20 20 20 20  20 20 20 50 52 4f 43 57  |           PROCW|
00001f90  69 6d 70 5f 4d 65 6e 75  4d 65 73 73 61 67 65 28  |imp_MenuMessage(|
00001fa0  6d 65 6e 75 25 2c 69 74  65 6d 25 29 0d 0a fa 31  |menu%,item%)...1|
00001fb0  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 50 52  |.|            PR|
00001fc0  4f 43 57 69 6d 70 5f 4d  65 6e 75 50 6f 70 55 70  |OCWimp_MenuPopUp|
00001fd0  28 4d 65 6e 75 25 2c 78  25 2c 79 25 29 0d 0b 04  |(Menu%,x%,y%)...|
00001fe0  2e f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 50  |..|            P|
00001ff0  52 4f 43 57 69 6d 70 5f  4d 65 6e 75 50 6f 70 55  |ROCWimp_MenuPopU|
00002000  70 42 61 72 28 78 25 2c  79 25 29 0d 0b 0e 30 f4  |pBar(x%,y%)...0.|
00002010  7c 20 20 20 20 20 20 20  20 20 20 20 20 50 52 4f  ||            PRO|
00002020  43 57 69 6d 70 5f 4d 65  6e 75 54 69 63 6b 28 6d  |CWimp_MenuTick(m|
00002030  65 6e 75 25 2c 69 74 65  6d 25 29 0d 0b 18 32 f4  |enu%,item%)...2.|
00002040  7c 20 20 20 20 20 20 20  20 20 20 20 20 50 52 4f  ||            PRO|
00002050  43 57 69 6d 70 5f 4d 65  6e 75 54 69 74 6c 65 28  |CWimp_MenuTitle(|
00002060  6d 65 6e 75 25 2c 74 69  74 6c 65 24 29 0d 0b 22  |menu%,title$).."|
00002070  4c f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 50  |L.|            P|
00002080  52 4f 43 57 69 6d 70 5f  4d 65 6e 75 57 72 69 74  |ROCWimp_MenuWrit|
00002090  65 28 6d 65 6e 75 25 2c  69 74 65 6d 25 2c 62 75  |e(menu%,item%,bu|
000020a0  66 66 65 72 25 2c 76 61  6c 25 2c 42 75 66 66 65  |ffer%,val%,Buffe|
000020b0  72 4c 65 6e 67 74 68 25  29 0d 0b 2c 06 f4 7c 0d  |rLength%)..,..|.|
000020c0  0b 36 3f f4 7c 20 20 20  20 20 20 20 20 20 20 20  |.6?.|           |
000020d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000020f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 0b  |--------------..|
00002100  40 06 f4 7c 0d 0b 4a 05  3a 0d 0b 54 1f dd 20 f2  |@..|..J.:..T.. .|
00002110  57 69 6d 70 5f 4d 65 6e  75 41 64 6a 75 73 74 4f  |Wimp_MenuAdjustO|
00002120  6e 28 6d 65 6e 75 25 29  0d 0b 5e 2c c8 99 20 22  |n(menu%)..^,.. "|
00002130  57 69 6d 70 5f 47 65 74  50 6f 69 6e 74 65 72 49  |Wimp_GetPointerI|
00002140  6e 66 6f 22 2c 2c 70 6f  69 6e 74 65 72 5f 62 6c  |nfo",,pointer_bl|
00002150  6f 63 6b 25 0d 0b 68 5e  e7 20 28 28 70 6f 69 6e  |ock%..h^. ((poin|
00002160  74 65 72 5f 62 6c 6f 63  6b 25 21 38 29 80 31 29  |ter_block%!8).1)|
00002170  3d 31 20 8c 20 c8 99 20  22 57 69 6d 70 5f 43 72  |=1 . .. "Wimp_Cr|
00002180  65 61 74 65 4d 65 6e 75  22 2c 2c 6d 65 6e 75 25  |eateMenu",,menu%|
00002190  2c 70 6f 69 6e 74 65 72  5f 62 6c 6f 63 6b 25 21  |,pointer_block%!|
000021a0  30 2c 70 6f 69 6e 74 65  72 5f 62 6c 6f 63 6b 25  |0,pointer_block%|
000021b0  21 34 0d 0b 72 05 e1 0d  0b 7c 05 3a 0d 0b 86 1e  |!4..r....|.:....|
000021c0  dd 20 a4 57 69 6d 70 5f  4d 65 6e 75 43 68 6f 69  |. .Wimp_MenuChoi|
000021d0  63 65 28 6c 65 76 65 6c  25 29 0d 0b 90 19 3d 28  |ce(level%)....=(|
000021e0  77 69 6d 70 25 21 28 34  2a 6c 65 76 65 6c 25 29  |wimp%!(4*level%)|
000021f0  29 2b 31 0d 0b 9a 05 3a  0d 0b a4 1d dd 20 a4 57  |)+1....:..... .W|
00002200  69 6d 70 5f 4d 65 6e 75  43 72 65 61 74 65 28 6d  |imp_MenuCreate(m|
00002210  65 6e 75 24 29 0d 0b ae  29 e7 20 6d 65 6e 75 24  |enu$)...). menu$|
00002220  3d 22 43 6f 6c 6f 75 72  73 22 20 8c 3d a4 57 69  |="Colours" .=.Wi|
00002230  6d 70 5f 4d 65 6e 75 43  6f 6c 6f 75 72 73 0d 0b  |mp_MenuColours..|
00002240  b8 27 ea 20 6d 65 6e 75  25 2c 69 6e 64 65 78 25  |.'. menu%,index%|
00002250  2c 77 69 64 74 68 25 2c  6c 65 6e 67 74 68 25 2c  |,width%,length%,|
00002260  6b 25 2c 73 25 0d 0b c2  2e de 20 6d 65 6e 75 25  |k%,s%..... menu%|
00002270  20 32 38 2b a4 57 69 6d  70 5f 4d 65 6e 75 4e 6f  | 28+.Wimp_MenuNo|
00002280  4f 66 45 6e 74 72 69 65  73 28 6d 65 6e 75 24 29  |OfEntries(menu$)|
00002290  2a 32 34 0d 0b cc 37 6d  65 6e 75 25 3f 31 32 3d  |*24...7menu%?12=|
000022a0  37 20 20 20 3a 20 6d 65  6e 75 25 3f 31 33 3d 32  |7   : menu%?13=2|
000022b0  20 20 3a 20 6d 65 6e 75  25 3f 31 34 3d 37 20 3a  |  : menu%?14=7 :|
000022c0  6d 65 6e 75 25 3f 31 35  3d 30 0d 0b d6 2b 6d 65  |menu%?15=0...+me|
000022d0  6e 75 25 21 31 36 3d 31  34 30 20 3a 20 6d 65 6e  |nu%!16=140 : men|
000022e0  75 25 21 32 30 3d 34 34  20 3a 20 6d 65 6e 75 25  |u%!20=44 : menu%|
000022f0  21 32 34 3d 30 0d 0b e0  13 69 6e 64 65 78 25 3d  |!24=0....index%=|
00002300  6d 65 6e 75 25 2b 32 38  0d 0b ea 20 24 6d 65 6e  |menu%+28... $men|
00002310  75 25 3d c0 6d 65 6e 75  24 2c a7 6d 65 6e 75 24  |u%=.menu$,.menu$|
00002320  2c 22 5c 22 29 2d 31 29  0d 0b f4 23 77 69 64 74  |,"\")-1)...#widt|
00002330  68 25 3d a9 28 c0 6d 65  6e 75 24 2c a7 6d 65 6e  |h%=.(.menu$,.men|
00002340  75 24 2c 22 5c 22 29 2d  31 29 29 0d 0b fe 24 6d  |u$,"\")-1))...$m|
00002350  65 6e 75 24 2b 3d 22 5c  22 20 3a 20 4d 65 6e 75  |enu$+="\" : Menu|
00002360  5f 4e 6f 4f 66 45 6e 74  72 69 65 73 25 3d 30 0d  |_NoOfEntries%=0.|
00002370  0c 08 10 c8 95 20 6d 65  6e 75 24 3c 3e 22 22 0d  |..... menu$<>"".|
00002380  0c 12 1f 6d 65 6e 75 24  3d c1 6d 65 6e 75 24 2c  |...menu$=.menu$,|
00002390  a7 6d 65 6e 75 24 2c 22  5c 22 29 2b 31 29 0d 0c  |.menu$,"\")+1)..|
000023a0  1c 0e c8 8e 20 6d 65 6e  75 24 20 ca 0d 0c 26 09  |.... menu$ ...&.|
000023b0  20 c9 20 22 22 0d 0c 30  08 20 7f 20 3a 0d 0c 3a  | . ""..0. . :..:|
000023c0  31 20 20 21 69 6e 64 65  78 25 3d 30 20 3a 20 69  |1  !index%=0 : i|
000023d0  6e 64 65 78 25 21 34 3d  2d 31 20 3a 20 69 6e 64  |ndex%!4=-1 : ind|
000023e0  65 78 25 21 38 3d 26 37  30 30 30 30 32 31 0d 0c  |ex%!8=&7000021..|
000023f0  44 1b 20 20 6c 65 6e 67  74 68 25 3d a7 6d 65 6e  |D.  length%=.men|
00002400  75 24 2c 22 5c 22 29 2d  31 0d 0c 4e 1e 20 20 6b  |u$,"\")-1..N.  k|
00002410  25 3d a7 c0 6d 65 6e 75  24 2c 6c 65 6e 67 74 68  |%=..menu$,length|
00002420  25 29 2c 22 3e 22 29 0d  0c 58 0d 20 20 c8 8e 20  |%),">")..X.  .. |
00002430  6b 25 20 ca 0d 0c 62 0a  20 20 20 c9 20 30 0d 0c  |k% ...b.   . 0..|
00002440  6c 08 20 20 20 7f 0d 0c  76 25 20 20 20 20 73 25  |l.   ...v%    s%|
00002450  3d a0 28 c1 6d 65 6e 75  24 2c 6b 25 2b 31 2c 6c  |=.(.menu$,k%+1,l|
00002460  65 6e 67 74 68 25 2d 6b  25 29 29 0d 0c 80 13 20  |ength%-k%)).... |
00002470  20 20 20 69 6e 64 65 78  25 21 34 3d 73 25 0d 0c  |   index%!4=s%..|
00002480  8a 14 20 20 20 20 6c 65  6e 67 74 68 25 3d 6b 25  |..    length%=k%|
00002490  2d 31 0d 0c 94 07 20 20  cb 0d 0c 9e 22 20 20 24  |-1....  ...."  $|
000024a0  28 69 6e 64 65 78 25 2b  31 32 29 3d c0 6d 65 6e  |(index%+12)=.men|
000024b0  75 24 2c 6c 65 6e 67 74  68 25 29 0d 0c a8 27 20  |u$,length%)...' |
000024c0  20 e7 20 6c 65 6e 67 74  68 25 3e 77 69 64 74 68  | . length%>width|
000024d0  25 20 8c 20 77 69 64 74  68 25 3d 6c 65 6e 67 74  |% . width%=lengt|
000024e0  68 25 0d 0c b2 10 20 20  69 6e 64 65 78 25 2b 3d  |h%....  index%+=|
000024f0  32 34 0d 0c bc 05 cb 0d  0c c6 05 ce 0d 0c d0 1a  |24..............|
00002500  6d 65 6e 75 25 21 31 36  3d 31 36 2a 28 77 69 64  |menu%!16=16*(wid|
00002510  74 68 25 2b 31 29 0d 0c  da 28 69 6e 64 65 78 25  |th%+1)...(index%|
00002520  21 2d 32 34 3d 69 6e 64  65 78 25 21 2d 32 34 20  |!-24=index%!-24 |
00002530  84 20 26 38 30 20 3a 20  3d 6d 65 6e 75 25 0d 0c  |. &80 : =menu%..|
00002540  e4 05 3a 0d 0c ee 17 dd  20 a4 57 69 6d 70 5f 4d  |..:..... .Wimp_M|
00002550  65 6e 75 43 6f 6c 6f 75  72 73 0d 0c f8 21 3d a4  |enuColours...!=.|
00002560  57 69 6d 70 5f 4d 65 6e  75 43 72 65 61 74 65 43  |Wimp_MenuCreateC|
00002570  6f 6c 6f 75 72 73 28 22  20 22 29 0d 0d 02 05 3a  |olours(" ")....:|
00002580  0d 0d 0c 25 dd 20 a4 57  69 6d 70 5f 4d 65 6e 75  |...%. .Wimp_Menu|
00002590  43 72 65 61 74 65 43 6f  6c 6f 75 72 73 28 74 69  |CreateColours(ti|
000025a0  74 6c 65 24 29 0d 0d 16  13 ea 20 78 24 2c 6d 65  |tle$)..... x$,me|
000025b0  6e 25 2c 6a 25 2c 69 25  0d 0d 20 36 78 24 3d 74  |n%,j%,i%.. 6x$=t|
000025c0  69 74 6c 65 24 2b 22 5c  30 5c 31 5c 32 5c 33 5c  |itle$+"\0\1\2\3\|
000025d0  34 5c 35 5c 36 5c 37 5c  38 5c 39 5c 31 30 5c 31  |4\5\6\7\8\9\10\1|
000025e0  31 5c 31 32 5c 31 33 5c  31 34 5c 31 35 22 0d 0d  |1\12\13\14\15"..|
000025f0  2a 1d 6d 65 6e 25 3d a4  57 69 6d 70 5f 4d 65 6e  |*.men%=.Wimp_Men|
00002600  75 43 72 65 61 74 65 28  78 24 29 0d 0d 34 0f e3  |uCreate(x$)..4..|
00002610  20 69 25 3d 30 20 b8 20  31 35 0d 0d 3e 0a c8 8e  | i%=0 . 15..>...|
00002620  20 b9 20 ca 0d 0d 48 28  c9 20 69 25 3c 34 2c 69  | . ...H(. i%<4,i|
00002630  25 3d 39 2c 69 25 3d 31  32 2c 69 25 3d 31 34 2c  |%=9,i%=12,i%=14,|
00002640  69 25 3d 31 35 20 3a 20  6a 25 3d 37 0d 0d 52 0c  |i%=15 : j%=7..R.|
00002650  7f 20 3a 20 6a 25 3d 30  0d 0d 5c 05 cb 0d 0d 66  |. : j%=0..\....f|
00002660  1c 6d 65 6e 25 3f 28 33  39 2b 69 25 2a 32 34 29  |.men%?(39+i%*24)|
00002670  3d 69 25 2a 31 36 2b 6a  25 0d 0d 70 1f f2 57 69  |=i%*16+j%..p..Wi|
00002680  6d 70 5f 4d 65 6e 75 43  65 6e 74 72 65 28 6d 65  |mp_MenuCentre(me|
00002690  6e 25 2c 69 25 2b 31 29  0d 0d 7a 05 ed 0d 0d 84  |n%,i%+1)..z.....|
000026a0  09 3d 6d 65 6e 25 0d 0d  8e 05 3a 0d 0d 98 22 dd  |.=men%....:...".|
000026b0  20 a4 57 69 6d 70 5f 4d  65 6e 75 4e 6f 4f 66 45  | .Wimp_MenuNoOfE|
000026c0  6e 74 72 69 65 73 28 6d  65 6e 75 24 29 0d 0d a2  |ntries(menu$)...|
000026d0  1a ea 20 6e 25 20 2c 6a  25 20 3a 20 6e 25 3d 30  |.. n% ,j% : n%=0|
000026e0  20 3a 20 6a 25 3d 30 0d  0d ac 05 f5 0d 0d b6 17  | : j%=0.........|
000026f0  6a 25 3d a7 6d 65 6e 75  24 2c 22 5c 22 2c 6a 25  |j%=.menu$,"\",j%|
00002700  2b 31 29 0d 0d c0 13 e7  20 6a 25 3c 3e 30 20 8c  |+1)..... j%<>0 .|
00002710  20 6e 25 2b 3d 31 0d 0d  ca 0a fd 20 6a 25 3d 30  | n%+=1..... j%=0|
00002720  0d 0d d4 07 3d 6e 25 0d  0d de 05 3a 0d 0d e8 35  |....=n%....:...5|
00002730  dd 20 f2 57 69 6d 70 5f  4d 65 6e 75 42 61 63 6b  |. .Wimp_MenuBack|
00002740  47 72 6f 75 6e 64 43 6f  6c 6f 75 72 28 6d 65 6e  |GroundColour(men|
00002750  75 25 2c 69 74 65 6d 25  2c 63 6f 6c 6f 75 72 25  |u%,item%,colour%|
00002760  29 0d 0d f2 0e ea 20 66  6f 72 65 25 2c 69 25 0d  |)..... fore%,i%.|
00002770  0d fc 26 66 6f 72 65 25  3d 28 6d 65 6e 75 25 3f  |..&fore%=(menu%?|
00002780  28 33 39 2b 28 69 74 65  6d 25 2d 31 29 2a 32 34  |(39+(item%-1)*24|
00002790  29 29 83 31 36 0d 0e 06  28 69 25 3d 28 28 6d 65  |)).16...(i%=((me|
000027a0  6e 75 25 3f 28 33 39 2b  28 69 74 65 6d 25 2d 31  |nu%?(39+(item%-1|
000027b0  29 2a 32 34 29 29 81 31  36 29 83 31 36 0d 0e 10  |)*24)).16).16...|
000027c0  2f 6d 65 6e 75 25 3f 28  33 39 2b 28 69 74 65 6d  |/menu%?(39+(item|
000027d0  25 2d 31 29 2a 32 34 29  3d 66 6f 72 65 25 2b 31  |%-1)*24)=fore%+1|
000027e0  36 2a 63 6f 6c 6f 75 72  25 2b 69 25 0d 0e 1a 05  |6*colour%+i%....|
000027f0  e1 0d 0e 24 05 3a 0d 0e  2e 23 dd 20 f2 57 69 6d  |...$.:...#. .Wim|
00002800  70 5f 4d 65 6e 75 43 65  6e 74 72 65 28 6d 65 6e  |p_MenuCentre(men|
00002810  75 25 2c 69 74 65 6d 25  29 0d 0e 38 3a 6d 65 6e  |u%,item%)..8:men|
00002820  75 25 21 28 33 36 2b 28  69 74 65 6d 25 2d 31 29  |u%!(36+(item%-1)|
00002830  2a 32 34 29 3d 6d 65 6e  75 25 21 28 33 36 2b 28  |*24)=menu%!(36+(|
00002840  69 74 65 6d 25 2d 31 29  2a 32 34 29 84 28 31 3c  |item%-1)*24).(1<|
00002850  3c 33 29 0d 0e 42 05 e1  0d 0e 4c 05 3a 0d 0e 56  |<3)..B....L.:..V|
00002860  15 dd 20 f2 57 69 6d 70  5f 4d 65 6e 75 43 6c 6f  |.. .Wimp_MenuClo|
00002870  73 65 0d 0e 60 1b c8 99  20 22 57 69 6d 70 5f 43  |se..`... "Wimp_C|
00002880  72 65 61 74 65 4d 65 6e  75 22 2c 2d 31 0d 0e 6a  |reateMenu",-1..j|
00002890  05 e1 0d 0e 74 05 3a 0d  0e 7e 24 dd 20 f2 57 69  |....t.:..~$. .Wi|
000028a0  6d 70 5f 4d 65 6e 75 44  69 73 61 62 6c 65 28 6d  |mp_MenuDisable(m|
000028b0  65 6e 75 25 2c 69 74 65  6d 25 29 0d 0e 88 3b 6d  |enu%,item%)...;m|
000028c0  65 6e 75 25 21 28 33 36  2b 28 69 74 65 6d 25 2d  |enu%!(36+(item%-|
000028d0  31 29 2a 32 34 29 3d 6d  65 6e 75 25 21 28 33 36  |1)*24)=menu%!(36|
000028e0  2b 28 69 74 65 6d 25 2d  31 29 2a 32 34 29 84 28  |+(item%-1)*24).(|
000028f0  31 3c 3c 32 32 29 0d 0e  92 05 e1 0d 0e 9c 05 3a  |1<<22).........:|
00002900  0d 0e a6 27 dd 20 f2 57  69 6d 70 5f 4d 65 6e 75  |...'. .Wimp_Menu|
00002910  44 6f 74 74 65 64 4c 69  6e 65 28 6d 65 6e 75 25  |DottedLine(menu%|
00002920  2c 69 74 65 6d 25 29 0d  0e b0 37 6d 65 6e 75 25  |,item%)...7menu%|
00002930  21 28 32 38 2b 28 69 74  65 6d 25 2d 31 29 2a 32  |!(28+(item%-1)*2|
00002940  34 29 3d 28 6d 65 6e 75  25 21 28 32 38 2b 28 69  |4)=(menu%!(28+(i|
00002950  74 65 6d 25 2d 31 29 2a  32 34 29 29 84 32 0d 0e  |tem%-1)*24)).2..|
00002960  ba 05 e1 0d 0e c4 05 3a  0d 0e ce 23 dd 20 f2 57  |.......:...#. .W|
00002970  69 6d 70 5f 4d 65 6e 75  45 6e 61 62 6c 65 28 6d  |imp_MenuEnable(m|
00002980  65 6e 75 25 2c 69 74 65  6d 25 29 0d 0e d8 22 f2  |enu%,item%)...".|
00002990  57 69 6d 70 5f 4d 65 6e  75 44 69 73 61 62 6c 65  |Wimp_MenuDisable|
000029a0  28 6d 65 6e 75 25 2c 69  74 65 6d 25 29 0d 0e e2  |(menu%,item%)...|
000029b0  3b 6d 65 6e 75 25 21 28  33 36 2b 28 69 74 65 6d  |;menu%!(36+(item|
000029c0  25 2d 31 29 2a 32 34 29  3d 6d 65 6e 75 25 21 28  |%-1)*24)=menu%!(|
000029d0  33 36 2b 28 69 74 65 6d  25 2d 31 29 2a 32 34 29  |36+(item%-1)*24)|
000029e0  82 28 31 3c 3c 32 32 29  0d 0e ec 05 e1 0d 0e f6  |.(1<<22)........|
000029f0  05 3a 0d 0f 00 35 dd 20  f2 57 69 6d 70 5f 4d 65  |.:...5. .Wimp_Me|
00002a00  6e 75 46 6f 72 65 67 72  6f 75 6e 64 43 6f 6c 6f  |nuForegroundColo|
00002a10  75 72 28 6d 65 6e 75 25  2c 69 74 65 6d 25 2c 63  |ur(menu%,item%,c|
00002a20  6f 6c 6f 75 72 25 29 0d  0f 0a 45 6d 65 6e 75 25  |olour%)...Emenu%|
00002a30  3f 28 33 39 2b 28 69 74  65 6d 25 2d 31 29 2a 32  |?(39+(item%-1)*2|
00002a40  34 29 3d 63 6f 6c 6f 75  72 25 2b 31 36 2a 28 28  |4)=colour%+16*((|
00002a50  6d 65 6e 75 25 3f 28 33  39 2b 28 69 74 65 6d 25  |menu%?(39+(item%|
00002a60  2d 31 29 2a 32 34 29 29  81 31 36 29 0d 0f 14 05  |-1)*24)).16)....|
00002a70  e1 0d 0f 1e 05 3a 0d 0f  28 29 dd 20 f2 57 69 6d  |.....:..(). .Wim|
00002a80  70 5f 4d 65 6e 75 47 6c  75 65 28 6d 65 6e 75 31  |p_MenuGlue(menu1|
00002a90  25 2c 69 74 65 6d 25 2c  6d 65 6e 75 32 25 29 0d  |%,item%,menu2%).|
00002aa0  0f 32 1e 6d 65 6e 75 31  25 21 28 38 2b 69 74 65  |.2.menu1%!(8+ite|
00002ab0  6d 25 2a 32 34 29 3d 6d  65 6e 75 32 25 0d 0f 3c  |m%*24)=menu2%..<|
00002ac0  05 e1 0d 0f 46 05 3a 0d  0f 50 27 dd 20 f2 57 69  |....F.:..P'. .Wi|
00002ad0  6d 70 5f 4d 65 6e 75 49  74 65 6d 28 6d 65 6e 75  |mp_MenuItem(menu|
00002ae0  25 2c 69 74 65 6d 25 2c  69 74 65 6d 24 29 0d 0f  |%,item%,item$)..|
00002af0  5a 2c 24 28 6d 65 6e 75  25 2b 28 34 30 2b 28 69  |Z,$(menu%+(40+(i|
00002b00  74 65 6d 25 2d 31 29 2a  32 34 29 29 3d c0 69 74  |tem%-1)*24))=.it|
00002b10  65 6d 24 2c 31 32 29 2b  bd 30 0d 0f 64 05 e1 0d  |em$,12)+.0..d...|
00002b20  0f 6e 05 3a 0d 0f 78 24  dd 20 f2 57 69 6d 70 5f  |.n.:..x$. .Wimp_|
00002b30  4d 65 6e 75 4d 65 73 73  61 67 65 28 6d 65 6e 75  |MenuMessage(menu|
00002b40  25 2c 69 74 65 6d 25 29  0d 0f 82 3c 6d 65 6e 75  |%,item%)...<menu|
00002b50  25 21 28 32 38 2b 28 69  74 65 6d 25 2d 31 29 2a  |%!(28+(item%-1)*|
00002b60  32 34 29 3d 28 6d 65 6e  75 25 21 28 32 38 2b 28  |24)=(menu%!(28+(|
00002b70  69 74 65 6d 25 2d 31 29  2a 32 34 29 29 82 28 31  |item%-1)*24)).(1|
00002b80  3c 3c 33 29 0d 0f 8c 05  e1 0d 0f 96 05 3a 0d 0f  |<<3).........:..|
00002b90  a0 22 dd 20 f2 57 69 6d  70 5f 4d 65 6e 75 50 6f  |.". .Wimp_MenuPo|
00002ba0  70 55 70 28 4d 65 6e 75  25 2c 78 25 2c 79 25 29  |pUp(Menu%,x%,y%)|
00002bb0  0d 0f aa 0f 6d 65 6e 75  25 3d 4d 65 6e 75 25 0d  |....menu%=Menu%.|
00002bc0  0f b4 2b c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |..+.. "Wimp_Crea|
00002bd0  74 65 4d 65 6e 75 22 2c  2c 6d 65 6e 75 25 2c 78  |teMenu",,menu%,x|
00002be0  25 2d 36 34 2c 79 25 2b  32 30 0d 0f be 05 e1 0d  |%-64,y%+20......|
00002bf0  0f c8 05 3a 0d 0f d2 1f  dd 20 f2 57 69 6d 70 5f  |...:..... .Wimp_|
00002c00  4d 65 6e 75 50 6f 70 55  70 42 61 72 28 78 25 2c  |MenuPopUpBar(x%,|
00002c10  79 25 29 0d 0f dc 0f ea  20 6e 25 20 3a 20 6e 25  |y%)..... n% : n%|
00002c20  3d 30 0d 0f e6 2b c8 95  20 28 28 42 61 72 5f 4d  |=0...+.. ((Bar_M|
00002c30  65 6e 75 25 21 28 32 38  2b 6e 25 2a 32 34 29 29  |enu%!(28+n%*24))|
00002c40  80 25 31 30 30 30 30 30  30 30 29 3d 30 0d 0f f0  |.%10000000)=0...|
00002c50  09 6e 25 2b 3d 31 0d 0f  fa 05 ce 0d 10 04 32 c8  |.n%+=1........2.|
00002c60  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |. "Wimp_CreateMe|
00002c70  6e 75 22 2c 2c 42 61 72  5f 4d 65 6e 75 25 2c 78  |nu",,Bar_Menu%,x|
00002c80  25 2d 36 34 2c 39 36 2b  6e 25 2a 34 34 0d 10 0e  |%-64,96+n%*44...|
00002c90  13 6d 65 6e 75 25 3d 42  61 72 5f 4d 65 6e 75 25  |.menu%=Bar_Menu%|
00002ca0  0d 10 18 05 e1 0d 10 22  05 3a 0d 10 2c 21 dd 20  |.......".:..,!. |
00002cb0  f2 57 69 6d 70 5f 4d 65  6e 75 54 69 63 6b 28 6d  |.Wimp_MenuTick(m|
00002cc0  65 6e 75 25 2c 69 74 65  6d 25 29 0d 10 36 37 6d  |enu%,item%)..67m|
00002cd0  65 6e 75 25 21 28 32 38  2b 28 69 74 65 6d 25 2d  |enu%!(28+(item%-|
00002ce0  31 29 2a 32 34 29 3d 28  6d 65 6e 75 25 21 28 32  |1)*24)=(menu%!(2|
00002cf0  38 2b 28 69 74 65 6d 25  2d 31 29 2a 32 34 29 29  |8+(item%-1)*24))|
00002d00  82 31 0d 10 40 05 e1 0d  10 4a 05 3a 0d 10 54 23  |.1..@....J.:..T#|
00002d10  dd 20 f2 57 69 6d 70 5f  4d 65 6e 75 54 69 74 6c  |. .Wimp_MenuTitl|
00002d20  65 28 6d 65 6e 75 25 2c  74 69 74 6c 65 24 29 0d  |e(menu%,title$).|
00002d30  10 5e 19 24 6d 65 6e 75  25 3d c0 74 69 74 6c 65  |.^.$menu%=.title|
00002d40  24 2c 31 32 29 2b bd 30  0d 10 68 05 e1 0d 10 72  |$,12)+.0..h....r|
00002d50  05 3a 0d 10 7c 3d dd 20  f2 57 69 6d 70 5f 4d 65  |.:..|=. .Wimp_Me|
00002d60  6e 75 57 72 69 74 65 28  6d 65 6e 75 25 2c 69 74  |nuWrite(menu%,it|
00002d70  65 6d 25 2c 62 75 66 66  65 72 25 2c 76 61 6c 25  |em%,buffer%,val%|
00002d80  2c 42 75 66 66 65 72 4c  65 6e 67 74 68 25 29 0d  |,BufferLength%).|
00002d90  10 86 37 6d 65 6e 75 25  21 28 32 38 2b 28 69 74  |..7menu%!(28+(it|
00002da0  65 6d 25 2d 31 29 2a 32  34 29 3d 28 6d 65 6e 75  |em%-1)*24)=(menu|
00002db0  25 21 28 32 38 2b 28 69  74 65 6d 25 2d 31 29 2a  |%!(28+(item%-1)*|
00002dc0  32 34 29 29 84 34 0d 10  90 38 6d 65 6e 75 25 21  |24)).4...8menu%!|
00002dd0  28 33 36 2b 28 69 74 65  6d 25 2d 31 29 2a 32 34  |(36+(item%-1)*24|
00002de0  29 3d 6d 65 6e 75 25 21  28 33 36 2b 28 69 74 65  |)=menu%!(36+(ite|
00002df0  6d 25 2d 31 29 2a 32 34  29 84 26 31 30 30 0d 10  |m%-1)*24).&100..|
00002e00  9a 23 6d 65 6e 75 25 21  28 34 30 2b 28 69 74 65  |.#menu%!(40+(ite|
00002e10  6d 25 2d 31 29 2a 32 34  29 3d 62 75 66 66 65 72  |m%-1)*24)=buffer|
00002e20  25 0d 10 a4 20 6d 65 6e  75 25 21 28 34 34 2b 28  |%... menu%!(44+(|
00002e30  69 74 65 6d 25 2d 31 29  2a 32 34 29 3d 76 61 6c  |item%-1)*24)=val|
00002e40  25 0d 10 ae 29 6d 65 6e  75 25 21 28 34 38 2b 28  |%...)menu%!(48+(|
00002e50  69 74 65 6d 25 2d 31 29  2a 32 34 29 3d 42 75 66  |item%-1)*24)=Buf|
00002e60  66 65 72 4c 65 6e 67 74  68 25 0d 10 b8 05 e1 0d  |ferLength%......|
00002e70  10 c2 05 3a 0d 10 cc 06  f4 7c 0d 10 d6 06 f4 7c  |...:.....|.....||
00002e80  0d 10 e0 06 f4 7c 0d 10  ea 31 f4 7c 20 20 20 20  |.....|...1.|    |
00002e90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 2d  |              --|
00002ea0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002eb0  2d 2d 2d 2d 2d 2d 2d 0d  10 f4 2a f4 7c 20 20 20  |-------...*.|   |
00002ec0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002ed0  20 20 20 20 20 20 20 34  2e a0 53 70 72 69 74 65  |       4..Sprite|
00002ee0  73 0d 10 fe 31 f4 7c 20  20 20 20 20 20 20 20 20  |s...1.|         |
00002ef0  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 2d  |         -------|
00002f00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002f10  2d 2d 0d 11 08 06 f4 7c  0d 11 12 06 f4 7c 0d 11  |--.....|.....|..|
00002f20  1c 3a f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.:.|            |
00002f30  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
00002f40  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002f50  2d 2d 2d 2d 2d 2d 2d 2d  0d 11 26 06 f4 7c 0d 11  |--------..&..|..|
00002f60  30 28 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |0(.|            |
00002f70  20 20 20 20 20 20 20 20  20 20 50 72 6f 63 65 64  |          Proced|
00002f80  75 72 65 73 20 3a 0d 11  3a 06 f4 7c 0d 11 44 06  |ures :..:..|..D.|
00002f90  f4 7c 0d 11 4e 2c f4 7c  20 20 20 20 20 20 20 20  |.|..N,.|        |
00002fa0  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00002fb0  6d 70 5f 53 70 72 69 74  65 73 4c 6f 61 64 0d 11  |mp_SpritesLoad..|
00002fc0  58 3a f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |X:.|            |
00002fd0  20 20 20 20 20 20 50 52  4f 43 57 69 6d 70 5f 53  |      PROCWimp_S|
00002fe0  70 72 69 74 65 73 50 61  74 68 4c 6f 61 64 28 70  |pritesPathLoad(p|
00002ff0  61 74 68 6e 61 6d 65 24  0d 11 62 06 f4 7c 0d 11  |athname$..b..|..|
00003000  6c 06 f4 7c 0d 11 76 06  f4 7c 0d 11 80 3a f4 7c  |l..|..v..|...:.||
00003010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003020  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003040  2d 2d 2d 2d 0d 11 8a 06  f4 7c 0d 11 94 05 3a 0d  |----.....|....:.|
00003050  11 9e 17 dd 20 f2 57 69  6d 70 5f 53 70 72 69 74  |.... .Wimp_Sprit|
00003060  65 73 4c 6f 61 64 0d 11  a8 2f f2 57 69 6d 70 5f  |esLoad.../.Wimp_|
00003070  53 70 72 69 74 65 73 50  61 74 68 4c 6f 61 64 28  |SpritesPathLoad(|
00003080  22 3c 4f 62 65 79 24 44  69 72 3e 2e 53 70 72 69  |"<Obey$Dir>.Spri|
00003090  74 65 73 22 29 0d 11 b2  1c 64 69 72 65 63 74 5f  |tes")....direct_|
000030a0  73 70 72 69 74 65 73 25  3d 73 70 72 69 74 65 73  |sprites%=sprites|
000030b0  25 0d 11 bc 05 e1 0d 11  c6 05 3a 0d 11 d0 26 dd  |%.........:...&.|
000030c0  20 f2 57 69 6d 70 5f 53  70 72 69 74 65 73 50 61  | .Wimp_SpritesPa|
000030d0  74 68 4c 6f 61 64 28 70  61 74 68 6e 61 6d 65 24  |thLoad(pathname$|
000030e0  29 0d 11 da 0a ea 53 25  2c 54 25 0d 11 e4 2c 53  |).....S%,T%...,S|
000030f0  25 3d 8e 22 3c 4f 62 65  79 24 44 69 72 3e 2e 53  |%=."<Obey$Dir>.S|
00003100  70 72 69 74 65 73 22 3a  54 25 3d a2 23 53 25 2b  |prites":T%=.#S%+|
00003110  31 36 3a d9 23 53 25 0d  11 ee 19 de 73 70 72 69  |16:.#S%.....spri|
00003120  74 65 73 25 54 25 2c 73  70 6e 61 6d 65 25 31 32  |tes%T%,spname%12|
00003130  0d 11 f8 1d 21 73 70 72  69 74 65 73 25 3d 54 25  |....!sprites%=T%|
00003140  3a 73 70 72 69 74 65 73  25 21 38 3d 30 0d 12 02  |:sprites%!8=0...|
00003150  21 c8 99 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |!.."OS_SpriteOp"|
00003160  2c 26 31 30 39 2c 73 70  72 69 74 65 73 25 0d 12  |,&109,sprites%..|
00003170  0c 2b c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |.+.."OS_SpriteOp|
00003180  22 2c 26 31 30 41 2c 73  70 72 69 74 65 73 25 2c  |",&10A,sprites%,|
00003190  70 61 74 68 6e 61 6d 65  24 0d 12 16 05 e1 0d 12  |pathname$.......|
000031a0  20 05 3a 0d 12 2a 06 f4  7c 0d 12 34 06 f4 7c 0d  | .:..*..|..4..|.|
000031b0  12 3e 06 f4 7c 0d 12 48  31 f4 7c 20 20 20 20 20  |.>..|..H1.|     |
000031c0  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |             ---|
000031d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000031e0  2d 2d 2d 2d 2d 2d 0d 12  52 28 f4 7c 20 20 20 20  |------..R(.|    |
000031f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003200  20 20 20 20 20 20 35 2e  a0 46 69 6c 65 73 0d 12  |      5..Files..|
00003210  5c 31 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |\1.|            |
00003220  20 20 20 20 20 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |      ----------|
00003230  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00003240  12 66 06 f4 7c 0d 12 70  06 f4 7c 0d 12 7a 35 f4  |.f..|..p..|..z5.|
00003250  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00003260  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00003270  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003280  0d 12 84 06 f4 7c 0d 12  8e 28 f4 7c 20 20 20 20  |.....|...(.|    |
00003290  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000032a0  20 20 50 72 6f 63 65 64  75 72 65 73 20 3a 0d 12  |  Procedures :..|
000032b0  98 06 f4 7c 0d 12 a2 06  f4 7c 0d 12 ac 2e f4 7c  |...|.....|.....||
000032c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000032d0  20 20 46 4e 57 69 6d 70  5f 46 69 6c 65 54 79 70  |  FNWimp_FileTyp|
000032e0  65 28 74 79 70 65 25 29  0d 12 b6 2e f4 7c 20 20  |e(type%).....|  |
000032f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003300  46 4e 57 69 6d 70 5f 47  65 74 46 69 6c 65 50 61  |FNWimp_GetFilePa|
00003310  74 68 4e 61 6d 65 0d 12  c0 32 f4 7c 20 20 20 20  |thName...2.|    |
00003320  20 20 20 20 20 20 20 20  20 20 20 20 20 20 46 4e  |              FN|
00003330  57 69 6d 70 5f 46 69 6c  65 4c 6f 61 64 28 70 61  |Wimp_FileLoad(pa|
00003340  74 68 6e 61 6d 65 24 29  0d 12 ca 39 f4 7c 20 20  |thname$)...9.|  |
00003350  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003360  46 4e 57 69 6d 70 5f 47  65 74 53 74 72 69 6e 67  |FNWimp_GetString|
00003370  41 74 41 64 64 72 65 73  73 28 61 72 72 61 79 25  |AtAddress(array%|
00003380  29 0d 12 d4 36 f4 7c 20  20 20 20 20 20 20 20 20  |)...6.|         |
00003390  20 20 20 20 20 20 20 20  20 46 4e 57 69 6d 70 5f  |         FNWimp_|
000033a0  47 65 74 46 69 6c 65 46  72 6f 6d 50 61 74 68 6e  |GetFileFromPathn|
000033b0  61 6d 65 28 66 24 29 0d  12 de 32 f4 7c 20 20 20  |ame(f$)...2.|   |
000033c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |               P|
000033d0  52 4f 43 57 69 6d 70 5f  53 65 6e 64 54 6f 45 64  |ROCWimp_SendToEd|
000033e0  69 74 28 66 69 6c 65 24  29 0d 12 e8 06 f4 7c 0d  |it(file$).....|.|
000033f0  12 f2 35 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..5.|           |
00003400  20 20 20 20 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |     -----------|
00003410  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003420  2d 2d 2d 2d 0d 12 fc 06  f4 7c 0d 13 06 06 f4 7c  |----.....|.....||
00003430  0d 13 10 06 f4 7c 0d 13  1a 05 3a 0d 13 24 1b dd  |.....|....:..$..|
00003440  20 a4 57 69 6d 70 5f 46  69 6c 65 54 79 70 65 28  | .Wimp_FileType(|
00003450  74 79 70 65 25 29 0d 13  2e 0c c8 8e 74 79 70 65  |type%)......type|
00003460  25 ca 0d 13 38 11 c9 26  46 46 46 3a 3d 22 54 65  |%...8..&FFF:="Te|
00003470  78 74 22 0d 13 42 11 c9  26 46 46 44 3a 3d 22 44  |xt"..B..&FFD:="D|
00003480  61 74 61 22 0d 13 4c 12  c9 26 46 46 42 3a 3d 22  |ata"..L..&FFB:="|
00003490  42 61 73 69 63 22 0d 13  56 13 c9 26 46 46 39 3a  |Basic"..V..&FF9:|
000034a0  3d 22 53 70 72 69 74 65  22 0d 13 60 14 c9 26 46  |="Sprite"..`..&F|
000034b0  45 44 3a 3d 22 50 61 6c  65 74 74 65 22 0d 13 6a  |ED:="Palette"..j|
000034c0  15 c9 26 46 45 43 3a 3d  22 54 65 6d 70 6c 61 74  |..&FEC:="Templat|
000034d0  65 22 0d 13 74 11 c9 26  41 46 46 3a 3d 22 44 72  |e"..t..&AFF:="Dr|
000034e0  61 77 22 0d 13 7e 14 c9  26 31 30 30 30 3a 3d 22  |aw"..~..&1000:="|
000034f0  46 6f 6c 64 65 72 22 0d  13 88 19 c9 26 32 30 30  |Folder".....&200|
00003500  30 3a 3d 22 41 70 70 6c  69 63 61 74 69 6f 6e 22  |0:="Application"|
00003510  0d 13 92 0f 7f 3d c3 7e  28 74 79 70 65 25 29 0d  |.....=.~(type%).|
00003520  13 9c 05 cb 0d 13 a6 05  3a 0d 13 b0 1b dd 20 a4  |........:..... .|
00003530  57 69 6d 70 5f 47 65 74  46 69 6c 65 50 61 74 68  |Wimp_GetFilePath|
00003540  4e 61 6d 65 0d 13 ba 27  3d a4 57 69 6d 70 5f 47  |Name...'=.Wimp_G|
00003550  65 74 53 74 72 69 6e 67  41 74 41 64 64 72 65 73  |etStringAtAddres|
00003560  73 28 77 69 6d 70 25 2b  34 34 29 0d 13 c4 05 3a  |s(wimp%+44)....:|
00003570  0d 13 ce 1f dd 20 a4 57  69 6d 70 5f 46 69 6c 65  |..... .Wimp_File|
00003580  4c 6f 61 64 28 70 61 74  68 6e 61 6d 65 24 29 0d  |Load(pathname$).|
00003590  13 d8 10 ea 53 25 2c 54  25 2c 66 69 6c 65 25 0d  |....S%,T%,file%.|
000035a0  13 e2 11 53 25 3d 8e 70  61 74 68 6e 61 6d 65 24  |...S%=.pathname$|
000035b0  0d 13 ec 0e 54 25 3d a2  23 53 25 2b 31 36 0d 13  |....T%=.#S%+16..|
000035c0  f6 08 d9 23 53 25 0d 14  00 0c de 66 69 6c 65 25  |...#S%.....file%|
000035d0  54 25 0d 14 0a 22 ff 28  22 4c 4f 41 44 22 2b 70  |T%...".("LOAD"+p|
000035e0  61 74 68 6e 61 6d 65 24  2b 22 22 2b c3 7e 66 69  |athname$+""+.~fi|
000035f0  6c 65 25 29 0d 14 14 0a  3d 66 69 6c 65 25 0d 14  |le%)....=file%..|
00003600  1e 05 3b 0d 14 28 26 dd  20 a4 57 69 6d 70 5f 47  |..;..(&. .Wimp_G|
00003610  65 74 53 74 72 69 6e 67  41 74 41 64 64 72 65 73  |etStringAtAddres|
00003620  73 28 61 72 72 61 79 25  29 0d 14 32 0d ea 73 24  |s(array%)..2..s$|
00003630  3a 73 24 3d 22 22 0d 14  3c 3c c8 95 28 3f 61 72  |:s$=""..<<..(?ar|
00003640  72 61 79 25 3c 3e 31 33  29 80 28 3f 61 72 72 61  |ray%<>13).(?arra|
00003650  79 25 3c 3e 30 29 3a 73  24 2b 3d bd 28 3f 61 72  |y%<>0):s$+=.(?ar|
00003660  72 61 79 25 29 3a 61 72  72 61 79 25 2b 3d 31 3a  |ray%):array%+=1:|
00003670  ce 3a 0d 14 46 07 3d 73  24 0d 14 50 05 3a 0d 14  |.:..F.=s$..P.:..|
00003680  5a 23 dd 20 a4 57 69 6d  70 5f 47 65 74 46 69 6c  |Z#. .Wimp_GetFil|
00003690  65 46 72 6f 6d 50 61 74  68 6e 61 6d 65 28 66 24  |eFromPathname(f$|
000036a0  29 0d 14 64 11 c8 8e 20  a7 66 24 2c 22 2e 22 29  |)..d... .f$,".")|
000036b0  20 ca 0d 14 6e 10 20 c9  20 30 20 20 20 20 3a 3d  | ...n. . 0    :=|
000036c0  66 24 0d 14 78 37 20 7f  20 3a 3d a4 57 69 6d 70  |f$..x7 . :=.Wimp|
000036d0  5f 47 65 74 46 69 6c 65  46 72 6f 6d 50 61 74 68  |_GetFileFromPath|
000036e0  6e 61 6d 65 28 c2 66 24  2c a9 28 66 24 29 2d a7  |name(.f$,.(f$)-.|
000036f0  66 24 2c 22 2e 22 29 29  29 0d 14 82 05 cb 0d 14  |f$,"."))).......|
00003700  8c 05 3a 0d 14 96 1d dd  20 f2 57 69 6d 70 5f 53  |..:..... .Wimp_S|
00003710  65 6e 64 54 6f 45 64 69  74 28 66 69 6c 65 24 29  |endToEdit(file$)|
00003720  0d 14 a0 08 ea 20 6e 25  0d 14 aa 15 77 69 6d 70  |..... n%....wimp|
00003730  25 21 34 3d 26 36 43 43  30 31 43 30 43 0d 14 b4  |%!4=&6CC01C0C...|
00003740  0e 77 69 6d 70 25 21 31  36 3d 35 0d 14 be 0e 77  |.wimp%!16=5....w|
00003750  69 6d 70 25 21 33 36 3d  30 0d 14 c8 11 77 69 6d  |imp%!36=0....wim|
00003760  70 25 21 34 30 3d 26 46  46 46 0d 14 d2 18 24 28  |p%!40=&FFF....$(|
00003770  77 69 6d 70 25 2b 34 34  29 3d 66 69 6c 65 24 2b  |wimp%+44)=file$+|
00003780  bd 30 0d 14 dc 10 6e 25  3d a9 66 69 6c 65 24 2b  |.0....n%=.file$+|
00003790  34 35 0d 14 e6 2c e7 20  6e 25 83 34 20 8c 20 21  |45...,. n%.4 . !|
000037a0  77 69 6d 70 25 3d 34 2b  28 6e 25 3e 3e 32 29 3c  |wimp%=4+(n%>>2)<|
000037b0  3c 32 20 8b 20 21 77 69  6d 70 25 3d 6e 25 0d 14  |<2 . !wimp%=n%..|
000037c0  f0 24 c8 99 20 22 57 69  6d 70 5f 53 65 6e 64 4d  |.$.. "Wimp_SendM|
000037d0  65 73 73 61 67 65 22 2c  31 37 2c 77 69 6d 70 25  |essage",17,wimp%|
000037e0  2c 30 0d 14 fa 05 e1 0d  15 04 05 3a 0d 15 0e 06  |,0.........:....|
000037f0  f4 7c 0d 15 18 06 f4 7c  0d 15 22 06 f4 7c 0d 15  |.|.....|.."..|..|
00003800  2c 31 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |,1.|            |
00003810  20 20 20 20 20 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |      ----------|
00003820  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00003830  15 36 2c f4 7c 20 20 20  20 20 20 20 20 20 20 20  |.6,.|           |
00003840  20 20 20 20 20 20 20 20  20 20 20 35 2e a0 4d 69  |           5..Mi|
00003850  73 63 65 6c 6c 61 6e 65  6f 75 73 0d 15 40 31 f4  |scellaneous..@1.|
00003860  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00003870  20 20 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |   -------------|
00003880  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 15 4a 06  |------------..J.|
00003890  f4 7c 0d 15 54 06 f4 7c  0d 15 5e 35 f4 7c 20 20  |.|..T..|..^5.|  |
000038a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 2d  |              --|
000038b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000038c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 15 68  |-------------..h|
000038d0  06 f4 7c 0d 15 72 28 f4  7c 20 20 20 20 20 20 20  |..|..r(.|       |
000038e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |               P|
000038f0  72 6f 63 65 64 75 72 65  73 20 3a 0d 15 7c 06 f4  |rocedures :..|..|
00003900  7c 0d 15 86 06 f4 7c 0d  15 90 31 f4 7c 20 20 20  ||.....|...1.|   |
00003910  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |               P|
00003920  52 4f 43 57 69 6d 70 5f  53 74 61 72 74 28 54 61  |ROCWimp_Start(Ta|
00003930  73 6b 4e 61 6d 65 24 29  0d 15 9a 2e f4 7c 20 20  |skName$).....|  |
00003940  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003950  46 4e 57 69 6d 70 5f 42  41 53 49 43 50 61 72 61  |FNWimp_BASICPara|
00003960  6d 65 74 65 72 73 0d 15  a4 32 f4 7c 20 20 20 20  |meters...2.|    |
00003970  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 52  |              PR|
00003980  4f 43 57 69 6d 70 5f 53  65 74 45 76 65 6e 74 56  |OCWimp_SetEventV|
00003990  61 72 69 61 62 6c 65 73  0d 15 ae 37 f4 7c 20 20  |ariables...7.|  |
000039a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000039b0  50 52 4f 43 57 69 6d 70  5f 45 72 72 6f 72 28 74  |PROCWimp_Error(t|
000039c0  61 73 6b 25 2c 54 61 73  6b 4e 61 6d 65 24 29 0d  |ask%,TaskName$).|
000039d0  15 b8 2a f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..*.|           |
000039e0  20 20 20 20 20 20 20 50  52 4f 43 57 69 6d 70 5f  |       PROCWimp_|
000039f0  43 6c 6f 73 65 44 6f 77  6e 0d 15 c2 25 f4 7c 20  |CloseDown...%.| |
00003a00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003a10  20 50 52 4f 43 57 69 6d  70 5f 51 75 69 74 0d 15  | PROCWimp_Quit..|
00003a20  cc 36 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.6.|            |
00003a30  20 20 20 20 20 20 46 4e  57 69 6d 70 5f 52 65 61  |      FNWimp_Rea|
00003a40  64 56 61 72 69 61 62 6c  65 28 56 61 72 69 61 62  |dVariable(Variab|
00003a50  6c 65 24 29 0d 15 d6 06  f4 7c 0d 15 e0 06 f4 7c  |le$).....|.....||
00003a60  0d 15 ea 35 f4 7c 20 20  20 20 20 20 20 20 20 20  |...5.|          |
00003a70  20 20 20 20 20 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |      ----------|
00003a80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003a90  2d 2d 2d 2d 2d 0d 15 f4  06 f4 7c 0d 15 fe 05 3a  |-----.....|....:|
00003aa0  0d 16 08 2f dd 20 f2 57  69 6d 70 5f 53 74 61 72  |.../. .Wimp_Star|
00003ab0  74 28 54 61 73 6b 4e 61  6d 65 24 2c 77 69 6d 70  |t(TaskName$,wimp|
00003ac0  5f 6d 65 6d 6f 72 79 25  2c 69 63 6f 6e 25 29 0d  |_memory%,icon%).|
00003ad0  16 12 25 de 20 77 69 6d  70 25 20 77 69 6d 70 5f  |..%. wimp% wimp_|
00003ae0  6d 65 6d 6f 72 79 25 2c  69 63 6f 6e 73 25 20 69  |memory%,icons% i|
00003af0  63 6f 6e 25 0d 16 1c 29  e7 20 77 69 6d 70 5f 6d  |con%...). wimp_m|
00003b00  65 6d 6f 72 79 25 3c 32  35 36 20 8c 20 77 69 6d  |emory%<256 . wim|
00003b10  70 5f 6d 65 6d 6f 72 79  25 3d 32 35 36 0d 16 26  |p_memory%=256..&|
00003b20  1d 69 63 6f 6e 5f 6d 65  6d 6f 72 79 25 3d 69 63  |.icon_memory%=ic|
00003b30  6f 6e 73 25 2b 69 63 6f  6e 25 0d 16 30 13 74 61  |ons%+icon%..0.ta|
00003b40  73 6b 24 3d 54 61 73 6b  4e 61 6d 65 24 0d 16 3a  |sk$=TaskName$..:|
00003b50  2b 69 6e 64 69 72 65 63  74 5f 73 70 72 69 74 65  |+indirect_sprite|
00003b60  73 25 3d 31 20 3a 20 64  69 72 65 63 74 5f 73 70  |s%=1 : direct_sp|
00003b70  72 69 74 65 73 25 3d 31  0d 16 44 1b f2 57 69 6d  |rites%=1..D..Wim|
00003b80  70 5f 53 65 74 45 76 65  6e 74 56 61 72 69 61 62  |p_SetEventVariab|
00003b90  6c 65 73 0d 16 4e 15 ee  20 85 20 f2 57 69 6d 70  |les..N.. . .Wimp|
00003ba0  5f 45 72 72 6f 72 3a e0  0d 16 58 40 c8 99 22 57  |_Error:...X@.."W|
00003bb0  69 6d 70 5f 49 6e 69 74  69 61 6c 69 73 65 22 2c  |imp_Initialise",|
00003bc0  32 30 30 2c 26 34 42 35  33 34 31 35 34 2c 54 61  |200,&4B534154,Ta|
00003bd0  73 6b 4e 61 6d 65 24 20  b8 20 76 65 72 73 69 6f  |skName$ . versio|
00003be0  6e 25 2c 74 61 73 6b 25  0d 16 62 05 e1 0d 16 6c  |n%,task%..b....l|
00003bf0  05 3a 0d 16 76 1b dd 20  a4 57 69 6d 70 5f 42 41  |.:..v.. .Wimp_BA|
00003c00  53 49 43 50 61 72 61 6d  65 74 65 72 73 0d 16 80  |SICParameters...|
00003c10  15 20 ea 20 63 6f 6d 24  2c 70 61 72 61 6d 24 2c  |. . com$,param$,|
00003c20  49 25 0d 16 8a 1a 20 c8  99 20 22 4f 53 5f 47 65  |I%.... .. "OS_Ge|
00003c30  74 45 6e 76 22 20 b8 20  63 6f 6d 24 0d 16 94 0f  |tEnv" . com$....|
00003c40  20 70 61 72 61 6d 73 24  3d 22 22 0d 16 9e 18 20  | params$="".... |
00003c50  49 25 3d a7 63 6f 6d 24  2c 22 20 2d 71 75 69 74  |I%=.com$," -quit|
00003c60  20 22 29 0d 16 a8 35 20  e7 20 49 25 20 8c 20 70  | ")...5 . I% . p|
00003c70  61 72 61 6d 73 24 3d c1  63 6f 6d 24 2c a7 63 6f  |arams$=.com$,.co|
00003c80  6d 24 2c 22 20 22 2c 49  25 2b a9 22 20 2d 71 75  |m$," ",I%+." -qu|
00003c90  69 74 20 22 29 2b 31 29  0d 16 b2 0c 3d 70 61 72  |it ")+1)....=par|
00003ca0  61 6d 73 24 0d 16 bc 05  3a 0d 16 c6 1d dd 20 f2  |ams$....:..... .|
00003cb0  57 69 6d 70 5f 53 65 74  45 76 65 6e 74 56 61 72  |Wimp_SetEventVar|
00003cc0  69 61 62 6c 65 73 0d 16  d0 17 de 20 70 6f 69 6e  |iables..... poin|
00003cd0  74 65 72 5f 62 6c 6f 63  6b 25 20 32 30 0d 16 da  |ter_block% 20...|
00003ce0  10 69 6e 74 65 72 66 61  63 65 25 3d a3 0d 16 e4  |.interface%=....|
00003cf0  2e 6e 75 6c 6c 25 3d 31  20 20 3a 64 72 61 77 25  |.null%=1  :draw%|
00003d00  3d 32 20 3a 20 20 70 6f  69 6e 74 65 72 5f 6c 65  |=2 :  pointer_le|
00003d10  61 76 69 6e 67 25 3d 31  3c 3c 34 0d 16 ee 31 70  |aving%=1<<4...1p|
00003d20  6f 69 6e 74 65 72 5f 65  6e 74 65 72 69 6e 67 25  |ointer_entering%|
00003d30  3d 31 3c 3c 35 3a 6d 6f  75 73 65 25 3d 31 3c 3c  |=1<<5:mouse%=1<<|
00003d40  36 3a 64 72 61 67 25 3d  31 3c 3c 37 0d 16 f8 26  |6:drag%=1<<7...&|
00003d50  6b 65 79 25 3d 31 3c 3c  38 3a 6d 65 6e 75 25 3d  |key%=1<<8:menu%=|
00003d60  31 3c 3c 39 3a 73 63 72  6f 6c 6c 25 3d 31 3c 3c  |1<<9:scroll%=1<<|
00003d70  31 30 0d 17 02 40 6c 6f  73 65 5f 63 61 72 65 74  |10...@lose_caret|
00003d80  25 3d 31 3c 3c 31 31 3a  67 61 69 6e 5f 63 61 72  |%=1<<11:gain_car|
00003d90  65 74 25 3d 31 3c 3c 31  32 3a 6d 65 73 73 61 67  |et%=1<<12:messag|
00003da0  65 25 3d 28 31 3c 3c 31  37 29 2b 28 31 3c 3c 31  |e%=(1<<17)+(1<<1|
00003db0  38 29 0d 17 0c 30 72 65  63 6f 72 64 65 72 25 3d  |8)...0recorder%=|
00003dc0  31 3c 3c 31 38 3a 61 63  6b 6e 6f 77 6c 65 64 67  |1<<18:acknowledg|
00003dd0  65 25 3d 31 3c 3c 31 39  3a 77 69 6e 64 6f 77 25  |e%=1<<19:window%|
00003de0  3d 30 0d 17 16 21 73 70  72 69 74 65 73 25 3d 31  |=0...!sprites%=1|
00003df0  3a 76 65 72 73 69 6f 6e  25 3d 30 3a 74 61 73 6b  |:version%=0:task|
00003e00  25 3d 30 0d 17 20 2a 42  61 72 5f 57 69 6e 64 6f  |%=0.. *Bar_Windo|
00003e10  77 25 3d 2d 32 3a 42 61  72 5f 49 63 6f 6e 25 3d  |w%=-2:Bar_Icon%=|
00003e20  30 3a 42 61 72 5f 4d 65  6e 75 25 3d 30 0d 17 2a  |0:Bar_Menu%=0..*|
00003e30  2a 78 5f 6f 72 69 67 69  6e 25 3d 30 3a 79 5f 6f  |*x_origin%=0:y_o|
00003e40  72 69 67 69 6e 25 3d 30  3a 53 61 76 65 57 69 6e  |rigin%=0:SaveWin|
00003e50  64 6f 77 25 3d 2d 33 0d  17 34 33 6d 65 73 73 61  |dow%=-3..43messa|
00003e60  67 65 5f 71 75 69 74 25  3d 30 3a 6d 65 73 73 61  |ge_quit%=0:messa|
00003e70  67 65 5f 73 61 76 65 25  3d 32 3a 6d 65 73 73 61  |ge_save%=2:messa|
00003e80  67 65 5f 6c 6f 61 64 25  3d 33 0d 17 3e 21 6d 6f  |ge_load%=3..>!mo|
00003e90  75 73 65 5f 62 75 74 74  6f 6e 25 3d 32 3a 73 61  |use_button%=2:sa|
00003ea0  76 65 5f 65 76 65 6e 74  25 3d 30 0d 17 48 20 74  |ve_event%=0..H t|
00003eb0  6f 70 5f 6c 69 6e 65 25  3d 30 20 3a 20 62 6f 74  |op_line%=0 : bot|
00003ec0  74 6f 6d 5f 6c 69 6e 65  25 3d 30 0d 17 52 05 e1  |tom_line%=0..R..|
00003ed0  0d 17 5c 05 3a 0d 17 66  11 dd 20 f2 57 69 6d 70  |..\.:..f.. .Wimp|
00003ee0  5f 45 72 72 6f 72 0d 17  70 0a ea 58 24 2c 78 25  |_Error..p..X$,x%|
00003ef0  0d 17 7a 09 ee 20 85 20  87 0d 17 84 08 78 25 3d  |..z.. . .....x%=|
00003f00  9e 0d 17 8e 1b 58 24 3d  f6 24 2b 22 61 74 6c 69  |.....X$=.$+"atli|
00003f10  6e 65 22 2b c3 28 78 25  81 31 30 29 0d 17 98 10  |ne"+.(x%.10)....|
00003f20  de 45 72 72 6f 72 4d 73  67 25 33 36 0d 17 a2 45  |.ErrorMsg%36...E|
00003f30  45 72 72 6f 72 4d 73 67  25 21 30 3d 33 36 3a 45  |ErrorMsg%!0=36:E|
00003f40  72 72 6f 72 4d 73 67 25  21 31 32 3d 30 3a 45 72  |rrorMsg%!12=0:Er|
00003f50  72 6f 72 4d 73 67 25 21  31 36 3d 26 38 31 30 38  |rorMsg%!16=&8108|
00003f60  30 3a 45 72 72 6f 72 4d  73 67 25 21 32 30 3d 78  |0:ErrorMsg%!20=x|
00003f70  25 0d 17 ac 1f 24 28 45  72 72 6f 72 4d 73 67 25  |%....$(ErrorMsg%|
00003f80  2b 32 34 29 3d 22 21 52  75 6e 49 6d 61 67 65 22  |+24)="!RunImage"|
00003f90  0d 17 b6 25 c8 99 22 57  69 6d 70 5f 53 65 6e 64  |...%.."Wimp_Send|
00003fa0  4d 65 73 73 61 67 65 22  2c 31 37 2c 45 72 72 6f  |Message",17,Erro|
00003fb0  72 4d 73 67 25 0d 17 c0  1f f2 57 69 6d 70 5f 57  |rMsg%.....Wimp_W|
00003fc0  69 6e 64 6f 77 41 6c 65  72 74 28 74 61 73 6b 24  |indowAlert(task$|
00003fd0  2c 58 24 29 0d 17 ca 13  f2 57 69 6d 70 5f 43 6c  |,X$).....Wimp_Cl|
00003fe0  6f 73 65 44 6f 77 6e 0d  17 d4 05 e1 0d 17 de 05  |oseDown.........|
00003ff0  3a 0d 17 e8 15 dd 20 f2  57 69 6d 70 5f 43 6c 6f  |:..... .Wimp_Clo|
00004000  73 65 44 6f 77 6e 0d 17  f2 23 c8 99 22 57 69 6d  |seDown...#.."Wim|
00004010  70 5f 43 6c 6f 73 65 44  6f 77 6e 22 2c 74 61 73  |p_CloseDown",tas|
00004020  6b 25 2c 22 54 41 53 4b  22 0d 17 fc 05 e1 0d 18  |k%,"TASK".......|
00004030  06 05 3a 0d 18 10 10 dd  20 f2 57 69 6d 70 5f 51  |..:..... .Wimp_Q|
00004040  75 69 74 0d 18 1a 0f 66  69 6e 69 73 68 65 64 25  |uit....finished%|
00004050  3d b9 0d 18 24 05 e1 0d  18 2e 05 3a 0d 18 38 23  |=...$......:..8#|
00004060  dd 20 a4 57 69 6d 70 5f  52 65 61 64 56 61 72 69  |. .Wimp_ReadVari|
00004070  61 62 6c 65 28 56 61 72  69 61 62 6c 65 24 29 0d  |able(Variable$).|
00004080  18 42 1b ea 6c 65 6e 25  2c 72 65 73 75 6c 74 25  |.B..len%,result%|
00004090  2c 76 61 72 69 61 62 6c  65 25 0d 18 4c 14 24 77  |,variable%..L.$w|
000040a0  69 6d 70 25 3d 56 61 72  69 61 62 6c 65 24 0d 18  |imp%=Variable$..|
000040b0  56 33 c8 99 22 4f 53 5f  52 65 61 64 56 61 72 56  |V3.."OS_ReadVarV|
000040c0  61 6c 22 2c 77 69 6d 70  25 2c 77 69 6d 70 25 2b  |al",wimp%,wimp%+|
000040d0  32 35 35 2c 32 35 35 2c  2c 33 b8 2c 2c 6c 65 6e  |255,255,,3.,,len|
000040e0  25 0d 18 60 17 77 69 6d  70 25 3f 28 6c 65 6e 25  |%..`.wimp%?(len%|
000040f0  2b 32 35 35 29 3d 31 33  0d 18 6a 11 3d 24 28 77  |+255)=13..j.=$(w|
00004100  69 6d 70 25 2b 32 35 35  29 0d 18 74 05 3a 0d 18  |imp%+255)..t.:..|
00004110  7e 05 3a 0d 18 88 06 f4  7c 0d 18 92 06 f4 7c 0d  |~.:.....|.....|.|
00004120  18 9c 06 f4 7c 0d 18 a6  06 f4 7c 0d 18 b0 29 f4  |....|.....|...).|
00004130  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00004140  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
00004150  2d 2d 2d 2d 0d 18 ba 27  f4 7c 20 20 20 20 20 20  |----...'.|      |
00004160  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 57  |               W|
00004170  69 6d 70 20 50 6f 6c 6c  69 6e 67 0d 18 c4 29 f4  |imp Polling...).|
00004180  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00004190  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
000041a0  2d 2d 2d 2d 0d 18 ce 06  f4 7c 0d 18 d8 06 f4 7c  |----.....|.....||
000041b0  0d 18 e2 05 3a 0d 18 ec  18 dd 20 f2 57 69 6d 70  |....:..... .Wimp|
000041c0  5f 57 61 69 74 46 6f 72  45 76 65 6e 74 0d 18 f6  |_WaitForEvent...|
000041d0  12 ea 20 6d 61 73 6b 25  2c 65 76 65 6e 74 25 0d  |.. mask%,event%.|
000041e0  19 00 0f 66 69 6e 69 73  68 65 64 25 3d a3 0d 19  |...finished%=...|
000041f0  0a 17 6d 61 73 6b 25 3d  25 31 31 31 30 30 30 30  |..mask%=%1110000|
00004200  31 31 30 30 31 0d 19 14  05 f5 0d 19 1e 27 20 c8  |11001........' .|
00004210  99 22 57 69 6d 70 5f 50  6f 6c 6c 22 2c 6d 61 73  |."Wimp_Poll",mas|
00004220  6b 25 2c 77 69 6d 70 25  20 b8 20 65 76 65 6e 74  |k%,wimp% . event|
00004230  25 0d 19 28 10 20 c8 8e  20 65 76 65 6e 74 25 20  |%..(. .. event% |
00004240  ca 0d 19 32 0a 20 20 c9  30 20 3a 0d 19 3c 1f 20  |...2.  .0 :..<. |
00004250  20 c9 31 20 3a 20 f2 57  69 6d 70 5f 50 6f 6c 6c  | .1 : .Wimp_Poll|
00004260  44 72 61 77 57 69 6e 64  6f 77 0d 19 46 26 20 20  |DrawWindow..F&  |
00004270  c9 32 20 3a 20 c8 99 20  22 57 69 6d 70 5f 4f 70  |.2 : .. "Wimp_Op|
00004280  65 6e 57 69 6e 64 6f 77  22 2c 2c 77 69 6d 70 25  |enWindow",,wimp%|
00004290  0d 19 50 20 20 20 c9 33  20 3a 20 f2 57 69 6d 70  |..P   .3 : .Wimp|
000042a0  5f 50 6f 6c 6c 43 6c 6f  73 65 57 69 6e 64 6f 77  |_PollCloseWindow|
000042b0  0d 19 5a 0a 20 20 c9 34  20 3a 0d 19 64 0a 20 20  |..Z.  .4 :..d.  |
000042c0  c9 35 20 3a 0d 19 6e 1f  20 20 c9 36 20 3a 20 f2  |.5 :..n.  .6 : .|
000042d0  57 69 6d 70 5f 50 6f 6c  6c 4d 6f 75 73 65 43 6c  |Wimp_PollMouseCl|
000042e0  69 63 6b 0d 19 78 20 20  20 c9 37 20 3a 20 f2 57  |ick..x   .7 : .W|
000042f0  69 6d 70 5f 50 6f 6c 6c  53 61 76 65 4d 65 73 73  |imp_PollSaveMess|
00004300  61 67 65 0d 19 82 1d 20  20 c9 38 20 3a 20 f2 57  |age....  .8 : .W|
00004310  69 6d 70 5f 50 6f 6c 6c  4b 65 79 50 72 65 73 73  |imp_PollKeyPress|
00004320  0d 19 8c 23 20 20 c9 39  20 3a 20 f2 45 76 65 6e  |...#  .9 : .Even|
00004330  74 5f 4d 65 6e 75 43 68  6f 69 63 65 28 6d 65 6e  |t_MenuChoice(men|
00004340  75 25 29 0d 19 96 0a 20  20 c9 31 30 3a 0d 19 a0  |u%)....  .10:...|
00004350  0a 20 20 c9 31 31 3a 0d  19 aa 0a 20 20 c9 31 32  |.  .11:....  .12|
00004360  3a 0d 19 b4 20 20 20 c9  31 37 2c 31 38 3a 20 f2  |:...   .17,18: .|
00004370  57 69 6d 70 5f 50 6f 6c  6c 4d 65 73 73 61 67 65  |Wimp_PollMessage|
00004380  73 0d 19 be 0a 20 20 c9  31 39 3a 0d 19 c8 06 20  |s....  .19:.... |
00004390  cb 0d 19 d2 0f fd 20 66  69 6e 69 73 68 65 64 25  |...... finished%|
000043a0  0d 19 dc 05 e1 0d 19 e6  05 3a 0d 19 f0 1a dd 20  |.........:..... |
000043b0  f2 57 69 6d 70 5f 50 6f  6c 6c 44 72 61 77 57 69  |.Wimp_PollDrawWi|
000043c0  6e 64 6f 77 0d 19 fa 0b  ea 20 6d 6f 72 65 25 0d  |ndow..... more%.|
000043d0  1a 04 26 c8 99 22 57 69  6d 70 5f 52 65 64 72 61  |..&.."Wimp_Redra|
000043e0  77 57 69 6e 64 6f 77 22  2c 2c 77 69 6d 70 25 b8  |wWindow",,wimp%.|
000043f0  6d 6f 72 65 25 0d 1a 0e  13 77 69 6e 64 6f 77 25  |more%....window%|
00004400  3d 77 69 6d 70 25 21 30  0d 1a 18 41 78 5f 6f 72  |=wimp%!0...Ax_or|
00004410  69 67 69 6e 25 3d 31 36  2b 77 69 6d 70 25 21 34  |igin%=16+wimp%!4|
00004420  2d 77 69 6d 70 25 21 32  30 3a 79 5f 6f 72 69 67  |-wimp%!20:y_orig|
00004430  69 6e 25 3d 2d 31 36 2b  77 69 6d 70 25 21 31 36  |in%=-16+wimp%!16|
00004440  2d 77 69 6d 70 25 21 32  34 0d 1a 22 0b c8 95 6d  |-wimp%!24.."...m|
00004450  6f 72 65 25 0d 1a 2c 30  20 e7 20 69 6e 74 65 72  |ore%..,0 . inter|
00004460  66 61 63 65 25 20 8c 20  c8 99 22 57 69 6d 70 5f  |face% . .."Wimp_|
00004470  42 6f 72 64 65 72 57 69  6e 64 6f 77 22 2c 2c 77  |BorderWindow",,w|
00004480  69 6d 70 25 0d 1a 36 2d  20 f2 45 76 65 6e 74 5f  |imp%..6- .Event_|
00004490  44 72 61 77 28 77 69 6e  64 6f 77 25 2c 78 5f 6f  |Draw(window%,x_o|
000044a0  72 69 67 69 6e 25 2c 79  5f 6f 72 69 67 69 6e 25  |rigin%,y_origin%|
000044b0  29 0d 1a 40 27 20 c8 99  22 57 69 6d 70 5f 47 65  |)..@' .."Wimp_Ge|
000044c0  74 52 65 63 74 61 6e 67  6c 65 22 2c 2c 77 69 6d  |tRectangle",,wim|
000044d0  70 25 b8 6d 6f 72 65 25  0d 1a 4a 05 ce 0d 1a 54  |p%.more%..J....T|
000044e0  05 e1 0d 1a 5e 05 3a 0d  1a 68 1b dd 20 f2 57 69  |....^.:..h.. .Wi|
000044f0  6d 70 5f 50 6f 6c 6c 43  6c 6f 73 65 57 69 6e 64  |mp_PollCloseWind|
00004500  6f 77 0d 1a 72 25 20 20  c8 99 20 22 57 69 6d 70  |ow..r%  .. "Wimp|
00004510  5f 47 65 74 50 6f 69 6e  74 65 72 49 6e 66 6f 22  |_GetPointerInfo"|
00004520  2c 2c 77 69 6d 70 25 0d  1a 7c 29 20 20 77 69 6e  |,,wimp%..|)  win|
00004530  64 6f 77 25 3d 77 69 6d  70 25 21 31 32 20 3a 20  |dow%=wimp%!12 : |
00004540  62 75 74 74 6f 6e 73 25  3d 77 69 6d 70 25 21 38  |buttons%=wimp%!8|
00004550  0d 1a 86 29 20 f2 45 76  65 6e 74 5f 57 69 6e 64  |...) .Event_Wind|
00004560  6f 77 43 6c 6f 73 65 28  77 69 6e 64 6f 77 25 2c  |owClose(window%,|
00004570  62 75 74 74 6f 6e 73 25  29 0d 1a 90 32 20 21 77  |buttons%)...2 !w|
00004580  69 6d 70 25 3d 77 69 6e  64 6f 77 25 20 3a 20 c8  |imp%=window% : .|
00004590  99 20 22 57 69 6d 70 5f  43 6c 6f 73 65 57 69 6e  |. "Wimp_CloseWin|
000045a0  64 6f 77 22 2c 2c 77 69  6d 70 25 0d 1a 9a 05 e1  |dow",,wimp%.....|
000045b0  0d 1a a4 05 3a 0d 1a ae  1a dd 20 f2 57 69 6d 70  |....:..... .Wimp|
000045c0  5f 50 6f 6c 6c 4d 6f 75  73 65 43 6c 69 63 6b 0d  |_PollMouseClick.|
000045d0  1a b8 4a 20 62 75 74 74  6f 6e 25 3d 77 69 6d 70  |..J button%=wimp|
000045e0  25 21 38 3a 77 69 6e 64  6f 77 25 3d 77 69 6d 70  |%!8:window%=wimp|
000045f0  25 21 31 32 3a 69 63 6f  6e 25 3d 77 69 6d 70 25  |%!12:icon%=wimp%|
00004600  21 31 36 3a 78 25 3d 77  69 6d 70 25 21 30 3a 79  |!16:x%=wimp%!0:y|
00004610  25 3d 77 69 6d 70 25 21  34 0d 1a c2 11 20 c8 8e  |%=wimp%!4.... ..|
00004620  20 62 75 74 74 6f 6e 25  20 ca 0d 1a cc 22 20 20  | button% ...."  |
00004630  20 c9 32 20 20 20 20 3a  20 f2 57 69 6d 70 5f 50  | .2    : .Wimp_P|
00004640  6f 6c 6c 4d 65 6e 75 50  6f 70 55 70 0d 1a d6 23  |ollMenuPopUp...#|
00004650  20 20 20 7f 3a 20 c8 8e  20 a4 45 76 65 6e 74 5f  |   .: .. .Event_|
00004660  53 61 76 65 28 77 69 6e  64 6f 77 25 29 20 ca 0d  |Save(window%) ..|
00004670  1a e0 2c 20 20 20 20 20  20 20 20 20 20 20 20 20  |..,             |
00004680  20 20 c9 20 b9 20 3a 20  f2 57 69 6d 70 5f 50 6f  |  . . : .Wimp_Po|
00004690  6c 6c 4d 6f 75 73 65 53  61 76 65 0d 1a ea 31 20  |llMouseSave...1 |
000046a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 c9 20  |              . |
000046b0  a3 3a 20 f2 57 69 6d 70  5f 50 6f 6c 6c 45 76 65  |.: .Wimp_PollEve|
000046c0  6e 74 4d 6f 75 73 65 43  6c 69 63 6b 0d 1a f4 13  |ntMouseClick....|
000046d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 cb 0d  |              ..|
000046e0  1a fe 06 20 cb 0d 1b 08  05 e1 0d 1b 12 05 3a 0d  |... ..........:.|
000046f0  1b 1c 19 dd 20 f2 57 69  6d 70 5f 50 6f 6c 6c 4d  |.... .Wimp_PollM|
00004700  65 6e 75 50 6f 70 55 70  0d 1b 26 1e 6d 65 6e 75  |enuPopUp..&.menu|
00004710  25 3d a4 45 76 65 6e 74  5f 4d 65 6e 75 28 77 69  |%=.Event_Menu(wi|
00004720  6e 64 6f 77 25 29 0d 1b  30 11 20 20 c8 8e 20 6d  |ndow%)..0.  .. m|
00004730  65 6e 75 25 20 20 ca 0d  1b 3a 0b 20 20 20 c9 20  |enu%  ...:.   . |
00004740  a3 3a 0d 1b 44 0a 20 20  20 7f 20 3a 0d 1b 4e 15  |.:..D.   . :..N.|
00004750  20 20 20 20 20 c8 8e 20  77 69 6e 64 6f 77 25 20  |     .. window% |
00004760  ca 0d 1b 58 17 20 20 20  20 20 20 c9 20 2d 32 20  |...X.      . -2 |
00004770  20 20 3a 20 6e 25 3d 30  0d 1b 62 33 20 20 20 20  |  : n%=0..b3    |
00004780  20 20 20 20 c8 95 20 28  28 42 61 72 5f 4d 65 6e  |    .. ((Bar_Men|
00004790  75 25 21 28 32 38 2b 6e  25 2a 32 34 29 29 80 25  |u%!(28+n%*24)).%|
000047a0  31 30 30 30 30 30 30 30  29 3d 30 0d 1b 6c 12 20  |10000000)=0..l. |
000047b0  20 20 20 20 20 20 20 20  6e 25 2b 3d 31 0d 1b 76  |        n%+=1..v|
000047c0  0d 20 20 20 20 20 20 20  20 ce 0d 1b 80 3a 20 20  |.        ....:  |
000047d0  20 20 20 20 20 20 c8 99  20 22 57 69 6d 70 5f 43  |      .. "Wimp_C|
000047e0  72 65 61 74 65 4d 65 6e  75 22 2c 2c 42 61 72 5f  |reateMenu",,Bar_|
000047f0  4d 65 6e 75 25 2c 78 25  2d 36 34 2c 39 36 2b 6e  |Menu%,x%-64,96+n|
00004800  25 2a 34 34 0d 1b 8a 34  20 20 20 20 20 20 7f 20  |%*44...4      . |
00004810  3a 20 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |: .."Wimp_Create|
00004820  4d 65 6e 75 22 2c 2c 6d  65 6e 75 25 2c 78 25 2d  |Menu",,menu%,x%-|
00004830  36 34 2c 79 25 2b 32 30  0d 1b 94 0a 20 20 20 20  |64,y%+20....    |
00004840  20 cb 0d 1b 9e 07 20 20  cb 0d 1b a8 05 e1 0d 1b  | .....  ........|
00004850  b2 05 3a 0d 1b bc 19 dd  20 f2 57 69 6d 70 5f 50  |..:..... .Wimp_P|
00004860  6f 6c 6c 4d 6f 75 73 65  53 61 76 65 0d 1b c6 0f  |ollMouseSave....|
00004870  20 c8 8e 20 69 63 6f 6e  25 20 ca 0d 1b d0 38 20  | .. icon% ....8 |
00004880  20 c9 20 30 20 3a 20 e7  20 62 75 74 74 6f 6e 25  | . 0 : . button%|
00004890  20 80 20 26 35 30 20 8c  20 f2 57 69 6d 70 5f 50  | . &50 . .Wimp_P|
000048a0  6f 6c 6c 44 72 61 67 42  6f 78 28 77 69 6e 64 6f  |ollDragBox(windo|
000048b0  77 25 29 0d 1b da 38 20  20 c9 20 32 20 3a 20 e7  |w%)...8  . 2 : .|
000048c0  20 62 75 74 74 6f 6e 25  20 80 20 35 20 8c 20 20  | button% . 5 .  |
000048d0  f2 57 69 6d 70 5f 50 6f  6c 6c 53 61 76 65 46 69  |.Wimp_PollSaveFi|
000048e0  6c 65 28 77 69 6e 64 6f  77 25 29 0d 1b e4 06 20  |le(window%).... |
000048f0  cb 0d 1b ee 05 e1 0d 1b  f8 05 3a 0d 1c 02 1f dd  |..........:.....|
00004900  20 f2 57 69 6d 70 5f 50  6f 6c 6c 45 76 65 6e 74  | .Wimp_PollEvent|
00004910  4d 6f 75 73 65 43 6c 69  63 6b 0d 1c 0c 2e 20 e7  |MouseClick.... .|
00004920  20 69 6e 74 65 72 66 61  63 65 25 20 8c 20 c8 99  | interface% . ..|
00004930  22 57 69 6d 70 5f 42 6f  72 64 65 72 49 63 6f 6e  |"Wimp_BorderIcon|
00004940  22 2c 2c 77 69 6d 70 25  0d 1c 16 33 20 f2 45 76  |",,wimp%...3 .Ev|
00004950  65 6e 74 5f 4d 6f 75 73  65 43 6c 69 63 6b 28 77  |ent_MouseClick(w|
00004960  69 6e 64 6f 77 25 2c 69  63 6f 6e 25 2c 62 75 74  |indow%,icon%,but|
00004970  74 6f 6e 25 2c 78 25 2c  79 25 29 0d 1c 20 15 20  |ton%,x%,y%).. . |
00004980  c8 8e 20 20 69 6e 74 65  72 66 61 63 65 25 20 ca  |..  interface% .|
00004990  0d 1c 2a 0b 20 20 c9 20  b9 20 3a 0d 1c 34 28 20  |..*.  . . :..4( |
000049a0  20 20 77 69 6d 70 25 21  30 3d 78 25 3a 77 69 6d  |  wimp%!0=x%:wim|
000049b0  70 25 21 34 3d 79 25 20  3a 20 77 69 6d 70 25 21  |p%!4=y% : wimp%!|
000049c0  38 3d 30 0d 1c 3e 28 20  20 20 77 69 6d 70 25 21  |8=0..>(   wimp%!|
000049d0  31 32 3d 77 69 6e 64 6f  77 25 20 3a 20 77 69 6d  |12=window% : wim|
000049e0  70 25 21 31 36 3d 69 63  6f 6e 25 0d 1c 48 21 20  |p%!16=icon%..H! |
000049f0  20 20 c8 99 22 57 69 6d  70 5f 42 6f 72 64 65 72  |  .."Wimp_Border|
00004a00  49 63 6f 6e 22 2c 2c 77  69 6d 70 25 0d 1c 52 06  |Icon",,wimp%..R.|
00004a10  20 cb 0d 1c 5c 05 e1 0d  1c 66 05 3a 0d 1c 70 21  | ...\....f.:..p!|
00004a20  dd 20 f2 57 69 6d 70 5f  50 6f 6c 6c 53 61 76 65  |. .Wimp_PollSave|
00004a30  46 69 6c 65 28 77 69 6e  64 6f 77 25 29 0d 1c 7a  |File(window%)..z|
00004a40  0a ea 66 69 6c 65 24 0d  1c 84 40 20 77 69 6d 70  |..file$...@ wimp|
00004a50  25 21 30 3d 77 69 6e 64  6f 77 25 20 3a 20 77 69  |%!0=window% : wi|
00004a60  6d 70 25 21 34 3d 31 20  3a 20 c8 99 20 22 57 69  |mp%!4=1 : .. "Wi|
00004a70  6d 70 5f 47 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_GetIconState"|
00004a80  2c 2c 77 69 6d 70 25 0d  1c 8e 16 20 66 69 6c 65  |,,wimp%.... file|
00004a90  24 3d 24 28 77 69 6d 70  25 21 32 38 29 0d 1c 98  |$=$(wimp%!28)...|
00004aa0  15 20 c8 8e 20 a7 66 69  6c 65 24 2c 22 2e 22 29  |. .. .file$,".")|
00004ab0  20 ca 0d 1c a2 0d 20 20  c9 20 30 20 20 20 3a 0d  | .....  . 0   :.|
00004ac0  1c ac 40 20 20 20 24 28  77 69 6d 70 25 2b 34 29  |..@   $(wimp%+4)|
00004ad0  3d 22 54 6f 20 73 61 76  65 2c 20 64 72 61 67 20  |="To save, drag |
00004ae0  74 68 65 20 69 63 6f 6e  20 74 6f 20 61 20 64 69  |the icon to a di|
00004af0  72 65 63 74 6f 72 79 20  77 69 6e 64 6f 77 22 0d  |rectory window".|
00004b00  1c b6 2b 20 20 20 c8 99  20 22 57 69 6d 70 5f 52  |..+   .. "Wimp_R|
00004b10  65 70 6f 72 74 45 72 72  6f 72 22 2c 77 69 6d 70  |eportError",wimp|
00004b20  25 2c 31 36 2c 74 61 73  6b 24 0d 1c c0 08 20 20  |%,16,task$....  |
00004b30  7f 3a 0d 1c ca 25 20 20  20 f2 45 76 65 6e 74 5f  |.:...%   .Event_|
00004b40  53 61 76 65 46 69 6c 65  28 66 69 6c 65 24 2c 77  |SaveFile(file$,w|
00004b50  69 6e 64 6f 77 25 29 0d  1c d4 06 20 cb 0d 1c de  |indow%).... ....|
00004b60  1b 20 c8 99 22 57 69 6d  70 5f 43 72 65 61 74 65  |. .."Wimp_Create|
00004b70  4d 65 6e 75 22 2c 2d 31  0d 1c e8 05 e1 0d 1c f2  |Menu",-1........|
00004b80  05 3a 0d 1c fc 20 dd 20  f2 57 69 6d 70 5f 50 6f  |.:... . .Wimp_Po|
00004b90  6c 6c 44 72 61 67 42 6f  78 28 77 69 6e 64 6f 77  |llDragBox(window|
00004ba0  25 29 0d 1d 06 0a ea 78  25 2c 79 25 0d 1d 10 12  |%).....x%,y%....|
00004bb0  20 73 61 76 65 25 3d 77  69 6e 64 6f 77 25 0d 1d  | save%=window%..|
00004bc0  1a 13 20 21 77 69 6d 70  25 3d 77 69 6e 64 6f 77  |.. !wimp%=window|
00004bd0  25 0d 1d 24 23 20 c8 99  22 57 69 6d 70 5f 47 65  |%..$# .."Wimp_Ge|
00004be0  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 77  |tWindowState",,w|
00004bf0  69 6d 70 25 0d 1d 2e 2d  20 78 25 3d 77 69 6d 70  |imp%...- x%=wimp|
00004c00  25 21 34 2d 77 69 6d 70  25 21 32 30 3a 79 25 3d  |%!4-wimp%!20:y%=|
00004c10  77 69 6d 70 25 21 31 36  2d 77 69 6d 70 25 21 32  |wimp%!16-wimp%!2|
00004c20  34 0d 1d 38 0e 20 77 69  6d 70 25 21 34 3d 30 0d  |4..8. wimp%!4=0.|
00004c30  1d 42 21 20 c8 99 22 57  69 6d 70 5f 47 65 74 49  |.B! .."Wimp_GetI|
00004c40  63 6f 6e 53 74 61 74 65  22 2c 2c 77 69 6d 70 25  |conState",,wimp%|
00004c50  0d 1d 4c 13 20 21 77 69  6d 70 25 3d 77 69 6e 64  |..L. !wimp%=wind|
00004c60  6f 77 25 0d 1d 56 0e 20  77 69 6d 70 25 21 34 3d  |ow%..V. wimp%!4=|
00004c70  35 0d 1d 60 2c 20 77 69  6d 70 25 21 38 3d 78 25  |5..`, wimp%!8=x%|
00004c80  2b 77 69 6d 70 25 21 38  3a 77 69 6d 70 25 21 31  |+wimp%!8:wimp%!1|
00004c90  32 3d 79 25 2b 77 69 6d  70 25 21 31 32 0d 1d 6a  |2=y%+wimp%!12..j|
00004ca0  2e 20 77 69 6d 70 25 21  31 36 3d 78 25 2b 77 69  |. wimp%!16=x%+wi|
00004cb0  6d 70 25 21 31 36 3a 77  69 6d 70 25 21 32 30 3d  |mp%!16:wimp%!20=|
00004cc0  79 25 2b 77 69 6d 70 25  21 32 30 0d 1d 74 1a 20  |y%+wimp%!20..t. |
00004cd0  77 69 6d 70 25 21 32 34  3d 30 3a 77 69 6d 70 25  |wimp%!24=0:wimp%|
00004ce0  21 32 38 3d 30 0d 1d 7e  2a 20 77 69 6d 70 25 21  |!28=0..~* wimp%!|
00004cf0  33 32 3d 26 37 46 46 46  46 46 46 46 3a 77 69 6d  |32=&7FFFFFFF:wim|
00004d00  70 25 21 33 36 3d 26 37  46 46 46 46 46 46 46 0d  |p%!36=&7FFFFFFF.|
00004d10  1d 88 1c 20 c8 99 22 57  69 6d 70 5f 44 72 61 67  |... .."Wimp_Drag|
00004d20  42 6f 78 22 2c 2c 77 69  6d 70 25 0d 1d 92 05 e1  |Box",,wimp%.....|
00004d30  0d 1d 9c 05 3a 0d 1d a6  18 dd 20 f2 57 69 6d 70  |....:..... .Wimp|
00004d40  5f 50 6f 6c 6c 4b 65 79  50 72 65 73 73 0d 1d b0  |_PollKeyPress...|
00004d50  31 20 20 77 69 6e 64 6f  77 25 3d 77 69 6d 70 25  |1  window%=wimp%|
00004d60  21 30 3a 69 63 6f 6e 25  3d 77 69 6d 70 25 21 34  |!0:icon%=wimp%!4|
00004d70  3a 6b 65 79 25 3d 77 69  6d 70 25 21 32 34 0d 1d  |:key%=wimp%!24..|
00004d80  ba 1f 20 20 c8 8e 20 a4  45 76 65 6e 74 5f 53 61  |..  .. .Event_Sa|
00004d90  76 65 28 77 69 6e 64 6f  77 25 29 20 ca 0d 1d c4  |ve(window%) ....|
00004da0  0c 20 20 20 c9 20 b9 20  3a 0d 1d ce 10 20 20 20  |.   . . :....   |
00004db0  c8 8e 20 6b 65 79 25 20  ca 0d 1d d8 2b 20 20 20  |.. key% ....+   |
00004dc0  20 c9 20 26 30 31 42 20  3a 20 f2 57 69 6d 70 5f  | . &01B : .Wimp_|
00004dd0  57 69 6e 64 6f 77 43 6c  6f 73 65 28 77 69 6e 64  |WindowClose(wind|
00004de0  6f 77 25 29 0d 1d e2 27  20 20 20 20 7f 20 3a 20  |ow%)...'    . : |
00004df0  f2 57 69 6d 70 5f 50 6f  6c 6c 53 61 76 65 46 69  |.Wimp_PollSaveFi|
00004e00  6c 65 28 77 69 6e 64 6f  77 25 29 0d 1d ec 08 20  |le(window%).... |
00004e10  20 20 cb 0d 1d f6 2f 20  20 20 c9 20 a3 3a 20 f2  |  ..../   . .: .|
00004e20  45 76 65 6e 74 5f 4b 65  79 50 72 65 73 73 28 77  |Event_KeyPress(w|
00004e30  69 6e 64 6f 77 25 2c 69  63 6f 6e 25 2c 6b 65 79  |indow%,icon%,key|
00004e40  25 29 0d 1e 00 07 20 20  cb 0d 1e 0a 05 e1 0d 1e  |%)....  ........|
00004e50  14 05 3a 0d 1e 1e 1b dd  20 f2 57 69 6d 70 5f 50  |..:..... .Wimp_P|
00004e60  6f 6c 6c 53 61 76 65 4d  65 73 73 61 67 65 0d 1e  |ollSaveMessage..|
00004e70  28 1e ea 66 69 6c 65 24  2c 77 69 6e 64 6f 77 25  |(..file$,window%|
00004e80  2c 69 63 6f 6e 25 2c 78  25 2c 79 25 0d 1e 32 23  |,icon%,x%,y%..2#|
00004e90  20 c8 99 22 57 69 6d 70  5f 47 65 74 50 6f 69 6e  | .."Wimp_GetPoin|
00004ea0  74 65 72 49 6e 66 6f 22  2c 2c 77 69 6d 70 25 0d  |terInfo",,wimp%.|
00004eb0  1e 3c 3a 20 77 69 6e 64  6f 77 25 3d 77 69 6d 70  |.<: window%=wimp|
00004ec0  25 21 31 32 3a 69 63 6f  6e 25 3d 77 69 6d 70 25  |%!12:icon%=wimp%|
00004ed0  21 31 36 3a 78 25 3d 77  69 6d 70 25 21 30 3a 79  |!16:x%=wimp%!0:y|
00004ee0  25 3d 77 69 6d 70 25 21  34 0d 1e 46 3e 20 77 69  |%=wimp%!4..F> wi|
00004ef0  6d 70 25 21 30 3d 73 61  76 65 25 20 3a 20 77 69  |mp%!0=save% : wi|
00004f00  6d 70 25 21 34 3d 31 20  3a 20 c8 99 20 22 57 69  |mp%!4=1 : .. "Wi|
00004f10  6d 70 5f 47 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_GetIconState"|
00004f20  2c 2c 77 69 6d 70 25 0d  1e 50 16 20 66 69 6c 65  |,,wimp%..P. file|
00004f30  24 3d 24 28 77 69 6d 70  25 21 32 38 29 0d 1e 5a  |$=$(wimp%!28)..Z|
00004f40  2b 20 66 69 6c 65 24 3d  a4 57 69 6d 70 5f 47 65  |+ file$=.Wimp_Ge|
00004f50  74 46 69 6c 65 46 72 6f  6d 50 61 74 68 6e 61 6d  |tFileFromPathnam|
00004f60  65 28 66 69 6c 65 24 29  0d 1e 64 15 20 77 69 6d  |e(file$)..d. wim|
00004f70  70 25 21 32 30 3d 77 69  6e 64 6f 77 25 0d 1e 6e  |p%!20=window%..n|
00004f80  13 20 77 69 6d 70 25 21  32 34 3d 69 63 6f 6e 25  |. wimp%!24=icon%|
00004f90  0d 1e 78 1c 20 77 69 6d  70 25 21 32 38 3d 78 25  |..x. wimp%!28=x%|
00004fa0  3a 77 69 6d 70 25 21 33  32 3d 79 25 0d 1e 82 15  |:wimp%!32=y%....|
00004fb0  20 77 69 6d 70 25 21 33  36 3d 6c 65 6e 67 74 68  | wimp%!36=length|
00004fc0  25 0d 1e 8c 0f 20 77 69  6d 70 25 21 30 3d 36 34  |%.... wimp%!0=64|
00004fd0  0d 1e 96 0f 20 77 69 6d  70 25 21 31 32 3d 30 0d  |.... wimp%!12=0.|
00004fe0  1e a0 0f 20 77 69 6d 70  25 21 31 36 3d 31 0d 1e  |... wimp%!16=1..|
00004ff0  aa 12 20 77 69 6d 70 25  21 34 30 3d 26 46 46 46  |.. wimp%!40=&FFF|
00005000  0d 1e b4 16 20 24 28 77  69 6d 70 25 2b 34 34 29  |.... $(wimp%+44)|
00005010  3d 66 69 6c 65 24 0d 1e  be 34 20 c8 99 22 57 69  |=file$...4 .."Wi|
00005020  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
00005030  31 37 2c 77 69 6d 70 25  2c 77 69 6d 70 25 21 32  |17,wimp%,wimp%!2|
00005040  30 2c 77 69 6d 70 25 21  32 34 0d 1e c8 05 e1 0d  |0,wimp%!24......|
00005050  1e d2 05 3a 0d 1e dc 18  dd 20 f2 57 69 6d 70 5f  |...:..... .Wimp_|
00005060  50 6f 6c 6c 4d 65 73 73  61 67 65 73 0d 1e e6 0b  |PollMessages....|
00005070  ea 20 66 69 6c 65 24 0d  1e f0 2c 66 69 6c 65 24  |. file$...,file$|
00005080  3d a4 57 69 6d 70 5f 47  65 74 53 74 72 69 6e 67  |=.Wimp_GetString|
00005090  41 74 41 64 64 72 65 73  73 28 77 69 6d 70 25 2b  |AtAddress(wimp%+|
000050a0  34 34 29 0d 1e fa 15 20  20 20 20 c8 8e 20 77 69  |44)....    .. wi|
000050b0  6d 70 25 21 31 36 20 ca  0d 1f 04 1a 20 20 20 20  |mp%!16 .....    |
000050c0  20 c9 20 30 20 3a 20 66  69 6e 69 73 68 65 64 25  | . 0 : finished%|
000050d0  3d b9 0d 1f 0e 0e 20 20  20 20 20 c9 20 31 20 3a  |=.....     . 1 :|
000050e0  0d 1f 18 0e 20 20 20 20  20 c9 20 32 20 3a 0d 1f  |....     . 2 :..|
000050f0  22 2f 20 20 20 20 20 20  f4 20 50 52 4f 43 57 69  |"/      . PROCWi|
00005100  6d 70 5f 49 63 6f 6e 50  75 74 54 65 78 74 28 73  |mp_IconPutText(s|
00005110  61 76 65 25 2c 31 2c 66  69 6c 65 24 29 0d 1f 2c  |ave%,1,file$)..,|
00005120  43 20 20 20 20 20 20 77  69 6d 70 25 21 30 3d 73  |C      wimp%!0=s|
00005130  61 76 65 25 20 3a 20 77  69 6d 70 25 21 34 3d 31  |ave% : wimp%!4=1|
00005140  20 3a 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 49  | : .. "Wimp_GetI|
00005150  63 6f 6e 53 74 61 74 65  22 2c 2c 77 69 6d 70 25  |conState",,wimp%|
00005160  0d 1f 36 1b 20 20 20 20  20 20 24 28 77 69 6d 70  |..6.      $(wimp|
00005170  25 21 32 38 29 3d 66 69  6c 65 24 0d 1f 40 3c 20  |%!28)=file$..@< |
00005180  20 20 20 20 20 77 69 6d  70 25 21 30 3d 73 61 76  |     wimp%!0=sav|
00005190  65 25 20 3a 20 77 69 6d  70 25 21 34 3d 31 20 3a  |e% : wimp%!4=1 :|
000051a0  20 77 69 6d 70 25 21 38  3d 30 20 3a 20 77 69 6d  | wimp%!8=0 : wim|
000051b0  70 25 21 31 32 3d 30 0d  1f 4a 27 20 20 20 20 20  |p%!12=0..J'     |
000051c0  20 c8 99 20 22 57 69 6d  70 5f 53 65 74 49 63 6f  | .. "Wimp_SetIco|
000051d0  6e 53 74 61 74 65 22 2c  2c 77 69 6d 70 25 0d 1f  |nState",,wimp%..|
000051e0  54 30 20 20 20 20 20 20  f4 20 50 52 4f 43 57 69  |T0      . PROCWi|
000051f0  6d 70 5f 49 63 6f 6e 43  61 72 65 74 28 73 61 76  |mp_IconCaret(sav|
00005200  65 25 2c 31 2c 4c 45 4e  66 69 6c 65 24 29 0d 1f  |e%,1,LENfile$)..|
00005210  5e 38 20 20 20 20 20 20  c8 99 20 22 57 69 6d 70  |^8      .. "Wimp|
00005220  5f 53 65 74 43 61 72 65  74 50 6f 73 69 74 69 6f  |_SetCaretPositio|
00005230  6e 22 2c 73 61 76 65 25  2c 31 2c 2c 2c 2d 31 2c  |n",save%,1,,,-1,|
00005240  a9 66 69 6c 65 24 0d 1f  68 26 20 20 20 20 20 20  |.file$..h&      |
00005250  f2 45 76 65 6e 74 5f 53  61 76 65 46 69 6c 65 28  |.Event_SaveFile(|
00005260  66 69 6c 65 24 2c 73 61  76 65 25 29 0d 1f 72 0c  |file$,save%)..r.|
00005270  20 20 20 20 20 c9 20 33  0d 1f 7c 47 20 20 20 20  |     . 3..|G    |
00005280  20 20 74 79 70 65 24 3d  a4 57 69 6d 70 5f 46 69  |  type$=.Wimp_Fi|
00005290  6c 65 54 79 70 65 28 77  69 6d 70 25 21 34 30 29  |leType(wimp%!40)|
000052a0  20 3a 20 f2 45 76 65 6e  74 5f 4c 6f 61 64 46 69  | : .Event_LoadFi|
000052b0  6c 65 28 66 69 6c 65 24  2c 74 79 70 65 24 29 0d  |le(file$,type$).|
000052c0  1f 86 09 20 20 20 20 cb  0d 1f 90 05 e1 0d 1f 9a  |...    .........|
000052d0  05 3a 0d 1f a4 26 dd 20  a4 57 69 6d 70 5f 47 65  |.:...&. .Wimp_Ge|
000052e0  74 53 74 72 69 6e 67 41  74 41 64 64 72 65 73 73  |tStringAtAddress|
000052f0  28 61 72 72 61 79 25 29  0d 1f ae 0d ea 73 24 3a  |(array%).....s$:|
00005300  73 24 3d 22 22 0d 1f b8  3c c8 95 28 3f 61 72 72  |s$=""...<..(?arr|
00005310  61 79 25 3c 3e 31 33 29  80 28 3f 61 72 72 61 79  |ay%<>13).(?array|
00005320  25 3c 3e 30 29 3a 73 24  2b 3d bd 28 3f 61 72 72  |%<>0):s$+=.(?arr|
00005330  61 79 25 29 3a 61 72 72  61 79 25 2b 3d 31 3a ce  |ay%):array%+=1:.|
00005340  3a 0d 1f c2 07 3d 73 24  0d 1f cc 05 3a 0d 1f d6  |:....=s$....:...|
00005350  23 dd 20 a4 57 69 6d 70  5f 47 65 74 46 69 6c 65  |#. .Wimp_GetFile|
00005360  46 72 6f 6d 50 61 74 68  6e 61 6d 65 28 66 24 29  |FromPathname(f$)|
00005370  0d 1f e0 11 c8 8e 20 a7  66 24 2c 22 2e 22 29 20  |...... .f$,".") |
00005380  ca 0d 1f ea 10 20 c9 20  30 20 20 20 20 3a 3d 66  |..... . 0    :=f|
00005390  24 0d 1f f4 37 20 7f 20  3a 3d a4 57 69 6d 70 5f  |$...7 . :=.Wimp_|
000053a0  47 65 74 46 69 6c 65 46  72 6f 6d 50 61 74 68 6e  |GetFileFromPathn|
000053b0  61 6d 65 28 c2 66 24 2c  a9 28 66 24 29 2d a7 66  |ame(.f$,.(f$)-.f|
000053c0  24 2c 22 2e 22 29 29 29  0d 1f fe 05 cb 0d 20 08  |$,".")))...... .|
000053d0  05 3a 0d 20 12 1b dd 20  a4 57 69 6d 70 5f 46 69  |.:. ... .Wimp_Fi|
000053e0  6c 65 54 79 70 65 28 74  79 70 65 25 29 0d 20 1c  |leType(type%). .|
000053f0  0c c8 8e 74 79 70 65 25  ca 0d 20 26 11 c9 26 46  |...type%.. &..&F|
00005400  46 46 3a 3d 22 54 65 78  74 22 0d 20 30 11 c9 26  |FF:="Text". 0..&|
00005410  46 46 44 3a 3d 22 44 61  74 61 22 0d 20 3a 12 c9  |FFD:="Data". :..|
00005420  26 46 46 42 3a 3d 22 42  61 73 69 63 22 0d 20 44  |&FFB:="Basic". D|
00005430  13 c9 26 46 46 39 3a 3d  22 53 70 72 69 74 65 22  |..&FF9:="Sprite"|
00005440  0d 20 4e 14 c9 26 46 45  44 3a 3d 22 50 61 6c 65  |. N..&FED:="Pale|
00005450  74 74 65 22 0d 20 58 15  c9 26 46 45 43 3a 3d 22  |tte". X..&FEC:="|
00005460  54 65 6d 70 6c 61 74 65  22 0d 20 62 11 c9 26 41  |Template". b..&A|
00005470  46 46 3a 3d 22 44 72 61  77 22 0d 20 6c 14 c9 26  |FF:="Draw". l..&|
00005480  31 30 30 30 3a 3d 22 46  6f 6c 64 65 72 22 0d 20  |1000:="Folder". |
00005490  76 19 c9 26 32 30 30 30  3a 3d 22 41 70 70 6c 69  |v..&2000:="Appli|
000054a0  63 61 74 69 6f 6e 22 0d  20 80 0f 7f 3d c3 7e 28  |cation". ...=.~(|
000054b0  74 79 70 65 25 29 0d 20  8a 05 cb 0d 20 94 05 3a  |type%). .... ..:|
000054c0  0d 20 9e 04 0d ff                                 |. ....|
000054c6