Home » Archimedes archive » Archimedes World » AW-1994-10-Disc1.adf » Disk1Oct94 » !AWOct94/Goodies/Puzzle/!Puzzle/!RunImage
!AWOct94/Goodies/Puzzle/!Puzzle/!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-1994-10-Disc1.adf » Disk1Oct94 |
Filename: | !AWOct94/Goodies/Puzzle/!Puzzle/!RunImage |
Read OK: | ✔ |
File size: | 6FD3 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1DIM block% 1696,sprite% 11,scale% 16,pix% 256,scale2% 16,H$(9),mem%(3,7) 2PROCswinumbers:SYS&51 TO page%:rep%=block%+256 3ON ERROR CLOSE#0:OSCLI"ERROR "+REPORT$+" (errorcode "+STR$ERL+")":END 4PROCloadmessages:app$=FNmessage("TaskID") 5SYS"Wimp_Initialise",200,&4B534154,app$ 6FOR A%=0 TO 3:FOR B%=0 TO 7:READ mem%(A%,B%):NEXT:NEXT 7small%=0:big%=0:default$="-1":b%=3:A%=FNmakemem(mem%(0,0),mem%(2,0)) 8PROCinit 9ON ERROR PROCerror 10SYSGetTime% TO now% 11WHILE NOTquit% 12 IF dragging% THEN 13 SYS Poll%,6192,block% TO reason% 14 ELSE 15 IF timer% AND tflag%=1 THEN 16 SYSPollIdle%,6192,block%,now%+100 TO reason% 17 ELSE SYS Poll%,6193,block% TO reason% 18 ENDIF 19ENDIF 20 SYSGetTime% TO now% 21 CASE reason% OF 22 WHEN 0:IF dragging% THEN PROCdragging 23 WHEN 1:PROCdrawwindow(!block%) 24 WHEN 2: 25 IF !block%=view% THEN block%!24=0 26 SYS OpenWindow%,,block%:IF !block%=view% THEN SYSRedraw%,view%,-block%!20,block%!8-block%!16+block%!24,block%!12-block%!4-block%!20,block%!24 27 WHEN 3:SYS CloseWindow%,,block% 28 CASE !block% OF 29 WHEN main%:puzopen%=0:PROCtick(bar%,2,0):tflag%=tflag%AND2:IF tflag%=0 THEN delay%=now% 30 WHEN view%:viewopen%=0:PROCtick(bar%,3,0) 31 WHEN helpw%:help%=0:PROCtick(bar%,5,0):PROCtick(hel%,0,0) 32 WHEN timew%:timer%=0:PROCtick(bar%,4,0) 33 ENDCASE 34 WHEN 4:IF !block%=main% THEN watch%=0 35 WHEN 5:IF !block%=main% THEN watch%=-1 36 WHEN 6:PROCclick(block%!12,block%!16,block%!8,!block%,block%!4) 37 WHEN 7:REM *** Drag has ended 38 WHEN 8: 39 IF !block%=win% AND block%!4=5 AND block%!24=13 THEN 40 !block%=win%:SYSCloseWindow%,,block% 41 IF winH%=432 THEN 42 PROCmenushade(bar%,1,0):PROCmenushade(bar%,8,0) 43 PROCicontext(highw%,(b%-2)*4+1,$FNtext(win%,5)) 44 PROCicontext(highw%,(b%-2)*4+2,$FNtext(timew%,1)) 45 PROCicontext(highw%,(b%-2)*4+3,LEFT$(TIME$,15)) 46 ENDIF 47 ELSE SYS"Wimp_ProcessKey",block%!24 48 ENDIF 49 WHEN 9:PROCmenuselect 50 WHEN 10:REM *** Scroll request 51 WHEN 11:REM *** Lose caret 52 WHEN 12:REM *** Gain caret 53 WHEN 17,18:PROCreceive 54 ENDCASE 55 IF tflag%=1 AND timer% AND timetaken%DIV60<>(now%-timestarted%)DIV60 THEN PROCtime 56ENDWHILE 57PROCquit 58END 59 60DEFPROCquit 61 SYS"XHourglass_Smash" 62 IF big%<>0 THEN SYS"XOS_Module",7,,big% 63 IF small%<>0 THEN SYS"XOS_Module",7,,small% 64 SYS"XOS_ChangeDynamicArea",1,-16777216 65 CLOSE#0:SYS"XWimp_CloseDown" 66 END 67ENDPROC 68 69DEFPROCnomemory 70PROCreport(FNmessage("MustQuit"),-1):PROCquit 71ENDPROC 72 73DEFPROCtime:LOCAL H%,S%,M%,A$ 74H%=now%:H%-=timestarted%:H%=H%/100:S%=H%MOD60:H%=H%DIV60:M%=H%MOD60:H%=H%DIV60:A$=STR$H%+":"+STRING$(-1*(M%<10),"0")+STR$M%+"."+STRING$(-1*(S%<10),"0")+STR$S%:PROCicontext(timew%,1,A$):timetaken%=now%-timestarted% 75ENDPROC 76 77DEFPROCdragging 78 SYS Pointer%,,block%:x%=!block%:y%=block%!4:B%=block%!8 79 IF B%<>0 THEN 80 IF watchno%=0 THEN 81 !block%=dragging%:SYS GetWindow%,,block%:block%!12+=x%-block%!4-dx% 82 block%!8+=y%+dy%-block%!16:block%!4=x%-dx%:block%!16=y%+dy%:IF B%<>1 THEN block%!28=-1 83 SYS OpenWindow%,,block% 84 ENDIF 85 ELSE dragging%=0:PROCmakepointer("default"):IF watchno%<>0 THEN Y%=-1:REPEAT:Y%+=1:X%=-1:REPEAT:X%+=1:UNTIL s%(X%,Y%)=watchno% OR X%>b%-2:UNTIL s%(X%,Y%)=watchno%:watchno%=0:SYSRedraw%,main%,X%*xstep,-(Y%+1)*ystep,(X%+1)*xstep,-Y%*ystep 86 ENDIF 87ENDPROC 88 89DEFPROCdrawwindow(window%) 90 CASE window% OF 91 WHEN main%:PROCdrawmain 92 WHEN view%:PROCdrawview 93 WHEN helpw%:PROCdrawhelp 94 ENDCASE 95ENDPROC 96 97DEFPROCdrawmain 98 block%!0=main%:SYSGetInfo%,,block% 99 wwidth%=block%!52-block%!44:wheight%=block%!48-block%!56 100 SYS"Wimp_RedrawWindow",,block% TO more% 101 xo%=block%!4-block%!20:yo%=block%!16-block%!24 102 WHILE more% 103 x1%=((block%!28-xo%)DIVxstep):IF x1%<0 THEN x1%=0 104 x2%=((block%!36-xo%)DIVxstep):IF x2%>b%-1 THEN x2%=b%-1 105 y1%=((yo%-block%!40)DIVystep):IF y1%<0 THEN y1%=0 106 y2%=((yo%-block%!32)DIVystep):IF y2%>b%-1 THEN y2%=b%-1 107 FOR Y%=y1% TO y2%:FOR X%=x1% TO x2% 108 IF s%(X%,Y%)=0 THEN 109 IF help%=2 THEN 110 SYSSetColour%,cn%:RECTANGLEFILL xo%+X%*xstep,yo%-ystep-Y%*ystep,xstep,ystep 111 SYSSetColour%,cy% 112 FOR y%=0 TO b%-1:FOR x%=0 TO b%-1 113 IF s%(x%,y%)=x%+1+y%*b% OR (s%(x%,y%)=0 AND x%=b%-1 AND y%=b%-1) THEN RECTANGLEFILL xo%+X%*xstep+x%*(xstep/b%),yo%-Y%*ystep-(y%+1)*(ystep/b%),xstep/b%,ystep/b% 114 NEXT:NEXT 115 SYSSetColour%,cb% 116 FOR y%=0 TO b%-1:FOR x%=0 TO b%-1 117 RECTANGLE xo%+X%*xstep+x%*(xstep/b%),yo%-Y%*ystep-(y%+1)*(ystep/b%),xstep/b%,ystep/b% 118 NEXT:NEXT 119 ELSE SYSSetColour%,cb%:RECTANGLEFILL xo%+X%*xstep,yo%-ystep-Y%*ystep,xstep,ystep 120 ENDIF 121 ELSE 122 SYSSpriteOp%,52+256,small%,STR$(s%(X%,Y%)),xo%+X%*xstep,yo%-(Y%+1)*ystep,,scale%,pix% 123 IFwatchno%=s%(X%,Y%)THEN GCOL4,0:RECTANGLEFILL xo%+X%*xstep,yo%-(Y%+1)*ystep,xstep,ystep 124 ENDIF 125 SYSSetColour%,cb%:RECTANGLE xo%+X%*xstep,yo%-ystep-Y%*ystep,xstep,ystep 126 NEXT:NEXT 127 SYS"Wimp_GetRectangle",,block% TO more% 128 ENDWHILE 129ENDPROC 130 131DEFPROCdrawhelp:A%=RND(15) 132 !block%=helpw%:SYS"Wimp_RedrawWindow",,block% TO more% 133 WHILE more% 134 SYSSetColour%,cn% 135 RECTANGLEFILL block%!28,block%!32,block%!36-block%!28,block%!40-block%!32 136 SYSSetColour%,cy% 137 FOR y%=0 TO b%-1:FOR x%=0 TO b%-1 138 IF s%(x%,y%)=x%+1+y%*b% OR (s%(x%,y%)=0 AND x%=b%-1 AND y%=b%-1) THEN RECTANGLEFILL block%!4+x%*40,block%!16-(y%+1)*40-4,40 139 NEXT:NEXT 140 SYSSetColour%,cb% 141 FOR y%=0 TO b%-1:FOR x%=0 TO b%-1 142 RECTANGLE block%!4+x%*40,block%!16-(y%+1)*40-4,40 143 NEXT:NEXT 144 SYS"Wimp_GetRectangle",,block% TO more% 145 ENDWHILE 146ENDPROC 147 148DEFPROCpercent:T%=0:FOR y%=0 TO b%-1:FOR x%=0 TO b%-1:IF s%(x%,y%)=x%+1+y%*b% OR (s%(x%,y%)=0 AND x%=b%-1 AND y%=b%-1) THEN T%+=1 149 NEXT:NEXT:@%=&1020201:PROCicontext(timew%,2,STR$(T%*(100/(b%*b%)))):@%=10 150 IF T%<b%*b% THEN tflag%=tflag%AND1 ELSE tflag%=tflag%OR2:SYSGetTime% TO delay%:IF quit%=0 THEN PROCwin 151ENDPROC 152 153DEFPROCwin:PROCtime 154 VDU7:PROCicontext(win%,2,$FNtext(timew%,1)):!block%=win%:SYS GetWindow%,,block% 155 SYS &35,-1,11 TO ,,W%:SYS &35,-1,12 TO ,,H% 156 SYS &35,-1,4 TO ,,A%:SYS &35,-1,5 TO ,,U% 157 W%=(W%+1)<<A%:H%=(H%+1)<<U% 158 winW%=block%!12-block%!4:winH%=180:Y$=$FNtext(timew%,1):O$=$FNtable(b%,2) 159 IF VALLEFT$(Y$,INSTR(Y$,":")-1)<=VALLEFT$(O$,INSTR(O$,":")-1) AND VALMID$(Y$,INSTR(Y$,":")+1,2)<=VALMID$(O$,INSTR(O$,":")+1,2) AND VALRIGHT$(Y$,2)<VALRIGHT$(O$,2) THEN winH%=432 160 block%!4=W%/2-winW%/2:block%!12=block%!4+winW% 161 block%!8=H%/2-winH%/2:block%!16=block%!8+winH%:block%!28=-1 162 SYSOpenWindow%,,block% 163 IF winH%=432 THEN 164 A$=$FNtable(b%,1):PROCicontext(win%,5,A$):SYS"Wimp_SetCaretPosition",win%,5,,,-1,LENA$ 165 PROCmenushade(bar%,1,-1):PROCmenushade(bar%,8,-1) 166 ENDIF 167ENDPROC 168 169DEFPROCdrawview 170 block%!0=view%:SYSGetInfo%,,block% 171 wwidth%=block%!52-block%!44:wheight%=block%!48-block%!56 172 xo%=block%!4-block%!20:yo%=block%!16-block%!24 173 SYS"Wimp_RedrawWindow",,block% TO more% 174 !scale2%=(block%!12-block%!4):scale2%!4=(block%!16-block%!8) 175 scale2%!8=width%:scale2%!12=height% 176 FOR A%=0 TO 12 STEP 4:scale2%!A%=scale2%!A%*scale%!A%:NEXT 177 WHILE more% 178 SYSSpriteOp%,52+512,big%,big%+16,block%!4,block%!8,0,scale2%,pix% 179 SYS"Wimp_GetRectangle",,block% TO more% 180 ENDWHILE 181ENDPROC 182 183REM *************** Messages 184 185DEFPROCreceive 186 CASE block%!16 OF 187 WHEN 0:quit%=TRUE 188 WHEN 2:REM *** Data save 189 WHEN 3:PROCdataload(block%!40,FNstring(block%+44)) 190 WHEN &502: 191 !block%=256:SWAP block%!8,block%!12:block%!16=&503:A$="" 192 CASE block%!32 OF 193 WHEN -2:A$=FNmessage("BarHelp") 194 WHEN main%:A$=FNmessage("MainHelp0")+FNmessage("MainHelp1") 195 WHEN view%:A$=FNmessage("ViewHelp") 196 WHEN helpw%:A$=FNmessage("HelpHelp") 197 WHEN info%:A$=FNmessage("InfoHelp") 198 WHEN wid%:A$=FNmessage("WidHelp")+FNmessage("WidHelp"+STR$block%!36) 199 ENDCASE 200 $(block%+20)=A$:SYS"Wimp_SendMessage",17,block%,block%!4 201 WHEN &400C1: 202 SYSReadMode%,-1,3 TO ,,ncolour%:IF default$="" THEN PROCsplit 203 SYS"Wimp_ReadPixTrans",512,big%,big%+16,,,,scale%,pix% 204 SYSSpriteOp%,40+512,big%,big%+16 TO ,,,,,,mode% 205 SYSReadMode%,mode%,3 TO ,,ncolour% 206 IF ncolour%=63 THEN SYS"ColourTrans_SelectTable",mode%,0,-1,-1,pix% 207 WHEN &400C0: 208 sx%=block%!24:sy%=block%!28 209 CASE block%!32 OF 210 WHEN 6:PROCmakelist 211 WHEN 7: 212 FOR B%=0 TO 15:PROCtick(col%,B%,0):NEXT 213 CASE block%!36 OF 214 WHEN 0:PROCtick(col%,cb%,-1) 215 WHEN 1:PROCtick(col%,cy%,-1) 216 WHEN 2:PROCtick(col%,cn%,-1) 217 ENDCASE 218 $col%=FNmessage("Men8."+STR$(block%!36+1)) 219 SYS"Wimp_CreateSubMenu",,col%,sx%,sy% 220 WHEN 8:$FNtext(wid%,1)=STR$b%:SYS"Wimp_CreateSubMenu",,wid%,sx%,sy% 221 ENDCASE 222 ENDCASE 223ENDPROC 224 225DEFPROCmakelist 226 A%=lis%+28:!A%=0:PROCtick(lis%,0,default$=""):index%=0 227 REPEAT 228 SYS"XOS_GBPB",10,"<PuzPic$Dir>",rep%,1,index%,255,0 TO ,,,,index%;flag% 229 IF index%=1 AND (flag%AND1)=0 THEN !A%+=2 230 IF index%<>-1 AND ((!rep%AND&FFF00)>>8)=&FF9 AND (flag%AND1)=0 THEN 231 A%+=24:$(A%+12)=FNstring(rep%+20):!A%=0:A%!4=0:A%!8=&7000021 232 IF "<PuzPic$Dir>."+$(A%+12)=default$ THEN !A%=1 233 ENDIF 234 UNTIL index%=-1 OR flag%AND1 235 !A%+=128:SYS"Wimp_CreateSubMenu",,lis%,sx%,sy% 236ENDPROC 237 238DEFFNstring(ptr%):LOCAL A$:WHILE ?ptr%<>0:A$+=CHR$(?ptr%):ptr%+=1:ENDWHILE:=A$ 239 240DEFPROCdataload(type%,path$) 241 IF type%=&FF9 THEN default$=path$:PROCloadsprite(path$):PROCsplit:PROCvoidmain 242ENDPROC 243 244REM *************** Clicks 245 246DEFPROCmakepointer(A$):SYS"XWimp_SpriteOp",36,,"ptr_"+A$,2,0,0,0,0:ENDPROC 247 248DEFPROCclick(window%,icon%,button%,X%,Y%) 249 IF ((button%=1 AND window%>0) OR button%AND64) AND window%<>main% THEN PROCstartdrag 250 CASE window% OF 251 WHEN -2: 252 CASE button% OF 253 WHEN 1:PROCopen(view%) 254 WHEN 2:PROCmenu(X%-64,96+44*11+50) 255 WHEN 4:PROCopen(main%) 256 ENDCASE 257 WHEN helpw%,view%:IF button%=2 THEN PROCmenu(X%-64,Y%) 258 WHEN timew%:IF button%=2 THEN PROCmenu(X%-64,Y%) 259 IF icon%=4 THEN 260 !block%=highw%:SYS GetWindow%,,block%:SYS &35,-1,11 TO ,,W%:SYS &35,-1,12 TO ,,H% 261 SYS &35,-1,4 TO ,,A%:SYS &35,-1,5 TO ,,U%:W%=(W%+1)<<A%:H%=(H%+1)<<U% 262 winW%=block%!12-block%!4:winH%=block%!16-block%!8:block%!4=W%/2-winW%/2 263 block%!12=block%!4+winW%:block%!8=H%/2-winH%/2:block%!16=block%!8+winH% 264 SYSOpenWindow%,,block% 265 ENDIF 266 WHEN main%:IF button%=2 THEN PROCmenu(X%-64,Y%) ELSE IF (tflag%AND2)=0 THEN PROCmainclick(X%,Y%):PROCpercent ELSE IF button%AND64 PROCstartdrag 267 WHEN win%:IF button%=2 THEN PROCmenu(X%-64,Y%) 268 IF icon%=3 THEN 269 !block%=win%:SYSCloseWindow%,,block% 270 IF winH%=432 THEN 271 PROCmenushade(bar%,1,0):PROCmenushade(bar%,8,0) 272 PROCicontext(highw%,(b%-2)*4+1,$FNtext(win%,5)) 273 PROCicontext(highw%,(b%-2)*4+2,$FNtext(timew%,1)) 274 PROCicontext(highw%,(b%-2)*4+3,LEFT$(TIME$,15)) 275 ENDIF 276 ENDIF 277 WHEN highw%: 278 IF button%<>2 THEN 279 IF icon%=36 THEN 280 FOR A%=3 TO 10:$FNtable(A%,1)="Chris Morison":$FNtable(A%,2)="99:59:59" 281 $FNtable(A%,3)="Wed,19 Jan 1994":NEXT 282 !block%=highw%:SYSGetWindow%,,block%:SYSRedraw%,highw%,block%!20,block%!8-block%!16+block%!24,block%!12-block%!4+block%!20,block%!24 283 ENDIF 284 ELSE PROCmenu(X%-64,Y%) 285 ENDIF 286 WHEN wid%: 287 tempb%=VAL($FNtext(wid%,1)) 288 CASE icon% OF 289 WHEN 0:IF button%=1 THEN tempb%+=1 ELSE IF button%=4 THEN tempb%-=1 290 WHEN 2:IF button%=1 THEN tempb%-=1 ELSE IF button%=4 THEN tempb%+=1 291 WHEN 3: 292 b%=VAL($FNtext(wid%,1)):PROCsplit:PROCunmix:PROCshuffle:PROCvoidmain 293 IF button%=4 THEN SYSCreateMenu%,,-1 294 ENDCASE 295 IF tempb%<3 THEN tempb%=3 ELSE IF tempb%>10 THEN tempb%=10 296 PROCicontext(wid%,1,STR$tempb%) 297 ENDCASE 298ENDPROC 299 300DEFPROCstartdrag 301dragging%=window%:!block%=window%:SYS GetWindow%,,block%:dx%=X%-block%!4:dy%=block%!16-Y%:PROCmakepointer("hand") 302ENDPROC 303 304DEFPROCmainclick(x%,y%) 305 block%!0=main%:SYSGetInfo%,,block% 306 wwidth%=block%!52-block%!44:wheight%=block%!48-block%!56 307 SYSGetWindow%,,block%:xo%=block%!4-block%!20:yo%=block%!16-block%!24 308 mx%=(x%-xo%)DIVxstep:my%=(yo%-y%)DIVystep:oldx%=bx%:oldy%=by%:flag%=0 309 IF mx%=b% THEN mx%=b%-1 ELSE IF mx%<0 THEN mx%=0 310 IF my%=b% THEN my%=b%-1 ELSE IF my%<0 THEN my%=0 311 IF my%=by% AND mx%=bx% AND watchno%<>mx%+my%*b%+1 AND mx%+my%*b%+1<>b%*b% THEN 312 watchno%=mx%+my%*b%+1:IF dragging%=0 THEN dragging%=window% 313 Y%=-1:REPEAT:Y%+=1:X%=-1:REPEAT:X%+=1:UNTIL s%(X%,Y%)=watchno% OR X%>b%-2:UNTIL s%(X%,Y%)=watchno%:SYSRedraw%,main%,X%*xstep,-(Y%+1)*ystep,(X%+1)*xstep,-Y%*ystep 314 ENDIF 315 IF my%=by% THEN 316 WHILE mx%>bx%:s%(bx%,by%)=s%(bx%+1,by%):bx%+=1:ENDWHILE 317 WHILE mx%<bx%:s%(bx%,by%)=s%(bx%-1,by%):bx%-=1:ENDWHILE 318 IF oldx%<bx%THEN x0%=oldx%*xstep:x1%=(bx%+1)*xstep ELSE x0%=bx%*xstep:x1%=(oldx%+1)*xstep 319 s%(bx%,by%)=0:SYSRedraw%,main%,x0%,-(by%+1)*ystep,x1%,-by%*ystep 320 x0%=(x0%/xstep)*40:x1%=(x1%/xstep)*40:SYSRedraw%,helpw%,x0%,-(by%+1)*40,x1%,-by%*40 321 ELSE 322 IF mx%=bx% THEN 323 WHILE my%>by%:s%(bx%,by%)=s%(bx%,by%+1):by%+=1:ENDWHILE 324 WHILE my%<by%:s%(bx%,by%)=s%(bx%,by%-1):by%-=1:ENDWHILE 325 IFoldy%<by%THEN y0%=(by%+1)*ystep:y1%=oldy%*ystep ELSE y0%=(oldy%+1)*ystep:y1%=by%*ystep 326 s%(bx%,by%)=0:SYSRedraw%,main%,bx%*xstep,-y0%,(bx%+1)*xstep,-y1% 327 y0%=(y0%/ystep)*40:y1%=(y1%/ystep)*40:SYSRedraw%,helpw%,bx%*40,-y0%,(bx%+1)*40,-y1% 328 ELSE IF (button%AND64) THEN PROCstartdrag 329 ENDIF 330 ENDIF 331ENDPROC 332 333DEFPROCopen(window%) 334 CASE window% OF 335 WHEN main% 336 puzopen%=TRUE:PROCtick(bar%,2,-1) 337 IF tflag%=0 THEN timestarted%+=now%-delay%:delay%=0 338 tflag%=tflag%OR1 339 WHEN view%:viewopen%=TRUE:PROCtick(bar%,3,-1) 340 WHEN timew%:timer%=TRUE:PROCtick(bar%,4,-1):PROCtime 341 ENDCASE 342 !rep%=window%:SYS GetWindow%,,rep%:rep%!28=-1:SYS OpenWindow%,,rep% 343ENDPROC 344 345REM *************** Menus 346 347DEFPROCmenuselect 348 flag%=0 349 CASE !block% OF 350 WHEN 1:PROCshuffle:PROCvoidmain 351 WHEN 2 352 IF puzopen% THEN 353 !block%=main%:SYS CloseWindow%,,block%:PROCtick(bar%,2,0):puzopen%=0 354 tflag%=tflag%AND2:IF tflag%=0 THEN delay%=now% 355 ELSE PROCopen(main%) 356 ENDIF 357 WHEN 3:IF viewopen% THEN !block%=view%:SYS CloseWindow%,,block%:PROCtick(bar%,3,0):viewopen%=0 ELSE PROCopen(view%) 358 WHEN 4:IF timer% THEN !block%=timew%:SYS CloseWindow%,,block%:PROCtick(bar%,4,0):timer%=0 ELSE PROCtime:PROCopen(timew%) 359 WHEN 5:h%=help% 360 IF help%>0 THEN PROCtick(hel%,help%-1,0) 361 CASE block%!4 OF 362 WHEN -1:IF help%>0 THEN help%=0 363 WHEN 0:IF help%=1 THEN help%=0 ELSE help%=1:PROCtick(hel%,0,-1):PROCopen(helpw%) 364 WHEN 1:IF help%=2 THEN help%=0 ELSE help%=2:PROCtick(hel%,1,-1) 365 ENDCASE 366 IF help%<>1 AND h%=1 THEN !block%=helpw%:SYS CloseWindow%,,block% 367 PROCtick(bar%,5,help%>0) 368 SYSRedraw%,main%,bx%*xstep,-(by%+1)*ystep,(bx%+1)*xstep,-by%*ystep 369 WHEN 6: 370 IF block%!4>0 THEN 371 default$="<PuzPic$Dir>."+$(lis%+40+24*block%!4) 372 PROCloadsprite(default$):flag%=-1 373 PROCsplit:PROCvoidmain 374 ELSE IF block%!4=0 THEN default$="":PROCsplit:PROCvoidmain 375 ENDIF 376 WHEN 7: 377 CASE block%!4 OF 378 WHEN 0:PROCtick(col%,cb%,0):cb%=block%!8:PROCvoidmain:PROCtick(col%,cb%,-1) 379 WHEN 1:PROCtick(col%,cy%,0):cy%=block%!8:PROCtick(col%,cy%,-1):SYSRedraw%,main%,bx%*xstep,-(by%+1)*ystep,(bx%+1)*xstep,-by%*ystep 380 WHEN 2:PROCtick(col%,cn%,0):cn%=block%!8:PROCtick(col%,cn%,-1):SYSRedraw%,main%,bx%*xstep,-(by%+1)*ystep,(bx%+1)*xstep,-by%*ystep 381 ENDCASE 382 PROCvoidhelp 383 WHEN 9: 384 IF tflag%=1 THEN T%=now%-timestarted% ELSE T%=delay%-timestarted% 385 F%=OPENOUT"<Puz$Dir>.Default":PRINT#F%,default$,b%,cb%,cy%,cn%,help% 386 FOR Y%=0 TO b%-1:FOR X%=0 TO b%-1:PRINT#F%,s%(X%,Y%):NEXT, 387 PRINT#F%,puzopen%,viewopen%,timer%,T% 388 !block%=main%:SYS GetWindow%,,block% 389 PRINT#F%,block%!4,block%!8,block%!12,block%!16,block%!20,block%!24 390 !block%=view%:SYS GetWindow%,,block%:PRINT#F%,block%!4,block%!8,block%!12,block%!16 391 !block%=helpw%:SYS GetWindow%,,block%:PRINT#F%,block%!4,block%!16 392 !block%=timew%:SYS GetWindow%,,block%:PRINT#F%,block%!4,block%!8,block%!12,block%!16 393 FOR A%=3 TO 10:PRINT#F%,$FNtable(A%,1),$FNtable(A%,2),$FNtable(A%,3):NEXT 394 CLOSE#F% 395 WHEN 10:quit%=TRUE 396 ENDCASE 397 SYS Pointer%,,block%:IF block%!8=1 THEN PROCmenu(0,0):IF flag% PROCmakelist 398ENDPROC 399 400DEFPROCvoidmain 401 !block%=main%:SYSGetWindow%,,block%:SYSRedraw%,main%,block%!20,block%!8-block%!16+block%!24,block%!12-block%!4+block%!20,block%!24 402 !block%=view%:SYSGetWindow%,,block%:SYSRedraw%,view%,block%!20,block%!8-block%!16+block%!24,block%!12-block%!4+block%!20,block%!24 403 PROCvoidhelp 404ENDPROC 405 406DEFPROCvoidhelp:!block%=helpw%:SYSGetWindow%,,block%:SYSRedraw%,helpw%,block%!20,block%!8-block%!16+block%!24,block%!12-block%!4+block%!20,block%!24 407ENDPROC 408 409DEFPROCmenu(mx%,my%):SYS CreateMenu%,,bar%,mx%,my%:ENDPROC 410 411DEFPROCcreatebarmenu 412 PROCcreatecolourmenu 413 PROCcreatecolmenu 414 PROCcreatehelpmenu 415 DIM bar% 24+28*11,lis% 24+28*78 416 $lis%=FNmessage("Men7"):lis%!12=&00070207:lis%!16=12*16:lis%!20=44:lis%!24=0:A%=lis%+28 417 !A%=2:A%!4=0:A%!8=&7000021:L%=FNmaketext(A%,FNmessage("Men7.1")) 418 IF L%>11 THEN lis%!16=L%*16+16 419 $bar%=FNmessage("Men0"):bar%!12=&00070207:bar%!20=44:bar%!24=0:A%=bar%+4 420 A%+=24:!A%=0:A%!4=info%:A%!8=&7000021:A%+=24:!A%=2:A%!4=0:A%!8=&7000021 421 A%+=24:!A%=0:A%!4=0:A%!8=&7000021:A%+=24:!A%=0:A%!4=0:A%!8=&7000021 422 A%+=24:!A%=0:A%!4=0:A%!8=&7000021:A%+=24:!A%=2:A%!4=hel%:A%!8=&7000021 423 A%+=24:!A%=8:A%!4=info%:A%!8=&7000021:A%+=24:!A%=0:A%!4=colm%:A%!8=&7000021 424 A%+=24:!A%=8:A%!4=wid%:A%!8=&7000021:A%+=24:!A%=0:A%!4=0:A%!8=&7000021 425 A%+=24:!A%=128:A%!4=0:A%!8=&7000021 426 C%=LEN$bar%:A%=bar%+4:FOR B%=1 TO 11:A%+=24 427 L%=FNmaketext(A%,FNmessage("Men"+STR$B%)):IF L%>C% THEN C%=L% 428 NEXT:bar%!16=16*C%+16 429ENDPROC 430 431DEFFNmaketext(ptr%,A$):LOCAL A% 432 IF LENA$>11 THEN 433 DIM A% LEN(A$):ptr%!12=A%:ptr%!16=0:ptr%!20=LEN(A$):$A%=A$:ptr%!8+=(1<<8) 434 ELSE $(ptr%+12)=A$ 435 ENDIF 436=LEN(A$) 437 438DEFPROCcreatecolourmenu 439 DIM col% 24+28*15 440 $col%=FNmessage("Men7"):col%!12=&00070207:col%!16=5*16:col%!20=44:col%!24=0:A%=col%+4 441 FOR B%=0 TO 15:A%+=24:!A%=0:A%!4=0 442 A%!8=&29+(B%<<28):IF B%<4 OR B%=9 OR B%=12 OR B%=14 THEN A%!8+=(7<<24) 443 $(A%+12)=STR$B%:NEXT:!A%+=128 444ENDPROC 445 446DEFPROCcreatecolmenu 447 DIM colm% 24+28*15 448 $colm%=FNmessage("Men8"):colm%!12=&00070207:colm%!20=44:colm%!24=0:A%=colm%+4 449 A%+=24:!A%=8:A%!4=col%:A%!8=&7000021:A%+=24:!A%=8:A%!4=col%:A%!8=&7000021 450 A%+=24:!A%=8+128:A%!4=col%:A%!8=&7000021:C%=LEN$colm% 451 A%=colm%+4:FOR B%=1 TO 3:A%+=24 452 L%=FNmaketext(A%,FNmessage("Men8."+STR$B%)):IF L%>C% THEN C%=L%+1 453 NEXT:colm%!16=16*C% 454ENDPROC 455 456DEFPROCcreatehelpmenu 457 DIM hel% 24+28*3 458 $hel%=FNmessage("Men6"):hel%!12=&00070207:hel%!20=44:hel%!24=0:A%=hel%+4:C%=LEN$hel% 459 FOR B%=1 TO 2:A%+=24:!A%=0:A%!4=0:A%!8=&7000021: 460 L%=FNmaketext(A%,FNmessage("Men6."+STR$B%)):IF L%>C% THEN C%=L% 461 NEXT:!A%+=128:hel%!16=C%*16+16 462ENDPROC 463 464REM *************** Icon Manipulation 465 466DEFPROCiconshade(window%,icon%,flag%):LOCALA%:A%=1:IFflag%=-1 THEN flag%=1:A%=0 467 !rep%=window%:rep%!4=icon%:rep%!8=flag%*(1<<22):rep%!12=A%<<22 468 SYS SetIcon%,,rep% 469ENDPROC 470 471DEFPROCiconselect(window%,icon%,flag%):LOCALA%:!rep%=window%:rep%!4=icon% 472 A%=1:IF flag%=-1 THEN flag%=1:A%=0 473 rep%!8=flag%<<21:rep%!12=A%<<21:SYS SetIcon%,,rep% 474ENDPROC 475 476DEFFNtext(window%,icon%):!rep%=window%:rep%!4=icon%:SYS GetIcon%,,rep% 477=rep%!28 478 479DEFFNtable(n%,x%) 480 rep%!4=(n%-2)*4+x%:!rep%=highw%:SYSGetIcon%,,rep% 481=rep%!28 482 483DEFPROCicontext(window%,icon%,text$) 484 !rep%=window%:rep%!4=icon%:SYS GetIcon%,,rep%:$(rep%!28)=text$ 485 rep%!8=0:rep%!12=0:SYS SetIcon%,,rep% 486ENDPROC 487 488DEFPROCtick(menu%,item%,flag%):LOCALA% 489 A%=menu%+28+24*item%:!A%=!A%AND&FE:IF flag% THEN !A%+=1 490ENDPROC 491 492DEFPROCmenushade(menu%,item%,flag%):LOCALA% 493 A%=menu%+36+24*item%:!A%=!A%AND&FFBFFFFF:IF flag% THEN !A%+=(1<<22) 494ENDPROC 495 496REM *************** Messages 497 498DEFPROCerror:!block%=255:CLOSE#0 499 $(block%+4)=REPORT$+"."+FNmessage("Click") 500 SYS Report%,block%,3,app$ TO ,flag% 501 IF flag%=2 THEN PROCquit 502 default$="":b%=3:PROCsplit:PROCvoidmain 503ENDPROC 504 505DEFPROCreport(rep$,flag%):LOCALA$,F% 506 !rep%=255:$(rep%+4)=rep$+CHR$0 507 A$=FNmessage("Mess")+" "+FNmessage("from")+" "+app$:F%=17 508 IF flag% THEN F%-=8:A$=app$ 509 SYS Report%,rep%,F%,A$ 510ENDPROC 511 512DEFPROCloadmessages:F%=OPENIN"<Puz$Dir>.Messages":A%=0:REPEAT:A$=GET$#F%:A%+=1:UNTIL EOF#F%:DIM M$(A%):PTR#F%=0:FOR B%=0 TO A%:M$(B%)=GET$#F%:NEXT:CLOSE#F% 513ENDPROC 514 515DEFFNmessage(S$):LOCALA%,A$,F%:A%=-1:F%=0:WHILE A%<DIM(M$(),1) AND F%=0:A%+=1:F%=INSTR(M$(A%),S$):ENDWHILE:=MID$(M$(A%),INSTR(M$(A%),":")+1) 516 517REM *************** Initialising 518 519DEFPROCinit:SYSHourOn% 520 dragging%=0:dx%=0:dy%=0:watch%=FALSE:watchno%=0:quit%=TRUE 521 PROCbaricon("!puzzle"):PROCiconsprites 522 F%=OPENIN"<Puz$Dir>.Default":INPUT #F%,default$,b%,cb%,cy%,cn%,help%:DIM s%(9,9) 523 FOR Y%=0 TO b%-1:FOR X%=0 TO b%-1:INPUT#F%,s%(X%,Y%):IF s%(X%,Y%)=0 THEN bx%=X%:by%=Y% 524 NEXT,:INPUT#F%,puzopen%,viewopen%,timer%,T% 525 SYSGetTime% TO delay%:now%=delay%:timestarted%=delay%-T% 526 PROCwindows:FOR A%=3 TO 10:INPUT#F%,$FNtable(A%,1),$FNtable(A%,2),$FNtable(A%,3):NEXT 527 CLOSE#F%:PROCcreatebarmenu:first%=FALSE 528 E$=FNmessage("ErrFind"):C$=FNmessage("NotFind") 529 IF INSTR(E$,"%1") THEN E$=LEFT$(E$,INSTR(E$,"%1")-1)+default$+MID$(E$,INSTR(E$,"%1")+2) 530 IF INSTR(C$,"%0") THEN C$=LEFT$(C$,INSTR(C$,"%0")-1)+default$+MID$(C$,INSTR(C$,"%0")+2) 531 LOCAL ERROR 532 IF default$<>"" THEN 533 A$=default$:WHILE INSTR(A$,"."):A$=MID$(A$,INSTR(A$,".")+1):ENDWHILE 534 $block%=LEFT$(default$,INSTR(default$,A$)-2):$scale%=A$:index%=0:A%=-1 535 REPEAT 536 ON ERROR LOCAL A%=-2:PROCquickerror:default$="":index%=-1 537 IF index%>-1 SYS&0C,10,block%,rep%,1,index%,50,scale% TO ,,,n%,index%:IF n%<>0 THEN A%=0 538 UNTIL index%=-1 539 IF A%=-1 THEN PROCreport(C$,0):default$="" 540 ENDIF 541 RESTORE ERROR 542 IF default$<>"" THEN PROCloadsprite(default$) 543 PROCsplit:IF help%>0 THEN PROCtick(hel%,help%-1,-1):PROCtick(bar%,5,-1) 544 tflag%=0:PROCtime:PROCpercent:IF timer% THEN PROCopen(timew%) 545 IF puzopen% THEN PROCopen(main%) 546 IF viewopen% THEN PROCopen(view%) 547 IF help%=1 THEN !block%=helpw%:SYS GetWindow%,,block%:block%!12=block%!4+b%*40+4:block%!8=block%!16-40*b%-4:SYS OpenWindow%,,block% 548 quit%=FALSE:SYSHourOff%:first%=TRUE 549ENDPROC 550 551DEFPROCquickerror:IF INSTR(E$,"%0") THEN PROCreport(LEFT$(E$,INSTR(E$,"%0")-1)+REPORT$+MID$(E$,INSTR(E$,"%0")+2),0) ELSE PROCreport(E$,0) 552ENDPROC 553 554DEFPROCunmix 555 A%=0:FOR Y%=0 TO b%-1:FOR X%=0 TO b%-1:A%+=1:s%(X%,Y%)=A%:NEXT,:s%(b%-1,b%-1)=0 556 bx%=b%-1:by%=b%-1 557ENDPROC 558 559DEFPROCshuffle:SYSHourOn% 560 FOR A%=1 TO 10*b%*b% 561 T%=RND(b%)-1 562 WHILE T%>bx%:s%(bx%,by%)=s%(bx%+1,by%):bx%+=1:ENDWHILE 563 WHILE T%<bx%:s%(bx%,by%)=s%(bx%-1,by%):bx%-=1:ENDWHILE 564 T%=RND(b%)-1 565 WHILE T%>by%:s%(bx%,by%)=s%(bx%,by%+1):by%+=1:ENDWHILE 566 WHILE T%<by%:s%(bx%,by%)=s%(bx%,by%-1):by%-=1:ENDWHILE 567 NEXT 568 s%(bx%,by%)=0:delay%=0:timestarted%=now%:IF (tflag%AND1)=0 THEN delay%=now% 569 PROCtime:PROCpercent 570 SYSHourOff% 571ENDPROC 572 573DEFPROCswinumbers 574 SYS"OS_SWINumberFromString",,"OS_SWINumberFromString" TO String% 575 SYS String%,,"Wimp_GetIconState" TO GetIcon% 576 SYS String%,,"Wimp_CreateIcon" TO CreateIcon% 577 SYS String%,,"Wimp_SetIconState" TO SetIcon% 578 SYS String%,,"Wimp_GetWindowState" TO GetWindow% 579 SYS String%,,"Wimp_ForceRedraw" TO Redraw% 580 SYS String%,,"Wimp_GetWindowInfo" TO GetInfo% 581 SYS String%,,"Wimp_LoadTemplate" TO LoadTemplate% 582 SYS String%,,"Wimp_CreateWindow" TO CreateWindow% 583 SYS String%,,"Wimp_OpenWindow" TO OpenWindow% 584 SYS String%,,"Wimp_CloseWindow" TO CloseWindow% 585 SYS String%,,"Wimp_CreateMenu" TO CreateMenu% 586 SYS String%,,"Wimp_GetPointerInfo" TO Pointer% 587 SYS String%,,"Wimp_SetColour" TO SetColour% 588 SYS String%,,"Wimp_ReportError" TO Report% 589 SYS String%,,"Wimp_Poll" TO Poll% 590 SYS String%,,"Wimp_PollIdle" TO PollIdle% 591 SYS String%,,"OS_SpriteOp" TO SpriteOp% 592 SYS String%,,"OS_ReadMonotonicTime" TO GetTime% 593 SYS String%,,"OS_ReadModeVariable" TO ReadMode% 594 SYS String%,,"Hourglass_On" TO HourOn% 595 SYS String%,,"Hourglass_Smash" TO HourOff% 596ENDPROC 597 598DEFPROCbaricon(A$) 599 !block%=-1:block%!4=0:block%!8=0:block%!12=68:block%!16=68:block%!20=&3002 600 $(block%+24)=A$:SYS CreateIcon%,,block% TO bar% 601ENDPROC 602 603DEFPROCwindows 604 indsize%=910 605 DIM name% 11,ind% indsize% 606 indtop%=ind%+indsize% 607 SYS"Wimp_OpenTemplate",,"<Puz$Dir>.Templates" 608 $name%="Info":SYS LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 TO ,,ind% 609 block%!64=iconarea%:SYS CreateWindow%,,block% TO info% 610 $name%="Main":SYS LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 TO ,,ind% 611 title%=block%!72:INPUT#F%,!block%,block%!4,block%!8,block%!12,block%!16,block%!20 612 SYS CreateWindow%,,block% TO main% 613 $name%="View":SYS LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 TO ,,ind% 614 INPUT#F%,!block%,block%!4,block%!8,block%!12:$(block%!72)=FNmessage("Men4") 615 SYS CreateWindow%,,block% TO view% 616 $name%="Help":SYS LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 TO ,,ind% 617 $(block%!72)=FNmessage("Men6"):INPUT#F%,!block%,block%!12 618 SYS CreateWindow%,,block% TO helpw% 619 $name%="Width":SYS LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 TO ,,ind% 620 $(block%!72)=FNmessage("Men9"):SYS CreateWindow%,,block% TO wid% 621 $name%="Timer":SYS LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 TO ,,ind% 622 INPUT#F%,!block%,block%!4,block%!8,block%!12:$(block%!72)=FNmessage("Men5") 623 SYS CreateWindow%,,block% TO timew% 624 $name%="Win":SYS LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 TO ,,ind% 625 SYS CreateWindow%,,block% TO win% 626 $name%="Scores":SYS LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 TO ,,ind% 627 SYS CreateWindow%,,block% TO highw% 628 SYS"Wimp_CloseTemplate":PROCicontext(info%,1,FNmessage("TaskID")) 629 PROCicontext(wid%,3,FNmessage("OK")) 630 PROCicontext(info%,2,FNmessage("Purpose")):PROCicontext(info%,4,FNmessage("Version")) 631ENDPROC 632 633DEFPROCiconsprites 634 F%=OPENIN"<Puz$Dir>.Sprites":A%=EXT#F%+8:DIM iconarea% A% 635 !iconarea%=A%:iconarea%!8=16:CLOSE#F% 636 $block%="<Puz$Dir>.Sprites":SYSSpriteOp%,10+256,iconarea%,block% 637ENDPROC 638 639DEFPROCloadsprite(path$):SYSHourOn% 640 A$=path$:WHILE INSTR(A$,"."):A$=MID$(A$,INSTR(A$,".")+1):ENDWHILE 641 $title%=FNmessage("TaskID")+" - "+A$ 642 F%=OPENIN(path$):A%=EXT#F%+16:CLOSE#F%:B%=FNmakemem(A%+16,A%/2) 643 IF NOT B% THEN 644 SYSSpriteOp%,&10A,big%,path$ 645 SYSSpriteOp%,40+512,big%,big%+16 TO ,,,swidth%,sheight%,,mode% 646 SYSSpriteOp%,15+512,small%,small%+16,0,swidth%/9,sheight%/9,mode% 647 B%=FNmakemem(A%+16,!(small%+16)*99+16) 648 ENDIF 649 IF B% THEN 650 PROCreport(FNmessage("NoMem"),0):default$="":b%=3:B%=FNmakemem(mem%(0,0),mem%(2,0)) 651 ELSE 652 SYSSpriteOp%,40+512,big%,big%+16 TO ,,,,,,mode% 653 SYSReadMode%,mode%,3TO,,A%:SYSReadMode%,mode%,4TO,,B%:SYSReadMode%,mode%,5TO,,C% 654 SYSReadMode%,-1,3TO,,D%:SYSReadMode%,-1,4TO,,E%:SYSReadMode%,-1,5TO,,F% 655 width%=swidth%*1<<B%:height%=sheight%*1<<C% 656 IF width%<120 OR height%<116 THEN 657 PROCreport(FNmessage("Small"),0) 658 default$="":big%!8=16:SYSSpriteOp%,9+256,big%:small%!8=16:SYSSpriteOp%,9+256,small% 659 ELSE 660 IF A%>D% THEN 661 A$=FNmessage("Mode") 662 A$=LEFT$(A$,INSTR(A$,"%0")-1)+STR$(mode%)+MID$(A$,INSTR(A$,"%0")+2) 663 PROCreport(A$,0) 664 ENDIF 665 ENDIF 666 ENDIF 667ENDPROC:SYSHourOff% 668 669DEFFNmakemem(b%,s%):LOCAL flag%,S%,F%,T% 670 IF b%<mem%(0,0) THEN b%=mem%(0,0) 671 IF s%<mem%(2,0) THEN s%=mem%(2,0)+100*1024 672 T%=b%+s%+1024:SYS"Wimp_SlotSize",-1,-1 TO S%,,F% 673 IF S%-HIMEM+&8004<T% AND F%<T%-S%+HIMEM-&8004 THEN 674 flag%=-1:big%=0:small%=0:IF b%=mem%(0,0) THEN PROCnomemory 675 ELSE 676 SYS"Wimp_SlotSize",HIMEM-&8004+T%,-1:flag%=0 677 IF big%=0 OR !big%<>b% THEN big%=HIMEM+4:!big%=b%:big%!8=16:SYSSpriteOp%,9+256,big% 678 small%=big%+!big%+4:!small%=s%:small%!8=16:SYSSpriteOp%,9+256,small% 679 ENDIF 680=flag% 681 682DEFPROCsplit:SYSHourOn% 683 IF default$="" THEN PROCmakesprite 684 PROCsplitsprite:SYSHourOff% 685ENDPROC 686 687DEFPROCmakesprite:$sprite%="sprite":$title%=app$ 688 !block%=main%:SYS GetWindow%,,block% 689 SYSRedraw%,-1,block%!4,block%!16,block%!12,block%!16+44 690 SYSReadMode%,-1,3 TO ,,ncolour%:IF ncolour%<63 THEN mode%=12 ELSE mode%=15 691 IF mode%=12 THEN A%=FNmakemem(mem%(0,b%-3),mem%(2,b%-3)) ELSE A%=FNmakemem(mem%(1,b%-3),mem%(3,b%-3)) 692 IF A% THEN PROCreport(FNmessage("NoMem"),0):b%=3:A%=FNmakemem(mem%(0,0),mem%(2,0)) 693 SYSSpriteOp%,15+256,big%,sprite%,0,37*b%+1,19*b%+1,mode% 694 SYSSpriteOp%,60+256,big%,sprite%,0 695 SYS"ColourTrans_InvalidateCache" 696 VDU5:A%=0 697 FOR Y%=b%-1 TO 0 STEP -1 698 FOR X%=0 TO b%-1 699 A%+=1:B%=LEN(STR$A%)*8 700 ORIGIN X%*74,Y%*76 701 SYSSetColour%,7:RECTANGLEFILL 0,0,74,76 702 IF A%<b%*b% THEN 703 SYSSetColour%,3:RECTANGLEFILL 2,4,71,71 704 SYSSetColour%,1:RECTANGLEFILL 2,4,4,71:RECTANGLEFILL 2,71,71,4 705 SYSSetColour%,4:RECTANGLEFILL 8,4,63,4:RECTANGLEFILL 69,4,4,63 706 MOVE4,4:DRAW 6,4:DRAW6,8:MOVE71,71:DRAWBY2,0:DRAWBY0,4 707 SYSSetColour%,11:MOVE 38-B%,48:PRINT;A% 708 ELSE 709 ENDIF 710 NEXT 711 NEXT 712 SYSSpriteOp%,60,0,0:ORIGIN 0,0 713 SYS"ColourTrans_InvalidateCache" 714ENDPROC 715 716DATA 8192,8192,9276,12940,17748,23316,28956,35968 717DATA 8192,11764,18108,25820,34900,45960,57852,71112 718DATA 8192,8192,10192,14856,20368,26728,33936,41992 719DATA 8192,12076,19312,28156,38608,50668,64336,79612 720 721DEFPROCsplitsprite 722 SYSSpriteOp%,9+512,small% 723 SYS"Wimp_ReadPixTrans",512,big%,big%+16,,,,scale%,pix% 724 SYSSpriteOp%,40+512,big%,big%+16 TO ,,,swidth%,sheight%,,mode% 725 SYSReadMode%,mode%,3 TO ,,ncolour% 726 IF ncolour%>=63 THEN SYS"ColourTrans_SelectTable",mode%,0,-1,-1,pix% 727 SYSReadMode%,mode%,4 TO ,,xscale%:SYSReadMode%,mode%,5 TO ,,yscale% 728 sheight%=b%*(sheight%DIVb%):swidth%=b%*(swidth%DIVb%) 729 SYSReadMode%,-1,4 TO ,,xscal%:SYSReadMode%,-1,5 TO ,,yscal% 730 width%=swidth%*1<<xscale%:height%=sheight%*1<<yscale%:A%=0 731 xstep=width%/b%:ystep=height%/b%:q%=16/(1<<xscale%):r%=16/(1<<yscale%) 732 SYS"ColourTrans_InvalidateCache" 733 FOR Y%=height%-ystep TO 0 STEP -ystep 734 FOR X%=0 TO width%-xstep STEP xstep 735 A%+=1 736 IF A%<b%^2 THEN 737 SYSSpriteOp%,15+256,small%,STR$A%,0,swidth%/b%,sheight%/b%,mode% 738 SYSSpriteOp%,60+256,small%,STR$A% 739 SYSSpriteOp%,34+512,big%,big%+16,-X%,-Y% 740 ENDIF 741 NEXT 742 NEXT 743 SYSSpriteOp%,60,0,0:SYS"ColourTrans_InvalidateCache" 744 !block%=0:block%!4=-(sheight%-1)*1<<yscale%:block%!8=swidth%*1<<xscale%:block%!12=0 745 SYS"Wimp_SetExtent",main%,block%:SYS"Wimp_SetExtent",view%,block% 746 IF puzopen% AND first% THEN 747 !block%=main%:SYS GetWindow%,,block%:block%!8=block%!16-sheight%*(1<<yscale%) 748 block%!12=block%!4+swidth%*(1<<xscale%):SYSOpenWindow%,,block% 749 ENDIF 750 IF viewopen% AND first% THEN PROCopen(view%) 751 !block%=0:block%!12=0:block%!8=40*b%+4:block%!4=-40*b%:SYS"Wimp_SetExtent",helpw%,block% 752 !block%=helpw%:SYS GetWindow%,,block%:block%!12=block%!4+b%*40+4:block%!8=block%!16-40*b%-4:SYS OpenWindow%,,block%:IF help%<>1 OR NOTfirst% THEN SYS CloseWindow%,,block% 753ENDPROC
J� block% 1696,sprite% 11,scale% 16,pix% 256,scale2% 16,H$(9),mem%(3,7) -�swinumbers:ș&51 � page%:rep%=block%+256 0� � �#0:�"ERROR "+�$+" (errorcode "+Þ+")":� )�loadmessages:app$=�message("TaskID") *ș"Wimp_Initialise",200,&4B534154,app$ +� A%=0 � 3:� B%=0 � 7:� mem%(A%,B%):�:� Gsmall%=0:big%=0:default$="-1":b%=3:A%=�makemem(mem%(0,0),mem%(2,0)) �init � � �error șGetTime% � now% ȕ �quit% � dragging% � $ ș Poll%,6192,block% � reason% � � timer% � tflag%=1 � 1 șPollIdle%,6192,block%,now%+100 � reason% & � ș Poll%,6193,block% � reason% � � șGetTime% � now% Ȏ reason% � " � 0:� dragging% � �dragging � 1:�drawwindow(!block%) � 2: $ � !block%=view% � block%!24=0 � ș OpenWindow%,,block%:� !block%=view% � șRedraw%,view%,-block%!20,block%!8-block%!16+block%!24,block%!12-block%!4-block%!20,block%!24 " � 3:ș CloseWindow%,,block% Ȏ !block% � S � main%:puzopen%=0:�tick(bar%,2,0):tflag%=tflag%�2:� tflag%=0 � delay%=now% + � view%:viewopen%=0:�tick(bar%,3,0) 8 � helpw%:help%=0:�tick(bar%,5,0):�tick(hel%,0,0) ) � timew%:timer%=0:�tick(bar%,4,0) ! � "% � 4:� !block%=main% � watch%=0 #& � 5:� !block%=main% � watch%=-1 $@ � 6:�click(block%!12,block%!16,block%!8,!block%,block%!4) % � 7:� *** Drag has ended & � 8: '3 � !block%=win% � block%!4=5 � block%!24=13 � (+ !block%=win%:șCloseWindow%,,block% ) � winH%=432 � *2 �menushade(bar%,1,0):�menushade(bar%,8,0) +4 �icontext(highw%,(b%-2)*4+1,$�text(win%,5)) ,6 �icontext(highw%,(b%-2)*4+2,$�text(timew%,1)) -- �icontext(highw%,(b%-2)*4+3,��$,15)) . � /& � ș"Wimp_ProcessKey",block%!24 0 � 1 � 9:�menuselect 2 � 10:� *** Scroll request 3 � 11:� *** Lose caret 4 � 12:� *** Gain caret 5 � 17,18:�receive 6 � 7H � tflag%=1 � timer% � timetaken%�60<>(now%-timestarted%)�60 � �time 8� 9 �quit :� ; < ��quit = ș"XHourglass_Smash" >' � big%<>0 � ș"XOS_Module",7,,big% ?+ � small%<>0 � ș"XOS_Module",7,,small% @* ș"XOS_ChangeDynamicArea",1,-16777216 A �#0:ș"XWimp_CloseDown" B � C� D E��nomemory F*�report(�message("MustQuit"),-1):�quit G� H I��time:� H%,S%,M%,A$ J�H%=now%:H%-=timestarted%:H%=H%/100:S%=H%�60:H%=H%�60:M%=H%�60:H%=H%�60:A$=�H%+":"+�-1*(M%<10),"0")+�M%+"."+�-1*(S%<10),"0")+�S%:�icontext(timew%,1,A$):timetaken%=now%-timestarted% K� L M��dragging N; ș Pointer%,,block%:x%=!block%:y%=block%!4:B%=block%!8 O � B%<>0 � P � watchno%=0 � QI !block%=dragging%:ș GetWindow%,,block%:block%!12+=x%-block%!4-dx% RY block%!8+=y%+dy%-block%!16:block%!4=x%-dx%:block%!16=y%+dy%:� B%<>1 � block%!28=-1 S ș OpenWindow%,,block% T � U� � dragging%=0:�makepointer("default"):� watchno%<>0 � Y%=-1:�:Y%+=1:X%=-1:�:X%+=1:� s%(X%,Y%)=watchno% � X%>b%-2:� s%(X%,Y%)=watchno%:watchno%=0:șRedraw%,main%,X%*xstep,-(Y%+1)*ystep,(X%+1)*xstep,-Y%*ystep V � W� X Y��drawwindow(window%) Z Ȏ window% � [ � main%:�drawmain \ � view%:�drawview ] � helpw%:�drawhelp ^ � _� ` a��drawmain b& block%!0=main%:șGetInfo%,,block% c= wwidth%=block%!52-block%!44:wheight%=block%!48-block%!56 d* ș"Wimp_RedrawWindow",,block% � more% e3 xo%=block%!4-block%!20:yo%=block%!16-block%!24 f ȕ more% g1 x1%=((block%!28-xo%)�xstep):� x1%<0 � x1%=0 h7 x2%=((block%!36-xo%)�xstep):� x2%>b%-1 � x2%=b%-1 i1 y1%=((yo%-block%!40)�ystep):� y1%<0 � y1%=0 j7 y2%=((yo%-block%!32)�ystep):� y2%>b%-1 � y2%=b%-1 k# � Y%=y1% � y2%:� X%=x1% � x2% l � s%(X%,Y%)=0 � m � help%=2 � nI șSetColour%,cn%:ȓȐ xo%+X%*xstep,yo%-ystep-Y%*ystep,xstep,ystep o șSetColour%,cy% p$ � y%=0 � b%-1:� x%=0 � b%-1 q� � s%(x%,y%)=x%+1+y%*b% � (s%(x%,y%)=0 � x%=b%-1 � y%=b%-1) � ȓȐ xo%+X%*xstep+x%*(xstep/b%),yo%-Y%*ystep-(y%+1)*(ystep/b%),xstep/b%,ystep/b% r �:� s șSetColour%,cb% t$ � y%=0 � b%-1:� x%=0 � b%-1 uW ȓ xo%+X%*xstep+x%*(xstep/b%),yo%-Y%*ystep-(y%+1)*(ystep/b%),xstep/b%,ystep/b% v �:� wK � șSetColour%,cb%:ȓȐ xo%+X%*xstep,yo%-ystep-Y%*ystep,xstep,ystep x � y � zX șSpriteOp%,52+256,small%,�(s%(X%,Y%)),xo%+X%*xstep,yo%-(Y%+1)*ystep,,scale%,pix% {O �watchno%=s%(X%,Y%)� �4,0:ȓȐ xo%+X%*xstep,yo%-(Y%+1)*ystep,xstep,ystep | � }F șSetColour%,cb%:ȓ xo%+X%*xstep,yo%-ystep-Y%*ystep,xstep,ystep ~ �:� + ș"Wimp_GetRectangle",,block% � more% � � �� � ���drawhelp:A%=�(15) �9 !block%=helpw%:ș"Wimp_RedrawWindow",,block% � more% � ȕ more% � șSetColour%,cn% �F ȓȐ block%!28,block%!32,block%!36-block%!28,block%!40-block%!32 � șSetColour%,cy% �! � y%=0 � b%-1:� x%=0 � b%-1 �p � s%(x%,y%)=x%+1+y%*b% � (s%(x%,y%)=0 � x%=b%-1 � y%=b%-1) � ȓȐ block%!4+x%*40,block%!16-(y%+1)*40-4,40 � �:� � șSetColour%,cb% �! � y%=0 � b%-1:� x%=0 � b%-1 �1 ȓ block%!4+x%*40,block%!16-(y%+1)*40-4,40 � �:� �+ ș"Wimp_GetRectangle",,block% � more% � � �� � �q��percent:T%=0:� y%=0 � b%-1:� x%=0 � b%-1:� s%(x%,y%)=x%+1+y%*b% � (s%(x%,y%)=0 � x%=b%-1 � y%=b%-1) � T%+=1 �C �:�:@%=&1020201:�icontext(timew%,2,�(T%*(100/(b%*b%)))):@%=10 �Y � T%<b%*b% � tflag%=tflag%�1 � tflag%=tflag%�2:șGetTime% � delay%:� quit%=0 � �win �� � ���win:�time �M �7:�icontext(win%,2,$�text(timew%,1)):!block%=win%:ș GetWindow%,,block% �, ș &35,-1,11 � ,,W%:ș &35,-1,12 � ,,H% �* ș &35,-1,4 � ,,A%:ș &35,-1,5 � ,,U% � W%=(W%+1)<<A%:H%=(H%+1)<<U% �L winW%=block%!12-block%!4:winH%=180:Y$=$�text(timew%,1):O$=$�table(b%,2) �q � ��Y$,�Y$,":")-1)<=��O$,�O$,":")-1) � ��Y$,�Y$,":")+1,2)<=��O$,�O$,":")+1,2) � ��Y$,2)<��O$,2) � winH%=432 �3 block%!4=W%/2-winW%/2:block%!12=block%!4+winW% �@ block%!8=H%/2-winH%/2:block%!16=block%!8+winH%:block%!28=-1 � șOpenWindow%,,block% � � winH%=432 � �U A$=$�table(b%,1):�icontext(win%,5,A$):ș"Wimp_SetCaretPosition",win%,5,,,-1,�A$ �1 �menushade(bar%,1,-1):�menushade(bar%,8,-1) � � �� � ���drawview �& block%!0=view%:șGetInfo%,,block% �= wwidth%=block%!52-block%!44:wheight%=block%!48-block%!56 �3 xo%=block%!4-block%!20:yo%=block%!16-block%!24 �* ș"Wimp_RedrawWindow",,block% � more% �A !scale2%=(block%!12-block%!4):scale2%!4=(block%!16-block%!8) �( scale2%!8=width%:scale2%!12=height% �6 � A%=0 � 12 � 4:scale2%!A%=scale2%!A%*scale%!A%:� � ȕ more% �F șSpriteOp%,52+512,big%,big%+16,block%!4,block%!8,0,scale2%,pix% �+ ș"Wimp_GetRectangle",,block% � more% � � �� � �� *************** Messages � � ��receive � Ȏ block%!16 � � � 0:quit%=� � � 2:� *** Data save �1 � 3:�dataload(block%!40,�string(block%+44)) � � &502: �= !block%=256:Ȕ block%!8,block%!12:block%!16=&503:A$="" � Ȏ block%!32 � �# � -2:A$=�message("BarHelp") �> � main%:A$=�message("MainHelp0")+�message("MainHelp1") �' � view%:A$=�message("ViewHelp") �( � helpw%:A$=�message("HelpHelp") �' � info%:A$=�message("InfoHelp") �D � wid%:A$=�message("WidHelp")+�message("WidHelp"+�block%!36) � � �> $(block%+20)=A$:ș"Wimp_SendMessage",17,block%,block%!4 � � &400C1: �; șReadMode%,-1,3 � ,,ncolour%:� default$="" � �split �< ș"Wimp_ReadPixTrans",512,big%,big%+16,,,,scale%,pix% �4 șSpriteOp%,40+512,big%,big%+16 � ,,,,,,mode% �' șReadMode%,mode%,3 � ,,ncolour% �E � ncolour%=63 � ș"ColourTrans_SelectTable",mode%,0,-1,-1,pix% � � &400C0: �" sx%=block%!24:sy%=block%!28 � Ȏ block%!32 � � � 6:�makelist � � 7: �' � B%=0 � 15:�tick(col%,B%,0):� � Ȏ block%!36 � � � 0:�tick(col%,cb%,-1) � � 1:�tick(col%,cy%,-1) � � 2:�tick(col%,cn%,-1) � � �/ $col%=�message("Men8."+�(block%!36+1)) �- ș"Wimp_CreateSubMenu",,col%,sx%,sy% �C � 8:$�text(wid%,1)=�b%:ș"Wimp_CreateSubMenu",,wid%,sx%,sy% � � � � �� � ���makelist �8 A%=lis%+28:!A%=0:�tick(lis%,0,default$=""):index%=0 � � �K ș"XOS_GBPB",10,"<PuzPic$Dir>",rep%,1,index%,255,0 � ,,,,index%;flag% �' � index%=1 � (flag%�1)=0 � !A%+=2 �= � index%<>-1 � ((!rep%�&FFF00)>>8)=&FF9 � (flag%�1)=0 � �B A%+=24:$(A%+12)=�string(rep%+20):!A%=0:A%!4=0:A%!8=&7000021 �2 � "<PuzPic$Dir>."+$(A%+12)=default$ � !A%=1 � � � � index%=-1 � flag%�1 �2 !A%+=128:ș"Wimp_CreateSubMenu",,lis%,sx%,sy% �� � �>ݤstring(ptr%):� A$:ȕ ?ptr%<>0:A$+=�(?ptr%):ptr%+=1:�:=A$ � ���dataload(type%,path$) �F � type%=&FF9 � default$=path$:�loadsprite(path$):�split:�voidmain �� � �� *************** Clicks � �B��makepointer(A$):ș"XWimp_SpriteOp",36,,"ptr_"+A$,2,0,0,0,0:� � �(��click(window%,icon%,button%,X%,Y%) �K � ((button%=1 � window%>0) � button%�64) � window%<>main% � �startdrag � Ȏ window% � � � -2: � Ȏ button% � � � 1:�open(view%) �$ � 2:�menu(X%-64,96+44*11+50) � � 4:�open(main%) � 2 � helpw%,view%:� button%=2 � �menu(X%-64,Y%) , � timew%:� button%=2 � �menu(X%-64,Y%) � icon%=4 � T !block%=highw%:ș GetWindow%,,block%:ș &35,-1,11 � ,,W%:ș &35,-1,12 � ,,H% I ș &35,-1,4 � ,,A%:ș &35,-1,5 � ,,U%:W%=(W%+1)<<A%:H%=(H%+1)<<U% O winW%=block%!12-block%!4:winH%=block%!16-block%!8:block%!4=W%/2-winW%/2 O block%!12=block%!4+winW%:block%!8=H%/2-winH%/2:block%!16=block%!8+winH% șOpenWindow%,,block% � s � main%:� button%=2 � �menu(X%-64,Y%) � � (tflag%�2)=0 � �mainclick(X%,Y%):�percent � � button%�64 �startdrag * � win%:� button%=2 � �menu(X%-64,Y%) � icon%=3 � + !block%=win%:șCloseWindow%,,block% � winH%=432 � 2 �menushade(bar%,1,0):�menushade(bar%,8,0) 4 �icontext(highw%,(b%-2)*4+1,$�text(win%,5)) 6 �icontext(highw%,(b%-2)*4+2,$�text(timew%,1)) - �icontext(highw%,(b%-2)*4+3,��$,15)) � � � highw%: � button%<>2 � � icon%=36 � K � A%=3 � 10:$�table(A%,1)="Chris Morison":$�table(A%,2)="99:59:59" + $�table(A%,3)="Wed,19 Jan 1994":� � !block%=highw%:șGetWindow%,,block%:șRedraw%,highw%,block%!20,block%!8-block%!16+block%!24,block%!12-block%!4+block%!20,block%!24 � � �menu(X%-64,Y%) � � wid%: tempb%=�($�text(wid%,1)) Ȏ icon% � != � 0:� button%=1 � tempb%+=1 � � button%=4 � tempb%-=1 "= � 2:� button%=1 � tempb%-=1 � � button%=4 � tempb%+=1 # � 3: $> b%=�($�text(wid%,1)):�split:�unmix:�shuffle:�voidmain %( � button%=4 � șCreateMenu%,,-1 & � '6 � tempb%<3 � tempb%=3 � � tempb%>10 � tempb%=10 ( �icontext(wid%,1,�tempb%) ) � *� + ,��startdrag -qdragging%=window%:!block%=window%:ș GetWindow%,,block%:dx%=X%-block%!4:dy%=block%!16-Y%:�makepointer("hand") .� / 0��mainclick(x%,y%) 1& block%!0=main%:șGetInfo%,,block% 2= wwidth%=block%!52-block%!44:wheight%=block%!48-block%!56 3H șGetWindow%,,block%:xo%=block%!4-block%!20:yo%=block%!16-block%!24 4F mx%=(x%-xo%)�xstep:my%=(yo%-y%)�ystep:oldx%=bx%:oldy%=by%:flag%=0 5* � mx%=b% � mx%=b%-1 � � mx%<0 � mx%=0 6* � my%=b% � my%=b%-1 � � my%<0 � my%=0 7I � my%=by% � mx%=bx% � watchno%<>mx%+my%*b%+1 � mx%+my%*b%+1<>b%*b% � 8> watchno%=mx%+my%*b%+1:� dragging%=0 � dragging%=window% 9� Y%=-1:�:Y%+=1:X%=-1:�:X%+=1:� s%(X%,Y%)=watchno% � X%>b%-2:� s%(X%,Y%)=watchno%:șRedraw%,main%,X%*xstep,-(Y%+1)*ystep,(X%+1)*xstep,-Y%*ystep : � ; � my%=by% � <4 ȕ mx%>bx%:s%(bx%,by%)=s%(bx%+1,by%):bx%+=1:� =4 ȕ mx%<bx%:s%(bx%,by%)=s%(bx%-1,by%):bx%-=1:� >Y � oldx%<bx%� x0%=oldx%*xstep:x1%=(bx%+1)*xstep � x0%=bx%*xstep:x1%=(oldx%+1)*xstep ?F s%(bx%,by%)=0:șRedraw%,main%,x0%,-(by%+1)*ystep,x1%,-by%*ystep @Y x0%=(x0%/xstep)*40:x1%=(x1%/xstep)*40:șRedraw%,helpw%,x0%,-(by%+1)*40,x1%,-by%*40 A � B � mx%=bx% � C5 ȕ my%>by%:s%(bx%,by%)=s%(bx%,by%+1):by%+=1:� D5 ȕ my%<by%:s%(bx%,by%)=s%(bx%,by%-1):by%-=1:� EY �oldy%<by%� y0%=(by%+1)*ystep:y1%=oldy%*ystep � y0%=(oldy%+1)*ystep:y1%=by%*ystep FG s%(bx%,by%)=0:șRedraw%,main%,bx%*xstep,-y0%,(bx%+1)*xstep,-y1% GZ y0%=(y0%/ystep)*40:y1%=(y1%/ystep)*40:șRedraw%,helpw%,bx%*40,-y0%,(bx%+1)*40,-y1% H% � � (button%�64) � �startdrag I � J � K� L M��open(window%) N Ȏ window% � O � main% P" puzopen%=�:�tick(bar%,2,-1) Q6 � tflag%=0 � timestarted%+=now%-delay%:delay%=0 R tflag%=tflag%�1 S* � view%:viewopen%=�:�tick(bar%,3,-1) T. � timew%:timer%=�:�tick(bar%,4,-1):�time U � VF !rep%=window%:ș GetWindow%,,rep%:rep%!28=-1:ș OpenWindow%,,rep% W� X Y� *************** Menus Z [��menuselect \ flag%=0 ] Ȏ !block% � ^ � 1:�shuffle:�voidmain _ � 2 ` � puzopen% � aH !block%=main%:ș CloseWindow%,,block%:�tick(bar%,2,0):puzopen%=0 b0 tflag%=tflag%�2:� tflag%=0 � delay%=now% c � �open(main%) d � eh � 3:� viewopen% � !block%=view%:ș CloseWindow%,,block%:�tick(bar%,3,0):viewopen%=0 � �open(view%) fj � 4:� timer% � !block%=timew%:ș CloseWindow%,,block%:�tick(bar%,4,0):timer%=0 � �time:�open(timew%) g � 5:h%=help% h( � help%>0 � �tick(hel%,help%-1,0) i Ȏ block%!4 � j � -1:� help%>0 � help%=0 kH � 0:� help%=1 � help%=0 � help%=1:�tick(hel%,0,-1):�open(helpw%) l: � 1:� help%=2 � help%=0 � help%=2:�tick(hel%,1,-1) m � nA � help%<>1 � h%=1 � !block%=helpw%:ș CloseWindow%,,block% o �tick(bar%,5,help%>0) pH șRedraw%,main%,bx%*xstep,-(by%+1)*ystep,(bx%+1)*xstep,-by%*ystep q � 6: r � block%!4>0 � s7 default$="<PuzPic$Dir>."+$(lis%+40+24*block%!4) t& �loadsprite(default$):flag%=-1 u �split:�voidmain v4 � � block%!4=0 � default$="":�split:�voidmain w � x � 7: y Ȏ block%!4 � zG � 0:�tick(col%,cb%,0):cb%=block%!8:�voidmain:�tick(col%,cb%,-1) { � 1:�tick(col%,cy%,0):cy%=block%!8:�tick(col%,cy%,-1):șRedraw%,main%,bx%*xstep,-(by%+1)*ystep,(bx%+1)*xstep,-by%*ystep | � 2:�tick(col%,cn%,0):cn%=block%!8:�tick(col%,cn%,-1):șRedraw%,main%,bx%*xstep,-(by%+1)*ystep,(bx%+1)*xstep,-by%*ystep } � ~ �voidhelp � 9: �A � tflag%=1 � T%=now%-timestarted% � T%=delay%-timestarted% �A F%=�"<Puz$Dir>.Default":�#F%,default$,b%,cb%,cy%,cn%,help% �4 � Y%=0 � b%-1:� X%=0 � b%-1:�#F%,s%(X%,Y%):�, �( �#F%,puzopen%,viewopen%,timer%,T% �* !block%=main%:ș GetWindow%,,block% �E �#F%,block%!4,block%!8,block%!12,block%!16,block%!20,block%!24 �U !block%=view%:ș GetWindow%,,block%:�#F%,block%!4,block%!8,block%!12,block%!16 �C !block%=helpw%:ș GetWindow%,,block%:�#F%,block%!4,block%!16 �V !block%=timew%:ș GetWindow%,,block%:�#F%,block%!4,block%!8,block%!12,block%!16 �C � A%=3 � 10:�#F%,$�table(A%,1),$�table(A%,2),$�table(A%,3):� � �#F% � � 10:quit%=� � � �D ș Pointer%,,block%:� block%!8=1 � �menu(0,0):� flag% �makelist �� � ���voidmain �� !block%=main%:șGetWindow%,,block%:șRedraw%,main%,block%!20,block%!8-block%!16+block%!24,block%!12-block%!4+block%!20,block%!24 �� !block%=view%:șGetWindow%,,block%:șRedraw%,view%,block%!20,block%!8-block%!16+block%!24,block%!12-block%!4+block%!20,block%!24 � �voidhelp �� � ����voidhelp:!block%=helpw%:șGetWindow%,,block%:șRedraw%,helpw%,block%!20,block%!8-block%!16+block%!24,block%!12-block%!4+block%!20,block%!24 �� � �2��menu(mx%,my%):ș CreateMenu%,,bar%,mx%,my%:� � ���createbarmenu � �createcolourmenu � �createcolmenu � �createhelpmenu �" � bar% 24+28*11,lis% 24+28*78 �[ $lis%=�message("Men7"):lis%!12=&00070207:lis%!16=12*16:lis%!20=44:lis%!24=0:A%=lis%+28 �C !A%=2:A%!4=0:A%!8=&7000021:L%=�maketext(A%,�message("Men7.1")) � � L%>11 � lis%!16=L%*16+16 �L $bar%=�message("Men0"):bar%!12=&00070207:bar%!20=44:bar%!24=0:A%=bar%+4 �L A%+=24:!A%=0:A%!4=info%:A%!8=&7000021:A%+=24:!A%=2:A%!4=0:A%!8=&7000021 �H A%+=24:!A%=0:A%!4=0:A%!8=&7000021:A%+=24:!A%=0:A%!4=0:A%!8=&7000021 �K A%+=24:!A%=0:A%!4=0:A%!8=&7000021:A%+=24:!A%=2:A%!4=hel%:A%!8=&7000021 �P A%+=24:!A%=8:A%!4=info%:A%!8=&7000021:A%+=24:!A%=0:A%!4=colm%:A%!8=&7000021 �K A%+=24:!A%=8:A%!4=wid%:A%!8=&7000021:A%+=24:!A%=0:A%!4=0:A%!8=&7000021 �( A%+=24:!A%=128:A%!4=0:A%!8=&7000021 �+ C%=�$bar%:A%=bar%+4:� B%=1 � 11:A%+=24 �9 L%=�maketext(A%,�message("Men"+�B%)):� L%>C% � C%=L% � �:bar%!16=16*C%+16 �� � �ݤmaketext(ptr%,A$):� A% � � �A$>11 � �I � A% �(A$):ptr%!12=A%:ptr%!16=0:ptr%!20=�(A$):$A%=A$:ptr%!8+=(1<<8) � � $(ptr%+12)=A$ � � � =�(A$) � ���createcolourmenu � � col% 24+28*15 �Y $col%=�message("Men7"):col%!12=&00070207:col%!16=5*16:col%!20=44:col%!24=0:A%=col%+4 �$ � B%=0 � 15:A%+=24:!A%=0:A%!4=0 �E A%!8=&29+(B%<<28):� B%<4 � B%=9 � B%=12 � B%=14 � A%!8+=(7<<24) � $(A%+12)=�B%:�:!A%+=128 �� � ���createcolmenu � � colm% 24+28*15 �Q $colm%=�message("Men8"):colm%!12=&00070207:colm%!20=44:colm%!24=0:A%=colm%+4 �N A%+=24:!A%=8:A%!4=col%:A%!8=&7000021:A%+=24:!A%=8:A%!4=col%:A%!8=&7000021 �8 A%+=24:!A%=8+128:A%!4=col%:A%!8=&7000021:C%=�$colm% �! A%=colm%+4:� B%=1 � 3:A%+=24 �= L%=�maketext(A%,�message("Men8."+�B%)):� L%>C% � C%=L%+1 � �:colm%!16=16*C% �� � ���createhelpmenu � � hel% 24+28*3 �V $hel%=�message("Men6"):hel%!12=&00070207:hel%!20=44:hel%!24=0:A%=hel%+4:C%=�$hel% �2 � B%=1 � 2:A%+=24:!A%=0:A%!4=0:A%!8=&7000021: �; L%=�maketext(A%,�message("Men6."+�B%)):� L%>C% � C%=L% � �:!A%+=128:hel%!16=C%*16+16 �� � �(� *************** Icon Manipulation � �F��iconshade(window%,icon%,flag%):�A%:A%=1:�flag%=-1 � flag%=1:A%=0 �C !rep%=window%:rep%!4=icon%:rep%!8=flag%*(1<<22):rep%!12=A%<<22 � ș SetIcon%,,rep% �� � �D��iconselect(window%,icon%,flag%):�A%:!rep%=window%:rep%!4=icon% �# A%=1:� flag%=-1 � flag%=1:A%=0 �6 rep%!8=flag%<<21:rep%!12=A%<<21:ș SetIcon%,,rep% �� � �Fݤtext(window%,icon%):!rep%=window%:rep%!4=icon%:ș GetIcon%,,rep% �=rep%!28 � �ݤtable(n%,x%) �5 rep%!4=(n%-2)*4+x%:!rep%=highw%:șGetIcon%,,rep% �=rep%!28 � �#��icontext(window%,icon%,text$) �B !rep%=window%:rep%!4=icon%:ș GetIcon%,,rep%:$(rep%!28)=text$ �) rep%!8=0:rep%!12=0:ș SetIcon%,,rep% �� � �*��tick(menu%,item%,flag%):�A% �6 A%=menu%+28+24*item%:!A%=!A%�&FE:� flag% � !A%+=1 �� � �&��menushade(menu%,item%,flag%):�A% �B A%=menu%+36+24*item%:!A%=!A%�&FFBFFFFF:� flag% � !A%+=(1<<22) �� � �� *************** Messages � ���error:!block%=255:�#0 �) $(block%+4)=�$+"."+�message("Click") �& ș Report%,block%,3,app$ � ,flag% � � flag%=2 � �quit �& default$="":b%=3:�split:�voidmain �� � ���report(rep$,flag%):�A$,F% � !rep%=255:$(rep%+4)=rep$+�0 �< A$=�message("Mess")+" "+�message("from")+" "+app$:F%=17 � � flag% � F%-=8:A$=app$ � ș Report%,rep%,F%,A$ �� � v��loadmessages:F%=�"<Puz$Dir>.Messages":A%=0:�:A$=�#F%:A%+=1:� �#F%:� M$(A%):�#F%=0:� B%=0 � A%:M$(B%)=�#F%:�:�#F% � mݤmessage(S$):�A%,A$,F%:A%=-1:F%=0:ȕ A%<�(M$(),1) � F%=0:A%+=1:F%=�M$(A%),S$):�:=�M$(A%),�M$(A%),":")+1) #� *************** Initialising ��init:șHourOn% 8 dragging%=0:dx%=0:dy%=0:watch%=�:watchno%=0:quit%=� % �baricon("!puzzle"):�iconsprites J F%=�"<Puz$Dir>.Default":� #F%,default$,b%,cb%,cy%,cn%,help%:� s%(9,9) M � Y%=0 � b%-1:� X%=0 � b%-1:�#F%,s%(X%,Y%):� s%(X%,Y%)=0 � bx%=X%:by%=Y% ) �,:�#F%,puzopen%,viewopen%,timer%,T% ; șGetTime% � delay%:now%=delay%:timestarted%=delay%-T% J �windows:� A%=3 � 10:�#F%,$�table(A%,1),$�table(A%,2),$�table(A%,3):� ! �#F%:�createbarmenu:first%=� 2 E$=�message("ErrFind"):C$=�message("NotFind") A � �E$,"%1") � E$=�E$,�E$,"%1")-1)+default$+�E$,�E$,"%1")+2) @ � �C$,"%0") � C$=�C$,�C$,"%0")-1)+default$+�C$,�C$,"%0")+2) � � � default$<>"" � 2 A$=default$:ȕ �A$,"."):A$=�A$,�A$,".")+1):� B $block%=�default$,�default$,A$)-2):$scale%=A$:index%=0:A%=-1 5 � 4 � � � A%=-2:�quickerror:default$="":index%=-1 X � index%>-1 ș&0C,10,block%,rep%,1,index%,50,scale% � ,,,n%,index%:� n%<>0 � A%=0 � index%=-1 ) � A%=-1 � �report(C$,0):default$="" � � � + � default$<>"" � �loadsprite(default$) ? �split:� help%>0 � �tick(hel%,help%-1,-1):�tick(bar%,5,-1) 5 tflag%=0:�time:�percent:� timer% � �open(timew%) ! � puzopen% � �open(main%) "( � viewopen% � �open(view%) #� � help%=1 � !block%=helpw%:ș GetWindow%,,block%:block%!12=block%!4+b%*40+4:block%!8=block%!16-40*b%-4:ș OpenWindow%,,block% $& quit%=�:șHourOff%:first%=� %� & '^��quickerror:� �E$,"%0") � �report(�E$,�E$,"%0")-1)+�$+�E$,�E$,"%0")+2),0) � �report(E$,0) (� ) *��unmix +K A%=0:� Y%=0 � b%-1:� X%=0 � b%-1:A%+=1:s%(X%,Y%)=A%:�,:s%(b%-1,b%-1)=0 , bx%=b%-1:by%=b%-1 -� . /��shuffle:șHourOn% 0 � A%=1 � 10*b%*b% 1 T%=�(b%)-1 22 ȕ T%>bx%:s%(bx%,by%)=s%(bx%+1,by%):bx%+=1:� 32 ȕ T%<bx%:s%(bx%,by%)=s%(bx%-1,by%):bx%-=1:� 4 T%=�(b%)-1 52 ȕ T%>by%:s%(bx%,by%)=s%(bx%,by%+1):by%+=1:� 62 ȕ T%<by%:s%(bx%,by%)=s%(bx%,by%-1):by%-=1:� 7 � 8J s%(bx%,by%)=0:delay%=0:timestarted%=now%:� (tflag%�1)=0 � delay%=now% 9 �time:�percent : șHourOff% ;� < =��swinumbers >C ș"OS_SWINumberFromString",,"OS_SWINumberFromString" � String% ?2 ș String%,,"Wimp_GetIconState" � GetIcon% @0 ș String%,,"Wimp_CreateIcon" � CreateIcon% A0 ș String%,,"Wimp_SetIconState" � SetIcon% B5 ș String%,,"Wimp_GetWindowState" � GetWindow% C- ș String%,,"Wimp_ForceRedraw" � Redraw% D4 ș String%,,"Wimp_GetWindowInfo" � GetInfo% E4 ș String%,,"Wimp_LoadTemplate" � LoadTemplate% F4 ș String%,,"Wimp_CreateWindow" � CreateWindow% G0 ș String%,,"Wimp_OpenWindow" � OpenWindow% H2 ș String%,,"Wimp_CloseWindow" � CloseWindow% I0 ș String%,,"Wimp_CreateMenu" � CreateMenu% J4 ș String%,,"Wimp_GetPointerInfo" � Pointer% K. ș String%,,"Wimp_SetColour" � SetColour% L/ ș String%,,"Wimp_ReportError" � Report% M- ș String%,,"Wimp_Poll" � Poll% N. ș String%,,"Wimp_PollIdle" � PollIdle% O* ș String%,,"OS_SpriteOp" � SpriteOp% P2 ș String%,,"OS_ReadMonotonicTime" � GetTime% Q2 ș String%,,"OS_ReadModeVariable" � ReadMode% R5 ș String%,,"Hourglass_On" � HourOn% S- ș String%,,"Hourglass_Smash" � HourOff% T� U V��baricon(A$) WO !block%=-1:block%!4=0:block%!8=0:block%!12=68:block%!16=68:block%!20=&3002 X2 $(block%+24)=A$:ș CreateIcon%,,block% � bar% Y� Z [ ��windows \ indsize%=910 ] � name% 11,ind% indsize% ^ indtop%=ind%+indsize% _1 ș"Wimp_OpenTemplate",,"<Puz$Dir>.Templates" `L $name%="Info":ș LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 � ,,ind% a> block%!64=iconarea%:ș CreateWindow%,,block% � info% bL $name%="Main":ș LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 � ,,ind% cR title%=block%!72:�#F%,!block%,block%!4,block%!8,block%!12,block%!16,block%!20 d% ș CreateWindow%,,block% � main% eL $name%="View":ș LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 � ,,ind% fK �#F%,!block%,block%!4,block%!8,block%!12:$(block%!72)=�message("Men4") g% ș CreateWindow%,,block% � view% hL $name%="Help":ș LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 � ,,ind% i9 $(block%!72)=�message("Men6"):�#F%,!block%,block%!12 j( ș CreateWindow%,,block% � helpw% kM $name%="Width":ș LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 � ,,ind% lB $(block%!72)=�message("Men9"):ș CreateWindow%,,block% � wid% mM $name%="Timer":ș LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 � ,,ind% nK �#F%,!block%,block%!4,block%!8,block%!12:$(block%!72)=�message("Men5") oB ș CreateWindow%,,block% � timew% pK $name%="Win":ș LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 � ,,ind% qB ș CreateWindow%,,block% � win% rN $name%="Scores":ș LoadTemplate%,,block%,ind%,indtop%,-1,name%,0 � ,,ind% s& ș CreateWindow%,,block% � highw% tA ș"Wimp_CloseTemplate":�icontext(info%,1,�message("TaskID")) u% �icontext(wid%,3,�message("OK")) vR �icontext(info%,2,�message("Purpose")):�icontext(info%,4,�message("Version")) w� x y��iconsprites z5 F%=�"<Puz$Dir>.Sprites":A%=�#F%+8:� iconarea% A% {& !iconarea%=A%:iconarea%!8=16:�#F% |D $block%="<Puz$Dir>.Sprites":șSpriteOp%,10+256,iconarea%,block% }� ~ !��loadsprite(path$):șHourOn% �. A$=path$:ȕ �A$,"."):A$=�A$,�A$,".")+1):� �( $title%=�message("TaskID")+" - "+A$ �8 F%=�(path$):A%=�#F%+16:�#F%:B%=�makemem(A%+16,A%/2) � � � B% � �! șSpriteOp%,&10A,big%,path$ �B șSpriteOp%,40+512,big%,big%+16 � ,,,swidth%,sheight%,,mode% �F șSpriteOp%,15+512,small%,small%+16,0,swidth%/9,sheight%/9,mode% �+ B%=�makemem(A%+16,!(small%+16)*99+16) � � � � B% � �T �report(�message("NoMem"),0):default$="":b%=3:B%=�makemem(mem%(0,0),mem%(2,0)) � � �3 șSpriteOp%,40+512,big%,big%+16 � ,,,,,,mode% �P șReadMode%,mode%,3�,,A%:șReadMode%,mode%,4�,,B%:șReadMode%,mode%,5�,,C% �G șReadMode%,-1,3�,,D%:șReadMode%,-1,4�,,E%:șReadMode%,-1,5�,,F% �1 width%=swidth%*1<<B%:height%=sheight%*1<<C% �" � width%<120 � height%<116 � �# �report(�message("Small"),0) �X default$="":big%!8=16:șSpriteOp%,9+256,big%:small%!8=16:șSpriteOp%,9+256,small% � � � � A%>D% � � A$=�message("Mode") �5 A$=�A$,�A$,"%0")-1)+�(mode%)+�A$,�A$,"%0")+2) � �report(A$,0) � � � � � � ��:șHourOff% � �%ݤmakemem(b%,s%):� flag%,S%,F%,T% �. � b%<mem%(0,0) � b%=mem%(0,0) �+ � s%<mem%(2,0) � s%=mem%(2,0)+100*1024 �3 T%=b%+s%+1024:ș"Wimp_SlotSize",-1,-1 � S%,,F% �) � S%-�+&8004<T% � F%<T%-S%+�-&8004 � �9 flag%=-1:big%=0:small%=0:� b%=mem%(0,0) � �nomemory � � �- ș"Wimp_SlotSize",�-&8004+T%,-1:flag%=0 �O � big%=0 � !big%<>b% � big%=�+4:!big%=b%:big%!8=16:șSpriteOp%,9+256,big% �I small%=big%+!big%+4:!small%=s%:small%!8=16:șSpriteOp%,9+256,small% �$ � � =flag% � ���split:șHourOn% � � default$="" � �makesprite � �splitsprite:șHourOff% �� � �0��makesprite:$sprite%="sprite":$title%=app$ �( !block%=main%:ș GetWindow%,,block% �; șRedraw%,-1,block%!4,block%!16,block%!12,block%!16+44 �F șReadMode%,-1,3 � ,,ncolour%:� ncolour%<63 � mode%=12 � mode%=15 �a � mode%=12 � A%=�makemem(mem%(0,b%-3),mem%(2,b%-3)) � A%=�makemem(mem%(1,b%-3),mem%(3,b%-3)) �N � A% � �report(�message("NoMem"),0):b%=3:A%=�makemem(mem%(0,0),mem%(2,0)) �< șSpriteOp%,15+256,big%,sprite%,0,37*b%+1,19*b%+1,mode% �& șSpriteOp%,60+256,big%,sprite%,0 �$ ș"ColourTrans_InvalidateCache" � �5:A%=0 � � Y%=b%-1 � 0 � -1 � � X%=0 � b%-1 � A%+=1:B%=�(�A%)*8 �* ȑ X%*74,Y%*76 �$ șSetColour%,7:ȓȐ 0,0,74,76 � � A%<b%*b% � �% șSetColour%,3:ȓȐ 2,4,71,71 �3 șSetColour%,1:ȓȐ 2,4,4,71:ȓȐ 2,71,71,4 �3 șSetColour%,4:ȓȐ 8,4,63,4:ȓȐ 69,4,4,63 �, �4,4:� 6,4:�6,8:�71,71:�BY2,0:�BY0,4 �' șSetColour%,11:� 38-B%,48:�;A% � � � � � � � � � șSpriteOp%,60,0,0:ȑ 0,0 �$ ș"ColourTrans_InvalidateCache" �� � �2� 8192,8192,9276,12940,17748,23316,28956,35968 �4� 8192,11764,18108,25820,34900,45960,57852,71112 �3� 8192,8192,10192,14856,20368,26728,33936,41992 �4� 8192,12076,19312,28156,38608,50668,64336,79612 � ���splitsprite � șSpriteOp%,9+512,small% �: ș"Wimp_ReadPixTrans",512,big%,big%+16,,,,scale%,pix% �A șSpriteOp%,40+512,big%,big%+16 � ,,,swidth%,sheight%,,mode% �@ șReadMode%,mode%,3 � ,,ncolour% �D � ncolour%>=63 � ș"ColourTrans_SelectTable",mode%,0,-1,-1,pix% �D șReadMode%,mode%,4 � ,,xscale%:șReadMode%,mode%,5 � ,,yscale% �6 sheight%=b%*(sheight%�b%):swidth%=b%*(swidth%�b%) �< șReadMode%,-1,4 � ,,xscal%:șReadMode%,-1,5 � ,,yscal% �? width%=swidth%*1<<xscale%:height%=sheight%*1<<yscale%:A%=0 �K xstep=width%/b%:ystep=height%/b%:q%=16/(1<<xscale%):r%=16/(1<<yscale%) �& ș"ColourTrans_InvalidateCache" �$ � Y%=height%-ystep � 0 � -ystep �# � X%=0 � width%-xstep � xstep � A%+=1 � � A%<b%^2 � �D șSpriteOp%,15+256,small%,�A%,0,swidth%/b%,sheight%/b%,mode% �% șSpriteOp%,60+256,small%,�A% �/ șSpriteOp%,34+512,big%,big%+16,-X%,-Y% � � � � � � �7 șSpriteOp%,60,0,0:ș"ColourTrans_InvalidateCache" �X !block%=0:block%!4=-(sheight%-1)*1<<yscale%:block%!8=swidth%*1<<xscale%:block%!12=0 �D ș"Wimp_SetExtent",main%,block%:ș"Wimp_SetExtent",view%,block% � � puzopen% � first% � �R !block%=main%:ș GetWindow%,,block%:block%!8=block%!16-sheight%*(1<<yscale%) �C block%!12=block%!4+swidth%*(1<<xscale%):șOpenWindow%,,block% � � �( � viewopen% � first% � �open(view%) �\ !block%=0:block%!12=0:block%!8=40*b%+4:block%!4=-40*b%:ș"Wimp_SetExtent",helpw%,block% � !block%=helpw%:ș GetWindow%,,block%:block%!12=block%!4+b%*40+4:block%!8=block%!16-40*b%-4:ș OpenWindow%,,block%:� help%<>1 � �first% � ș CloseWindow%,,block% �� �
00000000 0d 00 01 4a de 20 62 6c 6f 63 6b 25 20 31 36 39 |...J. block% 169| 00000010 36 2c 73 70 72 69 74 65 25 20 31 31 2c 73 63 61 |6,sprite% 11,sca| 00000020 6c 65 25 20 31 36 2c 70 69 78 25 20 32 35 36 2c |le% 16,pix% 256,| 00000030 73 63 61 6c 65 32 25 20 31 36 2c 48 24 28 39 29 |scale2% 16,H$(9)| 00000040 2c 6d 65 6d 25 28 33 2c 37 29 0d 00 02 2d f2 73 |,mem%(3,7)...-.s| 00000050 77 69 6e 75 6d 62 65 72 73 3a c8 99 26 35 31 20 |winumbers:..&51 | 00000060 b8 20 70 61 67 65 25 3a 72 65 70 25 3d 62 6c 6f |. page%:rep%=blo| 00000070 63 6b 25 2b 32 35 36 0d 00 03 30 ee 20 85 20 d9 |ck%+256...0. . .| 00000080 23 30 3a ff 22 45 52 52 4f 52 20 22 2b f6 24 2b |#0:."ERROR "+.$+| 00000090 22 20 28 65 72 72 6f 72 63 6f 64 65 20 22 2b c3 |" (errorcode "+.| 000000a0 9e 2b 22 29 22 3a e0 0d 00 04 29 f2 6c 6f 61 64 |.+")":....).load| 000000b0 6d 65 73 73 61 67 65 73 3a 61 70 70 24 3d a4 6d |messages:app$=.m| 000000c0 65 73 73 61 67 65 28 22 54 61 73 6b 49 44 22 29 |essage("TaskID")| 000000d0 0d 00 05 2a c8 99 22 57 69 6d 70 5f 49 6e 69 74 |...*.."Wimp_Init| 000000e0 69 61 6c 69 73 65 22 2c 32 30 30 2c 26 34 42 35 |ialise",200,&4B5| 000000f0 33 34 31 35 34 2c 61 70 70 24 0d 00 06 2b e3 20 |34154,app$...+. | 00000100 41 25 3d 30 20 b8 20 33 3a e3 20 42 25 3d 30 20 |A%=0 . 3:. B%=0 | 00000110 b8 20 37 3a f3 20 6d 65 6d 25 28 41 25 2c 42 25 |. 7:. mem%(A%,B%| 00000120 29 3a ed 3a ed 0d 00 07 47 73 6d 61 6c 6c 25 3d |):.:....Gsmall%=| 00000130 30 3a 62 69 67 25 3d 30 3a 64 65 66 61 75 6c 74 |0:big%=0:default| 00000140 24 3d 22 2d 31 22 3a 62 25 3d 33 3a 41 25 3d a4 |$="-1":b%=3:A%=.| 00000150 6d 61 6b 65 6d 65 6d 28 6d 65 6d 25 28 30 2c 30 |makemem(mem%(0,0| 00000160 29 2c 6d 65 6d 25 28 32 2c 30 29 29 0d 00 08 09 |),mem%(2,0))....| 00000170 f2 69 6e 69 74 0d 00 09 1c ee 20 85 20 f2 65 72 |.init..... . .er| 00000180 72 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 |ror | 00000190 20 0d 00 0a 1b c8 99 47 65 74 54 69 6d 65 25 20 | ......GetTime% | 000001a0 b8 20 6e 6f 77 25 20 20 20 20 20 20 0d 00 0b 0d |. now% ....| 000001b0 c8 95 20 ac 71 75 69 74 25 0d 00 0c 12 20 e7 20 |.. .quit%.... . | 000001c0 64 72 61 67 67 69 6e 67 25 20 8c 0d 00 0d 24 20 |dragging% ....$ | 000001d0 20 c8 99 20 50 6f 6c 6c 25 2c 36 31 39 32 2c 62 | .. Poll%,6192,b| 000001e0 6c 6f 63 6b 25 20 b8 20 72 65 61 73 6f 6e 25 0d |lock% . reason%.| 000001f0 00 0e 06 20 cc 0d 00 0f 1b 20 20 e7 20 74 69 6d |... ..... . tim| 00000200 65 72 25 20 80 20 74 66 6c 61 67 25 3d 31 20 8c |er% . tflag%=1 .| 00000210 0d 00 10 31 20 20 20 c8 99 50 6f 6c 6c 49 64 6c |...1 ..PollIdl| 00000220 65 25 2c 36 31 39 32 2c 62 6c 6f 63 6b 25 2c 6e |e%,6192,block%,n| 00000230 6f 77 25 2b 31 30 30 20 b8 20 72 65 61 73 6f 6e |ow%+100 . reason| 00000240 25 0d 00 11 26 20 20 cc 20 c8 99 20 50 6f 6c 6c |%...& . .. Poll| 00000250 25 2c 36 31 39 33 2c 62 6c 6f 63 6b 25 20 b8 20 |%,6193,block% . | 00000260 72 65 61 73 6f 6e 25 0d 00 12 07 20 20 cd 0d 00 |reason%.... ...| 00000270 13 05 cd 0d 00 14 16 20 c8 99 47 65 74 54 69 6d |....... ..GetTim| 00000280 65 25 20 b8 20 6e 6f 77 25 0d 00 15 11 20 c8 8e |e% . now%.... ..| 00000290 20 72 65 61 73 6f 6e 25 20 ca 0d 00 16 22 20 20 | reason% ...." | 000002a0 c9 20 20 30 3a e7 20 64 72 61 67 67 69 6e 67 25 |. 0:. dragging%| 000002b0 20 8c 20 f2 64 72 61 67 67 69 6e 67 0d 00 17 1f | . .dragging....| 000002c0 20 20 c9 20 20 31 3a f2 64 72 61 77 77 69 6e 64 | . 1:.drawwind| 000002d0 6f 77 28 21 62 6c 6f 63 6b 25 29 0d 00 18 0b 20 |ow(!block%).... | 000002e0 20 c9 20 20 32 3a 0d 00 19 24 20 20 20 e7 20 21 | . 2:...$ . !| 000002f0 62 6c 6f 63 6b 25 3d 76 69 65 77 25 20 8c 20 62 |block%=view% . b| 00000300 6c 6f 63 6b 25 21 32 34 3d 30 0d 00 1a 8e 20 20 |lock%!24=0.... | 00000310 20 c8 99 20 4f 70 65 6e 57 69 6e 64 6f 77 25 2c | .. OpenWindow%,| 00000320 2c 62 6c 6f 63 6b 25 3a e7 20 21 62 6c 6f 63 6b |,block%:. !block| 00000330 25 3d 76 69 65 77 25 20 8c 20 c8 99 52 65 64 72 |%=view% . ..Redr| 00000340 61 77 25 2c 76 69 65 77 25 2c 2d 62 6c 6f 63 6b |aw%,view%,-block| 00000350 25 21 32 30 2c 62 6c 6f 63 6b 25 21 38 2d 62 6c |%!20,block%!8-bl| 00000360 6f 63 6b 25 21 31 36 2b 62 6c 6f 63 6b 25 21 32 |ock%!16+block%!2| 00000370 34 2c 62 6c 6f 63 6b 25 21 31 32 2d 62 6c 6f 63 |4,block%!12-bloc| 00000380 6b 25 21 34 2d 62 6c 6f 63 6b 25 21 32 30 2c 62 |k%!4-block%!20,b| 00000390 6c 6f 63 6b 25 21 32 34 0d 00 1b 22 20 20 c9 20 |lock%!24..." . | 000003a0 20 33 3a c8 99 20 43 6c 6f 73 65 57 69 6e 64 6f | 3:.. CloseWindo| 000003b0 77 25 2c 2c 62 6c 6f 63 6b 25 0d 00 1c 13 20 20 |w%,,block%.... | 000003c0 20 c8 8e 20 21 62 6c 6f 63 6b 25 20 ca 0d 00 1d | .. !block% ....| 000003d0 53 20 20 20 20 c9 20 6d 61 69 6e 25 3a 70 75 7a |S . main%:puz| 000003e0 6f 70 65 6e 25 3d 30 3a f2 74 69 63 6b 28 62 61 |open%=0:.tick(ba| 000003f0 72 25 2c 32 2c 30 29 3a 74 66 6c 61 67 25 3d 74 |r%,2,0):tflag%=t| 00000400 66 6c 61 67 25 80 32 3a e7 20 74 66 6c 61 67 25 |flag%.2:. tflag%| 00000410 3d 30 20 8c 20 64 65 6c 61 79 25 3d 6e 6f 77 25 |=0 . delay%=now%| 00000420 0d 00 1e 2b 20 20 20 20 c9 20 76 69 65 77 25 3a |...+ . view%:| 00000430 76 69 65 77 6f 70 65 6e 25 3d 30 3a f2 74 69 63 |viewopen%=0:.tic| 00000440 6b 28 62 61 72 25 2c 33 2c 30 29 0d 00 1f 38 20 |k(bar%,3,0)...8 | 00000450 20 20 20 c9 20 68 65 6c 70 77 25 3a 68 65 6c 70 | . helpw%:help| 00000460 25 3d 30 3a f2 74 69 63 6b 28 62 61 72 25 2c 35 |%=0:.tick(bar%,5| 00000470 2c 30 29 3a f2 74 69 63 6b 28 68 65 6c 25 2c 30 |,0):.tick(hel%,0| 00000480 2c 30 29 0d 00 20 29 20 20 20 20 c9 20 74 69 6d |,0).. ) . tim| 00000490 65 77 25 3a 74 69 6d 65 72 25 3d 30 3a f2 74 69 |ew%:timer%=0:.ti| 000004a0 63 6b 28 62 61 72 25 2c 34 2c 30 29 0d 00 21 08 |ck(bar%,4,0)..!.| 000004b0 20 20 20 cb 0d 00 22 25 20 20 c9 20 20 34 3a e7 | ..."% . 4:.| 000004c0 20 21 62 6c 6f 63 6b 25 3d 6d 61 69 6e 25 20 8c | !block%=main% .| 000004d0 20 77 61 74 63 68 25 3d 30 0d 00 23 26 20 20 c9 | watch%=0..#& .| 000004e0 20 20 35 3a e7 20 21 62 6c 6f 63 6b 25 3d 6d 61 | 5:. !block%=ma| 000004f0 69 6e 25 20 8c 20 77 61 74 63 68 25 3d 2d 31 0d |in% . watch%=-1.| 00000500 00 24 40 20 20 c9 20 20 36 3a f2 63 6c 69 63 6b |.$@ . 6:.click| 00000510 28 62 6c 6f 63 6b 25 21 31 32 2c 62 6c 6f 63 6b |(block%!12,block| 00000520 25 21 31 36 2c 62 6c 6f 63 6b 25 21 38 2c 21 62 |%!16,block%!8,!b| 00000530 6c 6f 63 6b 25 2c 62 6c 6f 63 6b 25 21 34 29 0d |lock%,block%!4).| 00000540 00 25 1f 20 20 c9 20 20 37 3a f4 20 2a 2a 2a 20 |.%. . 7:. *** | 00000550 44 72 61 67 20 68 61 73 20 65 6e 64 65 64 0d 00 |Drag has ended..| 00000560 26 0b 20 20 c9 20 20 38 3a 0d 00 27 33 20 20 20 |&. . 8:..'3 | 00000570 e7 20 21 62 6c 6f 63 6b 25 3d 77 69 6e 25 20 80 |. !block%=win% .| 00000580 20 62 6c 6f 63 6b 25 21 34 3d 35 20 80 20 62 6c | block%!4=5 . bl| 00000590 6f 63 6b 25 21 32 34 3d 31 33 20 8c 0d 00 28 2b |ock%!24=13 ...(+| 000005a0 20 20 20 20 21 62 6c 6f 63 6b 25 3d 77 69 6e 25 | !block%=win%| 000005b0 3a c8 99 43 6c 6f 73 65 57 69 6e 64 6f 77 25 2c |:..CloseWindow%,| 000005c0 2c 62 6c 6f 63 6b 25 0d 00 29 15 20 20 20 20 e7 |,block%..). .| 000005d0 20 77 69 6e 48 25 3d 34 33 32 20 8c 0d 00 2a 32 | winH%=432 ...*2| 000005e0 20 20 20 20 20 f2 6d 65 6e 75 73 68 61 64 65 28 | .menushade(| 000005f0 62 61 72 25 2c 31 2c 30 29 3a f2 6d 65 6e 75 73 |bar%,1,0):.menus| 00000600 68 61 64 65 28 62 61 72 25 2c 38 2c 30 29 0d 00 |hade(bar%,8,0)..| 00000610 2b 34 20 20 20 20 20 f2 69 63 6f 6e 74 65 78 74 |+4 .icontext| 00000620 28 68 69 67 68 77 25 2c 28 62 25 2d 32 29 2a 34 |(highw%,(b%-2)*4| 00000630 2b 31 2c 24 a4 74 65 78 74 28 77 69 6e 25 2c 35 |+1,$.text(win%,5| 00000640 29 29 0d 00 2c 36 20 20 20 20 20 f2 69 63 6f 6e |))..,6 .icon| 00000650 74 65 78 74 28 68 69 67 68 77 25 2c 28 62 25 2d |text(highw%,(b%-| 00000660 32 29 2a 34 2b 32 2c 24 a4 74 65 78 74 28 74 69 |2)*4+2,$.text(ti| 00000670 6d 65 77 25 2c 31 29 29 0d 00 2d 2d 20 20 20 20 |mew%,1))..-- | 00000680 20 f2 69 63 6f 6e 74 65 78 74 28 68 69 67 68 77 | .icontext(highw| 00000690 25 2c 28 62 25 2d 32 29 2a 34 2b 33 2c c0 91 24 |%,(b%-2)*4+3,..$| 000006a0 2c 31 35 29 29 0d 00 2e 09 20 20 20 20 cd 0d 00 |,15)).... ...| 000006b0 2f 26 20 20 20 cc 20 c8 99 22 57 69 6d 70 5f 50 |/& . .."Wimp_P| 000006c0 72 6f 63 65 73 73 4b 65 79 22 2c 62 6c 6f 63 6b |rocessKey",block| 000006d0 25 21 32 34 0d 00 30 08 20 20 20 cd 0d 00 31 16 |%!24..0. ...1.| 000006e0 20 20 c9 20 20 39 3a f2 6d 65 6e 75 73 65 6c 65 | . 9:.menusele| 000006f0 63 74 0d 00 32 1f 20 20 c9 20 31 30 3a f4 20 2a |ct..2. . 10:. *| 00000700 2a 2a 20 53 63 72 6f 6c 6c 20 72 65 71 75 65 73 |** Scroll reques| 00000710 74 0d 00 33 1b 20 20 c9 20 31 31 3a f4 20 2a 2a |t..3. . 11:. **| 00000720 2a 20 4c 6f 73 65 20 63 61 72 65 74 0d 00 34 1b |* Lose caret..4.| 00000730 20 20 c9 20 31 32 3a f4 20 2a 2a 2a 20 47 61 69 | . 12:. *** Gai| 00000740 6e 20 63 61 72 65 74 0d 00 35 16 20 20 c9 20 31 |n caret..5. . 1| 00000750 37 2c 31 38 3a f2 72 65 63 65 69 76 65 0d 00 36 |7,18:.receive..6| 00000760 13 20 cb 20 20 20 20 20 20 20 20 20 20 20 20 20 |. . | 00000770 0d 00 37 48 20 e7 20 74 66 6c 61 67 25 3d 31 20 |..7H . tflag%=1 | 00000780 80 20 74 69 6d 65 72 25 20 80 20 74 69 6d 65 74 |. timer% . timet| 00000790 61 6b 65 6e 25 81 36 30 3c 3e 28 6e 6f 77 25 2d |aken%.60<>(now%-| 000007a0 74 69 6d 65 73 74 61 72 74 65 64 25 29 81 36 30 |timestarted%).60| 000007b0 20 8c 20 f2 74 69 6d 65 0d 00 38 05 ce 0d 00 39 | . .time..8....9| 000007c0 09 f2 71 75 69 74 0d 00 3a 05 e0 0d 00 3b 04 0d |..quit..:....;..| 000007d0 00 3c 0a dd f2 71 75 69 74 0d 00 3d 19 20 c8 99 |.<...quit..=. ..| 000007e0 22 58 48 6f 75 72 67 6c 61 73 73 5f 53 6d 61 73 |"XHourglass_Smas| 000007f0 68 22 0d 00 3e 27 20 e7 20 62 69 67 25 3c 3e 30 |h"..>' . big%<>0| 00000800 20 8c 20 c8 99 22 58 4f 53 5f 4d 6f 64 75 6c 65 | . .."XOS_Module| 00000810 22 2c 37 2c 2c 62 69 67 25 0d 00 3f 2b 20 e7 20 |",7,,big%..?+ . | 00000820 73 6d 61 6c 6c 25 3c 3e 30 20 8c 20 c8 99 22 58 |small%<>0 . .."X| 00000830 4f 53 5f 4d 6f 64 75 6c 65 22 2c 37 2c 2c 73 6d |OS_Module",7,,sm| 00000840 61 6c 6c 25 0d 00 40 2a 20 c8 99 22 58 4f 53 5f |all%..@* .."XOS_| 00000850 43 68 61 6e 67 65 44 79 6e 61 6d 69 63 41 72 65 |ChangeDynamicAre| 00000860 61 22 2c 31 2c 2d 31 36 37 37 37 32 31 36 0d 00 |a",1,-16777216..| 00000870 41 1c 20 d9 23 30 3a c8 99 22 58 57 69 6d 70 5f |A. .#0:.."XWimp_| 00000880 43 6c 6f 73 65 44 6f 77 6e 22 0d 00 42 06 20 e0 |CloseDown"..B. .| 00000890 0d 00 43 05 e1 0d 00 44 04 0d 00 45 0e dd f2 6e |..C....D...E...n| 000008a0 6f 6d 65 6d 6f 72 79 0d 00 46 2a f2 72 65 70 6f |omemory..F*.repo| 000008b0 72 74 28 a4 6d 65 73 73 61 67 65 28 22 4d 75 73 |rt(.message("Mus| 000008c0 74 51 75 69 74 22 29 2c 2d 31 29 3a f2 71 75 69 |tQuit"),-1):.qui| 000008d0 74 0d 00 47 05 e1 0d 00 48 04 0d 00 49 18 dd f2 |t..G....H...I...| 000008e0 74 69 6d 65 3a ea 20 48 25 2c 53 25 2c 4d 25 2c |time:. H%,S%,M%,| 000008f0 41 24 0d 00 4a b7 48 25 3d 6e 6f 77 25 3a 48 25 |A$..J.H%=now%:H%| 00000900 2d 3d 74 69 6d 65 73 74 61 72 74 65 64 25 3a 48 |-=timestarted%:H| 00000910 25 3d 48 25 2f 31 30 30 3a 53 25 3d 48 25 83 36 |%=H%/100:S%=H%.6| 00000920 30 3a 48 25 3d 48 25 81 36 30 3a 4d 25 3d 48 25 |0:H%=H%.60:M%=H%| 00000930 83 36 30 3a 48 25 3d 48 25 81 36 30 3a 41 24 3d |.60:H%=H%.60:A$=| 00000940 c3 48 25 2b 22 3a 22 2b c4 2d 31 2a 28 4d 25 3c |.H%+":"+.-1*(M%<| 00000950 31 30 29 2c 22 30 22 29 2b c3 4d 25 2b 22 2e 22 |10),"0")+.M%+"."| 00000960 2b c4 2d 31 2a 28 53 25 3c 31 30 29 2c 22 30 22 |+.-1*(S%<10),"0"| 00000970 29 2b c3 53 25 3a f2 69 63 6f 6e 74 65 78 74 28 |)+.S%:.icontext(| 00000980 74 69 6d 65 77 25 2c 31 2c 41 24 29 3a 74 69 6d |timew%,1,A$):tim| 00000990 65 74 61 6b 65 6e 25 3d 6e 6f 77 25 2d 74 69 6d |etaken%=now%-tim| 000009a0 65 73 74 61 72 74 65 64 25 0d 00 4b 05 e1 0d 00 |estarted%..K....| 000009b0 4c 04 0d 00 4d 0e dd f2 64 72 61 67 67 69 6e 67 |L...M...dragging| 000009c0 0d 00 4e 3b 20 c8 99 20 50 6f 69 6e 74 65 72 25 |..N; .. Pointer%| 000009d0 2c 2c 62 6c 6f 63 6b 25 3a 78 25 3d 21 62 6c 6f |,,block%:x%=!blo| 000009e0 63 6b 25 3a 79 25 3d 62 6c 6f 63 6b 25 21 34 3a |ck%:y%=block%!4:| 000009f0 42 25 3d 62 6c 6f 63 6b 25 21 38 0d 00 4f 0e 20 |B%=block%!8..O. | 00000a00 e7 20 42 25 3c 3e 30 20 8c 0d 00 50 14 20 20 e7 |. B%<>0 ...P. .| 00000a10 20 77 61 74 63 68 6e 6f 25 3d 30 20 8c 0d 00 51 | watchno%=0 ...Q| 00000a20 49 20 20 20 21 62 6c 6f 63 6b 25 3d 64 72 61 67 |I !block%=drag| 00000a30 67 69 6e 67 25 3a c8 99 20 47 65 74 57 69 6e 64 |ging%:.. GetWind| 00000a40 6f 77 25 2c 2c 62 6c 6f 63 6b 25 3a 62 6c 6f 63 |ow%,,block%:bloc| 00000a50 6b 25 21 31 32 2b 3d 78 25 2d 62 6c 6f 63 6b 25 |k%!12+=x%-block%| 00000a60 21 34 2d 64 78 25 0d 00 52 59 20 20 20 62 6c 6f |!4-dx%..RY blo| 00000a70 63 6b 25 21 38 2b 3d 79 25 2b 64 79 25 2d 62 6c |ck%!8+=y%+dy%-bl| 00000a80 6f 63 6b 25 21 31 36 3a 62 6c 6f 63 6b 25 21 34 |ock%!16:block%!4| 00000a90 3d 78 25 2d 64 78 25 3a 62 6c 6f 63 6b 25 21 31 |=x%-dx%:block%!1| 00000aa0 36 3d 79 25 2b 64 79 25 3a e7 20 42 25 3c 3e 31 |6=y%+dy%:. B%<>1| 00000ab0 20 8c 20 62 6c 6f 63 6b 25 21 32 38 3d 2d 31 0d | . block%!28=-1.| 00000ac0 00 53 1d 20 20 20 c8 99 20 4f 70 65 6e 57 69 6e |.S. .. OpenWin| 00000ad0 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 0d 00 54 07 |dow%,,block%..T.| 00000ae0 20 20 cd 0d 00 55 d3 20 cc 20 64 72 61 67 67 69 | ...U. . draggi| 00000af0 6e 67 25 3d 30 3a f2 6d 61 6b 65 70 6f 69 6e 74 |ng%=0:.makepoint| 00000b00 65 72 28 22 64 65 66 61 75 6c 74 22 29 3a e7 20 |er("default"):. | 00000b10 77 61 74 63 68 6e 6f 25 3c 3e 30 20 8c 20 59 25 |watchno%<>0 . Y%| 00000b20 3d 2d 31 3a f5 3a 59 25 2b 3d 31 3a 58 25 3d 2d |=-1:.:Y%+=1:X%=-| 00000b30 31 3a f5 3a 58 25 2b 3d 31 3a fd 20 73 25 28 58 |1:.:X%+=1:. s%(X| 00000b40 25 2c 59 25 29 3d 77 61 74 63 68 6e 6f 25 20 84 |%,Y%)=watchno% .| 00000b50 20 58 25 3e 62 25 2d 32 3a fd 20 73 25 28 58 25 | X%>b%-2:. s%(X%| 00000b60 2c 59 25 29 3d 77 61 74 63 68 6e 6f 25 3a 77 61 |,Y%)=watchno%:wa| 00000b70 74 63 68 6e 6f 25 3d 30 3a c8 99 52 65 64 72 61 |tchno%=0:..Redra| 00000b80 77 25 2c 6d 61 69 6e 25 2c 58 25 2a 78 73 74 65 |w%,main%,X%*xste| 00000b90 70 2c 2d 28 59 25 2b 31 29 2a 79 73 74 65 70 2c |p,-(Y%+1)*ystep,| 00000ba0 28 58 25 2b 31 29 2a 78 73 74 65 70 2c 2d 59 25 |(X%+1)*xstep,-Y%| 00000bb0 2a 79 73 74 65 70 0d 00 56 06 20 cd 0d 00 57 05 |*ystep..V. ...W.| 00000bc0 e1 0d 00 58 08 20 20 20 20 0d 00 59 1a dd f2 64 |...X. ..Y...d| 00000bd0 72 61 77 77 69 6e 64 6f 77 28 77 69 6e 64 6f 77 |rawwindow(window| 00000be0 25 29 20 0d 00 5a 11 20 c8 8e 20 77 69 6e 64 6f |%) ..Z. .. windo| 00000bf0 77 25 20 ca 0d 00 5b 17 20 20 c9 20 6d 61 69 6e |w% ...[. . main| 00000c00 25 3a f2 64 72 61 77 6d 61 69 6e 0d 00 5c 17 20 |%:.drawmain..\. | 00000c10 20 c9 20 76 69 65 77 25 3a f2 64 72 61 77 76 69 | . view%:.drawvi| 00000c20 65 77 0d 00 5d 18 20 20 c9 20 68 65 6c 70 77 25 |ew..]. . helpw%| 00000c30 3a f2 64 72 61 77 68 65 6c 70 0d 00 5e 06 20 cb |:.drawhelp..^. .| 00000c40 0d 00 5f 05 e1 0d 00 60 04 0d 00 61 0e dd f2 64 |.._....`...a...d| 00000c50 72 61 77 6d 61 69 6e 0d 00 62 26 20 62 6c 6f 63 |rawmain..b& bloc| 00000c60 6b 25 21 30 3d 6d 61 69 6e 25 3a c8 99 47 65 74 |k%!0=main%:..Get| 00000c70 49 6e 66 6f 25 2c 2c 62 6c 6f 63 6b 25 0d 00 63 |Info%,,block%..c| 00000c80 3d 20 77 77 69 64 74 68 25 3d 62 6c 6f 63 6b 25 |= wwidth%=block%| 00000c90 21 35 32 2d 62 6c 6f 63 6b 25 21 34 34 3a 77 68 |!52-block%!44:wh| 00000ca0 65 69 67 68 74 25 3d 62 6c 6f 63 6b 25 21 34 38 |eight%=block%!48| 00000cb0 2d 62 6c 6f 63 6b 25 21 35 36 0d 00 64 2a 20 c8 |-block%!56..d* .| 00000cc0 99 22 57 69 6d 70 5f 52 65 64 72 61 77 57 69 6e |."Wimp_RedrawWin| 00000cd0 64 6f 77 22 2c 2c 62 6c 6f 63 6b 25 20 b8 20 6d |dow",,block% . m| 00000ce0 6f 72 65 25 0d 00 65 33 20 78 6f 25 3d 62 6c 6f |ore%..e3 xo%=blo| 00000cf0 63 6b 25 21 34 2d 62 6c 6f 63 6b 25 21 32 30 3a |ck%!4-block%!20:| 00000d00 79 6f 25 3d 62 6c 6f 63 6b 25 21 31 36 2d 62 6c |yo%=block%!16-bl| 00000d10 6f 63 6b 25 21 32 34 0d 00 66 0d 20 c8 95 20 6d |ock%!24..f. .. m| 00000d20 6f 72 65 25 0d 00 67 31 20 20 78 31 25 3d 28 28 |ore%..g1 x1%=((| 00000d30 62 6c 6f 63 6b 25 21 32 38 2d 78 6f 25 29 81 78 |block%!28-xo%).x| 00000d40 73 74 65 70 29 3a e7 20 78 31 25 3c 30 20 8c 20 |step):. x1%<0 . | 00000d50 78 31 25 3d 30 0d 00 68 37 20 20 78 32 25 3d 28 |x1%=0..h7 x2%=(| 00000d60 28 62 6c 6f 63 6b 25 21 33 36 2d 78 6f 25 29 81 |(block%!36-xo%).| 00000d70 78 73 74 65 70 29 3a e7 20 78 32 25 3e 62 25 2d |xstep):. x2%>b%-| 00000d80 31 20 8c 20 78 32 25 3d 62 25 2d 31 0d 00 69 31 |1 . x2%=b%-1..i1| 00000d90 20 20 79 31 25 3d 28 28 79 6f 25 2d 62 6c 6f 63 | y1%=((yo%-bloc| 00000da0 6b 25 21 34 30 29 81 79 73 74 65 70 29 3a e7 20 |k%!40).ystep):. | 00000db0 79 31 25 3c 30 20 8c 20 79 31 25 3d 30 0d 00 6a |y1%<0 . y1%=0..j| 00000dc0 37 20 20 79 32 25 3d 28 28 79 6f 25 2d 62 6c 6f |7 y2%=((yo%-blo| 00000dd0 63 6b 25 21 33 32 29 81 79 73 74 65 70 29 3a e7 |ck%!32).ystep):.| 00000de0 20 79 32 25 3e 62 25 2d 31 20 8c 20 79 32 25 3d | y2%>b%-1 . y2%=| 00000df0 62 25 2d 31 0d 00 6b 23 20 20 e3 20 59 25 3d 79 |b%-1..k# . Y%=y| 00000e00 31 25 20 b8 20 79 32 25 3a e3 20 58 25 3d 78 31 |1% . y2%:. X%=x1| 00000e10 25 20 b8 20 78 32 25 0d 00 6c 16 20 20 20 e7 20 |% . x2%..l. . | 00000e20 73 25 28 58 25 2c 59 25 29 3d 30 20 8c 0d 00 6d |s%(X%,Y%)=0 ...m| 00000e30 13 20 20 20 20 e7 20 68 65 6c 70 25 3d 32 20 8c |. . help%=2 .| 00000e40 0d 00 6e 49 20 20 20 20 c8 99 53 65 74 43 6f 6c |..nI ..SetCol| 00000e50 6f 75 72 25 2c 63 6e 25 3a c8 93 c8 90 20 78 6f |our%,cn%:.... xo| 00000e60 25 2b 58 25 2a 78 73 74 65 70 2c 79 6f 25 2d 79 |%+X%*xstep,yo%-y| 00000e70 73 74 65 70 2d 59 25 2a 79 73 74 65 70 2c 78 73 |step-Y%*ystep,xs| 00000e80 74 65 70 2c 79 73 74 65 70 0d 00 6f 19 20 20 20 |tep,ystep..o. | 00000e90 20 20 c8 99 53 65 74 43 6f 6c 6f 75 72 25 2c 63 | ..SetColour%,c| 00000ea0 79 25 0d 00 70 24 20 20 20 20 20 e3 20 79 25 3d |y%..p$ . y%=| 00000eb0 30 20 b8 20 62 25 2d 31 3a e3 20 78 25 3d 30 20 |0 . b%-1:. x%=0 | 00000ec0 b8 20 62 25 2d 31 0d 00 71 98 20 20 20 20 20 20 |. b%-1..q. | 00000ed0 20 e7 20 73 25 28 78 25 2c 79 25 29 3d 78 25 2b | . s%(x%,y%)=x%+| 00000ee0 31 2b 79 25 2a 62 25 20 84 20 28 73 25 28 78 25 |1+y%*b% . (s%(x%| 00000ef0 2c 79 25 29 3d 30 20 80 20 78 25 3d 62 25 2d 31 |,y%)=0 . x%=b%-1| 00000f00 20 80 20 79 25 3d 62 25 2d 31 29 20 8c 20 c8 93 | . y%=b%-1) . ..| 00000f10 c8 90 20 78 6f 25 2b 58 25 2a 78 73 74 65 70 2b |.. xo%+X%*xstep+| 00000f20 78 25 2a 28 78 73 74 65 70 2f 62 25 29 2c 79 6f |x%*(xstep/b%),yo| 00000f30 25 2d 59 25 2a 79 73 74 65 70 2d 28 79 25 2b 31 |%-Y%*ystep-(y%+1| 00000f40 29 2a 28 79 73 74 65 70 2f 62 25 29 2c 78 73 74 |)*(ystep/b%),xst| 00000f50 65 70 2f 62 25 2c 79 73 74 65 70 2f 62 25 0d 00 |ep/b%,ystep/b%..| 00000f60 72 0c 20 20 20 20 20 ed 3a ed 0d 00 73 19 20 20 |r. .:...s. | 00000f70 20 20 20 c8 99 53 65 74 43 6f 6c 6f 75 72 25 2c | ..SetColour%,| 00000f80 63 62 25 0d 00 74 24 20 20 20 20 20 e3 20 79 25 |cb%..t$ . y%| 00000f90 3d 30 20 b8 20 62 25 2d 31 3a e3 20 78 25 3d 30 |=0 . b%-1:. x%=0| 00000fa0 20 b8 20 62 25 2d 31 0d 00 75 57 20 20 20 20 20 | . b%-1..uW | 00000fb0 c8 93 20 78 6f 25 2b 58 25 2a 78 73 74 65 70 2b |.. xo%+X%*xstep+| 00000fc0 78 25 2a 28 78 73 74 65 70 2f 62 25 29 2c 79 6f |x%*(xstep/b%),yo| 00000fd0 25 2d 59 25 2a 79 73 74 65 70 2d 28 79 25 2b 31 |%-Y%*ystep-(y%+1| 00000fe0 29 2a 28 79 73 74 65 70 2f 62 25 29 2c 78 73 74 |)*(ystep/b%),xst| 00000ff0 65 70 2f 62 25 2c 79 73 74 65 70 2f 62 25 0d 00 |ep/b%,ystep/b%..| 00001000 76 0c 20 20 20 20 20 ed 3a ed 0d 00 77 4b 20 20 |v. .:...wK | 00001010 20 20 cc 20 c8 99 53 65 74 43 6f 6c 6f 75 72 25 | . ..SetColour%| 00001020 2c 63 62 25 3a c8 93 c8 90 20 78 6f 25 2b 58 25 |,cb%:.... xo%+X%| 00001030 2a 78 73 74 65 70 2c 79 6f 25 2d 79 73 74 65 70 |*xstep,yo%-ystep| 00001040 2d 59 25 2a 79 73 74 65 70 2c 78 73 74 65 70 2c |-Y%*ystep,xstep,| 00001050 79 73 74 65 70 0d 00 78 09 20 20 20 20 cd 0d 00 |ystep..x. ...| 00001060 79 0a 20 20 20 cc 20 20 0d 00 7a 58 20 20 20 c8 |y. . ..zX .| 00001070 99 53 70 72 69 74 65 4f 70 25 2c 35 32 2b 32 35 |.SpriteOp%,52+25| 00001080 36 2c 73 6d 61 6c 6c 25 2c c3 28 73 25 28 58 25 |6,small%,.(s%(X%| 00001090 2c 59 25 29 29 2c 78 6f 25 2b 58 25 2a 78 73 74 |,Y%)),xo%+X%*xst| 000010a0 65 70 2c 79 6f 25 2d 28 59 25 2b 31 29 2a 79 73 |ep,yo%-(Y%+1)*ys| 000010b0 74 65 70 2c 2c 73 63 61 6c 65 25 2c 70 69 78 25 |tep,,scale%,pix%| 000010c0 0d 00 7b 4f 20 20 20 e7 77 61 74 63 68 6e 6f 25 |..{O .watchno%| 000010d0 3d 73 25 28 58 25 2c 59 25 29 8c 20 e6 34 2c 30 |=s%(X%,Y%). .4,0| 000010e0 3a c8 93 c8 90 20 78 6f 25 2b 58 25 2a 78 73 74 |:.... xo%+X%*xst| 000010f0 65 70 2c 79 6f 25 2d 28 59 25 2b 31 29 2a 79 73 |ep,yo%-(Y%+1)*ys| 00001100 74 65 70 2c 78 73 74 65 70 2c 79 73 74 65 70 0d |tep,xstep,ystep.| 00001110 00 7c 08 20 20 20 cd 0d 00 7d 46 20 20 20 c8 99 |.|. ...}F ..| 00001120 53 65 74 43 6f 6c 6f 75 72 25 2c 63 62 25 3a c8 |SetColour%,cb%:.| 00001130 93 20 78 6f 25 2b 58 25 2a 78 73 74 65 70 2c 79 |. xo%+X%*xstep,y| 00001140 6f 25 2d 79 73 74 65 70 2d 59 25 2a 79 73 74 65 |o%-ystep-Y%*yste| 00001150 70 2c 78 73 74 65 70 2c 79 73 74 65 70 0d 00 7e |p,xstep,ystep..~| 00001160 09 20 20 ed 3a ed 0d 00 7f 2b 20 20 c8 99 22 57 |. .:....+ .."W| 00001170 69 6d 70 5f 47 65 74 52 65 63 74 61 6e 67 6c 65 |imp_GetRectangle| 00001180 22 2c 2c 62 6c 6f 63 6b 25 20 b8 20 6d 6f 72 65 |",,block% . more| 00001190 25 0d 00 80 06 20 ce 0d 00 81 05 e1 0d 00 82 04 |%.... ..........| 000011a0 0d 00 83 17 dd f2 64 72 61 77 68 65 6c 70 3a 41 |......drawhelp:A| 000011b0 25 3d b3 28 31 35 29 0d 00 84 39 20 21 62 6c 6f |%=.(15)...9 !blo| 000011c0 63 6b 25 3d 68 65 6c 70 77 25 3a c8 99 22 57 69 |ck%=helpw%:.."Wi| 000011d0 6d 70 5f 52 65 64 72 61 77 57 69 6e 64 6f 77 22 |mp_RedrawWindow"| 000011e0 2c 2c 62 6c 6f 63 6b 25 20 b8 20 6d 6f 72 65 25 |,,block% . more%| 000011f0 0d 00 85 0d 20 c8 95 20 6d 6f 72 65 25 0d 00 86 |.... .. more%...| 00001200 16 20 20 c8 99 53 65 74 43 6f 6c 6f 75 72 25 2c |. ..SetColour%,| 00001210 63 6e 25 0d 00 87 46 20 20 c8 93 c8 90 20 62 6c |cn%...F .... bl| 00001220 6f 63 6b 25 21 32 38 2c 62 6c 6f 63 6b 25 21 33 |ock%!28,block%!3| 00001230 32 2c 62 6c 6f 63 6b 25 21 33 36 2d 62 6c 6f 63 |2,block%!36-bloc| 00001240 6b 25 21 32 38 2c 62 6c 6f 63 6b 25 21 34 30 2d |k%!28,block%!40-| 00001250 62 6c 6f 63 6b 25 21 33 32 0d 00 88 16 20 20 c8 |block%!32.... .| 00001260 99 53 65 74 43 6f 6c 6f 75 72 25 2c 63 79 25 0d |.SetColour%,cy%.| 00001270 00 89 21 20 20 e3 20 79 25 3d 30 20 b8 20 62 25 |..! . y%=0 . b%| 00001280 2d 31 3a e3 20 78 25 3d 30 20 b8 20 62 25 2d 31 |-1:. x%=0 . b%-1| 00001290 0d 00 8a 70 20 20 20 e7 20 73 25 28 78 25 2c 79 |...p . s%(x%,y| 000012a0 25 29 3d 78 25 2b 31 2b 79 25 2a 62 25 20 84 20 |%)=x%+1+y%*b% . | 000012b0 28 73 25 28 78 25 2c 79 25 29 3d 30 20 80 20 78 |(s%(x%,y%)=0 . x| 000012c0 25 3d 62 25 2d 31 20 80 20 79 25 3d 62 25 2d 31 |%=b%-1 . y%=b%-1| 000012d0 29 20 8c 20 c8 93 c8 90 20 62 6c 6f 63 6b 25 21 |) . .... block%!| 000012e0 34 2b 78 25 2a 34 30 2c 62 6c 6f 63 6b 25 21 31 |4+x%*40,block%!1| 000012f0 36 2d 28 79 25 2b 31 29 2a 34 30 2d 34 2c 34 30 |6-(y%+1)*40-4,40| 00001300 0d 00 8b 09 20 20 ed 3a ed 0d 00 8c 16 20 20 c8 |.... .:..... .| 00001310 99 53 65 74 43 6f 6c 6f 75 72 25 2c 63 62 25 0d |.SetColour%,cb%.| 00001320 00 8d 21 20 20 e3 20 79 25 3d 30 20 b8 20 62 25 |..! . y%=0 . b%| 00001330 2d 31 3a e3 20 78 25 3d 30 20 b8 20 62 25 2d 31 |-1:. x%=0 . b%-1| 00001340 0d 00 8e 31 20 20 20 c8 93 20 62 6c 6f 63 6b 25 |...1 .. block%| 00001350 21 34 2b 78 25 2a 34 30 2c 62 6c 6f 63 6b 25 21 |!4+x%*40,block%!| 00001360 31 36 2d 28 79 25 2b 31 29 2a 34 30 2d 34 2c 34 |16-(y%+1)*40-4,4| 00001370 30 0d 00 8f 0a 20 20 ed 3a ed 20 0d 00 90 2b 20 |0.... .:. ...+ | 00001380 20 c8 99 22 57 69 6d 70 5f 47 65 74 52 65 63 74 | .."Wimp_GetRect| 00001390 61 6e 67 6c 65 22 2c 2c 62 6c 6f 63 6b 25 20 b8 |angle",,block% .| 000013a0 20 6d 6f 72 65 25 0d 00 91 06 20 ce 0d 00 92 05 | more%.... .....| 000013b0 e1 0d 00 93 04 0d 00 94 71 dd f2 70 65 72 63 65 |........q..perce| 000013c0 6e 74 3a 54 25 3d 30 3a e3 20 79 25 3d 30 20 b8 |nt:T%=0:. y%=0 .| 000013d0 20 62 25 2d 31 3a e3 20 78 25 3d 30 20 b8 20 62 | b%-1:. x%=0 . b| 000013e0 25 2d 31 3a e7 20 73 25 28 78 25 2c 79 25 29 3d |%-1:. s%(x%,y%)=| 000013f0 78 25 2b 31 2b 79 25 2a 62 25 20 84 20 28 73 25 |x%+1+y%*b% . (s%| 00001400 28 78 25 2c 79 25 29 3d 30 20 80 20 78 25 3d 62 |(x%,y%)=0 . x%=b| 00001410 25 2d 31 20 80 20 79 25 3d 62 25 2d 31 29 20 8c |%-1 . y%=b%-1) .| 00001420 20 54 25 2b 3d 31 0d 00 95 43 20 20 ed 3a ed 3a | T%+=1...C .:.:| 00001430 40 25 3d 26 31 30 32 30 32 30 31 3a f2 69 63 6f |@%=&1020201:.ico| 00001440 6e 74 65 78 74 28 74 69 6d 65 77 25 2c 32 2c c3 |ntext(timew%,2,.| 00001450 28 54 25 2a 28 31 30 30 2f 28 62 25 2a 62 25 29 |(T%*(100/(b%*b%)| 00001460 29 29 29 3a 40 25 3d 31 30 0d 00 96 59 20 20 e7 |))):@%=10...Y .| 00001470 20 54 25 3c 62 25 2a 62 25 20 8c 20 74 66 6c 61 | T%<b%*b% . tfla| 00001480 67 25 3d 74 66 6c 61 67 25 80 31 20 8b 20 74 66 |g%=tflag%.1 . tf| 00001490 6c 61 67 25 3d 74 66 6c 61 67 25 84 32 3a c8 99 |lag%=tflag%.2:..| 000014a0 47 65 74 54 69 6d 65 25 20 b8 20 64 65 6c 61 79 |GetTime% . delay| 000014b0 25 3a e7 20 71 75 69 74 25 3d 30 20 8c 20 f2 77 |%:. quit%=0 . .w| 000014c0 69 6e 0d 00 97 05 e1 0d 00 98 04 0d 00 99 0f dd |in..............| 000014d0 f2 77 69 6e 3a f2 74 69 6d 65 0d 00 9a 4d 20 ef |.win:.time...M .| 000014e0 37 3a f2 69 63 6f 6e 74 65 78 74 28 77 69 6e 25 |7:.icontext(win%| 000014f0 2c 32 2c 24 a4 74 65 78 74 28 74 69 6d 65 77 25 |,2,$.text(timew%| 00001500 2c 31 29 29 3a 21 62 6c 6f 63 6b 25 3d 77 69 6e |,1)):!block%=win| 00001510 25 3a c8 99 20 47 65 74 57 69 6e 64 6f 77 25 2c |%:.. GetWindow%,| 00001520 2c 62 6c 6f 63 6b 25 0d 00 9b 2c 20 c8 99 20 26 |,block%..., .. &| 00001530 33 35 2c 2d 31 2c 31 31 20 b8 20 2c 2c 57 25 3a |35,-1,11 . ,,W%:| 00001540 c8 99 20 26 33 35 2c 2d 31 2c 31 32 20 b8 20 2c |.. &35,-1,12 . ,| 00001550 2c 48 25 0d 00 9c 2a 20 c8 99 20 26 33 35 2c 2d |,H%...* .. &35,-| 00001560 31 2c 34 20 b8 20 2c 2c 41 25 3a c8 99 20 26 33 |1,4 . ,,A%:.. &3| 00001570 35 2c 2d 31 2c 35 20 b8 20 2c 2c 55 25 0d 00 9d |5,-1,5 . ,,U%...| 00001580 20 20 57 25 3d 28 57 25 2b 31 29 3c 3c 41 25 3a | W%=(W%+1)<<A%:| 00001590 48 25 3d 28 48 25 2b 31 29 3c 3c 55 25 0d 00 9e |H%=(H%+1)<<U%...| 000015a0 4c 20 77 69 6e 57 25 3d 62 6c 6f 63 6b 25 21 31 |L winW%=block%!1| 000015b0 32 2d 62 6c 6f 63 6b 25 21 34 3a 77 69 6e 48 25 |2-block%!4:winH%| 000015c0 3d 31 38 30 3a 59 24 3d 24 a4 74 65 78 74 28 74 |=180:Y$=$.text(t| 000015d0 69 6d 65 77 25 2c 31 29 3a 4f 24 3d 24 a4 74 61 |imew%,1):O$=$.ta| 000015e0 62 6c 65 28 62 25 2c 32 29 0d 00 9f 71 20 e7 20 |ble(b%,2)...q . | 000015f0 bb c0 59 24 2c a7 59 24 2c 22 3a 22 29 2d 31 29 |..Y$,.Y$,":")-1)| 00001600 3c 3d bb c0 4f 24 2c a7 4f 24 2c 22 3a 22 29 2d |<=..O$,.O$,":")-| 00001610 31 29 20 80 20 20 bb c1 59 24 2c a7 59 24 2c 22 |1) . ..Y$,.Y$,"| 00001620 3a 22 29 2b 31 2c 32 29 3c 3d bb c1 4f 24 2c a7 |:")+1,2)<=..O$,.| 00001630 4f 24 2c 22 3a 22 29 2b 31 2c 32 29 20 80 20 bb |O$,":")+1,2) . .| 00001640 c2 59 24 2c 32 29 3c bb c2 4f 24 2c 32 29 20 8c |.Y$,2)<..O$,2) .| 00001650 20 77 69 6e 48 25 3d 34 33 32 0d 00 a0 33 20 62 | winH%=432...3 b| 00001660 6c 6f 63 6b 25 21 34 3d 57 25 2f 32 2d 77 69 6e |lock%!4=W%/2-win| 00001670 57 25 2f 32 3a 62 6c 6f 63 6b 25 21 31 32 3d 62 |W%/2:block%!12=b| 00001680 6c 6f 63 6b 25 21 34 2b 77 69 6e 57 25 0d 00 a1 |lock%!4+winW%...| 00001690 40 20 62 6c 6f 63 6b 25 21 38 3d 48 25 2f 32 2d |@ block%!8=H%/2-| 000016a0 77 69 6e 48 25 2f 32 3a 62 6c 6f 63 6b 25 21 31 |winH%/2:block%!1| 000016b0 36 3d 62 6c 6f 63 6b 25 21 38 2b 77 69 6e 48 25 |6=block%!8+winH%| 000016c0 3a 62 6c 6f 63 6b 25 21 32 38 3d 2d 31 0d 00 a2 |:block%!28=-1...| 000016d0 1a 20 c8 99 4f 70 65 6e 57 69 6e 64 6f 77 25 2c |. ..OpenWindow%,| 000016e0 2c 62 6c 6f 63 6b 25 0d 00 a3 12 20 e7 20 77 69 |,block%.... . wi| 000016f0 6e 48 25 3d 34 33 32 20 8c 0d 00 a4 55 20 20 41 |nH%=432 ....U A| 00001700 24 3d 24 a4 74 61 62 6c 65 28 62 25 2c 31 29 3a |$=$.table(b%,1):| 00001710 f2 69 63 6f 6e 74 65 78 74 28 77 69 6e 25 2c 35 |.icontext(win%,5| 00001720 2c 41 24 29 3a c8 99 22 57 69 6d 70 5f 53 65 74 |,A$):.."Wimp_Set| 00001730 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 22 2c 77 |CaretPosition",w| 00001740 69 6e 25 2c 35 2c 2c 2c 2d 31 2c a9 41 24 0d 00 |in%,5,,,-1,.A$..| 00001750 a5 31 20 20 f2 6d 65 6e 75 73 68 61 64 65 28 62 |.1 .menushade(b| 00001760 61 72 25 2c 31 2c 2d 31 29 3a f2 6d 65 6e 75 73 |ar%,1,-1):.menus| 00001770 68 61 64 65 28 62 61 72 25 2c 38 2c 2d 31 29 0d |hade(bar%,8,-1).| 00001780 00 a6 06 20 cd 0d 00 a7 05 e1 0d 00 a8 04 0d 00 |... ............| 00001790 a9 0e dd f2 64 72 61 77 76 69 65 77 0d 00 aa 26 |....drawview...&| 000017a0 20 62 6c 6f 63 6b 25 21 30 3d 76 69 65 77 25 3a | block%!0=view%:| 000017b0 c8 99 47 65 74 49 6e 66 6f 25 2c 2c 62 6c 6f 63 |..GetInfo%,,bloc| 000017c0 6b 25 0d 00 ab 3d 20 77 77 69 64 74 68 25 3d 62 |k%...= wwidth%=b| 000017d0 6c 6f 63 6b 25 21 35 32 2d 62 6c 6f 63 6b 25 21 |lock%!52-block%!| 000017e0 34 34 3a 77 68 65 69 67 68 74 25 3d 62 6c 6f 63 |44:wheight%=bloc| 000017f0 6b 25 21 34 38 2d 62 6c 6f 63 6b 25 21 35 36 0d |k%!48-block%!56.| 00001800 00 ac 33 20 78 6f 25 3d 62 6c 6f 63 6b 25 21 34 |..3 xo%=block%!4| 00001810 2d 62 6c 6f 63 6b 25 21 32 30 3a 79 6f 25 3d 62 |-block%!20:yo%=b| 00001820 6c 6f 63 6b 25 21 31 36 2d 62 6c 6f 63 6b 25 21 |lock%!16-block%!| 00001830 32 34 0d 00 ad 2a 20 c8 99 22 57 69 6d 70 5f 52 |24...* .."Wimp_R| 00001840 65 64 72 61 77 57 69 6e 64 6f 77 22 2c 2c 62 6c |edrawWindow",,bl| 00001850 6f 63 6b 25 20 b8 20 6d 6f 72 65 25 0d 00 ae 41 |ock% . more%...A| 00001860 20 21 73 63 61 6c 65 32 25 3d 28 62 6c 6f 63 6b | !scale2%=(block| 00001870 25 21 31 32 2d 62 6c 6f 63 6b 25 21 34 29 3a 73 |%!12-block%!4):s| 00001880 63 61 6c 65 32 25 21 34 3d 28 62 6c 6f 63 6b 25 |cale2%!4=(block%| 00001890 21 31 36 2d 62 6c 6f 63 6b 25 21 38 29 0d 00 af |!16-block%!8)...| 000018a0 28 20 73 63 61 6c 65 32 25 21 38 3d 77 69 64 74 |( scale2%!8=widt| 000018b0 68 25 3a 73 63 61 6c 65 32 25 21 31 32 3d 68 65 |h%:scale2%!12=he| 000018c0 69 67 68 74 25 0d 00 b0 36 20 e3 20 41 25 3d 30 |ight%...6 . A%=0| 000018d0 20 b8 20 31 32 20 88 20 34 3a 73 63 61 6c 65 32 | . 12 . 4:scale2| 000018e0 25 21 41 25 3d 73 63 61 6c 65 32 25 21 41 25 2a |%!A%=scale2%!A%*| 000018f0 73 63 61 6c 65 25 21 41 25 3a ed 0d 00 b1 0d 20 |scale%!A%:..... | 00001900 c8 95 20 6d 6f 72 65 25 0d 00 b2 46 20 20 c8 99 |.. more%...F ..| 00001910 53 70 72 69 74 65 4f 70 25 2c 35 32 2b 35 31 32 |SpriteOp%,52+512| 00001920 2c 62 69 67 25 2c 62 69 67 25 2b 31 36 2c 62 6c |,big%,big%+16,bl| 00001930 6f 63 6b 25 21 34 2c 62 6c 6f 63 6b 25 21 38 2c |ock%!4,block%!8,| 00001940 30 2c 73 63 61 6c 65 32 25 2c 70 69 78 25 0d 00 |0,scale2%,pix%..| 00001950 b3 2b 20 20 c8 99 22 57 69 6d 70 5f 47 65 74 52 |.+ .."Wimp_GetR| 00001960 65 63 74 61 6e 67 6c 65 22 2c 2c 62 6c 6f 63 6b |ectangle",,block| 00001970 25 20 b8 20 6d 6f 72 65 25 0d 00 b4 06 20 ce 0d |% . more%.... ..| 00001980 00 b5 05 e1 0d 00 b6 04 0d 00 b7 1f f4 20 2a 2a |............. **| 00001990 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 20 4d |************* M| 000019a0 65 73 73 61 67 65 73 0d 00 b8 04 0d 00 b9 0d dd |essages.........| 000019b0 f2 72 65 63 65 69 76 65 0d 00 ba 13 20 c8 8e 20 |.receive.... .. | 000019c0 62 6c 6f 63 6b 25 21 31 36 20 ca 0d 00 bb 11 20 |block%!16 ..... | 000019d0 20 c9 20 30 3a 71 75 69 74 25 3d b9 0d 00 bc 19 | . 0:quit%=.....| 000019e0 20 20 c9 20 32 3a f4 20 2a 2a 2a 20 44 61 74 61 | . 2:. *** Data| 000019f0 20 73 61 76 65 0d 00 bd 31 20 20 c9 20 33 3a f2 | save...1 . 3:.| 00001a00 64 61 74 61 6c 6f 61 64 28 62 6c 6f 63 6b 25 21 |dataload(block%!| 00001a10 34 30 2c a4 73 74 72 69 6e 67 28 62 6c 6f 63 6b |40,.string(block| 00001a20 25 2b 34 34 29 29 0d 00 be 0d 20 20 c9 20 26 35 |%+44)).... . &5| 00001a30 30 32 3a 0d 00 bf 3d 20 20 20 21 62 6c 6f 63 6b |02:...= !block| 00001a40 25 3d 32 35 36 3a c8 94 20 62 6c 6f 63 6b 25 21 |%=256:.. block%!| 00001a50 38 2c 62 6c 6f 63 6b 25 21 31 32 3a 62 6c 6f 63 |8,block%!12:bloc| 00001a60 6b 25 21 31 36 3d 26 35 30 33 3a 41 24 3d 22 22 |k%!16=&503:A$=""| 00001a70 0d 00 c0 15 20 20 20 c8 8e 20 62 6c 6f 63 6b 25 |.... .. block%| 00001a80 21 33 32 20 ca 0d 00 c1 23 20 20 20 20 c9 20 2d |!32 ....# . -| 00001a90 32 3a 41 24 3d a4 6d 65 73 73 61 67 65 28 22 42 |2:A$=.message("B| 00001aa0 61 72 48 65 6c 70 22 29 0d 00 c2 3e 20 20 20 20 |arHelp")...> | 00001ab0 c9 20 6d 61 69 6e 25 3a 41 24 3d a4 6d 65 73 73 |. main%:A$=.mess| 00001ac0 61 67 65 28 22 4d 61 69 6e 48 65 6c 70 30 22 29 |age("MainHelp0")| 00001ad0 2b a4 6d 65 73 73 61 67 65 28 22 4d 61 69 6e 48 |+.message("MainH| 00001ae0 65 6c 70 31 22 29 0d 00 c3 27 20 20 20 20 c9 20 |elp1")...' . | 00001af0 76 69 65 77 25 3a 41 24 3d a4 6d 65 73 73 61 67 |view%:A$=.messag| 00001b00 65 28 22 56 69 65 77 48 65 6c 70 22 29 0d 00 c4 |e("ViewHelp")...| 00001b10 28 20 20 20 20 c9 20 68 65 6c 70 77 25 3a 41 24 |( . helpw%:A$| 00001b20 3d a4 6d 65 73 73 61 67 65 28 22 48 65 6c 70 48 |=.message("HelpH| 00001b30 65 6c 70 22 29 0d 00 c5 27 20 20 20 20 c9 20 69 |elp")...' . i| 00001b40 6e 66 6f 25 3a 41 24 3d a4 6d 65 73 73 61 67 65 |nfo%:A$=.message| 00001b50 28 22 49 6e 66 6f 48 65 6c 70 22 29 0d 00 c6 44 |("InfoHelp")...D| 00001b60 20 20 20 20 c9 20 77 69 64 25 3a 41 24 3d a4 6d | . wid%:A$=.m| 00001b70 65 73 73 61 67 65 28 22 57 69 64 48 65 6c 70 22 |essage("WidHelp"| 00001b80 29 2b a4 6d 65 73 73 61 67 65 28 22 57 69 64 48 |)+.message("WidH| 00001b90 65 6c 70 22 2b c3 62 6c 6f 63 6b 25 21 33 36 29 |elp"+.block%!36)| 00001ba0 0d 00 c7 08 20 20 20 cb 0d 00 c8 3e 20 20 20 24 |.... ....> $| 00001bb0 28 62 6c 6f 63 6b 25 2b 32 30 29 3d 41 24 3a c8 |(block%+20)=A$:.| 00001bc0 99 22 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 61 |."Wimp_SendMessa| 00001bd0 67 65 22 2c 31 37 2c 62 6c 6f 63 6b 25 2c 62 6c |ge",17,block%,bl| 00001be0 6f 63 6b 25 21 34 0d 00 c9 0f 20 20 c9 20 26 34 |ock%!4.... . &4| 00001bf0 30 30 43 31 3a 0d 00 ca 3b 20 20 20 c8 99 52 65 |00C1:...; ..Re| 00001c00 61 64 4d 6f 64 65 25 2c 2d 31 2c 33 20 b8 20 2c |adMode%,-1,3 . ,| 00001c10 2c 6e 63 6f 6c 6f 75 72 25 3a e7 20 64 65 66 61 |,ncolour%:. defa| 00001c20 75 6c 74 24 3d 22 22 20 8c 20 f2 73 70 6c 69 74 |ult$="" . .split| 00001c30 0d 00 cb 3c 20 20 20 c8 99 22 57 69 6d 70 5f 52 |...< .."Wimp_R| 00001c40 65 61 64 50 69 78 54 72 61 6e 73 22 2c 35 31 32 |eadPixTrans",512| 00001c50 2c 62 69 67 25 2c 62 69 67 25 2b 31 36 2c 2c 2c |,big%,big%+16,,,| 00001c60 2c 73 63 61 6c 65 25 2c 70 69 78 25 0d 00 cc 34 |,scale%,pix%...4| 00001c70 20 20 20 c8 99 53 70 72 69 74 65 4f 70 25 2c 34 | ..SpriteOp%,4| 00001c80 30 2b 35 31 32 2c 62 69 67 25 2c 62 69 67 25 2b |0+512,big%,big%+| 00001c90 31 36 20 b8 20 2c 2c 2c 2c 2c 2c 6d 6f 64 65 25 |16 . ,,,,,,mode%| 00001ca0 0d 00 cd 27 20 20 20 c8 99 52 65 61 64 4d 6f 64 |...' ..ReadMod| 00001cb0 65 25 2c 6d 6f 64 65 25 2c 33 20 b8 20 2c 2c 6e |e%,mode%,3 . ,,n| 00001cc0 63 6f 6c 6f 75 72 25 0d 00 ce 45 20 20 20 e7 20 |colour%...E . | 00001cd0 6e 63 6f 6c 6f 75 72 25 3d 36 33 20 8c 20 c8 99 |ncolour%=63 . ..| 00001ce0 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 6c |"ColourTrans_Sel| 00001cf0 65 63 74 54 61 62 6c 65 22 2c 6d 6f 64 65 25 2c |ectTable",mode%,| 00001d00 30 2c 2d 31 2c 2d 31 2c 70 69 78 25 0d 00 cf 0f |0,-1,-1,pix%....| 00001d10 20 20 c9 20 26 34 30 30 43 30 3a 0d 00 d0 22 20 | . &400C0:..." | 00001d20 20 20 73 78 25 3d 62 6c 6f 63 6b 25 21 32 34 3a | sx%=block%!24:| 00001d30 73 79 25 3d 62 6c 6f 63 6b 25 21 32 38 0d 00 d1 |sy%=block%!28...| 00001d40 15 20 20 20 c8 8e 20 62 6c 6f 63 6b 25 21 33 32 |. .. block%!32| 00001d50 20 ca 0d 00 d2 15 20 20 20 20 c9 20 36 3a f2 6d | ..... . 6:.m| 00001d60 61 6b 65 6c 69 73 74 0d 00 d3 0c 20 20 20 20 c9 |akelist.... .| 00001d70 20 37 3a 0d 00 d4 27 20 20 20 20 20 e3 20 42 25 | 7:...' . B%| 00001d80 3d 30 20 b8 20 31 35 3a f2 74 69 63 6b 28 63 6f |=0 . 15:.tick(co| 00001d90 6c 25 2c 42 25 2c 30 29 3a ed 0d 00 d5 17 20 20 |l%,B%,0):..... | 00001da0 20 20 20 c8 8e 20 62 6c 6f 63 6b 25 21 33 36 20 | .. block%!36 | 00001db0 ca 0d 00 d6 20 20 20 20 20 20 20 c9 20 30 3a f2 |.... . 0:.| 00001dc0 74 69 63 6b 28 63 6f 6c 25 2c 63 62 25 2c 2d 31 |tick(col%,cb%,-1| 00001dd0 29 0d 00 d7 20 20 20 20 20 20 20 c9 20 31 3a f2 |)... . 1:.| 00001de0 74 69 63 6b 28 63 6f 6c 25 2c 63 79 25 2c 2d 31 |tick(col%,cy%,-1| 00001df0 29 0d 00 d8 20 20 20 20 20 20 20 c9 20 32 3a f2 |)... . 2:.| 00001e00 74 69 63 6b 28 63 6f 6c 25 2c 63 6e 25 2c 2d 31 |tick(col%,cn%,-1| 00001e10 29 0d 00 d9 0a 20 20 20 20 20 cb 0d 00 da 2f 20 |).... ..../ | 00001e20 20 20 20 20 24 63 6f 6c 25 3d a4 6d 65 73 73 61 | $col%=.messa| 00001e30 67 65 28 22 4d 65 6e 38 2e 22 2b c3 28 62 6c 6f |ge("Men8."+.(blo| 00001e40 63 6b 25 21 33 36 2b 31 29 29 0d 00 db 2d 20 20 |ck%!36+1))...- | 00001e50 20 20 20 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 | .."Wimp_Creat| 00001e60 65 53 75 62 4d 65 6e 75 22 2c 2c 63 6f 6c 25 2c |eSubMenu",,col%,| 00001e70 73 78 25 2c 73 79 25 0d 00 dc 43 20 20 20 20 c9 |sx%,sy%...C .| 00001e80 20 38 3a 24 a4 74 65 78 74 28 77 69 64 25 2c 31 | 8:$.text(wid%,1| 00001e90 29 3d c3 62 25 3a c8 99 22 57 69 6d 70 5f 43 72 |)=.b%:.."Wimp_Cr| 00001ea0 65 61 74 65 53 75 62 4d 65 6e 75 22 2c 2c 77 69 |eateSubMenu",,wi| 00001eb0 64 25 2c 73 78 25 2c 73 79 25 0d 00 dd 08 20 20 |d%,sx%,sy%.... | 00001ec0 20 cb 0d 00 de 06 20 cb 0d 00 df 05 e1 0d 00 e0 | ..... .........| 00001ed0 04 0d 00 e1 0e dd f2 6d 61 6b 65 6c 69 73 74 0d |.......makelist.| 00001ee0 00 e2 38 20 41 25 3d 6c 69 73 25 2b 32 38 3a 21 |..8 A%=lis%+28:!| 00001ef0 41 25 3d 30 3a f2 74 69 63 6b 28 6c 69 73 25 2c |A%=0:.tick(lis%,| 00001f00 30 2c 64 65 66 61 75 6c 74 24 3d 22 22 29 3a 69 |0,default$=""):i| 00001f10 6e 64 65 78 25 3d 30 0d 00 e3 06 20 f5 0d 00 e4 |ndex%=0.... ....| 00001f20 4b 20 20 c8 99 22 58 4f 53 5f 47 42 50 42 22 2c |K .."XOS_GBPB",| 00001f30 31 30 2c 22 3c 50 75 7a 50 69 63 24 44 69 72 3e |10,"<PuzPic$Dir>| 00001f40 22 2c 72 65 70 25 2c 31 2c 69 6e 64 65 78 25 2c |",rep%,1,index%,| 00001f50 32 35 35 2c 30 20 b8 20 2c 2c 2c 2c 69 6e 64 65 |255,0 . ,,,,inde| 00001f60 78 25 3b 66 6c 61 67 25 0d 00 e5 27 20 20 e7 20 |x%;flag%...' . | 00001f70 69 6e 64 65 78 25 3d 31 20 80 20 28 66 6c 61 67 |index%=1 . (flag| 00001f80 25 80 31 29 3d 30 20 8c 20 21 41 25 2b 3d 32 0d |%.1)=0 . !A%+=2.| 00001f90 00 e6 3d 20 20 e7 20 69 6e 64 65 78 25 3c 3e 2d |..= . index%<>-| 00001fa0 31 20 80 20 28 28 21 72 65 70 25 80 26 46 46 46 |1 . ((!rep%.&FFF| 00001fb0 30 30 29 3e 3e 38 29 3d 26 46 46 39 20 80 20 28 |00)>>8)=&FF9 . (| 00001fc0 66 6c 61 67 25 80 31 29 3d 30 20 8c 0d 00 e7 42 |flag%.1)=0 ....B| 00001fd0 20 20 20 41 25 2b 3d 32 34 3a 24 28 41 25 2b 31 | A%+=24:$(A%+1| 00001fe0 32 29 3d a4 73 74 72 69 6e 67 28 72 65 70 25 2b |2)=.string(rep%+| 00001ff0 32 30 29 3a 21 41 25 3d 30 3a 41 25 21 34 3d 30 |20):!A%=0:A%!4=0| 00002000 3a 41 25 21 38 3d 26 37 30 30 30 30 32 31 0d 00 |:A%!8=&7000021..| 00002010 e8 32 20 20 20 e7 20 22 3c 50 75 7a 50 69 63 24 |.2 . "<PuzPic$| 00002020 44 69 72 3e 2e 22 2b 24 28 41 25 2b 31 32 29 3d |Dir>."+$(A%+12)=| 00002030 64 65 66 61 75 6c 74 24 20 8c 20 21 41 25 3d 31 |default$ . !A%=1| 00002040 0d 00 e9 07 20 20 cd 0d 00 ea 1a 20 fd 20 69 6e |.... ..... . in| 00002050 64 65 78 25 3d 2d 31 20 84 20 66 6c 61 67 25 80 |dex%=-1 . flag%.| 00002060 31 0d 00 eb 32 20 21 41 25 2b 3d 31 32 38 3a c8 |1...2 !A%+=128:.| 00002070 99 22 57 69 6d 70 5f 43 72 65 61 74 65 53 75 62 |."Wimp_CreateSub| 00002080 4d 65 6e 75 22 2c 2c 6c 69 73 25 2c 73 78 25 2c |Menu",,lis%,sx%,| 00002090 73 79 25 0d 00 ec 05 e1 0d 00 ed 04 0d 00 ee 3e |sy%............>| 000020a0 dd a4 73 74 72 69 6e 67 28 70 74 72 25 29 3a ea |..string(ptr%):.| 000020b0 20 41 24 3a c8 95 20 3f 70 74 72 25 3c 3e 30 3a | A$:.. ?ptr%<>0:| 000020c0 41 24 2b 3d bd 28 3f 70 74 72 25 29 3a 70 74 72 |A$+=.(?ptr%):ptr| 000020d0 25 2b 3d 31 3a ce 3a 3d 41 24 0d 00 ef 04 0d 00 |%+=1:.:=A$......| 000020e0 f0 1b dd f2 64 61 74 61 6c 6f 61 64 28 74 79 70 |....dataload(typ| 000020f0 65 25 2c 70 61 74 68 24 29 0d 00 f1 46 20 e7 20 |e%,path$)...F . | 00002100 74 79 70 65 25 3d 26 46 46 39 20 8c 20 64 65 66 |type%=&FF9 . def| 00002110 61 75 6c 74 24 3d 70 61 74 68 24 3a f2 6c 6f 61 |ault$=path$:.loa| 00002120 64 73 70 72 69 74 65 28 70 61 74 68 24 29 3a f2 |dsprite(path$):.| 00002130 73 70 6c 69 74 3a f2 76 6f 69 64 6d 61 69 6e 0d |split:.voidmain.| 00002140 00 f2 05 e1 0d 00 f3 04 0d 00 f4 1d f4 20 2a 2a |............. **| 00002150 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 20 43 |************* C| 00002160 6c 69 63 6b 73 0d 00 f5 04 0d 00 f6 42 dd f2 6d |licks.......B..m| 00002170 61 6b 65 70 6f 69 6e 74 65 72 28 41 24 29 3a c8 |akepointer(A$):.| 00002180 99 22 58 57 69 6d 70 5f 53 70 72 69 74 65 4f 70 |."XWimp_SpriteOp| 00002190 22 2c 33 36 2c 2c 22 70 74 72 5f 22 2b 41 24 2c |",36,,"ptr_"+A$,| 000021a0 32 2c 30 2c 30 2c 30 2c 30 3a e1 0d 00 f7 04 0d |2,0,0,0,0:......| 000021b0 00 f8 28 dd f2 63 6c 69 63 6b 28 77 69 6e 64 6f |..(..click(windo| 000021c0 77 25 2c 69 63 6f 6e 25 2c 62 75 74 74 6f 6e 25 |w%,icon%,button%| 000021d0 2c 58 25 2c 59 25 29 0d 00 f9 4b 20 e7 20 28 28 |,X%,Y%)...K . ((| 000021e0 62 75 74 74 6f 6e 25 3d 31 20 80 20 77 69 6e 64 |button%=1 . wind| 000021f0 6f 77 25 3e 30 29 20 84 20 62 75 74 74 6f 6e 25 |ow%>0) . button%| 00002200 80 36 34 29 20 80 20 77 69 6e 64 6f 77 25 3c 3e |.64) . window%<>| 00002210 6d 61 69 6e 25 20 8c 20 f2 73 74 61 72 74 64 72 |main% . .startdr| 00002220 61 67 0d 00 fa 11 20 c8 8e 20 77 69 6e 64 6f 77 |ag.... .. window| 00002230 25 20 ca 0d 00 fb 0b 20 20 c9 20 2d 32 3a 0d 00 |% ..... . -2:..| 00002240 fc 13 20 20 20 c8 8e 20 62 75 74 74 6f 6e 25 20 |.. .. button% | 00002250 ca 0d 00 fd 18 20 20 20 20 c9 20 31 3a f2 6f 70 |..... . 1:.op| 00002260 65 6e 28 76 69 65 77 25 29 0d 00 fe 24 20 20 20 |en(view%)...$ | 00002270 20 c9 20 32 3a f2 6d 65 6e 75 28 58 25 2d 36 34 | . 2:.menu(X%-64| 00002280 2c 39 36 2b 34 34 2a 31 31 2b 35 30 29 0d 00 ff |,96+44*11+50)...| 00002290 18 20 20 20 20 c9 20 34 3a f2 6f 70 65 6e 28 6d |. . 4:.open(m| 000022a0 61 69 6e 25 29 0d 01 00 08 20 20 20 cb 0d 01 01 |ain%).... ....| 000022b0 32 20 20 c9 20 68 65 6c 70 77 25 2c 76 69 65 77 |2 . helpw%,view| 000022c0 25 3a e7 20 62 75 74 74 6f 6e 25 3d 32 20 8c 20 |%:. button%=2 . | 000022d0 f2 6d 65 6e 75 28 58 25 2d 36 34 2c 59 25 29 0d |.menu(X%-64,Y%).| 000022e0 01 02 2c 20 20 c9 20 74 69 6d 65 77 25 3a e7 20 |.., . timew%:. | 000022f0 62 75 74 74 6f 6e 25 3d 32 20 8c 20 f2 6d 65 6e |button%=2 . .men| 00002300 75 28 58 25 2d 36 34 2c 59 25 29 0d 01 03 12 20 |u(X%-64,Y%).... | 00002310 20 20 e7 20 69 63 6f 6e 25 3d 34 20 8c 0d 01 04 | . icon%=4 ....| 00002320 54 20 20 20 20 21 62 6c 6f 63 6b 25 3d 68 69 67 |T !block%=hig| 00002330 68 77 25 3a c8 99 20 47 65 74 57 69 6e 64 6f 77 |hw%:.. GetWindow| 00002340 25 2c 2c 62 6c 6f 63 6b 25 3a c8 99 20 26 33 35 |%,,block%:.. &35| 00002350 2c 2d 31 2c 31 31 20 b8 20 2c 2c 57 25 3a c8 99 |,-1,11 . ,,W%:..| 00002360 20 26 33 35 2c 2d 31 2c 31 32 20 b8 20 2c 2c 48 | &35,-1,12 . ,,H| 00002370 25 0d 01 05 49 20 20 20 20 c8 99 20 26 33 35 2c |%...I .. &35,| 00002380 2d 31 2c 34 20 b8 20 2c 2c 41 25 3a c8 99 20 26 |-1,4 . ,,A%:.. &| 00002390 33 35 2c 2d 31 2c 35 20 b8 20 2c 2c 55 25 3a 57 |35,-1,5 . ,,U%:W| 000023a0 25 3d 28 57 25 2b 31 29 3c 3c 41 25 3a 48 25 3d |%=(W%+1)<<A%:H%=| 000023b0 28 48 25 2b 31 29 3c 3c 55 25 0d 01 06 4f 20 20 |(H%+1)<<U%...O | 000023c0 20 20 77 69 6e 57 25 3d 62 6c 6f 63 6b 25 21 31 | winW%=block%!1| 000023d0 32 2d 62 6c 6f 63 6b 25 21 34 3a 77 69 6e 48 25 |2-block%!4:winH%| 000023e0 3d 62 6c 6f 63 6b 25 21 31 36 2d 62 6c 6f 63 6b |=block%!16-block| 000023f0 25 21 38 3a 62 6c 6f 63 6b 25 21 34 3d 57 25 2f |%!8:block%!4=W%/| 00002400 32 2d 77 69 6e 57 25 2f 32 0d 01 07 4f 20 20 20 |2-winW%/2...O | 00002410 20 62 6c 6f 63 6b 25 21 31 32 3d 62 6c 6f 63 6b | block%!12=block| 00002420 25 21 34 2b 77 69 6e 57 25 3a 62 6c 6f 63 6b 25 |%!4+winW%:block%| 00002430 21 38 3d 48 25 2f 32 2d 77 69 6e 48 25 2f 32 3a |!8=H%/2-winH%/2:| 00002440 62 6c 6f 63 6b 25 21 31 36 3d 62 6c 6f 63 6b 25 |block%!16=block%| 00002450 21 38 2b 77 69 6e 48 25 0d 01 08 1d 20 20 20 20 |!8+winH%.... | 00002460 c8 99 4f 70 65 6e 57 69 6e 64 6f 77 25 2c 2c 62 |..OpenWindow%,,b| 00002470 6c 6f 63 6b 25 0d 01 09 08 20 20 20 cd 0d 01 0a |lock%.... ....| 00002480 73 20 20 c9 20 6d 61 69 6e 25 3a e7 20 62 75 74 |s . main%:. but| 00002490 74 6f 6e 25 3d 32 20 8c 20 f2 6d 65 6e 75 28 58 |ton%=2 . .menu(X| 000024a0 25 2d 36 34 2c 59 25 29 20 8b 20 e7 20 28 74 66 |%-64,Y%) . . (tf| 000024b0 6c 61 67 25 80 32 29 3d 30 20 8c 20 f2 6d 61 69 |lag%.2)=0 . .mai| 000024c0 6e 63 6c 69 63 6b 28 58 25 2c 59 25 29 3a f2 70 |nclick(X%,Y%):.p| 000024d0 65 72 63 65 6e 74 20 8b 20 e7 20 62 75 74 74 6f |ercent . . butto| 000024e0 6e 25 80 36 34 20 f2 73 74 61 72 74 64 72 61 67 |n%.64 .startdrag| 000024f0 0d 01 0b 2a 20 20 c9 20 77 69 6e 25 3a e7 20 62 |...* . win%:. b| 00002500 75 74 74 6f 6e 25 3d 32 20 8c 20 f2 6d 65 6e 75 |utton%=2 . .menu| 00002510 28 58 25 2d 36 34 2c 59 25 29 0d 01 0c 12 20 20 |(X%-64,Y%).... | 00002520 20 e7 20 69 63 6f 6e 25 3d 33 20 8c 0d 01 0d 2b | . icon%=3 ....+| 00002530 20 20 20 20 21 62 6c 6f 63 6b 25 3d 77 69 6e 25 | !block%=win%| 00002540 3a c8 99 43 6c 6f 73 65 57 69 6e 64 6f 77 25 2c |:..CloseWindow%,| 00002550 2c 62 6c 6f 63 6b 25 0d 01 0e 15 20 20 20 20 e7 |,block%.... .| 00002560 20 77 69 6e 48 25 3d 34 33 32 20 8c 0d 01 0f 32 | winH%=432 ....2| 00002570 20 20 20 20 20 f2 6d 65 6e 75 73 68 61 64 65 28 | .menushade(| 00002580 62 61 72 25 2c 31 2c 30 29 3a f2 6d 65 6e 75 73 |bar%,1,0):.menus| 00002590 68 61 64 65 28 62 61 72 25 2c 38 2c 30 29 0d 01 |hade(bar%,8,0)..| 000025a0 10 34 20 20 20 20 20 f2 69 63 6f 6e 74 65 78 74 |.4 .icontext| 000025b0 28 68 69 67 68 77 25 2c 28 62 25 2d 32 29 2a 34 |(highw%,(b%-2)*4| 000025c0 2b 31 2c 24 a4 74 65 78 74 28 77 69 6e 25 2c 35 |+1,$.text(win%,5| 000025d0 29 29 0d 01 11 36 20 20 20 20 20 f2 69 63 6f 6e |))...6 .icon| 000025e0 74 65 78 74 28 68 69 67 68 77 25 2c 28 62 25 2d |text(highw%,(b%-| 000025f0 32 29 2a 34 2b 32 2c 24 a4 74 65 78 74 28 74 69 |2)*4+2,$.text(ti| 00002600 6d 65 77 25 2c 31 29 29 0d 01 12 2d 20 20 20 20 |mew%,1))...- | 00002610 20 f2 69 63 6f 6e 74 65 78 74 28 68 69 67 68 77 | .icontext(highw| 00002620 25 2c 28 62 25 2d 32 29 2a 34 2b 33 2c c0 91 24 |%,(b%-2)*4+3,..$| 00002630 2c 31 35 29 29 0d 01 13 09 20 20 20 20 cd 0d 01 |,15)).... ...| 00002640 14 08 20 20 20 cd 0d 01 15 0f 20 20 c9 20 68 69 |.. ..... . hi| 00002650 67 68 77 25 3a 0d 01 16 15 20 20 20 e7 20 62 75 |ghw%:.... . bu| 00002660 74 74 6f 6e 25 3c 3e 32 20 8c 0d 01 17 14 20 20 |tton%<>2 ..... | 00002670 20 20 e7 20 69 63 6f 6e 25 3d 33 36 20 8c 0d 01 | . icon%=36 ...| 00002680 18 4b 20 20 20 20 20 e3 20 41 25 3d 33 20 b8 20 |.K . A%=3 . | 00002690 31 30 3a 24 a4 74 61 62 6c 65 28 41 25 2c 31 29 |10:$.table(A%,1)| 000026a0 3d 22 43 68 72 69 73 20 4d 6f 72 69 73 6f 6e 22 |="Chris Morison"| 000026b0 3a 24 a4 74 61 62 6c 65 28 41 25 2c 32 29 3d 22 |:$.table(A%,2)="| 000026c0 39 39 3a 35 39 3a 35 39 22 0d 01 19 2b 20 20 20 |99:59:59"...+ | 000026d0 20 20 20 24 a4 74 61 62 6c 65 28 41 25 2c 33 29 | $.table(A%,3)| 000026e0 3d 22 57 65 64 2c 31 39 20 4a 61 6e 20 31 39 39 |="Wed,19 Jan 199| 000026f0 34 22 3a ed 0d 01 1a 8b 20 20 20 20 20 21 62 6c |4":..... !bl| 00002700 6f 63 6b 25 3d 68 69 67 68 77 25 3a c8 99 47 65 |ock%=highw%:..Ge| 00002710 74 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 |tWindow%,,block%| 00002720 3a c8 99 52 65 64 72 61 77 25 2c 68 69 67 68 77 |:..Redraw%,highw| 00002730 25 2c 62 6c 6f 63 6b 25 21 32 30 2c 62 6c 6f 63 |%,block%!20,bloc| 00002740 6b 25 21 38 2d 62 6c 6f 63 6b 25 21 31 36 2b 62 |k%!8-block%!16+b| 00002750 6c 6f 63 6b 25 21 32 34 2c 62 6c 6f 63 6b 25 21 |lock%!24,block%!| 00002760 31 32 2d 62 6c 6f 63 6b 25 21 34 2b 62 6c 6f 63 |12-block%!4+bloc| 00002770 6b 25 21 32 30 2c 62 6c 6f 63 6b 25 21 32 34 0d |k%!20,block%!24.| 00002780 01 1b 09 20 20 20 20 cd 0d 01 1c 18 20 20 20 cc |... ..... .| 00002790 20 f2 6d 65 6e 75 28 58 25 2d 36 34 2c 59 25 29 | .menu(X%-64,Y%)| 000027a0 0d 01 1d 08 20 20 20 cd 0d 01 1e 0d 20 20 c9 20 |.... ..... . | 000027b0 77 69 64 25 3a 0d 01 1f 1f 20 20 20 74 65 6d 70 |wid%:.... temp| 000027c0 62 25 3d bb 28 24 a4 74 65 78 74 28 77 69 64 25 |b%=.($.text(wid%| 000027d0 2c 31 29 29 0d 01 20 11 20 20 20 c8 8e 20 69 63 |,1)).. . .. ic| 000027e0 6f 6e 25 20 ca 0d 01 21 3d 20 20 20 20 c9 20 30 |on% ...!= . 0| 000027f0 3a e7 20 62 75 74 74 6f 6e 25 3d 31 20 8c 20 74 |:. button%=1 . t| 00002800 65 6d 70 62 25 2b 3d 31 20 8b 20 e7 20 62 75 74 |empb%+=1 . . but| 00002810 74 6f 6e 25 3d 34 20 8c 20 74 65 6d 70 62 25 2d |ton%=4 . tempb%-| 00002820 3d 31 0d 01 22 3d 20 20 20 20 c9 20 32 3a e7 20 |=1.."= . 2:. | 00002830 62 75 74 74 6f 6e 25 3d 31 20 8c 20 74 65 6d 70 |button%=1 . temp| 00002840 62 25 2d 3d 31 20 8b 20 e7 20 62 75 74 74 6f 6e |b%-=1 . . button| 00002850 25 3d 34 20 8c 20 74 65 6d 70 62 25 2b 3d 31 0d |%=4 . tempb%+=1.| 00002860 01 23 0c 20 20 20 20 c9 20 33 3a 0d 01 24 3e 20 |.#. . 3:..$> | 00002870 20 20 20 20 62 25 3d bb 28 24 a4 74 65 78 74 28 | b%=.($.text(| 00002880 77 69 64 25 2c 31 29 29 3a f2 73 70 6c 69 74 3a |wid%,1)):.split:| 00002890 f2 75 6e 6d 69 78 3a f2 73 68 75 66 66 6c 65 3a |.unmix:.shuffle:| 000028a0 f2 76 6f 69 64 6d 61 69 6e 0d 01 25 28 20 20 20 |.voidmain..%( | 000028b0 20 20 e7 20 62 75 74 74 6f 6e 25 3d 34 20 8c 20 | . button%=4 . | 000028c0 c8 99 43 72 65 61 74 65 4d 65 6e 75 25 2c 2c 2d |..CreateMenu%,,-| 000028d0 31 0d 01 26 08 20 20 20 cb 0d 01 27 36 20 20 20 |1..&. ...'6 | 000028e0 e7 20 74 65 6d 70 62 25 3c 33 20 8c 20 74 65 6d |. tempb%<3 . tem| 000028f0 70 62 25 3d 33 20 8b 20 e7 20 74 65 6d 70 62 25 |pb%=3 . . tempb%| 00002900 3e 31 30 20 8c 20 74 65 6d 70 62 25 3d 31 30 0d |>10 . tempb%=10.| 00002910 01 28 20 20 20 20 f2 69 63 6f 6e 74 65 78 74 28 |.( .icontext(| 00002920 77 69 64 25 2c 31 2c c3 74 65 6d 70 62 25 29 0d |wid%,1,.tempb%).| 00002930 01 29 06 20 cb 0d 01 2a 05 e1 0d 01 2b 04 0d 01 |.). ...*....+...| 00002940 2c 0f dd f2 73 74 61 72 74 64 72 61 67 0d 01 2d |,...startdrag..-| 00002950 71 64 72 61 67 67 69 6e 67 25 3d 77 69 6e 64 6f |qdragging%=windo| 00002960 77 25 3a 21 62 6c 6f 63 6b 25 3d 77 69 6e 64 6f |w%:!block%=windo| 00002970 77 25 3a c8 99 20 47 65 74 57 69 6e 64 6f 77 25 |w%:.. GetWindow%| 00002980 2c 2c 62 6c 6f 63 6b 25 3a 64 78 25 3d 58 25 2d |,,block%:dx%=X%-| 00002990 62 6c 6f 63 6b 25 21 34 3a 64 79 25 3d 62 6c 6f |block%!4:dy%=blo| 000029a0 63 6b 25 21 31 36 2d 59 25 3a f2 6d 61 6b 65 70 |ck%!16-Y%:.makep| 000029b0 6f 69 6e 74 65 72 28 22 68 61 6e 64 22 29 0d 01 |ointer("hand")..| 000029c0 2e 05 e1 0d 01 2f 04 0d 01 30 16 dd f2 6d 61 69 |...../...0...mai| 000029d0 6e 63 6c 69 63 6b 28 78 25 2c 79 25 29 0d 01 31 |nclick(x%,y%)..1| 000029e0 26 20 62 6c 6f 63 6b 25 21 30 3d 6d 61 69 6e 25 |& block%!0=main%| 000029f0 3a c8 99 47 65 74 49 6e 66 6f 25 2c 2c 62 6c 6f |:..GetInfo%,,blo| 00002a00 63 6b 25 0d 01 32 3d 20 77 77 69 64 74 68 25 3d |ck%..2= wwidth%=| 00002a10 62 6c 6f 63 6b 25 21 35 32 2d 62 6c 6f 63 6b 25 |block%!52-block%| 00002a20 21 34 34 3a 77 68 65 69 67 68 74 25 3d 62 6c 6f |!44:wheight%=blo| 00002a30 63 6b 25 21 34 38 2d 62 6c 6f 63 6b 25 21 35 36 |ck%!48-block%!56| 00002a40 0d 01 33 48 20 c8 99 47 65 74 57 69 6e 64 6f 77 |..3H ..GetWindow| 00002a50 25 2c 2c 62 6c 6f 63 6b 25 3a 78 6f 25 3d 62 6c |%,,block%:xo%=bl| 00002a60 6f 63 6b 25 21 34 2d 62 6c 6f 63 6b 25 21 32 30 |ock%!4-block%!20| 00002a70 3a 79 6f 25 3d 62 6c 6f 63 6b 25 21 31 36 2d 62 |:yo%=block%!16-b| 00002a80 6c 6f 63 6b 25 21 32 34 0d 01 34 46 20 6d 78 25 |lock%!24..4F mx%| 00002a90 3d 28 78 25 2d 78 6f 25 29 81 78 73 74 65 70 3a |=(x%-xo%).xstep:| 00002aa0 6d 79 25 3d 28 79 6f 25 2d 79 25 29 81 79 73 74 |my%=(yo%-y%).yst| 00002ab0 65 70 3a 6f 6c 64 78 25 3d 62 78 25 3a 6f 6c 64 |ep:oldx%=bx%:old| 00002ac0 79 25 3d 62 79 25 3a 66 6c 61 67 25 3d 30 0d 01 |y%=by%:flag%=0..| 00002ad0 35 2a 20 e7 20 6d 78 25 3d 62 25 20 8c 20 6d 78 |5* . mx%=b% . mx| 00002ae0 25 3d 62 25 2d 31 20 8b 20 e7 20 6d 78 25 3c 30 |%=b%-1 . . mx%<0| 00002af0 20 8c 20 6d 78 25 3d 30 0d 01 36 2a 20 e7 20 6d | . mx%=0..6* . m| 00002b00 79 25 3d 62 25 20 8c 20 6d 79 25 3d 62 25 2d 31 |y%=b% . my%=b%-1| 00002b10 20 8b 20 e7 20 6d 79 25 3c 30 20 8c 20 6d 79 25 | . . my%<0 . my%| 00002b20 3d 30 0d 01 37 49 20 e7 20 6d 79 25 3d 62 79 25 |=0..7I . my%=by%| 00002b30 20 80 20 6d 78 25 3d 62 78 25 20 80 20 77 61 74 | . mx%=bx% . wat| 00002b40 63 68 6e 6f 25 3c 3e 6d 78 25 2b 6d 79 25 2a 62 |chno%<>mx%+my%*b| 00002b50 25 2b 31 20 80 20 6d 78 25 2b 6d 79 25 2a 62 25 |%+1 . mx%+my%*b%| 00002b60 2b 31 3c 3e 62 25 2a 62 25 20 8c 0d 01 38 3e 20 |+1<>b%*b% ...8> | 00002b70 20 20 77 61 74 63 68 6e 6f 25 3d 6d 78 25 2b 6d | watchno%=mx%+m| 00002b80 79 25 2a 62 25 2b 31 3a e7 20 64 72 61 67 67 69 |y%*b%+1:. draggi| 00002b90 6e 67 25 3d 30 20 8c 20 64 72 61 67 67 69 6e 67 |ng%=0 . dragging| 00002ba0 25 3d 77 69 6e 64 6f 77 25 0d 01 39 94 20 20 20 |%=window%..9. | 00002bb0 59 25 3d 2d 31 3a f5 3a 59 25 2b 3d 31 3a 58 25 |Y%=-1:.:Y%+=1:X%| 00002bc0 3d 2d 31 3a f5 3a 58 25 2b 3d 31 3a fd 20 73 25 |=-1:.:X%+=1:. s%| 00002bd0 28 58 25 2c 59 25 29 3d 77 61 74 63 68 6e 6f 25 |(X%,Y%)=watchno%| 00002be0 20 84 20 58 25 3e 62 25 2d 32 3a fd 20 73 25 28 | . X%>b%-2:. s%(| 00002bf0 58 25 2c 59 25 29 3d 77 61 74 63 68 6e 6f 25 3a |X%,Y%)=watchno%:| 00002c00 c8 99 52 65 64 72 61 77 25 2c 6d 61 69 6e 25 2c |..Redraw%,main%,| 00002c10 58 25 2a 78 73 74 65 70 2c 2d 28 59 25 2b 31 29 |X%*xstep,-(Y%+1)| 00002c20 2a 79 73 74 65 70 2c 28 58 25 2b 31 29 2a 78 73 |*ystep,(X%+1)*xs| 00002c30 74 65 70 2c 2d 59 25 2a 79 73 74 65 70 0d 01 3a |tep,-Y%*ystep..:| 00002c40 07 20 cd 20 0d 01 3b 10 20 e7 20 6d 79 25 3d 62 |. . ..;. . my%=b| 00002c50 79 25 20 8c 0d 01 3c 34 20 20 20 c8 95 20 6d 78 |y% ...<4 .. mx| 00002c60 25 3e 62 78 25 3a 73 25 28 62 78 25 2c 62 79 25 |%>bx%:s%(bx%,by%| 00002c70 29 3d 73 25 28 62 78 25 2b 31 2c 62 79 25 29 3a |)=s%(bx%+1,by%):| 00002c80 62 78 25 2b 3d 31 3a ce 0d 01 3d 34 20 20 20 c8 |bx%+=1:...=4 .| 00002c90 95 20 6d 78 25 3c 62 78 25 3a 73 25 28 62 78 25 |. mx%<bx%:s%(bx%| 00002ca0 2c 62 79 25 29 3d 73 25 28 62 78 25 2d 31 2c 62 |,by%)=s%(bx%-1,b| 00002cb0 79 25 29 3a 62 78 25 2d 3d 31 3a ce 0d 01 3e 59 |y%):bx%-=1:...>Y| 00002cc0 20 20 20 e7 20 6f 6c 64 78 25 3c 62 78 25 8c 20 | . oldx%<bx%. | 00002cd0 78 30 25 3d 6f 6c 64 78 25 2a 78 73 74 65 70 3a |x0%=oldx%*xstep:| 00002ce0 78 31 25 3d 28 62 78 25 2b 31 29 2a 78 73 74 65 |x1%=(bx%+1)*xste| 00002cf0 70 20 8b 20 78 30 25 3d 62 78 25 2a 78 73 74 65 |p . x0%=bx%*xste| 00002d00 70 3a 78 31 25 3d 28 6f 6c 64 78 25 2b 31 29 2a |p:x1%=(oldx%+1)*| 00002d10 78 73 74 65 70 0d 01 3f 46 20 20 20 73 25 28 62 |xstep..?F s%(b| 00002d20 78 25 2c 62 79 25 29 3d 30 3a c8 99 52 65 64 72 |x%,by%)=0:..Redr| 00002d30 61 77 25 2c 6d 61 69 6e 25 2c 78 30 25 2c 2d 28 |aw%,main%,x0%,-(| 00002d40 62 79 25 2b 31 29 2a 79 73 74 65 70 2c 78 31 25 |by%+1)*ystep,x1%| 00002d50 2c 2d 62 79 25 2a 79 73 74 65 70 0d 01 40 59 20 |,-by%*ystep..@Y | 00002d60 20 20 78 30 25 3d 28 78 30 25 2f 78 73 74 65 70 | x0%=(x0%/xstep| 00002d70 29 2a 34 30 3a 78 31 25 3d 28 78 31 25 2f 78 73 |)*40:x1%=(x1%/xs| 00002d80 74 65 70 29 2a 34 30 3a c8 99 52 65 64 72 61 77 |tep)*40:..Redraw| 00002d90 25 2c 68 65 6c 70 77 25 2c 78 30 25 2c 2d 28 62 |%,helpw%,x0%,-(b| 00002da0 79 25 2b 31 29 2a 34 30 2c 78 31 25 2c 2d 62 79 |y%+1)*40,x1%,-by| 00002db0 25 2a 34 30 0d 01 41 06 20 cc 0d 01 42 11 20 20 |%*40..A. ...B. | 00002dc0 e7 20 6d 78 25 3d 62 78 25 20 8c 0d 01 43 35 20 |. mx%=bx% ...C5 | 00002dd0 20 20 20 c8 95 20 6d 79 25 3e 62 79 25 3a 73 25 | .. my%>by%:s%| 00002de0 28 62 78 25 2c 62 79 25 29 3d 73 25 28 62 78 25 |(bx%,by%)=s%(bx%| 00002df0 2c 62 79 25 2b 31 29 3a 62 79 25 2b 3d 31 3a ce |,by%+1):by%+=1:.| 00002e00 0d 01 44 35 20 20 20 20 c8 95 20 6d 79 25 3c 62 |..D5 .. my%<b| 00002e10 79 25 3a 73 25 28 62 78 25 2c 62 79 25 29 3d 73 |y%:s%(bx%,by%)=s| 00002e20 25 28 62 78 25 2c 62 79 25 2d 31 29 3a 62 79 25 |%(bx%,by%-1):by%| 00002e30 2d 3d 31 3a ce 0d 01 45 59 20 20 20 20 e7 6f 6c |-=1:...EY .ol| 00002e40 64 79 25 3c 62 79 25 8c 20 79 30 25 3d 28 62 79 |dy%<by%. y0%=(by| 00002e50 25 2b 31 29 2a 79 73 74 65 70 3a 79 31 25 3d 6f |%+1)*ystep:y1%=o| 00002e60 6c 64 79 25 2a 79 73 74 65 70 20 8b 20 79 30 25 |ldy%*ystep . y0%| 00002e70 3d 28 6f 6c 64 79 25 2b 31 29 2a 79 73 74 65 70 |=(oldy%+1)*ystep| 00002e80 3a 79 31 25 3d 62 79 25 2a 79 73 74 65 70 0d 01 |:y1%=by%*ystep..| 00002e90 46 47 20 20 20 20 73 25 28 62 78 25 2c 62 79 25 |FG s%(bx%,by%| 00002ea0 29 3d 30 3a c8 99 52 65 64 72 61 77 25 2c 6d 61 |)=0:..Redraw%,ma| 00002eb0 69 6e 25 2c 62 78 25 2a 78 73 74 65 70 2c 2d 79 |in%,bx%*xstep,-y| 00002ec0 30 25 2c 28 62 78 25 2b 31 29 2a 78 73 74 65 70 |0%,(bx%+1)*xstep| 00002ed0 2c 2d 79 31 25 0d 01 47 5a 20 20 20 20 79 30 25 |,-y1%..GZ y0%| 00002ee0 3d 28 79 30 25 2f 79 73 74 65 70 29 2a 34 30 3a |=(y0%/ystep)*40:| 00002ef0 79 31 25 3d 28 79 31 25 2f 79 73 74 65 70 29 2a |y1%=(y1%/ystep)*| 00002f00 34 30 3a c8 99 52 65 64 72 61 77 25 2c 68 65 6c |40:..Redraw%,hel| 00002f10 70 77 25 2c 62 78 25 2a 34 30 2c 2d 79 30 25 2c |pw%,bx%*40,-y0%,| 00002f20 28 62 78 25 2b 31 29 2a 34 30 2c 2d 79 31 25 0d |(bx%+1)*40,-y1%.| 00002f30 01 48 25 20 20 20 20 cc 20 e7 20 28 62 75 74 74 |.H% . . (butt| 00002f40 6f 6e 25 80 36 34 29 20 8c 20 f2 73 74 61 72 74 |on%.64) . .start| 00002f50 64 72 61 67 0d 01 49 08 20 20 20 cd 0d 01 4a 06 |drag..I. ...J.| 00002f60 20 cd 0d 01 4b 05 e1 0d 01 4c 04 0d 01 4d 13 dd | ...K....L...M..| 00002f70 f2 6f 70 65 6e 28 77 69 6e 64 6f 77 25 29 0d 01 |.open(window%)..| 00002f80 4e 11 20 c8 8e 20 77 69 6e 64 6f 77 25 20 ca 0d |N. .. window% ..| 00002f90 01 4f 0d 20 20 c9 20 6d 61 69 6e 25 0d 01 50 22 |.O. . main%..P"| 00002fa0 20 20 20 70 75 7a 6f 70 65 6e 25 3d b9 3a f2 74 | puzopen%=.:.t| 00002fb0 69 63 6b 28 62 61 72 25 2c 32 2c 2d 31 29 0d 01 |ick(bar%,2,-1)..| 00002fc0 51 36 20 20 20 e7 20 74 66 6c 61 67 25 3d 30 20 |Q6 . tflag%=0 | 00002fd0 8c 20 74 69 6d 65 73 74 61 72 74 65 64 25 2b 3d |. timestarted%+=| 00002fe0 6e 6f 77 25 2d 64 65 6c 61 79 25 3a 64 65 6c 61 |now%-delay%:dela| 00002ff0 79 25 3d 30 0d 01 52 16 20 20 20 74 66 6c 61 67 |y%=0..R. tflag| 00003000 25 3d 74 66 6c 61 67 25 84 31 0d 01 53 2a 20 20 |%=tflag%.1..S* | 00003010 c9 20 76 69 65 77 25 3a 76 69 65 77 6f 70 65 6e |. view%:viewopen| 00003020 25 3d b9 3a f2 74 69 63 6b 28 62 61 72 25 2c 33 |%=.:.tick(bar%,3| 00003030 2c 2d 31 29 0d 01 54 2e 20 20 c9 20 74 69 6d 65 |,-1)..T. . time| 00003040 77 25 3a 74 69 6d 65 72 25 3d b9 3a f2 74 69 63 |w%:timer%=.:.tic| 00003050 6b 28 62 61 72 25 2c 34 2c 2d 31 29 3a f2 74 69 |k(bar%,4,-1):.ti| 00003060 6d 65 0d 01 55 06 20 cb 0d 01 56 46 20 21 72 65 |me..U. ...VF !re| 00003070 70 25 3d 77 69 6e 64 6f 77 25 3a c8 99 20 47 65 |p%=window%:.. Ge| 00003080 74 57 69 6e 64 6f 77 25 2c 2c 72 65 70 25 3a 72 |tWindow%,,rep%:r| 00003090 65 70 25 21 32 38 3d 2d 31 3a c8 99 20 4f 70 65 |ep%!28=-1:.. Ope| 000030a0 6e 57 69 6e 64 6f 77 25 2c 2c 72 65 70 25 0d 01 |nWindow%,,rep%..| 000030b0 57 05 e1 0d 01 58 04 0d 01 59 1c f4 20 2a 2a 2a |W....X...Y.. ***| 000030c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 20 4d 65 |************ Me| 000030d0 6e 75 73 0d 01 5a 04 0d 01 5b 12 dd f2 6d 65 6e |nus..Z...[...men| 000030e0 75 73 65 6c 65 63 74 20 20 0d 01 5c 0c 20 66 6c |uselect ..\. fl| 000030f0 61 67 25 3d 30 0d 01 5d 11 20 c8 8e 20 21 62 6c |ag%=0..]. .. !bl| 00003100 6f 63 6b 25 20 ca 0d 01 5e 1c 20 20 c9 20 31 3a |ock% ...^. . 1:| 00003110 f2 73 68 75 66 66 6c 65 3a f2 76 6f 69 64 6d 61 |.shuffle:.voidma| 00003120 69 6e 0d 01 5f 09 20 20 c9 20 32 0d 01 60 13 20 |in.._. . 2..`. | 00003130 20 20 e7 20 70 75 7a 6f 70 65 6e 25 20 8c 0d 01 | . puzopen% ...| 00003140 61 48 20 20 20 20 21 62 6c 6f 63 6b 25 3d 6d 61 |aH !block%=ma| 00003150 69 6e 25 3a c8 99 20 43 6c 6f 73 65 57 69 6e 64 |in%:.. CloseWind| 00003160 6f 77 25 2c 2c 62 6c 6f 63 6b 25 3a f2 74 69 63 |ow%,,block%:.tic| 00003170 6b 28 62 61 72 25 2c 32 2c 30 29 3a 70 75 7a 6f |k(bar%,2,0):puzo| 00003180 70 65 6e 25 3d 30 0d 01 62 30 20 20 20 20 74 66 |pen%=0..b0 tf| 00003190 6c 61 67 25 3d 74 66 6c 61 67 25 80 32 3a e7 20 |lag%=tflag%.2:. | 000031a0 74 66 6c 61 67 25 3d 30 20 8c 20 64 65 6c 61 79 |tflag%=0 . delay| 000031b0 25 3d 6e 6f 77 25 0d 01 63 15 20 20 20 cc 20 f2 |%=now%..c. . .| 000031c0 6f 70 65 6e 28 6d 61 69 6e 25 29 0d 01 64 08 20 |open(main%)..d. | 000031d0 20 20 cd 0d 01 65 68 20 20 c9 20 33 3a e7 20 76 | ...eh . 3:. v| 000031e0 69 65 77 6f 70 65 6e 25 20 8c 20 21 62 6c 6f 63 |iewopen% . !bloc| 000031f0 6b 25 3d 76 69 65 77 25 3a c8 99 20 43 6c 6f 73 |k%=view%:.. Clos| 00003200 65 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 |eWindow%,,block%| 00003210 3a f2 74 69 63 6b 28 62 61 72 25 2c 33 2c 30 29 |:.tick(bar%,3,0)| 00003220 3a 76 69 65 77 6f 70 65 6e 25 3d 30 20 8b 20 f2 |:viewopen%=0 . .| 00003230 6f 70 65 6e 28 76 69 65 77 25 29 0d 01 66 6a 20 |open(view%)..fj | 00003240 20 c9 20 34 3a e7 20 74 69 6d 65 72 25 20 8c 20 | . 4:. timer% . | 00003250 21 62 6c 6f 63 6b 25 3d 74 69 6d 65 77 25 3a c8 |!block%=timew%:.| 00003260 99 20 43 6c 6f 73 65 57 69 6e 64 6f 77 25 2c 2c |. CloseWindow%,,| 00003270 62 6c 6f 63 6b 25 3a f2 74 69 63 6b 28 62 61 72 |block%:.tick(bar| 00003280 25 2c 34 2c 30 29 3a 74 69 6d 65 72 25 3d 30 20 |%,4,0):timer%=0 | 00003290 8b 20 f2 74 69 6d 65 3a f2 6f 70 65 6e 28 74 69 |. .time:.open(ti| 000032a0 6d 65 77 25 29 0d 01 67 12 20 20 c9 20 35 3a 68 |mew%)..g. . 5:h| 000032b0 25 3d 68 65 6c 70 25 0d 01 68 28 20 20 20 e7 20 |%=help%..h( . | 000032c0 68 65 6c 70 25 3e 30 20 8c 20 f2 74 69 63 6b 28 |help%>0 . .tick(| 000032d0 68 65 6c 25 2c 68 65 6c 70 25 2d 31 2c 30 29 0d |hel%,help%-1,0).| 000032e0 01 69 14 20 20 20 c8 8e 20 62 6c 6f 63 6b 25 21 |.i. .. block%!| 000032f0 34 20 ca 0d 01 6a 20 20 20 20 20 c9 20 2d 31 3a |4 ...j . -1:| 00003300 e7 20 68 65 6c 70 25 3e 30 20 8c 20 68 65 6c 70 |. help%>0 . help| 00003310 25 3d 30 0d 01 6b 48 20 20 20 20 c9 20 30 3a e7 |%=0..kH . 0:.| 00003320 20 68 65 6c 70 25 3d 31 20 8c 20 68 65 6c 70 25 | help%=1 . help%| 00003330 3d 30 20 8b 20 68 65 6c 70 25 3d 31 3a f2 74 69 |=0 . help%=1:.ti| 00003340 63 6b 28 68 65 6c 25 2c 30 2c 2d 31 29 3a f2 6f |ck(hel%,0,-1):.o| 00003350 70 65 6e 28 68 65 6c 70 77 25 29 0d 01 6c 3a 20 |pen(helpw%)..l: | 00003360 20 20 20 c9 20 31 3a e7 20 68 65 6c 70 25 3d 32 | . 1:. help%=2| 00003370 20 8c 20 68 65 6c 70 25 3d 30 20 8b 20 68 65 6c | . help%=0 . hel| 00003380 70 25 3d 32 3a f2 74 69 63 6b 28 68 65 6c 25 2c |p%=2:.tick(hel%,| 00003390 31 2c 2d 31 29 0d 01 6d 08 20 20 20 cb 0d 01 6e |1,-1)..m. ...n| 000033a0 41 20 20 20 e7 20 68 65 6c 70 25 3c 3e 31 20 80 |A . help%<>1 .| 000033b0 20 68 25 3d 31 20 8c 20 21 62 6c 6f 63 6b 25 3d | h%=1 . !block%=| 000033c0 68 65 6c 70 77 25 3a c8 99 20 43 6c 6f 73 65 57 |helpw%:.. CloseW| 000033d0 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 0d 01 |indow%,,block%..| 000033e0 6f 1c 20 20 20 f2 74 69 63 6b 28 62 61 72 25 2c |o. .tick(bar%,| 000033f0 35 2c 68 65 6c 70 25 3e 30 29 0d 01 70 48 20 20 |5,help%>0)..pH | 00003400 20 c8 99 52 65 64 72 61 77 25 2c 6d 61 69 6e 25 | ..Redraw%,main%| 00003410 2c 62 78 25 2a 78 73 74 65 70 2c 2d 28 62 79 25 |,bx%*xstep,-(by%| 00003420 2b 31 29 2a 79 73 74 65 70 2c 28 62 78 25 2b 31 |+1)*ystep,(bx%+1| 00003430 29 2a 78 73 74 65 70 2c 2d 62 79 25 2a 79 73 74 |)*xstep,-by%*yst| 00003440 65 70 0d 01 71 0a 20 20 c9 20 36 3a 0d 01 72 15 |ep..q. . 6:..r.| 00003450 20 20 20 e7 20 62 6c 6f 63 6b 25 21 34 3e 30 20 | . block%!4>0 | 00003460 8c 0d 01 73 37 20 20 20 20 64 65 66 61 75 6c 74 |...s7 default| 00003470 24 3d 22 3c 50 75 7a 50 69 63 24 44 69 72 3e 2e |$="<PuzPic$Dir>.| 00003480 22 2b 24 28 6c 69 73 25 2b 34 30 2b 32 34 2a 62 |"+$(lis%+40+24*b| 00003490 6c 6f 63 6b 25 21 34 29 0d 01 74 26 20 20 20 20 |lock%!4)..t& | 000034a0 f2 6c 6f 61 64 73 70 72 69 74 65 28 64 65 66 61 |.loadsprite(defa| 000034b0 75 6c 74 24 29 3a 66 6c 61 67 25 3d 2d 31 0d 01 |ult$):flag%=-1..| 000034c0 75 18 20 20 20 20 f2 73 70 6c 69 74 3a f2 76 6f |u. .split:.vo| 000034d0 69 64 6d 61 69 6e 0d 01 76 34 20 20 20 cc 20 e7 |idmain..v4 . .| 000034e0 20 62 6c 6f 63 6b 25 21 34 3d 30 20 8c 20 64 65 | block%!4=0 . de| 000034f0 66 61 75 6c 74 24 3d 22 22 3a f2 73 70 6c 69 74 |fault$="":.split| 00003500 3a f2 76 6f 69 64 6d 61 69 6e 0d 01 77 08 20 20 |:.voidmain..w. | 00003510 20 cd 0d 01 78 0a 20 20 c9 20 37 3a 0d 01 79 14 | ...x. . 7:..y.| 00003520 20 20 20 c8 8e 20 62 6c 6f 63 6b 25 21 34 20 ca | .. block%!4 .| 00003530 0d 01 7a 47 20 20 20 20 c9 20 30 3a f2 74 69 63 |..zG . 0:.tic| 00003540 6b 28 63 6f 6c 25 2c 63 62 25 2c 30 29 3a 63 62 |k(col%,cb%,0):cb| 00003550 25 3d 62 6c 6f 63 6b 25 21 38 3a f2 76 6f 69 64 |%=block%!8:.void| 00003560 6d 61 69 6e 3a f2 74 69 63 6b 28 63 6f 6c 25 2c |main:.tick(col%,| 00003570 63 62 25 2c 2d 31 29 0d 01 7b 7f 20 20 20 20 c9 |cb%,-1)..{. .| 00003580 20 31 3a f2 74 69 63 6b 28 63 6f 6c 25 2c 63 79 | 1:.tick(col%,cy| 00003590 25 2c 30 29 3a 63 79 25 3d 62 6c 6f 63 6b 25 21 |%,0):cy%=block%!| 000035a0 38 3a f2 74 69 63 6b 28 63 6f 6c 25 2c 63 79 25 |8:.tick(col%,cy%| 000035b0 2c 2d 31 29 3a c8 99 52 65 64 72 61 77 25 2c 6d |,-1):..Redraw%,m| 000035c0 61 69 6e 25 2c 62 78 25 2a 78 73 74 65 70 2c 2d |ain%,bx%*xstep,-| 000035d0 28 62 79 25 2b 31 29 2a 79 73 74 65 70 2c 28 62 |(by%+1)*ystep,(b| 000035e0 78 25 2b 31 29 2a 78 73 74 65 70 2c 2d 62 79 25 |x%+1)*xstep,-by%| 000035f0 2a 79 73 74 65 70 0d 01 7c 7f 20 20 20 20 c9 20 |*ystep..|. . | 00003600 32 3a f2 74 69 63 6b 28 63 6f 6c 25 2c 63 6e 25 |2:.tick(col%,cn%| 00003610 2c 30 29 3a 63 6e 25 3d 62 6c 6f 63 6b 25 21 38 |,0):cn%=block%!8| 00003620 3a f2 74 69 63 6b 28 63 6f 6c 25 2c 63 6e 25 2c |:.tick(col%,cn%,| 00003630 2d 31 29 3a c8 99 52 65 64 72 61 77 25 2c 6d 61 |-1):..Redraw%,ma| 00003640 69 6e 25 2c 62 78 25 2a 78 73 74 65 70 2c 2d 28 |in%,bx%*xstep,-(| 00003650 62 79 25 2b 31 29 2a 79 73 74 65 70 2c 28 62 78 |by%+1)*ystep,(bx| 00003660 25 2b 31 29 2a 78 73 74 65 70 2c 2d 62 79 25 2a |%+1)*xstep,-by%*| 00003670 79 73 74 65 70 0d 01 7d 08 20 20 20 cb 0d 01 7e |ystep..}. ...~| 00003680 10 20 20 20 f2 76 6f 69 64 68 65 6c 70 0d 01 7f |. .voidhelp...| 00003690 0a 20 20 c9 20 39 3a 0d 01 80 41 20 20 20 e7 20 |. . 9:...A . | 000036a0 74 66 6c 61 67 25 3d 31 20 8c 20 54 25 3d 6e 6f |tflag%=1 . T%=no| 000036b0 77 25 2d 74 69 6d 65 73 74 61 72 74 65 64 25 20 |w%-timestarted% | 000036c0 8b 20 54 25 3d 64 65 6c 61 79 25 2d 74 69 6d 65 |. T%=delay%-time| 000036d0 73 74 61 72 74 65 64 25 0d 01 81 41 20 20 20 46 |started%...A F| 000036e0 25 3d ae 22 3c 50 75 7a 24 44 69 72 3e 2e 44 65 |%=."<Puz$Dir>.De| 000036f0 66 61 75 6c 74 22 3a f1 23 46 25 2c 64 65 66 61 |fault":.#F%,defa| 00003700 75 6c 74 24 2c 62 25 2c 63 62 25 2c 63 79 25 2c |ult$,b%,cb%,cy%,| 00003710 63 6e 25 2c 68 65 6c 70 25 0d 01 82 34 20 20 20 |cn%,help%...4 | 00003720 e3 20 59 25 3d 30 20 b8 20 62 25 2d 31 3a e3 20 |. Y%=0 . b%-1:. | 00003730 58 25 3d 30 20 b8 20 62 25 2d 31 3a f1 23 46 25 |X%=0 . b%-1:.#F%| 00003740 2c 73 25 28 58 25 2c 59 25 29 3a ed 2c 0d 01 83 |,s%(X%,Y%):.,...| 00003750 28 20 20 20 f1 23 46 25 2c 70 75 7a 6f 70 65 6e |( .#F%,puzopen| 00003760 25 2c 76 69 65 77 6f 70 65 6e 25 2c 74 69 6d 65 |%,viewopen%,time| 00003770 72 25 2c 54 25 0d 01 84 2a 20 20 20 21 62 6c 6f |r%,T%...* !blo| 00003780 63 6b 25 3d 6d 61 69 6e 25 3a c8 99 20 47 65 74 |ck%=main%:.. Get| 00003790 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 0d |Window%,,block%.| 000037a0 01 85 45 20 20 20 f1 23 46 25 2c 62 6c 6f 63 6b |..E .#F%,block| 000037b0 25 21 34 2c 62 6c 6f 63 6b 25 21 38 2c 62 6c 6f |%!4,block%!8,blo| 000037c0 63 6b 25 21 31 32 2c 62 6c 6f 63 6b 25 21 31 36 |ck%!12,block%!16| 000037d0 2c 62 6c 6f 63 6b 25 21 32 30 2c 62 6c 6f 63 6b |,block%!20,block| 000037e0 25 21 32 34 0d 01 86 55 20 20 20 21 62 6c 6f 63 |%!24...U !bloc| 000037f0 6b 25 3d 76 69 65 77 25 3a c8 99 20 47 65 74 57 |k%=view%:.. GetW| 00003800 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 3a f1 |indow%,,block%:.| 00003810 23 46 25 2c 62 6c 6f 63 6b 25 21 34 2c 62 6c 6f |#F%,block%!4,blo| 00003820 63 6b 25 21 38 2c 62 6c 6f 63 6b 25 21 31 32 2c |ck%!8,block%!12,| 00003830 62 6c 6f 63 6b 25 21 31 36 0d 01 87 43 20 20 20 |block%!16...C | 00003840 21 62 6c 6f 63 6b 25 3d 68 65 6c 70 77 25 3a c8 |!block%=helpw%:.| 00003850 99 20 47 65 74 57 69 6e 64 6f 77 25 2c 2c 62 6c |. GetWindow%,,bl| 00003860 6f 63 6b 25 3a f1 23 46 25 2c 62 6c 6f 63 6b 25 |ock%:.#F%,block%| 00003870 21 34 2c 62 6c 6f 63 6b 25 21 31 36 0d 01 88 56 |!4,block%!16...V| 00003880 20 20 20 21 62 6c 6f 63 6b 25 3d 74 69 6d 65 77 | !block%=timew| 00003890 25 3a c8 99 20 47 65 74 57 69 6e 64 6f 77 25 2c |%:.. GetWindow%,| 000038a0 2c 62 6c 6f 63 6b 25 3a f1 23 46 25 2c 62 6c 6f |,block%:.#F%,blo| 000038b0 63 6b 25 21 34 2c 62 6c 6f 63 6b 25 21 38 2c 62 |ck%!4,block%!8,b| 000038c0 6c 6f 63 6b 25 21 31 32 2c 62 6c 6f 63 6b 25 21 |lock%!12,block%!| 000038d0 31 36 0d 01 89 43 20 20 20 e3 20 41 25 3d 33 20 |16...C . A%=3 | 000038e0 b8 20 31 30 3a f1 23 46 25 2c 24 a4 74 61 62 6c |. 10:.#F%,$.tabl| 000038f0 65 28 41 25 2c 31 29 2c 24 a4 74 61 62 6c 65 28 |e(A%,1),$.table(| 00003900 41 25 2c 32 29 2c 24 a4 74 61 62 6c 65 28 41 25 |A%,2),$.table(A%| 00003910 2c 33 29 3a ed 0d 01 8a 0b 20 20 20 d9 23 46 25 |,3):..... .#F%| 00003920 0d 01 8b 12 20 20 c9 20 31 30 3a 71 75 69 74 25 |.... . 10:quit%| 00003930 3d b9 0d 01 8c 06 20 cb 0d 01 8d 44 20 c8 99 20 |=..... ....D .. | 00003940 50 6f 69 6e 74 65 72 25 2c 2c 62 6c 6f 63 6b 25 |Pointer%,,block%| 00003950 3a e7 20 62 6c 6f 63 6b 25 21 38 3d 31 20 8c 20 |:. block%!8=1 . | 00003960 f2 6d 65 6e 75 28 30 2c 30 29 3a e7 20 66 6c 61 |.menu(0,0):. fla| 00003970 67 25 20 f2 6d 61 6b 65 6c 69 73 74 0d 01 8e 05 |g% .makelist....| 00003980 e1 0d 01 8f 04 0d 01 90 0e dd f2 76 6f 69 64 6d |...........voidm| 00003990 61 69 6e 0d 01 91 85 20 21 62 6c 6f 63 6b 25 3d |ain.... !block%=| 000039a0 6d 61 69 6e 25 3a c8 99 47 65 74 57 69 6e 64 6f |main%:..GetWindo| 000039b0 77 25 2c 2c 62 6c 6f 63 6b 25 3a c8 99 52 65 64 |w%,,block%:..Red| 000039c0 72 61 77 25 2c 6d 61 69 6e 25 2c 62 6c 6f 63 6b |raw%,main%,block| 000039d0 25 21 32 30 2c 62 6c 6f 63 6b 25 21 38 2d 62 6c |%!20,block%!8-bl| 000039e0 6f 63 6b 25 21 31 36 2b 62 6c 6f 63 6b 25 21 32 |ock%!16+block%!2| 000039f0 34 2c 62 6c 6f 63 6b 25 21 31 32 2d 62 6c 6f 63 |4,block%!12-bloc| 00003a00 6b 25 21 34 2b 62 6c 6f 63 6b 25 21 32 30 2c 62 |k%!4+block%!20,b| 00003a10 6c 6f 63 6b 25 21 32 34 0d 01 92 85 20 21 62 6c |lock%!24.... !bl| 00003a20 6f 63 6b 25 3d 76 69 65 77 25 3a c8 99 47 65 74 |ock%=view%:..Get| 00003a30 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 3a |Window%,,block%:| 00003a40 c8 99 52 65 64 72 61 77 25 2c 76 69 65 77 25 2c |..Redraw%,view%,| 00003a50 62 6c 6f 63 6b 25 21 32 30 2c 62 6c 6f 63 6b 25 |block%!20,block%| 00003a60 21 38 2d 62 6c 6f 63 6b 25 21 31 36 2b 62 6c 6f |!8-block%!16+blo| 00003a70 63 6b 25 21 32 34 2c 62 6c 6f 63 6b 25 21 31 32 |ck%!24,block%!12| 00003a80 2d 62 6c 6f 63 6b 25 21 34 2b 62 6c 6f 63 6b 25 |-block%!4+block%| 00003a90 21 32 30 2c 62 6c 6f 63 6b 25 21 32 34 0d 01 93 |!20,block%!24...| 00003aa0 0e 20 f2 76 6f 69 64 68 65 6c 70 0d 01 94 05 e1 |. .voidhelp.....| 00003ab0 0d 01 95 04 0d 01 96 91 dd f2 76 6f 69 64 68 65 |..........voidhe| 00003ac0 6c 70 3a 21 62 6c 6f 63 6b 25 3d 68 65 6c 70 77 |lp:!block%=helpw| 00003ad0 25 3a c8 99 47 65 74 57 69 6e 64 6f 77 25 2c 2c |%:..GetWindow%,,| 00003ae0 62 6c 6f 63 6b 25 3a c8 99 52 65 64 72 61 77 25 |block%:..Redraw%| 00003af0 2c 68 65 6c 70 77 25 2c 62 6c 6f 63 6b 25 21 32 |,helpw%,block%!2| 00003b00 30 2c 62 6c 6f 63 6b 25 21 38 2d 62 6c 6f 63 6b |0,block%!8-block| 00003b10 25 21 31 36 2b 62 6c 6f 63 6b 25 21 32 34 2c 62 |%!16+block%!24,b| 00003b20 6c 6f 63 6b 25 21 31 32 2d 62 6c 6f 63 6b 25 21 |lock%!12-block%!| 00003b30 34 2b 62 6c 6f 63 6b 25 21 32 30 2c 62 6c 6f 63 |4+block%!20,bloc| 00003b40 6b 25 21 32 34 0d 01 97 05 e1 0d 01 98 04 0d 01 |k%!24...........| 00003b50 99 32 dd f2 6d 65 6e 75 28 6d 78 25 2c 6d 79 25 |.2..menu(mx%,my%| 00003b60 29 3a c8 99 20 43 72 65 61 74 65 4d 65 6e 75 25 |):.. CreateMenu%| 00003b70 2c 2c 62 61 72 25 2c 6d 78 25 2c 6d 79 25 3a e1 |,,bar%,mx%,my%:.| 00003b80 0d 01 9a 04 0d 01 9b 13 dd f2 63 72 65 61 74 65 |..........create| 00003b90 62 61 72 6d 65 6e 75 0d 01 9c 16 20 f2 63 72 65 |barmenu.... .cre| 00003ba0 61 74 65 63 6f 6c 6f 75 72 6d 65 6e 75 0d 01 9d |atecolourmenu...| 00003bb0 13 20 f2 63 72 65 61 74 65 63 6f 6c 6d 65 6e 75 |. .createcolmenu| 00003bc0 0d 01 9e 14 20 f2 63 72 65 61 74 65 68 65 6c 70 |.... .createhelp| 00003bd0 6d 65 6e 75 0d 01 9f 22 20 de 20 62 61 72 25 20 |menu..." . bar% | 00003be0 32 34 2b 32 38 2a 31 31 2c 6c 69 73 25 20 32 34 |24+28*11,lis% 24| 00003bf0 2b 32 38 2a 37 38 0d 01 a0 5b 20 24 6c 69 73 25 |+28*78...[ $lis%| 00003c00 3d a4 6d 65 73 73 61 67 65 28 22 4d 65 6e 37 22 |=.message("Men7"| 00003c10 29 3a 6c 69 73 25 21 31 32 3d 26 30 30 30 37 30 |):lis%!12=&00070| 00003c20 32 30 37 3a 6c 69 73 25 21 31 36 3d 31 32 2a 31 |207:lis%!16=12*1| 00003c30 36 3a 6c 69 73 25 21 32 30 3d 34 34 3a 6c 69 73 |6:lis%!20=44:lis| 00003c40 25 21 32 34 3d 30 3a 41 25 3d 6c 69 73 25 2b 32 |%!24=0:A%=lis%+2| 00003c50 38 0d 01 a1 43 20 21 41 25 3d 32 3a 41 25 21 34 |8...C !A%=2:A%!4| 00003c60 3d 30 3a 41 25 21 38 3d 26 37 30 30 30 30 32 31 |=0:A%!8=&7000021| 00003c70 3a 4c 25 3d a4 6d 61 6b 65 74 65 78 74 28 41 25 |:L%=.maketext(A%| 00003c80 2c a4 6d 65 73 73 61 67 65 28 22 4d 65 6e 37 2e |,.message("Men7.| 00003c90 31 22 29 29 0d 01 a2 1f 20 e7 20 4c 25 3e 31 31 |1")).... . L%>11| 00003ca0 20 8c 20 6c 69 73 25 21 31 36 3d 4c 25 2a 31 36 | . lis%!16=L%*16| 00003cb0 2b 31 36 0d 01 a3 4c 20 24 62 61 72 25 3d a4 6d |+16...L $bar%=.m| 00003cc0 65 73 73 61 67 65 28 22 4d 65 6e 30 22 29 3a 62 |essage("Men0"):b| 00003cd0 61 72 25 21 31 32 3d 26 30 30 30 37 30 32 30 37 |ar%!12=&00070207| 00003ce0 3a 62 61 72 25 21 32 30 3d 34 34 3a 62 61 72 25 |:bar%!20=44:bar%| 00003cf0 21 32 34 3d 30 3a 41 25 3d 62 61 72 25 2b 34 0d |!24=0:A%=bar%+4.| 00003d00 01 a4 4c 20 41 25 2b 3d 32 34 3a 21 41 25 3d 30 |..L A%+=24:!A%=0| 00003d10 3a 41 25 21 34 3d 69 6e 66 6f 25 3a 41 25 21 38 |:A%!4=info%:A%!8| 00003d20 3d 26 37 30 30 30 30 32 31 3a 41 25 2b 3d 32 34 |=&7000021:A%+=24| 00003d30 3a 21 41 25 3d 32 3a 41 25 21 34 3d 30 3a 41 25 |:!A%=2:A%!4=0:A%| 00003d40 21 38 3d 26 37 30 30 30 30 32 31 0d 01 a5 48 20 |!8=&7000021...H | 00003d50 41 25 2b 3d 32 34 3a 21 41 25 3d 30 3a 41 25 21 |A%+=24:!A%=0:A%!| 00003d60 34 3d 30 3a 41 25 21 38 3d 26 37 30 30 30 30 32 |4=0:A%!8=&700002| 00003d70 31 3a 41 25 2b 3d 32 34 3a 21 41 25 3d 30 3a 41 |1:A%+=24:!A%=0:A| 00003d80 25 21 34 3d 30 3a 41 25 21 38 3d 26 37 30 30 30 |%!4=0:A%!8=&7000| 00003d90 30 32 31 0d 01 a6 4b 20 41 25 2b 3d 32 34 3a 21 |021...K A%+=24:!| 00003da0 41 25 3d 30 3a 41 25 21 34 3d 30 3a 41 25 21 38 |A%=0:A%!4=0:A%!8| 00003db0 3d 26 37 30 30 30 30 32 31 3a 41 25 2b 3d 32 34 |=&7000021:A%+=24| 00003dc0 3a 21 41 25 3d 32 3a 41 25 21 34 3d 68 65 6c 25 |:!A%=2:A%!4=hel%| 00003dd0 3a 41 25 21 38 3d 26 37 30 30 30 30 32 31 0d 01 |:A%!8=&7000021..| 00003de0 a7 50 20 41 25 2b 3d 32 34 3a 21 41 25 3d 38 3a |.P A%+=24:!A%=8:| 00003df0 41 25 21 34 3d 69 6e 66 6f 25 3a 41 25 21 38 3d |A%!4=info%:A%!8=| 00003e00 26 37 30 30 30 30 32 31 3a 41 25 2b 3d 32 34 3a |&7000021:A%+=24:| 00003e10 21 41 25 3d 30 3a 41 25 21 34 3d 63 6f 6c 6d 25 |!A%=0:A%!4=colm%| 00003e20 3a 41 25 21 38 3d 26 37 30 30 30 30 32 31 0d 01 |:A%!8=&7000021..| 00003e30 a8 4b 20 41 25 2b 3d 32 34 3a 21 41 25 3d 38 3a |.K A%+=24:!A%=8:| 00003e40 41 25 21 34 3d 77 69 64 25 3a 41 25 21 38 3d 26 |A%!4=wid%:A%!8=&| 00003e50 37 30 30 30 30 32 31 3a 41 25 2b 3d 32 34 3a 21 |7000021:A%+=24:!| 00003e60 41 25 3d 30 3a 41 25 21 34 3d 30 3a 41 25 21 38 |A%=0:A%!4=0:A%!8| 00003e70 3d 26 37 30 30 30 30 32 31 0d 01 a9 28 20 41 25 |=&7000021...( A%| 00003e80 2b 3d 32 34 3a 21 41 25 3d 31 32 38 3a 41 25 21 |+=24:!A%=128:A%!| 00003e90 34 3d 30 3a 41 25 21 38 3d 26 37 30 30 30 30 32 |4=0:A%!8=&700002| 00003ea0 31 0d 01 aa 2b 20 43 25 3d a9 24 62 61 72 25 3a |1...+ C%=.$bar%:| 00003eb0 41 25 3d 62 61 72 25 2b 34 3a e3 20 42 25 3d 31 |A%=bar%+4:. B%=1| 00003ec0 20 b8 20 31 31 3a 41 25 2b 3d 32 34 0d 01 ab 39 | . 11:A%+=24...9| 00003ed0 20 4c 25 3d a4 6d 61 6b 65 74 65 78 74 28 41 25 | L%=.maketext(A%| 00003ee0 2c a4 6d 65 73 73 61 67 65 28 22 4d 65 6e 22 2b |,.message("Men"+| 00003ef0 c3 42 25 29 29 3a e7 20 4c 25 3e 43 25 20 8c 20 |.B%)):. L%>C% . | 00003f00 43 25 3d 4c 25 0d 01 ac 17 20 ed 3a 62 61 72 25 |C%=L%.... .:bar%| 00003f10 21 31 36 3d 31 36 2a 43 25 2b 31 36 0d 01 ad 05 |!16=16*C%+16....| 00003f20 e1 0d 01 ae 04 0d 01 af 1c dd a4 6d 61 6b 65 74 |...........maket| 00003f30 65 78 74 28 70 74 72 25 2c 41 24 29 3a ea 20 41 |ext(ptr%,A$):. A| 00003f40 25 0d 01 b0 0f 20 e7 20 a9 41 24 3e 31 31 20 8c |%.... . .A$>11 .| 00003f50 0d 01 b1 49 20 20 de 20 41 25 20 a9 28 41 24 29 |...I . A% .(A$)| 00003f60 3a 70 74 72 25 21 31 32 3d 41 25 3a 70 74 72 25 |:ptr%!12=A%:ptr%| 00003f70 21 31 36 3d 30 3a 70 74 72 25 21 32 30 3d a9 28 |!16=0:ptr%!20=.(| 00003f80 41 24 29 3a 24 41 25 3d 41 24 3a 70 74 72 25 21 |A$):$A%=A$:ptr%!| 00003f90 38 2b 3d 28 31 3c 3c 38 29 0d 01 b2 14 20 cc 20 |8+=(1<<8).... . | 00003fa0 24 28 70 74 72 25 2b 31 32 29 3d 41 24 0d 01 b3 |$(ptr%+12)=A$...| 00003fb0 06 20 cd 0d 01 b4 0a 3d a9 28 41 24 29 0d 01 b5 |. .....=.(A$)...| 00003fc0 04 0d 01 b6 16 dd f2 63 72 65 61 74 65 63 6f 6c |.......createcol| 00003fd0 6f 75 72 6d 65 6e 75 0d 01 b7 14 20 de 20 63 6f |ourmenu.... . co| 00003fe0 6c 25 20 32 34 2b 32 38 2a 31 35 0d 01 b8 59 20 |l% 24+28*15...Y | 00003ff0 24 63 6f 6c 25 3d a4 6d 65 73 73 61 67 65 28 22 |$col%=.message("| 00004000 4d 65 6e 37 22 29 3a 63 6f 6c 25 21 31 32 3d 26 |Men7"):col%!12=&| 00004010 30 30 30 37 30 32 30 37 3a 63 6f 6c 25 21 31 36 |00070207:col%!16| 00004020 3d 35 2a 31 36 3a 63 6f 6c 25 21 32 30 3d 34 34 |=5*16:col%!20=44| 00004030 3a 63 6f 6c 25 21 32 34 3d 30 3a 41 25 3d 63 6f |:col%!24=0:A%=co| 00004040 6c 25 2b 34 0d 01 b9 24 20 e3 20 42 25 3d 30 20 |l%+4...$ . B%=0 | 00004050 b8 20 31 35 3a 41 25 2b 3d 32 34 3a 21 41 25 3d |. 15:A%+=24:!A%=| 00004060 30 3a 41 25 21 34 3d 30 0d 01 ba 45 20 41 25 21 |0:A%!4=0...E A%!| 00004070 38 3d 26 32 39 2b 28 42 25 3c 3c 32 38 29 3a e7 |8=&29+(B%<<28):.| 00004080 20 42 25 3c 34 20 84 20 42 25 3d 39 20 84 20 42 | B%<4 . B%=9 . B| 00004090 25 3d 31 32 20 84 20 42 25 3d 31 34 20 8c 20 41 |%=12 . B%=14 . A| 000040a0 25 21 38 2b 3d 28 37 3c 3c 32 34 29 20 0d 01 bb |%!8+=(7<<24) ...| 000040b0 1c 20 24 28 41 25 2b 31 32 29 3d c3 42 25 3a ed |. $(A%+12)=.B%:.| 000040c0 3a 21 41 25 2b 3d 31 32 38 0d 01 bc 05 e1 0d 01 |:!A%+=128.......| 000040d0 bd 04 0d 01 be 13 dd f2 63 72 65 61 74 65 63 6f |........createco| 000040e0 6c 6d 65 6e 75 0d 01 bf 1f 20 de 20 63 6f 6c 6d |lmenu.... . colm| 000040f0 25 20 32 34 2b 32 38 2a 31 35 20 20 20 20 20 20 |% 24+28*15 | 00004100 20 20 20 20 0d 01 c0 51 20 24 63 6f 6c 6d 25 3d | ...Q $colm%=| 00004110 a4 6d 65 73 73 61 67 65 28 22 4d 65 6e 38 22 29 |.message("Men8")| 00004120 3a 63 6f 6c 6d 25 21 31 32 3d 26 30 30 30 37 30 |:colm%!12=&00070| 00004130 32 30 37 3a 63 6f 6c 6d 25 21 32 30 3d 34 34 3a |207:colm%!20=44:| 00004140 63 6f 6c 6d 25 21 32 34 3d 30 3a 41 25 3d 63 6f |colm%!24=0:A%=co| 00004150 6c 6d 25 2b 34 0d 01 c1 4e 20 41 25 2b 3d 32 34 |lm%+4...N A%+=24| 00004160 3a 21 41 25 3d 38 3a 41 25 21 34 3d 63 6f 6c 25 |:!A%=8:A%!4=col%| 00004170 3a 41 25 21 38 3d 26 37 30 30 30 30 32 31 3a 41 |:A%!8=&7000021:A| 00004180 25 2b 3d 32 34 3a 21 41 25 3d 38 3a 41 25 21 34 |%+=24:!A%=8:A%!4| 00004190 3d 63 6f 6c 25 3a 41 25 21 38 3d 26 37 30 30 30 |=col%:A%!8=&7000| 000041a0 30 32 31 0d 01 c2 38 20 41 25 2b 3d 32 34 3a 21 |021...8 A%+=24:!| 000041b0 41 25 3d 38 2b 31 32 38 3a 41 25 21 34 3d 63 6f |A%=8+128:A%!4=co| 000041c0 6c 25 3a 41 25 21 38 3d 26 37 30 30 30 30 32 31 |l%:A%!8=&7000021| 000041d0 3a 43 25 3d a9 24 63 6f 6c 6d 25 0d 01 c3 21 20 |:C%=.$colm%...! | 000041e0 41 25 3d 63 6f 6c 6d 25 2b 34 3a e3 20 42 25 3d |A%=colm%+4:. B%=| 000041f0 31 20 b8 20 33 3a 41 25 2b 3d 32 34 0d 01 c4 3d |1 . 3:A%+=24...=| 00004200 20 4c 25 3d a4 6d 61 6b 65 74 65 78 74 28 41 25 | L%=.maketext(A%| 00004210 2c a4 6d 65 73 73 61 67 65 28 22 4d 65 6e 38 2e |,.message("Men8.| 00004220 22 2b c3 42 25 29 29 3a e7 20 4c 25 3e 43 25 20 |"+.B%)):. L%>C% | 00004230 8c 20 43 25 3d 4c 25 2b 31 0d 01 c5 15 20 ed 3a |. C%=L%+1.... .:| 00004240 63 6f 6c 6d 25 21 31 36 3d 31 36 2a 43 25 0d 01 |colm%!16=16*C%..| 00004250 c6 05 e1 0d 01 c7 04 0d 01 c8 14 dd f2 63 72 65 |.............cre| 00004260 61 74 65 68 65 6c 70 6d 65 6e 75 0d 01 c9 13 20 |atehelpmenu.... | 00004270 de 20 68 65 6c 25 20 32 34 2b 32 38 2a 33 0d 01 |. hel% 24+28*3..| 00004280 ca 56 20 24 68 65 6c 25 3d a4 6d 65 73 73 61 67 |.V $hel%=.messag| 00004290 65 28 22 4d 65 6e 36 22 29 3a 68 65 6c 25 21 31 |e("Men6"):hel%!1| 000042a0 32 3d 26 30 30 30 37 30 32 30 37 3a 68 65 6c 25 |2=&00070207:hel%| 000042b0 21 32 30 3d 34 34 3a 68 65 6c 25 21 32 34 3d 30 |!20=44:hel%!24=0| 000042c0 3a 41 25 3d 68 65 6c 25 2b 34 3a 43 25 3d a9 24 |:A%=hel%+4:C%=.$| 000042d0 68 65 6c 25 0d 01 cb 32 20 e3 20 42 25 3d 31 20 |hel%...2 . B%=1 | 000042e0 b8 20 32 3a 41 25 2b 3d 32 34 3a 21 41 25 3d 30 |. 2:A%+=24:!A%=0| 000042f0 3a 41 25 21 34 3d 30 3a 41 25 21 38 3d 26 37 30 |:A%!4=0:A%!8=&70| 00004300 30 30 30 32 31 3a 0d 01 cc 3b 20 4c 25 3d a4 6d |00021:...; L%=.m| 00004310 61 6b 65 74 65 78 74 28 41 25 2c a4 6d 65 73 73 |aketext(A%,.mess| 00004320 61 67 65 28 22 4d 65 6e 36 2e 22 2b c3 42 25 29 |age("Men6."+.B%)| 00004330 29 3a e7 20 4c 25 3e 43 25 20 8c 20 43 25 3d 4c |):. L%>C% . C%=L| 00004340 25 0d 01 cd 20 20 ed 3a 21 41 25 2b 3d 31 32 38 |%... .:!A%+=128| 00004350 3a 68 65 6c 25 21 31 36 3d 43 25 2a 31 36 2b 31 |:hel%!16=C%*16+1| 00004360 36 0d 01 ce 05 e1 0d 01 cf 04 0d 01 d0 28 f4 20 |6............(. | 00004370 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 |*************** | 00004380 20 49 63 6f 6e 20 4d 61 6e 69 70 75 6c 61 74 69 | Icon Manipulati| 00004390 6f 6e 0d 01 d1 04 0d 01 d2 46 dd f2 69 63 6f 6e |on.......F..icon| 000043a0 73 68 61 64 65 28 77 69 6e 64 6f 77 25 2c 69 63 |shade(window%,ic| 000043b0 6f 6e 25 2c 66 6c 61 67 25 29 3a ea 41 25 3a 41 |on%,flag%):.A%:A| 000043c0 25 3d 31 3a e7 66 6c 61 67 25 3d 2d 31 20 8c 20 |%=1:.flag%=-1 . | 000043d0 66 6c 61 67 25 3d 31 3a 41 25 3d 30 0d 01 d3 43 |flag%=1:A%=0...C| 000043e0 20 21 72 65 70 25 3d 77 69 6e 64 6f 77 25 3a 72 | !rep%=window%:r| 000043f0 65 70 25 21 34 3d 69 63 6f 6e 25 3a 72 65 70 25 |ep%!4=icon%:rep%| 00004400 21 38 3d 66 6c 61 67 25 2a 28 31 3c 3c 32 32 29 |!8=flag%*(1<<22)| 00004410 3a 72 65 70 25 21 31 32 3d 41 25 3c 3c 32 32 0d |:rep%!12=A%<<22.| 00004420 01 d4 16 20 c8 99 20 53 65 74 49 63 6f 6e 25 2c |... .. SetIcon%,| 00004430 2c 72 65 70 25 0d 01 d5 07 e1 20 20 0d 01 d6 04 |,rep%..... ....| 00004440 0d 01 d7 44 dd f2 69 63 6f 6e 73 65 6c 65 63 74 |...D..iconselect| 00004450 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 2c 66 |(window%,icon%,f| 00004460 6c 61 67 25 29 3a ea 41 25 3a 21 72 65 70 25 3d |lag%):.A%:!rep%=| 00004470 77 69 6e 64 6f 77 25 3a 72 65 70 25 21 34 3d 69 |window%:rep%!4=i| 00004480 63 6f 6e 25 0d 01 d8 23 20 41 25 3d 31 3a e7 20 |con%...# A%=1:. | 00004490 66 6c 61 67 25 3d 2d 31 20 8c 20 66 6c 61 67 25 |flag%=-1 . flag%| 000044a0 3d 31 3a 41 25 3d 30 0d 01 d9 36 20 72 65 70 25 |=1:A%=0...6 rep%| 000044b0 21 38 3d 66 6c 61 67 25 3c 3c 32 31 3a 72 65 70 |!8=flag%<<21:rep| 000044c0 25 21 31 32 3d 41 25 3c 3c 32 31 3a c8 99 20 53 |%!12=A%<<21:.. S| 000044d0 65 74 49 63 6f 6e 25 2c 2c 72 65 70 25 0d 01 da |etIcon%,,rep%...| 000044e0 08 e1 20 20 20 0d 01 db 04 0d 01 dc 46 dd a4 74 |.. .......F..t| 000044f0 65 78 74 28 77 69 6e 64 6f 77 25 2c 69 63 6f 6e |ext(window%,icon| 00004500 25 29 3a 21 72 65 70 25 3d 77 69 6e 64 6f 77 25 |%):!rep%=window%| 00004510 3a 72 65 70 25 21 34 3d 69 63 6f 6e 25 3a c8 99 |:rep%!4=icon%:..| 00004520 20 47 65 74 49 63 6f 6e 25 2c 2c 72 65 70 25 0d | GetIcon%,,rep%.| 00004530 01 dd 0e 3d 72 65 70 25 21 32 38 20 20 0d 01 de |...=rep%!28 ...| 00004540 04 0d 01 df 12 dd a4 74 61 62 6c 65 28 6e 25 2c |.......table(n%,| 00004550 78 25 29 0d 01 e0 35 20 72 65 70 25 21 34 3d 28 |x%)...5 rep%!4=(| 00004560 6e 25 2d 32 29 2a 34 2b 78 25 3a 21 72 65 70 25 |n%-2)*4+x%:!rep%| 00004570 3d 68 69 67 68 77 25 3a c8 99 47 65 74 49 63 6f |=highw%:..GetIco| 00004580 6e 25 2c 2c 72 65 70 25 0d 01 e1 0c 3d 72 65 70 |n%,,rep%....=rep| 00004590 25 21 32 38 0d 01 e2 04 0d 01 e3 23 dd f2 69 63 |%!28.......#..ic| 000045a0 6f 6e 74 65 78 74 28 77 69 6e 64 6f 77 25 2c 69 |ontext(window%,i| 000045b0 63 6f 6e 25 2c 74 65 78 74 24 29 0d 01 e4 42 20 |con%,text$)...B | 000045c0 21 72 65 70 25 3d 77 69 6e 64 6f 77 25 3a 72 65 |!rep%=window%:re| 000045d0 70 25 21 34 3d 69 63 6f 6e 25 3a c8 99 20 47 65 |p%!4=icon%:.. Ge| 000045e0 74 49 63 6f 6e 25 2c 2c 72 65 70 25 3a 24 28 72 |tIcon%,,rep%:$(r| 000045f0 65 70 25 21 32 38 29 3d 74 65 78 74 24 0d 01 e5 |ep%!28)=text$...| 00004600 29 20 72 65 70 25 21 38 3d 30 3a 72 65 70 25 21 |) rep%!8=0:rep%!| 00004610 31 32 3d 30 3a c8 99 20 53 65 74 49 63 6f 6e 25 |12=0:.. SetIcon%| 00004620 2c 2c 72 65 70 25 0d 01 e6 05 e1 0d 01 e7 04 0d |,,rep%..........| 00004630 01 e8 2a dd f2 74 69 63 6b 28 6d 65 6e 75 25 2c |..*..tick(menu%,| 00004640 69 74 65 6d 25 2c 66 6c 61 67 25 29 3a ea 41 25 |item%,flag%):.A%| 00004650 20 20 20 20 20 20 20 20 20 0d 01 e9 36 20 41 25 | ...6 A%| 00004660 3d 6d 65 6e 75 25 2b 32 38 2b 32 34 2a 69 74 65 |=menu%+28+24*ite| 00004670 6d 25 3a 21 41 25 3d 21 41 25 80 26 46 45 3a e7 |m%:!A%=!A%.&FE:.| 00004680 20 66 6c 61 67 25 20 8c 20 21 41 25 2b 3d 31 0d | flag% . !A%+=1.| 00004690 01 ea 05 e1 0d 01 eb 04 0d 01 ec 26 dd f2 6d 65 |...........&..me| 000046a0 6e 75 73 68 61 64 65 28 6d 65 6e 75 25 2c 69 74 |nushade(menu%,it| 000046b0 65 6d 25 2c 66 6c 61 67 25 29 3a ea 41 25 0d 01 |em%,flag%):.A%..| 000046c0 ed 42 20 41 25 3d 6d 65 6e 75 25 2b 33 36 2b 32 |.B A%=menu%+36+2| 000046d0 34 2a 69 74 65 6d 25 3a 21 41 25 3d 21 41 25 80 |4*item%:!A%=!A%.| 000046e0 26 46 46 42 46 46 46 46 46 3a e7 20 66 6c 61 67 |&FFBFFFFF:. flag| 000046f0 25 20 8c 20 21 41 25 2b 3d 28 31 3c 3c 32 32 29 |% . !A%+=(1<<22)| 00004700 0d 01 ee 05 e1 0d 01 ef 04 0d 01 f0 1f f4 20 2a |.............. *| 00004710 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 20 |************** | 00004720 4d 65 73 73 61 67 65 73 0d 01 f1 04 0d 01 f2 1b |Messages........| 00004730 dd f2 65 72 72 6f 72 3a 21 62 6c 6f 63 6b 25 3d |..error:!block%=| 00004740 32 35 35 3a d9 23 30 0d 01 f3 29 20 24 28 62 6c |255:.#0...) $(bl| 00004750 6f 63 6b 25 2b 34 29 3d f6 24 2b 22 2e 22 2b a4 |ock%+4)=.$+"."+.| 00004760 6d 65 73 73 61 67 65 28 22 43 6c 69 63 6b 22 29 |message("Click")| 00004770 0d 01 f4 26 20 c8 99 20 52 65 70 6f 72 74 25 2c |...& .. Report%,| 00004780 62 6c 6f 63 6b 25 2c 33 2c 61 70 70 24 20 b8 20 |block%,3,app$ . | 00004790 2c 66 6c 61 67 25 0d 01 f5 16 20 e7 20 66 6c 61 |,flag%.... . fla| 000047a0 67 25 3d 32 20 8c 20 f2 71 75 69 74 0d 01 f6 26 |g%=2 . .quit...&| 000047b0 20 64 65 66 61 75 6c 74 24 3d 22 22 3a 62 25 3d | default$="":b%=| 000047c0 33 3a f2 73 70 6c 69 74 3a f2 76 6f 69 64 6d 61 |3:.split:.voidma| 000047d0 69 6e 0d 01 f7 05 e1 0d 01 f8 04 0d 01 f9 1f dd |in..............| 000047e0 f2 72 65 70 6f 72 74 28 72 65 70 24 2c 66 6c 61 |.report(rep$,fla| 000047f0 67 25 29 3a ea 41 24 2c 46 25 0d 01 fa 20 20 21 |g%):.A$,F%... !| 00004800 72 65 70 25 3d 32 35 35 3a 24 28 72 65 70 25 2b |rep%=255:$(rep%+| 00004810 34 29 3d 72 65 70 24 2b bd 30 0d 01 fb 3c 20 41 |4)=rep$+.0...< A| 00004820 24 3d a4 6d 65 73 73 61 67 65 28 22 4d 65 73 73 |$=.message("Mess| 00004830 22 29 2b 22 20 22 2b a4 6d 65 73 73 61 67 65 28 |")+" "+.message(| 00004840 22 66 72 6f 6d 22 29 2b 22 20 22 2b 61 70 70 24 |"from")+" "+app$| 00004850 3a 46 25 3d 31 37 0d 01 fc 1c 20 e7 20 66 6c 61 |:F%=17.... . fla| 00004860 67 25 20 8c 20 46 25 2d 3d 38 3a 41 24 3d 61 70 |g% . F%-=8:A$=ap| 00004870 70 24 0d 01 fd 1a 20 c8 99 20 52 65 70 6f 72 74 |p$.... .. Report| 00004880 25 2c 72 65 70 25 2c 46 25 2c 41 24 0d 01 fe 05 |%,rep%,F%,A$....| 00004890 e1 0d 01 ff 04 0d 02 00 76 dd f2 6c 6f 61 64 6d |........v..loadm| 000048a0 65 73 73 61 67 65 73 3a 46 25 3d 8e 22 3c 50 75 |essages:F%=."<Pu| 000048b0 7a 24 44 69 72 3e 2e 4d 65 73 73 61 67 65 73 22 |z$Dir>.Messages"| 000048c0 3a 41 25 3d 30 3a f5 3a 41 24 3d be 23 46 25 3a |:A%=0:.:A$=.#F%:| 000048d0 41 25 2b 3d 31 3a fd 20 c5 23 46 25 3a de 20 4d |A%+=1:. .#F%:. M| 000048e0 24 28 41 25 29 3a cf 23 46 25 3d 30 3a e3 20 42 |$(A%):.#F%=0:. B| 000048f0 25 3d 30 20 b8 20 41 25 3a 4d 24 28 42 25 29 3d |%=0 . A%:M$(B%)=| 00004900 be 23 46 25 3a ed 3a d9 23 46 25 0d 02 01 05 e1 |.#F%:.:.#F%.....| 00004910 0d 02 02 04 0d 02 03 6d dd a4 6d 65 73 73 61 67 |.......m..messag| 00004920 65 28 53 24 29 3a ea 41 25 2c 41 24 2c 46 25 3a |e(S$):.A%,A$,F%:| 00004930 41 25 3d 2d 31 3a 46 25 3d 30 3a c8 95 20 41 25 |A%=-1:F%=0:.. A%| 00004940 3c de 28 4d 24 28 29 2c 31 29 20 80 20 46 25 3d |<.(M$(),1) . F%=| 00004950 30 3a 41 25 2b 3d 31 3a 46 25 3d a7 4d 24 28 41 |0:A%+=1:F%=.M$(A| 00004960 25 29 2c 53 24 29 3a ce 3a 3d c1 4d 24 28 41 25 |%),S$):.:=.M$(A%| 00004970 29 2c a7 4d 24 28 41 25 29 2c 22 3a 22 29 2b 31 |),.M$(A%),":")+1| 00004980 29 0d 02 04 04 0d 02 05 23 f4 20 2a 2a 2a 2a 2a |).......#. *****| 00004990 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 20 49 6e 69 74 |********** Init| 000049a0 69 61 6c 69 73 69 6e 67 0d 02 06 04 0d 02 07 14 |ialising........| 000049b0 dd f2 69 6e 69 74 3a c8 99 48 6f 75 72 4f 6e 25 |..init:..HourOn%| 000049c0 0d 02 08 38 20 64 72 61 67 67 69 6e 67 25 3d 30 |...8 dragging%=0| 000049d0 3a 64 78 25 3d 30 3a 64 79 25 3d 30 3a 77 61 74 |:dx%=0:dy%=0:wat| 000049e0 63 68 25 3d a3 3a 77 61 74 63 68 6e 6f 25 3d 30 |ch%=.:watchno%=0| 000049f0 3a 71 75 69 74 25 3d b9 0d 02 09 25 20 f2 62 61 |:quit%=....% .ba| 00004a00 72 69 63 6f 6e 28 22 21 70 75 7a 7a 6c 65 22 29 |ricon("!puzzle")| 00004a10 3a f2 69 63 6f 6e 73 70 72 69 74 65 73 0d 02 0a |:.iconsprites...| 00004a20 4a 20 46 25 3d 8e 22 3c 50 75 7a 24 44 69 72 3e |J F%=."<Puz$Dir>| 00004a30 2e 44 65 66 61 75 6c 74 22 3a e8 20 23 46 25 2c |.Default":. #F%,| 00004a40 64 65 66 61 75 6c 74 24 2c 62 25 2c 63 62 25 2c |default$,b%,cb%,| 00004a50 63 79 25 2c 63 6e 25 2c 68 65 6c 70 25 3a de 20 |cy%,cn%,help%:. | 00004a60 73 25 28 39 2c 39 29 0d 02 0b 4d 20 e3 20 59 25 |s%(9,9)...M . Y%| 00004a70 3d 30 20 b8 20 62 25 2d 31 3a e3 20 58 25 3d 30 |=0 . b%-1:. X%=0| 00004a80 20 b8 20 62 25 2d 31 3a e8 23 46 25 2c 73 25 28 | . b%-1:.#F%,s%(| 00004a90 58 25 2c 59 25 29 3a e7 20 73 25 28 58 25 2c 59 |X%,Y%):. s%(X%,Y| 00004aa0 25 29 3d 30 20 8c 20 62 78 25 3d 58 25 3a 62 79 |%)=0 . bx%=X%:by| 00004ab0 25 3d 59 25 0d 02 0c 29 20 ed 2c 3a e8 23 46 25 |%=Y%...) .,:.#F%| 00004ac0 2c 70 75 7a 6f 70 65 6e 25 2c 76 69 65 77 6f 70 |,puzopen%,viewop| 00004ad0 65 6e 25 2c 74 69 6d 65 72 25 2c 54 25 0d 02 0d |en%,timer%,T%...| 00004ae0 3b 20 c8 99 47 65 74 54 69 6d 65 25 20 b8 20 64 |; ..GetTime% . d| 00004af0 65 6c 61 79 25 3a 6e 6f 77 25 3d 64 65 6c 61 79 |elay%:now%=delay| 00004b00 25 3a 74 69 6d 65 73 74 61 72 74 65 64 25 3d 64 |%:timestarted%=d| 00004b10 65 6c 61 79 25 2d 54 25 0d 02 0e 4a 20 f2 77 69 |elay%-T%...J .wi| 00004b20 6e 64 6f 77 73 3a e3 20 41 25 3d 33 20 b8 20 31 |ndows:. A%=3 . 1| 00004b30 30 3a e8 23 46 25 2c 24 a4 74 61 62 6c 65 28 41 |0:.#F%,$.table(A| 00004b40 25 2c 31 29 2c 24 a4 74 61 62 6c 65 28 41 25 2c |%,1),$.table(A%,| 00004b50 32 29 2c 24 a4 74 61 62 6c 65 28 41 25 2c 33 29 |2),$.table(A%,3)| 00004b60 3a ed 0d 02 0f 21 20 d9 23 46 25 3a f2 63 72 65 |:....! .#F%:.cre| 00004b70 61 74 65 62 61 72 6d 65 6e 75 3a 66 69 72 73 74 |atebarmenu:first| 00004b80 25 3d a3 0d 02 10 32 20 45 24 3d a4 6d 65 73 73 |%=....2 E$=.mess| 00004b90 61 67 65 28 22 45 72 72 46 69 6e 64 22 29 3a 43 |age("ErrFind"):C| 00004ba0 24 3d a4 6d 65 73 73 61 67 65 28 22 4e 6f 74 46 |$=.message("NotF| 00004bb0 69 6e 64 22 29 0d 02 11 41 20 e7 20 a7 45 24 2c |ind")...A . .E$,| 00004bc0 22 25 31 22 29 20 8c 20 45 24 3d c0 45 24 2c a7 |"%1") . E$=.E$,.| 00004bd0 45 24 2c 22 25 31 22 29 2d 31 29 2b 64 65 66 61 |E$,"%1")-1)+defa| 00004be0 75 6c 74 24 2b c1 45 24 2c a7 45 24 2c 22 25 31 |ult$+.E$,.E$,"%1| 00004bf0 22 29 2b 32 29 20 0d 02 12 40 20 e7 20 a7 43 24 |")+2) ...@ . .C$| 00004c00 2c 22 25 30 22 29 20 8c 20 43 24 3d c0 43 24 2c |,"%0") . C$=.C$,| 00004c10 a7 43 24 2c 22 25 30 22 29 2d 31 29 2b 64 65 66 |.C$,"%0")-1)+def| 00004c20 61 75 6c 74 24 2b c1 43 24 2c a7 43 24 2c 22 25 |ault$+.C$,.C$,"%| 00004c30 30 22 29 2b 32 29 0d 02 13 08 20 ea 20 85 0d 02 |0")+2).... . ...| 00004c40 14 15 20 e7 20 64 65 66 61 75 6c 74 24 3c 3e 22 |.. . default$<>"| 00004c50 22 20 8c 0d 02 15 32 20 20 41 24 3d 64 65 66 61 |" ....2 A$=defa| 00004c60 75 6c 74 24 3a c8 95 20 a7 41 24 2c 22 2e 22 29 |ult$:.. .A$,".")| 00004c70 3a 41 24 3d c1 41 24 2c a7 41 24 2c 22 2e 22 29 |:A$=.A$,.A$,".")| 00004c80 2b 31 29 3a ce 0d 02 16 42 20 20 24 62 6c 6f 63 |+1):....B $bloc| 00004c90 6b 25 3d c0 64 65 66 61 75 6c 74 24 2c a7 64 65 |k%=.default$,.de| 00004ca0 66 61 75 6c 74 24 2c 41 24 29 2d 32 29 3a 24 73 |fault$,A$)-2):$s| 00004cb0 63 61 6c 65 25 3d 41 24 3a 69 6e 64 65 78 25 3d |cale%=A$:index%=| 00004cc0 30 3a 41 25 3d 2d 31 0d 02 17 35 20 20 f5 20 20 |0:A%=-1...5 . | 00004cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00004cf0 20 20 20 20 20 20 20 20 20 20 20 20 0d 02 18 34 | ...4| 00004d00 20 20 20 ee 20 85 20 ea 20 41 25 3d 2d 32 3a f2 | . . . A%=-2:.| 00004d10 71 75 69 63 6b 65 72 72 6f 72 3a 64 65 66 61 75 |quickerror:defau| 00004d20 6c 74 24 3d 22 22 3a 69 6e 64 65 78 25 3d 2d 31 |lt$="":index%=-1| 00004d30 0d 02 19 58 20 20 20 e7 20 69 6e 64 65 78 25 3e |...X . index%>| 00004d40 2d 31 20 c8 99 26 30 43 2c 31 30 2c 62 6c 6f 63 |-1 ..&0C,10,bloc| 00004d50 6b 25 2c 72 65 70 25 2c 31 2c 69 6e 64 65 78 25 |k%,rep%,1,index%| 00004d60 2c 35 30 2c 73 63 61 6c 65 25 20 b8 20 2c 2c 2c |,50,scale% . ,,,| 00004d70 6e 25 2c 69 6e 64 65 78 25 3a e7 20 6e 25 3c 3e |n%,index%:. n%<>| 00004d80 30 20 8c 20 41 25 3d 30 0d 02 1a 11 20 20 fd 20 |0 . A%=0.... . | 00004d90 69 6e 64 65 78 25 3d 2d 31 0d 02 1b 29 20 20 e7 |index%=-1...) .| 00004da0 20 41 25 3d 2d 31 20 8c 20 f2 72 65 70 6f 72 74 | A%=-1 . .report| 00004db0 28 43 24 2c 30 29 3a 64 65 66 61 75 6c 74 24 3d |(C$,0):default$=| 00004dc0 22 22 0d 02 1c 09 20 cd 20 20 20 0d 02 1d 1e 20 |"".... . .... | 00004dd0 f7 20 85 20 20 20 20 20 20 20 20 20 20 20 20 20 |. . | 00004de0 20 20 20 20 20 20 20 20 20 0d 02 1e 2b 20 e7 20 | ...+ . | 00004df0 64 65 66 61 75 6c 74 24 3c 3e 22 22 20 8c 20 f2 |default$<>"" . .| 00004e00 6c 6f 61 64 73 70 72 69 74 65 28 64 65 66 61 75 |loadsprite(defau| 00004e10 6c 74 24 29 0d 02 1f 3f 20 f2 73 70 6c 69 74 3a |lt$)...? .split:| 00004e20 e7 20 68 65 6c 70 25 3e 30 20 8c 20 f2 74 69 63 |. help%>0 . .tic| 00004e30 6b 28 68 65 6c 25 2c 68 65 6c 70 25 2d 31 2c 2d |k(hel%,help%-1,-| 00004e40 31 29 3a f2 74 69 63 6b 28 62 61 72 25 2c 35 2c |1):.tick(bar%,5,| 00004e50 2d 31 29 0d 02 20 35 20 74 66 6c 61 67 25 3d 30 |-1).. 5 tflag%=0| 00004e60 3a f2 74 69 6d 65 3a f2 70 65 72 63 65 6e 74 3a |:.time:.percent:| 00004e70 e7 20 74 69 6d 65 72 25 20 8c 20 f2 6f 70 65 6e |. timer% . .open| 00004e80 28 74 69 6d 65 77 25 29 0d 02 21 1e 20 e7 20 70 |(timew%)..!. . p| 00004e90 75 7a 6f 70 65 6e 25 20 8c 20 f2 6f 70 65 6e 28 |uzopen% . .open(| 00004ea0 6d 61 69 6e 25 29 0d 02 22 28 20 e7 20 76 69 65 |main%).."( . vie| 00004eb0 77 6f 70 65 6e 25 20 8c 20 f2 6f 70 65 6e 28 76 |wopen% . .open(v| 00004ec0 69 65 77 25 29 20 20 20 20 20 20 20 20 20 0d 02 |iew%) ..| 00004ed0 23 82 20 e7 20 68 65 6c 70 25 3d 31 20 8c 20 21 |#. . help%=1 . !| 00004ee0 62 6c 6f 63 6b 25 3d 68 65 6c 70 77 25 3a c8 99 |block%=helpw%:..| 00004ef0 20 47 65 74 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f | GetWindow%,,blo| 00004f00 63 6b 25 3a 62 6c 6f 63 6b 25 21 31 32 3d 62 6c |ck%:block%!12=bl| 00004f10 6f 63 6b 25 21 34 2b 62 25 2a 34 30 2b 34 3a 62 |ock%!4+b%*40+4:b| 00004f20 6c 6f 63 6b 25 21 38 3d 62 6c 6f 63 6b 25 21 31 |lock%!8=block%!1| 00004f30 36 2d 34 30 2a 62 25 2d 34 3a c8 99 20 4f 70 65 |6-40*b%-4:.. Ope| 00004f40 6e 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 |nWindow%,,block%| 00004f50 0d 02 24 26 20 71 75 69 74 25 3d a3 3a c8 99 48 |..$& quit%=.:..H| 00004f60 6f 75 72 4f 66 66 25 3a 66 69 72 73 74 25 3d b9 |ourOff%:first%=.| 00004f70 20 20 20 20 20 20 0d 02 25 05 e1 0d 02 26 04 0d | ..%....&..| 00004f80 02 27 5e dd f2 71 75 69 63 6b 65 72 72 6f 72 3a |.'^..quickerror:| 00004f90 e7 20 a7 45 24 2c 22 25 30 22 29 20 8c 20 f2 72 |. .E$,"%0") . .r| 00004fa0 65 70 6f 72 74 28 c0 45 24 2c a7 45 24 2c 22 25 |eport(.E$,.E$,"%| 00004fb0 30 22 29 2d 31 29 2b f6 24 2b c1 45 24 2c a7 45 |0")-1)+.$+.E$,.E| 00004fc0 24 2c 22 25 30 22 29 2b 32 29 2c 30 29 20 8b 20 |$,"%0")+2),0) . | 00004fd0 f2 72 65 70 6f 72 74 28 45 24 2c 30 29 0d 02 28 |.report(E$,0)..(| 00004fe0 05 e1 0d 02 29 04 0d 02 2a 0b dd f2 75 6e 6d 69 |....)...*...unmi| 00004ff0 78 0d 02 2b 4b 20 41 25 3d 30 3a e3 20 59 25 3d |x..+K A%=0:. Y%=| 00005000 30 20 b8 20 62 25 2d 31 3a e3 20 58 25 3d 30 20 |0 . b%-1:. X%=0 | 00005010 b8 20 62 25 2d 31 3a 41 25 2b 3d 31 3a 73 25 28 |. b%-1:A%+=1:s%(| 00005020 58 25 2c 59 25 29 3d 41 25 3a ed 2c 3a 73 25 28 |X%,Y%)=A%:.,:s%(| 00005030 62 25 2d 31 2c 62 25 2d 31 29 3d 30 0d 02 2c 16 |b%-1,b%-1)=0..,.| 00005040 20 62 78 25 3d 62 25 2d 31 3a 62 79 25 3d 62 25 | bx%=b%-1:by%=b%| 00005050 2d 31 0d 02 2d 05 e1 0d 02 2e 04 0d 02 2f 17 dd |-1..-......../..| 00005060 f2 73 68 75 66 66 6c 65 3a c8 99 48 6f 75 72 4f |.shuffle:..HourO| 00005070 6e 25 0d 02 30 16 20 e3 20 41 25 3d 31 20 b8 20 |n%..0. . A%=1 . | 00005080 31 30 2a 62 25 2a 62 25 0d 02 31 10 20 20 54 25 |10*b%*b%..1. T%| 00005090 3d b3 28 62 25 29 2d 31 0d 02 32 32 20 20 c8 95 |=.(b%)-1..22 ..| 000050a0 20 54 25 3e 62 78 25 3a 73 25 28 62 78 25 2c 62 | T%>bx%:s%(bx%,b| 000050b0 79 25 29 3d 73 25 28 62 78 25 2b 31 2c 62 79 25 |y%)=s%(bx%+1,by%| 000050c0 29 3a 62 78 25 2b 3d 31 3a ce 0d 02 33 32 20 20 |):bx%+=1:...32 | 000050d0 c8 95 20 54 25 3c 62 78 25 3a 73 25 28 62 78 25 |.. T%<bx%:s%(bx%| 000050e0 2c 62 79 25 29 3d 73 25 28 62 78 25 2d 31 2c 62 |,by%)=s%(bx%-1,b| 000050f0 79 25 29 3a 62 78 25 2d 3d 31 3a ce 0d 02 34 10 |y%):bx%-=1:...4.| 00005100 20 20 54 25 3d b3 28 62 25 29 2d 31 0d 02 35 32 | T%=.(b%)-1..52| 00005110 20 20 c8 95 20 54 25 3e 62 79 25 3a 73 25 28 62 | .. T%>by%:s%(b| 00005120 78 25 2c 62 79 25 29 3d 73 25 28 62 78 25 2c 62 |x%,by%)=s%(bx%,b| 00005130 79 25 2b 31 29 3a 62 79 25 2b 3d 31 3a ce 0d 02 |y%+1):by%+=1:...| 00005140 36 32 20 20 c8 95 20 54 25 3c 62 79 25 3a 73 25 |62 .. T%<by%:s%| 00005150 28 62 78 25 2c 62 79 25 29 3d 73 25 28 62 78 25 |(bx%,by%)=s%(bx%| 00005160 2c 62 79 25 2d 31 29 3a 62 79 25 2d 3d 31 3a ce |,by%-1):by%-=1:.| 00005170 0d 02 37 06 20 ed 0d 02 38 4a 20 73 25 28 62 78 |..7. ...8J s%(bx| 00005180 25 2c 62 79 25 29 3d 30 3a 64 65 6c 61 79 25 3d |%,by%)=0:delay%=| 00005190 30 3a 74 69 6d 65 73 74 61 72 74 65 64 25 3d 6e |0:timestarted%=n| 000051a0 6f 77 25 3a e7 20 28 74 66 6c 61 67 25 80 31 29 |ow%:. (tflag%.1)| 000051b0 3d 30 20 8c 20 64 65 6c 61 79 25 3d 6e 6f 77 25 |=0 . delay%=now%| 000051c0 0d 02 39 13 20 f2 74 69 6d 65 3a f2 70 65 72 63 |..9. .time:.perc| 000051d0 65 6e 74 0d 02 3a 0f 20 c8 99 48 6f 75 72 4f 66 |ent..:. ..HourOf| 000051e0 66 25 0d 02 3b 05 e1 0d 02 3c 04 0d 02 3d 10 dd |f%..;....<...=..| 000051f0 f2 73 77 69 6e 75 6d 62 65 72 73 0d 02 3e 43 20 |.swinumbers..>C | 00005200 c8 99 22 4f 53 5f 53 57 49 4e 75 6d 62 65 72 46 |.."OS_SWINumberF| 00005210 72 6f 6d 53 74 72 69 6e 67 22 2c 2c 22 4f 53 5f |romString",,"OS_| 00005220 53 57 49 4e 75 6d 62 65 72 46 72 6f 6d 53 74 72 |SWINumberFromStr| 00005230 69 6e 67 22 20 b8 20 53 74 72 69 6e 67 25 0d 02 |ing" . String%..| 00005240 3f 32 20 c8 99 20 53 74 72 69 6e 67 25 2c 2c 22 |?2 .. String%,,"| 00005250 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 |Wimp_GetIconStat| 00005260 65 22 20 b8 20 47 65 74 49 63 6f 6e 25 20 20 20 |e" . GetIcon% | 00005270 0d 02 40 30 20 c8 99 20 53 74 72 69 6e 67 25 2c |..@0 .. String%,| 00005280 2c 22 57 69 6d 70 5f 43 72 65 61 74 65 49 63 6f |,"Wimp_CreateIco| 00005290 6e 22 20 b8 20 43 72 65 61 74 65 49 63 6f 6e 25 |n" . CreateIcon%| 000052a0 0d 02 41 30 20 c8 99 20 53 74 72 69 6e 67 25 2c |..A0 .. String%,| 000052b0 2c 22 57 69 6d 70 5f 53 65 74 49 63 6f 6e 53 74 |,"Wimp_SetIconSt| 000052c0 61 74 65 22 20 b8 20 53 65 74 49 63 6f 6e 25 20 |ate" . SetIcon% | 000052d0 0d 02 42 35 20 c8 99 20 53 74 72 69 6e 67 25 2c |..B5 .. String%,| 000052e0 2c 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 |,"Wimp_GetWindow| 000052f0 53 74 61 74 65 22 20 b8 20 47 65 74 57 69 6e 64 |State" . GetWind| 00005300 6f 77 25 20 20 0d 02 43 2d 20 c8 99 20 53 74 72 |ow% ..C- .. Str| 00005310 69 6e 67 25 2c 2c 22 57 69 6d 70 5f 46 6f 72 63 |ing%,,"Wimp_Forc| 00005320 65 52 65 64 72 61 77 22 20 b8 20 52 65 64 72 61 |eRedraw" . Redra| 00005330 77 25 0d 02 44 34 20 c8 99 20 53 74 72 69 6e 67 |w%..D4 .. String| 00005340 25 2c 2c 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 |%,,"Wimp_GetWind| 00005350 6f 77 49 6e 66 6f 22 20 b8 20 47 65 74 49 6e 66 |owInfo" . GetInf| 00005360 6f 25 20 20 20 20 0d 02 45 34 20 c8 99 20 53 74 |o% ..E4 .. St| 00005370 72 69 6e 67 25 2c 2c 22 57 69 6d 70 5f 4c 6f 61 |ring%,,"Wimp_Loa| 00005380 64 54 65 6d 70 6c 61 74 65 22 20 b8 20 4c 6f 61 |dTemplate" . Loa| 00005390 64 54 65 6d 70 6c 61 74 65 25 0d 02 46 34 20 c8 |dTemplate%..F4 .| 000053a0 99 20 53 74 72 69 6e 67 25 2c 2c 22 57 69 6d 70 |. String%,,"Wimp| 000053b0 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 22 20 b8 |_CreateWindow" .| 000053c0 20 43 72 65 61 74 65 57 69 6e 64 6f 77 25 0d 02 | CreateWindow%..| 000053d0 47 30 20 c8 99 20 53 74 72 69 6e 67 25 2c 2c 22 |G0 .. String%,,"| 000053e0 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 |Wimp_OpenWindow"| 000053f0 20 b8 20 4f 70 65 6e 57 69 6e 64 6f 77 25 0d 02 | . OpenWindow%..| 00005400 48 32 20 c8 99 20 53 74 72 69 6e 67 25 2c 2c 22 |H2 .. String%,,"| 00005410 57 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 |Wimp_CloseWindow| 00005420 22 20 b8 20 43 6c 6f 73 65 57 69 6e 64 6f 77 25 |" . CloseWindow%| 00005430 0d 02 49 30 20 c8 99 20 53 74 72 69 6e 67 25 2c |..I0 .. String%,| 00005440 2c 22 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 6e |,"Wimp_CreateMen| 00005450 75 22 20 b8 20 43 72 65 61 74 65 4d 65 6e 75 25 |u" . CreateMenu%| 00005460 0d 02 4a 34 20 c8 99 20 53 74 72 69 6e 67 25 2c |..J4 .. String%,| 00005470 2c 22 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 |,"Wimp_GetPointe| 00005480 72 49 6e 66 6f 22 20 b8 20 50 6f 69 6e 74 65 72 |rInfo" . Pointer| 00005490 25 20 20 20 0d 02 4b 2e 20 c8 99 20 53 74 72 69 |% ..K. .. Stri| 000054a0 6e 67 25 2c 2c 22 57 69 6d 70 5f 53 65 74 43 6f |ng%,,"Wimp_SetCo| 000054b0 6c 6f 75 72 22 20 b8 20 53 65 74 43 6f 6c 6f 75 |lour" . SetColou| 000054c0 72 25 0d 02 4c 2f 20 c8 99 20 53 74 72 69 6e 67 |r%..L/ .. String| 000054d0 25 2c 2c 22 57 69 6d 70 5f 52 65 70 6f 72 74 45 |%,,"Wimp_ReportE| 000054e0 72 72 6f 72 22 20 b8 20 52 65 70 6f 72 74 25 20 |rror" . Report% | 000054f0 20 0d 02 4d 2d 20 c8 99 20 53 74 72 69 6e 67 25 | ..M- .. String%| 00005500 2c 2c 22 57 69 6d 70 5f 50 6f 6c 6c 22 20 b8 20 |,,"Wimp_Poll" . | 00005510 50 6f 6c 6c 25 20 20 20 20 20 20 20 20 20 0d 02 |Poll% ..| 00005520 4e 2e 20 c8 99 20 53 74 72 69 6e 67 25 2c 2c 22 |N. .. String%,,"| 00005530 57 69 6d 70 5f 50 6f 6c 6c 49 64 6c 65 22 20 b8 |Wimp_PollIdle" .| 00005540 20 50 6f 6c 6c 49 64 6c 65 25 20 20 0d 02 4f 2a | PollIdle% ..O*| 00005550 20 c8 99 20 53 74 72 69 6e 67 25 2c 2c 22 4f 53 | .. String%,,"OS| 00005560 5f 53 70 72 69 74 65 4f 70 22 20 b8 20 53 70 72 |_SpriteOp" . Spr| 00005570 69 74 65 4f 70 25 0d 02 50 32 20 c8 99 20 53 74 |iteOp%..P2 .. St| 00005580 72 69 6e 67 25 2c 2c 22 4f 53 5f 52 65 61 64 4d |ring%,,"OS_ReadM| 00005590 6f 6e 6f 74 6f 6e 69 63 54 69 6d 65 22 20 b8 20 |onotonicTime" . | 000055a0 47 65 74 54 69 6d 65 25 0d 02 51 32 20 c8 99 20 |GetTime%..Q2 .. | 000055b0 53 74 72 69 6e 67 25 2c 2c 22 4f 53 5f 52 65 61 |String%,,"OS_Rea| 000055c0 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 22 20 b8 |dModeVariable" .| 000055d0 20 52 65 61 64 4d 6f 64 65 25 0d 02 52 35 20 c8 | ReadMode%..R5 .| 000055e0 99 20 53 74 72 69 6e 67 25 2c 2c 22 48 6f 75 72 |. String%,,"Hour| 000055f0 67 6c 61 73 73 5f 4f 6e 22 20 b8 20 48 6f 75 72 |glass_On" . Hour| 00005600 4f 6e 25 20 20 20 20 20 20 20 20 20 20 20 20 0d |On% .| 00005610 02 53 2d 20 c8 99 20 53 74 72 69 6e 67 25 2c 2c |.S- .. String%,,| 00005620 22 48 6f 75 72 67 6c 61 73 73 5f 53 6d 61 73 68 |"Hourglass_Smash| 00005630 22 20 b8 20 48 6f 75 72 4f 66 66 25 0d 02 54 05 |" . HourOff%..T.| 00005640 e1 0d 02 55 04 0d 02 56 11 dd f2 62 61 72 69 63 |...U...V...baric| 00005650 6f 6e 28 41 24 29 0d 02 57 4f 20 21 62 6c 6f 63 |on(A$)..WO !bloc| 00005660 6b 25 3d 2d 31 3a 62 6c 6f 63 6b 25 21 34 3d 30 |k%=-1:block%!4=0| 00005670 3a 62 6c 6f 63 6b 25 21 38 3d 30 3a 62 6c 6f 63 |:block%!8=0:bloc| 00005680 6b 25 21 31 32 3d 36 38 3a 62 6c 6f 63 6b 25 21 |k%!12=68:block%!| 00005690 31 36 3d 36 38 3a 62 6c 6f 63 6b 25 21 32 30 3d |16=68:block%!20=| 000056a0 26 33 30 30 32 0d 02 58 32 20 24 28 62 6c 6f 63 |&3002..X2 $(bloc| 000056b0 6b 25 2b 32 34 29 3d 41 24 3a c8 99 20 43 72 65 |k%+24)=A$:.. Cre| 000056c0 61 74 65 49 63 6f 6e 25 2c 2c 62 6c 6f 63 6b 25 |ateIcon%,,block%| 000056d0 20 b8 20 62 61 72 25 0d 02 59 05 e1 0d 02 5a 04 | . bar%..Y....Z.| 000056e0 0d 02 5b 0d dd f2 77 69 6e 64 6f 77 73 0d 02 5c |..[...windows..\| 000056f0 11 20 69 6e 64 73 69 7a 65 25 3d 39 31 30 0d 02 |. indsize%=910..| 00005700 5d 1d 20 de 20 6e 61 6d 65 25 20 31 31 2c 69 6e |]. . name% 11,in| 00005710 64 25 20 69 6e 64 73 69 7a 65 25 0d 02 5e 1a 20 |d% indsize%..^. | 00005720 69 6e 64 74 6f 70 25 3d 69 6e 64 25 2b 69 6e 64 |indtop%=ind%+ind| 00005730 73 69 7a 65 25 0d 02 5f 31 20 c8 99 22 57 69 6d |size%.._1 .."Wim| 00005740 70 5f 4f 70 65 6e 54 65 6d 70 6c 61 74 65 22 2c |p_OpenTemplate",| 00005750 2c 22 3c 50 75 7a 24 44 69 72 3e 2e 54 65 6d 70 |,"<Puz$Dir>.Temp| 00005760 6c 61 74 65 73 22 0d 02 60 4c 20 24 6e 61 6d 65 |lates"..`L $name| 00005770 25 3d 22 49 6e 66 6f 22 3a c8 99 20 4c 6f 61 64 |%="Info":.. Load| 00005780 54 65 6d 70 6c 61 74 65 25 2c 2c 62 6c 6f 63 6b |Template%,,block| 00005790 25 2c 69 6e 64 25 2c 69 6e 64 74 6f 70 25 2c 2d |%,ind%,indtop%,-| 000057a0 31 2c 6e 61 6d 65 25 2c 30 20 b8 20 2c 2c 69 6e |1,name%,0 . ,,in| 000057b0 64 25 0d 02 61 3e 20 62 6c 6f 63 6b 25 21 36 34 |d%..a> block%!64| 000057c0 3d 69 63 6f 6e 61 72 65 61 25 3a c8 99 20 43 72 |=iconarea%:.. Cr| 000057d0 65 61 74 65 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f |eateWindow%,,blo| 000057e0 63 6b 25 20 b8 20 69 6e 66 6f 25 20 20 20 20 20 |ck% . info% | 000057f0 0d 02 62 4c 20 24 6e 61 6d 65 25 3d 22 4d 61 69 |..bL $name%="Mai| 00005800 6e 22 3a c8 99 20 4c 6f 61 64 54 65 6d 70 6c 61 |n":.. LoadTempla| 00005810 74 65 25 2c 2c 62 6c 6f 63 6b 25 2c 69 6e 64 25 |te%,,block%,ind%| 00005820 2c 69 6e 64 74 6f 70 25 2c 2d 31 2c 6e 61 6d 65 |,indtop%,-1,name| 00005830 25 2c 30 20 b8 20 2c 2c 69 6e 64 25 0d 02 63 52 |%,0 . ,,ind%..cR| 00005840 20 74 69 74 6c 65 25 3d 62 6c 6f 63 6b 25 21 37 | title%=block%!7| 00005850 32 3a e8 23 46 25 2c 21 62 6c 6f 63 6b 25 2c 62 |2:.#F%,!block%,b| 00005860 6c 6f 63 6b 25 21 34 2c 62 6c 6f 63 6b 25 21 38 |lock%!4,block%!8| 00005870 2c 62 6c 6f 63 6b 25 21 31 32 2c 62 6c 6f 63 6b |,block%!12,block| 00005880 25 21 31 36 2c 62 6c 6f 63 6b 25 21 32 30 0d 02 |%!16,block%!20..| 00005890 64 25 20 c8 99 20 43 72 65 61 74 65 57 69 6e 64 |d% .. CreateWind| 000058a0 6f 77 25 2c 2c 62 6c 6f 63 6b 25 20 b8 20 6d 61 |ow%,,block% . ma| 000058b0 69 6e 25 0d 02 65 4c 20 24 6e 61 6d 65 25 3d 22 |in%..eL $name%="| 000058c0 56 69 65 77 22 3a c8 99 20 4c 6f 61 64 54 65 6d |View":.. LoadTem| 000058d0 70 6c 61 74 65 25 2c 2c 62 6c 6f 63 6b 25 2c 69 |plate%,,block%,i| 000058e0 6e 64 25 2c 69 6e 64 74 6f 70 25 2c 2d 31 2c 6e |nd%,indtop%,-1,n| 000058f0 61 6d 65 25 2c 30 20 b8 20 2c 2c 69 6e 64 25 0d |ame%,0 . ,,ind%.| 00005900 02 66 4b 20 e8 23 46 25 2c 21 62 6c 6f 63 6b 25 |.fK .#F%,!block%| 00005910 2c 62 6c 6f 63 6b 25 21 34 2c 62 6c 6f 63 6b 25 |,block%!4,block%| 00005920 21 38 2c 62 6c 6f 63 6b 25 21 31 32 3a 24 28 62 |!8,block%!12:$(b| 00005930 6c 6f 63 6b 25 21 37 32 29 3d a4 6d 65 73 73 61 |lock%!72)=.messa| 00005940 67 65 28 22 4d 65 6e 34 22 29 0d 02 67 25 20 c8 |ge("Men4")..g% .| 00005950 99 20 43 72 65 61 74 65 57 69 6e 64 6f 77 25 2c |. CreateWindow%,| 00005960 2c 62 6c 6f 63 6b 25 20 b8 20 76 69 65 77 25 0d |,block% . view%.| 00005970 02 68 4c 20 24 6e 61 6d 65 25 3d 22 48 65 6c 70 |.hL $name%="Help| 00005980 22 3a c8 99 20 4c 6f 61 64 54 65 6d 70 6c 61 74 |":.. LoadTemplat| 00005990 65 25 2c 2c 62 6c 6f 63 6b 25 2c 69 6e 64 25 2c |e%,,block%,ind%,| 000059a0 69 6e 64 74 6f 70 25 2c 2d 31 2c 6e 61 6d 65 25 |indtop%,-1,name%| 000059b0 2c 30 20 b8 20 2c 2c 69 6e 64 25 0d 02 69 39 20 |,0 . ,,ind%..i9 | 000059c0 24 28 62 6c 6f 63 6b 25 21 37 32 29 3d a4 6d 65 |$(block%!72)=.me| 000059d0 73 73 61 67 65 28 22 4d 65 6e 36 22 29 3a e8 23 |ssage("Men6"):.#| 000059e0 46 25 2c 21 62 6c 6f 63 6b 25 2c 62 6c 6f 63 6b |F%,!block%,block| 000059f0 25 21 31 32 0d 02 6a 28 20 c8 99 20 43 72 65 61 |%!12..j( .. Crea| 00005a00 74 65 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b |teWindow%,,block| 00005a10 25 20 b8 20 68 65 6c 70 77 25 20 20 0d 02 6b 4d |% . helpw% ..kM| 00005a20 20 24 6e 61 6d 65 25 3d 22 57 69 64 74 68 22 3a | $name%="Width":| 00005a30 c8 99 20 4c 6f 61 64 54 65 6d 70 6c 61 74 65 25 |.. LoadTemplate%| 00005a40 2c 2c 62 6c 6f 63 6b 25 2c 69 6e 64 25 2c 69 6e |,,block%,ind%,in| 00005a50 64 74 6f 70 25 2c 2d 31 2c 6e 61 6d 65 25 2c 30 |dtop%,-1,name%,0| 00005a60 20 b8 20 2c 2c 69 6e 64 25 0d 02 6c 42 20 24 28 | . ,,ind%..lB $(| 00005a70 62 6c 6f 63 6b 25 21 37 32 29 3d a4 6d 65 73 73 |block%!72)=.mess| 00005a80 61 67 65 28 22 4d 65 6e 39 22 29 3a c8 99 20 43 |age("Men9"):.. C| 00005a90 72 65 61 74 65 57 69 6e 64 6f 77 25 2c 2c 62 6c |reateWindow%,,bl| 00005aa0 6f 63 6b 25 20 b8 20 77 69 64 25 0d 02 6d 4d 20 |ock% . wid%..mM | 00005ab0 24 6e 61 6d 65 25 3d 22 54 69 6d 65 72 22 3a c8 |$name%="Timer":.| 00005ac0 99 20 4c 6f 61 64 54 65 6d 70 6c 61 74 65 25 2c |. LoadTemplate%,| 00005ad0 2c 62 6c 6f 63 6b 25 2c 69 6e 64 25 2c 69 6e 64 |,block%,ind%,ind| 00005ae0 74 6f 70 25 2c 2d 31 2c 6e 61 6d 65 25 2c 30 20 |top%,-1,name%,0 | 00005af0 b8 20 2c 2c 69 6e 64 25 0d 02 6e 4b 20 e8 23 46 |. ,,ind%..nK .#F| 00005b00 25 2c 21 62 6c 6f 63 6b 25 2c 62 6c 6f 63 6b 25 |%,!block%,block%| 00005b10 21 34 2c 62 6c 6f 63 6b 25 21 38 2c 62 6c 6f 63 |!4,block%!8,bloc| 00005b20 6b 25 21 31 32 3a 24 28 62 6c 6f 63 6b 25 21 37 |k%!12:$(block%!7| 00005b30 32 29 3d a4 6d 65 73 73 61 67 65 28 22 4d 65 6e |2)=.message("Men| 00005b40 35 22 29 0d 02 6f 42 20 c8 99 20 43 72 65 61 74 |5")..oB .. Creat| 00005b50 65 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 |eWindow%,,block%| 00005b60 20 b8 20 74 69 6d 65 77 25 20 20 20 20 20 20 20 | . timew% | 00005b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005b80 20 20 20 20 20 0d 02 70 4b 20 24 6e 61 6d 65 25 | ..pK $name%| 00005b90 3d 22 57 69 6e 22 3a c8 99 20 4c 6f 61 64 54 65 |="Win":.. LoadTe| 00005ba0 6d 70 6c 61 74 65 25 2c 2c 62 6c 6f 63 6b 25 2c |mplate%,,block%,| 00005bb0 69 6e 64 25 2c 69 6e 64 74 6f 70 25 2c 2d 31 2c |ind%,indtop%,-1,| 00005bc0 6e 61 6d 65 25 2c 30 20 b8 20 2c 2c 69 6e 64 25 |name%,0 . ,,ind%| 00005bd0 0d 02 71 42 20 c8 99 20 43 72 65 61 74 65 57 69 |..qB .. CreateWi| 00005be0 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 20 b8 20 |ndow%,,block% . | 00005bf0 77 69 6e 25 20 20 20 20 20 20 20 20 20 20 20 20 |win% | 00005c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00005c10 20 20 0d 02 72 4e 20 24 6e 61 6d 65 25 3d 22 53 | ..rN $name%="S| 00005c20 63 6f 72 65 73 22 3a c8 99 20 4c 6f 61 64 54 65 |cores":.. LoadTe| 00005c30 6d 70 6c 61 74 65 25 2c 2c 62 6c 6f 63 6b 25 2c |mplate%,,block%,| 00005c40 69 6e 64 25 2c 69 6e 64 74 6f 70 25 2c 2d 31 2c |ind%,indtop%,-1,| 00005c50 6e 61 6d 65 25 2c 30 20 b8 20 2c 2c 69 6e 64 25 |name%,0 . ,,ind%| 00005c60 0d 02 73 26 20 c8 99 20 43 72 65 61 74 65 57 69 |..s& .. CreateWi| 00005c70 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 20 b8 20 |ndow%,,block% . | 00005c80 68 69 67 68 77 25 0d 02 74 41 20 c8 99 22 57 69 |highw%..tA .."Wi| 00005c90 6d 70 5f 43 6c 6f 73 65 54 65 6d 70 6c 61 74 65 |mp_CloseTemplate| 00005ca0 22 3a f2 69 63 6f 6e 74 65 78 74 28 69 6e 66 6f |":.icontext(info| 00005cb0 25 2c 31 2c a4 6d 65 73 73 61 67 65 28 22 54 61 |%,1,.message("Ta| 00005cc0 73 6b 49 44 22 29 29 0d 02 75 25 20 f2 69 63 6f |skID"))..u% .ico| 00005cd0 6e 74 65 78 74 28 77 69 64 25 2c 33 2c a4 6d 65 |ntext(wid%,3,.me| 00005ce0 73 73 61 67 65 28 22 4f 4b 22 29 29 0d 02 76 52 |ssage("OK"))..vR| 00005cf0 20 f2 69 63 6f 6e 74 65 78 74 28 69 6e 66 6f 25 | .icontext(info%| 00005d00 2c 32 2c a4 6d 65 73 73 61 67 65 28 22 50 75 72 |,2,.message("Pur| 00005d10 70 6f 73 65 22 29 29 3a f2 69 63 6f 6e 74 65 78 |pose")):.icontex| 00005d20 74 28 69 6e 66 6f 25 2c 34 2c a4 6d 65 73 73 61 |t(info%,4,.messa| 00005d30 67 65 28 22 56 65 72 73 69 6f 6e 22 29 29 0d 02 |ge("Version"))..| 00005d40 77 05 e1 0d 02 78 04 0d 02 79 11 dd f2 69 63 6f |w....x...y...ico| 00005d50 6e 73 70 72 69 74 65 73 0d 02 7a 35 20 46 25 3d |nsprites..z5 F%=| 00005d60 8e 22 3c 50 75 7a 24 44 69 72 3e 2e 53 70 72 69 |."<Puz$Dir>.Spri| 00005d70 74 65 73 22 3a 41 25 3d a2 23 46 25 2b 38 3a de |tes":A%=.#F%+8:.| 00005d80 20 69 63 6f 6e 61 72 65 61 25 20 41 25 0d 02 7b | iconarea% A%..{| 00005d90 26 20 21 69 63 6f 6e 61 72 65 61 25 3d 41 25 3a |& !iconarea%=A%:| 00005da0 69 63 6f 6e 61 72 65 61 25 21 38 3d 31 36 3a d9 |iconarea%!8=16:.| 00005db0 23 46 25 0d 02 7c 44 20 24 62 6c 6f 63 6b 25 3d |#F%..|D $block%=| 00005dc0 22 3c 50 75 7a 24 44 69 72 3e 2e 53 70 72 69 74 |"<Puz$Dir>.Sprit| 00005dd0 65 73 22 3a c8 99 53 70 72 69 74 65 4f 70 25 2c |es":..SpriteOp%,| 00005de0 31 30 2b 32 35 36 2c 69 63 6f 6e 61 72 65 61 25 |10+256,iconarea%| 00005df0 2c 62 6c 6f 63 6b 25 0d 02 7d 05 e1 0d 02 7e 04 |,block%..}....~.| 00005e00 0d 02 7f 21 dd f2 6c 6f 61 64 73 70 72 69 74 65 |...!..loadsprite| 00005e10 28 70 61 74 68 24 29 3a c8 99 48 6f 75 72 4f 6e |(path$):..HourOn| 00005e20 25 0d 02 80 2e 20 41 24 3d 70 61 74 68 24 3a c8 |%.... A$=path$:.| 00005e30 95 20 a7 41 24 2c 22 2e 22 29 3a 41 24 3d c1 41 |. .A$,"."):A$=.A| 00005e40 24 2c a7 41 24 2c 22 2e 22 29 2b 31 29 3a ce 0d |$,.A$,".")+1):..| 00005e50 02 81 28 20 24 74 69 74 6c 65 25 3d a4 6d 65 73 |..( $title%=.mes| 00005e60 73 61 67 65 28 22 54 61 73 6b 49 44 22 29 2b 22 |sage("TaskID")+"| 00005e70 20 2d 20 22 2b 41 24 0d 02 82 38 20 46 25 3d 8e | - "+A$...8 F%=.| 00005e80 28 70 61 74 68 24 29 3a 41 25 3d a2 23 46 25 2b |(path$):A%=.#F%+| 00005e90 31 36 3a d9 23 46 25 3a 42 25 3d a4 6d 61 6b 65 |16:.#F%:B%=.make| 00005ea0 6d 65 6d 28 41 25 2b 31 36 2c 41 25 2f 32 29 0d |mem(A%+16,A%/2).| 00005eb0 02 83 0d 20 e7 20 ac 20 42 25 20 8c 0d 02 84 21 |... . . B% ....!| 00005ec0 20 20 c8 99 53 70 72 69 74 65 4f 70 25 2c 26 31 | ..SpriteOp%,&1| 00005ed0 30 41 2c 62 69 67 25 2c 70 61 74 68 24 0d 02 85 |0A,big%,path$...| 00005ee0 42 20 20 c8 99 53 70 72 69 74 65 4f 70 25 2c 34 |B ..SpriteOp%,4| 00005ef0 30 2b 35 31 32 2c 62 69 67 25 2c 62 69 67 25 2b |0+512,big%,big%+| 00005f00 31 36 20 b8 20 2c 2c 2c 73 77 69 64 74 68 25 2c |16 . ,,,swidth%,| 00005f10 73 68 65 69 67 68 74 25 2c 2c 6d 6f 64 65 25 0d |sheight%,,mode%.| 00005f20 02 86 46 20 20 c8 99 53 70 72 69 74 65 4f 70 25 |..F ..SpriteOp%| 00005f30 2c 31 35 2b 35 31 32 2c 73 6d 61 6c 6c 25 2c 73 |,15+512,small%,s| 00005f40 6d 61 6c 6c 25 2b 31 36 2c 30 2c 73 77 69 64 74 |mall%+16,0,swidt| 00005f50 68 25 2f 39 2c 73 68 65 69 67 68 74 25 2f 39 2c |h%/9,sheight%/9,| 00005f60 6d 6f 64 65 25 0d 02 87 2b 20 20 42 25 3d a4 6d |mode%...+ B%=.m| 00005f70 61 6b 65 6d 65 6d 28 41 25 2b 31 36 2c 21 28 73 |akemem(A%+16,!(s| 00005f80 6d 61 6c 6c 25 2b 31 36 29 2a 39 39 2b 31 36 29 |mall%+16)*99+16)| 00005f90 0d 02 88 06 20 cd 0d 02 89 0b 20 e7 20 42 25 20 |.... ..... . B% | 00005fa0 8c 0d 02 8a 54 20 20 f2 72 65 70 6f 72 74 28 a4 |....T .report(.| 00005fb0 6d 65 73 73 61 67 65 28 22 4e 6f 4d 65 6d 22 29 |message("NoMem")| 00005fc0 2c 30 29 3a 64 65 66 61 75 6c 74 24 3d 22 22 3a |,0):default$="":| 00005fd0 62 25 3d 33 3a 42 25 3d a4 6d 61 6b 65 6d 65 6d |b%=3:B%=.makemem| 00005fe0 28 6d 65 6d 25 28 30 2c 30 29 2c 6d 65 6d 25 28 |(mem%(0,0),mem%(| 00005ff0 32 2c 30 29 29 0d 02 8b 06 20 cc 0d 02 8c 33 20 |2,0)).... ....3 | 00006000 20 c8 99 53 70 72 69 74 65 4f 70 25 2c 34 30 2b | ..SpriteOp%,40+| 00006010 35 31 32 2c 62 69 67 25 2c 62 69 67 25 2b 31 36 |512,big%,big%+16| 00006020 20 b8 20 2c 2c 2c 2c 2c 2c 6d 6f 64 65 25 0d 02 | . ,,,,,,mode%..| 00006030 8d 50 20 20 c8 99 52 65 61 64 4d 6f 64 65 25 2c |.P ..ReadMode%,| 00006040 6d 6f 64 65 25 2c 33 b8 2c 2c 41 25 3a c8 99 52 |mode%,3.,,A%:..R| 00006050 65 61 64 4d 6f 64 65 25 2c 6d 6f 64 65 25 2c 34 |eadMode%,mode%,4| 00006060 b8 2c 2c 42 25 3a c8 99 52 65 61 64 4d 6f 64 65 |.,,B%:..ReadMode| 00006070 25 2c 6d 6f 64 65 25 2c 35 b8 2c 2c 43 25 0d 02 |%,mode%,5.,,C%..| 00006080 8e 47 20 20 c8 99 52 65 61 64 4d 6f 64 65 25 2c |.G ..ReadMode%,| 00006090 2d 31 2c 33 b8 2c 2c 44 25 3a c8 99 52 65 61 64 |-1,3.,,D%:..Read| 000060a0 4d 6f 64 65 25 2c 2d 31 2c 34 b8 2c 2c 45 25 3a |Mode%,-1,4.,,E%:| 000060b0 c8 99 52 65 61 64 4d 6f 64 65 25 2c 2d 31 2c 35 |..ReadMode%,-1,5| 000060c0 b8 2c 2c 46 25 0d 02 8f 31 20 20 77 69 64 74 68 |.,,F%...1 width| 000060d0 25 3d 73 77 69 64 74 68 25 2a 31 3c 3c 42 25 3a |%=swidth%*1<<B%:| 000060e0 68 65 69 67 68 74 25 3d 73 68 65 69 67 68 74 25 |height%=sheight%| 000060f0 2a 31 3c 3c 43 25 0d 02 90 22 20 20 e7 20 77 69 |*1<<C%..." . wi| 00006100 64 74 68 25 3c 31 32 30 20 84 20 68 65 69 67 68 |dth%<120 . heigh| 00006110 74 25 3c 31 31 36 20 8c 0d 02 91 23 20 20 20 f2 |t%<116 ....# .| 00006120 72 65 70 6f 72 74 28 a4 6d 65 73 73 61 67 65 28 |report(.message(| 00006130 22 53 6d 61 6c 6c 22 29 2c 30 29 0d 02 92 58 20 |"Small"),0)...X | 00006140 20 20 64 65 66 61 75 6c 74 24 3d 22 22 3a 62 69 | default$="":bi| 00006150 67 25 21 38 3d 31 36 3a c8 99 53 70 72 69 74 65 |g%!8=16:..Sprite| 00006160 4f 70 25 2c 39 2b 32 35 36 2c 62 69 67 25 3a 73 |Op%,9+256,big%:s| 00006170 6d 61 6c 6c 25 21 38 3d 31 36 3a c8 99 53 70 72 |mall%!8=16:..Spr| 00006180 69 74 65 4f 70 25 2c 39 2b 32 35 36 2c 73 6d 61 |iteOp%,9+256,sma| 00006190 6c 6c 25 0d 02 93 07 20 20 cc 0d 02 94 10 20 20 |ll%.... ..... | 000061a0 20 e7 20 41 25 3e 44 25 20 8c 0d 02 95 1b 20 20 | . A%>D% ..... | 000061b0 20 20 41 24 3d a4 6d 65 73 73 61 67 65 28 22 4d | A$=.message("M| 000061c0 6f 64 65 22 29 0d 02 96 35 20 20 20 20 41 24 3d |ode")...5 A$=| 000061d0 c0 41 24 2c a7 41 24 2c 22 25 30 22 29 2d 31 29 |.A$,.A$,"%0")-1)| 000061e0 2b c3 28 6d 6f 64 65 25 29 2b c1 41 24 2c a7 41 |+.(mode%)+.A$,.A| 000061f0 24 2c 22 25 30 22 29 2b 32 29 0d 02 97 15 20 20 |$,"%0")+2).... | 00006200 20 20 f2 72 65 70 6f 72 74 28 41 24 2c 30 29 0d | .report(A$,0).| 00006210 02 98 08 20 20 20 cd 0d 02 99 07 20 20 cd 0d 02 |... ..... ...| 00006220 9a 06 20 cd 0d 02 9b 10 e1 3a c8 99 48 6f 75 72 |.. ......:..Hour| 00006230 4f 66 66 25 0d 02 9c 04 0d 02 9d 25 dd a4 6d 61 |Off%.......%..ma| 00006240 6b 65 6d 65 6d 28 62 25 2c 73 25 29 3a ea 20 66 |kemem(b%,s%):. f| 00006250 6c 61 67 25 2c 53 25 2c 46 25 2c 54 25 0d 02 9e |lag%,S%,F%,T%...| 00006260 2e 20 e7 20 62 25 3c 6d 65 6d 25 28 30 2c 30 29 |. . b%<mem%(0,0)| 00006270 20 8c 20 62 25 3d 6d 65 6d 25 28 30 2c 30 29 20 | . b%=mem%(0,0) | 00006280 20 20 20 20 20 20 20 20 20 20 20 0d 02 9f 2b 20 | ...+ | 00006290 e7 20 73 25 3c 6d 65 6d 25 28 32 2c 30 29 20 8c |. s%<mem%(2,0) .| 000062a0 20 73 25 3d 6d 65 6d 25 28 32 2c 30 29 2b 31 30 | s%=mem%(2,0)+10| 000062b0 30 2a 31 30 32 34 0d 02 a0 33 20 54 25 3d 62 25 |0*1024...3 T%=b%| 000062c0 2b 73 25 2b 31 30 32 34 3a c8 99 22 57 69 6d 70 |+s%+1024:.."Wimp| 000062d0 5f 53 6c 6f 74 53 69 7a 65 22 2c 2d 31 2c 2d 31 |_SlotSize",-1,-1| 000062e0 20 b8 20 53 25 2c 2c 46 25 0d 02 a1 29 20 e7 20 | . S%,,F%...) . | 000062f0 53 25 2d 93 2b 26 38 30 30 34 3c 54 25 20 80 20 |S%-.+&8004<T% . | 00006300 46 25 3c 54 25 2d 53 25 2b 93 2d 26 38 30 30 34 |F%<T%-S%+.-&8004| 00006310 20 8c 0d 02 a2 39 20 20 66 6c 61 67 25 3d 2d 31 | ....9 flag%=-1| 00006320 3a 62 69 67 25 3d 30 3a 73 6d 61 6c 6c 25 3d 30 |:big%=0:small%=0| 00006330 3a e7 20 62 25 3d 6d 65 6d 25 28 30 2c 30 29 20 |:. b%=mem%(0,0) | 00006340 8c 20 f2 6e 6f 6d 65 6d 6f 72 79 0d 02 a3 06 20 |. .nomemory.... | 00006350 cc 0d 02 a4 2d 20 20 c8 99 22 57 69 6d 70 5f 53 |....- .."Wimp_S| 00006360 6c 6f 74 53 69 7a 65 22 2c 93 2d 26 38 30 30 34 |lotSize",.-&8004| 00006370 2b 54 25 2c 2d 31 3a 66 6c 61 67 25 3d 30 0d 02 |+T%,-1:flag%=0..| 00006380 a5 4f 20 20 e7 20 62 69 67 25 3d 30 20 84 20 21 |.O . big%=0 . !| 00006390 62 69 67 25 3c 3e 62 25 20 8c 20 62 69 67 25 3d |big%<>b% . big%=| 000063a0 93 2b 34 3a 21 62 69 67 25 3d 62 25 3a 62 69 67 |.+4:!big%=b%:big| 000063b0 25 21 38 3d 31 36 3a c8 99 53 70 72 69 74 65 4f |%!8=16:..SpriteO| 000063c0 70 25 2c 39 2b 32 35 36 2c 62 69 67 25 0d 02 a6 |p%,9+256,big%...| 000063d0 49 20 20 73 6d 61 6c 6c 25 3d 62 69 67 25 2b 21 |I small%=big%+!| 000063e0 62 69 67 25 2b 34 3a 21 73 6d 61 6c 6c 25 3d 73 |big%+4:!small%=s| 000063f0 25 3a 73 6d 61 6c 6c 25 21 38 3d 31 36 3a c8 99 |%:small%!8=16:..| 00006400 53 70 72 69 74 65 4f 70 25 2c 39 2b 32 35 36 2c |SpriteOp%,9+256,| 00006410 73 6d 61 6c 6c 25 0d 02 a7 24 20 cd 20 20 20 20 |small%...$ . | 00006420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00006430 20 20 20 20 20 20 20 20 20 20 0d 02 a8 0a 3d 66 | ....=f| 00006440 6c 61 67 25 0d 02 a9 04 0d 02 aa 15 dd f2 73 70 |lag%..........sp| 00006450 6c 69 74 3a c8 99 48 6f 75 72 4f 6e 25 0d 02 ab |lit:..HourOn%...| 00006460 20 20 e7 20 64 65 66 61 75 6c 74 24 3d 22 22 20 | . default$="" | 00006470 8c 20 f2 6d 61 6b 65 73 70 72 69 74 65 0d 02 ac |. .makesprite...| 00006480 1c 20 f2 73 70 6c 69 74 73 70 72 69 74 65 3a c8 |. .splitsprite:.| 00006490 99 48 6f 75 72 4f 66 66 25 0d 02 ad 05 e1 0d 02 |.HourOff%.......| 000064a0 ae 04 0d 02 af 30 dd f2 6d 61 6b 65 73 70 72 69 |.....0..makespri| 000064b0 74 65 3a 24 73 70 72 69 74 65 25 3d 22 73 70 72 |te:$sprite%="spr| 000064c0 69 74 65 22 3a 24 74 69 74 6c 65 25 3d 61 70 70 |ite":$title%=app| 000064d0 24 20 0d 02 b0 28 20 21 62 6c 6f 63 6b 25 3d 6d |$ ...( !block%=m| 000064e0 61 69 6e 25 3a c8 99 20 47 65 74 57 69 6e 64 6f |ain%:.. GetWindo| 000064f0 77 25 2c 2c 62 6c 6f 63 6b 25 0d 02 b1 3b 20 c8 |w%,,block%...; .| 00006500 99 52 65 64 72 61 77 25 2c 2d 31 2c 62 6c 6f 63 |.Redraw%,-1,bloc| 00006510 6b 25 21 34 2c 62 6c 6f 63 6b 25 21 31 36 2c 62 |k%!4,block%!16,b| 00006520 6c 6f 63 6b 25 21 31 32 2c 62 6c 6f 63 6b 25 21 |lock%!12,block%!| 00006530 31 36 2b 34 34 0d 02 b2 46 20 c8 99 52 65 61 64 |16+44...F ..Read| 00006540 4d 6f 64 65 25 2c 2d 31 2c 33 20 b8 20 2c 2c 6e |Mode%,-1,3 . ,,n| 00006550 63 6f 6c 6f 75 72 25 3a e7 20 6e 63 6f 6c 6f 75 |colour%:. ncolou| 00006560 72 25 3c 36 33 20 8c 20 6d 6f 64 65 25 3d 31 32 |r%<63 . mode%=12| 00006570 20 8b 20 6d 6f 64 65 25 3d 31 35 0d 02 b3 61 20 | . mode%=15...a | 00006580 e7 20 6d 6f 64 65 25 3d 31 32 20 8c 20 41 25 3d |. mode%=12 . A%=| 00006590 a4 6d 61 6b 65 6d 65 6d 28 6d 65 6d 25 28 30 2c |.makemem(mem%(0,| 000065a0 62 25 2d 33 29 2c 6d 65 6d 25 28 32 2c 62 25 2d |b%-3),mem%(2,b%-| 000065b0 33 29 29 20 8b 20 41 25 3d a4 6d 61 6b 65 6d 65 |3)) . A%=.makeme| 000065c0 6d 28 6d 65 6d 25 28 31 2c 62 25 2d 33 29 2c 6d |m(mem%(1,b%-3),m| 000065d0 65 6d 25 28 33 2c 62 25 2d 33 29 29 0d 02 b4 4e |em%(3,b%-3))...N| 000065e0 20 e7 20 41 25 20 8c 20 f2 72 65 70 6f 72 74 28 | . A% . .report(| 000065f0 a4 6d 65 73 73 61 67 65 28 22 4e 6f 4d 65 6d 22 |.message("NoMem"| 00006600 29 2c 30 29 3a 62 25 3d 33 3a 41 25 3d a4 6d 61 |),0):b%=3:A%=.ma| 00006610 6b 65 6d 65 6d 28 6d 65 6d 25 28 30 2c 30 29 2c |kemem(mem%(0,0),| 00006620 6d 65 6d 25 28 32 2c 30 29 29 0d 02 b5 3c 20 c8 |mem%(2,0))...< .| 00006630 99 53 70 72 69 74 65 4f 70 25 2c 31 35 2b 32 35 |.SpriteOp%,15+25| 00006640 36 2c 62 69 67 25 2c 73 70 72 69 74 65 25 2c 30 |6,big%,sprite%,0| 00006650 2c 33 37 2a 62 25 2b 31 2c 31 39 2a 62 25 2b 31 |,37*b%+1,19*b%+1| 00006660 2c 6d 6f 64 65 25 0d 02 b6 26 20 c8 99 53 70 72 |,mode%...& ..Spr| 00006670 69 74 65 4f 70 25 2c 36 30 2b 32 35 36 2c 62 69 |iteOp%,60+256,bi| 00006680 67 25 2c 73 70 72 69 74 65 25 2c 30 0d 02 b7 24 |g%,sprite%,0...$| 00006690 20 c8 99 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f | .."ColourTrans_| 000066a0 49 6e 76 61 6c 69 64 61 74 65 43 61 63 68 65 22 |InvalidateCache"| 000066b0 0d 02 b8 0c 20 ef 35 3a 41 25 3d 30 0d 02 b9 17 |.... .5:A%=0....| 000066c0 20 e3 20 59 25 3d 62 25 2d 31 20 b8 20 30 20 88 | . Y%=b%-1 . 0 .| 000066d0 20 2d 31 0d 02 ba 13 20 20 e3 20 58 25 3d 30 20 | -1.... . X%=0 | 000066e0 b8 20 62 25 2d 31 0d 02 bb 18 20 20 20 41 25 2b |. b%-1.... A%+| 000066f0 3d 31 3a 42 25 3d a9 28 c3 41 25 29 2a 38 0d 02 |=1:B%=.(.A%)*8..| 00006700 bc 2a 20 20 20 c8 91 20 58 25 2a 37 34 2c 59 25 |.* .. X%*74,Y%| 00006710 2a 37 36 20 20 20 20 20 20 20 20 20 20 20 20 20 |*76 | 00006720 20 20 20 20 20 20 20 20 0d 02 bd 24 20 20 20 c8 | ...$ .| 00006730 99 53 65 74 43 6f 6c 6f 75 72 25 2c 37 3a c8 93 |.SetColour%,7:..| 00006740 c8 90 20 30 2c 30 2c 37 34 2c 37 36 0d 02 be 13 |.. 0,0,74,76....| 00006750 20 20 20 e7 20 41 25 3c 62 25 2a 62 25 20 8c 0d | . A%<b%*b% ..| 00006760 02 bf 25 20 20 20 20 c8 99 53 65 74 43 6f 6c 6f |..% ..SetColo| 00006770 75 72 25 2c 33 3a c8 93 c8 90 20 32 2c 34 2c 37 |ur%,3:.... 2,4,7| 00006780 31 2c 37 31 0d 02 c0 33 20 20 20 20 c8 99 53 65 |1,71...3 ..Se| 00006790 74 43 6f 6c 6f 75 72 25 2c 31 3a c8 93 c8 90 20 |tColour%,1:.... | 000067a0 32 2c 34 2c 34 2c 37 31 3a c8 93 c8 90 20 32 2c |2,4,4,71:.... 2,| 000067b0 37 31 2c 37 31 2c 34 0d 02 c1 33 20 20 20 20 c8 |71,71,4...3 .| 000067c0 99 53 65 74 43 6f 6c 6f 75 72 25 2c 34 3a c8 93 |.SetColour%,4:..| 000067d0 c8 90 20 38 2c 34 2c 36 33 2c 34 3a c8 93 c8 90 |.. 8,4,63,4:....| 000067e0 20 36 39 2c 34 2c 34 2c 36 33 0d 02 c2 2c 20 20 | 69,4,4,63..., | 000067f0 20 20 ec 34 2c 34 3a df 20 36 2c 34 3a df 36 2c | .4,4:. 6,4:.6,| 00006800 38 3a ec 37 31 2c 37 31 3a df 42 59 32 2c 30 3a |8:.71,71:.BY2,0:| 00006810 df 42 59 30 2c 34 0d 02 c3 27 20 20 20 20 c8 99 |.BY0,4...' ..| 00006820 53 65 74 43 6f 6c 6f 75 72 25 2c 31 31 3a ec 20 |SetColour%,11:. | 00006830 33 38 2d 42 25 2c 34 38 3a f1 3b 41 25 0d 02 c4 |38-B%,48:.;A%...| 00006840 08 20 20 20 cc 0d 02 c5 08 20 20 20 cd 0d 02 c6 |. ..... ....| 00006850 07 20 20 ed 0d 02 c7 06 20 ed 0d 02 c8 1e 20 c8 |. ..... ..... .| 00006860 99 53 70 72 69 74 65 4f 70 25 2c 36 30 2c 30 2c |.SpriteOp%,60,0,| 00006870 30 3a c8 91 20 30 2c 30 0d 02 c9 24 20 c8 99 22 |0:.. 0,0...$ .."| 00006880 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 49 6e 76 61 |ColourTrans_Inva| 00006890 6c 69 64 61 74 65 43 61 63 68 65 22 0d 02 ca 05 |lidateCache"....| 000068a0 e1 0d 02 cb 04 0d 02 cc 32 dc 20 38 31 39 32 2c |........2. 8192,| 000068b0 38 31 39 32 2c 39 32 37 36 2c 31 32 39 34 30 2c |8192,9276,12940,| 000068c0 31 37 37 34 38 2c 32 33 33 31 36 2c 32 38 39 35 |17748,23316,2895| 000068d0 36 2c 33 35 39 36 38 0d 02 cd 34 dc 20 38 31 39 |6,35968...4. 819| 000068e0 32 2c 31 31 37 36 34 2c 31 38 31 30 38 2c 32 35 |2,11764,18108,25| 000068f0 38 32 30 2c 33 34 39 30 30 2c 34 35 39 36 30 2c |820,34900,45960,| 00006900 35 37 38 35 32 2c 37 31 31 31 32 0d 02 ce 33 dc |57852,71112...3.| 00006910 20 38 31 39 32 2c 38 31 39 32 2c 31 30 31 39 32 | 8192,8192,10192| 00006920 2c 31 34 38 35 36 2c 32 30 33 36 38 2c 32 36 37 |,14856,20368,267| 00006930 32 38 2c 33 33 39 33 36 2c 34 31 39 39 32 0d 02 |28,33936,41992..| 00006940 cf 34 dc 20 38 31 39 32 2c 31 32 30 37 36 2c 31 |.4. 8192,12076,1| 00006950 39 33 31 32 2c 32 38 31 35 36 2c 33 38 36 30 38 |9312,28156,38608| 00006960 2c 35 30 36 36 38 2c 36 34 33 33 36 2c 37 39 36 |,50668,64336,796| 00006970 31 32 0d 02 d0 04 0d 02 d1 11 dd f2 73 70 6c 69 |12..........spli| 00006980 74 73 70 72 69 74 65 0d 02 d2 1d 20 c8 99 53 70 |tsprite.... ..Sp| 00006990 72 69 74 65 4f 70 25 2c 39 2b 35 31 32 2c 73 6d |riteOp%,9+512,sm| 000069a0 61 6c 6c 25 0d 02 d3 3a 20 c8 99 22 57 69 6d 70 |all%...: .."Wimp| 000069b0 5f 52 65 61 64 50 69 78 54 72 61 6e 73 22 2c 35 |_ReadPixTrans",5| 000069c0 31 32 2c 62 69 67 25 2c 62 69 67 25 2b 31 36 2c |12,big%,big%+16,| 000069d0 2c 2c 2c 73 63 61 6c 65 25 2c 70 69 78 25 0d 02 |,,,scale%,pix%..| 000069e0 d4 41 20 c8 99 53 70 72 69 74 65 4f 70 25 2c 34 |.A ..SpriteOp%,4| 000069f0 30 2b 35 31 32 2c 62 69 67 25 2c 62 69 67 25 2b |0+512,big%,big%+| 00006a00 31 36 20 b8 20 2c 2c 2c 73 77 69 64 74 68 25 2c |16 . ,,,swidth%,| 00006a10 73 68 65 69 67 68 74 25 2c 2c 6d 6f 64 65 25 0d |sheight%,,mode%.| 00006a20 02 d5 40 20 c8 99 52 65 61 64 4d 6f 64 65 25 2c |..@ ..ReadMode%,| 00006a30 6d 6f 64 65 25 2c 33 20 b8 20 2c 2c 6e 63 6f 6c |mode%,3 . ,,ncol| 00006a40 6f 75 72 25 20 20 20 20 20 20 20 20 20 20 20 20 |our% | 00006a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d | .| 00006a60 02 d6 44 20 e7 20 6e 63 6f 6c 6f 75 72 25 3e 3d |..D . ncolour%>=| 00006a70 36 33 20 8c 20 c8 99 22 43 6f 6c 6f 75 72 54 72 |63 . .."ColourTr| 00006a80 61 6e 73 5f 53 65 6c 65 63 74 54 61 62 6c 65 22 |ans_SelectTable"| 00006a90 2c 6d 6f 64 65 25 2c 30 2c 2d 31 2c 2d 31 2c 70 |,mode%,0,-1,-1,p| 00006aa0 69 78 25 0d 02 d7 44 20 c8 99 52 65 61 64 4d 6f |ix%...D ..ReadMo| 00006ab0 64 65 25 2c 6d 6f 64 65 25 2c 34 20 b8 20 2c 2c |de%,mode%,4 . ,,| 00006ac0 78 73 63 61 6c 65 25 3a c8 99 52 65 61 64 4d 6f |xscale%:..ReadMo| 00006ad0 64 65 25 2c 6d 6f 64 65 25 2c 35 20 b8 20 2c 2c |de%,mode%,5 . ,,| 00006ae0 79 73 63 61 6c 65 25 0d 02 d8 36 20 73 68 65 69 |yscale%...6 shei| 00006af0 67 68 74 25 3d 62 25 2a 28 73 68 65 69 67 68 74 |ght%=b%*(sheight| 00006b00 25 81 62 25 29 3a 73 77 69 64 74 68 25 3d 62 25 |%.b%):swidth%=b%| 00006b10 2a 28 73 77 69 64 74 68 25 81 62 25 29 0d 02 d9 |*(swidth%.b%)...| 00006b20 3c 20 c8 99 52 65 61 64 4d 6f 64 65 25 2c 2d 31 |< ..ReadMode%,-1| 00006b30 2c 34 20 b8 20 2c 2c 78 73 63 61 6c 25 3a c8 99 |,4 . ,,xscal%:..| 00006b40 52 65 61 64 4d 6f 64 65 25 2c 2d 31 2c 35 20 b8 |ReadMode%,-1,5 .| 00006b50 20 2c 2c 79 73 63 61 6c 25 0d 02 da 3f 20 77 69 | ,,yscal%...? wi| 00006b60 64 74 68 25 3d 73 77 69 64 74 68 25 2a 31 3c 3c |dth%=swidth%*1<<| 00006b70 78 73 63 61 6c 65 25 3a 68 65 69 67 68 74 25 3d |xscale%:height%=| 00006b80 73 68 65 69 67 68 74 25 2a 31 3c 3c 79 73 63 61 |sheight%*1<<ysca| 00006b90 6c 65 25 3a 41 25 3d 30 0d 02 db 4b 20 78 73 74 |le%:A%=0...K xst| 00006ba0 65 70 3d 77 69 64 74 68 25 2f 62 25 3a 79 73 74 |ep=width%/b%:yst| 00006bb0 65 70 3d 68 65 69 67 68 74 25 2f 62 25 3a 71 25 |ep=height%/b%:q%| 00006bc0 3d 31 36 2f 28 31 3c 3c 78 73 63 61 6c 65 25 29 |=16/(1<<xscale%)| 00006bd0 3a 72 25 3d 31 36 2f 28 31 3c 3c 79 73 63 61 6c |:r%=16/(1<<yscal| 00006be0 65 25 29 0d 02 dc 26 20 c8 99 22 43 6f 6c 6f 75 |e%)...& .."Colou| 00006bf0 72 54 72 61 6e 73 5f 49 6e 76 61 6c 69 64 61 74 |rTrans_Invalidat| 00006c00 65 43 61 63 68 65 22 20 20 0d 02 dd 24 20 e3 20 |eCache" ...$ . | 00006c10 59 25 3d 68 65 69 67 68 74 25 2d 79 73 74 65 70 |Y%=height%-ystep| 00006c20 20 b8 20 30 20 88 20 2d 79 73 74 65 70 0d 02 de | . 0 . -ystep...| 00006c30 23 20 20 e3 20 58 25 3d 30 20 b8 20 77 69 64 74 |# . X%=0 . widt| 00006c40 68 25 2d 78 73 74 65 70 20 88 20 78 73 74 65 70 |h%-xstep . xstep| 00006c50 0d 02 df 0c 20 20 20 41 25 2b 3d 31 0d 02 e0 12 |.... A%+=1....| 00006c60 20 20 20 e7 20 41 25 3c 62 25 5e 32 20 8c 0d 02 | . A%<b%^2 ...| 00006c70 e1 44 20 20 20 20 c8 99 53 70 72 69 74 65 4f 70 |.D ..SpriteOp| 00006c80 25 2c 31 35 2b 32 35 36 2c 73 6d 61 6c 6c 25 2c |%,15+256,small%,| 00006c90 c3 41 25 2c 30 2c 73 77 69 64 74 68 25 2f 62 25 |.A%,0,swidth%/b%| 00006ca0 2c 73 68 65 69 67 68 74 25 2f 62 25 2c 6d 6f 64 |,sheight%/b%,mod| 00006cb0 65 25 0d 02 e2 25 20 20 20 20 c8 99 53 70 72 69 |e%...% ..Spri| 00006cc0 74 65 4f 70 25 2c 36 30 2b 32 35 36 2c 73 6d 61 |teOp%,60+256,sma| 00006cd0 6c 6c 25 2c c3 41 25 0d 02 e3 2f 20 20 20 20 c8 |ll%,.A%.../ .| 00006ce0 99 53 70 72 69 74 65 4f 70 25 2c 33 34 2b 35 31 |.SpriteOp%,34+51| 00006cf0 32 2c 62 69 67 25 2c 62 69 67 25 2b 31 36 2c 2d |2,big%,big%+16,-| 00006d00 58 25 2c 2d 59 25 0d 02 e4 08 20 20 20 cd 0d 02 |X%,-Y%.... ...| 00006d10 e5 07 20 20 ed 0d 02 e6 06 20 ed 0d 02 e7 37 20 |.. ..... ....7 | 00006d20 c8 99 53 70 72 69 74 65 4f 70 25 2c 36 30 2c 30 |..SpriteOp%,60,0| 00006d30 2c 30 3a c8 99 22 43 6f 6c 6f 75 72 54 72 61 6e |,0:.."ColourTran| 00006d40 73 5f 49 6e 76 61 6c 69 64 61 74 65 43 61 63 68 |s_InvalidateCach| 00006d50 65 22 0d 02 e8 58 20 21 62 6c 6f 63 6b 25 3d 30 |e"...X !block%=0| 00006d60 3a 62 6c 6f 63 6b 25 21 34 3d 2d 28 73 68 65 69 |:block%!4=-(shei| 00006d70 67 68 74 25 2d 31 29 2a 31 3c 3c 79 73 63 61 6c |ght%-1)*1<<yscal| 00006d80 65 25 3a 62 6c 6f 63 6b 25 21 38 3d 73 77 69 64 |e%:block%!8=swid| 00006d90 74 68 25 2a 31 3c 3c 78 73 63 61 6c 65 25 3a 62 |th%*1<<xscale%:b| 00006da0 6c 6f 63 6b 25 21 31 32 3d 30 0d 02 e9 44 20 c8 |lock%!12=0...D .| 00006db0 99 22 57 69 6d 70 5f 53 65 74 45 78 74 65 6e 74 |."Wimp_SetExtent| 00006dc0 22 2c 6d 61 69 6e 25 2c 62 6c 6f 63 6b 25 3a c8 |",main%,block%:.| 00006dd0 99 22 57 69 6d 70 5f 53 65 74 45 78 74 65 6e 74 |."Wimp_SetExtent| 00006de0 22 2c 76 69 65 77 25 2c 62 6c 6f 63 6b 25 0d 02 |",view%,block%..| 00006df0 ea 1a 20 e7 20 70 75 7a 6f 70 65 6e 25 20 80 20 |.. . puzopen% . | 00006e00 66 69 72 73 74 25 20 8c 0d 02 eb 52 20 20 21 62 |first% ....R !b| 00006e10 6c 6f 63 6b 25 3d 6d 61 69 6e 25 3a c8 99 20 47 |lock%=main%:.. G| 00006e20 65 74 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b |etWindow%,,block| 00006e30 25 3a 62 6c 6f 63 6b 25 21 38 3d 62 6c 6f 63 6b |%:block%!8=block| 00006e40 25 21 31 36 2d 73 68 65 69 67 68 74 25 2a 28 31 |%!16-sheight%*(1| 00006e50 3c 3c 79 73 63 61 6c 65 25 29 0d 02 ec 43 20 20 |<<yscale%)...C | 00006e60 62 6c 6f 63 6b 25 21 31 32 3d 62 6c 6f 63 6b 25 |block%!12=block%| 00006e70 21 34 2b 73 77 69 64 74 68 25 2a 28 31 3c 3c 78 |!4+swidth%*(1<<x| 00006e80 73 63 61 6c 65 25 29 3a c8 99 4f 70 65 6e 57 69 |scale%):..OpenWi| 00006e90 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 0d 02 ed |ndow%,,block%...| 00006ea0 06 20 cd 0d 02 ee 28 20 e7 20 76 69 65 77 6f 70 |. ....( . viewop| 00006eb0 65 6e 25 20 80 20 66 69 72 73 74 25 20 8c 20 f2 |en% . first% . .| 00006ec0 6f 70 65 6e 28 76 69 65 77 25 29 0d 02 ef 5c 20 |open(view%)...\ | 00006ed0 21 62 6c 6f 63 6b 25 3d 30 3a 62 6c 6f 63 6b 25 |!block%=0:block%| 00006ee0 21 31 32 3d 30 3a 62 6c 6f 63 6b 25 21 38 3d 34 |!12=0:block%!8=4| 00006ef0 30 2a 62 25 2b 34 3a 62 6c 6f 63 6b 25 21 34 3d |0*b%+4:block%!4=| 00006f00 2d 34 30 2a 62 25 3a c8 99 22 57 69 6d 70 5f 53 |-40*b%:.."Wimp_S| 00006f10 65 74 45 78 74 65 6e 74 22 2c 68 65 6c 70 77 25 |etExtent",helpw%| 00006f20 2c 62 6c 6f 63 6b 25 0d 02 f0 a5 20 21 62 6c 6f |,block%.... !blo| 00006f30 63 6b 25 3d 68 65 6c 70 77 25 3a c8 99 20 47 65 |ck%=helpw%:.. Ge| 00006f40 74 57 69 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 |tWindow%,,block%| 00006f50 3a 62 6c 6f 63 6b 25 21 31 32 3d 62 6c 6f 63 6b |:block%!12=block| 00006f60 25 21 34 2b 62 25 2a 34 30 2b 34 3a 62 6c 6f 63 |%!4+b%*40+4:bloc| 00006f70 6b 25 21 38 3d 62 6c 6f 63 6b 25 21 31 36 2d 34 |k%!8=block%!16-4| 00006f80 30 2a 62 25 2d 34 3a c8 99 20 4f 70 65 6e 57 69 |0*b%-4:.. OpenWi| 00006f90 6e 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 3a e7 20 |ndow%,,block%:. | 00006fa0 68 65 6c 70 25 3c 3e 31 20 84 20 ac 66 69 72 73 |help%<>1 . .firs| 00006fb0 74 25 20 8c 20 c8 99 20 43 6c 6f 73 65 57 69 6e |t% . .. CloseWin| 00006fc0 64 6f 77 25 2c 2c 62 6c 6f 63 6b 25 0d 02 f1 05 |dow%,,block%....| 00006fd0 e1 0d ff |...| 00006fd3