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