Home » Archimedes archive » Archimedes World » AW-1992-08.adf » AWaug92 » !AWaug92/Goodies/WimpGloss/!WimpGloss/!RunImage

!AWaug92/Goodies/WimpGloss/!WimpGloss/!RunImage

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

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

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1992-08.adf » AWaug92
Filename: !AWaug92/Goodies/WimpGloss/!WimpGloss/!RunImage
Read OK:
File size: 79D9 bytes
Load address: 0000
Exec address: 0000
File contents
   10         block_memory%=4*&1000 : icon_memory%=1000
   20
   30                     Task$=FNWimp_Start("Glossary")
   40                           PROCCreate_Windows
   50                           PROCCreate_Icons
   60                           PROCCreate_Menus
   70                           PROCUser_SetInitialData
   80                           PROCWimp_WaitForEvent
   90                           PROCWimp_CloseDown
  100                           END
  110       :
  120       DEF PROCUser_SetInitialData
  130       PROCReadData
  140          entry%=1
  150          PROCWriteToGlossaryWindow(entry%)
  160       ENDPROC
  170       :
  180        DEF PROCReadData
  190         path$=FNUtils_ReadVariable("Obey$Dir")
  200         DATA Windows,Icons,Menus,Sprites,Files,Misc
  210          DIM entry$(100),line$(100,5)
  220          DIM key%(6) : key%(0)=0 : NoOfEntries%=0
  230          FOR i%=1 TO 6
  240          READ y$ : y$=path$+".Wimp."+y$
  250          file%=OPENIN(y$)
  260          REPEAT
  270           x$=GET$#file%
  280           CASE LEFT$(x$,3) OF
  290            WHEN "DEF"
  300             NoOfEntries%+=1
  310             entry$(NoOfEntries%)=RIGHT$(x$,LENx$-3)
  320             FOR j%=1 TO 5
  330              x$=GET$#file%
  340              line$(NoOfEntries%,j%)=RIGHT$(x$,LENx$-4)
  350             NEXT
  360           ENDCASE
  370          UNTIL EOF#file%
  380          CLOSE#file%
  390          key%(i%)=NoOfEntries%
  400          NEXT
  410        ENDPROC
  420       :
  430       DEF PROCCreate_Windows
  440                  Info_Window%=FNWimp_WindowLoad("Info")
  450                  Save_Window%=FNWimp_WindowLoad("Save")
  460              Glossary_Window%=FNWimp_WindowLoad("Glossary")
  470        PROCWimp_WindowBringToTop(Glossary_Window%)
  480       ENDPROC
  490       :
  500       DEF PROCCreate_Icons
  510       Bar_Icon%=FNWimp_PutIconOnBar("!WimpGloss")
  520       ENDPROC
  530       :
  540       DEF PROCCreate_Menus
  550         Bar_Menu%=FNWimp_MenuCreate("WimpGloss\Info>Info_Window%\Quit")
  560         menu$="Glossary\Windows\Icons\Menus\Sprites\Files\Misc"
  570         Glossary_Menu%=FNWimp_MenuCreate(menu$)
  580       ENDPROC
  590       :
  600       DEF PROCEvent_DrawWindow(window%)
  610       ENDPROC
  620       :
  630       DEF PROCEvent_MenuPopUp(window%,x%,y%)
  640       CASE window% OF
  650        WHEN Bar_Window%        : PROCWimp_MenuPopUpBar(x%,y%)
  660        WHEN Glossary_Window%   : PROCWimp_MenuPopUp(Glossary_Menu%,x%,y%)
  670       ENDCASE
  680       ENDPROC
  690       :
  700       DEF PROCEvent_MouseClick(button%,window%,icon%,x%,y%)
  710       CASE window% OF
  720        WHEN Bar_Window%        : PROCUser_MouseBar
  730        WHEN Glossary_Window%   : PROCUser_MouseGlossary(button%,icon%)
  740       ENDCASE
  750       ENDPROC
  760         :
  770         DEF PROCUser_MouseBar
  780          PROCWimp_WindowBringToTop(Glossary_Window%)
  790         ENDPROC
  800         :
  810         DEF PROCUser_MouseGlossary(button%,icon%)
  820          CASE icon% OF
  830           WHEN 10 : IF entry%=1 THEN
  840                      PROCWimp_Alert(Task$,"First entry!")
  850                     ELSE
  860                      entry%-=1
  870                     ENDIF
  880           WHEN 8 : IF entry%=NoOfEntries% THEN
  890                      PROCWimp_Alert(Task$,"No more entries!")
  900                     ELSE
  910                      entry%+=1
  920                     ENDIF
  930          ENDCASE
  940          PROCWriteToGlossaryWindow(entry%)
  950         ENDPROC
  960       :
  970       DEF PROCEvent_MenuChoice(menu%)
  980        CASE menu% OF
  990              WHEN Bar_Menu%          : PROCUser_MenuChoiceBar
 1000              WHEN Glossary_Menu%     : PROCUser_MenuChoiceGlossary
 1010        ENDCASE
 1020       ENDPROC
 1030       :
 1040       DEF PROCUser_MenuChoiceBar
 1050        CASE FNWimp_MenuChoice(0) OF
 1060         WHEN 1 :
 1070         WHEN 2 : finished%=TRUE
 1080        ENDCASE
 1090       ENDPROC
 1100       :
 1110       DEF PROCUser_MenuChoiceGlossary
 1120        entry%=key%(FNWimp_MenuChoice(0)-1)+1
 1130        PROCWriteToGlossaryWindow(entry%)
 1140       ENDPROC
 1150:
 1160       DEF PROCWriteToGlossaryWindow(i%)
 1170         LOCAL f$,arg$,k%
 1180         f$=entry$(i%)
 1190         k%=INSTR(f$,"(")
 1200         CASE k% OF
 1210          WHEN 0    : arg$="No arguments."
 1220          OTHERWISE : arg$=RIGHT$(f$,LENf$-k%+1)
 1230                      f$=LEFT$(f$,k%)+")"
 1240         ENDCASE
 1250         PROCWimp_PutTextInIcon(Glossary_Window%,3,f$)
 1260         IF LENarg$>48 THEN
 1270           f$=LEFT$(arg$,46) : arg$=RIGHT$(arg$,LENarg$-46)
 1280           k%=INSTR(arg$,",")
 1290           IF k%<>0 THEN f$+=LEFT$(arg$,k%) : arg$=RIGHT$(arg$,LENarg$-k%)
 1300           PROCWimp_PutTextInIcon(Glossary_Window%,4,f$)
 1310           PROCWimp_PutTextInIcon(Glossary_Window%,5,arg$)
 1320         ELSE
 1330          PROCWimp_PutTextInIcon(Glossary_Window%,4,arg$)
 1340          PROCWimp_PutTextInIcon(Glossary_Window%,5,"")
 1350         ENDIF
 1360         PROCWimp_PutTextInIcon(Glossary_Window%,9,line$(entry%,1))
 1370         PROCWimp_PutTextInIcon(Glossary_Window%,13,line$(entry%,2))
 1380         PROCWimp_PutTextInIcon(Glossary_Window%,7,line$(entry%,3))
 1390         PROCWimp_PutTextInIcon(Glossary_Window%,6,line$(entry%,4))
 1400         PROCWimp_PutTextInIcon(Glossary_Window%,2,line$(entry%,5))
 1410       ENDPROC
 1420REM|                -------------------------------          6/1/92
 1430REM|                   WIMP PROCEDURE LIBRARY
 1440REM|
 1450REM|                     Index of Contents
 1460REM|
 1470REM|                -------------------------------
 1480REM|
 1490REM|                    1.EVALWimp initialiseEVALandEVALquit
 1500REM|
 1510REM|                    2.EVALWimpEVALpollingEVAL(GenerationEVALofEVALEvents)
 1520REM|
 1530REM|                    3.EVALWindows
 1540REM|
 1550REM|                       3.1EVALWindowEVALopeningEVALandEVALclosing
 1560REM|                       3.2EVALWindowEVALdrawing
 1570REM|
 1580REM|                    4.EVALIcons
 1590REM|
 1600REM|                    5.EVALMenus
 1610REM|
 1620REM|                    6.EVALFiles
 1630REM|
 1640REM|                    7.EVALSprites
 1650REM|
 1660REM|                    8.EVALSaves
 1670REM|
 1680REM|                    9.EVALMiscellaneous
 1690REM|
 1700REM|                -------------------------------
 1710REM|
 1720REM|
 1730REM|
 1740REM|
 1750REM|                -------------------------------
 1760REM|                  1.EVALWimpEVALinitialiseEVALandEVALquit
 1770REM|                -------------------------------
 1780REM|
 1790REM|
 1800REM|                -------------------------------
 1810REM|
 1820REM|                      Procedures :
 1830REM|
 1840REM|                  FNWimp_Start(
 1850REM|                  PROCWimp_CloseDown
 1860REM|                  PROCWimp_Quit
 1870REM|                  PROCInternal_SetEventVariables
 1880REM|                  PROCInternal_Error(
 1890REM|
 1900REM|                -------------------------------
 1910REM|
 1920REM|
 1930REM|
 1940     DEF FNWimp_Start( TaskName$)
 1950REM|
 1960REM|  --------------------------------------------------
 1970REM|  Initialises a task. See page 1173 of RiscOs Manual.
 1980REM|  --------------------------------------------------
 1990REM|
 2000     PROCInternal_SetEventVariables
 2010REM|
 2020     ON ERROR PROCInternal_Error( task%,TaskName$):END
 2030REM|
 2040     $block%="TASK"
 2050 
 2060 
 2070     SYS "Wimp_Initialise",200,!block%,TaskName$ TO version%,task%
 2080
 2090REM|
 2100    =TaskName$
 2110REM|
 2120REM|
 2130        DEF PROCInternal_SetEventVariables
 2140REM|
 2150        DIM block% block_memory%,icons% icon_memory%
 2160            icon_end%=icons%+icon_memory%
 2170REM|
 2180        null%=1                : draw%=2           : pointer_leaving%=1<<4
 2190        pointer_entering%=1<<5 : mouse%=1<<6       : drag%=1<<7
 2200        key%=1<<8              : menu%=1<<9        : scroll%=1<<10
 2210        lose_caret%=1<<11      : gain_caret%=1<<12 : message%=(1<<17)+(1<<18)
 2220        recorder%=1<<18        : acknowledge%=1<<19: window%=0
 2230        sprites%=0             : version%=0        : task%=0
 2240        Bar_Window%=-2         : Bar_Icon%=0       : Bar_Menu%=0
 2250        x_origin%=0            : y_origin%=0       : SaveWindow%=-3
 2260        message_quit%=0        : message_save%=2   : message_load%=3
 2270        mouse_button%=2        : save_event%=0
 2280REM|
 2290        ENDPROC
 2300REM|
 2310REM|
 2320        DEF PROCInternal_Error( task%,TaskName$)
 2330        LOCAL X$,x%
 2340        ON ERROR OFF
 2350         x%=ERL
 2360         X$=REPORT$+"at line "+STR$(x% DIV 10)
 2370DIM ErrorMsg% 36
 2380ErrorMsg%!0     = 36                : REM Length of message
 2390ErrorMsg%!12    = 0                 : REM This is an original message
 2400ErrorMsg%!16    = &81080            : REM Message number to set caret
 2410ErrorMsg%!20    = x%                : REM Line to put caret on
 2420$(ErrorMsg%+24) = "!RunImage   "    : REM File to put caret on
 2430SYS "Wimp_SendMessage",17,ErrorMsg%
 2440
 2450        PROCWimp_Alert(TaskName$,X$)
 2460        PROCWimp_CloseDown
 2470        ENDPROC
 2480REM|
 2490REM|
 2500        DEF PROCWimp_CloseDown
 2510         SYS "Wimp_CloseDown",task%,"TASK"
 2520        ENDPROC
 2530REM|
 2540REM|
 2550        DEF PROCWimp_Quit
 2560        finished%=TRUE
 2570        ENDPROC
 2580REM|
 2590REM|
 2600REM|            --------------------------------------
 2610REM|            2.EVALWimpEVALpollingEVAL(GenerationEVALofEVALEvents)
 2620REM|            --------------------------------------
 2630REM|
 2640REM|
 2650REM|
 2660REM|
 2670REM|                -------------------------------
 2680REM|
 2690REM|                      Procedures :
 2700REM|
 2710REM|                  PROCWimp_WaitForEvent
 2720REM|                  PROCInternal_NonSaveEvent
 2730REM|                  FNInternal_GetFileType
 2740REM|
 2750REM|                -------------------------------
 2760:
 2770      DEF PROCWimp_WaitForEvent
 2780      finished%=FALSE
 2790      mask%=%111000011001  : REM             masking events 0,4,5,10,11,12
 2800      REPEAT
 2810       SYS "Wimp_Poll",mask%,block% TO event%
 2820       CASE FNInternal_Event(event%,block%)  OF
 2830         WHEN-1 : PROCEvent_SaveFile
 2840         WHEN 0 :
 2850         WHEN 1 : SYS "Wimp_RedrawWindow",,block% TO more%
 2860                   x_origin%=FNInternal_WindowXOrigin(block%)
 2870                   y_origin%=FNInternal_WindowYOrigin(block%)
 2880                   WHILE more%
 2890                     SYS "Wimp_BorderWindow",, block%
 2900                     PROCEvent_DrawWindow(block%!0)
 2910                     SYS "Wimp_GetRectangle",,block% TO more%
 2920                   ENDWHILE
 2930         WHEN 2 : window%=!block%
 2940                  PROCWimp_WindowOpen(window%,1)
 2950         WHEN 3 : window%=!block%
 2960                  PROCWimp_WindowClose(window%)
 2970         WHEN 4 :
 2980         WHEN 5 :
 2990         WHEN 6 : button%=block%!8 : window%=block%!12 : icon%=block%!16
 3000                  x%=block%!0 : y%=block%!4
 3010                  CASE button% OF
 3020                   WHEN  2   :
 3030                    PROCEvent_MenuPopUp(window%,x%,y%)
 3040                   OTHERWISE :
 3050                    SYS "Wimp_BorderIcon",,block%
 3060                    PROCEvent_MouseClick(button%,window%,icon%,x%,y%)
 3070                    block%!8=0 : block%!12=window% : block%!16=icon%
 3080                    SYS "Wimp_BorderIcon",,block%
 3090                  ENDCASE
 3100         WHEN 7 : REM  Only drags allowed are from Save window!.
 3110         WHEN 8 : window%=block%!0 : icon%=block%!4 : key%=block%!24
 3120                  PROCEvent_KeyPress(window%,icon%,key%)
 3130         WHEN 9 : PROCEvent_MenuChoice(menu%)
 3140         WHEN 10:
 3150         WHEN 11:
 3160         WHEN 12:
 3170 
 3180REM|      Events 13,14,15,16  Not used
 3190 
 3200         WHEN 17,18 :
 3210              message%=block%!16
 3220              CASE message% OF
 3230                WHEN message_quit% : finished%=TRUE
 3240                WHEN message_load% :
 3250              ENDCASE
 3260         WHEN 19 :
 3270
 3280        PROCWimp_Alert(TaskName$,REPORT$+"at line "+STR$(ERL DIV 10),2)
 3290       ENDCASE
 3300      UNTIL finished%
 3310     ENDPROC
 3320:
 3330REM|
 3340     DEF FNInternal_Event(event%,block%)
 3350     CASE event% OF
 3360      WHEN 0
 3370     ENDCASE
 3380    =event%
 3390REM|
 3400REM|                -------------------------------
 3410REM|                          3.EVALWindows
 3420REM|                -------------------------------
 3430REM|
 3440REM|
 3450REM|
 3460REM|     ------------------------------
 3470REN|     3.1EVALWindowEVALopeningEVALandEVALclosing
 3480REM|     ------------------------------
 3490REM|
 3500REM|
 3510REM|
 3520REM|                -------------------------------
 3530REM|
 3540REM|                      Procedures :
 3550REM|
 3560REM|                  FNWimp_WindowLoad(window$)
 3570REM|                  FNWimp_WindowLoadFromTemplate(w$,template$)
 3580REM|                  PROCWimp_WindowOpen(window%,state%)
 3590REM|                  PROCWimp_WindowBringToTop(window%)
 3600REM|                  PROCWimp_WindowClose(window%)
 3610REM|                  PROCWimp_WindowOpenUp(window%)
 3620REM|
 3630REM|                -------------------------------
 3640REM|
 3650REM|
 3660REM|
 3670REM|
 3680      DEF FNWimp_WindowLoad( window$)
 3690     =FNWimp_WindowLoadFromTemplate(window$,"<Obey$Dir>.Templates")
 3700REM|
 3710      DEF FNWimp_WindowLoadFromTemplate(w$,template$)
 3720       LOCAL c%
 3730       SYS "Wimp_OpenTemplate",,template$
 3740       SYS "Wimp_LoadTemplate",,block%,icons%,icon_end%,-1,w$,0 TO ,,icons%
 3750       IF sprites%<>0 THEN block%!64=sprites%
 3760       SYS "Wimp_CreateWindow",,block% TO c%
 3770       SYS "Wimp_CloseTemplate"
 3780     =c%
 3790REM|
 3800      DEF PROCWimp_WindowOpen(window%,state%)
 3810       !block%=window%
 3820       IF state%=0 THEN SYS "Wimp_GetWindowState",,block%
 3830       SYS "Wimp_OpenWindow",,block%
 3840      ENDPROC
 3850REM|
 3860      DEF PROCWimp_WindowBringToTop(window%)
 3870       !block%=window%
 3880       SYS "Wimp_GetWindowState",,block%
 3890       block%!28=-1
 3900       SYS "Wimp_OpenWindow",,block%
 3910      ENDPROC
 3920REM|
 3930      DEF  PROCWimp_WindowClose(window%)
 3940       !block%=window%
 3950       SYS "Wimp_CloseWindow",,block%
 3960      ENDPROC
 3970REM|
 3980      DEF PROCWimp_WindowOpenUp(window%)
 3990       PROCWimp_WindowOpen(window%,0)
 4000       PROCWimp_WindowForceDraw(window%)
 4010      ENDPROC
 4020REM|
 4030REM|
 4040REM|
 4050REM|
 4060REM|     ------------------
 4070REM|     3.2EVALWindowEVALdrawing
 4080REM|     ------------------
 4090REM|
 4100REM|
 4110REM|                -------------------------------
 4120REM|
 4130REM|                      Procedures :
 4140REM|
 4150REM|                  PROCWimp_WindowForceDraw(window%)
 4160REM|                  DEF FNInternal_WindowXOrigin(block%)
 4170REM|                  DEF FNInternal_WindowYOrigin(block%)
 4180REM|                  FNWimp_GetWindowTitle(window%)
 4190REM|                   PROCWimp_Draw(x,y)
 4200REM|                   PROCWimp_Move(x,y)
 4210REM|                   PROCWimp_Line(x,y,x1,y1)
 4220REM|
 4230REM|                -------------------------------
 4240REM|
 4250REM|
 4260REM|
 4270            DEF PROCInternal_WindowDraw
 4280             LOCAL more%
 4290             SYS "Wimp_RedrawWindow",,block% TO more%
 4300             x_origin%=FNInternal_WindowXOrigin(block%)
 4310             y_origin%=FNInternal_WindowYOrigin(block%)
 4320             WHILE more%
 4330              PROCEvent_DrawWindow(block%!0)
 4340              SYS "Wimp_GetRectangle",,block% TO more%
 4350             ENDWHILE
 4360             ENDPROC
 4370REM|
 4380            DEF PROCWimp_WindowForceDraw(window%)
 4390            CASE window% OF
 4400             WHEN -1   : SYS "Wimp_ForceRedraw",-1,0,0,2*1280,2*1024
 4410             OTHERWISE : SYS "Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0
 4420            ENDCASE
 4430            ENDPROC
 4440REM|
 4450            DEF FNInternal_WindowXOrigin(block%)=block%!4-block%!20
 4460REM|
 4470            DEF FNInternal_WindowYOrigin(block%)=block%!16-block%!24
 4480REM|
 4490            DEF FNWimp_GetWindowTitle(window%)
 4500             block%!0=window%
 4510             SYS "Wimp_GetWindInfo",,block%
 4520             IF ((block%!60)AND&100)=0 ERROR 1,"Title isn't indirected"
 4530           =$(block%!76)
 4540REM|
 4550            DEF PROCWimp_Draw(x,y)
 4560             DRAW x-x_origin%,y-y_origin%
 4570            ENDPROC
 4580REM|
 4590            DEF PROCWimp_Move(x,y)
 4600             MOVE x+x_origin%,y_origin%+y
 4610            ENDPROC
 4620REM|
 4630            DEF PROCWimp_Line(x,y,x1,y1)
 4640             LINE x+x_origin%,y+y_origin%,x1+x_origin%,y1+y_origin%
 4650            ENDPROC
 4660REM|
 4670REM|
 4680REM|
 4690REM|
 4700REM|
 4710REM|
 4720REM|
 4730REM|                  -------------------------
 4740REM|                          4.EVALIcons
 4750REM|                  -------------------------
 4760REM|
 4770REM|
 4780REM|                -------------------------------
 4790REM|
 4800REM|                      Procedures :
 4810REM|
 4820REM|       FNWimp_PutIconOnBar(Sprite$)
 4830REM|       FNWimp_IconCreate(window%,ix%,iy%,iw%,ih%,flag%,text$,d1%,d2%,d3%)REM|       FNWimp_GetValidationString(window%,icon%)
 4840REM|       FNWimp_GetTextFromIcon(window%,icon%)
 4850REM|       PROCWimp_PutTextInIcon(window%,icon%,text$)
 4860REM|       PROCWimp_EnableIcon(window%,icon%)
 4870REM|       PROCWimp_DisableIcon(window%,icon%)
 4880REM|       PROCWimp_PlotIcon(block%,ix%,iy%,iw%,ih%,flag%,text$,d1%,d2%,d3%)
 4890REM|       PROCWimp_SpritesLoad
 4900REM|       PROCWimp_SpritesPathLoad(pathname$)
 4910REM|
 4920REM|                -------------------------------
 4930REM|
 4940      DEF FNWimp_PutIconOnBar(Sprite$)
 4950     =FNWimp_IconCreate(-1,0,0,68,68,&3002,Sprite$,0,0,0)
 4960REM|
 4970      DEF FNWimp_IconCreate(window%,ix%,iy%,iw%,ih%,flag%,text$,d1%,d2%,d3%)
 4980       block%!0=window%
 4990       block%!4=ix%      : block%!8=iy%
 5000       block%!12=ix%+iw% : block%!16=iy%+ih%
 5010       block%!20=flag%
 5020       IF d1%=0 THEN
 5030        $(block%+24)=text$
 5040       ELSE
 5050        block%!24=d1% : block%!28=d2% : block%!32=d3%
 5060       ENDIF
 5070       SYS "Wimp_CreateIcon",,block% TO icon%
 5080     =icon%
 5090REM|
 5100      DEF PROCWimp_PutTextInIcon(window%,icon%,text$)
 5110       block%!0=window% : block%!4=icon%
 5120       SYS "Wimp_GetIconState",,block%
 5130       IF ((block%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
 5140       $(block%!28)=text$
 5150       block%!0=window% : block%!4=icon%
 5160       block%!8=0 : block%!12=0
 5170       SYS "Wimp_SetIconState",,block%
 5180      ENDPROC
 5190REM|
 5200      DEF FNWimp_GetTextFromIcon(window%,icon%)
 5210       block%!0=window% : block%!4=icon%
 5220       SYS "Wimp_GetIconState",,block%
 5230       IF ((block%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
 5240     =$(block%!28)
 5250REM|
 5260      DEF FNWimp_GetValidationString(window%,icon%)
 5270       block%!0=window% : block%!4=icon%
 5280       SYS "Wimp_GetIconState",,block%
 5290       IF ((block%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
 5300     =$(block%!32)
 5310REM|
 5320      DEF PROCWimp_EnableIcon(window%,icon%)
 5330       block%!0=window% : block%!4=icon%
 5340       block%!8=0       : block%!12=1<<22
 5350       SYS "Wimp_SetIconState",,block%
 5360      ENDPROC
 5370REM|
 5380      DEF PROCWimp_DisableIcon(window%,icon%)
 5390       block%!0=window% : block%!4=icon%
 5400       block%!8=1<<22   : block%!12=1<<22
 5410       SYS "Wimp_SetIconState",,block%
 5420      ENDPROC
 5430REM|
 5440      DEF PROCWimp_PlotIcon(block%,ix%,iy%,iw%,ih%,flag%,text$,d1%,d2%,d3%)
 5450       block%!0=ix%      : block%!4=iy%
 5460       block%!8=ix%+iw% : block%!12=iy%+ih%
 5470       block%!16=flag%
 5480       IF d1%=0 THEN
 5490        $(block%+24)=text$
 5500       ELSE
 5510        block%!24=d1% : block%!28=d2% : block%!32=d3%
 5520       ENDIF
 5530       SYS "Wimp_PlotIcon",,block%
 5540       ENDPROC
 5550REM|
 5560       DEF PROCWimp_SpritesLoad
 5570        PROCWimp_SpritesPathLoad("<Obey$Dir>.Sprites")
 5580       ENDPROC
 5590REM|
 5600       DEF PROCWimp_SpritesPathLoad(pathname$)
 5610        LOCAL S%,T%
 5620        S%=OPENIN"<Obey$Dir>.Sprites":T%=EXT#S%+16:CLOSE#S%
 5630        DIM sprites% T%, spname% 12
 5640        !sprites%=T%:sprites%!8=0
 5650        SYS "OS_SpriteOp",&109,sprites%
 5660        SYS "OS_SpriteOp",&10A,sprites%,pathname$
 5670       ENDPROC
 5680REM|
 5690REM|
 5700REM|
 5710REM|
 5720REM|
 5730REM|                  -------------------------
 5740REM|                          5.EVALMenus
 5750REM|                  -------------------------
 5760REM|
 5770REM|
 5780REM|                -------------------------------
 5790REM|
 5800REM|                      Procedures :
 5810REM|
 5820REM|               FNWimp_MenuCreate(menu$)
 5830REM|               FNWimp_MenuBuild(menu%,menu$)
 5840REM|               FNWimp_MenuChoice(level%)
 5850REM|               PROCWimp_MenuPopUpBar(x%,y%)
 5860REM|               PROCWimp_MenuPopUp(Menu%,x%,y%)
 5870REM|               FNInternal_MenuNoOfEntries(menu$)
 5880REM|               PROCWimp_MenuClose
 5890REM|               PROCWimp_MenuGlue(menu1%,item%,menu2%)
 5900REM|               PROCWimp_MenuMessage(menu%,item%)
 5910REM|               PROCWimp_MenuTick(menu%,item%)
 5920REM|               PROCWimp_MenuDottedLine(menu%,item%)
 5930REM|               PROCWimp_MenuForeGroundColour(menu%,item%,colour%)
 5940REM|               PROCWimp_MenuBackGroundColour(menu%,item%,colour%)
 5950REM|               PROCWimp_MenuCentre(menu%,item%)
 5960REM|               PROCWimp_MenuDisable(menu%,item%)
 5970REM|               PROCWimp_MenuEnable(menu%,item%)
 5980REM|               PROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
 5990REM|               PROCWimp_MenuTitle(menu%,title$)
 6000REM|               PROCWimp_MenuItem(menu%,item%,item$)
 6010REM|               FNWimp_CreateColoursMenu
 6020REM|               FNWimp_CreateColoursMenu(title$)
 6030REM|
 6040REM|                -------------------------------
 6050REM|
 6060REM|
 6070REM|
 6080REM|
 6090               DEF FNWimp_MenuCreate(menu$)
 6100                LOCAL menu%
 6110                DIM menu% 28+FNInternal_MenuNoOfEntries(menu$)*24
 6120             =FNWimp_MenuBuild(menu%,menu$)
 6130REM|
 6140                      DEF FNInternal_MenuNoOfEntries(menu$)
 6150                       LOCAL n% ,j% : n%=0 : j%=0
 6160                       REPEAT
 6170                        j%=INSTR(menu$,"\",j%+1)
 6180                        IF j%<>0 THEN n%+=1
 6190                       UNTIL j%=0
 6200                     =n%
 6210REM|
 6220               DEF FNWimp_MenuBuild(menu%,menu$)
 6230                LOCAL ypos%,width%,length%,k%
 6240                menu%?12=7   : menu%?13=2  : menu%?14=7 :menu%?15=0
 6250                menu%!16=140 : menu%!20=44 : menu%!24=0
 6260                ptr%=menu%+28
 6270                $menu%=LEFT$(menu$,INSTR(menu$,"\")-1)
 6280                width%=LEN(LEFT$(menu$,INSTR(menu$,"\")-1))
 6290                menu$+="\" : Menu_NoOfEntries%=0
 6300                WHILE menu$<>""
 6310                 menu$=MID$(menu$,INSTR(menu$,"\")+1)
 6320                 IF menu$<>"" THEN
 6330                  !ptr%=0 : ptr%!4=-1 : ptr%!8=&7000021
 6340                  length%=INSTR(menu$,"\")-1
 6350                  k%=INSTR(LEFT$(menu$,length%),">")
 6360                  IF k%<>0 THEN
 6370                   s%=EVAL(MID$(menu$,k%+1,length%-k%))
 6380                   ptr%!4=s%
 6390                   length%=k%-1
 6400                  ENDIF
 6410                  $(ptr%+12)=LEFT$(menu$,length%)
 6420                  IF length%>width% THEN width%=length%
 6430                  ptr%+=24
 6440                  Menu_NoOfEntries%+=1
 6450                 ENDIF
 6460                ENDWHILE
 6470                menu%!16=16*(width%+1)
 6480                ptr%!-24=ptr%!-24 OR &80 : REM|...Last item
 6490               =menu%
 6500REM|
 6510             DEF PROCWimp_MenuClose
 6520              SYS "Wimp_CreateMenu",-1
 6530             ENDPROC
 6540REM|
 6550             DEF FNWimp_MenuChoice(level%)=(block%!(4*level%))+1
 6560REM|
 6570             DEF PROCWimp_MenuPopUpBar(x%,y%)
 6580              LOCAL n% : n%=0
 6590              WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0
 6600               n%+=1
 6610              ENDWHILE
 6620              SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
 6630              menu%=Bar_Menu%
 6640             ENDPROC
 6650
 6660REM|
 6670             DEF PROCWimp_MenuPopUp(Menu%,x%,y%)
 6680              menu%=Menu%
 6690              SYS "Wimp_CreateMenu",,menu%,x%-64,y%+20
 6700             ENDPROC
 6710REM|
 6720             DEF PROCWimp_MenuGlue(menu1%,item%,menu2%)
 6730              menu1%!(8+item%*24)=menu2%
 6740             ENDPROC
 6750             DEF PROCWimp_MenuMessage(menu%,item%)
 6760              menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR(1<<3)
 6770             ENDPROC
 6780REM|
 6790             DEF PROCWimp_MenuTick(menu%,item%)
 6800              menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR1
 6810             ENDPROC
 6820REM|
 6830             DEF PROCWimp_MenuDottedLine(menu%,item%)
 6840              menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR2
 6850             ENDPROC
 6860REM|
 6870         DEF PROCWimp_MenuForeGroundColour(menu%,item%,colour%)
 6880          menu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))DIV16)
 6890         ENDPROC
 6900REM|
 6910         DEF PROCWimp_MenuBackGroundColour(menu%,item%,colour%)
 6920           LOCAL fore%,i%
 6930           fore%=(menu%?(39+(item%-1)*24))MOD16
 6940           i%=((menu%?(39+(item%-1)*24))DIV16)MOD16
 6950           menu%?(39+(item%-1)*24)=fore%+16*colour%+i%
 6960         ENDPROC
 6970REM|
 6980             DEF PROCWimp_MenuCentre(menu%,item%)
 6990              menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<3)
 7000             ENDPROC
 7010REM|
 7020            DEF PROCWimp_MenuDisable(menu%,item%)
 7030             menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<22)
 7040            ENDPROC
 7050REM|
 7060            DEF PROCWimp_MenuEnable(menu%,item%)
 7070             PROCWimp_MenuDisable(menu%,item%)
 7080             menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)EOR(1<<22)
 7090            ENDPROC
 7100REM|
 7110            DEF PROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
 7120             menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR4
 7130             menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR&100
 7140             menu%!(40+(item%-1)*24)=buffer%
 7150             menu%!(44+(item%-1)*24)=val%
 7160             menu%!(48+(item%-1)*24)=BufferLength%
 7170            ENDPROC
 7180REM|
 7190            DEF PROCWimp_MenuTitle(menu%,title$)
 7200             $menu%=LEFT$(title$,12)+CHR$0
 7210            ENDPROC
 7220REM|
 7230            DEF PROCWimp_MenuItem(menu%,item%,item$)
 7240             $(menu%+(40+(item%-1)*24))=LEFT$(item$,12)+CHR$0
 7250            ENDPROC
 7260REM|
 7270            DEF FNWimp_CreateColoursMenu =FNWimp_CreateColoursMenu("    ")
 7280REM|
 7290            DEF FNWimp_CreateColoursMenu(title$)
 7300             LOCAL x$,men%,j%
 7310             x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
 7320             men%=FNWimp_MenuCreate(x$)
 7330             FOR i%=0 TO 15
 7340              CASE TRUE OF
 7350               WHEN i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7
 7360               OTHERWISE                        : j%=0
 7370              ENDCASE
 7380              men%?(39+i%*24)=i%*16+j%
 7390              PROCWimp_MenuCentre(men%,i%+1)
 7400             NEXT
 7410            =men%
 7420REM|
 7430REM|
 7440REM|
 7450REM|
 7460REM|                  -------------------------
 7470REM|                          6.EVALFiles
 7480REM|                  -------------------------
 7490REM|
 7500REM|
 7510REM|                -------------------------------
 7520REM|
 7530REM|                      Procedures :
 7540REM|
 7550REM|               FNUtils_FileType(type%)
 7560REM|               FNWimp_GetFilePathName
 7570REM|               FNUtils_FileLoad(pathname$)
 7580REM|               FNUtils_GetStringAtAddress(ptr%)
 7590REM|               FNUtils_GetFileFromPathname(f$)
 7600REM|
 7610REM|
 7620REM|                -------------------------------
 7630REM|
 7640REM|
 7650REM|
 7660REM|
 7670         DEF FNUtils_FileType(type%)
 7680          CASE type% OF
 7690           WHEN &FFF :="Text"
 7700           WHEN &FFD :="Data"
 7710           WHEN &FFB :="Basic"
 7720           WHEN &FF9 :="Sprite"
 7730           WHEN &FED :="Palette"
 7740           WHEN &FEC :="Template"
 7750           WHEN &AFF :="Draw"
 7760           WHEN &1000:="Folder"
 7770           WHEN &2000:="Application"
 7780           OTHERWISE=STR$~(type%)
 7790          ENDCASE
 7800REM|
 7810         DEF FNWimp_GetFilePathName =FNUtils_GetStringAtAddress(block%+44)
 7820REM
 7830         DEF FNUtils_FileLoad(pathname$)
 7840         LOCAL S%,T%,file%
 7850         S%=OPENIN pathname$
 7860         T%=EXT#S%+16
 7870         CLOSE#S%
 7880         DIM file% T%
 7890         OSCLI("LOAD "+pathname$+" "+STR$~file%)
 7900        =file%
 7910REM|
 7920         DEF FNUtils_GetStringAtAddress(ptr%)
 7930         LOCAL s$ : s$=""
 7940         WHILE (?ptr%<>13)AND(?ptr%<>0) : s$+=CHR$(?ptr%): ptr%+=1 :ENDWHILE:
 7950        =s$
 7960REM|
 7970         DEF FNUtils_GetFileFromPathname(f$)
 7980         IF INSTR(f$,".")=0 THEN
 7990          =f$
 8000         ELSE
 8010          =FNUtils_GetStringFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
 8020         ENDIF
 8030REM|
 8040REM|
 8050REM|
 8060REM|
 8070REM|
 8080REM|
 8090REM|
 8100REM|
 8110REM|
 8120REM|
 8130REM|                  -------------------------
 8140REM|                          7.EVALSprites
 8150REM|                  -------------------------
 8160REM|
 8170REM|
 8180REM|                -------------------------------
 8190REM|
 8200REM|                      Procedures :
 8210REM|
 8220REM|
 8230REM|
 8240REM|
 8250REM|
 8260REM|
 8270REM|
 8280REM|
 8290REM|                -------------------------------
 8300REM|
 8310REM|
 8320REM|
 8330REM|
 8340REM|
 8350REM|
 8360REM|
 8370REM|                  -------------------------
 8380REM|                         8.EVALSaves
 8390REM|                  -------------------------
 8400REM|
 8410REM|
 8420REM|                -------------------------------
 8430REM|
 8440REM|                      Procedures :
 8450REM|
 8460REM|                   PROCInternal_SaveEvent
 8470REM|                   PROCInternal_SaveFile
 8480REM|                   PROCWimp_DragBox(window%)
 8490REM|                   PROCInternal_SaveMessage
 8500REM|                   FNInternal_SaveEvent
 8510REM|
 8520REM|
 8530REM|                -------------------------------
 8540REM|
 8550REM|
 8560REM|
 8570REM|
 8580       DEF PROCSave_Event
 8590        CASE block%!0 OF
 8600         WHEN Save_Window% : PROCInternal_SaveFile
 8610         OTHERWISE         :
 8620          CASE block%!16 OF
 8630           WHEN 0 :
 8640            IF block%!8 AND &50 THEN PROCWimp_DragBox(Save_Window%)
 8650           WHEN 2 :
 8660            IF block%!8 AND 5 THEN PROCInternal_SaveFile
 8670          ENDCASE
 8680        ENDCASE
 8690       ENDPROC
 8700REM|
 8710      DEF PROCInternal_SaveFile
 8720       LOCAL x$
 8730       x$=FNIcon_GetText(Save_Window%,1)
 8740       CASE INSTR(x$,".") OF
 8750        WHEN 0    :
 8760         PROCAlertBox(Task$,"To save, drag the icon to a directory window")
 8770        OTHERWISE :
 8780         PROCEvent_SaveFile(x$)
 8790       ENDCASE
 8800       SYS "Wimp_CreateMenu",-1
 8810       ENDPROC
 8820REM|
 8830     DEF PROCWimp_DragBox(window%)
 8840     LOCAL x%,y%
 8850     !block%=window%
 8860     SYS "Wimp_GetWindowState",,block%
 8870     x%=block%!4-block%!20  : y%=block%!16-block%!24
 8880     block%!4=0
 8890     SYS "Wimp_GetIconState",,block%
 8900     !block%=window%
 8910      block%!4=5
 8920      block%!8=x%+block%!8    : block%!12=y%+block%!12
 8930      block%!16=x%+block%!16  : block%!20=y%+block%!20
 8940      block%!24=0:block%!28=0
 8950      block%!32=&7FFFFFFF  : block%!36=&7FFFFFFF
 8960      SYS "Wimp_DragBox",,block%
 8970     ENDPROC
 8980REM|
 8990    DEF PROCInternal_SaveMessage
 9000    LOCAL file$,window%,icon%,x%,y%
 9010    SYS "Wimp_GetPointerInfo",,block%
 9020    window%=block%!12 : icon%=block%!16  : x%=block%!0  : y%=block%!4
 9030    file$=FNGetLeaf(FNIcon_GetText(Save_Window%,1))
 9040    block%!20=window%
 9050    block%!24=icon%
 9060    block%!28=x% : block%!32=y%
 9070    block%!36=length%
 9080    block%!0=64
 9090    block%!12=0
 9100    block%!16=1
 9110    block%!40=&FFF
 9120    $(block%+44)=file$
 9130    SYS "Wimp_SendMessage",17,block%,block%!20,block%!24
 9140    ENDPROC
 9150REM|
 9160       DEF FNInternal_SaveEvent
 9170     =(block%!0=Save_Window%) OR (block%!12=Save_Window%)
 9180REM|
 9190REM|
 9200REM|
 9210REM|
 9220REM|                  -------------------------
 9230REM|                      9.EVALMiscellaneous
 9240REM|                  -------------------------
 9250REM|
 9260REM|
 9270REM|                -------------------------------
 9280REM|
 9290REM|                      Procedures :
 9300REM|
 9310REM|                 PROCWimp_AlertBox(title$,message$,button%
 9320REM|                 FNWimp_CancelBox(title$,message$)
 9330REM|                 PROCWimp_ErrorBox(title$,message$)
 9340REM|                 PROCWimp_Alert(title$,message$)
 9350REM|                 FNUtils_ReadVariable(variable$)
 9360REM|
 9370REM|                -------------------------------
 9380REM|
 9390REM|
 9400REM|
 9410         DEF PROCWimp_AlertBox(title$,message$,button%)
 9420         LOCAL response%
 9430         $(block%+4)=message$
 9440         CASE button% OF
 9450          WHEN 2    : response%=1     : REM|...Error Box
 9460          WHEN 1    : response%=15    : REM|...OK and CANCEL butons
 9470          WHEN 3    : response%=(1<<5)+16
 9480          WHEN 4    : response%=(1<<6)+16
 9490          OTHERWISE : response%=16    : REM|...OK button only
 9500        ENDCASE
 9510        SYS "Wimp_ReportError",block%,response%,title$ TO ,response%
 9520        ENDPROC
 9530REM|
 9540        DEF FNWimp_CancelBox(title$,message$)
 9550        $(block%+4)=message$
 9560        response%=23
 9570        SYS "Wimp_ReportError",block%,response%,title$ TO ,response%
 9580       =response%-2
 9590REM|
 9600        DEF PROCWimp_ErrorBox(title$,message$)
 9610        PROCWimp_AlertBox(title$,message$,2)
 9620        ENDPROC
 9630REM|
 9640        DEF PROCWimp_Alert(title$,message$)
 9650        PROCWimp_AlertBox(title$,message$,0)
 9660        ENDPROC
 9670REM|
 9680        DEF FNUtils_ReadVariable(Variable$)
 9690         LOCAL len%,result%,variable%
 9700REM         DIM result% 255,variable% 100
 9710         $block%=Variable$
 9720         SYS "OS_ReadVarVal",block%,block%+255,255,,3 TO ,,len%
 9730         block%?(len%+255)=13
 9740        =$(block%+255)
 9750:
 9760DEF PROCIcon_PutCaret(window%,icon%,length%)
 9770SYS "Wimp_SetCaretPosition",window%,icon%,,,-1,length%
 9780ENDPROC
 9790:

6         block_memory%=4*&1000 : icon_memory%=1000

6                     Task$=�Wimp_Start("Glossary")
(.                           �Create_Windows
2,                           �Create_Icons
<,                           �Create_Menus
F3                           �User_SetInitialData
P1                           �Wimp_WaitForEvent
Z.                           �Wimp_CloseDown
d                            �
n       :
x!       � �User_SetInitialData
�       �ReadData
�          entry%=1
�,          �WriteToGlossaryWindow(entry%)
�       �
�       :
�        � �ReadData
�2         path$=�Utils_ReadVariable("Obey$Dir")
�5         � Windows,Icons,Menus,Sprites,Files,Misc
�(          � entry$(100),line$(100,5)
�4          � key%(6) : key%(0)=0 : NoOfEntries%=0
�          � i%=1 � 6
�)          � y$ : y$=path$+".Wimp."+y$
�          file%=�(y$)
          �
           x$=�#file%
           Ȏ �x$,3) �
"            � "DEF"
,              NoOfEntries%+=1
60             entry$(NoOfEntries%)=�x$,�x$-3)
@             � j%=1 � 5
J              x$=�#file%
T3              line$(NoOfEntries%,j%)=�x$,�x$-4)
^             �
h           �
r          � �#file%
|          �#file%
�#          key%(i%)=NoOfEntries%
�          �
�
        �
�       :
�       � �Create_Windows
�;                  Info_Window%=�Wimp_WindowLoad("Info")
�;                  Save_Window%=�Wimp_WindowLoad("Save")
�?              Glossary_Window%=�Wimp_WindowLoad("Glossary")
�4        �Wimp_WindowBringToTop(Glossary_Window%)
�       �
�       :
�       � �Create_Icons
�5       Bar_Icon%=�Wimp_PutIconOnBar("!WimpGloss")
       �
       :
       � �Create_Menus
&K         Bar_Menu%=�Wimp_MenuCreate("WimpGloss\Info>Info_Window%\Quit")
0D         menu$="Glossary\Windows\Icons\Menus\Sprites\Files\Misc"
:3         Glossary_Menu%=�Wimp_MenuCreate(menu$)
D       �
N       :
X'       � �Event_DrawWindow(window%)
b       �
l       :
v,       � �Event_MenuPopUp(window%,x%,y%)
�       Ȏ window% �
�<        � Bar_Window%        : �Wimp_MenuPopUpBar(x%,y%)
�H        � Glossary_Window%   : �Wimp_MenuPopUp(Glossary_Menu%,x%,y%)
�       �
�       �
�       :
�;       � �Event_MouseClick(button%,window%,icon%,x%,y%)
�       Ȏ window% �
�1        � Bar_Window%        : �User_MouseBar
�E        � Glossary_Window%   : �User_MouseGlossary(button%,icon%)
�       �
�       �
�         :
         � �User_MouseBar
6          �Wimp_WindowBringToTop(Glossary_Window%)
         �
          :
*1         � �User_MouseGlossary(button%,icon%)
4          Ȏ icon% �
>"           � 10 : � entry%=1 �
H;                      �Wimp_Alert(Task$,"First entry!")
R                     �
\#                      entry%-=1
f                     �
p,           � 8 : � entry%=NoOfEntries% �
z?                      �Wimp_Alert(Task$,"No more entries!")
�                     �
�#                      entry%+=1
�                     �
�          �
�,          �WriteToGlossaryWindow(entry%)
�         �
�       :
�%       � �Event_MenuChoice(menu%)
�        Ȏ menu% �
�<              � Bar_Menu%          : �User_MenuChoiceBar
�A              � Glossary_Menu%     : �User_MenuChoiceGlossary
�
        �
�       �
       :
        � �User_MenuChoiceBar
$        Ȏ �Wimp_MenuChoice(0) �
$         � 1 :
.         � 2 : finished%=�
8
        �
B       �
L       :
V%       � �User_MenuChoiceGlossary
`0        entry%=key%(�Wimp_MenuChoice(0)-1)+1
j*        �WriteToGlossaryWindow(entry%)
t       �
~:
�'       � �WriteToGlossaryWindow(i%)
�         � f$,arg$,k%
�         f$=entry$(i%)
�         k%=�f$,"(")
�         Ȏ k% �
�+          � 0    : arg$="No arguments."
�$           : arg$=�f$,�f$-k%+1)
�(                      f$=�f$,k%)+")"
�         �
�7         �Wimp_PutTextInIcon(Glossary_Window%,3,f$)
�         � �arg$>48 �
�2           f$=�arg$,46) : arg$=�arg$,�arg$-46)
           k%=�arg$,",")

=           � k%<>0 � f$+=�arg$,k%) : arg$=�arg$,�arg$-k%)
9           �Wimp_PutTextInIcon(Glossary_Window%,4,f$)
;           �Wimp_PutTextInIcon(Glossary_Window%,5,arg$)
(         �
2:          �Wimp_PutTextInIcon(Glossary_Window%,4,arg$)
<8          �Wimp_PutTextInIcon(Glossary_Window%,5,"")
F         �
PD         �Wimp_PutTextInIcon(Glossary_Window%,9,line$(entry%,1))
ZE         �Wimp_PutTextInIcon(Glossary_Window%,13,line$(entry%,2))
dD         �Wimp_PutTextInIcon(Glossary_Window%,7,line$(entry%,3))
nD         �Wimp_PutTextInIcon(Glossary_Window%,6,line$(entry%,4))
xD         �Wimp_PutTextInIcon(Glossary_Window%,2,line$(entry%,5))
�       �
�E�|                -------------------------------          6/1/92
�/�|                   WIMP PROCEDURE LIBRARY
��|
�,�|                     Index of Contents
��|
�5�|                -------------------------------
��|
�5�|                    1.�Wimp initialise�and�quit
��|
�@�|                    2.�Wimp�polling�(Generation�of�Events)
��|
�$�|                    3.�Windows
�|
;�|                       3.1�Window�opening�and�closing
/�|                       3.2�Window�drawing
"�|
,"�|                    4.�Icons
6�|
@"�|                    5.�Menus
J�|
T"�|                    6.�Files
^�|
h$�|                    7.�Sprites
r�|
|"�|                    8.�Saves
��|
�*�|                    9.�Miscellaneous
��|
�5�|                -------------------------------
��|
��|
��|
��|
�5�|                -------------------------------
�3�|                  1.�Wimp�initialise�and�quit
�5�|                -------------------------------
��|
��|
5�|                -------------------------------
�|
(�|                      Procedures :
&�|
0%�|                  FNWimp_Start(
:*�|                  PROCWimp_CloseDown
D%�|                  PROCWimp_Quit
N6�|                  PROCInternal_SetEventVariables
X+�|                  PROCInternal_Error(
b�|
l5�|                -------------------------------
v�|
��|
��|
�"     � �Wimp_Start( TaskName$)
��|
�:�|  --------------------------------------------------
�;�|  Initialises a task. See page 1173 of RiscOs Manual.
�:�|  --------------------------------------------------
��|
�$     �Internal_SetEventVariables
��|
�0     � � �Internal_Error( task%,TaskName$):�
��|
�     $block%="TASK"
 
 
D     ș "Wimp_Initialise",200,!block%,TaskName$ � version%,task%
 
*�|
4    =TaskName$
>�|
H�|
R)        � �Internal_SetEventVariables
\�|
f6        � block% block_memory%,icons% icon_memory%
p-            icon_end%=icons%+icon_memory%
z�|
�N        null%=1                : draw%=2           : pointer_leaving%=1<<4
�C        pointer_entering%=1<<5 : mouse%=1<<6       : drag%=1<<7
�F        key%=1<<8              : menu%=1<<9        : scroll%=1<<10
�Q        lose_caret%=1<<11      : gain_caret%=1<<12 : message%=(1<<17)+(1<<18)
�B        recorder%=1<<18        : acknowledge%=1<<19: window%=0
�@        sprites%=0             : version%=0        : task%=0
�D        Bar_Window%=-2         : Bar_Icon%=0       : Bar_Menu%=0
�G        x_origin%=0            : y_origin%=0       : SaveWindow%=-3
�H        message_quit%=0        : message_save%=2   : message_load%=3
�2        mouse_button%=2        : save_event%=0
��|
�
        �
��|
	�|
	/        � �Internal_Error( task%,TaskName$)
	        � X$,x%
	$        � � �
	.         x%=�
	8(         X$=�$+"at line "+�(x% � 10)
	B� ErrorMsg% 36
	L=ErrorMsg%!0     = 36                : � Length of message
	VGErrorMsg%!12    = 0                 : � This is an original message
	`GErrorMsg%!16    = &81080            : � Message number to set caret
	j@ErrorMsg%!20    = x%                : � Line to put caret on
	t@$(ErrorMsg%+24) = "!RunImage   "    : � File to put caret on
	~&ș "Wimp_SendMessage",17,ErrorMsg%
	�
	�%        �Wimp_Alert(TaskName$,X$)
	�        �Wimp_CloseDown
	�
        �
	��|
	��|
	�        � �Wimp_CloseDown
	�-         ș "Wimp_CloseDown",task%,"TASK"
	�
        �
	��|
	��|
	�        � �Wimp_Quit
        finished%=�


        �
�|
�|
(8�|            --------------------------------------
28�|            2.�Wimp�polling�(Generation�of�Events)
<8�|            --------------------------------------
F�|
P�|
Z�|
d�|
n5�|                -------------------------------
x�|
�(�|                      Procedures :
��|
�-�|                  PROCWimp_WaitForEvent
�1�|                  PROCInternal_NonSaveEvent
�.�|                  FNInternal_GetFileType
��|
�5�|                -------------------------------
�:
�      � �Wimp_WaitForEvent
�      finished%=�
�L      mask%=%111000011001  : �             masking events 0,4,5,10,11,12
�      �
�/       ș "Wimp_Poll",mask%,block% � event%
/       Ȏ �Internal_Event(event%,block%)  �
"         �-1 : �Event_SaveFile
         � 0 :
"9         � 1 : ș "Wimp_RedrawWindow",,block% � more%
,@                   x_origin%=�Internal_WindowXOrigin(block%)
6@                   y_origin%=�Internal_WindowYOrigin(block%)
@                   ȕ more%
J8                     ș "Wimp_BorderWindow",, block%
T4                     �Event_DrawWindow(block%!0)
^?                     ș "Wimp_GetRectangle",,block% � more%
h                   �
r"         � 2 : window%=!block%
|1                  �Wimp_WindowOpen(window%,1)
�"         � 3 : window%=!block%
�0                  �Wimp_WindowClose(window%)
�         � 4 :
�         � 5 :
�I         � 6 : button%=block%!8 : window%=block%!12 : icon%=block%!16
�/                  x%=block%!0 : y%=block%!4
�"                  Ȏ button% �
�                   �  2   :
�7                    �Event_MenuPopUp(window%,x%,y%)
�                    :
�4                    ș "Wimp_BorderIcon",,block%
�F                    �Event_MouseClick(button%,window%,icon%,x%,y%)
�H                    block%!8=0 : block%!12=window% : block%!16=icon%
4                    ș "Wimp_BorderIcon",,block%
                  �
?         � 7 : �  Only drags allowed are from Save window!.
&E         � 8 : window%=block%!0 : icon%=block%!4 : key%=block%!24
09                  �Event_KeyPress(window%,icon%,key%)
:+         � 9 : �Event_MenuChoice(menu%)
D         � 10:
N         � 11:
X         � 12:
b 
l(�|      Events 13,14,15,16  Not used
v 
�         � 17,18 :
�$              message%=block%!16
�              Ȏ message% �
�1                � message_quit% : finished%=�
�%                � message_load% :
�              �
�         � 19 :
�
�<        �Wimp_Alert(TaskName$,�$+"at line "+�(� � 10),2)
�       �
�      � finished%
�
     �
�:

�|

)     � �Internal_Event(event%,block%)

     Ȏ event% �

 
      � 0

*
     �

4    =event%

>�|

H5�|                -------------------------------

R*�|                          3.�Windows

\5�|                -------------------------------

f�|

p�|

z�|

�)�|     ------------------------------

�4REN|     3.1�WindowEVALopeningEVALandEVALclosing

�)�|     ------------------------------

��|

��|

��|

�5�|                -------------------------------

��|

�(�|                      Procedures :

��|

�2�|                  FNWimp_WindowLoad(window$)

�C�|                  FNWimp_WindowLoadFromTemplate(w$,template$)

�;�|                  PROCWimp_WindowOpen(window%,state%)
:�|                  PROCWimp_WindowBringToTop(window%)
5�|                  PROCWimp_WindowClose(window%)
6�|                  PROCWimp_WindowOpenUp(window%)
$�|
.5�|                -------------------------------
8�|
B�|
L�|
V�|
`&      � �Wimp_WindowLoad( window$)
jF     =�Wimp_WindowLoadFromTemplate(window$,"<Obey$Dir>.Templates")
t�|
~6      � �Wimp_WindowLoadFromTemplate(w$,template$)
�       � c%
�,       ș "Wimp_OpenTemplate",,template$
�M       ș "Wimp_LoadTemplate",,block%,icons%,icon_end%,-1,w$,0 � ,,icons%
�-       � sprites%<>0 � block%!64=sprites%
�.       ș "Wimp_CreateWindow",,block% � c%
�"       ș "Wimp_CloseTemplate"
�     =c%
��|
�,      � �Wimp_WindowOpen(window%,state%)
�       !block%=window%
�8       � state%=0 � ș "Wimp_GetWindowState",,block%
�'       ș "Wimp_OpenWindow",,block%
      �

�|
+      � �Wimp_WindowBringToTop(window%)
       !block%=window%
(+       ș "Wimp_GetWindowState",,block%
2       block%!28=-1
<'       ș "Wimp_OpenWindow",,block%
F      �
P�|
Z'      �  �Wimp_WindowClose(window%)
d       !block%=window%
n(       ș "Wimp_CloseWindow",,block%
x      �
��|
�'      � �Wimp_WindowOpenUp(window%)
�&       �Wimp_WindowOpen(window%,0)
�)       �Wimp_WindowForceDraw(window%)
�      �
��|
��|
��|
��|
��|     ------------------
��|     3.2�Window�drawing
��|     ------------------
��|
�|
5�|                -------------------------------
�|
"(�|                      Procedures :
,�|
69�|                  PROCWimp_WindowForceDraw(window%)
@<�|                  DEF FNInternal_WindowXOrigin(block%)
J<�|                  DEF FNInternal_WindowYOrigin(block%)
T6�|                  FNWimp_GetWindowTitle(window%)
^+�|                   PROCWimp_Draw(x,y)
h+�|                   PROCWimp_Move(x,y)
r1�|                   PROCWimp_Line(x,y,x1,y1)
|�|
�5�|                -------------------------------
��|
��|
��|
�&            � �Internal_WindowDraw
�             � more%
�7             ș "Wimp_RedrawWindow",,block% � more%
�:             x_origin%=�Internal_WindowXOrigin(block%)
�:             y_origin%=�Internal_WindowYOrigin(block%)
�             ȕ more%
�-              �Event_DrawWindow(block%!0)
�8              ș "Wimp_GetRectangle",,block% � more%
�             �
             �
�|
0            � �Wimp_WindowForceDraw(window%)
&            Ȏ window% �
0D             � -1   : ș "Wimp_ForceRedraw",-1,0,0,2*1280,2*1024
:E              : ș "Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0
D            �
N            �
X�|
bD            � �Internal_WindowXOrigin(block%)=block%!4-block%!20
l�|
vE            � �Internal_WindowYOrigin(block%)=block%!16-block%!24
��|
�/            � �Wimp_GetWindowTitle(window%)
�!             block%!0=window%
�.             ș "Wimp_GetWindInfo",,block%
�D             � ((block%!60)�&100)=0 � 1,"Title isn't indirected"
�           =$(block%!76)
��|
�!            � �Wimp_Draw(x,y)
�*             � x-x_origin%,y-y_origin%
�            �
��|
�!            � �Wimp_Move(x,y)
�*             � x+x_origin%,y_origin%+y
            �
�|
'            � �Wimp_Line(x,y,x1,y1)
 D             � x+x_origin%,y+y_origin%,x1+x_origin%,y1+y_origin%
*            �
4�|
>�|
H�|
R�|
\�|
f�|
p�|
z1�|                  -------------------------
�(�|                          4.�Icons
�1�|                  -------------------------
��|
��|
�5�|                -------------------------------
��|
�(�|                      Procedures :
��|
�)�|       FNWimp_PutIconOnBar(Sprite$)
ރ�|       FNWimp_IconCreate(window%,ix%,iy%,iw%,ih%,flag%,text$,d1%,d2%,d3%)REM|       FNWimp_GetValidationString(window%,icon%)
�2�|       FNWimp_GetTextFromIcon(window%,icon%)
�8�|       PROCWimp_PutTextInIcon(window%,icon%,text$)
�/�|       PROCWimp_EnableIcon(window%,icon%)
0�|       PROCWimp_DisableIcon(window%,icon%)
N�|       PROCWimp_PlotIcon(block%,ix%,iy%,iw%,ih%,flag%,text$,d1%,d2%,d3%)
!�|       PROCWimp_SpritesLoad
$0�|       PROCWimp_SpritesPathLoad(pathname$)
.�|
85�|                -------------------------------
B�|
L'      � �Wimp_PutIconOnBar(Sprite$)
V<     =�Wimp_IconCreate(-1,0,0,68,68,&3002,Sprite$,0,0,0)
`�|
jM      � �Wimp_IconCreate(window%,ix%,iy%,iw%,ih%,flag%,text$,d1%,d2%,d3%)
t       block%!0=window%
~+       block%!4=ix%      : block%!8=iy%
�0       block%!12=ix%+iw% : block%!16=iy%+ih%
�       block%!20=flag%
�       � d1%=0 �
�        $(block%+24)=text$
�       �
�9        block%!24=d1% : block%!28=d2% : block%!32=d3%
�       �
�/       ș "Wimp_CreateIcon",,block% � icon%
�     =icon%
��|
�4      � �Wimp_PutTextInIcon(window%,icon%,text$)
�,       block%!0=window% : block%!4=icon%
)       ș "Wimp_GetIconState",,block%

?       � ((block%!24) � &100)=0 � 1,"Icon isn't indirected"
       $(block%!28)=text$
,       block%!0=window% : block%!4=icon%
(#       block%!8=0 : block%!12=0
2)       ș "Wimp_SetIconState",,block%
<      �
F�|
P0      � �Wimp_GetTextFromIcon(window%,icon%)
Z,       block%!0=window% : block%!4=icon%
d)       ș "Wimp_GetIconState",,block%
n?       � ((block%!24) � &100)=0 � 1,"Icon isn't indirected"
x     =$(block%!28)
��|
�4      � �Wimp_GetValidationString(window%,icon%)
�,       block%!0=window% : block%!4=icon%
�)       ș "Wimp_GetIconState",,block%
�?       � ((block%!24) � &100)=0 � 1,"Icon isn't indirected"
�     =$(block%!32)
��|
�+      � �Wimp_EnableIcon(window%,icon%)
�,       block%!0=window% : block%!4=icon%
�-       block%!8=0       : block%!12=1<<22
�)       ș "Wimp_SetIconState",,block%
�      �
��|
,      � �Wimp_DisableIcon(window%,icon%)
,       block%!0=window% : block%!4=icon%
-       block%!8=1<<22   : block%!12=1<<22
")       ș "Wimp_SetIconState",,block%
,      �
6�|
@J      � �Wimp_PlotIcon(block%,ix%,iy%,iw%,ih%,flag%,text$,d1%,d2%,d3%)
J+       block%!0=ix%      : block%!4=iy%
T/       block%!8=ix%+iw% : block%!12=iy%+ih%
^       block%!16=flag%
h       � d1%=0 �
r        $(block%+24)=text$
|       �
�9        block%!24=d1% : block%!28=d2% : block%!32=d3%
�       �
�%       ș "Wimp_PlotIcon",,block%
�       �
��|
�       � �Wimp_SpritesLoad
�7        �Wimp_SpritesPathLoad("<Obey$Dir>.Sprites")
�       �
��|
�-       � �Wimp_SpritesPathLoad(pathname$)
�        � S%,T%
�4        S%=�"<Obey$Dir>.Sprites":T%=�#S%+16:�#S%
�%        � sprites% T%, spname% 12
%        !sprites%=T%:sprites%!8=0
*        ș "OS_SpriteOp",&109,sprites%
4        ș "OS_SpriteOp",&10A,sprites%,pathname$
&       �
0�|
:�|
D�|
N�|
X�|
b1�|                  -------------------------
l(�|                          5.�Menus
v1�|                  -------------------------
��|
��|
�5�|                -------------------------------
��|
�(�|                      Procedures :
��|
�-�|               FNWimp_MenuCreate(menu$)
�2�|               FNWimp_MenuBuild(menu%,menu$)
�.�|               FNWimp_MenuChoice(level%)
�1�|               PROCWimp_MenuPopUpBar(x%,y%)
�4�|               PROCWimp_MenuPopUp(Menu%,x%,y%)
�6�|               FNInternal_MenuNoOfEntries(menu$)
�'�|               PROCWimp_MenuClose
;�|               PROCWimp_MenuGlue(menu1%,item%,menu2%)
6�|               PROCWimp_MenuMessage(menu%,item%)
3�|               PROCWimp_MenuTick(menu%,item%)
 9�|               PROCWimp_MenuDottedLine(menu%,item%)
*G�|               PROCWimp_MenuForeGroundColour(menu%,item%,colour%)
4G�|               PROCWimp_MenuBackGroundColour(menu%,item%,colour%)
>5�|               PROCWimp_MenuCentre(menu%,item%)
H6�|               PROCWimp_MenuDisable(menu%,item%)
R5�|               PROCWimp_MenuEnable(menu%,item%)
\O�|               PROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
f5�|               PROCWimp_MenuTitle(menu%,title$)
p9�|               PROCWimp_MenuItem(menu%,item%,item$)
z-�|               FNWimp_CreateColoursMenu
�5�|               FNWimp_CreateColoursMenu(title$)
��|
�5�|                -------------------------------
��|
��|
��|
��|
�,               � �Wimp_MenuCreate(menu$)
�                � menu%
�B                � menu% 28+�Internal_MenuNoOfEntries(menu$)*24
�.             =�Wimp_MenuBuild(menu%,menu$)
��|
�<                      � �Internal_MenuNoOfEntries(menu$)
1                       � n% ,j% : n%=0 : j%=0
                       �
/                        j%=�menu$,"\",j%+1)
$+                        � j%<>0 � n%+=1
.!                       � j%=0
8                     =n%
B�|
L1               � �Wimp_MenuBuild(menu%,menu$)
V-                � ypos%,width%,length%,k%
`G                menu%?12=7   : menu%?13=2  : menu%?14=7 :menu%?15=0
j;                menu%!16=140 : menu%!20=44 : menu%!24=0
t!                ptr%=menu%+28
~0                $menu%=�menu$,�menu$,"\")-1)
�3                width%=�(�menu$,�menu$,"\")-1))
�4                menu$+="\" : Menu_NoOfEntries%=0
�                 ȕ menu$<>""
�0                 menu$=�menu$,�menu$,"\")+1)
�"                 � menu$<>"" �
�;                  !ptr%=0 : ptr%!4=-1 : ptr%!8=&7000021
�+                  length%=�menu$,"\")-1
�.                  k%=��menu$,length%),">")
�                  � k%<>0 �
�4                   s%=�(�menu$,k%+1,length%-k%))
�                    ptr%!4=s%
�#                   length%=k%-1
                  �

0                  $(ptr%+12)=�menu$,length%)
7                  � length%>width% � width%=length%
                  ptr%+=24
(*                  Menu_NoOfEntries%+=1
2                 �
<                �
F*                menu%!16=16*(width%+1)
P<                ptr%!-24=ptr%!-24 � &80 : �|...Last item
Z               =menu%
d�|
n"             � �Wimp_MenuClose
x)              ș "Wimp_CreateMenu",-1
�             �
��|
�A             � �Wimp_MenuChoice(level%)=(block%!(4*level%))+1
��|
�,             � �Wimp_MenuPopUpBar(x%,y%)
�              � n% : n%=0
�9              ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0
�               n%+=1
�              �
�@              ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
�!              menu%=Bar_Menu%
�             �
�
�|
/             � �Wimp_MenuPopUp(Menu%,x%,y%)
              menu%=Menu%
"9              ș "Wimp_CreateMenu",,menu%,x%-64,y%+20
,             �
6�|
@6             � �Wimp_MenuGlue(menu1%,item%,menu2%)
J,              menu1%!(8+item%*24)=menu2%
T             �
^1             � �Wimp_MenuMessage(menu%,item%)
hJ              menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�(1<<3)
r             �
|�|
�.             � �Wimp_MenuTick(menu%,item%)
�E              menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�1
�             �
��|
�4             � �Wimp_MenuDottedLine(menu%,item%)
�E              menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�2
�             �
��|
�>         � �Wimp_MenuForeGroundColour(menu%,item%,colour%)
�O          menu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))�16)
�         �
��|
�>         � �Wimp_MenuBackGroundColour(menu%,item%,colour%)
           � fore%,i%
1           fore%=(menu%?(39+(item%-1)*24))�16
3           i%=((menu%?(39+(item%-1)*24))�16)�16
&:           menu%?(39+(item%-1)*24)=fore%+16*colour%+i%
0         �
:�|
D0             � �Wimp_MenuCentre(menu%,item%)
NH              menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<3)
X             �
b�|
l0            � �Wimp_MenuDisable(menu%,item%)
vH             menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22)
�            �
��|
�/            � �Wimp_MenuEnable(menu%,item%)
�/             �Wimp_MenuDisable(menu%,item%)
�H             menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22)
�            �
��|
�I            � �Wimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
�D             menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�4
�E             menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�&100
�0             menu%!(40+(item%-1)*24)=buffer%
�-             menu%!(44+(item%-1)*24)=val%
�6             menu%!(48+(item%-1)*24)=BufferLength%
            �
�|
/            � �Wimp_MenuTitle(menu%,title$)
 &             $menu%=�title$,12)+�0
*            �
4�|
>3            � �Wimp_MenuItem(menu%,item%,item$)
H9             $(menu%+(40+(item%-1)*24))=�item$,12)+�0
R            �
\�|
fJ            � �Wimp_CreateColoursMenu =�Wimp_CreateColoursMenu("    ")
p�|
z1            � �Wimp_CreateColoursMenu(title$)
�             � x$,men%,j%
�C             x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
�*             men%=�Wimp_MenuCreate(x$)
�             � i%=0 � 15
�              Ȏ � �
�7               � i%<4,i%=9,i%=12,i%=14,i%=15 : j%=7
�2                                       : j%=0
�              �
�*              men%?(39+i%*24)=i%*16+j%
�-              �Wimp_MenuCentre(men%,i%+1)
�             �
�            =men%
��|
�|
�|
�|
$1�|                  -------------------------
.(�|                          6.�Files
81�|                  -------------------------
B�|
L�|
V5�|                -------------------------------
`�|
j(�|                      Procedures :
t�|
~,�|               FNUtils_FileType(type%)
�+�|               FNWimp_GetFilePathName
�0�|               FNUtils_FileLoad(pathname$)
�5�|               FNUtils_GetStringAtAddress(ptr%)
�4�|               FNUtils_GetFileFromPathname(f$)
��|
��|
�5�|                -------------------------------
��|
��|
��|
��|
�%         � �Utils_FileType(type%)
          Ȏ type% �

           � &FFF :="Text"
           � &FFD :="Data"
           � &FFB :="Basic"
(            � &FF9 :="Sprite"
2!           � &FED :="Palette"
<"           � &FEC :="Template"
F           � &AFF :="Draw"
P            � &1000:="Folder"
Z%           � &2000:="Application"
d           =�~(type%)
n          �
x�|
�J         � �Wimp_GetFilePathName =�Utils_GetStringAtAddress(block%+44)
��
�)         � �Utils_FileLoad(pathname$)
�         � S%,T%,file%
�         S%=� pathname$
�         T%=�#S%+16
�         �#S%
�         � file% T%
�-         �("LOAD "+pathname$+" "+�~file%)
�        =file%
��|
�.         � �Utils_GetStringAtAddress(ptr%)
�         � s$ : s$=""
B         ȕ (?ptr%<>13)�(?ptr%<>0) : s$+=�(?ptr%): ptr%+=1 :�:
        =s$
�|
"-         � �Utils_GetFileFromPathname(f$)
,         � �f$,".")=0 �
6          =f$
@         �
J@          =�Utils_GetStringFromPathname(�f$,�(f$)-�f$,".")))
T         �
^�|
h�|
r�|
|�|
��|
��|
��|
��|
��|
��|
�1�|                  -------------------------
�*�|                          7.�Sprites
�1�|                  -------------------------
��|
��|
�5�|                -------------------------------
��|
 (�|                      Procedures :
 �|
 �|
 &�|
 0�|
 :�|
 D�|
 N�|
 X�|
 b5�|                -------------------------------
 l�|
 v�|
 ��|
 ��|
 ��|
 ��|
 ��|
 �1�|                  -------------------------
 �'�|                         8.�Saves
 �1�|                  -------------------------
 ��|
 ��|
 �5�|                -------------------------------
 ��|
 �(�|                      Procedures :
!�|
!/�|                   PROCInternal_SaveEvent
!.�|                   PROCInternal_SaveFile
! 2�|                   PROCWimp_DragBox(window%)
!*1�|                   PROCInternal_SaveMessage
!4-�|                   FNInternal_SaveEvent
!>�|
!H�|
!R5�|                -------------------------------
!\�|
!f�|
!p�|
!z�|
!�       � �Save_Event
!�        Ȏ block%!0 �
!�0         � Save_Window% : �Internal_SaveFile
!�                  :
!�          Ȏ block%!16 �
!�           � 0 :
!�>            � block%!8 � &50 � �Wimp_DragBox(Save_Window%)
!�           � 2 :
!�3            � block%!8 � 5 � �Internal_SaveFile
!�          �
!�
        �
!�       �
!��|
"      � �Internal_SaveFile
"       � x$
"+       x$=�Icon_GetText(Save_Window%,1)
"$       Ȏ �x$,".") �
".        � 0    :
"8L         �AlertBox(Task$,"To save, drag the icon to a directory window")
"B         :
"L          �Event_SaveFile(x$)
"V       �
"`"       ș "Wimp_CreateMenu",-1
"j       �
"t�|
"~!     � �Wimp_DragBox(window%)
"�     � x%,y%
"�     !block%=window%
"�)     ș "Wimp_GetWindowState",,block%
"�8     x%=block%!4-block%!20  : y%=block%!16-block%!24
"�     block%!4=0
"�'     ș "Wimp_GetIconState",,block%
"�     !block%=window%
"�      block%!4=5
"�:      block%!8=x%+block%!8    : block%!12=y%+block%!12
"�:      block%!16=x%+block%!16  : block%!20=y%+block%!20
"�!      block%!24=0:block%!28=0
"�4      block%!32=&7FFFFFFF  : block%!36=&7FFFFFFF
##      ș "Wimp_DragBox",,block%
#

     �
#�|
#    � �Internal_SaveMessage
#(#    � file$,window%,icon%,x%,y%
#2(    ș "Wimp_GetPointerInfo",,block%
#<I    window%=block%!12 : icon%=block%!16  : x%=block%!0  : y%=block%!4
#F5    file$=�GetLeaf(�Icon_GetText(Save_Window%,1))
#P    block%!20=window%
#Z    block%!24=icon%
#d#    block%!28=x% : block%!32=y%
#n    block%!36=length%
#x    block%!0=64
#�    block%!12=0
#�    block%!16=1
#�    block%!40=&FFF
#�    $(block%+44)=file$
#�;    ș "Wimp_SendMessage",17,block%,block%!20,block%!24
#�	    �
#��|
#�        � �Internal_SaveEvent
#�<     =(block%!0=Save_Window%) � (block%!12=Save_Window%)
#��|
#��|
#��|
#��|
$1�|                  -------------------------
$,�|                      9.�Miscellaneous
$1�|                  -------------------------
$"�|
$,�|
$65�|                -------------------------------
$@�|
$J(�|                      Procedures :
$T�|
$^@�|                 PROCWimp_AlertBox(title$,message$,button%
$h8�|                 FNWimp_CancelBox(title$,message$)
$r9�|                 PROCWimp_ErrorBox(title$,message$)
$|6�|                 PROCWimp_Alert(title$,message$)
$�6�|                 FNUtils_ReadVariable(variable$)
$��|
$�5�|                -------------------------------
$��|
$��|
$��|
$�6         � �Wimp_AlertBox(title$,message$,button%)
$�         � response%
$�!         $(block%+4)=message$
$�         Ȏ button% �
$�7          � 2    : response%=1     : �|...Error Box
$�B          � 1    : response%=15    : �|...OK and CANCEL butons
$�*          � 3    : response%=(1<<5)+16
%*          � 4    : response%=(1<<6)+16
%7           : response%=16    : �|...OK button only
%
        �
%&F        ș "Wimp_ReportError",block%,response%,title$ � ,response%
%0
        �
%:�|
%D.        � �Wimp_CancelBox(title$,message$)
%N         $(block%+4)=message$
%X        response%=23
%bF        ș "Wimp_ReportError",block%,response%,title$ � ,response%
%l       =response%-2
%v�|
%�-        � �Wimp_ErrorBox(title$,message$)
%�-        �Wimp_AlertBox(title$,message$,2)
%�
        �
%��|
%�*        � �Wimp_Alert(title$,message$)
%�-        �Wimp_AlertBox(title$,message$,0)
%�
        �
%��|
%�,        � �Utils_ReadVariable(Variable$)
%�%         � len%,result%,variable%
%�+�         DIM result% 255,variable% 100
%�         $block%=Variable$
%�A         ș "OS_ReadVarVal",block%,block%+255,255,,3 � ,,len%
&!         block%?(len%+255)=13
&        =$(block%+255)
&:
& +� �Icon_PutCaret(window%,icon%,length%)
&*9ș "Wimp_SetCaretPosition",window%,icon%,,,-1,length%
&4�
&>:
�
00000000  0d 00 0a 36 20 20 20 20  20 20 20 20 20 62 6c 6f  |...6         blo|
00000010  63 6b 5f 6d 65 6d 6f 72  79 25 3d 34 2a 26 31 30  |ck_memory%=4*&10|
00000020  30 30 20 3a 20 69 63 6f  6e 5f 6d 65 6d 6f 72 79  |00 : icon_memory|
00000030  25 3d 31 30 30 30 0d 00  14 04 0d 00 1e 36 20 20  |%=1000.......6  |
00000040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000050  20 20 20 54 61 73 6b 24  3d a4 57 69 6d 70 5f 53  |   Task$=.Wimp_S|
00000060  74 61 72 74 28 22 47 6c  6f 73 73 61 72 79 22 29  |tart("Glossary")|
00000070  0d 00 28 2e 20 20 20 20  20 20 20 20 20 20 20 20  |..(.            |
00000080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00000090  43 72 65 61 74 65 5f 57  69 6e 64 6f 77 73 0d 00  |Create_Windows..|
000000a0  32 2c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |2,              |
000000b0  20 20 20 20 20 20 20 20  20 20 20 20 20 f2 43 72  |             .Cr|
000000c0  65 61 74 65 5f 49 63 6f  6e 73 0d 00 3c 2c 20 20  |eate_Icons..<,  |
000000d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000e0  20 20 20 20 20 20 20 20  20 f2 43 72 65 61 74 65  |         .Create|
000000f0  5f 4d 65 6e 75 73 0d 00  46 33 20 20 20 20 20 20  |_Menus..F3      |
00000100  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000110  20 20 20 20 20 f2 55 73  65 72 5f 53 65 74 49 6e  |     .User_SetIn|
00000120  69 74 69 61 6c 44 61 74  61 0d 00 50 31 20 20 20  |itialData..P1   |
00000130  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000140  20 20 20 20 20 20 20 20  f2 57 69 6d 70 5f 57 61  |        .Wimp_Wa|
00000150  69 74 46 6f 72 45 76 65  6e 74 0d 00 5a 2e 20 20  |itForEvent..Z.  |
00000160  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000170  20 20 20 20 20 20 20 20  20 f2 57 69 6d 70 5f 43  |         .Wimp_C|
00000180  6c 6f 73 65 44 6f 77 6e  0d 00 64 20 20 20 20 20  |loseDown..d     |
00000190  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000001a0  20 20 20 20 20 20 20 e0  0d 00 6e 0c 20 20 20 20  |       ...n.    |
000001b0  20 20 20 3a 0d 00 78 21  20 20 20 20 20 20 20 dd  |   :..x!       .|
000001c0  20 f2 55 73 65 72 5f 53  65 74 49 6e 69 74 69 61  | .User_SetInitia|
000001d0  6c 44 61 74 61 0d 00 82  14 20 20 20 20 20 20 20  |lData....       |
000001e0  f2 52 65 61 64 44 61 74  61 0d 00 8c 16 20 20 20  |.ReadData....   |
000001f0  20 20 20 20 20 20 20 65  6e 74 72 79 25 3d 31 0d  |       entry%=1.|
00000200  00 96 2c 20 20 20 20 20  20 20 20 20 20 f2 57 72  |..,          .Wr|
00000210  69 74 65 54 6f 47 6c 6f  73 73 61 72 79 57 69 6e  |iteToGlossaryWin|
00000220  64 6f 77 28 65 6e 74 72  79 25 29 0d 00 a0 0c 20  |dow(entry%).... |
00000230  20 20 20 20 20 20 e1 0d  00 aa 0c 20 20 20 20 20  |      .....     |
00000240  20 20 3a 0d 00 b4 17 20  20 20 20 20 20 20 20 dd  |  :....        .|
00000250  20 f2 52 65 61 64 44 61  74 61 0d 00 be 32 20 20  | .ReadData...2  |
00000260  20 20 20 20 20 20 20 70  61 74 68 24 3d a4 55 74  |       path$=.Ut|
00000270  69 6c 73 5f 52 65 61 64  56 61 72 69 61 62 6c 65  |ils_ReadVariable|
00000280  28 22 4f 62 65 79 24 44  69 72 22 29 0d 00 c8 35  |("Obey$Dir")...5|
00000290  20 20 20 20 20 20 20 20  20 dc 20 57 69 6e 64 6f  |         . Windo|
000002a0  77 73 2c 49 63 6f 6e 73  2c 4d 65 6e 75 73 2c 53  |ws,Icons,Menus,S|
000002b0  70 72 69 74 65 73 2c 46  69 6c 65 73 2c 4d 69 73  |prites,Files,Mis|
000002c0  63 0d 00 d2 28 20 20 20  20 20 20 20 20 20 20 de  |c...(          .|
000002d0  20 65 6e 74 72 79 24 28  31 30 30 29 2c 6c 69 6e  | entry$(100),lin|
000002e0  65 24 28 31 30 30 2c 35  29 0d 00 dc 34 20 20 20  |e$(100,5)...4   |
000002f0  20 20 20 20 20 20 20 de  20 6b 65 79 25 28 36 29  |       . key%(6)|
00000300  20 3a 20 6b 65 79 25 28  30 29 3d 30 20 3a 20 4e  | : key%(0)=0 : N|
00000310  6f 4f 66 45 6e 74 72 69  65 73 25 3d 30 0d 00 e6  |oOfEntries%=0...|
00000320  18 20 20 20 20 20 20 20  20 20 20 e3 20 69 25 3d  |.          . i%=|
00000330  31 20 b8 20 36 0d 00 f0  29 20 20 20 20 20 20 20  |1 . 6...)       |
00000340  20 20 20 f3 20 79 24 20  3a 20 79 24 3d 70 61 74  |   . y$ : y$=pat|
00000350  68 24 2b 22 2e 57 69 6d  70 2e 22 2b 79 24 0d 00  |h$+".Wimp."+y$..|
00000360  fa 19 20 20 20 20 20 20  20 20 20 20 66 69 6c 65  |..          file|
00000370  25 3d 8e 28 79 24 29 0d  01 04 0f 20 20 20 20 20  |%=.(y$)....     |
00000380  20 20 20 20 20 f5 0d 01  0e 19 20 20 20 20 20 20  |     .....      |
00000390  20 20 20 20 20 78 24 3d  be 23 66 69 6c 65 25 0d  |     x$=.#file%.|
000003a0  01 18 1a 20 20 20 20 20  20 20 20 20 20 20 c8 8e  |...           ..|
000003b0  20 c0 78 24 2c 33 29 20  ca 0d 01 22 17 20 20 20  | .x$,3) ...".   |
000003c0  20 20 20 20 20 20 20 20  20 c9 20 22 44 45 46 22  |         . "DEF"|
000003d0  0d 01 2c 20 20 20 20 20  20 20 20 20 20 20 20 20  |..,             |
000003e0  20 4e 6f 4f 66 45 6e 74  72 69 65 73 25 2b 3d 31  | NoOfEntries%+=1|
000003f0  0d 01 36 30 20 20 20 20  20 20 20 20 20 20 20 20  |..60            |
00000400  20 65 6e 74 72 79 24 28  4e 6f 4f 66 45 6e 74 72  | entry$(NoOfEntr|
00000410  69 65 73 25 29 3d c2 78  24 2c a9 78 24 2d 33 29  |ies%)=.x$,.x$-3)|
00000420  0d 01 40 1b 20 20 20 20  20 20 20 20 20 20 20 20  |..@.            |
00000430  20 e3 20 6a 25 3d 31 20  b8 20 35 0d 01 4a 1c 20  | . j%=1 . 5..J. |
00000440  20 20 20 20 20 20 20 20  20 20 20 20 20 78 24 3d  |             x$=|
00000450  be 23 66 69 6c 65 25 0d  01 54 33 20 20 20 20 20  |.#file%..T3     |
00000460  20 20 20 20 20 20 20 20  20 6c 69 6e 65 24 28 4e  |         line$(N|
00000470  6f 4f 66 45 6e 74 72 69  65 73 25 2c 6a 25 29 3d  |oOfEntries%,j%)=|
00000480  c2 78 24 2c a9 78 24 2d  34 29 0d 01 5e 12 20 20  |.x$,.x$-4)..^.  |
00000490  20 20 20 20 20 20 20 20  20 20 20 ed 0d 01 68 10  |           ...h.|
000004a0  20 20 20 20 20 20 20 20  20 20 20 cb 0d 01 72 17  |           ...r.|
000004b0  20 20 20 20 20 20 20 20  20 20 fd 20 c5 23 66 69  |          . .#fi|
000004c0  6c 65 25 0d 01 7c 15 20  20 20 20 20 20 20 20 20  |le%..|.         |
000004d0  20 d9 23 66 69 6c 65 25  0d 01 86 23 20 20 20 20  | .#file%...#    |
000004e0  20 20 20 20 20 20 6b 65  79 25 28 69 25 29 3d 4e  |      key%(i%)=N|
000004f0  6f 4f 66 45 6e 74 72 69  65 73 25 0d 01 90 0f 20  |oOfEntries%.... |
00000500  20 20 20 20 20 20 20 20  20 ed 0d 01 9a 0d 20 20  |         .....  |
00000510  20 20 20 20 20 20 e1 0d  01 a4 0c 20 20 20 20 20  |      .....     |
00000520  20 20 3a 0d 01 ae 1c 20  20 20 20 20 20 20 dd 20  |  :....       . |
00000530  f2 43 72 65 61 74 65 5f  57 69 6e 64 6f 77 73 0d  |.Create_Windows.|
00000540  01 b8 3b 20 20 20 20 20  20 20 20 20 20 20 20 20  |..;             |
00000550  20 20 20 20 20 49 6e 66  6f 5f 57 69 6e 64 6f 77  |     Info_Window|
00000560  25 3d a4 57 69 6d 70 5f  57 69 6e 64 6f 77 4c 6f  |%=.Wimp_WindowLo|
00000570  61 64 28 22 49 6e 66 6f  22 29 0d 01 c2 3b 20 20  |ad("Info")...;  |
00000580  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000590  53 61 76 65 5f 57 69 6e  64 6f 77 25 3d a4 57 69  |Save_Window%=.Wi|
000005a0  6d 70 5f 57 69 6e 64 6f  77 4c 6f 61 64 28 22 53  |mp_WindowLoad("S|
000005b0  61 76 65 22 29 0d 01 cc  3f 20 20 20 20 20 20 20  |ave")...?       |
000005c0  20 20 20 20 20 20 20 47  6c 6f 73 73 61 72 79 5f  |       Glossary_|
000005d0  57 69 6e 64 6f 77 25 3d  a4 57 69 6d 70 5f 57 69  |Window%=.Wimp_Wi|
000005e0  6e 64 6f 77 4c 6f 61 64  28 22 47 6c 6f 73 73 61  |ndowLoad("Glossa|
000005f0  72 79 22 29 0d 01 d6 34  20 20 20 20 20 20 20 20  |ry")...4        |
00000600  f2 57 69 6d 70 5f 57 69  6e 64 6f 77 42 72 69 6e  |.Wimp_WindowBrin|
00000610  67 54 6f 54 6f 70 28 47  6c 6f 73 73 61 72 79 5f  |gToTop(Glossary_|
00000620  57 69 6e 64 6f 77 25 29  0d 01 e0 0c 20 20 20 20  |Window%)....    |
00000630  20 20 20 e1 0d 01 ea 0c  20 20 20 20 20 20 20 3a  |   .....       :|
00000640  0d 01 f4 1a 20 20 20 20  20 20 20 dd 20 f2 43 72  |....       . .Cr|
00000650  65 61 74 65 5f 49 63 6f  6e 73 0d 01 fe 35 20 20  |eate_Icons...5  |
00000660  20 20 20 20 20 42 61 72  5f 49 63 6f 6e 25 3d a4  |     Bar_Icon%=.|
00000670  57 69 6d 70 5f 50 75 74  49 63 6f 6e 4f 6e 42 61  |Wimp_PutIconOnBa|
00000680  72 28 22 21 57 69 6d 70  47 6c 6f 73 73 22 29 0d  |r("!WimpGloss").|
00000690  02 08 0c 20 20 20 20 20  20 20 e1 0d 02 12 0c 20  |...       ..... |
000006a0  20 20 20 20 20 20 3a 0d  02 1c 1a 20 20 20 20 20  |      :....     |
000006b0  20 20 dd 20 f2 43 72 65  61 74 65 5f 4d 65 6e 75  |  . .Create_Menu|
000006c0  73 0d 02 26 4b 20 20 20  20 20 20 20 20 20 42 61  |s..&K         Ba|
000006d0  72 5f 4d 65 6e 75 25 3d  a4 57 69 6d 70 5f 4d 65  |r_Menu%=.Wimp_Me|
000006e0  6e 75 43 72 65 61 74 65  28 22 57 69 6d 70 47 6c  |nuCreate("WimpGl|
000006f0  6f 73 73 5c 49 6e 66 6f  3e 49 6e 66 6f 5f 57 69  |oss\Info>Info_Wi|
00000700  6e 64 6f 77 25 5c 51 75  69 74 22 29 0d 02 30 44  |ndow%\Quit")..0D|
00000710  20 20 20 20 20 20 20 20  20 6d 65 6e 75 24 3d 22  |         menu$="|
00000720  47 6c 6f 73 73 61 72 79  5c 57 69 6e 64 6f 77 73  |Glossary\Windows|
00000730  5c 49 63 6f 6e 73 5c 4d  65 6e 75 73 5c 53 70 72  |\Icons\Menus\Spr|
00000740  69 74 65 73 5c 46 69 6c  65 73 5c 4d 69 73 63 22  |ites\Files\Misc"|
00000750  0d 02 3a 33 20 20 20 20  20 20 20 20 20 47 6c 6f  |..:3         Glo|
00000760  73 73 61 72 79 5f 4d 65  6e 75 25 3d a4 57 69 6d  |ssary_Menu%=.Wim|
00000770  70 5f 4d 65 6e 75 43 72  65 61 74 65 28 6d 65 6e  |p_MenuCreate(men|
00000780  75 24 29 0d 02 44 0c 20  20 20 20 20 20 20 e1 0d  |u$)..D.       ..|
00000790  02 4e 0c 20 20 20 20 20  20 20 3a 0d 02 58 27 20  |.N.       :..X' |
000007a0  20 20 20 20 20 20 dd 20  f2 45 76 65 6e 74 5f 44  |      . .Event_D|
000007b0  72 61 77 57 69 6e 64 6f  77 28 77 69 6e 64 6f 77  |rawWindow(window|
000007c0  25 29 0d 02 62 0c 20 20  20 20 20 20 20 e1 0d 02  |%)..b.       ...|
000007d0  6c 0c 20 20 20 20 20 20  20 3a 0d 02 76 2c 20 20  |l.       :..v,  |
000007e0  20 20 20 20 20 dd 20 f2  45 76 65 6e 74 5f 4d 65  |     . .Event_Me|
000007f0  6e 75 50 6f 70 55 70 28  77 69 6e 64 6f 77 25 2c  |nuPopUp(window%,|
00000800  78 25 2c 79 25 29 0d 02  80 17 20 20 20 20 20 20  |x%,y%)....      |
00000810  20 c8 8e 20 77 69 6e 64  6f 77 25 20 ca 0d 02 8a  | .. window% ....|
00000820  3c 20 20 20 20 20 20 20  20 c9 20 42 61 72 5f 57  |<        . Bar_W|
00000830  69 6e 64 6f 77 25 20 20  20 20 20 20 20 20 3a 20  |indow%        : |
00000840  f2 57 69 6d 70 5f 4d 65  6e 75 50 6f 70 55 70 42  |.Wimp_MenuPopUpB|
00000850  61 72 28 78 25 2c 79 25  29 0d 02 94 48 20 20 20  |ar(x%,y%)...H   |
00000860  20 20 20 20 20 c9 20 47  6c 6f 73 73 61 72 79 5f  |     . Glossary_|
00000870  57 69 6e 64 6f 77 25 20  20 20 3a 20 f2 57 69 6d  |Window%   : .Wim|
00000880  70 5f 4d 65 6e 75 50 6f  70 55 70 28 47 6c 6f 73  |p_MenuPopUp(Glos|
00000890  73 61 72 79 5f 4d 65 6e  75 25 2c 78 25 2c 79 25  |sary_Menu%,x%,y%|
000008a0  29 0d 02 9e 0c 20 20 20  20 20 20 20 cb 0d 02 a8  |)....       ....|
000008b0  0c 20 20 20 20 20 20 20  e1 0d 02 b2 0c 20 20 20  |.       .....   |
000008c0  20 20 20 20 3a 0d 02 bc  3b 20 20 20 20 20 20 20  |    :...;       |
000008d0  dd 20 f2 45 76 65 6e 74  5f 4d 6f 75 73 65 43 6c  |. .Event_MouseCl|
000008e0  69 63 6b 28 62 75 74 74  6f 6e 25 2c 77 69 6e 64  |ick(button%,wind|
000008f0  6f 77 25 2c 69 63 6f 6e  25 2c 78 25 2c 79 25 29  |ow%,icon%,x%,y%)|
00000900  0d 02 c6 17 20 20 20 20  20 20 20 c8 8e 20 77 69  |....       .. wi|
00000910  6e 64 6f 77 25 20 ca 0d  02 d0 31 20 20 20 20 20  |ndow% ....1     |
00000920  20 20 20 c9 20 42 61 72  5f 57 69 6e 64 6f 77 25  |   . Bar_Window%|
00000930  20 20 20 20 20 20 20 20  3a 20 f2 55 73 65 72 5f  |        : .User_|
00000940  4d 6f 75 73 65 42 61 72  0d 02 da 45 20 20 20 20  |MouseBar...E    |
00000950  20 20 20 20 c9 20 47 6c  6f 73 73 61 72 79 5f 57  |    . Glossary_W|
00000960  69 6e 64 6f 77 25 20 20  20 3a 20 f2 55 73 65 72  |indow%   : .User|
00000970  5f 4d 6f 75 73 65 47 6c  6f 73 73 61 72 79 28 62  |_MouseGlossary(b|
00000980  75 74 74 6f 6e 25 2c 69  63 6f 6e 25 29 0d 02 e4  |utton%,icon%)...|
00000990  0c 20 20 20 20 20 20 20  cb 0d 02 ee 0c 20 20 20  |.       .....   |
000009a0  20 20 20 20 e1 0d 02 f8  0e 20 20 20 20 20 20 20  |    .....       |
000009b0  20 20 3a 0d 03 02 1d 20  20 20 20 20 20 20 20 20  |  :....         |
000009c0  dd 20 f2 55 73 65 72 5f  4d 6f 75 73 65 42 61 72  |. .User_MouseBar|
000009d0  0d 03 0c 36 20 20 20 20  20 20 20 20 20 20 f2 57  |...6          .W|
000009e0  69 6d 70 5f 57 69 6e 64  6f 77 42 72 69 6e 67 54  |imp_WindowBringT|
000009f0  6f 54 6f 70 28 47 6c 6f  73 73 61 72 79 5f 57 69  |oTop(Glossary_Wi|
00000a00  6e 64 6f 77 25 29 0d 03  16 0e 20 20 20 20 20 20  |ndow%)....      |
00000a10  20 20 20 e1 0d 03 20 0e  20 20 20 20 20 20 20 20  |   ... .        |
00000a20  20 3a 0d 03 2a 31 20 20  20 20 20 20 20 20 20 dd  | :..*1         .|
00000a30  20 f2 55 73 65 72 5f 4d  6f 75 73 65 47 6c 6f 73  | .User_MouseGlos|
00000a40  73 61 72 79 28 62 75 74  74 6f 6e 25 2c 69 63 6f  |sary(button%,ico|
00000a50  6e 25 29 0d 03 34 18 20  20 20 20 20 20 20 20 20  |n%)..4.         |
00000a60  20 c8 8e 20 69 63 6f 6e  25 20 ca 0d 03 3e 22 20  | .. icon% ...>" |
00000a70  20 20 20 20 20 20 20 20  20 20 c9 20 31 30 20 3a  |          . 10 :|
00000a80  20 e7 20 65 6e 74 72 79  25 3d 31 20 8c 0d 03 48  | . entry%=1 ...H|
00000a90  3b 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |;               |
00000aa0  20 20 20 20 20 20 20 f2  57 69 6d 70 5f 41 6c 65  |       .Wimp_Ale|
00000ab0  72 74 28 54 61 73 6b 24  2c 22 46 69 72 73 74 20  |rt(Task$,"First |
00000ac0  65 6e 74 72 79 21 22 29  0d 03 52 1a 20 20 20 20  |entry!")..R.    |
00000ad0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ae0  20 cc 0d 03 5c 23 20 20  20 20 20 20 20 20 20 20  | ...\#          |
00000af0  20 20 20 20 20 20 20 20  20 20 20 20 65 6e 74 72  |            entr|
00000b00  79 25 2d 3d 31 0d 03 66  1a 20 20 20 20 20 20 20  |y%-=1..f.       |
00000b10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 cd 0d  |              ..|
00000b20  03 70 2c 20 20 20 20 20  20 20 20 20 20 20 c9 20  |.p,           . |
00000b30  38 20 3a 20 e7 20 65 6e  74 72 79 25 3d 4e 6f 4f  |8 : . entry%=NoO|
00000b40  66 45 6e 74 72 69 65 73  25 20 8c 0d 03 7a 3f 20  |fEntries% ...z? |
00000b50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000b60  20 20 20 20 20 f2 57 69  6d 70 5f 41 6c 65 72 74  |     .Wimp_Alert|
00000b70  28 54 61 73 6b 24 2c 22  4e 6f 20 6d 6f 72 65 20  |(Task$,"No more |
00000b80  65 6e 74 72 69 65 73 21  22 29 0d 03 84 1a 20 20  |entries!")....  |
00000b90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ba0  20 20 20 cc 0d 03 8e 23  20 20 20 20 20 20 20 20  |   ....#        |
00000bb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 65 6e  |              en|
00000bc0  74 72 79 25 2b 3d 31 0d  03 98 1a 20 20 20 20 20  |try%+=1....     |
00000bd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000be0  cd 0d 03 a2 0f 20 20 20  20 20 20 20 20 20 20 cb  |.....          .|
00000bf0  0d 03 ac 2c 20 20 20 20  20 20 20 20 20 20 f2 57  |...,          .W|
00000c00  72 69 74 65 54 6f 47 6c  6f 73 73 61 72 79 57 69  |riteToGlossaryWi|
00000c10  6e 64 6f 77 28 65 6e 74  72 79 25 29 0d 03 b6 0e  |ndow(entry%)....|
00000c20  20 20 20 20 20 20 20 20  20 e1 0d 03 c0 0c 20 20  |         .....  |
00000c30  20 20 20 20 20 3a 0d 03  ca 25 20 20 20 20 20 20  |     :...%      |
00000c40  20 dd 20 f2 45 76 65 6e  74 5f 4d 65 6e 75 43 68  | . .Event_MenuCh|
00000c50  6f 69 63 65 28 6d 65 6e  75 25 29 0d 03 d4 16 20  |oice(menu%).... |
00000c60  20 20 20 20 20 20 20 c8  8e 20 6d 65 6e 75 25 20  |       .. menu% |
00000c70  ca 0d 03 de 3c 20 20 20  20 20 20 20 20 20 20 20  |....<           |
00000c80  20 20 20 c9 20 42 61 72  5f 4d 65 6e 75 25 20 20  |   . Bar_Menu%  |
00000c90  20 20 20 20 20 20 20 20  3a 20 f2 55 73 65 72 5f  |        : .User_|
00000ca0  4d 65 6e 75 43 68 6f 69  63 65 42 61 72 0d 03 e8  |MenuChoiceBar...|
00000cb0  41 20 20 20 20 20 20 20  20 20 20 20 20 20 20 c9  |A              .|
00000cc0  20 47 6c 6f 73 73 61 72  79 5f 4d 65 6e 75 25 20  | Glossary_Menu% |
00000cd0  20 20 20 20 3a 20 f2 55  73 65 72 5f 4d 65 6e 75  |    : .User_Menu|
00000ce0  43 68 6f 69 63 65 47 6c  6f 73 73 61 72 79 0d 03  |ChoiceGlossary..|
00000cf0  f2 0d 20 20 20 20 20 20  20 20 cb 0d 03 fc 0c 20  |..        ..... |
00000d00  20 20 20 20 20 20 e1 0d  04 06 0c 20 20 20 20 20  |      .....     |
00000d10  20 20 3a 0d 04 10 20 20  20 20 20 20 20 20 dd 20  |  :...        . |
00000d20  f2 55 73 65 72 5f 4d 65  6e 75 43 68 6f 69 63 65  |.User_MenuChoice|
00000d30  42 61 72 0d 04 1a 24 20  20 20 20 20 20 20 20 c8  |Bar...$        .|
00000d40  8e 20 a4 57 69 6d 70 5f  4d 65 6e 75 43 68 6f 69  |. .Wimp_MenuChoi|
00000d50  63 65 28 30 29 20 ca 0d  04 24 12 20 20 20 20 20  |ce(0) ...$.     |
00000d60  20 20 20 20 c9 20 31 20  3a 0d 04 2e 1e 20 20 20  |    . 1 :....   |
00000d70  20 20 20 20 20 20 c9 20  32 20 3a 20 66 69 6e 69  |      . 2 : fini|
00000d80  73 68 65 64 25 3d b9 0d  04 38 0d 20 20 20 20 20  |shed%=...8.     |
00000d90  20 20 20 cb 0d 04 42 0c  20 20 20 20 20 20 20 e1  |   ...B.       .|
00000da0  0d 04 4c 0c 20 20 20 20  20 20 20 3a 0d 04 56 25  |..L.       :..V%|
00000db0  20 20 20 20 20 20 20 dd  20 f2 55 73 65 72 5f 4d  |       . .User_M|
00000dc0  65 6e 75 43 68 6f 69 63  65 47 6c 6f 73 73 61 72  |enuChoiceGlossar|
00000dd0  79 0d 04 60 30 20 20 20  20 20 20 20 20 65 6e 74  |y..`0        ent|
00000de0  72 79 25 3d 6b 65 79 25  28 a4 57 69 6d 70 5f 4d  |ry%=key%(.Wimp_M|
00000df0  65 6e 75 43 68 6f 69 63  65 28 30 29 2d 31 29 2b  |enuChoice(0)-1)+|
00000e00  31 0d 04 6a 2a 20 20 20  20 20 20 20 20 f2 57 72  |1..j*        .Wr|
00000e10  69 74 65 54 6f 47 6c 6f  73 73 61 72 79 57 69 6e  |iteToGlossaryWin|
00000e20  64 6f 77 28 65 6e 74 72  79 25 29 0d 04 74 0c 20  |dow(entry%)..t. |
00000e30  20 20 20 20 20 20 e1 0d  04 7e 05 3a 0d 04 88 27  |      ...~.:...'|
00000e40  20 20 20 20 20 20 20 dd  20 f2 57 72 69 74 65 54  |       . .WriteT|
00000e50  6f 47 6c 6f 73 73 61 72  79 57 69 6e 64 6f 77 28  |oGlossaryWindow(|
00000e60  69 25 29 0d 04 92 19 20  20 20 20 20 20 20 20 20  |i%)....         |
00000e70  ea 20 66 24 2c 61 72 67  24 2c 6b 25 0d 04 9c 1a  |. f$,arg$,k%....|
00000e80  20 20 20 20 20 20 20 20  20 66 24 3d 65 6e 74 72  |         f$=entr|
00000e90  79 24 28 69 25 29 0d 04  a6 18 20 20 20 20 20 20  |y$(i%)....      |
00000ea0  20 20 20 6b 25 3d a7 66  24 2c 22 28 22 29 0d 04  |   k%=.f$,"(")..|
00000eb0  b0 14 20 20 20 20 20 20  20 20 20 c8 8e 20 6b 25  |..         .. k%|
00000ec0  20 ca 0d 04 ba 2b 20 20  20 20 20 20 20 20 20 20  | ....+          |
00000ed0  c9 20 30 20 20 20 20 3a  20 61 72 67 24 3d 22 4e  |. 0    : arg$="N|
00000ee0  6f 20 61 72 67 75 6d 65  6e 74 73 2e 22 0d 04 c4  |o arguments."...|
00000ef0  24 20 20 20 20 20 20 20  20 20 20 7f 20 3a 20 61  |$          . : a|
00000f00  72 67 24 3d c2 66 24 2c  a9 66 24 2d 6b 25 2b 31  |rg$=.f$,.f$-k%+1|
00000f10  29 0d 04 ce 28 20 20 20  20 20 20 20 20 20 20 20  |)...(           |
00000f20  20 20 20 20 20 20 20 20  20 20 20 66 24 3d c0 66  |           f$=.f|
00000f30  24 2c 6b 25 29 2b 22 29  22 0d 04 d8 0e 20 20 20  |$,k%)+")"....   |
00000f40  20 20 20 20 20 20 cb 0d  04 e2 37 20 20 20 20 20  |      ....7     |
00000f50  20 20 20 20 f2 57 69 6d  70 5f 50 75 74 54 65 78  |    .Wimp_PutTex|
00000f60  74 49 6e 49 63 6f 6e 28  47 6c 6f 73 73 61 72 79  |tInIcon(Glossary|
00000f70  5f 57 69 6e 64 6f 77 25  2c 33 2c 66 24 29 0d 04  |_Window%,3,f$)..|
00000f80  ec 19 20 20 20 20 20 20  20 20 20 e7 20 a9 61 72  |..         . .ar|
00000f90  67 24 3e 34 38 20 8c 0d  04 f6 32 20 20 20 20 20  |g$>48 ....2     |
00000fa0  20 20 20 20 20 20 66 24  3d c0 61 72 67 24 2c 34  |      f$=.arg$,4|
00000fb0  36 29 20 3a 20 61 72 67  24 3d c2 61 72 67 24 2c  |6) : arg$=.arg$,|
00000fc0  a9 61 72 67 24 2d 34 36  29 0d 05 00 1c 20 20 20  |.arg$-46)....   |
00000fd0  20 20 20 20 20 20 20 20  6b 25 3d a7 61 72 67 24  |        k%=.arg$|
00000fe0  2c 22 2c 22 29 0d 05 0a  3d 20 20 20 20 20 20 20  |,",")...=       |
00000ff0  20 20 20 20 e7 20 6b 25  3c 3e 30 20 8c 20 66 24  |    . k%<>0 . f$|
00001000  2b 3d c0 61 72 67 24 2c  6b 25 29 20 3a 20 61 72  |+=.arg$,k%) : ar|
00001010  67 24 3d c2 61 72 67 24  2c a9 61 72 67 24 2d 6b  |g$=.arg$,.arg$-k|
00001020  25 29 0d 05 14 39 20 20  20 20 20 20 20 20 20 20  |%)...9          |
00001030  20 f2 57 69 6d 70 5f 50  75 74 54 65 78 74 49 6e  | .Wimp_PutTextIn|
00001040  49 63 6f 6e 28 47 6c 6f  73 73 61 72 79 5f 57 69  |Icon(Glossary_Wi|
00001050  6e 64 6f 77 25 2c 34 2c  66 24 29 0d 05 1e 3b 20  |ndow%,4,f$)...; |
00001060  20 20 20 20 20 20 20 20  20 20 f2 57 69 6d 70 5f  |          .Wimp_|
00001070  50 75 74 54 65 78 74 49  6e 49 63 6f 6e 28 47 6c  |PutTextInIcon(Gl|
00001080  6f 73 73 61 72 79 5f 57  69 6e 64 6f 77 25 2c 35  |ossary_Window%,5|
00001090  2c 61 72 67 24 29 0d 05  28 0e 20 20 20 20 20 20  |,arg$)..(.      |
000010a0  20 20 20 cc 0d 05 32 3a  20 20 20 20 20 20 20 20  |   ...2:        |
000010b0  20 20 f2 57 69 6d 70 5f  50 75 74 54 65 78 74 49  |  .Wimp_PutTextI|
000010c0  6e 49 63 6f 6e 28 47 6c  6f 73 73 61 72 79 5f 57  |nIcon(Glossary_W|
000010d0  69 6e 64 6f 77 25 2c 34  2c 61 72 67 24 29 0d 05  |indow%,4,arg$)..|
000010e0  3c 38 20 20 20 20 20 20  20 20 20 20 f2 57 69 6d  |<8          .Wim|
000010f0  70 5f 50 75 74 54 65 78  74 49 6e 49 63 6f 6e 28  |p_PutTextInIcon(|
00001100  47 6c 6f 73 73 61 72 79  5f 57 69 6e 64 6f 77 25  |Glossary_Window%|
00001110  2c 35 2c 22 22 29 0d 05  46 0e 20 20 20 20 20 20  |,5,"")..F.      |
00001120  20 20 20 cd 0d 05 50 44  20 20 20 20 20 20 20 20  |   ...PD        |
00001130  20 f2 57 69 6d 70 5f 50  75 74 54 65 78 74 49 6e  | .Wimp_PutTextIn|
00001140  49 63 6f 6e 28 47 6c 6f  73 73 61 72 79 5f 57 69  |Icon(Glossary_Wi|
00001150  6e 64 6f 77 25 2c 39 2c  6c 69 6e 65 24 28 65 6e  |ndow%,9,line$(en|
00001160  74 72 79 25 2c 31 29 29  0d 05 5a 45 20 20 20 20  |try%,1))..ZE    |
00001170  20 20 20 20 20 f2 57 69  6d 70 5f 50 75 74 54 65  |     .Wimp_PutTe|
00001180  78 74 49 6e 49 63 6f 6e  28 47 6c 6f 73 73 61 72  |xtInIcon(Glossar|
00001190  79 5f 57 69 6e 64 6f 77  25 2c 31 33 2c 6c 69 6e  |y_Window%,13,lin|
000011a0  65 24 28 65 6e 74 72 79  25 2c 32 29 29 0d 05 64  |e$(entry%,2))..d|
000011b0  44 20 20 20 20 20 20 20  20 20 f2 57 69 6d 70 5f  |D         .Wimp_|
000011c0  50 75 74 54 65 78 74 49  6e 49 63 6f 6e 28 47 6c  |PutTextInIcon(Gl|
000011d0  6f 73 73 61 72 79 5f 57  69 6e 64 6f 77 25 2c 37  |ossary_Window%,7|
000011e0  2c 6c 69 6e 65 24 28 65  6e 74 72 79 25 2c 33 29  |,line$(entry%,3)|
000011f0  29 0d 05 6e 44 20 20 20  20 20 20 20 20 20 f2 57  |)..nD         .W|
00001200  69 6d 70 5f 50 75 74 54  65 78 74 49 6e 49 63 6f  |imp_PutTextInIco|
00001210  6e 28 47 6c 6f 73 73 61  72 79 5f 57 69 6e 64 6f  |n(Glossary_Windo|
00001220  77 25 2c 36 2c 6c 69 6e  65 24 28 65 6e 74 72 79  |w%,6,line$(entry|
00001230  25 2c 34 29 29 0d 05 78  44 20 20 20 20 20 20 20  |%,4))..xD       |
00001240  20 20 f2 57 69 6d 70 5f  50 75 74 54 65 78 74 49  |  .Wimp_PutTextI|
00001250  6e 49 63 6f 6e 28 47 6c  6f 73 73 61 72 79 5f 57  |nIcon(Glossary_W|
00001260  69 6e 64 6f 77 25 2c 32  2c 6c 69 6e 65 24 28 65  |indow%,2,line$(e|
00001270  6e 74 72 79 25 2c 35 29  29 0d 05 82 0c 20 20 20  |ntry%,5))....   |
00001280  20 20 20 20 e1 0d 05 8c  45 f4 7c 20 20 20 20 20  |    ....E.|     |
00001290  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
000012a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000012b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 20 20 20 20 20 20  |----------      |
000012c0  20 20 20 20 36 2f 31 2f  39 32 0d 05 96 2f f4 7c  |    6/1/92.../.||
000012d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000012e0  20 20 20 57 49 4d 50 20  50 52 4f 43 45 44 55 52  |   WIMP PROCEDUR|
000012f0  45 20 4c 49 42 52 41 52  59 0d 05 a0 06 f4 7c 0d  |E LIBRARY.....|.|
00001300  05 aa 2c f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..,.|           |
00001310  20 20 20 20 20 20 20 20  20 20 49 6e 64 65 78 20  |          Index |
00001320  6f 66 20 43 6f 6e 74 65  6e 74 73 0d 05 b4 06 f4  |of Contents.....|
00001330  7c 0d 05 be 35 f4 7c 20  20 20 20 20 20 20 20 20  ||...5.|         |
00001340  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
00001350  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001360  2d 2d 2d 2d 2d 2d 0d 05  c8 06 f4 7c 0d 05 d2 35  |------.....|...5|
00001370  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
00001380  20 20 20 20 20 20 31 2e  a0 57 69 6d 70 20 69 6e  |      1..Wimp in|
00001390  69 74 69 61 6c 69 73 65  a0 61 6e 64 a0 71 75 69  |itialise.and.qui|
000013a0  74 0d 05 dc 06 f4 7c 0d  05 e6 40 f4 7c 20 20 20  |t.....|...@.|   |
000013b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000013c0  20 32 2e a0 57 69 6d 70  a0 70 6f 6c 6c 69 6e 67  | 2..Wimp.polling|
000013d0  a0 28 47 65 6e 65 72 61  74 69 6f 6e a0 6f 66 a0  |.(Generation.of.|
000013e0  45 76 65 6e 74 73 29 0d  05 f0 06 f4 7c 0d 05 fa  |Events).....|...|
000013f0  24 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |$.|             |
00001400  20 20 20 20 20 20 20 33  2e a0 57 69 6e 64 6f 77  |       3..Window|
00001410  73 0d 06 04 06 f4 7c 0d  06 0e 3b f4 7c 20 20 20  |s.....|...;.|   |
00001420  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001430  20 20 20 20 33 2e 31 a0  57 69 6e 64 6f 77 a0 6f  |    3.1.Window.o|
00001440  70 65 6e 69 6e 67 a0 61  6e 64 a0 63 6c 6f 73 69  |pening.and.closi|
00001450  6e 67 0d 06 18 2f f4 7c  20 20 20 20 20 20 20 20  |ng.../.|        |
00001460  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 33  |               3|
00001470  2e 32 a0 57 69 6e 64 6f  77 a0 64 72 61 77 69 6e  |.2.Window.drawin|
00001480  67 0d 06 22 06 f4 7c 0d  06 2c 22 f4 7c 20 20 20  |g.."..|..,".|   |
00001490  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000014a0  20 34 2e a0 49 63 6f 6e  73 0d 06 36 06 f4 7c 0d  | 4..Icons..6..|.|
000014b0  06 40 22 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |.@".|           |
000014c0  20 20 20 20 20 20 20 20  20 35 2e a0 4d 65 6e 75  |         5..Menu|
000014d0  73 0d 06 4a 06 f4 7c 0d  06 54 22 f4 7c 20 20 20  |s..J..|..T".|   |
000014e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000014f0  20 36 2e a0 46 69 6c 65  73 0d 06 5e 06 f4 7c 0d  | 6..Files..^..|.|
00001500  06 68 24 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |.h$.|           |
00001510  20 20 20 20 20 20 20 20  20 37 2e a0 53 70 72 69  |         7..Spri|
00001520  74 65 73 0d 06 72 06 f4  7c 0d 06 7c 22 f4 7c 20  |tes..r..|..|".| |
00001530  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001540  20 20 20 38 2e a0 53 61  76 65 73 0d 06 86 06 f4  |   8..Saves.....|
00001550  7c 0d 06 90 2a f4 7c 20  20 20 20 20 20 20 20 20  ||...*.|         |
00001560  20 20 20 20 20 20 20 20  20 20 20 39 2e a0 4d 69  |           9..Mi|
00001570  73 63 65 6c 6c 61 6e 65  6f 75 73 0d 06 9a 06 f4  |scellaneous.....|
00001580  7c 0d 06 a4 35 f4 7c 20  20 20 20 20 20 20 20 20  ||...5.|         |
00001590  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
000015a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000015b0  2d 2d 2d 2d 2d 2d 0d 06  ae 06 f4 7c 0d 06 b8 06  |------.....|....|
000015c0  f4 7c 0d 06 c2 06 f4 7c  0d 06 cc 06 f4 7c 0d 06  |.|.....|.....|..|
000015d0  d6 35 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.5.|            |
000015e0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
000015f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001600  2d 2d 2d 0d 06 e0 33 f4  7c 20 20 20 20 20 20 20  |---...3.|       |
00001610  20 20 20 20 20 20 20 20  20 20 20 31 2e a0 57 69  |           1..Wi|
00001620  6d 70 a0 69 6e 69 74 69  61 6c 69 73 65 a0 61 6e  |mp.initialise.an|
00001630  64 a0 71 75 69 74 0d 06  ea 35 f4 7c 20 20 20 20  |d.quit...5.|    |
00001640  20 20 20 20 20 20 20 20  20 20 20 20 2d 2d 2d 2d  |            ----|
00001650  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001660  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 06 f4 06 f4  |-----------.....|
00001670  7c 0d 06 fe 06 f4 7c 0d  07 08 35 f4 7c 20 20 20  ||.....|...5.|   |
00001680  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |             ---|
00001690  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000016a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 07 12 06  |------------....|
000016b0  f4 7c 0d 07 1c 28 f4 7c  20 20 20 20 20 20 20 20  |.|...(.|        |
000016c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 72  |              Pr|
000016d0  6f 63 65 64 75 72 65 73  20 3a 0d 07 26 06 f4 7c  |ocedures :..&..||
000016e0  0d 07 30 25 f4 7c 20 20  20 20 20 20 20 20 20 20  |..0%.|          |
000016f0  20 20 20 20 20 20 20 20  46 4e 57 69 6d 70 5f 53  |        FNWimp_S|
00001700  74 61 72 74 28 0d 07 3a  2a f4 7c 20 20 20 20 20  |tart(..:*.|     |
00001710  20 20 20 20 20 20 20 20  20 20 20 20 20 50 52 4f  |             PRO|
00001720  43 57 69 6d 70 5f 43 6c  6f 73 65 44 6f 77 6e 0d  |CWimp_CloseDown.|
00001730  07 44 25 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |.D%.|           |
00001740  20 20 20 20 20 20 20 50  52 4f 43 57 69 6d 70 5f  |       PROCWimp_|
00001750  51 75 69 74 0d 07 4e 36  f4 7c 20 20 20 20 20 20  |Quit..N6.|      |
00001760  20 20 20 20 20 20 20 20  20 20 20 20 50 52 4f 43  |            PROC|
00001770  49 6e 74 65 72 6e 61 6c  5f 53 65 74 45 76 65 6e  |Internal_SetEven|
00001780  74 56 61 72 69 61 62 6c  65 73 0d 07 58 2b f4 7c  |tVariables..X+.||
00001790  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000017a0  20 20 50 52 4f 43 49 6e  74 65 72 6e 61 6c 5f 45  |  PROCInternal_E|
000017b0  72 72 6f 72 28 0d 07 62  06 f4 7c 0d 07 6c 35 f4  |rror(..b..|..l5.|
000017c0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
000017d0  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
000017e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000017f0  0d 07 76 06 f4 7c 0d 07  80 06 f4 7c 0d 07 8a 06  |..v..|.....|....|
00001800  f4 7c 0d 07 94 22 20 20  20 20 20 dd 20 a4 57 69  |.|..."     . .Wi|
00001810  6d 70 5f 53 74 61 72 74  28 20 54 61 73 6b 4e 61  |mp_Start( TaskNa|
00001820  6d 65 24 29 0d 07 9e 06  f4 7c 0d 07 a8 3a f4 7c  |me$).....|...:.||
00001830  20 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  --------------|
00001840  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001860  2d 2d 2d 2d 0d 07 b2 3b  f4 7c 20 20 49 6e 69 74  |----...;.|  Init|
00001870  69 61 6c 69 73 65 73 20  61 20 74 61 73 6b 2e 20  |ialises a task. |
00001880  53 65 65 20 70 61 67 65  20 31 31 37 33 20 6f 66  |See page 1173 of|
00001890  20 52 69 73 63 4f 73 20  4d 61 6e 75 61 6c 2e 0d  | RiscOs Manual..|
000018a0  07 bc 3a f4 7c 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..:.|  ---------|
000018b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000018d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 07 c6 06 f4 7c 0d  |---------.....|.|
000018e0  07 d0 24 20 20 20 20 20  f2 49 6e 74 65 72 6e 61  |..$     .Interna|
000018f0  6c 5f 53 65 74 45 76 65  6e 74 56 61 72 69 61 62  |l_SetEventVariab|
00001900  6c 65 73 0d 07 da 06 f4  7c 0d 07 e4 30 20 20 20  |les.....|...0   |
00001910  20 20 ee 20 85 20 f2 49  6e 74 65 72 6e 61 6c 5f  |  . . .Internal_|
00001920  45 72 72 6f 72 28 20 74  61 73 6b 25 2c 54 61 73  |Error( task%,Tas|
00001930  6b 4e 61 6d 65 24 29 3a  e0 0d 07 ee 06 f4 7c 0d  |kName$):......|.|
00001940  07 f8 17 20 20 20 20 20  24 62 6c 6f 63 6b 25 3d  |...     $block%=|
00001950  22 54 41 53 4b 22 0d 08  02 05 20 0d 08 0c 05 20  |"TASK".... .... |
00001960  0d 08 16 44 20 20 20 20  20 c8 99 20 22 57 69 6d  |...D     .. "Wim|
00001970  70 5f 49 6e 69 74 69 61  6c 69 73 65 22 2c 32 30  |p_Initialise",20|
00001980  30 2c 21 62 6c 6f 63 6b  25 2c 54 61 73 6b 4e 61  |0,!block%,TaskNa|
00001990  6d 65 24 20 b8 20 76 65  72 73 69 6f 6e 25 2c 74  |me$ . version%,t|
000019a0  61 73 6b 25 0d 08 20 04  0d 08 2a 06 f4 7c 0d 08  |ask%.. ...*..|..|
000019b0  34 12 20 20 20 20 3d 54  61 73 6b 4e 61 6d 65 24  |4.    =TaskName$|
000019c0  0d 08 3e 06 f4 7c 0d 08  48 06 f4 7c 0d 08 52 29  |..>..|..H..|..R)|
000019d0  20 20 20 20 20 20 20 20  dd 20 f2 49 6e 74 65 72  |        . .Inter|
000019e0  6e 61 6c 5f 53 65 74 45  76 65 6e 74 56 61 72 69  |nal_SetEventVari|
000019f0  61 62 6c 65 73 0d 08 5c  06 f4 7c 0d 08 66 36 20  |ables..\..|..f6 |
00001a00  20 20 20 20 20 20 20 de  20 62 6c 6f 63 6b 25 20  |       . block% |
00001a10  62 6c 6f 63 6b 5f 6d 65  6d 6f 72 79 25 2c 69 63  |block_memory%,ic|
00001a20  6f 6e 73 25 20 69 63 6f  6e 5f 6d 65 6d 6f 72 79  |ons% icon_memory|
00001a30  25 0d 08 70 2d 20 20 20  20 20 20 20 20 20 20 20  |%..p-           |
00001a40  20 69 63 6f 6e 5f 65 6e  64 25 3d 69 63 6f 6e 73  | icon_end%=icons|
00001a50  25 2b 69 63 6f 6e 5f 6d  65 6d 6f 72 79 25 0d 08  |%+icon_memory%..|
00001a60  7a 06 f4 7c 0d 08 84 4e  20 20 20 20 20 20 20 20  |z..|...N        |
00001a70  6e 75 6c 6c 25 3d 31 20  20 20 20 20 20 20 20 20  |null%=1         |
00001a80  20 20 20 20 20 20 20 3a  20 64 72 61 77 25 3d 32  |       : draw%=2|
00001a90  20 20 20 20 20 20 20 20  20 20 20 3a 20 70 6f 69  |           : poi|
00001aa0  6e 74 65 72 5f 6c 65 61  76 69 6e 67 25 3d 31 3c  |nter_leaving%=1<|
00001ab0  3c 34 0d 08 8e 43 20 20  20 20 20 20 20 20 70 6f  |<4...C        po|
00001ac0  69 6e 74 65 72 5f 65 6e  74 65 72 69 6e 67 25 3d  |inter_entering%=|
00001ad0  31 3c 3c 35 20 3a 20 6d  6f 75 73 65 25 3d 31 3c  |1<<5 : mouse%=1<|
00001ae0  3c 36 20 20 20 20 20 20  20 3a 20 64 72 61 67 25  |<6       : drag%|
00001af0  3d 31 3c 3c 37 0d 08 98  46 20 20 20 20 20 20 20  |=1<<7...F       |
00001b00  20 6b 65 79 25 3d 31 3c  3c 38 20 20 20 20 20 20  | key%=1<<8      |
00001b10  20 20 20 20 20 20 20 20  3a 20 6d 65 6e 75 25 3d  |        : menu%=|
00001b20  31 3c 3c 39 20 20 20 20  20 20 20 20 3a 20 73 63  |1<<9        : sc|
00001b30  72 6f 6c 6c 25 3d 31 3c  3c 31 30 0d 08 a2 51 20  |roll%=1<<10...Q |
00001b40  20 20 20 20 20 20 20 6c  6f 73 65 5f 63 61 72 65  |       lose_care|
00001b50  74 25 3d 31 3c 3c 31 31  20 20 20 20 20 20 3a 20  |t%=1<<11      : |
00001b60  67 61 69 6e 5f 63 61 72  65 74 25 3d 31 3c 3c 31  |gain_caret%=1<<1|
00001b70  32 20 3a 20 6d 65 73 73  61 67 65 25 3d 28 31 3c  |2 : message%=(1<|
00001b80  3c 31 37 29 2b 28 31 3c  3c 31 38 29 0d 08 ac 42  |<17)+(1<<18)...B|
00001b90  20 20 20 20 20 20 20 20  72 65 63 6f 72 64 65 72  |        recorder|
00001ba0  25 3d 31 3c 3c 31 38 20  20 20 20 20 20 20 20 3a  |%=1<<18        :|
00001bb0  20 61 63 6b 6e 6f 77 6c  65 64 67 65 25 3d 31 3c  | acknowledge%=1<|
00001bc0  3c 31 39 3a 20 77 69 6e  64 6f 77 25 3d 30 0d 08  |<19: window%=0..|
00001bd0  b6 40 20 20 20 20 20 20  20 20 73 70 72 69 74 65  |.@        sprite|
00001be0  73 25 3d 30 20 20 20 20  20 20 20 20 20 20 20 20  |s%=0            |
00001bf0  20 3a 20 76 65 72 73 69  6f 6e 25 3d 30 20 20 20  | : version%=0   |
00001c00  20 20 20 20 20 3a 20 74  61 73 6b 25 3d 30 0d 08  |     : task%=0..|
00001c10  c0 44 20 20 20 20 20 20  20 20 42 61 72 5f 57 69  |.D        Bar_Wi|
00001c20  6e 64 6f 77 25 3d 2d 32  20 20 20 20 20 20 20 20  |ndow%=-2        |
00001c30  20 3a 20 42 61 72 5f 49  63 6f 6e 25 3d 30 20 20  | : Bar_Icon%=0  |
00001c40  20 20 20 20 20 3a 20 42  61 72 5f 4d 65 6e 75 25  |     : Bar_Menu%|
00001c50  3d 30 0d 08 ca 47 20 20  20 20 20 20 20 20 78 5f  |=0...G        x_|
00001c60  6f 72 69 67 69 6e 25 3d  30 20 20 20 20 20 20 20  |origin%=0       |
00001c70  20 20 20 20 20 3a 20 79  5f 6f 72 69 67 69 6e 25  |     : y_origin%|
00001c80  3d 30 20 20 20 20 20 20  20 3a 20 53 61 76 65 57  |=0       : SaveW|
00001c90  69 6e 64 6f 77 25 3d 2d  33 0d 08 d4 48 20 20 20  |indow%=-3...H   |
00001ca0  20 20 20 20 20 6d 65 73  73 61 67 65 5f 71 75 69  |     message_qui|
00001cb0  74 25 3d 30 20 20 20 20  20 20 20 20 3a 20 6d 65  |t%=0        : me|
00001cc0  73 73 61 67 65 5f 73 61  76 65 25 3d 32 20 20 20  |ssage_save%=2   |
00001cd0  3a 20 6d 65 73 73 61 67  65 5f 6c 6f 61 64 25 3d  |: message_load%=|
00001ce0  33 0d 08 de 32 20 20 20  20 20 20 20 20 6d 6f 75  |3...2        mou|
00001cf0  73 65 5f 62 75 74 74 6f  6e 25 3d 32 20 20 20 20  |se_button%=2    |
00001d00  20 20 20 20 3a 20 73 61  76 65 5f 65 76 65 6e 74  |    : save_event|
00001d10  25 3d 30 0d 08 e8 06 f4  7c 0d 08 f2 0d 20 20 20  |%=0.....|....   |
00001d20  20 20 20 20 20 e1 0d 08  fc 06 f4 7c 0d 09 06 06  |     ......|....|
00001d30  f4 7c 0d 09 10 2f 20 20  20 20 20 20 20 20 dd 20  |.|.../        . |
00001d40  f2 49 6e 74 65 72 6e 61  6c 5f 45 72 72 6f 72 28  |.Internal_Error(|
00001d50  20 74 61 73 6b 25 2c 54  61 73 6b 4e 61 6d 65 24  | task%,TaskName$|
00001d60  29 0d 09 1a 13 20 20 20  20 20 20 20 20 ea 20 58  |)....        . X|
00001d70  24 2c 78 25 0d 09 24 11  20 20 20 20 20 20 20 20  |$,x%..$.        |
00001d80  ee 20 85 20 87 0d 09 2e  11 20 20 20 20 20 20 20  |. . .....       |
00001d90  20 20 78 25 3d 9e 0d 09  38 28 20 20 20 20 20 20  |  x%=...8(      |
00001da0  20 20 20 58 24 3d f6 24  2b 22 61 74 20 6c 69 6e  |   X$=.$+"at lin|
00001db0  65 20 22 2b c3 28 78 25  20 81 20 31 30 29 0d 09  |e "+.(x% . 10)..|
00001dc0  42 12 de 20 45 72 72 6f  72 4d 73 67 25 20 33 36  |B.. ErrorMsg% 36|
00001dd0  0d 09 4c 3d 45 72 72 6f  72 4d 73 67 25 21 30 20  |..L=ErrorMsg%!0 |
00001de0  20 20 20 20 3d 20 33 36  20 20 20 20 20 20 20 20  |    = 36        |
00001df0  20 20 20 20 20 20 20 20  3a 20 f4 20 4c 65 6e 67  |        : . Leng|
00001e00  74 68 20 6f 66 20 6d 65  73 73 61 67 65 0d 09 56  |th of message..V|
00001e10  47 45 72 72 6f 72 4d 73  67 25 21 31 32 20 20 20  |GErrorMsg%!12   |
00001e20  20 3d 20 30 20 20 20 20  20 20 20 20 20 20 20 20  | = 0            |
00001e30  20 20 20 20 20 3a 20 f4  20 54 68 69 73 20 69 73  |     : . This is|
00001e40  20 61 6e 20 6f 72 69 67  69 6e 61 6c 20 6d 65 73  | an original mes|
00001e50  73 61 67 65 0d 09 60 47  45 72 72 6f 72 4d 73 67  |sage..`GErrorMsg|
00001e60  25 21 31 36 20 20 20 20  3d 20 26 38 31 30 38 30  |%!16    = &81080|
00001e70  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 f4 20  |            : . |
00001e80  4d 65 73 73 61 67 65 20  6e 75 6d 62 65 72 20 74  |Message number t|
00001e90  6f 20 73 65 74 20 63 61  72 65 74 0d 09 6a 40 45  |o set caret..j@E|
00001ea0  72 72 6f 72 4d 73 67 25  21 32 30 20 20 20 20 3d  |rrorMsg%!20    =|
00001eb0  20 78 25 20 20 20 20 20  20 20 20 20 20 20 20 20  | x%             |
00001ec0  20 20 20 3a 20 f4 20 4c  69 6e 65 20 74 6f 20 70  |   : . Line to p|
00001ed0  75 74 20 63 61 72 65 74  20 6f 6e 0d 09 74 40 24  |ut caret on..t@$|
00001ee0  28 45 72 72 6f 72 4d 73  67 25 2b 32 34 29 20 3d  |(ErrorMsg%+24) =|
00001ef0  20 22 21 52 75 6e 49 6d  61 67 65 20 20 20 22 20  | "!RunImage   " |
00001f00  20 20 20 3a 20 f4 20 46  69 6c 65 20 74 6f 20 70  |   : . File to p|
00001f10  75 74 20 63 61 72 65 74  20 6f 6e 0d 09 7e 26 c8  |ut caret on..~&.|
00001f20  99 20 22 57 69 6d 70 5f  53 65 6e 64 4d 65 73 73  |. "Wimp_SendMess|
00001f30  61 67 65 22 2c 31 37 2c  45 72 72 6f 72 4d 73 67  |age",17,ErrorMsg|
00001f40  25 0d 09 88 04 0d 09 92  25 20 20 20 20 20 20 20  |%.......%       |
00001f50  20 f2 57 69 6d 70 5f 41  6c 65 72 74 28 54 61 73  | .Wimp_Alert(Tas|
00001f60  6b 4e 61 6d 65 24 2c 58  24 29 0d 09 9c 1b 20 20  |kName$,X$)....  |
00001f70  20 20 20 20 20 20 f2 57  69 6d 70 5f 43 6c 6f 73  |      .Wimp_Clos|
00001f80  65 44 6f 77 6e 0d 09 a6  0d 20 20 20 20 20 20 20  |eDown....       |
00001f90  20 e1 0d 09 b0 06 f4 7c  0d 09 ba 06 f4 7c 0d 09  | ......|.....|..|
00001fa0  c4 1d 20 20 20 20 20 20  20 20 dd 20 f2 57 69 6d  |..        . .Wim|
00001fb0  70 5f 43 6c 6f 73 65 44  6f 77 6e 0d 09 ce 2d 20  |p_CloseDown...- |
00001fc0  20 20 20 20 20 20 20 20  c8 99 20 22 57 69 6d 70  |        .. "Wimp|
00001fd0  5f 43 6c 6f 73 65 44 6f  77 6e 22 2c 74 61 73 6b  |_CloseDown",task|
00001fe0  25 2c 22 54 41 53 4b 22  0d 09 d8 0d 20 20 20 20  |%,"TASK"....    |
00001ff0  20 20 20 20 e1 0d 09 e2  06 f4 7c 0d 09 ec 06 f4  |    ......|.....|
00002000  7c 0d 09 f6 18 20 20 20  20 20 20 20 20 dd 20 f2  ||....        . .|
00002010  57 69 6d 70 5f 51 75 69  74 0d 0a 00 17 20 20 20  |Wimp_Quit....   |
00002020  20 20 20 20 20 66 69 6e  69 73 68 65 64 25 3d b9  |     finished%=.|
00002030  0d 0a 0a 0d 20 20 20 20  20 20 20 20 e1 0d 0a 14  |....        ....|
00002040  06 f4 7c 0d 0a 1e 06 f4  7c 0d 0a 28 38 f4 7c 20  |..|.....|..(8.| |
00002050  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
00002060  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002080  2d 0d 0a 32 38 f4 7c 20  20 20 20 20 20 20 20 20  |-..28.|         |
00002090  20 20 20 32 2e a0 57 69  6d 70 a0 70 6f 6c 6c 69  |   2..Wimp.polli|
000020a0  6e 67 a0 28 47 65 6e 65  72 61 74 69 6f 6e a0 6f  |ng.(Generation.o|
000020b0  66 a0 45 76 65 6e 74 73  29 0d 0a 3c 38 f4 7c 20  |f.Events)..<8.| |
000020c0  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
000020d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000020f0  2d 0d 0a 46 06 f4 7c 0d  0a 50 06 f4 7c 0d 0a 5a  |-..F..|..P..|..Z|
00002100  06 f4 7c 0d 0a 64 06 f4  7c 0d 0a 6e 35 f4 7c 20  |..|..d..|..n5.| |
00002110  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  |               -|
00002120  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002130  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 0a  |--------------..|
00002140  78 06 f4 7c 0d 0a 82 28  f4 7c 20 20 20 20 20 20  |x..|...(.|      |
00002150  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002160  50 72 6f 63 65 64 75 72  65 73 20 3a 0d 0a 8c 06  |Procedures :....|
00002170  f4 7c 0d 0a 96 2d f4 7c  20 20 20 20 20 20 20 20  |.|...-.|        |
00002180  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00002190  6d 70 5f 57 61 69 74 46  6f 72 45 76 65 6e 74 0d  |mp_WaitForEvent.|
000021a0  0a a0 31 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..1.|           |
000021b0  20 20 20 20 20 20 20 50  52 4f 43 49 6e 74 65 72  |       PROCInter|
000021c0  6e 61 6c 5f 4e 6f 6e 53  61 76 65 45 76 65 6e 74  |nal_NonSaveEvent|
000021d0  0d 0a aa 2e f4 7c 20 20  20 20 20 20 20 20 20 20  |.....|          |
000021e0  20 20 20 20 20 20 20 20  46 4e 49 6e 74 65 72 6e  |        FNIntern|
000021f0  61 6c 5f 47 65 74 46 69  6c 65 54 79 70 65 0d 0a  |al_GetFileType..|
00002200  b4 06 f4 7c 0d 0a be 35  f4 7c 20 20 20 20 20 20  |...|...5.|      |
00002210  20 20 20 20 20 20 20 20  20 20 2d 2d 2d 2d 2d 2d  |          ------|
00002220  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002230  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 0a c8 05 3a 0d 0a  |---------....:..|
00002240  d2 1e 20 20 20 20 20 20  dd 20 f2 57 69 6d 70 5f  |..      . .Wimp_|
00002250  57 61 69 74 46 6f 72 45  76 65 6e 74 0d 0a dc 15  |WaitForEvent....|
00002260  20 20 20 20 20 20 66 69  6e 69 73 68 65 64 25 3d  |      finished%=|
00002270  a3 0d 0a e6 4c 20 20 20  20 20 20 6d 61 73 6b 25  |....L      mask%|
00002280  3d 25 31 31 31 30 30 30  30 31 31 30 30 31 20 20  |=%111000011001  |
00002290  3a 20 f4 20 20 20 20 20  20 20 20 20 20 20 20 20  |: .             |
000022a0  6d 61 73 6b 69 6e 67 20  65 76 65 6e 74 73 20 30  |masking events 0|
000022b0  2c 34 2c 35 2c 31 30 2c  31 31 2c 31 32 0d 0a f0  |,4,5,10,11,12...|
000022c0  0b 20 20 20 20 20 20 f5  0d 0a fa 2f 20 20 20 20  |.      ..../    |
000022d0  20 20 20 c8 99 20 22 57  69 6d 70 5f 50 6f 6c 6c  |   .. "Wimp_Poll|
000022e0  22 2c 6d 61 73 6b 25 2c  62 6c 6f 63 6b 25 20 b8  |",mask%,block% .|
000022f0  20 65 76 65 6e 74 25 0d  0b 04 2f 20 20 20 20 20  | event%.../     |
00002300  20 20 c8 8e 20 a4 49 6e  74 65 72 6e 61 6c 5f 45  |  .. .Internal_E|
00002310  76 65 6e 74 28 65 76 65  6e 74 25 2c 62 6c 6f 63  |vent(event%,bloc|
00002320  6b 25 29 20 20 ca 0d 0b  0e 22 20 20 20 20 20 20  |k%)  ...."      |
00002330  20 20 20 c9 2d 31 20 3a  20 f2 45 76 65 6e 74 5f  |   .-1 : .Event_|
00002340  53 61 76 65 46 69 6c 65  0d 0b 18 12 20 20 20 20  |SaveFile....    |
00002350  20 20 20 20 20 c9 20 30  20 3a 0d 0b 22 39 20 20  |     . 0 :.."9  |
00002360  20 20 20 20 20 20 20 c9  20 31 20 3a 20 c8 99 20  |       . 1 : .. |
00002370  22 57 69 6d 70 5f 52 65  64 72 61 77 57 69 6e 64  |"Wimp_RedrawWind|
00002380  6f 77 22 2c 2c 62 6c 6f  63 6b 25 20 b8 20 6d 6f  |ow",,block% . mo|
00002390  72 65 25 0d 0b 2c 40 20  20 20 20 20 20 20 20 20  |re%..,@         |
000023a0  20 20 20 20 20 20 20 20  20 20 78 5f 6f 72 69 67  |          x_orig|
000023b0  69 6e 25 3d a4 49 6e 74  65 72 6e 61 6c 5f 57 69  |in%=.Internal_Wi|
000023c0  6e 64 6f 77 58 4f 72 69  67 69 6e 28 62 6c 6f 63  |ndowXOrigin(bloc|
000023d0  6b 25 29 0d 0b 36 40 20  20 20 20 20 20 20 20 20  |k%)..6@         |
000023e0  20 20 20 20 20 20 20 20  20 20 79 5f 6f 72 69 67  |          y_orig|
000023f0  69 6e 25 3d a4 49 6e 74  65 72 6e 61 6c 5f 57 69  |in%=.Internal_Wi|
00002400  6e 64 6f 77 59 4f 72 69  67 69 6e 28 62 6c 6f 63  |ndowYOrigin(bloc|
00002410  6b 25 29 0d 0b 40 1f 20  20 20 20 20 20 20 20 20  |k%)..@.         |
00002420  20 20 20 20 20 20 20 20  20 20 c8 95 20 6d 6f 72  |          .. mor|
00002430  65 25 0d 0b 4a 38 20 20  20 20 20 20 20 20 20 20  |e%..J8          |
00002440  20 20 20 20 20 20 20 20  20 20 20 c8 99 20 22 57  |           .. "W|
00002450  69 6d 70 5f 42 6f 72 64  65 72 57 69 6e 64 6f 77  |imp_BorderWindow|
00002460  22 2c 2c 20 62 6c 6f 63  6b 25 0d 0b 54 34 20 20  |",, block%..T4  |
00002470  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002480  20 20 20 f2 45 76 65 6e  74 5f 44 72 61 77 57 69  |   .Event_DrawWi|
00002490  6e 64 6f 77 28 62 6c 6f  63 6b 25 21 30 29 0d 0b  |ndow(block%!0)..|
000024a0  5e 3f 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |^?              |
000024b0  20 20 20 20 20 20 20 c8  99 20 22 57 69 6d 70 5f  |       .. "Wimp_|
000024c0  47 65 74 52 65 63 74 61  6e 67 6c 65 22 2c 2c 62  |GetRectangle",,b|
000024d0  6c 6f 63 6b 25 20 b8 20  6d 6f 72 65 25 0d 0b 68  |lock% . more%..h|
000024e0  18 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000024f0  20 20 20 20 ce 0d 0b 72  22 20 20 20 20 20 20 20  |    ...r"       |
00002500  20 20 c9 20 32 20 3a 20  77 69 6e 64 6f 77 25 3d  |  . 2 : window%=|
00002510  21 62 6c 6f 63 6b 25 0d  0b 7c 31 20 20 20 20 20  |!block%..|1     |
00002520  20 20 20 20 20 20 20 20  20 20 20 20 20 f2 57 69  |             .Wi|
00002530  6d 70 5f 57 69 6e 64 6f  77 4f 70 65 6e 28 77 69  |mp_WindowOpen(wi|
00002540  6e 64 6f 77 25 2c 31 29  0d 0b 86 22 20 20 20 20  |ndow%,1)..."    |
00002550  20 20 20 20 20 c9 20 33  20 3a 20 77 69 6e 64 6f  |     . 3 : windo|
00002560  77 25 3d 21 62 6c 6f 63  6b 25 0d 0b 90 30 20 20  |w%=!block%...0  |
00002570  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002580  f2 57 69 6d 70 5f 57 69  6e 64 6f 77 43 6c 6f 73  |.Wimp_WindowClos|
00002590  65 28 77 69 6e 64 6f 77  25 29 0d 0b 9a 12 20 20  |e(window%)....  |
000025a0  20 20 20 20 20 20 20 c9  20 34 20 3a 0d 0b a4 12  |       . 4 :....|
000025b0  20 20 20 20 20 20 20 20  20 c9 20 35 20 3a 0d 0b  |         . 5 :..|
000025c0  ae 49 20 20 20 20 20 20  20 20 20 c9 20 36 20 3a  |.I         . 6 :|
000025d0  20 62 75 74 74 6f 6e 25  3d 62 6c 6f 63 6b 25 21  | button%=block%!|
000025e0  38 20 3a 20 77 69 6e 64  6f 77 25 3d 62 6c 6f 63  |8 : window%=bloc|
000025f0  6b 25 21 31 32 20 3a 20  69 63 6f 6e 25 3d 62 6c  |k%!12 : icon%=bl|
00002600  6f 63 6b 25 21 31 36 0d  0b b8 2f 20 20 20 20 20  |ock%!16.../     |
00002610  20 20 20 20 20 20 20 20  20 20 20 20 20 78 25 3d  |             x%=|
00002620  62 6c 6f 63 6b 25 21 30  20 3a 20 79 25 3d 62 6c  |block%!0 : y%=bl|
00002630  6f 63 6b 25 21 34 0d 0b  c2 22 20 20 20 20 20 20  |ock%!4..."      |
00002640  20 20 20 20 20 20 20 20  20 20 20 20 c8 8e 20 62  |            .. b|
00002650  75 74 74 6f 6e 25 20 ca  0d 0b cc 1f 20 20 20 20  |utton% .....    |
00002660  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 c9  |               .|
00002670  20 20 32 20 20 20 3a 0d  0b d6 37 20 20 20 20 20  |  2   :...7     |
00002680  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00002690  45 76 65 6e 74 5f 4d 65  6e 75 50 6f 70 55 70 28  |Event_MenuPopUp(|
000026a0  77 69 6e 64 6f 77 25 2c  78 25 2c 79 25 29 0d 0b  |window%,x%,y%)..|
000026b0  e0 1a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
000026c0  20 20 20 20 20 7f 20 3a  0d 0b ea 34 20 20 20 20  |     . :...4    |
000026d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000026e0  c8 99 20 22 57 69 6d 70  5f 42 6f 72 64 65 72 49  |.. "Wimp_BorderI|
000026f0  63 6f 6e 22 2c 2c 62 6c  6f 63 6b 25 0d 0b f4 46  |con",,block%...F|
00002700  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002710  20 20 20 20 f2 45 76 65  6e 74 5f 4d 6f 75 73 65  |    .Event_Mouse|
00002720  43 6c 69 63 6b 28 62 75  74 74 6f 6e 25 2c 77 69  |Click(button%,wi|
00002730  6e 64 6f 77 25 2c 69 63  6f 6e 25 2c 78 25 2c 79  |ndow%,icon%,x%,y|
00002740  25 29 0d 0b fe 48 20 20  20 20 20 20 20 20 20 20  |%)...H          |
00002750  20 20 20 20 20 20 20 20  20 20 62 6c 6f 63 6b 25  |          block%|
00002760  21 38 3d 30 20 3a 20 62  6c 6f 63 6b 25 21 31 32  |!8=0 : block%!12|
00002770  3d 77 69 6e 64 6f 77 25  20 3a 20 62 6c 6f 63 6b  |=window% : block|
00002780  25 21 31 36 3d 69 63 6f  6e 25 0d 0c 08 34 20 20  |%!16=icon%...4  |
00002790  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000027a0  20 20 c8 99 20 22 57 69  6d 70 5f 42 6f 72 64 65  |  .. "Wimp_Borde|
000027b0  72 49 63 6f 6e 22 2c 2c  62 6c 6f 63 6b 25 0d 0c  |rIcon",,block%..|
000027c0  12 17 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
000027d0  20 20 20 20 cb 0d 0c 1c  3f 20 20 20 20 20 20 20  |    ....?       |
000027e0  20 20 c9 20 37 20 3a 20  f4 20 20 4f 6e 6c 79 20  |  . 7 : .  Only |
000027f0  64 72 61 67 73 20 61 6c  6c 6f 77 65 64 20 61 72  |drags allowed ar|
00002800  65 20 66 72 6f 6d 20 53  61 76 65 20 77 69 6e 64  |e from Save wind|
00002810  6f 77 21 2e 0d 0c 26 45  20 20 20 20 20 20 20 20  |ow!...&E        |
00002820  20 c9 20 38 20 3a 20 77  69 6e 64 6f 77 25 3d 62  | . 8 : window%=b|
00002830  6c 6f 63 6b 25 21 30 20  3a 20 69 63 6f 6e 25 3d  |lock%!0 : icon%=|
00002840  62 6c 6f 63 6b 25 21 34  20 3a 20 6b 65 79 25 3d  |block%!4 : key%=|
00002850  62 6c 6f 63 6b 25 21 32  34 0d 0c 30 39 20 20 20  |block%!24..09   |
00002860  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00002870  45 76 65 6e 74 5f 4b 65  79 50 72 65 73 73 28 77  |Event_KeyPress(w|
00002880  69 6e 64 6f 77 25 2c 69  63 6f 6e 25 2c 6b 65 79  |indow%,icon%,key|
00002890  25 29 0d 0c 3a 2b 20 20  20 20 20 20 20 20 20 c9  |%)..:+         .|
000028a0  20 39 20 3a 20 f2 45 76  65 6e 74 5f 4d 65 6e 75  | 9 : .Event_Menu|
000028b0  43 68 6f 69 63 65 28 6d  65 6e 75 25 29 0d 0c 44  |Choice(menu%)..D|
000028c0  12 20 20 20 20 20 20 20  20 20 c9 20 31 30 3a 0d  |.         . 10:.|
000028d0  0c 4e 12 20 20 20 20 20  20 20 20 20 c9 20 31 31  |.N.         . 11|
000028e0  3a 0d 0c 58 12 20 20 20  20 20 20 20 20 20 c9 20  |:..X.         . |
000028f0  31 32 3a 0d 0c 62 05 20  0d 0c 6c 28 f4 7c 20 20  |12:..b. ..l(.|  |
00002900  20 20 20 20 45 76 65 6e  74 73 20 31 33 2c 31 34  |    Events 13,14|
00002910  2c 31 35 2c 31 36 20 20  4e 6f 74 20 75 73 65 64  |,15,16  Not used|
00002920  0d 0c 76 05 20 0d 0c 80  16 20 20 20 20 20 20 20  |..v. ....       |
00002930  20 20 c9 20 31 37 2c 31  38 20 3a 0d 0c 8a 24 20  |  . 17,18 :...$ |
00002940  20 20 20 20 20 20 20 20  20 20 20 20 20 6d 65 73  |             mes|
00002950  73 61 67 65 25 3d 62 6c  6f 63 6b 25 21 31 36 0d  |sage%=block%!16.|
00002960  0c 94 1f 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
00002970  20 c8 8e 20 6d 65 73 73  61 67 65 25 20 ca 0d 0c  | .. message% ...|
00002980  9e 31 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.1              |
00002990  20 20 c9 20 6d 65 73 73  61 67 65 5f 71 75 69 74  |  . message_quit|
000029a0  25 20 3a 20 66 69 6e 69  73 68 65 64 25 3d b9 0d  |% : finished%=..|
000029b0  0c a8 25 20 20 20 20 20  20 20 20 20 20 20 20 20  |..%             |
000029c0  20 20 20 c9 20 6d 65 73  73 61 67 65 5f 6c 6f 61  |   . message_loa|
000029d0  64 25 20 3a 0d 0c b2 13  20 20 20 20 20 20 20 20  |d% :....        |
000029e0  20 20 20 20 20 20 cb 0d  0c bc 13 20 20 20 20 20  |      .....     |
000029f0  20 20 20 20 c9 20 31 39  20 3a 0d 0c c6 04 0d 0c  |    . 19 :......|
00002a00  d0 3c 20 20 20 20 20 20  20 20 f2 57 69 6d 70 5f  |.<        .Wimp_|
00002a10  41 6c 65 72 74 28 54 61  73 6b 4e 61 6d 65 24 2c  |Alert(TaskName$,|
00002a20  f6 24 2b 22 61 74 20 6c  69 6e 65 20 22 2b c3 28  |.$+"at line "+.(|
00002a30  9e 20 81 20 31 30 29 2c  32 29 0d 0c da 0c 20 20  |. . 10),2)....  |
00002a40  20 20 20 20 20 cb 0d 0c  e4 15 20 20 20 20 20 20  |     .....      |
00002a50  fd 20 66 69 6e 69 73 68  65 64 25 0d 0c ee 0a 20  |. finished%.... |
00002a60  20 20 20 20 e1 0d 0c f8  05 3a 0d 0d 02 06 f4 7c  |    .....:.....||
00002a70  0d 0d 0c 29 20 20 20 20  20 dd 20 a4 49 6e 74 65  |...)     . .Inte|
00002a80  72 6e 61 6c 5f 45 76 65  6e 74 28 65 76 65 6e 74  |rnal_Event(event|
00002a90  25 2c 62 6c 6f 63 6b 25  29 0d 0d 16 14 20 20 20  |%,block%)....   |
00002aa0  20 20 c8 8e 20 65 76 65  6e 74 25 20 ca 0d 0d 20  |  .. event% ... |
00002ab0  0d 20 20 20 20 20 20 c9  20 30 0d 0d 2a 0a 20 20  |.      . 0..*.  |
00002ac0  20 20 20 cb 0d 0d 34 0f  20 20 20 20 3d 65 76 65  |   ...4.    =eve|
00002ad0  6e 74 25 0d 0d 3e 06 f4  7c 0d 0d 48 35 f4 7c 20  |nt%..>..|..H5.| |
00002ae0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  |               -|
00002af0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002b00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 0d  |--------------..|
00002b10  52 2a f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |R*.|            |
00002b20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 33 2e  |              3.|
00002b30  a0 57 69 6e 64 6f 77 73  0d 0d 5c 35 f4 7c 20 20  |.Windows..\5.|  |
00002b40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 2d  |              --|
00002b50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002b60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 0d 66  |-------------..f|
00002b70  06 f4 7c 0d 0d 70 06 f4  7c 0d 0d 7a 06 f4 7c 0d  |..|..p..|..z..|.|
00002b80  0d 84 29 f4 7c 20 20 20  20 20 2d 2d 2d 2d 2d 2d  |..).|     ------|
00002b90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002ba0  2d 2d 2d 2d 2d 2d 2d 2d  0d 0d 8e 34 52 45 4e 7c  |--------...4REN||
00002bb0  20 20 20 20 20 33 2e 31  a0 57 69 6e 64 6f 77 45  |     3.1.WindowE|
00002bc0  56 41 4c 6f 70 65 6e 69  6e 67 45 56 41 4c 61 6e  |VALopeningEVALan|
00002bd0  64 45 56 41 4c 63 6c 6f  73 69 6e 67 0d 0d 98 29  |dEVALclosing...)|
00002be0  f4 7c 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.|     ---------|
00002bf0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002c00  2d 2d 2d 2d 2d 0d 0d a2  06 f4 7c 0d 0d ac 06 f4  |-----.....|.....|
00002c10  7c 0d 0d b6 06 f4 7c 0d  0d c0 35 f4 7c 20 20 20  ||.....|...5.|   |
00002c20  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |             ---|
00002c30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002c40  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 0d ca 06  |------------....|
00002c50  f4 7c 0d 0d d4 28 f4 7c  20 20 20 20 20 20 20 20  |.|...(.|        |
00002c60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 72  |              Pr|
00002c70  6f 63 65 64 75 72 65 73  20 3a 0d 0d de 06 f4 7c  |ocedures :.....||
00002c80  0d 0d e8 32 f4 7c 20 20  20 20 20 20 20 20 20 20  |...2.|          |
00002c90  20 20 20 20 20 20 20 20  46 4e 57 69 6d 70 5f 57  |        FNWimp_W|
00002ca0  69 6e 64 6f 77 4c 6f 61  64 28 77 69 6e 64 6f 77  |indowLoad(window|
00002cb0  24 29 0d 0d f2 43 f4 7c  20 20 20 20 20 20 20 20  |$)...C.|        |
00002cc0  20 20 20 20 20 20 20 20  20 20 46 4e 57 69 6d 70  |          FNWimp|
00002cd0  5f 57 69 6e 64 6f 77 4c  6f 61 64 46 72 6f 6d 54  |_WindowLoadFromT|
00002ce0  65 6d 70 6c 61 74 65 28  77 24 2c 74 65 6d 70 6c  |emplate(w$,templ|
00002cf0  61 74 65 24 29 0d 0d fc  3b f4 7c 20 20 20 20 20  |ate$)...;.|     |
00002d00  20 20 20 20 20 20 20 20  20 20 20 20 20 50 52 4f  |             PRO|
00002d10  43 57 69 6d 70 5f 57 69  6e 64 6f 77 4f 70 65 6e  |CWimp_WindowOpen|
00002d20  28 77 69 6e 64 6f 77 25  2c 73 74 61 74 65 25 29  |(window%,state%)|
00002d30  0d 0e 06 3a f4 7c 20 20  20 20 20 20 20 20 20 20  |...:.|          |
00002d40  20 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  |        PROCWimp|
00002d50  5f 57 69 6e 64 6f 77 42  72 69 6e 67 54 6f 54 6f  |_WindowBringToTo|
00002d60  70 28 77 69 6e 64 6f 77  25 29 0d 0e 10 35 f4 7c  |p(window%)...5.||
00002d70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002d80  20 20 50 52 4f 43 57 69  6d 70 5f 57 69 6e 64 6f  |  PROCWimp_Windo|
00002d90  77 43 6c 6f 73 65 28 77  69 6e 64 6f 77 25 29 0d  |wClose(window%).|
00002da0  0e 1a 36 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..6.|           |
00002db0  20 20 20 20 20 20 20 50  52 4f 43 57 69 6d 70 5f  |       PROCWimp_|
00002dc0  57 69 6e 64 6f 77 4f 70  65 6e 55 70 28 77 69 6e  |WindowOpenUp(win|
00002dd0  64 6f 77 25 29 0d 0e 24  06 f4 7c 0d 0e 2e 35 f4  |dow%)..$..|...5.|
00002de0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00002df0  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00002e00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002e10  0d 0e 38 06 f4 7c 0d 0e  42 06 f4 7c 0d 0e 4c 06  |..8..|..B..|..L.|
00002e20  f4 7c 0d 0e 56 06 f4 7c  0d 0e 60 26 20 20 20 20  |.|..V..|..`&    |
00002e30  20 20 dd 20 a4 57 69 6d  70 5f 57 69 6e 64 6f 77  |  . .Wimp_Window|
00002e40  4c 6f 61 64 28 20 77 69  6e 64 6f 77 24 29 0d 0e  |Load( window$)..|
00002e50  6a 46 20 20 20 20 20 3d  a4 57 69 6d 70 5f 57 69  |jF     =.Wimp_Wi|
00002e60  6e 64 6f 77 4c 6f 61 64  46 72 6f 6d 54 65 6d 70  |ndowLoadFromTemp|
00002e70  6c 61 74 65 28 77 69 6e  64 6f 77 24 2c 22 3c 4f  |late(window$,"<O|
00002e80  62 65 79 24 44 69 72 3e  2e 54 65 6d 70 6c 61 74  |bey$Dir>.Templat|
00002e90  65 73 22 29 0d 0e 74 06  f4 7c 0d 0e 7e 36 20 20  |es")..t..|..~6  |
00002ea0  20 20 20 20 dd 20 a4 57  69 6d 70 5f 57 69 6e 64  |    . .Wimp_Wind|
00002eb0  6f 77 4c 6f 61 64 46 72  6f 6d 54 65 6d 70 6c 61  |owLoadFromTempla|
00002ec0  74 65 28 77 24 2c 74 65  6d 70 6c 61 74 65 24 29  |te(w$,template$)|
00002ed0  0d 0e 88 0f 20 20 20 20  20 20 20 ea 20 63 25 0d  |....       . c%.|
00002ee0  0e 92 2c 20 20 20 20 20  20 20 c8 99 20 22 57 69  |..,       .. "Wi|
00002ef0  6d 70 5f 4f 70 65 6e 54  65 6d 70 6c 61 74 65 22  |mp_OpenTemplate"|
00002f00  2c 2c 74 65 6d 70 6c 61  74 65 24 0d 0e 9c 4d 20  |,,template$...M |
00002f10  20 20 20 20 20 20 c8 99  20 22 57 69 6d 70 5f 4c  |      .. "Wimp_L|
00002f20  6f 61 64 54 65 6d 70 6c  61 74 65 22 2c 2c 62 6c  |oadTemplate",,bl|
00002f30  6f 63 6b 25 2c 69 63 6f  6e 73 25 2c 69 63 6f 6e  |ock%,icons%,icon|
00002f40  5f 65 6e 64 25 2c 2d 31  2c 77 24 2c 30 20 b8 20  |_end%,-1,w$,0 . |
00002f50  2c 2c 69 63 6f 6e 73 25  0d 0e a6 2d 20 20 20 20  |,,icons%...-    |
00002f60  20 20 20 e7 20 73 70 72  69 74 65 73 25 3c 3e 30  |   . sprites%<>0|
00002f70  20 8c 20 62 6c 6f 63 6b  25 21 36 34 3d 73 70 72  | . block%!64=spr|
00002f80  69 74 65 73 25 0d 0e b0  2e 20 20 20 20 20 20 20  |ites%....       |
00002f90  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 57  |.. "Wimp_CreateW|
00002fa0  69 6e 64 6f 77 22 2c 2c  62 6c 6f 63 6b 25 20 b8  |indow",,block% .|
00002fb0  20 63 25 0d 0e ba 22 20  20 20 20 20 20 20 c8 99  | c%..."       ..|
00002fc0  20 22 57 69 6d 70 5f 43  6c 6f 73 65 54 65 6d 70  | "Wimp_CloseTemp|
00002fd0  6c 61 74 65 22 0d 0e c4  0c 20 20 20 20 20 3d 63  |late"....     =c|
00002fe0  25 0d 0e ce 06 f4 7c 0d  0e d8 2c 20 20 20 20 20  |%.....|...,     |
00002ff0  20 dd 20 f2 57 69 6d 70  5f 57 69 6e 64 6f 77 4f  | . .Wimp_WindowO|
00003000  70 65 6e 28 77 69 6e 64  6f 77 25 2c 73 74 61 74  |pen(window%,stat|
00003010  65 25 29 0d 0e e2 1a 20  20 20 20 20 20 20 21 62  |e%)....       !b|
00003020  6c 6f 63 6b 25 3d 77 69  6e 64 6f 77 25 0d 0e ec  |lock%=window%...|
00003030  38 20 20 20 20 20 20 20  e7 20 73 74 61 74 65 25  |8       . state%|
00003040  3d 30 20 8c 20 c8 99 20  22 57 69 6d 70 5f 47 65  |=0 . .. "Wimp_Ge|
00003050  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 62  |tWindowState",,b|
00003060  6c 6f 63 6b 25 0d 0e f6  27 20 20 20 20 20 20 20  |lock%...'       |
00003070  c8 99 20 22 57 69 6d 70  5f 4f 70 65 6e 57 69 6e  |.. "Wimp_OpenWin|
00003080  64 6f 77 22 2c 2c 62 6c  6f 63 6b 25 0d 0f 00 0b  |dow",,block%....|
00003090  20 20 20 20 20 20 e1 0d  0f 0a 06 f4 7c 0d 0f 14  |      ......|...|
000030a0  2b 20 20 20 20 20 20 dd  20 f2 57 69 6d 70 5f 57  |+      . .Wimp_W|
000030b0  69 6e 64 6f 77 42 72 69  6e 67 54 6f 54 6f 70 28  |indowBringToTop(|
000030c0  77 69 6e 64 6f 77 25 29  0d 0f 1e 1a 20 20 20 20  |window%)....    |
000030d0  20 20 20 21 62 6c 6f 63  6b 25 3d 77 69 6e 64 6f  |   !block%=windo|
000030e0  77 25 0d 0f 28 2b 20 20  20 20 20 20 20 c8 99 20  |w%..(+       .. |
000030f0  22 57 69 6d 70 5f 47 65  74 57 69 6e 64 6f 77 53  |"Wimp_GetWindowS|
00003100  74 61 74 65 22 2c 2c 62  6c 6f 63 6b 25 0d 0f 32  |tate",,block%..2|
00003110  17 20 20 20 20 20 20 20  62 6c 6f 63 6b 25 21 32  |.       block%!2|
00003120  38 3d 2d 31 0d 0f 3c 27  20 20 20 20 20 20 20 c8  |8=-1..<'       .|
00003130  99 20 22 57 69 6d 70 5f  4f 70 65 6e 57 69 6e 64  |. "Wimp_OpenWind|
00003140  6f 77 22 2c 2c 62 6c 6f  63 6b 25 0d 0f 46 0b 20  |ow",,block%..F. |
00003150  20 20 20 20 20 e1 0d 0f  50 06 f4 7c 0d 0f 5a 27  |     ...P..|..Z'|
00003160  20 20 20 20 20 20 dd 20  20 f2 57 69 6d 70 5f 57  |      .  .Wimp_W|
00003170  69 6e 64 6f 77 43 6c 6f  73 65 28 77 69 6e 64 6f  |indowClose(windo|
00003180  77 25 29 0d 0f 64 1a 20  20 20 20 20 20 20 21 62  |w%)..d.       !b|
00003190  6c 6f 63 6b 25 3d 77 69  6e 64 6f 77 25 0d 0f 6e  |lock%=window%..n|
000031a0  28 20 20 20 20 20 20 20  c8 99 20 22 57 69 6d 70  |(       .. "Wimp|
000031b0  5f 43 6c 6f 73 65 57 69  6e 64 6f 77 22 2c 2c 62  |_CloseWindow",,b|
000031c0  6c 6f 63 6b 25 0d 0f 78  0b 20 20 20 20 20 20 e1  |lock%..x.      .|
000031d0  0d 0f 82 06 f4 7c 0d 0f  8c 27 20 20 20 20 20 20  |.....|...'      |
000031e0  dd 20 f2 57 69 6d 70 5f  57 69 6e 64 6f 77 4f 70  |. .Wimp_WindowOp|
000031f0  65 6e 55 70 28 77 69 6e  64 6f 77 25 29 0d 0f 96  |enUp(window%)...|
00003200  26 20 20 20 20 20 20 20  f2 57 69 6d 70 5f 57 69  |&       .Wimp_Wi|
00003210  6e 64 6f 77 4f 70 65 6e  28 77 69 6e 64 6f 77 25  |ndowOpen(window%|
00003220  2c 30 29 0d 0f a0 29 20  20 20 20 20 20 20 f2 57  |,0)...)       .W|
00003230  69 6d 70 5f 57 69 6e 64  6f 77 46 6f 72 63 65 44  |imp_WindowForceD|
00003240  72 61 77 28 77 69 6e 64  6f 77 25 29 0d 0f aa 0b  |raw(window%)....|
00003250  20 20 20 20 20 20 e1 0d  0f b4 06 f4 7c 0d 0f be  |      ......|...|
00003260  06 f4 7c 0d 0f c8 06 f4  7c 0d 0f d2 06 f4 7c 0d  |..|.....|.....|.|
00003270  0f dc 1d f4 7c 20 20 20  20 20 2d 2d 2d 2d 2d 2d  |....|     ------|
00003280  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 0f e6 1d  |------------....|
00003290  f4 7c 20 20 20 20 20 33  2e 32 a0 57 69 6e 64 6f  |.|     3.2.Windo|
000032a0  77 a0 64 72 61 77 69 6e  67 0d 0f f0 1d f4 7c 20  |w.drawing.....| |
000032b0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
000032c0  2d 2d 2d 2d 2d 2d 0d 0f  fa 06 f4 7c 0d 10 04 06  |------.....|....|
000032d0  f4 7c 0d 10 0e 35 f4 7c  20 20 20 20 20 20 20 20  |.|...5.|        |
000032e0  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |        --------|
000032f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003300  2d 2d 2d 2d 2d 2d 2d 0d  10 18 06 f4 7c 0d 10 22  |-------.....|.."|
00003310  28 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |(.|             |
00003320  20 20 20 20 20 20 20 20  20 50 72 6f 63 65 64 75  |         Procedu|
00003330  72 65 73 20 3a 0d 10 2c  06 f4 7c 0d 10 36 39 f4  |res :..,..|..69.|
00003340  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00003350  20 20 20 50 52 4f 43 57  69 6d 70 5f 57 69 6e 64  |   PROCWimp_Wind|
00003360  6f 77 46 6f 72 63 65 44  72 61 77 28 77 69 6e 64  |owForceDraw(wind|
00003370  6f 77 25 29 0d 10 40 3c  f4 7c 20 20 20 20 20 20  |ow%)..@<.|      |
00003380  20 20 20 20 20 20 20 20  20 20 20 20 44 45 46 20  |            DEF |
00003390  46 4e 49 6e 74 65 72 6e  61 6c 5f 57 69 6e 64 6f  |FNInternal_Windo|
000033a0  77 58 4f 72 69 67 69 6e  28 62 6c 6f 63 6b 25 29  |wXOrigin(block%)|
000033b0  0d 10 4a 3c f4 7c 20 20  20 20 20 20 20 20 20 20  |..J<.|          |
000033c0  20 20 20 20 20 20 20 20  44 45 46 20 46 4e 49 6e  |        DEF FNIn|
000033d0  74 65 72 6e 61 6c 5f 57  69 6e 64 6f 77 59 4f 72  |ternal_WindowYOr|
000033e0  69 67 69 6e 28 62 6c 6f  63 6b 25 29 0d 10 54 36  |igin(block%)..T6|
000033f0  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
00003400  20 20 20 20 46 4e 57 69  6d 70 5f 47 65 74 57 69  |    FNWimp_GetWi|
00003410  6e 64 6f 77 54 69 74 6c  65 28 77 69 6e 64 6f 77  |ndowTitle(window|
00003420  25 29 0d 10 5e 2b f4 7c  20 20 20 20 20 20 20 20  |%)..^+.|        |
00003430  20 20 20 20 20 20 20 20  20 20 20 50 52 4f 43 57  |           PROCW|
00003440  69 6d 70 5f 44 72 61 77  28 78 2c 79 29 0d 10 68  |imp_Draw(x,y)..h|
00003450  2b f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |+.|             |
00003460  20 20 20 20 20 20 50 52  4f 43 57 69 6d 70 5f 4d  |      PROCWimp_M|
00003470  6f 76 65 28 78 2c 79 29  0d 10 72 31 f4 7c 20 20  |ove(x,y)..r1.|  |
00003480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003490  20 50 52 4f 43 57 69 6d  70 5f 4c 69 6e 65 28 78  | PROCWimp_Line(x|
000034a0  2c 79 2c 78 31 2c 79 31  29 0d 10 7c 06 f4 7c 0d  |,y,x1,y1)..|..|.|
000034b0  10 86 35 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..5.|           |
000034c0  20 20 20 20 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |     -----------|
000034d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000034e0  2d 2d 2d 2d 0d 10 90 06  f4 7c 0d 10 9a 06 f4 7c  |----.....|.....||
000034f0  0d 10 a4 06 f4 7c 0d 10  ae 26 20 20 20 20 20 20  |.....|...&      |
00003500  20 20 20 20 20 20 dd 20  f2 49 6e 74 65 72 6e 61  |      . .Interna|
00003510  6c 5f 57 69 6e 64 6f 77  44 72 61 77 0d 10 b8 18  |l_WindowDraw....|
00003520  20 20 20 20 20 20 20 20  20 20 20 20 20 ea 20 6d  |             . m|
00003530  6f 72 65 25 0d 10 c2 37  20 20 20 20 20 20 20 20  |ore%...7        |
00003540  20 20 20 20 20 c8 99 20  22 57 69 6d 70 5f 52 65  |     .. "Wimp_Re|
00003550  64 72 61 77 57 69 6e 64  6f 77 22 2c 2c 62 6c 6f  |drawWindow",,blo|
00003560  63 6b 25 20 b8 20 6d 6f  72 65 25 0d 10 cc 3a 20  |ck% . more%...: |
00003570  20 20 20 20 20 20 20 20  20 20 20 20 78 5f 6f 72  |            x_or|
00003580  69 67 69 6e 25 3d a4 49  6e 74 65 72 6e 61 6c 5f  |igin%=.Internal_|
00003590  57 69 6e 64 6f 77 58 4f  72 69 67 69 6e 28 62 6c  |WindowXOrigin(bl|
000035a0  6f 63 6b 25 29 0d 10 d6  3a 20 20 20 20 20 20 20  |ock%)...:       |
000035b0  20 20 20 20 20 20 79 5f  6f 72 69 67 69 6e 25 3d  |      y_origin%=|
000035c0  a4 49 6e 74 65 72 6e 61  6c 5f 57 69 6e 64 6f 77  |.Internal_Window|
000035d0  59 4f 72 69 67 69 6e 28  62 6c 6f 63 6b 25 29 0d  |YOrigin(block%).|
000035e0  10 e0 19 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
000035f0  c8 95 20 6d 6f 72 65 25  0d 10 ea 2d 20 20 20 20  |.. more%...-    |
00003600  20 20 20 20 20 20 20 20  20 20 f2 45 76 65 6e 74  |          .Event|
00003610  5f 44 72 61 77 57 69 6e  64 6f 77 28 62 6c 6f 63  |_DrawWindow(bloc|
00003620  6b 25 21 30 29 0d 10 f4  38 20 20 20 20 20 20 20  |k%!0)...8       |
00003630  20 20 20 20 20 20 20 c8  99 20 22 57 69 6d 70 5f  |       .. "Wimp_|
00003640  47 65 74 52 65 63 74 61  6e 67 6c 65 22 2c 2c 62  |GetRectangle",,b|
00003650  6c 6f 63 6b 25 20 b8 20  6d 6f 72 65 25 0d 10 fe  |lock% . more%...|
00003660  12 20 20 20 20 20 20 20  20 20 20 20 20 20 ce 0d  |.             ..|
00003670  11 08 12 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
00003680  e1 0d 11 12 06 f4 7c 0d  11 1c 30 20 20 20 20 20  |......|...0     |
00003690  20 20 20 20 20 20 20 dd  20 f2 57 69 6d 70 5f 57  |       . .Wimp_W|
000036a0  69 6e 64 6f 77 46 6f 72  63 65 44 72 61 77 28 77  |indowForceDraw(w|
000036b0  69 6e 64 6f 77 25 29 0d  11 26 1c 20 20 20 20 20  |indow%)..&.     |
000036c0  20 20 20 20 20 20 20 c8  8e 20 77 69 6e 64 6f 77  |       .. window|
000036d0  25 20 ca 0d 11 30 44 20  20 20 20 20 20 20 20 20  |% ...0D         |
000036e0  20 20 20 20 c9 20 2d 31  20 20 20 3a 20 c8 99 20  |    . -1   : .. |
000036f0  22 57 69 6d 70 5f 46 6f  72 63 65 52 65 64 72 61  |"Wimp_ForceRedra|
00003700  77 22 2c 2d 31 2c 30 2c  30 2c 32 2a 31 32 38 30  |w",-1,0,0,2*1280|
00003710  2c 32 2a 31 30 32 34 0d  11 3a 45 20 20 20 20 20  |,2*1024..:E     |
00003720  20 20 20 20 20 20 20 20  7f 20 3a 20 c8 99 20 22  |        . : .. "|
00003730  57 69 6d 70 5f 46 6f 72  63 65 52 65 64 72 61 77  |Wimp_ForceRedraw|
00003740  22 2c 77 69 6e 64 6f 77  25 2c 30 2c 2d 32 2a 31  |",window%,0,-2*1|
00003750  30 32 34 2c 32 2a 31 32  38 30 2c 30 0d 11 44 11  |024,2*1280,0..D.|
00003760  20 20 20 20 20 20 20 20  20 20 20 20 cb 0d 11 4e  |            ...N|
00003770  11 20 20 20 20 20 20 20  20 20 20 20 20 e1 0d 11  |.            ...|
00003780  58 06 f4 7c 0d 11 62 44  20 20 20 20 20 20 20 20  |X..|..bD        |
00003790  20 20 20 20 dd 20 a4 49  6e 74 65 72 6e 61 6c 5f  |    . .Internal_|
000037a0  57 69 6e 64 6f 77 58 4f  72 69 67 69 6e 28 62 6c  |WindowXOrigin(bl|
000037b0  6f 63 6b 25 29 3d 62 6c  6f 63 6b 25 21 34 2d 62  |ock%)=block%!4-b|
000037c0  6c 6f 63 6b 25 21 32 30  0d 11 6c 06 f4 7c 0d 11  |lock%!20..l..|..|
000037d0  76 45 20 20 20 20 20 20  20 20 20 20 20 20 dd 20  |vE            . |
000037e0  a4 49 6e 74 65 72 6e 61  6c 5f 57 69 6e 64 6f 77  |.Internal_Window|
000037f0  59 4f 72 69 67 69 6e 28  62 6c 6f 63 6b 25 29 3d  |YOrigin(block%)=|
00003800  62 6c 6f 63 6b 25 21 31  36 2d 62 6c 6f 63 6b 25  |block%!16-block%|
00003810  21 32 34 0d 11 80 06 f4  7c 0d 11 8a 2f 20 20 20  |!24.....|.../   |
00003820  20 20 20 20 20 20 20 20  20 dd 20 a4 57 69 6d 70  |         . .Wimp|
00003830  5f 47 65 74 57 69 6e 64  6f 77 54 69 74 6c 65 28  |_GetWindowTitle(|
00003840  77 69 6e 64 6f 77 25 29  0d 11 94 21 20 20 20 20  |window%)...!    |
00003850  20 20 20 20 20 20 20 20  20 62 6c 6f 63 6b 25 21  |         block%!|
00003860  30 3d 77 69 6e 64 6f 77  25 0d 11 9e 2e 20 20 20  |0=window%....   |
00003870  20 20 20 20 20 20 20 20  20 20 c8 99 20 22 57 69  |          .. "Wi|
00003880  6d 70 5f 47 65 74 57 69  6e 64 49 6e 66 6f 22 2c  |mp_GetWindInfo",|
00003890  2c 62 6c 6f 63 6b 25 0d  11 a8 44 20 20 20 20 20  |,block%...D     |
000038a0  20 20 20 20 20 20 20 20  e7 20 28 28 62 6c 6f 63  |        . ((bloc|
000038b0  6b 25 21 36 30 29 80 26  31 30 30 29 3d 30 20 85  |k%!60).&100)=0 .|
000038c0  20 31 2c 22 54 69 74 6c  65 20 69 73 6e 27 74 20  | 1,"Title isn't |
000038d0  69 6e 64 69 72 65 63 74  65 64 22 0d 11 b2 1c 20  |indirected".... |
000038e0  20 20 20 20 20 20 20 20  20 20 3d 24 28 62 6c 6f  |          =$(blo|
000038f0  63 6b 25 21 37 36 29 0d  11 bc 06 f4 7c 0d 11 c6  |ck%!76).....|...|
00003900  21 20 20 20 20 20 20 20  20 20 20 20 20 dd 20 f2  |!            . .|
00003910  57 69 6d 70 5f 44 72 61  77 28 78 2c 79 29 0d 11  |Wimp_Draw(x,y)..|
00003920  d0 2a 20 20 20 20 20 20  20 20 20 20 20 20 20 df  |.*             .|
00003930  20 78 2d 78 5f 6f 72 69  67 69 6e 25 2c 79 2d 79  | x-x_origin%,y-y|
00003940  5f 6f 72 69 67 69 6e 25  0d 11 da 11 20 20 20 20  |_origin%....    |
00003950  20 20 20 20 20 20 20 20  e1 0d 11 e4 06 f4 7c 0d  |        ......|.|
00003960  11 ee 21 20 20 20 20 20  20 20 20 20 20 20 20 dd  |..!            .|
00003970  20 f2 57 69 6d 70 5f 4d  6f 76 65 28 78 2c 79 29  | .Wimp_Move(x,y)|
00003980  0d 11 f8 2a 20 20 20 20  20 20 20 20 20 20 20 20  |...*            |
00003990  20 ec 20 78 2b 78 5f 6f  72 69 67 69 6e 25 2c 79  | . x+x_origin%,y|
000039a0  5f 6f 72 69 67 69 6e 25  2b 79 0d 12 02 11 20 20  |_origin%+y....  |
000039b0  20 20 20 20 20 20 20 20  20 20 e1 0d 12 0c 06 f4  |          ......|
000039c0  7c 0d 12 16 27 20 20 20  20 20 20 20 20 20 20 20  ||...'           |
000039d0  20 dd 20 f2 57 69 6d 70  5f 4c 69 6e 65 28 78 2c  | . .Wimp_Line(x,|
000039e0  79 2c 78 31 2c 79 31 29  0d 12 20 44 20 20 20 20  |y,x1,y1).. D    |
000039f0  20 20 20 20 20 20 20 20  20 86 20 78 2b 78 5f 6f  |         . x+x_o|
00003a00  72 69 67 69 6e 25 2c 79  2b 79 5f 6f 72 69 67 69  |rigin%,y+y_origi|
00003a10  6e 25 2c 78 31 2b 78 5f  6f 72 69 67 69 6e 25 2c  |n%,x1+x_origin%,|
00003a20  79 31 2b 79 5f 6f 72 69  67 69 6e 25 0d 12 2a 11  |y1+y_origin%..*.|
00003a30  20 20 20 20 20 20 20 20  20 20 20 20 e1 0d 12 34  |            ...4|
00003a40  06 f4 7c 0d 12 3e 06 f4  7c 0d 12 48 06 f4 7c 0d  |..|..>..|..H..|.|
00003a50  12 52 06 f4 7c 0d 12 5c  06 f4 7c 0d 12 66 06 f4  |.R..|..\..|..f..|
00003a60  7c 0d 12 70 06 f4 7c 0d  12 7a 31 f4 7c 20 20 20  ||..p..|..z1.|   |
00003a70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  |               -|
00003a80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003a90  2d 2d 2d 2d 2d 2d 2d 2d  0d 12 84 28 f4 7c 20 20  |--------...(.|  |
00003aa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003ab0  20 20 20 20 20 20 20 20  34 2e a0 49 63 6f 6e 73  |        4..Icons|
00003ac0  0d 12 8e 31 f4 7c 20 20  20 20 20 20 20 20 20 20  |...1.|          |
00003ad0  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |        --------|
00003ae0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003af0  2d 0d 12 98 06 f4 7c 0d  12 a2 06 f4 7c 0d 12 ac  |-.....|.....|...|
00003b00  35 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |5.|             |
00003b10  20 20 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |   -------------|
00003b20  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003b30  2d 2d 0d 12 b6 06 f4 7c  0d 12 c0 28 f4 7c 20 20  |--.....|...(.|  |
00003b40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003b50  20 20 20 20 50 72 6f 63  65 64 75 72 65 73 20 3a  |    Procedures :|
00003b60  0d 12 ca 06 f4 7c 0d 12  d4 29 f4 7c 20 20 20 20  |.....|...).|    |
00003b70  20 20 20 46 4e 57 69 6d  70 5f 50 75 74 49 63 6f  |   FNWimp_PutIco|
00003b80  6e 4f 6e 42 61 72 28 53  70 72 69 74 65 24 29 0d  |nOnBar(Sprite$).|
00003b90  12 de 83 f4 7c 20 20 20  20 20 20 20 46 4e 57 69  |....|       FNWi|
00003ba0  6d 70 5f 49 63 6f 6e 43  72 65 61 74 65 28 77 69  |mp_IconCreate(wi|
00003bb0  6e 64 6f 77 25 2c 69 78  25 2c 69 79 25 2c 69 77  |ndow%,ix%,iy%,iw|
00003bc0  25 2c 69 68 25 2c 66 6c  61 67 25 2c 74 65 78 74  |%,ih%,flag%,text|
00003bd0  24 2c 64 31 25 2c 64 32  25 2c 64 33 25 29 52 45  |$,d1%,d2%,d3%)RE|
00003be0  4d 7c 20 20 20 20 20 20  20 46 4e 57 69 6d 70 5f  |M|       FNWimp_|
00003bf0  47 65 74 56 61 6c 69 64  61 74 69 6f 6e 53 74 72  |GetValidationStr|
00003c00  69 6e 67 28 77 69 6e 64  6f 77 25 2c 69 63 6f 6e  |ing(window%,icon|
00003c10  25 29 0d 12 e8 32 f4 7c  20 20 20 20 20 20 20 46  |%)...2.|       F|
00003c20  4e 57 69 6d 70 5f 47 65  74 54 65 78 74 46 72 6f  |NWimp_GetTextFro|
00003c30  6d 49 63 6f 6e 28 77 69  6e 64 6f 77 25 2c 69 63  |mIcon(window%,ic|
00003c40  6f 6e 25 29 0d 12 f2 38  f4 7c 20 20 20 20 20 20  |on%)...8.|      |
00003c50  20 50 52 4f 43 57 69 6d  70 5f 50 75 74 54 65 78  | PROCWimp_PutTex|
00003c60  74 49 6e 49 63 6f 6e 28  77 69 6e 64 6f 77 25 2c  |tInIcon(window%,|
00003c70  69 63 6f 6e 25 2c 74 65  78 74 24 29 0d 12 fc 2f  |icon%,text$).../|
00003c80  f4 7c 20 20 20 20 20 20  20 50 52 4f 43 57 69 6d  |.|       PROCWim|
00003c90  70 5f 45 6e 61 62 6c 65  49 63 6f 6e 28 77 69 6e  |p_EnableIcon(win|
00003ca0  64 6f 77 25 2c 69 63 6f  6e 25 29 0d 13 06 30 f4  |dow%,icon%)...0.|
00003cb0  7c 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  ||       PROCWimp|
00003cc0  5f 44 69 73 61 62 6c 65  49 63 6f 6e 28 77 69 6e  |_DisableIcon(win|
00003cd0  64 6f 77 25 2c 69 63 6f  6e 25 29 0d 13 10 4e f4  |dow%,icon%)...N.|
00003ce0  7c 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  ||       PROCWimp|
00003cf0  5f 50 6c 6f 74 49 63 6f  6e 28 62 6c 6f 63 6b 25  |_PlotIcon(block%|
00003d00  2c 69 78 25 2c 69 79 25  2c 69 77 25 2c 69 68 25  |,ix%,iy%,iw%,ih%|
00003d10  2c 66 6c 61 67 25 2c 74  65 78 74 24 2c 64 31 25  |,flag%,text$,d1%|
00003d20  2c 64 32 25 2c 64 33 25  29 0d 13 1a 21 f4 7c 20  |,d2%,d3%)...!.| |
00003d30  20 20 20 20 20 20 50 52  4f 43 57 69 6d 70 5f 53  |      PROCWimp_S|
00003d40  70 72 69 74 65 73 4c 6f  61 64 0d 13 24 30 f4 7c  |pritesLoad..$0.||
00003d50  20 20 20 20 20 20 20 50  52 4f 43 57 69 6d 70 5f  |       PROCWimp_|
00003d60  53 70 72 69 74 65 73 50  61 74 68 4c 6f 61 64 28  |SpritesPathLoad(|
00003d70  70 61 74 68 6e 61 6d 65  24 29 0d 13 2e 06 f4 7c  |pathname$).....||
00003d80  0d 13 38 35 f4 7c 20 20  20 20 20 20 20 20 20 20  |..85.|          |
00003d90  20 20 20 20 20 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |      ----------|
00003da0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003db0  2d 2d 2d 2d 2d 0d 13 42  06 f4 7c 0d 13 4c 27 20  |-----..B..|..L' |
00003dc0  20 20 20 20 20 dd 20 a4  57 69 6d 70 5f 50 75 74  |     . .Wimp_Put|
00003dd0  49 63 6f 6e 4f 6e 42 61  72 28 53 70 72 69 74 65  |IconOnBar(Sprite|
00003de0  24 29 0d 13 56 3c 20 20  20 20 20 3d a4 57 69 6d  |$)..V<     =.Wim|
00003df0  70 5f 49 63 6f 6e 43 72  65 61 74 65 28 2d 31 2c  |p_IconCreate(-1,|
00003e00  30 2c 30 2c 36 38 2c 36  38 2c 26 33 30 30 32 2c  |0,0,68,68,&3002,|
00003e10  53 70 72 69 74 65 24 2c  30 2c 30 2c 30 29 0d 13  |Sprite$,0,0,0)..|
00003e20  60 06 f4 7c 0d 13 6a 4d  20 20 20 20 20 20 dd 20  |`..|..jM      . |
00003e30  a4 57 69 6d 70 5f 49 63  6f 6e 43 72 65 61 74 65  |.Wimp_IconCreate|
00003e40  28 77 69 6e 64 6f 77 25  2c 69 78 25 2c 69 79 25  |(window%,ix%,iy%|
00003e50  2c 69 77 25 2c 69 68 25  2c 66 6c 61 67 25 2c 74  |,iw%,ih%,flag%,t|
00003e60  65 78 74 24 2c 64 31 25  2c 64 32 25 2c 64 33 25  |ext$,d1%,d2%,d3%|
00003e70  29 0d 13 74 1b 20 20 20  20 20 20 20 62 6c 6f 63  |)..t.       bloc|
00003e80  6b 25 21 30 3d 77 69 6e  64 6f 77 25 0d 13 7e 2b  |k%!0=window%..~+|
00003e90  20 20 20 20 20 20 20 62  6c 6f 63 6b 25 21 34 3d  |       block%!4=|
00003ea0  69 78 25 20 20 20 20 20  20 3a 20 62 6c 6f 63 6b  |ix%      : block|
00003eb0  25 21 38 3d 69 79 25 0d  13 88 30 20 20 20 20 20  |%!8=iy%...0     |
00003ec0  20 20 62 6c 6f 63 6b 25  21 31 32 3d 69 78 25 2b  |  block%!12=ix%+|
00003ed0  69 77 25 20 3a 20 62 6c  6f 63 6b 25 21 31 36 3d  |iw% : block%!16=|
00003ee0  69 79 25 2b 69 68 25 0d  13 92 1a 20 20 20 20 20  |iy%+ih%....     |
00003ef0  20 20 62 6c 6f 63 6b 25  21 32 30 3d 66 6c 61 67  |  block%!20=flag|
00003f00  25 0d 13 9c 14 20 20 20  20 20 20 20 e7 20 64 31  |%....       . d1|
00003f10  25 3d 30 20 8c 0d 13 a6  1e 20 20 20 20 20 20 20  |%=0 .....       |
00003f20  20 24 28 62 6c 6f 63 6b  25 2b 32 34 29 3d 74 65  | $(block%+24)=te|
00003f30  78 74 24 0d 13 b0 0c 20  20 20 20 20 20 20 cc 0d  |xt$....       ..|
00003f40  13 ba 39 20 20 20 20 20  20 20 20 62 6c 6f 63 6b  |..9        block|
00003f50  25 21 32 34 3d 64 31 25  20 3a 20 62 6c 6f 63 6b  |%!24=d1% : block|
00003f60  25 21 32 38 3d 64 32 25  20 3a 20 62 6c 6f 63 6b  |%!28=d2% : block|
00003f70  25 21 33 32 3d 64 33 25  0d 13 c4 0c 20 20 20 20  |%!32=d3%....    |
00003f80  20 20 20 cd 0d 13 ce 2f  20 20 20 20 20 20 20 c8  |   ..../       .|
00003f90  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 49 63  |. "Wimp_CreateIc|
00003fa0  6f 6e 22 2c 2c 62 6c 6f  63 6b 25 20 b8 20 69 63  |on",,block% . ic|
00003fb0  6f 6e 25 0d 13 d8 0f 20  20 20 20 20 3d 69 63 6f  |on%....     =ico|
00003fc0  6e 25 0d 13 e2 06 f4 7c  0d 13 ec 34 20 20 20 20  |n%.....|...4    |
00003fd0  20 20 dd 20 f2 57 69 6d  70 5f 50 75 74 54 65 78  |  . .Wimp_PutTex|
00003fe0  74 49 6e 49 63 6f 6e 28  77 69 6e 64 6f 77 25 2c  |tInIcon(window%,|
00003ff0  69 63 6f 6e 25 2c 74 65  78 74 24 29 0d 13 f6 2c  |icon%,text$)...,|
00004000  20 20 20 20 20 20 20 62  6c 6f 63 6b 25 21 30 3d  |       block%!0=|
00004010  77 69 6e 64 6f 77 25 20  3a 20 62 6c 6f 63 6b 25  |window% : block%|
00004020  21 34 3d 69 63 6f 6e 25  0d 14 00 29 20 20 20 20  |!4=icon%...)    |
00004030  20 20 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 49  |   .. "Wimp_GetI|
00004040  63 6f 6e 53 74 61 74 65  22 2c 2c 62 6c 6f 63 6b  |conState",,block|
00004050  25 0d 14 0a 3f 20 20 20  20 20 20 20 e7 20 28 28  |%...?       . ((|
00004060  62 6c 6f 63 6b 25 21 32  34 29 20 80 20 26 31 30  |block%!24) . &10|
00004070  30 29 3d 30 20 85 20 31  2c 22 49 63 6f 6e 20 69  |0)=0 . 1,"Icon i|
00004080  73 6e 27 74 20 69 6e 64  69 72 65 63 74 65 64 22  |sn't indirected"|
00004090  0d 14 14 1d 20 20 20 20  20 20 20 24 28 62 6c 6f  |....       $(blo|
000040a0  63 6b 25 21 32 38 29 3d  74 65 78 74 24 0d 14 1e  |ck%!28)=text$...|
000040b0  2c 20 20 20 20 20 20 20  62 6c 6f 63 6b 25 21 30  |,       block%!0|
000040c0  3d 77 69 6e 64 6f 77 25  20 3a 20 62 6c 6f 63 6b  |=window% : block|
000040d0  25 21 34 3d 69 63 6f 6e  25 0d 14 28 23 20 20 20  |%!4=icon%..(#   |
000040e0  20 20 20 20 62 6c 6f 63  6b 25 21 38 3d 30 20 3a  |    block%!8=0 :|
000040f0  20 62 6c 6f 63 6b 25 21  31 32 3d 30 0d 14 32 29  | block%!12=0..2)|
00004100  20 20 20 20 20 20 20 c8  99 20 22 57 69 6d 70 5f  |       .. "Wimp_|
00004110  53 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 62  |SetIconState",,b|
00004120  6c 6f 63 6b 25 0d 14 3c  0b 20 20 20 20 20 20 e1  |lock%..<.      .|
00004130  0d 14 46 06 f4 7c 0d 14  50 30 20 20 20 20 20 20  |..F..|..P0      |
00004140  dd 20 a4 57 69 6d 70 5f  47 65 74 54 65 78 74 46  |. .Wimp_GetTextF|
00004150  72 6f 6d 49 63 6f 6e 28  77 69 6e 64 6f 77 25 2c  |romIcon(window%,|
00004160  69 63 6f 6e 25 29 0d 14  5a 2c 20 20 20 20 20 20  |icon%)..Z,      |
00004170  20 62 6c 6f 63 6b 25 21  30 3d 77 69 6e 64 6f 77  | block%!0=window|
00004180  25 20 3a 20 62 6c 6f 63  6b 25 21 34 3d 69 63 6f  |% : block%!4=ico|
00004190  6e 25 0d 14 64 29 20 20  20 20 20 20 20 c8 99 20  |n%..d)       .. |
000041a0  22 57 69 6d 70 5f 47 65  74 49 63 6f 6e 53 74 61  |"Wimp_GetIconSta|
000041b0  74 65 22 2c 2c 62 6c 6f  63 6b 25 0d 14 6e 3f 20  |te",,block%..n? |
000041c0  20 20 20 20 20 20 e7 20  28 28 62 6c 6f 63 6b 25  |      . ((block%|
000041d0  21 32 34 29 20 80 20 26  31 30 30 29 3d 30 20 85  |!24) . &100)=0 .|
000041e0  20 31 2c 22 49 63 6f 6e  20 69 73 6e 27 74 20 69  | 1,"Icon isn't i|
000041f0  6e 64 69 72 65 63 74 65  64 22 0d 14 78 16 20 20  |ndirected"..x.  |
00004200  20 20 20 3d 24 28 62 6c  6f 63 6b 25 21 32 38 29  |   =$(block%!28)|
00004210  0d 14 82 06 f4 7c 0d 14  8c 34 20 20 20 20 20 20  |.....|...4      |
00004220  dd 20 a4 57 69 6d 70 5f  47 65 74 56 61 6c 69 64  |. .Wimp_GetValid|
00004230  61 74 69 6f 6e 53 74 72  69 6e 67 28 77 69 6e 64  |ationString(wind|
00004240  6f 77 25 2c 69 63 6f 6e  25 29 0d 14 96 2c 20 20  |ow%,icon%)...,  |
00004250  20 20 20 20 20 62 6c 6f  63 6b 25 21 30 3d 77 69  |     block%!0=wi|
00004260  6e 64 6f 77 25 20 3a 20  62 6c 6f 63 6b 25 21 34  |ndow% : block%!4|
00004270  3d 69 63 6f 6e 25 0d 14  a0 29 20 20 20 20 20 20  |=icon%...)      |
00004280  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 49 63 6f  | .. "Wimp_GetIco|
00004290  6e 53 74 61 74 65 22 2c  2c 62 6c 6f 63 6b 25 0d  |nState",,block%.|
000042a0  14 aa 3f 20 20 20 20 20  20 20 e7 20 28 28 62 6c  |..?       . ((bl|
000042b0  6f 63 6b 25 21 32 34 29  20 80 20 26 31 30 30 29  |ock%!24) . &100)|
000042c0  3d 30 20 85 20 31 2c 22  49 63 6f 6e 20 69 73 6e  |=0 . 1,"Icon isn|
000042d0  27 74 20 69 6e 64 69 72  65 63 74 65 64 22 0d 14  |'t indirected"..|
000042e0  b4 16 20 20 20 20 20 3d  24 28 62 6c 6f 63 6b 25  |..     =$(block%|
000042f0  21 33 32 29 0d 14 be 06  f4 7c 0d 14 c8 2b 20 20  |!32).....|...+  |
00004300  20 20 20 20 dd 20 f2 57  69 6d 70 5f 45 6e 61 62  |    . .Wimp_Enab|
00004310  6c 65 49 63 6f 6e 28 77  69 6e 64 6f 77 25 2c 69  |leIcon(window%,i|
00004320  63 6f 6e 25 29 0d 14 d2  2c 20 20 20 20 20 20 20  |con%)...,       |
00004330  62 6c 6f 63 6b 25 21 30  3d 77 69 6e 64 6f 77 25  |block%!0=window%|
00004340  20 3a 20 62 6c 6f 63 6b  25 21 34 3d 69 63 6f 6e  | : block%!4=icon|
00004350  25 0d 14 dc 2d 20 20 20  20 20 20 20 62 6c 6f 63  |%...-       bloc|
00004360  6b 25 21 38 3d 30 20 20  20 20 20 20 20 3a 20 62  |k%!8=0       : b|
00004370  6c 6f 63 6b 25 21 31 32  3d 31 3c 3c 32 32 0d 14  |lock%!12=1<<22..|
00004380  e6 29 20 20 20 20 20 20  20 c8 99 20 22 57 69 6d  |.)       .. "Wim|
00004390  70 5f 53 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_SetIconState",|
000043a0  2c 62 6c 6f 63 6b 25 0d  14 f0 0b 20 20 20 20 20  |,block%....     |
000043b0  20 e1 0d 14 fa 06 f4 7c  0d 15 04 2c 20 20 20 20  | ......|...,    |
000043c0  20 20 dd 20 f2 57 69 6d  70 5f 44 69 73 61 62 6c  |  . .Wimp_Disabl|
000043d0  65 49 63 6f 6e 28 77 69  6e 64 6f 77 25 2c 69 63  |eIcon(window%,ic|
000043e0  6f 6e 25 29 0d 15 0e 2c  20 20 20 20 20 20 20 62  |on%)...,       b|
000043f0  6c 6f 63 6b 25 21 30 3d  77 69 6e 64 6f 77 25 20  |lock%!0=window% |
00004400  3a 20 62 6c 6f 63 6b 25  21 34 3d 69 63 6f 6e 25  |: block%!4=icon%|
00004410  0d 15 18 2d 20 20 20 20  20 20 20 62 6c 6f 63 6b  |...-       block|
00004420  25 21 38 3d 31 3c 3c 32  32 20 20 20 3a 20 62 6c  |%!8=1<<22   : bl|
00004430  6f 63 6b 25 21 31 32 3d  31 3c 3c 32 32 0d 15 22  |ock%!12=1<<22.."|
00004440  29 20 20 20 20 20 20 20  c8 99 20 22 57 69 6d 70  |)       .. "Wimp|
00004450  5f 53 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_SetIconState",,|
00004460  62 6c 6f 63 6b 25 0d 15  2c 0b 20 20 20 20 20 20  |block%..,.      |
00004470  e1 0d 15 36 06 f4 7c 0d  15 40 4a 20 20 20 20 20  |...6..|..@J     |
00004480  20 dd 20 f2 57 69 6d 70  5f 50 6c 6f 74 49 63 6f  | . .Wimp_PlotIco|
00004490  6e 28 62 6c 6f 63 6b 25  2c 69 78 25 2c 69 79 25  |n(block%,ix%,iy%|
000044a0  2c 69 77 25 2c 69 68 25  2c 66 6c 61 67 25 2c 74  |,iw%,ih%,flag%,t|
000044b0  65 78 74 24 2c 64 31 25  2c 64 32 25 2c 64 33 25  |ext$,d1%,d2%,d3%|
000044c0  29 0d 15 4a 2b 20 20 20  20 20 20 20 62 6c 6f 63  |)..J+       bloc|
000044d0  6b 25 21 30 3d 69 78 25  20 20 20 20 20 20 3a 20  |k%!0=ix%      : |
000044e0  62 6c 6f 63 6b 25 21 34  3d 69 79 25 0d 15 54 2f  |block%!4=iy%..T/|
000044f0  20 20 20 20 20 20 20 62  6c 6f 63 6b 25 21 38 3d  |       block%!8=|
00004500  69 78 25 2b 69 77 25 20  3a 20 62 6c 6f 63 6b 25  |ix%+iw% : block%|
00004510  21 31 32 3d 69 79 25 2b  69 68 25 0d 15 5e 1a 20  |!12=iy%+ih%..^. |
00004520  20 20 20 20 20 20 62 6c  6f 63 6b 25 21 31 36 3d  |      block%!16=|
00004530  66 6c 61 67 25 0d 15 68  14 20 20 20 20 20 20 20  |flag%..h.       |
00004540  e7 20 64 31 25 3d 30 20  8c 0d 15 72 1e 20 20 20  |. d1%=0 ...r.   |
00004550  20 20 20 20 20 24 28 62  6c 6f 63 6b 25 2b 32 34  |     $(block%+24|
00004560  29 3d 74 65 78 74 24 0d  15 7c 0c 20 20 20 20 20  |)=text$..|.     |
00004570  20 20 cc 0d 15 86 39 20  20 20 20 20 20 20 20 62  |  ....9        b|
00004580  6c 6f 63 6b 25 21 32 34  3d 64 31 25 20 3a 20 62  |lock%!24=d1% : b|
00004590  6c 6f 63 6b 25 21 32 38  3d 64 32 25 20 3a 20 62  |lock%!28=d2% : b|
000045a0  6c 6f 63 6b 25 21 33 32  3d 64 33 25 0d 15 90 0c  |lock%!32=d3%....|
000045b0  20 20 20 20 20 20 20 cd  0d 15 9a 25 20 20 20 20  |       ....%    |
000045c0  20 20 20 c8 99 20 22 57  69 6d 70 5f 50 6c 6f 74  |   .. "Wimp_Plot|
000045d0  49 63 6f 6e 22 2c 2c 62  6c 6f 63 6b 25 0d 15 a4  |Icon",,block%...|
000045e0  0c 20 20 20 20 20 20 20  e1 0d 15 ae 06 f4 7c 0d  |.       ......|.|
000045f0  15 b8 1e 20 20 20 20 20  20 20 dd 20 f2 57 69 6d  |...       . .Wim|
00004600  70 5f 53 70 72 69 74 65  73 4c 6f 61 64 0d 15 c2  |p_SpritesLoad...|
00004610  37 20 20 20 20 20 20 20  20 f2 57 69 6d 70 5f 53  |7        .Wimp_S|
00004620  70 72 69 74 65 73 50 61  74 68 4c 6f 61 64 28 22  |pritesPathLoad("|
00004630  3c 4f 62 65 79 24 44 69  72 3e 2e 53 70 72 69 74  |<Obey$Dir>.Sprit|
00004640  65 73 22 29 0d 15 cc 0c  20 20 20 20 20 20 20 e1  |es")....       .|
00004650  0d 15 d6 06 f4 7c 0d 15  e0 2d 20 20 20 20 20 20  |.....|...-      |
00004660  20 dd 20 f2 57 69 6d 70  5f 53 70 72 69 74 65 73  | . .Wimp_Sprites|
00004670  50 61 74 68 4c 6f 61 64  28 70 61 74 68 6e 61 6d  |PathLoad(pathnam|
00004680  65 24 29 0d 15 ea 13 20  20 20 20 20 20 20 20 ea  |e$)....        .|
00004690  20 53 25 2c 54 25 0d 15  f4 34 20 20 20 20 20 20  | S%,T%...4      |
000046a0  20 20 53 25 3d 8e 22 3c  4f 62 65 79 24 44 69 72  |  S%=."<Obey$Dir|
000046b0  3e 2e 53 70 72 69 74 65  73 22 3a 54 25 3d a2 23  |>.Sprites":T%=.#|
000046c0  53 25 2b 31 36 3a d9 23  53 25 0d 15 fe 25 20 20  |S%+16:.#S%...%  |
000046d0  20 20 20 20 20 20 de 20  73 70 72 69 74 65 73 25  |      . sprites%|
000046e0  20 54 25 2c 20 73 70 6e  61 6d 65 25 20 31 32 0d  | T%, spname% 12.|
000046f0  16 08 25 20 20 20 20 20  20 20 20 21 73 70 72 69  |..%        !spri|
00004700  74 65 73 25 3d 54 25 3a  73 70 72 69 74 65 73 25  |tes%=T%:sprites%|
00004710  21 38 3d 30 0d 16 12 2a  20 20 20 20 20 20 20 20  |!8=0...*        |
00004720  c8 99 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |.. "OS_SpriteOp"|
00004730  2c 26 31 30 39 2c 73 70  72 69 74 65 73 25 0d 16  |,&109,sprites%..|
00004740  1c 34 20 20 20 20 20 20  20 20 c8 99 20 22 4f 53  |.4        .. "OS|
00004750  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 30 41 2c  |_SpriteOp",&10A,|
00004760  73 70 72 69 74 65 73 25  2c 70 61 74 68 6e 61 6d  |sprites%,pathnam|
00004770  65 24 0d 16 26 0c 20 20  20 20 20 20 20 e1 0d 16  |e$..&.       ...|
00004780  30 06 f4 7c 0d 16 3a 06  f4 7c 0d 16 44 06 f4 7c  |0..|..:..|..D..||
00004790  0d 16 4e 06 f4 7c 0d 16  58 06 f4 7c 0d 16 62 31  |..N..|..X..|..b1|
000047a0  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
000047b0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
000047c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 16 6c  |-------------..l|
000047d0  28 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |(.|             |
000047e0  20 20 20 20 20 20 20 20  20 20 20 20 20 35 2e a0  |             5..|
000047f0  4d 65 6e 75 73 0d 16 76  31 f4 7c 20 20 20 20 20  |Menus..v1.|     |
00004800  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |             ---|
00004810  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00004820  2d 2d 2d 2d 2d 2d 0d 16  80 06 f4 7c 0d 16 8a 06  |------.....|....|
00004830  f4 7c 0d 16 94 35 f4 7c  20 20 20 20 20 20 20 20  |.|...5.|        |
00004840  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |        --------|
00004850  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00004860  2d 2d 2d 2d 2d 2d 2d 0d  16 9e 06 f4 7c 0d 16 a8  |-------.....|...|
00004870  28 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |(.|             |
00004880  20 20 20 20 20 20 20 20  20 50 72 6f 63 65 64 75  |         Procedu|
00004890  72 65 73 20 3a 0d 16 b2  06 f4 7c 0d 16 bc 2d f4  |res :.....|...-.|
000048a0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
000048b0  46 4e 57 69 6d 70 5f 4d  65 6e 75 43 72 65 61 74  |FNWimp_MenuCreat|
000048c0  65 28 6d 65 6e 75 24 29  0d 16 c6 32 f4 7c 20 20  |e(menu$)...2.|  |
000048d0  20 20 20 20 20 20 20 20  20 20 20 20 20 46 4e 57  |             FNW|
000048e0  69 6d 70 5f 4d 65 6e 75  42 75 69 6c 64 28 6d 65  |imp_MenuBuild(me|
000048f0  6e 75 25 2c 6d 65 6e 75  24 29 0d 16 d0 2e f4 7c  |nu%,menu$).....||
00004900  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 46  |               F|
00004910  4e 57 69 6d 70 5f 4d 65  6e 75 43 68 6f 69 63 65  |NWimp_MenuChoice|
00004920  28 6c 65 76 65 6c 25 29  0d 16 da 31 f4 7c 20 20  |(level%)...1.|  |
00004930  20 20 20 20 20 20 20 20  20 20 20 20 20 50 52 4f  |             PRO|
00004940  43 57 69 6d 70 5f 4d 65  6e 75 50 6f 70 55 70 42  |CWimp_MenuPopUpB|
00004950  61 72 28 78 25 2c 79 25  29 0d 16 e4 34 f4 7c 20  |ar(x%,y%)...4.| |
00004960  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 52  |              PR|
00004970  4f 43 57 69 6d 70 5f 4d  65 6e 75 50 6f 70 55 70  |OCWimp_MenuPopUp|
00004980  28 4d 65 6e 75 25 2c 78  25 2c 79 25 29 0d 16 ee  |(Menu%,x%,y%)...|
00004990  36 f4 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |6.|             |
000049a0  20 20 46 4e 49 6e 74 65  72 6e 61 6c 5f 4d 65 6e  |  FNInternal_Men|
000049b0  75 4e 6f 4f 66 45 6e 74  72 69 65 73 28 6d 65 6e  |uNoOfEntries(men|
000049c0  75 24 29 0d 16 f8 27 f4  7c 20 20 20 20 20 20 20  |u$)...'.|       |
000049d0  20 20 20 20 20 20 20 20  50 52 4f 43 57 69 6d 70  |        PROCWimp|
000049e0  5f 4d 65 6e 75 43 6c 6f  73 65 0d 17 02 3b f4 7c  |_MenuClose...;.||
000049f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |               P|
00004a00  52 4f 43 57 69 6d 70 5f  4d 65 6e 75 47 6c 75 65  |ROCWimp_MenuGlue|
00004a10  28 6d 65 6e 75 31 25 2c  69 74 65 6d 25 2c 6d 65  |(menu1%,item%,me|
00004a20  6e 75 32 25 29 0d 17 0c  36 f4 7c 20 20 20 20 20  |nu2%)...6.|     |
00004a30  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00004a40  6d 70 5f 4d 65 6e 75 4d  65 73 73 61 67 65 28 6d  |mp_MenuMessage(m|
00004a50  65 6e 75 25 2c 69 74 65  6d 25 29 0d 17 16 33 f4  |enu%,item%)...3.|
00004a60  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00004a70  50 52 4f 43 57 69 6d 70  5f 4d 65 6e 75 54 69 63  |PROCWimp_MenuTic|
00004a80  6b 28 6d 65 6e 75 25 2c  69 74 65 6d 25 29 0d 17  |k(menu%,item%)..|
00004a90  20 39 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  | 9.|            |
00004aa0  20 20 20 50 52 4f 43 57  69 6d 70 5f 4d 65 6e 75  |   PROCWimp_Menu|
00004ab0  44 6f 74 74 65 64 4c 69  6e 65 28 6d 65 6e 75 25  |DottedLine(menu%|
00004ac0  2c 69 74 65 6d 25 29 0d  17 2a 47 f4 7c 20 20 20  |,item%)..*G.|   |
00004ad0  20 20 20 20 20 20 20 20  20 20 20 20 50 52 4f 43  |            PROC|
00004ae0  57 69 6d 70 5f 4d 65 6e  75 46 6f 72 65 47 72 6f  |Wimp_MenuForeGro|
00004af0  75 6e 64 43 6f 6c 6f 75  72 28 6d 65 6e 75 25 2c  |undColour(menu%,|
00004b00  69 74 65 6d 25 2c 63 6f  6c 6f 75 72 25 29 0d 17  |item%,colour%)..|
00004b10  34 47 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |4G.|            |
00004b20  20 20 20 50 52 4f 43 57  69 6d 70 5f 4d 65 6e 75  |   PROCWimp_Menu|
00004b30  42 61 63 6b 47 72 6f 75  6e 64 43 6f 6c 6f 75 72  |BackGroundColour|
00004b40  28 6d 65 6e 75 25 2c 69  74 65 6d 25 2c 63 6f 6c  |(menu%,item%,col|
00004b50  6f 75 72 25 29 0d 17 3e  35 f4 7c 20 20 20 20 20  |our%)..>5.|     |
00004b60  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00004b70  6d 70 5f 4d 65 6e 75 43  65 6e 74 72 65 28 6d 65  |mp_MenuCentre(me|
00004b80  6e 75 25 2c 69 74 65 6d  25 29 0d 17 48 36 f4 7c  |nu%,item%)..H6.||
00004b90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |               P|
00004ba0  52 4f 43 57 69 6d 70 5f  4d 65 6e 75 44 69 73 61  |ROCWimp_MenuDisa|
00004bb0  62 6c 65 28 6d 65 6e 75  25 2c 69 74 65 6d 25 29  |ble(menu%,item%)|
00004bc0  0d 17 52 35 f4 7c 20 20  20 20 20 20 20 20 20 20  |..R5.|          |
00004bd0  20 20 20 20 20 50 52 4f  43 57 69 6d 70 5f 4d 65  |     PROCWimp_Me|
00004be0  6e 75 45 6e 61 62 6c 65  28 6d 65 6e 75 25 2c 69  |nuEnable(menu%,i|
00004bf0  74 65 6d 25 29 0d 17 5c  4f f4 7c 20 20 20 20 20  |tem%)..\O.|     |
00004c00  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00004c10  6d 70 5f 4d 65 6e 75 57  72 69 74 65 28 6d 65 6e  |mp_MenuWrite(men|
00004c20  75 25 2c 69 74 65 6d 25  2c 62 75 66 66 65 72 25  |u%,item%,buffer%|
00004c30  2c 76 61 6c 25 2c 42 75  66 66 65 72 4c 65 6e 67  |,val%,BufferLeng|
00004c40  74 68 25 29 0d 17 66 35  f4 7c 20 20 20 20 20 20  |th%)..f5.|      |
00004c50  20 20 20 20 20 20 20 20  20 50 52 4f 43 57 69 6d  |         PROCWim|
00004c60  70 5f 4d 65 6e 75 54 69  74 6c 65 28 6d 65 6e 75  |p_MenuTitle(menu|
00004c70  25 2c 74 69 74 6c 65 24  29 0d 17 70 39 f4 7c 20  |%,title$)..p9.| |
00004c80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 52  |              PR|
00004c90  4f 43 57 69 6d 70 5f 4d  65 6e 75 49 74 65 6d 28  |OCWimp_MenuItem(|
00004ca0  6d 65 6e 75 25 2c 69 74  65 6d 25 2c 69 74 65 6d  |menu%,item%,item|
00004cb0  24 29 0d 17 7a 2d f4 7c  20 20 20 20 20 20 20 20  |$)..z-.|        |
00004cc0  20 20 20 20 20 20 20 46  4e 57 69 6d 70 5f 43 72  |       FNWimp_Cr|
00004cd0  65 61 74 65 43 6f 6c 6f  75 72 73 4d 65 6e 75 0d  |eateColoursMenu.|
00004ce0  17 84 35 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..5.|           |
00004cf0  20 20 20 20 46 4e 57 69  6d 70 5f 43 72 65 61 74  |    FNWimp_Creat|
00004d00  65 43 6f 6c 6f 75 72 73  4d 65 6e 75 28 74 69 74  |eColoursMenu(tit|
00004d10  6c 65 24 29 0d 17 8e 06  f4 7c 0d 17 98 35 f4 7c  |le$).....|...5.||
00004d20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004d30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00004d40  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00004d50  17 a2 06 f4 7c 0d 17 ac  06 f4 7c 0d 17 b6 06 f4  |....|.....|.....|
00004d60  7c 0d 17 c0 06 f4 7c 0d  17 ca 2c 20 20 20 20 20  ||.....|...,     |
00004d70  20 20 20 20 20 20 20 20  20 20 dd 20 a4 57 69 6d  |          . .Wim|
00004d80  70 5f 4d 65 6e 75 43 72  65 61 74 65 28 6d 65 6e  |p_MenuCreate(men|
00004d90  75 24 29 0d 17 d4 1b 20  20 20 20 20 20 20 20 20  |u$)....         |
00004da0  20 20 20 20 20 20 20 ea  20 6d 65 6e 75 25 0d 17  |       . menu%..|
00004db0  de 42 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.B              |
00004dc0  20 20 de 20 6d 65 6e 75  25 20 32 38 2b a4 49 6e  |  . menu% 28+.In|
00004dd0  74 65 72 6e 61 6c 5f 4d  65 6e 75 4e 6f 4f 66 45  |ternal_MenuNoOfE|
00004de0  6e 74 72 69 65 73 28 6d  65 6e 75 24 29 2a 32 34  |ntries(menu$)*24|
00004df0  0d 17 e8 2e 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00004e00  20 3d a4 57 69 6d 70 5f  4d 65 6e 75 42 75 69 6c  | =.Wimp_MenuBuil|
00004e10  64 28 6d 65 6e 75 25 2c  6d 65 6e 75 24 29 0d 17  |d(menu%,menu$)..|
00004e20  f2 06 f4 7c 0d 17 fc 3c  20 20 20 20 20 20 20 20  |...|...<        |
00004e30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 dd 20  |              . |
00004e40  a4 49 6e 74 65 72 6e 61  6c 5f 4d 65 6e 75 4e 6f  |.Internal_MenuNo|
00004e50  4f 66 45 6e 74 72 69 65  73 28 6d 65 6e 75 24 29  |OfEntries(menu$)|
00004e60  0d 18 06 31 20 20 20 20  20 20 20 20 20 20 20 20  |...1            |
00004e70  20 20 20 20 20 20 20 20  20 20 20 ea 20 6e 25 20  |           . n% |
00004e80  2c 6a 25 20 3a 20 6e 25  3d 30 20 3a 20 6a 25 3d  |,j% : n%=0 : j%=|
00004e90  30 0d 18 10 1c 20 20 20  20 20 20 20 20 20 20 20  |0....           |
00004ea0  20 20 20 20 20 20 20 20  20 20 20 20 f5 0d 18 1a  |            ....|
00004eb0  2f 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |/               |
00004ec0  20 20 20 20 20 20 20 20  20 6a 25 3d a7 6d 65 6e  |         j%=.men|
00004ed0  75 24 2c 22 5c 22 2c 6a  25 2b 31 29 0d 18 24 2b  |u$,"\",j%+1)..$+|
00004ee0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004ef0  20 20 20 20 20 20 20 20  e7 20 6a 25 3c 3e 30 20  |        . j%<>0 |
00004f00  8c 20 6e 25 2b 3d 31 0d  18 2e 21 20 20 20 20 20  |. n%+=1...!     |
00004f10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004f20  20 20 fd 20 6a 25 3d 30  0d 18 38 1c 20 20 20 20  |  . j%=0..8.    |
00004f30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004f40  20 3d 6e 25 0d 18 42 06  f4 7c 0d 18 4c 31 20 20  | =n%..B..|..L1  |
00004f50  20 20 20 20 20 20 20 20  20 20 20 20 20 dd 20 a4  |             . .|
00004f60  57 69 6d 70 5f 4d 65 6e  75 42 75 69 6c 64 28 6d  |Wimp_MenuBuild(m|
00004f70  65 6e 75 25 2c 6d 65 6e  75 24 29 0d 18 56 2d 20  |enu%,menu$)..V- |
00004f80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 ea  |               .|
00004f90  20 79 70 6f 73 25 2c 77  69 64 74 68 25 2c 6c 65  | ypos%,width%,le|
00004fa0  6e 67 74 68 25 2c 6b 25  0d 18 60 47 20 20 20 20  |ngth%,k%..`G    |
00004fb0  20 20 20 20 20 20 20 20  20 20 20 20 6d 65 6e 75  |            menu|
00004fc0  25 3f 31 32 3d 37 20 20  20 3a 20 6d 65 6e 75 25  |%?12=7   : menu%|
00004fd0  3f 31 33 3d 32 20 20 3a  20 6d 65 6e 75 25 3f 31  |?13=2  : menu%?1|
00004fe0  34 3d 37 20 3a 6d 65 6e  75 25 3f 31 35 3d 30 0d  |4=7 :menu%?15=0.|
00004ff0  18 6a 3b 20 20 20 20 20  20 20 20 20 20 20 20 20  |.j;             |
00005000  20 20 20 6d 65 6e 75 25  21 31 36 3d 31 34 30 20  |   menu%!16=140 |
00005010  3a 20 6d 65 6e 75 25 21  32 30 3d 34 34 20 3a 20  |: menu%!20=44 : |
00005020  6d 65 6e 75 25 21 32 34  3d 30 0d 18 74 21 20 20  |menu%!24=0..t!  |
00005030  20 20 20 20 20 20 20 20  20 20 20 20 20 20 70 74  |              pt|
00005040  72 25 3d 6d 65 6e 75 25  2b 32 38 0d 18 7e 30 20  |r%=menu%+28..~0 |
00005050  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 24  |               $|
00005060  6d 65 6e 75 25 3d c0 6d  65 6e 75 24 2c a7 6d 65  |menu%=.menu$,.me|
00005070  6e 75 24 2c 22 5c 22 29  2d 31 29 0d 18 88 33 20  |nu$,"\")-1)...3 |
00005080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 77  |               w|
00005090  69 64 74 68 25 3d a9 28  c0 6d 65 6e 75 24 2c a7  |idth%=.(.menu$,.|
000050a0  6d 65 6e 75 24 2c 22 5c  22 29 2d 31 29 29 0d 18  |menu$,"\")-1))..|
000050b0  92 34 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.4              |
000050c0  20 20 6d 65 6e 75 24 2b  3d 22 5c 22 20 3a 20 4d  |  menu$+="\" : M|
000050d0  65 6e 75 5f 4e 6f 4f 66  45 6e 74 72 69 65 73 25  |enu_NoOfEntries%|
000050e0  3d 30 0d 18 9c 20 20 20  20 20 20 20 20 20 20 20  |=0...           |
000050f0  20 20 20 20 20 20 c8 95  20 6d 65 6e 75 24 3c 3e  |      .. menu$<>|
00005100  22 22 0d 18 a6 30 20 20  20 20 20 20 20 20 20 20  |""...0          |
00005110  20 20 20 20 20 20 20 6d  65 6e 75 24 3d c1 6d 65  |       menu$=.me|
00005120  6e 75 24 2c a7 6d 65 6e  75 24 2c 22 5c 22 29 2b  |nu$,.menu$,"\")+|
00005130  31 29 0d 18 b0 22 20 20  20 20 20 20 20 20 20 20  |1)..."          |
00005140  20 20 20 20 20 20 20 e7  20 6d 65 6e 75 24 3c 3e  |       . menu$<>|
00005150  22 22 20 8c 0d 18 ba 3b  20 20 20 20 20 20 20 20  |"" ....;        |
00005160  20 20 20 20 20 20 20 20  20 20 21 70 74 72 25 3d  |          !ptr%=|
00005170  30 20 3a 20 70 74 72 25  21 34 3d 2d 31 20 3a 20  |0 : ptr%!4=-1 : |
00005180  70 74 72 25 21 38 3d 26  37 30 30 30 30 32 31 0d  |ptr%!8=&7000021.|
00005190  18 c4 2b 20 20 20 20 20  20 20 20 20 20 20 20 20  |..+             |
000051a0  20 20 20 20 20 6c 65 6e  67 74 68 25 3d a7 6d 65  |     length%=.me|
000051b0  6e 75 24 2c 22 5c 22 29  2d 31 0d 18 ce 2e 20 20  |nu$,"\")-1....  |
000051c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000051d0  6b 25 3d a7 c0 6d 65 6e  75 24 2c 6c 65 6e 67 74  |k%=..menu$,lengt|
000051e0  68 25 29 2c 22 3e 22 29  0d 18 d8 1f 20 20 20 20  |h%),">")....    |
000051f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 e7 20  |              . |
00005200  6b 25 3c 3e 30 20 8c 0d  18 e2 34 20 20 20 20 20  |k%<>0 ....4     |
00005210  20 20 20 20 20 20 20 20  20 20 20 20 20 20 73 25  |              s%|
00005220  3d a0 28 c1 6d 65 6e 75  24 2c 6b 25 2b 31 2c 6c  |=.(.menu$,k%+1,l|
00005230  65 6e 67 74 68 25 2d 6b  25 29 29 0d 18 ec 20 20  |ength%-k%))...  |
00005240  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005250  20 20 70 74 72 25 21 34  3d 73 25 0d 18 f6 23 20  |  ptr%!4=s%...# |
00005260  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005270  20 20 6c 65 6e 67 74 68  25 3d 6b 25 2d 31 0d 19  |  length%=k%-1..|
00005280  00 17 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00005290  20 20 20 20 cd 0d 19 0a  30 20 20 20 20 20 20 20  |    ....0       |
000052a0  20 20 20 20 20 20 20 20  20 20 20 24 28 70 74 72  |           $(ptr|
000052b0  25 2b 31 32 29 3d c0 6d  65 6e 75 24 2c 6c 65 6e  |%+12)=.menu$,len|
000052c0  67 74 68 25 29 0d 19 14  37 20 20 20 20 20 20 20  |gth%)...7       |
000052d0  20 20 20 20 20 20 20 20  20 20 20 e7 20 6c 65 6e  |           . len|
000052e0  67 74 68 25 3e 77 69 64  74 68 25 20 8c 20 77 69  |gth%>width% . wi|
000052f0  64 74 68 25 3d 6c 65 6e  67 74 68 25 0d 19 1e 1e  |dth%=length%....|
00005300  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005310  20 20 70 74 72 25 2b 3d  32 34 0d 19 28 2a 20 20  |  ptr%+=24..(*  |
00005320  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005330  4d 65 6e 75 5f 4e 6f 4f  66 45 6e 74 72 69 65 73  |Menu_NoOfEntries|
00005340  25 2b 3d 31 0d 19 32 16  20 20 20 20 20 20 20 20  |%+=1..2.        |
00005350  20 20 20 20 20 20 20 20  20 cd 0d 19 3c 15 20 20  |         ...<.  |
00005360  20 20 20 20 20 20 20 20  20 20 20 20 20 20 ce 0d  |              ..|
00005370  19 46 2a 20 20 20 20 20  20 20 20 20 20 20 20 20  |.F*             |
00005380  20 20 20 6d 65 6e 75 25  21 31 36 3d 31 36 2a 28  |   menu%!16=16*(|
00005390  77 69 64 74 68 25 2b 31  29 0d 19 50 3c 20 20 20  |width%+1)..P<   |
000053a0  20 20 20 20 20 20 20 20  20 20 20 20 20 70 74 72  |             ptr|
000053b0  25 21 2d 32 34 3d 70 74  72 25 21 2d 32 34 20 84  |%!-24=ptr%!-24 .|
000053c0  20 26 38 30 20 3a 20 f4  7c 2e 2e 2e 4c 61 73 74  | &80 : .|...Last|
000053d0  20 69 74 65 6d 0d 19 5a  19 20 20 20 20 20 20 20  | item..Z.       |
000053e0  20 20 20 20 20 20 20 20  3d 6d 65 6e 75 25 0d 19  |        =menu%..|
000053f0  64 06 f4 7c 0d 19 6e 22  20 20 20 20 20 20 20 20  |d..|..n"        |
00005400  20 20 20 20 20 dd 20 f2  57 69 6d 70 5f 4d 65 6e  |     . .Wimp_Men|
00005410  75 43 6c 6f 73 65 0d 19  78 29 20 20 20 20 20 20  |uClose..x)      |
00005420  20 20 20 20 20 20 20 20  c8 99 20 22 57 69 6d 70  |        .. "Wimp|
00005430  5f 43 72 65 61 74 65 4d  65 6e 75 22 2c 2d 31 0d  |_CreateMenu",-1.|
00005440  19 82 12 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
00005450  e1 0d 19 8c 06 f4 7c 0d  19 96 41 20 20 20 20 20  |......|...A     |
00005460  20 20 20 20 20 20 20 20  dd 20 a4 57 69 6d 70 5f  |        . .Wimp_|
00005470  4d 65 6e 75 43 68 6f 69  63 65 28 6c 65 76 65 6c  |MenuChoice(level|
00005480  25 29 3d 28 62 6c 6f 63  6b 25 21 28 34 2a 6c 65  |%)=(block%!(4*le|
00005490  76 65 6c 25 29 29 2b 31  0d 19 a0 06 f4 7c 0d 19  |vel%))+1.....|..|
000054a0  aa 2c 20 20 20 20 20 20  20 20 20 20 20 20 20 dd  |.,             .|
000054b0  20 f2 57 69 6d 70 5f 4d  65 6e 75 50 6f 70 55 70  | .Wimp_MenuPopUp|
000054c0  42 61 72 28 78 25 2c 79  25 29 0d 19 b4 1d 20 20  |Bar(x%,y%)....  |
000054d0  20 20 20 20 20 20 20 20  20 20 20 20 ea 20 6e 25  |            . n%|
000054e0  20 3a 20 6e 25 3d 30 0d  19 be 39 20 20 20 20 20  | : n%=0...9     |
000054f0  20 20 20 20 20 20 20 20  20 c8 95 20 28 28 42 61  |         .. ((Ba|
00005500  72 5f 4d 65 6e 75 25 21  28 32 38 2b 6e 25 2a 32  |r_Menu%!(28+n%*2|
00005510  34 29 29 80 25 31 30 30  30 30 30 30 30 29 3d 30  |4)).%10000000)=0|
00005520  0d 19 c8 18 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00005530  20 20 20 6e 25 2b 3d 31  0d 19 d2 13 20 20 20 20  |   n%+=1....    |
00005540  20 20 20 20 20 20 20 20  20 20 ce 0d 19 dc 40 20  |          ....@ |
00005550  20 20 20 20 20 20 20 20  20 20 20 20 20 c8 99 20  |             .. |
00005560  22 57 69 6d 70 5f 43 72  65 61 74 65 4d 65 6e 75  |"Wimp_CreateMenu|
00005570  22 2c 2c 42 61 72 5f 4d  65 6e 75 25 2c 78 25 2d  |",,Bar_Menu%,x%-|
00005580  36 34 2c 39 36 2b 6e 25  2a 34 34 0d 19 e6 21 20  |64,96+n%*44...! |
00005590  20 20 20 20 20 20 20 20  20 20 20 20 20 6d 65 6e  |             men|
000055a0  75 25 3d 42 61 72 5f 4d  65 6e 75 25 0d 19 f0 12  |u%=Bar_Menu%....|
000055b0  20 20 20 20 20 20 20 20  20 20 20 20 20 e1 0d 19  |             ...|
000055c0  fa 04 0d 1a 04 06 f4 7c  0d 1a 0e 2f 20 20 20 20  |.......|.../    |
000055d0  20 20 20 20 20 20 20 20  20 dd 20 f2 57 69 6d 70  |         . .Wimp|
000055e0  5f 4d 65 6e 75 50 6f 70  55 70 28 4d 65 6e 75 25  |_MenuPopUp(Menu%|
000055f0  2c 78 25 2c 79 25 29 0d  1a 18 1d 20 20 20 20 20  |,x%,y%)....     |
00005600  20 20 20 20 20 20 20 20  20 6d 65 6e 75 25 3d 4d  |         menu%=M|
00005610  65 6e 75 25 0d 1a 22 39  20 20 20 20 20 20 20 20  |enu%.."9        |
00005620  20 20 20 20 20 20 c8 99  20 22 57 69 6d 70 5f 43  |      .. "Wimp_C|
00005630  72 65 61 74 65 4d 65 6e  75 22 2c 2c 6d 65 6e 75  |reateMenu",,menu|
00005640  25 2c 78 25 2d 36 34 2c  79 25 2b 32 30 0d 1a 2c  |%,x%-64,y%+20..,|
00005650  12 20 20 20 20 20 20 20  20 20 20 20 20 20 e1 0d  |.             ..|
00005660  1a 36 06 f4 7c 0d 1a 40  36 20 20 20 20 20 20 20  |.6..|..@6       |
00005670  20 20 20 20 20 20 dd 20  f2 57 69 6d 70 5f 4d 65  |      . .Wimp_Me|
00005680  6e 75 47 6c 75 65 28 6d  65 6e 75 31 25 2c 69 74  |nuGlue(menu1%,it|
00005690  65 6d 25 2c 6d 65 6e 75  32 25 29 0d 1a 4a 2c 20  |em%,menu2%)..J, |
000056a0  20 20 20 20 20 20 20 20  20 20 20 20 20 6d 65 6e  |             men|
000056b0  75 31 25 21 28 38 2b 69  74 65 6d 25 2a 32 34 29  |u1%!(8+item%*24)|
000056c0  3d 6d 65 6e 75 32 25 0d  1a 54 12 20 20 20 20 20  |=menu2%..T.     |
000056d0  20 20 20 20 20 20 20 20  e1 0d 1a 5e 31 20 20 20  |        ...^1   |
000056e0  20 20 20 20 20 20 20 20  20 20 dd 20 f2 57 69 6d  |          . .Wim|
000056f0  70 5f 4d 65 6e 75 4d 65  73 73 61 67 65 28 6d 65  |p_MenuMessage(me|
00005700  6e 75 25 2c 69 74 65 6d  25 29 0d 1a 68 4a 20 20  |nu%,item%)..hJ  |
00005710  20 20 20 20 20 20 20 20  20 20 20 20 6d 65 6e 75  |            menu|
00005720  25 21 28 32 38 2b 28 69  74 65 6d 25 2d 31 29 2a  |%!(28+(item%-1)*|
00005730  32 34 29 3d 28 6d 65 6e  75 25 21 28 32 38 2b 28  |24)=(menu%!(28+(|
00005740  69 74 65 6d 25 2d 31 29  2a 32 34 29 29 82 28 31  |item%-1)*24)).(1|
00005750  3c 3c 33 29 0d 1a 72 12  20 20 20 20 20 20 20 20  |<<3)..r.        |
00005760  20 20 20 20 20 e1 0d 1a  7c 06 f4 7c 0d 1a 86 2e  |     ...|..|....|
00005770  20 20 20 20 20 20 20 20  20 20 20 20 20 dd 20 f2  |             . .|
00005780  57 69 6d 70 5f 4d 65 6e  75 54 69 63 6b 28 6d 65  |Wimp_MenuTick(me|
00005790  6e 75 25 2c 69 74 65 6d  25 29 0d 1a 90 45 20 20  |nu%,item%)...E  |
000057a0  20 20 20 20 20 20 20 20  20 20 20 20 6d 65 6e 75  |            menu|
000057b0  25 21 28 32 38 2b 28 69  74 65 6d 25 2d 31 29 2a  |%!(28+(item%-1)*|
000057c0  32 34 29 3d 28 6d 65 6e  75 25 21 28 32 38 2b 28  |24)=(menu%!(28+(|
000057d0  69 74 65 6d 25 2d 31 29  2a 32 34 29 29 82 31 0d  |item%-1)*24)).1.|
000057e0  1a 9a 12 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
000057f0  e1 0d 1a a4 06 f4 7c 0d  1a ae 34 20 20 20 20 20  |......|...4     |
00005800  20 20 20 20 20 20 20 20  dd 20 f2 57 69 6d 70 5f  |        . .Wimp_|
00005810  4d 65 6e 75 44 6f 74 74  65 64 4c 69 6e 65 28 6d  |MenuDottedLine(m|
00005820  65 6e 75 25 2c 69 74 65  6d 25 29 0d 1a b8 45 20  |enu%,item%)...E |
00005830  20 20 20 20 20 20 20 20  20 20 20 20 20 6d 65 6e  |             men|
00005840  75 25 21 28 32 38 2b 28  69 74 65 6d 25 2d 31 29  |u%!(28+(item%-1)|
00005850  2a 32 34 29 3d 28 6d 65  6e 75 25 21 28 32 38 2b  |*24)=(menu%!(28+|
00005860  28 69 74 65 6d 25 2d 31  29 2a 32 34 29 29 84 32  |(item%-1)*24)).2|
00005870  0d 1a c2 12 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00005880  20 e1 0d 1a cc 06 f4 7c  0d 1a d6 3e 20 20 20 20  | ......|...>    |
00005890  20 20 20 20 20 dd 20 f2  57 69 6d 70 5f 4d 65 6e  |     . .Wimp_Men|
000058a0  75 46 6f 72 65 47 72 6f  75 6e 64 43 6f 6c 6f 75  |uForeGroundColou|
000058b0  72 28 6d 65 6e 75 25 2c  69 74 65 6d 25 2c 63 6f  |r(menu%,item%,co|
000058c0  6c 6f 75 72 25 29 0d 1a  e0 4f 20 20 20 20 20 20  |lour%)...O      |
000058d0  20 20 20 20 6d 65 6e 75  25 3f 28 33 39 2b 28 69  |    menu%?(39+(i|
000058e0  74 65 6d 25 2d 31 29 2a  32 34 29 3d 63 6f 6c 6f  |tem%-1)*24)=colo|
000058f0  75 72 25 2b 31 36 2a 28  28 6d 65 6e 75 25 3f 28  |ur%+16*((menu%?(|
00005900  33 39 2b 28 69 74 65 6d  25 2d 31 29 2a 32 34 29  |39+(item%-1)*24)|
00005910  29 81 31 36 29 0d 1a ea  0e 20 20 20 20 20 20 20  |).16)....       |
00005920  20 20 e1 0d 1a f4 06 f4  7c 0d 1a fe 3e 20 20 20  |  ......|...>   |
00005930  20 20 20 20 20 20 dd 20  f2 57 69 6d 70 5f 4d 65  |      . .Wimp_Me|
00005940  6e 75 42 61 63 6b 47 72  6f 75 6e 64 43 6f 6c 6f  |nuBackGroundColo|
00005950  75 72 28 6d 65 6e 75 25  2c 69 74 65 6d 25 2c 63  |ur(menu%,item%,c|
00005960  6f 6c 6f 75 72 25 29 0d  1b 08 19 20 20 20 20 20  |olour%)....     |
00005970  20 20 20 20 20 20 ea 20  66 6f 72 65 25 2c 69 25  |      . fore%,i%|
00005980  0d 1b 12 31 20 20 20 20  20 20 20 20 20 20 20 66  |...1           f|
00005990  6f 72 65 25 3d 28 6d 65  6e 75 25 3f 28 33 39 2b  |ore%=(menu%?(39+|
000059a0  28 69 74 65 6d 25 2d 31  29 2a 32 34 29 29 83 31  |(item%-1)*24)).1|
000059b0  36 0d 1b 1c 33 20 20 20  20 20 20 20 20 20 20 20  |6...3           |
000059c0  69 25 3d 28 28 6d 65 6e  75 25 3f 28 33 39 2b 28  |i%=((menu%?(39+(|
000059d0  69 74 65 6d 25 2d 31 29  2a 32 34 29 29 81 31 36  |item%-1)*24)).16|
000059e0  29 83 31 36 0d 1b 26 3a  20 20 20 20 20 20 20 20  |).16..&:        |
000059f0  20 20 20 6d 65 6e 75 25  3f 28 33 39 2b 28 69 74  |   menu%?(39+(it|
00005a00  65 6d 25 2d 31 29 2a 32  34 29 3d 66 6f 72 65 25  |em%-1)*24)=fore%|
00005a10  2b 31 36 2a 63 6f 6c 6f  75 72 25 2b 69 25 0d 1b  |+16*colour%+i%..|
00005a20  30 0e 20 20 20 20 20 20  20 20 20 e1 0d 1b 3a 06  |0.         ...:.|
00005a30  f4 7c 0d 1b 44 30 20 20  20 20 20 20 20 20 20 20  |.|..D0          |
00005a40  20 20 20 dd 20 f2 57 69  6d 70 5f 4d 65 6e 75 43  |   . .Wimp_MenuC|
00005a50  65 6e 74 72 65 28 6d 65  6e 75 25 2c 69 74 65 6d  |entre(menu%,item|
00005a60  25 29 0d 1b 4e 48 20 20  20 20 20 20 20 20 20 20  |%)..NH          |
00005a70  20 20 20 20 6d 65 6e 75  25 21 28 33 36 2b 28 69  |    menu%!(36+(i|
00005a80  74 65 6d 25 2d 31 29 2a  32 34 29 3d 6d 65 6e 75  |tem%-1)*24)=menu|
00005a90  25 21 28 33 36 2b 28 69  74 65 6d 25 2d 31 29 2a  |%!(36+(item%-1)*|
00005aa0  32 34 29 84 28 31 3c 3c  33 29 0d 1b 58 12 20 20  |24).(1<<3)..X.  |
00005ab0  20 20 20 20 20 20 20 20  20 20 20 e1 0d 1b 62 06  |           ...b.|
00005ac0  f4 7c 0d 1b 6c 30 20 20  20 20 20 20 20 20 20 20  |.|..l0          |
00005ad0  20 20 dd 20 f2 57 69 6d  70 5f 4d 65 6e 75 44 69  |  . .Wimp_MenuDi|
00005ae0  73 61 62 6c 65 28 6d 65  6e 75 25 2c 69 74 65 6d  |sable(menu%,item|
00005af0  25 29 0d 1b 76 48 20 20  20 20 20 20 20 20 20 20  |%)..vH          |
00005b00  20 20 20 6d 65 6e 75 25  21 28 33 36 2b 28 69 74  |   menu%!(36+(it|
00005b10  65 6d 25 2d 31 29 2a 32  34 29 3d 6d 65 6e 75 25  |em%-1)*24)=menu%|
00005b20  21 28 33 36 2b 28 69 74  65 6d 25 2d 31 29 2a 32  |!(36+(item%-1)*2|
00005b30  34 29 84 28 31 3c 3c 32  32 29 0d 1b 80 11 20 20  |4).(1<<22)....  |
00005b40  20 20 20 20 20 20 20 20  20 20 e1 0d 1b 8a 06 f4  |          ......|
00005b50  7c 0d 1b 94 2f 20 20 20  20 20 20 20 20 20 20 20  ||.../           |
00005b60  20 dd 20 f2 57 69 6d 70  5f 4d 65 6e 75 45 6e 61  | . .Wimp_MenuEna|
00005b70  62 6c 65 28 6d 65 6e 75  25 2c 69 74 65 6d 25 29  |ble(menu%,item%)|
00005b80  0d 1b 9e 2f 20 20 20 20  20 20 20 20 20 20 20 20  |.../            |
00005b90  20 f2 57 69 6d 70 5f 4d  65 6e 75 44 69 73 61 62  | .Wimp_MenuDisab|
00005ba0  6c 65 28 6d 65 6e 75 25  2c 69 74 65 6d 25 29 0d  |le(menu%,item%).|
00005bb0  1b a8 48 20 20 20 20 20  20 20 20 20 20 20 20 20  |..H             |
00005bc0  6d 65 6e 75 25 21 28 33  36 2b 28 69 74 65 6d 25  |menu%!(36+(item%|
00005bd0  2d 31 29 2a 32 34 29 3d  6d 65 6e 75 25 21 28 33  |-1)*24)=menu%!(3|
00005be0  36 2b 28 69 74 65 6d 25  2d 31 29 2a 32 34 29 82  |6+(item%-1)*24).|
00005bf0  28 31 3c 3c 32 32 29 0d  1b b2 11 20 20 20 20 20  |(1<<22)....     |
00005c00  20 20 20 20 20 20 20 e1  0d 1b bc 06 f4 7c 0d 1b  |       ......|..|
00005c10  c6 49 20 20 20 20 20 20  20 20 20 20 20 20 dd 20  |.I            . |
00005c20  f2 57 69 6d 70 5f 4d 65  6e 75 57 72 69 74 65 28  |.Wimp_MenuWrite(|
00005c30  6d 65 6e 75 25 2c 69 74  65 6d 25 2c 62 75 66 66  |menu%,item%,buff|
00005c40  65 72 25 2c 76 61 6c 25  2c 42 75 66 66 65 72 4c  |er%,val%,BufferL|
00005c50  65 6e 67 74 68 25 29 0d  1b d0 44 20 20 20 20 20  |ength%)...D     |
00005c60  20 20 20 20 20 20 20 20  6d 65 6e 75 25 21 28 32  |        menu%!(2|
00005c70  38 2b 28 69 74 65 6d 25  2d 31 29 2a 32 34 29 3d  |8+(item%-1)*24)=|
00005c80  28 6d 65 6e 75 25 21 28  32 38 2b 28 69 74 65 6d  |(menu%!(28+(item|
00005c90  25 2d 31 29 2a 32 34 29  29 84 34 0d 1b da 45 20  |%-1)*24)).4...E |
00005ca0  20 20 20 20 20 20 20 20  20 20 20 20 6d 65 6e 75  |            menu|
00005cb0  25 21 28 33 36 2b 28 69  74 65 6d 25 2d 31 29 2a  |%!(36+(item%-1)*|
00005cc0  32 34 29 3d 6d 65 6e 75  25 21 28 33 36 2b 28 69  |24)=menu%!(36+(i|
00005cd0  74 65 6d 25 2d 31 29 2a  32 34 29 84 26 31 30 30  |tem%-1)*24).&100|
00005ce0  0d 1b e4 30 20 20 20 20  20 20 20 20 20 20 20 20  |...0            |
00005cf0  20 6d 65 6e 75 25 21 28  34 30 2b 28 69 74 65 6d  | menu%!(40+(item|
00005d00  25 2d 31 29 2a 32 34 29  3d 62 75 66 66 65 72 25  |%-1)*24)=buffer%|
00005d10  0d 1b ee 2d 20 20 20 20  20 20 20 20 20 20 20 20  |...-            |
00005d20  20 6d 65 6e 75 25 21 28  34 34 2b 28 69 74 65 6d  | menu%!(44+(item|
00005d30  25 2d 31 29 2a 32 34 29  3d 76 61 6c 25 0d 1b f8  |%-1)*24)=val%...|
00005d40  36 20 20 20 20 20 20 20  20 20 20 20 20 20 6d 65  |6             me|
00005d50  6e 75 25 21 28 34 38 2b  28 69 74 65 6d 25 2d 31  |nu%!(48+(item%-1|
00005d60  29 2a 32 34 29 3d 42 75  66 66 65 72 4c 65 6e 67  |)*24)=BufferLeng|
00005d70  74 68 25 0d 1c 02 11 20  20 20 20 20 20 20 20 20  |th%....         |
00005d80  20 20 20 e1 0d 1c 0c 06  f4 7c 0d 1c 16 2f 20 20  |   ......|.../  |
00005d90  20 20 20 20 20 20 20 20  20 20 dd 20 f2 57 69 6d  |          . .Wim|
00005da0  70 5f 4d 65 6e 75 54 69  74 6c 65 28 6d 65 6e 75  |p_MenuTitle(menu|
00005db0  25 2c 74 69 74 6c 65 24  29 0d 1c 20 26 20 20 20  |%,title$).. &   |
00005dc0  20 20 20 20 20 20 20 20  20 20 24 6d 65 6e 75 25  |          $menu%|
00005dd0  3d c0 74 69 74 6c 65 24  2c 31 32 29 2b bd 30 0d  |=.title$,12)+.0.|
00005de0  1c 2a 11 20 20 20 20 20  20 20 20 20 20 20 20 e1  |.*.            .|
00005df0  0d 1c 34 06 f4 7c 0d 1c  3e 33 20 20 20 20 20 20  |..4..|..>3      |
00005e00  20 20 20 20 20 20 dd 20  f2 57 69 6d 70 5f 4d 65  |      . .Wimp_Me|
00005e10  6e 75 49 74 65 6d 28 6d  65 6e 75 25 2c 69 74 65  |nuItem(menu%,ite|
00005e20  6d 25 2c 69 74 65 6d 24  29 0d 1c 48 39 20 20 20  |m%,item$)..H9   |
00005e30  20 20 20 20 20 20 20 20  20 20 24 28 6d 65 6e 75  |          $(menu|
00005e40  25 2b 28 34 30 2b 28 69  74 65 6d 25 2d 31 29 2a  |%+(40+(item%-1)*|
00005e50  32 34 29 29 3d c0 69 74  65 6d 24 2c 31 32 29 2b  |24))=.item$,12)+|
00005e60  bd 30 0d 1c 52 11 20 20  20 20 20 20 20 20 20 20  |.0..R.          |
00005e70  20 20 e1 0d 1c 5c 06 f4  7c 0d 1c 66 4a 20 20 20  |  ...\..|..fJ   |
00005e80  20 20 20 20 20 20 20 20  20 dd 20 a4 57 69 6d 70  |         . .Wimp|
00005e90  5f 43 72 65 61 74 65 43  6f 6c 6f 75 72 73 4d 65  |_CreateColoursMe|
00005ea0  6e 75 20 3d a4 57 69 6d  70 5f 43 72 65 61 74 65  |nu =.Wimp_Create|
00005eb0  43 6f 6c 6f 75 72 73 4d  65 6e 75 28 22 20 20 20  |ColoursMenu("   |
00005ec0  20 22 29 0d 1c 70 06 f4  7c 0d 1c 7a 31 20 20 20  | ")..p..|..z1   |
00005ed0  20 20 20 20 20 20 20 20  20 dd 20 a4 57 69 6d 70  |         . .Wimp|
00005ee0  5f 43 72 65 61 74 65 43  6f 6c 6f 75 72 73 4d 65  |_CreateColoursMe|
00005ef0  6e 75 28 74 69 74 6c 65  24 29 0d 1c 84 1d 20 20  |nu(title$)....  |
00005f00  20 20 20 20 20 20 20 20  20 20 20 ea 20 78 24 2c  |           . x$,|
00005f10  6d 65 6e 25 2c 6a 25 0d  1c 8e 43 20 20 20 20 20  |men%,j%...C     |
00005f20  20 20 20 20 20 20 20 20  78 24 3d 74 69 74 6c 65  |        x$=title|
00005f30  24 2b 22 5c 30 5c 31 5c  32 5c 33 5c 34 5c 35 5c  |$+"\0\1\2\3\4\5\|
00005f40  36 5c 37 5c 38 5c 39 5c  31 30 5c 31 31 5c 31 32  |6\7\8\9\10\11\12|
00005f50  5c 31 33 5c 31 34 5c 31  35 22 0d 1c 98 2a 20 20  |\13\14\15"...*  |
00005f60  20 20 20 20 20 20 20 20  20 20 20 6d 65 6e 25 3d  |           men%=|
00005f70  a4 57 69 6d 70 5f 4d 65  6e 75 43 72 65 61 74 65  |.Wimp_MenuCreate|
00005f80  28 78 24 29 0d 1c a2 1c  20 20 20 20 20 20 20 20  |(x$)....        |
00005f90  20 20 20 20 20 e3 20 69  25 3d 30 20 b8 20 31 35  |     . i%=0 . 15|
00005fa0  0d 1c ac 18 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00005fb0  20 20 c8 8e 20 b9 20 ca  0d 1c b6 37 20 20 20 20  |  .. . ....7    |
00005fc0  20 20 20 20 20 20 20 20  20 20 20 c9 20 69 25 3c  |           . i%<|
00005fd0  34 2c 69 25 3d 39 2c 69  25 3d 31 32 2c 69 25 3d  |4,i%=9,i%=12,i%=|
00005fe0  31 34 2c 69 25 3d 31 35  20 3a 20 6a 25 3d 37 0d  |14,i%=15 : j%=7.|
00005ff0  1c c0 32 20 20 20 20 20  20 20 20 20 20 20 20 20  |..2             |
00006000  20 20 7f 20 20 20 20 20  20 20 20 20 20 20 20 20  |  .             |
00006010  20 20 20 20 20 20 20 20  20 20 20 3a 20 6a 25 3d  |           : j%=|
00006020  30 0d 1c ca 13 20 20 20  20 20 20 20 20 20 20 20  |0....           |
00006030  20 20 20 cb 0d 1c d4 2a  20 20 20 20 20 20 20 20  |   ....*        |
00006040  20 20 20 20 20 20 6d 65  6e 25 3f 28 33 39 2b 69  |      men%?(39+i|
00006050  25 2a 32 34 29 3d 69 25  2a 31 36 2b 6a 25 0d 1c  |%*24)=i%*16+j%..|
00006060  de 2d 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.-              |
00006070  f2 57 69 6d 70 5f 4d 65  6e 75 43 65 6e 74 72 65  |.Wimp_MenuCentre|
00006080  28 6d 65 6e 25 2c 69 25  2b 31 29 0d 1c e8 12 20  |(men%,i%+1).... |
00006090  20 20 20 20 20 20 20 20  20 20 20 20 ed 0d 1c f2  |            ....|
000060a0  15 20 20 20 20 20 20 20  20 20 20 20 20 3d 6d 65  |.            =me|
000060b0  6e 25 0d 1c fc 06 f4 7c  0d 1d 06 06 f4 7c 0d 1d  |n%.....|.....|..|
000060c0  10 06 f4 7c 0d 1d 1a 06  f4 7c 0d 1d 24 31 f4 7c  |...|.....|..$1.||
000060d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000060e0  20 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  --------------|
000060f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 1d 2e 28 f4  |-----------...(.|
00006100  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00006110  20 20 20 20 20 20 20 20  20 20 20 36 2e a0 46 69  |           6..Fi|
00006120  6c 65 73 0d 1d 38 31 f4  7c 20 20 20 20 20 20 20  |les..81.|       |
00006130  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
00006140  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00006150  2d 2d 2d 2d 0d 1d 42 06  f4 7c 0d 1d 4c 06 f4 7c  |----..B..|..L..||
00006160  0d 1d 56 35 f4 7c 20 20  20 20 20 20 20 20 20 20  |..V5.|          |
00006170  20 20 20 20 20 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |      ----------|
00006180  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00006190  2d 2d 2d 2d 2d 0d 1d 60  06 f4 7c 0d 1d 6a 28 f4  |-----..`..|..j(.|
000061a0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
000061b0  20 20 20 20 20 20 20 50  72 6f 63 65 64 75 72 65  |       Procedure|
000061c0  73 20 3a 0d 1d 74 06 f4  7c 0d 1d 7e 2c f4 7c 20  |s :..t..|..~,.| |
000061d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 46 4e  |              FN|
000061e0  55 74 69 6c 73 5f 46 69  6c 65 54 79 70 65 28 74  |Utils_FileType(t|
000061f0  79 70 65 25 29 0d 1d 88  2b f4 7c 20 20 20 20 20  |ype%)...+.|     |
00006200  20 20 20 20 20 20 20 20  20 20 46 4e 57 69 6d 70  |          FNWimp|
00006210  5f 47 65 74 46 69 6c 65  50 61 74 68 4e 61 6d 65  |_GetFilePathName|
00006220  0d 1d 92 30 f4 7c 20 20  20 20 20 20 20 20 20 20  |...0.|          |
00006230  20 20 20 20 20 46 4e 55  74 69 6c 73 5f 46 69 6c  |     FNUtils_Fil|
00006240  65 4c 6f 61 64 28 70 61  74 68 6e 61 6d 65 24 29  |eLoad(pathname$)|
00006250  0d 1d 9c 35 f4 7c 20 20  20 20 20 20 20 20 20 20  |...5.|          |
00006260  20 20 20 20 20 46 4e 55  74 69 6c 73 5f 47 65 74  |     FNUtils_Get|
00006270  53 74 72 69 6e 67 41 74  41 64 64 72 65 73 73 28  |StringAtAddress(|
00006280  70 74 72 25 29 0d 1d a6  34 f4 7c 20 20 20 20 20  |ptr%)...4.|     |
00006290  20 20 20 20 20 20 20 20  20 20 46 4e 55 74 69 6c  |          FNUtil|
000062a0  73 5f 47 65 74 46 69 6c  65 46 72 6f 6d 50 61 74  |s_GetFileFromPat|
000062b0  68 6e 61 6d 65 28 66 24  29 0d 1d b0 06 f4 7c 0d  |hname(f$).....|.|
000062c0  1d ba 06 f4 7c 0d 1d c4  35 f4 7c 20 20 20 20 20  |....|...5.|     |
000062d0  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
000062e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000062f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 1d ce 06 f4 7c  |----------.....||
00006300  0d 1d d8 06 f4 7c 0d 1d  e2 06 f4 7c 0d 1d ec 06  |.....|.....|....|
00006310  f4 7c 0d 1d f6 25 20 20  20 20 20 20 20 20 20 dd  |.|...%         .|
00006320  20 a4 55 74 69 6c 73 5f  46 69 6c 65 54 79 70 65  | .Utils_FileType|
00006330  28 74 79 70 65 25 29 0d  1e 00 18 20 20 20 20 20  |(type%)....     |
00006340  20 20 20 20 20 c8 8e 20  74 79 70 65 25 20 ca 0d  |     .. type% ..|
00006350  1e 0a 1e 20 20 20 20 20  20 20 20 20 20 20 c9 20  |...           . |
00006360  26 46 46 46 20 3a 3d 22  54 65 78 74 22 0d 1e 14  |&FFF :="Text"...|
00006370  1e 20 20 20 20 20 20 20  20 20 20 20 c9 20 26 46  |.           . &F|
00006380  46 44 20 3a 3d 22 44 61  74 61 22 0d 1e 1e 1f 20  |FD :="Data".... |
00006390  20 20 20 20 20 20 20 20  20 20 c9 20 26 46 46 42  |          . &FFB|
000063a0  20 3a 3d 22 42 61 73 69  63 22 0d 1e 28 20 20 20  | :="Basic"..(   |
000063b0  20 20 20 20 20 20 20 20  20 c9 20 26 46 46 39 20  |         . &FF9 |
000063c0  3a 3d 22 53 70 72 69 74  65 22 0d 1e 32 21 20 20  |:="Sprite"..2!  |
000063d0  20 20 20 20 20 20 20 20  20 c9 20 26 46 45 44 20  |         . &FED |
000063e0  3a 3d 22 50 61 6c 65 74  74 65 22 0d 1e 3c 22 20  |:="Palette"..<" |
000063f0  20 20 20 20 20 20 20 20  20 20 c9 20 26 46 45 43  |          . &FEC|
00006400  20 3a 3d 22 54 65 6d 70  6c 61 74 65 22 0d 1e 46  | :="Template"..F|
00006410  1e 20 20 20 20 20 20 20  20 20 20 20 c9 20 26 41  |.           . &A|
00006420  46 46 20 3a 3d 22 44 72  61 77 22 0d 1e 50 20 20  |FF :="Draw"..P  |
00006430  20 20 20 20 20 20 20 20  20 20 c9 20 26 31 30 30  |          . &100|
00006440  30 3a 3d 22 46 6f 6c 64  65 72 22 0d 1e 5a 25 20  |0:="Folder"..Z% |
00006450  20 20 20 20 20 20 20 20  20 20 c9 20 26 32 30 30  |          . &200|
00006460  30 3a 3d 22 41 70 70 6c  69 63 61 74 69 6f 6e 22  |0:="Application"|
00006470  0d 1e 64 1a 20 20 20 20  20 20 20 20 20 20 20 7f  |..d.           .|
00006480  3d c3 7e 28 74 79 70 65  25 29 0d 1e 6e 0f 20 20  |=.~(type%)..n.  |
00006490  20 20 20 20 20 20 20 20  cb 0d 1e 78 06 f4 7c 0d  |        ...x..|.|
000064a0  1e 82 4a 20 20 20 20 20  20 20 20 20 dd 20 a4 57  |..J         . .W|
000064b0  69 6d 70 5f 47 65 74 46  69 6c 65 50 61 74 68 4e  |imp_GetFilePathN|
000064c0  61 6d 65 20 3d a4 55 74  69 6c 73 5f 47 65 74 53  |ame =.Utils_GetS|
000064d0  74 72 69 6e 67 41 74 41  64 64 72 65 73 73 28 62  |tringAtAddress(b|
000064e0  6c 6f 63 6b 25 2b 34 34  29 0d 1e 8c 05 f4 0d 1e  |lock%+44).......|
000064f0  96 29 20 20 20 20 20 20  20 20 20 dd 20 a4 55 74  |.)         . .Ut|
00006500  69 6c 73 5f 46 69 6c 65  4c 6f 61 64 28 70 61 74  |ils_FileLoad(pat|
00006510  68 6e 61 6d 65 24 29 0d  1e a0 1a 20 20 20 20 20  |hname$)....     |
00006520  20 20 20 20 ea 20 53 25  2c 54 25 2c 66 69 6c 65  |    . S%,T%,file|
00006530  25 0d 1e aa 1b 20 20 20  20 20 20 20 20 20 53 25  |%....         S%|
00006540  3d 8e 20 70 61 74 68 6e  61 6d 65 24 0d 1e b4 17  |=. pathname$....|
00006550  20 20 20 20 20 20 20 20  20 54 25 3d a2 23 53 25  |         T%=.#S%|
00006560  2b 31 36 0d 1e be 11 20  20 20 20 20 20 20 20 20  |+16....         |
00006570  d9 23 53 25 0d 1e c8 17  20 20 20 20 20 20 20 20  |.#S%....        |
00006580  20 de 20 66 69 6c 65 25  20 54 25 0d 1e d2 2d 20  | . file% T%...- |
00006590  20 20 20 20 20 20 20 20  ff 28 22 4c 4f 41 44 20  |        .("LOAD |
000065a0  22 2b 70 61 74 68 6e 61  6d 65 24 2b 22 20 22 2b  |"+pathname$+" "+|
000065b0  c3 7e 66 69 6c 65 25 29  0d 1e dc 12 20 20 20 20  |.~file%)....    |
000065c0  20 20 20 20 3d 66 69 6c  65 25 0d 1e e6 06 f4 7c  |    =file%.....||
000065d0  0d 1e f0 2e 20 20 20 20  20 20 20 20 20 dd 20 a4  |....         . .|
000065e0  55 74 69 6c 73 5f 47 65  74 53 74 72 69 6e 67 41  |Utils_GetStringA|
000065f0  74 41 64 64 72 65 73 73  28 70 74 72 25 29 0d 1e  |tAddress(ptr%)..|
00006600  fa 19 20 20 20 20 20 20  20 20 20 ea 20 73 24 20  |..         . s$ |
00006610  3a 20 73 24 3d 22 22 0d  1f 04 42 20 20 20 20 20  |: s$=""...B     |
00006620  20 20 20 20 c8 95 20 28  3f 70 74 72 25 3c 3e 31  |    .. (?ptr%<>1|
00006630  33 29 80 28 3f 70 74 72  25 3c 3e 30 29 20 3a 20  |3).(?ptr%<>0) : |
00006640  73 24 2b 3d bd 28 3f 70  74 72 25 29 3a 20 70 74  |s$+=.(?ptr%): pt|
00006650  72 25 2b 3d 31 20 3a ce  3a 0d 1f 0e 0f 20 20 20  |r%+=1 :.:....   |
00006660  20 20 20 20 20 3d 73 24  0d 1f 18 06 f4 7c 0d 1f  |     =s$.....|..|
00006670  22 2d 20 20 20 20 20 20  20 20 20 dd 20 a4 55 74  |"-         . .Ut|
00006680  69 6c 73 5f 47 65 74 46  69 6c 65 46 72 6f 6d 50  |ils_GetFileFromP|
00006690  61 74 68 6e 61 6d 65 28  66 24 29 0d 1f 2c 1b 20  |athname(f$)..,. |
000066a0  20 20 20 20 20 20 20 20  e7 20 a7 66 24 2c 22 2e  |        . .f$,".|
000066b0  22 29 3d 30 20 8c 0d 1f  36 11 20 20 20 20 20 20  |")=0 ...6.      |
000066c0  20 20 20 20 3d 66 24 0d  1f 40 0e 20 20 20 20 20  |    =f$..@.     |
000066d0  20 20 20 20 cc 0d 1f 4a  40 20 20 20 20 20 20 20  |    ...J@       |
000066e0  20 20 20 3d a4 55 74 69  6c 73 5f 47 65 74 53 74  |   =.Utils_GetSt|
000066f0  72 69 6e 67 46 72 6f 6d  50 61 74 68 6e 61 6d 65  |ringFromPathname|
00006700  28 c2 66 24 2c a9 28 66  24 29 2d a7 66 24 2c 22  |(.f$,.(f$)-.f$,"|
00006710  2e 22 29 29 29 0d 1f 54  0e 20 20 20 20 20 20 20  |.")))..T.       |
00006720  20 20 cd 0d 1f 5e 06 f4  7c 0d 1f 68 06 f4 7c 0d  |  ...^..|..h..|.|
00006730  1f 72 06 f4 7c 0d 1f 7c  06 f4 7c 0d 1f 86 06 f4  |.r..|..|..|.....|
00006740  7c 0d 1f 90 06 f4 7c 0d  1f 9a 06 f4 7c 0d 1f a4  ||.....|.....|...|
00006750  06 f4 7c 0d 1f ae 06 f4  7c 0d 1f b8 06 f4 7c 0d  |..|.....|.....|.|
00006760  1f c2 31 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |..1.|           |
00006770  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
00006780  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00006790  0d 1f cc 2a f4 7c 20 20  20 20 20 20 20 20 20 20  |...*.|          |
000067a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000067b0  37 2e a0 53 70 72 69 74  65 73 0d 1f d6 31 f4 7c  |7..Sprites...1.||
000067c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000067d0  20 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  --------------|
000067e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 1f e0 06 f4  |-----------.....|
000067f0  7c 0d 1f ea 06 f4 7c 0d  1f f4 35 f4 7c 20 20 20  ||.....|...5.|   |
00006800  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |             ---|
00006810  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00006820  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 1f fe 06  |------------....|
00006830  f4 7c 0d 20 08 28 f4 7c  20 20 20 20 20 20 20 20  |.|. .(.|        |
00006840  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 72  |              Pr|
00006850  6f 63 65 64 75 72 65 73  20 3a 0d 20 12 06 f4 7c  |ocedures :. ...||
00006860  0d 20 1c 06 f4 7c 0d 20  26 06 f4 7c 0d 20 30 06  |. ...|. &..|. 0.|
00006870  f4 7c 0d 20 3a 06 f4 7c  0d 20 44 06 f4 7c 0d 20  |.|. :..|. D..|. |
00006880  4e 06 f4 7c 0d 20 58 06  f4 7c 0d 20 62 35 f4 7c  |N..|. X..|. b5.||
00006890  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000068a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000068b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
000068c0  20 6c 06 f4 7c 0d 20 76  06 f4 7c 0d 20 80 06 f4  | l..|. v..|. ...|
000068d0  7c 0d 20 8a 06 f4 7c 0d  20 94 06 f4 7c 0d 20 9e  ||. ...|. ...|. .|
000068e0  06 f4 7c 0d 20 a8 06 f4  7c 0d 20 b2 31 f4 7c 20  |..|. ...|. .1.| |
000068f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006900  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00006910  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 20 bc 27 f4 7c  |----------. .'.||
00006920  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006930  20 20 20 20 20 20 20 20  20 38 2e a0 53 61 76 65  |         8..Save|
00006940  73 0d 20 c6 31 f4 7c 20  20 20 20 20 20 20 20 20  |s. .1.|         |
00006950  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 2d  |         -------|
00006960  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00006970  2d 2d 0d 20 d0 06 f4 7c  0d 20 da 06 f4 7c 0d 20  |--. ...|. ...|. |
00006980  e4 35 f4 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.5.|            |
00006990  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
000069a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000069b0  2d 2d 2d 0d 20 ee 06 f4  7c 0d 20 f8 28 f4 7c 20  |---. ...|. .(.| |
000069c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000069d0  20 20 20 20 20 50 72 6f  63 65 64 75 72 65 73 20  |     Procedures |
000069e0  3a 0d 21 02 06 f4 7c 0d  21 0c 2f f4 7c 20 20 20  |:.!...|.!./.|   |
000069f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006a00  50 52 4f 43 49 6e 74 65  72 6e 61 6c 5f 53 61 76  |PROCInternal_Sav|
00006a10  65 45 76 65 6e 74 0d 21  16 2e f4 7c 20 20 20 20  |eEvent.!...|    |
00006a20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |               P|
00006a30  52 4f 43 49 6e 74 65 72  6e 61 6c 5f 53 61 76 65  |ROCInternal_Save|
00006a40  46 69 6c 65 0d 21 20 32  f4 7c 20 20 20 20 20 20  |File.! 2.|      |
00006a50  20 20 20 20 20 20 20 20  20 20 20 20 20 50 52 4f  |             PRO|
00006a60  43 57 69 6d 70 5f 44 72  61 67 42 6f 78 28 77 69  |CWimp_DragBox(wi|
00006a70  6e 64 6f 77 25 29 0d 21  2a 31 f4 7c 20 20 20 20  |ndow%).!*1.|    |
00006a80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |               P|
00006a90  52 4f 43 49 6e 74 65 72  6e 61 6c 5f 53 61 76 65  |ROCInternal_Save|
00006aa0  4d 65 73 73 61 67 65 0d  21 34 2d f4 7c 20 20 20  |Message.!4-.|   |
00006ab0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006ac0  46 4e 49 6e 74 65 72 6e  61 6c 5f 53 61 76 65 45  |FNInternal_SaveE|
00006ad0  76 65 6e 74 0d 21 3e 06  f4 7c 0d 21 48 06 f4 7c  |vent.!>..|.!H..||
00006ae0  0d 21 52 35 f4 7c 20 20  20 20 20 20 20 20 20 20  |.!R5.|          |
00006af0  20 20 20 20 20 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |      ----------|
00006b00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00006b10  2d 2d 2d 2d 2d 0d 21 5c  06 f4 7c 0d 21 66 06 f4  |-----.!\..|.!f..|
00006b20  7c 0d 21 70 06 f4 7c 0d  21 7a 06 f4 7c 0d 21 84  ||.!p..|.!z..|.!.|
00006b30  18 20 20 20 20 20 20 20  dd 20 f2 53 61 76 65 5f  |.       . .Save_|
00006b40  45 76 65 6e 74 0d 21 8e  19 20 20 20 20 20 20 20  |Event.!..       |
00006b50  20 c8 8e 20 62 6c 6f 63  6b 25 21 30 20 ca 0d 21  | .. block%!0 ..!|
00006b60  98 30 20 20 20 20 20 20  20 20 20 c9 20 53 61 76  |.0         . Sav|
00006b70  65 5f 57 69 6e 64 6f 77  25 20 3a 20 f2 49 6e 74  |e_Window% : .Int|
00006b80  65 72 6e 61 6c 5f 53 61  76 65 46 69 6c 65 0d 21  |ernal_SaveFile.!|
00006b90  a2 18 20 20 20 20 20 20  20 20 20 7f 20 20 20 20  |..         .    |
00006ba0  20 20 20 20 20 3a 0d 21  ac 1c 20 20 20 20 20 20  |     :.!..      |
00006bb0  20 20 20 20 c8 8e 20 62  6c 6f 63 6b 25 21 31 36  |    .. block%!16|
00006bc0  20 ca 0d 21 b6 14 20 20  20 20 20 20 20 20 20 20  | ..!..          |
00006bd0  20 c9 20 30 20 3a 0d 21  c0 3e 20 20 20 20 20 20  | . 0 :.!.>      |
00006be0  20 20 20 20 20 20 e7 20  62 6c 6f 63 6b 25 21 38  |      . block%!8|
00006bf0  20 80 20 26 35 30 20 8c  20 f2 57 69 6d 70 5f 44  | . &50 . .Wimp_D|
00006c00  72 61 67 42 6f 78 28 53  61 76 65 5f 57 69 6e 64  |ragBox(Save_Wind|
00006c10  6f 77 25 29 0d 21 ca 14  20 20 20 20 20 20 20 20  |ow%).!..        |
00006c20  20 20 20 c9 20 32 20 3a  0d 21 d4 33 20 20 20 20  |   . 2 :.!.3    |
00006c30  20 20 20 20 20 20 20 20  e7 20 62 6c 6f 63 6b 25  |        . block%|
00006c40  21 38 20 80 20 35 20 8c  20 f2 49 6e 74 65 72 6e  |!8 . 5 . .Intern|
00006c50  61 6c 5f 53 61 76 65 46  69 6c 65 0d 21 de 0f 20  |al_SaveFile.!.. |
00006c60  20 20 20 20 20 20 20 20  20 cb 0d 21 e8 0d 20 20  |         ..!..  |
00006c70  20 20 20 20 20 20 cb 0d  21 f2 0c 20 20 20 20 20  |      ..!..     |
00006c80  20 20 e1 0d 21 fc 06 f4  7c 0d 22 06 1e 20 20 20  |  ..!...|."..   |
00006c90  20 20 20 dd 20 f2 49 6e  74 65 72 6e 61 6c 5f 53  |   . .Internal_S|
00006ca0  61 76 65 46 69 6c 65 0d  22 10 0f 20 20 20 20 20  |aveFile."..     |
00006cb0  20 20 ea 20 78 24 0d 22  1a 2b 20 20 20 20 20 20  |  . x$.".+      |
00006cc0  20 78 24 3d a4 49 63 6f  6e 5f 47 65 74 54 65 78  | x$=.Icon_GetTex|
00006cd0  74 28 53 61 76 65 5f 57  69 6e 64 6f 77 25 2c 31  |t(Save_Window%,1|
00006ce0  29 0d 22 24 18 20 20 20  20 20 20 20 c8 8e 20 a7  |)."$.       .. .|
00006cf0  78 24 2c 22 2e 22 29 20  ca 0d 22 2e 14 20 20 20  |x$,".") .."..   |
00006d00  20 20 20 20 20 c9 20 30  20 20 20 20 3a 0d 22 38  |     . 0    :."8|
00006d10  4c 20 20 20 20 20 20 20  20 20 f2 41 6c 65 72 74  |L         .Alert|
00006d20  42 6f 78 28 54 61 73 6b  24 2c 22 54 6f 20 73 61  |Box(Task$,"To sa|
00006d30  76 65 2c 20 64 72 61 67  20 74 68 65 20 69 63 6f  |ve, drag the ico|
00006d40  6e 20 74 6f 20 61 20 64  69 72 65 63 74 6f 72 79  |n to a directory|
00006d50  20 77 69 6e 64 6f 77 22  29 0d 22 42 0f 20 20 20  | window")."B.   |
00006d60  20 20 20 20 20 7f 20 3a  0d 22 4c 20 20 20 20 20  |     . :."L     |
00006d70  20 20 20 20 20 f2 45 76  65 6e 74 5f 53 61 76 65  |     .Event_Save|
00006d80  46 69 6c 65 28 78 24 29  0d 22 56 0c 20 20 20 20  |File(x$)."V.    |
00006d90  20 20 20 cb 0d 22 60 22  20 20 20 20 20 20 20 c8  |   .."`"       .|
00006da0  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |. "Wimp_CreateMe|
00006db0  6e 75 22 2c 2d 31 0d 22  6a 0c 20 20 20 20 20 20  |nu",-1."j.      |
00006dc0  20 e1 0d 22 74 06 f4 7c  0d 22 7e 21 20 20 20 20  | .."t..|."~!    |
00006dd0  20 dd 20 f2 57 69 6d 70  5f 44 72 61 67 42 6f 78  | . .Wimp_DragBox|
00006de0  28 77 69 6e 64 6f 77 25  29 0d 22 88 10 20 20 20  |(window%)."..   |
00006df0  20 20 ea 20 78 25 2c 79  25 0d 22 92 18 20 20 20  |  . x%,y%."..   |
00006e00  20 20 21 62 6c 6f 63 6b  25 3d 77 69 6e 64 6f 77  |  !block%=window|
00006e10  25 0d 22 9c 29 20 20 20  20 20 c8 99 20 22 57 69  |%.".)     .. "Wi|
00006e20  6d 70 5f 47 65 74 57 69  6e 64 6f 77 53 74 61 74  |mp_GetWindowStat|
00006e30  65 22 2c 2c 62 6c 6f 63  6b 25 0d 22 a6 38 20 20  |e",,block%.".8  |
00006e40  20 20 20 78 25 3d 62 6c  6f 63 6b 25 21 34 2d 62  |   x%=block%!4-b|
00006e50  6c 6f 63 6b 25 21 32 30  20 20 3a 20 79 25 3d 62  |lock%!20  : y%=b|
00006e60  6c 6f 63 6b 25 21 31 36  2d 62 6c 6f 63 6b 25 21  |lock%!16-block%!|
00006e70  32 34 0d 22 b0 13 20 20  20 20 20 62 6c 6f 63 6b  |24."..     block|
00006e80  25 21 34 3d 30 0d 22 ba  27 20 20 20 20 20 c8 99  |%!4=0.".'     ..|
00006e90  20 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  | "Wimp_GetIconSt|
00006ea0  61 74 65 22 2c 2c 62 6c  6f 63 6b 25 0d 22 c4 18  |ate",,block%."..|
00006eb0  20 20 20 20 20 21 62 6c  6f 63 6b 25 3d 77 69 6e  |     !block%=win|
00006ec0  64 6f 77 25 0d 22 ce 14  20 20 20 20 20 20 62 6c  |dow%."..      bl|
00006ed0  6f 63 6b 25 21 34 3d 35  0d 22 d8 3a 20 20 20 20  |ock%!4=5.".:    |
00006ee0  20 20 62 6c 6f 63 6b 25  21 38 3d 78 25 2b 62 6c  |  block%!8=x%+bl|
00006ef0  6f 63 6b 25 21 38 20 20  20 20 3a 20 62 6c 6f 63  |ock%!8    : bloc|
00006f00  6b 25 21 31 32 3d 79 25  2b 62 6c 6f 63 6b 25 21  |k%!12=y%+block%!|
00006f10  31 32 0d 22 e2 3a 20 20  20 20 20 20 62 6c 6f 63  |12.".:      bloc|
00006f20  6b 25 21 31 36 3d 78 25  2b 62 6c 6f 63 6b 25 21  |k%!16=x%+block%!|
00006f30  31 36 20 20 3a 20 62 6c  6f 63 6b 25 21 32 30 3d  |16  : block%!20=|
00006f40  79 25 2b 62 6c 6f 63 6b  25 21 32 30 0d 22 ec 21  |y%+block%!20.".!|
00006f50  20 20 20 20 20 20 62 6c  6f 63 6b 25 21 32 34 3d  |      block%!24=|
00006f60  30 3a 62 6c 6f 63 6b 25  21 32 38 3d 30 0d 22 f6  |0:block%!28=0.".|
00006f70  34 20 20 20 20 20 20 62  6c 6f 63 6b 25 21 33 32  |4      block%!32|
00006f80  3d 26 37 46 46 46 46 46  46 46 20 20 3a 20 62 6c  |=&7FFFFFFF  : bl|
00006f90  6f 63 6b 25 21 33 36 3d  26 37 46 46 46 46 46 46  |ock%!36=&7FFFFFF|
00006fa0  46 0d 23 00 23 20 20 20  20 20 20 c8 99 20 22 57  |F.#.#      .. "W|
00006fb0  69 6d 70 5f 44 72 61 67  42 6f 78 22 2c 2c 62 6c  |imp_DragBox",,bl|
00006fc0  6f 63 6b 25 0d 23 0a 0a  20 20 20 20 20 e1 0d 23  |ock%.#..     ..#|
00006fd0  14 06 f4 7c 0d 23 1e 1f  20 20 20 20 dd 20 f2 49  |...|.#..    . .I|
00006fe0  6e 74 65 72 6e 61 6c 5f  53 61 76 65 4d 65 73 73  |nternal_SaveMess|
00006ff0  61 67 65 0d 23 28 23 20  20 20 20 ea 20 66 69 6c  |age.#(#    . fil|
00007000  65 24 2c 77 69 6e 64 6f  77 25 2c 69 63 6f 6e 25  |e$,window%,icon%|
00007010  2c 78 25 2c 79 25 0d 23  32 28 20 20 20 20 c8 99  |,x%,y%.#2(    ..|
00007020  20 22 57 69 6d 70 5f 47  65 74 50 6f 69 6e 74 65  | "Wimp_GetPointe|
00007030  72 49 6e 66 6f 22 2c 2c  62 6c 6f 63 6b 25 0d 23  |rInfo",,block%.#|
00007040  3c 49 20 20 20 20 77 69  6e 64 6f 77 25 3d 62 6c  |<I    window%=bl|
00007050  6f 63 6b 25 21 31 32 20  3a 20 69 63 6f 6e 25 3d  |ock%!12 : icon%=|
00007060  62 6c 6f 63 6b 25 21 31  36 20 20 3a 20 78 25 3d  |block%!16  : x%=|
00007070  62 6c 6f 63 6b 25 21 30  20 20 3a 20 79 25 3d 62  |block%!0  : y%=b|
00007080  6c 6f 63 6b 25 21 34 0d  23 46 35 20 20 20 20 66  |lock%!4.#F5    f|
00007090  69 6c 65 24 3d a4 47 65  74 4c 65 61 66 28 a4 49  |ile$=.GetLeaf(.I|
000070a0  63 6f 6e 5f 47 65 74 54  65 78 74 28 53 61 76 65  |con_GetText(Save|
000070b0  5f 57 69 6e 64 6f 77 25  2c 31 29 29 0d 23 50 19  |_Window%,1)).#P.|
000070c0  20 20 20 20 62 6c 6f 63  6b 25 21 32 30 3d 77 69  |    block%!20=wi|
000070d0  6e 64 6f 77 25 0d 23 5a  17 20 20 20 20 62 6c 6f  |ndow%.#Z.    blo|
000070e0  63 6b 25 21 32 34 3d 69  63 6f 6e 25 0d 23 64 23  |ck%!24=icon%.#d#|
000070f0  20 20 20 20 62 6c 6f 63  6b 25 21 32 38 3d 78 25  |    block%!28=x%|
00007100  20 3a 20 62 6c 6f 63 6b  25 21 33 32 3d 79 25 0d  | : block%!32=y%.|
00007110  23 6e 19 20 20 20 20 62  6c 6f 63 6b 25 21 33 36  |#n.    block%!36|
00007120  3d 6c 65 6e 67 74 68 25  0d 23 78 13 20 20 20 20  |=length%.#x.    |
00007130  62 6c 6f 63 6b 25 21 30  3d 36 34 0d 23 82 13 20  |block%!0=64.#.. |
00007140  20 20 20 62 6c 6f 63 6b  25 21 31 32 3d 30 0d 23  |   block%!12=0.#|
00007150  8c 13 20 20 20 20 62 6c  6f 63 6b 25 21 31 36 3d  |..    block%!16=|
00007160  31 0d 23 96 16 20 20 20  20 62 6c 6f 63 6b 25 21  |1.#..    block%!|
00007170  34 30 3d 26 46 46 46 0d  23 a0 1a 20 20 20 20 24  |40=&FFF.#..    $|
00007180  28 62 6c 6f 63 6b 25 2b  34 34 29 3d 66 69 6c 65  |(block%+44)=file|
00007190  24 0d 23 aa 3b 20 20 20  20 c8 99 20 22 57 69 6d  |$.#.;    .. "Wim|
000071a0  70 5f 53 65 6e 64 4d 65  73 73 61 67 65 22 2c 31  |p_SendMessage",1|
000071b0  37 2c 62 6c 6f 63 6b 25  2c 62 6c 6f 63 6b 25 21  |7,block%,block%!|
000071c0  32 30 2c 62 6c 6f 63 6b  25 21 32 34 0d 23 b4 09  |20,block%!24.#..|
000071d0  20 20 20 20 e1 0d 23 be  06 f4 7c 0d 23 c8 20 20  |    ..#...|.#.  |
000071e0  20 20 20 20 20 20 dd 20  a4 49 6e 74 65 72 6e 61  |      . .Interna|
000071f0  6c 5f 53 61 76 65 45 76  65 6e 74 0d 23 d2 3c 20  |l_SaveEvent.#.< |
00007200  20 20 20 20 3d 28 62 6c  6f 63 6b 25 21 30 3d 53  |    =(block%!0=S|
00007210  61 76 65 5f 57 69 6e 64  6f 77 25 29 20 84 20 28  |ave_Window%) . (|
00007220  62 6c 6f 63 6b 25 21 31  32 3d 53 61 76 65 5f 57  |block%!12=Save_W|
00007230  69 6e 64 6f 77 25 29 0d  23 dc 06 f4 7c 0d 23 e6  |indow%).#...|.#.|
00007240  06 f4 7c 0d 23 f0 06 f4  7c 0d 23 fa 06 f4 7c 0d  |..|.#...|.#...|.|
00007250  24 04 31 f4 7c 20 20 20  20 20 20 20 20 20 20 20  |$.1.|           |
00007260  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
00007270  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00007280  0d 24 0e 2c f4 7c 20 20  20 20 20 20 20 20 20 20  |.$.,.|          |
00007290  20 20 20 20 20 20 20 20  20 20 20 20 39 2e a0 4d  |            9..M|
000072a0  69 73 63 65 6c 6c 61 6e  65 6f 75 73 0d 24 18 31  |iscellaneous.$.1|
000072b0  f4 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.|              |
000072c0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
000072d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 24 22  |-------------.$"|
000072e0  06 f4 7c 0d 24 2c 06 f4  7c 0d 24 36 35 f4 7c 20  |..|.$,..|.$65.| |
000072f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  |               -|
00007300  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00007310  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 24  |--------------.$|
00007320  40 06 f4 7c 0d 24 4a 28  f4 7c 20 20 20 20 20 20  |@..|.$J(.|      |
00007330  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007340  50 72 6f 63 65 64 75 72  65 73 20 3a 0d 24 54 06  |Procedures :.$T.|
00007350  f4 7c 0d 24 5e 40 f4 7c  20 20 20 20 20 20 20 20  |.|.$^@.|        |
00007360  20 20 20 20 20 20 20 20  20 50 52 4f 43 57 69 6d  |         PROCWim|
00007370  70 5f 41 6c 65 72 74 42  6f 78 28 74 69 74 6c 65  |p_AlertBox(title|
00007380  24 2c 6d 65 73 73 61 67  65 24 2c 62 75 74 74 6f  |$,message$,butto|
00007390  6e 25 0d 24 68 38 f4 7c  20 20 20 20 20 20 20 20  |n%.$h8.|        |
000073a0  20 20 20 20 20 20 20 20  20 46 4e 57 69 6d 70 5f  |         FNWimp_|
000073b0  43 61 6e 63 65 6c 42 6f  78 28 74 69 74 6c 65 24  |CancelBox(title$|
000073c0  2c 6d 65 73 73 61 67 65  24 29 0d 24 72 39 f4 7c  |,message$).$r9.||
000073d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000073e0  20 50 52 4f 43 57 69 6d  70 5f 45 72 72 6f 72 42  | PROCWimp_ErrorB|
000073f0  6f 78 28 74 69 74 6c 65  24 2c 6d 65 73 73 61 67  |ox(title$,messag|
00007400  65 24 29 0d 24 7c 36 f4  7c 20 20 20 20 20 20 20  |e$).$|6.|       |
00007410  20 20 20 20 20 20 20 20  20 20 50 52 4f 43 57 69  |          PROCWi|
00007420  6d 70 5f 41 6c 65 72 74  28 74 69 74 6c 65 24 2c  |mp_Alert(title$,|
00007430  6d 65 73 73 61 67 65 24  29 0d 24 86 36 f4 7c 20  |message$).$.6.| |
00007440  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007450  46 4e 55 74 69 6c 73 5f  52 65 61 64 56 61 72 69  |FNUtils_ReadVari|
00007460  61 62 6c 65 28 76 61 72  69 61 62 6c 65 24 29 0d  |able(variable$).|
00007470  24 90 06 f4 7c 0d 24 9a  35 f4 7c 20 20 20 20 20  |$...|.$.5.|     |
00007480  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
00007490  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000074a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 24 a4 06 f4 7c  |----------.$...||
000074b0  0d 24 ae 06 f4 7c 0d 24  b8 06 f4 7c 0d 24 c2 36  |.$...|.$...|.$.6|
000074c0  20 20 20 20 20 20 20 20  20 dd 20 f2 57 69 6d 70  |         . .Wimp|
000074d0  5f 41 6c 65 72 74 42 6f  78 28 74 69 74 6c 65 24  |_AlertBox(title$|
000074e0  2c 6d 65 73 73 61 67 65  24 2c 62 75 74 74 6f 6e  |,message$,button|
000074f0  25 29 0d 24 cc 18 20 20  20 20 20 20 20 20 20 ea  |%).$..         .|
00007500  20 72 65 73 70 6f 6e 73  65 25 0d 24 d6 21 20 20  | response%.$.!  |
00007510  20 20 20 20 20 20 20 24  28 62 6c 6f 63 6b 25 2b  |       $(block%+|
00007520  34 29 3d 6d 65 73 73 61  67 65 24 0d 24 e0 19 20  |4)=message$.$.. |
00007530  20 20 20 20 20 20 20 20  c8 8e 20 62 75 74 74 6f  |        .. butto|
00007540  6e 25 20 ca 0d 24 ea 37  20 20 20 20 20 20 20 20  |n% ..$.7        |
00007550  20 20 c9 20 32 20 20 20  20 3a 20 72 65 73 70 6f  |  . 2    : respo|
00007560  6e 73 65 25 3d 31 20 20  20 20 20 3a 20 f4 7c 2e  |nse%=1     : .|.|
00007570  2e 2e 45 72 72 6f 72 20  42 6f 78 0d 24 f4 42 20  |..Error Box.$.B |
00007580  20 20 20 20 20 20 20 20  20 c9 20 31 20 20 20 20  |         . 1    |
00007590  3a 20 72 65 73 70 6f 6e  73 65 25 3d 31 35 20 20  |: response%=15  |
000075a0  20 20 3a 20 f4 7c 2e 2e  2e 4f 4b 20 61 6e 64 20  |  : .|...OK and |
000075b0  43 41 4e 43 45 4c 20 62  75 74 6f 6e 73 0d 24 fe  |CANCEL butons.$.|
000075c0  2a 20 20 20 20 20 20 20  20 20 20 c9 20 33 20 20  |*          . 3  |
000075d0  20 20 3a 20 72 65 73 70  6f 6e 73 65 25 3d 28 31  |  : response%=(1|
000075e0  3c 3c 35 29 2b 31 36 0d  25 08 2a 20 20 20 20 20  |<<5)+16.%.*     |
000075f0  20 20 20 20 20 c9 20 34  20 20 20 20 3a 20 72 65  |     . 4    : re|
00007600  73 70 6f 6e 73 65 25 3d  28 31 3c 3c 36 29 2b 31  |sponse%=(1<<6)+1|
00007610  36 0d 25 12 37 20 20 20  20 20 20 20 20 20 20 7f  |6.%.7          .|
00007620  20 3a 20 72 65 73 70 6f  6e 73 65 25 3d 31 36 20  | : response%=16 |
00007630  20 20 20 3a 20 f4 7c 2e  2e 2e 4f 4b 20 62 75 74  |   : .|...OK but|
00007640  74 6f 6e 20 6f 6e 6c 79  0d 25 1c 0d 20 20 20 20  |ton only.%..    |
00007650  20 20 20 20 cb 0d 25 26  46 20 20 20 20 20 20 20  |    ..%&F       |
00007660  20 c8 99 20 22 57 69 6d  70 5f 52 65 70 6f 72 74  | .. "Wimp_Report|
00007670  45 72 72 6f 72 22 2c 62  6c 6f 63 6b 25 2c 72 65  |Error",block%,re|
00007680  73 70 6f 6e 73 65 25 2c  74 69 74 6c 65 24 20 b8  |sponse%,title$ .|
00007690  20 2c 72 65 73 70 6f 6e  73 65 25 0d 25 30 0d 20  | ,response%.%0. |
000076a0  20 20 20 20 20 20 20 e1  0d 25 3a 06 f4 7c 0d 25  |       ..%:..|.%|
000076b0  44 2e 20 20 20 20 20 20  20 20 dd 20 a4 57 69 6d  |D.        . .Wim|
000076c0  70 5f 43 61 6e 63 65 6c  42 6f 78 28 74 69 74 6c  |p_CancelBox(titl|
000076d0  65 24 2c 6d 65 73 73 61  67 65 24 29 0d 25 4e 20  |e$,message$).%N |
000076e0  20 20 20 20 20 20 20 20  24 28 62 6c 6f 63 6b 25  |        $(block%|
000076f0  2b 34 29 3d 6d 65 73 73  61 67 65 24 0d 25 58 18  |+4)=message$.%X.|
00007700  20 20 20 20 20 20 20 20  72 65 73 70 6f 6e 73 65  |        response|
00007710  25 3d 32 33 0d 25 62 46  20 20 20 20 20 20 20 20  |%=23.%bF        |
00007720  c8 99 20 22 57 69 6d 70  5f 52 65 70 6f 72 74 45  |.. "Wimp_ReportE|
00007730  72 72 6f 72 22 2c 62 6c  6f 63 6b 25 2c 72 65 73  |rror",block%,res|
00007740  70 6f 6e 73 65 25 2c 74  69 74 6c 65 24 20 b8 20  |ponse%,title$ . |
00007750  2c 72 65 73 70 6f 6e 73  65 25 0d 25 6c 17 20 20  |,response%.%l.  |
00007760  20 20 20 20 20 3d 72 65  73 70 6f 6e 73 65 25 2d  |     =response%-|
00007770  32 0d 25 76 06 f4 7c 0d  25 80 2d 20 20 20 20 20  |2.%v..|.%.-     |
00007780  20 20 20 dd 20 f2 57 69  6d 70 5f 45 72 72 6f 72  |   . .Wimp_Error|
00007790  42 6f 78 28 74 69 74 6c  65 24 2c 6d 65 73 73 61  |Box(title$,messa|
000077a0  67 65 24 29 0d 25 8a 2d  20 20 20 20 20 20 20 20  |ge$).%.-        |
000077b0  f2 57 69 6d 70 5f 41 6c  65 72 74 42 6f 78 28 74  |.Wimp_AlertBox(t|
000077c0  69 74 6c 65 24 2c 6d 65  73 73 61 67 65 24 2c 32  |itle$,message$,2|
000077d0  29 0d 25 94 0d 20 20 20  20 20 20 20 20 e1 0d 25  |).%..        ..%|
000077e0  9e 06 f4 7c 0d 25 a8 2a  20 20 20 20 20 20 20 20  |...|.%.*        |
000077f0  dd 20 f2 57 69 6d 70 5f  41 6c 65 72 74 28 74 69  |. .Wimp_Alert(ti|
00007800  74 6c 65 24 2c 6d 65 73  73 61 67 65 24 29 0d 25  |tle$,message$).%|
00007810  b2 2d 20 20 20 20 20 20  20 20 f2 57 69 6d 70 5f  |.-        .Wimp_|
00007820  41 6c 65 72 74 42 6f 78  28 74 69 74 6c 65 24 2c  |AlertBox(title$,|
00007830  6d 65 73 73 61 67 65 24  2c 30 29 0d 25 bc 0d 20  |message$,0).%.. |
00007840  20 20 20 20 20 20 20 e1  0d 25 c6 06 f4 7c 0d 25  |       ..%...|.%|
00007850  d0 2c 20 20 20 20 20 20  20 20 dd 20 a4 55 74 69  |.,        . .Uti|
00007860  6c 73 5f 52 65 61 64 56  61 72 69 61 62 6c 65 28  |ls_ReadVariable(|
00007870  56 61 72 69 61 62 6c 65  24 29 0d 25 da 25 20 20  |Variable$).%.%  |
00007880  20 20 20 20 20 20 20 ea  20 6c 65 6e 25 2c 72 65  |       . len%,re|
00007890  73 75 6c 74 25 2c 76 61  72 69 61 62 6c 65 25 0d  |sult%,variable%.|
000078a0  25 e4 2b f4 20 20 20 20  20 20 20 20 20 44 49 4d  |%.+.         DIM|
000078b0  20 72 65 73 75 6c 74 25  20 32 35 35 2c 76 61 72  | result% 255,var|
000078c0  69 61 62 6c 65 25 20 31  30 30 0d 25 ee 1e 20 20  |iable% 100.%..  |
000078d0  20 20 20 20 20 20 20 24  62 6c 6f 63 6b 25 3d 56  |       $block%=V|
000078e0  61 72 69 61 62 6c 65 24  0d 25 f8 41 20 20 20 20  |ariable$.%.A    |
000078f0  20 20 20 20 20 c8 99 20  22 4f 53 5f 52 65 61 64  |     .. "OS_Read|
00007900  56 61 72 56 61 6c 22 2c  62 6c 6f 63 6b 25 2c 62  |VarVal",block%,b|
00007910  6c 6f 63 6b 25 2b 32 35  35 2c 32 35 35 2c 2c 33  |lock%+255,255,,3|
00007920  20 b8 20 2c 2c 6c 65 6e  25 0d 26 02 21 20 20 20  | . ,,len%.&.!   |
00007930  20 20 20 20 20 20 62 6c  6f 63 6b 25 3f 28 6c 65  |      block%?(le|
00007940  6e 25 2b 32 35 35 29 3d  31 33 0d 26 0c 1a 20 20  |n%+255)=13.&..  |
00007950  20 20 20 20 20 20 3d 24  28 62 6c 6f 63 6b 25 2b  |      =$(block%+|
00007960  32 35 35 29 0d 26 16 05  3a 0d 26 20 2b dd 20 f2  |255).&..:.& +. .|
00007970  49 63 6f 6e 5f 50 75 74  43 61 72 65 74 28 77 69  |Icon_PutCaret(wi|
00007980  6e 64 6f 77 25 2c 69 63  6f 6e 25 2c 6c 65 6e 67  |ndow%,icon%,leng|
00007990  74 68 25 29 0d 26 2a 39  c8 99 20 22 57 69 6d 70  |th%).&*9.. "Wimp|
000079a0  5f 53 65 74 43 61 72 65  74 50 6f 73 69 74 69 6f  |_SetCaretPositio|
000079b0  6e 22 2c 77 69 6e 64 6f  77 25 2c 69 63 6f 6e 25  |n",window%,icon%|
000079c0  2c 2c 2c 2d 31 2c 6c 65  6e 67 74 68 25 0d 26 34  |,,,-1,length%.&4|
000079d0  05 e1 0d 26 3e 05 3a 0d  ff                       |...&>.:..|
000079d9