Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199204.adf » April92 » !AWApr92/Goodies/DiscMan/!DiscMan/!RunImage

!AWApr92/Goodies/DiscMan/!DiscMan/!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 » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199204.adf » April92
Filename: !AWApr92/Goodies/DiscMan/!DiscMan/!RunImage
Read OK:
File size: 415D bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM >$.!DiscMan.!RunImage
   20 REM
   30 REM DiscManager Version 1.02 1991 J.A.Beaven
   35 REM (c) Archimedes World April 1992
   40 REM
   50 REM This application allows the user to produce a simple 'Database'
   60 REM of their disc collection allowing searches to determine which
   70 REM disc has which programs on it.To use this program the discs
   80 REM should idealy be numbered.
   90 REM
  100 REM J.A.B 26th June 1991
  110 :
  120 PROCActivate_Task("Disc Manager")
  130 PROCInit_Sprite_Area("<DiscMan$Dir>.Sprites")
  140 PROCInit_New_Vars
  150 PROCcolours
  160 PROCBar_Icon("!DiscMan","RIGHT")
  170 PROCLoadTemplates
  180 PROCCodeWimpMenus
  190 PROCSetPageIcons(1)
  200 Quit=FALSE
  210 :
  220 ON ERROR PROCWimp_Error(REPORT$+" at "+STR$(ERL))
  230 REPEAT
  240 PROCAction(FNPoll(0))
  250 UNTIL Quit=TRUE
  260 SYS "Wimp_CloseDown"
  270 END
  280 :
  290 DEF FNPoll(M%)
  300 LOCAL code%
  310 block!0=M%
  320 SYS "Wimp_Poll",0,block TO code%
  330 =code%
  340 :
  350 DEFPROCAction(Event%)
  360 CASE Event% OF
  370 WHEN 0 :
  380 WHEN 1 :PROCRedrawWindow(block!0)
  390 WHEN 2 :PROCOpenWindowB(block!0)
  400 WHEN 3 :PROCCloseWindow(block!0,TRUE)
  410 WHEN 4 :
  420 WHEN 5 :
  430 WHEN 6 :PROCOpenMenus:PROCWindowClick
  440 WHEN 7 :PROCsave
  450 WHEN 8 :PROCKeyPress(block)
  460 WHEN 9 :PROCMenuSelect(block)
  470 WHEN 17,18 :PROCRecieveMessage(block)
  480 ENDCASE
  490 ENDPROC
  500 :
  510 DEFPROCOpenWindow(Handle%)
  520 PROCCloseWindow(Handle%,FALSE)
  530 block!0 = Handle%
  540 SYS "Wimp_GetWindowState",0,block
  550 SYS "Wimp_OpenWindow",0,block
  560 ENDPROC
  570 :
  580 DEFPROCOpenWindowB(Handle%)
  590 block!0 = Handle%
  600 SYS "Wimp_OpenWindow",0,block
  610 ENDPROC
  620 :
  630 DEFPROCRedrawWindow(Handle%)
  640 LOCAL More%,XOrigin%,YOrigin%
  650 block!0=Handle%
  660 SYS "Wimp_RedrawWindow",0,block TO More%
  670 PROCFindLWAOrigin(block+4,XOrigin%,YOrigin%)
  680 WHILE More%
  690 PROCFindsWindow(XOrigin%,YOrigin%)
  700 SYS "Wimp_GetRectangle",0,block TO More%
  710 ENDWHILE
  720 ENDPROC
  730 :
  740 DEFPROCCloseWindow(handle%,FLAG)
  750 IF block!0=extra% AND FLAG=TRUE THEN ExtraOpen=-1
  760 block!0=handle%
  770 SYS "Wimp_CloseWindow",0,block
  780 ENDPROC
  790 :
  800 DEFPROCFindLWAOrigin(b,RETURN x%,RETURN y%)
  810 x%=b!0-b!16
  820 y%=b!12-b!20
  830 ENDPROC
  840 :
  850 DEF PROCWindowClick
  860 b%=block!8
  870 h%=block!12
  880 i%=block!16
  890 IF h%=-2 AND b%=4 THEN PROCOpenWindow(controll%):PROCOpenWindow(index%)
  900 IF h%=file THEN
  910 IF i%=0 THEN
  920 !block=file
  930 SYS "Wimp_GetWindowState",,block
  940 IX%=block!4-block!20
  950 IY%=block!16-block!24
  960 block!4=0
  970 SYS "Wimp_GetIconState",,block
  980 !block=file
  990 block!4=5
 1000 block!8=block!8+IX%
 1010 block!12=block!12+IY%
 1020 block!16=block!16+IX%
 1030 block!20=block!20+IY%
 1040 block!24=0:block!28=0
 1050 block!32=&7FFFFFFF:block!36=&7FFFFFFF
 1060 SYS "Wimp_DragBox",,block
 1070 ENDIF
 1080 ENDIF
 1090 IF h%=file AND i%=2 THEN PROCOKSave
 1100 IF h%=controll% THEN PROCControllPannel(block)
 1110 IF h%=index% THEN PROCClickOnIndex(block)
 1120 IF h%=extra% AND i%=5 AND ExtraOpen<>-1 THEN PROCCloseExtra(ExtraOpen)
 1130 IF h%=extra% AND block!16=6 AND ExtraOpen<>-1 THEN PROCExamineDisc(ExtraOpen)
 1140 IF h%=search% THEN PROCSearchButtons(block)
 1150 IF h%=print% AND i%=3 THEN PROCPrintIndex
 1160 ENDPROC
 1170 :
 1180 DEF PROCCodeWimpMenus
 1190 DIM BlockMainMenu 1*(28+(10*24))
 1200 DIM BlockIconMenu 1*(28+(10*24))
 1210 UsingMenu=-1
 1220 REM Header For Main Menu
 1230 $BlockMainMenu=LEFT$("DiscManager",11)
 1240 BlockMainMenu?12=Black
 1250 BlockMainMenu?13=2
 1260 BlockMainMenu?14=Black
 1270 BlockMainMenu?15=White
 1280 BlockMainMenu!16=200
 1290 BlockMainMenu!20=40
 1300 BlockMainMenu!24=10
 1310 REM Data For Main Menu
 1320 ItemPos=28
 1330 PROCMenuItem("Info",BlockMainMenu+ItemPos,info%,FALSE)
 1340 ItemPos+=24
 1350 PROCMenuItem("Search",BlockMainMenu+ItemPos,search%,FALSE)
 1360 ItemPos+=24
 1370 PROCMenuItem("Examine",BlockMainMenu+ItemPos,-1,FALSE)
 1380 ItemPos+=24
 1390 PROCMenuItem("Clear Rec",BlockMainMenu+ItemPos,-1,FALSE)
 1400 ItemPos+=24
 1410 PROCMenuItem("Goto",BlockMainMenu+ItemPos,goto%,FALSE)
 1420 ItemPos+=24
 1430 PROCMenuItem("Save",BlockMainMenu+ItemPos,file,FALSE)
 1440 ItemPos+=24
 1450 PROCMenuItem("Print",BlockMainMenu+ItemPos,print%,FALSE)
 1460 ItemPos+=24
 1470 PROCMenuItem("Quit",BlockMainMenu+ItemPos,-1,TRUE)
 1480 REM Header For Icon Menu
 1490 $BlockIconMenu=LEFT$("DiscManager",11)
 1500 BlockIconMenu?12=Black
 1510 BlockIconMenu?13=2
 1520 BlockIconMenu?14=Black
 1530 BlockIconMenu?15=White
 1540 BlockIconMenu!16=150
 1550 BlockIconMenu!20=40
 1560 BlockIconMenu!24=10
 1570 REM Data For Icon Menu
 1580 ItemPos=28
 1590 PROCMenuItem("Info",BlockIconMenu+ItemPos,info%,FALSE)
 1600 ItemPos+=24
 1610 PROCMenuItem("Quit",BlockIconMenu+ItemPos,-1,TRUE)
 1620 ENDPROC
 1630 :
 1640 DEFPROCMenuItem(Data$,Point,Handle%,LAST)
 1650 IF LAST=FALSE THEN Point!0=&0
 1660 IF LAST=TRUE THEN Point!0=&80
 1670 Point!4=Handle%
 1680 Point!8=&010021 OR 7<<24
 1690 $(Point+12)=LEFT$(Data$,11)
 1700 ENDPROC
 1710 :
 1720 DEFPROCBringUpMenu(MenuName,MouseX,MouseY)
 1730 SYS "Wimp_CreateMenu",0,MenuName,MouseX,MouseY
 1740 UsingMenu=MenuName
 1750 ENDPROC
 1760 :
 1770 DEF PROCOpenMenus
 1780 MenuHandle=block!12
 1790 MenuIcon=block!16
 1800 Handle%=block!12
 1810 Button%=((block!8)AND7)AND NOT((block!20)AND7)
 1820 MouseX=block!0
 1830 MouseY=block!4
 1840 IF Button%=2 AND Handle%<>-2 THEN PROCBringUpMenu(BlockMainMenu,MouseX,MouseY)
 1850 IF Button%=2 AND Handle%=-2 THEN PROCBringUpMenu(BlockIconMenu,MouseX,MouseY)
 1860 ENDPROC
 1870 :
 1880 DEFPROCMenuSelect(block)
 1890 CASE UsingMenu OF
 1900 WHEN BlockMainMenu : PROCMenuSelect_Main(block)
 1910 WHEN BlockIconMenu : PROCMenuSelect_Icon(block)
 1920 ENDCASE
 1930 UsingMenu=-1
 1940 ENDPROC
 1950 :
 1960 DEFPROCMenuSelect_Main(block)
 1970 Root=block!0
 1980 Sub1=block!4
 1990 Sub2=block!8
 2000 Sub3=block!12
 2010 Sub4=block!16
 2020 IF Root=1 THEN PROCOpenWindow(search%)
 2030 IF Root=2 THEN PROCExamineDisc(ExtraOpen)
 2040 IF Root=3 THEN PROCClearRecord
 2050 IF Root=7 THEN Quit=TRUE
 2060 ENDPROC
 2070 :
 2080 DEFPROCMenuSelect_Icon(block)
 2090 Root=block!0
 2100 Sub1=block!4
 2110 Sub2=block!8
 2120 Sub3=block!12
 2130 Sub4=block!16
 2140 IF Root=1 THEN Quit=TRUE
 2150 ENDPROC
 2160 :
 2170 DEFPROCcolours
 2180 Black=7
 2190 Red=11
 2200 Green=10
 2210 Yellow=9
 2220 Blue=8
 2230 Magenta=5
 2240 Cyan=6
 2250 White=0
 2260 ENDPROC
 2270 :
 2280 DEFPROCRecieveMessage(b)
 2290 CASE b!16 OF
 2300 WHEN 0:Quit=TRUE
 2310 WHEN 1:
 2320 WHEN 2:PROCDataSave(b)
 2330 WHEN 3:PROCDataLoad(b)
 2340 ENDCASE
 2350 ENDPROC
 2360 :
 2370 DEF PROCDataLoad(b)
 2380 IF b!12=0 THEN
 2390 path$=FNFindName(b+44)
 2400 PROCDo_The_Load(path$)
 2410 b!12=b!8:b!16=4:!b=64
 2420 ENDIF
 2430 ENDPROC
 2440 :
 2450 DEF FNFindName(ptr)
 2460 p$=""
 2470 WHILE ?ptr<>0
 2480 p$+=CHR$?ptr:ptr+=1
 2490 ENDWHILE
 2500 =p$
 2510 :
 2520 DEF PROCOKSave
 2530 Name$=FNGet_Icon_State(file,1)
 2540 IF INSTR(Name$,".") THEN
 2550 PROCDo_The_Save(Name$)
 2560 ELSE
 2570 $block="    To save, drag the icon to a directory viewer"
 2580 SYS "Wimp_ReportError",block,1,"Disc Manager"
 2590 ENDIF
 2600 ENDPROC
 2610 :
 2620 DEF PROCDataSave(b)
 2630 PROCDo_The_Save(FNGetName(b+44))
 2640 PROCSet_Icon_Text(file,1,FNGetName(b+44))
 2650 b!12=b!8:b!16=3:!b=64
 2660 SYS "Wimp_SendMessage",17,b,b!20,b!24
 2670 ENDPROC
 2680 :
 2690 DEF FNGetName(ptr)
 2700 f$=""
 2710 WHILE ?ptr<>0 AND ?ptr<>13
 2720 f$=f$+CHR$?ptr:ptr+=1
 2730 ENDWHILE
 2740 =f$
 2750 :
 2760 DEF PROCsave
 2770 Name$=FNGet_Icon_State(file,1)
 2780 SYS "Wimp_GetPointerInfo",,block
 2790 block!20=64:block!32=0
 2800 block!36=1:block!40=block!12
 2810 block!44=block!16
 2820 block!48=!block
 2830 block!52=block!4
 2840 block!56=100*40
 2850 block!60=&FEE
 2860 $(block+64)=FNFindLastPathName(Name$)
 2870 SYS "Wimp_SendMessage",17,block+20,block!12,block!16
 2880 ENDPROC
 2890 :
 2900 DEF FNFindLastPathName(path$)
 2910 WHILE INSTR(path$,".")
 2920 path$=MID$(path$,INSTR(path$,".")+1)
 2930 ENDWHILE
 2940 =path$
 2950 :
 2960 DEFPROCDo_The_Save(NNAME$)
 2970 PROCWriteIconsToIndex(Page)
 2980 X=OPENOUT(NNAME$)
 2990 PRINT #X,MaxPages
 3000 FOR Save=1 TO (MaxPages*10)
 3010 PRINT #X,Text$(Save)
 3020 NEXT
 3030 FOR Save=1 TO (MaxPages*10*5)
 3040 PRINT #X,Notes$(Save)
 3050 NEXT
 3060 CLOSE #X
 3070 OSCLI "SETTYPE "+NNAME$+" Index"
 3080 ENDPROC
 3090 :
 3100 DEFPROCDo_The_Load(NNAME$)
 3110 X=OPENIN(NNAME$)
 3120 INPUT #X,MaxPages
 3130 FOR Save=1 TO (MaxPages*10)
 3140 INPUT #X,Text$(Save)
 3150 NEXT
 3160 FOR Save=1 TO (MaxPages*10*5)
 3170 INPUT #X,Notes$(Save)
 3180 NEXT
 3190 Page=1
 3200 PROCSetPageIcons(1)
 3210 CLOSE #X
 3220 ENDPROC
 3230 :
 3240 DEF PROCLoadTemplates
 3250 DIM bblock &800,template% &800
 3260 SYS "Wimp_OpenTemplate",,"<DiscMan$Dir>.Templates"
 3270 LOCAL c%,end% : end%=template%+&800
 3280 :
 3290 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Info",0 TO ,,template%,,,,c%
 3300 SYS "Wimp_CreateWindow",,bblock TO c%
 3310 info%=c%
 3320 :
 3330 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Index",0 TO ,,template%,,,,c%
 3340 SYS "Wimp_CreateWindow",,bblock TO c%
 3350 index%=c%
 3360 :
 3370 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Controll",0 TO ,,template%,,,,c%
 3380 bblock!64=SpritePointer
 3390 SYS "Wimp_CreateWindow",,bblock TO c%
 3400 controll%=c%
 3410 :
 3420 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Extra",0 TO ,,template%,,,,c%
 3430 SYS "Wimp_CreateWindow",,bblock TO c%
 3440 extra%=c%
 3450 :
 3460 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Search",0 TO ,,template%,,,,c%
 3470 SYS "Wimp_CreateWindow",,bblock TO c%
 3480 search%=c%
 3490 :
 3500 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Finds",0 TO ,,template%,,,,c%
 3510 SYS "Wimp_CreateWindow",,bblock TO c%
 3520 finds%=c%
 3530 :
 3540 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Save",0 TO ,,template%,,,,c%
 3550 SYS "Wimp_CreateWindow",,bblock TO c%
 3560 file=c%
 3570 :
 3580 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Goto",0 TO ,,template%,,,,c%
 3590 SYS "Wimp_CreateWindow",,bblock TO c%
 3600 goto%=c%
 3610 :
 3620 SYS "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Print",0 TO ,,template%,,,,c%
 3630 SYS "Wimp_CreateWindow",,bblock TO c%
 3640 print%=c%
 3650 SYS "Wimp_CloseTemplate"
 3660 ENDPROC
 3670 :
 3680 DEF PROCWimp_Error(message$)
 3690 !block=ERR:$(block+4)=message$
 3700 SYS "Wimp_ReportError",block,1,"Disc Manager"
 3710 ENDPROC
 3720 :
 3730 DEFPROCActivate_Task(Name$)
 3740 DIM SetSystemTaskID 4
 3750 $SetSystemTaskID="TASK"
 3760 SYS "Wimp_Initialise",200,!SetSystemTaskID,Name$
 3770 ENDPROC
 3780 :
 3790 DEFPROCInit_New_Vars
 3800 DiscLimit=300
 3810 PageLimit=DiscLimit/10
 3820 DIM block &300
 3830 DIM Text$(DiscLimit)
 3840 DIM Notes$(DiscLimit*5)
 3850 DIM SearchFinds(DiscLimit)
 3860 DIM Buffer% 1000
 3870 DIM RootDir$(77)
 3880 Search_Extra=TRUE
 3890 Search_Title=FALSE
 3900 Page=1
 3910 MaxPages=1
 3920 ExtraOpen=-1
 3930 Finds=0
 3940 ENDPROC
 3950 :
 3960 DEFPROCBar_Icon(Application$,side$)
 3970 LOCAL p%
 3980 IF side$="LEFT" THEN num=-2
 3990 IF side$="RIGHT" THEN num=-1
 4000 block!0=num
 4010 block!4=0:block!8=0
 4020 block!12=68:block!16=68
 4030 block!20=&3012 OR White<<28 OR Black<<24
 4040 $(block+24)=LEFT$(Application$,11)
 4050 SYS "Wimp_CreateIcon",0,block
 4060 ENDPROC
 4070 :
 4080 DEF FNGet_Icon_State(Handle%,Icon%)
 4090 block!0=Handle%
 4100 block!4=Icon%
 4110 SYS "Wimp_GetIconState",0,block
 4120 =$(block!28)
 4130 :
 4140 DEF PROCSet_Icon_Text(Handle%,Icon%,Text$)
 4150 block!0=Handle%
 4160 block!4=Icon%
 4170 SYS "Wimp_GetIconState",0,block
 4180 $(block!28)=Text$
 4190 block!8=0
 4200 block!12=0
 4210 SYS "Wimp_SetIconState",0,block
 4220 ENDPROC
 4230 :
 4240 DEFPROCSetPageIcons(Current)
 4250 RealNumber=(Current*10)-9
 4260 FOR IconPointer=10 TO 19
 4270 PROCSet_Icon_Text(index%,IconPointer,STR$(RealNumber))
 4280 RealNumber+=1
 4290 NEXT
 4300 PROCShowIndex(Current)
 4310 ENDPROC
 4320 :
 4330 DEFPROCControllPannel(block)
 4340 CASE block!16 OF
 4350 WHEN 0 : PROCWriteIconsToIndex(Page):Page=1:PROCSetPageIcons(Page)
 4360 WHEN 1 : IF Page>1 THEN PROCWriteIconsToIndex(Page):Page=Page-1:PROCSetPageIcons(Page)
 4370 WHEN 2 : IFPage<PageLimit THEN PROCWriteIconsToIndex(Page):Page=Page+1:PROCSetPageIcons(Page):IF MaxPages<Page THEN MaxPages=Page
 4380 WHEN 3 : PROCWriteIconsToIndex(Page):Page=MaxPages:PROCSetPageIcons(Page)
 4390 ENDCASE
 4400 ENDPROC
 4410 :
 4420 DEFPROCClickOnIndex(block)
 4430 IF block!16<10 OR block!16>19 THEN :ENDPROC
 4440 ExtraOpen=VAL(FNGet_Icon_State(index%,block!16))
 4450 PROCOpenExtra(ExtraOpen)
 4460 ENDPROC
 4470 :
 4480 DEFPROCOpenExtra(Num)
 4490 Icon_Handle=0
 4500 FOR L=(Num*5)-4 TO (Num*5)
 4510 PROCSet_Icon_Text(extra%,Icon_Handle,Notes$(L))
 4520 Icon_Handle+=1
 4530 NEXT
 4540 PROCOpenWindow(extra%)
 4550 PROCSet_Icon_Text(extra%,8,STR$(Num))
 4560 ENDPROC
 4570 :
 4580 DEFPROCCloseExtra(Num)
 4590 Icon_Handle=0
 4600 FOR L=(Num*5)-4 TO (Num*5)
 4610 Notes$(L)=FNGet_Icon_State(extra%,Icon_Handle)
 4620 Icon_Handle+=1
 4630 NEXT
 4640 PROCCloseWindow(extra%,TRUE)
 4650 ExtraOpen=-1
 4660 ENDPROC
 4670 :
 4680 DEFPROCWriteIconsToIndex(Current)
 4690 RealNumber=(Current*10)-9
 4700 FOR IconPointer=0 TO 9
 4710 Text$(RealNumber)=FNGet_Icon_State(index%,IconPointer)
 4720 RealNumber+=1
 4730 NEXT
 4740 ENDPROC
 4750 :
 4760 DEFPROCShowIndex(Current)
 4770 RealNumber=(Current*10)-9
 4780 FOR IconPointer=0 TO 9
 4790 PROCSet_Icon_Text(index%,IconPointer,Text$(RealNumber))
 4800 RealNumber+=1
 4810 NEXT
 4820 ENDPROC
 4830 :
 4840 DEFPROCSearchButtons(block)
 4850 IF block!8=1 THEN ENDPROC
 4860 IF block!16=1 AND Search_Extra=FALSE THEN
 4870 Search_Extra=FNToggle(Search_Extra)
 4880 Search_Title=FNToggle(Search_Title)
 4890 ENDIF
 4900 IF block!16=2 AND Search_Title=FALSE THEN
 4910 Search_Extra=FNToggle(Search_Extra)
 4920 Search_Title=FNToggle(Search_Title)
 4930 ENDIF
 4940 ENDPROC
 4950 :
 4960 DEFFNToggle(a)
 4970 R=TRUE
 4980 IF a=TRUE THEN R=FALSE
 4990 =R
 5000 :
 5010 DEFPROCSearch(Word$)
 5020 IF Search_Title=TRUE THEN PROCSearch_Title(Word$)
 5030 IF Search_Extra=TRUE THEN PROCSearch_Extra(Word$)
 5040 ENDIF
 5050 ENDPROC
 5060 :
 5070 DEFPROCSearch_Extra(Word$)
 5080 Finds=0
 5090 FOR Disc=1 TO (10*MaxPages)
 5100 Extra=(Disc*5)-4
 5110 Halt=FALSE
 5120 REPEAT
 5130 Search=INSTR(Notes$(Extra),Word$)
 5140 Extra+=1
 5150 IF Search<>0 THEN
 5160 Halt=TRUE
 5170 Finds+=1
 5180 SearchFinds(Finds)=Disc
 5190 ENDIF
 5200 IF Extra>(Disc*5) THEN Halt=TRUE
 5210 UNTIL Halt=TRUE
 5220 NEXT
 5230 Header$=Word$+" [Scan Over Extra Block]"
 5240 PROCSet_Icon_Text(finds%,0,Header$)
 5250 PROCOpenWindow(finds%)
 5260 PROCRedrawWindow(finds%)
 5270 ENDPROC
 5280 :
 5290 DEFPROCSearch_Title(Word$)
 5300 Finds=0
 5310 FOR Disc=1 TO (10*MaxPages)
 5320 Search=INSTR(Text$(Disc),Word$)
 5330 IF Search <>0 THEN
 5340 Finds+=1
 5350 SearchFinds(Finds)=Disc
 5360 ENDIF
 5370 NEXT
 5380 Header$=Word$+" [Scan Over Title]"
 5390 PROCSet_Icon_Text(finds%,0,Header$)
 5400 PROCOpenWindow(finds%)
 5410 PROCRedrawWindow(finds%)
 5420 ENDPROC
 5430 :
 5440 DEFPROCFindsWindow(XOrigin%,YOrigin%)
 5450 IF Finds=0 THEN MOVE XOrigin%+30,YOrigin%-100:PRINT"String Not Found In Index !":ENDPROC
 5460 Drop=100
 5470 FOR Pointer=1 TO Finds
 5480 MOVE XOrigin%+30,YOrigin%-Drop
 5490 IF SearchFinds(Pointer)<>0 THEN PRINT "Found On Disc : ";STR$(SearchFinds(Pointer))
 5500 Drop+=40
 5510 NEXT
 5520 ENDPROC
 5530 :
 5540 DEFFNGet_Catolog
 5550 LOCAL NumberOfFiles,Pointer,Index
 5560 SYS "OS_GBPB",9,"ADFS:$",Buffer%,255,0,1000,"*" TO ,,,NumberOfFiles
 5570 File$=""
 5580 Pointer=0
 5590 FOR Index=1 TO NumberOfFiles
 5600 Finish=FALSE
 5610 REPEAT
 5620 Char=Buffer%?Pointer
 5630 IF Char<>0 THEN File$+=CHR$(Char)
 5640 Pointer+=1
 5650 IF Char=0 THEN Finish=TRUE
 5660 UNTIL Finish=TRUE
 5670 RootDir$(Index)=File$
 5680 File$=""
 5690 NEXT
 5700 =NumberOfFiles
 5710 :
 5720 DEFPROCExamineDisc(ExtraOpen)
 5730 IF ExtraOpen=-1 THEN VDU7:ENDPROC
 5740 OSCLI("ADFS")
 5750 OSCLI("MOUNT")
 5760 FOR Clear=0 TO 4
 5770 PROCSet_Icon_Text(extra%,Clear,"")
 5780 NEXT
 5790 NumFiles=FNGet_Catolog
 5800 Title$=FNTitle
 5810 Icon=0
 5820 Total=0
 5830 Build$=""
 5840 IF NumFiles>0 THEN
 5850 FOR Pointer=1 TO NumFiles
 5860 Set=FALSE
 5870 Total=LEN(Build$)+LEN(RootDir$(Pointer))
 5880 IF Total>70 THEN
 5890 IF Icon<5 THEN PROCSet_Icon_Text(extra%,Icon,Build$)
 5900 Icon+=1
 5910 Build$=""
 5920 Total=0
 5930 Set=TRUE
 5940 ENDIF
 5950 IF Total<70 THEN
 5960 IF Pointer<>1 THEN Build$+=","
 5970 Build$+=RootDir$(Pointer)
 5980 ENDIF
 5990 NEXT
 6000 IF Set=FALSE AND Icon<5 THEN PROCSet_Icon_Text(extra%,Icon,Build$)
 6010 ENDIF
 6020 PROCSet_Icon_Text(index%,FNWhichIcon(ExtraOpen),Title$)
 6030 ENDPROC
 6040 :
 6050 DEFPROCGoto
 6060 OldPage=Page
 6070 Disc=VAL(FNGet_Icon_State(goto%,1))
 6080 IF Disc=0 THEN PROCWimp_Error("Disc Does Not Exist"):ENDPROC
 6090 PROCWriteIconsToIndex(Page)
 6100 T=Disc DIV 10
 6110 M=T*10
 6120 S=Disc-M
 6130 IF S=0 THEN Page=T ELSE Page=T+1
 6140 IF Page>PageLimit THEN PROCWimp_Error("Only "+STR$(DiscLimit)+" Discs Available"):Page=OldPage:ENDPROC
 6150 IF MaxPages<Page THEN MaxPages=Page
 6160 PROCSetPageIcons(Page)
 6170 ENDPROC
 6180 :
 6190 DEFPROCKeyPress(block)
 6200 CASE block!0 OF
 6210 WHEN search% : PROCSearch(FNGet_Icon_State(search%,0))
 6220 WHEN goto%   : PROCGoto
 6230 WHEN index%  : PROCIcon_Move(!block,block!4,block!24)
 6240 WHEN print%  : PROCIcon_Move(!block,block!4,block!24)
 6250 ENDCASE
 6260 ENDPROC
 6270 :
 6280 DEFPROCPrintIndex
 6290 Start=VAL(FNGet_Icon_State(print%,0))
 6300 Finish=VAL(FNGet_Icon_State(print%,1))
 6310 IF Start>DiscLimit OR Finish>DiscLimit OR Start<1 OR Finish<1  THEN PROCWimp_Error("Disc Does Not Exist !"):ENDPROC
 6320 X=OPENOUT("Printer:$.Dummy")
 6330 FOR Disc=Start TO Finish
 6340 PrintString$=STR$(Disc)+" "+Text$(Disc)
 6350 BPUT #X,PrintString$
 6360 BPUT #X,""
 6370 FOR Extra=(Disc*5)-4 TO (Disc*5)
 6380 PrintString$="   "+Notes$(Extra)
 6390 BPUT #X,PrintString$
 6400 NEXT
 6410 NEXT
 6420 CLOSE #X
 6430 ENDPROC
 6440 :
 6450 DEF PROCIcon_Move(window%,icon%,key%)
 6460 IF window%<>index% AND window%<>print% THEN ENDPROC
 6470 IF window%=index% THEN
 6480 newicon%=icon%
 6490 IF key%=13 THEN
 6500  newicon%+=1
 6510  IF newicon%>9 THEN newicon%=0
 6520 ENDIF
 6530 IF key%=399 THEN
 6540  newicon%-=1
 6550  IF newicon%<0 THEN newicon%=0
 6560 ENDIF
 6570 IF key%=398 THEN
 6580  newicon%+=1
 6590  IF newicon%>9 THEN newicon%=9
 6600 ENDIF
 6610 SYS"Wimp_SetCaretPosition",index%,newicon%,,,-1,0
 6620 ENDIF
 6630 IF window%=print% THEN
 6640 newicon%=icon%
 6650 IF key%=13 AND icon%=0 THEN newicon%=1
 6660 IF key%=13 AND icon%=1 THEN newicon%=0
 6670 SYS"Wimp_SetCaretPosition",print%,newicon%,,,-1,0
 6680 ENDIF
 6690 ENDPROC
 6700 :
 6710 DEFFNTitle
 6720 Result$=""
 6730 SYS "ADFS_DescribeDisc","0",Buffer%
 6740 FOR Pointer=22 TO 31
 6750 IF Buffer%?Pointer>32 THEN Result$+=CHR$(Buffer%?Pointer)
 6760 NEXT
 6770 =Result$
 6780 :
 6790 DEFPROCInit_Sprite_Area(file$)
 6800 DIM SpritePointer &1000:!SpritePointer=&1000
 6810 SpritePointer!4=0:SpritePointer!8=16:SpritePointer!12=16
 6820 SYS "OS_SpriteOp",266,SpritePointer,file$ TO MySprites%
 6830 ENDPROC
 6840 :
 6850 DEFPROCClearRecord
 6860 Disc=(Page*10)-(10-(MenuIcon+1))
 6870 IF MenuIcon>9 OR MenuIcon<0 THEN ENDPROC
 6880 IF MenuHandle=extra% THEN Disc=ExtraOpen
 6890 IF Disc<1 OR Disc>DiscLimit THEN PROCWimp_Error("Disc Not Valid"):ENDPROC
 6900 Check=FNAction_Confirm("Erase Disc "+STR$(Disc)+" ?")
 6910 IF Check=2 THEN ENDPROC
 6920 Text$(Disc)=""
 6930 ExtraStart=(Disc*5)-4
 6940 ExtraFinish=(Disc*5)
 6950 FOR Pointer=ExtraStart TO ExtraFinish
 6960 Notes$(Pointer)=""
 6970 NEXT
 6980 IF ExtraOpen=Disc THEN PROCOpenExtra(ExtraOpen)
 6990 PROCSet_Icon_Text(index%,MenuIcon,"")
 7000 ENDPROC
 7010 :
 7020 DEFFNWhichIcon(X)
 7030 T=X DIV 10
 7040 VT=T*10
 7050 R=X-VT-1
 7060 IF VT=X THEN R=9
 7070 =R
 7080 :
 7090 DEFFNAction_Confirm(Message$)
 7100 !block=0
 7110 $(block+4)=Message$+CHR$(0)
 7120 SYS"Wimp_ReportError",block,23,"Disc Manager" TO ,Icon
 7130 =Icon

 � >$.!DiscMan.!RunImage
 �
/ � DiscManager Version 1.02 1991 J.A.Beaven
#& � (c) Archimedes World April 1992
( �
2F � This application allows the user to produce a simple 'Database'
<D � of their disc collection allowing searches to determine which
FB � disc has which programs on it.To use this program the discs
P! � should idealy be numbered.
Z �
d � J.A.B 26th June 1991
n :
x# �Activate_Task("Disc Manager")
�/ �Init_Sprite_Area("<DiscMan$Dir>.Sprites")
� �Init_New_Vars
�
 �colours
�" �Bar_Icon("!DiscMan","RIGHT")
� �LoadTemplates
� �CodeWimpMenus
� �SetPageIcons(1)
� Quit=�
� :
�$ � � �Wimp_Error(�$+" at "+�(�))
� �
� �Action(�Poll(0))
�
 � Quit=�
 ș "Wimp_CloseDown"
 �
 :
" � �Poll(M%)
, � code%
6 block!0=M%
@# ș "Wimp_Poll",0,block � code%
J =code%
T :
^ ��Action(Event%)
h Ȏ Event% �
r
 � 0 :
|  � 1 :�RedrawWindow(block!0)
� � 2 :�OpenWindowB(block!0)
�! � 3 :�CloseWindow(block!0,�)
�
 � 4 :
�
 � 5 :
�! � 6 :�OpenMenus:�WindowClick
� � 7 :�save
� � 8 :�KeyPress(block)
� � 9 :�MenuSelect(block)
�$ � 17,18 :�RecieveMessage(block)
� �
� �
� :
� ��OpenWindow(Handle%)
 �CloseWindow(Handle%,�)
 block!0 = Handle%
% ș "Wimp_GetWindowState",0,block
&! ș "Wimp_OpenWindow",0,block
0 �
: :
D ��OpenWindowB(Handle%)
N block!0 = Handle%
X! ș "Wimp_OpenWindow",0,block
b �
l :
v ��RedrawWindow(Handle%)
� � More%,XOrigin%,YOrigin%
� block!0=Handle%
�+ ș "Wimp_RedrawWindow",0,block � More%
�. �FindLWAOrigin(block+4,XOrigin%,YOrigin%)
�
 ȕ More%
�$ �FindsWindow(XOrigin%,YOrigin%)
�+ ș "Wimp_GetRectangle",0,block � More%
� �
� �
� :
�  ��CloseWindow(handle%,FLAG)
�- � block!0=extra% � FLAG=� � ExtraOpen=-1
� block!0=handle%
" ș "Wimp_CloseWindow",0,block
 �
 :
 ! ��FindLWAOrigin(b,� x%,� y%)
* x%=b!0-b!16
4 y%=b!12-b!20
> �
H :
R � �WindowClick
\ b%=block!8
f h%=block!12
p i%=block!16
z@ � h%=-2 � b%=4 � �OpenWindow(controll%):�OpenWindow(index%)
� � h%=file �
�
 � i%=0 �
� !block=file
�$ ș "Wimp_GetWindowState",,block
� IX%=block!4-block!20
� IY%=block!16-block!24
� block!4=0
�" ș "Wimp_GetIconState",,block
� !block=file
� block!4=5
� block!8=block!8+IX%
� block!12=block!12+IY%
� block!16=block!16+IX%
 block!20=block!20+IY%
 block!24=0:block!28=0
* block!32=&7FFFFFFF:block!36=&7FFFFFFF
$ ș "Wimp_DragBox",,block
. �
8 �
B � h%=file � i%=2 � �OKSave
L, � h%=controll% � �ControllPannel(block)
V' � h%=index% � �ClickOnIndex(block)
`@ � h%=extra% � i%=5 � ExtraOpen<>-1 � �CloseExtra(ExtraOpen)
jG � h%=extra% � block!16=6 � ExtraOpen<>-1 � �ExamineDisc(ExtraOpen)
t) � h%=search% � �SearchButtons(block)
~% � h%=print% � i%=3 � �PrintIndex
� �
� :
� � �CodeWimpMenus
�# � BlockMainMenu 1*(28+(10*24))
�# � BlockIconMenu 1*(28+(10*24))
� UsingMenu=-1
� � Header For Main Menu
�& $BlockMainMenu=�"DiscManager",11)
� BlockMainMenu?12=Black
� BlockMainMenu?13=2
� BlockMainMenu?14=Black
� BlockMainMenu?15=White
 BlockMainMenu!16=200

 BlockMainMenu!20=40
 BlockMainMenu!24=10
 � Data For Main Menu
( ItemPos=28
24 �MenuItem("Info",BlockMainMenu+ItemPos,info%,�)
< ItemPos+=24
F8 �MenuItem("Search",BlockMainMenu+ItemPos,search%,�)
P ItemPos+=24
Z4 �MenuItem("Examine",BlockMainMenu+ItemPos,-1,�)
d ItemPos+=24
n6 �MenuItem("Clear Rec",BlockMainMenu+ItemPos,-1,�)
x ItemPos+=24
�4 �MenuItem("Goto",BlockMainMenu+ItemPos,goto%,�)
� ItemPos+=24
�3 �MenuItem("Save",BlockMainMenu+ItemPos,file,�)
� ItemPos+=24
�6 �MenuItem("Print",BlockMainMenu+ItemPos,print%,�)
� ItemPos+=24
�1 �MenuItem("Quit",BlockMainMenu+ItemPos,-1,�)
� � Header For Icon Menu
�& $BlockIconMenu=�"DiscManager",11)
� BlockIconMenu?12=Black
� BlockIconMenu?13=2
� BlockIconMenu?14=Black
� BlockIconMenu?15=White
 BlockIconMenu!16=150
 BlockIconMenu!20=40
 BlockIconMenu!24=10
" � Data For Icon Menu
, ItemPos=28
64 �MenuItem("Info",BlockIconMenu+ItemPos,info%,�)
@ ItemPos+=24
J1 �MenuItem("Quit",BlockIconMenu+ItemPos,-1,�)
T �
^ :
h) ��MenuItem(Data$,Point,Handle%,LAST)
r � LAST=� � Point!0=&0
| � LAST=� � Point!0=&80
� Point!4=Handle%
� Point!8=&010021 � 7<<24
� $(Point+12)=�Data$,11)
� �
� :
�* ��BringUpMenu(MenuName,MouseX,MouseY)
�2 ș "Wimp_CreateMenu",0,MenuName,MouseX,MouseY
� UsingMenu=MenuName
� �
� :
� � �OpenMenus
� MenuHandle=block!12
� MenuIcon=block!16
 Handle%=block!12
+ Button%=((block!8)�7)� �((block!20)�7)
 MouseX=block!0
& MouseY=block!4
0J � Button%=2 � Handle%<>-2 � �BringUpMenu(BlockMainMenu,MouseX,MouseY)
:I � Button%=2 � Handle%=-2 � �BringUpMenu(BlockIconMenu,MouseX,MouseY)
D �
N :
X ��MenuSelect(block)
b Ȏ UsingMenu �
l. � BlockMainMenu : �MenuSelect_Main(block)
v. � BlockIconMenu : �MenuSelect_Icon(block)
� �
� UsingMenu=-1
� �
� :
� ��MenuSelect_Main(block)
� Root=block!0
� Sub1=block!4
� Sub2=block!8
� Sub3=block!12
� Sub4=block!16
�$ � Root=1 � �OpenWindow(search%)
�' � Root=2 � �ExamineDisc(ExtraOpen)
� � Root=3 � �ClearRecord
 � Root=7 � Quit=�
 �
 :
  ��MenuSelect_Icon(block)
* Root=block!0
4 Sub1=block!4
> Sub2=block!8
H Sub3=block!12
R Sub4=block!16
\ � Root=1 � Quit=�
f �
p :
z ��colours
� Black=7
� Red=11
�
 Green=10
�
 Yellow=9
� Blue=8
� Magenta=5
� Cyan=6
� White=0
� �
� :
� ��RecieveMessage(b)
� Ȏ b!16 �
� � 0:Quit=�
		 � 1:
	 � 2:�DataSave(b)
	 � 3:�DataLoad(b)
	$ �
	. �
	8 :
	B � �DataLoad(b)
	L � b!12=0 �
	V path$=�FindName(b+44)
	` �Do_The_Load(path$)
	j b!12=b!8:b!16=4:!b=64
	t �
	~ �
	� :
	� � �FindName(ptr)
	�
 p$=""
	� ȕ ?ptr<>0
	� p$+=�?ptr:ptr+=1
	� �
	� =p$
	� :
	� � �OKSave
	�" Name$=�Get_Icon_State(file,1)
	� � �Name$,".") �
	� �Do_The_Save(Name$)
 �

> $block="    To save, drag the icon to a directory viewer"
1 ș "Wimp_ReportError",block,1,"Disc Manager"
 �
( �
2 :
< � �DataSave(b)
F! �Do_The_Save(�GetName(b+44))
P* �Set_Icon_Text(file,1,�GetName(b+44))
Z b!12=b!8:b!16=3:!b=64
d) ș "Wimp_SendMessage",17,b,b!20,b!24
n �
x :
� � �GetName(ptr)
�
 f$=""
� ȕ ?ptr<>0 � ?ptr<>13
� f$=f$+�?ptr:ptr+=1
� �
� =f$
� :
� � �save
�" Name$=�Get_Icon_State(file,1)
�$ ș "Wimp_GetPointerInfo",,block
� block!20=64:block!32=0
�! block!36=1:block!40=block!12
� block!44=block!16
 block!48=!block
 block!52=block!4
 block!56=100*40
" block!60=&FEE
,) $(block+64)=�FindLastPathName(Name$)
68 ș "Wimp_SendMessage",17,block+20,block!12,block!16
@ �
J :
T � �FindLastPathName(path$)
^ ȕ �path$,".")
h  path$=�path$,�path$,".")+1)
r �
| =path$
� :
� ��Do_The_Save(NNAME$)
� �WriteIconsToIndex(Page)
� X=�(NNAME$)
� � #X,MaxPages
� � Save=1 � (MaxPages*10)
� � #X,Text$(Save)
� �
� � Save=1 � (MaxPages*10*5)
� � #X,Notes$(Save)
� �
�	 � #X
�! � "SETTYPE "+NNAME$+" Index"
 �
 :
 ��Do_The_Load(NNAME$)
& X=�(NNAME$)
0 � #X,MaxPages
: � Save=1 � (MaxPages*10)
D � #X,Text$(Save)
N �
X � Save=1 � (MaxPages*10*5)
b � #X,Notes$(Save)
l �
v Page=1
� �SetPageIcons(1)
�	 � #X
� �
� :
� � �LoadTemplates
�! � bblock &800,template% &800
�6 ș "Wimp_OpenTemplate",,"<DiscMan$Dir>.Templates"
�$ � c%,end% : end%=template%+&800
� :
�R ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Info",0 � ,,template%,,,,c%
�( ș "Wimp_CreateWindow",,bblock � c%
�
 info%=c%
� :

S ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Index",0 � ,,template%,,,,c%

( ș "Wimp_CreateWindow",,bblock � c%

 index%=c%

  :

*V ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Controll",0 � ,,template%,,,,c%

4 bblock!64=SpritePointer

>( ș "Wimp_CreateWindow",,bblock � c%

H controll%=c%

R :

\S ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Extra",0 � ,,template%,,,,c%

f( ș "Wimp_CreateWindow",,bblock � c%

p extra%=c%

z :

�T ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Search",0 � ,,template%,,,,c%

�( ș "Wimp_CreateWindow",,bblock � c%

� search%=c%

� :

�S ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Finds",0 � ,,template%,,,,c%

�( ș "Wimp_CreateWindow",,bblock � c%

� finds%=c%

� :

�R ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Save",0 � ,,template%,,,,c%

�( ș "Wimp_CreateWindow",,bblock � c%

� file=c%

� :

�R ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Goto",0 � ,,template%,,,,c%
( ș "Wimp_CreateWindow",,bblock � c%

 goto%=c%
 :
$S ș "Wimp_LoadTemplate",,bblock,template%,end%,-1,"Print",0 � ,,template%,,,,c%
.( ș "Wimp_CreateWindow",,bblock � c%
8 print%=c%
B ș "Wimp_CloseTemplate"
L �
V :
` � �Wimp_Error(message$)
j! !block=�:$(block+4)=message$
t1 ș "Wimp_ReportError",block,1,"Disc Manager"
~ �
� :
� ��Activate_Task(Name$)
� � SetSystemTaskID 4
� $SetSystemTaskID="TASK"
�4 ș "Wimp_Initialise",200,!SetSystemTaskID,Name$
� �
� :
� ��Init_New_Vars
� DiscLimit=300
� PageLimit=DiscLimit/10
� � block &300
� � Text$(DiscLimit)
 � Notes$(DiscLimit*5)

 � SearchFinds(DiscLimit)
 � Buffer% 1000
 � RootDir$(77)
( Search_Extra=�
2 Search_Title=�
< Page=1
F MaxPages=1
P ExtraOpen=-1
Z Finds=0
d �
n :
x# ��Bar_Icon(Application$,side$)
�	 � p%
� � side$="LEFT" � num=-2
� � side$="RIGHT" � num=-1
� block!0=num
� block!4=0:block!8=0
� block!12=68:block!16=68
�+ block!20=&3012 � White<<28 � Black<<24
�" $(block+24)=�Application$,11)
�! ș "Wimp_CreateIcon",0,block
� �
� :
�% � �Get_Icon_State(Handle%,Icon%)
� block!0=Handle%
 block!4=Icon%
# ș "Wimp_GetIconState",0,block
 =$(block!28)
" :
,* � �Set_Icon_Text(Handle%,Icon%,Text$)
6 block!0=Handle%
@ block!4=Icon%
J# ș "Wimp_GetIconState",0,block
T $(block!28)=Text$
^ block!8=0
h block!12=0
r# ș "Wimp_SetIconState",0,block
| �
� :
� ��SetPageIcons(Current)
� RealNumber=(Current*10)-9
� � IconPointer=10 � 19
�5 �Set_Icon_Text(index%,IconPointer,�(RealNumber))
� RealNumber+=1
� �
� �ShowIndex(Current)
� �
� :
� ��ControllPannel(block)
� Ȏ block!16 �
�> � 0 : �WriteIconsToIndex(Page):Page=1:�SetPageIcons(Page)
N � 1 : � Page>1 � �WriteIconsToIndex(Page):Page=Page-1:�SetPageIcons(Page)
u � 2 : �Page<PageLimit � �WriteIconsToIndex(Page):Page=Page+1:�SetPageIcons(Page):� MaxPages<Page � MaxPages=Page
E � 3 : �WriteIconsToIndex(Page):Page=MaxPages:�SetPageIcons(Page)
& �
0 �
: :
D ��ClickOnIndex(block)
N% � block!16<10 � block!16>19 � :�
X2 ExtraOpen=�(�Get_Icon_State(index%,block!16))
b �OpenExtra(ExtraOpen)
l �
v :
� ��OpenExtra(Num)
� Icon_Handle=0
� � L=(Num*5)-4 � (Num*5)
�1 �Set_Icon_Text(extra%,Icon_Handle,Notes$(L))
� Icon_Handle+=1
� �
� �OpenWindow(extra%)
�$ �Set_Icon_Text(extra%,8,�(Num))
� �
� :
� ��CloseExtra(Num)
� Icon_Handle=0
� � L=(Num*5)-4 � (Num*5)
2 Notes$(L)=�Get_Icon_State(extra%,Icon_Handle)
 Icon_Handle+=1
 �
  �CloseWindow(extra%,�)
* ExtraOpen=-1
4 �
> :
H! ��WriteIconsToIndex(Current)
R RealNumber=(Current*10)-9
\ � IconPointer=0 � 9
f: Text$(RealNumber)=�Get_Icon_State(index%,IconPointer)
p RealNumber+=1
z �
� �
� :
� ��ShowIndex(Current)
� RealNumber=(Current*10)-9
� � IconPointer=0 � 9
�9 �Set_Icon_Text(index%,IconPointer,Text$(RealNumber))
� RealNumber+=1
� �
� �
� :
� ��SearchButtons(block)
� � block!8=1 � �
�$ � block!16=1 � Search_Extra=� �
' Search_Extra=�Toggle(Search_Extra)
' Search_Title=�Toggle(Search_Title)
 �
$$ � block!16=2 � Search_Title=� �
.' Search_Extra=�Toggle(Search_Extra)
8' Search_Title=�Toggle(Search_Title)
B �
L �
V :
` ݤToggle(a)
j R=�
t � a=� � R=�
~ =R
� :
� ��Search(Word$)
�, � Search_Title=� � �Search_Title(Word$)
�, � Search_Extra=� � �Search_Extra(Word$)
� �
� �
� :
� ��Search_Extra(Word$)
� Finds=0
� � Disc=1 � (10*MaxPages)
� Extra=(Disc*5)-4
� Halt=�
 �

! Search=�Notes$(Extra),Word$)

 Extra+=1
 � Search<>0 �
( Halt=�
2
 Finds+=1
< SearchFinds(Finds)=Disc
F �
P � Extra>(Disc*5) � Halt=�
Z
 � Halt=�
d �
n- Header$=Word$+" [Scan Over Extra Block]"
x% �Set_Icon_Text(finds%,0,Header$)
� �OpenWindow(finds%)
� �RedrawWindow(finds%)
� �
� :
� ��Search_Title(Word$)
� Finds=0
� � Disc=1 � (10*MaxPages)
� Search=�Text$(Disc),Word$)
� � Search <>0 �
�
 Finds+=1
� SearchFinds(Finds)=Disc
� �
� �
' Header$=Word$+" [Scan Over Title]"
% �Set_Icon_Text(finds%,0,Header$)
 �OpenWindow(finds%)
" �RedrawWindow(finds%)
, �
6 :
@% ��FindsWindow(XOrigin%,YOrigin%)
JL � Finds=0 � � XOrigin%+30,YOrigin%-100:�"String Not Found In Index !":�
T
 Drop=100
^ � Pointer=1 � Finds
h  � XOrigin%+30,YOrigin%-Drop
rM � SearchFinds(Pointer)<>0 � � "Found On Disc : ";�(SearchFinds(Pointer))
|
 Drop+=40
� �
� �
� :
� ݤGet_Catolog
�" � NumberOfFiles,Pointer,Index
�F ș "OS_GBPB",9,"ADFS:$",Buffer%,255,0,1000,"*" � ,,,NumberOfFiles
�
 File$=""
� Pointer=0
� � Index=1 � NumberOfFiles
�
 Finish=�
� �
� Char=Buffer%?Pointer
� � Char<>0 � File$+=�(Char)
 Pointer+=1
 � Char=0 � Finish=�
 � Finish=�
& RootDir$(Index)=File$
0
 File$=""
: �
D =NumberOfFiles
N :
X ��ExamineDisc(ExtraOpen)
b � ExtraOpen=-1 � �7:�
l �("ADFS")
v �("MOUNT")
� � Clear=0 � 4
�$ �Set_Icon_Text(extra%,Clear,"")
� �
� NumFiles=�Get_Catolog
� Title$=�Title
� Icon=0
� Total=0
� Build$=""
� � NumFiles>0 �
� � Pointer=1 � NumFiles
�
 Set=�
�) Total=�(Build$)+�(RootDir$(Pointer))
� � Total>70 �
2 � Icon<5 � �Set_Icon_Text(extra%,Icon,Build$)
 Icon+=1
 Build$=""
  Total=0
*
 Set=�
4 �
> � Total<70 �
H � Pointer<>1 � Build$+=","
R Build$+=RootDir$(Pointer)
\ �
f �
p: � Set=� � Icon<5 � �Set_Icon_Text(extra%,Icon,Build$)
z �
�8 �Set_Icon_Text(index%,�WhichIcon(ExtraOpen),Title$)
� �
� :
� ��Goto
� OldPage=Page
�% Disc=�(�Get_Icon_State(goto%,1))
�4 � Disc=0 � �Wimp_Error("Disc Does Not Exist"):�
� �WriteIconsToIndex(Page)
� T=Disc � 10
� M=T*10
�
 S=Disc-M
� � S=0 � Page=T � Page=T+1
�[ � Page>PageLimit � �Wimp_Error("Only "+�(DiscLimit)+" Discs Available"):Page=OldPage:�
$ � MaxPages<Page � MaxPages=Page
 �SetPageIcons(Page)
 �
$ :
. ��KeyPress(block)
8 Ȏ block!0 �
B4 � search% : �Search(�Get_Icon_State(search%,0))
L � goto%   : �Goto
V4 � index%  : �Icon_Move(!block,block!4,block!24)
`4 � print%  : �Icon_Move(!block,block!4,block!24)
j �
t �
~ :
� ��PrintIndex
�' Start=�(�Get_Icon_State(print%,0))
�( Finish=�(�Get_Icon_State(print%,1))
�h � Start>DiscLimit � Finish>DiscLimit � Start<1 � Finish<1  � �Wimp_Error("Disc Does Not Exist !"):�
� X=�("Printer:$.Dummy")
� � Disc=Start � Finish
�) PrintString$=�(Disc)+" "+Text$(Disc)
� � #X,PrintString$
� � #X,""
�" � Extra=(Disc*5)-4 � (Disc*5)
�% PrintString$="   "+Notes$(Extra)
� � #X,PrintString$
 �

 �
	 � #X
 �
( :
2% � �Icon_Move(window%,icon%,key%)
<, � window%<>index% � window%<>print% � �
F � window%=index% �
P newicon%=icon%
Z � key%=13 �
d  newicon%+=1
n  � newicon%>9 � newicon%=0
x �
� � key%=399 �
�  newicon%-=1
�  � newicon%<0 � newicon%=0
� �
� � key%=398 �
�  newicon%+=1
�  � newicon%>9 � newicon%=9
� �
�5 ș"Wimp_SetCaretPosition",index%,newicon%,,,-1,0
� �
� � window%=print% �
� newicon%=icon%
�% � key%=13 � icon%=0 � newicon%=1
% � key%=13 � icon%=1 � newicon%=0
5 ș"Wimp_SetCaretPosition",print%,newicon%,,,-1,0
 �
" �
, :
6 ݤTitle
@ Result$=""
J' ș "ADFS_DescribeDisc","0",Buffer%
T � Pointer=22 � 31
^7 � Buffer%?Pointer>32 � Result$+=�(Buffer%?Pointer)
h �
r
 =Result$
| :
� ��Init_Sprite_Area(file$)
�/ � SpritePointer &1000:!SpritePointer=&1000
�= SpritePointer!4=0:SpritePointer!8=16:SpritePointer!12=16
�: ș "OS_SpriteOp",266,SpritePointer,file$ � MySprites%
� �
� :
� ��ClearRecord
�% Disc=(Page*10)-(10-(MenuIcon+1))
�" � MenuIcon>9 � MenuIcon<0 � �
�) � MenuHandle=extra% � Disc=ExtraOpen
�@ � Disc<1 � Disc>DiscLimit � �Wimp_Error("Disc Not Valid"):�
�6 Check=�Action_Confirm("Erase Disc "+�(Disc)+" ?")
� � Check=2 � �
 Text$(Disc)=""
 ExtraStart=(Disc*5)-4
 ExtraFinish=(Disc*5)
&' � Pointer=ExtraStart � ExtraFinish
0 Notes$(Pointer)=""
: �
D- � ExtraOpen=Disc � �OpenExtra(ExtraOpen)
N' �Set_Icon_Text(index%,MenuIcon,"")
X �
b :
l ݤWhichIcon(X)
v
 T=X � 10
� VT=T*10
�
 R=X-VT-1
� � VT=X � R=9
� =R
� :
� ݤAction_Confirm(Message$)
�
 !block=0
� $(block+4)=Message$+�(0)
�9 ș"Wimp_ReportError",block,23,"Disc Manager" � ,Icon
�
 =Icon
�
00000000  0d 00 0a 1c 20 f4 20 3e  24 2e 21 44 69 73 63 4d  |.... . >$.!DiscM|
00000010  61 6e 2e 21 52 75 6e 49  6d 61 67 65 0d 00 14 06  |an.!RunImage....|
00000020  20 f4 0d 00 1e 2f 20 f4  20 44 69 73 63 4d 61 6e  | ..../ . DiscMan|
00000030  61 67 65 72 20 56 65 72  73 69 6f 6e 20 31 2e 30  |ager Version 1.0|
00000040  32 20 31 39 39 31 20 4a  2e 41 2e 42 65 61 76 65  |2 1991 J.A.Beave|
00000050  6e 0d 00 23 26 20 f4 20  28 63 29 20 41 72 63 68  |n..#& . (c) Arch|
00000060  69 6d 65 64 65 73 20 57  6f 72 6c 64 20 41 70 72  |imedes World Apr|
00000070  69 6c 20 31 39 39 32 0d  00 28 06 20 f4 0d 00 32  |il 1992..(. ...2|
00000080  46 20 f4 20 54 68 69 73  20 61 70 70 6c 69 63 61  |F . This applica|
00000090  74 69 6f 6e 20 61 6c 6c  6f 77 73 20 74 68 65 20  |tion allows the |
000000a0  75 73 65 72 20 74 6f 20  70 72 6f 64 75 63 65 20  |user to produce |
000000b0  61 20 73 69 6d 70 6c 65  20 27 44 61 74 61 62 61  |a simple 'Databa|
000000c0  73 65 27 0d 00 3c 44 20  f4 20 6f 66 20 74 68 65  |se'..<D . of the|
000000d0  69 72 20 64 69 73 63 20  63 6f 6c 6c 65 63 74 69  |ir disc collecti|
000000e0  6f 6e 20 61 6c 6c 6f 77  69 6e 67 20 73 65 61 72  |on allowing sear|
000000f0  63 68 65 73 20 74 6f 20  64 65 74 65 72 6d 69 6e  |ches to determin|
00000100  65 20 77 68 69 63 68 0d  00 46 42 20 f4 20 64 69  |e which..FB . di|
00000110  73 63 20 68 61 73 20 77  68 69 63 68 20 70 72 6f  |sc has which pro|
00000120  67 72 61 6d 73 20 6f 6e  20 69 74 2e 54 6f 20 75  |grams on it.To u|
00000130  73 65 20 74 68 69 73 20  70 72 6f 67 72 61 6d 20  |se this program |
00000140  74 68 65 20 64 69 73 63  73 0d 00 50 21 20 f4 20  |the discs..P! . |
00000150  73 68 6f 75 6c 64 20 69  64 65 61 6c 79 20 62 65  |should idealy be|
00000160  20 6e 75 6d 62 65 72 65  64 2e 0d 00 5a 06 20 f4  | numbered...Z. .|
00000170  0d 00 64 1b 20 f4 20 4a  2e 41 2e 42 20 32 36 74  |..d. . J.A.B 26t|
00000180  68 20 4a 75 6e 65 20 31  39 39 31 0d 00 6e 06 20  |h June 1991..n. |
00000190  3a 0d 00 78 23 20 f2 41  63 74 69 76 61 74 65 5f  |:..x# .Activate_|
000001a0  54 61 73 6b 28 22 44 69  73 63 20 4d 61 6e 61 67  |Task("Disc Manag|
000001b0  65 72 22 29 0d 00 82 2f  20 f2 49 6e 69 74 5f 53  |er").../ .Init_S|
000001c0  70 72 69 74 65 5f 41 72  65 61 28 22 3c 44 69 73  |prite_Area("<Dis|
000001d0  63 4d 61 6e 24 44 69 72  3e 2e 53 70 72 69 74 65  |cMan$Dir>.Sprite|
000001e0  73 22 29 0d 00 8c 13 20  f2 49 6e 69 74 5f 4e 65  |s").... .Init_Ne|
000001f0  77 5f 56 61 72 73 0d 00  96 0d 20 f2 63 6f 6c 6f  |w_Vars.... .colo|
00000200  75 72 73 0d 00 a0 22 20  f2 42 61 72 5f 49 63 6f  |urs..." .Bar_Ico|
00000210  6e 28 22 21 44 69 73 63  4d 61 6e 22 2c 22 52 49  |n("!DiscMan","RI|
00000220  47 48 54 22 29 0d 00 aa  13 20 f2 4c 6f 61 64 54  |GHT").... .LoadT|
00000230  65 6d 70 6c 61 74 65 73  0d 00 b4 13 20 f2 43 6f  |emplates.... .Co|
00000240  64 65 57 69 6d 70 4d 65  6e 75 73 0d 00 be 15 20  |deWimpMenus.... |
00000250  f2 53 65 74 50 61 67 65  49 63 6f 6e 73 28 31 29  |.SetPageIcons(1)|
00000260  0d 00 c8 0b 20 51 75 69  74 3d a3 0d 00 d2 06 20  |.... Quit=..... |
00000270  3a 0d 00 dc 24 20 ee 20  85 20 f2 57 69 6d 70 5f  |:...$ . . .Wimp_|
00000280  45 72 72 6f 72 28 f6 24  2b 22 20 61 74 20 22 2b  |Error(.$+" at "+|
00000290  c3 28 9e 29 29 0d 00 e6  06 20 f5 0d 00 f0 16 20  |.(.)).... ..... |
000002a0  f2 41 63 74 69 6f 6e 28  a4 50 6f 6c 6c 28 30 29  |.Action(.Poll(0)|
000002b0  29 0d 00 fa 0d 20 fd 20  51 75 69 74 3d b9 0d 01  |).... . Quit=...|
000002c0  04 18 20 c8 99 20 22 57  69 6d 70 5f 43 6c 6f 73  |.. .. "Wimp_Clos|
000002d0  65 44 6f 77 6e 22 0d 01  0e 06 20 e0 0d 01 18 06  |eDown".... .....|
000002e0  20 3a 0d 01 22 10 20 dd  20 a4 50 6f 6c 6c 28 4d  | :..". . .Poll(M|
000002f0  25 29 0d 01 2c 0c 20 ea  20 63 6f 64 65 25 0d 01  |%)..,. . code%..|
00000300  36 0f 20 62 6c 6f 63 6b  21 30 3d 4d 25 0d 01 40  |6. block!0=M%..@|
00000310  23 20 c8 99 20 22 57 69  6d 70 5f 50 6f 6c 6c 22  |# .. "Wimp_Poll"|
00000320  2c 30 2c 62 6c 6f 63 6b  20 b8 20 63 6f 64 65 25  |,0,block . code%|
00000330  0d 01 4a 0b 20 3d 63 6f  64 65 25 0d 01 54 06 20  |..J. =code%..T. |
00000340  3a 0d 01 5e 15 20 dd f2  41 63 74 69 6f 6e 28 45  |:..^. ..Action(E|
00000350  76 65 6e 74 25 29 0d 01  68 10 20 c8 8e 20 45 76  |vent%)..h. .. Ev|
00000360  65 6e 74 25 20 ca 0d 01  72 0a 20 c9 20 30 20 3a  |ent% ...r. . 0 :|
00000370  0d 01 7c 20 20 c9 20 31  20 3a f2 52 65 64 72 61  |..|  . 1 :.Redra|
00000380  77 57 69 6e 64 6f 77 28  62 6c 6f 63 6b 21 30 29  |wWindow(block!0)|
00000390  0d 01 86 1f 20 c9 20 32  20 3a f2 4f 70 65 6e 57  |.... . 2 :.OpenW|
000003a0  69 6e 64 6f 77 42 28 62  6c 6f 63 6b 21 30 29 0d  |indowB(block!0).|
000003b0  01 90 21 20 c9 20 33 20  3a f2 43 6c 6f 73 65 57  |..! . 3 :.CloseW|
000003c0  69 6e 64 6f 77 28 62 6c  6f 63 6b 21 30 2c b9 29  |indow(block!0,.)|
000003d0  0d 01 9a 0a 20 c9 20 34  20 3a 0d 01 a4 0a 20 c9  |.... . 4 :.... .|
000003e0  20 35 20 3a 0d 01 ae 21  20 c9 20 36 20 3a f2 4f  | 5 :...! . 6 :.O|
000003f0  70 65 6e 4d 65 6e 75 73  3a f2 57 69 6e 64 6f 77  |penMenus:.Window|
00000400  43 6c 69 63 6b 0d 01 b8  0f 20 c9 20 37 20 3a f2  |Click.... . 7 :.|
00000410  73 61 76 65 0d 01 c2 1a  20 c9 20 38 20 3a f2 4b  |save.... . 8 :.K|
00000420  65 79 50 72 65 73 73 28  62 6c 6f 63 6b 29 0d 01  |eyPress(block)..|
00000430  cc 1c 20 c9 20 39 20 3a  f2 4d 65 6e 75 53 65 6c  |.. . 9 :.MenuSel|
00000440  65 63 74 28 62 6c 6f 63  6b 29 0d 01 d6 24 20 c9  |ect(block)...$ .|
00000450  20 31 37 2c 31 38 20 3a  f2 52 65 63 69 65 76 65  | 17,18 :.Recieve|
00000460  4d 65 73 73 61 67 65 28  62 6c 6f 63 6b 29 0d 01  |Message(block)..|
00000470  e0 06 20 cb 0d 01 ea 06  20 e1 0d 01 f4 06 20 3a  |.. ..... ..... :|
00000480  0d 01 fe 1a 20 dd f2 4f  70 65 6e 57 69 6e 64 6f  |.... ..OpenWindo|
00000490  77 28 48 61 6e 64 6c 65  25 29 0d 02 08 1c 20 f2  |w(Handle%).... .|
000004a0  43 6c 6f 73 65 57 69 6e  64 6f 77 28 48 61 6e 64  |CloseWindow(Hand|
000004b0  6c 65 25 2c a3 29 0d 02  12 16 20 62 6c 6f 63 6b  |le%,.).... block|
000004c0  21 30 20 3d 20 48 61 6e  64 6c 65 25 0d 02 1c 25  |!0 = Handle%...%|
000004d0  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 57 69 6e  | .. "Wimp_GetWin|
000004e0  64 6f 77 53 74 61 74 65  22 2c 30 2c 62 6c 6f 63  |dowState",0,bloc|
000004f0  6b 0d 02 26 21 20 c8 99  20 22 57 69 6d 70 5f 4f  |k..&! .. "Wimp_O|
00000500  70 65 6e 57 69 6e 64 6f  77 22 2c 30 2c 62 6c 6f  |penWindow",0,blo|
00000510  63 6b 0d 02 30 06 20 e1  0d 02 3a 06 20 3a 0d 02  |ck..0. ...:. :..|
00000520  44 1b 20 dd f2 4f 70 65  6e 57 69 6e 64 6f 77 42  |D. ..OpenWindowB|
00000530  28 48 61 6e 64 6c 65 25  29 0d 02 4e 16 20 62 6c  |(Handle%)..N. bl|
00000540  6f 63 6b 21 30 20 3d 20  48 61 6e 64 6c 65 25 0d  |ock!0 = Handle%.|
00000550  02 58 21 20 c8 99 20 22  57 69 6d 70 5f 4f 70 65  |.X! .. "Wimp_Ope|
00000560  6e 57 69 6e 64 6f 77 22  2c 30 2c 62 6c 6f 63 6b  |nWindow",0,block|
00000570  0d 02 62 06 20 e1 0d 02  6c 06 20 3a 0d 02 76 1c  |..b. ...l. :..v.|
00000580  20 dd f2 52 65 64 72 61  77 57 69 6e 64 6f 77 28  | ..RedrawWindow(|
00000590  48 61 6e 64 6c 65 25 29  0d 02 80 1e 20 ea 20 4d  |Handle%).... . M|
000005a0  6f 72 65 25 2c 58 4f 72  69 67 69 6e 25 2c 59 4f  |ore%,XOrigin%,YO|
000005b0  72 69 67 69 6e 25 0d 02  8a 14 20 62 6c 6f 63 6b  |rigin%.... block|
000005c0  21 30 3d 48 61 6e 64 6c  65 25 0d 02 94 2b 20 c8  |!0=Handle%...+ .|
000005d0  99 20 22 57 69 6d 70 5f  52 65 64 72 61 77 57 69  |. "Wimp_RedrawWi|
000005e0  6e 64 6f 77 22 2c 30 2c  62 6c 6f 63 6b 20 b8 20  |ndow",0,block . |
000005f0  4d 6f 72 65 25 0d 02 9e  2e 20 f2 46 69 6e 64 4c  |More%.... .FindL|
00000600  57 41 4f 72 69 67 69 6e  28 62 6c 6f 63 6b 2b 34  |WAOrigin(block+4|
00000610  2c 58 4f 72 69 67 69 6e  25 2c 59 4f 72 69 67 69  |,XOrigin%,YOrigi|
00000620  6e 25 29 0d 02 a8 0d 20  c8 95 20 4d 6f 72 65 25  |n%).... .. More%|
00000630  0d 02 b2 24 20 f2 46 69  6e 64 73 57 69 6e 64 6f  |...$ .FindsWindo|
00000640  77 28 58 4f 72 69 67 69  6e 25 2c 59 4f 72 69 67  |w(XOrigin%,YOrig|
00000650  69 6e 25 29 0d 02 bc 2b  20 c8 99 20 22 57 69 6d  |in%)...+ .. "Wim|
00000660  70 5f 47 65 74 52 65 63  74 61 6e 67 6c 65 22 2c  |p_GetRectangle",|
00000670  30 2c 62 6c 6f 63 6b 20  b8 20 4d 6f 72 65 25 0d  |0,block . More%.|
00000680  02 c6 06 20 ce 0d 02 d0  06 20 e1 0d 02 da 06 20  |... ..... ..... |
00000690  3a 0d 02 e4 20 20 dd f2  43 6c 6f 73 65 57 69 6e  |:...  ..CloseWin|
000006a0  64 6f 77 28 68 61 6e 64  6c 65 25 2c 46 4c 41 47  |dow(handle%,FLAG|
000006b0  29 0d 02 ee 2d 20 e7 20  62 6c 6f 63 6b 21 30 3d  |)...- . block!0=|
000006c0  65 78 74 72 61 25 20 80  20 46 4c 41 47 3d b9 20  |extra% . FLAG=. |
000006d0  8c 20 45 78 74 72 61 4f  70 65 6e 3d 2d 31 0d 02  |. ExtraOpen=-1..|
000006e0  f8 14 20 62 6c 6f 63 6b  21 30 3d 68 61 6e 64 6c  |.. block!0=handl|
000006f0  65 25 0d 03 02 22 20 c8  99 20 22 57 69 6d 70 5f  |e%..." .. "Wimp_|
00000700  43 6c 6f 73 65 57 69 6e  64 6f 77 22 2c 30 2c 62  |CloseWindow",0,b|
00000710  6c 6f 63 6b 0d 03 0c 06  20 e1 0d 03 16 06 20 3a  |lock.... ..... :|
00000720  0d 03 20 21 20 dd f2 46  69 6e 64 4c 57 41 4f 72  |.. ! ..FindLWAOr|
00000730  69 67 69 6e 28 62 2c f8  20 78 25 2c f8 20 79 25  |igin(b,. x%,. y%|
00000740  29 0d 03 2a 10 20 78 25  3d 62 21 30 2d 62 21 31  |)..*. x%=b!0-b!1|
00000750  36 0d 03 34 11 20 79 25  3d 62 21 31 32 2d 62 21  |6..4. y%=b!12-b!|
00000760  32 30 0d 03 3e 06 20 e1  0d 03 48 06 20 3a 0d 03  |20..>. ...H. :..|
00000770  52 13 20 dd 20 f2 57 69  6e 64 6f 77 43 6c 69 63  |R. . .WindowClic|
00000780  6b 0d 03 5c 0f 20 62 25  3d 62 6c 6f 63 6b 21 38  |k..\. b%=block!8|
00000790  0d 03 66 10 20 68 25 3d  62 6c 6f 63 6b 21 31 32  |..f. h%=block!12|
000007a0  0d 03 70 10 20 69 25 3d  62 6c 6f 63 6b 21 31 36  |..p. i%=block!16|
000007b0  0d 03 7a 40 20 e7 20 68  25 3d 2d 32 20 80 20 62  |..z@ . h%=-2 . b|
000007c0  25 3d 34 20 8c 20 f2 4f  70 65 6e 57 69 6e 64 6f  |%=4 . .OpenWindo|
000007d0  77 28 63 6f 6e 74 72 6f  6c 6c 25 29 3a f2 4f 70  |w(controll%):.Op|
000007e0  65 6e 57 69 6e 64 6f 77  28 69 6e 64 65 78 25 29  |enWindow(index%)|
000007f0  0d 03 84 10 20 e7 20 68  25 3d 66 69 6c 65 20 8c  |.... . h%=file .|
00000800  0d 03 8e 0d 20 e7 20 69  25 3d 30 20 8c 0d 03 98  |.... . i%=0 ....|
00000810  10 20 21 62 6c 6f 63 6b  3d 66 69 6c 65 0d 03 a2  |. !block=file...|
00000820  24 20 c8 99 20 22 57 69  6d 70 5f 47 65 74 57 69  |$ .. "Wimp_GetWi|
00000830  6e 64 6f 77 53 74 61 74  65 22 2c 2c 62 6c 6f 63  |ndowState",,bloc|
00000840  6b 0d 03 ac 19 20 49 58  25 3d 62 6c 6f 63 6b 21  |k.... IX%=block!|
00000850  34 2d 62 6c 6f 63 6b 21  32 30 0d 03 b6 1a 20 49  |4-block!20.... I|
00000860  59 25 3d 62 6c 6f 63 6b  21 31 36 2d 62 6c 6f 63  |Y%=block!16-bloc|
00000870  6b 21 32 34 0d 03 c0 0e  20 62 6c 6f 63 6b 21 34  |k!24.... block!4|
00000880  3d 30 0d 03 ca 22 20 c8  99 20 22 57 69 6d 70 5f  |=0..." .. "Wimp_|
00000890  47 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 62  |GetIconState",,b|
000008a0  6c 6f 63 6b 0d 03 d4 10  20 21 62 6c 6f 63 6b 3d  |lock.... !block=|
000008b0  66 69 6c 65 0d 03 de 0e  20 62 6c 6f 63 6b 21 34  |file.... block!4|
000008c0  3d 35 0d 03 e8 18 20 62  6c 6f 63 6b 21 38 3d 62  |=5.... block!8=b|
000008d0  6c 6f 63 6b 21 38 2b 49  58 25 0d 03 f2 1a 20 62  |lock!8+IX%.... b|
000008e0  6c 6f 63 6b 21 31 32 3d  62 6c 6f 63 6b 21 31 32  |lock!12=block!12|
000008f0  2b 49 59 25 0d 03 fc 1a  20 62 6c 6f 63 6b 21 31  |+IY%.... block!1|
00000900  36 3d 62 6c 6f 63 6b 21  31 36 2b 49 58 25 0d 04  |6=block!16+IX%..|
00000910  06 1a 20 62 6c 6f 63 6b  21 32 30 3d 62 6c 6f 63  |.. block!20=bloc|
00000920  6b 21 32 30 2b 49 59 25  0d 04 10 1a 20 62 6c 6f  |k!20+IY%.... blo|
00000930  63 6b 21 32 34 3d 30 3a  62 6c 6f 63 6b 21 32 38  |ck!24=0:block!28|
00000940  3d 30 0d 04 1a 2a 20 62  6c 6f 63 6b 21 33 32 3d  |=0...* block!32=|
00000950  26 37 46 46 46 46 46 46  46 3a 62 6c 6f 63 6b 21  |&7FFFFFFF:block!|
00000960  33 36 3d 26 37 46 46 46  46 46 46 46 0d 04 24 1d  |36=&7FFFFFFF..$.|
00000970  20 c8 99 20 22 57 69 6d  70 5f 44 72 61 67 42 6f  | .. "Wimp_DragBo|
00000980  78 22 2c 2c 62 6c 6f 63  6b 0d 04 2e 06 20 cd 0d  |x",,block.... ..|
00000990  04 38 06 20 cd 0d 04 42  1f 20 e7 20 68 25 3d 66  |.8. ...B. . h%=f|
000009a0  69 6c 65 20 80 20 69 25  3d 32 20 8c 20 f2 4f 4b  |ile . i%=2 . .OK|
000009b0  53 61 76 65 0d 04 4c 2c  20 e7 20 68 25 3d 63 6f  |Save..L, . h%=co|
000009c0  6e 74 72 6f 6c 6c 25 20  8c 20 f2 43 6f 6e 74 72  |ntroll% . .Contr|
000009d0  6f 6c 6c 50 61 6e 6e 65  6c 28 62 6c 6f 63 6b 29  |ollPannel(block)|
000009e0  0d 04 56 27 20 e7 20 68  25 3d 69 6e 64 65 78 25  |..V' . h%=index%|
000009f0  20 8c 20 f2 43 6c 69 63  6b 4f 6e 49 6e 64 65 78  | . .ClickOnIndex|
00000a00  28 62 6c 6f 63 6b 29 0d  04 60 40 20 e7 20 68 25  |(block)..`@ . h%|
00000a10  3d 65 78 74 72 61 25 20  80 20 69 25 3d 35 20 80  |=extra% . i%=5 .|
00000a20  20 45 78 74 72 61 4f 70  65 6e 3c 3e 2d 31 20 8c  | ExtraOpen<>-1 .|
00000a30  20 f2 43 6c 6f 73 65 45  78 74 72 61 28 45 78 74  | .CloseExtra(Ext|
00000a40  72 61 4f 70 65 6e 29 0d  04 6a 47 20 e7 20 68 25  |raOpen)..jG . h%|
00000a50  3d 65 78 74 72 61 25 20  80 20 62 6c 6f 63 6b 21  |=extra% . block!|
00000a60  31 36 3d 36 20 80 20 45  78 74 72 61 4f 70 65 6e  |16=6 . ExtraOpen|
00000a70  3c 3e 2d 31 20 8c 20 f2  45 78 61 6d 69 6e 65 44  |<>-1 . .ExamineD|
00000a80  69 73 63 28 45 78 74 72  61 4f 70 65 6e 29 0d 04  |isc(ExtraOpen)..|
00000a90  74 29 20 e7 20 68 25 3d  73 65 61 72 63 68 25 20  |t) . h%=search% |
00000aa0  8c 20 f2 53 65 61 72 63  68 42 75 74 74 6f 6e 73  |. .SearchButtons|
00000ab0  28 62 6c 6f 63 6b 29 0d  04 7e 25 20 e7 20 68 25  |(block)..~% . h%|
00000ac0  3d 70 72 69 6e 74 25 20  80 20 69 25 3d 33 20 8c  |=print% . i%=3 .|
00000ad0  20 f2 50 72 69 6e 74 49  6e 64 65 78 0d 04 88 06  | .PrintIndex....|
00000ae0  20 e1 0d 04 92 06 20 3a  0d 04 9c 15 20 dd 20 f2  | ..... :.... . .|
00000af0  43 6f 64 65 57 69 6d 70  4d 65 6e 75 73 0d 04 a6  |CodeWimpMenus...|
00000b00  23 20 de 20 42 6c 6f 63  6b 4d 61 69 6e 4d 65 6e  |# . BlockMainMen|
00000b10  75 20 31 2a 28 32 38 2b  28 31 30 2a 32 34 29 29  |u 1*(28+(10*24))|
00000b20  0d 04 b0 23 20 de 20 42  6c 6f 63 6b 49 63 6f 6e  |...# . BlockIcon|
00000b30  4d 65 6e 75 20 31 2a 28  32 38 2b 28 31 30 2a 32  |Menu 1*(28+(10*2|
00000b40  34 29 29 0d 04 ba 11 20  55 73 69 6e 67 4d 65 6e  |4)).... UsingMen|
00000b50  75 3d 2d 31 0d 04 c4 1b  20 f4 20 48 65 61 64 65  |u=-1.... . Heade|
00000b60  72 20 46 6f 72 20 4d 61  69 6e 20 4d 65 6e 75 0d  |r For Main Menu.|
00000b70  04 ce 26 20 24 42 6c 6f  63 6b 4d 61 69 6e 4d 65  |..& $BlockMainMe|
00000b80  6e 75 3d c0 22 44 69 73  63 4d 61 6e 61 67 65 72  |nu=."DiscManager|
00000b90  22 2c 31 31 29 0d 04 d8  1b 20 42 6c 6f 63 6b 4d  |",11).... BlockM|
00000ba0  61 69 6e 4d 65 6e 75 3f  31 32 3d 42 6c 61 63 6b  |ainMenu?12=Black|
00000bb0  0d 04 e2 17 20 42 6c 6f  63 6b 4d 61 69 6e 4d 65  |.... BlockMainMe|
00000bc0  6e 75 3f 31 33 3d 32 0d  04 ec 1b 20 42 6c 6f 63  |nu?13=2.... Bloc|
00000bd0  6b 4d 61 69 6e 4d 65 6e  75 3f 31 34 3d 42 6c 61  |kMainMenu?14=Bla|
00000be0  63 6b 0d 04 f6 1b 20 42  6c 6f 63 6b 4d 61 69 6e  |ck.... BlockMain|
00000bf0  4d 65 6e 75 3f 31 35 3d  57 68 69 74 65 0d 05 00  |Menu?15=White...|
00000c00  19 20 42 6c 6f 63 6b 4d  61 69 6e 4d 65 6e 75 21  |. BlockMainMenu!|
00000c10  31 36 3d 32 30 30 0d 05  0a 18 20 42 6c 6f 63 6b  |16=200.... Block|
00000c20  4d 61 69 6e 4d 65 6e 75  21 32 30 3d 34 30 0d 05  |MainMenu!20=40..|
00000c30  14 18 20 42 6c 6f 63 6b  4d 61 69 6e 4d 65 6e 75  |.. BlockMainMenu|
00000c40  21 32 34 3d 31 30 0d 05  1e 19 20 f4 20 44 61 74  |!24=10.... . Dat|
00000c50  61 20 46 6f 72 20 4d 61  69 6e 20 4d 65 6e 75 0d  |a For Main Menu.|
00000c60  05 28 0f 20 49 74 65 6d  50 6f 73 3d 32 38 0d 05  |.(. ItemPos=28..|
00000c70  32 34 20 f2 4d 65 6e 75  49 74 65 6d 28 22 49 6e  |24 .MenuItem("In|
00000c80  66 6f 22 2c 42 6c 6f 63  6b 4d 61 69 6e 4d 65 6e  |fo",BlockMainMen|
00000c90  75 2b 49 74 65 6d 50 6f  73 2c 69 6e 66 6f 25 2c  |u+ItemPos,info%,|
00000ca0  a3 29 0d 05 3c 10 20 49  74 65 6d 50 6f 73 2b 3d  |.)..<. ItemPos+=|
00000cb0  32 34 0d 05 46 38 20 f2  4d 65 6e 75 49 74 65 6d  |24..F8 .MenuItem|
00000cc0  28 22 53 65 61 72 63 68  22 2c 42 6c 6f 63 6b 4d  |("Search",BlockM|
00000cd0  61 69 6e 4d 65 6e 75 2b  49 74 65 6d 50 6f 73 2c  |ainMenu+ItemPos,|
00000ce0  73 65 61 72 63 68 25 2c  a3 29 0d 05 50 10 20 49  |search%,.)..P. I|
00000cf0  74 65 6d 50 6f 73 2b 3d  32 34 0d 05 5a 34 20 f2  |temPos+=24..Z4 .|
00000d00  4d 65 6e 75 49 74 65 6d  28 22 45 78 61 6d 69 6e  |MenuItem("Examin|
00000d10  65 22 2c 42 6c 6f 63 6b  4d 61 69 6e 4d 65 6e 75  |e",BlockMainMenu|
00000d20  2b 49 74 65 6d 50 6f 73  2c 2d 31 2c a3 29 0d 05  |+ItemPos,-1,.)..|
00000d30  64 10 20 49 74 65 6d 50  6f 73 2b 3d 32 34 0d 05  |d. ItemPos+=24..|
00000d40  6e 36 20 f2 4d 65 6e 75  49 74 65 6d 28 22 43 6c  |n6 .MenuItem("Cl|
00000d50  65 61 72 20 52 65 63 22  2c 42 6c 6f 63 6b 4d 61  |ear Rec",BlockMa|
00000d60  69 6e 4d 65 6e 75 2b 49  74 65 6d 50 6f 73 2c 2d  |inMenu+ItemPos,-|
00000d70  31 2c a3 29 0d 05 78 10  20 49 74 65 6d 50 6f 73  |1,.)..x. ItemPos|
00000d80  2b 3d 32 34 0d 05 82 34  20 f2 4d 65 6e 75 49 74  |+=24...4 .MenuIt|
00000d90  65 6d 28 22 47 6f 74 6f  22 2c 42 6c 6f 63 6b 4d  |em("Goto",BlockM|
00000da0  61 69 6e 4d 65 6e 75 2b  49 74 65 6d 50 6f 73 2c  |ainMenu+ItemPos,|
00000db0  67 6f 74 6f 25 2c a3 29  0d 05 8c 10 20 49 74 65  |goto%,.).... Ite|
00000dc0  6d 50 6f 73 2b 3d 32 34  0d 05 96 33 20 f2 4d 65  |mPos+=24...3 .Me|
00000dd0  6e 75 49 74 65 6d 28 22  53 61 76 65 22 2c 42 6c  |nuItem("Save",Bl|
00000de0  6f 63 6b 4d 61 69 6e 4d  65 6e 75 2b 49 74 65 6d  |ockMainMenu+Item|
00000df0  50 6f 73 2c 66 69 6c 65  2c a3 29 0d 05 a0 10 20  |Pos,file,.).... |
00000e00  49 74 65 6d 50 6f 73 2b  3d 32 34 0d 05 aa 36 20  |ItemPos+=24...6 |
00000e10  f2 4d 65 6e 75 49 74 65  6d 28 22 50 72 69 6e 74  |.MenuItem("Print|
00000e20  22 2c 42 6c 6f 63 6b 4d  61 69 6e 4d 65 6e 75 2b  |",BlockMainMenu+|
00000e30  49 74 65 6d 50 6f 73 2c  70 72 69 6e 74 25 2c a3  |ItemPos,print%,.|
00000e40  29 0d 05 b4 10 20 49 74  65 6d 50 6f 73 2b 3d 32  |).... ItemPos+=2|
00000e50  34 0d 05 be 31 20 f2 4d  65 6e 75 49 74 65 6d 28  |4...1 .MenuItem(|
00000e60  22 51 75 69 74 22 2c 42  6c 6f 63 6b 4d 61 69 6e  |"Quit",BlockMain|
00000e70  4d 65 6e 75 2b 49 74 65  6d 50 6f 73 2c 2d 31 2c  |Menu+ItemPos,-1,|
00000e80  b9 29 0d 05 c8 1b 20 f4  20 48 65 61 64 65 72 20  |.).... . Header |
00000e90  46 6f 72 20 49 63 6f 6e  20 4d 65 6e 75 0d 05 d2  |For Icon Menu...|
00000ea0  26 20 24 42 6c 6f 63 6b  49 63 6f 6e 4d 65 6e 75  |& $BlockIconMenu|
00000eb0  3d c0 22 44 69 73 63 4d  61 6e 61 67 65 72 22 2c  |=."DiscManager",|
00000ec0  31 31 29 0d 05 dc 1b 20  42 6c 6f 63 6b 49 63 6f  |11).... BlockIco|
00000ed0  6e 4d 65 6e 75 3f 31 32  3d 42 6c 61 63 6b 0d 05  |nMenu?12=Black..|
00000ee0  e6 17 20 42 6c 6f 63 6b  49 63 6f 6e 4d 65 6e 75  |.. BlockIconMenu|
00000ef0  3f 31 33 3d 32 0d 05 f0  1b 20 42 6c 6f 63 6b 49  |?13=2.... BlockI|
00000f00  63 6f 6e 4d 65 6e 75 3f  31 34 3d 42 6c 61 63 6b  |conMenu?14=Black|
00000f10  0d 05 fa 1b 20 42 6c 6f  63 6b 49 63 6f 6e 4d 65  |.... BlockIconMe|
00000f20  6e 75 3f 31 35 3d 57 68  69 74 65 0d 06 04 19 20  |nu?15=White.... |
00000f30  42 6c 6f 63 6b 49 63 6f  6e 4d 65 6e 75 21 31 36  |BlockIconMenu!16|
00000f40  3d 31 35 30 0d 06 0e 18  20 42 6c 6f 63 6b 49 63  |=150.... BlockIc|
00000f50  6f 6e 4d 65 6e 75 21 32  30 3d 34 30 0d 06 18 18  |onMenu!20=40....|
00000f60  20 42 6c 6f 63 6b 49 63  6f 6e 4d 65 6e 75 21 32  | BlockIconMenu!2|
00000f70  34 3d 31 30 0d 06 22 19  20 f4 20 44 61 74 61 20  |4=10..". . Data |
00000f80  46 6f 72 20 49 63 6f 6e  20 4d 65 6e 75 0d 06 2c  |For Icon Menu..,|
00000f90  0f 20 49 74 65 6d 50 6f  73 3d 32 38 0d 06 36 34  |. ItemPos=28..64|
00000fa0  20 f2 4d 65 6e 75 49 74  65 6d 28 22 49 6e 66 6f  | .MenuItem("Info|
00000fb0  22 2c 42 6c 6f 63 6b 49  63 6f 6e 4d 65 6e 75 2b  |",BlockIconMenu+|
00000fc0  49 74 65 6d 50 6f 73 2c  69 6e 66 6f 25 2c a3 29  |ItemPos,info%,.)|
00000fd0  0d 06 40 10 20 49 74 65  6d 50 6f 73 2b 3d 32 34  |..@. ItemPos+=24|
00000fe0  0d 06 4a 31 20 f2 4d 65  6e 75 49 74 65 6d 28 22  |..J1 .MenuItem("|
00000ff0  51 75 69 74 22 2c 42 6c  6f 63 6b 49 63 6f 6e 4d  |Quit",BlockIconM|
00001000  65 6e 75 2b 49 74 65 6d  50 6f 73 2c 2d 31 2c b9  |enu+ItemPos,-1,.|
00001010  29 0d 06 54 06 20 e1 0d  06 5e 06 20 3a 0d 06 68  |)..T. ...^. :..h|
00001020  29 20 dd f2 4d 65 6e 75  49 74 65 6d 28 44 61 74  |) ..MenuItem(Dat|
00001030  61 24 2c 50 6f 69 6e 74  2c 48 61 6e 64 6c 65 25  |a$,Point,Handle%|
00001040  2c 4c 41 53 54 29 0d 06  72 1a 20 e7 20 4c 41 53  |,LAST)..r. . LAS|
00001050  54 3d a3 20 8c 20 50 6f  69 6e 74 21 30 3d 26 30  |T=. . Point!0=&0|
00001060  0d 06 7c 1b 20 e7 20 4c  41 53 54 3d b9 20 8c 20  |..|. . LAST=. . |
00001070  50 6f 69 6e 74 21 30 3d  26 38 30 0d 06 86 14 20  |Point!0=&80.... |
00001080  50 6f 69 6e 74 21 34 3d  48 61 6e 64 6c 65 25 0d  |Point!4=Handle%.|
00001090  06 90 1c 20 50 6f 69 6e  74 21 38 3d 26 30 31 30  |... Point!8=&010|
000010a0  30 32 31 20 84 20 37 3c  3c 32 34 0d 06 9a 1b 20  |021 . 7<<24.... |
000010b0  24 28 50 6f 69 6e 74 2b  31 32 29 3d c0 44 61 74  |$(Point+12)=.Dat|
000010c0  61 24 2c 31 31 29 0d 06  a4 06 20 e1 0d 06 ae 06  |a$,11).... .....|
000010d0  20 3a 0d 06 b8 2a 20 dd  f2 42 72 69 6e 67 55 70  | :...* ..BringUp|
000010e0  4d 65 6e 75 28 4d 65 6e  75 4e 61 6d 65 2c 4d 6f  |Menu(MenuName,Mo|
000010f0  75 73 65 58 2c 4d 6f 75  73 65 59 29 0d 06 c2 32  |useX,MouseY)...2|
00001100  20 c8 99 20 22 57 69 6d  70 5f 43 72 65 61 74 65  | .. "Wimp_Create|
00001110  4d 65 6e 75 22 2c 30 2c  4d 65 6e 75 4e 61 6d 65  |Menu",0,MenuName|
00001120  2c 4d 6f 75 73 65 58 2c  4d 6f 75 73 65 59 0d 06  |,MouseX,MouseY..|
00001130  cc 17 20 55 73 69 6e 67  4d 65 6e 75 3d 4d 65 6e  |.. UsingMenu=Men|
00001140  75 4e 61 6d 65 0d 06 d6  06 20 e1 0d 06 e0 06 20  |uName.... ..... |
00001150  3a 0d 06 ea 11 20 dd 20  f2 4f 70 65 6e 4d 65 6e  |:.... . .OpenMen|
00001160  75 73 0d 06 f4 18 20 4d  65 6e 75 48 61 6e 64 6c  |us.... MenuHandl|
00001170  65 3d 62 6c 6f 63 6b 21  31 32 0d 06 fe 16 20 4d  |e=block!12.... M|
00001180  65 6e 75 49 63 6f 6e 3d  62 6c 6f 63 6b 21 31 36  |enuIcon=block!16|
00001190  0d 07 08 15 20 48 61 6e  64 6c 65 25 3d 62 6c 6f  |.... Handle%=blo|
000011a0  63 6b 21 31 32 0d 07 12  2b 20 42 75 74 74 6f 6e  |ck!12...+ Button|
000011b0  25 3d 28 28 62 6c 6f 63  6b 21 38 29 80 37 29 80  |%=((block!8).7).|
000011c0  20 ac 28 28 62 6c 6f 63  6b 21 32 30 29 80 37 29  | .((block!20).7)|
000011d0  0d 07 1c 13 20 4d 6f 75  73 65 58 3d 62 6c 6f 63  |.... MouseX=bloc|
000011e0  6b 21 30 0d 07 26 13 20  4d 6f 75 73 65 59 3d 62  |k!0..&. MouseY=b|
000011f0  6c 6f 63 6b 21 34 0d 07  30 4a 20 e7 20 42 75 74  |lock!4..0J . But|
00001200  74 6f 6e 25 3d 32 20 80  20 48 61 6e 64 6c 65 25  |ton%=2 . Handle%|
00001210  3c 3e 2d 32 20 8c 20 f2  42 72 69 6e 67 55 70 4d  |<>-2 . .BringUpM|
00001220  65 6e 75 28 42 6c 6f 63  6b 4d 61 69 6e 4d 65 6e  |enu(BlockMainMen|
00001230  75 2c 4d 6f 75 73 65 58  2c 4d 6f 75 73 65 59 29  |u,MouseX,MouseY)|
00001240  0d 07 3a 49 20 e7 20 42  75 74 74 6f 6e 25 3d 32  |..:I . Button%=2|
00001250  20 80 20 48 61 6e 64 6c  65 25 3d 2d 32 20 8c 20  | . Handle%=-2 . |
00001260  f2 42 72 69 6e 67 55 70  4d 65 6e 75 28 42 6c 6f  |.BringUpMenu(Blo|
00001270  63 6b 49 63 6f 6e 4d 65  6e 75 2c 4d 6f 75 73 65  |ckIconMenu,Mouse|
00001280  58 2c 4d 6f 75 73 65 59  29 0d 07 44 06 20 e1 0d  |X,MouseY)..D. ..|
00001290  07 4e 06 20 3a 0d 07 58  18 20 dd f2 4d 65 6e 75  |.N. :..X. ..Menu|
000012a0  53 65 6c 65 63 74 28 62  6c 6f 63 6b 29 0d 07 62  |Select(block)..b|
000012b0  13 20 c8 8e 20 55 73 69  6e 67 4d 65 6e 75 20 ca  |. .. UsingMenu .|
000012c0  0d 07 6c 2e 20 c9 20 42  6c 6f 63 6b 4d 61 69 6e  |..l. . BlockMain|
000012d0  4d 65 6e 75 20 3a 20 f2  4d 65 6e 75 53 65 6c 65  |Menu : .MenuSele|
000012e0  63 74 5f 4d 61 69 6e 28  62 6c 6f 63 6b 29 0d 07  |ct_Main(block)..|
000012f0  76 2e 20 c9 20 42 6c 6f  63 6b 49 63 6f 6e 4d 65  |v. . BlockIconMe|
00001300  6e 75 20 3a 20 f2 4d 65  6e 75 53 65 6c 65 63 74  |nu : .MenuSelect|
00001310  5f 49 63 6f 6e 28 62 6c  6f 63 6b 29 0d 07 80 06  |_Icon(block)....|
00001320  20 cb 0d 07 8a 11 20 55  73 69 6e 67 4d 65 6e 75  | ..... UsingMenu|
00001330  3d 2d 31 0d 07 94 06 20  e1 0d 07 9e 06 20 3a 0d  |=-1.... ..... :.|
00001340  07 a8 1d 20 dd f2 4d 65  6e 75 53 65 6c 65 63 74  |... ..MenuSelect|
00001350  5f 4d 61 69 6e 28 62 6c  6f 63 6b 29 0d 07 b2 11  |_Main(block)....|
00001360  20 52 6f 6f 74 3d 62 6c  6f 63 6b 21 30 0d 07 bc  | Root=block!0...|
00001370  11 20 53 75 62 31 3d 62  6c 6f 63 6b 21 34 0d 07  |. Sub1=block!4..|
00001380  c6 11 20 53 75 62 32 3d  62 6c 6f 63 6b 21 38 0d  |.. Sub2=block!8.|
00001390  07 d0 12 20 53 75 62 33  3d 62 6c 6f 63 6b 21 31  |... Sub3=block!1|
000013a0  32 0d 07 da 12 20 53 75  62 34 3d 62 6c 6f 63 6b  |2.... Sub4=block|
000013b0  21 31 36 0d 07 e4 24 20  e7 20 52 6f 6f 74 3d 31  |!16...$ . Root=1|
000013c0  20 8c 20 f2 4f 70 65 6e  57 69 6e 64 6f 77 28 73  | . .OpenWindow(s|
000013d0  65 61 72 63 68 25 29 0d  07 ee 27 20 e7 20 52 6f  |earch%)...' . Ro|
000013e0  6f 74 3d 32 20 8c 20 f2  45 78 61 6d 69 6e 65 44  |ot=2 . .ExamineD|
000013f0  69 73 63 28 45 78 74 72  61 4f 70 65 6e 29 0d 07  |isc(ExtraOpen)..|
00001400  f8 1c 20 e7 20 52 6f 6f  74 3d 33 20 8c 20 f2 43  |.. . Root=3 . .C|
00001410  6c 65 61 72 52 65 63 6f  72 64 0d 08 02 16 20 e7  |learRecord.... .|
00001420  20 52 6f 6f 74 3d 37 20  8c 20 51 75 69 74 3d b9  | Root=7 . Quit=.|
00001430  0d 08 0c 06 20 e1 0d 08  16 06 20 3a 0d 08 20 1d  |.... ..... :.. .|
00001440  20 dd f2 4d 65 6e 75 53  65 6c 65 63 74 5f 49 63  | ..MenuSelect_Ic|
00001450  6f 6e 28 62 6c 6f 63 6b  29 0d 08 2a 11 20 52 6f  |on(block)..*. Ro|
00001460  6f 74 3d 62 6c 6f 63 6b  21 30 0d 08 34 11 20 53  |ot=block!0..4. S|
00001470  75 62 31 3d 62 6c 6f 63  6b 21 34 0d 08 3e 11 20  |ub1=block!4..>. |
00001480  53 75 62 32 3d 62 6c 6f  63 6b 21 38 0d 08 48 12  |Sub2=block!8..H.|
00001490  20 53 75 62 33 3d 62 6c  6f 63 6b 21 31 32 0d 08  | Sub3=block!12..|
000014a0  52 12 20 53 75 62 34 3d  62 6c 6f 63 6b 21 31 36  |R. Sub4=block!16|
000014b0  0d 08 5c 16 20 e7 20 52  6f 6f 74 3d 31 20 8c 20  |..\. . Root=1 . |
000014c0  51 75 69 74 3d b9 0d 08  66 06 20 e1 0d 08 70 06  |Quit=...f. ...p.|
000014d0  20 3a 0d 08 7a 0e 20 dd  f2 63 6f 6c 6f 75 72 73  | :..z. ..colours|
000014e0  0d 08 84 0c 20 42 6c 61  63 6b 3d 37 0d 08 8e 0b  |.... Black=7....|
000014f0  20 52 65 64 3d 31 31 0d  08 98 0d 20 47 72 65 65  | Red=11.... Gree|
00001500  6e 3d 31 30 0d 08 a2 0d  20 59 65 6c 6c 6f 77 3d  |n=10.... Yellow=|
00001510  39 0d 08 ac 0b 20 42 6c  75 65 3d 38 0d 08 b6 0e  |9.... Blue=8....|
00001520  20 4d 61 67 65 6e 74 61  3d 35 0d 08 c0 0b 20 43  | Magenta=5.... C|
00001530  79 61 6e 3d 36 0d 08 ca  0c 20 57 68 69 74 65 3d  |yan=6.... White=|
00001540  30 0d 08 d4 06 20 e1 0d  08 de 06 20 3a 0d 08 e8  |0.... ..... :...|
00001550  18 20 dd f2 52 65 63 69  65 76 65 4d 65 73 73 61  |. ..RecieveMessa|
00001560  67 65 28 62 29 0d 08 f2  0e 20 c8 8e 20 62 21 31  |ge(b).... .. b!1|
00001570  36 20 ca 0d 08 fc 0f 20  c9 20 30 3a 51 75 69 74  |6 ..... . 0:Quit|
00001580  3d b9 0d 09 06 09 20 c9  20 31 3a 0d 09 10 15 20  |=..... . 1:.... |
00001590  c9 20 32 3a f2 44 61 74  61 53 61 76 65 28 62 29  |. 2:.DataSave(b)|
000015a0  0d 09 1a 15 20 c9 20 33  3a f2 44 61 74 61 4c 6f  |.... . 3:.DataLo|
000015b0  61 64 28 62 29 0d 09 24  06 20 cb 0d 09 2e 06 20  |ad(b)..$. ..... |
000015c0  e1 0d 09 38 06 20 3a 0d  09 42 13 20 dd 20 f2 44  |...8. :..B. . .D|
000015d0  61 74 61 4c 6f 61 64 28  62 29 0d 09 4c 0f 20 e7  |ataLoad(b)..L. .|
000015e0  20 62 21 31 32 3d 30 20  8c 0d 09 56 1a 20 70 61  | b!12=0 ...V. pa|
000015f0  74 68 24 3d a4 46 69 6e  64 4e 61 6d 65 28 62 2b  |th$=.FindName(b+|
00001600  34 34 29 0d 09 60 18 20  f2 44 6f 5f 54 68 65 5f  |44)..`. .Do_The_|
00001610  4c 6f 61 64 28 70 61 74  68 24 29 0d 09 6a 1a 20  |Load(path$)..j. |
00001620  62 21 31 32 3d 62 21 38  3a 62 21 31 36 3d 34 3a  |b!12=b!8:b!16=4:|
00001630  21 62 3d 36 34 0d 09 74  06 20 cd 0d 09 7e 06 20  |!b=64..t. ...~. |
00001640  e1 0d 09 88 06 20 3a 0d  09 92 15 20 dd 20 a4 46  |..... :.... . .F|
00001650  69 6e 64 4e 61 6d 65 28  70 74 72 29 0d 09 9c 0a  |indName(ptr)....|
00001660  20 70 24 3d 22 22 0d 09  a6 0f 20 c8 95 20 3f 70  | p$="".... .. ?p|
00001670  74 72 3c 3e 30 0d 09 b0  15 20 70 24 2b 3d bd 3f  |tr<>0.... p$+=.?|
00001680  70 74 72 3a 70 74 72 2b  3d 31 0d 09 ba 06 20 ce  |ptr:ptr+=1.... .|
00001690  0d 09 c4 08 20 3d 70 24  0d 09 ce 06 20 3a 0d 09  |.... =p$.... :..|
000016a0  d8 0e 20 dd 20 f2 4f 4b  53 61 76 65 0d 09 e2 22  |.. . .OKSave..."|
000016b0  20 4e 61 6d 65 24 3d a4  47 65 74 5f 49 63 6f 6e  | Name$=.Get_Icon|
000016c0  5f 53 74 61 74 65 28 66  69 6c 65 2c 31 29 0d 09  |_State(file,1)..|
000016d0  ec 14 20 e7 20 a7 4e 61  6d 65 24 2c 22 2e 22 29  |.. . .Name$,".")|
000016e0  20 8c 0d 09 f6 18 20 f2  44 6f 5f 54 68 65 5f 53  | ..... .Do_The_S|
000016f0  61 76 65 28 4e 61 6d 65  24 29 0d 0a 00 06 20 cc  |ave(Name$).... .|
00001700  0d 0a 0a 3e 20 24 62 6c  6f 63 6b 3d 22 20 20 20  |...> $block="   |
00001710  20 54 6f 20 73 61 76 65  2c 20 64 72 61 67 20 74  | To save, drag t|
00001720  68 65 20 69 63 6f 6e 20  74 6f 20 61 20 64 69 72  |he icon to a dir|
00001730  65 63 74 6f 72 79 20 76  69 65 77 65 72 22 0d 0a  |ectory viewer"..|
00001740  14 31 20 c8 99 20 22 57  69 6d 70 5f 52 65 70 6f  |.1 .. "Wimp_Repo|
00001750  72 74 45 72 72 6f 72 22  2c 62 6c 6f 63 6b 2c 31  |rtError",block,1|
00001760  2c 22 44 69 73 63 20 4d  61 6e 61 67 65 72 22 0d  |,"Disc Manager".|
00001770  0a 1e 06 20 cd 0d 0a 28  06 20 e1 0d 0a 32 06 20  |... ...(. ...2. |
00001780  3a 0d 0a 3c 13 20 dd 20  f2 44 61 74 61 53 61 76  |:..<. . .DataSav|
00001790  65 28 62 29 0d 0a 46 21  20 f2 44 6f 5f 54 68 65  |e(b)..F! .Do_The|
000017a0  5f 53 61 76 65 28 a4 47  65 74 4e 61 6d 65 28 62  |_Save(.GetName(b|
000017b0  2b 34 34 29 29 0d 0a 50  2a 20 f2 53 65 74 5f 49  |+44))..P* .Set_I|
000017c0  63 6f 6e 5f 54 65 78 74  28 66 69 6c 65 2c 31 2c  |con_Text(file,1,|
000017d0  a4 47 65 74 4e 61 6d 65  28 62 2b 34 34 29 29 0d  |.GetName(b+44)).|
000017e0  0a 5a 1a 20 62 21 31 32  3d 62 21 38 3a 62 21 31  |.Z. b!12=b!8:b!1|
000017f0  36 3d 33 3a 21 62 3d 36  34 0d 0a 64 29 20 c8 99  |6=3:!b=64..d) ..|
00001800  20 22 57 69 6d 70 5f 53  65 6e 64 4d 65 73 73 61  | "Wimp_SendMessa|
00001810  67 65 22 2c 31 37 2c 62  2c 62 21 32 30 2c 62 21  |ge",17,b,b!20,b!|
00001820  32 34 0d 0a 6e 06 20 e1  0d 0a 78 06 20 3a 0d 0a  |24..n. ...x. :..|
00001830  82 14 20 dd 20 a4 47 65  74 4e 61 6d 65 28 70 74  |.. . .GetName(pt|
00001840  72 29 0d 0a 8c 0a 20 66  24 3d 22 22 0d 0a 96 1a  |r).... f$=""....|
00001850  20 c8 95 20 3f 70 74 72  3c 3e 30 20 80 20 3f 70  | .. ?ptr<>0 . ?p|
00001860  74 72 3c 3e 31 33 0d 0a  a0 17 20 66 24 3d 66 24  |tr<>13.... f$=f$|
00001870  2b bd 3f 70 74 72 3a 70  74 72 2b 3d 31 0d 0a aa  |+.?ptr:ptr+=1...|
00001880  06 20 ce 0d 0a b4 08 20  3d 66 24 0d 0a be 06 20  |. ..... =f$.... |
00001890  3a 0d 0a c8 0c 20 dd 20  f2 73 61 76 65 0d 0a d2  |:.... . .save...|
000018a0  22 20 4e 61 6d 65 24 3d  a4 47 65 74 5f 49 63 6f  |" Name$=.Get_Ico|
000018b0  6e 5f 53 74 61 74 65 28  66 69 6c 65 2c 31 29 0d  |n_State(file,1).|
000018c0  0a dc 24 20 c8 99 20 22  57 69 6d 70 5f 47 65 74  |..$ .. "Wimp_Get|
000018d0  50 6f 69 6e 74 65 72 49  6e 66 6f 22 2c 2c 62 6c  |PointerInfo",,bl|
000018e0  6f 63 6b 0d 0a e6 1b 20  62 6c 6f 63 6b 21 32 30  |ock.... block!20|
000018f0  3d 36 34 3a 62 6c 6f 63  6b 21 33 32 3d 30 0d 0a  |=64:block!32=0..|
00001900  f0 21 20 62 6c 6f 63 6b  21 33 36 3d 31 3a 62 6c  |.! block!36=1:bl|
00001910  6f 63 6b 21 34 30 3d 62  6c 6f 63 6b 21 31 32 0d  |ock!40=block!12.|
00001920  0a fa 16 20 62 6c 6f 63  6b 21 34 34 3d 62 6c 6f  |... block!44=blo|
00001930  63 6b 21 31 36 0d 0b 04  14 20 62 6c 6f 63 6b 21  |ck!16.... block!|
00001940  34 38 3d 21 62 6c 6f 63  6b 0d 0b 0e 15 20 62 6c  |48=!block.... bl|
00001950  6f 63 6b 21 35 32 3d 62  6c 6f 63 6b 21 34 0d 0b  |ock!52=block!4..|
00001960  18 14 20 62 6c 6f 63 6b  21 35 36 3d 31 30 30 2a  |.. block!56=100*|
00001970  34 30 0d 0b 22 12 20 62  6c 6f 63 6b 21 36 30 3d  |40..". block!60=|
00001980  26 46 45 45 0d 0b 2c 29  20 24 28 62 6c 6f 63 6b  |&FEE..,) $(block|
00001990  2b 36 34 29 3d a4 46 69  6e 64 4c 61 73 74 50 61  |+64)=.FindLastPa|
000019a0  74 68 4e 61 6d 65 28 4e  61 6d 65 24 29 0d 0b 36  |thName(Name$)..6|
000019b0  38 20 c8 99 20 22 57 69  6d 70 5f 53 65 6e 64 4d  |8 .. "Wimp_SendM|
000019c0  65 73 73 61 67 65 22 2c  31 37 2c 62 6c 6f 63 6b  |essage",17,block|
000019d0  2b 32 30 2c 62 6c 6f 63  6b 21 31 32 2c 62 6c 6f  |+20,block!12,blo|
000019e0  63 6b 21 31 36 0d 0b 40  06 20 e1 0d 0b 4a 06 20  |ck!16..@. ...J. |
000019f0  3a 0d 0b 54 1f 20 dd 20  a4 46 69 6e 64 4c 61 73  |:..T. . .FindLas|
00001a00  74 50 61 74 68 4e 61 6d  65 28 70 61 74 68 24 29  |tPathName(path$)|
00001a10  0d 0b 5e 13 20 c8 95 20  a7 70 61 74 68 24 2c 22  |..^. .. .path$,"|
00001a20  2e 22 29 0d 0b 68 20 20  70 61 74 68 24 3d c1 70  |.")..h  path$=.p|
00001a30  61 74 68 24 2c a7 70 61  74 68 24 2c 22 2e 22 29  |ath$,.path$,".")|
00001a40  2b 31 29 0d 0b 72 06 20  ce 0d 0b 7c 0b 20 3d 70  |+1)..r. ...|. =p|
00001a50  61 74 68 24 0d 0b 86 06  20 3a 0d 0b 90 1a 20 dd  |ath$.... :.... .|
00001a60  f2 44 6f 5f 54 68 65 5f  53 61 76 65 28 4e 4e 41  |.Do_The_Save(NNA|
00001a70  4d 45 24 29 0d 0b 9a 1d  20 f2 57 72 69 74 65 49  |ME$).... .WriteI|
00001a80  63 6f 6e 73 54 6f 49 6e  64 65 78 28 50 61 67 65  |consToIndex(Page|
00001a90  29 0d 0b a4 10 20 58 3d  ae 28 4e 4e 41 4d 45 24  |).... X=.(NNAME$|
00001aa0  29 0d 0b ae 12 20 f1 20  23 58 2c 4d 61 78 50 61  |).... . #X,MaxPa|
00001ab0  67 65 73 0d 0b b8 1d 20  e3 20 53 61 76 65 3d 31  |ges.... . Save=1|
00001ac0  20 b8 20 28 4d 61 78 50  61 67 65 73 2a 31 30 29  | . (MaxPages*10)|
00001ad0  0d 0b c2 15 20 f1 20 23  58 2c 54 65 78 74 24 28  |.... . #X,Text$(|
00001ae0  53 61 76 65 29 0d 0b cc  06 20 ed 0d 0b d6 1f 20  |Save).... ..... |
00001af0  e3 20 53 61 76 65 3d 31  20 b8 20 28 4d 61 78 50  |. Save=1 . (MaxP|
00001b00  61 67 65 73 2a 31 30 2a  35 29 0d 0b e0 16 20 f1  |ages*10*5).... .|
00001b10  20 23 58 2c 4e 6f 74 65  73 24 28 53 61 76 65 29  | #X,Notes$(Save)|
00001b20  0d 0b ea 06 20 ed 0d 0b  f4 09 20 d9 20 23 58 0d  |.... ..... . #X.|
00001b30  0b fe 21 20 ff 20 22 53  45 54 54 59 50 45 20 22  |..! . "SETTYPE "|
00001b40  2b 4e 4e 41 4d 45 24 2b  22 20 49 6e 64 65 78 22  |+NNAME$+" Index"|
00001b50  0d 0c 08 06 20 e1 0d 0c  12 06 20 3a 0d 0c 1c 1a  |.... ..... :....|
00001b60  20 dd f2 44 6f 5f 54 68  65 5f 4c 6f 61 64 28 4e  | ..Do_The_Load(N|
00001b70  4e 41 4d 45 24 29 0d 0c  26 10 20 58 3d 8e 28 4e  |NAME$)..&. X=.(N|
00001b80  4e 41 4d 45 24 29 0d 0c  30 12 20 e8 20 23 58 2c  |NAME$)..0. . #X,|
00001b90  4d 61 78 50 61 67 65 73  0d 0c 3a 1d 20 e3 20 53  |MaxPages..:. . S|
00001ba0  61 76 65 3d 31 20 b8 20  28 4d 61 78 50 61 67 65  |ave=1 . (MaxPage|
00001bb0  73 2a 31 30 29 0d 0c 44  15 20 e8 20 23 58 2c 54  |s*10)..D. . #X,T|
00001bc0  65 78 74 24 28 53 61 76  65 29 0d 0c 4e 06 20 ed  |ext$(Save)..N. .|
00001bd0  0d 0c 58 1f 20 e3 20 53  61 76 65 3d 31 20 b8 20  |..X. . Save=1 . |
00001be0  28 4d 61 78 50 61 67 65  73 2a 31 30 2a 35 29 0d  |(MaxPages*10*5).|
00001bf0  0c 62 16 20 e8 20 23 58  2c 4e 6f 74 65 73 24 28  |.b. . #X,Notes$(|
00001c00  53 61 76 65 29 0d 0c 6c  06 20 ed 0d 0c 76 0b 20  |Save)..l. ...v. |
00001c10  50 61 67 65 3d 31 0d 0c  80 15 20 f2 53 65 74 50  |Page=1.... .SetP|
00001c20  61 67 65 49 63 6f 6e 73  28 31 29 0d 0c 8a 09 20  |ageIcons(1).... |
00001c30  d9 20 23 58 0d 0c 94 06  20 e1 0d 0c 9e 06 20 3a  |. #X.... ..... :|
00001c40  0d 0c a8 15 20 dd 20 f2  4c 6f 61 64 54 65 6d 70  |.... . .LoadTemp|
00001c50  6c 61 74 65 73 0d 0c b2  21 20 de 20 62 62 6c 6f  |lates...! . bblo|
00001c60  63 6b 20 26 38 30 30 2c  74 65 6d 70 6c 61 74 65  |ck &800,template|
00001c70  25 20 26 38 30 30 0d 0c  bc 36 20 c8 99 20 22 57  |% &800...6 .. "W|
00001c80  69 6d 70 5f 4f 70 65 6e  54 65 6d 70 6c 61 74 65  |imp_OpenTemplate|
00001c90  22 2c 2c 22 3c 44 69 73  63 4d 61 6e 24 44 69 72  |",,"<DiscMan$Dir|
00001ca0  3e 2e 54 65 6d 70 6c 61  74 65 73 22 0d 0c c6 24  |>.Templates"...$|
00001cb0  20 ea 20 63 25 2c 65 6e  64 25 20 3a 20 65 6e 64  | . c%,end% : end|
00001cc0  25 3d 74 65 6d 70 6c 61  74 65 25 2b 26 38 30 30  |%=template%+&800|
00001cd0  0d 0c d0 06 20 3a 0d 0c  da 52 20 c8 99 20 22 57  |.... :...R .. "W|
00001ce0  69 6d 70 5f 4c 6f 61 64  54 65 6d 70 6c 61 74 65  |imp_LoadTemplate|
00001cf0  22 2c 2c 62 62 6c 6f 63  6b 2c 74 65 6d 70 6c 61  |",,bblock,templa|
00001d00  74 65 25 2c 65 6e 64 25  2c 2d 31 2c 22 49 6e 66  |te%,end%,-1,"Inf|
00001d10  6f 22 2c 30 20 b8 20 2c  2c 74 65 6d 70 6c 61 74  |o",0 . ,,templat|
00001d20  65 25 2c 2c 2c 2c 63 25  0d 0c e4 28 20 c8 99 20  |e%,,,,c%...( .. |
00001d30  22 57 69 6d 70 5f 43 72  65 61 74 65 57 69 6e 64  |"Wimp_CreateWind|
00001d40  6f 77 22 2c 2c 62 62 6c  6f 63 6b 20 b8 20 63 25  |ow",,bblock . c%|
00001d50  0d 0c ee 0d 20 69 6e 66  6f 25 3d 63 25 0d 0c f8  |.... info%=c%...|
00001d60  06 20 3a 0d 0d 02 53 20  c8 99 20 22 57 69 6d 70  |. :...S .. "Wimp|
00001d70  5f 4c 6f 61 64 54 65 6d  70 6c 61 74 65 22 2c 2c  |_LoadTemplate",,|
00001d80  62 62 6c 6f 63 6b 2c 74  65 6d 70 6c 61 74 65 25  |bblock,template%|
00001d90  2c 65 6e 64 25 2c 2d 31  2c 22 49 6e 64 65 78 22  |,end%,-1,"Index"|
00001da0  2c 30 20 b8 20 2c 2c 74  65 6d 70 6c 61 74 65 25  |,0 . ,,template%|
00001db0  2c 2c 2c 2c 63 25 0d 0d  0c 28 20 c8 99 20 22 57  |,,,,c%...( .. "W|
00001dc0  69 6d 70 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |imp_CreateWindow|
00001dd0  22 2c 2c 62 62 6c 6f 63  6b 20 b8 20 63 25 0d 0d  |",,bblock . c%..|
00001de0  16 0e 20 69 6e 64 65 78  25 3d 63 25 0d 0d 20 06  |.. index%=c%.. .|
00001df0  20 3a 0d 0d 2a 56 20 c8  99 20 22 57 69 6d 70 5f  | :..*V .. "Wimp_|
00001e00  4c 6f 61 64 54 65 6d 70  6c 61 74 65 22 2c 2c 62  |LoadTemplate",,b|
00001e10  62 6c 6f 63 6b 2c 74 65  6d 70 6c 61 74 65 25 2c  |block,template%,|
00001e20  65 6e 64 25 2c 2d 31 2c  22 43 6f 6e 74 72 6f 6c  |end%,-1,"Control|
00001e30  6c 22 2c 30 20 b8 20 2c  2c 74 65 6d 70 6c 61 74  |l",0 . ,,templat|
00001e40  65 25 2c 2c 2c 2c 63 25  0d 0d 34 1c 20 62 62 6c  |e%,,,,c%..4. bbl|
00001e50  6f 63 6b 21 36 34 3d 53  70 72 69 74 65 50 6f 69  |ock!64=SpritePoi|
00001e60  6e 74 65 72 0d 0d 3e 28  20 c8 99 20 22 57 69 6d  |nter..>( .. "Wim|
00001e70  70 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 22 2c  |p_CreateWindow",|
00001e80  2c 62 62 6c 6f 63 6b 20  b8 20 63 25 0d 0d 48 11  |,bblock . c%..H.|
00001e90  20 63 6f 6e 74 72 6f 6c  6c 25 3d 63 25 0d 0d 52  | controll%=c%..R|
00001ea0  06 20 3a 0d 0d 5c 53 20  c8 99 20 22 57 69 6d 70  |. :..\S .. "Wimp|
00001eb0  5f 4c 6f 61 64 54 65 6d  70 6c 61 74 65 22 2c 2c  |_LoadTemplate",,|
00001ec0  62 62 6c 6f 63 6b 2c 74  65 6d 70 6c 61 74 65 25  |bblock,template%|
00001ed0  2c 65 6e 64 25 2c 2d 31  2c 22 45 78 74 72 61 22  |,end%,-1,"Extra"|
00001ee0  2c 30 20 b8 20 2c 2c 74  65 6d 70 6c 61 74 65 25  |,0 . ,,template%|
00001ef0  2c 2c 2c 2c 63 25 0d 0d  66 28 20 c8 99 20 22 57  |,,,,c%..f( .. "W|
00001f00  69 6d 70 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |imp_CreateWindow|
00001f10  22 2c 2c 62 62 6c 6f 63  6b 20 b8 20 63 25 0d 0d  |",,bblock . c%..|
00001f20  70 0e 20 65 78 74 72 61  25 3d 63 25 0d 0d 7a 06  |p. extra%=c%..z.|
00001f30  20 3a 0d 0d 84 54 20 c8  99 20 22 57 69 6d 70 5f  | :...T .. "Wimp_|
00001f40  4c 6f 61 64 54 65 6d 70  6c 61 74 65 22 2c 2c 62  |LoadTemplate",,b|
00001f50  62 6c 6f 63 6b 2c 74 65  6d 70 6c 61 74 65 25 2c  |block,template%,|
00001f60  65 6e 64 25 2c 2d 31 2c  22 53 65 61 72 63 68 22  |end%,-1,"Search"|
00001f70  2c 30 20 b8 20 2c 2c 74  65 6d 70 6c 61 74 65 25  |,0 . ,,template%|
00001f80  2c 2c 2c 2c 63 25 0d 0d  8e 28 20 c8 99 20 22 57  |,,,,c%...( .. "W|
00001f90  69 6d 70 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |imp_CreateWindow|
00001fa0  22 2c 2c 62 62 6c 6f 63  6b 20 b8 20 63 25 0d 0d  |",,bblock . c%..|
00001fb0  98 0f 20 73 65 61 72 63  68 25 3d 63 25 0d 0d a2  |.. search%=c%...|
00001fc0  06 20 3a 0d 0d ac 53 20  c8 99 20 22 57 69 6d 70  |. :...S .. "Wimp|
00001fd0  5f 4c 6f 61 64 54 65 6d  70 6c 61 74 65 22 2c 2c  |_LoadTemplate",,|
00001fe0  62 62 6c 6f 63 6b 2c 74  65 6d 70 6c 61 74 65 25  |bblock,template%|
00001ff0  2c 65 6e 64 25 2c 2d 31  2c 22 46 69 6e 64 73 22  |,end%,-1,"Finds"|
00002000  2c 30 20 b8 20 2c 2c 74  65 6d 70 6c 61 74 65 25  |,0 . ,,template%|
00002010  2c 2c 2c 2c 63 25 0d 0d  b6 28 20 c8 99 20 22 57  |,,,,c%...( .. "W|
00002020  69 6d 70 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |imp_CreateWindow|
00002030  22 2c 2c 62 62 6c 6f 63  6b 20 b8 20 63 25 0d 0d  |",,bblock . c%..|
00002040  c0 0e 20 66 69 6e 64 73  25 3d 63 25 0d 0d ca 06  |.. finds%=c%....|
00002050  20 3a 0d 0d d4 52 20 c8  99 20 22 57 69 6d 70 5f  | :...R .. "Wimp_|
00002060  4c 6f 61 64 54 65 6d 70  6c 61 74 65 22 2c 2c 62  |LoadTemplate",,b|
00002070  62 6c 6f 63 6b 2c 74 65  6d 70 6c 61 74 65 25 2c  |block,template%,|
00002080  65 6e 64 25 2c 2d 31 2c  22 53 61 76 65 22 2c 30  |end%,-1,"Save",0|
00002090  20 b8 20 2c 2c 74 65 6d  70 6c 61 74 65 25 2c 2c  | . ,,template%,,|
000020a0  2c 2c 63 25 0d 0d de 28  20 c8 99 20 22 57 69 6d  |,,c%...( .. "Wim|
000020b0  70 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 22 2c  |p_CreateWindow",|
000020c0  2c 62 62 6c 6f 63 6b 20  b8 20 63 25 0d 0d e8 0c  |,bblock . c%....|
000020d0  20 66 69 6c 65 3d 63 25  0d 0d f2 06 20 3a 0d 0d  | file=c%.... :..|
000020e0  fc 52 20 c8 99 20 22 57  69 6d 70 5f 4c 6f 61 64  |.R .. "Wimp_Load|
000020f0  54 65 6d 70 6c 61 74 65  22 2c 2c 62 62 6c 6f 63  |Template",,bbloc|
00002100  6b 2c 74 65 6d 70 6c 61  74 65 25 2c 65 6e 64 25  |k,template%,end%|
00002110  2c 2d 31 2c 22 47 6f 74  6f 22 2c 30 20 b8 20 2c  |,-1,"Goto",0 . ,|
00002120  2c 74 65 6d 70 6c 61 74  65 25 2c 2c 2c 2c 63 25  |,template%,,,,c%|
00002130  0d 0e 06 28 20 c8 99 20  22 57 69 6d 70 5f 43 72  |...( .. "Wimp_Cr|
00002140  65 61 74 65 57 69 6e 64  6f 77 22 2c 2c 62 62 6c  |eateWindow",,bbl|
00002150  6f 63 6b 20 b8 20 63 25  0d 0e 10 0d 20 67 6f 74  |ock . c%.... got|
00002160  6f 25 3d 63 25 0d 0e 1a  06 20 3a 0d 0e 24 53 20  |o%=c%.... :..$S |
00002170  c8 99 20 22 57 69 6d 70  5f 4c 6f 61 64 54 65 6d  |.. "Wimp_LoadTem|
00002180  70 6c 61 74 65 22 2c 2c  62 62 6c 6f 63 6b 2c 74  |plate",,bblock,t|
00002190  65 6d 70 6c 61 74 65 25  2c 65 6e 64 25 2c 2d 31  |emplate%,end%,-1|
000021a0  2c 22 50 72 69 6e 74 22  2c 30 20 b8 20 2c 2c 74  |,"Print",0 . ,,t|
000021b0  65 6d 70 6c 61 74 65 25  2c 2c 2c 2c 63 25 0d 0e  |emplate%,,,,c%..|
000021c0  2e 28 20 c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |.( .. "Wimp_Crea|
000021d0  74 65 57 69 6e 64 6f 77  22 2c 2c 62 62 6c 6f 63  |teWindow",,bbloc|
000021e0  6b 20 b8 20 63 25 0d 0e  38 0e 20 70 72 69 6e 74  |k . c%..8. print|
000021f0  25 3d 63 25 0d 0e 42 1c  20 c8 99 20 22 57 69 6d  |%=c%..B. .. "Wim|
00002200  70 5f 43 6c 6f 73 65 54  65 6d 70 6c 61 74 65 22  |p_CloseTemplate"|
00002210  0d 0e 4c 06 20 e1 0d 0e  56 06 20 3a 0d 0e 60 1c  |..L. ...V. :..`.|
00002220  20 dd 20 f2 57 69 6d 70  5f 45 72 72 6f 72 28 6d  | . .Wimp_Error(m|
00002230  65 73 73 61 67 65 24 29  0d 0e 6a 21 20 21 62 6c  |essage$)..j! !bl|
00002240  6f 63 6b 3d 9f 3a 24 28  62 6c 6f 63 6b 2b 34 29  |ock=.:$(block+4)|
00002250  3d 6d 65 73 73 61 67 65  24 0d 0e 74 31 20 c8 99  |=message$..t1 ..|
00002260  20 22 57 69 6d 70 5f 52  65 70 6f 72 74 45 72 72  | "Wimp_ReportErr|
00002270  6f 72 22 2c 62 6c 6f 63  6b 2c 31 2c 22 44 69 73  |or",block,1,"Dis|
00002280  63 20 4d 61 6e 61 67 65  72 22 0d 0e 7e 06 20 e1  |c Manager"..~. .|
00002290  0d 0e 88 06 20 3a 0d 0e  92 1b 20 dd f2 41 63 74  |.... :.... ..Act|
000022a0  69 76 61 74 65 5f 54 61  73 6b 28 4e 61 6d 65 24  |ivate_Task(Name$|
000022b0  29 0d 0e 9c 18 20 de 20  53 65 74 53 79 73 74 65  |).... . SetSyste|
000022c0  6d 54 61 73 6b 49 44 20  34 0d 0e a6 1c 20 24 53  |mTaskID 4.... $S|
000022d0  65 74 53 79 73 74 65 6d  54 61 73 6b 49 44 3d 22  |etSystemTaskID="|
000022e0  54 41 53 4b 22 0d 0e b0  34 20 c8 99 20 22 57 69  |TASK"...4 .. "Wi|
000022f0  6d 70 5f 49 6e 69 74 69  61 6c 69 73 65 22 2c 32  |mp_Initialise",2|
00002300  30 30 2c 21 53 65 74 53  79 73 74 65 6d 54 61 73  |00,!SetSystemTas|
00002310  6b 49 44 2c 4e 61 6d 65  24 0d 0e ba 06 20 e1 0d  |kID,Name$.... ..|
00002320  0e c4 06 20 3a 0d 0e ce  14 20 dd f2 49 6e 69 74  |... :.... ..Init|
00002330  5f 4e 65 77 5f 56 61 72  73 0d 0e d8 12 20 44 69  |_New_Vars.... Di|
00002340  73 63 4c 69 6d 69 74 3d  33 30 30 0d 0e e2 1b 20  |scLimit=300.... |
00002350  50 61 67 65 4c 69 6d 69  74 3d 44 69 73 63 4c 69  |PageLimit=DiscLi|
00002360  6d 69 74 2f 31 30 0d 0e  ec 11 20 de 20 62 6c 6f  |mit/10.... . blo|
00002370  63 6b 20 26 33 30 30 0d  0e f6 17 20 de 20 54 65  |ck &300.... . Te|
00002380  78 74 24 28 44 69 73 63  4c 69 6d 69 74 29 0d 0f  |xt$(DiscLimit)..|
00002390  00 1a 20 de 20 4e 6f 74  65 73 24 28 44 69 73 63  |.. . Notes$(Disc|
000023a0  4c 69 6d 69 74 2a 35 29  0d 0f 0a 1d 20 de 20 53  |Limit*5).... . S|
000023b0  65 61 72 63 68 46 69 6e  64 73 28 44 69 73 63 4c  |earchFinds(DiscL|
000023c0  69 6d 69 74 29 0d 0f 14  13 20 de 20 42 75 66 66  |imit).... . Buff|
000023d0  65 72 25 20 31 30 30 30  0d 0f 1e 13 20 de 20 52  |er% 1000.... . R|
000023e0  6f 6f 74 44 69 72 24 28  37 37 29 0d 0f 28 13 20  |ootDir$(77)..(. |
000023f0  53 65 61 72 63 68 5f 45  78 74 72 61 3d b9 0d 0f  |Search_Extra=...|
00002400  32 13 20 53 65 61 72 63  68 5f 54 69 74 6c 65 3d  |2. Search_Title=|
00002410  a3 0d 0f 3c 0b 20 50 61  67 65 3d 31 0d 0f 46 0f  |...<. Page=1..F.|
00002420  20 4d 61 78 50 61 67 65  73 3d 31 0d 0f 50 11 20  | MaxPages=1..P. |
00002430  45 78 74 72 61 4f 70 65  6e 3d 2d 31 0d 0f 5a 0c  |ExtraOpen=-1..Z.|
00002440  20 46 69 6e 64 73 3d 30  0d 0f 64 06 20 e1 0d 0f  | Finds=0..d. ...|
00002450  6e 06 20 3a 0d 0f 78 23  20 dd f2 42 61 72 5f 49  |n. :..x# ..Bar_I|
00002460  63 6f 6e 28 41 70 70 6c  69 63 61 74 69 6f 6e 24  |con(Application$|
00002470  2c 73 69 64 65 24 29 0d  0f 82 09 20 ea 20 70 25  |,side$).... . p%|
00002480  0d 0f 8c 1c 20 e7 20 73  69 64 65 24 3d 22 4c 45  |.... . side$="LE|
00002490  46 54 22 20 8c 20 6e 75  6d 3d 2d 32 0d 0f 96 1d  |FT" . num=-2....|
000024a0  20 e7 20 73 69 64 65 24  3d 22 52 49 47 48 54 22  | . side$="RIGHT"|
000024b0  20 8c 20 6e 75 6d 3d 2d  31 0d 0f a0 10 20 62 6c  | . num=-1.... bl|
000024c0  6f 63 6b 21 30 3d 6e 75  6d 0d 0f aa 18 20 62 6c  |ock!0=num.... bl|
000024d0  6f 63 6b 21 34 3d 30 3a  62 6c 6f 63 6b 21 38 3d  |ock!4=0:block!8=|
000024e0  30 0d 0f b4 1c 20 62 6c  6f 63 6b 21 31 32 3d 36  |0.... block!12=6|
000024f0  38 3a 62 6c 6f 63 6b 21  31 36 3d 36 38 0d 0f be  |8:block!16=68...|
00002500  2b 20 62 6c 6f 63 6b 21  32 30 3d 26 33 30 31 32  |+ block!20=&3012|
00002510  20 84 20 57 68 69 74 65  3c 3c 32 38 20 84 20 42  | . White<<28 . B|
00002520  6c 61 63 6b 3c 3c 32 34  0d 0f c8 22 20 24 28 62  |lack<<24..." $(b|
00002530  6c 6f 63 6b 2b 32 34 29  3d c0 41 70 70 6c 69 63  |lock+24)=.Applic|
00002540  61 74 69 6f 6e 24 2c 31  31 29 0d 0f d2 21 20 c8  |ation$,11)...! .|
00002550  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 49 63  |. "Wimp_CreateIc|
00002560  6f 6e 22 2c 30 2c 62 6c  6f 63 6b 0d 0f dc 06 20  |on",0,block.... |
00002570  e1 0d 0f e6 06 20 3a 0d  0f f0 25 20 dd 20 a4 47  |..... :...% . .G|
00002580  65 74 5f 49 63 6f 6e 5f  53 74 61 74 65 28 48 61  |et_Icon_State(Ha|
00002590  6e 64 6c 65 25 2c 49 63  6f 6e 25 29 0d 0f fa 14  |ndle%,Icon%)....|
000025a0  20 62 6c 6f 63 6b 21 30  3d 48 61 6e 64 6c 65 25  | block!0=Handle%|
000025b0  0d 10 04 12 20 62 6c 6f  63 6b 21 34 3d 49 63 6f  |.... block!4=Ico|
000025c0  6e 25 0d 10 0e 23 20 c8  99 20 22 57 69 6d 70 5f  |n%...# .. "Wimp_|
000025d0  47 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 30 2c  |GetIconState",0,|
000025e0  62 6c 6f 63 6b 0d 10 18  11 20 3d 24 28 62 6c 6f  |block.... =$(blo|
000025f0  63 6b 21 32 38 29 0d 10  22 06 20 3a 0d 10 2c 2a  |ck!28)..". :..,*|
00002600  20 dd 20 f2 53 65 74 5f  49 63 6f 6e 5f 54 65 78  | . .Set_Icon_Tex|
00002610  74 28 48 61 6e 64 6c 65  25 2c 49 63 6f 6e 25 2c  |t(Handle%,Icon%,|
00002620  54 65 78 74 24 29 0d 10  36 14 20 62 6c 6f 63 6b  |Text$)..6. block|
00002630  21 30 3d 48 61 6e 64 6c  65 25 0d 10 40 12 20 62  |!0=Handle%..@. b|
00002640  6c 6f 63 6b 21 34 3d 49  63 6f 6e 25 0d 10 4a 23  |lock!4=Icon%..J#|
00002650  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 49 63 6f  | .. "Wimp_GetIco|
00002660  6e 53 74 61 74 65 22 2c  30 2c 62 6c 6f 63 6b 0d  |nState",0,block.|
00002670  10 54 16 20 24 28 62 6c  6f 63 6b 21 32 38 29 3d  |.T. $(block!28)=|
00002680  54 65 78 74 24 0d 10 5e  0e 20 62 6c 6f 63 6b 21  |Text$..^. block!|
00002690  38 3d 30 0d 10 68 0f 20  62 6c 6f 63 6b 21 31 32  |8=0..h. block!12|
000026a0  3d 30 0d 10 72 23 20 c8  99 20 22 57 69 6d 70 5f  |=0..r# .. "Wimp_|
000026b0  53 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 30 2c  |SetIconState",0,|
000026c0  62 6c 6f 63 6b 0d 10 7c  06 20 e1 0d 10 86 06 20  |block..|. ..... |
000026d0  3a 0d 10 90 1c 20 dd f2  53 65 74 50 61 67 65 49  |:.... ..SetPageI|
000026e0  63 6f 6e 73 28 43 75 72  72 65 6e 74 29 0d 10 9a  |cons(Current)...|
000026f0  1e 20 52 65 61 6c 4e 75  6d 62 65 72 3d 28 43 75  |. RealNumber=(Cu|
00002700  72 72 65 6e 74 2a 31 30  29 2d 39 0d 10 a4 1a 20  |rrent*10)-9.... |
00002710  e3 20 49 63 6f 6e 50 6f  69 6e 74 65 72 3d 31 30  |. IconPointer=10|
00002720  20 b8 20 31 39 0d 10 ae  35 20 f2 53 65 74 5f 49  | . 19...5 .Set_I|
00002730  63 6f 6e 5f 54 65 78 74  28 69 6e 64 65 78 25 2c  |con_Text(index%,|
00002740  49 63 6f 6e 50 6f 69 6e  74 65 72 2c c3 28 52 65  |IconPointer,.(Re|
00002750  61 6c 4e 75 6d 62 65 72  29 29 0d 10 b8 12 20 52  |alNumber)).... R|
00002760  65 61 6c 4e 75 6d 62 65  72 2b 3d 31 0d 10 c2 06  |ealNumber+=1....|
00002770  20 ed 0d 10 cc 18 20 f2  53 68 6f 77 49 6e 64 65  | ..... .ShowInde|
00002780  78 28 43 75 72 72 65 6e  74 29 0d 10 d6 06 20 e1  |x(Current).... .|
00002790  0d 10 e0 06 20 3a 0d 10  ea 1c 20 dd f2 43 6f 6e  |.... :.... ..Con|
000027a0  74 72 6f 6c 6c 50 61 6e  6e 65 6c 28 62 6c 6f 63  |trollPannel(bloc|
000027b0  6b 29 0d 10 f4 12 20 c8  8e 20 62 6c 6f 63 6b 21  |k).... .. block!|
000027c0  31 36 20 ca 0d 10 fe 3e  20 c9 20 30 20 3a 20 f2  |16 ....> . 0 : .|
000027d0  57 72 69 74 65 49 63 6f  6e 73 54 6f 49 6e 64 65  |WriteIconsToInde|
000027e0  78 28 50 61 67 65 29 3a  50 61 67 65 3d 31 3a f2  |x(Page):Page=1:.|
000027f0  53 65 74 50 61 67 65 49  63 6f 6e 73 28 50 61 67  |SetPageIcons(Pag|
00002800  65 29 0d 11 08 4e 20 c9  20 31 20 3a 20 e7 20 50  |e)...N . 1 : . P|
00002810  61 67 65 3e 31 20 8c 20  f2 57 72 69 74 65 49 63  |age>1 . .WriteIc|
00002820  6f 6e 73 54 6f 49 6e 64  65 78 28 50 61 67 65 29  |onsToIndex(Page)|
00002830  3a 50 61 67 65 3d 50 61  67 65 2d 31 3a f2 53 65  |:Page=Page-1:.Se|
00002840  74 50 61 67 65 49 63 6f  6e 73 28 50 61 67 65 29  |tPageIcons(Page)|
00002850  0d 11 12 75 20 c9 20 32  20 3a 20 e7 50 61 67 65  |...u . 2 : .Page|
00002860  3c 50 61 67 65 4c 69 6d  69 74 20 8c 20 f2 57 72  |<PageLimit . .Wr|
00002870  69 74 65 49 63 6f 6e 73  54 6f 49 6e 64 65 78 28  |iteIconsToIndex(|
00002880  50 61 67 65 29 3a 50 61  67 65 3d 50 61 67 65 2b  |Page):Page=Page+|
00002890  31 3a f2 53 65 74 50 61  67 65 49 63 6f 6e 73 28  |1:.SetPageIcons(|
000028a0  50 61 67 65 29 3a e7 20  4d 61 78 50 61 67 65 73  |Page):. MaxPages|
000028b0  3c 50 61 67 65 20 8c 20  4d 61 78 50 61 67 65 73  |<Page . MaxPages|
000028c0  3d 50 61 67 65 0d 11 1c  45 20 c9 20 33 20 3a 20  |=Page...E . 3 : |
000028d0  f2 57 72 69 74 65 49 63  6f 6e 73 54 6f 49 6e 64  |.WriteIconsToInd|
000028e0  65 78 28 50 61 67 65 29  3a 50 61 67 65 3d 4d 61  |ex(Page):Page=Ma|
000028f0  78 50 61 67 65 73 3a f2  53 65 74 50 61 67 65 49  |xPages:.SetPageI|
00002900  63 6f 6e 73 28 50 61 67  65 29 0d 11 26 06 20 cb  |cons(Page)..&. .|
00002910  0d 11 30 06 20 e1 0d 11  3a 06 20 3a 0d 11 44 1a  |..0. ...:. :..D.|
00002920  20 dd f2 43 6c 69 63 6b  4f 6e 49 6e 64 65 78 28  | ..ClickOnIndex(|
00002930  62 6c 6f 63 6b 29 0d 11  4e 25 20 e7 20 62 6c 6f  |block)..N% . blo|
00002940  63 6b 21 31 36 3c 31 30  20 84 20 62 6c 6f 63 6b  |ck!16<10 . block|
00002950  21 31 36 3e 31 39 20 8c  20 3a e1 0d 11 58 32 20  |!16>19 . :...X2 |
00002960  45 78 74 72 61 4f 70 65  6e 3d bb 28 a4 47 65 74  |ExtraOpen=.(.Get|
00002970  5f 49 63 6f 6e 5f 53 74  61 74 65 28 69 6e 64 65  |_Icon_State(inde|
00002980  78 25 2c 62 6c 6f 63 6b  21 31 36 29 29 0d 11 62  |x%,block!16))..b|
00002990  1a 20 f2 4f 70 65 6e 45  78 74 72 61 28 45 78 74  |. .OpenExtra(Ext|
000029a0  72 61 4f 70 65 6e 29 0d  11 6c 06 20 e1 0d 11 76  |raOpen)..l. ...v|
000029b0  06 20 3a 0d 11 80 15 20  dd f2 4f 70 65 6e 45 78  |. :.... ..OpenEx|
000029c0  74 72 61 28 4e 75 6d 29  0d 11 8a 12 20 49 63 6f  |tra(Num).... Ico|
000029d0  6e 5f 48 61 6e 64 6c 65  3d 30 0d 11 94 1c 20 e3  |n_Handle=0.... .|
000029e0  20 4c 3d 28 4e 75 6d 2a  35 29 2d 34 20 b8 20 28  | L=(Num*5)-4 . (|
000029f0  4e 75 6d 2a 35 29 0d 11  9e 31 20 f2 53 65 74 5f  |Num*5)...1 .Set_|
00002a00  49 63 6f 6e 5f 54 65 78  74 28 65 78 74 72 61 25  |Icon_Text(extra%|
00002a10  2c 49 63 6f 6e 5f 48 61  6e 64 6c 65 2c 4e 6f 74  |,Icon_Handle,Not|
00002a20  65 73 24 28 4c 29 29 0d  11 a8 13 20 49 63 6f 6e  |es$(L)).... Icon|
00002a30  5f 48 61 6e 64 6c 65 2b  3d 31 0d 11 b2 06 20 ed  |_Handle+=1.... .|
00002a40  0d 11 bc 18 20 f2 4f 70  65 6e 57 69 6e 64 6f 77  |.... .OpenWindow|
00002a50  28 65 78 74 72 61 25 29  0d 11 c6 24 20 f2 53 65  |(extra%)...$ .Se|
00002a60  74 5f 49 63 6f 6e 5f 54  65 78 74 28 65 78 74 72  |t_Icon_Text(extr|
00002a70  61 25 2c 38 2c c3 28 4e  75 6d 29 29 0d 11 d0 06  |a%,8,.(Num))....|
00002a80  20 e1 0d 11 da 06 20 3a  0d 11 e4 16 20 dd f2 43  | ..... :.... ..C|
00002a90  6c 6f 73 65 45 78 74 72  61 28 4e 75 6d 29 0d 11  |loseExtra(Num)..|
00002aa0  ee 12 20 49 63 6f 6e 5f  48 61 6e 64 6c 65 3d 30  |.. Icon_Handle=0|
00002ab0  0d 11 f8 1c 20 e3 20 4c  3d 28 4e 75 6d 2a 35 29  |.... . L=(Num*5)|
00002ac0  2d 34 20 b8 20 28 4e 75  6d 2a 35 29 0d 12 02 32  |-4 . (Num*5)...2|
00002ad0  20 4e 6f 74 65 73 24 28  4c 29 3d a4 47 65 74 5f  | Notes$(L)=.Get_|
00002ae0  49 63 6f 6e 5f 53 74 61  74 65 28 65 78 74 72 61  |Icon_State(extra|
00002af0  25 2c 49 63 6f 6e 5f 48  61 6e 64 6c 65 29 0d 12  |%,Icon_Handle)..|
00002b00  0c 13 20 49 63 6f 6e 5f  48 61 6e 64 6c 65 2b 3d  |.. Icon_Handle+=|
00002b10  31 0d 12 16 06 20 ed 0d  12 20 1b 20 f2 43 6c 6f  |1.... ... . .Clo|
00002b20  73 65 57 69 6e 64 6f 77  28 65 78 74 72 61 25 2c  |seWindow(extra%,|
00002b30  b9 29 0d 12 2a 11 20 45  78 74 72 61 4f 70 65 6e  |.)..*. ExtraOpen|
00002b40  3d 2d 31 0d 12 34 06 20  e1 0d 12 3e 06 20 3a 0d  |=-1..4. ...>. :.|
00002b50  12 48 21 20 dd f2 57 72  69 74 65 49 63 6f 6e 73  |.H! ..WriteIcons|
00002b60  54 6f 49 6e 64 65 78 28  43 75 72 72 65 6e 74 29  |ToIndex(Current)|
00002b70  0d 12 52 1e 20 52 65 61  6c 4e 75 6d 62 65 72 3d  |..R. RealNumber=|
00002b80  28 43 75 72 72 65 6e 74  2a 31 30 29 2d 39 0d 12  |(Current*10)-9..|
00002b90  5c 18 20 e3 20 49 63 6f  6e 50 6f 69 6e 74 65 72  |\. . IconPointer|
00002ba0  3d 30 20 b8 20 39 0d 12  66 3a 20 54 65 78 74 24  |=0 . 9..f: Text$|
00002bb0  28 52 65 61 6c 4e 75 6d  62 65 72 29 3d a4 47 65  |(RealNumber)=.Ge|
00002bc0  74 5f 49 63 6f 6e 5f 53  74 61 74 65 28 69 6e 64  |t_Icon_State(ind|
00002bd0  65 78 25 2c 49 63 6f 6e  50 6f 69 6e 74 65 72 29  |ex%,IconPointer)|
00002be0  0d 12 70 12 20 52 65 61  6c 4e 75 6d 62 65 72 2b  |..p. RealNumber+|
00002bf0  3d 31 0d 12 7a 06 20 ed  0d 12 84 06 20 e1 0d 12  |=1..z. ..... ...|
00002c00  8e 06 20 3a 0d 12 98 19  20 dd f2 53 68 6f 77 49  |.. :.... ..ShowI|
00002c10  6e 64 65 78 28 43 75 72  72 65 6e 74 29 0d 12 a2  |ndex(Current)...|
00002c20  1e 20 52 65 61 6c 4e 75  6d 62 65 72 3d 28 43 75  |. RealNumber=(Cu|
00002c30  72 72 65 6e 74 2a 31 30  29 2d 39 0d 12 ac 18 20  |rrent*10)-9.... |
00002c40  e3 20 49 63 6f 6e 50 6f  69 6e 74 65 72 3d 30 20  |. IconPointer=0 |
00002c50  b8 20 39 0d 12 b6 39 20  f2 53 65 74 5f 49 63 6f  |. 9...9 .Set_Ico|
00002c60  6e 5f 54 65 78 74 28 69  6e 64 65 78 25 2c 49 63  |n_Text(index%,Ic|
00002c70  6f 6e 50 6f 69 6e 74 65  72 2c 54 65 78 74 24 28  |onPointer,Text$(|
00002c80  52 65 61 6c 4e 75 6d 62  65 72 29 29 0d 12 c0 12  |RealNumber))....|
00002c90  20 52 65 61 6c 4e 75 6d  62 65 72 2b 3d 31 0d 12  | RealNumber+=1..|
00002ca0  ca 06 20 ed 0d 12 d4 06  20 e1 0d 12 de 06 20 3a  |.. ..... ..... :|
00002cb0  0d 12 e8 1b 20 dd f2 53  65 61 72 63 68 42 75 74  |.... ..SearchBut|
00002cc0  74 6f 6e 73 28 62 6c 6f  63 6b 29 0d 12 f2 14 20  |tons(block).... |
00002cd0  e7 20 62 6c 6f 63 6b 21  38 3d 31 20 8c 20 e1 0d  |. block!8=1 . ..|
00002ce0  12 fc 24 20 e7 20 62 6c  6f 63 6b 21 31 36 3d 31  |..$ . block!16=1|
00002cf0  20 80 20 53 65 61 72 63  68 5f 45 78 74 72 61 3d  | . Search_Extra=|
00002d00  a3 20 8c 0d 13 06 27 20  53 65 61 72 63 68 5f 45  |. ....' Search_E|
00002d10  78 74 72 61 3d a4 54 6f  67 67 6c 65 28 53 65 61  |xtra=.Toggle(Sea|
00002d20  72 63 68 5f 45 78 74 72  61 29 0d 13 10 27 20 53  |rch_Extra)...' S|
00002d30  65 61 72 63 68 5f 54 69  74 6c 65 3d a4 54 6f 67  |earch_Title=.Tog|
00002d40  67 6c 65 28 53 65 61 72  63 68 5f 54 69 74 6c 65  |gle(Search_Title|
00002d50  29 0d 13 1a 06 20 cd 0d  13 24 24 20 e7 20 62 6c  |).... ...$$ . bl|
00002d60  6f 63 6b 21 31 36 3d 32  20 80 20 53 65 61 72 63  |ock!16=2 . Searc|
00002d70  68 5f 54 69 74 6c 65 3d  a3 20 8c 0d 13 2e 27 20  |h_Title=. ....' |
00002d80  53 65 61 72 63 68 5f 45  78 74 72 61 3d a4 54 6f  |Search_Extra=.To|
00002d90  67 67 6c 65 28 53 65 61  72 63 68 5f 45 78 74 72  |ggle(Search_Extr|
00002da0  61 29 0d 13 38 27 20 53  65 61 72 63 68 5f 54 69  |a)..8' Search_Ti|
00002db0  74 6c 65 3d a4 54 6f 67  67 6c 65 28 53 65 61 72  |tle=.Toggle(Sear|
00002dc0  63 68 5f 54 69 74 6c 65  29 0d 13 42 06 20 cd 0d  |ch_Title)..B. ..|
00002dd0  13 4c 06 20 e1 0d 13 56  06 20 3a 0d 13 60 10 20  |.L. ...V. :..`. |
00002de0  dd a4 54 6f 67 67 6c 65  28 61 29 0d 13 6a 08 20  |..Toggle(a)..j. |
00002df0  52 3d b9 0d 13 74 10 20  e7 20 61 3d b9 20 8c 20  |R=...t. . a=. . |
00002e00  52 3d a3 0d 13 7e 07 20  3d 52 0d 13 88 06 20 3a  |R=...~. =R.... :|
00002e10  0d 13 92 14 20 dd f2 53  65 61 72 63 68 28 57 6f  |.... ..Search(Wo|
00002e20  72 64 24 29 0d 13 9c 2c  20 e7 20 53 65 61 72 63  |rd$)..., . Searc|
00002e30  68 5f 54 69 74 6c 65 3d  b9 20 8c 20 f2 53 65 61  |h_Title=. . .Sea|
00002e40  72 63 68 5f 54 69 74 6c  65 28 57 6f 72 64 24 29  |rch_Title(Word$)|
00002e50  0d 13 a6 2c 20 e7 20 53  65 61 72 63 68 5f 45 78  |..., . Search_Ex|
00002e60  74 72 61 3d b9 20 8c 20  f2 53 65 61 72 63 68 5f  |tra=. . .Search_|
00002e70  45 78 74 72 61 28 57 6f  72 64 24 29 0d 13 b0 06  |Extra(Word$)....|
00002e80  20 cd 0d 13 ba 06 20 e1  0d 13 c4 06 20 3a 0d 13  | ..... ..... :..|
00002e90  ce 1a 20 dd f2 53 65 61  72 63 68 5f 45 78 74 72  |.. ..Search_Extr|
00002ea0  61 28 57 6f 72 64 24 29  0d 13 d8 0c 20 46 69 6e  |a(Word$).... Fin|
00002eb0  64 73 3d 30 0d 13 e2 1d  20 e3 20 44 69 73 63 3d  |ds=0.... . Disc=|
00002ec0  31 20 b8 20 28 31 30 2a  4d 61 78 50 61 67 65 73  |1 . (10*MaxPages|
00002ed0  29 0d 13 ec 15 20 45 78  74 72 61 3d 28 44 69 73  |).... Extra=(Dis|
00002ee0  63 2a 35 29 2d 34 0d 13  f6 0b 20 48 61 6c 74 3d  |c*5)-4.... Halt=|
00002ef0  a3 0d 14 00 06 20 f5 0d  14 0a 21 20 53 65 61 72  |..... ....! Sear|
00002f00  63 68 3d a7 4e 6f 74 65  73 24 28 45 78 74 72 61  |ch=.Notes$(Extra|
00002f10  29 2c 57 6f 72 64 24 29  0d 14 14 0d 20 45 78 74  |),Word$).... Ext|
00002f20  72 61 2b 3d 31 0d 14 1e  12 20 e7 20 53 65 61 72  |ra+=1.... . Sear|
00002f30  63 68 3c 3e 30 20 8c 0d  14 28 0b 20 48 61 6c 74  |ch<>0 ...(. Halt|
00002f40  3d b9 0d 14 32 0d 20 46  69 6e 64 73 2b 3d 31 0d  |=...2. Finds+=1.|
00002f50  14 3c 1c 20 53 65 61 72  63 68 46 69 6e 64 73 28  |.<. SearchFinds(|
00002f60  46 69 6e 64 73 29 3d 44  69 73 63 0d 14 46 06 20  |Finds)=Disc..F. |
00002f70  cd 0d 14 50 1e 20 e7 20  45 78 74 72 61 3e 28 44  |...P. . Extra>(D|
00002f80  69 73 63 2a 35 29 20 8c  20 48 61 6c 74 3d b9 0d  |isc*5) . Halt=..|
00002f90  14 5a 0d 20 fd 20 48 61  6c 74 3d b9 0d 14 64 06  |.Z. . Halt=...d.|
00002fa0  20 ed 0d 14 6e 2d 20 48  65 61 64 65 72 24 3d 57  | ...n- Header$=W|
00002fb0  6f 72 64 24 2b 22 20 5b  53 63 61 6e 20 4f 76 65  |ord$+" [Scan Ove|
00002fc0  72 20 45 78 74 72 61 20  42 6c 6f 63 6b 5d 22 0d  |r Extra Block]".|
00002fd0  14 78 25 20 f2 53 65 74  5f 49 63 6f 6e 5f 54 65  |.x% .Set_Icon_Te|
00002fe0  78 74 28 66 69 6e 64 73  25 2c 30 2c 48 65 61 64  |xt(finds%,0,Head|
00002ff0  65 72 24 29 0d 14 82 18  20 f2 4f 70 65 6e 57 69  |er$).... .OpenWi|
00003000  6e 64 6f 77 28 66 69 6e  64 73 25 29 0d 14 8c 1a  |ndow(finds%)....|
00003010  20 f2 52 65 64 72 61 77  57 69 6e 64 6f 77 28 66  | .RedrawWindow(f|
00003020  69 6e 64 73 25 29 0d 14  96 06 20 e1 0d 14 a0 06  |inds%).... .....|
00003030  20 3a 0d 14 aa 1a 20 dd  f2 53 65 61 72 63 68 5f  | :.... ..Search_|
00003040  54 69 74 6c 65 28 57 6f  72 64 24 29 0d 14 b4 0c  |Title(Word$)....|
00003050  20 46 69 6e 64 73 3d 30  0d 14 be 1d 20 e3 20 44  | Finds=0.... . D|
00003060  69 73 63 3d 31 20 b8 20  28 31 30 2a 4d 61 78 50  |isc=1 . (10*MaxP|
00003070  61 67 65 73 29 0d 14 c8  1f 20 53 65 61 72 63 68  |ages).... Search|
00003080  3d a7 54 65 78 74 24 28  44 69 73 63 29 2c 57 6f  |=.Text$(Disc),Wo|
00003090  72 64 24 29 0d 14 d2 13  20 e7 20 53 65 61 72 63  |rd$).... . Searc|
000030a0  68 20 3c 3e 30 20 8c 0d  14 dc 0d 20 46 69 6e 64  |h <>0 ..... Find|
000030b0  73 2b 3d 31 0d 14 e6 1c  20 53 65 61 72 63 68 46  |s+=1.... SearchF|
000030c0  69 6e 64 73 28 46 69 6e  64 73 29 3d 44 69 73 63  |inds(Finds)=Disc|
000030d0  0d 14 f0 06 20 cd 0d 14  fa 06 20 ed 0d 15 04 27  |.... ..... ....'|
000030e0  20 48 65 61 64 65 72 24  3d 57 6f 72 64 24 2b 22  | Header$=Word$+"|
000030f0  20 5b 53 63 61 6e 20 4f  76 65 72 20 54 69 74 6c  | [Scan Over Titl|
00003100  65 5d 22 0d 15 0e 25 20  f2 53 65 74 5f 49 63 6f  |e]"...% .Set_Ico|
00003110  6e 5f 54 65 78 74 28 66  69 6e 64 73 25 2c 30 2c  |n_Text(finds%,0,|
00003120  48 65 61 64 65 72 24 29  0d 15 18 18 20 f2 4f 70  |Header$).... .Op|
00003130  65 6e 57 69 6e 64 6f 77  28 66 69 6e 64 73 25 29  |enWindow(finds%)|
00003140  0d 15 22 1a 20 f2 52 65  64 72 61 77 57 69 6e 64  |..". .RedrawWind|
00003150  6f 77 28 66 69 6e 64 73  25 29 0d 15 2c 06 20 e1  |ow(finds%)..,. .|
00003160  0d 15 36 06 20 3a 0d 15  40 25 20 dd f2 46 69 6e  |..6. :..@% ..Fin|
00003170  64 73 57 69 6e 64 6f 77  28 58 4f 72 69 67 69 6e  |dsWindow(XOrigin|
00003180  25 2c 59 4f 72 69 67 69  6e 25 29 0d 15 4a 4c 20  |%,YOrigin%)..JL |
00003190  e7 20 46 69 6e 64 73 3d  30 20 8c 20 ec 20 58 4f  |. Finds=0 . . XO|
000031a0  72 69 67 69 6e 25 2b 33  30 2c 59 4f 72 69 67 69  |rigin%+30,YOrigi|
000031b0  6e 25 2d 31 30 30 3a f1  22 53 74 72 69 6e 67 20  |n%-100:."String |
000031c0  4e 6f 74 20 46 6f 75 6e  64 20 49 6e 20 49 6e 64  |Not Found In Ind|
000031d0  65 78 20 21 22 3a e1 0d  15 54 0d 20 44 72 6f 70  |ex !":...T. Drop|
000031e0  3d 31 30 30 0d 15 5e 18  20 e3 20 50 6f 69 6e 74  |=100..^. . Point|
000031f0  65 72 3d 31 20 b8 20 46  69 6e 64 73 0d 15 68 20  |er=1 . Finds..h |
00003200  20 ec 20 58 4f 72 69 67  69 6e 25 2b 33 30 2c 59  | . XOrigin%+30,Y|
00003210  4f 72 69 67 69 6e 25 2d  44 72 6f 70 0d 15 72 4d  |Origin%-Drop..rM|
00003220  20 e7 20 53 65 61 72 63  68 46 69 6e 64 73 28 50  | . SearchFinds(P|
00003230  6f 69 6e 74 65 72 29 3c  3e 30 20 8c 20 f1 20 22  |ointer)<>0 . . "|
00003240  46 6f 75 6e 64 20 4f 6e  20 44 69 73 63 20 3a 20  |Found On Disc : |
00003250  22 3b c3 28 53 65 61 72  63 68 46 69 6e 64 73 28  |";.(SearchFinds(|
00003260  50 6f 69 6e 74 65 72 29  29 0d 15 7c 0d 20 44 72  |Pointer))..|. Dr|
00003270  6f 70 2b 3d 34 30 0d 15  86 06 20 ed 0d 15 90 06  |op+=40.... .....|
00003280  20 e1 0d 15 9a 06 20 3a  0d 15 a4 12 20 dd a4 47  | ..... :.... ..G|
00003290  65 74 5f 43 61 74 6f 6c  6f 67 0d 15 ae 22 20 ea  |et_Catolog..." .|
000032a0  20 4e 75 6d 62 65 72 4f  66 46 69 6c 65 73 2c 50  | NumberOfFiles,P|
000032b0  6f 69 6e 74 65 72 2c 49  6e 64 65 78 0d 15 b8 46  |ointer,Index...F|
000032c0  20 c8 99 20 22 4f 53 5f  47 42 50 42 22 2c 39 2c  | .. "OS_GBPB",9,|
000032d0  22 41 44 46 53 3a 24 22  2c 42 75 66 66 65 72 25  |"ADFS:$",Buffer%|
000032e0  2c 32 35 35 2c 30 2c 31  30 30 30 2c 22 2a 22 20  |,255,0,1000,"*" |
000032f0  b8 20 2c 2c 2c 4e 75 6d  62 65 72 4f 66 46 69 6c  |. ,,,NumberOfFil|
00003300  65 73 0d 15 c2 0d 20 46  69 6c 65 24 3d 22 22 0d  |es.... File$="".|
00003310  15 cc 0e 20 50 6f 69 6e  74 65 72 3d 30 0d 15 d6  |... Pointer=0...|
00003320  1e 20 e3 20 49 6e 64 65  78 3d 31 20 b8 20 4e 75  |. . Index=1 . Nu|
00003330  6d 62 65 72 4f 66 46 69  6c 65 73 0d 15 e0 0d 20  |mberOfFiles.... |
00003340  46 69 6e 69 73 68 3d a3  0d 15 ea 06 20 f5 0d 15  |Finish=..... ...|
00003350  f4 19 20 43 68 61 72 3d  42 75 66 66 65 72 25 3f  |.. Char=Buffer%?|
00003360  50 6f 69 6e 74 65 72 0d  15 fe 1f 20 e7 20 43 68  |Pointer.... . Ch|
00003370  61 72 3c 3e 30 20 8c 20  46 69 6c 65 24 2b 3d bd  |ar<>0 . File$+=.|
00003380  28 43 68 61 72 29 0d 16  08 0f 20 50 6f 69 6e 74  |(Char).... Point|
00003390  65 72 2b 3d 31 0d 16 12  18 20 e7 20 43 68 61 72  |er+=1.... . Char|
000033a0  3d 30 20 8c 20 46 69 6e  69 73 68 3d b9 0d 16 1c  |=0 . Finish=....|
000033b0  0f 20 fd 20 46 69 6e 69  73 68 3d b9 0d 16 26 1a  |. . Finish=...&.|
000033c0  20 52 6f 6f 74 44 69 72  24 28 49 6e 64 65 78 29  | RootDir$(Index)|
000033d0  3d 46 69 6c 65 24 0d 16  30 0d 20 46 69 6c 65 24  |=File$..0. File$|
000033e0  3d 22 22 0d 16 3a 06 20  ed 0d 16 44 13 20 3d 4e  |=""..:. ...D. =N|
000033f0  75 6d 62 65 72 4f 66 46  69 6c 65 73 0d 16 4e 06  |umberOfFiles..N.|
00003400  20 3a 0d 16 58 1d 20 dd  f2 45 78 61 6d 69 6e 65  | :..X. ..Examine|
00003410  44 69 73 63 28 45 78 74  72 61 4f 70 65 6e 29 0d  |Disc(ExtraOpen).|
00003420  16 62 1a 20 e7 20 45 78  74 72 61 4f 70 65 6e 3d  |.b. . ExtraOpen=|
00003430  2d 31 20 8c 20 ef 37 3a  e1 0d 16 6c 0e 20 ff 28  |-1 . .7:...l. .(|
00003440  22 41 44 46 53 22 29 0d  16 76 0f 20 ff 28 22 4d  |"ADFS")..v. .("M|
00003450  4f 55 4e 54 22 29 0d 16  80 12 20 e3 20 43 6c 65  |OUNT").... . Cle|
00003460  61 72 3d 30 20 b8 20 34  0d 16 8a 24 20 f2 53 65  |ar=0 . 4...$ .Se|
00003470  74 5f 49 63 6f 6e 5f 54  65 78 74 28 65 78 74 72  |t_Icon_Text(extr|
00003480  61 25 2c 43 6c 65 61 72  2c 22 22 29 0d 16 94 06  |a%,Clear,"")....|
00003490  20 ed 0d 16 9e 1a 20 4e  75 6d 46 69 6c 65 73 3d  | ..... NumFiles=|
000034a0  a4 47 65 74 5f 43 61 74  6f 6c 6f 67 0d 16 a8 12  |.Get_Catolog....|
000034b0  20 54 69 74 6c 65 24 3d  a4 54 69 74 6c 65 0d 16  | Title$=.Title..|
000034c0  b2 0b 20 49 63 6f 6e 3d  30 0d 16 bc 0c 20 54 6f  |.. Icon=0.... To|
000034d0  74 61 6c 3d 30 0d 16 c6  0e 20 42 75 69 6c 64 24  |tal=0.... Build$|
000034e0  3d 22 22 0d 16 d0 13 20  e7 20 4e 75 6d 46 69 6c  |="".... . NumFil|
000034f0  65 73 3e 30 20 8c 0d 16  da 1b 20 e3 20 50 6f 69  |es>0 ..... . Poi|
00003500  6e 74 65 72 3d 31 20 b8  20 4e 75 6d 46 69 6c 65  |nter=1 . NumFile|
00003510  73 0d 16 e4 0a 20 53 65  74 3d a3 0d 16 ee 29 20  |s.... Set=....) |
00003520  54 6f 74 61 6c 3d a9 28  42 75 69 6c 64 24 29 2b  |Total=.(Build$)+|
00003530  a9 28 52 6f 6f 74 44 69  72 24 28 50 6f 69 6e 74  |.(RootDir$(Point|
00003540  65 72 29 29 0d 16 f8 11  20 e7 20 54 6f 74 61 6c  |er)).... . Total|
00003550  3e 37 30 20 8c 0d 17 02  32 20 e7 20 49 63 6f 6e  |>70 ....2 . Icon|
00003560  3c 35 20 8c 20 f2 53 65  74 5f 49 63 6f 6e 5f 54  |<5 . .Set_Icon_T|
00003570  65 78 74 28 65 78 74 72  61 25 2c 49 63 6f 6e 2c  |ext(extra%,Icon,|
00003580  42 75 69 6c 64 24 29 0d  17 0c 0c 20 49 63 6f 6e  |Build$).... Icon|
00003590  2b 3d 31 0d 17 16 0e 20  42 75 69 6c 64 24 3d 22  |+=1.... Build$="|
000035a0  22 0d 17 20 0c 20 54 6f  74 61 6c 3d 30 0d 17 2a  |".. . Total=0..*|
000035b0  0a 20 53 65 74 3d b9 0d  17 34 06 20 cd 0d 17 3e  |. Set=...4. ...>|
000035c0  11 20 e7 20 54 6f 74 61  6c 3c 37 30 20 8c 0d 17  |. . Total<70 ...|
000035d0  48 1f 20 e7 20 50 6f 69  6e 74 65 72 3c 3e 31 20  |H. . Pointer<>1 |
000035e0  8c 20 42 75 69 6c 64 24  2b 3d 22 2c 22 0d 17 52  |. Build$+=","..R|
000035f0  1e 20 42 75 69 6c 64 24  2b 3d 52 6f 6f 74 44 69  |. Build$+=RootDi|
00003600  72 24 28 50 6f 69 6e 74  65 72 29 0d 17 5c 06 20  |r$(Pointer)..\. |
00003610  cd 0d 17 66 06 20 ed 0d  17 70 3a 20 e7 20 53 65  |...f. ...p: . Se|
00003620  74 3d a3 20 80 20 49 63  6f 6e 3c 35 20 8c 20 f2  |t=. . Icon<5 . .|
00003630  53 65 74 5f 49 63 6f 6e  5f 54 65 78 74 28 65 78  |Set_Icon_Text(ex|
00003640  74 72 61 25 2c 49 63 6f  6e 2c 42 75 69 6c 64 24  |tra%,Icon,Build$|
00003650  29 0d 17 7a 06 20 cd 0d  17 84 38 20 f2 53 65 74  |)..z. ....8 .Set|
00003660  5f 49 63 6f 6e 5f 54 65  78 74 28 69 6e 64 65 78  |_Icon_Text(index|
00003670  25 2c a4 57 68 69 63 68  49 63 6f 6e 28 45 78 74  |%,.WhichIcon(Ext|
00003680  72 61 4f 70 65 6e 29 2c  54 69 74 6c 65 24 29 0d  |raOpen),Title$).|
00003690  17 8e 06 20 e1 0d 17 98  06 20 3a 0d 17 a2 0b 20  |... ..... :.... |
000036a0  dd f2 47 6f 74 6f 0d 17  ac 11 20 4f 6c 64 50 61  |..Goto.... OldPa|
000036b0  67 65 3d 50 61 67 65 0d  17 b6 25 20 44 69 73 63  |ge=Page...% Disc|
000036c0  3d bb 28 a4 47 65 74 5f  49 63 6f 6e 5f 53 74 61  |=.(.Get_Icon_Sta|
000036d0  74 65 28 67 6f 74 6f 25  2c 31 29 29 0d 17 c0 34  |te(goto%,1))...4|
000036e0  20 e7 20 44 69 73 63 3d  30 20 8c 20 f2 57 69 6d  | . Disc=0 . .Wim|
000036f0  70 5f 45 72 72 6f 72 28  22 44 69 73 63 20 44 6f  |p_Error("Disc Do|
00003700  65 73 20 4e 6f 74 20 45  78 69 73 74 22 29 3a e1  |es Not Exist"):.|
00003710  0d 17 ca 1d 20 f2 57 72  69 74 65 49 63 6f 6e 73  |.... .WriteIcons|
00003720  54 6f 49 6e 64 65 78 28  50 61 67 65 29 0d 17 d4  |ToIndex(Page)...|
00003730  10 20 54 3d 44 69 73 63  20 81 20 31 30 0d 17 de  |. T=Disc . 10...|
00003740  0b 20 4d 3d 54 2a 31 30  0d 17 e8 0d 20 53 3d 44  |. M=T*10.... S=D|
00003750  69 73 63 2d 4d 0d 17 f2  1e 20 e7 20 53 3d 30 20  |isc-M.... . S=0 |
00003760  8c 20 50 61 67 65 3d 54  20 8b 20 50 61 67 65 3d  |. Page=T . Page=|
00003770  54 2b 31 0d 17 fc 5b 20  e7 20 50 61 67 65 3e 50  |T+1...[ . Page>P|
00003780  61 67 65 4c 69 6d 69 74  20 8c 20 f2 57 69 6d 70  |ageLimit . .Wimp|
00003790  5f 45 72 72 6f 72 28 22  4f 6e 6c 79 20 22 2b c3  |_Error("Only "+.|
000037a0  28 44 69 73 63 4c 69 6d  69 74 29 2b 22 20 44 69  |(DiscLimit)+" Di|
000037b0  73 63 73 20 41 76 61 69  6c 61 62 6c 65 22 29 3a  |scs Available"):|
000037c0  50 61 67 65 3d 4f 6c 64  50 61 67 65 3a e1 0d 18  |Page=OldPage:...|
000037d0  06 24 20 e7 20 4d 61 78  50 61 67 65 73 3c 50 61  |.$ . MaxPages<Pa|
000037e0  67 65 20 8c 20 4d 61 78  50 61 67 65 73 3d 50 61  |ge . MaxPages=Pa|
000037f0  67 65 0d 18 10 18 20 f2  53 65 74 50 61 67 65 49  |ge.... .SetPageI|
00003800  63 6f 6e 73 28 50 61 67  65 29 0d 18 1a 06 20 e1  |cons(Page).... .|
00003810  0d 18 24 06 20 3a 0d 18  2e 16 20 dd f2 4b 65 79  |..$. :.... ..Key|
00003820  50 72 65 73 73 28 62 6c  6f 63 6b 29 0d 18 38 11  |Press(block)..8.|
00003830  20 c8 8e 20 62 6c 6f 63  6b 21 30 20 ca 0d 18 42  | .. block!0 ...B|
00003840  34 20 c9 20 73 65 61 72  63 68 25 20 3a 20 f2 53  |4 . search% : .S|
00003850  65 61 72 63 68 28 a4 47  65 74 5f 49 63 6f 6e 5f  |earch(.Get_Icon_|
00003860  53 74 61 74 65 28 73 65  61 72 63 68 25 2c 30 29  |State(search%,0)|
00003870  29 0d 18 4c 16 20 c9 20  67 6f 74 6f 25 20 20 20  |)..L. . goto%   |
00003880  3a 20 f2 47 6f 74 6f 0d  18 56 34 20 c9 20 69 6e  |: .Goto..V4 . in|
00003890  64 65 78 25 20 20 3a 20  f2 49 63 6f 6e 5f 4d 6f  |dex%  : .Icon_Mo|
000038a0  76 65 28 21 62 6c 6f 63  6b 2c 62 6c 6f 63 6b 21  |ve(!block,block!|
000038b0  34 2c 62 6c 6f 63 6b 21  32 34 29 0d 18 60 34 20  |4,block!24)..`4 |
000038c0  c9 20 70 72 69 6e 74 25  20 20 3a 20 f2 49 63 6f  |. print%  : .Ico|
000038d0  6e 5f 4d 6f 76 65 28 21  62 6c 6f 63 6b 2c 62 6c  |n_Move(!block,bl|
000038e0  6f 63 6b 21 34 2c 62 6c  6f 63 6b 21 32 34 29 0d  |ock!4,block!24).|
000038f0  18 6a 06 20 cb 0d 18 74  06 20 e1 0d 18 7e 06 20  |.j. ...t. ...~. |
00003900  3a 0d 18 88 11 20 dd f2  50 72 69 6e 74 49 6e 64  |:.... ..PrintInd|
00003910  65 78 0d 18 92 27 20 53  74 61 72 74 3d bb 28 a4  |ex...' Start=.(.|
00003920  47 65 74 5f 49 63 6f 6e  5f 53 74 61 74 65 28 70  |Get_Icon_State(p|
00003930  72 69 6e 74 25 2c 30 29  29 0d 18 9c 28 20 46 69  |rint%,0))...( Fi|
00003940  6e 69 73 68 3d bb 28 a4  47 65 74 5f 49 63 6f 6e  |nish=.(.Get_Icon|
00003950  5f 53 74 61 74 65 28 70  72 69 6e 74 25 2c 31 29  |_State(print%,1)|
00003960  29 0d 18 a6 68 20 e7 20  53 74 61 72 74 3e 44 69  |)...h . Start>Di|
00003970  73 63 4c 69 6d 69 74 20  84 20 46 69 6e 69 73 68  |scLimit . Finish|
00003980  3e 44 69 73 63 4c 69 6d  69 74 20 84 20 53 74 61  |>DiscLimit . Sta|
00003990  72 74 3c 31 20 84 20 46  69 6e 69 73 68 3c 31 20  |rt<1 . Finish<1 |
000039a0  20 8c 20 f2 57 69 6d 70  5f 45 72 72 6f 72 28 22  | . .Wimp_Error("|
000039b0  44 69 73 63 20 44 6f 65  73 20 4e 6f 74 20 45 78  |Disc Does Not Ex|
000039c0  69 73 74 20 21 22 29 3a  e1 0d 18 b0 1b 20 58 3d  |ist !"):..... X=|
000039d0  ae 28 22 50 72 69 6e 74  65 72 3a 24 2e 44 75 6d  |.("Printer:$.Dum|
000039e0  6d 79 22 29 0d 18 ba 1a  20 e3 20 44 69 73 63 3d  |my").... . Disc=|
000039f0  53 74 61 72 74 20 b8 20  46 69 6e 69 73 68 0d 18  |Start . Finish..|
00003a00  c4 29 20 50 72 69 6e 74  53 74 72 69 6e 67 24 3d  |.) PrintString$=|
00003a10  c3 28 44 69 73 63 29 2b  22 20 22 2b 54 65 78 74  |.(Disc)+" "+Text|
00003a20  24 28 44 69 73 63 29 0d  18 ce 16 20 d5 20 23 58  |$(Disc).... . #X|
00003a30  2c 50 72 69 6e 74 53 74  72 69 6e 67 24 0d 18 d8  |,PrintString$...|
00003a40  0c 20 d5 20 23 58 2c 22  22 0d 18 e2 22 20 e3 20  |. . #X,""..." . |
00003a50  45 78 74 72 61 3d 28 44  69 73 63 2a 35 29 2d 34  |Extra=(Disc*5)-4|
00003a60  20 b8 20 28 44 69 73 63  2a 35 29 0d 18 ec 25 20  | . (Disc*5)...% |
00003a70  50 72 69 6e 74 53 74 72  69 6e 67 24 3d 22 20 20  |PrintString$="  |
00003a80  20 22 2b 4e 6f 74 65 73  24 28 45 78 74 72 61 29  | "+Notes$(Extra)|
00003a90  0d 18 f6 16 20 d5 20 23  58 2c 50 72 69 6e 74 53  |.... . #X,PrintS|
00003aa0  74 72 69 6e 67 24 0d 19  00 06 20 ed 0d 19 0a 06  |tring$.... .....|
00003ab0  20 ed 0d 19 14 09 20 d9  20 23 58 0d 19 1e 06 20  | ..... . #X.... |
00003ac0  e1 0d 19 28 06 20 3a 0d  19 32 25 20 dd 20 f2 49  |...(. :..2% . .I|
00003ad0  63 6f 6e 5f 4d 6f 76 65  28 77 69 6e 64 6f 77 25  |con_Move(window%|
00003ae0  2c 69 63 6f 6e 25 2c 6b  65 79 25 29 0d 19 3c 2c  |,icon%,key%)..<,|
00003af0  20 e7 20 77 69 6e 64 6f  77 25 3c 3e 69 6e 64 65  | . window%<>inde|
00003b00  78 25 20 80 20 77 69 6e  64 6f 77 25 3c 3e 70 72  |x% . window%<>pr|
00003b10  69 6e 74 25 20 8c 20 e1  0d 19 46 17 20 e7 20 77  |int% . ...F. . w|
00003b20  69 6e 64 6f 77 25 3d 69  6e 64 65 78 25 20 8c 0d  |indow%=index% ..|
00003b30  19 50 13 20 6e 65 77 69  63 6f 6e 25 3d 69 63 6f  |.P. newicon%=ico|
00003b40  6e 25 0d 19 5a 10 20 e7  20 6b 65 79 25 3d 31 33  |n%..Z. . key%=13|
00003b50  20 8c 0d 19 64 11 20 20  6e 65 77 69 63 6f 6e 25  | ...d.  newicon%|
00003b60  2b 3d 31 0d 19 6e 1f 20  20 e7 20 6e 65 77 69 63  |+=1..n.  . newic|
00003b70  6f 6e 25 3e 39 20 8c 20  6e 65 77 69 63 6f 6e 25  |on%>9 . newicon%|
00003b80  3d 30 0d 19 78 06 20 cd  0d 19 82 11 20 e7 20 6b  |=0..x. ..... . k|
00003b90  65 79 25 3d 33 39 39 20  8c 0d 19 8c 11 20 20 6e  |ey%=399 .....  n|
00003ba0  65 77 69 63 6f 6e 25 2d  3d 31 0d 19 96 1f 20 20  |ewicon%-=1....  |
00003bb0  e7 20 6e 65 77 69 63 6f  6e 25 3c 30 20 8c 20 6e  |. newicon%<0 . n|
00003bc0  65 77 69 63 6f 6e 25 3d  30 0d 19 a0 06 20 cd 0d  |ewicon%=0.... ..|
00003bd0  19 aa 11 20 e7 20 6b 65  79 25 3d 33 39 38 20 8c  |... . key%=398 .|
00003be0  0d 19 b4 11 20 20 6e 65  77 69 63 6f 6e 25 2b 3d  |....  newicon%+=|
00003bf0  31 0d 19 be 1f 20 20 e7  20 6e 65 77 69 63 6f 6e  |1....  . newicon|
00003c00  25 3e 39 20 8c 20 6e 65  77 69 63 6f 6e 25 3d 39  |%>9 . newicon%=9|
00003c10  0d 19 c8 06 20 cd 0d 19  d2 35 20 c8 99 22 57 69  |.... ....5 .."Wi|
00003c20  6d 70 5f 53 65 74 43 61  72 65 74 50 6f 73 69 74  |mp_SetCaretPosit|
00003c30  69 6f 6e 22 2c 69 6e 64  65 78 25 2c 6e 65 77 69  |ion",index%,newi|
00003c40  63 6f 6e 25 2c 2c 2c 2d  31 2c 30 0d 19 dc 06 20  |con%,,,-1,0.... |
00003c50  cd 0d 19 e6 17 20 e7 20  77 69 6e 64 6f 77 25 3d  |..... . window%=|
00003c60  70 72 69 6e 74 25 20 8c  0d 19 f0 13 20 6e 65 77  |print% ..... new|
00003c70  69 63 6f 6e 25 3d 69 63  6f 6e 25 0d 19 fa 25 20  |icon%=icon%...% |
00003c80  e7 20 6b 65 79 25 3d 31  33 20 80 20 69 63 6f 6e  |. key%=13 . icon|
00003c90  25 3d 30 20 8c 20 6e 65  77 69 63 6f 6e 25 3d 31  |%=0 . newicon%=1|
00003ca0  0d 1a 04 25 20 e7 20 6b  65 79 25 3d 31 33 20 80  |...% . key%=13 .|
00003cb0  20 69 63 6f 6e 25 3d 31  20 8c 20 6e 65 77 69 63  | icon%=1 . newic|
00003cc0  6f 6e 25 3d 30 0d 1a 0e  35 20 c8 99 22 57 69 6d  |on%=0...5 .."Wim|
00003cd0  70 5f 53 65 74 43 61 72  65 74 50 6f 73 69 74 69  |p_SetCaretPositi|
00003ce0  6f 6e 22 2c 70 72 69 6e  74 25 2c 6e 65 77 69 63  |on",print%,newic|
00003cf0  6f 6e 25 2c 2c 2c 2d 31  2c 30 0d 1a 18 06 20 cd  |on%,,,-1,0.... .|
00003d00  0d 1a 22 06 20 e1 0d 1a  2c 06 20 3a 0d 1a 36 0c  |..". ...,. :..6.|
00003d10  20 dd a4 54 69 74 6c 65  0d 1a 40 0f 20 52 65 73  | ..Title..@. Res|
00003d20  75 6c 74 24 3d 22 22 0d  1a 4a 27 20 c8 99 20 22  |ult$=""..J' .. "|
00003d30  41 44 46 53 5f 44 65 73  63 72 69 62 65 44 69 73  |ADFS_DescribeDis|
00003d40  63 22 2c 22 30 22 2c 42  75 66 66 65 72 25 0d 1a  |c","0",Buffer%..|
00003d50  54 16 20 e3 20 50 6f 69  6e 74 65 72 3d 32 32 20  |T. . Pointer=22 |
00003d60  b8 20 33 31 0d 1a 5e 37  20 e7 20 42 75 66 66 65  |. 31..^7 . Buffe|
00003d70  72 25 3f 50 6f 69 6e 74  65 72 3e 33 32 20 8c 20  |r%?Pointer>32 . |
00003d80  52 65 73 75 6c 74 24 2b  3d bd 28 42 75 66 66 65  |Result$+=.(Buffe|
00003d90  72 25 3f 50 6f 69 6e 74  65 72 29 0d 1a 68 06 20  |r%?Pointer)..h. |
00003da0  ed 0d 1a 72 0d 20 3d 52  65 73 75 6c 74 24 0d 1a  |...r. =Result$..|
00003db0  7c 06 20 3a 0d 1a 86 1e  20 dd f2 49 6e 69 74 5f  ||. :.... ..Init_|
00003dc0  53 70 72 69 74 65 5f 41  72 65 61 28 66 69 6c 65  |Sprite_Area(file|
00003dd0  24 29 0d 1a 90 2f 20 de  20 53 70 72 69 74 65 50  |$).../ . SpriteP|
00003de0  6f 69 6e 74 65 72 20 26  31 30 30 30 3a 21 53 70  |ointer &1000:!Sp|
00003df0  72 69 74 65 50 6f 69 6e  74 65 72 3d 26 31 30 30  |ritePointer=&100|
00003e00  30 0d 1a 9a 3d 20 53 70  72 69 74 65 50 6f 69 6e  |0...= SpritePoin|
00003e10  74 65 72 21 34 3d 30 3a  53 70 72 69 74 65 50 6f  |ter!4=0:SpritePo|
00003e20  69 6e 74 65 72 21 38 3d  31 36 3a 53 70 72 69 74  |inter!8=16:Sprit|
00003e30  65 50 6f 69 6e 74 65 72  21 31 32 3d 31 36 0d 1a  |ePointer!12=16..|
00003e40  a4 3a 20 c8 99 20 22 4f  53 5f 53 70 72 69 74 65  |.: .. "OS_Sprite|
00003e50  4f 70 22 2c 32 36 36 2c  53 70 72 69 74 65 50 6f  |Op",266,SpritePo|
00003e60  69 6e 74 65 72 2c 66 69  6c 65 24 20 b8 20 4d 79  |inter,file$ . My|
00003e70  53 70 72 69 74 65 73 25  0d 1a ae 06 20 e1 0d 1a  |Sprites%.... ...|
00003e80  b8 06 20 3a 0d 1a c2 12  20 dd f2 43 6c 65 61 72  |.. :.... ..Clear|
00003e90  52 65 63 6f 72 64 0d 1a  cc 25 20 44 69 73 63 3d  |Record...% Disc=|
00003ea0  28 50 61 67 65 2a 31 30  29 2d 28 31 30 2d 28 4d  |(Page*10)-(10-(M|
00003eb0  65 6e 75 49 63 6f 6e 2b  31 29 29 0d 1a d6 22 20  |enuIcon+1))..." |
00003ec0  e7 20 4d 65 6e 75 49 63  6f 6e 3e 39 20 84 20 4d  |. MenuIcon>9 . M|
00003ed0  65 6e 75 49 63 6f 6e 3c  30 20 8c 20 e1 0d 1a e0  |enuIcon<0 . ....|
00003ee0  29 20 e7 20 4d 65 6e 75  48 61 6e 64 6c 65 3d 65  |) . MenuHandle=e|
00003ef0  78 74 72 61 25 20 8c 20  44 69 73 63 3d 45 78 74  |xtra% . Disc=Ext|
00003f00  72 61 4f 70 65 6e 0d 1a  ea 40 20 e7 20 44 69 73  |raOpen...@ . Dis|
00003f10  63 3c 31 20 84 20 44 69  73 63 3e 44 69 73 63 4c  |c<1 . Disc>DiscL|
00003f20  69 6d 69 74 20 8c 20 f2  57 69 6d 70 5f 45 72 72  |imit . .Wimp_Err|
00003f30  6f 72 28 22 44 69 73 63  20 4e 6f 74 20 56 61 6c  |or("Disc Not Val|
00003f40  69 64 22 29 3a e1 0d 1a  f4 36 20 43 68 65 63 6b  |id"):....6 Check|
00003f50  3d a4 41 63 74 69 6f 6e  5f 43 6f 6e 66 69 72 6d  |=.Action_Confirm|
00003f60  28 22 45 72 61 73 65 20  44 69 73 63 20 22 2b c3  |("Erase Disc "+.|
00003f70  28 44 69 73 63 29 2b 22  20 3f 22 29 0d 1a fe 12  |(Disc)+" ?")....|
00003f80  20 e7 20 43 68 65 63 6b  3d 32 20 8c 20 e1 0d 1b  | . Check=2 . ...|
00003f90  08 13 20 54 65 78 74 24  28 44 69 73 63 29 3d 22  |.. Text$(Disc)="|
00003fa0  22 0d 1b 12 1a 20 45 78  74 72 61 53 74 61 72 74  |".... ExtraStart|
00003fb0  3d 28 44 69 73 63 2a 35  29 2d 34 0d 1b 1c 19 20  |=(Disc*5)-4.... |
00003fc0  45 78 74 72 61 46 69 6e  69 73 68 3d 28 44 69 73  |ExtraFinish=(Dis|
00003fd0  63 2a 35 29 0d 1b 26 27  20 e3 20 50 6f 69 6e 74  |c*5)..&' . Point|
00003fe0  65 72 3d 45 78 74 72 61  53 74 61 72 74 20 b8 20  |er=ExtraStart . |
00003ff0  45 78 74 72 61 46 69 6e  69 73 68 0d 1b 30 17 20  |ExtraFinish..0. |
00004000  4e 6f 74 65 73 24 28 50  6f 69 6e 74 65 72 29 3d  |Notes$(Pointer)=|
00004010  22 22 0d 1b 3a 06 20 ed  0d 1b 44 2d 20 e7 20 45  |""..:. ...D- . E|
00004020  78 74 72 61 4f 70 65 6e  3d 44 69 73 63 20 8c 20  |xtraOpen=Disc . |
00004030  f2 4f 70 65 6e 45 78 74  72 61 28 45 78 74 72 61  |.OpenExtra(Extra|
00004040  4f 70 65 6e 29 0d 1b 4e  27 20 f2 53 65 74 5f 49  |Open)..N' .Set_I|
00004050  63 6f 6e 5f 54 65 78 74  28 69 6e 64 65 78 25 2c  |con_Text(index%,|
00004060  4d 65 6e 75 49 63 6f 6e  2c 22 22 29 0d 1b 58 06  |MenuIcon,"")..X.|
00004070  20 e1 0d 1b 62 06 20 3a  0d 1b 6c 13 20 dd a4 57  | ...b. :..l. ..W|
00004080  68 69 63 68 49 63 6f 6e  28 58 29 0d 1b 76 0d 20  |hichIcon(X)..v. |
00004090  54 3d 58 20 81 20 31 30  0d 1b 80 0c 20 56 54 3d  |T=X . 10.... VT=|
000040a0  54 2a 31 30 0d 1b 8a 0d  20 52 3d 58 2d 56 54 2d  |T*10.... R=X-VT-|
000040b0  31 0d 1b 94 11 20 e7 20  56 54 3d 58 20 8c 20 52  |1.... . VT=X . R|
000040c0  3d 39 0d 1b 9e 07 20 3d  52 0d 1b a8 06 20 3a 0d  |=9.... =R.... :.|
000040d0  1b b2 1f 20 dd a4 41 63  74 69 6f 6e 5f 43 6f 6e  |... ..Action_Con|
000040e0  66 69 72 6d 28 4d 65 73  73 61 67 65 24 29 0d 1b  |firm(Message$)..|
000040f0  bc 0d 20 21 62 6c 6f 63  6b 3d 30 0d 1b c6 1d 20  |.. !block=0.... |
00004100  24 28 62 6c 6f 63 6b 2b  34 29 3d 4d 65 73 73 61  |$(block+4)=Messa|
00004110  67 65 24 2b bd 28 30 29  0d 1b d0 39 20 c8 99 22  |ge$+.(0)...9 .."|
00004120  57 69 6d 70 5f 52 65 70  6f 72 74 45 72 72 6f 72  |Wimp_ReportError|
00004130  22 2c 62 6c 6f 63 6b 2c  32 33 2c 22 44 69 73 63  |",block,23,"Disc|
00004140  20 4d 61 6e 61 67 65 72  22 20 b8 20 2c 49 63 6f  | Manager" . ,Ico|
00004150  6e 0d 1b da 0a 20 3d 49  63 6f 6e 0d ff           |n.... =Icon..|
0000415d