Home » Archimedes archive » Archimedes World » AW-1991-10.adf » October91 » !AWOct91/Goodies/DZap/!Dzap/!RunImage
!AWOct91/Goodies/DZap/!Dzap/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1991-10.adf » October91 |
Filename: | !AWOct91/Goodies/DZap/!Dzap/!RunImage |
Read OK: | ✔ |
File size: | 6140 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM>!Dzap.!RunImage 15REM Copyright Archimedes World October 1991 20PROCwimpinit:PROCdzapinit 30ONERRORPROCerror 40REPEAT:whatnext%=FNpoll(0):PROCaction(whatnext%):UNTILFALSE 50END 60: 70DEFFNpoll(mask%):SYS"Wimp_Poll",mask%,poll%TOresult%:=result% 80: 90DEFPROCaction(event%) 100CASEevent%OF 110WHEN1:PROCredrawwindow(!poll%) 120WHEN2:PROCopenwindow(!poll%,poll%,-1) 130WHEN3:PROCclosewindow(!poll%) 140WHEN4: 150WHEN5: 160WHEN6:PROCmousebuttonclick 170WHEN7:PROCdrag(dragfrom%) 180WHEN8:PROCkeypress(!poll%,poll%!24) 190WHEN9:PROCmenuselect 200WHEN17,18:PROCmessagein(event%) 210ENDCASE 220ENDPROC 230: 240DEFPROCquit:$block%="TASK":SYS"Wimp_CloseDown",mytask%,!block%:END 250: 260********** Window routines ********** 270: 280DEFFNcreatewindow(title$,flag%,fgcol%,bgcol%,twatx%,twaty%,vwabx%,vwaby%,vwatx%,vwaty%,nicons%,iconflag%,behind%,sprite%) 290LOCALhandle% 300!block%=vwabx%:block%!4=vwaby%:block%!8=vwatx%:block%!12=vwaty% 310block%!16=0:block%!20=twaty%:block%!24=behind%:block%!28=flag% 320block%?32=7:block%?33=2:block%?34=fgcol%:block%?35=bgcol% 330block%?36=3:block%?37=1:block%?38=12:block%?39=0 340block%!40=0:block%!44=0:block%!48=twatx%:block%!52=twaty% 350block%!56=&3D:block%!60=iconflag%:block%!64=sprite%:block%!68=0 360IFLENtitle$<12THEN 370$(block%+72)=title$ 380ELSE 390block%!56=&13D 400comma%=INSTR(title$,",") 410IFcomma%THEN 420b%=EVALMID$(title$,comma%+1) 430$b%=LEFT$(title$,comma%-1) 440block%!72=b% 450ELSE 460$(block%+256)=title$:block%!72=block%+256 470ENDIF 480block%!76=-1 490ENDIF 500block%!84=nicons% 510IFnicons%>0PROCwindowicons(block%+88,nicons%) 520SYS"Wimp_CreateWindow",0,block%TOhandle% 530=handle% 540: 550DEFPROCwindowicons(bl%,n%) 560FORli%=1TOn%:READbx%,by%,tx$,ty%,bg%,fg%,flg%,i$:tx%=EVALtx$ 570!bl%=bx%:bl%!4=by%:bl%!8=tx%:bl%!12=ty% 580bl%!16=flg%ORfg%<<24ORbg%<<28 590IFbl%!16AND&100THEN 600j%=INSTR(i$,";"):b%=-1 610IFj%THEN 620b$=MID$(i$,j%+1) 630i%=INSTR(b$,","):b%=EVALMID$(b$,1,i%-1) 640$b%=MID$(b$,i%+1) 650ENDIF 660i%=INSTR(i$,","):bl%!20=EVALLEFT$(i$,i%-1) 670bl%!24=b%:bl%!28=EVALMID$(i$,i%+1) 680ELSE 690$(bl%+20)=LEFT$(i$,11) 700ENDIF 710bl%+=32:NEXT 720ENDPROC 730: 740DEFPROCopenwindow(handle%,mem%,behind%) 750IFmem%=block% !mem%=handle%:SYS"Wimp_GetWindowState",0,mem% 760block%!28=behind% 770SYS"Wimp_OpenWindow",0,mem%:ENDPROC 780: 790DEFPROCredrawwindow(handle%):LOCALmore%,x0%,y0% 800!block%=handle%:SYS"Wimp_RedrawWindow",0,block%TOmore% 810PROClwaorigin(block%,x0%,y0%):w%=FNwhich(handle%) 820WHILEmore% 830block%!28-=x0%:block%!32-=y0%:block%!36-=x0%:block%!40-=y0% 840PROCredowindow(handle%,x0%,y0%) 850SYS"Wimp_GetRectangle",0,block%TOmore% 860ENDWHILE 870ENDPROC 880: 890DEFPROClwaorigin(b%,RETURN x%,RETURN y%) 900x%=b%!4-b%!20:y%=b%!16-b%!24:ENDPROC 910: 920DEFPROCresizewindow(handle%,bx%,by%,tx%,ty%) 930!block%=bx%:block%!4=by%:block%!8=tx%:block%!12=ty% 940SYS"Wimp_SetExtent",handle%,block% 950!block%=handle% 960SYS"Wimp_GetWindowInfo",0,block% 970SYS"Wimp_OpenWindow",0,block% 980ENDPROC 990: 1000DEFPROCclosewindow(handle%) 1010!block%=handle%:SYS"Wimp_CloseWindow",0,block% 1020CASEhandle%OF 1030WHENdisplay%:disp$="" 1040ENDCASE 1050ENDPROC 1060: 1070********** Mouse routines ********** 1080: 1090DEFPROCmousebuttonclick:LOCALhandle%,button%,icon% 1100button%=poll%!8 1110handle%=poll%!12 1120icon%=poll%!16 1130mousex%=!poll%:mousey%=poll%!4 1140IFbutton%=2THEN 1150IFhandle%=-2THEN 1160menu%=1 1170SYS"Wimp_CreateMenu",0,initblock%,mousex%-64,mousey% 1180ELSE 1190menu%=2 1200SYS"Wimp_CreateMenu",0,mainblock%,mousex%,mousey% 1210ENDIF 1220ENDIF 1230IFbutton%=4THEN 1240CASEhandle%OF 1250WHEN-2:PROCopen 1260WHENsavesec%:save2%=savesec%:save2$="savesec" 1270PROCclickdialog(save2%,save2$,poll%!16) 1280WHENcomp1%:PROCclickdialog(comp1%,comp1$,poll%!16) 1290WHENcomp%:PROCclickdialog(comp%,comp$,poll%!16) 1300WHENcat1%:PROCclickdialog(cat1%,cat1$,poll%!16) 1310WHENsave%:PROCclickdialog(save%,save$,poll%!16) 1320WHENsave1%:PROCclickdialog(save1%,save1$,poll%!16) 1330WHENfind1%:PROCclickdialog(find1%,found$,poll%!16) 1340WHENfind%:PROCclickdialog(find%,find$,poll%!16) 1350WHENdisplay%:SYS"Wimp_GetWindowState",display%,block% 1360xpos%=block%!20-((block%!4-mousex%)AND-16) 1370ypos%=block%!24-(block%!16-mousey%) 1380ypos%=(ypos%AND-32)+(block%!24)MOD32 1390SYS"Wimp_SetCaretPosition",display%,-1,xpos%,ypos%,36,xpos%DIV16 1400WHENopen%:PROCclickdialog(open%,open$,poll%!16) 1410WHENdialog%:PROCclickdialog(dialog%,claim$,poll%!16) 1420ENDCASE 1430ENDIF 1440ENDPROC 1450: 1460********** Drag routines ********** 1470: 1480DEFPROCdrag(hand%) 1490CASEhand%OF 1500WHENsave1% 1510start%=st%*10+sh%*5+ss% 1520end%=et%*10+eh%*5+es% 1530len%=end%-start%:L%=len%*1024 1540IFSGNlen%=1THEN 1550PROCloadsector(st%,sh%,ss%,len%+1,drive%) 1560ELSE 1570j%=FNalert("Start address is less than end address. Please check.",2,0) 1580ENDIF 1590WHENsavesec% 1600L%=1024 1610ENDCASE 1620SYS"Wimp_GetPointerInfo",,block% 1630block%!20=block%!12:REM destination window handle 1640block%!24=block%!16:REM destination icon handle 1650block%!28=!block%:REM destination x 1660block%!32=block%!4:REM destination y 1670block%!36=L%:REM estimated size (in bytes) 1680block%!40=&FFD:REM file type 1690!block%=60 1700block%!12=0:block%!16=1 1710$(block%+44)=FNfilename($file%)+CHR$0 1720SYS"Wimp_SendMessage",17,block%,block%!20 1730ENDPROC 1740: 1750DEFPROCinitdrag(hand%,icon%,type%) 1760dragfrom%=hand% 1770!block%=hand%:SYS"Wimp_GetWindowState",,block% 1780ix%=block%!4:iy%=block%!8 1790block%!4=icon%:SYS"Wimp_GetIconState",,block% 1800block%!4=type% 1810block%!8+=ix%:block%!12+=iy% 1820block%!16+=ix%:block%!20+=iy% 1830block%!24=0:block%!28=0 1840block%!32=1279:block%!36=1023 1850SYS"Wimp_DragBox",,block% 1860ENDPROC 1870: 1880********** Keypress routines ********** 1890: 1900DEFPROCkeypress(handle%,key%) 1910SYS"Wimp_GetCaretPosition",,block% 1920cx%=block%!8:cy%=block%!12:sx%=block%!20 1930line%=63-(block%!12)DIV32 1940CASEhandle%OF 1950WHENdisplay% 1960IFsx%>5ANDsx%<52PROChex(key%) ELSEIFsx%>56ANDsx%<73PROCascii(key%) 1970WHENsave1%:IFkey%=27PROCclosewindow(save1%) 1980ENDCASE 1990ENDPROC 2000: 2010********** Menu routines ********** 2020: 2030DEFFNcreatemenu(mb%,t$,tb%) 2040LOCALnew$,ptr%,shade%,tick%,dotted%,submenu%,writeable% 2050numofitems%=VALLEFT$(t$,1):t$=MID$(t$,2) 2060nextmenu%=mb%+28+24*numofitems%:nexttext%=tb%+24*numofitems% 2070$mb%=LEFT$(t$,INSTR(t$,"|")-1):t$=MID$(t$,INSTR(t$,"|")+1) 2080mb%?12=7:REM Title foreground colour 2090mb%?13=2:REM Title background colour 2100mb%?14=7:REM Work area foreground 2110mb%?15=0:REM Work area background 2120mb%!16=200:REM Menu width 2130mb%!20=44:REM Height of text 2140mb%!24=0:REM Space between lines 2150ptr%=mb%+28 2160REPEAT:shade%=0:tick%=0:dotted%=0:writeable%=0:submenu%=-1 2170IFLEFT$(t$,1)="["THEN 2180t$=MID$(t$,2):new$=EVALLEFT$(t$,INSTR(t$,"]")-1) 2190t$=MID$(t$,INSTR(t$,"]")+1) 2200submenu%=FNcreatemenu(nextmenu%,new$,nexttext%) 2210ENDIF 2220IFLEFT$(t$,1)="<"THEN 2230t$=MID$(t$,2):submenu%=EVALLEFT$(t$,INSTR(t$,">")-1) 2240t$=MID$(t$,INSTR(t$,">")+1) 2250ENDIF 2260IFLEFT$(t$,1)="."t$=MID$(t$,2):REM Do nothing 2270IFLEFT$(t$,1)="�"shade%=&400000:t$=MID$(t$,2) 2280IFLEFT$(t$,1)="�"tick%=1:t$=MID$(t$,2) 2290IFLEFT$(t$,1)=":"dotted%=2:t$=MID$(t$,2) 2300IFLEFT$(t$,1)="^"writeable%=4:t$=MID$(t$,2) 2310g%=INSTR(t$,"|") 2320IFwriteable%THEN 2330i%=INSTR(t$,","):ptr%!12=EVALLEFT$(t$,i%-1):t$=MID$(t$,i%+1) 2340ptr%!16=-1 2350ptr%!20=EVALLEFT$(t$,INSTR(t$,"|")-1) 2360mb%!16=FNgreater(mb%!16,4+16*ptr%!20):REM Width of new menu 2370ELSE 2380$tb%=LEFT$(t$,g%-1):ptr%!12=tb%:ptr%!16=-1:ptr%!20=LEN$tb%:tb%+=24 2390ENDIF 2400t$=MID$(t$,g%+1) 2410!ptr%=tick%ORdotted%ORwriteable%OR(&80 AND(t$="")):REM&80 marks last item 2420ptr%!4=submenu% 2430ptr%!8=&10121ORshade%ORwriteable%<<6OR7<<24OR0<<28 2440ptr%+=24 2450UNTILt$="" 2460=mb% 2470: 2480DEFPROCmenuselect 2490SYS"Wimp_GetPointerInfo",,block%:menub%=block%!8 2500IFmenu%=1THEN 2510CASE!poll%OF 2520WHEN0 2530WHEN1:PROCquit 2540ENDCASE 2550ENDIF 2560IFmenu%=2THEN 2570CASE!poll%OF 2580WHEN0:PROCfind 2590WHEN1:PROCsavefile 2600WHEN2:PROCcatalogue 2610WHEN3:PROCcompare 2620WHEN4:PROCpermanent 2630ENDCASE 2640ENDIF 2650IFmenub%=1THEN 2660IFmenu%=1b%=initblock%ELSEb%=mainblock% 2670SYS"Wimp_CreateMenu",0,b%,mousex%+64*(menub%=1),mousey% 2680ENDIF 2690ENDPROC 2700: 2710********** Message routines ********** 2720: 2730DEFPROCmessagein(event%) 2740task%=poll%!4:ref%=poll%!8 2750CASEpoll%!16OF 2760WHEN0:PROCquit 2770WHEN1:IFtask%=mytask%THEN 2780j%=FNalert("Can't save to Dzap's own window!",2,0) 2790ELSE 2800PROCreply(18,6) 2810ENDIF 2820WHEN2 2830CASEdragfrom%OF 2840WHENsave1% 2850 $file%=FNname(poll%+44) 2860 OSCLI("SAVE "+$file%+" "+STR$~S%+"+"+STR$~L%) 2870 PROCclosewindow(save1%):save1%=0 2880ENDCASE 2890OSCLI("SETTYPE "+$file%+" FFD") 2900SYS"Wimp_GetPointerInfo",,block% 2910block%!20=block%!12:block%!24=block%!16 2920block%!28=!block%:block%!32=block%!4 2930block%!36=0:block%!40=&FFD 2940!block%=64 2950block%!12=ref%:block%!16=3 2960PROCreply(17,3) 2970SYS"Wimp_CreateMenu",,-1 2980WHEN&502:PROChelp(poll%!32,poll%!36) 2990ENDCASE 3000ENDPROC 3010: 3020DEFFNname(s%):f$="" 3030WHILE?s%>0:f$+=CHR$(?s%):s%+=1 3040ENDWHILE 3050=f$ 3060: 3070DEFFNfilename(a$) 3080WHILEINSTR(a$,":")>0 3090a$=MID$(a$,INSTR(a$,":")+1) 3100ENDWHILE 3110WHILEINSTR(a$,".")>0 3120a$=MID$(a$,INSTR(a$,".")+1) 3130ENDWHILE 3140=a$ 3150: 3160DEFPROCreply(messtype%,reason%) 3170poll%!12=ref%:poll%!16=reason% 3180SYS"Wimp_SendMessage",messtype%,poll%,task% 3190ENDPROC 3200: 3210DEFPROChelp(w%,i%):CASEw%OF 3220WHEN-2:m$="Click [Select] to start the program : [Menu] for info and other options" 3230WHENcat%:m$="This window displays file information for a particular catalogue" 3240WHENsave%:m$="Use the � � icons to set the start and end addresses of the part of the disk you wish to save" 3250WHENcomp%:m$="Use the � � icons to set the start and end addresses of the part of the disk you wish to search" 3260WHENsave1%:m$="Drag the icon to the window in which you wish to save the file, or if there is already a full filename click on 'OK'. <Escape> will cancel the operation" 3270WHENsavesec%:m$="Click 'OK' to resave this sector back to the disk" 3280WHENfind%:m$="Enter the 4-character string you wish to find. Hexadecimal input is also accepted (up to 8 characters) provided the first character is '&'" 3290WHENfind1%,cat1%,comp1%:m$="Click on 'Continue' to continue the search to the end of the disk or until Escape is pressed, or on 'Cancel' to abort the search" 3300WHENdisplay%:m$="Click [Select] in the right hand part to enter ASCII characters, in the left hand part for hex entry. (You must position the caret with the mouse for each hex number)" 3310WHENopen%:IFi%=16m$="Click on this to display the sector"ELSEm$="Use the � � icons to set the drive, track, head and sector numbers. 'OK' displays the selected sector." 3320OTHERWISE:m$="No help provided" 3330ENDCASE 3340poll%!12=poll%!8:poll%!16=&503 3350!poll%=(LENm$+25)AND-4 3360$(poll%+20)=m$+CHR$0 3370SYS"Wimp_SendMessage",17,poll%,poll%!4 3380ENDPROC 3390: 3400********** Icon routines ********** 3410: 3420DEFPROCinverticon(window%,icon%) 3430!block%=window%:block%!4=icon%:block%!8=&200000:block%!12=0 3440SYS"Wimp_SetIconState",0,block%:ENDPROC 3450: 3460DEFPROCseticon(window%,icon%,col%) 3470!block%=window%:block%!4=icon%:block%!8=col%<<28:block%!12=&F0000000 3480SYS"Wimp_SetIconState",0,block%:ENDPROC 3490: 3500DEFFNiconset(i%):!q2%=options%:q2%!4=i%:SYS"Wimp_GetIconState",,q2% 3510=((q2%!24AND1<<21)<>0) 3520: 3530DEFPROCicons(h%) 3540FORi%=1TOnicons%:READbx%,by%,tx$,ty%,bg%,fg%,flg%,i$:tx%=EVALtx$ 3550IFLEFT$(i$,2)="FN"a$=""ELSEIFINSTR(i$,"$")a$=EVALi$ELSEa$=i$ 3560PROCcreateicon(h%,bx%,by%,tx%,ty%,bg%,fg%,flg%,0,a$) 3570IFLEFT$(i$,2)="FN"j%=EVALi$ 3580NEXT:ENDPROC 3590: 3600DEFPROCcreateicon(window%,bx%,by%,tx%,ty%,bg%,fg%,flg%,esg%,data$) 3610LOCALi% 3620!block%=window%:block%!4=bx%:block%!8=by% 3630block%!12=tx%:block%!16=ty% 3640block%!20=flg%OResg%<<16ORfg%<<24ORbg%<<28 3650IFblock%!20AND&100THEN 3660j%=INSTR(data$,";"):b%=-1 3670IFj%THEN 3680b$=MID$(data$,j%+1) 3690i%=INSTR(b$,","):b%=EVALMID$(b$,1,i%-1) 3700$b%=MID$(b$,i%+1) 3710ENDIF 3720i%=INSTR(data$,","):block%!24=EVALLEFT$(data$,i%-1) 3730block%!28=b%:block%!32=EVALMID$(data$,i%+1) 3740IFj%THEN 3750i%=INSTR(data$,",",j%) 3760block%!28=EVALMID$(data$,i%-1) 3770ELSE 3780block%!28=-1 3790ENDIF 3800ELSE 3810$(block%+24)=LEFT$(data$,11) 3820ENDIF 3830SYS"Wimp_CreateIcon",0,block% 3840ENDPROC 3850: 3860********** Dialog boxes ********** 3870: 3880DEFFNcreatedialog(col%,pos%,flag%,title$,RETURN claim$) 3890LOCALnicons%,width%,height%,x%,y%,i%,h%,bx%,by%,tx%,ty%,bg%,fg%,flg%,i$ 3900MOUSEmousex%,mousey%,but% 3910READclaim$,nicons%,width$,height% 3920width%=EVALwidth$:height%+=40 3930x%=mousex%:IFx%+width%>1280x%-=width% 3940y%=mousey%-height%:IFy%<0y%=0 3950h%=FNcreatewindow(title$,&93,flag%,col%,width%,height%,x%,y%,x%+width%,y%+height%,0,&3000,-1,pos%) 3960PROCicons(h%):PROCopenwindow(h%,block%,-1) 3970=h% 3980: 3990DEFPROCclickdialog(RETURN dh%,RETURN cl$,icon%) 4000IFcl$=""ORicon%=-1ENDPROC 4010IFEVAL("FNclickdialog"+cl$+"(icon%)")THEN 4020PROCclosewindow(dh%):dh%=0:cl$="" 4030ENDIF 4040ENDPROC 4050: 4060DEFFNgreater(a%,b%):IFa%<b%=b%ELSE=a% 4070: 4080DEFFNwhich(j%):=(j%-1760)DIV8 4090: 4100DEFFNalert(m$,ic%,err%):!block%=err% 4110$(block%+4)=m$+CHR$0 4120SYS"Wimp_ReportError",block%,ic%,"!Dzap"TO,r% 4130=r% 4140: 4150DEFPROCerror:CASEERR OF 4160WHEN67745:ic%=3 4170report$="Please check that a disk is in the drive" 4180OTHERWISE 4190report$=REPORT$+" at line "+STR$ERL:ic%=2 4200ENDCASE 4210r%=FNalert(report$,ic%,ERR) 4220IFINKEY-2THEN 4230@%=format%:VDU3,4 4240SYS"Wimp_CloseDown" 4250*FX4 4260*FX225 1 4270OSCLI("KEY9EDIT"+STR$ERL+"|M") 4280END 4290ENDIF 4300ENDPROC 4310: 4320********** Initialisation routines ********** 4330: 4340DEFPROCwimpinit 4350DIMmainblock%2300,textblock%1000,initblock%1000,itblock%500 4360DIMblock%&1000,poll%32+256 4370DIMmess%30,date%10 4380DIMwtitle1%30 4390$block%="TASK" 4400SYS"Wimp_Initialise",200,!block%,"Dzap"TOversion%,mytask% 4410!block%=-1:block%!4=0:block%!8=0:block%!12=69 4420block%!16=68:block%!20=&3002:$(block%+24)="!Dzap" 4430SYS"Wimp_CreateIcon",,block%TOic% 4440dialog%=0 4450open%=0:display%=0:find%=0 4460find1%=0:save%=0:save1%=0:save2%=0 4470cat%=0:cat1%=0:comp%=0:comp1%=0 4480save2$="" 4490PROCmenuinit:ENDPROC 4500: 4510DEFPROCmenuinit:SYS"OS_Byte",161,135TO,,disc% 4520IFdisc%>1c$="."ELSEc$="�" 4530info%=FNcreatewindow("About this program",&83,0,1,600,216,0,0,600,216,0,0,-1,0) 4540RESTORE4640:READsavesec$,nicons%,xsize%,ysize% 4550savesec%=FNcreatewindow("Save:",&86010012,0,1,xsize%,ysize%+40,0,0,xsize%,ysize%+40,nicons%,&3000,-1,1) 4560imenu$="3Dzap|<info%>.Info|.Quit|" 4570j%=FNcreatemenu(initblock%,imenu$,itblock%) 4580main$="5Dzap|.Find string|.Save sectors|.Cat info|"+c$+":Compare disks|<savesec%>�Save sector|" 4590j%=FNcreatemenu(mainblock%,main$,textblock%) 4600ENDPROC 4610: 4620****************************************** 4630: 4640DATAsavesec,2,420,84 4650DATA20,20,180,64,0,7,&303D,OK 4660DATA220,20,400,64,12,7,&303D,Cancel 4670: 4680DATAsavefile,3,212,140 4690DATA20,20,148,64,0,7,&F13D,"file%,30" 4700DATA152,20,192,64,12,7,&1903D,OK 4710DATA70,74,138,142,0,7,&603A,file_ffd 4720: 4730DATAopen,17,802,148 4740DATA20,20,64,64,0,7,&203D,"�" 4750DATA74,20,128,64,1,7,&313D,"ds%,3" 4760DATA138,20,182,64,0,7,&203D,"�" 4770DATA202,20,246,64,0,7,&203D,"�" 4780DATA256,20,310,64,1,7,&313D,"tr%,3" 4790DATA320,20,364,64,0,7,&203D,"�" 4800DATA384,20,428,64,0,7,&203D,"�" 4810DATA438,20,492,64,1,7,&313D,"hd%,3" 4820DATA502,20,546,64,0,7,&203D,"�" 4830DATA566,20,610,64,0,7,&203D,"�" 4840DATA620,20,664,64,1,7,&313D,"sc%,3" 4850DATA674,20,718,64,0,7,&203D,"�" 4860DATA20,84,182,128,1,7,&19,Drive 4870DATA202,84,364,128,1,7,&19,Track 4880DATA384,84,546,128,1,7,&19,Head 4890DATA566,84,718,128,1,7,&19,Sector 4900DATA738,20,782,128,12,7,&303D,OK 4910: 4920DATAfind,5,420,212 4930DATA20,20,180,64,12,7,&303D,OK 4940DATA220,20,400,64,0,7,&303D,Cancel 4950DATA20,84,324,128,0,7,&119,"findstr%,20" 4960DATA20,148,196,192,0,7,&19,Find string 4970DATA206,148,400,192,0,7,&F13D,"found%,10" 4980: 4990DATAfound,4,420,128 5000DATA20,20,180,64,12,7,&203D,Continue 5010DATA220,20,400,64,0,7,&303D,Cancel 5020DATA20,84,142,128,0,7,&19,at byte: 5030DATA220,84,340,128,0,7,&313D,"found%+20,6" 5040: 5050********** Start program ********** 5060: 5070DEFPROCopen:RESTORE4730 5080READopen$,nicons%,width%,height% 5090open%=FNcreatewindow("Disk edit",&B3,7,14,width%,height%,200,200,200+width%,200+height%,0,0,-1,0) 5100PROCicons(open%) 5110PROCopenwindow(open%,block%,-1) 5120ENDPROC 5130: 5140DEFFNclickdialogopen(icon%) 5150drive%=VAL$ds%:track%=VAL$tr%:head%=VAL$hd%:sector%=VAL$sc% 5160PROCgetaddress(icon%) 5170CASEicon%OF 5180WHEN16:td%=drive%:tt%=track%:th%=head%:ts%=sector% 5190IFdisplay%=0THEN 5200display%=FNcreatewindow("Sector",&F,7,0,1240,2048,0,182,1240,835,0,&3000,-2,0) 5210PROCopenwindow(display%,block%,open%):disp$="display" 5220PROCdisplay 5230main$="5Dzap|.Find string|.Save sectors|.Cat info|"+c$+":Compare disks|<savesec%>.Save sector|" 5240j%=FNcreatemenu(mainblock%,main$,textblock%) 5250ELSE 5260PROCdisplay 5270IFdisp$=""disp$="display":PROCopenwindow(display%,block%,open%) 5280PROCredrawwindow(display%) 5290ENDIF 5300ENDCASE 5310$ds%=STR$drive%:$tr%=STR$track%:$hd%=STR$head%:$sc%=STR$sector% 5320PROCredrawwindow(open%) 5330=FALSE 5340: 5350DEFPROCgetaddress(icon%) 5360CASEicon%OF 5370WHEN0:drive%=(drive%+1)MODdisc% 5380WHEN2:drive%-=1:IFdrive%<0drive%=disc% 5390WHEN3:track%=(track%+1)MOD80 5400WHEN5:track%-=1:IFtrack%<0track%=79 5410WHEN6:head%=(head%+1)MOD2:IFhead%=0track%=(track%+1)MOD80 5420WHEN8:head%-=1:IFhead%<0head%=1:track%-=1:IFtrack%<0track%=79 5430WHEN9:sector%=(sector%+1)MOD5:IFsector%=0head%=(head%+1)MOD2:IFhead%=0track%=(track%+1)MOD80 5440WHEN11:sector%-=1:IFsector%=-1sector%=4:head%=ABS(head%-1):IFhead%=1track%-=1:IFtrack%<0track%=79 5450ENDCASE 5460ENDPROC 5470: 5480DEFPROCdisplay 5490drive%=VAL$ds%:track%=VAL$tr%:head%=VAL$hd%:sector%=VAL$sc% 5500PROCloadsector(track%,head%,sector%,1,drive%) 5510FORI%=0TO63:L%=I%*16+S%:l$(I%)=FNpadd(L%-S%)+" ":t$="":FORJ%=0TO15:C%=L%?J%:l$(I%)+=FNpad(C%)+" ":IFC%>31ANDC%<127t$+=CHR$C%ELSEt$+="." 5520NEXT:l$(I%)+=" "+t$:NEXT 5530ENDPROC 5540: 5550DEFFNpad(C%):=RIGHT$("0"+STR$~C%,2) 5560: 5570DEFFNpadd(C%):=RIGHT$("000"+STR$~C%,4) 5580: 5590********** Catalogue info ********** 5600: 5610DEFPROCcatalogue:@%=&100090A 5620PROCstore:stamp%=&FFF00000:sp$=STRING$(4," ") 5630cat%=FNcreatewindow("Catalogue info",&F,7,0,1240,2048,0,182,1240,835,0,0,-1,0) 5640RESTORE5000:nicons%=2 5650cat1%=FNcreatewindow("Catalogue",&93,&90,1,420,84,100,200,520,284,0,&3000,-1,0) 5660PROCicons(cat1%) 5670foundcat%=FALSE:cat$="":cat1$="cat" 5680IFFNfindcat THEN 5690PROCopenwindow(cat%,block%,-1) 5700PROCopenwindow(cat1%,block%,-1) 5710ENDIF 5720ENDPROC 5730: 5740DEFFNclickdialogcat(icon%) 5750enddialog%=FALSE:IFg%=27:=0 5760CASEicon%OF 5770WHEN0 5780IFFNfindcat THEN 5790foundcat%=FALSE 5800PROCredrawwindow(cat%) 5810ELSE 5820enddialog%=TRUE 5830PROCclosewindow(cat%) 5840ENDIF 5850WHEN1:enddialog%=TRUE 5860PROCclosewindow(cat%) 5870ENDCASE 5880=enddialog% 5890: 5900DEFFNfindcat:REPEAT:PROCredrawwindow(open%) 5910g%=INKEY0:IFg%=27VDU7:=0 5920PROCloadsector(track%,head%,sector%,1,drive%) 5930IFS%!1=&6B63694E ORS%!1=&6F677548 foundcat%=TRUE:PROCgetcatinfo 5940sector%=(sector%+1)MOD5:IFsector%=0head%=(head%+1)MOD2:IFhead%=0track%+=1 5950$tr%=STR$track%:$hd%=STR$head%:$sc%=STR$sector% 5960UNTIL(track%=79ANDhead%=1ANDsector%=4)ORfoundcat% 5970=foundcat% 5980: 5990DEFPROCgetcatinfo:VDU7 6000offset%=5:n%=0:n$()=" " 6010REPEAT:n$(n%)+=FNgetstring(S%+offset%) 6020load%=!(S%+offset%+10):exec%=!(S%+offset%+14) 6030len%=!(S%+offset%+18):attr%=!(S%+offset%+22) 6040IF(load%ANDstamp%)=stamp%THEN 6050type%=(load%AND&FFF00)DIV&100 6060CASEtype%OF 6070WHEN&FFF:t$="ASCII text" 6080WHEN&FFE:t$="Command file" 6090WHEN&FFD:IFlen%=&800t$="Directory"ELSEt$="Data" 6100WHEN&FFC:t$="Relocatable utility" 6110WHEN&FFB:t$="BASIC program" 6120WHEN&FFA:t$="Relocatable module" 6130WHEN&FF9:t$="Sprite" 6140WHEN&FF8:t$="Absolute code" 6150WHEN&FF7:t$="BBC font" 6160WHEN&FF6:t$="Fancy font" 6170WHEN&FF5:t$="PostScript file" 6180WHEN&FED:t$="Palette" 6190WHEN&FEC:t$="Template file" 6200WHEN&FEB:t$="Obey file" 6210WHEN&AFF:t$="Draw file" 6220WHEN&AF8"t$="FW+ file" 6230WHEN&AF1"t$="!Maestro file" 6240WHEN&808:t$="PostScript file" 6250OTHERWISE:t$="Unknown file type" 6260ENDCASE 6270n$(n%)+=FNnumpad(STR$~type%+" "+t$+sp$,22)+"Length: "+FNnumpad(STR$~len%,10)+"Attribute: "+STR$~attr% 6280ELSE 6290n$(n%)+=FNnumpad("Exec: "+STR$~exec%,14)+FNnumpad("Load: "+STR$~load%,14)+FNnumpad("Length: "+STR$~len%,16)+"Attribute: "+STR$~attr% 6300ENDIF 6310access%=attr%DIV&1000000:a$="" 6320IF(access%AND1)=1a$+="W" 6330IF(access%AND2)=2a$+="R" 6340IF(access%AND4)=4a$+="L" 6350n$(n%)+=a$:n%+=1 6360offset%+=26 6370UNTILS%?offset%=0 6380PROCresizewindow(cat%,0,0,1240,n%*32) 6390ENDPROC 6400: 6410DEFFNgetstring(ad%):f$="":i%=0 6420REPEAT:c%=ad%?i%:f$+=CHR$c%:i%+=1:UNTILc%=13ORi%=11 6430f$=LEFT$(f$,LENf$-1) 6440=LEFT$(f$+STRING$(12," "),12) 6450: 6460DEFFNnumpad(a$,len%) 6470=LEFT$(a$+STRING$(len%," "),len%) 6480: 6490********** Find a string ********** 6500: 6510DEFPROCfind:RESTORE4920 6520find$="find" 6530$findstr%="(4 characters only)" 6540find%=FNcreatedialog(1,0,&93,"Find string",find$) 6550ENDPROC 6560: 6570DEFFNclickdialogfind(icon%) 6580enddialog%=FALSE 6590CASEicon%OF 6600WHEN0:enddialog%=TRUE 6610IFLEFT$($found%,1)="&"THEN 6620f$="" 6630FORi%=2TO8:f$+=CHR$(EVAL("&"+MID$($found%,i%,2))):NEXT 6640$F%=f$ 6650ELSE 6660$F%=LEFT$($found%,4) 6670ENDIF 6680f%=!F% 6690PROCclosewindow(find%) 6700found$="found":RESTORE4990 6710PROCstore 6720IFFNsearch THEN 6730find1%=FNcreatedialog(2,0,&93,"Found",found$) 6740$tr%=STR$track%:$hd%=STR$head%:$sc%=STR$sector% 6750ELSE 6760PROCrestore 6770ENDIF 6780PROCdisplay 6790PROCredrawwindow(display%) 6800PROCredrawwindow(open%) 6810WHEN1:enddialog%=TRUE 6820ENDCASE 6830=enddialog% 6840: 6850DEFFNclickdialogfound(icon%) 6860SOUND1,-9,200,1 6870enddialog%=FALSE:IFg%=27:=TRUE 6880CASEicon%OF 6890WHEN0 6900sector%=(sector%+1)MOD5:IFsector%=0head%=(head%+1)MOD2:IFhead%=0track%+=1 6910IFFNsearch THEN 6920$tr%=STR$track%:$hd%=STR$head%:$sc%=STR$sector% 6930PROCredrawwindow(find1%) 6940ELSE 6950PROCrestore:enddialog%=TRUE 6960ENDIF 6970WHEN1:PROCrestore:enddialog%=TRUE 6980ENDCASE 6990PROCdisplay 7000PROCredrawwindow(display%) 7010PROCredrawwindow(open%) 7020=enddialog% 7030: 7040DEFFNsearch:gotit%=FALSE 7050REPEAT:$ds%=STR$drive%:$tr%=STR$track%:$hd%=STR$head%:$sc%=STR$sector% 7060PROCredrawwindow(open%):g%=INKEY0:IFg%=27VDU7:=0 7070PROCloadsector(track%,head%,sector%,1,drive%) 7080FORI%=0TO1020:IFI%!S%=f%gotit%=TRUE:byte%=I% 7090NEXT 7100IFNOTgotit%THEN 7110sector%=(sector%+1)MOD5:IFsector%=0head%=(head%+1)MOD2:IFhead%=0track%+=1 7120ELSE 7130$ds%=STR$drive%:$tr%=STR$track%:$hd%=STR$head%:$sc%=STR$sector% 7140$(found%+20)="&"+STR$~byte% 7150ENDIF 7160UNTIL(track%=79ANDhead%=1ANDsector%=4)ORgotit% 7170=gotit% 7180: 7190********** Save sectors ********** 7200: 7210DEFPROCsavefile:RESTORE4740 7220save%=FNcreatewindow("Start address,wtitle1%",&B3,7,1,802,148,0,0,802,148,0,0,-1,0) 7230nicons%=17:PROCicons(save%) 7240sd%=-1:PROCstore 7250save$="start":PROCopenwindow(save%,block%,-1) 7260ENDPROC 7270: 7280DEFFNclickdialogstart(icon%) 7290enddialog%=FALSE 7300PROCgetaddress(icon%) 7310CASEicon%OF 7320WHEN16:IFsd%=-1THEN 7330sd%=VAL$ds%:st%=VAL$tr%:sh%=VAL$hd%:ss%=VAL$sc% 7340$wtitle1%="End address" 7350ELSE 7360enddialog%=TRUE 7370ed%=VAL$ds%:et%=VAL$tr%:eh%=VAL$hd%:es%=VAL$sc% 7380RESTORE4680:save1$="" 7390save1%=FNcreatedialog(1,1,&93,"Save:",save1$) 7400SYS"Wimp_SetCaretPosition",save1%,0,0,0,-1,-1 7410ENDIF 7420ENDCASE 7430$ds%=STR$drive%:$tr%=STR$track%:$hd%=STR$head%:$sc%=STR$sector% 7440PROCredrawwindow(save%) 7450=enddialog% 7460: 7470DEFFNclickdialogsavefile(icon%) 7480enddialog%=FALSE 7490CASEicon%OF 7500WHEN1 7510IFINSTR($file%,".")THEN 7520PROCloadsector(st%,sh%,ss%,len%+1,drive%) 7530OSCLI("SAVE "+$file%+" "+STR$~S%+"+"+STR$~L%) 7540ELSEVDU7 7550ENDIF 7560enddialog%=TRUE 7570PROCrestore 7580WHEN2:PROCinitdrag(save1%,icon%,5) 7590PROCrestore 7600ENDCASE 7610=enddialog% 7620: 7630********** Compare two disks ********** 7640: 7650DEFPROCcompare:E%=S%+1024:RESTORE4740 7660comp%=FNcreatewindow("Start address,wtitle1%",&B3,7,1,802,148,0,0,802,148,0,0,-1,0) 7670nicons%=17:PROCicons(comp%) 7680I%=0:compd%=1:PROCstore 7690comp$="comp":PROCopenwindow(comp%,block%,-1) 7700ENDPROC 7710: 7720DEFFNclickdialogcomp(icon%) 7730enddialog%=FALSE 7740PROCgetaddress(icon%) 7750CASEicon%OF 7760WHEN16:CASEcompd%OF 7770WHEN1 7780sd%=VAL$ds%:st%=VAL$tr%:sh%=VAL$hd%:ss%=VAL$sc% 7790$wtitle1%="End address":compd%=2 7800WHEN2 7810ed%=VAL$ds%:et%=VAL$tr%:eh%=VAL$hd%:es%=VAL$sc% 7820enddialog%=TRUE:comp1$="compare":RESTORE4990 7830IFFNcompare THEN 7840comp1%=FNcreatedialog(1,0,&93,"Compare",comp1$) 7850comp1$="compare" 7860ENDIF 7870ENDCASE 7880ENDCASE 7890$ds%=STR$drive%:$tr%=STR$track%:$hd%=STR$head%:$sc%=STR$sector% 7900PROCredrawwindow(comp%) 7910=enddialog% 7920: 7930DEFFNclickdialogcompare(icon%) 7940enddialog%=FALSE:IFg%=27:=TRUE 7950CASEicon%OF 7960WHEN0:IFFNcompare PROCredrawwindow(comp1%):REMELSEenddialog%=TRUE 7970WHEN1:enddialog%=TRUE 7980ENDCASE 7990=enddialog% 8000 8010DEFFNcompare:REPEAT:IFI%=0THEN 8020discaddr%=((st%*2+sh%)*5+ss%)*1024+(0<<29) 8030SYS"ADFS_DiscOp",0,1,discaddr%,S%,1024 8040discaddr%+=(1<<29) 8050SYS"ADFS_DiscOp",0,1,discaddr%,E%,1024 8060ENDIF 8070nc%=-1:g%=INKEY0:IFg%=27VDU7:=0 8080REPEAT:IFI%?S%<>I%?E%nc%=I% 8090I%+=1:UNTILI%=1024ORnc%>-1 8100IFI%=1024I%=0:ss%=(ss%+1)MOD5:IFss%=0sh%=(sh%+1)MOD2:IFsh%=0st%+=1 8110$tr%=STR$st%:$hd%=STR$sh%:$sc%=STR$ss% 8120PROCredrawwindow(open%) 8130UNTIL(st%=et%ANDsh%=eh%ANDss%=es%)ORnc% 8140$(found%+20)="&"+STR$~nc% 8150IFst%=et%ANDsh%=eh%ANDss%=es%:=0ELSE=(nc%>-1) 8160: 8170********** Save current sector ********** 8180 8190DEFFNclickdialogsavesec(icon%) 8200enddialog%=FALSE 8210CASEicon%OF 8220WHEN0:enddialog%=TRUE 8230PROCpermanent 8240WHEN1 8250enddialog%=TRUE 8260ENDCASE 8270IFenddialog%SYS"Wimp_CreateMenu",,-1 8280=enddialog% 8290: 8300********** Keyboard routines ********** 8310: 8320DEFPROChex(key%) 8330IFINSTR("0123456789ABCDEF",CHR$key%)THEN 8340first%=((sx%-6)MOD3) 8350IFfirst%=0THEN 8360MID$(l$(line%),sx%+1,1)=CHR$key% 8370asc%=EVAL("&"+MID$(l$(line%),sx%+1,2)) 8380IFasc%>31ANDasc%<256ELSEasc%=46 8390MID$(l$(line%),58+(sx%-6)DIV3,1)=CHR$asc% 8400cx%+=16:sx%+=1 8410SYS"Wimp_SetCaretPosition",handle%,-1,cx%,cy%,36,sx% 8420ELSE 8430IFfirst%=1THEN 8440MID$(l$(line%),sx%+1,1)=CHR$key% 8450asc%=EVAL("&"+MID$(l$(line%),sx%,2)) 8460IFasc%>31ANDasc%<256ELSEasc%=46 8470MID$(l$(line%),58+(sx%-7)DIV3,1)=CHR$asc% 8480cx%-=16:sx%-=1 8490SYS"Wimp_SetCaretPosition",handle%,-1,cx%,cy%,36,sx% 8500ENDIF 8510ENDIF 8520PROCredrawwindow(handle%) 8530ENDIF 8540ENDPROC 8550: 8560DEFPROCascii(key%) 8570IFkey%>31ANDkey%<127THEN 8580MID$(l$(line%),sx%+1,1)=CHR$key% 8590MID$(l$(line%),(sx%-57)*3+7,2)=FNpad(key%) 8600cx%+=16:sx%+=1 8610SYS"Wimp_SetCaretPosition",handle%,-1,cx%,cy%,36,sx% 8620PROCredrawwindow(handle%) 8630ENDIF 8640ENDPROC 8650: 8660DEFPROCpermanent 8670FORI%=0TO63:L%=I%*16+S%:FORJ%=0TO15:C%=EVAL("&"+MID$(l$(I%),7+J%*3,2)):L%?J%=C%:NEXT, 8680PROCsavesector(tt%,th%,ts%,1,td%) 8690ENDPROC 8700: 8710********** Misc routines ********** 8720: 8730DEFPROCredowindow(handle%,x0%,y0%) 8740PROClwaorigin(block%,x0%,y0%) 8750CASEhandle%OF 8760WHENinfo%:GCOL0 8770FORi%=0TO3:RECTANGLEFILLx0%+160,y0%+20+48*i%,420,40:NEXT 8780GCOL7 8790FORi%=0TO3:RECTANGLEx0%+160,y0%+20+48*i%,420,40:NEXT 8800MOVEx0%+20,y0%+196:PRINT"Name" 8810MOVEx0%+330,y0%+196:PRINT"!Dzap" 8820MOVEx0%+20,y0%+148:PRINT"Purpose" 8830MOVEx0%+226,y0%+148:PRINT"Disc sector editor" 8840MOVEx0%+20,y0%+100:PRINT"Author" 8850MOVEx0%+202,y0%+100:PRINT"G M Holden (c) ASP '91" 8860MOVEx0%+20,y0%+52:PRINT"Version" 8870MOVEx0%+330,y0%+52:PRINT"v 1.0" 8880WHENcat%:y0%-=4:I%=-1 8890by%=block%!8:ty%=block%!16 8900REPEAT:I%+=1:UNTILy0%+I%*32>by%-32 8910REPEAT:I%+=1:MOVEx0%,y0%+I%*32:PRINTn$(n%-I%):UNTILy0%+I%*32>ty%ORI%=n% 8920WHENdisplay%:y0%-=4:I%=-1 8930by%=block%!8:ty%=block%!16 8940REPEAT:I%+=1:UNTILy0%+I%*32>by%-32 8950REPEAT:I%+=1:MOVEx0%,y0%+I%*32:PRINTl$(64-I%):UNTILy0%+I%*32>ty%ORI%=64 8960ENDCASE 8970ENDPROC 8980: 8990DEFPROCstore:D%=VAL$ds% 9000T%=VAL$tr%:H%=VAL$hd%:Z%=VAL$sc% 9010drive%=D%:track%=T%:head%=H%:sector%=Z% 9020ENDPROC 9030: 9040DEFPROCrestore:$ds%=STR$D% 9050$tr%=STR$T%:$hd%=STR$H%:$sc%=STR$Z% 9060ENDPROC 9070: 9080DEFPROCloadsector(t%,h%,s%,l%,d%) 9090discaddr%=((t%*2+h%)*5+s%)*1024 9100len%=1024*l%:discaddr%+=(d%<<29) 9110SYS"ADFS_DiscOp",0,1,discaddr%,S%,len% 9120ENDPROC 9130: 9140DEFPROCsavesector(t%,h%,s%,l%,d%) 9150discaddr%=((t%*2+h%)*5+s%)*1024 9160len%=1024*l%:discaddr%+=(d%<<29) 9170SYS"ADFS_DiscOp",0,2,discaddr%,S%,len% 9180ENDPROC 9190: 9200DEFPROCdzapinit:format%=@% 9210REM (c) Kendall K. Down 1991 9220DIMS%1024*40,F%8,l$(64),n$(64) 9230DIMds%4,tr%4,hd%4,sc%4 9240DIMfindstr%20,found%30,file%30 9250$found%=">>>>" 9260$file%="DzapFile" 9270drive%=0:track%=0:head%=0:sector%=0 9280$ds%="0":$tr%="0":$hd%="0":$sc%="0" 9290ENDPROC
�>!Dzap.!RunImage -� Copyright Archimedes World October 1991 �wimpinit:�dzapinit ��error (.�:whatnext%=�poll(0):�action(whatnext%):�� 2� <: F<ݤpoll(mask%):ș"Wimp_Poll",mask%,poll%�result%:=result% P: Z��action(event%) d Ȏevent%� n�1:�redrawwindow(!poll%) x#�2:�openwindow(!poll%,poll%,-1) ��3:�closewindow(!poll%) ��4: ��5: ��6:�mousebuttonclick ��7:�drag(dragfrom%) �!�8:�keypress(!poll%,poll%!24) ��9:�menuselect ��17,18:�messagein(event%) �� �� �: �>��quit:$block%="TASK":ș"Wimp_CloseDown",mytask%,!block%:� �: )********** Window routines ********** : zݤcreatewindow(title$,flag%,fgcol%,bgcol%,twatx%,twaty%,vwabx%,vwaby%,vwatx%,vwaty%,nicons%,iconflag%,behind%,sprite%) "�handle% ,C!block%=vwabx%:block%!4=vwaby%:block%!8=vwatx%:block%!12=vwaty% 6Bblock%!16=0:block%!20=twaty%:block%!24=behind%:block%!28=flag% @=block%?32=7:block%?33=2:block%?34=fgcol%:block%?35=bgcol% J4block%?36=3:block%?37=1:block%?38=12:block%?39=0 T=block%!40=0:block%!44=0:block%!48=twatx%:block%!52=twaty% ^Cblock%!56=&3D:block%!60=iconflag%:block%!64=sprite%:block%!68=0 h�title$<12� r$(block%+72)=title$ |� �block%!56=&13D �comma%=�title$,",") ��comma%� �b%=��title$,comma%+1) �$b%=�title$,comma%-1) �block%!72=b% �� �-$(block%+256)=title$:block%!72=block%+256 �� �block%!76=-1 �� �block%!84=nicons% �-�nicons%>0�windowicons(block%+88,nicons%) *ș"Wimp_CreateWindow",0,block%�handle% =handle% : &��windowicons(bl%,n%) 07�li%=1�n%:�bx%,by%,tx$,ty%,bg%,fg%,flg%,i$:tx%=�tx$ :+!bl%=bx%:bl%!4=by%:bl%!8=tx%:bl%!12=ty% Dbl%!16=flg%�fg%<<24�bg%<<28 N�bl%!16�&100� Xj%=�i$,";"):b%=-1 b�j%� lb$=�i$,j%+1) vi%=�b$,","):b%=��b$,1,i%-1) �$b%=�b$,i%+1) �� �!i%=�i$,","):bl%!20=��i$,i%-1) �bl%!24=b%:bl%!28=��i$,i%+1) �� �$(bl%+20)=�i$,11) �� � bl%+=32:� �� �: �&��openwindow(handle%,mem%,behind%) �=�mem%=block% !mem%=handle%:ș"Wimp_GetWindowState",0,mem% �block%!28=behind% ș"Wimp_OpenWindow",0,mem%:� : *��redrawwindow(handle%):�more%,x0%,y0% 8!block%=handle%:ș"Wimp_RedrawWindow",0,block%�more% *1�lwaorigin(block%,x0%,y0%):w%=�which(handle%) 4ȕmore% >?block%!28-=x0%:block%!32-=y0%:block%!36-=x0%:block%!40-=y0% H �redowindow(handle%,x0%,y0%) R(ș"Wimp_GetRectangle",0,block%�more% \� f� p: z��lwaorigin(b%,� x%,� y%) �"x%=b%!4-b%!20:y%=b%!16-b%!24:� �: �+��resizewindow(handle%,bx%,by%,tx%,ty%) �7!block%=bx%:block%!4=by%:block%!8=tx%:block%!12=ty% �%ș"Wimp_SetExtent",handle%,block% �!block%=handle% �#ș"Wimp_GetWindowInfo",0,block% � ș"Wimp_OpenWindow",0,block% �� �: ���closewindow(handle%) �1!block%=handle%:ș"Wimp_CloseWindow",0,block% �Ȏhandle%� �display%:disp$="" � � $: .(********** Mouse routines ********** 8: B-��mousebuttonclick:�handle%,button%,icon% Lbutton%=poll%!8 Vhandle%=poll%!12 `icon%=poll%!16 j"mousex%=!poll%:mousey%=poll%!4 t�button%=2� ~�handle%=-2� �menu%=1 �7ș"Wimp_CreateMenu",0,initblock%,mousex%-64,mousey% �� �menu%=2 �4ș"Wimp_CreateMenu",0,mainblock%,mousex%,mousey% �� �� ��button%=4� �Ȏhandle%� � �-2:�open �.�savesec%:save2%=savesec%:save2$="savesec" �(�clickdialog(save2%,save2$,poll%!16) 0�comp1%:�clickdialog(comp1%,comp1$,poll%!16) -�comp%:�clickdialog(comp%,comp$,poll%!16) -�cat1%:�clickdialog(cat1%,cat1$,poll%!16) -�save%:�clickdialog(save%,save$,poll%!16) (0�save1%:�clickdialog(save1%,save1$,poll%!16) 20�find1%:�clickdialog(find1%,found$,poll%!16) <-�find%:�clickdialog(find%,find$,poll%!16) F5�display%:ș"Wimp_GetWindowState",display%,block% P,xpos%=block%!20-((block%!4-mousex%)�-16) Z'ypos%=block%!24-(block%!16-mousey%) d$ypos%=(ypos%�-32)+(block%!24)�32 nAș"Wimp_SetCaretPosition",display%,-1,xpos%,ypos%,36,xpos%�16 x-�open%:�clickdialog(open%,open$,poll%!16) �2�dialog%:�clickdialog(dialog%,claim$,poll%!16) �� �� �� �: �'********** Drag routines ********** �: ���drag(hand%) �Ȏhand%� ��save1% �start%=st%*10+sh%*5+ss% �end%=et%*10+eh%*5+es% �!len%=end%-start%:L%=len%*1024 �len%=1� *�loadsector(st%,sh%,ss%,len%+1,drive%) � "Jj%=�alert("Start address is less than end address. Please check.",2,0) ,� 6 �savesec% @L%=1024 J� T#ș"Wimp_GetPointerInfo",,block% ^3block%!20=block%!12:� destination window handle h1block%!24=block%!16:� destination icon handle r%block%!28=!block%:� destination x |&block%!32=block%!4:� destination y �,block%!36=L%:� estimated size (in bytes) �block%!40=&FFD:� file type �!block%=60 �block%!12=0:block%!16=1 �%$(block%+44)=�filename($file%)+�0 �,ș"Wimp_SendMessage",17,block%,block%!20 �� �: �!��initdrag(hand%,icon%,type%) �dragfrom%=hand% �1!block%=hand%:ș"Wimp_GetWindowState",,block% �ix%=block%!4:iy%=block%!8 �0block%!4=icon%:ș"Wimp_GetIconState",,block% block%!4=type% block%!8+=ix%:block%!12+=iy% !block%!16+=ix%:block%!20+=iy% &block%!24=0:block%!28=0 0!block%!32=1279:block%!36=1023 :ș"Wimp_DragBox",,block% D� N: X+********** Keypress routines ********** b: l��keypress(handle%,key%) v%ș"Wimp_GetCaretPosition",,block% �,cx%=block%!8:cy%=block%!12:sx%=block%!20 �line%=63-(block%!12)�32 �Ȏhandle%� � �display% �7�sx%>5�sx%<52�hex(key%) ��sx%>56�sx%<73�ascii(key%) �(�save1%:�key%=27�closewindow(save1%) �� �� �: �'********** Menu routines ********** �: �ݤcreatemenu(mb%,t$,tb%) �7�new$,ptr%,shade%,tick%,dotted%,submenu%,writeable% !numofitems%=��t$,1):t$=�t$,2) @nextmenu%=mb%+28+24*numofitems%:nexttext%=tb%+24*numofitems% +$mb%=�t$,�t$,"|")-1):t$=�t$,�t$,"|")+1) &mb%?12=7:� Title foreground colour *&mb%?13=2:� Title background colour 4#mb%?14=7:� Work area foreground >#mb%?15=0:� Work area background Hmb%!16=200:� Menu width Rmb%!20=44:� Height of text \"mb%!24=0:� Space between lines fptr%=mb%+28 p9�:shade%=0:tick%=0:dotted%=0:writeable%=0:submenu%=-1 z�t$,1)="["� �#t$=�t$,2):new$=��t$,�t$,"]")-1) �t$=�t$,�t$,"]")+1) �2submenu%=�createmenu(nextmenu%,new$,nexttext%) �� ��t$,1)="<"� �'t$=�t$,2):submenu%=��t$,�t$,">")-1) �t$=�t$,�t$,">")+1) �� �%�t$,1)="."t$=�t$,2):� Do nothing �'�t$,1)="�"shade%=&400000:t$=�t$,2) � �t$,1)="�"tick%=1:t$=�t$,2) �"�t$,1)=":"dotted%=2:t$=�t$,2) �%�t$,1)="^"writeable%=4:t$=�t$,2) g%=�t$,"|") �writeable%� /i%=�t$,","):ptr%!12=��t$,i%-1):t$=�t$,i%+1) $ptr%!16=-1 .ptr%!20=��t$,�t$,"|")-1) 8<mb%!16=�greater(mb%!16,4+16*ptr%!20):� Width of new menu B� L?$tb%=�t$,g%-1):ptr%!12=tb%:ptr%!16=-1:ptr%!20=�$tb%:tb%+=24 V� `t$=�t$,g%+1) jF!ptr%=tick%�dotted%�writeable%�(&80 �(t$="")):�&80 marks last item tptr%!4=submenu% ~2ptr%!8=&10121�shade%�writeable%<<6�7<<24�0<<28 �ptr%+=24 � �t$="" �=mb% �: ���menuselect �3ș"Wimp_GetPointerInfo",,block%:menub%=block%!8 � �menu%=1� � Ȏ!poll%� ��0 ��1:�quit �� �� �menu%=2� Ȏ!poll%� �0:�find �1:�savefile (�2:�catalogue 2�3:�compare <�4:�permanent F� P� Z�menub%=1� d'�menu%=1b%=initblock%�b%=mainblock% n:ș"Wimp_CreateMenu",0,b%,mousex%+64*(menub%=1),mousey% x� �� �: �*********** Message routines ********** �: ���messagein(event%) �task%=poll%!4:ref%=poll%!8 �Ȏpoll%!16� ��0:�quit ��1:�task%=mytask%� �5j%=�alert("Can't save to Dzap's own window!",2,0) �� ��reply(18,6) �� �2 Ȏdragfrom%� �save1% " $file%=�name(poll%+44) ,) �("SAVE "+$file%+" "+�~S%+"+"+�~L%) 6# �closewindow(save1%):save1%=0 @� J�("SETTYPE "+$file%+" FFD") T#ș"Wimp_GetPointerInfo",,block% ^+block%!20=block%!12:block%!24=block%!16 h(block%!28=!block%:block%!32=block%!4 rblock%!36=0:block%!40=&FFD |!block%=64 �block%!12=ref%:block%!16=3 ��reply(17,3) �ș"Wimp_CreateMenu",,-1 �"�&502:�help(poll%!32,poll%!36) �� �� �: �ݤname(s%):f$="" �ȕ?s%>0:f$+=�(?s%):s%+=1 �� �=f$ �: �ݤfilename(a$) ȕ�a$,":")>0 a$=�a$,�a$,":")+1) � &ȕ�a$,".")>0 0a$=�a$,�a$,".")+1) :� D=a$ N: X��reply(messtype%,reason%) b"poll%!12=ref%:poll%!16=reason% l.ș"Wimp_SendMessage",messtype%,poll%,task% v� �: ���help(w%,i%):Ȏw%� �T�-2:m$="Click [Select] to start the program : [Menu] for info and other options" �O�cat%:m$="This window displays file information for a particular catalogue" �m�save%:m$="Use the � � icons to set the start and end addresses of the part of the disk you wish to save" �o�comp%:m$="Use the � � icons to set the start and end addresses of the part of the disk you wish to search" ���save1%:m$="Drag the icon to the window in which you wish to save the file, or if there is already a full filename click on 'OK'. <Escape> will cancel the operation" �D�savesec%:m$="Click 'OK' to resave this sector back to the disk" К�find%:m$="Enter the 4-character string you wish to find. Hexadecimal input is also accepted (up to 8 characters) provided the first character is '&'" ڞ�find1%,cat1%,comp1%:m$="Click on 'Continue' to continue the search to the end of the disk or until Escape is pressed, or on 'Cancel' to abort the search" ��display%:m$="Click [Select] in the right hand part to enter ASCII characters, in the left hand part for hex entry. (You must position the caret with the mouse for each hex number)" ��open%:�i%=16m$="Click on this to display the sector"�m$="Use the � � icons to set the drive, track, head and sector numbers. 'OK' displays the selected sector." �:m$="No help provided" � "poll%!12=poll%!8:poll%!16=&503 !poll%=(�m$+25)�-4 $(poll%+20)=m$+�0 *)ș"Wimp_SendMessage",17,poll%,poll%!4 4� >: H'********** Icon routines ********** R: \��inverticon(window%,icon%) f?!block%=window%:block%!4=icon%:block%!8=&200000:block%!12=0 p$ș"Wimp_SetIconState",0,block%:� z: �!��seticon(window%,icon%,col%) �H!block%=window%:block%!4=icon%:block%!8=col%<<28:block%!12=&F0000000 �$ș"Wimp_SetIconState",0,block%:� �: �Cݤiconset(i%):!q2%=options%:q2%!4=i%:ș"Wimp_GetIconState",,q2% �=((q2%!24�1<<21)<>0) �: ���icons(h%) �;�i%=1�nicons%:�bx%,by%,tx$,ty%,bg%,fg%,flg%,i$:tx%=�tx$ �+�i$,2)="FN"a$=""��i$,"$")a$=�i$�a$=i$ �5�createicon(h%,bx%,by%,tx%,ty%,bg%,fg%,flg%,0,a$) ��i$,2)="FN"j%=�i$ ��:� : A��createicon(window%,bx%,by%,tx%,ty%,bg%,fg%,flg%,esg%,data$) �i% $-!block%=window%:block%!4=bx%:block%!8=by% .block%!12=tx%:block%!16=ty% 8+block%!20=flg%�esg%<<16�fg%<<24�bg%<<28 B�block%!20�&100� Lj%=�data$,";"):b%=-1 V�j%� `b$=�data$,j%+1) ji%=�b$,","):b%=��b$,1,i%-1) t$b%=�b$,i%+1) ~� �*i%=�data$,","):block%!24=��data$,i%-1) �(block%!28=b%:block%!32=��data$,i%+1) ��j%� �i%=�data$,",",j%) �block%!28=��data$,i%-1) �� �block%!28=-1 �� �� �$(block%+24)=�data$,11) �� � ș"Wimp_CreateIcon",0,block% � : &********** Dialog boxes ********** : (3ݤcreatedialog(col%,pos%,flag%,title$,� claim$) 2G�nicons%,width%,height%,x%,y%,i%,h%,bx%,by%,tx%,ty%,bg%,fg%,flg%,i$ <ȗmousex%,mousey%,but% F"�claim$,nicons%,width$,height% Pwidth%=�width$:height%+=40 Z(x%=mousex%:�x%+width%>1280x%-=width% d y%=mousey%-height%:�y%<0y%=0 neh%=�createwindow(title$,&93,flag%,col%,width%,height%,x%,y%,x%+width%,y%+height%,0,&3000,-1,pos%) x(�icons(h%):�openwindow(h%,block%,-1) �=h% �: �$��clickdialog(� dh%,� cl$,icon%) ��cl$=""�icon%=-1� �&�("FNclickdialog"+cl$+"(icon%)")� �"�closewindow(dh%):dh%=0:cl$="" �� �� �: �"ݤgreater(a%,b%):�a%<b%=b%�=a% �: �ݤwhich(j%):=(j%-1760)�8 �: %ݤalert(m$,ic%,err%):!block%=err% $(block%+4)=m$+�0 /ș"Wimp_ReportError",block%,ic%,"!Dzap"�,r% "=r% ,: 6��error:Ȏ� � @�67745:ic%=3 J6report$="Please check that a disk is in the drive" T ^#report$=�$+" at line "+Þ:ic%=2 h� rr%=�alert(report$,ic%,�) | �-2� �@%=format%:�3,4 �ș"Wimp_CloseDown" �*FX4 �*FX225 1 ��("KEY9EDIT"+Þ+"|M") �� �� �� �: �1********** Initialisation routines ********** �: ���wimpinit �=�mainblock%2300,textblock%1000,initblock%1000,itblock%500 �block%&1000,poll%32+256 �mess%30,date%10 �wtitle1%30 &$block%="TASK" 0;ș"Wimp_Initialise",200,!block%,"Dzap"�version%,mytask% :1!block%=-1:block%!4=0:block%!8=0:block%!12=69 D5block%!16=68:block%!20=&3002:$(block%+24)="!Dzap" N#ș"Wimp_CreateIcon",,block%�ic% X dialog%=0 bopen%=0:display%=0:find%=0 l&find1%=0:save%=0:save1%=0:save2%=0 v#cat%=0:cat1%=0:comp%=0:comp1%=0 � save2$="" ��menuinit:� �: �*��menuinit:ș"OS_Byte",161,135�,,disc% ��disc%>1c$="."�c$="�" �Rinfo%=�createwindow("About this program",&83,0,1,600,216,0,0,600,216,0,0,-1,0) �)��T`R:�savesec$,nicons%,xsize%,ysize% �jsavesec%=�createwindow("Save:",&86010012,0,1,xsize%,ysize%+40,0,0,xsize%,ysize%+40,nicons%,&3000,-1,1) �&imenu$="3Dzap|<info%>.Info|.Quit|" �.j%=�createmenu(initblock%,imenu$,itblock%) �cmain$="5Dzap|.Find string|.Save sectors|.Cat info|"+c$+":Compare disks|<savesec%>�Save sector|" �/j%=�createmenu(mainblock%,main$,textblock%) �� : .****************************************** : �savesec,2,420,84 *�20,20,180,64,0,7,&303D,OK 4$�220,20,400,64,12,7,&303D,Cancel >: H�savefile,3,212,140 R&�20,20,148,64,0,7,&F13D,"file%,30" \!�152,20,192,64,12,7,&1903D,OK f%�70,74,138,142,0,7,&603A,file_ffd p: z�open,17,802,148 ��20,20,64,64,0,7,&203D,"�" �#�74,20,128,64,1,7,&313D,"ds%,3" � �138,20,182,64,0,7,&203D,"�" � �202,20,246,64,0,7,&203D,"�" �$�256,20,310,64,1,7,&313D,"tr%,3" � �320,20,364,64,0,7,&203D,"�" � �384,20,428,64,0,7,&203D,"�" �$�438,20,492,64,1,7,&313D,"hd%,3" � �502,20,546,64,0,7,&203D,"�" � �566,20,610,64,0,7,&203D,"�" �$�620,20,664,64,1,7,&313D,"sc%,3" � �674,20,718,64,0,7,&203D,"�" � �20,84,182,128,1,7,&19,Drive !�202,84,364,128,1,7,&19,Track �384,84,546,128,1,7,&19,Head "�566,84,718,128,1,7,&19,Sector $!�738,20,782,128,12,7,&303D,OK .: 8�find,5,420,212 B�20,20,180,64,12,7,&303D,OK L#�220,20,400,64,0,7,&303D,Cancel V)�20,84,324,128,0,7,&119,"findstr%,20" `'�20,148,196,192,0,7,&19,Find string j*�206,148,400,192,0,7,&F13D,"found%,10" t: ~�found,4,420,128 �%�20,20,180,64,12,7,&203D,Continue �#�220,20,400,64,0,7,&303D,Cancel �#�20,84,142,128,0,7,&19,at byte: �+�220,84,340,128,0,7,&313D,"found%+20,6" �: �'********** Start program ********** �: ���open:��DzR �!�open$,nicons%,width%,height% �dopen%=�createwindow("Disk edit",&B3,7,14,width%,height%,200,200,200+width%,200+height%,0,0,-1,0) ��icons(open%) � �openwindow(open%,block%,-1) � : ݤclickdialogopen(icon%) 7drive%=�$ds%:track%=�$tr%:head%=�$hd%:sector%=�$sc% (�getaddress(icon%) 2Ȏicon%� <3�16:td%=drive%:tt%=track%:th%=head%:ts%=sector% F�display%=0� PQdisplay%=�createwindow("Sector",&F,7,0,1240,2048,0,182,1240,835,0,&3000,-2,0) Z6�openwindow(display%,block%,open%):disp$="display" d�display ncmain$="5Dzap|.Find string|.Save sectors|.Cat info|"+c$+":Compare disks|<savesec%>.Save sector|" x/j%=�createmenu(mainblock%,main$,textblock%) �� ��display �?�disp$=""disp$="display":�openwindow(display%,block%,open%) ��redrawwindow(display%) �� �� �7$ds%=�drive%:$tr%=�track%:$hd%=�head%:$sc%=�sector% ��redrawwindow(open%) �=� �: ���getaddress(icon%) �Ȏicon%� ��0:drive%=(drive%+1)�disc% &�2:drive%-=1:�drive%<0drive%=disc% �3:track%=(track%+1)�80 #�5:track%-=1:�track%<0track%=79 "5�6:head%=(head%+1)�2:�head%=0track%=(track%+1)�80 ,<�8:head%-=1:�head%<0head%=1:track%-=1:�track%<0track%=79 6U�9:sector%=(sector%+1)�5:�sector%=0head%=(head%+1)�2:�head%=0track%=(track%+1)�80 @]�11:sector%-=1:�sector%=-1sector%=4:head%=�(head%-1):�head%=1track%-=1:�track%<0track%=79 J� T� ^: h ��display r7drive%=�$ds%:track%=�$tr%:head%=�$hd%:sector%=�$sc% |.�loadsector(track%,head%,sector%,1,drive%) �{�I%=0�63:L%=I%*16+S%:l$(I%)=�padd(L%-S%)+" ":t$="":�J%=0�15:C%=L%?J%:l$(I%)+=�pad(C%)+" ":�C%>31�C%<127t$+=�C%�t$+="." ��:l$(I%)+=" "+t$:� �� �: �ݤpad(C%):=�"0"+�~C%,2) �: �ݤpadd(C%):=�"000"+�~C%,4) �: �(********** Catalogue info ********** �: ���catalogue:@%=&100090A �'�store:stamp%=&FFF00000:sp$=�4," ") �Qcat%=�createwindow("Catalogue info",&F,7,0,1240,2048,0,182,1240,835,0,0,-1,0) ��tHS:nicons%=2 Rcat1%=�createwindow("Catalogue",&93,&90,1,420,84,100,200,520,284,0,&3000,-1,0) �icons(cat1%) &#foundcat%=�:cat$="":cat1$="cat" 0�findcat � :�openwindow(cat%,block%,-1) D �openwindow(cat1%,block%,-1) N� X� b: lݤclickdialogcat(icon%) venddialog%=�:�g%=27:=0 �Ȏicon%� ��0 ��findcat � �foundcat%=� ��redrawwindow(cat%) �� �enddialog%=� ��closewindow(cat%) �� ��1:enddialog%=� ��closewindow(cat%) �� �=enddialog% : $ݤfindcat:�:�redrawwindow(open%) g%=�0:�g%=27�7:=0 .�loadsector(track%,head%,sector%,1,drive%) *;�S%!1=&6B63694E �S%!1=&6F677548 foundcat%=�:�getcatinfo 4Gsector%=(sector%+1)�5:�sector%=0head%=(head%+1)�2:�head%=0track%+=1 >*$tr%=�track%:$hd%=�head%:$sc%=�sector% H,�(track%=79�head%=1�sector%=4)�foundcat% R=foundcat% \: f��getcatinfo:�7 poffset%=5:n%=0:n$()=" " z$�:n$(n%)+=�getstring(S%+offset%) �1load%=!(S%+offset%+10):exec%=!(S%+offset%+14) �0len%=!(S%+offset%+18):attr%=!(S%+offset%+22) ��(load%�stamp%)=stamp%� �type%=(load%�&FFF00)�&100 �Ȏtype%� ��&FFF:t$="ASCII text" ��&FFE:t$="Command file" �,�&FFD:�len%=&800t$="Directory"�t$="Data" �"�&FFC:t$="Relocatable utility" ��&FFB:t$="BASIC program" �!�&FFA:t$="Relocatable module" ��&FF9:t$="Sprite" ��&FF8:t$="Absolute code" �&FF7:t$="BBC font" �&FF6:t$="Fancy font" �&FF5:t$="PostScript file" $�&FED:t$="Palette" .�&FEC:t$="Template file" 8�&FEB:t$="Obey file" B�&AFF:t$="Draw file" L�&AF8"t$="FW+ file" V�&AF1"t$="!Maestro file" `�&808:t$="PostScript file" j:t$="Unknown file type" t� ~^n$(n%)+=�numpad(�~type%+" "+t$+sp$,22)+"Length: "+�numpad(�~len%,10)+"Attribute: "+�~attr% �� �yn$(n%)+=�numpad("Exec: "+�~exec%,14)+�numpad("Load: "+�~load%,14)+�numpad("Length: "+�~len%,16)+"Attribute: "+�~attr% �� � access%=attr%�&1000000:a$="" ��(access%�1)=1a$+="W" ��(access%�2)=2a$+="R" ��(access%�4)=4a$+="L" �n$(n%)+=a$:n%+=1 �offset%+=26 ��S%?offset%=0 �&�resizewindow(cat%,0,0,1240,n%*32) �� : ݤgetstring(ad%):f$="":i%=0 *�:c%=ad%?i%:f$+=�c%:i%+=1:�c%=13�i%=11 f$=�f$,�f$-1) (=�f$+�12," "),12) 2: <ݤnumpad(a$,len%) F=�a$+�len%," "),len%) P: Z'********** Find a string ********** d: n��find:��TxS xfind$="find" �#$findstr%="(4 characters only)" �4find%=�createdialog(1,0,&93,"Find string",find$) �� �: �ݤclickdialogfind(icon%) �enddialog%=� �Ȏicon%� ��0:enddialog%=� ��$found%,1)="&"� � f$="" �*�i%=2�8:f$+=�(�("&"+�$found%,i%,2))):� � $F%=f$ �� $F%=�$found%,4) � f%=!F% "�closewindow(find%) ,found$="found":��D~S 6 �store @�search � J0find1%=�createdialog(2,0,&93,"Found",found$) T*$tr%=�track%:$hd%=�head%:$sc%=�sector% ^� h�restore r� |�display ��redrawwindow(display%) ��redrawwindow(open%) ��1:enddialog%=� �� �=enddialog% �: �ݤclickdialogfound(icon%) ��1,-9,200,1 �enddialog%=�:�g%=27:=� �Ȏicon%� ��0 �Gsector%=(sector%+1)�5:�sector%=0head%=(head%+1)�2:�head%=0track%+=1 ��search � *$tr%=�track%:$hd%=�head%:$sc%=�sector% �redrawwindow(find1%) � &�restore:enddialog%=� 0� :�1:�restore:enddialog%=� D� N�display X�redrawwindow(display%) b�redrawwindow(open%) l=enddialog% v: �ݤsearch:gotit%=� �9�:$ds%=�drive%:$tr%=�track%:$hd%=�head%:$sc%=�sector% �*�redrawwindow(open%):g%=�0:�g%=27�7:=0 �.�loadsector(track%,head%,sector%,1,drive%) �)�I%=0�1020:�I%!S%=f%gotit%=�:byte%=I% �� � �gotit%� �Gsector%=(sector%+1)�5:�sector%=0head%=(head%+1)�2:�head%=0track%+=1 �� �7$ds%=�drive%:$tr%=�track%:$hd%=�head%:$sc%=�sector% �$(found%+20)="&"+�~byte% �� �)�(track%=79�head%=1�sector%=4)�gotit% =gotit% : &********** Save sectors ********** : *��savefile:��tDR 4Vsave%=�createwindow("Start address,wtitle1%",&B3,7,1,802,148,0,0,802,148,0,0,-1,0) >nicons%=17:�icons(save%) Hsd%=-1:�store R.save$="start":�openwindow(save%,block%,-1) \� f: pݤclickdialogstart(icon%) zenddialog%=� ��getaddress(icon%) �Ȏicon%� ��16:�sd%=-1� �+sd%=�$ds%:st%=�$tr%:sh%=�$hd%:ss%=�$sc% �$wtitle1%="End address" �� �enddialog%=� �+ed%=�$ds%:et%=�$tr%:eh%=�$hd%:es%=�$sc% ���DHR:save1$="" �0save1%=�createdialog(1,1,&93,"Save:",save1$) �0ș"Wimp_SetCaretPosition",save1%,0,0,0,-1,-1 �� �� 7$ds%=�drive%:$tr%=�track%:$hd%=�head%:$sc%=�sector% �redrawwindow(save%) =enddialog% $: . ݤclickdialogsavefile(icon%) 8enddialog%=� BȎicon%� L�1 V�$file%,".")� `*�loadsector(st%,sh%,ss%,len%+1,drive%) j'�("SAVE "+$file%+" "+�~S%+"+"+�~L%) t��7 ~� �enddialog%=� ��restore � �2:�initdrag(save1%,icon%,5) ��restore �� �=enddialog% �: �+********** Compare two disks ********** �: ���compare:E%=S%+1024:��tDR �Vcomp%=�createwindow("Start address,wtitle1%",&B3,7,1,802,148,0,0,802,148,0,0,-1,0) �nicons%=17:�icons(comp%) I%=0:compd%=1:�store -comp$="comp":�openwindow(comp%,block%,-1) � : (ݤclickdialogcomp(icon%) 2enddialog%=� <�getaddress(icon%) FȎicon%� P�16:Ȏcompd%� Z�1 d+sd%=�$ds%:st%=�$tr%:sh%=�$hd%:ss%=�$sc% n$$wtitle1%="End address":compd%=2 x�2 �+ed%=�$ds%:et%=�$tr%:eh%=�$hd%:es%=�$sc% �'enddialog%=�:comp1$="compare":��D~S ��compare � �2comp1%=�createdialog(1,0,&93,"Compare",comp1$) �comp1$="compare" �� �� �� �7$ds%=�drive%:$tr%=�track%:$hd%=�head%:$sc%=�sector% ��redrawwindow(comp%) �=enddialog% �: �ݤclickdialogcompare(icon%) enddialog%=�:�g%=27:=� Ȏicon%� ;�0:�compare �redrawwindow(comp1%):�ELSEenddialog%=TRUE "�1:enddialog%=� ,� 6=enddialog% @ Jݤcompare:�:�I%=0� T.discaddr%=((st%*2+sh%)*5+ss%)*1024+(0<<29) ^)ș"ADFS_DiscOp",0,1,discaddr%,S%,1024 hdiscaddr%+=(1<<29) r)ș"ADFS_DiscOp",0,1,discaddr%,E%,1024 |� �nc%=-1:g%=�0:�g%=27�7:=0 ��:�I%?S%<>I%?E%nc%=I% �I%+=1:�I%=1024�nc%>-1 �?�I%=1024I%=0:ss%=(ss%+1)�5:�ss%=0sh%=(sh%+1)�2:�sh%=0st%+=1 �!$tr%=�st%:$hd%=�sh%:$sc%=�ss% ��redrawwindow(open%) �"�(st%=et%�sh%=eh%�ss%=es%)�nc% �$(found%+20)="&"+�~nc% �)�st%=et%�sh%=eh%�ss%=es%:=0�=(nc%>-1) �: �-********** Save current sector ********** � �ݤclickdialogsavesec(icon%) enddialog%=� Ȏicon%� �0:enddialog%=� &�permanent 0�1 :enddialog%=� D� N&�enddialog%ș"Wimp_CreateMenu",,-1 X=enddialog% b: l+********** Keyboard routines ********** v: ���hex(key%) � �"0123456789ABCDEF",�key%)� �first%=((sx%-6)�3) ��first%=0� ��l$(line%),sx%+1,1)=�key% �#asc%=�("&"+�l$(line%),sx%+1,2)) ��asc%>31�asc%<256�asc%=46 �$�l$(line%),58+(sx%-6)�3,1)=�asc% �cx%+=16:sx%+=1 �7ș"Wimp_SetCaretPosition",handle%,-1,cx%,cy%,36,sx% �� ��first%=1� ��l$(line%),sx%+1,1)=�key% !!asc%=�("&"+�l$(line%),sx%,2)) !�asc%>31�asc%<256�asc%=46 !$�l$(line%),58+(sx%-7)�3,1)=�asc% ! cx%-=16:sx%-=1 !*7ș"Wimp_SetCaretPosition",handle%,-1,cx%,cy%,36,sx% !4� !>� !H�redrawwindow(handle%) !R� !\� !f: !p��ascii(key%) !z�key%>31�key%<127� !��l$(line%),sx%+1,1)=�key% !�)�l$(line%),(sx%-57)*3+7,2)=�pad(key%) !�cx%+=16:sx%+=1 !�7ș"Wimp_SetCaretPosition",handle%,-1,cx%,cy%,36,sx% !��redrawwindow(handle%) !�� !�� !�: !���permanent !�I�I%=0�63:L%=I%*16+S%:�J%=0�15:C%=�("&"+�l$(I%),7+J%*3,2)):L%?J%=C%:�, !�"�savesector(tt%,th%,ts%,1,td%) !�� !�: "'********** Misc routines ********** ": "!��redowindow(handle%,x0%,y0%) "$�lwaorigin(block%,x0%,y0%) ".Ȏhandle%� "8 �info%:�0 "B-�i%=0�3:ȓȐx0%+160,y0%+20+48*i%,420,40:� "L�7 "V+�i%=0�3:ȓx0%+160,y0%+20+48*i%,420,40:� "`�x0%+20,y0%+196:�"Name" "j�x0%+330,y0%+196:�"!Dzap" "t�x0%+20,y0%+148:�"Purpose" "~*�x0%+226,y0%+148:�"Disc sector editor" "��x0%+20,y0%+100:�"Author" "�.�x0%+202,y0%+100:�"G M Holden (c) ASP '91" "��x0%+20,y0%+52:�"Version" "��x0%+330,y0%+52:�"v 1.0" "��cat%:y0%-=4:I%=-1 "�by%=block%!8:ty%=block%!16 "��:I%+=1:�y0%+I%*32>by%-32 "�:�:I%+=1:�x0%,y0%+I%*32:�n$(n%-I%):�y0%+I%*32>ty%�I%=n% "��display%:y0%-=4:I%=-1 "�by%=block%!8:ty%=block%!16 "��:I%+=1:�y0%+I%*32>by%-32 "�:�:I%+=1:�x0%,y0%+I%*32:�l$(64-I%):�y0%+I%*32>ty%�I%=64 # � # � #: #��store:D%=�$ds% #(T%=�$tr%:H%=�$hd%:Z%=�$sc% #2+drive%=D%:track%=T%:head%=H%:sector%=Z% #<� #F: #P��restore:$ds%=�D% #Z$tr%=�T%:$hd%=�H%:$sc%=�Z% #d� #n: #x ��loadsector(t%,h%,s%,l%,d%) #�#discaddr%=((t%*2+h%)*5+s%)*1024 #�$len%=1024*l%:discaddr%+=(d%<<29) #�)ș"ADFS_DiscOp",0,1,discaddr%,S%,len% #�� #�: #� ��savesector(t%,h%,s%,l%,d%) #�#discaddr%=((t%*2+h%)*5+s%)*1024 #�$len%=1024*l%:discaddr%+=(d%<<29) #�)ș"ADFS_DiscOp",0,2,discaddr%,S%,len% #�� #�: #���dzapinit:format%=@% #�� (c) Kendall K. Down 1991 $ �S%1024*40,F%8,l$(64),n$(64) $�ds%4,tr%4,hd%4,sc%4 $ �findstr%20,found%30,file%30 $"$found%=">>>>" $,$file%="DzapFile" $6'drive%=0:track%=0:head%=0:sector%=0 $@'$ds%="0":$tr%="0":$hd%="0":$sc%="0" $J� �
00000000 0d 00 0a 15 f4 3e 21 44 7a 61 70 2e 21 52 75 6e |.....>!Dzap.!Run| 00000010 49 6d 61 67 65 0d 00 0f 2d f4 20 43 6f 70 79 72 |Image...-. Copyr| 00000020 69 67 68 74 20 41 72 63 68 69 6d 65 64 65 73 20 |ight Archimedes | 00000030 57 6f 72 6c 64 20 4f 63 74 6f 62 65 72 20 31 39 |World October 19| 00000040 39 31 0d 00 14 17 f2 77 69 6d 70 69 6e 69 74 3a |91.....wimpinit:| 00000050 f2 64 7a 61 70 69 6e 69 74 0d 00 1e 0c ee 85 f2 |.dzapinit.......| 00000060 65 72 72 6f 72 0d 00 28 2e f5 3a 77 68 61 74 6e |error..(..:whatn| 00000070 65 78 74 25 3d a4 70 6f 6c 6c 28 30 29 3a f2 61 |ext%=.poll(0):.a| 00000080 63 74 69 6f 6e 28 77 68 61 74 6e 65 78 74 25 29 |ction(whatnext%)| 00000090 3a fd a3 0d 00 32 05 e0 0d 00 3c 05 3a 0d 00 46 |:....2....<.:..F| 000000a0 3c dd a4 70 6f 6c 6c 28 6d 61 73 6b 25 29 3a c8 |<..poll(mask%):.| 000000b0 99 22 57 69 6d 70 5f 50 6f 6c 6c 22 2c 6d 61 73 |."Wimp_Poll",mas| 000000c0 6b 25 2c 70 6f 6c 6c 25 b8 72 65 73 75 6c 74 25 |k%,poll%.result%| 000000d0 3a 3d 72 65 73 75 6c 74 25 0d 00 50 05 3a 0d 00 |:=result%..P.:..| 000000e0 5a 14 dd f2 61 63 74 69 6f 6e 28 65 76 65 6e 74 |Z...action(event| 000000f0 25 29 0d 00 64 0d c8 8e 65 76 65 6e 74 25 ca 0d |%)..d...event%..| 00000100 00 6e 1c c9 31 3a f2 72 65 64 72 61 77 77 69 6e |.n..1:.redrawwin| 00000110 64 6f 77 28 21 70 6f 6c 6c 25 29 0d 00 78 23 c9 |dow(!poll%)..x#.| 00000120 32 3a f2 6f 70 65 6e 77 69 6e 64 6f 77 28 21 70 |2:.openwindow(!p| 00000130 6f 6c 6c 25 2c 70 6f 6c 6c 25 2c 2d 31 29 0d 00 |oll%,poll%,-1)..| 00000140 82 1b c9 33 3a f2 63 6c 6f 73 65 77 69 6e 64 6f |...3:.closewindo| 00000150 77 28 21 70 6f 6c 6c 25 29 0d 00 8c 07 c9 34 3a |w(!poll%).....4:| 00000160 0d 00 96 07 c9 35 3a 0d 00 a0 18 c9 36 3a f2 6d |.....5:.....6:.m| 00000170 6f 75 73 65 62 75 74 74 6f 6e 63 6c 69 63 6b 0d |ousebuttonclick.| 00000180 00 aa 17 c9 37 3a f2 64 72 61 67 28 64 72 61 67 |....7:.drag(drag| 00000190 66 72 6f 6d 25 29 0d 00 b4 21 c9 38 3a f2 6b 65 |from%)...!.8:.ke| 000001a0 79 70 72 65 73 73 28 21 70 6f 6c 6c 25 2c 70 6f |ypress(!poll%,po| 000001b0 6c 6c 25 21 32 34 29 0d 00 be 12 c9 39 3a f2 6d |ll%!24).....9:.m| 000001c0 65 6e 75 73 65 6c 65 63 74 0d 00 c8 1d c9 31 37 |enuselect.....17| 000001d0 2c 31 38 3a f2 6d 65 73 73 61 67 65 69 6e 28 65 |,18:.messagein(e| 000001e0 76 65 6e 74 25 29 0d 00 d2 05 cb 0d 00 dc 05 e1 |vent%)..........| 000001f0 0d 00 e6 05 3a 0d 00 f0 3e dd f2 71 75 69 74 3a |....:...>..quit:| 00000200 24 62 6c 6f 63 6b 25 3d 22 54 41 53 4b 22 3a c8 |$block%="TASK":.| 00000210 99 22 57 69 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e |."Wimp_CloseDown| 00000220 22 2c 6d 79 74 61 73 6b 25 2c 21 62 6c 6f 63 6b |",mytask%,!block| 00000230 25 3a e0 0d 00 fa 05 3a 0d 01 04 29 2a 2a 2a 2a |%:.....:...)****| 00000240 2a 2a 2a 2a 2a 2a 20 57 69 6e 64 6f 77 20 72 6f |****** Window ro| 00000250 75 74 69 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |utines *********| 00000260 2a 0d 01 0e 05 3a 0d 01 18 7a dd a4 63 72 65 61 |*....:...z..crea| 00000270 74 65 77 69 6e 64 6f 77 28 74 69 74 6c 65 24 2c |tewindow(title$,| 00000280 66 6c 61 67 25 2c 66 67 63 6f 6c 25 2c 62 67 63 |flag%,fgcol%,bgc| 00000290 6f 6c 25 2c 74 77 61 74 78 25 2c 74 77 61 74 79 |ol%,twatx%,twaty| 000002a0 25 2c 76 77 61 62 78 25 2c 76 77 61 62 79 25 2c |%,vwabx%,vwaby%,| 000002b0 76 77 61 74 78 25 2c 76 77 61 74 79 25 2c 6e 69 |vwatx%,vwaty%,ni| 000002c0 63 6f 6e 73 25 2c 69 63 6f 6e 66 6c 61 67 25 2c |cons%,iconflag%,| 000002d0 62 65 68 69 6e 64 25 2c 73 70 72 69 74 65 25 29 |behind%,sprite%)| 000002e0 0d 01 22 0c ea 68 61 6e 64 6c 65 25 0d 01 2c 43 |.."..handle%..,C| 000002f0 21 62 6c 6f 63 6b 25 3d 76 77 61 62 78 25 3a 62 |!block%=vwabx%:b| 00000300 6c 6f 63 6b 25 21 34 3d 76 77 61 62 79 25 3a 62 |lock%!4=vwaby%:b| 00000310 6c 6f 63 6b 25 21 38 3d 76 77 61 74 78 25 3a 62 |lock%!8=vwatx%:b| 00000320 6c 6f 63 6b 25 21 31 32 3d 76 77 61 74 79 25 0d |lock%!12=vwaty%.| 00000330 01 36 42 62 6c 6f 63 6b 25 21 31 36 3d 30 3a 62 |.6Bblock%!16=0:b| 00000340 6c 6f 63 6b 25 21 32 30 3d 74 77 61 74 79 25 3a |lock%!20=twaty%:| 00000350 62 6c 6f 63 6b 25 21 32 34 3d 62 65 68 69 6e 64 |block%!24=behind| 00000360 25 3a 62 6c 6f 63 6b 25 21 32 38 3d 66 6c 61 67 |%:block%!28=flag| 00000370 25 0d 01 40 3d 62 6c 6f 63 6b 25 3f 33 32 3d 37 |%..@=block%?32=7| 00000380 3a 62 6c 6f 63 6b 25 3f 33 33 3d 32 3a 62 6c 6f |:block%?33=2:blo| 00000390 63 6b 25 3f 33 34 3d 66 67 63 6f 6c 25 3a 62 6c |ck%?34=fgcol%:bl| 000003a0 6f 63 6b 25 3f 33 35 3d 62 67 63 6f 6c 25 0d 01 |ock%?35=bgcol%..| 000003b0 4a 34 62 6c 6f 63 6b 25 3f 33 36 3d 33 3a 62 6c |J4block%?36=3:bl| 000003c0 6f 63 6b 25 3f 33 37 3d 31 3a 62 6c 6f 63 6b 25 |ock%?37=1:block%| 000003d0 3f 33 38 3d 31 32 3a 62 6c 6f 63 6b 25 3f 33 39 |?38=12:block%?39| 000003e0 3d 30 0d 01 54 3d 62 6c 6f 63 6b 25 21 34 30 3d |=0..T=block%!40=| 000003f0 30 3a 62 6c 6f 63 6b 25 21 34 34 3d 30 3a 62 6c |0:block%!44=0:bl| 00000400 6f 63 6b 25 21 34 38 3d 74 77 61 74 78 25 3a 62 |ock%!48=twatx%:b| 00000410 6c 6f 63 6b 25 21 35 32 3d 74 77 61 74 79 25 0d |lock%!52=twaty%.| 00000420 01 5e 43 62 6c 6f 63 6b 25 21 35 36 3d 26 33 44 |.^Cblock%!56=&3D| 00000430 3a 62 6c 6f 63 6b 25 21 36 30 3d 69 63 6f 6e 66 |:block%!60=iconf| 00000440 6c 61 67 25 3a 62 6c 6f 63 6b 25 21 36 34 3d 73 |lag%:block%!64=s| 00000450 70 72 69 74 65 25 3a 62 6c 6f 63 6b 25 21 36 38 |prite%:block%!68| 00000460 3d 30 0d 01 68 10 e7 a9 74 69 74 6c 65 24 3c 31 |=0..h...title$<1| 00000470 32 8c 0d 01 72 17 24 28 62 6c 6f 63 6b 25 2b 37 |2...r.$(block%+7| 00000480 32 29 3d 74 69 74 6c 65 24 0d 01 7c 05 cc 0d 01 |2)=title$..|....| 00000490 86 12 62 6c 6f 63 6b 25 21 35 36 3d 26 31 33 44 |..block%!56=&13D| 000004a0 0d 01 90 17 63 6f 6d 6d 61 25 3d a7 74 69 74 6c |....comma%=.titl| 000004b0 65 24 2c 22 2c 22 29 0d 01 9a 0c e7 63 6f 6d 6d |e$,",").....comm| 000004c0 61 25 8c 0d 01 a4 19 62 25 3d a0 c1 74 69 74 6c |a%.....b%=..titl| 000004d0 65 24 2c 63 6f 6d 6d 61 25 2b 31 29 0d 01 ae 19 |e$,comma%+1)....| 000004e0 24 62 25 3d c0 74 69 74 6c 65 24 2c 63 6f 6d 6d |$b%=.title$,comm| 000004f0 61 25 2d 31 29 0d 01 b8 10 62 6c 6f 63 6b 25 21 |a%-1)....block%!| 00000500 37 32 3d 62 25 0d 01 c2 05 cc 0d 01 cc 2d 24 28 |72=b%........-$(| 00000510 62 6c 6f 63 6b 25 2b 32 35 36 29 3d 74 69 74 6c |block%+256)=titl| 00000520 65 24 3a 62 6c 6f 63 6b 25 21 37 32 3d 62 6c 6f |e$:block%!72=blo| 00000530 63 6b 25 2b 32 35 36 0d 01 d6 05 cd 0d 01 e0 10 |ck%+256.........| 00000540 62 6c 6f 63 6b 25 21 37 36 3d 2d 31 0d 01 ea 05 |block%!76=-1....| 00000550 cd 0d 01 f4 15 62 6c 6f 63 6b 25 21 38 34 3d 6e |.....block%!84=n| 00000560 69 63 6f 6e 73 25 0d 01 fe 2d e7 6e 69 63 6f 6e |icons%...-.nicon| 00000570 73 25 3e 30 f2 77 69 6e 64 6f 77 69 63 6f 6e 73 |s%>0.windowicons| 00000580 28 62 6c 6f 63 6b 25 2b 38 38 2c 6e 69 63 6f 6e |(block%+88,nicon| 00000590 73 25 29 0d 02 08 2a c8 99 22 57 69 6d 70 5f 43 |s%)...*.."Wimp_C| 000005a0 72 65 61 74 65 57 69 6e 64 6f 77 22 2c 30 2c 62 |reateWindow",0,b| 000005b0 6c 6f 63 6b 25 b8 68 61 6e 64 6c 65 25 0d 02 12 |lock%.handle%...| 000005c0 0c 3d 68 61 6e 64 6c 65 25 0d 02 1c 05 3a 0d 02 |.=handle%....:..| 000005d0 26 19 dd f2 77 69 6e 64 6f 77 69 63 6f 6e 73 28 |&...windowicons(| 000005e0 62 6c 25 2c 6e 25 29 0d 02 30 37 e3 6c 69 25 3d |bl%,n%)..07.li%=| 000005f0 31 b8 6e 25 3a f3 62 78 25 2c 62 79 25 2c 74 78 |1.n%:.bx%,by%,tx| 00000600 24 2c 74 79 25 2c 62 67 25 2c 66 67 25 2c 66 6c |$,ty%,bg%,fg%,fl| 00000610 67 25 2c 69 24 3a 74 78 25 3d a0 74 78 24 0d 02 |g%,i$:tx%=.tx$..| 00000620 3a 2b 21 62 6c 25 3d 62 78 25 3a 62 6c 25 21 34 |:+!bl%=bx%:bl%!4| 00000630 3d 62 79 25 3a 62 6c 25 21 38 3d 74 78 25 3a 62 |=by%:bl%!8=tx%:b| 00000640 6c 25 21 31 32 3d 74 79 25 0d 02 44 1f 62 6c 25 |l%!12=ty%..D.bl%| 00000650 21 31 36 3d 66 6c 67 25 84 66 67 25 3c 3c 32 34 |!16=flg%.fg%<<24| 00000660 84 62 67 25 3c 3c 32 38 0d 02 4e 11 e7 62 6c 25 |.bg%<<28..N..bl%| 00000670 21 31 36 80 26 31 30 30 8c 0d 02 58 15 6a 25 3d |!16.&100...X.j%=| 00000680 a7 69 24 2c 22 3b 22 29 3a 62 25 3d 2d 31 0d 02 |.i$,";"):b%=-1..| 00000690 62 08 e7 6a 25 8c 0d 02 6c 10 62 24 3d c1 69 24 |b..j%...l.b$=.i$| 000006a0 2c 6a 25 2b 31 29 0d 02 76 1f 69 25 3d a7 62 24 |,j%+1)..v.i%=.b$| 000006b0 2c 22 2c 22 29 3a 62 25 3d a0 c1 62 24 2c 31 2c |,","):b%=..b$,1,| 000006c0 69 25 2d 31 29 0d 02 80 11 24 62 25 3d c1 62 24 |i%-1)....$b%=.b$| 000006d0 2c 69 25 2b 31 29 0d 02 8a 05 cd 0d 02 94 21 69 |,i%+1)........!i| 000006e0 25 3d a7 69 24 2c 22 2c 22 29 3a 62 6c 25 21 32 |%=.i$,","):bl%!2| 000006f0 30 3d a0 c0 69 24 2c 69 25 2d 31 29 0d 02 9e 1f |0=..i$,i%-1)....| 00000700 62 6c 25 21 32 34 3d 62 25 3a 62 6c 25 21 32 38 |bl%!24=b%:bl%!28| 00000710 3d a0 c1 69 24 2c 69 25 2b 31 29 0d 02 a8 05 cc |=..i$,i%+1).....| 00000720 0d 02 b2 15 24 28 62 6c 25 2b 32 30 29 3d c0 69 |....$(bl%+20)=.i| 00000730 24 2c 31 31 29 0d 02 bc 05 cd 0d 02 c6 0d 62 6c |$,11).........bl| 00000740 25 2b 3d 33 32 3a ed 0d 02 d0 05 e1 0d 02 da 05 |%+=32:..........| 00000750 3a 0d 02 e4 26 dd f2 6f 70 65 6e 77 69 6e 64 6f |:...&..openwindo| 00000760 77 28 68 61 6e 64 6c 65 25 2c 6d 65 6d 25 2c 62 |w(handle%,mem%,b| 00000770 65 68 69 6e 64 25 29 0d 02 ee 3d e7 6d 65 6d 25 |ehind%)...=.mem%| 00000780 3d 62 6c 6f 63 6b 25 20 21 6d 65 6d 25 3d 68 61 |=block% !mem%=ha| 00000790 6e 64 6c 65 25 3a c8 99 22 57 69 6d 70 5f 47 65 |ndle%:.."Wimp_Ge| 000007a0 74 57 69 6e 64 6f 77 53 74 61 74 65 22 2c 30 2c |tWindowState",0,| 000007b0 6d 65 6d 25 0d 02 f8 15 62 6c 6f 63 6b 25 21 32 |mem%....block%!2| 000007c0 38 3d 62 65 68 69 6e 64 25 0d 03 02 20 c8 99 22 |8=behind%... .."| 000007d0 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 |Wimp_OpenWindow"| 000007e0 2c 30 2c 6d 65 6d 25 3a e1 0d 03 0c 05 3a 0d 03 |,0,mem%:.....:..| 000007f0 16 2a dd f2 72 65 64 72 61 77 77 69 6e 64 6f 77 |.*..redrawwindow| 00000800 28 68 61 6e 64 6c 65 25 29 3a ea 6d 6f 72 65 25 |(handle%):.more%| 00000810 2c 78 30 25 2c 79 30 25 0d 03 20 38 21 62 6c 6f |,x0%,y0%.. 8!blo| 00000820 63 6b 25 3d 68 61 6e 64 6c 65 25 3a c8 99 22 57 |ck%=handle%:.."W| 00000830 69 6d 70 5f 52 65 64 72 61 77 57 69 6e 64 6f 77 |imp_RedrawWindow| 00000840 22 2c 30 2c 62 6c 6f 63 6b 25 b8 6d 6f 72 65 25 |",0,block%.more%| 00000850 0d 03 2a 31 f2 6c 77 61 6f 72 69 67 69 6e 28 62 |..*1.lwaorigin(b| 00000860 6c 6f 63 6b 25 2c 78 30 25 2c 79 30 25 29 3a 77 |lock%,x0%,y0%):w| 00000870 25 3d a4 77 68 69 63 68 28 68 61 6e 64 6c 65 25 |%=.which(handle%| 00000880 29 0d 03 34 0b c8 95 6d 6f 72 65 25 0d 03 3e 3f |)..4...more%..>?| 00000890 62 6c 6f 63 6b 25 21 32 38 2d 3d 78 30 25 3a 62 |block%!28-=x0%:b| 000008a0 6c 6f 63 6b 25 21 33 32 2d 3d 79 30 25 3a 62 6c |lock%!32-=y0%:bl| 000008b0 6f 63 6b 25 21 33 36 2d 3d 78 30 25 3a 62 6c 6f |ock%!36-=x0%:blo| 000008c0 63 6b 25 21 34 30 2d 3d 79 30 25 0d 03 48 20 f2 |ck%!40-=y0%..H .| 000008d0 72 65 64 6f 77 69 6e 64 6f 77 28 68 61 6e 64 6c |redowindow(handl| 000008e0 65 25 2c 78 30 25 2c 79 30 25 29 0d 03 52 28 c8 |e%,x0%,y0%)..R(.| 000008f0 99 22 57 69 6d 70 5f 47 65 74 52 65 63 74 61 6e |."Wimp_GetRectan| 00000900 67 6c 65 22 2c 30 2c 62 6c 6f 63 6b 25 b8 6d 6f |gle",0,block%.mo| 00000910 72 65 25 0d 03 5c 05 ce 0d 03 66 05 e1 0d 03 70 |re%..\....f....p| 00000920 05 3a 0d 03 7a 1d dd f2 6c 77 61 6f 72 69 67 69 |.:..z...lwaorigi| 00000930 6e 28 62 25 2c f8 20 78 25 2c f8 20 79 25 29 0d |n(b%,. x%,. y%).| 00000940 03 84 22 78 25 3d 62 25 21 34 2d 62 25 21 32 30 |.."x%=b%!4-b%!20| 00000950 3a 79 25 3d 62 25 21 31 36 2d 62 25 21 32 34 3a |:y%=b%!16-b%!24:| 00000960 e1 0d 03 8e 05 3a 0d 03 98 2b dd f2 72 65 73 69 |.....:...+..resi| 00000970 7a 65 77 69 6e 64 6f 77 28 68 61 6e 64 6c 65 25 |zewindow(handle%| 00000980 2c 62 78 25 2c 62 79 25 2c 74 78 25 2c 74 79 25 |,bx%,by%,tx%,ty%| 00000990 29 0d 03 a2 37 21 62 6c 6f 63 6b 25 3d 62 78 25 |)...7!block%=bx%| 000009a0 3a 62 6c 6f 63 6b 25 21 34 3d 62 79 25 3a 62 6c |:block%!4=by%:bl| 000009b0 6f 63 6b 25 21 38 3d 74 78 25 3a 62 6c 6f 63 6b |ock%!8=tx%:block| 000009c0 25 21 31 32 3d 74 79 25 0d 03 ac 25 c8 99 22 57 |%!12=ty%...%.."W| 000009d0 69 6d 70 5f 53 65 74 45 78 74 65 6e 74 22 2c 68 |imp_SetExtent",h| 000009e0 61 6e 64 6c 65 25 2c 62 6c 6f 63 6b 25 0d 03 b6 |andle%,block%...| 000009f0 13 21 62 6c 6f 63 6b 25 3d 68 61 6e 64 6c 65 25 |.!block%=handle%| 00000a00 0d 03 c0 23 c8 99 22 57 69 6d 70 5f 47 65 74 57 |...#.."Wimp_GetW| 00000a10 69 6e 64 6f 77 49 6e 66 6f 22 2c 30 2c 62 6c 6f |indowInfo",0,blo| 00000a20 63 6b 25 0d 03 ca 20 c8 99 22 57 69 6d 70 5f 4f |ck%... .."Wimp_O| 00000a30 70 65 6e 57 69 6e 64 6f 77 22 2c 30 2c 62 6c 6f |penWindow",0,blo| 00000a40 63 6b 25 0d 03 d4 05 e1 0d 03 de 05 3a 0d 03 e8 |ck%.........:...| 00000a50 1a dd f2 63 6c 6f 73 65 77 69 6e 64 6f 77 28 68 |...closewindow(h| 00000a60 61 6e 64 6c 65 25 29 0d 03 f2 31 21 62 6c 6f 63 |andle%)...1!bloc| 00000a70 6b 25 3d 68 61 6e 64 6c 65 25 3a c8 99 22 57 69 |k%=handle%:.."Wi| 00000a80 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 2c |mp_CloseWindow",| 00000a90 30 2c 62 6c 6f 63 6b 25 0d 03 fc 0e c8 8e 68 61 |0,block%......ha| 00000aa0 6e 64 6c 65 25 ca 0d 04 06 16 c9 64 69 73 70 6c |ndle%......displ| 00000ab0 61 79 25 3a 64 69 73 70 24 3d 22 22 0d 04 10 05 |ay%:disp$=""....| 00000ac0 cb 0d 04 1a 05 e1 0d 04 24 05 3a 0d 04 2e 28 2a |........$.:...(*| 00000ad0 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 4d 6f 75 73 65 20 |********* Mouse | 00000ae0 72 6f 75 74 69 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a |routines *******| 00000af0 2a 2a 2a 0d 04 38 05 3a 0d 04 42 2d dd f2 6d 6f |***..8.:..B-..mo| 00000b00 75 73 65 62 75 74 74 6f 6e 63 6c 69 63 6b 3a ea |usebuttonclick:.| 00000b10 68 61 6e 64 6c 65 25 2c 62 75 74 74 6f 6e 25 2c |handle%,button%,| 00000b20 69 63 6f 6e 25 0d 04 4c 13 62 75 74 74 6f 6e 25 |icon%..L.button%| 00000b30 3d 70 6f 6c 6c 25 21 38 0d 04 56 14 68 61 6e 64 |=poll%!8..V.hand| 00000b40 6c 65 25 3d 70 6f 6c 6c 25 21 31 32 0d 04 60 12 |le%=poll%!12..`.| 00000b50 69 63 6f 6e 25 3d 70 6f 6c 6c 25 21 31 36 0d 04 |icon%=poll%!16..| 00000b60 6a 22 6d 6f 75 73 65 78 25 3d 21 70 6f 6c 6c 25 |j"mousex%=!poll%| 00000b70 3a 6d 6f 75 73 65 79 25 3d 70 6f 6c 6c 25 21 34 |:mousey%=poll%!4| 00000b80 0d 04 74 0f e7 62 75 74 74 6f 6e 25 3d 32 8c 0d |..t..button%=2..| 00000b90 04 7e 10 e7 68 61 6e 64 6c 65 25 3d 2d 32 8c 0d |.~..handle%=-2..| 00000ba0 04 88 0b 6d 65 6e 75 25 3d 31 0d 04 92 37 c8 99 |...menu%=1...7..| 00000bb0 22 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 |"Wimp_CreateMenu| 00000bc0 22 2c 30 2c 69 6e 69 74 62 6c 6f 63 6b 25 2c 6d |",0,initblock%,m| 00000bd0 6f 75 73 65 78 25 2d 36 34 2c 6d 6f 75 73 65 79 |ousex%-64,mousey| 00000be0 25 0d 04 9c 05 cc 0d 04 a6 0b 6d 65 6e 75 25 3d |%.........menu%=| 00000bf0 32 0d 04 b0 34 c8 99 22 57 69 6d 70 5f 43 72 65 |2...4.."Wimp_Cre| 00000c00 61 74 65 4d 65 6e 75 22 2c 30 2c 6d 61 69 6e 62 |ateMenu",0,mainb| 00000c10 6c 6f 63 6b 25 2c 6d 6f 75 73 65 78 25 2c 6d 6f |lock%,mousex%,mo| 00000c20 75 73 65 79 25 0d 04 ba 05 cd 0d 04 c4 05 cd 0d |usey%...........| 00000c30 04 ce 0f e7 62 75 74 74 6f 6e 25 3d 34 8c 0d 04 |....button%=4...| 00000c40 d8 0e c8 8e 68 61 6e 64 6c 65 25 ca 0d 04 e2 0d |....handle%.....| 00000c50 c9 2d 32 3a f2 6f 70 65 6e 0d 04 ec 2e c9 73 61 |.-2:.open.....sa| 00000c60 76 65 73 65 63 25 3a 73 61 76 65 32 25 3d 73 61 |vesec%:save2%=sa| 00000c70 76 65 73 65 63 25 3a 73 61 76 65 32 24 3d 22 73 |vesec%:save2$="s| 00000c80 61 76 65 73 65 63 22 0d 04 f6 28 f2 63 6c 69 63 |avesec"...(.clic| 00000c90 6b 64 69 61 6c 6f 67 28 73 61 76 65 32 25 2c 73 |kdialog(save2%,s| 00000ca0 61 76 65 32 24 2c 70 6f 6c 6c 25 21 31 36 29 0d |ave2$,poll%!16).| 00000cb0 05 00 30 c9 63 6f 6d 70 31 25 3a f2 63 6c 69 63 |..0.comp1%:.clic| 00000cc0 6b 64 69 61 6c 6f 67 28 63 6f 6d 70 31 25 2c 63 |kdialog(comp1%,c| 00000cd0 6f 6d 70 31 24 2c 70 6f 6c 6c 25 21 31 36 29 0d |omp1$,poll%!16).| 00000ce0 05 0a 2d c9 63 6f 6d 70 25 3a f2 63 6c 69 63 6b |..-.comp%:.click| 00000cf0 64 69 61 6c 6f 67 28 63 6f 6d 70 25 2c 63 6f 6d |dialog(comp%,com| 00000d00 70 24 2c 70 6f 6c 6c 25 21 31 36 29 0d 05 14 2d |p$,poll%!16)...-| 00000d10 c9 63 61 74 31 25 3a f2 63 6c 69 63 6b 64 69 61 |.cat1%:.clickdia| 00000d20 6c 6f 67 28 63 61 74 31 25 2c 63 61 74 31 24 2c |log(cat1%,cat1$,| 00000d30 70 6f 6c 6c 25 21 31 36 29 0d 05 1e 2d c9 73 61 |poll%!16)...-.sa| 00000d40 76 65 25 3a f2 63 6c 69 63 6b 64 69 61 6c 6f 67 |ve%:.clickdialog| 00000d50 28 73 61 76 65 25 2c 73 61 76 65 24 2c 70 6f 6c |(save%,save$,pol| 00000d60 6c 25 21 31 36 29 0d 05 28 30 c9 73 61 76 65 31 |l%!16)..(0.save1| 00000d70 25 3a f2 63 6c 69 63 6b 64 69 61 6c 6f 67 28 73 |%:.clickdialog(s| 00000d80 61 76 65 31 25 2c 73 61 76 65 31 24 2c 70 6f 6c |ave1%,save1$,pol| 00000d90 6c 25 21 31 36 29 0d 05 32 30 c9 66 69 6e 64 31 |l%!16)..20.find1| 00000da0 25 3a f2 63 6c 69 63 6b 64 69 61 6c 6f 67 28 66 |%:.clickdialog(f| 00000db0 69 6e 64 31 25 2c 66 6f 75 6e 64 24 2c 70 6f 6c |ind1%,found$,pol| 00000dc0 6c 25 21 31 36 29 0d 05 3c 2d c9 66 69 6e 64 25 |l%!16)..<-.find%| 00000dd0 3a f2 63 6c 69 63 6b 64 69 61 6c 6f 67 28 66 69 |:.clickdialog(fi| 00000de0 6e 64 25 2c 66 69 6e 64 24 2c 70 6f 6c 6c 25 21 |nd%,find$,poll%!| 00000df0 31 36 29 0d 05 46 35 c9 64 69 73 70 6c 61 79 25 |16)..F5.display%| 00000e00 3a c8 99 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |:.."Wimp_GetWind| 00000e10 6f 77 53 74 61 74 65 22 2c 64 69 73 70 6c 61 79 |owState",display| 00000e20 25 2c 62 6c 6f 63 6b 25 0d 05 50 2c 78 70 6f 73 |%,block%..P,xpos| 00000e30 25 3d 62 6c 6f 63 6b 25 21 32 30 2d 28 28 62 6c |%=block%!20-((bl| 00000e40 6f 63 6b 25 21 34 2d 6d 6f 75 73 65 78 25 29 80 |ock%!4-mousex%).| 00000e50 2d 31 36 29 0d 05 5a 27 79 70 6f 73 25 3d 62 6c |-16)..Z'ypos%=bl| 00000e60 6f 63 6b 25 21 32 34 2d 28 62 6c 6f 63 6b 25 21 |ock%!24-(block%!| 00000e70 31 36 2d 6d 6f 75 73 65 79 25 29 0d 05 64 24 79 |16-mousey%)..d$y| 00000e80 70 6f 73 25 3d 28 79 70 6f 73 25 80 2d 33 32 29 |pos%=(ypos%.-32)| 00000e90 2b 28 62 6c 6f 63 6b 25 21 32 34 29 83 33 32 0d |+(block%!24).32.| 00000ea0 05 6e 41 c8 99 22 57 69 6d 70 5f 53 65 74 43 61 |.nA.."Wimp_SetCa| 00000eb0 72 65 74 50 6f 73 69 74 69 6f 6e 22 2c 64 69 73 |retPosition",dis| 00000ec0 70 6c 61 79 25 2c 2d 31 2c 78 70 6f 73 25 2c 79 |play%,-1,xpos%,y| 00000ed0 70 6f 73 25 2c 33 36 2c 78 70 6f 73 25 81 31 36 |pos%,36,xpos%.16| 00000ee0 0d 05 78 2d c9 6f 70 65 6e 25 3a f2 63 6c 69 63 |..x-.open%:.clic| 00000ef0 6b 64 69 61 6c 6f 67 28 6f 70 65 6e 25 2c 6f 70 |kdialog(open%,op| 00000f00 65 6e 24 2c 70 6f 6c 6c 25 21 31 36 29 0d 05 82 |en$,poll%!16)...| 00000f10 32 c9 64 69 61 6c 6f 67 25 3a f2 63 6c 69 63 6b |2.dialog%:.click| 00000f20 64 69 61 6c 6f 67 28 64 69 61 6c 6f 67 25 2c 63 |dialog(dialog%,c| 00000f30 6c 61 69 6d 24 2c 70 6f 6c 6c 25 21 31 36 29 0d |laim$,poll%!16).| 00000f40 05 8c 05 cb 0d 05 96 05 cd 0d 05 a0 05 e1 0d 05 |................| 00000f50 aa 05 3a 0d 05 b4 27 2a 2a 2a 2a 2a 2a 2a 2a 2a |..:...'*********| 00000f60 2a 20 44 72 61 67 20 72 6f 75 74 69 6e 65 73 20 |* Drag routines | 00000f70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 05 be 05 3a 0d |**********....:.| 00000f80 05 c8 11 dd f2 64 72 61 67 28 68 61 6e 64 25 29 |.....drag(hand%)| 00000f90 0d 05 d2 0c c8 8e 68 61 6e 64 25 ca 0d 05 dc 0b |......hand%.....| 00000fa0 c9 73 61 76 65 31 25 0d 05 e6 1b 73 74 61 72 74 |.save1%....start| 00000fb0 25 3d 73 74 25 2a 31 30 2b 73 68 25 2a 35 2b 73 |%=st%*10+sh%*5+s| 00000fc0 73 25 0d 05 f0 19 65 6e 64 25 3d 65 74 25 2a 31 |s%....end%=et%*1| 00000fd0 30 2b 65 68 25 2a 35 2b 65 73 25 0d 05 fa 21 6c |0+eh%*5+es%...!l| 00000fe0 65 6e 25 3d 65 6e 64 25 2d 73 74 61 72 74 25 3a |en%=end%-start%:| 00000ff0 4c 25 3d 6c 65 6e 25 2a 31 30 32 34 0d 06 04 0d |L%=len%*1024....| 00001000 e7 b4 6c 65 6e 25 3d 31 8c 0d 06 0e 2a f2 6c 6f |..len%=1....*.lo| 00001010 61 64 73 65 63 74 6f 72 28 73 74 25 2c 73 68 25 |adsector(st%,sh%| 00001020 2c 73 73 25 2c 6c 65 6e 25 2b 31 2c 64 72 69 76 |,ss%,len%+1,driv| 00001030 65 25 29 0d 06 18 05 cc 0d 06 22 4a 6a 25 3d a4 |e%)......."Jj%=.| 00001040 61 6c 65 72 74 28 22 53 74 61 72 74 20 61 64 64 |alert("Start add| 00001050 72 65 73 73 20 69 73 20 6c 65 73 73 20 74 68 61 |ress is less tha| 00001060 6e 20 65 6e 64 20 61 64 64 72 65 73 73 2e 20 50 |n end address. P| 00001070 6c 65 61 73 65 20 63 68 65 63 6b 2e 22 2c 32 2c |lease check.",2,| 00001080 30 29 0d 06 2c 05 cd 0d 06 36 0d c9 73 61 76 65 |0)..,....6..save| 00001090 73 65 63 25 0d 06 40 0b 4c 25 3d 31 30 32 34 0d |sec%..@.L%=1024.| 000010a0 06 4a 05 cb 0d 06 54 23 c8 99 22 57 69 6d 70 5f |.J....T#.."Wimp_| 000010b0 47 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f 22 2c |GetPointerInfo",| 000010c0 2c 62 6c 6f 63 6b 25 0d 06 5e 33 62 6c 6f 63 6b |,block%..^3block| 000010d0 25 21 32 30 3d 62 6c 6f 63 6b 25 21 31 32 3a f4 |%!20=block%!12:.| 000010e0 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 77 69 6e | destination win| 000010f0 64 6f 77 20 68 61 6e 64 6c 65 0d 06 68 31 62 6c |dow handle..h1bl| 00001100 6f 63 6b 25 21 32 34 3d 62 6c 6f 63 6b 25 21 31 |ock%!24=block%!1| 00001110 36 3a f4 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 |6:. destination | 00001120 69 63 6f 6e 20 68 61 6e 64 6c 65 0d 06 72 25 62 |icon handle..r%b| 00001130 6c 6f 63 6b 25 21 32 38 3d 21 62 6c 6f 63 6b 25 |lock%!28=!block%| 00001140 3a f4 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 78 |:. destination x| 00001150 0d 06 7c 26 62 6c 6f 63 6b 25 21 33 32 3d 62 6c |..|&block%!32=bl| 00001160 6f 63 6b 25 21 34 3a f4 20 64 65 73 74 69 6e 61 |ock%!4:. destina| 00001170 74 69 6f 6e 20 79 0d 06 86 2c 62 6c 6f 63 6b 25 |tion y...,block%| 00001180 21 33 36 3d 4c 25 3a f4 20 65 73 74 69 6d 61 74 |!36=L%:. estimat| 00001190 65 64 20 73 69 7a 65 20 28 69 6e 20 62 79 74 65 |ed size (in byte| 000011a0 73 29 0d 06 90 1e 62 6c 6f 63 6b 25 21 34 30 3d |s)....block%!40=| 000011b0 26 46 46 44 3a f4 20 66 69 6c 65 20 74 79 70 65 |&FFD:. file type| 000011c0 0d 06 9a 0e 21 62 6c 6f 63 6b 25 3d 36 30 0d 06 |....!block%=60..| 000011d0 a4 1b 62 6c 6f 63 6b 25 21 31 32 3d 30 3a 62 6c |..block%!12=0:bl| 000011e0 6f 63 6b 25 21 31 36 3d 31 0d 06 ae 25 24 28 62 |ock%!16=1...%$(b| 000011f0 6c 6f 63 6b 25 2b 34 34 29 3d a4 66 69 6c 65 6e |lock%+44)=.filen| 00001200 61 6d 65 28 24 66 69 6c 65 25 29 2b bd 30 0d 06 |ame($file%)+.0..| 00001210 b8 2c c8 99 22 57 69 6d 70 5f 53 65 6e 64 4d 65 |.,.."Wimp_SendMe| 00001220 73 73 61 67 65 22 2c 31 37 2c 62 6c 6f 63 6b 25 |ssage",17,block%| 00001230 2c 62 6c 6f 63 6b 25 21 32 30 0d 06 c2 05 e1 0d |,block%!20......| 00001240 06 cc 05 3a 0d 06 d6 21 dd f2 69 6e 69 74 64 72 |...:...!..initdr| 00001250 61 67 28 68 61 6e 64 25 2c 69 63 6f 6e 25 2c 74 |ag(hand%,icon%,t| 00001260 79 70 65 25 29 0d 06 e0 13 64 72 61 67 66 72 6f |ype%)....dragfro| 00001270 6d 25 3d 68 61 6e 64 25 0d 06 ea 31 21 62 6c 6f |m%=hand%...1!blo| 00001280 63 6b 25 3d 68 61 6e 64 25 3a c8 99 22 57 69 6d |ck%=hand%:.."Wim| 00001290 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 74 65 |p_GetWindowState| 000012a0 22 2c 2c 62 6c 6f 63 6b 25 0d 06 f4 1d 69 78 25 |",,block%....ix%| 000012b0 3d 62 6c 6f 63 6b 25 21 34 3a 69 79 25 3d 62 6c |=block%!4:iy%=bl| 000012c0 6f 63 6b 25 21 38 0d 06 fe 30 62 6c 6f 63 6b 25 |ock%!8...0block%| 000012d0 21 34 3d 69 63 6f 6e 25 3a c8 99 22 57 69 6d 70 |!4=icon%:.."Wimp| 000012e0 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c |_GetIconState",,| 000012f0 62 6c 6f 63 6b 25 0d 07 08 12 62 6c 6f 63 6b 25 |block%....block%| 00001300 21 34 3d 74 79 70 65 25 0d 07 12 20 62 6c 6f 63 |!4=type%... bloc| 00001310 6b 25 21 38 2b 3d 69 78 25 3a 62 6c 6f 63 6b 25 |k%!8+=ix%:block%| 00001320 21 31 32 2b 3d 69 79 25 0d 07 1c 21 62 6c 6f 63 |!12+=iy%...!bloc| 00001330 6b 25 21 31 36 2b 3d 69 78 25 3a 62 6c 6f 63 6b |k%!16+=ix%:block| 00001340 25 21 32 30 2b 3d 69 79 25 0d 07 26 1b 62 6c 6f |%!20+=iy%..&.blo| 00001350 63 6b 25 21 32 34 3d 30 3a 62 6c 6f 63 6b 25 21 |ck%!24=0:block%!| 00001360 32 38 3d 30 0d 07 30 21 62 6c 6f 63 6b 25 21 33 |28=0..0!block%!3| 00001370 32 3d 31 32 37 39 3a 62 6c 6f 63 6b 25 21 33 36 |2=1279:block%!36| 00001380 3d 31 30 32 33 0d 07 3a 1c c8 99 22 57 69 6d 70 |=1023..:..."Wimp| 00001390 5f 44 72 61 67 42 6f 78 22 2c 2c 62 6c 6f 63 6b |_DragBox",,block| 000013a0 25 0d 07 44 05 e1 0d 07 4e 05 3a 0d 07 58 2b 2a |%..D....N.:..X+*| 000013b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 4b 65 79 70 72 65 |********* Keypre| 000013c0 73 73 20 72 6f 75 74 69 6e 65 73 20 2a 2a 2a 2a |ss routines ****| 000013d0 2a 2a 2a 2a 2a 2a 0d 07 62 05 3a 0d 07 6c 1c dd |******..b.:..l..| 000013e0 f2 6b 65 79 70 72 65 73 73 28 68 61 6e 64 6c 65 |.keypress(handle| 000013f0 25 2c 6b 65 79 25 29 0d 07 76 25 c8 99 22 57 69 |%,key%)..v%.."Wi| 00001400 6d 70 5f 47 65 74 43 61 72 65 74 50 6f 73 69 74 |mp_GetCaretPosit| 00001410 69 6f 6e 22 2c 2c 62 6c 6f 63 6b 25 0d 07 80 2c |ion",,block%...,| 00001420 63 78 25 3d 62 6c 6f 63 6b 25 21 38 3a 63 79 25 |cx%=block%!8:cy%| 00001430 3d 62 6c 6f 63 6b 25 21 31 32 3a 73 78 25 3d 62 |=block%!12:sx%=b| 00001440 6c 6f 63 6b 25 21 32 30 0d 07 8a 1b 6c 69 6e 65 |lock%!20....line| 00001450 25 3d 36 33 2d 28 62 6c 6f 63 6b 25 21 31 32 29 |%=63-(block%!12)| 00001460 81 33 32 0d 07 94 0e c8 8e 68 61 6e 64 6c 65 25 |.32......handle%| 00001470 ca 0d 07 9e 0d c9 64 69 73 70 6c 61 79 25 0d 07 |......display%..| 00001480 a8 37 e7 73 78 25 3e 35 80 73 78 25 3c 35 32 f2 |.7.sx%>5.sx%<52.| 00001490 68 65 78 28 6b 65 79 25 29 20 8b e7 73 78 25 3e |hex(key%) ..sx%>| 000014a0 35 36 80 73 78 25 3c 37 33 f2 61 73 63 69 69 28 |56.sx%<73.ascii(| 000014b0 6b 65 79 25 29 0d 07 b2 28 c9 73 61 76 65 31 25 |key%)...(.save1%| 000014c0 3a e7 6b 65 79 25 3d 32 37 f2 63 6c 6f 73 65 77 |:.key%=27.closew| 000014d0 69 6e 64 6f 77 28 73 61 76 65 31 25 29 0d 07 bc |indow(save1%)...| 000014e0 05 cb 0d 07 c6 05 e1 0d 07 d0 05 3a 0d 07 da 27 |...........:...'| 000014f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 4d 65 6e 75 20 |********** Menu | 00001500 72 6f 75 74 69 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a |routines *******| 00001510 2a 2a 2a 0d 07 e4 05 3a 0d 07 ee 1c dd a4 63 72 |***....:......cr| 00001520 65 61 74 65 6d 65 6e 75 28 6d 62 25 2c 74 24 2c |eatemenu(mb%,t$,| 00001530 74 62 25 29 0d 07 f8 37 ea 6e 65 77 24 2c 70 74 |tb%)...7.new$,pt| 00001540 72 25 2c 73 68 61 64 65 25 2c 74 69 63 6b 25 2c |r%,shade%,tick%,| 00001550 64 6f 74 74 65 64 25 2c 73 75 62 6d 65 6e 75 25 |dotted%,submenu%| 00001560 2c 77 72 69 74 65 61 62 6c 65 25 0d 08 02 21 6e |,writeable%...!n| 00001570 75 6d 6f 66 69 74 65 6d 73 25 3d bb c0 74 24 2c |umofitems%=..t$,| 00001580 31 29 3a 74 24 3d c1 74 24 2c 32 29 0d 08 0c 40 |1):t$=.t$,2)...@| 00001590 6e 65 78 74 6d 65 6e 75 25 3d 6d 62 25 2b 32 38 |nextmenu%=mb%+28| 000015a0 2b 32 34 2a 6e 75 6d 6f 66 69 74 65 6d 73 25 3a |+24*numofitems%:| 000015b0 6e 65 78 74 74 65 78 74 25 3d 74 62 25 2b 32 34 |nexttext%=tb%+24| 000015c0 2a 6e 75 6d 6f 66 69 74 65 6d 73 25 0d 08 16 2b |*numofitems%...+| 000015d0 24 6d 62 25 3d c0 74 24 2c a7 74 24 2c 22 7c 22 |$mb%=.t$,.t$,"|"| 000015e0 29 2d 31 29 3a 74 24 3d c1 74 24 2c a7 74 24 2c |)-1):t$=.t$,.t$,| 000015f0 22 7c 22 29 2b 31 29 0d 08 20 26 6d 62 25 3f 31 |"|")+1).. &mb%?1| 00001600 32 3d 37 3a f4 20 54 69 74 6c 65 20 66 6f 72 65 |2=7:. Title fore| 00001610 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 0d 08 2a |ground colour..*| 00001620 26 6d 62 25 3f 31 33 3d 32 3a f4 20 54 69 74 6c |&mb%?13=2:. Titl| 00001630 65 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c |e background col| 00001640 6f 75 72 0d 08 34 23 6d 62 25 3f 31 34 3d 37 3a |our..4#mb%?14=7:| 00001650 f4 20 57 6f 72 6b 20 61 72 65 61 20 66 6f 72 65 |. Work area fore| 00001660 67 72 6f 75 6e 64 0d 08 3e 23 6d 62 25 3f 31 35 |ground..>#mb%?15| 00001670 3d 30 3a f4 20 57 6f 72 6b 20 61 72 65 61 20 62 |=0:. Work area b| 00001680 61 63 6b 67 72 6f 75 6e 64 0d 08 48 1b 6d 62 25 |ackground..H.mb%| 00001690 21 31 36 3d 32 30 30 3a f4 20 4d 65 6e 75 20 77 |!16=200:. Menu w| 000016a0 69 64 74 68 0d 08 52 1e 6d 62 25 21 32 30 3d 34 |idth..R.mb%!20=4| 000016b0 34 3a f4 20 48 65 69 67 68 74 20 6f 66 20 74 65 |4:. Height of te| 000016c0 78 74 0d 08 5c 22 6d 62 25 21 32 34 3d 30 3a f4 |xt..\"mb%!24=0:.| 000016d0 20 53 70 61 63 65 20 62 65 74 77 65 65 6e 20 6c | Space between l| 000016e0 69 6e 65 73 0d 08 66 0f 70 74 72 25 3d 6d 62 25 |ines..f.ptr%=mb%| 000016f0 2b 32 38 0d 08 70 39 f5 3a 73 68 61 64 65 25 3d |+28..p9.:shade%=| 00001700 30 3a 74 69 63 6b 25 3d 30 3a 64 6f 74 74 65 64 |0:tick%=0:dotted| 00001710 25 3d 30 3a 77 72 69 74 65 61 62 6c 65 25 3d 30 |%=0:writeable%=0| 00001720 3a 73 75 62 6d 65 6e 75 25 3d 2d 31 0d 08 7a 10 |:submenu%=-1..z.| 00001730 e7 c0 74 24 2c 31 29 3d 22 5b 22 8c 0d 08 84 23 |..t$,1)="["....#| 00001740 74 24 3d c1 74 24 2c 32 29 3a 6e 65 77 24 3d a0 |t$=.t$,2):new$=.| 00001750 c0 74 24 2c a7 74 24 2c 22 5d 22 29 2d 31 29 0d |.t$,.t$,"]")-1).| 00001760 08 8e 16 74 24 3d c1 74 24 2c a7 74 24 2c 22 5d |...t$=.t$,.t$,"]| 00001770 22 29 2b 31 29 0d 08 98 32 73 75 62 6d 65 6e 75 |")+1)...2submenu| 00001780 25 3d a4 63 72 65 61 74 65 6d 65 6e 75 28 6e 65 |%=.createmenu(ne| 00001790 78 74 6d 65 6e 75 25 2c 6e 65 77 24 2c 6e 65 78 |xtmenu%,new$,nex| 000017a0 74 74 65 78 74 25 29 0d 08 a2 05 cd 0d 08 ac 10 |ttext%).........| 000017b0 e7 c0 74 24 2c 31 29 3d 22 3c 22 8c 0d 08 b6 27 |..t$,1)="<"....'| 000017c0 74 24 3d c1 74 24 2c 32 29 3a 73 75 62 6d 65 6e |t$=.t$,2):submen| 000017d0 75 25 3d a0 c0 74 24 2c a7 74 24 2c 22 3e 22 29 |u%=..t$,.t$,">")| 000017e0 2d 31 29 0d 08 c0 16 74 24 3d c1 74 24 2c a7 74 |-1)....t$=.t$,.t| 000017f0 24 2c 22 3e 22 29 2b 31 29 0d 08 ca 05 cd 0d 08 |$,">")+1).......| 00001800 d4 25 e7 c0 74 24 2c 31 29 3d 22 2e 22 74 24 3d |.%..t$,1)="."t$=| 00001810 c1 74 24 2c 32 29 3a f4 20 44 6f 20 6e 6f 74 68 |.t$,2):. Do noth| 00001820 69 6e 67 0d 08 de 27 e7 c0 74 24 2c 31 29 3d 22 |ing...'..t$,1)="| 00001830 a4 22 73 68 61 64 65 25 3d 26 34 30 30 30 30 30 |."shade%=&400000| 00001840 3a 74 24 3d c1 74 24 2c 32 29 0d 08 e8 20 e7 c0 |:t$=.t$,2)... ..| 00001850 74 24 2c 31 29 3d 22 80 22 74 69 63 6b 25 3d 31 |t$,1)="."tick%=1| 00001860 3a 74 24 3d c1 74 24 2c 32 29 0d 08 f2 22 e7 c0 |:t$=.t$,2)..."..| 00001870 74 24 2c 31 29 3d 22 3a 22 64 6f 74 74 65 64 25 |t$,1)=":"dotted%| 00001880 3d 32 3a 74 24 3d c1 74 24 2c 32 29 0d 08 fc 25 |=2:t$=.t$,2)...%| 00001890 e7 c0 74 24 2c 31 29 3d 22 5e 22 77 72 69 74 65 |..t$,1)="^"write| 000018a0 61 62 6c 65 25 3d 34 3a 74 24 3d c1 74 24 2c 32 |able%=4:t$=.t$,2| 000018b0 29 0d 09 06 0f 67 25 3d a7 74 24 2c 22 7c 22 29 |)....g%=.t$,"|")| 000018c0 0d 09 10 10 e7 77 72 69 74 65 61 62 6c 65 25 8c |.....writeable%.| 000018d0 0d 09 1a 2f 69 25 3d a7 74 24 2c 22 2c 22 29 3a |.../i%=.t$,","):| 000018e0 70 74 72 25 21 31 32 3d a0 c0 74 24 2c 69 25 2d |ptr%!12=..t$,i%-| 000018f0 31 29 3a 74 24 3d c1 74 24 2c 69 25 2b 31 29 0d |1):t$=.t$,i%+1).| 00001900 09 24 0e 70 74 72 25 21 31 36 3d 2d 31 0d 09 2e |.$.ptr%!16=-1...| 00001910 1c 70 74 72 25 21 32 30 3d a0 c0 74 24 2c a7 74 |.ptr%!20=..t$,.t| 00001920 24 2c 22 7c 22 29 2d 31 29 0d 09 38 3c 6d 62 25 |$,"|")-1)..8<mb%| 00001930 21 31 36 3d a4 67 72 65 61 74 65 72 28 6d 62 25 |!16=.greater(mb%| 00001940 21 31 36 2c 34 2b 31 36 2a 70 74 72 25 21 32 30 |!16,4+16*ptr%!20| 00001950 29 3a f4 20 57 69 64 74 68 20 6f 66 20 6e 65 77 |):. Width of new| 00001960 20 6d 65 6e 75 0d 09 42 05 cc 0d 09 4c 3f 24 74 | menu..B....L?$t| 00001970 62 25 3d c0 74 24 2c 67 25 2d 31 29 3a 70 74 72 |b%=.t$,g%-1):ptr| 00001980 25 21 31 32 3d 74 62 25 3a 70 74 72 25 21 31 36 |%!12=tb%:ptr%!16| 00001990 3d 2d 31 3a 70 74 72 25 21 32 30 3d a9 24 74 62 |=-1:ptr%!20=.$tb| 000019a0 25 3a 74 62 25 2b 3d 32 34 0d 09 56 05 cd 0d 09 |%:tb%+=24..V....| 000019b0 60 10 74 24 3d c1 74 24 2c 67 25 2b 31 29 0d 09 |`.t$=.t$,g%+1)..| 000019c0 6a 46 21 70 74 72 25 3d 74 69 63 6b 25 84 64 6f |jF!ptr%=tick%.do| 000019d0 74 74 65 64 25 84 77 72 69 74 65 61 62 6c 65 25 |tted%.writeable%| 000019e0 84 28 26 38 30 20 80 28 74 24 3d 22 22 29 29 3a |.(&80 .(t$="")):| 000019f0 f4 26 38 30 20 6d 61 72 6b 73 20 6c 61 73 74 20 |.&80 marks last | 00001a00 69 74 65 6d 0d 09 74 13 70 74 72 25 21 34 3d 73 |item..t.ptr%!4=s| 00001a10 75 62 6d 65 6e 75 25 0d 09 7e 32 70 74 72 25 21 |ubmenu%..~2ptr%!| 00001a20 38 3d 26 31 30 31 32 31 84 73 68 61 64 65 25 84 |8=&10121.shade%.| 00001a30 77 72 69 74 65 61 62 6c 65 25 3c 3c 36 84 37 3c |writeable%<<6.7<| 00001a40 3c 32 34 84 30 3c 3c 32 38 0d 09 88 0c 70 74 72 |<24.0<<28....ptr| 00001a50 25 2b 3d 32 34 0d 09 92 0a fd 74 24 3d 22 22 0d |%+=24.....t$="".| 00001a60 09 9c 08 3d 6d 62 25 0d 09 a6 05 3a 0d 09 b0 10 |...=mb%....:....| 00001a70 dd f2 6d 65 6e 75 73 65 6c 65 63 74 0d 09 ba 33 |..menuselect...3| 00001a80 c8 99 22 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 |.."Wimp_GetPoint| 00001a90 65 72 49 6e 66 6f 22 2c 2c 62 6c 6f 63 6b 25 3a |erInfo",,block%:| 00001aa0 6d 65 6e 75 62 25 3d 62 6c 6f 63 6b 25 21 38 0d |menub%=block%!8.| 00001ab0 09 c4 0d e7 6d 65 6e 75 25 3d 31 8c 0d 09 ce 0d |....menu%=1.....| 00001ac0 c8 8e 21 70 6f 6c 6c 25 ca 0d 09 d8 06 c9 30 0d |..!poll%......0.| 00001ad0 09 e2 0c c9 31 3a f2 71 75 69 74 0d 09 ec 05 cb |....1:.quit.....| 00001ae0 0d 09 f6 05 cd 0d 0a 00 0d e7 6d 65 6e 75 25 3d |..........menu%=| 00001af0 32 8c 0d 0a 0a 0d c8 8e 21 70 6f 6c 6c 25 ca 0d |2.......!poll%..| 00001b00 0a 14 0c c9 30 3a f2 66 69 6e 64 0d 0a 1e 10 c9 |....0:.find.....| 00001b10 31 3a f2 73 61 76 65 66 69 6c 65 0d 0a 28 11 c9 |1:.savefile..(..| 00001b20 32 3a f2 63 61 74 61 6c 6f 67 75 65 0d 0a 32 0f |2:.catalogue..2.| 00001b30 c9 33 3a f2 63 6f 6d 70 61 72 65 0d 0a 3c 11 c9 |.3:.compare..<..| 00001b40 34 3a f2 70 65 72 6d 61 6e 65 6e 74 0d 0a 46 05 |4:.permanent..F.| 00001b50 cb 0d 0a 50 05 cd 0d 0a 5a 0e e7 6d 65 6e 75 62 |...P....Z..menub| 00001b60 25 3d 31 8c 0d 0a 64 27 e7 6d 65 6e 75 25 3d 31 |%=1...d'.menu%=1| 00001b70 62 25 3d 69 6e 69 74 62 6c 6f 63 6b 25 8b 62 25 |b%=initblock%.b%| 00001b80 3d 6d 61 69 6e 62 6c 6f 63 6b 25 0d 0a 6e 3a c8 |=mainblock%..n:.| 00001b90 99 22 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 6e |."Wimp_CreateMen| 00001ba0 75 22 2c 30 2c 62 25 2c 6d 6f 75 73 65 78 25 2b |u",0,b%,mousex%+| 00001bb0 36 34 2a 28 6d 65 6e 75 62 25 3d 31 29 2c 6d 6f |64*(menub%=1),mo| 00001bc0 75 73 65 79 25 0d 0a 78 05 cd 0d 0a 82 05 e1 0d |usey%..x........| 00001bd0 0a 8c 05 3a 0d 0a 96 2a 2a 2a 2a 2a 2a 2a 2a 2a |...:...*********| 00001be0 2a 2a 20 4d 65 73 73 61 67 65 20 72 6f 75 74 69 |** Message routi| 00001bf0 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a |nes **********..| 00001c00 a0 05 3a 0d 0a aa 17 dd f2 6d 65 73 73 61 67 65 |..:......message| 00001c10 69 6e 28 65 76 65 6e 74 25 29 0d 0a b4 1e 74 61 |in(event%)....ta| 00001c20 73 6b 25 3d 70 6f 6c 6c 25 21 34 3a 72 65 66 25 |sk%=poll%!4:ref%| 00001c30 3d 70 6f 6c 6c 25 21 38 0d 0a be 0f c8 8e 70 6f |=poll%!8......po| 00001c40 6c 6c 25 21 31 36 ca 0d 0a c8 0c c9 30 3a f2 71 |ll%!16......0:.q| 00001c50 75 69 74 0d 0a d2 16 c9 31 3a e7 74 61 73 6b 25 |uit.....1:.task%| 00001c60 3d 6d 79 74 61 73 6b 25 8c 0d 0a dc 35 6a 25 3d |=mytask%....5j%=| 00001c70 a4 61 6c 65 72 74 28 22 43 61 6e 27 74 20 73 61 |.alert("Can't sa| 00001c80 76 65 20 74 6f 20 44 7a 61 70 27 73 20 6f 77 6e |ve to Dzap's own| 00001c90 20 77 69 6e 64 6f 77 21 22 2c 32 2c 30 29 0d 0a | window!",2,0)..| 00001ca0 e6 05 cc 0d 0a f0 10 f2 72 65 70 6c 79 28 31 38 |........reply(18| 00001cb0 2c 36 29 0d 0a fa 05 cd 0d 0b 04 06 c9 32 0d 0b |,6)..........2..| 00001cc0 0e 10 c8 8e 64 72 61 67 66 72 6f 6d 25 ca 0d 0b |....dragfrom%...| 00001cd0 18 0b c9 73 61 76 65 31 25 0d 0b 22 1c 20 20 24 |...save1%..". $| 00001ce0 66 69 6c 65 25 3d a4 6e 61 6d 65 28 70 6f 6c 6c |file%=.name(poll| 00001cf0 25 2b 34 34 29 0d 0b 2c 29 20 20 ff 28 22 53 41 |%+44)..,) .("SA| 00001d00 56 45 20 22 2b 24 66 69 6c 65 25 2b 22 20 22 2b |VE "+$file%+" "+| 00001d10 c3 7e 53 25 2b 22 2b 22 2b c3 7e 4c 25 29 0d 0b |.~S%+"+"+.~L%)..| 00001d20 36 23 20 20 f2 63 6c 6f 73 65 77 69 6e 64 6f 77 |6# .closewindow| 00001d30 28 73 61 76 65 31 25 29 3a 73 61 76 65 31 25 3d |(save1%):save1%=| 00001d40 30 0d 0b 40 05 cb 0d 0b 4a 1f ff 28 22 53 45 54 |0..@....J..("SET| 00001d50 54 59 50 45 20 22 2b 24 66 69 6c 65 25 2b 22 20 |TYPE "+$file%+" | 00001d60 46 46 44 22 29 0d 0b 54 23 c8 99 22 57 69 6d 70 |FFD")..T#.."Wimp| 00001d70 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f 22 |_GetPointerInfo"| 00001d80 2c 2c 62 6c 6f 63 6b 25 0d 0b 5e 2b 62 6c 6f 63 |,,block%..^+bloc| 00001d90 6b 25 21 32 30 3d 62 6c 6f 63 6b 25 21 31 32 3a |k%!20=block%!12:| 00001da0 62 6c 6f 63 6b 25 21 32 34 3d 62 6c 6f 63 6b 25 |block%!24=block%| 00001db0 21 31 36 0d 0b 68 28 62 6c 6f 63 6b 25 21 32 38 |!16..h(block%!28| 00001dc0 3d 21 62 6c 6f 63 6b 25 3a 62 6c 6f 63 6b 25 21 |=!block%:block%!| 00001dd0 33 32 3d 62 6c 6f 63 6b 25 21 34 0d 0b 72 1e 62 |32=block%!4..r.b| 00001de0 6c 6f 63 6b 25 21 33 36 3d 30 3a 62 6c 6f 63 6b |lock%!36=0:block| 00001df0 25 21 34 30 3d 26 46 46 44 0d 0b 7c 0e 21 62 6c |%!40=&FFD..|.!bl| 00001e00 6f 63 6b 25 3d 36 34 0d 0b 86 1e 62 6c 6f 63 6b |ock%=64....block| 00001e10 25 21 31 32 3d 72 65 66 25 3a 62 6c 6f 63 6b 25 |%!12=ref%:block%| 00001e20 21 31 36 3d 33 0d 0b 90 10 f2 72 65 70 6c 79 28 |!16=3.....reply(| 00001e30 31 37 2c 33 29 0d 0b 9a 1b c8 99 22 57 69 6d 70 |17,3)......"Wimp| 00001e40 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c 2d 31 |_CreateMenu",,-1| 00001e50 0d 0b a4 22 c9 26 35 30 32 3a f2 68 65 6c 70 28 |...".&502:.help(| 00001e60 70 6f 6c 6c 25 21 33 32 2c 70 6f 6c 6c 25 21 33 |poll%!32,poll%!3| 00001e70 36 29 0d 0b ae 05 cb 0d 0b b8 05 e1 0d 0b c2 05 |6)..............| 00001e80 3a 0d 0b cc 14 dd a4 6e 61 6d 65 28 73 25 29 3a |:......name(s%):| 00001e90 66 24 3d 22 22 0d 0b d6 1c c8 95 3f 73 25 3e 30 |f$=""......?s%>0| 00001ea0 3a 66 24 2b 3d bd 28 3f 73 25 29 3a 73 25 2b 3d |:f$+=.(?s%):s%+=| 00001eb0 31 0d 0b e0 05 ce 0d 0b ea 07 3d 66 24 0d 0b f4 |1.........=f$...| 00001ec0 05 3a 0d 0b fe 12 dd a4 66 69 6c 65 6e 61 6d 65 |.:......filename| 00001ed0 28 61 24 29 0d 0c 08 10 c8 95 a7 61 24 2c 22 3a |(a$).......a$,":| 00001ee0 22 29 3e 30 0d 0c 12 16 61 24 3d c1 61 24 2c a7 |")>0....a$=.a$,.| 00001ef0 61 24 2c 22 3a 22 29 2b 31 29 0d 0c 1c 05 ce 0d |a$,":")+1)......| 00001f00 0c 26 10 c8 95 a7 61 24 2c 22 2e 22 29 3e 30 0d |.&....a$,".")>0.| 00001f10 0c 30 16 61 24 3d c1 61 24 2c a7 61 24 2c 22 2e |.0.a$=.a$,.a$,".| 00001f20 22 29 2b 31 29 0d 0c 3a 05 ce 0d 0c 44 07 3d 61 |")+1)..:....D.=a| 00001f30 24 0d 0c 4e 05 3a 0d 0c 58 1e dd f2 72 65 70 6c |$..N.:..X...repl| 00001f40 79 28 6d 65 73 73 74 79 70 65 25 2c 72 65 61 73 |y(messtype%,reas| 00001f50 6f 6e 25 29 0d 0c 62 22 70 6f 6c 6c 25 21 31 32 |on%)..b"poll%!12| 00001f60 3d 72 65 66 25 3a 70 6f 6c 6c 25 21 31 36 3d 72 |=ref%:poll%!16=r| 00001f70 65 61 73 6f 6e 25 0d 0c 6c 2e c8 99 22 57 69 6d |eason%..l..."Wim| 00001f80 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 22 2c 6d |p_SendMessage",m| 00001f90 65 73 73 74 79 70 65 25 2c 70 6f 6c 6c 25 2c 74 |esstype%,poll%,t| 00001fa0 61 73 6b 25 0d 0c 76 05 e1 0d 0c 80 05 3a 0d 0c |ask%..v......:..| 00001fb0 8a 17 dd f2 68 65 6c 70 28 77 25 2c 69 25 29 3a |....help(w%,i%):| 00001fc0 c8 8e 77 25 ca 0d 0c 94 54 c9 2d 32 3a 6d 24 3d |..w%....T.-2:m$=| 00001fd0 22 43 6c 69 63 6b 20 5b 53 65 6c 65 63 74 5d 20 |"Click [Select] | 00001fe0 74 6f 20 73 74 61 72 74 20 74 68 65 20 70 72 6f |to start the pro| 00001ff0 67 72 61 6d 20 3a 20 5b 4d 65 6e 75 5d 20 66 6f |gram : [Menu] fo| 00002000 72 20 69 6e 66 6f 20 61 6e 64 20 6f 74 68 65 72 |r info and other| 00002010 20 6f 70 74 69 6f 6e 73 22 0d 0c 9e 4f c9 63 61 | options"...O.ca| 00002020 74 25 3a 6d 24 3d 22 54 68 69 73 20 77 69 6e 64 |t%:m$="This wind| 00002030 6f 77 20 64 69 73 70 6c 61 79 73 20 66 69 6c 65 |ow displays file| 00002040 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 | information for| 00002050 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 61 | a particular ca| 00002060 74 61 6c 6f 67 75 65 22 0d 0c a8 6d c9 73 61 76 |talogue"...m.sav| 00002070 65 25 3a 6d 24 3d 22 55 73 65 20 74 68 65 20 8b |e%:m$="Use the .| 00002080 20 8a 20 69 63 6f 6e 73 20 74 6f 20 73 65 74 20 | . icons to set | 00002090 74 68 65 20 73 74 61 72 74 20 61 6e 64 20 65 6e |the start and en| 000020a0 64 20 61 64 64 72 65 73 73 65 73 20 6f 66 20 74 |d addresses of t| 000020b0 68 65 20 70 61 72 74 20 6f 66 20 74 68 65 20 64 |he part of the d| 000020c0 69 73 6b 20 79 6f 75 20 77 69 73 68 20 74 6f 20 |isk you wish to | 000020d0 73 61 76 65 22 0d 0c b2 6f c9 63 6f 6d 70 25 3a |save"...o.comp%:| 000020e0 6d 24 3d 22 55 73 65 20 74 68 65 20 8b 20 8a 20 |m$="Use the . . | 000020f0 69 63 6f 6e 73 20 74 6f 20 73 65 74 20 74 68 65 |icons to set the| 00002100 20 73 74 61 72 74 20 61 6e 64 20 65 6e 64 20 61 | start and end a| 00002110 64 64 72 65 73 73 65 73 20 6f 66 20 74 68 65 20 |ddresses of the | 00002120 70 61 72 74 20 6f 66 20 74 68 65 20 64 69 73 6b |part of the disk| 00002130 20 79 6f 75 20 77 69 73 68 20 74 6f 20 73 65 61 | you wish to sea| 00002140 72 63 68 22 0d 0c bc a9 c9 73 61 76 65 31 25 3a |rch".....save1%:| 00002150 6d 24 3d 22 44 72 61 67 20 74 68 65 20 69 63 6f |m$="Drag the ico| 00002160 6e 20 74 6f 20 74 68 65 20 77 69 6e 64 6f 77 20 |n to the window | 00002170 69 6e 20 77 68 69 63 68 20 79 6f 75 20 77 69 73 |in which you wis| 00002180 68 20 74 6f 20 73 61 76 65 20 74 68 65 20 66 69 |h to save the fi| 00002190 6c 65 2c 20 6f 72 20 69 66 20 74 68 65 72 65 20 |le, or if there | 000021a0 69 73 20 61 6c 72 65 61 64 79 20 61 20 66 75 6c |is already a ful| 000021b0 6c 20 66 69 6c 65 6e 61 6d 65 20 63 6c 69 63 6b |l filename click| 000021c0 20 6f 6e 20 27 4f 4b 27 2e 20 3c 45 73 63 61 70 | on 'OK'. <Escap| 000021d0 65 3e 20 77 69 6c 6c 20 63 61 6e 63 65 6c 20 74 |e> will cancel t| 000021e0 68 65 20 6f 70 65 72 61 74 69 6f 6e 22 0d 0c c6 |he operation"...| 000021f0 44 c9 73 61 76 65 73 65 63 25 3a 6d 24 3d 22 43 |D.savesec%:m$="C| 00002200 6c 69 63 6b 20 27 4f 4b 27 20 74 6f 20 72 65 73 |lick 'OK' to res| 00002210 61 76 65 20 74 68 69 73 20 73 65 63 74 6f 72 20 |ave this sector | 00002220 62 61 63 6b 20 74 6f 20 74 68 65 20 64 69 73 6b |back to the disk| 00002230 22 0d 0c d0 9a c9 66 69 6e 64 25 3a 6d 24 3d 22 |".....find%:m$="| 00002240 45 6e 74 65 72 20 74 68 65 20 34 2d 63 68 61 72 |Enter the 4-char| 00002250 61 63 74 65 72 20 73 74 72 69 6e 67 20 79 6f 75 |acter string you| 00002260 20 77 69 73 68 20 74 6f 20 66 69 6e 64 2e 20 48 | wish to find. H| 00002270 65 78 61 64 65 63 69 6d 61 6c 20 69 6e 70 75 74 |exadecimal input| 00002280 20 69 73 20 61 6c 73 6f 20 61 63 63 65 70 74 65 | is also accepte| 00002290 64 20 28 75 70 20 74 6f 20 38 20 63 68 61 72 61 |d (up to 8 chara| 000022a0 63 74 65 72 73 29 20 70 72 6f 76 69 64 65 64 20 |cters) provided | 000022b0 74 68 65 20 66 69 72 73 74 20 63 68 61 72 61 63 |the first charac| 000022c0 74 65 72 20 69 73 20 27 26 27 22 0d 0c da 9e c9 |ter is '&'".....| 000022d0 66 69 6e 64 31 25 2c 63 61 74 31 25 2c 63 6f 6d |find1%,cat1%,com| 000022e0 70 31 25 3a 6d 24 3d 22 43 6c 69 63 6b 20 6f 6e |p1%:m$="Click on| 000022f0 20 27 43 6f 6e 74 69 6e 75 65 27 20 74 6f 20 63 | 'Continue' to c| 00002300 6f 6e 74 69 6e 75 65 20 74 68 65 20 73 65 61 72 |ontinue the sear| 00002310 63 68 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 |ch to the end of| 00002320 20 74 68 65 20 64 69 73 6b 20 6f 72 20 75 6e 74 | the disk or unt| 00002330 69 6c 20 45 73 63 61 70 65 20 69 73 20 70 72 65 |il Escape is pre| 00002340 73 73 65 64 2c 20 6f 72 20 6f 6e 20 27 43 61 6e |ssed, or on 'Can| 00002350 63 65 6c 27 20 74 6f 20 61 62 6f 72 74 20 74 68 |cel' to abort th| 00002360 65 20 73 65 61 72 63 68 22 0d 0c e4 b9 c9 64 69 |e search".....di| 00002370 73 70 6c 61 79 25 3a 6d 24 3d 22 43 6c 69 63 6b |splay%:m$="Click| 00002380 20 5b 53 65 6c 65 63 74 5d 20 69 6e 20 74 68 65 | [Select] in the| 00002390 20 72 69 67 68 74 20 68 61 6e 64 20 70 61 72 74 | right hand part| 000023a0 20 74 6f 20 65 6e 74 65 72 20 41 53 43 49 49 20 | to enter ASCII | 000023b0 63 68 61 72 61 63 74 65 72 73 2c 20 69 6e 20 74 |characters, in t| 000023c0 68 65 20 6c 65 66 74 20 68 61 6e 64 20 70 61 72 |he left hand par| 000023d0 74 20 66 6f 72 20 68 65 78 20 65 6e 74 72 79 2e |t for hex entry.| 000023e0 20 28 59 6f 75 20 6d 75 73 74 20 70 6f 73 69 74 | (You must posit| 000023f0 69 6f 6e 20 74 68 65 20 63 61 72 65 74 20 77 69 |ion the caret wi| 00002400 74 68 20 74 68 65 20 6d 6f 75 73 65 20 66 6f 72 |th the mouse for| 00002410 20 65 61 63 68 20 68 65 78 20 6e 75 6d 62 65 72 | each hex number| 00002420 29 22 0d 0c ee a5 c9 6f 70 65 6e 25 3a e7 69 25 |)".....open%:.i%| 00002430 3d 31 36 6d 24 3d 22 43 6c 69 63 6b 20 6f 6e 20 |=16m$="Click on | 00002440 74 68 69 73 20 74 6f 20 64 69 73 70 6c 61 79 20 |this to display | 00002450 74 68 65 20 73 65 63 74 6f 72 22 8b 6d 24 3d 22 |the sector".m$="| 00002460 55 73 65 20 74 68 65 20 8b 20 8a 20 69 63 6f 6e |Use the . . icon| 00002470 73 20 74 6f 20 73 65 74 20 74 68 65 20 64 72 69 |s to set the dri| 00002480 76 65 2c 20 74 72 61 63 6b 2c 20 68 65 61 64 20 |ve, track, head | 00002490 61 6e 64 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 |and sector numbe| 000024a0 72 73 2e 20 27 4f 4b 27 20 64 69 73 70 6c 61 79 |rs. 'OK' display| 000024b0 73 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 73 |s the selected s| 000024c0 65 63 74 6f 72 2e 22 0d 0c f8 1b 7f 3a 6d 24 3d |ector.".....:m$=| 000024d0 22 4e 6f 20 68 65 6c 70 20 70 72 6f 76 69 64 65 |"No help provide| 000024e0 64 22 0d 0d 02 05 cb 0d 0d 0c 22 70 6f 6c 6c 25 |d"........"poll%| 000024f0 21 31 32 3d 70 6f 6c 6c 25 21 38 3a 70 6f 6c 6c |!12=poll%!8:poll| 00002500 25 21 31 36 3d 26 35 30 33 0d 0d 16 16 21 70 6f |%!16=&503....!po| 00002510 6c 6c 25 3d 28 a9 6d 24 2b 32 35 29 80 2d 34 0d |ll%=(.m$+25).-4.| 00002520 0d 20 15 24 28 70 6f 6c 6c 25 2b 32 30 29 3d 6d |. .$(poll%+20)=m| 00002530 24 2b bd 30 0d 0d 2a 29 c8 99 22 57 69 6d 70 5f |$+.0..*).."Wimp_| 00002540 53 65 6e 64 4d 65 73 73 61 67 65 22 2c 31 37 2c |SendMessage",17,| 00002550 70 6f 6c 6c 25 2c 70 6f 6c 6c 25 21 34 0d 0d 34 |poll%,poll%!4..4| 00002560 05 e1 0d 0d 3e 05 3a 0d 0d 48 27 2a 2a 2a 2a 2a |....>.:..H'*****| 00002570 2a 2a 2a 2a 2a 20 49 63 6f 6e 20 72 6f 75 74 69 |***** Icon routi| 00002580 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0d |nes **********..| 00002590 52 05 3a 0d 0d 5c 1f dd f2 69 6e 76 65 72 74 69 |R.:..\...inverti| 000025a0 63 6f 6e 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e |con(window%,icon| 000025b0 25 29 0d 0d 66 3f 21 62 6c 6f 63 6b 25 3d 77 69 |%)..f?!block%=wi| 000025c0 6e 64 6f 77 25 3a 62 6c 6f 63 6b 25 21 34 3d 69 |ndow%:block%!4=i| 000025d0 63 6f 6e 25 3a 62 6c 6f 63 6b 25 21 38 3d 26 32 |con%:block%!8=&2| 000025e0 30 30 30 30 30 3a 62 6c 6f 63 6b 25 21 31 32 3d |00000:block%!12=| 000025f0 30 0d 0d 70 24 c8 99 22 57 69 6d 70 5f 53 65 74 |0..p$.."Wimp_Set| 00002600 49 63 6f 6e 53 74 61 74 65 22 2c 30 2c 62 6c 6f |IconState",0,blo| 00002610 63 6b 25 3a e1 0d 0d 7a 05 3a 0d 0d 84 21 dd f2 |ck%:...z.:...!..| 00002620 73 65 74 69 63 6f 6e 28 77 69 6e 64 6f 77 25 2c |seticon(window%,| 00002630 69 63 6f 6e 25 2c 63 6f 6c 25 29 0d 0d 8e 48 21 |icon%,col%)...H!| 00002640 62 6c 6f 63 6b 25 3d 77 69 6e 64 6f 77 25 3a 62 |block%=window%:b| 00002650 6c 6f 63 6b 25 21 34 3d 69 63 6f 6e 25 3a 62 6c |lock%!4=icon%:bl| 00002660 6f 63 6b 25 21 38 3d 63 6f 6c 25 3c 3c 32 38 3a |ock%!8=col%<<28:| 00002670 62 6c 6f 63 6b 25 21 31 32 3d 26 46 30 30 30 30 |block%!12=&F0000| 00002680 30 30 30 0d 0d 98 24 c8 99 22 57 69 6d 70 5f 53 |000...$.."Wimp_S| 00002690 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 30 2c 62 |etIconState",0,b| 000026a0 6c 6f 63 6b 25 3a e1 0d 0d a2 05 3a 0d 0d ac 43 |lock%:.....:...C| 000026b0 dd a4 69 63 6f 6e 73 65 74 28 69 25 29 3a 21 71 |..iconset(i%):!q| 000026c0 32 25 3d 6f 70 74 69 6f 6e 73 25 3a 71 32 25 21 |2%=options%:q2%!| 000026d0 34 3d 69 25 3a c8 99 22 57 69 6d 70 5f 47 65 74 |4=i%:.."Wimp_Get| 000026e0 49 63 6f 6e 53 74 61 74 65 22 2c 2c 71 32 25 0d |IconState",,q2%.| 000026f0 0d b6 18 3d 28 28 71 32 25 21 32 34 80 31 3c 3c |...=((q2%!24.1<<| 00002700 32 31 29 3c 3e 30 29 0d 0d c0 05 3a 0d 0d ca 0f |21)<>0)....:....| 00002710 dd f2 69 63 6f 6e 73 28 68 25 29 0d 0d d4 3b e3 |..icons(h%)...;.| 00002720 69 25 3d 31 b8 6e 69 63 6f 6e 73 25 3a f3 62 78 |i%=1.nicons%:.bx| 00002730 25 2c 62 79 25 2c 74 78 24 2c 74 79 25 2c 62 67 |%,by%,tx$,ty%,bg| 00002740 25 2c 66 67 25 2c 66 6c 67 25 2c 69 24 3a 74 78 |%,fg%,flg%,i$:tx| 00002750 25 3d a0 74 78 24 0d 0d de 2b e7 c0 69 24 2c 32 |%=.tx$...+..i$,2| 00002760 29 3d 22 46 4e 22 61 24 3d 22 22 8b e7 a7 69 24 |)="FN"a$=""...i$| 00002770 2c 22 24 22 29 61 24 3d a0 69 24 8b 61 24 3d 69 |,"$")a$=.i$.a$=i| 00002780 24 0d 0d e8 35 f2 63 72 65 61 74 65 69 63 6f 6e |$...5.createicon| 00002790 28 68 25 2c 62 78 25 2c 62 79 25 2c 74 78 25 2c |(h%,bx%,by%,tx%,| 000027a0 74 79 25 2c 62 67 25 2c 66 67 25 2c 66 6c 67 25 |ty%,bg%,fg%,flg%| 000027b0 2c 30 2c 61 24 29 0d 0d f2 16 e7 c0 69 24 2c 32 |,0,a$)......i$,2| 000027c0 29 3d 22 46 4e 22 6a 25 3d a0 69 24 0d 0d fc 07 |)="FN"j%=.i$....| 000027d0 ed 3a e1 0d 0e 06 05 3a 0d 0e 10 41 dd f2 63 72 |.:.....:...A..cr| 000027e0 65 61 74 65 69 63 6f 6e 28 77 69 6e 64 6f 77 25 |eateicon(window%| 000027f0 2c 62 78 25 2c 62 79 25 2c 74 78 25 2c 74 79 25 |,bx%,by%,tx%,ty%| 00002800 2c 62 67 25 2c 66 67 25 2c 66 6c 67 25 2c 65 73 |,bg%,fg%,flg%,es| 00002810 67 25 2c 64 61 74 61 24 29 0d 0e 1a 07 ea 69 25 |g%,data$).....i%| 00002820 0d 0e 24 2d 21 62 6c 6f 63 6b 25 3d 77 69 6e 64 |..$-!block%=wind| 00002830 6f 77 25 3a 62 6c 6f 63 6b 25 21 34 3d 62 78 25 |ow%:block%!4=bx%| 00002840 3a 62 6c 6f 63 6b 25 21 38 3d 62 79 25 0d 0e 2e |:block%!8=by%...| 00002850 1f 62 6c 6f 63 6b 25 21 31 32 3d 74 78 25 3a 62 |.block%!12=tx%:b| 00002860 6c 6f 63 6b 25 21 31 36 3d 74 79 25 0d 0e 38 2b |lock%!16=ty%..8+| 00002870 62 6c 6f 63 6b 25 21 32 30 3d 66 6c 67 25 84 65 |block%!20=flg%.e| 00002880 73 67 25 3c 3c 31 36 84 66 67 25 3c 3c 32 34 84 |sg%<<16.fg%<<24.| 00002890 62 67 25 3c 3c 32 38 0d 0e 42 14 e7 62 6c 6f 63 |bg%<<28..B..bloc| 000028a0 6b 25 21 32 30 80 26 31 30 30 8c 0d 0e 4c 18 6a |k%!20.&100...L.j| 000028b0 25 3d a7 64 61 74 61 24 2c 22 3b 22 29 3a 62 25 |%=.data$,";"):b%| 000028c0 3d 2d 31 0d 0e 56 08 e7 6a 25 8c 0d 0e 60 13 62 |=-1..V..j%...`.b| 000028d0 24 3d c1 64 61 74 61 24 2c 6a 25 2b 31 29 0d 0e |$=.data$,j%+1)..| 000028e0 6a 1f 69 25 3d a7 62 24 2c 22 2c 22 29 3a 62 25 |j.i%=.b$,","):b%| 000028f0 3d a0 c1 62 24 2c 31 2c 69 25 2d 31 29 0d 0e 74 |=..b$,1,i%-1)..t| 00002900 11 24 62 25 3d c1 62 24 2c 69 25 2b 31 29 0d 0e |.$b%=.b$,i%+1)..| 00002910 7e 05 cd 0d 0e 88 2a 69 25 3d a7 64 61 74 61 24 |~.....*i%=.data$| 00002920 2c 22 2c 22 29 3a 62 6c 6f 63 6b 25 21 32 34 3d |,","):block%!24=| 00002930 a0 c0 64 61 74 61 24 2c 69 25 2d 31 29 0d 0e 92 |..data$,i%-1)...| 00002940 28 62 6c 6f 63 6b 25 21 32 38 3d 62 25 3a 62 6c |(block%!28=b%:bl| 00002950 6f 63 6b 25 21 33 32 3d a0 c1 64 61 74 61 24 2c |ock%!32=..data$,| 00002960 69 25 2b 31 29 0d 0e 9c 08 e7 6a 25 8c 0d 0e a6 |i%+1).....j%....| 00002970 15 69 25 3d a7 64 61 74 61 24 2c 22 2c 22 2c 6a |.i%=.data$,",",j| 00002980 25 29 0d 0e b0 1b 62 6c 6f 63 6b 25 21 32 38 3d |%)....block%!28=| 00002990 a0 c1 64 61 74 61 24 2c 69 25 2d 31 29 0d 0e ba |..data$,i%-1)...| 000029a0 05 cc 0d 0e c4 10 62 6c 6f 63 6b 25 21 32 38 3d |......block%!28=| 000029b0 2d 31 0d 0e ce 05 cd 0d 0e d8 05 cc 0d 0e e2 1b |-1..............| 000029c0 24 28 62 6c 6f 63 6b 25 2b 32 34 29 3d c0 64 61 |$(block%+24)=.da| 000029d0 74 61 24 2c 31 31 29 0d 0e ec 05 cd 0d 0e f6 20 |ta$,11)........ | 000029e0 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 49 63 |.."Wimp_CreateIc| 000029f0 6f 6e 22 2c 30 2c 62 6c 6f 63 6b 25 0d 0f 00 05 |on",0,block%....| 00002a00 e1 0d 0f 0a 05 3a 0d 0f 14 26 2a 2a 2a 2a 2a 2a |.....:...&******| 00002a10 2a 2a 2a 2a 20 44 69 61 6c 6f 67 20 62 6f 78 65 |**** Dialog boxe| 00002a20 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0f 1e 05 |s **********....| 00002a30 3a 0d 0f 28 33 dd a4 63 72 65 61 74 65 64 69 61 |:..(3..createdia| 00002a40 6c 6f 67 28 63 6f 6c 25 2c 70 6f 73 25 2c 66 6c |log(col%,pos%,fl| 00002a50 61 67 25 2c 74 69 74 6c 65 24 2c f8 20 63 6c 61 |ag%,title$,. cla| 00002a60 69 6d 24 29 0d 0f 32 47 ea 6e 69 63 6f 6e 73 25 |im$)..2G.nicons%| 00002a70 2c 77 69 64 74 68 25 2c 68 65 69 67 68 74 25 2c |,width%,height%,| 00002a80 78 25 2c 79 25 2c 69 25 2c 68 25 2c 62 78 25 2c |x%,y%,i%,h%,bx%,| 00002a90 62 79 25 2c 74 78 25 2c 74 79 25 2c 62 67 25 2c |by%,tx%,ty%,bg%,| 00002aa0 66 67 25 2c 66 6c 67 25 2c 69 24 0d 0f 3c 1a c8 |fg%,flg%,i$..<..| 00002ab0 97 6d 6f 75 73 65 78 25 2c 6d 6f 75 73 65 79 25 |.mousex%,mousey%| 00002ac0 2c 62 75 74 25 0d 0f 46 22 f3 63 6c 61 69 6d 24 |,but%..F".claim$| 00002ad0 2c 6e 69 63 6f 6e 73 25 2c 77 69 64 74 68 24 2c |,nicons%,width$,| 00002ae0 68 65 69 67 68 74 25 0d 0f 50 1e 77 69 64 74 68 |height%..P.width| 00002af0 25 3d a0 77 69 64 74 68 24 3a 68 65 69 67 68 74 |%=.width$:height| 00002b00 25 2b 3d 34 30 0d 0f 5a 28 78 25 3d 6d 6f 75 73 |%+=40..Z(x%=mous| 00002b10 65 78 25 3a e7 78 25 2b 77 69 64 74 68 25 3e 31 |ex%:.x%+width%>1| 00002b20 32 38 30 78 25 2d 3d 77 69 64 74 68 25 0d 0f 64 |280x%-=width%..d| 00002b30 20 79 25 3d 6d 6f 75 73 65 79 25 2d 68 65 69 67 | y%=mousey%-heig| 00002b40 68 74 25 3a e7 79 25 3c 30 79 25 3d 30 0d 0f 6e |ht%:.y%<0y%=0..n| 00002b50 65 68 25 3d a4 63 72 65 61 74 65 77 69 6e 64 6f |eh%=.createwindo| 00002b60 77 28 74 69 74 6c 65 24 2c 26 39 33 2c 66 6c 61 |w(title$,&93,fla| 00002b70 67 25 2c 63 6f 6c 25 2c 77 69 64 74 68 25 2c 68 |g%,col%,width%,h| 00002b80 65 69 67 68 74 25 2c 78 25 2c 79 25 2c 78 25 2b |eight%,x%,y%,x%+| 00002b90 77 69 64 74 68 25 2c 79 25 2b 68 65 69 67 68 74 |width%,y%+height| 00002ba0 25 2c 30 2c 26 33 30 30 30 2c 2d 31 2c 70 6f 73 |%,0,&3000,-1,pos| 00002bb0 25 29 0d 0f 78 28 f2 69 63 6f 6e 73 28 68 25 29 |%)..x(.icons(h%)| 00002bc0 3a f2 6f 70 65 6e 77 69 6e 64 6f 77 28 68 25 2c |:.openwindow(h%,| 00002bd0 62 6c 6f 63 6b 25 2c 2d 31 29 0d 0f 82 07 3d 68 |block%,-1)....=h| 00002be0 25 0d 0f 8c 05 3a 0d 0f 96 24 dd f2 63 6c 69 63 |%....:...$..clic| 00002bf0 6b 64 69 61 6c 6f 67 28 f8 20 64 68 25 2c f8 20 |kdialog(. dh%,. | 00002c00 63 6c 24 2c 69 63 6f 6e 25 29 0d 0f a0 15 e7 63 |cl$,icon%).....c| 00002c10 6c 24 3d 22 22 84 69 63 6f 6e 25 3d 2d 31 e1 0d |l$="".icon%=-1..| 00002c20 0f aa 26 e7 a0 28 22 46 4e 63 6c 69 63 6b 64 69 |..&..("FNclickdi| 00002c30 61 6c 6f 67 22 2b 63 6c 24 2b 22 28 69 63 6f 6e |alog"+cl$+"(icon| 00002c40 25 29 22 29 8c 0d 0f b4 22 f2 63 6c 6f 73 65 77 |%)")....".closew| 00002c50 69 6e 64 6f 77 28 64 68 25 29 3a 64 68 25 3d 30 |indow(dh%):dh%=0| 00002c60 3a 63 6c 24 3d 22 22 0d 0f be 05 cd 0d 0f c8 05 |:cl$="".........| 00002c70 e1 0d 0f d2 05 3a 0d 0f dc 22 dd a4 67 72 65 61 |.....:..."..grea| 00002c80 74 65 72 28 61 25 2c 62 25 29 3a e7 61 25 3c 62 |ter(a%,b%):.a%<b| 00002c90 25 3d 62 25 8b 3d 61 25 0d 0f e6 05 3a 0d 0f f0 |%=b%.=a%....:...| 00002ca0 1c dd a4 77 68 69 63 68 28 6a 25 29 3a 3d 28 6a |...which(j%):=(j| 00002cb0 25 2d 31 37 36 30 29 81 38 0d 0f fa 05 3a 0d 10 |%-1760).8....:..| 00002cc0 04 25 dd a4 61 6c 65 72 74 28 6d 24 2c 69 63 25 |.%..alert(m$,ic%| 00002cd0 2c 65 72 72 25 29 3a 21 62 6c 6f 63 6b 25 3d 65 |,err%):!block%=e| 00002ce0 72 72 25 0d 10 0e 15 24 28 62 6c 6f 63 6b 25 2b |rr%....$(block%+| 00002cf0 34 29 3d 6d 24 2b bd 30 0d 10 18 2f c8 99 22 57 |4)=m$+.0.../.."W| 00002d00 69 6d 70 5f 52 65 70 6f 72 74 45 72 72 6f 72 22 |imp_ReportError"| 00002d10 2c 62 6c 6f 63 6b 25 2c 69 63 25 2c 22 21 44 7a |,block%,ic%,"!Dz| 00002d20 61 70 22 b8 2c 72 25 0d 10 22 07 3d 72 25 0d 10 |ap".,r%..".=r%..| 00002d30 2c 05 3a 0d 10 36 11 dd f2 65 72 72 6f 72 3a c8 |,.:..6...error:.| 00002d40 8e 9f 20 ca 0d 10 40 10 c9 36 37 37 34 35 3a 69 |.. ...@..67745:i| 00002d50 63 25 3d 33 0d 10 4a 36 72 65 70 6f 72 74 24 3d |c%=3..J6report$=| 00002d60 22 50 6c 65 61 73 65 20 63 68 65 63 6b 20 74 68 |"Please check th| 00002d70 61 74 20 61 20 64 69 73 6b 20 69 73 20 69 6e 20 |at a disk is in | 00002d80 74 68 65 20 64 72 69 76 65 22 0d 10 54 05 7f 0d |the drive"..T...| 00002d90 10 5e 23 72 65 70 6f 72 74 24 3d f6 24 2b 22 20 |.^#report$=.$+" | 00002da0 61 74 20 6c 69 6e 65 20 22 2b c3 9e 3a 69 63 25 |at line "+..:ic%| 00002db0 3d 32 0d 10 68 05 cb 0d 10 72 1c 72 25 3d a4 61 |=2..h....r.r%=.a| 00002dc0 6c 65 72 74 28 72 65 70 6f 72 74 24 2c 69 63 25 |lert(report$,ic%| 00002dd0 2c 9f 29 0d 10 7c 09 e7 a6 2d 32 8c 0d 10 86 13 |,.)..|...-2.....| 00002de0 40 25 3d 66 6f 72 6d 61 74 25 3a ef 33 2c 34 0d |@%=format%:.3,4.| 00002df0 10 90 16 c8 99 22 57 69 6d 70 5f 43 6c 6f 73 65 |....."Wimp_Close| 00002e00 44 6f 77 6e 22 0d 10 9a 08 2a 46 58 34 0d 10 a4 |Down"....*FX4...| 00002e10 0c 2a 46 58 32 32 35 20 31 0d 10 ae 19 ff 28 22 |.*FX225 1.....("| 00002e20 4b 45 59 39 45 44 49 54 22 2b c3 9e 2b 22 7c 4d |KEY9EDIT"+..+"|M| 00002e30 22 29 0d 10 b8 05 e0 0d 10 c2 05 cd 0d 10 cc 05 |")..............| 00002e40 e1 0d 10 d6 05 3a 0d 10 e0 31 2a 2a 2a 2a 2a 2a |.....:...1******| 00002e50 2a 2a 2a 2a 20 49 6e 69 74 69 61 6c 69 73 61 74 |**** Initialisat| 00002e60 69 6f 6e 20 72 6f 75 74 69 6e 65 73 20 2a 2a 2a |ion routines ***| 00002e70 2a 2a 2a 2a 2a 2a 2a 0d 10 ea 05 3a 0d 10 f4 0e |*******....:....| 00002e80 dd f2 77 69 6d 70 69 6e 69 74 0d 10 fe 3d de 6d |..wimpinit...=.m| 00002e90 61 69 6e 62 6c 6f 63 6b 25 32 33 30 30 2c 74 65 |ainblock%2300,te| 00002ea0 78 74 62 6c 6f 63 6b 25 31 30 30 30 2c 69 6e 69 |xtblock%1000,ini| 00002eb0 74 62 6c 6f 63 6b 25 31 30 30 30 2c 69 74 62 6c |tblock%1000,itbl| 00002ec0 6f 63 6b 25 35 30 30 0d 11 08 1c de 62 6c 6f 63 |ock%500.....bloc| 00002ed0 6b 25 26 31 30 30 30 2c 70 6f 6c 6c 25 33 32 2b |k%&1000,poll%32+| 00002ee0 32 35 36 0d 11 12 14 de 6d 65 73 73 25 33 30 2c |256.....mess%30,| 00002ef0 64 61 74 65 25 31 30 0d 11 1c 0f de 77 74 69 74 |date%10.....wtit| 00002f00 6c 65 31 25 33 30 0d 11 26 12 24 62 6c 6f 63 6b |le1%30..&.$block| 00002f10 25 3d 22 54 41 53 4b 22 0d 11 30 3b c8 99 22 57 |%="TASK"..0;.."W| 00002f20 69 6d 70 5f 49 6e 69 74 69 61 6c 69 73 65 22 2c |imp_Initialise",| 00002f30 32 30 30 2c 21 62 6c 6f 63 6b 25 2c 22 44 7a 61 |200,!block%,"Dza| 00002f40 70 22 b8 76 65 72 73 69 6f 6e 25 2c 6d 79 74 61 |p".version%,myta| 00002f50 73 6b 25 0d 11 3a 31 21 62 6c 6f 63 6b 25 3d 2d |sk%..:1!block%=-| 00002f60 31 3a 62 6c 6f 63 6b 25 21 34 3d 30 3a 62 6c 6f |1:block%!4=0:blo| 00002f70 63 6b 25 21 38 3d 30 3a 62 6c 6f 63 6b 25 21 31 |ck%!8=0:block%!1| 00002f80 32 3d 36 39 0d 11 44 35 62 6c 6f 63 6b 25 21 31 |2=69..D5block%!1| 00002f90 36 3d 36 38 3a 62 6c 6f 63 6b 25 21 32 30 3d 26 |6=68:block%!20=&| 00002fa0 33 30 30 32 3a 24 28 62 6c 6f 63 6b 25 2b 32 34 |3002:$(block%+24| 00002fb0 29 3d 22 21 44 7a 61 70 22 0d 11 4e 23 c8 99 22 |)="!Dzap"..N#.."| 00002fc0 57 69 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e 22 |Wimp_CreateIcon"| 00002fd0 2c 2c 62 6c 6f 63 6b 25 b8 69 63 25 0d 11 58 0d |,,block%.ic%..X.| 00002fe0 64 69 61 6c 6f 67 25 3d 30 0d 11 62 1e 6f 70 65 |dialog%=0..b.ope| 00002ff0 6e 25 3d 30 3a 64 69 73 70 6c 61 79 25 3d 30 3a |n%=0:display%=0:| 00003000 66 69 6e 64 25 3d 30 0d 11 6c 26 66 69 6e 64 31 |find%=0..l&find1| 00003010 25 3d 30 3a 73 61 76 65 25 3d 30 3a 73 61 76 65 |%=0:save%=0:save| 00003020 31 25 3d 30 3a 73 61 76 65 32 25 3d 30 0d 11 76 |1%=0:save2%=0..v| 00003030 23 63 61 74 25 3d 30 3a 63 61 74 31 25 3d 30 3a |#cat%=0:cat1%=0:| 00003040 63 6f 6d 70 25 3d 30 3a 63 6f 6d 70 31 25 3d 30 |comp%=0:comp1%=0| 00003050 0d 11 80 0d 73 61 76 65 32 24 3d 22 22 0d 11 8a |....save2$=""...| 00003060 0f f2 6d 65 6e 75 69 6e 69 74 3a e1 0d 11 94 05 |..menuinit:.....| 00003070 3a 0d 11 9e 2a dd f2 6d 65 6e 75 69 6e 69 74 3a |:...*..menuinit:| 00003080 c8 99 22 4f 53 5f 42 79 74 65 22 2c 31 36 31 2c |.."OS_Byte",161,| 00003090 31 33 35 b8 2c 2c 64 69 73 63 25 0d 11 a8 19 e7 |135.,,disc%.....| 000030a0 64 69 73 63 25 3e 31 63 24 3d 22 2e 22 8b 63 24 |disc%>1c$=".".c$| 000030b0 3d 22 a4 22 0d 11 b2 52 69 6e 66 6f 25 3d a4 63 |="."...Rinfo%=.c| 000030c0 72 65 61 74 65 77 69 6e 64 6f 77 28 22 41 62 6f |reatewindow("Abo| 000030d0 75 74 20 74 68 69 73 20 70 72 6f 67 72 61 6d 22 |ut this program"| 000030e0 2c 26 38 33 2c 30 2c 31 2c 36 30 30 2c 32 31 36 |,&83,0,1,600,216| 000030f0 2c 30 2c 30 2c 36 30 30 2c 32 31 36 2c 30 2c 30 |,0,0,600,216,0,0| 00003100 2c 2d 31 2c 30 29 0d 11 bc 29 f7 8d 54 60 52 3a |,-1,0)...)..T`R:| 00003110 f3 73 61 76 65 73 65 63 24 2c 6e 69 63 6f 6e 73 |.savesec$,nicons| 00003120 25 2c 78 73 69 7a 65 25 2c 79 73 69 7a 65 25 0d |%,xsize%,ysize%.| 00003130 11 c6 6a 73 61 76 65 73 65 63 25 3d a4 63 72 65 |..jsavesec%=.cre| 00003140 61 74 65 77 69 6e 64 6f 77 28 22 53 61 76 65 3a |atewindow("Save:| 00003150 22 2c 26 38 36 30 31 30 30 31 32 2c 30 2c 31 2c |",&86010012,0,1,| 00003160 78 73 69 7a 65 25 2c 79 73 69 7a 65 25 2b 34 30 |xsize%,ysize%+40| 00003170 2c 30 2c 30 2c 78 73 69 7a 65 25 2c 79 73 69 7a |,0,0,xsize%,ysiz| 00003180 65 25 2b 34 30 2c 6e 69 63 6f 6e 73 25 2c 26 33 |e%+40,nicons%,&3| 00003190 30 30 30 2c 2d 31 2c 31 29 0d 11 d0 26 69 6d 65 |000,-1,1)...&ime| 000031a0 6e 75 24 3d 22 33 44 7a 61 70 7c 3c 69 6e 66 6f |nu$="3Dzap|<info| 000031b0 25 3e 2e 49 6e 66 6f 7c 2e 51 75 69 74 7c 22 0d |%>.Info|.Quit|".| 000031c0 11 da 2e 6a 25 3d a4 63 72 65 61 74 65 6d 65 6e |...j%=.createmen| 000031d0 75 28 69 6e 69 74 62 6c 6f 63 6b 25 2c 69 6d 65 |u(initblock%,ime| 000031e0 6e 75 24 2c 69 74 62 6c 6f 63 6b 25 29 0d 11 e4 |nu$,itblock%)...| 000031f0 63 6d 61 69 6e 24 3d 22 35 44 7a 61 70 7c 2e 46 |cmain$="5Dzap|.F| 00003200 69 6e 64 20 73 74 72 69 6e 67 7c 2e 53 61 76 65 |ind string|.Save| 00003210 20 73 65 63 74 6f 72 73 7c 2e 43 61 74 20 69 6e | sectors|.Cat in| 00003220 66 6f 7c 22 2b 63 24 2b 22 3a 43 6f 6d 70 61 72 |fo|"+c$+":Compar| 00003230 65 20 64 69 73 6b 73 7c 3c 73 61 76 65 73 65 63 |e disks|<savesec| 00003240 25 3e a4 53 61 76 65 20 73 65 63 74 6f 72 7c 22 |%>.Save sector|"| 00003250 0d 11 ee 2f 6a 25 3d a4 63 72 65 61 74 65 6d 65 |.../j%=.createme| 00003260 6e 75 28 6d 61 69 6e 62 6c 6f 63 6b 25 2c 6d 61 |nu(mainblock%,ma| 00003270 69 6e 24 2c 74 65 78 74 62 6c 6f 63 6b 25 29 0d |in$,textblock%).| 00003280 11 f8 05 e1 0d 12 02 05 3a 0d 12 0c 2e 2a 2a 2a |........:....***| 00003290 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000032b0 2a 2a 2a 2a 2a 2a 2a 0d 12 16 05 3a 0d 12 20 15 |*******....:.. .| 000032c0 dc 73 61 76 65 73 65 63 2c 32 2c 34 32 30 2c 38 |.savesec,2,420,8| 000032d0 34 0d 12 2a 1e dc 32 30 2c 32 30 2c 31 38 30 2c |4..*..20,20,180,| 000032e0 36 34 2c 30 2c 37 2c 26 33 30 33 44 2c 4f 4b 0d |64,0,7,&303D,OK.| 000032f0 12 34 24 dc 32 32 30 2c 32 30 2c 34 30 30 2c 36 |.4$.220,20,400,6| 00003300 34 2c 31 32 2c 37 2c 26 33 30 33 44 2c 43 61 6e |4,12,7,&303D,Can| 00003310 63 65 6c 0d 12 3e 05 3a 0d 12 48 17 dc 73 61 76 |cel..>.:..H..sav| 00003320 65 66 69 6c 65 2c 33 2c 32 31 32 2c 31 34 30 0d |efile,3,212,140.| 00003330 12 52 26 dc 32 30 2c 32 30 2c 31 34 38 2c 36 34 |.R&.20,20,148,64| 00003340 2c 30 2c 37 2c 26 46 31 33 44 2c 22 66 69 6c 65 |,0,7,&F13D,"file| 00003350 25 2c 33 30 22 0d 12 5c 21 dc 31 35 32 2c 32 30 |%,30"..\!.152,20| 00003360 2c 31 39 32 2c 36 34 2c 31 32 2c 37 2c 26 31 39 |,192,64,12,7,&19| 00003370 30 33 44 2c 4f 4b 0d 12 66 25 dc 37 30 2c 37 34 |03D,OK..f%.70,74| 00003380 2c 31 33 38 2c 31 34 32 2c 30 2c 37 2c 26 36 30 |,138,142,0,7,&60| 00003390 33 41 2c 66 69 6c 65 5f 66 66 64 0d 12 70 05 3a |3A,file_ffd..p.:| 000033a0 0d 12 7a 14 dc 6f 70 65 6e 2c 31 37 2c 38 30 32 |..z..open,17,802| 000033b0 2c 31 34 38 0d 12 84 1e dc 32 30 2c 32 30 2c 36 |,148.....20,20,6| 000033c0 34 2c 36 34 2c 30 2c 37 2c 26 32 30 33 44 2c 22 |4,64,0,7,&203D,"| 000033d0 8b 22 0d 12 8e 23 dc 37 34 2c 32 30 2c 31 32 38 |."...#.74,20,128| 000033e0 2c 36 34 2c 31 2c 37 2c 26 33 31 33 44 2c 22 64 |,64,1,7,&313D,"d| 000033f0 73 25 2c 33 22 0d 12 98 20 dc 31 33 38 2c 32 30 |s%,3"... .138,20| 00003400 2c 31 38 32 2c 36 34 2c 30 2c 37 2c 26 32 30 33 |,182,64,0,7,&203| 00003410 44 2c 22 8a 22 0d 12 a2 20 dc 32 30 32 2c 32 30 |D,"."... .202,20| 00003420 2c 32 34 36 2c 36 34 2c 30 2c 37 2c 26 32 30 33 |,246,64,0,7,&203| 00003430 44 2c 22 8b 22 0d 12 ac 24 dc 32 35 36 2c 32 30 |D,"."...$.256,20| 00003440 2c 33 31 30 2c 36 34 2c 31 2c 37 2c 26 33 31 33 |,310,64,1,7,&313| 00003450 44 2c 22 74 72 25 2c 33 22 0d 12 b6 20 dc 33 32 |D,"tr%,3"... .32| 00003460 30 2c 32 30 2c 33 36 34 2c 36 34 2c 30 2c 37 2c |0,20,364,64,0,7,| 00003470 26 32 30 33 44 2c 22 8a 22 0d 12 c0 20 dc 33 38 |&203D,"."... .38| 00003480 34 2c 32 30 2c 34 32 38 2c 36 34 2c 30 2c 37 2c |4,20,428,64,0,7,| 00003490 26 32 30 33 44 2c 22 8b 22 0d 12 ca 24 dc 34 33 |&203D,"."...$.43| 000034a0 38 2c 32 30 2c 34 39 32 2c 36 34 2c 31 2c 37 2c |8,20,492,64,1,7,| 000034b0 26 33 31 33 44 2c 22 68 64 25 2c 33 22 0d 12 d4 |&313D,"hd%,3"...| 000034c0 20 dc 35 30 32 2c 32 30 2c 35 34 36 2c 36 34 2c | .502,20,546,64,| 000034d0 30 2c 37 2c 26 32 30 33 44 2c 22 8a 22 0d 12 de |0,7,&203D,"."...| 000034e0 20 dc 35 36 36 2c 32 30 2c 36 31 30 2c 36 34 2c | .566,20,610,64,| 000034f0 30 2c 37 2c 26 32 30 33 44 2c 22 8b 22 0d 12 e8 |0,7,&203D,"."...| 00003500 24 dc 36 32 30 2c 32 30 2c 36 36 34 2c 36 34 2c |$.620,20,664,64,| 00003510 31 2c 37 2c 26 33 31 33 44 2c 22 73 63 25 2c 33 |1,7,&313D,"sc%,3| 00003520 22 0d 12 f2 20 dc 36 37 34 2c 32 30 2c 37 31 38 |"... .674,20,718| 00003530 2c 36 34 2c 30 2c 37 2c 26 32 30 33 44 2c 22 8a |,64,0,7,&203D,".| 00003540 22 0d 12 fc 20 dc 32 30 2c 38 34 2c 31 38 32 2c |"... .20,84,182,| 00003550 31 32 38 2c 31 2c 37 2c 26 31 39 2c 44 72 69 76 |128,1,7,&19,Driv| 00003560 65 0d 13 06 21 dc 32 30 32 2c 38 34 2c 33 36 34 |e...!.202,84,364| 00003570 2c 31 32 38 2c 31 2c 37 2c 26 31 39 2c 54 72 61 |,128,1,7,&19,Tra| 00003580 63 6b 0d 13 10 20 dc 33 38 34 2c 38 34 2c 35 34 |ck... .384,84,54| 00003590 36 2c 31 32 38 2c 31 2c 37 2c 26 31 39 2c 48 65 |6,128,1,7,&19,He| 000035a0 61 64 0d 13 1a 22 dc 35 36 36 2c 38 34 2c 37 31 |ad...".566,84,71| 000035b0 38 2c 31 32 38 2c 31 2c 37 2c 26 31 39 2c 53 65 |8,128,1,7,&19,Se| 000035c0 63 74 6f 72 0d 13 24 21 dc 37 33 38 2c 32 30 2c |ctor..$!.738,20,| 000035d0 37 38 32 2c 31 32 38 2c 31 32 2c 37 2c 26 33 30 |782,128,12,7,&30| 000035e0 33 44 2c 4f 4b 0d 13 2e 05 3a 0d 13 38 13 dc 66 |3D,OK....:..8..f| 000035f0 69 6e 64 2c 35 2c 34 32 30 2c 32 31 32 0d 13 42 |ind,5,420,212..B| 00003600 1f dc 32 30 2c 32 30 2c 31 38 30 2c 36 34 2c 31 |..20,20,180,64,1| 00003610 32 2c 37 2c 26 33 30 33 44 2c 4f 4b 0d 13 4c 23 |2,7,&303D,OK..L#| 00003620 dc 32 32 30 2c 32 30 2c 34 30 30 2c 36 34 2c 30 |.220,20,400,64,0| 00003630 2c 37 2c 26 33 30 33 44 2c 43 61 6e 63 65 6c 0d |,7,&303D,Cancel.| 00003640 13 56 29 dc 32 30 2c 38 34 2c 33 32 34 2c 31 32 |.V).20,84,324,12| 00003650 38 2c 30 2c 37 2c 26 31 31 39 2c 22 66 69 6e 64 |8,0,7,&119,"find| 00003660 73 74 72 25 2c 32 30 22 0d 13 60 27 dc 32 30 2c |str%,20"..`'.20,| 00003670 31 34 38 2c 31 39 36 2c 31 39 32 2c 30 2c 37 2c |148,196,192,0,7,| 00003680 26 31 39 2c 46 69 6e 64 20 73 74 72 69 6e 67 0d |&19,Find string.| 00003690 13 6a 2a dc 32 30 36 2c 31 34 38 2c 34 30 30 2c |.j*.206,148,400,| 000036a0 31 39 32 2c 30 2c 37 2c 26 46 31 33 44 2c 22 66 |192,0,7,&F13D,"f| 000036b0 6f 75 6e 64 25 2c 31 30 22 0d 13 74 05 3a 0d 13 |ound%,10"..t.:..| 000036c0 7e 14 dc 66 6f 75 6e 64 2c 34 2c 34 32 30 2c 31 |~..found,4,420,1| 000036d0 32 38 0d 13 88 25 dc 32 30 2c 32 30 2c 31 38 30 |28...%.20,20,180| 000036e0 2c 36 34 2c 31 32 2c 37 2c 26 32 30 33 44 2c 43 |,64,12,7,&203D,C| 000036f0 6f 6e 74 69 6e 75 65 0d 13 92 23 dc 32 32 30 2c |ontinue...#.220,| 00003700 32 30 2c 34 30 30 2c 36 34 2c 30 2c 37 2c 26 33 |20,400,64,0,7,&3| 00003710 30 33 44 2c 43 61 6e 63 65 6c 0d 13 9c 23 dc 32 |03D,Cancel...#.2| 00003720 30 2c 38 34 2c 31 34 32 2c 31 32 38 2c 30 2c 37 |0,84,142,128,0,7| 00003730 2c 26 31 39 2c 61 74 20 62 79 74 65 3a 0d 13 a6 |,&19,at byte:...| 00003740 2b dc 32 32 30 2c 38 34 2c 33 34 30 2c 31 32 38 |+.220,84,340,128| 00003750 2c 30 2c 37 2c 26 33 31 33 44 2c 22 66 6f 75 6e |,0,7,&313D,"foun| 00003760 64 25 2b 32 30 2c 36 22 0d 13 b0 05 3a 0d 13 ba |d%+20,6"....:...| 00003770 27 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 53 74 61 72 |'********** Star| 00003780 74 20 70 72 6f 67 72 61 6d 20 2a 2a 2a 2a 2a 2a |t program ******| 00003790 2a 2a 2a 2a 0d 13 c4 05 3a 0d 13 ce 10 dd f2 6f |****....:......o| 000037a0 70 65 6e 3a f7 8d 44 7a 52 0d 13 d8 21 f3 6f 70 |pen:..DzR...!.op| 000037b0 65 6e 24 2c 6e 69 63 6f 6e 73 25 2c 77 69 64 74 |en$,nicons%,widt| 000037c0 68 25 2c 68 65 69 67 68 74 25 0d 13 e2 64 6f 70 |h%,height%...dop| 000037d0 65 6e 25 3d a4 63 72 65 61 74 65 77 69 6e 64 6f |en%=.createwindo| 000037e0 77 28 22 44 69 73 6b 20 65 64 69 74 22 2c 26 42 |w("Disk edit",&B| 000037f0 33 2c 37 2c 31 34 2c 77 69 64 74 68 25 2c 68 65 |3,7,14,width%,he| 00003800 69 67 68 74 25 2c 32 30 30 2c 32 30 30 2c 32 30 |ight%,200,200,20| 00003810 30 2b 77 69 64 74 68 25 2c 32 30 30 2b 68 65 69 |0+width%,200+hei| 00003820 67 68 74 25 2c 30 2c 30 2c 2d 31 2c 30 29 0d 13 |ght%,0,0,-1,0)..| 00003830 ec 11 f2 69 63 6f 6e 73 28 6f 70 65 6e 25 29 0d |...icons(open%).| 00003840 13 f6 20 f2 6f 70 65 6e 77 69 6e 64 6f 77 28 6f |.. .openwindow(o| 00003850 70 65 6e 25 2c 62 6c 6f 63 6b 25 2c 2d 31 29 0d |pen%,block%,-1).| 00003860 14 00 05 e1 0d 14 0a 05 3a 0d 14 14 1c dd a4 63 |........:......c| 00003870 6c 69 63 6b 64 69 61 6c 6f 67 6f 70 65 6e 28 69 |lickdialogopen(i| 00003880 63 6f 6e 25 29 0d 14 1e 37 64 72 69 76 65 25 3d |con%)...7drive%=| 00003890 bb 24 64 73 25 3a 74 72 61 63 6b 25 3d bb 24 74 |.$ds%:track%=.$t| 000038a0 72 25 3a 68 65 61 64 25 3d bb 24 68 64 25 3a 73 |r%:head%=.$hd%:s| 000038b0 65 63 74 6f 72 25 3d bb 24 73 63 25 0d 14 28 16 |ector%=.$sc%..(.| 000038c0 f2 67 65 74 61 64 64 72 65 73 73 28 69 63 6f 6e |.getaddress(icon| 000038d0 25 29 0d 14 32 0c c8 8e 69 63 6f 6e 25 ca 0d 14 |%)..2...icon%...| 000038e0 3c 33 c9 31 36 3a 74 64 25 3d 64 72 69 76 65 25 |<3.16:td%=drive%| 000038f0 3a 74 74 25 3d 74 72 61 63 6b 25 3a 74 68 25 3d |:tt%=track%:th%=| 00003900 68 65 61 64 25 3a 74 73 25 3d 73 65 63 74 6f 72 |head%:ts%=sector| 00003910 25 0d 14 46 10 e7 64 69 73 70 6c 61 79 25 3d 30 |%..F..display%=0| 00003920 8c 0d 14 50 51 64 69 73 70 6c 61 79 25 3d a4 63 |...PQdisplay%=.c| 00003930 72 65 61 74 65 77 69 6e 64 6f 77 28 22 53 65 63 |reatewindow("Sec| 00003940 74 6f 72 22 2c 26 46 2c 37 2c 30 2c 31 32 34 30 |tor",&F,7,0,1240| 00003950 2c 32 30 34 38 2c 30 2c 31 38 32 2c 31 32 34 30 |,2048,0,182,1240| 00003960 2c 38 33 35 2c 30 2c 26 33 30 30 30 2c 2d 32 2c |,835,0,&3000,-2,| 00003970 30 29 0d 14 5a 36 f2 6f 70 65 6e 77 69 6e 64 6f |0)..Z6.openwindo| 00003980 77 28 64 69 73 70 6c 61 79 25 2c 62 6c 6f 63 6b |w(display%,block| 00003990 25 2c 6f 70 65 6e 25 29 3a 64 69 73 70 24 3d 22 |%,open%):disp$="| 000039a0 64 69 73 70 6c 61 79 22 0d 14 64 0c f2 64 69 73 |display"..d..dis| 000039b0 70 6c 61 79 0d 14 6e 63 6d 61 69 6e 24 3d 22 35 |play..ncmain$="5| 000039c0 44 7a 61 70 7c 2e 46 69 6e 64 20 73 74 72 69 6e |Dzap|.Find strin| 000039d0 67 7c 2e 53 61 76 65 20 73 65 63 74 6f 72 73 7c |g|.Save sectors|| 000039e0 2e 43 61 74 20 69 6e 66 6f 7c 22 2b 63 24 2b 22 |.Cat info|"+c$+"| 000039f0 3a 43 6f 6d 70 61 72 65 20 64 69 73 6b 73 7c 3c |:Compare disks|<| 00003a00 73 61 76 65 73 65 63 25 3e 2e 53 61 76 65 20 73 |savesec%>.Save s| 00003a10 65 63 74 6f 72 7c 22 0d 14 78 2f 6a 25 3d a4 63 |ector|"..x/j%=.c| 00003a20 72 65 61 74 65 6d 65 6e 75 28 6d 61 69 6e 62 6c |reatemenu(mainbl| 00003a30 6f 63 6b 25 2c 6d 61 69 6e 24 2c 74 65 78 74 62 |ock%,main$,textb| 00003a40 6c 6f 63 6b 25 29 0d 14 82 05 cc 0d 14 8c 0c f2 |lock%)..........| 00003a50 64 69 73 70 6c 61 79 0d 14 96 3f e7 64 69 73 70 |display...?.disp| 00003a60 24 3d 22 22 64 69 73 70 24 3d 22 64 69 73 70 6c |$=""disp$="displ| 00003a70 61 79 22 3a f2 6f 70 65 6e 77 69 6e 64 6f 77 28 |ay":.openwindow(| 00003a80 64 69 73 70 6c 61 79 25 2c 62 6c 6f 63 6b 25 2c |display%,block%,| 00003a90 6f 70 65 6e 25 29 0d 14 a0 1b f2 72 65 64 72 61 |open%).....redra| 00003aa0 77 77 69 6e 64 6f 77 28 64 69 73 70 6c 61 79 25 |wwindow(display%| 00003ab0 29 0d 14 aa 05 cd 0d 14 b4 05 cb 0d 14 be 37 24 |).............7$| 00003ac0 64 73 25 3d c3 64 72 69 76 65 25 3a 24 74 72 25 |ds%=.drive%:$tr%| 00003ad0 3d c3 74 72 61 63 6b 25 3a 24 68 64 25 3d c3 68 |=.track%:$hd%=.h| 00003ae0 65 61 64 25 3a 24 73 63 25 3d c3 73 65 63 74 6f |ead%:$sc%=.secto| 00003af0 72 25 0d 14 c8 18 f2 72 65 64 72 61 77 77 69 6e |r%.....redrawwin| 00003b00 64 6f 77 28 6f 70 65 6e 25 29 0d 14 d2 06 3d a3 |dow(open%)....=.| 00003b10 0d 14 dc 05 3a 0d 14 e6 17 dd f2 67 65 74 61 64 |....:......getad| 00003b20 64 72 65 73 73 28 69 63 6f 6e 25 29 0d 14 f0 0c |dress(icon%)....| 00003b30 c8 8e 69 63 6f 6e 25 ca 0d 14 fa 1e c9 30 3a 64 |..icon%......0:d| 00003b40 72 69 76 65 25 3d 28 64 72 69 76 65 25 2b 31 29 |rive%=(drive%+1)| 00003b50 83 64 69 73 63 25 0d 15 04 26 c9 32 3a 64 72 69 |.disc%...&.2:dri| 00003b60 76 65 25 2d 3d 31 3a e7 64 72 69 76 65 25 3c 30 |ve%-=1:.drive%<0| 00003b70 64 72 69 76 65 25 3d 64 69 73 63 25 0d 15 0e 1b |drive%=disc%....| 00003b80 c9 33 3a 74 72 61 63 6b 25 3d 28 74 72 61 63 6b |.3:track%=(track| 00003b90 25 2b 31 29 83 38 30 0d 15 18 23 c9 35 3a 74 72 |%+1).80...#.5:tr| 00003ba0 61 63 6b 25 2d 3d 31 3a e7 74 72 61 63 6b 25 3c |ack%-=1:.track%<| 00003bb0 30 74 72 61 63 6b 25 3d 37 39 0d 15 22 35 c9 36 |0track%=79.."5.6| 00003bc0 3a 68 65 61 64 25 3d 28 68 65 61 64 25 2b 31 29 |:head%=(head%+1)| 00003bd0 83 32 3a e7 68 65 61 64 25 3d 30 74 72 61 63 6b |.2:.head%=0track| 00003be0 25 3d 28 74 72 61 63 6b 25 2b 31 29 83 38 30 0d |%=(track%+1).80.| 00003bf0 15 2c 3c c9 38 3a 68 65 61 64 25 2d 3d 31 3a e7 |.,<.8:head%-=1:.| 00003c00 68 65 61 64 25 3c 30 68 65 61 64 25 3d 31 3a 74 |head%<0head%=1:t| 00003c10 72 61 63 6b 25 2d 3d 31 3a e7 74 72 61 63 6b 25 |rack%-=1:.track%| 00003c20 3c 30 74 72 61 63 6b 25 3d 37 39 0d 15 36 55 c9 |<0track%=79..6U.| 00003c30 39 3a 73 65 63 74 6f 72 25 3d 28 73 65 63 74 6f |9:sector%=(secto| 00003c40 72 25 2b 31 29 83 35 3a e7 73 65 63 74 6f 72 25 |r%+1).5:.sector%| 00003c50 3d 30 68 65 61 64 25 3d 28 68 65 61 64 25 2b 31 |=0head%=(head%+1| 00003c60 29 83 32 3a e7 68 65 61 64 25 3d 30 74 72 61 63 |).2:.head%=0trac| 00003c70 6b 25 3d 28 74 72 61 63 6b 25 2b 31 29 83 38 30 |k%=(track%+1).80| 00003c80 0d 15 40 5d c9 31 31 3a 73 65 63 74 6f 72 25 2d |..@].11:sector%-| 00003c90 3d 31 3a e7 73 65 63 74 6f 72 25 3d 2d 31 73 65 |=1:.sector%=-1se| 00003ca0 63 74 6f 72 25 3d 34 3a 68 65 61 64 25 3d 94 28 |ctor%=4:head%=.(| 00003cb0 68 65 61 64 25 2d 31 29 3a e7 68 65 61 64 25 3d |head%-1):.head%=| 00003cc0 31 74 72 61 63 6b 25 2d 3d 31 3a e7 74 72 61 63 |1track%-=1:.trac| 00003cd0 6b 25 3c 30 74 72 61 63 6b 25 3d 37 39 0d 15 4a |k%<0track%=79..J| 00003ce0 05 cb 0d 15 54 05 e1 0d 15 5e 05 3a 0d 15 68 0d |....T....^.:..h.| 00003cf0 dd f2 64 69 73 70 6c 61 79 0d 15 72 37 64 72 69 |..display..r7dri| 00003d00 76 65 25 3d bb 24 64 73 25 3a 74 72 61 63 6b 25 |ve%=.$ds%:track%| 00003d10 3d bb 24 74 72 25 3a 68 65 61 64 25 3d bb 24 68 |=.$tr%:head%=.$h| 00003d20 64 25 3a 73 65 63 74 6f 72 25 3d bb 24 73 63 25 |d%:sector%=.$sc%| 00003d30 0d 15 7c 2e f2 6c 6f 61 64 73 65 63 74 6f 72 28 |..|..loadsector(| 00003d40 74 72 61 63 6b 25 2c 68 65 61 64 25 2c 73 65 63 |track%,head%,sec| 00003d50 74 6f 72 25 2c 31 2c 64 72 69 76 65 25 29 0d 15 |tor%,1,drive%)..| 00003d60 86 7b e3 49 25 3d 30 b8 36 33 3a 4c 25 3d 49 25 |.{.I%=0.63:L%=I%| 00003d70 2a 31 36 2b 53 25 3a 6c 24 28 49 25 29 3d a4 70 |*16+S%:l$(I%)=.p| 00003d80 61 64 64 28 4c 25 2d 53 25 29 2b 22 20 20 22 3a |add(L%-S%)+" ":| 00003d90 74 24 3d 22 22 3a e3 4a 25 3d 30 b8 31 35 3a 43 |t$="":.J%=0.15:C| 00003da0 25 3d 4c 25 3f 4a 25 3a 6c 24 28 49 25 29 2b 3d |%=L%?J%:l$(I%)+=| 00003db0 a4 70 61 64 28 43 25 29 2b 22 20 22 3a e7 43 25 |.pad(C%)+" ":.C%| 00003dc0 3e 33 31 80 43 25 3c 31 32 37 74 24 2b 3d bd 43 |>31.C%<127t$+=.C| 00003dd0 25 8b 74 24 2b 3d 22 2e 22 0d 15 90 18 ed 3a 6c |%.t$+=".".....:l| 00003de0 24 28 49 25 29 2b 3d 22 20 20 20 22 2b 74 24 3a |$(I%)+=" "+t$:| 00003df0 ed 0d 15 9a 05 e1 0d 15 a4 05 3a 0d 15 ae 1b dd |..........:.....| 00003e00 a4 70 61 64 28 43 25 29 3a 3d c2 22 30 22 2b c3 |.pad(C%):=."0"+.| 00003e10 7e 43 25 2c 32 29 0d 15 b8 05 3a 0d 15 c2 1e dd |~C%,2)....:.....| 00003e20 a4 70 61 64 64 28 43 25 29 3a 3d c2 22 30 30 30 |.padd(C%):=."000| 00003e30 22 2b c3 7e 43 25 2c 34 29 0d 15 cc 05 3a 0d 15 |"+.~C%,4)....:..| 00003e40 d6 28 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 43 61 74 |.(********** Cat| 00003e50 61 6c 6f 67 75 65 20 69 6e 66 6f 20 2a 2a 2a 2a |alogue info ****| 00003e60 2a 2a 2a 2a 2a 2a 0d 15 e0 05 3a 0d 15 ea 1b dd |******....:.....| 00003e70 f2 63 61 74 61 6c 6f 67 75 65 3a 40 25 3d 26 31 |.catalogue:@%=&1| 00003e80 30 30 30 39 30 41 0d 15 f4 27 f2 73 74 6f 72 65 |00090A...'.store| 00003e90 3a 73 74 61 6d 70 25 3d 26 46 46 46 30 30 30 30 |:stamp%=&FFF0000| 00003ea0 30 3a 73 70 24 3d c4 34 2c 22 20 22 29 0d 15 fe |0:sp$=.4," ")...| 00003eb0 51 63 61 74 25 3d a4 63 72 65 61 74 65 77 69 6e |Qcat%=.createwin| 00003ec0 64 6f 77 28 22 43 61 74 61 6c 6f 67 75 65 20 69 |dow("Catalogue i| 00003ed0 6e 66 6f 22 2c 26 46 2c 37 2c 30 2c 31 32 34 30 |nfo",&F,7,0,1240| 00003ee0 2c 32 30 34 38 2c 30 2c 31 38 32 2c 31 32 34 30 |,2048,0,182,1240| 00003ef0 2c 38 33 35 2c 30 2c 30 2c 2d 31 2c 30 29 0d 16 |,835,0,0,-1,0)..| 00003f00 08 13 f7 8d 74 48 53 3a 6e 69 63 6f 6e 73 25 3d |....tHS:nicons%=| 00003f10 32 0d 16 12 52 63 61 74 31 25 3d a4 63 72 65 61 |2...Rcat1%=.crea| 00003f20 74 65 77 69 6e 64 6f 77 28 22 43 61 74 61 6c 6f |tewindow("Catalo| 00003f30 67 75 65 22 2c 26 39 33 2c 26 39 30 2c 31 2c 34 |gue",&93,&90,1,4| 00003f40 32 30 2c 38 34 2c 31 30 30 2c 32 30 30 2c 35 32 |20,84,100,200,52| 00003f50 30 2c 32 38 34 2c 30 2c 26 33 30 30 30 2c 2d 31 |0,284,0,&3000,-1| 00003f60 2c 30 29 0d 16 1c 11 f2 69 63 6f 6e 73 28 63 61 |,0).....icons(ca| 00003f70 74 31 25 29 0d 16 26 23 66 6f 75 6e 64 63 61 74 |t1%)..&#foundcat| 00003f80 25 3d a3 3a 63 61 74 24 3d 22 22 3a 63 61 74 31 |%=.:cat$="":cat1| 00003f90 24 3d 22 63 61 74 22 0d 16 30 0f e7 a4 66 69 6e |$="cat"..0...fin| 00003fa0 64 63 61 74 20 8c 0d 16 3a 1f f2 6f 70 65 6e 77 |dcat ...:..openw| 00003fb0 69 6e 64 6f 77 28 63 61 74 25 2c 62 6c 6f 63 6b |indow(cat%,block| 00003fc0 25 2c 2d 31 29 0d 16 44 20 f2 6f 70 65 6e 77 69 |%,-1)..D .openwi| 00003fd0 6e 64 6f 77 28 63 61 74 31 25 2c 62 6c 6f 63 6b |ndow(cat1%,block| 00003fe0 25 2c 2d 31 29 0d 16 4e 05 cd 0d 16 58 05 e1 0d |%,-1)..N....X...| 00003ff0 16 62 05 3a 0d 16 6c 1b dd a4 63 6c 69 63 6b 64 |.b.:..l...clickd| 00004000 69 61 6c 6f 67 63 61 74 28 69 63 6f 6e 25 29 0d |ialogcat(icon%).| 00004010 16 76 1a 65 6e 64 64 69 61 6c 6f 67 25 3d a3 3a |.v.enddialog%=.:| 00004020 e7 67 25 3d 32 37 3a 3d 30 0d 16 80 0c c8 8e 69 |.g%=27:=0......i| 00004030 63 6f 6e 25 ca 0d 16 8a 06 c9 30 0d 16 94 0f e7 |con%......0.....| 00004040 a4 66 69 6e 64 63 61 74 20 8c 0d 16 9e 0f 66 6f |.findcat .....fo| 00004050 75 6e 64 63 61 74 25 3d a3 0d 16 a8 17 f2 72 65 |undcat%=......re| 00004060 64 72 61 77 77 69 6e 64 6f 77 28 63 61 74 25 29 |drawwindow(cat%)| 00004070 0d 16 b2 05 cc 0d 16 bc 10 65 6e 64 64 69 61 6c |.........enddial| 00004080 6f 67 25 3d b9 0d 16 c6 16 f2 63 6c 6f 73 65 77 |og%=......closew| 00004090 69 6e 64 6f 77 28 63 61 74 25 29 0d 16 d0 05 cd |indow(cat%).....| 000040a0 0d 16 da 13 c9 31 3a 65 6e 64 64 69 61 6c 6f 67 |.....1:enddialog| 000040b0 25 3d b9 0d 16 e4 16 f2 63 6c 6f 73 65 77 69 6e |%=......closewin| 000040c0 64 6f 77 28 63 61 74 25 29 0d 16 ee 05 cb 0d 16 |dow(cat%).......| 000040d0 f8 0f 3d 65 6e 64 64 69 61 6c 6f 67 25 0d 17 02 |..=enddialog%...| 000040e0 05 3a 0d 17 0c 24 dd a4 66 69 6e 64 63 61 74 3a |.:...$..findcat:| 000040f0 f5 3a f2 72 65 64 72 61 77 77 69 6e 64 6f 77 28 |.:.redrawwindow(| 00004100 6f 70 65 6e 25 29 0d 17 16 15 67 25 3d a6 30 3a |open%)....g%=.0:| 00004110 e7 67 25 3d 32 37 ef 37 3a 3d 30 0d 17 20 2e f2 |.g%=27.7:=0.. ..| 00004120 6c 6f 61 64 73 65 63 74 6f 72 28 74 72 61 63 6b |loadsector(track| 00004130 25 2c 68 65 61 64 25 2c 73 65 63 74 6f 72 25 2c |%,head%,sector%,| 00004140 31 2c 64 72 69 76 65 25 29 0d 17 2a 3b e7 53 25 |1,drive%)..*;.S%| 00004150 21 31 3d 26 36 42 36 33 36 39 34 45 20 84 53 25 |!1=&6B63694E .S%| 00004160 21 31 3d 26 36 46 36 37 37 35 34 38 20 66 6f 75 |!1=&6F677548 fou| 00004170 6e 64 63 61 74 25 3d b9 3a f2 67 65 74 63 61 74 |ndcat%=.:.getcat| 00004180 69 6e 66 6f 0d 17 34 47 73 65 63 74 6f 72 25 3d |info..4Gsector%=| 00004190 28 73 65 63 74 6f 72 25 2b 31 29 83 35 3a e7 73 |(sector%+1).5:.s| 000041a0 65 63 74 6f 72 25 3d 30 68 65 61 64 25 3d 28 68 |ector%=0head%=(h| 000041b0 65 61 64 25 2b 31 29 83 32 3a e7 68 65 61 64 25 |ead%+1).2:.head%| 000041c0 3d 30 74 72 61 63 6b 25 2b 3d 31 0d 17 3e 2a 24 |=0track%+=1..>*$| 000041d0 74 72 25 3d c3 74 72 61 63 6b 25 3a 24 68 64 25 |tr%=.track%:$hd%| 000041e0 3d c3 68 65 61 64 25 3a 24 73 63 25 3d c3 73 65 |=.head%:$sc%=.se| 000041f0 63 74 6f 72 25 0d 17 48 2c fd 28 74 72 61 63 6b |ctor%..H,.(track| 00004200 25 3d 37 39 80 68 65 61 64 25 3d 31 80 73 65 63 |%=79.head%=1.sec| 00004210 74 6f 72 25 3d 34 29 84 66 6f 75 6e 64 63 61 74 |tor%=4).foundcat| 00004220 25 0d 17 52 0e 3d 66 6f 75 6e 64 63 61 74 25 0d |%..R.=foundcat%.| 00004230 17 5c 05 3a 0d 17 66 13 dd f2 67 65 74 63 61 74 |.\.:..f...getcat| 00004240 69 6e 66 6f 3a ef 37 0d 17 70 1b 6f 66 66 73 65 |info:.7..p.offse| 00004250 74 25 3d 35 3a 6e 25 3d 30 3a 6e 24 28 29 3d 22 |t%=5:n%=0:n$()="| 00004260 20 22 0d 17 7a 24 f5 3a 6e 24 28 6e 25 29 2b 3d | "..z$.:n$(n%)+=| 00004270 a4 67 65 74 73 74 72 69 6e 67 28 53 25 2b 6f 66 |.getstring(S%+of| 00004280 66 73 65 74 25 29 0d 17 84 31 6c 6f 61 64 25 3d |fset%)...1load%=| 00004290 21 28 53 25 2b 6f 66 66 73 65 74 25 2b 31 30 29 |!(S%+offset%+10)| 000042a0 3a 65 78 65 63 25 3d 21 28 53 25 2b 6f 66 66 73 |:exec%=!(S%+offs| 000042b0 65 74 25 2b 31 34 29 0d 17 8e 30 6c 65 6e 25 3d |et%+14)...0len%=| 000042c0 21 28 53 25 2b 6f 66 66 73 65 74 25 2b 31 38 29 |!(S%+offset%+18)| 000042d0 3a 61 74 74 72 25 3d 21 28 53 25 2b 6f 66 66 73 |:attr%=!(S%+offs| 000042e0 65 74 25 2b 32 32 29 0d 17 98 1b e7 28 6c 6f 61 |et%+22).....(loa| 000042f0 64 25 80 73 74 61 6d 70 25 29 3d 73 74 61 6d 70 |d%.stamp%)=stamp| 00004300 25 8c 0d 17 a2 1d 74 79 70 65 25 3d 28 6c 6f 61 |%.....type%=(loa| 00004310 64 25 80 26 46 46 46 30 30 29 81 26 31 30 30 0d |d%.&FFF00).&100.| 00004320 17 ac 0c c8 8e 74 79 70 65 25 ca 0d 17 b6 19 c9 |.....type%......| 00004330 26 46 46 46 3a 74 24 3d 22 41 53 43 49 49 20 74 |&FFF:t$="ASCII t| 00004340 65 78 74 22 0d 17 c0 1b c9 26 46 46 45 3a 74 24 |ext".....&FFE:t$| 00004350 3d 22 43 6f 6d 6d 61 6e 64 20 66 69 6c 65 22 0d |="Command file".| 00004360 17 ca 2c c9 26 46 46 44 3a e7 6c 65 6e 25 3d 26 |..,.&FFD:.len%=&| 00004370 38 30 30 74 24 3d 22 44 69 72 65 63 74 6f 72 79 |800t$="Directory| 00004380 22 8b 74 24 3d 22 44 61 74 61 22 0d 17 d4 22 c9 |".t$="Data"...".| 00004390 26 46 46 43 3a 74 24 3d 22 52 65 6c 6f 63 61 74 |&FFC:t$="Relocat| 000043a0 61 62 6c 65 20 75 74 69 6c 69 74 79 22 0d 17 de |able utility"...| 000043b0 1c c9 26 46 46 42 3a 74 24 3d 22 42 41 53 49 43 |..&FFB:t$="BASIC| 000043c0 20 70 72 6f 67 72 61 6d 22 0d 17 e8 21 c9 26 46 | program"...!.&F| 000043d0 46 41 3a 74 24 3d 22 52 65 6c 6f 63 61 74 61 62 |FA:t$="Relocatab| 000043e0 6c 65 20 6d 6f 64 75 6c 65 22 0d 17 f2 15 c9 26 |le module".....&| 000043f0 46 46 39 3a 74 24 3d 22 53 70 72 69 74 65 22 0d |FF9:t$="Sprite".| 00004400 17 fc 1c c9 26 46 46 38 3a 74 24 3d 22 41 62 73 |....&FF8:t$="Abs| 00004410 6f 6c 75 74 65 20 63 6f 64 65 22 0d 18 06 17 c9 |olute code".....| 00004420 26 46 46 37 3a 74 24 3d 22 42 42 43 20 66 6f 6e |&FF7:t$="BBC fon| 00004430 74 22 0d 18 10 19 c9 26 46 46 36 3a 74 24 3d 22 |t".....&FF6:t$="| 00004440 46 61 6e 63 79 20 66 6f 6e 74 22 0d 18 1a 1e c9 |Fancy font".....| 00004450 26 46 46 35 3a 74 24 3d 22 50 6f 73 74 53 63 72 |&FF5:t$="PostScr| 00004460 69 70 74 20 66 69 6c 65 22 0d 18 24 16 c9 26 46 |ipt file"..$..&F| 00004470 45 44 3a 74 24 3d 22 50 61 6c 65 74 74 65 22 0d |ED:t$="Palette".| 00004480 18 2e 1c c9 26 46 45 43 3a 74 24 3d 22 54 65 6d |....&FEC:t$="Tem| 00004490 70 6c 61 74 65 20 66 69 6c 65 22 0d 18 38 18 c9 |plate file"..8..| 000044a0 26 46 45 42 3a 74 24 3d 22 4f 62 65 79 20 66 69 |&FEB:t$="Obey fi| 000044b0 6c 65 22 0d 18 42 18 c9 26 41 46 46 3a 74 24 3d |le"..B..&AFF:t$=| 000044c0 22 44 72 61 77 20 66 69 6c 65 22 0d 18 4c 17 c9 |"Draw file"..L..| 000044d0 26 41 46 38 22 74 24 3d 22 46 57 2b 20 66 69 6c |&AF8"t$="FW+ fil| 000044e0 65 22 0d 18 56 1c c9 26 41 46 31 22 74 24 3d 22 |e"..V..&AF1"t$="| 000044f0 21 4d 61 65 73 74 72 6f 20 66 69 6c 65 22 0d 18 |!Maestro file"..| 00004500 60 1e c9 26 38 30 38 3a 74 24 3d 22 50 6f 73 74 |`..&808:t$="Post| 00004510 53 63 72 69 70 74 20 66 69 6c 65 22 0d 18 6a 1c |Script file"..j.| 00004520 7f 3a 74 24 3d 22 55 6e 6b 6e 6f 77 6e 20 66 69 |.:t$="Unknown fi| 00004530 6c 65 20 74 79 70 65 22 0d 18 74 05 cb 0d 18 7e |le type"..t....~| 00004540 5e 6e 24 28 6e 25 29 2b 3d a4 6e 75 6d 70 61 64 |^n$(n%)+=.numpad| 00004550 28 c3 7e 74 79 70 65 25 2b 22 20 22 2b 74 24 2b |(.~type%+" "+t$+| 00004560 73 70 24 2c 32 32 29 2b 22 4c 65 6e 67 74 68 3a |sp$,22)+"Length:| 00004570 20 22 2b a4 6e 75 6d 70 61 64 28 c3 7e 6c 65 6e | "+.numpad(.~len| 00004580 25 2c 31 30 29 2b 22 41 74 74 72 69 62 75 74 65 |%,10)+"Attribute| 00004590 3a 20 22 2b c3 7e 61 74 74 72 25 0d 18 88 05 cc |: "+.~attr%.....| 000045a0 0d 18 92 79 6e 24 28 6e 25 29 2b 3d a4 6e 75 6d |...yn$(n%)+=.num| 000045b0 70 61 64 28 22 45 78 65 63 3a 20 22 2b c3 7e 65 |pad("Exec: "+.~e| 000045c0 78 65 63 25 2c 31 34 29 2b a4 6e 75 6d 70 61 64 |xec%,14)+.numpad| 000045d0 28 22 4c 6f 61 64 3a 20 22 2b c3 7e 6c 6f 61 64 |("Load: "+.~load| 000045e0 25 2c 31 34 29 2b a4 6e 75 6d 70 61 64 28 22 4c |%,14)+.numpad("L| 000045f0 65 6e 67 74 68 3a 20 22 2b c3 7e 6c 65 6e 25 2c |ength: "+.~len%,| 00004600 31 36 29 2b 22 41 74 74 72 69 62 75 74 65 3a 20 |16)+"Attribute: | 00004610 22 2b c3 7e 61 74 74 72 25 0d 18 9c 05 cd 0d 18 |"+.~attr%.......| 00004620 a6 20 61 63 63 65 73 73 25 3d 61 74 74 72 25 81 |. access%=attr%.| 00004630 26 31 30 30 30 30 30 30 3a 61 24 3d 22 22 0d 18 |&1000000:a$=""..| 00004640 b0 19 e7 28 61 63 63 65 73 73 25 80 31 29 3d 31 |...(access%.1)=1| 00004650 61 24 2b 3d 22 57 22 0d 18 ba 19 e7 28 61 63 63 |a$+="W".....(acc| 00004660 65 73 73 25 80 32 29 3d 32 61 24 2b 3d 22 52 22 |ess%.2)=2a$+="R"| 00004670 0d 18 c4 19 e7 28 61 63 63 65 73 73 25 80 34 29 |.....(access%.4)| 00004680 3d 34 61 24 2b 3d 22 4c 22 0d 18 ce 14 6e 24 28 |=4a$+="L"....n$(| 00004690 6e 25 29 2b 3d 61 24 3a 6e 25 2b 3d 31 0d 18 d8 |n%)+=a$:n%+=1...| 000046a0 0f 6f 66 66 73 65 74 25 2b 3d 32 36 0d 18 e2 11 |.offset%+=26....| 000046b0 fd 53 25 3f 6f 66 66 73 65 74 25 3d 30 0d 18 ec |.S%?offset%=0...| 000046c0 26 f2 72 65 73 69 7a 65 77 69 6e 64 6f 77 28 63 |&.resizewindow(c| 000046d0 61 74 25 2c 30 2c 30 2c 31 32 34 30 2c 6e 25 2a |at%,0,0,1240,n%*| 000046e0 33 32 29 0d 18 f6 05 e1 0d 19 00 05 3a 0d 19 0a |32).........:...| 000046f0 1f dd a4 67 65 74 73 74 72 69 6e 67 28 61 64 25 |...getstring(ad%| 00004700 29 3a 66 24 3d 22 22 3a 69 25 3d 30 0d 19 14 2a |):f$="":i%=0...*| 00004710 f5 3a 63 25 3d 61 64 25 3f 69 25 3a 66 24 2b 3d |.:c%=ad%?i%:f$+=| 00004720 bd 63 25 3a 69 25 2b 3d 31 3a fd 63 25 3d 31 33 |.c%:i%+=1:.c%=13| 00004730 84 69 25 3d 31 31 0d 19 1e 11 66 24 3d c0 66 24 |.i%=11....f$=.f$| 00004740 2c a9 66 24 2d 31 29 0d 19 28 15 3d c0 66 24 2b |,.f$-1)..(.=.f$+| 00004750 c4 31 32 2c 22 20 22 29 2c 31 32 29 0d 19 32 05 |.12," "),12)..2.| 00004760 3a 0d 19 3c 15 dd a4 6e 75 6d 70 61 64 28 61 24 |:..<...numpad(a$| 00004770 2c 6c 65 6e 25 29 0d 19 46 19 3d c0 61 24 2b c4 |,len%)..F.=.a$+.| 00004780 6c 65 6e 25 2c 22 20 22 29 2c 6c 65 6e 25 29 0d |len%," "),len%).| 00004790 19 50 05 3a 0d 19 5a 27 2a 2a 2a 2a 2a 2a 2a 2a |.P.:..Z'********| 000047a0 2a 2a 20 46 69 6e 64 20 61 20 73 74 72 69 6e 67 |** Find a string| 000047b0 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 19 64 05 3a | **********..d.:| 000047c0 0d 19 6e 10 dd f2 66 69 6e 64 3a f7 8d 54 78 53 |..n...find:..TxS| 000047d0 0d 19 78 10 66 69 6e 64 24 3d 22 66 69 6e 64 22 |..x.find$="find"| 000047e0 0d 19 82 23 24 66 69 6e 64 73 74 72 25 3d 22 28 |...#$findstr%="(| 000047f0 34 20 63 68 61 72 61 63 74 65 72 73 20 6f 6e 6c |4 characters onl| 00004800 79 29 22 0d 19 8c 34 66 69 6e 64 25 3d a4 63 72 |y)"...4find%=.cr| 00004810 65 61 74 65 64 69 61 6c 6f 67 28 31 2c 30 2c 26 |eatedialog(1,0,&| 00004820 39 33 2c 22 46 69 6e 64 20 73 74 72 69 6e 67 22 |93,"Find string"| 00004830 2c 66 69 6e 64 24 29 0d 19 96 05 e1 0d 19 a0 05 |,find$).........| 00004840 3a 0d 19 aa 1c dd a4 63 6c 69 63 6b 64 69 61 6c |:......clickdial| 00004850 6f 67 66 69 6e 64 28 69 63 6f 6e 25 29 0d 19 b4 |ogfind(icon%)...| 00004860 10 65 6e 64 64 69 61 6c 6f 67 25 3d a3 0d 19 be |.enddialog%=....| 00004870 0c c8 8e 69 63 6f 6e 25 ca 0d 19 c8 13 c9 30 3a |...icon%......0:| 00004880 65 6e 64 64 69 61 6c 6f 67 25 3d b9 0d 19 d2 15 |enddialog%=.....| 00004890 e7 c0 24 66 6f 75 6e 64 25 2c 31 29 3d 22 26 22 |..$found%,1)="&"| 000048a0 8c 0d 19 dc 09 66 24 3d 22 22 0d 19 e6 2a e3 69 |.....f$=""...*.i| 000048b0 25 3d 32 b8 38 3a 66 24 2b 3d bd 28 a0 28 22 26 |%=2.8:f$+=.(.("&| 000048c0 22 2b c1 24 66 6f 75 6e 64 25 2c 69 25 2c 32 29 |"+.$found%,i%,2)| 000048d0 29 29 3a ed 0d 19 f0 0a 24 46 25 3d 66 24 0d 19 |)):.....$F%=f$..| 000048e0 fa 05 cc 0d 1a 04 13 24 46 25 3d c0 24 66 6f 75 |.......$F%=.$fou| 000048f0 6e 64 25 2c 34 29 0d 1a 0e 05 cd 0d 1a 18 0a 66 |nd%,4).........f| 00004900 25 3d 21 46 25 0d 1a 22 17 f2 63 6c 6f 73 65 77 |%=!F%.."..closew| 00004910 69 6e 64 6f 77 28 66 69 6e 64 25 29 0d 1a 2c 18 |indow(find%)..,.| 00004920 66 6f 75 6e 64 24 3d 22 66 6f 75 6e 64 22 3a f7 |found$="found":.| 00004930 8d 44 7e 53 0d 1a 36 0a f2 73 74 6f 72 65 0d 1a |.D~S..6..store..| 00004940 40 0e e7 a4 73 65 61 72 63 68 20 8c 0d 1a 4a 30 |@...search ...J0| 00004950 66 69 6e 64 31 25 3d a4 63 72 65 61 74 65 64 69 |find1%=.createdi| 00004960 61 6c 6f 67 28 32 2c 30 2c 26 39 33 2c 22 46 6f |alog(2,0,&93,"Fo| 00004970 75 6e 64 22 2c 66 6f 75 6e 64 24 29 0d 1a 54 2a |und",found$)..T*| 00004980 24 74 72 25 3d c3 74 72 61 63 6b 25 3a 24 68 64 |$tr%=.track%:$hd| 00004990 25 3d c3 68 65 61 64 25 3a 24 73 63 25 3d c3 73 |%=.head%:$sc%=.s| 000049a0 65 63 74 6f 72 25 0d 1a 5e 05 cc 0d 1a 68 0c f2 |ector%..^....h..| 000049b0 72 65 73 74 6f 72 65 0d 1a 72 05 cd 0d 1a 7c 0c |restore..r....|.| 000049c0 f2 64 69 73 70 6c 61 79 0d 1a 86 1b f2 72 65 64 |.display.....red| 000049d0 72 61 77 77 69 6e 64 6f 77 28 64 69 73 70 6c 61 |rawwindow(displa| 000049e0 79 25 29 0d 1a 90 18 f2 72 65 64 72 61 77 77 69 |y%).....redrawwi| 000049f0 6e 64 6f 77 28 6f 70 65 6e 25 29 0d 1a 9a 13 c9 |ndow(open%).....| 00004a00 31 3a 65 6e 64 64 69 61 6c 6f 67 25 3d b9 0d 1a |1:enddialog%=...| 00004a10 a4 05 cb 0d 1a ae 0f 3d 65 6e 64 64 69 61 6c 6f |.......=enddialo| 00004a20 67 25 0d 1a b8 05 3a 0d 1a c2 1d dd a4 63 6c 69 |g%....:......cli| 00004a30 63 6b 64 69 61 6c 6f 67 66 6f 75 6e 64 28 69 63 |ckdialogfound(ic| 00004a40 6f 6e 25 29 0d 1a cc 0f d4 31 2c 2d 39 2c 32 30 |on%).....1,-9,20| 00004a50 30 2c 31 0d 1a d6 1a 65 6e 64 64 69 61 6c 6f 67 |0,1....enddialog| 00004a60 25 3d a3 3a e7 67 25 3d 32 37 3a 3d b9 0d 1a e0 |%=.:.g%=27:=....| 00004a70 0c c8 8e 69 63 6f 6e 25 ca 0d 1a ea 06 c9 30 0d |...icon%......0.| 00004a80 1a f4 47 73 65 63 74 6f 72 25 3d 28 73 65 63 74 |..Gsector%=(sect| 00004a90 6f 72 25 2b 31 29 83 35 3a e7 73 65 63 74 6f 72 |or%+1).5:.sector| 00004aa0 25 3d 30 68 65 61 64 25 3d 28 68 65 61 64 25 2b |%=0head%=(head%+| 00004ab0 31 29 83 32 3a e7 68 65 61 64 25 3d 30 74 72 61 |1).2:.head%=0tra| 00004ac0 63 6b 25 2b 3d 31 0d 1a fe 0e e7 a4 73 65 61 72 |ck%+=1......sear| 00004ad0 63 68 20 8c 0d 1b 08 2a 24 74 72 25 3d c3 74 72 |ch ....*$tr%=.tr| 00004ae0 61 63 6b 25 3a 24 68 64 25 3d c3 68 65 61 64 25 |ack%:$hd%=.head%| 00004af0 3a 24 73 63 25 3d c3 73 65 63 74 6f 72 25 0d 1b |:$sc%=.sector%..| 00004b00 12 19 f2 72 65 64 72 61 77 77 69 6e 64 6f 77 28 |...redrawwindow(| 00004b10 66 69 6e 64 31 25 29 0d 1b 1c 05 cc 0d 1b 26 19 |find1%).......&.| 00004b20 f2 72 65 73 74 6f 72 65 3a 65 6e 64 64 69 61 6c |.restore:enddial| 00004b30 6f 67 25 3d b9 0d 1b 30 05 cd 0d 1b 3a 1c c9 31 |og%=...0....:..1| 00004b40 3a f2 72 65 73 74 6f 72 65 3a 65 6e 64 64 69 61 |:.restore:enddia| 00004b50 6c 6f 67 25 3d b9 0d 1b 44 05 cb 0d 1b 4e 0c f2 |log%=...D....N..| 00004b60 64 69 73 70 6c 61 79 0d 1b 58 1b f2 72 65 64 72 |display..X..redr| 00004b70 61 77 77 69 6e 64 6f 77 28 64 69 73 70 6c 61 79 |awwindow(display| 00004b80 25 29 0d 1b 62 18 f2 72 65 64 72 61 77 77 69 6e |%)..b..redrawwin| 00004b90 64 6f 77 28 6f 70 65 6e 25 29 0d 1b 6c 0f 3d 65 |dow(open%)..l.=e| 00004ba0 6e 64 64 69 61 6c 6f 67 25 0d 1b 76 05 3a 0d 1b |nddialog%..v.:..| 00004bb0 80 15 dd a4 73 65 61 72 63 68 3a 67 6f 74 69 74 |....search:gotit| 00004bc0 25 3d a3 0d 1b 8a 39 f5 3a 24 64 73 25 3d c3 64 |%=....9.:$ds%=.d| 00004bd0 72 69 76 65 25 3a 24 74 72 25 3d c3 74 72 61 63 |rive%:$tr%=.trac| 00004be0 6b 25 3a 24 68 64 25 3d c3 68 65 61 64 25 3a 24 |k%:$hd%=.head%:$| 00004bf0 73 63 25 3d c3 73 65 63 74 6f 72 25 0d 1b 94 2a |sc%=.sector%...*| 00004c00 f2 72 65 64 72 61 77 77 69 6e 64 6f 77 28 6f 70 |.redrawwindow(op| 00004c10 65 6e 25 29 3a 67 25 3d a6 30 3a e7 67 25 3d 32 |en%):g%=.0:.g%=2| 00004c20 37 ef 37 3a 3d 30 0d 1b 9e 2e f2 6c 6f 61 64 73 |7.7:=0.....loads| 00004c30 65 63 74 6f 72 28 74 72 61 63 6b 25 2c 68 65 61 |ector(track%,hea| 00004c40 64 25 2c 73 65 63 74 6f 72 25 2c 31 2c 64 72 69 |d%,sector%,1,dri| 00004c50 76 65 25 29 0d 1b a8 29 e3 49 25 3d 30 b8 31 30 |ve%)...).I%=0.10| 00004c60 32 30 3a e7 49 25 21 53 25 3d 66 25 67 6f 74 69 |20:.I%!S%=f%goti| 00004c70 74 25 3d b9 3a 62 79 74 65 25 3d 49 25 0d 1b b2 |t%=.:byte%=I%...| 00004c80 05 ed 0d 1b bc 0d e7 ac 67 6f 74 69 74 25 8c 0d |........gotit%..| 00004c90 1b c6 47 73 65 63 74 6f 72 25 3d 28 73 65 63 74 |..Gsector%=(sect| 00004ca0 6f 72 25 2b 31 29 83 35 3a e7 73 65 63 74 6f 72 |or%+1).5:.sector| 00004cb0 25 3d 30 68 65 61 64 25 3d 28 68 65 61 64 25 2b |%=0head%=(head%+| 00004cc0 31 29 83 32 3a e7 68 65 61 64 25 3d 30 74 72 61 |1).2:.head%=0tra| 00004cd0 63 6b 25 2b 3d 31 0d 1b d0 05 cc 0d 1b da 37 24 |ck%+=1........7$| 00004ce0 64 73 25 3d c3 64 72 69 76 65 25 3a 24 74 72 25 |ds%=.drive%:$tr%| 00004cf0 3d c3 74 72 61 63 6b 25 3a 24 68 64 25 3d c3 68 |=.track%:$hd%=.h| 00004d00 65 61 64 25 3a 24 73 63 25 3d c3 73 65 63 74 6f |ead%:$sc%=.secto| 00004d10 72 25 0d 1b e4 1c 24 28 66 6f 75 6e 64 25 2b 32 |r%....$(found%+2| 00004d20 30 29 3d 22 26 22 2b c3 7e 62 79 74 65 25 0d 1b |0)="&"+.~byte%..| 00004d30 ee 05 cd 0d 1b f8 29 fd 28 74 72 61 63 6b 25 3d |......).(track%=| 00004d40 37 39 80 68 65 61 64 25 3d 31 80 73 65 63 74 6f |79.head%=1.secto| 00004d50 72 25 3d 34 29 84 67 6f 74 69 74 25 0d 1c 02 0b |r%=4).gotit%....| 00004d60 3d 67 6f 74 69 74 25 0d 1c 0c 05 3a 0d 1c 16 26 |=gotit%....:...&| 00004d70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 53 61 76 65 20 |********** Save | 00004d80 73 65 63 74 6f 72 73 20 2a 2a 2a 2a 2a 2a 2a 2a |sectors ********| 00004d90 2a 2a 0d 1c 20 05 3a 0d 1c 2a 14 dd f2 73 61 76 |**.. .:..*...sav| 00004da0 65 66 69 6c 65 3a f7 8d 74 44 52 0d 1c 34 56 73 |efile:..tDR..4Vs| 00004db0 61 76 65 25 3d a4 63 72 65 61 74 65 77 69 6e 64 |ave%=.createwind| 00004dc0 6f 77 28 22 53 74 61 72 74 20 61 64 64 72 65 73 |ow("Start addres| 00004dd0 73 2c 77 74 69 74 6c 65 31 25 22 2c 26 42 33 2c |s,wtitle1%",&B3,| 00004de0 37 2c 31 2c 38 30 32 2c 31 34 38 2c 30 2c 30 2c |7,1,802,148,0,0,| 00004df0 38 30 32 2c 31 34 38 2c 30 2c 30 2c 2d 31 2c 30 |802,148,0,0,-1,0| 00004e00 29 0d 1c 3e 1c 6e 69 63 6f 6e 73 25 3d 31 37 3a |)..>.nicons%=17:| 00004e10 f2 69 63 6f 6e 73 28 73 61 76 65 25 29 0d 1c 48 |.icons(save%)..H| 00004e20 11 73 64 25 3d 2d 31 3a f2 73 74 6f 72 65 0d 1c |.sd%=-1:.store..| 00004e30 52 2e 73 61 76 65 24 3d 22 73 74 61 72 74 22 3a |R.save$="start":| 00004e40 f2 6f 70 65 6e 77 69 6e 64 6f 77 28 73 61 76 65 |.openwindow(save| 00004e50 25 2c 62 6c 6f 63 6b 25 2c 2d 31 29 0d 1c 5c 05 |%,block%,-1)..\.| 00004e60 e1 0d 1c 66 05 3a 0d 1c 70 1d dd a4 63 6c 69 63 |...f.:..p...clic| 00004e70 6b 64 69 61 6c 6f 67 73 74 61 72 74 28 69 63 6f |kdialogstart(ico| 00004e80 6e 25 29 0d 1c 7a 10 65 6e 64 64 69 61 6c 6f 67 |n%)..z.enddialog| 00004e90 25 3d a3 0d 1c 84 16 f2 67 65 74 61 64 64 72 65 |%=......getaddre| 00004ea0 73 73 28 69 63 6f 6e 25 29 0d 1c 8e 0c c8 8e 69 |ss(icon%)......i| 00004eb0 63 6f 6e 25 ca 0d 1c 98 10 c9 31 36 3a e7 73 64 |con%......16:.sd| 00004ec0 25 3d 2d 31 8c 0d 1c a2 2b 73 64 25 3d bb 24 64 |%=-1....+sd%=.$d| 00004ed0 73 25 3a 73 74 25 3d bb 24 74 72 25 3a 73 68 25 |s%:st%=.$tr%:sh%| 00004ee0 3d bb 24 68 64 25 3a 73 73 25 3d bb 24 73 63 25 |=.$hd%:ss%=.$sc%| 00004ef0 0d 1c ac 1b 24 77 74 69 74 6c 65 31 25 3d 22 45 |....$wtitle1%="E| 00004f00 6e 64 20 61 64 64 72 65 73 73 22 0d 1c b6 05 cc |nd address".....| 00004f10 0d 1c c0 10 65 6e 64 64 69 61 6c 6f 67 25 3d b9 |....enddialog%=.| 00004f20 0d 1c ca 2b 65 64 25 3d bb 24 64 73 25 3a 65 74 |...+ed%=.$ds%:et| 00004f30 25 3d bb 24 74 72 25 3a 65 68 25 3d bb 24 68 64 |%=.$tr%:eh%=.$hd| 00004f40 25 3a 65 73 25 3d bb 24 73 63 25 0d 1c d4 13 f7 |%:es%=.$sc%.....| 00004f50 8d 44 48 52 3a 73 61 76 65 31 24 3d 22 22 0d 1c |.DHR:save1$=""..| 00004f60 de 30 73 61 76 65 31 25 3d a4 63 72 65 61 74 65 |.0save1%=.create| 00004f70 64 69 61 6c 6f 67 28 31 2c 31 2c 26 39 33 2c 22 |dialog(1,1,&93,"| 00004f80 53 61 76 65 3a 22 2c 73 61 76 65 31 24 29 0d 1c |Save:",save1$)..| 00004f90 e8 30 c8 99 22 57 69 6d 70 5f 53 65 74 43 61 72 |.0.."Wimp_SetCar| 00004fa0 65 74 50 6f 73 69 74 69 6f 6e 22 2c 73 61 76 65 |etPosition",save| 00004fb0 31 25 2c 30 2c 30 2c 30 2c 2d 31 2c 2d 31 0d 1c |1%,0,0,0,-1,-1..| 00004fc0 f2 05 cd 0d 1c fc 05 cb 0d 1d 06 37 24 64 73 25 |...........7$ds%| 00004fd0 3d c3 64 72 69 76 65 25 3a 24 74 72 25 3d c3 74 |=.drive%:$tr%=.t| 00004fe0 72 61 63 6b 25 3a 24 68 64 25 3d c3 68 65 61 64 |rack%:$hd%=.head| 00004ff0 25 3a 24 73 63 25 3d c3 73 65 63 74 6f 72 25 0d |%:$sc%=.sector%.| 00005000 1d 10 18 f2 72 65 64 72 61 77 77 69 6e 64 6f 77 |....redrawwindow| 00005010 28 73 61 76 65 25 29 0d 1d 1a 0f 3d 65 6e 64 64 |(save%)....=endd| 00005020 69 61 6c 6f 67 25 0d 1d 24 05 3a 0d 1d 2e 20 dd |ialog%..$.:... .| 00005030 a4 63 6c 69 63 6b 64 69 61 6c 6f 67 73 61 76 65 |.clickdialogsave| 00005040 66 69 6c 65 28 69 63 6f 6e 25 29 0d 1d 38 10 65 |file(icon%)..8.e| 00005050 6e 64 64 69 61 6c 6f 67 25 3d a3 0d 1d 42 0c c8 |nddialog%=...B..| 00005060 8e 69 63 6f 6e 25 ca 0d 1d 4c 06 c9 31 0d 1d 56 |.icon%...L..1..V| 00005070 12 e7 a7 24 66 69 6c 65 25 2c 22 2e 22 29 8c 0d |...$file%,".")..| 00005080 1d 60 2a f2 6c 6f 61 64 73 65 63 74 6f 72 28 73 |.`*.loadsector(s| 00005090 74 25 2c 73 68 25 2c 73 73 25 2c 6c 65 6e 25 2b |t%,sh%,ss%,len%+| 000050a0 31 2c 64 72 69 76 65 25 29 0d 1d 6a 27 ff 28 22 |1,drive%)..j'.("| 000050b0 53 41 56 45 20 22 2b 24 66 69 6c 65 25 2b 22 20 |SAVE "+$file%+" | 000050c0 22 2b c3 7e 53 25 2b 22 2b 22 2b c3 7e 4c 25 29 |"+.~S%+"+"+.~L%)| 000050d0 0d 1d 74 07 cc ef 37 0d 1d 7e 05 cd 0d 1d 88 10 |..t...7..~......| 000050e0 65 6e 64 64 69 61 6c 6f 67 25 3d b9 0d 1d 92 0c |enddialog%=.....| 000050f0 f2 72 65 73 74 6f 72 65 0d 1d 9c 20 c9 32 3a f2 |.restore... .2:.| 00005100 69 6e 69 74 64 72 61 67 28 73 61 76 65 31 25 2c |initdrag(save1%,| 00005110 69 63 6f 6e 25 2c 35 29 0d 1d a6 0c f2 72 65 73 |icon%,5).....res| 00005120 74 6f 72 65 0d 1d b0 05 cb 0d 1d ba 0f 3d 65 6e |tore.........=en| 00005130 64 64 69 61 6c 6f 67 25 0d 1d c4 05 3a 0d 1d ce |ddialog%....:...| 00005140 2b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 43 6f 6d 70 |+********** Comp| 00005150 61 72 65 20 74 77 6f 20 64 69 73 6b 73 20 2a 2a |are two disks **| 00005160 2a 2a 2a 2a 2a 2a 2a 2a 0d 1d d8 05 3a 0d 1d e2 |********....:...| 00005170 1e dd f2 63 6f 6d 70 61 72 65 3a 45 25 3d 53 25 |...compare:E%=S%| 00005180 2b 31 30 32 34 3a f7 8d 74 44 52 0d 1d ec 56 63 |+1024:..tDR...Vc| 00005190 6f 6d 70 25 3d a4 63 72 65 61 74 65 77 69 6e 64 |omp%=.createwind| 000051a0 6f 77 28 22 53 74 61 72 74 20 61 64 64 72 65 73 |ow("Start addres| 000051b0 73 2c 77 74 69 74 6c 65 31 25 22 2c 26 42 33 2c |s,wtitle1%",&B3,| 000051c0 37 2c 31 2c 38 30 32 2c 31 34 38 2c 30 2c 30 2c |7,1,802,148,0,0,| 000051d0 38 30 32 2c 31 34 38 2c 30 2c 30 2c 2d 31 2c 30 |802,148,0,0,-1,0| 000051e0 29 0d 1d f6 1c 6e 69 63 6f 6e 73 25 3d 31 37 3a |)....nicons%=17:| 000051f0 f2 69 63 6f 6e 73 28 63 6f 6d 70 25 29 0d 1e 00 |.icons(comp%)...| 00005200 18 49 25 3d 30 3a 63 6f 6d 70 64 25 3d 31 3a f2 |.I%=0:compd%=1:.| 00005210 73 74 6f 72 65 0d 1e 0a 2d 63 6f 6d 70 24 3d 22 |store...-comp$="| 00005220 63 6f 6d 70 22 3a f2 6f 70 65 6e 77 69 6e 64 6f |comp":.openwindo| 00005230 77 28 63 6f 6d 70 25 2c 62 6c 6f 63 6b 25 2c 2d |w(comp%,block%,-| 00005240 31 29 0d 1e 14 05 e1 0d 1e 1e 05 3a 0d 1e 28 1c |1).........:..(.| 00005250 dd a4 63 6c 69 63 6b 64 69 61 6c 6f 67 63 6f 6d |..clickdialogcom| 00005260 70 28 69 63 6f 6e 25 29 0d 1e 32 10 65 6e 64 64 |p(icon%)..2.endd| 00005270 69 61 6c 6f 67 25 3d a3 0d 1e 3c 16 f2 67 65 74 |ialog%=...<..get| 00005280 61 64 64 72 65 73 73 28 69 63 6f 6e 25 29 0d 1e |address(icon%)..| 00005290 46 0c c8 8e 69 63 6f 6e 25 ca 0d 1e 50 11 c9 31 |F...icon%...P..1| 000052a0 36 3a c8 8e 63 6f 6d 70 64 25 ca 0d 1e 5a 06 c9 |6:..compd%...Z..| 000052b0 31 0d 1e 64 2b 73 64 25 3d bb 24 64 73 25 3a 73 |1..d+sd%=.$ds%:s| 000052c0 74 25 3d bb 24 74 72 25 3a 73 68 25 3d bb 24 68 |t%=.$tr%:sh%=.$h| 000052d0 64 25 3a 73 73 25 3d bb 24 73 63 25 0d 1e 6e 24 |d%:ss%=.$sc%..n$| 000052e0 24 77 74 69 74 6c 65 31 25 3d 22 45 6e 64 20 61 |$wtitle1%="End a| 000052f0 64 64 72 65 73 73 22 3a 63 6f 6d 70 64 25 3d 32 |ddress":compd%=2| 00005300 0d 1e 78 06 c9 32 0d 1e 82 2b 65 64 25 3d bb 24 |..x..2...+ed%=.$| 00005310 64 73 25 3a 65 74 25 3d bb 24 74 72 25 3a 65 68 |ds%:et%=.$tr%:eh| 00005320 25 3d bb 24 68 64 25 3a 65 73 25 3d bb 24 73 63 |%=.$hd%:es%=.$sc| 00005330 25 0d 1e 8c 27 65 6e 64 64 69 61 6c 6f 67 25 3d |%...'enddialog%=| 00005340 b9 3a 63 6f 6d 70 31 24 3d 22 63 6f 6d 70 61 72 |.:comp1$="compar| 00005350 65 22 3a f7 8d 44 7e 53 0d 1e 96 0f e7 a4 63 6f |e":..D~S......co| 00005360 6d 70 61 72 65 20 8c 0d 1e a0 32 63 6f 6d 70 31 |mpare ....2comp1| 00005370 25 3d a4 63 72 65 61 74 65 64 69 61 6c 6f 67 28 |%=.createdialog(| 00005380 31 2c 30 2c 26 39 33 2c 22 43 6f 6d 70 61 72 65 |1,0,&93,"Compare| 00005390 22 2c 63 6f 6d 70 31 24 29 0d 1e aa 14 63 6f 6d |",comp1$)....com| 000053a0 70 31 24 3d 22 63 6f 6d 70 61 72 65 22 0d 1e b4 |p1$="compare"...| 000053b0 05 cd 0d 1e be 05 cb 0d 1e c8 05 cb 0d 1e d2 37 |...............7| 000053c0 24 64 73 25 3d c3 64 72 69 76 65 25 3a 24 74 72 |$ds%=.drive%:$tr| 000053d0 25 3d c3 74 72 61 63 6b 25 3a 24 68 64 25 3d c3 |%=.track%:$hd%=.| 000053e0 68 65 61 64 25 3a 24 73 63 25 3d c3 73 65 63 74 |head%:$sc%=.sect| 000053f0 6f 72 25 0d 1e dc 18 f2 72 65 64 72 61 77 77 69 |or%.....redrawwi| 00005400 6e 64 6f 77 28 63 6f 6d 70 25 29 0d 1e e6 0f 3d |ndow(comp%)....=| 00005410 65 6e 64 64 69 61 6c 6f 67 25 0d 1e f0 05 3a 0d |enddialog%....:.| 00005420 1e fa 1f dd a4 63 6c 69 63 6b 64 69 61 6c 6f 67 |.....clickdialog| 00005430 63 6f 6d 70 61 72 65 28 69 63 6f 6e 25 29 0d 1f |compare(icon%)..| 00005440 04 1a 65 6e 64 64 69 61 6c 6f 67 25 3d a3 3a e7 |..enddialog%=.:.| 00005450 67 25 3d 32 37 3a 3d b9 0d 1f 0e 0c c8 8e 69 63 |g%=27:=.......ic| 00005460 6f 6e 25 ca 0d 1f 18 3b c9 30 3a e7 a4 63 6f 6d |on%....;.0:..com| 00005470 70 61 72 65 20 f2 72 65 64 72 61 77 77 69 6e 64 |pare .redrawwind| 00005480 6f 77 28 63 6f 6d 70 31 25 29 3a f4 45 4c 53 45 |ow(comp1%):.ELSE| 00005490 65 6e 64 64 69 61 6c 6f 67 25 3d 54 52 55 45 0d |enddialog%=TRUE.| 000054a0 1f 22 13 c9 31 3a 65 6e 64 64 69 61 6c 6f 67 25 |."..1:enddialog%| 000054b0 3d b9 0d 1f 2c 05 cb 0d 1f 36 0f 3d 65 6e 64 64 |=...,....6.=endd| 000054c0 69 61 6c 6f 67 25 0d 1f 40 04 0d 1f 4a 16 dd a4 |ialog%..@...J...| 000054d0 63 6f 6d 70 61 72 65 3a f5 3a e7 49 25 3d 30 8c |compare:.:.I%=0.| 000054e0 0d 1f 54 2e 64 69 73 63 61 64 64 72 25 3d 28 28 |..T.discaddr%=((| 000054f0 73 74 25 2a 32 2b 73 68 25 29 2a 35 2b 73 73 25 |st%*2+sh%)*5+ss%| 00005500 29 2a 31 30 32 34 2b 28 30 3c 3c 32 39 29 0d 1f |)*1024+(0<<29)..| 00005510 5e 29 c8 99 22 41 44 46 53 5f 44 69 73 63 4f 70 |^).."ADFS_DiscOp| 00005520 22 2c 30 2c 31 2c 64 69 73 63 61 64 64 72 25 2c |",0,1,discaddr%,| 00005530 53 25 2c 31 30 32 34 0d 1f 68 16 64 69 73 63 61 |S%,1024..h.disca| 00005540 64 64 72 25 2b 3d 28 31 3c 3c 32 39 29 0d 1f 72 |ddr%+=(1<<29)..r| 00005550 29 c8 99 22 41 44 46 53 5f 44 69 73 63 4f 70 22 |).."ADFS_DiscOp"| 00005560 2c 30 2c 31 2c 64 69 73 63 61 64 64 72 25 2c 45 |,0,1,discaddr%,E| 00005570 25 2c 31 30 32 34 0d 1f 7c 05 cd 0d 1f 86 1c 6e |%,1024..|......n| 00005580 63 25 3d 2d 31 3a 67 25 3d a6 30 3a e7 67 25 3d |c%=-1:g%=.0:.g%=| 00005590 32 37 ef 37 3a 3d 30 0d 1f 90 19 f5 3a e7 49 25 |27.7:=0.....:.I%| 000055a0 3f 53 25 3c 3e 49 25 3f 45 25 6e 63 25 3d 49 25 |?S%<>I%?E%nc%=I%| 000055b0 0d 1f 9a 19 49 25 2b 3d 31 3a fd 49 25 3d 31 30 |....I%+=1:.I%=10| 000055c0 32 34 84 6e 63 25 3e 2d 31 0d 1f a4 3f e7 49 25 |24.nc%>-1...?.I%| 000055d0 3d 31 30 32 34 49 25 3d 30 3a 73 73 25 3d 28 73 |=1024I%=0:ss%=(s| 000055e0 73 25 2b 31 29 83 35 3a e7 73 73 25 3d 30 73 68 |s%+1).5:.ss%=0sh| 000055f0 25 3d 28 73 68 25 2b 31 29 83 32 3a e7 73 68 25 |%=(sh%+1).2:.sh%| 00005600 3d 30 73 74 25 2b 3d 31 0d 1f ae 21 24 74 72 25 |=0st%+=1...!$tr%| 00005610 3d c3 73 74 25 3a 24 68 64 25 3d c3 73 68 25 3a |=.st%:$hd%=.sh%:| 00005620 24 73 63 25 3d c3 73 73 25 0d 1f b8 18 f2 72 65 |$sc%=.ss%.....re| 00005630 64 72 61 77 77 69 6e 64 6f 77 28 6f 70 65 6e 25 |drawwindow(open%| 00005640 29 0d 1f c2 22 fd 28 73 74 25 3d 65 74 25 80 73 |)...".(st%=et%.s| 00005650 68 25 3d 65 68 25 80 73 73 25 3d 65 73 25 29 84 |h%=eh%.ss%=es%).| 00005660 6e 63 25 0d 1f cc 1a 24 28 66 6f 75 6e 64 25 2b |nc%....$(found%+| 00005670 32 30 29 3d 22 26 22 2b c3 7e 6e 63 25 0d 1f d6 |20)="&"+.~nc%...| 00005680 29 e7 73 74 25 3d 65 74 25 80 73 68 25 3d 65 68 |).st%=et%.sh%=eh| 00005690 25 80 73 73 25 3d 65 73 25 3a 3d 30 8b 3d 28 6e |%.ss%=es%:=0.=(n| 000056a0 63 25 3e 2d 31 29 0d 1f e0 05 3a 0d 1f ea 2d 2a |c%>-1)....:...-*| 000056b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 53 61 76 65 20 63 |********* Save c| 000056c0 75 72 72 65 6e 74 20 73 65 63 74 6f 72 20 2a 2a |urrent sector **| 000056d0 2a 2a 2a 2a 2a 2a 2a 2a 0d 1f f4 04 0d 1f fe 1f |********........| 000056e0 dd a4 63 6c 69 63 6b 64 69 61 6c 6f 67 73 61 76 |..clickdialogsav| 000056f0 65 73 65 63 28 69 63 6f 6e 25 29 0d 20 08 10 65 |esec(icon%). ..e| 00005700 6e 64 64 69 61 6c 6f 67 25 3d a3 0d 20 12 0c c8 |nddialog%=.. ...| 00005710 8e 69 63 6f 6e 25 ca 0d 20 1c 13 c9 30 3a 65 6e |.icon%.. ...0:en| 00005720 64 64 69 61 6c 6f 67 25 3d b9 0d 20 26 0e f2 70 |ddialog%=.. &..p| 00005730 65 72 6d 61 6e 65 6e 74 0d 20 30 06 c9 31 0d 20 |ermanent. 0..1. | 00005740 3a 10 65 6e 64 64 69 61 6c 6f 67 25 3d b9 0d 20 |:.enddialog%=.. | 00005750 44 05 cb 0d 20 4e 26 e7 65 6e 64 64 69 61 6c 6f |D... N&.enddialo| 00005760 67 25 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 |g%.."Wimp_Create| 00005770 4d 65 6e 75 22 2c 2c 2d 31 0d 20 58 0f 3d 65 6e |Menu",,-1. X.=en| 00005780 64 64 69 61 6c 6f 67 25 0d 20 62 05 3a 0d 20 6c |ddialog%. b.:. l| 00005790 2b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 4b 65 79 62 |+********** Keyb| 000057a0 6f 61 72 64 20 72 6f 75 74 69 6e 65 73 20 2a 2a |oard routines **| 000057b0 2a 2a 2a 2a 2a 2a 2a 2a 0d 20 76 05 3a 0d 20 80 |********. v.:. .| 000057c0 0f dd f2 68 65 78 28 6b 65 79 25 29 0d 20 8a 20 |...hex(key%). . | 000057d0 e7 a7 22 30 31 32 33 34 35 36 37 38 39 41 42 43 |.."0123456789ABC| 000057e0 44 45 46 22 2c bd 6b 65 79 25 29 8c 0d 20 94 16 |DEF",.key%).. ..| 000057f0 66 69 72 73 74 25 3d 28 28 73 78 25 2d 36 29 83 |first%=((sx%-6).| 00005800 33 29 0d 20 9e 0e e7 66 69 72 73 74 25 3d 30 8c |3). ...first%=0.| 00005810 0d 20 a8 1d c1 6c 24 28 6c 69 6e 65 25 29 2c 73 |. ...l$(line%),s| 00005820 78 25 2b 31 2c 31 29 3d bd 6b 65 79 25 0d 20 b2 |x%+1,1)=.key%. .| 00005830 23 61 73 63 25 3d a0 28 22 26 22 2b c1 6c 24 28 |#asc%=.("&"+.l$(| 00005840 6c 69 6e 65 25 29 2c 73 78 25 2b 31 2c 32 29 29 |line%),sx%+1,2))| 00005850 0d 20 bc 1d e7 61 73 63 25 3e 33 31 80 61 73 63 |. ...asc%>31.asc| 00005860 25 3c 32 35 36 8b 61 73 63 25 3d 34 36 0d 20 c6 |%<256.asc%=46. .| 00005870 24 c1 6c 24 28 6c 69 6e 65 25 29 2c 35 38 2b 28 |$.l$(line%),58+(| 00005880 73 78 25 2d 36 29 81 33 2c 31 29 3d bd 61 73 63 |sx%-6).3,1)=.asc| 00005890 25 0d 20 d0 12 63 78 25 2b 3d 31 36 3a 73 78 25 |%. ..cx%+=16:sx%| 000058a0 2b 3d 31 0d 20 da 37 c8 99 22 57 69 6d 70 5f 53 |+=1. .7.."Wimp_S| 000058b0 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 22 |etCaretPosition"| 000058c0 2c 68 61 6e 64 6c 65 25 2c 2d 31 2c 63 78 25 2c |,handle%,-1,cx%,| 000058d0 63 79 25 2c 33 36 2c 73 78 25 0d 20 e4 05 cc 0d |cy%,36,sx%. ....| 000058e0 20 ee 0e e7 66 69 72 73 74 25 3d 31 8c 0d 20 f8 | ...first%=1.. .| 000058f0 1d c1 6c 24 28 6c 69 6e 65 25 29 2c 73 78 25 2b |..l$(line%),sx%+| 00005900 31 2c 31 29 3d bd 6b 65 79 25 0d 21 02 21 61 73 |1,1)=.key%.!.!as| 00005910 63 25 3d a0 28 22 26 22 2b c1 6c 24 28 6c 69 6e |c%=.("&"+.l$(lin| 00005920 65 25 29 2c 73 78 25 2c 32 29 29 0d 21 0c 1d e7 |e%),sx%,2)).!...| 00005930 61 73 63 25 3e 33 31 80 61 73 63 25 3c 32 35 36 |asc%>31.asc%<256| 00005940 8b 61 73 63 25 3d 34 36 0d 21 16 24 c1 6c 24 28 |.asc%=46.!.$.l$(| 00005950 6c 69 6e 65 25 29 2c 35 38 2b 28 73 78 25 2d 37 |line%),58+(sx%-7| 00005960 29 81 33 2c 31 29 3d bd 61 73 63 25 0d 21 20 12 |).3,1)=.asc%.! .| 00005970 63 78 25 2d 3d 31 36 3a 73 78 25 2d 3d 31 0d 21 |cx%-=16:sx%-=1.!| 00005980 2a 37 c8 99 22 57 69 6d 70 5f 53 65 74 43 61 72 |*7.."Wimp_SetCar| 00005990 65 74 50 6f 73 69 74 69 6f 6e 22 2c 68 61 6e 64 |etPosition",hand| 000059a0 6c 65 25 2c 2d 31 2c 63 78 25 2c 63 79 25 2c 33 |le%,-1,cx%,cy%,3| 000059b0 36 2c 73 78 25 0d 21 34 05 cd 0d 21 3e 05 cd 0d |6,sx%.!4...!>...| 000059c0 21 48 1a f2 72 65 64 72 61 77 77 69 6e 64 6f 77 |!H..redrawwindow| 000059d0 28 68 61 6e 64 6c 65 25 29 0d 21 52 05 cd 0d 21 |(handle%).!R...!| 000059e0 5c 05 e1 0d 21 66 05 3a 0d 21 70 11 dd f2 61 73 |\...!f.:.!p...as| 000059f0 63 69 69 28 6b 65 79 25 29 0d 21 7a 16 e7 6b 65 |cii(key%).!z..ke| 00005a00 79 25 3e 33 31 80 6b 65 79 25 3c 31 32 37 8c 0d |y%>31.key%<127..| 00005a10 21 84 1d c1 6c 24 28 6c 69 6e 65 25 29 2c 73 78 |!...l$(line%),sx| 00005a20 25 2b 31 2c 31 29 3d bd 6b 65 79 25 0d 21 8e 29 |%+1,1)=.key%.!.)| 00005a30 c1 6c 24 28 6c 69 6e 65 25 29 2c 28 73 78 25 2d |.l$(line%),(sx%-| 00005a40 35 37 29 2a 33 2b 37 2c 32 29 3d a4 70 61 64 28 |57)*3+7,2)=.pad(| 00005a50 6b 65 79 25 29 0d 21 98 12 63 78 25 2b 3d 31 36 |key%).!..cx%+=16| 00005a60 3a 73 78 25 2b 3d 31 0d 21 a2 37 c8 99 22 57 69 |:sx%+=1.!.7.."Wi| 00005a70 6d 70 5f 53 65 74 43 61 72 65 74 50 6f 73 69 74 |mp_SetCaretPosit| 00005a80 69 6f 6e 22 2c 68 61 6e 64 6c 65 25 2c 2d 31 2c |ion",handle%,-1,| 00005a90 63 78 25 2c 63 79 25 2c 33 36 2c 73 78 25 0d 21 |cx%,cy%,36,sx%.!| 00005aa0 ac 1a f2 72 65 64 72 61 77 77 69 6e 64 6f 77 28 |...redrawwindow(| 00005ab0 68 61 6e 64 6c 65 25 29 0d 21 b6 05 cd 0d 21 c0 |handle%).!....!.| 00005ac0 05 e1 0d 21 ca 05 3a 0d 21 d4 0f dd f2 70 65 72 |...!..:.!....per| 00005ad0 6d 61 6e 65 6e 74 0d 21 de 49 e3 49 25 3d 30 b8 |manent.!.I.I%=0.| 00005ae0 36 33 3a 4c 25 3d 49 25 2a 31 36 2b 53 25 3a e3 |63:L%=I%*16+S%:.| 00005af0 4a 25 3d 30 b8 31 35 3a 43 25 3d a0 28 22 26 22 |J%=0.15:C%=.("&"| 00005b00 2b c1 6c 24 28 49 25 29 2c 37 2b 4a 25 2a 33 2c |+.l$(I%),7+J%*3,| 00005b10 32 29 29 3a 4c 25 3f 4a 25 3d 43 25 3a ed 2c 0d |2)):L%?J%=C%:.,.| 00005b20 21 e8 22 f2 73 61 76 65 73 65 63 74 6f 72 28 74 |!.".savesector(t| 00005b30 74 25 2c 74 68 25 2c 74 73 25 2c 31 2c 74 64 25 |t%,th%,ts%,1,td%| 00005b40 29 0d 21 f2 05 e1 0d 21 fc 05 3a 0d 22 06 27 2a |).!....!..:.".'*| 00005b50 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 4d 69 73 63 20 72 |********* Misc r| 00005b60 6f 75 74 69 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a 2a |outines ********| 00005b70 2a 2a 0d 22 10 05 3a 0d 22 1a 21 dd f2 72 65 64 |**."..:.".!..red| 00005b80 6f 77 69 6e 64 6f 77 28 68 61 6e 64 6c 65 25 2c |owindow(handle%,| 00005b90 78 30 25 2c 79 30 25 29 0d 22 24 1e f2 6c 77 61 |x0%,y0%)."$..lwa| 00005ba0 6f 72 69 67 69 6e 28 62 6c 6f 63 6b 25 2c 78 30 |origin(block%,x0| 00005bb0 25 2c 79 30 25 29 0d 22 2e 0e c8 8e 68 61 6e 64 |%,y0%)."....hand| 00005bc0 6c 65 25 ca 0d 22 38 0d c9 69 6e 66 6f 25 3a e6 |le%.."8..info%:.| 00005bd0 30 0d 22 42 2d e3 69 25 3d 30 b8 33 3a c8 93 c8 |0."B-.i%=0.3:...| 00005be0 90 78 30 25 2b 31 36 30 2c 79 30 25 2b 32 30 2b |.x0%+160,y0%+20+| 00005bf0 34 38 2a 69 25 2c 34 32 30 2c 34 30 3a ed 0d 22 |48*i%,420,40:.."| 00005c00 4c 06 e6 37 0d 22 56 2b e3 69 25 3d 30 b8 33 3a |L..7."V+.i%=0.3:| 00005c10 c8 93 78 30 25 2b 31 36 30 2c 79 30 25 2b 32 30 |..x0%+160,y0%+20| 00005c20 2b 34 38 2a 69 25 2c 34 32 30 2c 34 30 3a ed 0d |+48*i%,420,40:..| 00005c30 22 60 1b ec 78 30 25 2b 32 30 2c 79 30 25 2b 31 |"`..x0%+20,y0%+1| 00005c40 39 36 3a f1 22 4e 61 6d 65 22 0d 22 6a 1d ec 78 |96:."Name"."j..x| 00005c50 30 25 2b 33 33 30 2c 79 30 25 2b 31 39 36 3a f1 |0%+330,y0%+196:.| 00005c60 22 21 44 7a 61 70 22 0d 22 74 1e ec 78 30 25 2b |"!Dzap"."t..x0%+| 00005c70 32 30 2c 79 30 25 2b 31 34 38 3a f1 22 50 75 72 |20,y0%+148:."Pur| 00005c80 70 6f 73 65 22 0d 22 7e 2a ec 78 30 25 2b 32 32 |pose"."~*.x0%+22| 00005c90 36 2c 79 30 25 2b 31 34 38 3a f1 22 44 69 73 63 |6,y0%+148:."Disc| 00005ca0 20 73 65 63 74 6f 72 20 65 64 69 74 6f 72 22 0d | sector editor".| 00005cb0 22 88 1d ec 78 30 25 2b 32 30 2c 79 30 25 2b 31 |"...x0%+20,y0%+1| 00005cc0 30 30 3a f1 22 41 75 74 68 6f 72 22 0d 22 92 2e |00:."Author"."..| 00005cd0 ec 78 30 25 2b 32 30 32 2c 79 30 25 2b 31 30 30 |.x0%+202,y0%+100| 00005ce0 3a f1 22 47 20 4d 20 48 6f 6c 64 65 6e 20 28 63 |:."G M Holden (c| 00005cf0 29 20 41 53 50 20 27 39 31 22 0d 22 9c 1d ec 78 |) ASP '91"."...x| 00005d00 30 25 2b 32 30 2c 79 30 25 2b 35 32 3a f1 22 56 |0%+20,y0%+52:."V| 00005d10 65 72 73 69 6f 6e 22 0d 22 a6 1c ec 78 30 25 2b |ersion"."...x0%+| 00005d20 33 33 30 2c 79 30 25 2b 35 32 3a f1 22 76 20 31 |330,y0%+52:."v 1| 00005d30 2e 30 22 0d 22 b0 16 c9 63 61 74 25 3a 79 30 25 |.0"."...cat%:y0%| 00005d40 2d 3d 34 3a 49 25 3d 2d 31 0d 22 ba 1e 62 79 25 |-=4:I%=-1."..by%| 00005d50 3d 62 6c 6f 63 6b 25 21 38 3a 74 79 25 3d 62 6c |=block%!8:ty%=bl| 00005d60 6f 63 6b 25 21 31 36 0d 22 c4 1d f5 3a 49 25 2b |ock%!16."...:I%+| 00005d70 3d 31 3a fd 79 30 25 2b 49 25 2a 33 32 3e 62 79 |=1:.y0%+I%*32>by| 00005d80 25 2d 33 32 0d 22 ce 3a f5 3a 49 25 2b 3d 31 3a |%-32.".:.:I%+=1:| 00005d90 ec 78 30 25 2c 79 30 25 2b 49 25 2a 33 32 3a f1 |.x0%,y0%+I%*32:.| 00005da0 6e 24 28 6e 25 2d 49 25 29 3a fd 79 30 25 2b 49 |n$(n%-I%):.y0%+I| 00005db0 25 2a 33 32 3e 74 79 25 84 49 25 3d 6e 25 0d 22 |%*32>ty%.I%=n%."| 00005dc0 d8 1a c9 64 69 73 70 6c 61 79 25 3a 79 30 25 2d |...display%:y0%-| 00005dd0 3d 34 3a 49 25 3d 2d 31 0d 22 e2 1e 62 79 25 3d |=4:I%=-1."..by%=| 00005de0 62 6c 6f 63 6b 25 21 38 3a 74 79 25 3d 62 6c 6f |block%!8:ty%=blo| 00005df0 63 6b 25 21 31 36 0d 22 ec 1d f5 3a 49 25 2b 3d |ck%!16."...:I%+=| 00005e00 31 3a fd 79 30 25 2b 49 25 2a 33 32 3e 62 79 25 |1:.y0%+I%*32>by%| 00005e10 2d 33 32 0d 22 f6 3a f5 3a 49 25 2b 3d 31 3a ec |-32.".:.:I%+=1:.| 00005e20 78 30 25 2c 79 30 25 2b 49 25 2a 33 32 3a f1 6c |x0%,y0%+I%*32:.l| 00005e30 24 28 36 34 2d 49 25 29 3a fd 79 30 25 2b 49 25 |$(64-I%):.y0%+I%| 00005e40 2a 33 32 3e 74 79 25 84 49 25 3d 36 34 0d 23 00 |*32>ty%.I%=64.#.| 00005e50 05 cb 0d 23 0a 05 e1 0d 23 14 05 3a 0d 23 1e 14 |...#....#..:.#..| 00005e60 dd f2 73 74 6f 72 65 3a 44 25 3d bb 24 64 73 25 |..store:D%=.$ds%| 00005e70 0d 23 28 1e 54 25 3d bb 24 74 72 25 3a 48 25 3d |.#(.T%=.$tr%:H%=| 00005e80 bb 24 68 64 25 3a 5a 25 3d bb 24 73 63 25 0d 23 |.$hd%:Z%=.$sc%.#| 00005e90 32 2b 64 72 69 76 65 25 3d 44 25 3a 74 72 61 63 |2+drive%=D%:trac| 00005ea0 6b 25 3d 54 25 3a 68 65 61 64 25 3d 48 25 3a 73 |k%=T%:head%=H%:s| 00005eb0 65 63 74 6f 72 25 3d 5a 25 0d 23 3c 05 e1 0d 23 |ector%=Z%.#<...#| 00005ec0 46 05 3a 0d 23 50 16 dd f2 72 65 73 74 6f 72 65 |F.:.#P...restore| 00005ed0 3a 24 64 73 25 3d c3 44 25 0d 23 5a 1e 24 74 72 |:$ds%=.D%.#Z.$tr| 00005ee0 25 3d c3 54 25 3a 24 68 64 25 3d c3 48 25 3a 24 |%=.T%:$hd%=.H%:$| 00005ef0 73 63 25 3d c3 5a 25 0d 23 64 05 e1 0d 23 6e 05 |sc%=.Z%.#d...#n.| 00005f00 3a 0d 23 78 20 dd f2 6c 6f 61 64 73 65 63 74 6f |:.#x ..loadsecto| 00005f10 72 28 74 25 2c 68 25 2c 73 25 2c 6c 25 2c 64 25 |r(t%,h%,s%,l%,d%| 00005f20 29 0d 23 82 23 64 69 73 63 61 64 64 72 25 3d 28 |).#.#discaddr%=(| 00005f30 28 74 25 2a 32 2b 68 25 29 2a 35 2b 73 25 29 2a |(t%*2+h%)*5+s%)*| 00005f40 31 30 32 34 0d 23 8c 24 6c 65 6e 25 3d 31 30 32 |1024.#.$len%=102| 00005f50 34 2a 6c 25 3a 64 69 73 63 61 64 64 72 25 2b 3d |4*l%:discaddr%+=| 00005f60 28 64 25 3c 3c 32 39 29 0d 23 96 29 c8 99 22 41 |(d%<<29).#.).."A| 00005f70 44 46 53 5f 44 69 73 63 4f 70 22 2c 30 2c 31 2c |DFS_DiscOp",0,1,| 00005f80 64 69 73 63 61 64 64 72 25 2c 53 25 2c 6c 65 6e |discaddr%,S%,len| 00005f90 25 0d 23 a0 05 e1 0d 23 aa 05 3a 0d 23 b4 20 dd |%.#....#..:.#. .| 00005fa0 f2 73 61 76 65 73 65 63 74 6f 72 28 74 25 2c 68 |.savesector(t%,h| 00005fb0 25 2c 73 25 2c 6c 25 2c 64 25 29 0d 23 be 23 64 |%,s%,l%,d%).#.#d| 00005fc0 69 73 63 61 64 64 72 25 3d 28 28 74 25 2a 32 2b |iscaddr%=((t%*2+| 00005fd0 68 25 29 2a 35 2b 73 25 29 2a 31 30 32 34 0d 23 |h%)*5+s%)*1024.#| 00005fe0 c8 24 6c 65 6e 25 3d 31 30 32 34 2a 6c 25 3a 64 |.$len%=1024*l%:d| 00005ff0 69 73 63 61 64 64 72 25 2b 3d 28 64 25 3c 3c 32 |iscaddr%+=(d%<<2| 00006000 39 29 0d 23 d2 29 c8 99 22 41 44 46 53 5f 44 69 |9).#.).."ADFS_Di| 00006010 73 63 4f 70 22 2c 30 2c 32 2c 64 69 73 63 61 64 |scOp",0,2,discad| 00006020 64 72 25 2c 53 25 2c 6c 65 6e 25 0d 23 dc 05 e1 |dr%,S%,len%.#...| 00006030 0d 23 e6 05 3a 0d 23 f0 19 dd f2 64 7a 61 70 69 |.#..:.#....dzapi| 00006040 6e 69 74 3a 66 6f 72 6d 61 74 25 3d 40 25 0d 23 |nit:format%=@%.#| 00006050 fa 1e f4 20 28 63 29 20 4b 65 6e 64 61 6c 6c 20 |... (c) Kendall | 00006060 4b 2e 20 44 6f 77 6e 20 31 39 39 31 0d 24 04 20 |K. Down 1991.$. | 00006070 de 53 25 31 30 32 34 2a 34 30 2c 46 25 38 2c 6c |.S%1024*40,F%8,l| 00006080 24 28 36 34 29 2c 6e 24 28 36 34 29 0d 24 0e 18 |$(64),n$(64).$..| 00006090 de 64 73 25 34 2c 74 72 25 34 2c 68 64 25 34 2c |.ds%4,tr%4,hd%4,| 000060a0 73 63 25 34 0d 24 18 20 de 66 69 6e 64 73 74 72 |sc%4.$. .findstr| 000060b0 25 32 30 2c 66 6f 75 6e 64 25 33 30 2c 66 69 6c |%20,found%30,fil| 000060c0 65 25 33 30 0d 24 22 12 24 66 6f 75 6e 64 25 3d |e%30.$".$found%=| 000060d0 22 3e 3e 3e 3e 22 0d 24 2c 15 24 66 69 6c 65 25 |">>>>".$,.$file%| 000060e0 3d 22 44 7a 61 70 46 69 6c 65 22 0d 24 36 27 64 |="DzapFile".$6'd| 000060f0 72 69 76 65 25 3d 30 3a 74 72 61 63 6b 25 3d 30 |rive%=0:track%=0| 00006100 3a 68 65 61 64 25 3d 30 3a 73 65 63 74 6f 72 25 |:head%=0:sector%| 00006110 3d 30 0d 24 40 27 24 64 73 25 3d 22 30 22 3a 24 |=0.$@'$ds%="0":$| 00006120 74 72 25 3d 22 30 22 3a 24 68 64 25 3d 22 30 22 |tr%="0":$hd%="0"| 00006130 3a 24 73 63 25 3d 22 30 22 0d 24 4a 05 e1 0d ff |:$sc%="0".$J....| 00006140