Home » Archimedes archive » Archimedes World » AW-1993-12.adf » AWDec93 » !AWDec93/Goodies/RiscOS/!LibMaker/!RunImage

!AWDec93/Goodies/RiscOS/!LibMaker/!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-1993-12.adf » AWDec93
Filename: !AWDec93/Goodies/RiscOS/!LibMaker/!RunImage
Read OK:
File size: 45C9 bytes
Load address: 0000
Exec address: 0000
File contents
    1ON ERROR PROCError
    2
    3REM                         --------
    4REM                         CONTENTS
    5REM                         --------
    6
    7REM           1. Initialisation procedures
    8REM               1.1 Wimp Initialise
    9REM               1.2 Define Windows
   10REM               1.3 Define Menus
   11
   12REM           2. Event procedures
   13REM              2.1 Mouse Clicks
   14REM              2.2 Menu Choice
   15REM              2.3 Messages
   16
   17REM           3. Save procedures
   18REM              3.1 Creating a new library
   19REM              3.2 Saving Files
   20
   21REM           4. Wimp
   22REM              4.1 Menus
   23REM              4.2 Sprites
   24REM              4.3 Windows
   25REM              4.4 Icons
   26REM              4.5 Miscellaneous
   27
   28REM           5. SAVE
   29
   30REM           6. Error procedure
   31
   32
   33PROCWimp_Initialise("Library Maker")
   34PROCDefine_Windows
   35PROCDefine_Menus
   36
   37REPEAT
   38 event%=FNWimp_PollSave(mask%)
   39 CASE event% OF
   40  WHEN 2     : SYS "Wimp_OpenWindow",,wimp%
   41  WHEN 3     : SYS "Wimp_CloseWindow",,wimp%
   42  WHEN 6     : PROCEvent_MouseClick
   43  WHEN 9     : PROCEvent_MenuChoice
   44  WHEN 17,18 : PROCEvent_Message
   45 ENDCASE
   46UNTIL finished%
   47END
   48:
   49REM ------------------------------
   50REM  1. Initialisation procedures
   51REM ------------------------------
   52
   53REM --------------------
   54REM  1.1 Wimp Initialise
   55REM --------------------
   56
   57DEF PROCWimp_Initialise(task$)
   58DIM wimp% 2000, icons% 1262, fonts% 256
   59icon_memory%=icons%+1262
   60SYS "Wimp_Initialise",200,&4B534154,task$
   61mask%=0
   62finished%=FALSE
   63sprite_name$=""
   64Basic_File$=""
   65Options%=0
   66ENDPROC
   67
   68REM --------------------
   69REM  1.2 Define Windows
   70REM --------------------
   71
   72
   73DEF PROCDefine_Windows
   74LibSave_Window%=FNWimp_WindowLoad("LibSave")
   75Info_Window%=FNWimp_WindowLoad("Info")
   76LinkSave_Window%=FNWimp_WindowLoad("LinkSave")
   77SYS "Wimp_CloseTemplate"
   78PROCRead_Defaults
   79ENDPROC
   80  :
   81  DEF PROCRead_Defaults
   82  DIM  defaults% 4
   83  IF FNFile_Exists("LibMaker:Defaults") THEN
   84   SYS "OS_File",16,"LibMaker:Defaults",defaults%
   85   crunch%=defaults%!0
   86  ELSE
   87   crunch%=%11111
   88  ENDIF
   89  PROCSet_LinkSaveIcons
   90  ENDPROC
   91     :
   92     DEF PROCSet_LinkSaveIcons
   93      FOR icon%=4 TO 8
   94        IF crunch%AND(1<<(icon%-4)) THEN
   95         PROCWimp_IconSelect(LinkSave_Window%,icon%)
   96        ENDIF
   97       NEXT
   98     ENDPROC
   99
  100REM --------------------
  101REM  1.3 Define Menus
  102REM --------------------
  103
  104DEF PROCDefine_Menus
  105Bar_Icon%=FNWimp_IconBar("!LibMaker")
  106Bar_Menu%=FNWimp_MenuCreate("LibMaker\Info\Create Lib\Quit")
  107PROCWimp_MenuGlue(Bar_Menu%,1,Info_Window%)
  108PROCWimp_MenuGlue(Bar_Menu%,2,LibSave_Window%)
  109LinkSave_Menu%=FNWimp_MenuCreate("LibMaker\SaveDefaults")
  110ENDPROC
  111
  112REM ------------------------------
  113REM  2. Event procedures
  114REM ------------------------------
  115:
  116REM  2.1 Mouse Clicks
  117REM  ================
  118
  119DEF PROCEvent_MouseClick
  120CASE wimp%!12 OF
  121 WHEN -2
  122  CASE wimp%!8 OF
  123   WHEN 2    : PROCWimp_MenuPopUpBar(wimp%!0,wimp%!4)
  124   OTHERWISE : REM PROCWimp_WindowBringToTop(LinkSave_Window%)
  125               REM u$=FNWimp_IconText(LinkSave_Window%,1)
  126               REM PROCWimp_IconCaret(LinkSave_Window%,1,LENu$)
  127  ENDCASE
  128 WHEN LinkSave_Window%
  129  CASE wimp%!8 OF
  130   WHEN 2    : PROCWimp_MenuPopUp(LinkSave_Menu%,wimp%!0,wimp%!4)
  131   OTHERWISE : PROCGet_LinkOptions(wimp%!16)
  132  ENDCASE
  133ENDCASE
  134ENDPROC
  135   :
  136   DEF PROCGet_LinkOptions(icon%)
  137    CASE icon% OF
  138     WHEN 4,5,6,7,8
  139      ic%=icon%-4 : crunch%=crunch%EOR(1<<ic%)
  140    ENDCASE
  141   ENDPROC
  142
  143:
  144REM  2.2 Menu Choice
  145REM  ================
  146
  147DEF PROCEvent_MenuChoice
  148 CASE menu% OF
  149  WHEN Bar_Menu%
  150   CASE wimp%!0 OF
  151    WHEN 2 : PROCWimp_MenuClose : finished%=TRUE
  152   ENDCASE
  153  WHEN LinkSave_Menu%
  154   CASE wimp%!0 OF
  155    WHEN 0 : PROCSave_Defaults
  156   ENDCASE
  157 ENDCASE
  158ENDPROC
  159  :
  160  DEF PROCSave_Defaults
  161  defaults%!0=crunch%
  162  SYS "OS_File",10,"LibMaker:Defaults",&FFD,,defaults%,defaults%+4
  163  ENDPROC
  164
  165REM  2.3 Messages
  166REM  ================
  167
  168DEF PROCEvent_Message
  169message%=wimp%!16
  170 CASE message%  OF
  171  WHEN 0 : finished%=TRUE
  172  WHEN 3 : PROCDealWithLoadedFile(wimp%!40)
  173 ENDCASE
  174ENDPROC
  175  :
  176  DEF PROCDealWithLoadedFile(type%)
  177   CASE type% OF
  178    REM WHEN &FFB : PROCDealWithBasicFile(wimp%+44)
  179    WHEN &2000: PROCDealWithApplication(wimp%+44)
  180   ENDCASE
  181  ENDPROC
  182    :
  183    DEF PROCDealWithBasicFile(file%)
  184     Basic_File$=FNWimp_GetStringAtAddress(file%)
  185     PROCWimp_IconPutText(LinkSave_Window%,11,Basic_File$)
  186     PROCWimp_WindowBringToTop(LinkSave_Window%)
  187     u$=FNWimp_IconText(LinkSave_Window%,1)
  188     PROCWimp_IconCaret(LinkSave_Window%,1,LENu$)
  189    ENDPROC
  190    :
  191    DEF PROCDealWithApplication(file%)
  192     app$=FNWimp_GetStringAtAddress(file%)
  193     leaf$=FNWimp_GetFileFromPathname(app$)
  194     leaf$=RIGHT$(leaf$,LENleaf$-1)
  195     IF FNLibrary THEN
  196       mess$= "Is this a BASIC procedure library for which you want"
  197       mess$+=" to Add/Remove the � directory?"
  198       !wimp%=0 : $(wimp%+4)=mess$
  199       SYS "Wimp_ReportError",wimp%,%11111,"!LibMaker" TO ,choice%
  200       IF choice%=1 THEN
  201        PROCChange("!Boot")
  202        PROCChange("!Run")
  203       ENDIF
  204      ENDIF
  205     ENDPROC
  206       :
  207       DEF FNLibrary
  208       LOCAL lib%
  209       lib%=FNFile_Exists(app$+"."+"!Boot") AND FNFile_Exists(app$+"."+"!Run")
  210       IF NOTlib% THEN
  211        mess$="This application either doesn't have a !Run file or a !Boot "
  212        mess$+="file. It can't be a BASIC procedure library!"
  213        PROCWimp_Alert("!LibMaker",mess$)
  214       ENDIF
  215       =lib%
  216
  217          :
  218          DEF PROCChange(x$)
  219           boot%=OPENUP(app$+"."+x$)
  220           REPEAT
  221            p%=PTR#boot%
  222            x$=GET$#boot%
  223            IF INSTR(x$,leaf$+"$Path")<>0 THEN
  224             PTR#boot%=p%
  225             IF RIGHT$(x$,2)="�." THEN RIGHT$(x$,2)="  " ELSE RIGHT$(x$,2)="�."
  226             BPUT#boot%,x$
  227            ENDIF
  228            IF INSTR(x$,leaf$+":")<>0 THEN
  229             PTR#boot%=p%
  230             IF RIGHT$(x$)="�" THEN RIGHT$(x$)=" " ELSE RIGHT$(x$)="�"
  231             BPUT#boot%,x$
  232            ENDIF
  233           UNTIL EOF#boot%
  234           CLOSE#boot%
  235           IF x$="!Boot" THEN OSCLI("WimpTask "+app$+"."+x$)
  236           ENDPROC
  237:
  238REM ------------------------------
  239REM  3. Save procedures
  240REM ------------------------------
  241:
  242DEF FNDefine_Save(window%)
  243LOCAL result%
  244CASE window% OF
  245 WHEN LibSave_Window%  : result%=TRUE
  246 WHEN LinkSave_Window% : result%=TRUE
  247 OTHERWISE             : result%=FALSE
  248ENDCASE
  249=result%
  250
  251DEF PROCEvent_SaveFile(file$,window%)
  252CASE window% OF
  253 WHEN LibSave_Window% : PROCCreateNewLibrary
  254 WHEN LinkSave_Window%: PROCLinkLibraries
  255ENDCASE
  256ENDPROC
  257
  258REM  3.1 Creating a new library
  259REM  ==========================
  260
  261  DEF PROCCreateNewLibrary
  262   PROCGetLibraryName
  263   OSCLI"CDIR "+file$
  264   OSCLI"CDIR "+file$+".�"
  265   IF sprite_name$="" THEN PROCLoad_Sprites
  266   PROCCopy_SpriteFiles
  267   PROCCopy_Run
  268   PROCCopy_Boot
  269   PROCCopy_Help
  270  ENDPROC
  271    :
  272    DEF PROCGetLibraryName
  273     leaf$=FNWimp_GetFileFromPathname(file$)
  274     file$=LEFT$(file$,LENfile$-LENleaf$)
  275     IF LEFT$(leaf$,1)<>"!" THEN
  276      file$+="!"+LEFT$(leaf$,9)
  277      PROCWimp_IconPutText(LibSave_Window%,1,file$)
  278     ELSE
  279      file$+=LEFT$(leaf$,10)
  280      PROCWimp_IconPutText(LibSave_Window%,1,file$)
  281     ENDIF
  282    ENDPROC
  283    :
  284    DEF PROCLoad_Sprites
  285     sprite_name$="!library"
  286     Sprites%=FNWimp_SpriteLoad("LibMaker:!Sprites")
  287     Sprites22%=FNWimp_SpriteLoad("LibMaker:!Sprites22")
  288     Sprites23%=FNWimp_SpriteLoad("LibMaker:!Sprites23")
  289    ENDPROC
  290    :
  291    DEF PROCCopy_SpriteFiles
  292     leaf$=FNWimp_GetFileFromPathname(file$)
  293     SYS "OS_SpriteOp",256+26,Sprites%,sprite_name$,leaf$+CHR$0
  294     SYS "OS_SpriteOp",256+12,Sprites%,file$+".!Sprites"
  295     SYS "OS_SpriteOp",256+26,Sprites22%,sprite_name$,leaf$+CHR$0
  296     SYS "OS_SpriteOp",256+12,Sprites22%,file$+".!Sprites22"
  297     SYS "OS_SpriteOp",256+26,Sprites23%,sprite_name$,leaf$+CHR$0
  298     SYS "OS_SpriteOp",256+12,Sprites23%,file$+".!Sprites23"
  299     sprite_name$=leaf$
  300    ENDPROC
  301    :
  302    DEF PROCCopy_Run
  303     LOCAL p% : p%=wimp%
  304     IF LEFT$(leaf$,1)="!" THEN leaf$=RIGHT$(leaf$,LENleaf$-1)
  305     PROCAdd_Line("Iconsprites <Obey$Dir>.!Sprites")
  306     PROCAdd_Line("Set "+leaf$+"$Path <Obey$Dir>.�.")
  307     PROCAdd_Line("Filer_OpenDir "+leaf$+": ")
  308     SYS "OS_File",10,file$+".!Run",&FEB,,wimp%,p%
  309    ENDPROC
  310    :
  311    DEF PROCCopy_Boot
  312     LOCAL p% : p%=wimp%
  313     PROCAdd_Line("Iconsprites <Obey$Dir>.!Sprites")
  314     PROCAdd_Line("Set "+leaf$+"$Path <Obey$Dir>.�.")
  315     SYS "OS_File",10,file$+".!Boot",&FEB,,wimp%,p%
  316    ENDPROC
  317    :
  318    DEF PROCCopy_Help
  319     LOCAL p% : p%=wimp% : wimp%!0=0
  320     SYS "OS_Word",14,wimp% : date$=$wimp%
  321     PROCAdd_Line("")
  322     PROCAdd_Line(STRING$(11+LENleaf$,"-"))
  323     PROCAdd_Line(" Library: "+leaf$)
  324     PROCAdd_Line("")
  325     PROCAdd_Line(" Purpose: ")
  326     PROCAdd_Line("")
  327     PROCAdd_Line(" Version: 1.0 ("+date$+")")
  328     PROCAdd_Line("")
  329     PROCAdd_Line(STRING$(11+LENleaf$,"-"))
  330     PROCAdd_Line("")
  331     PROCAdd_Line("   "+STRING$(60,"*"))
  332     PROCAdd_Line("   USAGE")
  333     PROCAdd_Line("   "+STRING$(60,"*"))
  334     SYS "OS_File",10,file$+".!Help",&FFF,,wimp%,p%
  335    ENDPROC
  336      :
  337      DEF PROCAdd_Line(x$)
  338       $p%=x$+CHR$10 : p%+=LENx$+1
  339      ENDPROC
  340
  341REM  3.2 Saving Files
  342REM  ===================
  343
  344 DEF PROCLinkLibraries
  345 IF Basic_File$<>"" THEN
  346  PROCMakeSureOfRamDisc
  347  OSCLI"Set Basic$File "+Basic_File$
  348  OSCLI"Set Save$File "+file$
  349  OSCLI("SetEval Crunch "+STR$crunch%)
  350  *WimpTask LibMaker:Link
  351  SYS "Wimp_CloseWindow",,wimp%
  352  *Ram:Close
  353 ELSE
  354  mess$="No file to be processed. "
  355  mess$+="Drag a BASIC file onto icon bar or this window."
  356  PROCWimp_Alert("LibMaker",mess$)
  357 ENDIF
  358 ENDPROC
  359
  360   DEF PROCMakeSureOfRamDisc
  361    SYS "OS_ReadRAMFsLimits" TO begin%,end%
  362    IF begin%=end% THEN
  363     SYS "OS_ChangeDynamicArea",5,32*1024
  364    ENDIF
  365     PROCCleanUpRAMDisc
  366   ENDPROC
  367
  368   DEF PROCCleanUpRAMDisc
  369    LOCAL ERROR
  370    *Ram:Close
  371    SYS "OS_File",5,"RAM:Link" TO found%
  372    ON ERROR LOCAL : RESTORE ERROR : found%=-11
  373    CASE found% OF
  374    WHEN 2:
  375     *Wipe RAM::RamDisc0.$.Link.*  F~C~V
  376    WHEN 0:
  377      *CDIR RAM::RamDisc0.$.Link
  378    ENDCASE
  379    *Set LibLink$Path RAM::RamDisc0.$.Link.
  380   ENDPROC
  381
  382
  383REM ======================
  384REM 4. Wimp
  385REM ======================
  386
  387REM 4.1 Menus
  388REM =============
  389
  390DEF FNWimp_MenuCreate(menu$)
  391LOCAL menu%,index%,width%,length%,k%,s%
  392DIM menu% 28+FNWimp_MenuNoOfEntries(menu$)*24
  393menu%?12=7   : menu%?13=2  : menu%?14=7 :menu%?15=0
  394menu%!16=140 : menu%!20=44 : menu%!24=0
  395index%=menu%+28
  396$menu%=LEFT$(menu$,INSTR(menu$,"\")-1)
  397width%=LEN(LEFT$(menu$,INSTR(menu$,"\")-1))
  398menu$+="\" : Menu_NoOfEntries%=0
  399WHILE menu$<>""
  400menu$=MID$(menu$,INSTR(menu$,"\")+1)
  401CASE menu$ OF
  402 WHEN ""
  403 OTHERWISE :
  404  !index%=0 : index%!4=-1 : index%!8=&7000021
  405  length%=INSTR(menu$,"\")-1
  406  k%=INSTR(LEFT$(menu$,length%),">")
  407  CASE k% OF
  408   WHEN 0
  409   OTHERWISE
  410    s%=EVAL(MID$(menu$,k%+1,length%-k%))
  411    index%!4=s%
  412    length%=k%-1
  413  ENDCASE
  414  $(index%+12)=LEFT$(menu$,length%)
  415  IF length%>width% THEN width%=length%
  416  index%+=24
  417ENDCASE
  418ENDWHILE
  419menu%!16=16*(width%+1)
  420index%!-24=index%!-24 OR &80 : =menu%
  421:
  422DEF FNWimp_MenuNoOfEntries(menu$)
  423LOCAL n% ,j% : n%=0 : j%=0
  424REPEAT
  425j%=INSTR(menu$,"\",j%+1)
  426IF j%<>0 THEN n%+=1
  427UNTIL j%=0
  428=n%
  429:
  430DEF PROCWimp_MenuPopUpBar(x%,y%)
  431LOCAL n% : n%=0
  432WHILE ((Bar_Menu%!(28+n%*24))AND%10000000)=0
  433n%+=1
  434ENDWHILE
  435SYS "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
  436menu%=Bar_Menu%
  437ENDPROC
  438:
  439DEF PROCWimp_MenuPopUp(Menu%,x%,y%)
  440menu%=Menu%
  441SYS "Wimp_CreateMenu",,menu%,x%-64,y%+20
  442ENDPROC
  443:
  444DEF PROCWimp_MenuClose
  445SYS "Wimp_CreateMenu",-1
  446ENDPROC
  447:
  448DEF PROCWimp_MenuGlue(menu1%,item%,menu2%)
  449menu1%!(8+item%*24)=menu2%
  450ENDPROC
  451
  452REM 4.2 Sprites
  453REM ===========
  454
  455DEF FNWimp_SpriteLoad(pathname$)
  456LOCAL S%,T%,sprites%
  457S%=OPENIN(pathname$):T%=EXT#S%+4:CLOSE#S%
  458DIM sprites% T%,spname% 12
  459!sprites%=T%:sprites%!8=0
  460SYS"OS_SpriteOp",&109,sprites%
  461SYS"OS_SpriteOp",&10A,sprites%,pathname$
  462=sprites%
  463
  464REM 4.3 Windows
  465REM ===========
  466
  467DEF FNWimp_WindowLoad(window$)
  468=FNWimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates")
  469:
  470DEF FNWimp_WindowLoadFrom(window$,template$)
  471LOCAL c%
  472SYS "Wimp_OpenTemplate",,template$
  473SYS "Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,fonts%,window$,0 TO ,,icons%
  474SYS "Wimp_CreateWindow",,wimp% TO c%
  475SYS "Wimp_CloseTemplate"
  476=c%
  477:
  478DEF PROCWimp_WindowBringToTop(window%)
  479!wimp%=window%
  480SYS "Wimp_GetWindowState",,wimp%
  481wimp%!28=-1
  482SYS "Wimp_OpenWindow",,wimp%
  483ENDPROC
  484
  485REM 4.4 Icons
  486REM =========
  487
  488DEF FNWimp_IconBar(Sprite$)
  489LOCAL icon%
  490wimp%!0=-1
  491wimp%!4=0     : wimp%!8=16
  492wimp%!12=68   : wimp%!16=68+32
  493wimp%!20=&3002
  494$(wimp%+24)=Sprite$
  495SYS "Wimp_CreateIcon",,wimp% TO icon%
  496=icon%
  497:
  498DEF PROCWimp_IconPutText(window%,icon%,text$)
  499wimp%!0=window% : wimp%!4=icon%
  500SYS "Wimp_GetIconState",,wimp%
  501IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
  502$(wimp%!28)=text$
  503wimp%!0=window% : wimp%!4=icon%
  504wimp%!8=0 : wimp%!12=0
  505SYS "Wimp_SetIconState",,wimp%
  506ENDPROC
  507:
  508DEF FNWimp_IconText(window%,icon%)
  509wimp%!0=window% : wimp%!4=icon%
  510SYS "Wimp_GetIconState",,wimp%
  511IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
  512=$(wimp%!28)
  513:
  514DEF PROCWimp_IconSelect(window%,icon%)
  515wimp%!0=window% : wimp%!4=icon%
  516SYS "Wimp_GetIconState",,wimp%
  517wimp%!8=1<<21 : wimp%!12=1<<21
  518SYS "Wimp_SetIconState",,wimp%
  519ENDPROC
  520:
  521DEF PROCWimp_IconCaret(window%,icon%,chars%)
  522SYS "Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
  523ENDPROC
  524
  525REM 4.5 Miscellaneous
  526REM =================
  527
  528DEF PROCWimp_Alert(title$,message$)
  529wimp%!0=0
  530$(wimp%+4)=message$+CHR$0
  531SYS "Wimp_ReportError",wimp%,1<<4,title$
  532ENDPROC
  533
  534DEF FNWimp_GetFileFromPathname(f$)
  535CASE INSTR(f$,".") OF
  536 WHEN 0    :=f$
  537 OTHERWISE :=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
  538ENDCASE
  539
  540DEF FNWimp_GetStringAtAddress(array%)
  541LOCALs$:s$=""
  542WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE:
  543=s$
  544
  545DEF FNFile_Exists(pathname$)
  546LOCAL found%
  547SYS "XOS_File",13,pathname$ TO found%
  548=-found%
  549
  550:
  551REM ------------------------------------------------------------------------
  552REM  5. SAVE
  553REM ------------------------------------------------------------------------
  554REM > Library:Resources.Save
  555:
  556DEF FNWimp_PollSave(mask%)
  557LOCAL drag_a_sprite%
  558 SYS "Wimp_Poll",mask%,wimp% TO event%
  559 CASE event% OF
  560  WHEN 6
  561  REM...Click on Mouse button
  562   icon%=wimp%!16 : window%=wimp%!12 : button%=wimp%!8
  563   IF FNDefine_Save(window%) THEN
  564      CASE icon% OF
  565       WHEN 0 : REM...Drag       : event%=-1
  566        IF button% AND &50 THEN PROCWimp_PollSaveDrag(window%,icon%)
  567       WHEN 2 : REM...OK button  : event%=-1
  568        IF button% AND   5 THEN PROCWimp_PollSaveFile(window%)
  569      ENDCASE
  570   ENDIF
  571  WHEN7
  572   REM...Drag has ended
  573   SYS "OS_Byte",161,28 TO ,,drag_a_sprite%
  574   drag_a_sprite%=(drag_a_sprite% AND 2)=2
  575   IF drag_a_sprite% THEN SYS "DragASprite_Stop"
  576   IF FNDefine_Save(save%) THEN
  577      event%=-1
  578      PROCWimpPoll_SaveMessage
  579   ENDIF
  580  WHEN8
  581   window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
  582   IF FNDefine_Save(window%) THEN
  583      event%=-1
  584      PROCWimp_PollSaveFile(window%)
  585   ENDIF
  586  WHEN 12
  587  window%=wimp%!0
  588  IF FNDefine_Save(window%) THEN
  589   file$=FNWimp_IconText(window%,1)
  590   SYS "Wimp_SetCaretPosition",window%,1,,,-1,LENfile$
  591  ENDIF
  592  WHEN17,18
  593  message%=wimp%!16
  594    CASE message% OF
  595     WHEN 2 : REM Data Save acknowledge
  596       event%=-1
  597       file$=FNWimp_GetStringAtAddress(wimp%+44)
  598       IF file$<>"<Wimp$Scrap>" THEN
  599         PROCWimp_IconPutText(save%,1,file$)
  600         PROCEvent_SaveFile(file$,save%)
  601       ENDIF
  602     WHEN 4 : REM Data Load Acknowledge
  603     WHEN 6 : REM Ram Fetch
  604    ENDCASE
  605 ENDCASE
  606=event%
  607:
  608DEF PROCWimp_PollSaveFile(window%)
  609LOCALx$
  610 REM...Read text in icon 1
  611 wimp%!0=window% : wimp%!4=1
  612 SYS "Wimp_GetIconState",,wimp%
  613 IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
  614 x$=$(wimp%!28)
  615 CASE INSTR(x$,".") OF
  616  WHEN 0   :
  617   PROCWimp_Alert("!Library","To save file, drag the icon to a directory window")
  618  OTHERWISE: PROCEvent_SaveFile(x$,window%)
  619 ENDCASE
  620 SYS"Wimp_CreateMenu",-1
  621ENDPROC
  622:
  623DEF PROCWimp_PollSaveDrag(window%,icon%)
  624LOCAL x%,y%,wx%,wy%,wX%,wY%,xoff%,yoff%,drag_a_sprite%
  625LOCAL icx%,icy%,icX%,icY%,sprite_pointer%
  626
  627  !wimp%=window% : SYS"Wimp_GetWindowState",,wimp%
  628  wx%=wimp%!4 : wy%=wimp%!8 : wX%=wimp%!12 : wY%=wimp%!16
  629  xoff%=wimp%!20 : yoff%=wimp%!24
  630  x%=wx%-xoff% : y%=wY%-yoff%
  631
  632  wimp%!4=icon%  : SYS"Wimp_GetIconState",,wimp%
  633  icx%=wimp%!8 : icy%=wimp%!12
  634  icX%=wimp%!16: icY%=wimp%!20
  635
  636SYS "OS_Byte",161,28 TO ,,drag_a_sprite%
  637drag_a_sprite%=(drag_a_sprite% AND 2)=2
  638
  639CASE drag_a_sprite% OF
  640 WHEN TRUE :
  641  IF ((wimp%!24) AND &100)=0 THEN
  642     sprite_pointer%=1
  643     sprite$=$(wimp%+28)
  644  ELSE
  645     sprite_pointer%=wimp%!32
  646     sprite$=$(wimp%!28)
  647  ENDIF
  648  !wimp% =wx%+icx% : wimp%!4=wY%+icy%
  649  wimp%!8=wx%+icX% : wimp%!12=wY%+icY%
  650  SYS"DragASprite_Start",%11000101,sprite_pointer%,sprite$,wimp%
  651 OTHERWISE
  652  !wimp%=window% : wimp%!4=5
  653  wimp%!8=x%+icx%:wimp%!12=y%+icy%
  654  wimp%!16=x%+icX%:wimp%!20=y%+icY%
  655  wimp%!24=0:wimp%!28=0
  656  wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
  657  SYS"Wimp_DragBox",,wimp%
  658ENDCASE
  659 save%=window%
  660ENDPROC
  661:
  662DEF PROCWimpPoll_SaveMessage
  663LOCALfile$,window%,icon%,x%,y%
  664 SYS "Wimp_CreateMenu",,-1
  665 SYS"Wimp_GetPointerInfo",,wimp%
  666 window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
  667 IF window%<0 THEN ENDPROC
  668 wimp%!0=save% : wimp%!4=1
  669 SYS "Wimp_GetIconState",,wimp%
  670 IF ((wimp%!24) AND &100)=0 ERROR 1,"Icon isn't indirected"
  671 file$=$(wimp%!28)
  672 file$=FNWimp_GetFileFromPathname(file$)
  673 wimp%!20=window%
  674 wimp%!24=icon%
  675 wimp%!28=x%:wimp%!32=y%
  676 wimp%!36=256
  677 wimp%!0=64
  678 wimp%!12=0
  679 wimp%!16=1
  680 CASE TRUE OF
  681  WHEN FNDefine_Save(save%) : wimp%!40=&FFF
  682  OTHERWISE : wimp%!40=FNDefine_Save(save%)
  683 ENDCASE
  684 $(wimp%+44)=file$+CHR$0
  685 SYS"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24
  686ENDPROC
  687:
  688REM -----------------------------------------------------------------------
  689REM 6. Error procedure
  690REM -----------------------------------------------------------------------
  691
  692DEF PROCError
  693ON ERROR OFF
  694*Set Basic$File <Libmaker$File>
  695CHAIN "Edit:Throwback"
  696END
  697ENDPROC
  698:
� � �Error

&�                         --------
&�                         CONTENTS
&�                         --------

,�           1. Initialisation procedures
'�               1.1 Wimp Initialise
	&�               1.2 Define Windows

$�               1.3 Define Menus

#�           2. Event procedures

#�              2.1 Mouse Clicks
"�              2.2 Menu Choice
�              2.3 Messages

"�           3. Save procedures
-�              3.1 Creating a new library
#�              3.2 Saving Files

�           4. Wimp
�              4.1 Menus
�              4.2 Sprites
�              4.3 Windows
�              4.4 Icons
$�              4.5 Miscellaneous

�           5. SAVE

"�           6. Error procedure

 
!%�Wimp_Initialise("Library Maker")
"�Define_Windows
#�Define_Menus
$
%�
&! event%=�Wimp_PollSave(mask%)
' Ȏ event% �
(+  � 2     : ș "Wimp_OpenWindow",,wimp%
),  � 3     : ș "Wimp_CloseWindow",,wimp%
*!  � 6     : �Event_MouseClick
+!  � 9     : �Event_MenuChoice
,  � 17,18 : �Event_Message
- �
.� finished%
/�
0:
1$� ------------------------------
2#�  1. Initialisation procedures
3$� ------------------------------
4
5� --------------------
6�  1.1 Wimp Initialise
7� --------------------
8
9� �Wimp_Initialise(task$)
:)� wimp% 2000, icons% 1262, fonts% 256
;icon_memory%=icons%+1262
<,ș "Wimp_Initialise",200,&4B534154,task$
=mask%=0
>finished%=�
?sprite_name$=""
@Basic_File$=""
AOptions%=0
B�
C
D� --------------------
E�  1.2 Define Windows
F� --------------------
G
H
I� �Define_Windows
J/LibSave_Window%=�Wimp_WindowLoad("LibSave")
K)Info_Window%=�Wimp_WindowLoad("Info")
L1LinkSave_Window%=�Wimp_WindowLoad("LinkSave")
Mș "Wimp_CloseTemplate"
N�Read_Defaults
O�
P  :
Q  � �Read_Defaults
R  �  defaults% 4
S+  � �File_Exists("LibMaker:Defaults") �
T4   ș "OS_File",16,"LibMaker:Defaults",defaults%
U   crunch%=defaults%!0
V  �
W   crunch%=%11111
X  �
Y  �Set_LinkSaveIcons
Z  �
[
     :
\     � �Set_LinkSaveIcons
]      � icon%=4 � 8
^&        � crunch%�(1<<(icon%-4)) �
_5         �Wimp_IconSelect(LinkSave_Window%,icon%)
`
        �
a       �
b
     �
c
d� --------------------
e�  1.3 Define Menus
f� --------------------
g
h� �Define_Menus
i(Bar_Icon%=�Wimp_IconBar("!LibMaker")
j?Bar_Menu%=�Wimp_MenuCreate("LibMaker\Info\Create Lib\Quit")
k,�Wimp_MenuGlue(Bar_Menu%,1,Info_Window%)
l/�Wimp_MenuGlue(Bar_Menu%,2,LibSave_Window%)
m<LinkSave_Menu%=�Wimp_MenuCreate("LibMaker\SaveDefaults")
n�
o
p$� ------------------------------
q�  2. Event procedures
r$� ------------------------------
s:
t�  2.1 Mouse Clicks
u�  ================
v
w� �Event_MouseClick
xȎ wimp%!12 �
y	 � -2
z  Ȏ wimp%!8 �
{3   � 2    : �Wimp_MenuPopUpBar(wimp%!0,wimp%!4)
|8    : � PROCWimp_WindowBringToTop(LinkSave_Window%)
};               � u$=FNWimp_IconText(LinkSave_Window%,1)
~A               � PROCWimp_IconCaret(LinkSave_Window%,1,LENu$)
  �
� � LinkSave_Window%
�  Ȏ wimp%!8 �
�?   � 2    : �Wimp_MenuPopUp(LinkSave_Menu%,wimp%!0,wimp%!4)
�%    : �Get_LinkOptions(wimp%!16)
�  �
��
��
�   :
�    � �Get_LinkOptions(icon%)
�    Ȏ icon% �
�     � 4,5,6,7,8
�0      ic%=icon%-4 : crunch%=crunch%�(1<<ic%)
�	    �
�   �
�
�:
��  2.2 Menu Choice
��  ================
�
�� �Event_MenuChoice
� Ȏ menu% �
�  � Bar_Menu%
�   Ȏ wimp%!0 �
�+    � 2 : �Wimp_MenuClose : finished%=�
�   �
�  � LinkSave_Menu%
�   Ȏ wimp%!0 �
�    � 0 : �Save_Defaults
�   �
� �
��
�  :
�  � �Save_Defaults
�  defaults%!0=crunch%
�E  ș "OS_File",10,"LibMaker:Defaults",&FFD,,defaults%,defaults%+4
�  �
�
��  2.3 Messages
��  ================
�
�� �Event_Message
�message%=wimp%!16
� Ȏ message%  �
�  � 0 : finished%=�
�)  � 3 : �DealWithLoadedFile(wimp%!40)
� �
��
�  :
�"  � �DealWithLoadedFile(type%)
�   Ȏ type% �
�5    � WHEN &FFB : PROCDealWithBasicFile(wimp%+44)
�/    � &2000: �DealWithApplication(wimp%+44)
�   �
�  �
�	    :
�#    � �DealWithBasicFile(file%)
�4     Basic_File$=�Wimp_GetStringAtAddress(file%)
�;     �Wimp_IconPutText(LinkSave_Window%,11,Basic_File$)
�1     �Wimp_WindowBringToTop(LinkSave_Window%)
�.     u$=�Wimp_IconText(LinkSave_Window%,1)
�0     �Wimp_IconCaret(LinkSave_Window%,1,�u$)
�	    �
�	    :
�%    � �DealWithApplication(file%)
�-     app$=�Wimp_GetStringAtAddress(file%)
�.     leaf$=�Wimp_GetFileFromPathname(app$)
�     leaf$=�leaf$,�leaf$-1)
�     � �Library �
�H       mess$= "Is this a BASIC procedure library for which you want"
�3       mess$+=" to Add/Remove the � directory?"
�&       !wimp%=0 : $(wimp%+4)=mess$
�D       ș "Wimp_ReportError",wimp%,%11111,"!LibMaker" � ,choice%
�       � choice%=1 �
�        �Change("!Boot")
�        �Change("!Run")
�       �
�      �
�
     �
�       :
�       � �Library
�       � lib%
�N       lib%=�File_Exists(app$+"."+"!Boot") � �File_Exists(app$+"."+"!Run")
�       � �lib% �
�P        mess$="This application either doesn't have a !Run file or a !Boot "
�A        mess$+="file. It can't be a BASIC procedure library!"
�*        �Wimp_Alert("!LibMaker",mess$)
�       �
�       =lib%
�
�          :
�          � �Change(x$)
�#           boot%=�(app$+"."+x$)
�           �
�            p%=�#boot%
�            x$=�#boot%
�)            � �x$,leaf$+"$Path")<>0 �
�             �#boot%=p%
�:             � �x$,2)="�." � �x$,2)="  " � �x$,2)="�."
�             �#boot%,x$
�            �
�%            � �x$,leaf$+":")<>0 �
�             �#boot%=p%
�1             � �x$)="�" � �x$)=" " � �x$)="�"
�             �#boot%,x$
�            �
�           � �#boot%
�           �#boot%
�8           � x$="!Boot" � �("WimpTask "+app$+"."+x$)
�           �
�:
�$� ------------------------------
��  3. Save procedures
�$� ------------------------------
�:
�� �Define_Save(window%)
�
� result%
�Ȏ window% �
�# � LibSave_Window%  : result%=�
�# � LinkSave_Window% : result%=�
�              : result%=�
��
�=result%
�
�$� �Event_SaveFile(file$,window%)
�Ȏ window% �
�* � LibSave_Window% : �CreateNewLibrary
�' � LinkSave_Window%: �LinkLibraries
��
�

!�  3.1 Creating a new library
!�  ==========================

  � �CreateNewLibrary
   �GetLibraryName
   �"CDIR "+file$
   �"CDIR "+file$+".�"
	(   � sprite_name$="" � �Load_Sprites

   �Copy_SpriteFiles
   �Copy_Run
   �Copy_Boot

   �Copy_Help
  �
	    :
    � �GetLibraryName
/     leaf$=�Wimp_GetFileFromPathname(file$)
$     file$=�file$,�file$-�leaf$)
     � �leaf$,1)<>"!" �
      file$+="!"+�leaf$,9)
4      �Wimp_IconPutText(LibSave_Window%,1,file$)

     �
      file$+=�leaf$,10)
4      �Wimp_IconPutText(LibSave_Window%,1,file$)

     �
	    �
	    :
    � �Load_Sprites
      sprite_name$="!library"
7     Sprites%=�Wimp_SpriteLoad("LibMaker:!Sprites")
;     Sprites22%=�Wimp_SpriteLoad("LibMaker:!Sprites22")
 ;     Sprites23%=�Wimp_SpriteLoad("LibMaker:!Sprites23")
!	    �
"	    :
#    � �Copy_SpriteFiles
$/     leaf$=�Wimp_GetFileFromPathname(file$)
%?     ș "OS_SpriteOp",256+26,Sprites%,sprite_name$,leaf$+�0
&;     ș "OS_SpriteOp",256+12,Sprites%,file$+".!Sprites"
'A     ș "OS_SpriteOp",256+26,Sprites22%,sprite_name$,leaf$+�0
(?     ș "OS_SpriteOp",256+12,Sprites22%,file$+".!Sprites22"
)A     ș "OS_SpriteOp",256+26,Sprites23%,sprite_name$,leaf$+�0
*?     ș "OS_SpriteOp",256+12,Sprites23%,file$+".!Sprites23"
+     sprite_name$=leaf$
,	    �
-	    :
.    � �Copy_Run
/     � p% : p%=wimp%
01     � �leaf$,1)="!" � leaf$=�leaf$,�leaf$-1)
15     �Add_Line("Iconsprites <Obey$Dir>.!Sprites")
26     �Add_Line("Set "+leaf$+"$Path <Obey$Dir>.�.")
3/     �Add_Line("Filer_OpenDir "+leaf$+": ")
45     ș "OS_File",10,file$+".!Run",&FEB,,wimp%,p%
5	    �
6	    :
7    � �Copy_Boot
8     � p% : p%=wimp%
95     �Add_Line("Iconsprites <Obey$Dir>.!Sprites")
:6     �Add_Line("Set "+leaf$+"$Path <Obey$Dir>.�.")
;6     ș "OS_File",10,file$+".!Boot",&FEB,,wimp%,p%
<	    �
=	    :
>    � �Copy_Help
?$     � p% : p%=wimp% : wimp%!0=0
@-     ș "OS_Word",14,wimp% : date$=$wimp%
A     �Add_Line("")
B#     �Add_Line(�11+�leaf$,"-"))
C&     �Add_Line(" Library: "+leaf$)
D     �Add_Line("")
E      �Add_Line(" Purpose: ")
F     �Add_Line("")
G/     �Add_Line(" Version: 1.0 ("+date$+")")
H     �Add_Line("")
I#     �Add_Line(�11+�leaf$,"-"))
J     �Add_Line("")
K"     �Add_Line("   "+�60,"*"))
L     �Add_Line("   USAGE")
M"     �Add_Line("   "+�60,"*"))
N6     ș "OS_File",10,file$+".!Help",&FFF,,wimp%,p%
O	    �
P      :
Q      � �Add_Line(x$)
R!       $p%=x$+�10 : p%+=�x$+1
S      �
T
U�  3.2 Saving Files
V�  ===================
W
X � �LinkLibraries
Y � Basic_File$<>"" �
Z  �MakeSureOfRamDisc
[$  �"Set Basic$File "+Basic_File$
\  �"Set Save$File "+file$
]#  �("SetEval Crunch "+�crunch%)
^  *WimpTask LibMaker:Link
_"  ș "Wimp_CloseWindow",,wimp%
`  *Ram:Close
a �
b'  mess$="No file to be processed. "
c>  mess$+="Drag a BASIC file onto icon bar or this window."
d#  �Wimp_Alert("LibMaker",mess$)
e �
f �
g
h   � �MakeSureOfRamDisc
i-    ș "OS_ReadRAMFsLimits" � begin%,end%
j    � begin%=end% �
k,     ș "OS_ChangeDynamicArea",5,32*1024
l	    �
m     �CleanUpRAMDisc
n   �
o
p   � �CleanUpRAMDisc
q    � �
r    *Ram:Close
s*    ș "OS_File",5,"RAM:Link" � found%
t     � � � : � � : found%=-11
u    Ȏ found% �
v    � 2:
w,     *Wipe RAM::RamDisc0.$.Link.*  F~C~V
x    � 0:
y$      *CDIR RAM::RamDisc0.$.Link
z	    �
{/    *Set LibLink$Path RAM::RamDisc0.$.Link.
|   �
}
~
� ======================
�
� 4. Wimp
�� ======================
�
�� 4.1 Menus
�� =============
�
�� �Wimp_MenuCreate(menu$)
�'� menu%,index%,width%,length%,k%,s%
�.� menu% 28+�Wimp_MenuNoOfEntries(menu$)*24
�7menu%?12=7   : menu%?13=2  : menu%?14=7 :menu%?15=0
�+menu%!16=140 : menu%!20=44 : menu%!24=0
�index%=menu%+28
� $menu%=�menu$,�menu$,"\")-1)
�#width%=�(�menu$,�menu$,"\")-1))
�$menu$+="\" : Menu_NoOfEntries%=0
�ȕ menu$<>""
�menu$=�menu$,�menu$,"\")+1)
�Ȏ menu$ �
�	 � ""
�  :
�1  !index%=0 : index%!4=-1 : index%!8=&7000021
�  length%=�menu$,"\")-1
�  k%=��menu$,length%),">")
�
  Ȏ k% �
�
   � 0
�   
�%    s%=�(�menu$,k%+1,length%-k%))
�    index%!4=s%
�    length%=k%-1
�  �
�"  $(index%+12)=�menu$,length%)
�'  � length%>width% � width%=length%
�  index%+=24
��
��
�menu%!16=16*(width%+1)
�(index%!-24=index%!-24 � &80 : =menu%
�:
�"� �Wimp_MenuNoOfEntries(menu$)
�� n% ,j% : n%=0 : j%=0
��
�j%=�menu$,"\",j%+1)
�� j%<>0 � n%+=1
�
� j%=0
�=n%
�:
�� �Wimp_MenuPopUpBar(x%,y%)
�� n% : n%=0
�+ȕ ((Bar_Menu%!(28+n%*24))�%10000000)=0
�	n%+=1
��
�2ș "Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
�menu%=Bar_Menu%
��
�:
�"� �Wimp_MenuPopUp(Menu%,x%,y%)
�menu%=Menu%
�+ș "Wimp_CreateMenu",,menu%,x%-64,y%+20
��
�:
�� �Wimp_MenuClose
�ș "Wimp_CreateMenu",-1
��
�:
�)� �Wimp_MenuGlue(menu1%,item%,menu2%)
�menu1%!(8+item%*24)=menu2%
��
�
�� 4.2 Sprites
�� ===========
�
�!� �Wimp_SpriteLoad(pathname$)
�� S%,T%,sprites%
�"S%=�(pathname$):T%=�#S%+4:�#S%
�� sprites% T%,spname% 12
�!sprites%=T%:sprites%!8=0
�!ș"OS_SpriteOp",&109,sprites%
�+ș"OS_SpriteOp",&10A,sprites%,pathname$
�
=sprites%
�
�� 4.3 Windows
�� ===========
�
�� �Wimp_WindowLoad(window$)
�9=�Wimp_WindowLoadFrom(window$,"<Obey$Dir>.Templates")
�:
�-� �Wimp_WindowLoadFrom(window$,template$)
�� c%
�%ș "Wimp_OpenTemplate",,template$
�Qș "Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,fonts%,window$,0 � ,,icons%
�&ș "Wimp_CreateWindow",,wimp% � c%
�ș "Wimp_CloseTemplate"
�=c%
�:
�%� �Wimp_WindowBringToTop(window%)
�!wimp%=window%
�#ș "Wimp_GetWindowState",,wimp%
�wimp%!28=-1
�ș "Wimp_OpenWindow",,wimp%
��
�
�� 4.4 Icons
�� =========
�
�� �Wimp_IconBar(Sprite$)
�� icon%
�wimp%!0=-1
�wimp%!4=0     : wimp%!8=16
�"wimp%!12=68   : wimp%!16=68+32
�wimp%!20=&3002
�$(wimp%+24)=Sprite$
�'ș "Wimp_CreateIcon",,wimp% � icon%
�
=icon%
�:
�,� �Wimp_IconPutText(window%,icon%,text$)
�#wimp%!0=window% : wimp%!4=icon%
�!ș "Wimp_GetIconState",,wimp%
�7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
�$(wimp%!28)=text$
�#wimp%!0=window% : wimp%!4=icon%
�wimp%!8=0 : wimp%!12=0
�!ș "Wimp_SetIconState",,wimp%
��
�:
�#� �Wimp_IconText(window%,icon%)
�#wimp%!0=window% : wimp%!4=icon%
�!ș "Wimp_GetIconState",,wimp%
�7� ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
=$(wimp%!28)
:
%� �Wimp_IconSelect(window%,icon%)
#wimp%!0=window% : wimp%!4=icon%
!ș "Wimp_GetIconState",,wimp%
"wimp%!8=1<<21 : wimp%!12=1<<21
!ș "Wimp_SetIconState",,wimp%
�
:
	+� �Wimp_IconCaret(window%,icon%,chars%)

8ș "Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
�


� 4.5 Miscellaneous
� =================

"� �Wimp_Alert(title$,message$)

wimp%!0=0
$(wimp%+4)=message$+�0
+ș "Wimp_ReportError",wimp%,1<<4,title$
�

#� �Wimp_GetFileFromPathname(f$)
Ȏ �f$,".") �
 � 0    :=f$
7  :=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,".")))
�

&� �Wimp_GetStringAtAddress(array%)

�s$:s$=""
<ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�:
=s$
 
!� �File_Exists(pathname$)
"� found%
#'ș "XOS_File",13,pathname$ � found%
$=-found%
%
&:
'N� ------------------------------------------------------------------------
(�  5. SAVE
)N� ------------------------------------------------------------------------
*� > Library:Resources.Save
+:
,� �Wimp_PollSave(mask%)
-� drag_a_sprite%
.( ș "Wimp_Poll",mask%,wimp% � event%
/ Ȏ event% �
0	  � 6
1  �...Click on Mouse button
2:   icon%=wimp%!16 : window%=wimp%!12 : button%=wimp%!8
3    � �Define_Save(window%) �
4      Ȏ icon% �
5+       � 0 : �...Drag       : event%=-1
6?        � button% � &50 � �Wimp_PollSaveDrag(window%,icon%)
7+       � 2 : �...OK button  : event%=-1
89        � button% �   5 � �Wimp_PollSaveFile(window%)
9      �
:   �
;  �7
<   �...Drag has ended
=-   ș "OS_Byte",161,28 � ,,drag_a_sprite%
>,   drag_a_sprite%=(drag_a_sprite% � 2)=2
?/   � drag_a_sprite% � ș "DragASprite_Stop"
@   � �Define_Save(save%) �
A      event%=-1
B      �WimpPoll_SaveMessage
C   �
D  �8
E2   window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
F    � �Define_Save(window%) �
G      event%=-1
H%      �Wimp_PollSaveFile(window%)
I   �
J
  � 12
K  window%=wimp%!0
L  � �Define_Save(window%) �
M&   file$=�Wimp_IconText(window%,1)
N7   ș "Wimp_SetCaretPosition",window%,1,,,-1,�file$
O  �
P  �17,18
Q  message%=wimp%!16
R    Ȏ message% �
S&     � 2 : � Data Save acknowledge
T       event%=-1
U3       file$=�Wimp_GetStringAtAddress(wimp%+44)
V$       � file$<>"<Wimp$Scrap>" �
W-         �Wimp_IconPutText(save%,1,file$)
X)         �Event_SaveFile(file$,save%)
Y       �
Z&     � 4 : � Data Load Acknowledge
[     � 6 : � Ram Fetch
\	    �
] �
^=event%
_:
`!� �Wimp_PollSaveFile(window%)
a�x$
b �...Read text in icon 1
c  wimp%!0=window% : wimp%!4=1
d" ș "Wimp_GetIconState",,wimp%
e8 � ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
f x$=$(wimp%!28)
g Ȏ �x$,".") �
h
  � 0   :
iR   �Wimp_Alert("!Library","To save file, drag the icon to a directory window")
j$  : �Event_SaveFile(x$,window%)
k �
l ș"Wimp_CreateMenu",-1
m�
n:
o'� �Wimp_PollSaveDrag(window%,icon%)
p6� x%,y%,wx%,wy%,wX%,wY%,xoff%,yoff%,drag_a_sprite%
q)� icx%,icy%,icX%,icY%,sprite_pointer%
r
s5  !wimp%=window% : ș"Wimp_GetWindowState",,wimp%
t=  wx%=wimp%!4 : wy%=wimp%!8 : wX%=wimp%!12 : wY%=wimp%!16
u%  xoff%=wimp%!20 : yoff%=wimp%!24
v!  x%=wx%-xoff% : y%=wY%-yoff%
w
x3  wimp%!4=icon%  : ș"Wimp_GetIconState",,wimp%
y"  icx%=wimp%!8 : icy%=wimp%!12
z"  icX%=wimp%!16: icY%=wimp%!20
{
|*ș "OS_Byte",161,28 � ,,drag_a_sprite%
})drag_a_sprite%=(drag_a_sprite% � 2)=2
~
Ȏ drag_a_sprite% �
�
 � � :
�  � ((wimp%!24) � &100)=0 �
�     sprite_pointer%=1
�     sprite$=$(wimp%+28)
�  �
�!     sprite_pointer%=wimp%!32
�     sprite$=$(wimp%!28)
�  �
�)  !wimp% =wx%+icx% : wimp%!4=wY%+icy%
�*  wimp%!8=wx%+icX% : wimp%!12=wY%+icY%
�C  ș"DragASprite_Start",%11000101,sprite_pointer%,sprite$,wimp%
� 
�   !wimp%=window% : wimp%!4=5
�&  wimp%!8=x%+icx%:wimp%!12=y%+icy%
�'  wimp%!16=x%+icX%:wimp%!20=y%+icY%
�  wimp%!24=0:wimp%!28=0
�+  wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
�  ș"Wimp_DragBox",,wimp%
��
� save%=window%
��
�:
�� �WimpPoll_SaveMessage
��file$,window%,icon%,x%,y%
� ș "Wimp_CreateMenu",,-1
�# ș"Wimp_GetPointerInfo",,wimp%
�: window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
� � window%<0 � �
� wimp%!0=save% : wimp%!4=1
�" ș "Wimp_GetIconState",,wimp%
�8 � ((wimp%!24) � &100)=0 � 1,"Icon isn't indirected"
� file$=$(wimp%!28)
�+ file$=�Wimp_GetFileFromPathname(file$)
� wimp%!20=window%
� wimp%!24=icon%
� wimp%!28=x%:wimp%!32=y%
� wimp%!36=256
� wimp%!0=64
� wimp%!12=0
� wimp%!16=1
� Ȏ � �
�+  � �Define_Save(save%) : wimp%!40=&FFF
�&   : wimp%!40=�Define_Save(save%)
� �
� $(wimp%+44)=file$+�0
�4 ș"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24
��
�:
�M� -----------------------------------------------------------------------
�� 6. Error procedure
�M� -----------------------------------------------------------------------
�
�� �Error
�	� � �
�#*Set Basic$File <Libmaker$File>
�� "Edit:Throwback"
��
��
�:
�
00000000  0d 00 01 0e ee 20 85 20  f2 45 72 72 6f 72 0d 00  |..... . .Error..|
00000010  02 04 0d 00 03 26 f4 20  20 20 20 20 20 20 20 20  |.....&.         |
00000020  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000030  2d 2d 2d 2d 2d 2d 2d 2d  0d 00 04 26 f4 20 20 20  |--------...&.   |
00000040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000050  20 20 20 20 20 20 43 4f  4e 54 45 4e 54 53 0d 00  |      CONTENTS..|
00000060  05 26 f4 20 20 20 20 20  20 20 20 20 20 20 20 20  |.&.             |
00000070  20 20 20 20 20 20 20 20  20 20 20 20 2d 2d 2d 2d  |            ----|
00000080  2d 2d 2d 2d 0d 00 06 04  0d 00 07 2c f4 20 20 20  |----.......,.   |
00000090  20 20 20 20 20 20 20 20  31 2e 20 49 6e 69 74 69  |        1. Initi|
000000a0  61 6c 69 73 61 74 69 6f  6e 20 70 72 6f 63 65 64  |alisation proced|
000000b0  75 72 65 73 0d 00 08 27  f4 20 20 20 20 20 20 20  |ures...'.       |
000000c0  20 20 20 20 20 20 20 20  31 2e 31 20 57 69 6d 70  |        1.1 Wimp|
000000d0  20 49 6e 69 74 69 61 6c  69 73 65 0d 00 09 26 f4  | Initialise...&.|
000000e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 31  |               1|
000000f0  2e 32 20 44 65 66 69 6e  65 20 57 69 6e 64 6f 77  |.2 Define Window|
00000100  73 0d 00 0a 24 f4 20 20  20 20 20 20 20 20 20 20  |s...$.          |
00000110  20 20 20 20 20 31 2e 33  20 44 65 66 69 6e 65 20  |     1.3 Define |
00000120  4d 65 6e 75 73 0d 00 0b  04 0d 00 0c 23 f4 20 20  |Menus.......#.  |
00000130  20 20 20 20 20 20 20 20  20 32 2e 20 45 76 65 6e  |         2. Even|
00000140  74 20 70 72 6f 63 65 64  75 72 65 73 0d 00 0d 23  |t procedures...#|
00000150  f4 20 20 20 20 20 20 20  20 20 20 20 20 20 20 32  |.              2|
00000160  2e 31 20 4d 6f 75 73 65  20 43 6c 69 63 6b 73 0d  |.1 Mouse Clicks.|
00000170  00 0e 22 f4 20 20 20 20  20 20 20 20 20 20 20 20  |..".            |
00000180  20 20 32 2e 32 20 4d 65  6e 75 20 43 68 6f 69 63  |  2.2 Menu Choic|
00000190  65 0d 00 0f 1f f4 20 20  20 20 20 20 20 20 20 20  |e.....          |
000001a0  20 20 20 20 32 2e 33 20  4d 65 73 73 61 67 65 73  |    2.3 Messages|
000001b0  0d 00 10 04 0d 00 11 22  f4 20 20 20 20 20 20 20  |.......".       |
000001c0  20 20 20 20 33 2e 20 53  61 76 65 20 70 72 6f 63  |    3. Save proc|
000001d0  65 64 75 72 65 73 0d 00  12 2d f4 20 20 20 20 20  |edures...-.     |
000001e0  20 20 20 20 20 20 20 20  20 33 2e 31 20 43 72 65  |         3.1 Cre|
000001f0  61 74 69 6e 67 20 61 20  6e 65 77 20 6c 69 62 72  |ating a new libr|
00000200  61 72 79 0d 00 13 23 f4  20 20 20 20 20 20 20 20  |ary...#.        |
00000210  20 20 20 20 20 20 33 2e  32 20 53 61 76 69 6e 67  |      3.2 Saving|
00000220  20 46 69 6c 65 73 0d 00  14 04 0d 00 15 17 f4 20  | Files......... |
00000230  20 20 20 20 20 20 20 20  20 20 34 2e 20 57 69 6d  |          4. Wim|
00000240  70 0d 00 16 1c f4 20 20  20 20 20 20 20 20 20 20  |p.....          |
00000250  20 20 20 20 34 2e 31 20  4d 65 6e 75 73 0d 00 17  |    4.1 Menus...|
00000260  1e f4 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00000270  34 2e 32 20 53 70 72 69  74 65 73 0d 00 18 1e f4  |4.2 Sprites.....|
00000280  20 20 20 20 20 20 20 20  20 20 20 20 20 20 34 2e  |              4.|
00000290  33 20 57 69 6e 64 6f 77  73 0d 00 19 1c f4 20 20  |3 Windows.....  |
000002a0  20 20 20 20 20 20 20 20  20 20 20 20 34 2e 34 20  |            4.4 |
000002b0  49 63 6f 6e 73 0d 00 1a  24 f4 20 20 20 20 20 20  |Icons...$.      |
000002c0  20 20 20 20 20 20 20 20  34 2e 35 20 4d 69 73 63  |        4.5 Misc|
000002d0  65 6c 6c 61 6e 65 6f 75  73 0d 00 1b 04 0d 00 1c  |ellaneous.......|
000002e0  17 f4 20 20 20 20 20 20  20 20 20 20 20 35 2e 20  |..           5. |
000002f0  53 41 56 45 0d 00 1d 04  0d 00 1e 22 f4 20 20 20  |SAVE.......".   |
00000300  20 20 20 20 20 20 20 20  36 2e 20 45 72 72 6f 72  |        6. Error|
00000310  20 70 72 6f 63 65 64 75  72 65 0d 00 1f 04 0d 00  | procedure......|
00000320  20 04 0d 00 21 25 f2 57  69 6d 70 5f 49 6e 69 74  | ...!%.Wimp_Init|
00000330  69 61 6c 69 73 65 28 22  4c 69 62 72 61 72 79 20  |ialise("Library |
00000340  4d 61 6b 65 72 22 29 0d  00 22 13 f2 44 65 66 69  |Maker").."..Defi|
00000350  6e 65 5f 57 69 6e 64 6f  77 73 0d 00 23 11 f2 44  |ne_Windows..#..D|
00000360  65 66 69 6e 65 5f 4d 65  6e 75 73 0d 00 24 04 0d  |efine_Menus..$..|
00000370  00 25 05 f5 0d 00 26 21  20 65 76 65 6e 74 25 3d  |.%....&! event%=|
00000380  a4 57 69 6d 70 5f 50 6f  6c 6c 53 61 76 65 28 6d  |.Wimp_PollSave(m|
00000390  61 73 6b 25 29 0d 00 27  10 20 c8 8e 20 65 76 65  |ask%)..'. .. eve|
000003a0  6e 74 25 20 ca 0d 00 28  2b 20 20 c9 20 32 20 20  |nt% ...(+  . 2  |
000003b0  20 20 20 3a 20 c8 99 20  22 57 69 6d 70 5f 4f 70  |   : .. "Wimp_Op|
000003c0  65 6e 57 69 6e 64 6f 77  22 2c 2c 77 69 6d 70 25  |enWindow",,wimp%|
000003d0  0d 00 29 2c 20 20 c9 20  33 20 20 20 20 20 3a 20  |..),  . 3     : |
000003e0  c8 99 20 22 57 69 6d 70  5f 43 6c 6f 73 65 57 69  |.. "Wimp_CloseWi|
000003f0  6e 64 6f 77 22 2c 2c 77  69 6d 70 25 0d 00 2a 21  |ndow",,wimp%..*!|
00000400  20 20 c9 20 36 20 20 20  20 20 3a 20 f2 45 76 65  |  . 6     : .Eve|
00000410  6e 74 5f 4d 6f 75 73 65  43 6c 69 63 6b 0d 00 2b  |nt_MouseClick..+|
00000420  21 20 20 c9 20 39 20 20  20 20 20 3a 20 f2 45 76  |!  . 9     : .Ev|
00000430  65 6e 74 5f 4d 65 6e 75  43 68 6f 69 63 65 0d 00  |ent_MenuChoice..|
00000440  2c 1e 20 20 c9 20 31 37  2c 31 38 20 3a 20 f2 45  |,.  . 17,18 : .E|
00000450  76 65 6e 74 5f 4d 65 73  73 61 67 65 0d 00 2d 06  |vent_Message..-.|
00000460  20 cb 0d 00 2e 0f fd 20  66 69 6e 69 73 68 65 64  | ...... finished|
00000470  25 0d 00 2f 05 e0 0d 00  30 05 3a 0d 00 31 24 f4  |%../....0.:..1$.|
00000480  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00000490  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
000004a0  00 32 23 f4 20 20 31 2e  20 49 6e 69 74 69 61 6c  |.2#.  1. Initial|
000004b0  69 73 61 74 69 6f 6e 20  70 72 6f 63 65 64 75 72  |isation procedur|
000004c0  65 73 0d 00 33 24 f4 20  2d 2d 2d 2d 2d 2d 2d 2d  |es..3$. --------|
000004d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000004e0  2d 2d 2d 2d 2d 2d 0d 00  34 04 0d 00 35 1a f4 20  |------..4...5.. |
000004f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000500  2d 2d 2d 2d 0d 00 36 1a  f4 20 20 31 2e 31 20 57  |----..6..  1.1 W|
00000510  69 6d 70 20 49 6e 69 74  69 61 6c 69 73 65 0d 00  |imp Initialise..|
00000520  37 1a f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |7.. ------------|
00000530  2d 2d 2d 2d 2d 2d 2d 2d  0d 00 38 04 0d 00 39 1d  |--------..8...9.|
00000540  dd 20 f2 57 69 6d 70 5f  49 6e 69 74 69 61 6c 69  |. .Wimp_Initiali|
00000550  73 65 28 74 61 73 6b 24  29 0d 00 3a 29 de 20 77  |se(task$)..:). w|
00000560  69 6d 70 25 20 32 30 30  30 2c 20 69 63 6f 6e 73  |imp% 2000, icons|
00000570  25 20 31 32 36 32 2c 20  66 6f 6e 74 73 25 20 32  |% 1262, fonts% 2|
00000580  35 36 0d 00 3b 1c 69 63  6f 6e 5f 6d 65 6d 6f 72  |56..;.icon_memor|
00000590  79 25 3d 69 63 6f 6e 73  25 2b 31 32 36 32 0d 00  |y%=icons%+1262..|
000005a0  3c 2c c8 99 20 22 57 69  6d 70 5f 49 6e 69 74 69  |<,.. "Wimp_Initi|
000005b0  61 6c 69 73 65 22 2c 32  30 30 2c 26 34 42 35 33  |alise",200,&4B53|
000005c0  34 31 35 34 2c 74 61 73  6b 24 0d 00 3d 0b 6d 61  |4154,task$..=.ma|
000005d0  73 6b 25 3d 30 0d 00 3e  0f 66 69 6e 69 73 68 65  |sk%=0..>.finishe|
000005e0  64 25 3d a3 0d 00 3f 13  73 70 72 69 74 65 5f 6e  |d%=...?.sprite_n|
000005f0  61 6d 65 24 3d 22 22 0d  00 40 12 42 61 73 69 63  |ame$=""..@.Basic|
00000600  5f 46 69 6c 65 24 3d 22  22 0d 00 41 0e 4f 70 74  |_File$=""..A.Opt|
00000610  69 6f 6e 73 25 3d 30 0d  00 42 05 e1 0d 00 43 04  |ions%=0..B....C.|
00000620  0d 00 44 1a f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..D.. ----------|
00000630  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 00 45 19 f4 20  |----------..E.. |
00000640  20 31 2e 32 20 44 65 66  69 6e 65 20 57 69 6e 64  | 1.2 Define Wind|
00000650  6f 77 73 0d 00 46 1a f4  20 2d 2d 2d 2d 2d 2d 2d  |ows..F.. -------|
00000660  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 00 47  |-------------..G|
00000670  04 0d 00 48 04 0d 00 49  15 dd 20 f2 44 65 66 69  |...H...I.. .Defi|
00000680  6e 65 5f 57 69 6e 64 6f  77 73 0d 00 4a 2f 4c 69  |ne_Windows..J/Li|
00000690  62 53 61 76 65 5f 57 69  6e 64 6f 77 25 3d a4 57  |bSave_Window%=.W|
000006a0  69 6d 70 5f 57 69 6e 64  6f 77 4c 6f 61 64 28 22  |imp_WindowLoad("|
000006b0  4c 69 62 53 61 76 65 22  29 0d 00 4b 29 49 6e 66  |LibSave")..K)Inf|
000006c0  6f 5f 57 69 6e 64 6f 77  25 3d a4 57 69 6d 70 5f  |o_Window%=.Wimp_|
000006d0  57 69 6e 64 6f 77 4c 6f  61 64 28 22 49 6e 66 6f  |WindowLoad("Info|
000006e0  22 29 0d 00 4c 31 4c 69  6e 6b 53 61 76 65 5f 57  |")..L1LinkSave_W|
000006f0  69 6e 64 6f 77 25 3d a4  57 69 6d 70 5f 57 69 6e  |indow%=.Wimp_Win|
00000700  64 6f 77 4c 6f 61 64 28  22 4c 69 6e 6b 53 61 76  |dowLoad("LinkSav|
00000710  65 22 29 0d 00 4d 1b c8  99 20 22 57 69 6d 70 5f  |e")..M... "Wimp_|
00000720  43 6c 6f 73 65 54 65 6d  70 6c 61 74 65 22 0d 00  |CloseTemplate"..|
00000730  4e 12 f2 52 65 61 64 5f  44 65 66 61 75 6c 74 73  |N..Read_Defaults|
00000740  0d 00 4f 05 e1 0d 00 50  07 20 20 3a 0d 00 51 16  |..O....P.  :..Q.|
00000750  20 20 dd 20 f2 52 65 61  64 5f 44 65 66 61 75 6c  |  . .Read_Defaul|
00000760  74 73 0d 00 52 14 20 20  de 20 20 64 65 66 61 75  |ts..R.  .  defau|
00000770  6c 74 73 25 20 34 0d 00  53 2b 20 20 e7 20 a4 46  |lts% 4..S+  . .F|
00000780  69 6c 65 5f 45 78 69 73  74 73 28 22 4c 69 62 4d  |ile_Exists("LibM|
00000790  61 6b 65 72 3a 44 65 66  61 75 6c 74 73 22 29 20  |aker:Defaults") |
000007a0  8c 0d 00 54 34 20 20 20  c8 99 20 22 4f 53 5f 46  |...T4   .. "OS_F|
000007b0  69 6c 65 22 2c 31 36 2c  22 4c 69 62 4d 61 6b 65  |ile",16,"LibMake|
000007c0  72 3a 44 65 66 61 75 6c  74 73 22 2c 64 65 66 61  |r:Defaults",defa|
000007d0  75 6c 74 73 25 0d 00 55  1a 20 20 20 63 72 75 6e  |ults%..U.   crun|
000007e0  63 68 25 3d 64 65 66 61  75 6c 74 73 25 21 30 0d  |ch%=defaults%!0.|
000007f0  00 56 07 20 20 cc 0d 00  57 15 20 20 20 63 72 75  |.V.  ...W.   cru|
00000800  6e 63 68 25 3d 25 31 31  31 31 31 0d 00 58 07 20  |nch%=%11111..X. |
00000810  20 cd 0d 00 59 18 20 20  f2 53 65 74 5f 4c 69 6e  | ...Y.  .Set_Lin|
00000820  6b 53 61 76 65 49 63 6f  6e 73 0d 00 5a 07 20 20  |kSaveIcons..Z.  |
00000830  e1 0d 00 5b 0a 20 20 20  20 20 3a 0d 00 5c 1d 20  |...[.     :..\. |
00000840  20 20 20 20 dd 20 f2 53  65 74 5f 4c 69 6e 6b 53  |    . .Set_LinkS|
00000850  61 76 65 49 63 6f 6e 73  0d 00 5d 17 20 20 20 20  |aveIcons..].    |
00000860  20 20 e3 20 69 63 6f 6e  25 3d 34 20 b8 20 38 0d  |  . icon%=4 . 8.|
00000870  00 5e 26 20 20 20 20 20  20 20 20 e7 20 63 72 75  |.^&        . cru|
00000880  6e 63 68 25 80 28 31 3c  3c 28 69 63 6f 6e 25 2d  |nch%.(1<<(icon%-|
00000890  34 29 29 20 8c 0d 00 5f  35 20 20 20 20 20 20 20  |4)) ..._5       |
000008a0  20 20 f2 57 69 6d 70 5f  49 63 6f 6e 53 65 6c 65  |  .Wimp_IconSele|
000008b0  63 74 28 4c 69 6e 6b 53  61 76 65 5f 57 69 6e 64  |ct(LinkSave_Wind|
000008c0  6f 77 25 2c 69 63 6f 6e  25 29 0d 00 60 0d 20 20  |ow%,icon%)..`.  |
000008d0  20 20 20 20 20 20 cd 0d  00 61 0c 20 20 20 20 20  |      ...a.     |
000008e0  20 20 ed 0d 00 62 0a 20  20 20 20 20 e1 0d 00 63  |  ...b.     ...c|
000008f0  04 0d 00 64 1a f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...d.. ---------|
00000900  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 00 65 17 f4  |-----------..e..|
00000910  20 20 31 2e 33 20 44 65  66 69 6e 65 20 4d 65 6e  |  1.3 Define Men|
00000920  75 73 0d 00 66 1a f4 20  2d 2d 2d 2d 2d 2d 2d 2d  |us..f.. --------|
00000930  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 00 67 04  |------------..g.|
00000940  0d 00 68 13 dd 20 f2 44  65 66 69 6e 65 5f 4d 65  |..h.. .Define_Me|
00000950  6e 75 73 0d 00 69 28 42  61 72 5f 49 63 6f 6e 25  |nus..i(Bar_Icon%|
00000960  3d a4 57 69 6d 70 5f 49  63 6f 6e 42 61 72 28 22  |=.Wimp_IconBar("|
00000970  21 4c 69 62 4d 61 6b 65  72 22 29 0d 00 6a 3f 42  |!LibMaker")..j?B|
00000980  61 72 5f 4d 65 6e 75 25  3d a4 57 69 6d 70 5f 4d  |ar_Menu%=.Wimp_M|
00000990  65 6e 75 43 72 65 61 74  65 28 22 4c 69 62 4d 61  |enuCreate("LibMa|
000009a0  6b 65 72 5c 49 6e 66 6f  5c 43 72 65 61 74 65 20  |ker\Info\Create |
000009b0  4c 69 62 5c 51 75 69 74  22 29 0d 00 6b 2c f2 57  |Lib\Quit")..k,.W|
000009c0  69 6d 70 5f 4d 65 6e 75  47 6c 75 65 28 42 61 72  |imp_MenuGlue(Bar|
000009d0  5f 4d 65 6e 75 25 2c 31  2c 49 6e 66 6f 5f 57 69  |_Menu%,1,Info_Wi|
000009e0  6e 64 6f 77 25 29 0d 00  6c 2f f2 57 69 6d 70 5f  |ndow%)..l/.Wimp_|
000009f0  4d 65 6e 75 47 6c 75 65  28 42 61 72 5f 4d 65 6e  |MenuGlue(Bar_Men|
00000a00  75 25 2c 32 2c 4c 69 62  53 61 76 65 5f 57 69 6e  |u%,2,LibSave_Win|
00000a10  64 6f 77 25 29 0d 00 6d  3c 4c 69 6e 6b 53 61 76  |dow%)..m<LinkSav|
00000a20  65 5f 4d 65 6e 75 25 3d  a4 57 69 6d 70 5f 4d 65  |e_Menu%=.Wimp_Me|
00000a30  6e 75 43 72 65 61 74 65  28 22 4c 69 62 4d 61 6b  |nuCreate("LibMak|
00000a40  65 72 5c 53 61 76 65 44  65 66 61 75 6c 74 73 22  |er\SaveDefaults"|
00000a50  29 0d 00 6e 05 e1 0d 00  6f 04 0d 00 70 24 f4 20  |)..n....o...p$. |
00000a60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000a70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 00  |--------------..|
00000a80  71 1a f4 20 20 32 2e 20  45 76 65 6e 74 20 70 72  |q..  2. Event pr|
00000a90  6f 63 65 64 75 72 65 73  0d 00 72 24 f4 20 2d 2d  |ocedures..r$. --|
00000aa0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000ab0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 00 73 05  |------------..s.|
00000ac0  3a 0d 00 74 17 f4 20 20  32 2e 31 20 4d 6f 75 73  |:..t..  2.1 Mous|
00000ad0  65 20 43 6c 69 63 6b 73  0d 00 75 17 f4 20 20 3d  |e Clicks..u..  =|
00000ae0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 0d  |===============.|
00000af0  00 76 04 0d 00 77 17 dd  20 f2 45 76 65 6e 74 5f  |.v...w.. .Event_|
00000b00  4d 6f 75 73 65 43 6c 69  63 6b 0d 00 78 11 c8 8e  |MouseClick..x...|
00000b10  20 77 69 6d 70 25 21 31  32 20 ca 0d 00 79 09 20  | wimp%!12 ...y. |
00000b20  c9 20 2d 32 0d 00 7a 12  20 20 c8 8e 20 77 69 6d  |. -2..z.  .. wim|
00000b30  70 25 21 38 20 ca 0d 00  7b 33 20 20 20 c9 20 32  |p%!8 ...{3   . 2|
00000b40  20 20 20 20 3a 20 f2 57  69 6d 70 5f 4d 65 6e 75  |    : .Wimp_Menu|
00000b50  50 6f 70 55 70 42 61 72  28 77 69 6d 70 25 21 30  |PopUpBar(wimp%!0|
00000b60  2c 77 69 6d 70 25 21 34  29 0d 00 7c 38 20 20 20  |,wimp%!4)..|8   |
00000b70  7f 20 3a 20 f4 20 50 52  4f 43 57 69 6d 70 5f 57  |. : . PROCWimp_W|
00000b80  69 6e 64 6f 77 42 72 69  6e 67 54 6f 54 6f 70 28  |indowBringToTop(|
00000b90  4c 69 6e 6b 53 61 76 65  5f 57 69 6e 64 6f 77 25  |LinkSave_Window%|
00000ba0  29 0d 00 7d 3b 20 20 20  20 20 20 20 20 20 20 20  |)..};           |
00000bb0  20 20 20 20 f4 20 75 24  3d 46 4e 57 69 6d 70 5f  |    . u$=FNWimp_|
00000bc0  49 63 6f 6e 54 65 78 74  28 4c 69 6e 6b 53 61 76  |IconText(LinkSav|
00000bd0  65 5f 57 69 6e 64 6f 77  25 2c 31 29 0d 00 7e 41  |e_Window%,1)..~A|
00000be0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f4  |               .|
00000bf0  20 50 52 4f 43 57 69 6d  70 5f 49 63 6f 6e 43 61  | PROCWimp_IconCa|
00000c00  72 65 74 28 4c 69 6e 6b  53 61 76 65 5f 57 69 6e  |ret(LinkSave_Win|
00000c10  64 6f 77 25 2c 31 2c 4c  45 4e 75 24 29 0d 00 7f  |dow%,1,LENu$)...|
00000c20  07 20 20 cb 0d 00 80 17  20 c9 20 4c 69 6e 6b 53  |.  ..... . LinkS|
00000c30  61 76 65 5f 57 69 6e 64  6f 77 25 0d 00 81 12 20  |ave_Window%.... |
00000c40  20 c8 8e 20 77 69 6d 70  25 21 38 20 ca 0d 00 82  | .. wimp%!8 ....|
00000c50  3f 20 20 20 c9 20 32 20  20 20 20 3a 20 f2 57 69  |?   . 2    : .Wi|
00000c60  6d 70 5f 4d 65 6e 75 50  6f 70 55 70 28 4c 69 6e  |mp_MenuPopUp(Lin|
00000c70  6b 53 61 76 65 5f 4d 65  6e 75 25 2c 77 69 6d 70  |kSave_Menu%,wimp|
00000c80  25 21 30 2c 77 69 6d 70  25 21 34 29 0d 00 83 25  |%!0,wimp%!4)...%|
00000c90  20 20 20 7f 20 3a 20 f2  47 65 74 5f 4c 69 6e 6b  |   . : .Get_Link|
00000ca0  4f 70 74 69 6f 6e 73 28  77 69 6d 70 25 21 31 36  |Options(wimp%!16|
00000cb0  29 0d 00 84 07 20 20 cb  0d 00 85 05 cb 0d 00 86  |)....  .........|
00000cc0  05 e1 0d 00 87 08 20 20  20 3a 0d 00 88 20 20 20  |......   :...   |
00000cd0  20 dd 20 f2 47 65 74 5f  4c 69 6e 6b 4f 70 74 69  | . .Get_LinkOpti|
00000ce0  6f 6e 73 28 69 63 6f 6e  25 29 0d 00 89 12 20 20  |ons(icon%)....  |
00000cf0  20 20 c8 8e 20 69 63 6f  6e 25 20 ca 0d 00 8a 14  |  .. icon% .....|
00000d00  20 20 20 20 20 c9 20 34  2c 35 2c 36 2c 37 2c 38  |     . 4,5,6,7,8|
00000d10  0d 00 8b 30 20 20 20 20  20 20 69 63 25 3d 69 63  |...0      ic%=ic|
00000d20  6f 6e 25 2d 34 20 3a 20  63 72 75 6e 63 68 25 3d  |on%-4 : crunch%=|
00000d30  63 72 75 6e 63 68 25 82  28 31 3c 3c 69 63 25 29  |crunch%.(1<<ic%)|
00000d40  0d 00 8c 09 20 20 20 20  cb 0d 00 8d 08 20 20 20  |....    .....   |
00000d50  e1 0d 00 8e 04 0d 00 8f  05 3a 0d 00 90 16 f4 20  |.........:..... |
00000d60  20 32 2e 32 20 4d 65 6e  75 20 43 68 6f 69 63 65  | 2.2 Menu Choice|
00000d70  0d 00 91 17 f4 20 20 3d  3d 3d 3d 3d 3d 3d 3d 3d  |.....  =========|
00000d80  3d 3d 3d 3d 3d 3d 3d 0d  00 92 04 0d 00 93 17 dd  |=======.........|
00000d90  20 f2 45 76 65 6e 74 5f  4d 65 6e 75 43 68 6f 69  | .Event_MenuChoi|
00000da0  63 65 0d 00 94 0f 20 c8  8e 20 6d 65 6e 75 25 20  |ce.... .. menu% |
00000db0  ca 0d 00 95 11 20 20 c9  20 42 61 72 5f 4d 65 6e  |.....  . Bar_Men|
00000dc0  75 25 0d 00 96 13 20 20  20 c8 8e 20 77 69 6d 70  |u%....   .. wimp|
00000dd0  25 21 30 20 ca 0d 00 97  2b 20 20 20 20 c9 20 32  |%!0 ....+    . 2|
00000de0  20 3a 20 f2 57 69 6d 70  5f 4d 65 6e 75 43 6c 6f  | : .Wimp_MenuClo|
00000df0  73 65 20 3a 20 66 69 6e  69 73 68 65 64 25 3d b9  |se : finished%=.|
00000e00  0d 00 98 08 20 20 20 cb  0d 00 99 16 20 20 c9 20  |....   .....  . |
00000e10  4c 69 6e 6b 53 61 76 65  5f 4d 65 6e 75 25 0d 00  |LinkSave_Menu%..|
00000e20  9a 13 20 20 20 c8 8e 20  77 69 6d 70 25 21 30 20  |..   .. wimp%!0 |
00000e30  ca 0d 00 9b 1c 20 20 20  20 c9 20 30 20 3a 20 f2  |.....    . 0 : .|
00000e40  53 61 76 65 5f 44 65 66  61 75 6c 74 73 0d 00 9c  |Save_Defaults...|
00000e50  08 20 20 20 cb 0d 00 9d  06 20 cb 0d 00 9e 05 e1  |.   ..... ......|
00000e60  0d 00 9f 07 20 20 3a 0d  00 a0 16 20 20 dd 20 f2  |....  :....  . .|
00000e70  53 61 76 65 5f 44 65 66  61 75 6c 74 73 0d 00 a1  |Save_Defaults...|
00000e80  19 20 20 64 65 66 61 75  6c 74 73 25 21 30 3d 63  |.  defaults%!0=c|
00000e90  72 75 6e 63 68 25 0d 00  a2 45 20 20 c8 99 20 22  |runch%...E  .. "|
00000ea0  4f 53 5f 46 69 6c 65 22  2c 31 30 2c 22 4c 69 62  |OS_File",10,"Lib|
00000eb0  4d 61 6b 65 72 3a 44 65  66 61 75 6c 74 73 22 2c  |Maker:Defaults",|
00000ec0  26 46 46 44 2c 2c 64 65  66 61 75 6c 74 73 25 2c  |&FFD,,defaults%,|
00000ed0  64 65 66 61 75 6c 74 73  25 2b 34 0d 00 a3 07 20  |defaults%+4.... |
00000ee0  20 e1 0d 00 a4 04 0d 00  a5 13 f4 20 20 32 2e 33  | ..........  2.3|
00000ef0  20 4d 65 73 73 61 67 65  73 0d 00 a6 17 f4 20 20  | Messages.....  |
00000f00  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00000f10  0d 00 a7 04 0d 00 a8 14  dd 20 f2 45 76 65 6e 74  |......... .Event|
00000f20  5f 4d 65 73 73 61 67 65  0d 00 a9 15 6d 65 73 73  |_Message....mess|
00000f30  61 67 65 25 3d 77 69 6d  70 25 21 31 36 0d 00 aa  |age%=wimp%!16...|
00000f40  13 20 c8 8e 20 6d 65 73  73 61 67 65 25 20 20 ca  |. .. message%  .|
00000f50  0d 00 ab 17 20 20 c9 20  30 20 3a 20 66 69 6e 69  |....  . 0 : fini|
00000f60  73 68 65 64 25 3d b9 0d  00 ac 29 20 20 c9 20 33  |shed%=....)  . 3|
00000f70  20 3a 20 f2 44 65 61 6c  57 69 74 68 4c 6f 61 64  | : .DealWithLoad|
00000f80  65 64 46 69 6c 65 28 77  69 6d 70 25 21 34 30 29  |edFile(wimp%!40)|
00000f90  0d 00 ad 06 20 cb 0d 00  ae 05 e1 0d 00 af 07 20  |.... .......... |
00000fa0  20 3a 0d 00 b0 22 20 20  dd 20 f2 44 65 61 6c 57  | :..."  . .DealW|
00000fb0  69 74 68 4c 6f 61 64 65  64 46 69 6c 65 28 74 79  |ithLoadedFile(ty|
00000fc0  70 65 25 29 0d 00 b1 11  20 20 20 c8 8e 20 74 79  |pe%)....   .. ty|
00000fd0  70 65 25 20 ca 0d 00 b2  35 20 20 20 20 f4 20 57  |pe% ....5    . W|
00000fe0  48 45 4e 20 26 46 46 42  20 3a 20 50 52 4f 43 44  |HEN &FFB : PROCD|
00000ff0  65 61 6c 57 69 74 68 42  61 73 69 63 46 69 6c 65  |ealWithBasicFile|
00001000  28 77 69 6d 70 25 2b 34  34 29 0d 00 b3 2f 20 20  |(wimp%+44).../  |
00001010  20 20 c9 20 26 32 30 30  30 3a 20 f2 44 65 61 6c  |  . &2000: .Deal|
00001020  57 69 74 68 41 70 70 6c  69 63 61 74 69 6f 6e 28  |WithApplication(|
00001030  77 69 6d 70 25 2b 34 34  29 0d 00 b4 08 20 20 20  |wimp%+44)....   |
00001040  cb 0d 00 b5 07 20 20 e1  0d 00 b6 09 20 20 20 20  |.....  .....    |
00001050  3a 0d 00 b7 23 20 20 20  20 dd 20 f2 44 65 61 6c  |:...#    . .Deal|
00001060  57 69 74 68 42 61 73 69  63 46 69 6c 65 28 66 69  |WithBasicFile(fi|
00001070  6c 65 25 29 0d 00 b8 34  20 20 20 20 20 42 61 73  |le%)...4     Bas|
00001080  69 63 5f 46 69 6c 65 24  3d a4 57 69 6d 70 5f 47  |ic_File$=.Wimp_G|
00001090  65 74 53 74 72 69 6e 67  41 74 41 64 64 72 65 73  |etStringAtAddres|
000010a0  73 28 66 69 6c 65 25 29  0d 00 b9 3b 20 20 20 20  |s(file%)...;    |
000010b0  20 f2 57 69 6d 70 5f 49  63 6f 6e 50 75 74 54 65  | .Wimp_IconPutTe|
000010c0  78 74 28 4c 69 6e 6b 53  61 76 65 5f 57 69 6e 64  |xt(LinkSave_Wind|
000010d0  6f 77 25 2c 31 31 2c 42  61 73 69 63 5f 46 69 6c  |ow%,11,Basic_Fil|
000010e0  65 24 29 0d 00 ba 31 20  20 20 20 20 f2 57 69 6d  |e$)...1     .Wim|
000010f0  70 5f 57 69 6e 64 6f 77  42 72 69 6e 67 54 6f 54  |p_WindowBringToT|
00001100  6f 70 28 4c 69 6e 6b 53  61 76 65 5f 57 69 6e 64  |op(LinkSave_Wind|
00001110  6f 77 25 29 0d 00 bb 2e  20 20 20 20 20 75 24 3d  |ow%)....     u$=|
00001120  a4 57 69 6d 70 5f 49 63  6f 6e 54 65 78 74 28 4c  |.Wimp_IconText(L|
00001130  69 6e 6b 53 61 76 65 5f  57 69 6e 64 6f 77 25 2c  |inkSave_Window%,|
00001140  31 29 0d 00 bc 30 20 20  20 20 20 f2 57 69 6d 70  |1)...0     .Wimp|
00001150  5f 49 63 6f 6e 43 61 72  65 74 28 4c 69 6e 6b 53  |_IconCaret(LinkS|
00001160  61 76 65 5f 57 69 6e 64  6f 77 25 2c 31 2c a9 75  |ave_Window%,1,.u|
00001170  24 29 0d 00 bd 09 20 20  20 20 e1 0d 00 be 09 20  |$)....    ..... |
00001180  20 20 20 3a 0d 00 bf 25  20 20 20 20 dd 20 f2 44  |   :...%    . .D|
00001190  65 61 6c 57 69 74 68 41  70 70 6c 69 63 61 74 69  |ealWithApplicati|
000011a0  6f 6e 28 66 69 6c 65 25  29 0d 00 c0 2d 20 20 20  |on(file%)...-   |
000011b0  20 20 61 70 70 24 3d a4  57 69 6d 70 5f 47 65 74  |  app$=.Wimp_Get|
000011c0  53 74 72 69 6e 67 41 74  41 64 64 72 65 73 73 28  |StringAtAddress(|
000011d0  66 69 6c 65 25 29 0d 00  c1 2e 20 20 20 20 20 6c  |file%)....     l|
000011e0  65 61 66 24 3d a4 57 69  6d 70 5f 47 65 74 46 69  |eaf$=.Wimp_GetFi|
000011f0  6c 65 46 72 6f 6d 50 61  74 68 6e 61 6d 65 28 61  |leFromPathname(a|
00001200  70 70 24 29 0d 00 c2 1f  20 20 20 20 20 6c 65 61  |pp$)....     lea|
00001210  66 24 3d c2 6c 65 61 66  24 2c a9 6c 65 61 66 24  |f$=.leaf$,.leaf$|
00001220  2d 31 29 0d 00 c3 15 20  20 20 20 20 e7 20 a4 4c  |-1)....     . .L|
00001230  69 62 72 61 72 79 20 8c  0d 00 c4 48 20 20 20 20  |ibrary ....H    |
00001240  20 20 20 6d 65 73 73 24  3d 20 22 49 73 20 74 68  |   mess$= "Is th|
00001250  69 73 20 61 20 42 41 53  49 43 20 70 72 6f 63 65  |is a BASIC proce|
00001260  64 75 72 65 20 6c 69 62  72 61 72 79 20 66 6f 72  |dure library for|
00001270  20 77 68 69 63 68 20 79  6f 75 20 77 61 6e 74 22  | which you want"|
00001280  0d 00 c5 33 20 20 20 20  20 20 20 6d 65 73 73 24  |...3       mess$|
00001290  2b 3d 22 20 74 6f 20 41  64 64 2f 52 65 6d 6f 76  |+=" to Add/Remov|
000012a0  65 20 74 68 65 20 a3 20  64 69 72 65 63 74 6f 72  |e the . director|
000012b0  79 3f 22 0d 00 c6 26 20  20 20 20 20 20 20 21 77  |y?"...&       !w|
000012c0  69 6d 70 25 3d 30 20 3a  20 24 28 77 69 6d 70 25  |imp%=0 : $(wimp%|
000012d0  2b 34 29 3d 6d 65 73 73  24 0d 00 c7 44 20 20 20  |+4)=mess$...D   |
000012e0  20 20 20 20 c8 99 20 22  57 69 6d 70 5f 52 65 70  |    .. "Wimp_Rep|
000012f0  6f 72 74 45 72 72 6f 72  22 2c 77 69 6d 70 25 2c  |ortError",wimp%,|
00001300  25 31 31 31 31 31 2c 22  21 4c 69 62 4d 61 6b 65  |%11111,"!LibMake|
00001310  72 22 20 b8 20 2c 63 68  6f 69 63 65 25 0d 00 c8  |r" . ,choice%...|
00001320  18 20 20 20 20 20 20 20  e7 20 63 68 6f 69 63 65  |.       . choice|
00001330  25 3d 31 20 8c 0d 00 c9  1c 20 20 20 20 20 20 20  |%=1 .....       |
00001340  20 f2 43 68 61 6e 67 65  28 22 21 42 6f 6f 74 22  | .Change("!Boot"|
00001350  29 0d 00 ca 1b 20 20 20  20 20 20 20 20 f2 43 68  |)....        .Ch|
00001360  61 6e 67 65 28 22 21 52  75 6e 22 29 0d 00 cb 0c  |ange("!Run")....|
00001370  20 20 20 20 20 20 20 cd  0d 00 cc 0b 20 20 20 20  |       .....    |
00001380  20 20 cd 0d 00 cd 0a 20  20 20 20 20 e1 0d 00 ce  |  .....     ....|
00001390  0c 20 20 20 20 20 20 20  3a 0d 00 cf 15 20 20 20  |.       :....   |
000013a0  20 20 20 20 dd 20 a4 4c  69 62 72 61 72 79 0d 00  |    . .Library..|
000013b0  d0 11 20 20 20 20 20 20  20 ea 20 6c 69 62 25 0d  |..       . lib%.|
000013c0  00 d1 4e 20 20 20 20 20  20 20 6c 69 62 25 3d a4  |..N       lib%=.|
000013d0  46 69 6c 65 5f 45 78 69  73 74 73 28 61 70 70 24  |File_Exists(app$|
000013e0  2b 22 2e 22 2b 22 21 42  6f 6f 74 22 29 20 80 20  |+"."+"!Boot") . |
000013f0  a4 46 69 6c 65 5f 45 78  69 73 74 73 28 61 70 70  |.File_Exists(app|
00001400  24 2b 22 2e 22 2b 22 21  52 75 6e 22 29 0d 00 d2  |$+"."+"!Run")...|
00001410  14 20 20 20 20 20 20 20  e7 20 ac 6c 69 62 25 20  |.       . .lib% |
00001420  8c 0d 00 d3 50 20 20 20  20 20 20 20 20 6d 65 73  |....P        mes|
00001430  73 24 3d 22 54 68 69 73  20 61 70 70 6c 69 63 61  |s$="This applica|
00001440  74 69 6f 6e 20 65 69 74  68 65 72 20 64 6f 65 73  |tion either does|
00001450  6e 27 74 20 68 61 76 65  20 61 20 21 52 75 6e 20  |n't have a !Run |
00001460  66 69 6c 65 20 6f 72 20  61 20 21 42 6f 6f 74 20  |file or a !Boot |
00001470  22 0d 00 d4 41 20 20 20  20 20 20 20 20 6d 65 73  |"...A        mes|
00001480  73 24 2b 3d 22 66 69 6c  65 2e 20 49 74 20 63 61  |s$+="file. It ca|
00001490  6e 27 74 20 62 65 20 61  20 42 41 53 49 43 20 70  |n't be a BASIC p|
000014a0  72 6f 63 65 64 75 72 65  20 6c 69 62 72 61 72 79  |rocedure library|
000014b0  21 22 0d 00 d5 2a 20 20  20 20 20 20 20 20 f2 57  |!"...*        .W|
000014c0  69 6d 70 5f 41 6c 65 72  74 28 22 21 4c 69 62 4d  |imp_Alert("!LibM|
000014d0  61 6b 65 72 22 2c 6d 65  73 73 24 29 0d 00 d6 0c  |aker",mess$)....|
000014e0  20 20 20 20 20 20 20 cd  0d 00 d7 10 20 20 20 20  |       .....    |
000014f0  20 20 20 3d 6c 69 62 25  0d 00 d8 04 0d 00 d9 0f  |   =lib%........|
00001500  20 20 20 20 20 20 20 20  20 20 3a 0d 00 da 1b 20  |          :.... |
00001510  20 20 20 20 20 20 20 20  20 dd 20 f2 43 68 61 6e  |         . .Chan|
00001520  67 65 28 78 24 29 0d 00  db 23 20 20 20 20 20 20  |ge(x$)...#      |
00001530  20 20 20 20 20 62 6f 6f  74 25 3d ad 28 61 70 70  |     boot%=.(app|
00001540  24 2b 22 2e 22 2b 78 24  29 0d 00 dc 10 20 20 20  |$+"."+x$)....   |
00001550  20 20 20 20 20 20 20 20  f5 0d 00 dd 1a 20 20 20  |        .....   |
00001560  20 20 20 20 20 20 20 20  20 70 25 3d 8f 23 62 6f  |         p%=.#bo|
00001570  6f 74 25 0d 00 de 1a 20  20 20 20 20 20 20 20 20  |ot%....         |
00001580  20 20 20 78 24 3d be 23  62 6f 6f 74 25 0d 00 df  |   x$=.#boot%...|
00001590  29 20 20 20 20 20 20 20  20 20 20 20 20 e7 20 a7  |)            . .|
000015a0  78 24 2c 6c 65 61 66 24  2b 22 24 50 61 74 68 22  |x$,leaf$+"$Path"|
000015b0  29 3c 3e 30 20 8c 0d 00  e0 1b 20 20 20 20 20 20  |)<>0 .....      |
000015c0  20 20 20 20 20 20 20 cf  23 62 6f 6f 74 25 3d 70  |       .#boot%=p|
000015d0  25 0d 00 e1 3a 20 20 20  20 20 20 20 20 20 20 20  |%...:           |
000015e0  20 20 e7 20 c2 78 24 2c  32 29 3d 22 a3 2e 22 20  |  . .x$,2)=".." |
000015f0  8c 20 c2 78 24 2c 32 29  3d 22 20 20 22 20 8b 20  |. .x$,2)="  " . |
00001600  c2 78 24 2c 32 29 3d 22  a3 2e 22 0d 00 e2 1b 20  |.x$,2)="..".... |
00001610  20 20 20 20 20 20 20 20  20 20 20 20 d5 23 62 6f  |            .#bo|
00001620  6f 74 25 2c 78 24 0d 00  e3 11 20 20 20 20 20 20  |ot%,x$....      |
00001630  20 20 20 20 20 20 cd 0d  00 e4 25 20 20 20 20 20  |      ....%     |
00001640  20 20 20 20 20 20 20 e7  20 a7 78 24 2c 6c 65 61  |       . .x$,lea|
00001650  66 24 2b 22 3a 22 29 3c  3e 30 20 8c 0d 00 e5 1b  |f$+":")<>0 .....|
00001660  20 20 20 20 20 20 20 20  20 20 20 20 20 cf 23 62  |             .#b|
00001670  6f 6f 74 25 3d 70 25 0d  00 e6 31 20 20 20 20 20  |oot%=p%...1     |
00001680  20 20 20 20 20 20 20 20  e7 20 c2 78 24 29 3d 22  |        . .x$)="|
00001690  a3 22 20 8c 20 c2 78 24  29 3d 22 20 22 20 8b 20  |." . .x$)=" " . |
000016a0  c2 78 24 29 3d 22 a3 22  0d 00 e7 1b 20 20 20 20  |.x$)="."....    |
000016b0  20 20 20 20 20 20 20 20  20 d5 23 62 6f 6f 74 25  |         .#boot%|
000016c0  2c 78 24 0d 00 e8 11 20  20 20 20 20 20 20 20 20  |,x$....         |
000016d0  20 20 20 cd 0d 00 e9 18  20 20 20 20 20 20 20 20  |   .....        |
000016e0  20 20 20 fd 20 c5 23 62  6f 6f 74 25 0d 00 ea 16  |   . .#boot%....|
000016f0  20 20 20 20 20 20 20 20  20 20 20 d9 23 62 6f 6f  |           .#boo|
00001700  74 25 0d 00 eb 38 20 20  20 20 20 20 20 20 20 20  |t%...8          |
00001710  20 e7 20 78 24 3d 22 21  42 6f 6f 74 22 20 8c 20  | . x$="!Boot" . |
00001720  ff 28 22 57 69 6d 70 54  61 73 6b 20 22 2b 61 70  |.("WimpTask "+ap|
00001730  70 24 2b 22 2e 22 2b 78  24 29 0d 00 ec 10 20 20  |p$+"."+x$)....  |
00001740  20 20 20 20 20 20 20 20  20 e1 0d 00 ed 05 3a 0d  |         .....:.|
00001750  00 ee 24 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..$. -----------|
00001760  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00001770  2d 2d 2d 0d 00 ef 19 f4  20 20 33 2e 20 53 61 76  |---.....  3. Sav|
00001780  65 20 70 72 6f 63 65 64  75 72 65 73 0d 00 f0 24  |e procedures...$|
00001790  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
000017a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000017b0  0d 00 f1 05 3a 0d 00 f2  1b dd 20 a4 44 65 66 69  |....:..... .Defi|
000017c0  6e 65 5f 53 61 76 65 28  77 69 6e 64 6f 77 25 29  |ne_Save(window%)|
000017d0  0d 00 f3 0d ea 20 72 65  73 75 6c 74 25 0d 00 f4  |..... result%...|
000017e0  10 c8 8e 20 77 69 6e 64  6f 77 25 20 ca 0d 00 f5  |... window% ....|
000017f0  23 20 c9 20 4c 69 62 53  61 76 65 5f 57 69 6e 64  |# . LibSave_Wind|
00001800  6f 77 25 20 20 3a 20 72  65 73 75 6c 74 25 3d b9  |ow%  : result%=.|
00001810  0d 00 f6 23 20 c9 20 4c  69 6e 6b 53 61 76 65 5f  |...# . LinkSave_|
00001820  57 69 6e 64 6f 77 25 20  3a 20 72 65 73 75 6c 74  |Window% : result|
00001830  25 3d b9 0d 00 f7 1e 20  7f 20 20 20 20 20 20 20  |%=..... .       |
00001840  20 20 20 20 20 20 3a 20  72 65 73 75 6c 74 25 3d  |      : result%=|
00001850  a3 0d 00 f8 05 cb 0d 00  f9 0c 3d 72 65 73 75 6c  |..........=resul|
00001860  74 25 0d 00 fa 04 0d 00  fb 24 dd 20 f2 45 76 65  |t%.......$. .Eve|
00001870  6e 74 5f 53 61 76 65 46  69 6c 65 28 66 69 6c 65  |nt_SaveFile(file|
00001880  24 2c 77 69 6e 64 6f 77  25 29 0d 00 fc 10 c8 8e  |$,window%)......|
00001890  20 77 69 6e 64 6f 77 25  20 ca 0d 00 fd 2a 20 c9  | window% ....* .|
000018a0  20 4c 69 62 53 61 76 65  5f 57 69 6e 64 6f 77 25  | LibSave_Window%|
000018b0  20 3a 20 f2 43 72 65 61  74 65 4e 65 77 4c 69 62  | : .CreateNewLib|
000018c0  72 61 72 79 0d 00 fe 27  20 c9 20 4c 69 6e 6b 53  |rary...' . LinkS|
000018d0  61 76 65 5f 57 69 6e 64  6f 77 25 3a 20 f2 4c 69  |ave_Window%: .Li|
000018e0  6e 6b 4c 69 62 72 61 72  69 65 73 0d 00 ff 05 cb  |nkLibraries.....|
000018f0  0d 01 00 05 e1 0d 01 01  04 0d 01 02 21 f4 20 20  |............!.  |
00001900  33 2e 31 20 43 72 65 61  74 69 6e 67 20 61 20 6e  |3.1 Creating a n|
00001910  65 77 20 6c 69 62 72 61  72 79 0d 01 03 21 f4 20  |ew library...!. |
00001920  20 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  | ===============|
00001930  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 0d 01 04 04 0d  |===========.....|
00001940  01 05 19 20 20 dd 20 f2  43 72 65 61 74 65 4e 65  |...  . .CreateNe|
00001950  77 4c 69 62 72 61 72 79  0d 01 06 16 20 20 20 f2  |wLibrary....   .|
00001960  47 65 74 4c 69 62 72 61  72 79 4e 61 6d 65 0d 01  |GetLibraryName..|
00001970  07 15 20 20 20 ff 22 43  44 49 52 20 22 2b 66 69  |..   ."CDIR "+fi|
00001980  6c 65 24 0d 01 08 1a 20  20 20 ff 22 43 44 49 52  |le$....   ."CDIR|
00001990  20 22 2b 66 69 6c 65 24  2b 22 2e a3 22 0d 01 09  | "+file$+".."...|
000019a0  28 20 20 20 e7 20 73 70  72 69 74 65 5f 6e 61 6d  |(   . sprite_nam|
000019b0  65 24 3d 22 22 20 8c 20  f2 4c 6f 61 64 5f 53 70  |e$="" . .Load_Sp|
000019c0  72 69 74 65 73 0d 01 0a  18 20 20 20 f2 43 6f 70  |rites....   .Cop|
000019d0  79 5f 53 70 72 69 74 65  46 69 6c 65 73 0d 01 0b  |y_SpriteFiles...|
000019e0  10 20 20 20 f2 43 6f 70  79 5f 52 75 6e 0d 01 0c  |.   .Copy_Run...|
000019f0  11 20 20 20 f2 43 6f 70  79 5f 42 6f 6f 74 0d 01  |.   .Copy_Boot..|
00001a00  0d 11 20 20 20 f2 43 6f  70 79 5f 48 65 6c 70 0d  |..   .Copy_Help.|
00001a10  01 0e 07 20 20 e1 0d 01  0f 09 20 20 20 20 3a 0d  |...  .....    :.|
00001a20  01 10 19 20 20 20 20 dd  20 f2 47 65 74 4c 69 62  |...    . .GetLib|
00001a30  72 61 72 79 4e 61 6d 65  0d 01 11 2f 20 20 20 20  |raryName.../    |
00001a40  20 6c 65 61 66 24 3d a4  57 69 6d 70 5f 47 65 74  | leaf$=.Wimp_Get|
00001a50  46 69 6c 65 46 72 6f 6d  50 61 74 68 6e 61 6d 65  |FileFromPathname|
00001a60  28 66 69 6c 65 24 29 0d  01 12 24 20 20 20 20 20  |(file$)...$     |
00001a70  66 69 6c 65 24 3d c0 66  69 6c 65 24 2c a9 66 69  |file$=.file$,.fi|
00001a80  6c 65 24 2d a9 6c 65 61  66 24 29 0d 01 13 1b 20  |le$-.leaf$).... |
00001a90  20 20 20 20 e7 20 c0 6c  65 61 66 24 2c 31 29 3c  |    . .leaf$,1)<|
00001aa0  3e 22 21 22 20 8c 0d 01  14 1e 20 20 20 20 20 20  |>"!" .....      |
00001ab0  66 69 6c 65 24 2b 3d 22  21 22 2b c0 6c 65 61 66  |file$+="!"+.leaf|
00001ac0  24 2c 39 29 0d 01 15 34  20 20 20 20 20 20 f2 57  |$,9)...4      .W|
00001ad0  69 6d 70 5f 49 63 6f 6e  50 75 74 54 65 78 74 28  |imp_IconPutText(|
00001ae0  4c 69 62 53 61 76 65 5f  57 69 6e 64 6f 77 25 2c  |LibSave_Window%,|
00001af0  31 2c 66 69 6c 65 24 29  0d 01 16 0a 20 20 20 20  |1,file$)....    |
00001b00  20 cc 0d 01 17 1b 20 20  20 20 20 20 66 69 6c 65  | .....      file|
00001b10  24 2b 3d c0 6c 65 61 66  24 2c 31 30 29 0d 01 18  |$+=.leaf$,10)...|
00001b20  34 20 20 20 20 20 20 f2  57 69 6d 70 5f 49 63 6f  |4      .Wimp_Ico|
00001b30  6e 50 75 74 54 65 78 74  28 4c 69 62 53 61 76 65  |nPutText(LibSave|
00001b40  5f 57 69 6e 64 6f 77 25  2c 31 2c 66 69 6c 65 24  |_Window%,1,file$|
00001b50  29 0d 01 19 0a 20 20 20  20 20 cd 0d 01 1a 09 20  |)....     ..... |
00001b60  20 20 20 e1 0d 01 1b 09  20 20 20 20 3a 0d 01 1c  |   .....    :...|
00001b70  17 20 20 20 20 dd 20 f2  4c 6f 61 64 5f 53 70 72  |.    . .Load_Spr|
00001b80  69 74 65 73 0d 01 1d 20  20 20 20 20 20 73 70 72  |ites...      spr|
00001b90  69 74 65 5f 6e 61 6d 65  24 3d 22 21 6c 69 62 72  |ite_name$="!libr|
00001ba0  61 72 79 22 0d 01 1e 37  20 20 20 20 20 53 70 72  |ary"...7     Spr|
00001bb0  69 74 65 73 25 3d a4 57  69 6d 70 5f 53 70 72 69  |ites%=.Wimp_Spri|
00001bc0  74 65 4c 6f 61 64 28 22  4c 69 62 4d 61 6b 65 72  |teLoad("LibMaker|
00001bd0  3a 21 53 70 72 69 74 65  73 22 29 0d 01 1f 3b 20  |:!Sprites")...; |
00001be0  20 20 20 20 53 70 72 69  74 65 73 32 32 25 3d a4  |    Sprites22%=.|
00001bf0  57 69 6d 70 5f 53 70 72  69 74 65 4c 6f 61 64 28  |Wimp_SpriteLoad(|
00001c00  22 4c 69 62 4d 61 6b 65  72 3a 21 53 70 72 69 74  |"LibMaker:!Sprit|
00001c10  65 73 32 32 22 29 0d 01  20 3b 20 20 20 20 20 53  |es22").. ;     S|
00001c20  70 72 69 74 65 73 32 33  25 3d a4 57 69 6d 70 5f  |prites23%=.Wimp_|
00001c30  53 70 72 69 74 65 4c 6f  61 64 28 22 4c 69 62 4d  |SpriteLoad("LibM|
00001c40  61 6b 65 72 3a 21 53 70  72 69 74 65 73 32 33 22  |aker:!Sprites23"|
00001c50  29 0d 01 21 09 20 20 20  20 e1 0d 01 22 09 20 20  |)..!.    ...".  |
00001c60  20 20 3a 0d 01 23 1b 20  20 20 20 dd 20 f2 43 6f  |  :..#.    . .Co|
00001c70  70 79 5f 53 70 72 69 74  65 46 69 6c 65 73 0d 01  |py_SpriteFiles..|
00001c80  24 2f 20 20 20 20 20 6c  65 61 66 24 3d a4 57 69  |$/     leaf$=.Wi|
00001c90  6d 70 5f 47 65 74 46 69  6c 65 46 72 6f 6d 50 61  |mp_GetFileFromPa|
00001ca0  74 68 6e 61 6d 65 28 66  69 6c 65 24 29 0d 01 25  |thname(file$)..%|
00001cb0  3f 20 20 20 20 20 c8 99  20 22 4f 53 5f 53 70 72  |?     .. "OS_Spr|
00001cc0  69 74 65 4f 70 22 2c 32  35 36 2b 32 36 2c 53 70  |iteOp",256+26,Sp|
00001cd0  72 69 74 65 73 25 2c 73  70 72 69 74 65 5f 6e 61  |rites%,sprite_na|
00001ce0  6d 65 24 2c 6c 65 61 66  24 2b bd 30 0d 01 26 3b  |me$,leaf$+.0..&;|
00001cf0  20 20 20 20 20 c8 99 20  22 4f 53 5f 53 70 72 69  |     .. "OS_Spri|
00001d00  74 65 4f 70 22 2c 32 35  36 2b 31 32 2c 53 70 72  |teOp",256+12,Spr|
00001d10  69 74 65 73 25 2c 66 69  6c 65 24 2b 22 2e 21 53  |ites%,file$+".!S|
00001d20  70 72 69 74 65 73 22 0d  01 27 41 20 20 20 20 20  |prites"..'A     |
00001d30  c8 99 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |.. "OS_SpriteOp"|
00001d40  2c 32 35 36 2b 32 36 2c  53 70 72 69 74 65 73 32  |,256+26,Sprites2|
00001d50  32 25 2c 73 70 72 69 74  65 5f 6e 61 6d 65 24 2c  |2%,sprite_name$,|
00001d60  6c 65 61 66 24 2b bd 30  0d 01 28 3f 20 20 20 20  |leaf$+.0..(?    |
00001d70  20 c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  | .. "OS_SpriteOp|
00001d80  22 2c 32 35 36 2b 31 32  2c 53 70 72 69 74 65 73  |",256+12,Sprites|
00001d90  32 32 25 2c 66 69 6c 65  24 2b 22 2e 21 53 70 72  |22%,file$+".!Spr|
00001da0  69 74 65 73 32 32 22 0d  01 29 41 20 20 20 20 20  |ites22"..)A     |
00001db0  c8 99 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |.. "OS_SpriteOp"|
00001dc0  2c 32 35 36 2b 32 36 2c  53 70 72 69 74 65 73 32  |,256+26,Sprites2|
00001dd0  33 25 2c 73 70 72 69 74  65 5f 6e 61 6d 65 24 2c  |3%,sprite_name$,|
00001de0  6c 65 61 66 24 2b bd 30  0d 01 2a 3f 20 20 20 20  |leaf$+.0..*?    |
00001df0  20 c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  | .. "OS_SpriteOp|
00001e00  22 2c 32 35 36 2b 31 32  2c 53 70 72 69 74 65 73  |",256+12,Sprites|
00001e10  32 33 25 2c 66 69 6c 65  24 2b 22 2e 21 53 70 72  |23%,file$+".!Spr|
00001e20  69 74 65 73 32 33 22 0d  01 2b 1b 20 20 20 20 20  |ites23"..+.     |
00001e30  73 70 72 69 74 65 5f 6e  61 6d 65 24 3d 6c 65 61  |sprite_name$=lea|
00001e40  66 24 0d 01 2c 09 20 20  20 20 e1 0d 01 2d 09 20  |f$..,.    ...-. |
00001e50  20 20 20 3a 0d 01 2e 13  20 20 20 20 dd 20 f2 43  |   :....    . .C|
00001e60  6f 70 79 5f 52 75 6e 0d  01 2f 18 20 20 20 20 20  |opy_Run../.     |
00001e70  ea 20 70 25 20 3a 20 70  25 3d 77 69 6d 70 25 0d  |. p% : p%=wimp%.|
00001e80  01 30 31 20 20 20 20 20  e7 20 c0 6c 65 61 66 24  |.01     . .leaf$|
00001e90  2c 31 29 3d 22 21 22 20  8c 20 6c 65 61 66 24 3d  |,1)="!" . leaf$=|
00001ea0  c2 6c 65 61 66 24 2c a9  6c 65 61 66 24 2d 31 29  |.leaf$,.leaf$-1)|
00001eb0  0d 01 31 35 20 20 20 20  20 f2 41 64 64 5f 4c 69  |..15     .Add_Li|
00001ec0  6e 65 28 22 49 63 6f 6e  73 70 72 69 74 65 73 20  |ne("Iconsprites |
00001ed0  3c 4f 62 65 79 24 44 69  72 3e 2e 21 53 70 72 69  |<Obey$Dir>.!Spri|
00001ee0  74 65 73 22 29 0d 01 32  36 20 20 20 20 20 f2 41  |tes")..26     .A|
00001ef0  64 64 5f 4c 69 6e 65 28  22 53 65 74 20 22 2b 6c  |dd_Line("Set "+l|
00001f00  65 61 66 24 2b 22 24 50  61 74 68 20 3c 4f 62 65  |eaf$+"$Path <Obe|
00001f10  79 24 44 69 72 3e 2e a3  2e 22 29 0d 01 33 2f 20  |y$Dir>...")..3/ |
00001f20  20 20 20 20 f2 41 64 64  5f 4c 69 6e 65 28 22 46  |    .Add_Line("F|
00001f30  69 6c 65 72 5f 4f 70 65  6e 44 69 72 20 22 2b 6c  |iler_OpenDir "+l|
00001f40  65 61 66 24 2b 22 3a 20  22 29 0d 01 34 35 20 20  |eaf$+": ")..45  |
00001f50  20 20 20 c8 99 20 22 4f  53 5f 46 69 6c 65 22 2c  |   .. "OS_File",|
00001f60  31 30 2c 66 69 6c 65 24  2b 22 2e 21 52 75 6e 22  |10,file$+".!Run"|
00001f70  2c 26 46 45 42 2c 2c 77  69 6d 70 25 2c 70 25 0d  |,&FEB,,wimp%,p%.|
00001f80  01 35 09 20 20 20 20 e1  0d 01 36 09 20 20 20 20  |.5.    ...6.    |
00001f90  3a 0d 01 37 14 20 20 20  20 dd 20 f2 43 6f 70 79  |:..7.    . .Copy|
00001fa0  5f 42 6f 6f 74 0d 01 38  18 20 20 20 20 20 ea 20  |_Boot..8.     . |
00001fb0  70 25 20 3a 20 70 25 3d  77 69 6d 70 25 0d 01 39  |p% : p%=wimp%..9|
00001fc0  35 20 20 20 20 20 f2 41  64 64 5f 4c 69 6e 65 28  |5     .Add_Line(|
00001fd0  22 49 63 6f 6e 73 70 72  69 74 65 73 20 3c 4f 62  |"Iconsprites <Ob|
00001fe0  65 79 24 44 69 72 3e 2e  21 53 70 72 69 74 65 73  |ey$Dir>.!Sprites|
00001ff0  22 29 0d 01 3a 36 20 20  20 20 20 f2 41 64 64 5f  |")..:6     .Add_|
00002000  4c 69 6e 65 28 22 53 65  74 20 22 2b 6c 65 61 66  |Line("Set "+leaf|
00002010  24 2b 22 24 50 61 74 68  20 3c 4f 62 65 79 24 44  |$+"$Path <Obey$D|
00002020  69 72 3e 2e a3 2e 22 29  0d 01 3b 36 20 20 20 20  |ir>...")..;6    |
00002030  20 c8 99 20 22 4f 53 5f  46 69 6c 65 22 2c 31 30  | .. "OS_File",10|
00002040  2c 66 69 6c 65 24 2b 22  2e 21 42 6f 6f 74 22 2c  |,file$+".!Boot",|
00002050  26 46 45 42 2c 2c 77 69  6d 70 25 2c 70 25 0d 01  |&FEB,,wimp%,p%..|
00002060  3c 09 20 20 20 20 e1 0d  01 3d 09 20 20 20 20 3a  |<.    ...=.    :|
00002070  0d 01 3e 14 20 20 20 20  dd 20 f2 43 6f 70 79 5f  |..>.    . .Copy_|
00002080  48 65 6c 70 0d 01 3f 24  20 20 20 20 20 ea 20 70  |Help..?$     . p|
00002090  25 20 3a 20 70 25 3d 77  69 6d 70 25 20 3a 20 77  |% : p%=wimp% : w|
000020a0  69 6d 70 25 21 30 3d 30  0d 01 40 2d 20 20 20 20  |imp%!0=0..@-    |
000020b0  20 c8 99 20 22 4f 53 5f  57 6f 72 64 22 2c 31 34  | .. "OS_Word",14|
000020c0  2c 77 69 6d 70 25 20 3a  20 64 61 74 65 24 3d 24  |,wimp% : date$=$|
000020d0  77 69 6d 70 25 0d 01 41  16 20 20 20 20 20 f2 41  |wimp%..A.     .A|
000020e0  64 64 5f 4c 69 6e 65 28  22 22 29 0d 01 42 23 20  |dd_Line("")..B# |
000020f0  20 20 20 20 f2 41 64 64  5f 4c 69 6e 65 28 c4 31  |    .Add_Line(.1|
00002100  31 2b a9 6c 65 61 66 24  2c 22 2d 22 29 29 0d 01  |1+.leaf$,"-"))..|
00002110  43 26 20 20 20 20 20 f2  41 64 64 5f 4c 69 6e 65  |C&     .Add_Line|
00002120  28 22 20 4c 69 62 72 61  72 79 3a 20 22 2b 6c 65  |(" Library: "+le|
00002130  61 66 24 29 0d 01 44 16  20 20 20 20 20 f2 41 64  |af$)..D.     .Ad|
00002140  64 5f 4c 69 6e 65 28 22  22 29 0d 01 45 20 20 20  |d_Line("")..E   |
00002150  20 20 20 f2 41 64 64 5f  4c 69 6e 65 28 22 20 50  |   .Add_Line(" P|
00002160  75 72 70 6f 73 65 3a 20  22 29 0d 01 46 16 20 20  |urpose: ")..F.  |
00002170  20 20 20 f2 41 64 64 5f  4c 69 6e 65 28 22 22 29  |   .Add_Line("")|
00002180  0d 01 47 2f 20 20 20 20  20 f2 41 64 64 5f 4c 69  |..G/     .Add_Li|
00002190  6e 65 28 22 20 56 65 72  73 69 6f 6e 3a 20 31 2e  |ne(" Version: 1.|
000021a0  30 20 28 22 2b 64 61 74  65 24 2b 22 29 22 29 0d  |0 ("+date$+")").|
000021b0  01 48 16 20 20 20 20 20  f2 41 64 64 5f 4c 69 6e  |.H.     .Add_Lin|
000021c0  65 28 22 22 29 0d 01 49  23 20 20 20 20 20 f2 41  |e("")..I#     .A|
000021d0  64 64 5f 4c 69 6e 65 28  c4 31 31 2b a9 6c 65 61  |dd_Line(.11+.lea|
000021e0  66 24 2c 22 2d 22 29 29  0d 01 4a 16 20 20 20 20  |f$,"-"))..J.    |
000021f0  20 f2 41 64 64 5f 4c 69  6e 65 28 22 22 29 0d 01  | .Add_Line("")..|
00002200  4b 22 20 20 20 20 20 f2  41 64 64 5f 4c 69 6e 65  |K"     .Add_Line|
00002210  28 22 20 20 20 22 2b c4  36 30 2c 22 2a 22 29 29  |("   "+.60,"*"))|
00002220  0d 01 4c 1e 20 20 20 20  20 f2 41 64 64 5f 4c 69  |..L.     .Add_Li|
00002230  6e 65 28 22 20 20 20 55  53 41 47 45 22 29 0d 01  |ne("   USAGE")..|
00002240  4d 22 20 20 20 20 20 f2  41 64 64 5f 4c 69 6e 65  |M"     .Add_Line|
00002250  28 22 20 20 20 22 2b c4  36 30 2c 22 2a 22 29 29  |("   "+.60,"*"))|
00002260  0d 01 4e 36 20 20 20 20  20 c8 99 20 22 4f 53 5f  |..N6     .. "OS_|
00002270  46 69 6c 65 22 2c 31 30  2c 66 69 6c 65 24 2b 22  |File",10,file$+"|
00002280  2e 21 48 65 6c 70 22 2c  26 46 46 46 2c 2c 77 69  |.!Help",&FFF,,wi|
00002290  6d 70 25 2c 70 25 0d 01  4f 09 20 20 20 20 e1 0d  |mp%,p%..O.    ..|
000022a0  01 50 0b 20 20 20 20 20  20 3a 0d 01 51 19 20 20  |.P.      :..Q.  |
000022b0  20 20 20 20 dd 20 f2 41  64 64 5f 4c 69 6e 65 28  |    . .Add_Line(|
000022c0  78 24 29 0d 01 52 21 20  20 20 20 20 20 20 24 70  |x$)..R!       $p|
000022d0  25 3d 78 24 2b bd 31 30  20 3a 20 70 25 2b 3d a9  |%=x$+.10 : p%+=.|
000022e0  78 24 2b 31 0d 01 53 0b  20 20 20 20 20 20 e1 0d  |x$+1..S.      ..|
000022f0  01 54 04 0d 01 55 17 f4  20 20 33 2e 32 20 53 61  |.T...U..  3.2 Sa|
00002300  76 69 6e 67 20 46 69 6c  65 73 0d 01 56 1a f4 20  |ving Files..V.. |
00002310  20 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  | ===============|
00002320  3d 3d 3d 3d 0d 01 57 04  0d 01 58 15 20 dd 20 f2  |====..W...X. . .|
00002330  4c 69 6e 6b 4c 69 62 72  61 72 69 65 73 0d 01 59  |LinkLibraries..Y|
00002340  18 20 e7 20 42 61 73 69  63 5f 46 69 6c 65 24 3c  |. . Basic_File$<|
00002350  3e 22 22 20 8c 0d 01 5a  18 20 20 f2 4d 61 6b 65  |>"" ...Z.  .Make|
00002360  53 75 72 65 4f 66 52 61  6d 44 69 73 63 0d 01 5b  |SureOfRamDisc..[|
00002370  24 20 20 ff 22 53 65 74  20 42 61 73 69 63 24 46  |$  ."Set Basic$F|
00002380  69 6c 65 20 22 2b 42 61  73 69 63 5f 46 69 6c 65  |ile "+Basic_File|
00002390  24 0d 01 5c 1d 20 20 ff  22 53 65 74 20 53 61 76  |$..\.  ."Set Sav|
000023a0  65 24 46 69 6c 65 20 22  2b 66 69 6c 65 24 0d 01  |e$File "+file$..|
000023b0  5d 23 20 20 ff 28 22 53  65 74 45 76 61 6c 20 43  |]#  .("SetEval C|
000023c0  72 75 6e 63 68 20 22 2b  c3 63 72 75 6e 63 68 25  |runch "+.crunch%|
000023d0  29 0d 01 5e 1d 20 20 2a  57 69 6d 70 54 61 73 6b  |)..^.  *WimpTask|
000023e0  20 4c 69 62 4d 61 6b 65  72 3a 4c 69 6e 6b 0d 01  | LibMaker:Link..|
000023f0  5f 22 20 20 c8 99 20 22  57 69 6d 70 5f 43 6c 6f  |_"  .. "Wimp_Clo|
00002400  73 65 57 69 6e 64 6f 77  22 2c 2c 77 69 6d 70 25  |seWindow",,wimp%|
00002410  0d 01 60 10 20 20 2a 52  61 6d 3a 43 6c 6f 73 65  |..`.  *Ram:Close|
00002420  0d 01 61 06 20 cc 0d 01  62 27 20 20 6d 65 73 73  |..a. ...b'  mess|
00002430  24 3d 22 4e 6f 20 66 69  6c 65 20 74 6f 20 62 65  |$="No file to be|
00002440  20 70 72 6f 63 65 73 73  65 64 2e 20 22 0d 01 63  | processed. "..c|
00002450  3e 20 20 6d 65 73 73 24  2b 3d 22 44 72 61 67 20  |>  mess$+="Drag |
00002460  61 20 42 41 53 49 43 20  66 69 6c 65 20 6f 6e 74  |a BASIC file ont|
00002470  6f 20 69 63 6f 6e 20 62  61 72 20 6f 72 20 74 68  |o icon bar or th|
00002480  69 73 20 77 69 6e 64 6f  77 2e 22 0d 01 64 23 20  |is window."..d# |
00002490  20 f2 57 69 6d 70 5f 41  6c 65 72 74 28 22 4c 69  | .Wimp_Alert("Li|
000024a0  62 4d 61 6b 65 72 22 2c  6d 65 73 73 24 29 0d 01  |bMaker",mess$)..|
000024b0  65 06 20 cd 0d 01 66 06  20 e1 0d 01 67 04 0d 01  |e. ...f. ...g...|
000024c0  68 1b 20 20 20 dd 20 f2  4d 61 6b 65 53 75 72 65  |h.   . .MakeSure|
000024d0  4f 66 52 61 6d 44 69 73  63 0d 01 69 2d 20 20 20  |OfRamDisc..i-   |
000024e0  20 c8 99 20 22 4f 53 5f  52 65 61 64 52 41 4d 46  | .. "OS_ReadRAMF|
000024f0  73 4c 69 6d 69 74 73 22  20 b8 20 62 65 67 69 6e  |sLimits" . begin|
00002500  25 2c 65 6e 64 25 0d 01  6a 17 20 20 20 20 e7 20  |%,end%..j.    . |
00002510  62 65 67 69 6e 25 3d 65  6e 64 25 20 8c 0d 01 6b  |begin%=end% ...k|
00002520  2c 20 20 20 20 20 c8 99  20 22 4f 53 5f 43 68 61  |,     .. "OS_Cha|
00002530  6e 67 65 44 79 6e 61 6d  69 63 41 72 65 61 22 2c  |ngeDynamicArea",|
00002540  35 2c 33 32 2a 31 30 32  34 0d 01 6c 09 20 20 20  |5,32*1024..l.   |
00002550  20 cd 0d 01 6d 18 20 20  20 20 20 f2 43 6c 65 61  | ...m.     .Clea|
00002560  6e 55 70 52 41 4d 44 69  73 63 0d 01 6e 08 20 20  |nUpRAMDisc..n.  |
00002570  20 e1 0d 01 6f 04 0d 01  70 18 20 20 20 dd 20 f2  | ...o...p.   . .|
00002580  43 6c 65 61 6e 55 70 52  41 4d 44 69 73 63 0d 01  |CleanUpRAMDisc..|
00002590  71 0b 20 20 20 20 ea 20  85 0d 01 72 12 20 20 20  |q.    . ...r.   |
000025a0  20 2a 52 61 6d 3a 43 6c  6f 73 65 0d 01 73 2a 20  | *Ram:Close..s* |
000025b0  20 20 20 c8 99 20 22 4f  53 5f 46 69 6c 65 22 2c  |   .. "OS_File",|
000025c0  35 2c 22 52 41 4d 3a 4c  69 6e 6b 22 20 b8 20 66  |5,"RAM:Link" . f|
000025d0  6f 75 6e 64 25 0d 01 74  20 20 20 20 20 ee 20 85  |ound%..t     . .|
000025e0  20 ea 20 3a 20 f7 20 85  20 3a 20 66 6f 75 6e 64  | . : . . : found|
000025f0  25 3d 2d 31 31 0d 01 75  13 20 20 20 20 c8 8e 20  |%=-11..u.    .. |
00002600  66 6f 75 6e 64 25 20 ca  0d 01 76 0c 20 20 20 20  |found% ...v.    |
00002610  c9 20 32 3a 0d 01 77 2c  20 20 20 20 20 2a 57 69  |. 2:..w,     *Wi|
00002620  70 65 20 52 41 4d 3a 3a  52 61 6d 44 69 73 63 30  |pe RAM::RamDisc0|
00002630  2e 24 2e 4c 69 6e 6b 2e  2a 20 20 46 7e 43 7e 56  |.$.Link.*  F~C~V|
00002640  0d 01 78 0c 20 20 20 20  c9 20 30 3a 0d 01 79 24  |..x.    . 0:..y$|
00002650  20 20 20 20 20 20 2a 43  44 49 52 20 52 41 4d 3a  |      *CDIR RAM:|
00002660  3a 52 61 6d 44 69 73 63  30 2e 24 2e 4c 69 6e 6b  |:RamDisc0.$.Link|
00002670  0d 01 7a 09 20 20 20 20  cb 0d 01 7b 2f 20 20 20  |..z.    ...{/   |
00002680  20 2a 53 65 74 20 4c 69  62 4c 69 6e 6b 24 50 61  | *Set LibLink$Pa|
00002690  74 68 20 52 41 4d 3a 3a  52 61 6d 44 69 73 63 30  |th RAM::RamDisc0|
000026a0  2e 24 2e 4c 69 6e 6b 2e  0d 01 7c 08 20 20 20 e1  |.$.Link...|.   .|
000026b0  0d 01 7d 04 0d 01 7e 04  0d 01 7f 1c f4 20 3d 3d  |..}...~...... ==|
000026c0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
000026d0  3d 3d 3d 3d 0d 01 80 0d  f4 20 34 2e 20 57 69 6d  |====..... 4. Wim|
000026e0  70 0d 01 81 1c f4 20 3d  3d 3d 3d 3d 3d 3d 3d 3d  |p..... =========|
000026f0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 0d 01 82  |=============...|
00002700  04 0d 01 83 0f f4 20 34  2e 31 20 4d 65 6e 75 73  |...... 4.1 Menus|
00002710  0d 01 84 13 f4 20 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |..... ==========|
00002720  3d 3d 3d 0d 01 85 04 0d  01 86 1d dd 20 a4 57 69  |===......... .Wi|
00002730  6d 70 5f 4d 65 6e 75 43  72 65 61 74 65 28 6d 65  |mp_MenuCreate(me|
00002740  6e 75 24 29 0d 01 87 27  ea 20 6d 65 6e 75 25 2c  |nu$)...'. menu%,|
00002750  69 6e 64 65 78 25 2c 77  69 64 74 68 25 2c 6c 65  |index%,width%,le|
00002760  6e 67 74 68 25 2c 6b 25  2c 73 25 0d 01 88 2e de  |ngth%,k%,s%.....|
00002770  20 6d 65 6e 75 25 20 32  38 2b a4 57 69 6d 70 5f  | menu% 28+.Wimp_|
00002780  4d 65 6e 75 4e 6f 4f 66  45 6e 74 72 69 65 73 28  |MenuNoOfEntries(|
00002790  6d 65 6e 75 24 29 2a 32  34 0d 01 89 37 6d 65 6e  |menu$)*24...7men|
000027a0  75 25 3f 31 32 3d 37 20  20 20 3a 20 6d 65 6e 75  |u%?12=7   : menu|
000027b0  25 3f 31 33 3d 32 20 20  3a 20 6d 65 6e 75 25 3f  |%?13=2  : menu%?|
000027c0  31 34 3d 37 20 3a 6d 65  6e 75 25 3f 31 35 3d 30  |14=7 :menu%?15=0|
000027d0  0d 01 8a 2b 6d 65 6e 75  25 21 31 36 3d 31 34 30  |...+menu%!16=140|
000027e0  20 3a 20 6d 65 6e 75 25  21 32 30 3d 34 34 20 3a  | : menu%!20=44 :|
000027f0  20 6d 65 6e 75 25 21 32  34 3d 30 0d 01 8b 13 69  | menu%!24=0....i|
00002800  6e 64 65 78 25 3d 6d 65  6e 75 25 2b 32 38 0d 01  |ndex%=menu%+28..|
00002810  8c 20 24 6d 65 6e 75 25  3d c0 6d 65 6e 75 24 2c  |. $menu%=.menu$,|
00002820  a7 6d 65 6e 75 24 2c 22  5c 22 29 2d 31 29 0d 01  |.menu$,"\")-1)..|
00002830  8d 23 77 69 64 74 68 25  3d a9 28 c0 6d 65 6e 75  |.#width%=.(.menu|
00002840  24 2c a7 6d 65 6e 75 24  2c 22 5c 22 29 2d 31 29  |$,.menu$,"\")-1)|
00002850  29 0d 01 8e 24 6d 65 6e  75 24 2b 3d 22 5c 22 20  |)...$menu$+="\" |
00002860  3a 20 4d 65 6e 75 5f 4e  6f 4f 66 45 6e 74 72 69  |: Menu_NoOfEntri|
00002870  65 73 25 3d 30 0d 01 8f  10 c8 95 20 6d 65 6e 75  |es%=0...... menu|
00002880  24 3c 3e 22 22 0d 01 90  1f 6d 65 6e 75 24 3d c1  |$<>""....menu$=.|
00002890  6d 65 6e 75 24 2c a7 6d  65 6e 75 24 2c 22 5c 22  |menu$,.menu$,"\"|
000028a0  29 2b 31 29 0d 01 91 0e  c8 8e 20 6d 65 6e 75 24  |)+1)...... menu$|
000028b0  20 ca 0d 01 92 09 20 c9  20 22 22 0d 01 93 08 20  | ..... . "".... |
000028c0  7f 20 3a 0d 01 94 31 20  20 21 69 6e 64 65 78 25  |. :...1  !index%|
000028d0  3d 30 20 3a 20 69 6e 64  65 78 25 21 34 3d 2d 31  |=0 : index%!4=-1|
000028e0  20 3a 20 69 6e 64 65 78  25 21 38 3d 26 37 30 30  | : index%!8=&700|
000028f0  30 30 32 31 0d 01 95 1b  20 20 6c 65 6e 67 74 68  |0021....  length|
00002900  25 3d a7 6d 65 6e 75 24  2c 22 5c 22 29 2d 31 0d  |%=.menu$,"\")-1.|
00002910  01 96 1e 20 20 6b 25 3d  a7 c0 6d 65 6e 75 24 2c  |...  k%=..menu$,|
00002920  6c 65 6e 67 74 68 25 29  2c 22 3e 22 29 0d 01 97  |length%),">")...|
00002930  0d 20 20 c8 8e 20 6b 25  20 ca 0d 01 98 0a 20 20  |.  .. k% .....  |
00002940  20 c9 20 30 0d 01 99 08  20 20 20 7f 0d 01 9a 25  | . 0....   ....%|
00002950  20 20 20 20 73 25 3d a0  28 c1 6d 65 6e 75 24 2c  |    s%=.(.menu$,|
00002960  6b 25 2b 31 2c 6c 65 6e  67 74 68 25 2d 6b 25 29  |k%+1,length%-k%)|
00002970  29 0d 01 9b 13 20 20 20  20 69 6e 64 65 78 25 21  |)....    index%!|
00002980  34 3d 73 25 0d 01 9c 14  20 20 20 20 6c 65 6e 67  |4=s%....    leng|
00002990  74 68 25 3d 6b 25 2d 31  0d 01 9d 07 20 20 cb 0d  |th%=k%-1....  ..|
000029a0  01 9e 22 20 20 24 28 69  6e 64 65 78 25 2b 31 32  |.."  $(index%+12|
000029b0  29 3d c0 6d 65 6e 75 24  2c 6c 65 6e 67 74 68 25  |)=.menu$,length%|
000029c0  29 0d 01 9f 27 20 20 e7  20 6c 65 6e 67 74 68 25  |)...'  . length%|
000029d0  3e 77 69 64 74 68 25 20  8c 20 77 69 64 74 68 25  |>width% . width%|
000029e0  3d 6c 65 6e 67 74 68 25  0d 01 a0 10 20 20 69 6e  |=length%....  in|
000029f0  64 65 78 25 2b 3d 32 34  0d 01 a1 05 cb 0d 01 a2  |dex%+=24........|
00002a00  05 ce 0d 01 a3 1a 6d 65  6e 75 25 21 31 36 3d 31  |......menu%!16=1|
00002a10  36 2a 28 77 69 64 74 68  25 2b 31 29 0d 01 a4 28  |6*(width%+1)...(|
00002a20  69 6e 64 65 78 25 21 2d  32 34 3d 69 6e 64 65 78  |index%!-24=index|
00002a30  25 21 2d 32 34 20 84 20  26 38 30 20 3a 20 3d 6d  |%!-24 . &80 : =m|
00002a40  65 6e 75 25 0d 01 a5 05  3a 0d 01 a6 22 dd 20 a4  |enu%....:...". .|
00002a50  57 69 6d 70 5f 4d 65 6e  75 4e 6f 4f 66 45 6e 74  |Wimp_MenuNoOfEnt|
00002a60  72 69 65 73 28 6d 65 6e  75 24 29 0d 01 a7 1a ea  |ries(menu$).....|
00002a70  20 6e 25 20 2c 6a 25 20  3a 20 6e 25 3d 30 20 3a  | n% ,j% : n%=0 :|
00002a80  20 6a 25 3d 30 0d 01 a8  05 f5 0d 01 a9 17 6a 25  | j%=0.........j%|
00002a90  3d a7 6d 65 6e 75 24 2c  22 5c 22 2c 6a 25 2b 31  |=.menu$,"\",j%+1|
00002aa0  29 0d 01 aa 13 e7 20 6a  25 3c 3e 30 20 8c 20 6e  |)..... j%<>0 . n|
00002ab0  25 2b 3d 31 0d 01 ab 0a  fd 20 6a 25 3d 30 0d 01  |%+=1..... j%=0..|
00002ac0  ac 07 3d 6e 25 0d 01 ad  05 3a 0d 01 ae 1f dd 20  |..=n%....:..... |
00002ad0  f2 57 69 6d 70 5f 4d 65  6e 75 50 6f 70 55 70 42  |.Wimp_MenuPopUpB|
00002ae0  61 72 28 78 25 2c 79 25  29 0d 01 af 0f ea 20 6e  |ar(x%,y%)..... n|
00002af0  25 20 3a 20 6e 25 3d 30  0d 01 b0 2b c8 95 20 28  |% : n%=0...+.. (|
00002b00  28 42 61 72 5f 4d 65 6e  75 25 21 28 32 38 2b 6e  |(Bar_Menu%!(28+n|
00002b10  25 2a 32 34 29 29 80 25  31 30 30 30 30 30 30 30  |%*24)).%10000000|
00002b20  29 3d 30 0d 01 b1 09 6e  25 2b 3d 31 0d 01 b2 05  |)=0....n%+=1....|
00002b30  ce 0d 01 b3 32 c8 99 20  22 57 69 6d 70 5f 43 72  |....2.. "Wimp_Cr|
00002b40  65 61 74 65 4d 65 6e 75  22 2c 2c 42 61 72 5f 4d  |eateMenu",,Bar_M|
00002b50  65 6e 75 25 2c 78 25 2d  36 34 2c 39 36 2b 6e 25  |enu%,x%-64,96+n%|
00002b60  2a 34 34 0d 01 b4 13 6d  65 6e 75 25 3d 42 61 72  |*44....menu%=Bar|
00002b70  5f 4d 65 6e 75 25 0d 01  b5 05 e1 0d 01 b6 05 3a  |_Menu%.........:|
00002b80  0d 01 b7 22 dd 20 f2 57  69 6d 70 5f 4d 65 6e 75  |...". .Wimp_Menu|
00002b90  50 6f 70 55 70 28 4d 65  6e 75 25 2c 78 25 2c 79  |PopUp(Menu%,x%,y|
00002ba0  25 29 0d 01 b8 0f 6d 65  6e 75 25 3d 4d 65 6e 75  |%)....menu%=Menu|
00002bb0  25 0d 01 b9 2b c8 99 20  22 57 69 6d 70 5f 43 72  |%...+.. "Wimp_Cr|
00002bc0  65 61 74 65 4d 65 6e 75  22 2c 2c 6d 65 6e 75 25  |eateMenu",,menu%|
00002bd0  2c 78 25 2d 36 34 2c 79  25 2b 32 30 0d 01 ba 05  |,x%-64,y%+20....|
00002be0  e1 0d 01 bb 05 3a 0d 01  bc 15 dd 20 f2 57 69 6d  |.....:..... .Wim|
00002bf0  70 5f 4d 65 6e 75 43 6c  6f 73 65 0d 01 bd 1b c8  |p_MenuClose.....|
00002c00  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |. "Wimp_CreateMe|
00002c10  6e 75 22 2c 2d 31 0d 01  be 05 e1 0d 01 bf 05 3a  |nu",-1.........:|
00002c20  0d 01 c0 29 dd 20 f2 57  69 6d 70 5f 4d 65 6e 75  |...). .Wimp_Menu|
00002c30  47 6c 75 65 28 6d 65 6e  75 31 25 2c 69 74 65 6d  |Glue(menu1%,item|
00002c40  25 2c 6d 65 6e 75 32 25  29 0d 01 c1 1e 6d 65 6e  |%,menu2%)....men|
00002c50  75 31 25 21 28 38 2b 69  74 65 6d 25 2a 32 34 29  |u1%!(8+item%*24)|
00002c60  3d 6d 65 6e 75 32 25 0d  01 c2 05 e1 0d 01 c3 04  |=menu2%.........|
00002c70  0d 01 c4 11 f4 20 34 2e  32 20 53 70 72 69 74 65  |..... 4.2 Sprite|
00002c80  73 0d 01 c5 11 f4 20 3d  3d 3d 3d 3d 3d 3d 3d 3d  |s..... =========|
00002c90  3d 3d 0d 01 c6 04 0d 01  c7 21 dd 20 a4 57 69 6d  |==.......!. .Wim|
00002ca0  70 5f 53 70 72 69 74 65  4c 6f 61 64 28 70 61 74  |p_SpriteLoad(pat|
00002cb0  68 6e 61 6d 65 24 29 0d  01 c8 14 ea 20 53 25 2c  |hname$)..... S%,|
00002cc0  54 25 2c 73 70 72 69 74  65 73 25 0d 01 c9 22 53  |T%,sprites%..."S|
00002cd0  25 3d 8e 28 70 61 74 68  6e 61 6d 65 24 29 3a 54  |%=.(pathname$):T|
00002ce0  25 3d a2 23 53 25 2b 34  3a d9 23 53 25 0d 01 ca  |%=.#S%+4:.#S%...|
00002cf0  1c de 20 73 70 72 69 74  65 73 25 20 54 25 2c 73  |.. sprites% T%,s|
00002d00  70 6e 61 6d 65 25 20 31  32 0d 01 cb 1d 21 73 70  |pname% 12....!sp|
00002d10  72 69 74 65 73 25 3d 54  25 3a 73 70 72 69 74 65  |rites%=T%:sprite|
00002d20  73 25 21 38 3d 30 0d 01  cc 21 c8 99 22 4f 53 5f  |s%!8=0...!.."OS_|
00002d30  53 70 72 69 74 65 4f 70  22 2c 26 31 30 39 2c 73  |SpriteOp",&109,s|
00002d40  70 72 69 74 65 73 25 0d  01 cd 2b c8 99 22 4f 53  |prites%...+.."OS|
00002d50  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 30 41 2c  |_SpriteOp",&10A,|
00002d60  73 70 72 69 74 65 73 25  2c 70 61 74 68 6e 61 6d  |sprites%,pathnam|
00002d70  65 24 0d 01 ce 0d 3d 73  70 72 69 74 65 73 25 0d  |e$....=sprites%.|
00002d80  01 cf 04 0d 01 d0 11 f4  20 34 2e 33 20 57 69 6e  |........ 4.3 Win|
00002d90  64 6f 77 73 0d 01 d1 11  f4 20 3d 3d 3d 3d 3d 3d  |dows..... ======|
00002da0  3d 3d 3d 3d 3d 0d 01 d2  04 0d 01 d3 1f dd 20 a4  |=====......... .|
00002db0  57 69 6d 70 5f 57 69 6e  64 6f 77 4c 6f 61 64 28  |Wimp_WindowLoad(|
00002dc0  77 69 6e 64 6f 77 24 29  0d 01 d4 39 3d a4 57 69  |window$)...9=.Wi|
00002dd0  6d 70 5f 57 69 6e 64 6f  77 4c 6f 61 64 46 72 6f  |mp_WindowLoadFro|
00002de0  6d 28 77 69 6e 64 6f 77  24 2c 22 3c 4f 62 65 79  |m(window$,"<Obey|
00002df0  24 44 69 72 3e 2e 54 65  6d 70 6c 61 74 65 73 22  |$Dir>.Templates"|
00002e00  29 0d 01 d5 05 3a 0d 01  d6 2d dd 20 a4 57 69 6d  |)....:...-. .Wim|
00002e10  70 5f 57 69 6e 64 6f 77  4c 6f 61 64 46 72 6f 6d  |p_WindowLoadFrom|
00002e20  28 77 69 6e 64 6f 77 24  2c 74 65 6d 70 6c 61 74  |(window$,templat|
00002e30  65 24 29 0d 01 d7 08 ea  20 63 25 0d 01 d8 25 c8  |e$)..... c%...%.|
00002e40  99 20 22 57 69 6d 70 5f  4f 70 65 6e 54 65 6d 70  |. "Wimp_OpenTemp|
00002e50  6c 61 74 65 22 2c 2c 74  65 6d 70 6c 61 74 65 24  |late",,template$|
00002e60  0d 01 d9 51 c8 99 20 22  57 69 6d 70 5f 4c 6f 61  |...Q.. "Wimp_Loa|
00002e70  64 54 65 6d 70 6c 61 74  65 22 2c 2c 77 69 6d 70  |dTemplate",,wimp|
00002e80  25 2c 69 63 6f 6e 73 25  2c 69 63 6f 6e 5f 6d 65  |%,icons%,icon_me|
00002e90  6d 6f 72 79 25 2c 66 6f  6e 74 73 25 2c 77 69 6e  |mory%,fonts%,win|
00002ea0  64 6f 77 24 2c 30 20 b8  20 2c 2c 69 63 6f 6e 73  |dow$,0 . ,,icons|
00002eb0  25 0d 01 da 26 c8 99 20  22 57 69 6d 70 5f 43 72  |%...&.. "Wimp_Cr|
00002ec0  65 61 74 65 57 69 6e 64  6f 77 22 2c 2c 77 69 6d  |eateWindow",,wim|
00002ed0  70 25 20 b8 20 63 25 0d  01 db 1b c8 99 20 22 57  |p% . c%...... "W|
00002ee0  69 6d 70 5f 43 6c 6f 73  65 54 65 6d 70 6c 61 74  |imp_CloseTemplat|
00002ef0  65 22 0d 01 dc 07 3d 63  25 0d 01 dd 05 3a 0d 01  |e"....=c%....:..|
00002f00  de 25 dd 20 f2 57 69 6d  70 5f 57 69 6e 64 6f 77  |.%. .Wimp_Window|
00002f10  42 72 69 6e 67 54 6f 54  6f 70 28 77 69 6e 64 6f  |BringToTop(windo|
00002f20  77 25 29 0d 01 df 12 21  77 69 6d 70 25 3d 77 69  |w%)....!wimp%=wi|
00002f30  6e 64 6f 77 25 0d 01 e0  23 c8 99 20 22 57 69 6d  |ndow%...#.. "Wim|
00002f40  70 5f 47 65 74 57 69 6e  64 6f 77 53 74 61 74 65  |p_GetWindowState|
00002f50  22 2c 2c 77 69 6d 70 25  0d 01 e1 0f 77 69 6d 70  |",,wimp%....wimp|
00002f60  25 21 32 38 3d 2d 31 0d  01 e2 1f c8 99 20 22 57  |%!28=-1...... "W|
00002f70  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
00002f80  2c 77 69 6d 70 25 0d 01  e3 05 e1 0d 01 e4 04 0d  |,wimp%..........|
00002f90  01 e5 0f f4 20 34 2e 34  20 49 63 6f 6e 73 0d 01  |.... 4.4 Icons..|
00002fa0  e6 0f f4 20 3d 3d 3d 3d  3d 3d 3d 3d 3d 0d 01 e7  |... =========...|
00002fb0  04 0d 01 e8 1c dd 20 a4  57 69 6d 70 5f 49 63 6f  |...... .Wimp_Ico|
00002fc0  6e 42 61 72 28 53 70 72  69 74 65 24 29 0d 01 e9  |nBar(Sprite$)...|
00002fd0  0b ea 20 69 63 6f 6e 25  0d 01 ea 0e 77 69 6d 70  |.. icon%....wimp|
00002fe0  25 21 30 3d 2d 31 0d 01  eb 1e 77 69 6d 70 25 21  |%!0=-1....wimp%!|
00002ff0  34 3d 30 20 20 20 20 20  3a 20 77 69 6d 70 25 21  |4=0     : wimp%!|
00003000  38 3d 31 36 0d 01 ec 22  77 69 6d 70 25 21 31 32  |8=16..."wimp%!12|
00003010  3d 36 38 20 20 20 3a 20  77 69 6d 70 25 21 31 36  |=68   : wimp%!16|
00003020  3d 36 38 2b 33 32 0d 01  ed 12 77 69 6d 70 25 21  |=68+32....wimp%!|
00003030  32 30 3d 26 33 30 30 32  0d 01 ee 17 24 28 77 69  |20=&3002....$(wi|
00003040  6d 70 25 2b 32 34 29 3d  53 70 72 69 74 65 24 0d  |mp%+24)=Sprite$.|
00003050  01 ef 27 c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |..'.. "Wimp_Crea|
00003060  74 65 49 63 6f 6e 22 2c  2c 77 69 6d 70 25 20 b8  |teIcon",,wimp% .|
00003070  20 69 63 6f 6e 25 0d 01  f0 0a 3d 69 63 6f 6e 25  | icon%....=icon%|
00003080  0d 01 f1 05 3a 0d 01 f2  2c dd 20 f2 57 69 6d 70  |....:...,. .Wimp|
00003090  5f 49 63 6f 6e 50 75 74  54 65 78 74 28 77 69 6e  |_IconPutText(win|
000030a0  64 6f 77 25 2c 69 63 6f  6e 25 2c 74 65 78 74 24  |dow%,icon%,text$|
000030b0  29 0d 01 f3 23 77 69 6d  70 25 21 30 3d 77 69 6e  |)...#wimp%!0=win|
000030c0  64 6f 77 25 20 3a 20 77  69 6d 70 25 21 34 3d 69  |dow% : wimp%!4=i|
000030d0  63 6f 6e 25 0d 01 f4 21  c8 99 20 22 57 69 6d 70  |con%...!.. "Wimp|
000030e0  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
000030f0  77 69 6d 70 25 0d 01 f5  37 e7 20 28 28 77 69 6d  |wimp%...7. ((wim|
00003100  70 25 21 32 34 29 20 80  20 26 31 30 30 29 3d 30  |p%!24) . &100)=0|
00003110  20 85 20 31 2c 22 49 63  6f 6e 20 69 73 6e 27 74  | . 1,"Icon isn't|
00003120  20 69 6e 64 69 72 65 63  74 65 64 22 0d 01 f6 15  | indirected"....|
00003130  24 28 77 69 6d 70 25 21  32 38 29 3d 74 65 78 74  |$(wimp%!28)=text|
00003140  24 0d 01 f7 23 77 69 6d  70 25 21 30 3d 77 69 6e  |$...#wimp%!0=win|
00003150  64 6f 77 25 20 3a 20 77  69 6d 70 25 21 34 3d 69  |dow% : wimp%!4=i|
00003160  63 6f 6e 25 0d 01 f8 1a  77 69 6d 70 25 21 38 3d  |con%....wimp%!8=|
00003170  30 20 3a 20 77 69 6d 70  25 21 31 32 3d 30 0d 01  |0 : wimp%!12=0..|
00003180  f9 21 c8 99 20 22 57 69  6d 70 5f 53 65 74 49 63  |.!.. "Wimp_SetIc|
00003190  6f 6e 53 74 61 74 65 22  2c 2c 77 69 6d 70 25 0d  |onState",,wimp%.|
000031a0  01 fa 05 e1 0d 01 fb 05  3a 0d 01 fc 23 dd 20 a4  |........:...#. .|
000031b0  57 69 6d 70 5f 49 63 6f  6e 54 65 78 74 28 77 69  |Wimp_IconText(wi|
000031c0  6e 64 6f 77 25 2c 69 63  6f 6e 25 29 0d 01 fd 23  |ndow%,icon%)...#|
000031d0  77 69 6d 70 25 21 30 3d  77 69 6e 64 6f 77 25 20  |wimp%!0=window% |
000031e0  3a 20 77 69 6d 70 25 21  34 3d 69 63 6f 6e 25 0d  |: wimp%!4=icon%.|
000031f0  01 fe 21 c8 99 20 22 57  69 6d 70 5f 47 65 74 49  |..!.. "Wimp_GetI|
00003200  63 6f 6e 53 74 61 74 65  22 2c 2c 77 69 6d 70 25  |conState",,wimp%|
00003210  0d 01 ff 37 e7 20 28 28  77 69 6d 70 25 21 32 34  |...7. ((wimp%!24|
00003220  29 20 80 20 26 31 30 30  29 3d 30 20 85 20 31 2c  |) . &100)=0 . 1,|
00003230  22 49 63 6f 6e 20 69 73  6e 27 74 20 69 6e 64 69  |"Icon isn't indi|
00003240  72 65 63 74 65 64 22 0d  02 00 10 3d 24 28 77 69  |rected"....=$(wi|
00003250  6d 70 25 21 32 38 29 0d  02 01 05 3a 0d 02 02 25  |mp%!28)....:...%|
00003260  dd 20 f2 57 69 6d 70 5f  49 63 6f 6e 53 65 6c 65  |. .Wimp_IconSele|
00003270  63 74 28 77 69 6e 64 6f  77 25 2c 69 63 6f 6e 25  |ct(window%,icon%|
00003280  29 0d 02 03 23 77 69 6d  70 25 21 30 3d 77 69 6e  |)...#wimp%!0=win|
00003290  64 6f 77 25 20 3a 20 77  69 6d 70 25 21 34 3d 69  |dow% : wimp%!4=i|
000032a0  63 6f 6e 25 0d 02 04 21  c8 99 20 22 57 69 6d 70  |con%...!.. "Wimp|
000032b0  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
000032c0  77 69 6d 70 25 0d 02 05  22 77 69 6d 70 25 21 38  |wimp%..."wimp%!8|
000032d0  3d 31 3c 3c 32 31 20 3a  20 77 69 6d 70 25 21 31  |=1<<21 : wimp%!1|
000032e0  32 3d 31 3c 3c 32 31 0d  02 06 21 c8 99 20 22 57  |2=1<<21...!.. "W|
000032f0  69 6d 70 5f 53 65 74 49  63 6f 6e 53 74 61 74 65  |imp_SetIconState|
00003300  22 2c 2c 77 69 6d 70 25  0d 02 07 05 e1 0d 02 08  |",,wimp%........|
00003310  05 3a 0d 02 09 2b dd 20  f2 57 69 6d 70 5f 49 63  |.:...+. .Wimp_Ic|
00003320  6f 6e 43 61 72 65 74 28  77 69 6e 64 6f 77 25 2c  |onCaret(window%,|
00003330  69 63 6f 6e 25 2c 63 68  61 72 73 25 29 0d 02 0a  |icon%,chars%)...|
00003340  38 c8 99 20 22 57 69 6d  70 5f 53 65 74 43 61 72  |8.. "Wimp_SetCar|
00003350  65 74 50 6f 73 69 74 69  6f 6e 22 2c 77 69 6e 64  |etPosition",wind|
00003360  6f 77 25 2c 69 63 6f 6e  25 2c 2c 2c 2d 31 2c 63  |ow%,icon%,,,-1,c|
00003370  68 61 72 73 25 0d 02 0b  05 e1 0d 02 0c 04 0d 02  |hars%...........|
00003380  0d 17 f4 20 34 2e 35 20  4d 69 73 63 65 6c 6c 61  |... 4.5 Miscella|
00003390  6e 65 6f 75 73 0d 02 0e  17 f4 20 3d 3d 3d 3d 3d  |neous..... =====|
000033a0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 0d 02 0f 04  |============....|
000033b0  0d 02 10 22 dd 20 f2 57  69 6d 70 5f 41 6c 65 72  |...". .Wimp_Aler|
000033c0  74 28 74 69 74 6c 65 24  2c 6d 65 73 73 61 67 65  |t(title$,message|
000033d0  24 29 0d 02 11 0d 77 69  6d 70 25 21 30 3d 30 0d  |$)....wimp%!0=0.|
000033e0  02 12 1a 24 28 77 69 6d  70 25 2b 34 29 3d 6d 65  |...$(wimp%+4)=me|
000033f0  73 73 61 67 65 24 2b bd  30 0d 02 13 2b c8 99 20  |ssage$+.0...+.. |
00003400  22 57 69 6d 70 5f 52 65  70 6f 72 74 45 72 72 6f  |"Wimp_ReportErro|
00003410  72 22 2c 77 69 6d 70 25  2c 31 3c 3c 34 2c 74 69  |r",wimp%,1<<4,ti|
00003420  74 6c 65 24 0d 02 14 05  e1 0d 02 15 04 0d 02 16  |tle$............|
00003430  23 dd 20 a4 57 69 6d 70  5f 47 65 74 46 69 6c 65  |#. .Wimp_GetFile|
00003440  46 72 6f 6d 50 61 74 68  6e 61 6d 65 28 66 24 29  |FromPathname(f$)|
00003450  0d 02 17 11 c8 8e 20 a7  66 24 2c 22 2e 22 29 20  |...... .f$,".") |
00003460  ca 0d 02 18 10 20 c9 20  30 20 20 20 20 3a 3d 66  |..... . 0    :=f|
00003470  24 0d 02 19 37 20 7f 20  3a 3d a4 57 69 6d 70 5f  |$...7 . :=.Wimp_|
00003480  47 65 74 46 69 6c 65 46  72 6f 6d 50 61 74 68 6e  |GetFileFromPathn|
00003490  61 6d 65 28 c2 66 24 2c  a9 28 66 24 29 2d a7 66  |ame(.f$,.(f$)-.f|
000034a0  24 2c 22 2e 22 29 29 29  0d 02 1a 05 cb 0d 02 1b  |$,".")))........|
000034b0  04 0d 02 1c 26 dd 20 a4  57 69 6d 70 5f 47 65 74  |....&. .Wimp_Get|
000034c0  53 74 72 69 6e 67 41 74  41 64 64 72 65 73 73 28  |StringAtAddress(|
000034d0  61 72 72 61 79 25 29 0d  02 1d 0d ea 73 24 3a 73  |array%).....s$:s|
000034e0  24 3d 22 22 0d 02 1e 3c  c8 95 28 3f 61 72 72 61  |$=""...<..(?arra|
000034f0  79 25 3c 3e 31 33 29 80  28 3f 61 72 72 61 79 25  |y%<>13).(?array%|
00003500  3c 3e 30 29 3a 73 24 2b  3d bd 28 3f 61 72 72 61  |<>0):s$+=.(?arra|
00003510  79 25 29 3a 61 72 72 61  79 25 2b 3d 31 3a ce 3a  |y%):array%+=1:.:|
00003520  0d 02 1f 07 3d 73 24 0d  02 20 04 0d 02 21 1d dd  |....=s$.. ...!..|
00003530  20 a4 46 69 6c 65 5f 45  78 69 73 74 73 28 70 61  | .File_Exists(pa|
00003540  74 68 6e 61 6d 65 24 29  0d 02 22 0c ea 20 66 6f  |thname$)..".. fo|
00003550  75 6e 64 25 0d 02 23 27  c8 99 20 22 58 4f 53 5f  |und%..#'.. "XOS_|
00003560  46 69 6c 65 22 2c 31 33  2c 70 61 74 68 6e 61 6d  |File",13,pathnam|
00003570  65 24 20 b8 20 66 6f 75  6e 64 25 0d 02 24 0c 3d  |e$ . found%..$.=|
00003580  2d 66 6f 75 6e 64 25 0d  02 25 04 0d 02 26 05 3a  |-found%..%...&.:|
00003590  0d 02 27 4e f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..'N. ----------|
000035a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000035d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 02  |--------------..|
000035e0  28 0e f4 20 20 35 2e 20  53 41 56 45 0d 02 29 4e  |(..  5. SAVE..)N|
000035f0  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
00003600  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003630  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 02 2a 1e f4 20  |----------..*.. |
00003640  3e 20 4c 69 62 72 61 72  79 3a 52 65 73 6f 75 72  |> Library:Resour|
00003650  63 65 73 2e 53 61 76 65  0d 02 2b 05 3a 0d 02 2c  |ces.Save..+.:..,|
00003660  1b dd 20 a4 57 69 6d 70  5f 50 6f 6c 6c 53 61 76  |.. .Wimp_PollSav|
00003670  65 28 6d 61 73 6b 25 29  0d 02 2d 14 ea 20 64 72  |e(mask%)..-.. dr|
00003680  61 67 5f 61 5f 73 70 72  69 74 65 25 0d 02 2e 28  |ag_a_sprite%...(|
00003690  20 c8 99 20 22 57 69 6d  70 5f 50 6f 6c 6c 22 2c  | .. "Wimp_Poll",|
000036a0  6d 61 73 6b 25 2c 77 69  6d 70 25 20 b8 20 65 76  |mask%,wimp% . ev|
000036b0  65 6e 74 25 0d 02 2f 10  20 c8 8e 20 65 76 65 6e  |ent%../. .. even|
000036c0  74 25 20 ca 0d 02 30 09  20 20 c9 20 36 0d 02 31  |t% ...0.  . 6..1|
000036d0  1f 20 20 f4 2e 2e 2e 43  6c 69 63 6b 20 6f 6e 20  |.  ....Click on |
000036e0  4d 6f 75 73 65 20 62 75  74 74 6f 6e 0d 02 32 3a  |Mouse button..2:|
000036f0  20 20 20 69 63 6f 6e 25  3d 77 69 6d 70 25 21 31  |   icon%=wimp%!1|
00003700  36 20 3a 20 77 69 6e 64  6f 77 25 3d 77 69 6d 70  |6 : window%=wimp|
00003710  25 21 31 32 20 3a 20 62  75 74 74 6f 6e 25 3d 77  |%!12 : button%=w|
00003720  69 6d 70 25 21 38 0d 02  33 20 20 20 20 e7 20 a4  |imp%!8..3    . .|
00003730  44 65 66 69 6e 65 5f 53  61 76 65 28 77 69 6e 64  |Define_Save(wind|
00003740  6f 77 25 29 20 8c 0d 02  34 14 20 20 20 20 20 20  |ow%) ...4.      |
00003750  c8 8e 20 69 63 6f 6e 25  20 ca 0d 02 35 2b 20 20  |.. icon% ...5+  |
00003760  20 20 20 20 20 c9 20 30  20 3a 20 f4 2e 2e 2e 44  |     . 0 : ....D|
00003770  72 61 67 20 20 20 20 20  20 20 3a 20 65 76 65 6e  |rag       : even|
00003780  74 25 3d 2d 31 0d 02 36  3f 20 20 20 20 20 20 20  |t%=-1..6?       |
00003790  20 e7 20 62 75 74 74 6f  6e 25 20 80 20 26 35 30  | . button% . &50|
000037a0  20 8c 20 f2 57 69 6d 70  5f 50 6f 6c 6c 53 61 76  | . .Wimp_PollSav|
000037b0  65 44 72 61 67 28 77 69  6e 64 6f 77 25 2c 69 63  |eDrag(window%,ic|
000037c0  6f 6e 25 29 0d 02 37 2b  20 20 20 20 20 20 20 c9  |on%)..7+       .|
000037d0  20 32 20 3a 20 f4 2e 2e  2e 4f 4b 20 62 75 74 74  | 2 : ....OK butt|
000037e0  6f 6e 20 20 3a 20 65 76  65 6e 74 25 3d 2d 31 0d  |on  : event%=-1.|
000037f0  02 38 39 20 20 20 20 20  20 20 20 e7 20 62 75 74  |.89        . but|
00003800  74 6f 6e 25 20 80 20 20  20 35 20 8c 20 f2 57 69  |ton% .   5 . .Wi|
00003810  6d 70 5f 50 6f 6c 6c 53  61 76 65 46 69 6c 65 28  |mp_PollSaveFile(|
00003820  77 69 6e 64 6f 77 25 29  0d 02 39 0b 20 20 20 20  |window%)..9.    |
00003830  20 20 cb 0d 02 3a 08 20  20 20 cd 0d 02 3b 08 20  |  ...:.   ...;. |
00003840  20 c9 37 0d 02 3c 19 20  20 20 f4 2e 2e 2e 44 72  | .7..<.   ....Dr|
00003850  61 67 20 68 61 73 20 65  6e 64 65 64 0d 02 3d 2d  |ag has ended..=-|
00003860  20 20 20 c8 99 20 22 4f  53 5f 42 79 74 65 22 2c  |   .. "OS_Byte",|
00003870  31 36 31 2c 32 38 20 b8  20 2c 2c 64 72 61 67 5f  |161,28 . ,,drag_|
00003880  61 5f 73 70 72 69 74 65  25 0d 02 3e 2c 20 20 20  |a_sprite%..>,   |
00003890  64 72 61 67 5f 61 5f 73  70 72 69 74 65 25 3d 28  |drag_a_sprite%=(|
000038a0  64 72 61 67 5f 61 5f 73  70 72 69 74 65 25 20 80  |drag_a_sprite% .|
000038b0  20 32 29 3d 32 0d 02 3f  2f 20 20 20 e7 20 64 72  | 2)=2..?/   . dr|
000038c0  61 67 5f 61 5f 73 70 72  69 74 65 25 20 8c 20 c8  |ag_a_sprite% . .|
000038d0  99 20 22 44 72 61 67 41  53 70 72 69 74 65 5f 53  |. "DragASprite_S|
000038e0  74 6f 70 22 0d 02 40 1e  20 20 20 e7 20 a4 44 65  |top"..@.   . .De|
000038f0  66 69 6e 65 5f 53 61 76  65 28 73 61 76 65 25 29  |fine_Save(save%)|
00003900  20 8c 0d 02 41 13 20 20  20 20 20 20 65 76 65 6e  | ...A.      even|
00003910  74 25 3d 2d 31 0d 02 42  1f 20 20 20 20 20 20 f2  |t%=-1..B.      .|
00003920  57 69 6d 70 50 6f 6c 6c  5f 53 61 76 65 4d 65 73  |WimpPoll_SaveMes|
00003930  73 61 67 65 0d 02 43 08  20 20 20 cd 0d 02 44 08  |sage..C.   ...D.|
00003940  20 20 c9 38 0d 02 45 32  20 20 20 77 69 6e 64 6f  |  .8..E2   windo|
00003950  77 25 3d 77 69 6d 70 25  21 30 3a 69 63 6f 6e 25  |w%=wimp%!0:icon%|
00003960  3d 77 69 6d 70 25 21 34  3a 6b 65 79 25 3d 77 69  |=wimp%!4:key%=wi|
00003970  6d 70 25 21 32 34 0d 02  46 20 20 20 20 e7 20 a4  |mp%!24..F    . .|
00003980  44 65 66 69 6e 65 5f 53  61 76 65 28 77 69 6e 64  |Define_Save(wind|
00003990  6f 77 25 29 20 8c 0d 02  47 13 20 20 20 20 20 20  |ow%) ...G.      |
000039a0  65 76 65 6e 74 25 3d 2d  31 0d 02 48 25 20 20 20  |event%=-1..H%   |
000039b0  20 20 20 f2 57 69 6d 70  5f 50 6f 6c 6c 53 61 76  |   .Wimp_PollSav|
000039c0  65 46 69 6c 65 28 77 69  6e 64 6f 77 25 29 0d 02  |eFile(window%)..|
000039d0  49 08 20 20 20 cd 0d 02  4a 0a 20 20 c9 20 31 32  |I.   ...J.  . 12|
000039e0  0d 02 4b 15 20 20 77 69  6e 64 6f 77 25 3d 77 69  |..K.  window%=wi|
000039f0  6d 70 25 21 30 0d 02 4c  1f 20 20 e7 20 a4 44 65  |mp%!0..L.  . .De|
00003a00  66 69 6e 65 5f 53 61 76  65 28 77 69 6e 64 6f 77  |fine_Save(window|
00003a10  25 29 20 8c 0d 02 4d 26  20 20 20 66 69 6c 65 24  |%) ...M&   file$|
00003a20  3d a4 57 69 6d 70 5f 49  63 6f 6e 54 65 78 74 28  |=.Wimp_IconText(|
00003a30  77 69 6e 64 6f 77 25 2c  31 29 0d 02 4e 37 20 20  |window%,1)..N7  |
00003a40  20 c8 99 20 22 57 69 6d  70 5f 53 65 74 43 61 72  | .. "Wimp_SetCar|
00003a50  65 74 50 6f 73 69 74 69  6f 6e 22 2c 77 69 6e 64  |etPosition",wind|
00003a60  6f 77 25 2c 31 2c 2c 2c  2d 31 2c a9 66 69 6c 65  |ow%,1,,,-1,.file|
00003a70  24 0d 02 4f 07 20 20 cd  0d 02 50 0c 20 20 c9 31  |$..O.  ...P.  .1|
00003a80  37 2c 31 38 0d 02 51 17  20 20 6d 65 73 73 61 67  |7,18..Q.  messag|
00003a90  65 25 3d 77 69 6d 70 25  21 31 36 0d 02 52 15 20  |e%=wimp%!16..R. |
00003aa0  20 20 20 c8 8e 20 6d 65  73 73 61 67 65 25 20 ca  |   .. message% .|
00003ab0  0d 02 53 26 20 20 20 20  20 c9 20 32 20 3a 20 f4  |..S&     . 2 : .|
00003ac0  20 44 61 74 61 20 53 61  76 65 20 61 63 6b 6e 6f  | Data Save ackno|
00003ad0  77 6c 65 64 67 65 0d 02  54 14 20 20 20 20 20 20  |wledge..T.      |
00003ae0  20 65 76 65 6e 74 25 3d  2d 31 0d 02 55 33 20 20  | event%=-1..U3  |
00003af0  20 20 20 20 20 66 69 6c  65 24 3d a4 57 69 6d 70  |     file$=.Wimp|
00003b00  5f 47 65 74 53 74 72 69  6e 67 41 74 41 64 64 72  |_GetStringAtAddr|
00003b10  65 73 73 28 77 69 6d 70  25 2b 34 34 29 0d 02 56  |ess(wimp%+44)..V|
00003b20  24 20 20 20 20 20 20 20  e7 20 66 69 6c 65 24 3c  |$       . file$<|
00003b30  3e 22 3c 57 69 6d 70 24  53 63 72 61 70 3e 22 20  |>"<Wimp$Scrap>" |
00003b40  8c 0d 02 57 2d 20 20 20  20 20 20 20 20 20 f2 57  |...W-         .W|
00003b50  69 6d 70 5f 49 63 6f 6e  50 75 74 54 65 78 74 28  |imp_IconPutText(|
00003b60  73 61 76 65 25 2c 31 2c  66 69 6c 65 24 29 0d 02  |save%,1,file$)..|
00003b70  58 29 20 20 20 20 20 20  20 20 20 f2 45 76 65 6e  |X)         .Even|
00003b80  74 5f 53 61 76 65 46 69  6c 65 28 66 69 6c 65 24  |t_SaveFile(file$|
00003b90  2c 73 61 76 65 25 29 0d  02 59 0c 20 20 20 20 20  |,save%)..Y.     |
00003ba0  20 20 cd 0d 02 5a 26 20  20 20 20 20 c9 20 34 20  |  ...Z&     . 4 |
00003bb0  3a 20 f4 20 44 61 74 61  20 4c 6f 61 64 20 41 63  |: . Data Load Ac|
00003bc0  6b 6e 6f 77 6c 65 64 67  65 0d 02 5b 1a 20 20 20  |knowledge..[.   |
00003bd0  20 20 c9 20 36 20 3a 20  f4 20 52 61 6d 20 46 65  |  . 6 : . Ram Fe|
00003be0  74 63 68 0d 02 5c 09 20  20 20 20 cb 0d 02 5d 06  |tch..\.    ...].|
00003bf0  20 cb 0d 02 5e 0b 3d 65  76 65 6e 74 25 0d 02 5f  | ...^.=event%.._|
00003c00  05 3a 0d 02 60 21 dd 20  f2 57 69 6d 70 5f 50 6f  |.:..`!. .Wimp_Po|
00003c10  6c 6c 53 61 76 65 46 69  6c 65 28 77 69 6e 64 6f  |llSaveFile(windo|
00003c20  77 25 29 0d 02 61 07 ea  78 24 0d 02 62 1c 20 f4  |w%)..a..x$..b. .|
00003c30  2e 2e 2e 52 65 61 64 20  74 65 78 74 20 69 6e 20  |...Read text in |
00003c40  69 63 6f 6e 20 31 0d 02  63 20 20 77 69 6d 70 25  |icon 1..c  wimp%|
00003c50  21 30 3d 77 69 6e 64 6f  77 25 20 3a 20 77 69 6d  |!0=window% : wim|
00003c60  70 25 21 34 3d 31 0d 02  64 22 20 c8 99 20 22 57  |p%!4=1..d" .. "W|
00003c70  69 6d 70 5f 47 65 74 49  63 6f 6e 53 74 61 74 65  |imp_GetIconState|
00003c80  22 2c 2c 77 69 6d 70 25  0d 02 65 38 20 e7 20 28  |",,wimp%..e8 . (|
00003c90  28 77 69 6d 70 25 21 32  34 29 20 80 20 26 31 30  |(wimp%!24) . &10|
00003ca0  30 29 3d 30 20 85 20 31  2c 22 49 63 6f 6e 20 69  |0)=0 . 1,"Icon i|
00003cb0  73 6e 27 74 20 69 6e 64  69 72 65 63 74 65 64 22  |sn't indirected"|
00003cc0  0d 02 66 13 20 78 24 3d  24 28 77 69 6d 70 25 21  |..f. x$=$(wimp%!|
00003cd0  32 38 29 0d 02 67 12 20  c8 8e 20 a7 78 24 2c 22  |28)..g. .. .x$,"|
00003ce0  2e 22 29 20 ca 0d 02 68  0d 20 20 c9 20 30 20 20  |.") ...h.  . 0  |
00003cf0  20 3a 0d 02 69 52 20 20  20 f2 57 69 6d 70 5f 41  | :..iR   .Wimp_A|
00003d00  6c 65 72 74 28 22 21 4c  69 62 72 61 72 79 22 2c  |lert("!Library",|
00003d10  22 54 6f 20 73 61 76 65  20 66 69 6c 65 2c 20 64  |"To save file, d|
00003d20  72 61 67 20 74 68 65 20  69 63 6f 6e 20 74 6f 20  |rag the icon to |
00003d30  61 20 64 69 72 65 63 74  6f 72 79 20 77 69 6e 64  |a directory wind|
00003d40  6f 77 22 29 0d 02 6a 24  20 20 7f 3a 20 f2 45 76  |ow")..j$  .: .Ev|
00003d50  65 6e 74 5f 53 61 76 65  46 69 6c 65 28 78 24 2c  |ent_SaveFile(x$,|
00003d60  77 69 6e 64 6f 77 25 29  0d 02 6b 06 20 cb 0d 02  |window%)..k. ...|
00003d70  6c 1b 20 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  |l. .."Wimp_Creat|
00003d80  65 4d 65 6e 75 22 2c 2d  31 0d 02 6d 05 e1 0d 02  |eMenu",-1..m....|
00003d90  6e 05 3a 0d 02 6f 27 dd  20 f2 57 69 6d 70 5f 50  |n.:..o'. .Wimp_P|
00003da0  6f 6c 6c 53 61 76 65 44  72 61 67 28 77 69 6e 64  |ollSaveDrag(wind|
00003db0  6f 77 25 2c 69 63 6f 6e  25 29 0d 02 70 36 ea 20  |ow%,icon%)..p6. |
00003dc0  78 25 2c 79 25 2c 77 78  25 2c 77 79 25 2c 77 58  |x%,y%,wx%,wy%,wX|
00003dd0  25 2c 77 59 25 2c 78 6f  66 66 25 2c 79 6f 66 66  |%,wY%,xoff%,yoff|
00003de0  25 2c 64 72 61 67 5f 61  5f 73 70 72 69 74 65 25  |%,drag_a_sprite%|
00003df0  0d 02 71 29 ea 20 69 63  78 25 2c 69 63 79 25 2c  |..q). icx%,icy%,|
00003e00  69 63 58 25 2c 69 63 59  25 2c 73 70 72 69 74 65  |icX%,icY%,sprite|
00003e10  5f 70 6f 69 6e 74 65 72  25 0d 02 72 04 0d 02 73  |_pointer%..r...s|
00003e20  35 20 20 21 77 69 6d 70  25 3d 77 69 6e 64 6f 77  |5  !wimp%=window|
00003e30  25 20 3a 20 c8 99 22 57  69 6d 70 5f 47 65 74 57  |% : .."Wimp_GetW|
00003e40  69 6e 64 6f 77 53 74 61  74 65 22 2c 2c 77 69 6d  |indowState",,wim|
00003e50  70 25 0d 02 74 3d 20 20  77 78 25 3d 77 69 6d 70  |p%..t=  wx%=wimp|
00003e60  25 21 34 20 3a 20 77 79  25 3d 77 69 6d 70 25 21  |%!4 : wy%=wimp%!|
00003e70  38 20 3a 20 77 58 25 3d  77 69 6d 70 25 21 31 32  |8 : wX%=wimp%!12|
00003e80  20 3a 20 77 59 25 3d 77  69 6d 70 25 21 31 36 0d  | : wY%=wimp%!16.|
00003e90  02 75 25 20 20 78 6f 66  66 25 3d 77 69 6d 70 25  |.u%  xoff%=wimp%|
00003ea0  21 32 30 20 3a 20 79 6f  66 66 25 3d 77 69 6d 70  |!20 : yoff%=wimp|
00003eb0  25 21 32 34 0d 02 76 21  20 20 78 25 3d 77 78 25  |%!24..v!  x%=wx%|
00003ec0  2d 78 6f 66 66 25 20 3a  20 79 25 3d 77 59 25 2d  |-xoff% : y%=wY%-|
00003ed0  79 6f 66 66 25 0d 02 77  04 0d 02 78 33 20 20 77  |yoff%..w...x3  w|
00003ee0  69 6d 70 25 21 34 3d 69  63 6f 6e 25 20 20 3a 20  |imp%!4=icon%  : |
00003ef0  c8 99 22 57 69 6d 70 5f  47 65 74 49 63 6f 6e 53  |.."Wimp_GetIconS|
00003f00  74 61 74 65 22 2c 2c 77  69 6d 70 25 0d 02 79 22  |tate",,wimp%..y"|
00003f10  20 20 69 63 78 25 3d 77  69 6d 70 25 21 38 20 3a  |  icx%=wimp%!8 :|
00003f20  20 69 63 79 25 3d 77 69  6d 70 25 21 31 32 0d 02  | icy%=wimp%!12..|
00003f30  7a 22 20 20 69 63 58 25  3d 77 69 6d 70 25 21 31  |z"  icX%=wimp%!1|
00003f40  36 3a 20 69 63 59 25 3d  77 69 6d 70 25 21 32 30  |6: icY%=wimp%!20|
00003f50  0d 02 7b 04 0d 02 7c 2a  c8 99 20 22 4f 53 5f 42  |..{...|*.. "OS_B|
00003f60  79 74 65 22 2c 31 36 31  2c 32 38 20 b8 20 2c 2c  |yte",161,28 . ,,|
00003f70  64 72 61 67 5f 61 5f 73  70 72 69 74 65 25 0d 02  |drag_a_sprite%..|
00003f80  7d 29 64 72 61 67 5f 61  5f 73 70 72 69 74 65 25  |})drag_a_sprite%|
00003f90  3d 28 64 72 61 67 5f 61  5f 73 70 72 69 74 65 25  |=(drag_a_sprite%|
00003fa0  20 80 20 32 29 3d 32 0d  02 7e 04 0d 02 7f 17 c8  | . 2)=2..~......|
00003fb0  8e 20 64 72 61 67 5f 61  5f 73 70 72 69 74 65 25  |. drag_a_sprite%|
00003fc0  20 ca 0d 02 80 0a 20 c9  20 b9 20 3a 0d 02 81 1f  | ..... . . :....|
00003fd0  20 20 e7 20 28 28 77 69  6d 70 25 21 32 34 29 20  |  . ((wimp%!24) |
00003fe0  80 20 26 31 30 30 29 3d  30 20 8c 0d 02 82 1a 20  |. &100)=0 ..... |
00003ff0  20 20 20 20 73 70 72 69  74 65 5f 70 6f 69 6e 74  |    sprite_point|
00004000  65 72 25 3d 31 0d 02 83  1c 20 20 20 20 20 73 70  |er%=1....     sp|
00004010  72 69 74 65 24 3d 24 28  77 69 6d 70 25 2b 32 38  |rite$=$(wimp%+28|
00004020  29 0d 02 84 07 20 20 cc  0d 02 85 21 20 20 20 20  |)....  ....!    |
00004030  20 73 70 72 69 74 65 5f  70 6f 69 6e 74 65 72 25  | sprite_pointer%|
00004040  3d 77 69 6d 70 25 21 33  32 0d 02 86 1c 20 20 20  |=wimp%!32....   |
00004050  20 20 73 70 72 69 74 65  24 3d 24 28 77 69 6d 70  |  sprite$=$(wimp|
00004060  25 21 32 38 29 0d 02 87  07 20 20 cd 0d 02 88 29  |%!28)....  ....)|
00004070  20 20 21 77 69 6d 70 25  20 3d 77 78 25 2b 69 63  |  !wimp% =wx%+ic|
00004080  78 25 20 3a 20 77 69 6d  70 25 21 34 3d 77 59 25  |x% : wimp%!4=wY%|
00004090  2b 69 63 79 25 0d 02 89  2a 20 20 77 69 6d 70 25  |+icy%...*  wimp%|
000040a0  21 38 3d 77 78 25 2b 69  63 58 25 20 3a 20 77 69  |!8=wx%+icX% : wi|
000040b0  6d 70 25 21 31 32 3d 77  59 25 2b 69 63 59 25 0d  |mp%!12=wY%+icY%.|
000040c0  02 8a 43 20 20 c8 99 22  44 72 61 67 41 53 70 72  |..C  .."DragASpr|
000040d0  69 74 65 5f 53 74 61 72  74 22 2c 25 31 31 30 30  |ite_Start",%1100|
000040e0  30 31 30 31 2c 73 70 72  69 74 65 5f 70 6f 69 6e  |0101,sprite_poin|
000040f0  74 65 72 25 2c 73 70 72  69 74 65 24 2c 77 69 6d  |ter%,sprite$,wim|
00004100  70 25 0d 02 8b 06 20 7f  0d 02 8c 20 20 20 21 77  |p%.... ....   !w|
00004110  69 6d 70 25 3d 77 69 6e  64 6f 77 25 20 3a 20 77  |imp%=window% : w|
00004120  69 6d 70 25 21 34 3d 35  0d 02 8d 26 20 20 77 69  |imp%!4=5...&  wi|
00004130  6d 70 25 21 38 3d 78 25  2b 69 63 78 25 3a 77 69  |mp%!8=x%+icx%:wi|
00004140  6d 70 25 21 31 32 3d 79  25 2b 69 63 79 25 0d 02  |mp%!12=y%+icy%..|
00004150  8e 27 20 20 77 69 6d 70  25 21 31 36 3d 78 25 2b  |.'  wimp%!16=x%+|
00004160  69 63 58 25 3a 77 69 6d  70 25 21 32 30 3d 79 25  |icX%:wimp%!20=y%|
00004170  2b 69 63 59 25 0d 02 8f  1b 20 20 77 69 6d 70 25  |+icY%....  wimp%|
00004180  21 32 34 3d 30 3a 77 69  6d 70 25 21 32 38 3d 30  |!24=0:wimp%!28=0|
00004190  0d 02 90 2b 20 20 77 69  6d 70 25 21 33 32 3d 26  |...+  wimp%!32=&|
000041a0  37 46 46 46 46 46 46 46  3a 77 69 6d 70 25 21 33  |7FFFFFFF:wimp%!3|
000041b0  36 3d 26 37 46 46 46 46  46 46 46 0d 02 91 1d 20  |6=&7FFFFFFF.... |
000041c0  20 c8 99 22 57 69 6d 70  5f 44 72 61 67 42 6f 78  | .."Wimp_DragBox|
000041d0  22 2c 2c 77 69 6d 70 25  0d 02 92 05 cb 0d 02 93  |",,wimp%........|
000041e0  12 20 73 61 76 65 25 3d  77 69 6e 64 6f 77 25 0d  |. save%=window%.|
000041f0  02 94 05 e1 0d 02 95 05  3a 0d 02 96 1b dd 20 f2  |........:..... .|
00004200  57 69 6d 70 50 6f 6c 6c  5f 53 61 76 65 4d 65 73  |WimpPoll_SaveMes|
00004210  73 61 67 65 0d 02 97 1e  ea 66 69 6c 65 24 2c 77  |sage.....file$,w|
00004220  69 6e 64 6f 77 25 2c 69  63 6f 6e 25 2c 78 25 2c  |indow%,icon%,x%,|
00004230  79 25 0d 02 98 1d 20 c8  99 20 22 57 69 6d 70 5f  |y%.... .. "Wimp_|
00004240  43 72 65 61 74 65 4d 65  6e 75 22 2c 2c 2d 31 0d  |CreateMenu",,-1.|
00004250  02 99 23 20 c8 99 22 57  69 6d 70 5f 47 65 74 50  |..# .."Wimp_GetP|
00004260  6f 69 6e 74 65 72 49 6e  66 6f 22 2c 2c 77 69 6d  |ointerInfo",,wim|
00004270  70 25 0d 02 9a 3a 20 77  69 6e 64 6f 77 25 3d 77  |p%...: window%=w|
00004280  69 6d 70 25 21 31 32 3a  69 63 6f 6e 25 3d 77 69  |imp%!12:icon%=wi|
00004290  6d 70 25 21 31 36 3a 78  25 3d 77 69 6d 70 25 21  |mp%!16:x%=wimp%!|
000042a0  30 3a 79 25 3d 77 69 6d  70 25 21 34 0d 02 9b 14  |0:y%=wimp%!4....|
000042b0  20 e7 20 77 69 6e 64 6f  77 25 3c 30 20 8c 20 e1  | . window%<0 . .|
000042c0  0d 02 9c 1e 20 77 69 6d  70 25 21 30 3d 73 61 76  |.... wimp%!0=sav|
000042d0  65 25 20 3a 20 77 69 6d  70 25 21 34 3d 31 0d 02  |e% : wimp%!4=1..|
000042e0  9d 22 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 49  |." .. "Wimp_GetI|
000042f0  63 6f 6e 53 74 61 74 65  22 2c 2c 77 69 6d 70 25  |conState",,wimp%|
00004300  0d 02 9e 38 20 e7 20 28  28 77 69 6d 70 25 21 32  |...8 . ((wimp%!2|
00004310  34 29 20 80 20 26 31 30  30 29 3d 30 20 85 20 31  |4) . &100)=0 . 1|
00004320  2c 22 49 63 6f 6e 20 69  73 6e 27 74 20 69 6e 64  |,"Icon isn't ind|
00004330  69 72 65 63 74 65 64 22  0d 02 9f 16 20 66 69 6c  |irected".... fil|
00004340  65 24 3d 24 28 77 69 6d  70 25 21 32 38 29 0d 02  |e$=$(wimp%!28)..|
00004350  a0 2b 20 66 69 6c 65 24  3d a4 57 69 6d 70 5f 47  |.+ file$=.Wimp_G|
00004360  65 74 46 69 6c 65 46 72  6f 6d 50 61 74 68 6e 61  |etFileFromPathna|
00004370  6d 65 28 66 69 6c 65 24  29 0d 02 a1 15 20 77 69  |me(file$).... wi|
00004380  6d 70 25 21 32 30 3d 77  69 6e 64 6f 77 25 0d 02  |mp%!20=window%..|
00004390  a2 13 20 77 69 6d 70 25  21 32 34 3d 69 63 6f 6e  |.. wimp%!24=icon|
000043a0  25 0d 02 a3 1c 20 77 69  6d 70 25 21 32 38 3d 78  |%.... wimp%!28=x|
000043b0  25 3a 77 69 6d 70 25 21  33 32 3d 79 25 0d 02 a4  |%:wimp%!32=y%...|
000043c0  11 20 77 69 6d 70 25 21  33 36 3d 32 35 36 0d 02  |. wimp%!36=256..|
000043d0  a5 0f 20 77 69 6d 70 25  21 30 3d 36 34 0d 02 a6  |.. wimp%!0=64...|
000043e0  0f 20 77 69 6d 70 25 21  31 32 3d 30 0d 02 a7 0f  |. wimp%!12=0....|
000043f0  20 77 69 6d 70 25 21 31  36 3d 31 0d 02 a8 0b 20  | wimp%!16=1.... |
00004400  c8 8e 20 b9 20 ca 0d 02  a9 2b 20 20 c9 20 a4 44  |.. . ....+  . .D|
00004410  65 66 69 6e 65 5f 53 61  76 65 28 73 61 76 65 25  |efine_Save(save%|
00004420  29 20 3a 20 77 69 6d 70  25 21 34 30 3d 26 46 46  |) : wimp%!40=&FF|
00004430  46 0d 02 aa 26 20 20 7f  20 3a 20 77 69 6d 70 25  |F...&  . : wimp%|
00004440  21 34 30 3d a4 44 65 66  69 6e 65 5f 53 61 76 65  |!40=.Define_Save|
00004450  28 73 61 76 65 25 29 0d  02 ab 06 20 cb 0d 02 ac  |(save%).... ....|
00004460  19 20 24 28 77 69 6d 70  25 2b 34 34 29 3d 66 69  |. $(wimp%+44)=fi|
00004470  6c 65 24 2b bd 30 0d 02  ad 34 20 c8 99 22 57 69  |le$+.0...4 .."Wi|
00004480  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
00004490  31 37 2c 77 69 6d 70 25  2c 77 69 6d 70 25 21 32  |17,wimp%,wimp%!2|
000044a0  30 2c 77 69 6d 70 25 21  32 34 0d 02 ae 05 e1 0d  |0,wimp%!24......|
000044b0  02 af 05 3a 0d 02 b0 4d  f4 20 2d 2d 2d 2d 2d 2d  |...:...M. ------|
000044c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004500  2d 0d 02 b1 18 f4 20 36  2e 20 45 72 72 6f 72 20  |-..... 6. Error |
00004510  70 72 6f 63 65 64 75 72  65 0d 02 b2 4d f4 20 2d  |procedure...M. -|
00004520  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004560  2d 2d 2d 2d 2d 2d 0d 02  b3 04 0d 02 b4 0c dd 20  |------......... |
00004570  f2 45 72 72 6f 72 0d 02  b5 09 ee 20 85 20 87 0d  |.Error..... . ..|
00004580  02 b6 23 2a 53 65 74 20  42 61 73 69 63 24 46 69  |..#*Set Basic$Fi|
00004590  6c 65 20 3c 4c 69 62 6d  61 6b 65 72 24 46 69 6c  |le <Libmaker$Fil|
000045a0  65 3e 0d 02 b7 16 d7 20  22 45 64 69 74 3a 54 68  |e>..... "Edit:Th|
000045b0  72 6f 77 62 61 63 6b 22  0d 02 b8 05 e0 0d 02 b9  |rowback"........|
000045c0  05 e1 0d 02 ba 05 3a 0d  ff                       |......:..|
000045c9